Table of Contents

Overview

Xilinx Zynq UltraScale+ MPSoC Video Codec Unit (VCU) provides multi-standard video encoding and decoding capabilities, including: High Efficiency Video Coding (HEVC), i.e., H.265; and Advanced Video Coding (AVC), i.e., H.264 standards. VCU software stack consists of custom kernel module and custom user space library known as Control Software (CtrlSW). The OpenMAX IL (OMX) layer is integrated on top of CtrlSW, and Gstreamer frame work is used to integrate OMX-IL component along with other multimedia elements.

OpenMAX™ is a cross-platform API that provides comprehensive streaming media codec and application portability by enabling accelerated multimedia components. Gstreamer is the cross-platform / open source multimedia framework, and provides the infrastructure to integrate multiple multimedia components and create pipelines.

Users can develop their application at all 3 levels, i.e. CtrlSW, OMX-IL, and Gstreamer.

VCU Software Stack

Supported Features


API information and Example pipelines


Refer to VCU product guide documentation for more details on example pipelines, API information, Encoder/Decoder application flow chart, Encoder parameters...etc.
H.264/H.265 Video Codec Unit v1.2 

Source code repos

VCU:

Gstreamer:

CMA Size setting instructions for Yocto and Petalinux users:

Device Tree Binding

The device tree node will be automatically generated, if the core is configured in the HW design, using the Device Tree BSP.



Steps to generate device-tree is documented here,

http://www.wiki.xilinx.com/Build+Device+Tree+Blob



And a sample binding is shown below and the description of DT property is documented here - Documentation/devicetree/bindings/clock/xlnx,vcu.txt

Known Issues

2022.2 Release

New Feature Support:

Bug Fixes:

Known Issues:

S.NoIssue DescriptionWorkaroundcomments/AR link
1Audio lost/distortion observed with only audio usecase and audio+video in LLP2 serial pipelines during long-runNo workaround availableNA
2Memory leak observed with decoder appNo workaround availableNA
3

Fps drops observed with below usecase:

  • LLP2 2x-4kp30 XV20 AVC serial use-case.
  • LLP2 4x-1080p60 XV20 AVC (2x-1080p60 serial + 2x-1080p60 cap->enc->fakesink) pipeline
  • Above two cases pipeline is taking more time to stabilize(around 3-4 seconds) at start.
  • YUV444 4kp30 10-bit(X403) AVC Streaming usecase.
No workaround available.NA
4VCU decoder will hang and could not recover itself if the input stream exceeds its capability for a few timesNo workaround available.NA
5Broken bitstream observed with h264 parser on decoding specific streamsNo workaround available.NA

2022.1 Release

New Feature Support:

Bug Fixes:

Known Issues:

S.NoIssue DescriptionWorkaroundcomments/AR link
1Audio lost/distortion observed with only audio usecase and audio+video in LLP2 serial pipelines during long-runNo workaround availableNA
2SIGINT is not working properly while killing low-latency stream-out pipelinesSend two consecutive ctrl+c signals kills the pipelineNA
3

Fps drops observed with below usecase:

  • LLP2 2x-4kp30 XV20 AVC serial use-case.
  • LLP2 4x-1080p60 XV20 AVC (2x-1080p60 serial + 2x-1080p60 cap->enc->fakesink) pipeline
  • Above two cases pipeline is taking more time to stabilize(around 3-4 seconds) at start.
  • YUV444 4kp30 10-bit(X403) AVC Streaming usecase.
No workaround available.NA
4ctrlsw encoder application is not closing properly after running rigorously in a loop. (1000+ iterations)Sending another SIGINT_KILL or Ctrl+C closes the applicationNA

2021.2 Release

New Feature Support:

Bug Fixes:

Known Issues:


S.NoIssue DescriptionWorkaroundcomments/AR link
1SIGINT is not working properly while killing low-latency stream-out pipelinesSend two consecutive ctrl+c signals kills the pipelineNA
2Fps drops observed with LLP2 2-4kp30 XV20 AVC serial use-case.
Pipeline is taking more time to stabilize(around 3-4 seconds).
No workaround available.NA
3ctrlsw encoder application is not closing properly after running rigorously in a loop. (1000+ iterations)Sending another SIGINT_KILL or Ctrl+C closes the applicationNA
4Audio lost/distortion observed with only audio usecase and audio+video in LLP2 serial pipelines during long-runNo workaround available

NA

5Interlaced file playback shows distortion on the Display in the long runNo workaround availableNA
6PS_DP is not sending correct channel_status message for audio No workaround availableNA

2021.1 Release

New Feature Support:

Bug Fixes:

Known Issues:


S.NoIssue DescriptionWorkaroundcomments/AR link
1SIGINT is not working properly while killing low-latency stream-out pipelinesSend two consecutive ctrl+c signals kills the pipelineNA
2VCU encoder MCU trace error is reported when receiving erroneous RTSP streamNo workaround available, Need to handle error concealment for such errors 
3Interlaced file playback shows distortion on the Display in the long runNo workaround availableNA
44x1080p60 decode (PL_DDR) → display use-case shows occasional frame drops when B-frames are present in input videoUse b-frames=0NA


2020.2 Release

New Feature Support:

Bug Fixes:

Known issues:

S.NoIssue descriptionWork aroundComments/AR link
14x1080p60 decode (PL_DDR) → display use-case shows occasional frame drops when B-frames are present in input videoUse b-frames=0NA
2LLP2: 1280x720 XV20 (422 10 bit) doesn't workFix available, AR will be publishedNA
3Memory leak when using v4l2srcFix available, AR will be publishedNA
4LLP2: Switching Live source resolutions on the fly or removing and re-inserting live source cable when VCU encoder LLP2 pipeline is running, causes hang for next immediate pipeline launch.

remove and re-insert vcu kernel modules when it happens

NA
5LLP2: Ripple effect on displayFix available, AR will be publishedNA

2020.1 Release

New Feature Support:

Bug Fixes:

Known issues:

S.NoIssue descriptionWork aroundComments/AR link
14x1080p60 decode (PL_DDR) → display use-case shows occasional frame drops when B-frames are present in input videoNo workaroundNA
2LLP2:  Higher encoder latency is observed in 4x 1080p60 use-case. Extra 3 to 4 msec is observed, this may lead to occasional frame drops or lower fps problem.Use extra processing-deadline for gst-pipeline sink, it may reduce frame drops to some extentNA
3Frame drops observed in serial/streaming use-case for AVC, HIGH Profile 4kp60 with num-slices=16 use-case.use num-slices=8 for slice encoding NA
4Switching Live source resolutions on the fly  or removing and re-inserting live source cable when VCU encoder LLP2 pipeline is running, causes hang for next immediate pipeline launch.remove and re-insert vcu kernel modules when it happensNA

2019.2 Release:

New Feature Support

Bug Fixes

2019.1 Release:

2018.3 Release:

2018.2 Release: