《電子技術(shù)應用》
您所在的位置:首頁 > 模拟设计 > 设计应用 > H.265/HEVC熵解码的分组并行流水线实现
H.265/HEVC熵解码的分组并行流水线实现
电子技术应用
王世豪,周志刚,郭 旭,殷先英,薛晓娜,赵靖宇
(杭州电子科技大学 电子信息学院,浙江 杭州 310018)
摘要: 针对高效视频编码(H.265/HEVC)中CABAC熵解码模块的高资源消耗和数据依赖性,设计了一种多路并行的高效FPGA实现结构。根据不同类型语法元素特性,采用分组并行数据调度方法,减少数据处理等待时间和内部存储器访问次数,同时利用流水线技术实现运算加速。评估验证结果表明,熵解码模块吞吐量可以达到1.64位元/时钟周期,满足当下超高清视频实时解码的要求。
關(guān)鍵詞: H.265HEVC CABAC FPGA
中圖分類號:TN919.81 文獻標志碼:A DOI: 10.16157/j.issn.0258-7998.223285
中文引用格式: 王世豪,周志剛,郭旭,等. H.265/HEVC熵解碼的分組并行流水線實現(xiàn)[J]. 電子技術(shù)應用,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能夠在相同的圖像質(zhì)量下實現(xiàn)更低的碼率,即更高的壓縮比[1]?;谏舷挛牡亩M制自適應算術(shù)編碼(Context-Adaptive Binary Arithmetic Coding, CABAC)是H.265/HEVC支持的熵編碼方案。CABAC在熵編碼方案中具有極高的數(shù)據(jù)壓縮率,相對于另一種熵編碼方案基于上下文的自適應可變長編碼(Context-Adaptive Variable Length Coding, CAVLC),在同等編碼質(zhì)量下,CABAC可節(jié)約10%~15%的比特率。

在CABAC中,上下文建模的保持與更新需要大量的計算和內(nèi)部存儲器件的訪問。在解碼過程中,語法元素需要其前面的語法元素來確定上下文地址,在每個binVal被解碼獲得時,解碼過程需要檢查流是否被更改或保持在相同的語法元素中。因此,解碼過程比編碼過程具有更多的依賴性。同時,在標準的熵解碼流程中,由于位流指針(binIdx)的存在,導致熵解碼過程串行程度過高,占用了較長的解碼時間。導致CABAC模塊成為視頻解碼器的吞吐量瓶頸。因此,有必要針對以上問題設(shè)計一種高并行、高吞吐量的硬件結(jié)構(gòu)。

目前CABAC解碼器的工作可以分為3類,分別是基于流水線的時域并行性擴展、基于單周期的多位解碼、基于預測的解碼和基于子區(qū)間重排序的解碼。文獻[2-3]通過流水線的方式擴展時域并行性,但碼流之間的高數(shù)據(jù)依賴使反饋環(huán)路串行程度過高,導致在流水線架構(gòu)中過多的時鐘冗余。文獻[4-9]通過增加額外的解碼邏輯來增加每周期的解碼輸出位,但該種方法實現(xiàn)的時鐘速率較低。文獻[8-9]通過使用基于預測解碼的方法節(jié)省了預存解碼信息的硬件開銷,但帶來了額外的關(guān)鍵路徑延遲,且有較高的預測失誤懲罰,導致了較低的吞吐量。文獻[10]提出適用于HEVC的多路并行硬件CABAC解碼器架構(gòu)。該CABAC解碼器采用multi-bin解碼方式,其吞吐量可達到3 026 Mbins/s。這種結(jié)構(gòu)改進算術(shù)編碼(子區(qū)間重排序),縮短了關(guān)鍵路徑,但這種架構(gòu)前端的碼流控制容易出現(xiàn)性能瓶頸。文獻[11]在算術(shù)編碼子區(qū)間重排序的基礎(chǔ)上,采用5級流水線的結(jié)構(gòu),進一步使用鎖存器來減少熵解碼的面積開銷,布局布線后可實現(xiàn)峰值為1 696 Mbins/s的解碼性能。但使用子區(qū)間排序后,編碼器和解碼器必須同時使用才能保證編解碼一致性,實用性不高。

針對上述方法存在的不足,本文根據(jù)CABAC解碼算法特點和FPGA硬件高并行的特性,提出了一種多路并行的CABAC解碼器。通過將語法元素分組并行處理,減少了內(nèi)部寄存器使用與訪問次數(shù),優(yōu)化了關(guān)鍵路徑,增加了CABAC解碼器的吞吐量,并且在編碼端不需做任何特殊配置,所提出的結(jié)構(gòu)實用性很高。



本文詳細內(nèi)容請下載:http://m.ihrv.cn/resource/share/2000005714




作者信息:

王世豪,周志剛,郭旭,殷先英,薛曉娜,趙靖宇

(杭州電子科技大學 電子信息學院,浙江 杭州 310018)

微信圖片_20210517164139.jpg

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。