Overview - Overview - 3.0 English - PG447

H.264/H.265/JPEG Video Codec Unit 2 (VCU2) Solutions LogiCORE IP Product Guide (PG447)

Document ID
PG447
Release Date
2026-03-06
Version
3.0 English

The VCU2 software stack has a layered architecture programmable at several levels of abstraction available to software developers, as shown in the following figure. The application interfaces from high level to low level are:

  • GStreamer
  • OpenMAX Integration Layer
  • VCU2 Control Software

GStreamer is a cross‑platform open-source multimedia framework. GStreamer provides the infrastructure to integrate multiple multimedia components and create pipelines. The GStreamer plugin is implemented using OpenMAX Integration Layer APIs.

The OpenMAX Integration Layer API defines a royalty‑free standardized media component interface to enable developers and platform providers to integrate and communicate with multimedia codecs implemented in hardware or software.

The VCU2 Control Software is the lowest level software visible to VCU2 application developers.

All VCU2 applications must use the AMD provided VCU2 Control Software, directly or indirectly. The VCU2 Control Software includes custom kernel modules, custom user space library, and the ctrlsw_encoder and ctrlsw_decoder applications. The OpenMAX IL (OMX) layer is integrated on top of the VCU2 Control Software. VCU2 Control Software is mostly running on the MCU, with the kernel driver merely implementing an API Proxy.

User applications can use the layer or layers of the VCU2 software stack that are most appropriate to their requirements.

Figure 1. VCU2 Software Stack

OpenCV VCU2 Support

OpenCV is supported through the Control Software API and through the OpenCV module vcucodec.

The vcucodec module is built as part of the OpenCV build (facilitated through Yocto build).

The repository is here:

https://github.com/Xilinx/opencv_modules_xlnx

Note: This is work in progress and both API and implementation can change unannounced. Documentation of the API is available as Doxygen markup in the header files, as is common for OpenCV.