...
Refer below link for Board Setup
1.2 Run Flow
The TRD package is released with the source code, Vivado project, Petalinux BSP, and SD card image that enables the user to run the demonstration. It also includes the binaries necessary to configure and boot the ZCU106 board. Prior to running the steps mentioned in this wiki page, download the TRD package and extract its contents to a directory referred to as TRD_HOME
, which is the home directory.
Refer Section 4.1 : Download the TRD of
Zynq UltraScale+ MPSoC VCU TRD 2020.1
wiki page to download all TRD contents.
...
Refer below link for detailed run flow steps
1.3 Build Flow
Refer below link for detailed build flow steps
...
2 Other Information
2.1 Known Issues
For VCU related known issues please refer AR# 72293: PetaLinux 2020.1 - Product Update Release Notes and Known Issues Link will be added <June-05>
For VCU related known issues please refer AR# 66763: LogiCORE H.264/H.265 Video Codec Unit (VCU) - Release Notes and Known Issues and Xilinx Zynq UltraScale+ MPSoC Video Codec Unit.
Design has a negative slack of WNS around -50 ps . However it does not affect the functionality of the design in the long run also and will be fixed in next release.
...
For VCU related limitations please refer AR# 72293refer: PetaLinux 2020.1 - Product Update Release Notes and Known IssuesLink will be added <June-05> and PG252 Link will be added <June-05>and PG252
For VCU related known issues please refer AR# 66763: LogiCORE H.264/H.265 Video Codec Unit (VCU) - Release Notes and Known Issues and Xilinx Zynq UltraScale+ MPSoC Video Codec Unit.
2.3 Optimum VCU Encoder parameters for use-cases
...
Slice:
The number of slices produced for each frame. Each slice contains one or more complete macroblock/CTU row(s). Slices are distributed over the frame as regularly as possible. If slice-size is defined as well more slices may be produced to fit the slice-size requirement.
Options:
4-22 4K 4Kp resolution with HEVC codec
4-32 4K 4Kp resolution with AVC codec
4-32 1080p resolution with HEVC codec
4-32 1080p resolution with AVC codec
...
After booting you need to run the modetest command(mandatory) for respective resolution you want to validate.
Pixel Format | GStreamer Format | Media Bus Format | GStreamer HEVC Profile | GStreamer AVC Profile | Kmssink Plane-id |
---|---|---|---|---|---|
XV20 | NV16_10LE32 | UYVY10_1X20 | main-422-10 | high-4:2:2 | 32 and 33 |
Video0
in the each below gst-launch pipelines indicates a video node for the input source.
Run the following
gst-launch-1.0
command to display XV20 video on SDI-Tx using low-latency(LLP1) GStreamer serial pipeline (capture → encode → decode → display) GStreamer pipeline.
Code Block |
---|
$ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 ! video/x-raw, width=3840, height=2160, format=NV16_10LE32, framerate=60/1 ! omxh265enc num-slices=8 control-rate=low-latency gop-mode=low-delay-p target-bitrate=25000 cpb-size=500 gdr-mode=horizontal initial-delay=250 periodicity-idr=240 filler-data=0 prefetch-buffer=true ! video/x-h265, alignment=nal ! queue max-size-buffers=0 ! omxh265dec low-latency=1 ! video/x-raw ! queue max-size-bytes=0 ! fpsdisplaysink name=fpssink text-overlay=false video-sink="kmssink driver-name=xlnx max-lateness=5000000 show-preroll-frame=false sync=true" sync=true -v |
Run the following
gst-launch-1.0
command to display XV20 video on SDI-Tx using Xilinx’s ultra Low-Latency(LLP2) GStreamer serial pipeline (capture → encode → decode → display) GStreamer pipeline.
Code Block |
---|
$ gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 ! video/x-raw\(memory:XLNXLL\), width=3840, height=2160, format=NV16_10LE32, framerate=60/1 ! omxh265enc num-slices=8 control-rate=low-latency gop-mode=low-delay-p target-bitrate=25000 cpb-size=500 gdr-mode=horizontal initial-delay=250 periodicity-idr=240 filler-data=0 prefetch-buffer=true ! video/x-h265, alignment=nal ! queue max-size-buffers=0 ! omxh265dec low-latency=1 ! video/x-raw\(memory:XLNXLL\) ! queue max-size-bytes=0 ! fpsdisplaysink name=fpssink text-overlay=false video-sink="kmssink driver-name=xlnx max-lateness=5000000 show-preroll-frame=false sync=true" sync=true -v |
...