Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Zynq UltraScale+ MPSoC VCU TRD 2019.2 - SDI Video Display

...

Table of Contents

Table of Contents
excludeZynq UltraScale+ MPSoC VCU TRD 2018.3 - SDI Video Display

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 StreamMulti-stream
4kp60NA
4kp30NA
1080p60NA


√ - Supported
NA – Not applicable
x – Not supported



Deliverables:


Pipeline

Input source

Output Type

Resolution

Video encode/Decoder 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

...

2 Other Information

2.1 Known Issues

2.2 Limitations



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 no)

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


Notes for modetest commands:

  • Modetest command for  4kp60
Code Block
themeMidnight
$ xmodetest -M xlnx -s 31:3840x2160-60@XV20  -w 31:sdi_mode:5 -w 31:sdi_data_stream:8 -w 31:is_frac:0 &
  • Modetest command for  4kp30
Code Block
themeMidnight
$ xmodetest -M xlnx -s 31:3840x2160-30@XV20  -w 31:sdi_mode:4 -w 31:sdi_data_stream:8 -w 31:is_frac:0 &
  • Modetest command for 1080p60
Code Block
themeMidnight
$ xmodetest -M xlnx -s 31:1920x1080-60@XV20  -w 31:sdi_mode:2 -w 31:sdi_data_stream:2 -w 31:is_frac:0 &


  • Run the following gst-launch-1.0 command for file playback using the GStreamer pipeline.
Code Block
themeMidnight
$ gst-launch-1.0 uridecodebin uri="file:///media/usb/test.ts" ! queue max-size-bytes=0 ! kmssink driver-name=xlnx

NOTE: File location should be USB-3.0 to avoid the read-write bandwidth issue.

  • Run the following gst-launch-1.0 command to display stream-in video using the Gstreamer pipeline where 5004 is port no.
Code Block
themeMidnight
$ gst-launch-1.0 udpsrc port=5004 buffer-size=60000000 caps="application/x-rtp, clock-rate=90000" ! rtpjitterbuffer latency=1000 ! rtpmp2tdepay ! tsparse ! video/mpegts ! tsdemux name=demux ! queue ! h265parse ! omxh265dec internal-entropy-buffers=5 latency-mode=normal ! queue max-size-bytes=0 ! kmssink driver-name=xlnx

NOTE: A low latency stream-in pipeline cannot be launched with vcu-gst-app. Hence use below gst-launch pipeline

  • Run the following gst-launch-1.0 command to display stream-in video using Gstreamer pipeline where 5004 is port no
Code Block
themeMidnight
$ gst-launch-1.0 udpsrc port=5004 buffer-size=60000000 caps="application/x-rtp, clock-rate=90000" ! rtpjitterbuffer latency=1000 ! rtpmp2tdepay ! tsparse ! video/mpegts ! tsdemux name=demux ! queue ! h265parse ! video/x-h265, profile=main-422-10, alignment=nal ! omxh265dec internal-entropy-buffers=5 low-latency=1 ! queue max-size-bytes=0 ! kmssink driver-name=xlnx

Notes for modetest commands:

  • Modetest command for  4kp60
Code Block
themeMidnight
$ xmodetest -M xlnx -s 31:3840x2160-60@XV20  -w 31:sdi_mode:5 -w 31:sdi_data_stream:8 -w 31:is_frac:0 &
  • Modetest command for  4kp30

...

themeMidnight

...

xlnx

...

  • Modetest command for 1080p60

...

themeMidnight

...