超高清(UHD)H.264视频编解码IP移植到Zynq Z-7045 SoC上

作者:Anand V Kulkarni,技术主管,Atria Logic印度私人有限公司,班加罗尔(印度)

Atria Logic公司开发的H.264编解码IP(包括AL-H264E-4KI422-HW编码器和AL-H264D-4KI422-HW解码器)移植到Xilinx Zynq Z-7045 SoC上,能够实现UHD 4K@60fps视频流的操作,如下图所示:

Artia Logic公司开发的H.264编解码IP设计模块图

Artia Logic公司开发的H.264编解码IP设计模块图

Artia Logic设计的AL-H264E-4KI422-HW 编码IP核是基于硬件的,特性丰富,低延迟,高质量,面向H.264(AVC) UHD Hi422帧内编码。AL-H264E-4KI422-HW编码器与AL-H264D-4KI422-HW低延迟解码器配对使用。

该IP核包含的特性如下:

  • 全面的模块化设计,支持用户自定义和扩展
  • 支持帧内H.264和Hi422 5.1编码和解码
  • 集成HDMI2.0接收和发送子系统
  • 支持8/10位编解码
  • 支持RGB,YUV 4:2:2/4:4:4
  • 低延迟 ~0.3秒
  • 支持可变比特率(VBR)和恒定比特率(CBR)方式
  • 视频质量0.99% SSIM,或者50dB PSNR或者更高
  • 视频处理子系统用于预/后处理,包括颜色空间转换,视频缩放和浓度二次抽样
  • 支持Gbps以太网数据流输出
  • 我们需要设计一个方案来评估我们的UHD编码和解码IP核以满足4K@60fps性能需要,那么我们需要一个灵活的,功能强大的平台。最终我们选用Xilinx ZC706评估套件,其是基于Zynq Z-7045 SoC,原因如下:

    • 有一个现成的FMC扩展板卡,提供4K HDMI视频接口:TB-FMC-HDMI 4K 2.0版本子卡
    • Zynq Z-7045 SoC丰富的可编程逻辑资源能够适应编码器和解码器IP逻辑,满足严格的时序要求以达到性能要求
    • Zynq SoC的处理器系统集成了双核ARM Cortex-A9 MPCore处理器,能够让我们有能力修改应用驱动软件和自定义设计,像是应用设计的GUI接口

    H.264编码器支持H.264 Hi422格式配置,5.1标准(3840x2160p30)帧内唯一编码。支持10位视频流这表示从视频条带来看不会出现灰度和颜色退化现象。支持YUV4:2:2视频流意味着能够实现更好的颜色划分——尤其对于红色很明显——这使得图像更加清晰。对于医疗成像场合视频质量非常重要。

    Atria Logic公司UHD H.264编码器IP模块图

    Atria Logic公司UHD H.264编码器IP模块图

    帧内编码让H.264编码器实现帧频延迟,宏模块流水线架构设计则进一步降低延迟:大约0.3毫秒。流水线设计支持每个时钟处理八个像素点,实现实时的4K@60fps视频编码。

    Atria Logic公司开发的这款H.264编码器仅使用了Zynq Z-7045 SoC 78%的可编程逻辑和DSP资源,以及55%的可用RAM,为其他必需电路预留了足够的空间。

    H.264解码器支持H.264 Hi422格式配置,5.1标准(3840x2160p30)帧内唯一编码。同编码器一样支持10位视频流编码,即从视频条带来看不会出现灰度或者颜色退化现象。解码器也支持YUV 4:2:2视频格式,支持帧内解码,采用流水线架构实现解码器的帧率延迟。

    Atria Logic公司 UHD H.264解码器IP模块图

    Atria Logic公司 UHD H.264解码器IP模块图

    对于任何闭环的人/机应用低延迟都非常重要。当AL-H264E-4KI422-HW编码器和AL-H264D-4KI422-HW低延迟解码器通过IP网络连接起来时,玻璃延迟时间大约是0.6毫秒(不包括传输时间)。这大约是两个帧的延迟时间。

    Atria Logic H.264解码器的实现仅占用了Zynq Z-7045 SoC 68%的可编程逻辑资源,35%的DSP资源,以及45%的RAM,为其它必需电路留出了足够的空间。

    HDMI子系统包括两个主要模块:Xilinx LogicCore HDMI TX和RX子系统,如下图所示:

    HDMI收发器(GTX)模块发送和接收串行HDMI TX和RX传输的数据,并且在串行数据流和片上并行数据流之前转换。收发器模块实现并行数据与串行数据之间的相互转换采用的是Zynq SoC高速GT收发器作为HDMI PHY物理层接口。

    TX子系统包括发送模块、AXI Video转换、视频时序控制和可选的HDCP模块。Axi Video数据流通道每个时钟传输两到四个像素点到HDMI TX子系统,并且支持8,10,12位数据编码。这个数据流符合AXI设计参考手册(UG761)中定义的视频传输协议,视频转换模块将输入的AXI-Stream转换为本地视频格式,视频时序控制器用于生成本地视频时序。音频AXI Stream将多通道未压缩的音频数据传输给HDMI TX子系统。Zynq Z-7045 SoC的ARM Cortex-A9处理器通过CPU接口控制HDMI TX子系统的发送模块。

    HDMI RX子系统包括三个AXI协议接口。视频转换桥将捕获的本地视频转换为AXI Stream数据流,将这些视频数据通过AXI Video接口输出,符合AXI设计参考手册(UG761)中定义的协议规范。视频时序控制器则测量视频时序,接收的音频通过AXI Stream音频接口发送出去。CPU接口则实现与外设的控制和状态数据通信。

    HDCP模块是可选的,不含在标准的IP核配置中。

    原文链接:
    https://forums.xilinx.com/t5/Xcell-Daily-Blog/Ultra-HD-H-264-Video-Codec...