分享
基于FPGA的HEVC熵编码语法元素硬件加速设计.pdf
下载文档

ID:3105720

大小:1.28MB

页数:8页

格式:PDF

时间:2024-01-19

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 FPGA HEVC 编码 语法 元素 硬件加速 设计
第 51 卷 第 8 期2023 年 8 月Vol.51 No.8August 2023华 南 理 工 大 学 学 报(自 然 科 学 版)Journal of South China University of Technology(Natural Science Edition)基于FPGA的HEVC熵编码语法元素硬件加速设计林志坚 黄萍 郑明魁 陈平平(福州大学 物理与信息工程学院,福建 福州 350108)摘要:高效视频编码标准(HEVC/H.265)是目前国际市场上广泛采用的视频编码标准。基于上下文自适应二进制算术编码(CABAC)作为HEVC熵编码的核心编码方式,通过建立更加精准的概率模型,提高了算术编码的压缩效率。此外,HEVC定义了更多种类的语法元素并建立更复杂的编码结构,进一步减少信息冗余,从而降低了码率。然而,语法元素作为CABAC的输入,其预处理过程的高复杂性,增加了硬件并行难度,导致熵编码硬件的吞吐率难以提高,成为HEVC编码器实现更高分辨率实时编码的瓶颈之一。为了进一步加快熵编码模块的速度,本文设计了一种基于现场可编程门阵列(FPGA)的高吞吐量CABAC熵编码架构。该架构提出的预头信息编码、上下文模型初始化和编码单元(CU)结构优化策略,可以加快语法元素的产生,以供自适应二进制算术编码器使用;通过高效的残差编码架构和部分上下文索引流水计算方案,在保持高吞吐量的同时,可以减少由复杂计算带来的路径延迟,提高工作频率。本设计使用90 nm 标准单元库进行综合,共使用了 2.099104个逻辑门数,工作频率可以达到200 MHz。本文对HEVC官方提供的视频序列进行仿真测试,统计了在不同量化参数(QP)下编码1个编码树单元(CTU)所需要的时间,实验统计数据表明,本文设计使得编码1个CTU的时间平均节省了38.2%。关键词:熵编码;CABAC;FPGA;吞吐率;语法元素中图分类号:TP391.4文章编号:1000-565X(2023)08-0110-08随着智能手机和短视频的普及,视频在全网数据流量占比已接近70%。2013年,为了满足人们对视频更高质量的要求,国际电联(ITU)正式批准通过了高效视频编码(HEVC/H.265)标准,该标准较高级视频编码(AVC/H.264)标准的编码效率大约提高50%1。编码效率的提升,降低了对视频传输和存储的带宽要求2,因此HEVC可以支持4 k和8 k的分辨率3。熵编码是HEVC的最后一个环节,可以很大程度压缩视频的熵冗余。相较于 AVC/H.264,HEVC保留了唯一的熵编码方式上下文自适应二进制算术编码(CABAC),用于编码片数据(Slice data)。虽然CABAC具有编码效率的优势,但其复杂度也成倍增加4。目前,普遍的CABAC硬件设计1个时钟周期doi:10.12141/j.issn.1000-565X.220350收稿日期:20220606基金项目:国家自然科学基金资助项目(61871132,62171135);福建省自然科学基金资助项目(2020J01466);2020年福建省高等学校科技创新团队(产业化专项);中国福建光电信息科学与技术创新实验室(闽都创新实验室)项目(2021ZR151);Foundation items:Supported by the National Natural Science Foundation of China(61871132,62171135)and the Natural Science Foundation of Fujian Province(2020J01466)作者简介:林志坚(1984-),男,博士,副教授,主要从事视频编码、FPGA设计研究。E-mail:通信作者:郑明魁(1976-),男,博士,副教授,主要从事视频编码、计算机视觉研究。E-mail:第 8 期林志坚 等:基于FPGA的HEVC熵编码语法元素硬件加速设计可以处理1个语法元素,而一些语法元素的上下文索引计算规则复杂4,导致语法元素的生成通常不止1个时钟周期。因此语法元素作为CABAC的输入,其生成速度落后于CABAC的处理速度,导致CABAC模块的空闲,使得该部分的设计成为了提高熵编码实际吞吐量的瓶颈。近年来,CABAC作为熵编码的核心模块备受广大研究者关注,涌现了大量关于优化CABAC硬件结构和提高其吞吐量的研究。文献 5 将熵编码的硬件架构分成数据预处理模块、二值化模块、上下文建模模块和算术编码模块,其中数据预处理模块用于产生语法元素(SE)。该架构可以采用三路并行架构同时进行编码树单元(CTU)的编码,极大提高了熵编码的吞吐量。但该架构熵编码吞吐量的提高并没有针对语法元素的生成结构进行优化,而是通过巨大的电路资源消耗换取。文献 6 针对熵编码的数据依赖性强的特点,提出了预归一化、大概率符号和小概率符号并行等方案,该方案每个时钟平均可以处理4.2个字符。文献 7 中提出的四路残差语法元素方案可以提高残差语法元素的速度,但是设计复杂,并且没有考虑到语法元素的存储消耗问题。文献 8 中通过查找表的方式确定系数组(CG)的扫描位置,解决了对角扫描的复杂变换问题。文献 9 中提出基于乒乓结构的残差编码控制结构,但该结构没有考虑到全零CG块的问题。高吞吐量熵编码器的实现需要有足够的语法元素输入,以确保熵编码器能够持续工作。因此,文中针对加快语法元素产生提出了多种电路优化方案,以减少熵编码模块整体的时间。首先,通过对高效视频编码(HEVC)标准码流信息的分析,提出了预头信息编码、上下文模型初始化和编码单元(CU)结构优化策略,可以加快语法元素的产生,以供自适应二进制算术编码器使用。其次,大多数残差语法元素计算较为复杂,对硬件电路很不友好,而文中提出的高效残差编码架构和部分上下文索引流水计算方案,在保证高吞吐量的同时,可以减少由复杂计算带来的路径延迟,提高工作频率。本文提出的设计充分考虑到各个模块的特性,可以在增加很小硬件面积的情况下,提高熵编码的吞吐量。1熵编码概述1.1HEVC的码流结构视频编解码器共同遵守一套编码结构,以确保解码器可以将码流正确解码,恢复视频。为了提高压缩效率和网络适应性,HEVC设计了新的语法分层处理架构10。从概念上讲,HEVC被分成视频编码层(VCL)和网络抽象层(NAL)11。VCL描述了74个低级语法元素,主要可以分成 4大类:四叉树划分、帧内和帧间预测、变换、量化和环路滤波12。NAL层将压缩的视频数据封装到NAL单元中,增加了 HEVC应用的灵活性11。CABAC将根据这些语法元素来准备要存储或者传输的码流12。图1是HEVC的码流结构,首先,整个码流前端是参数集相关头信息,包括视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS);其次,每个片(Slice)由片头(Slice Header)和片数据(Slice Data)构成,其中,片数据由1个或多个CTU信息构成。每个CTU信息包含环路滤波(LP)参数信息和多个编码单元(CU)信息。每个CU信息包含CU头信息、预测单元(PU)信息和变换单元(TU)信息。1.2CABAC流程CABAC熵编码器的作用是对视频压缩的早期阶段产生的语法元素数据进行无损压缩。在实际编码中,因为每个字符是不可预测的,CABAC采用二进制算术编码方法统计每个输入字符的变化特性,可为每个字符提供精准的上下文模型,从而达到较高的压缩效率。CABAC的基本框架如图2所示,包括二值化、上下文建模和二进制算术编码Slice headerSlice dataSlice_1Slice_2Slice_nCTU_1CTU_2CTU_3CTU_nLPCU_1CU_2CU_nVPS SPS PPS 图1HEVC的码流结构Fig.1Stream structure of HEVC 字符串上下文二值化上下文建模上下文索引算术编码码流更新后的上下文语法元素的值语法元素类型图2CABAC的基本框架Fig.2Basic framework of CABAC111第 51 卷华 南 理 工 大 学 学 报(自 然 科 学 版)3个步骤。二值化是将非二进制语法元素的值转换成二进制字符串。在HEVC中使用了4种不同的二值化方法,包括:一元码、截断一元码、K阶指数哥伦布二值化和定长编码8。HEVC为每个语法元素都指定了对应的二值化方法,可以在不增加传输比特的条件下正确解码7。上下文建模是根据已编码字符的统计特性来估计当前字符的概率5。在HEVC中,不同语法元素或者同一语法元素不同位置的字符,都有不同的上下文模型。根据 HEVC 提供的初始值、量化参数(QP)和片类型可以得到每个字符的初始上下文模型。在编码的过程中,根据输入字符的上下文索引进行查表可以得到相应的上下文模型,并在算术编码结束后,更新对应的上下文模型。算术编码是根据递归区间划分的。在递归的过程中保留编码区间Range和区间下限Low。算术编码包含 3种模式:常规编码、旁路编码和结尾编码10。其中常规编码是基于自适应的概率模型进行编码,需要不断读写概率状态表更新概率状态;而旁路编码是使用等概率的方式进行算术编码,概率状态无需更新10。虽然常规编码相较于旁路编码其编码结构更复杂,但是具有更高的编码效率。2加快语法元素方案分析2.1预编码头信息方案头信息包括参数集头信息和片头信息。参数集头信息包括视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。片头信息主要包括当前Slice的配置参数。如图3所示,在文献 13 的设计中,熵编码模块启动后,需要等待片头信息编码完成后再开始CTU信息编码。而在对视频的第1个CTU信息进行编码之前,不仅需要等待片头信息编码,还需要等待参数集片头信息编码完成后才能启动CTU信息编码。本文提出的预编码头信息方案如图4所示,可以节省等待编码头信息的时间。具体的预编码头信息方案如下:针对参数集头信息,在启动编码器后,可以马上对参数集头信息进行编码。针对片头信息,第1个片头信息的编码是在参数集信息编码完成后进行的,而其它片头信息与CTU信息同时进行编码。因此本文的熵编码模块启动后,都可以马上启动CTU信息的编码。参数集和第1个Slice的头信息不需要计算,可以从配置信息中获取。因此,可以在第1个CTU的待编码信息传入前,提前完成头信息编码。由于每个Slice的压缩数据是独立的,Slice的头信息无法从前1个Slice的头信息推断得到10,所以在对每个参数集头信息编码片头信息编码片头信息编码熵编码模块启动脉冲熵编码模块启动脉冲CTU信息编码CTU信息编码CTU信息编码编码器启动脉冲熵编码模块启动脉冲等待等待启动启动启动启动启动(Slice的第一个CTU)图4本文的预编码头信息方案Fig.4Pre-encoding header information scheme in this paperCTU信息编码CTU信息编码CTU信息编码参数集头信息编码片头信息编码片头信息编码编码器启动脉冲熵编码模块启动脉冲熵编码模块启动脉冲熵编码模块启动脉冲(Slice的第一个CTU)等待等待启动启动启动启动等待启动 图3文献 13 的编码头信息方案Fig.3Encoding header information scheme in literature 13112第 8 期林志坚 等:基于FPGA的HEVC熵编码语法元素硬件加速设计Slice信息进行编码之前编码端都需要编码片头信息。其中,片头信息相关语法元素的编码方式都不是CABAC,不需要使用上下文模型,所以片头信息可以和CTU信息并行编码。因此,本文把不是第1个片的其它片头信息和CTU的信息并行编码,通过码流控制模块选择对应的码流输出,可以节约等待编码片头信息的时间,避免二进制算术编码模块的空闲。图 5 是本文熵编码器状态机转换图,一共有7个状态,分别是原始状态(IDLE)、编码高级语法元 素 状 态(High_Syntax)、编 码 片 头 信 息 状 态(Slice_Header)、上下文模型初始化状态(Context Model_Init)、编码CTU状态(CTU)、清空编码器缓存状态(Slice_End)和生成 cabac_init_flag 状态(Determine)。当检测到编码器启动标志coder_start_i的上升沿时,将启动高级语法元素和片头信息的编码,并分别对3个Slice进行上下文模型初始化;头信息编码和上下文模型初始化结束后,回到原始状态,并将header_cm_done置为高电平,表示上下文模型初始化和头信息编码已经完成,下个Slice的首个CTU进来时,无需进行头信息编码和上下文模型初始化。当检测到start_i信号并且条件1为真时,即表示该CTU为非第1帧的首个CTU,将同时启动片头信息编码、上下文模型初始化和CTU编码进程。当检测到start_i为高电平并且图5中的条件1为假时,则会进入编码CTU的状态,若该CTU不是Slice的最后一个CTU,则CTU编码结束后直接进入原始状态,等待下一个CTU数据的到来,否则end_of_slice_flag 置为高电平,进入 Slice_End状态清空算术编码器的缓存,接着进入Determine状态计算 cabac_init_flag,该标志决定下一个 Slice 的B Slice和P Slice的上下文模型是否互换。2.2上下文模型初始化方案上下文模型初始化是为每个字符提供唯一的初始概率模型10。每个Slice不能跨越它的边界进行预测,因此在熵编码之前需要进行上下文模型初始化。根据 QP、Slice Type 和 HEVC 为各个字符提供的 InitValue 可以计算出每个字符的初始上下文模型。在文献 13 设计中,每次编码新的Slice时,都需要重新计算上下文初始值。而本文提出的上下文模型初始化方案在编码器启动时,将分别计算 B Slice、P Slice 和 I Slice 的上下文模型并存储到对应存储器中,以供每个Slice的上下文模型初始化直接读取,避免重复进行上下文模型初始化。首 先,上 下 文 自 适 应 二 进 制 算 术 编 码(CABAC)中的上下文建模过程需要使用上下文初始化模型,所以上下文模型初始化不可以与CABAC并行。其次,HEVC中每种Slice约有200种字符上下文模型,初始化需要消耗一定的时间,这将造成CABAC模块的空闲。因此,本文提出的上下文模型初始化方案避免了等待上下文模型初始化的过程,从而提高了熵编码的编码效率。熵编码器状态机转换图如图5所示,头信息编码完成后,将启动上下文模型初始化电路。当对视频首个 CTU 进行编码时,header_cm_done 等于 1,表示头信息编码和上下文模型初始化工作已经完成,可以直接进入CTU编码的工作;当编码其他Slice的首个CTU时,将并行对片头信息和CTU进行编码及对上下文模型进行初始化。图6是本研究的上下文模型初始化电路图。其中,context_init_B、context_init_P 和 context_init_I用来分别存储 B、P 和 I Slice 的初始上下文模型;context_update用作编码器实时更新的上下文模型。该模块启动时,控制模块将控制上下文模型初始化电路产生3个Slice的上下文模型,分别存储到context_init_B、context_init_P、context_init_I中。值得coder_start_iHigh SytaxSlice_HeaderContext_Model_InitCTUSlice_EndDetermineIDLEstart_iend_of_slice_flagheader_and_cm_done 条件1=start_i&first_ctu_flag&!header_cm_done 条件1图5本文熵编码器状态机转换图Fig.5Entropy encoder state machine conversion diagram in this paper上下文初始化电路context_init_Bcontext_init_Icontext_init_Pcontext_update控制电路context_addrcontext_addrcontext控制信号QPSlice_type_icontext_new_icontext_idx_icontext_oSlice type 图6上下文模型初始化电路图Fig.6Context model initialization circuit diagram113第 51 卷华 南 理 工 大 学 学 报(自 然 科 学 版)一提的是,在视频编码中,第1个Slice是独立编码的,所以该Slice一定是I Slice。根据这个特点,本文初始化过程中将 contex_update 初始化为 context_init_I,这样编码第1个Slice时,可以跳过上下文模型初始化直接进入编码CTU状态。此后的上下文模型初始化过程只需要 1 个时钟周期,context_update根据Slice类别(Slice_type_i)选择对应的context_init即可。2.3CU结构优化策略因为CABAC对数据依赖性强,熵编码模块必须按照 HEVC 的编码顺序将语法元素依次送入CABAC编码。由于语法元素产生速度与CABAC编码速度不匹配,所以本文将产生的语法元素存放在先进先出模块(FIFO)中,以供CABAC读取。进入CU层编码时,需要依次编码CU层、PU层和TU层的语法元素。计算帧内语法元素时,构建最可能模式(MPM)列表需要消耗较多的时间;计算变换块的语法元素时,变换块的扫描和残差语法元素上下文复杂的计算等都会导致语法元素信息产生速度变慢,从而导致 CABAC 的空闲;进一步,针对QP较大的TU块,包含较多的全零CG块,编码信息较少,残差四叉树的遍历同样会导致CABAC模块的空闲。因此,本文在CU层增加2个FIFO分别用于存储PU和TU层产生的语法元素信息,这样可以缓冲等待生成PU层和TU层语法元素的时间,减少CABAC的空闲时间,提高熵编码的实际吞吐量。图7是CU层级的设计框图。语法元素的信息来源主要分成3个部分:CU层语法元素、PU层语法元素和TU层语法元素,而具体输出哪一部分的语法元素信息是通过CU层的状态机输出的state_o来决定的。2.4残差编码架构设计由文献 14 可知,与变换系数有关的语法元素占总语法元素的65%72%,因此变换系数的编码在熵编码中占举足轻重的地位。1个变换块的变换系数经过扫描可以获得一组一维的变换系数,该组变换系数可以通过最后非零系数位置和幅值信息完全表示10。最后非零系数位置表示经扫描后的第1个非零系数的位置。在HEVC中,通过对最后非零系数位置和幅值信息进行CABAC编码,可以达到压缩的目的。变换块将被划分成若干个 44 大小的 CG 块,并按照一定的扫描顺序,依次对每个CG进行编码。由于扫描顺序中的对角扫描规律和部分残差语法元素的上下文索引计算过程都较为复杂,在硬件架构的设计上会造成时延高的问题。文献 9 中将数据准备和CG编码设计成乒乓结构,以节省等待数据准备的时间,但是没有对数据的扫描进行流水线处理。本文将残差编码架构设计成如图8所示的4级流水线模式,该架构在保证高吞吐量的同时能实现较低延时。第1级流水线中,根据残差系数块的扫描方式和大小,通过查表确定CG的位置。本文将每个CG块的位置信息和CG块的跳转都记录在表里。因此,只需要一个时钟(clk)就可以实现CG位置的获取和CG的跳转。第2级流水线中,向顶层传递CG的位置,查询该CG的残差系数,该过程消耗2个clk。第3级流水线中,根据CG的残差系数和扫描方式计算最后非零系数的位置,该过程消耗 1 个 clk。第4级流水线中,为了减少由语法元素上下文索引复杂计算带来的多路径延迟,本文将该部分独自划分1个模块,只有当CG的残差系数不全为零才进入该模块进行CG编码。4级流水线的设计可以保证CG编码模块的持续工作,持续输出语法元素的同时减少了关键路径的延迟,提高了熵编码模块的工作频率。CU状态机PU(intrainter)TUstart_iCU层语法元素信息PU层语法元素信息TU层语法元素信息FIFO_PUFIFO_TUstart_iCU信息PU信息TU信息语法元素信息state_o 图7CU层级的设计框图Fig.7Design block diagram of the CU hierarchy 第3级第4级第1级第2级CG1位置CG2位置CG3位置残差取值残差取值残差取值最后非零系数位置最后非零系数位置最后非零系数位置CG1编码CG2编码CG3编码图8残差编码流水架构Fig.8Residual code pipeline architecture114第 8 期林志坚 等:基于FPGA的HEVC熵编码语法元素硬件加速设计2.5上下文索引计算经扫描得到CG的一维残差后,HEVC并不是直接将残差送给熵编码模块进行编码,而是进行一番分析和处理后,形成最合适的变换系数表示残差,交由熵编码处理。其中表示位置信息的语法元素 sig_coeff_flag(SIG)和表示幅值信息的语法元素coeff_abs_level_greater1_flag(GR1)的上下文索引计算规则复杂并且数量占比大14,因此如何快速计算SIG和GR1的上下文索引成了加快CG编码的关键问题。文献 7 中使用多时钟域,每个时钟处理4个位置的所有语法元素,不仅会消耗大量的硬件资源,而且会导致工作频率的极大下降。为解决该问题,本文对残差语法元素的特性进行分析,使用3级流水线计算SIG和GR1的上下文索引,可以减少等待上下文索引的计算过程,满足每个时钟编码1个SE,在增加较少的硬件资源的基础上,提高了工作频率。SIG表示该像素点的系数是否为零,1个CG中最多编码16次SIG。GR1表示该像素点的系数是否大于1,1个CG中最多编码8次GR110。SIG和GR1的上下文索引由像素点的位置、YUV分量、变换块的大小和相邻CG的语法元素coded_sub_block_flag(CSBF)的值决定。其中,在编码过程中,像素点的位置是实时变化的,因此本文使用3级流水线计算SIG和GR1的上下文索引,可以缩短等待上下文索引的计算过程,满足每个时钟编码 1 个 SE。第 1级流水线中,根据扫描类型和像素点的索引Res_idx,查找像素点所在的位置。同样,本文将16个像素点的位置和Res_idx记录在表内。第2级流水线中,由像素点的位置、相邻CG的CSBF和TU 的大小计算上下文基础索引 Sig_Base_Ctx 和Gr1_Base_Ctx。第3级流水线中,由YUV分量和基础 索 引 计 算 上 下 文 索 引 增 量 Sig_Icr_Ctx 和Gr1_Base_Ctx并编码。图9是SIG和GR1的上下文索引流水计算架构。3设计验证与结果分析本文提出的熵编码架构包含熵编码的所有模块,已通过Verilog RTL实现,并基于官方参考软件HM16.7,已经通过不同QP、分辨率和视频序列的测试。图10是本文方案的测试框图。测试过程如下:首先,将HM16.7中熵编码模块的输入数据和输出码流打印出来;接着,将打印出来的HM16.7中编码的输入数据作为本文设计的输入。最后,将本文设计的输出码流与HM16.7的输出码流进行一致性对比。本文对HEVC官方提供的视频序列进行仿真测试,统计了在全I帧情况下编码1个CTU所需要的时间,如表1所示。根据结果可知,本文方案应用在QP较大的序列中效果更佳。在预料之中,QP越小,残差系数语法元素所占的比重越大,本文提出的预编码头信息和上下文模型初始化方案的优势将减弱。从表1中可以得到,QP为22时,每个CTU节省了 23.1%32.8%的时间;QP 为 37 时,每个CTU节省了45.2%51.2%的时间。平均每个全I帧的CTU节省了38.2%的周期数。与同类型文献进行比对的结果如表2所示。该表列出了我们所关心的参数,包括硬件工艺、逻辑门个数、最高主频和最高吞吐量,其中硬件工艺是指所选芯片的制造工艺,用栅长长度表示,栅长越短,则可以在相同的硅片上集成更多的晶体管。文献 15 中虽然提出了流水线HEVC熵编码架构,但使用了较多的逻辑门;本文在最高主频达到200 M的同时,使用的逻辑门数比文献 9 减少了61.7%;文献 16 中对残差系数编码中上下文模型的选择算法提出了改进,但无法实现完全流水,本文的残差系数控制方案可以实现完全流水,而且逻辑门个数节约了61.83%;文献 5 中虽然提出了高吞吐量的三路CTU并行编码方案,但其资源消耗是本文设计的6.22倍。像素点位置上下文索引计算编码像素点位置上下文索引计算编码像素点位置上下文索引计算编码第1级第2级第3级图9上下文索引流水计算架构Fig.9Context index for pipeline calculation architectureCABACHM16.7码流相等?错误本文设计的CABAC测试数据码流是正确否 图10测试框图Fig.10Test block diagram115第 51 卷华 南 理 工 大 学 学 报(自 然 科 学 版)4结语随着 CABAC 吞吐量的提高,语法元素作为CABAC的输入,其生成速度成为熵编码实际吞吐量的瓶颈。因此,本文主要针对加快语法元素生成展开工作,并基于官方参考软件HM16.7做了原型验证。结果表明在编码全I帧时,不同QP和序列的1个CTU平均可以节省38.2%的周期数。统计分析指出,残差语法元素信息是构成码流的关键。随着QP减小,残差语法元素的占比增加。通过实验分析可知,随着QP的减小,本文方案的优势降低。因此,笔者将继续优化其他残差语法元素的计算,以确保小QP时CABAC有足够的语法元素输入。参考文献:1 SULLIVAN G J,OHM J R,HAN W J,et alOverview of the high efficiency video coding(HEVC)standardJ IEEE Transactions on Circuits and Systems for Video Technology,2012,22(12):1649-1668.2 CAI Y,FAN Y,HUANG L,et al A fast CABAC hardware design for accelerating the rate estimation in HEVC J IEEE Transactions on Circuits and Systems for Video Technology,2022,32(4):2385-2395.3 ONISHI T,SANO T,NISHIDA Y,et al A single-chip 4K 60-fps 4:2:2 HEVC video encoder LSI employing efficient motion estimation and mode decision framework with scalability to 8K J IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2018,26(10):1930-1938.4 BOSSEN F,BROSS B,SUHRING K,et alHEVC complexity and implementation analysis J IEEE Tran-sactions on Circuits and Systems for Video Technology,2012,22(12):1685-1696.5 周小朋,梁峰,李冰高吞吐率的高效视频编码熵编码并行硬件架构设计 J西安交通大学学报,2020,54(7):180-186.ZHOU Xiaopeng,LIANG Feng,LI BingHigh throughput rate of efficient video encoding entropy encoding parallel hardware architecture design J Journal of Xi an Jiaotong University,2020,54(7):180-186.6 ZHOU D,ZHOU J,WEI F,et al Ultra-high-throughput VLSI architecture of H.265/HEVC CABAC encoder for UHDTV applications J IEEE Transactions on Circuits and Systems for Video Technology,2015,25(3):497-507.7 RAMOS F,SAGGIORATO A,ZATT B,et al Residual syntax elements analysis and design targeting high-throughput HEVC CABAC JIEEE Transactions on Circuits and Systems I:Regular Papers,2019,67(2):475-488.8 卓德珊,傅晨,冯冠雄一种低延迟的HEVC熵编码方法设计J 广播电视网络,2020,27(3):101-106.ZHUO Deshan,FU Chen,FENG Guanxiong A low-latency HEVC entropy encoding method design JBroadcast Television Networks,2020,27(3):101-106.表2硬件结果对比Table 2Comparison of hardware results架构硬件工艺/nm逻辑门个数最高频率/MHz最高吞吐量/(Mb s1)本文方案相对于参考文献减少的逻辑门数百分比/%结果文献 15IDEC18045 09015815853.4文献 9SMIC13054 78020061.7文献 16TSMC13048 94035726143957.1文献 5SMIC55130 7003001 51283.9本文SMIC 9020 990200200表1全I帧下不同QP和序列的1个CTU时钟数节省情况Table 1Number of 1 CTU clocks saved for different QPs and sequences at full I-frame序列foremantrafficfourPeople平均量化步长22372237223729.5原来时钟数消耗/(个 CTU1)21 8719 46227 27412 66827 11212 66818 509.2现在时钟数消耗/(个 CTU1)14 7064 62219 9866 34220 8396 93912 244节省的时钟数百分比/%32.851.226.749.923.145.238.2116第 8 期林志坚 等:基于FPGA的HEVC熵编码语法元素硬件加速设计9 郭勇,王桂海,范益波,等基于HEVC标准的全高清 CABAC 编码器设计 J 电视技术,2014,38(9):71-74.GUO Yong,WANG Guihai,FAN Yibo,et al Full HD CABAC encoder design based on HEVC standardJ Video Engineering,2014,38(9):71-74.10 万帅,杨付正新一代高效视频编码H.265/HEVC:原理、标准与实现 M 北京:电子工业出版社,2014.11 MENASRI W,SKOUDARLI A,BELHADJ A,et alField programmable gate array implementation of variable-bins high efficiency video coding CABAC decoder with path delay optimisation J IET Image Processing,2019,13(6):954-963.12 MENASRI W,MEDDAH K Low level syntax elements study in intra Hevc/H.265 video codec C Proceedings of the 7th International Conference on Image and Signal Processing and Their ApplicationsChengdu:IEEE,2022:1-7.13 王一涛H.265/HEVC CABAC熵编码的研究与硬件实现D 福州:福州大学,2019.14 STANKOWSKI J,KARWOWSKI D,GRAJEK T,et alBitrate distribution of syntax elements in the HEVC encoded video C Proceedings of the 2014 International Conference on Signals and Electronic SystemsPoznan:IEEE,2014:1-4.15 KIM D,MOON J,LEE SHardware implementation of HEVC CABAC encoder C Proceedings of the International SoC Design Conference New York:IEEE,2015:183-184.16 PENG B,DING D,ZHU X,et al A hardware CABAC encoder for HEVC C Proceedings of the IEEE International Symposium on Circuits and SystemsNew York:IEEE,2013:1372-1375.Hardware Acceleration Design of HEVC Entropy Encoding Syntax Elements Based on FPGALIN Zhijian HUANG Ping ZHENG Mingkui CHEN Pingping(College of Physics and Information Engineering,Fuzhou University,Fuzhou 350108,Fujian,China)Abstract:High Efficiency Video Coding(HEVC/H.265)is a widely used video coding standard in the international market.As the core encoding method of HEVC video encoding,Context Adaptive Binary Arithmetic Coding(CABAC)can improve the compression efficiency of arithmetic coding by establishing a more accurate probability model.Moreover,HEVC defines a larger variety of syntax elements and establishes more complex coding structures,further reducing information redundancy and thus reducing the bit rate.However,as the input dat

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开