AMD
Zynq UltraScale+ MPSoC VCU HW supports YUV 4:0:0, 4:2:0,
and 4:2:2 sub-sampling modes. This feature enables encoding YUV 4:4:4p (single planar)
video frames using VCU, reading them as YUV4:0:0 of Width x
3*Height
buffer. Similar to decoder side, VCU Decoder outputs Width x 3*Height
YUV4:0:0 raw video frame but the display
treats that buffers YUV 4:4:4 planar buffer. It also include enhancing Frame Buffer Read
(FB_RD) and Frame Buffer Write (FB_WR) IP/Drivers, and V4l2 and DRM frameworks to
support YUV 4:4:4 planar buffer format.
Run the following gst-launch-1.0 command to display raw YUV 4:4:4 8-bit video over HDMI using the GStreamer pipeline.
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=3840, height=2160, format=Y444, framerate=30/1 ! queue ! fpsdisplaysink text-overlay=false fps-update-interval=1000 name=fpssink video-sink="kmssink bus-id=amba_pl@0:drm-pl-disp-drvhdmi_output_v_hdmi_tx_ss_0 show-preroll-frame=false" sync=true -v
Run the following gst-launch-1.0 command to display raw YUV 4:4:4 10-bit video over HDMI using the GStreamer pipeline.
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=3840, height=2160, format=Y444_10LE32, framerate=30/1 ! queue ! fpsdisplaysink text-overlay=false name=fpssink video-sink="kmssink bus-id=amba_pl@0:drm-pl-disp-drvhdmi_output_v_hdmi_tx_ss_0 show-preroll-frame=false" sync=true -v
Run the following gst-launch-1.0 command to capture, encode, and stream-out YUV 4:4:4 8-bit video using the GStreamer pipeline.
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=3840, height=2160, format=Y444, framerate=30/1 ! omxh265enc target-bitrate=25000 control-rate=low-latency y444-to-gray=true num-slices=6 periodicity-idr=120 ! queue ! rtph265pay ! udpsink buffer-size=60000000 port=5004 host=192.168.25.89
Run the following gst-launch-1.0 command to capture, encode, and stream-out YUV 4:4:4 10-bit video using the GStreamer pipeline.
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=3840, height=2160, format=Y444_10LE32, framerate=30/1 ! omxh265enc target-bitrate=25000 control-rate=low-latency y444-to-gray=true num-slices=6 periodicity-idr=120 ! queue ! rtph265pay ! udpsink buffer-size=60000000 port=5004 host=192.168.25.89
Run the following gst-launch-1.0 command to stream-in, decode, and play YUV 4:4:4 8-bit/10-bit video over HDMI using the GStreamer pipeline
gst-launch-1.0 udpsrc buffer-size=60000000 port=5004 ! application/x-rtp,encoding-name=H265,payload=96 ! rtph265depay ! h265parse ! video/x-h265, alignment=au ! omxh265dec ! queue ! fpsdisplaysink text-overlay=false name=fpssink video-sink="kmssink bus-id=amba_pl@0:drm-pl-disp-drvhdmi_output_v_hdmi_tx_ss_0 gray-to-y444=true show-preroll-frame=false" sync=true -v
For more information, refer Zynq UltraScale+ MPSoC VCU TRD 2023.1- YUV444 Video Capture and Display.