中文引用格式: 王世豪,周志刚,郭旭,等. H.265/HEVC熵解码的分组并行流水线实现[J]. 电子技术应用,2023,49(10):59-64.
英文引用格式: Wang Shihao,Zhou Zhigang,Guo Xu,et al. Parallel pipeline implementation of H.265/HEVC entropy decoding[J]. Application of Electronic Technique,2023,49(10):59-64.
0 引言
与H.264/AVC相比,视频压缩标准H.265/HEVC能够在相同的图像质量下实现更低的码率,即更高的压缩比[1]。基于上下文的二进制自适应算术编码(Context-Adaptive Binary Arithmetic Coding, CABAC)是H.265/HEVC支持的熵编码方案。CABAC在熵编码方案中具有极高的数据压缩率,相对于另一种熵编码方案基于上下文的自适应可变长编码(Context-Adaptive Variable Length Coding, CAVLC),在同等编码质量下,CABAC可节约10%~15%的比特率。
在CABAC中,上下文建模的保持与更新需要大量的计算和内部存储器件的访问。在解码过程中,语法元素需要其前面的语法元素来确定上下文地址,在每个binVal被解码获得时,解码过程需要检查流是否被更改或保持在相同的语法元素中。因此,解码过程比编码过程具有更多的依赖性。同时,在标准的熵解码流程中,由于位流指针(binIdx)的存在,导致熵解码过程串行程度过高,占用了较长的解码时间。导致CABAC模块成为视频解码器的吞吐量瓶颈。因此,有必要针对以上问题设计一种高并行、高吞吐量的硬件结构。
目前CABAC解码器的工作可以分为3类,分别是基于流水线的时域并行性扩展、基于单周期的多位解码、基于预测的解码和基于子区间重排序的解码。文献[2-3]通过流水线的方式扩展时域并行性,但码流之间的高数据依赖使反馈环路串行程度过高,导致在流水线架构中过多的时钟冗余。文献[4-9]通过增加额外的解码逻辑来增加每周期的解码输出位,但该种方法实现的时钟速率较低。文献[8-9]通过使用基于预测解码的方法节省了预存解码信息的硬件开销,但带来了额外的关键路径延迟,且有较高的预测失误惩罚,导致了较低的吞吐量。文献[10]提出适用于HEVC的多路并行硬件CABAC解码器架构。该CABAC解码器采用multi-bin解码方式,其吞吐量可达到3 026 Mbins/s。这种结构改进算术编码(子区间重排序),缩短了关键路径,但这种架构前端的码流控制容易出现性能瓶颈。文献[11]在算术编码子区间重排序的基础上,采用5级流水线的结构,进一步使用锁存器来减少熵解码的面积开销,布局布线后可实现峰值为1 696 Mbins/s的解码性能。但使用子区间排序后,编码器和解码器必须同时使用才能保证编解码一致性,实用性不高。
针对上述方法存在的不足,本文根据CABAC解码算法特点和FPGA硬件高并行的特性,提出了一种多路并行的CABAC解码器。通过将语法元素分组并行处理,减少了内部寄存器使用与访问次数,优化了关键路径,增加了CABAC解码器的吞吐量,并且在编码端不需做任何特殊配置,所提出的结构实用性很高。
本文详细内容请下载:https://www.chinaaet.com/resource/share/2000005714
作者信息:
王世豪,周志刚,郭旭,殷先英,薛晓娜,赵靖宇
(杭州电子科技大学 电子信息学院,浙江 杭州 310018)