视频技术之超高清(UHD)H.264视频编解码IP设计
扫描二维码
随时随地手机看文章
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设计的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模块图
帧内编码让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模块图
对于任何闭环的人/机应用低延迟都非常重要。当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核配置中。