Zynq UltraScale+ MPSoC VCU TRD 2020.1 - SDI Video Display
This page provides all the information related to Design Module 9 - VCU SDI Video Display design.
Table of Contents
1 Overview
The primary goal of this Design is to demonstrate the capabilities of VCU hard block present in Zynq UltraScale+ EV devices. The TRD will serve as a platform to tune the performance parameters of VCU and arrive at optimal configurations for encoder and decoder blocks with the streaming use case where bandwidth plays a vital role.
This design supports the following video interfaces:
Sources:
File source (SD card, USB storage, SATA hard disk).
Stream-In from network or internet.
Sinks:
SDI-Tx display pipeline implemented in the PL.
VCU Codec:
Video Encode/Decode capability using VCU hard block in PL
AVC/HEVC encoding.
Encoder/decoder parameter configuration.
Streaming Interfaces:
1G Ethernet on PS
Video format:
XV20
Supported Features:
The table below provides the supported encoder feature in this release.
Resolution | Command Line | |
Single Stream | Multi-stream | |
4Kp60/59.94 | √ | NA |
4Kp30/29.97 | √ | NA |
1080p60/59.94 | √ | NA |
√ - Supported
NA – Not applicable
Deliverables:
Pipeline | Input Source | Output Type | Resolution | Video Codec Type | Deliverables |
Playback pipeline | File Source/ Stream-In | SDI-Tx | 4K/1080p | HEVC/AVC | Playback of the local-file/stream-in with video decoded using VCU and display on SDI-Tx |
The below figure shows the SDI Video Display design hardware block diagram.
The below figure shows the SDI Video Display design software block diagram.
1.1 Board Setup
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
TRD package contents specific to SDI Video Display design is placed in the following directory structure. The user needs to copy all the files from the $TRD_HOME/images/vcu_sditx/
to FAT32 formatted SD card directory.
rdf0428-zcu106-vcu-trd-2020-1
├── apu
│ └── vcu_petalinux_bsp
├── images
│ ├── vcu_10g
│ ├── vcu_audio
│ ├── vcu_hdmi_multistream_xv20
│ ├── vcu_hdmi_rx
│ ├── vcu_hdmi_tx
│ ├── vcu_llp2_hdmi_nv12
│ ├── vcu_llp2_hdmi_nv16
│ ├── vcu_llp2_hdmi_xv20
│ ├── vcu_llp2_sdi_xv20
│ ├── vcu_multistream_nv12
│ ├── vcu_pcie
│ ├── vcu_sdirx
│ ├── vcu_sditx
│ └── vcu_sdi_xv20
├── pcie_host_package
│ ├── COPYING
│ ├── include
│ ├── libxdma
│ ├── LICENSE
│ ├── readme.txt
│ ├── RELEASE
│ ├── tests
│ ├── tools
│ └── xdma
├── pl
│ ├── constrs
│ ├── designs
│ ├── prebuild
│ ├── README.md
│ └── srcs
└── README.txt
TRD package contents specific to SDI Video display design are placed in the following directory structure.
rdf0428-zcu106-vcu-trd-2020-1
├── apu
│ └── vcu_petalinux_bsp
│ └── xilinx-vcu-zcu106-v2020.1-final.bsp
├── images
│ └── vcu_sditx
│ │ ├── autostart.sh
│ │ ├── BOOT.BIN
│ │ ├── boot.scr
│ │ ├── config
│ │ ├── image.ub
│ │ ├── system.dtb
│ │ └── vcu
├── pl
│ ├── constrs
│ ├── designs
│ │ ├── zcu106_sditx
│ ├── prebuild
│ │ ├── zcu106_sditx
│ ├── README.md
│ └── srcs
│ ├── hdl
│ └── ip
└── README.txt
Configuration files (input.cfg)
are placed in the following directory structure in /media/card
.
config
├── 1080p60
│ ├── Display
│ └── Stream-in
├── 4kp30
│ ├── Display
│ └── Stream-in
├── 4kp60
│ ├── Display
│ └── Stream-in
└── input.cfg
1.2.1 GStreamer Application (vcu_gst_app)
The vcu_gst_app
is a command-line multi-threaded Linux application. The command-line application requires an input configuration file (input.cfg)
to be provided in plain text.
Execution of the application is shown below:
Example:
Display Pipeline execution
Stream-in Pipeline execution
Latency Measurement: To measure the latency of the pipeline, run the below command. The latency data is huge, so dump it to a file.
Refer below link for detailed run flow steps
1.3 Build Flow
Refer below link for Build Flow
2 Other Information
2.1 Known Issues
For Petalinux related known issues please refer: PetaLinux 2020.1 - Product Update Release Notes and Known Issues
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.2 Limitations
For Petalinux related limitations please refer: PetaLinux 2020.1 - Product Update Release Notes and Known Issues
For VCU related limitations please refer AR# 66763: LogiCORE H.264/H.265 Video Codec Unit (VCU) - Release Notes and Known Issues, Xilinx Zynq UltraScale+ MPSoC Video Codec Unit and PG252 link.
3 Appendix A - Input Configuration File (input.cfg)
The example configuration files are stored at /media/card/config/
folder.
Common Configuration:
It is the starting point of common configuration.
Num of Input:
Provide the number of inputs. this is always 1 for this design.
Output:
Select the video interface.
Options: SDI or DP
Out Type:
Options: Display
Display Rate:
Pipeline frame rate.
Options: 30 FPS or 60 FPS for each stream.
Exit:
It indicates to the application that the configuration is over.
Input Configuration:
It is the starting point of the input configuration.
Input Num:
Starting Nth input configuration.
Options: 1
Input Type:
Input source type.
Options: File, Stream
Uri:
File path or Network URL. Applicable for file playback and stream-in pipeline only. Supported file formats for playback are ts, mp4, and mkv.
Options: file:///media/usb/abc.ts (for file path), udp://192.168.26.89:5004/ (for Network streaming, Here 192.168.26.89
is IP address and 5004
is port number)
Raw:
To tell the pipeline is processed or pass-through.
Options: True, False
Width:
The width of the live source.
Options: 3840, 1920
Height:
The height of the live source.
Options: 2160, 1080
Exit:
It indicates to the application that the configuration is over.
Trace Configuration:
It is the starting point of trace configuration.
FPS Info:
To display fps info on the console.
Options: True, False
APM Info:
To display the APM counter number on the console.
Options: True, False
Pipeline Info:
To display pipeline info on console.
Options: True, False
Exit
It indicates to the application that the configuration is over.
4 Appendix B - SDI-Tx Linkup and GStreamer Commands
This section covers configuration of SDI-Tx, along with demonstrating SDI-Tx link-up issue using modetest
utility. It also contains sample GStreamer SDI Video pipelines for Playback and Stream-in use-cases.
Notes for modetest commands:
Modetest command for 4Kp60
Modetest command for 4Kp30
Modetest command for 1080p60
Modetest command for 4Kp59.94
Modetest command for 4Kp29.97
Modetest command for 1080p59.94
File Playback use case: Run the following
gst-launch-1.0
command for file playback using the GStreamer pipeline.
File location should be USB-3.0 to avoid the read-write bandwidth issue.
Stream-in use case: Run the following
gst-launch-1.0
command to display stream-in video using the Gstreamer pipeline where5004
is port number.
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy