《电子技术应用》
您所在的位置:首页 > 模拟设计 > 设计应用 > H.265/HEVC熵解码的分组并行流水线实现
H.265/HEVC熵解码的分组并行流水线实现
电子技术应用
王世豪,周志刚,郭 旭,殷先英,薛晓娜,赵靖宇
(杭州电子科技大学 电子信息学院,浙江 杭州 310018)
摘要: 针对高效视频编码(H.265/HEVC)中CABAC熵解码模块的高资源消耗和数据依赖性,设计了一种多路并行的高效FPGA实现结构。根据不同类型语法元素特性,采用分组并行数据调度方法,减少数据处理等待时间和内部存储器访问次数,同时利用流水线技术实现运算加速。评估验证结果表明,熵解码模块吞吐量可以达到1.64位元/时钟周期,满足当下超高清视频实时解码的要求。
关键词: H.265HEVC CABAC FPGA
中图分类号:TN919.81 文献标志码:A DOI: 10.16157/j.issn.0258-7998.223285
中文引用格式: 王世豪,周志刚,郭旭,等. 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.
Parallel pipeline implementation of H.265/HEVC entropy decoding
Wang Shihao,Zhou Zhigang,Guo Xu,Yin Xianying,Xue Xiaona,Zhao Jingyu
(School of Electronics and Information, Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: To reduce the high resource consumption and high data dependency of the CABAC entropy decoding module in the new generation of High Efficiency Video Coding (H.265/HEVC), a multiple parallel CABAC decoding hardware circuit architecture is designed. According to the characteristics of different types of grammar elements in the decoding process, grouped parallel data scheduling is used to reduce the waiting time and the number of internal memory accesses for data processing, while pipeline technology is used to achieve acceleration of the arithmetic module. The design results show that the entropy decoding module has a throughput of 1.84 bins/clock cycle, meeting the current requirements for real-time decoding of UHD video.
Key words : H.265/HEVC;CABAC;FPGA

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)

微信图片_20210517164139.jpg

此内容为AET网站原创,未经授权禁止转载。