Xilinx ZynqMp VCU编解码

ZynqMP VCU是Xilinx Zynq UltraScale+ MPSoC系列中的一个视频编解码单元,它提供了硬件加速的视频编解码功能,可以帮助开发人员更高效地实现视频应用。

Video Codec Unit (VCU) 核编码器块是采用 H.265 (ISO/IEC 23008-2 高效视频编码)和 H.264 (ISO/IEC 14496-10 高级视频编码)标准对视频流进行处理的视频编码器引擎。

1. 使用方法

  • 开发板上安装VCU IP核,并在Vivado中配置和生成相应的硬件设计文件。
  • 在Linux系统中安装VCU驱动程序和用户空间应用程序。这些程序将使用VCU接口软件与VCU IP核进行通信。
    • 默认xilinx-vcu可能编译为模块m,修改内核配置y
    • 驱动设备 /dev/allegroIP
    • 系统工具:ctrlsw_decoder ctrlsw_encoder
  • 在编程期间,您需要使用VCU API来访问VCU接口软件。VCU API提供了一组函数和数据结构,可以帮助您轻松地实现各种视频编解码功能。您可以在VCU API文档中找到所有可用函数的详细信息。
    • 官方API:vcu-ctrl-sw,其中包含编解码例程,也就是工具 ctrlsw_decoder 和ctrlsw_encoder 的源码
    • GitHub - Xilinx/vcu-ctrl-sw
  • 参考资料 pg252 H.264/H.265 Video Codec Unit v1.2 LogiCORE IP Product Guide (xilinx.com)

2. 编码器使用

  • 命令工具
//将yuv图像进行H264编码
ctrlsw_encoder -i yuv420p.yuv -o vcu.h264 --input-width 2736 --input-height 1824 --input-format I420--profile AVC_MAIN
  • 编写代码
    • 官方的例程使用c++编写,包含命令行参数解析,很多的参数设置,文件读写等,较为复杂,下图概括了其必须的重要步骤。

           特别注意:编码数据的接收使用回调函数,还有对缓冲池中缓冲区的引用释放也是通过回调处理。

Xilinx ZynqMp VCU编解码_第1张图片

 3.解码器(略)

你可能感兴趣的:(嵌入式,c语言,c++,fpga开发,图像处理)