本发明专利技术属于数字高清视频压缩编解码技术领域,具体为一种适用于HEVC标准的二进制算术编码模块。本发明专利技术设计的二进制算术编码模块分为4级流水线,其中,第一级根据待编码字符bin的状态索引查表得到RangeLPS和shift候选值;第二级用于更新Range值;第三级用于更新low值;最后一级用于将low值不在变化的比特位移出打包作为输出;本发明专利技术采用每个时钟周期处理4个编码字符的编码方式,并对二进制算术编码中的Regular模式,Bypass模式,Terminal模式分开处理,极大的提高了系统的吞吐率。
【技术实现步骤摘要】
本专利技术属于数字高清视频压缩编解码
,针对HEVC视频编解码标准,具体涉及一种适用于HEVC视频编码标准的、二进制算术编码模块。
技术介绍
作为下一代视频编解码标准,HEVC(High Efficiency Video Coding)是于 2013年由国际电信组织(ITU)和运动图像专家组(MPEG)联合成立的组织JCTVC所提出。其目标是,与上一代标准H.264/AVC相比,在相同的视觉效果的前提下,比特率减少50%。上一代视频编解码标准H.264/AVC采用了两种编码方式:基于上下文的可变长编码CAVLC和基于上下文的二进制算术编码CABAC。而在HEVC标准的软件模型HM前期版本中也是采用了这两种编码方式,只是在编码过程,编码语法元素上做了修改。但是大量测试发现,在相同的编码内容上,CABAC比CAVLC节省了 8%~14%码流,因此在HM6.0以后HEVC只保留了 CABAC —种编码方式而不再支持CAVLC编码。在HEVC中米用的二进制算术编码模块是基于传统的算术编码改进而来。该编码方式有以下特点: (1)无损编码方式,适用于图像压缩处理; (2)被编码信息数据的符号序列表示成实数O和I之间的一个小数,无论信息有多长,其输出仅仅是一个数,而且是一个介于O和I之间的二进制小数; (3)在编码过程中需要不断计算被编码字符的概率。算术编码过程可总结如下: (1)编码器在开始时将“当前间隔”设置为; (2)对每一个编码字符编码器在当前间隔进行如下递归处理: Ca)将“当前间隔”按照各个编码字符的概率进行分割; (b)选中当前待编码字符编码器的分割区间为“当前间隔”,并回到(a)继续编码; (3)最后输出的“当前间隔”的下边界就是给定编码序列的算术编码。在硬件当中,整数计算比浮点数计算简单方便,而且在计算编码字符的概率当中除法也需要消耗较大的资源,因此HEVC中采用的二进制算术编码对传统的算术编码进行了以下改进: (1)编码器在开始时将“当前间隔”改为; (2)对当前的待编码字符概率计算由传统的除法运算改为查表计算,并设置了有64个状态的状态表,通过当前待编码字符在状态表中的索引查表计算概率; (3)HEVC建立399个上下文概率模型,不同的语法元素,同一个语法元素二进制序列的不同位对应不同的上下文概率模型,通过概率模型查表可得到相应的状态表索引。
技术实现思路
本专利技术的目的在于设计一种工作频率高、吞吐率高的适用于HEVC标准的二进制算术编码模块。本专利技术设计的二进制算术编码模块,如图1所示,分为4级流水线,其中,第一级根据待编码字符bin的状态索引查表,得到4个RangeLPS候选值以及相应的4个移位shift候选值;第二级用于更新Range值;第三级用于更新low值;最后一级用于将low值不在变化的比特位移出,打包作为输出。每一级流水线具体计算如下: 第一级计算RangeLPS。为了折中由乘法带来的计算复杂度,CABAC将所有的RangeLPS可能取值保存到一个64x4的表格内,而每个待编码字符bin的RangeLPS值需要根据其状态索引PState和当前Range值通过查找表格得到。因为第2、第3、第4个带编码字符bin的Range值在第一级流水线还不能计算出,所以不能确定具体的RangeLPS,为了不影响后续流水线的操作,这里只通过PState变量将4个RangeLPS全部取出,在第二级流水线Range值确定时再确定具体的RangeLPS的值。第二级计算划分区间Range,Range的计算公式由当前待编码字符bin和MPS来决定,当bin不等于MPS时则取概率区间RangeLPS。在编码过程中当Low的值过于小时,会对其进行修正操作,保证二进制计算过程正确进行,为了保证Range和Low值能--对应,对Range也要进行同样的计算操作,以保证计算过程在合理的区间范围内。如果将修正过程放到最后,就不能实现算术编码的四级流水,所以该设计中将修正过程前置,在更新Range的过程中完成Range修正重置计算,同时修正过程中用到的移位shift值由第一级查表得到。第三级计算划分区间下限Low值,同Range的计算过程类似,Low值的计算也是由bin和MPS来决定,并且在计算Low值的过程中还要完成修正的操作过程,经过逐步的移位操作,当计算达到一定程度时,Low值的高位数字不再变化,这时可以将它的高位输出到最终的bit流中去。第四级将Low的更新过程中移位出来的bit进行打包,形成最终的码流。二进制算术编码模块每个周期处理4个待编码字符bin ;每个bin的输入包括其状态索引PState,当前小概率字符LPS以及当前bin的模式MODE,如图2所示。二进制算术编码中有四种编码模式:regular模式,bypass模式,mult1-bypass模式和terminal模式,本专利技术将bypass模式,mult1-bypass模式合为一种模式mbypasss,并在每级流水线中将mbypass,regular和terminal模式分开处理,减小关键路径长度。【附图说明】图1:4级编码流水结构。图2:单个bin的算术编码流水结构。【具体实施方式】下面结合附图,对本专利技术做进一步的描述。首先结合附图1,介绍4个输入之间的数据依赖性。在二进制算术编码模块设计中,每个时钟周期处理4个待编码字符bin,如图1所示。每个bin的输入包括其状态索引PState,当前小概率字符LPS以及当前bin的模式MODE,如图2所示。在第一级流水线中,根据输入PState值会对表格Range Table和Shift Table进行查表,分别得到4个RangeLPS和Shift候选值。在本级中所用到数据只依赖于输入,各个bin之间无数据依赖性,因此4个bin的第一级是完全并行的。在第二级流水线中,4个bin都要更新Range,并且要用到前一个bin的更新后的Range值,因此4个bin之间存在严重数据依赖性:只有前一个bin的Range计算完成之后才能更新当前bin的Range值。第三级同第二级流水线相同,4个bin都要更新Low,并且要要用到前一个bin的更新后的Low值,因此4个bin之间存在严重数据依赖性:只有前一个bin的Low计算完成之后才能更新当前bin的Low值。4个输入bin的第四级流水线是合在一起计算完成bit pack的,没有数据依赖性。然后结合附图2,介绍每个输入bin的计算过程。在第一级流水线中,根据编码字符bin的状态索引PState对表格Range Table和Shift Table进行查表,分别得到4个RangeLPS和Shift候选值;并对这些候选值,输入的小概率字符LPS以及当前bin的模式MODE用寄存器保存下来,进入第二级流水线。在第二级流水线中,首先用前一个bin的Range值作为4_1选择器的输入从4个RangeLPS和Shift候选值中选出正确的RangeLPS和Shift值,然后根据这两个值以及前一bin个Range值分别算出Regular模式,Mbypass模式,Terminal模式以及Invalid模式下的当前bin的Range值,图中Inva本文档来自技高网...
【技术保护点】
一种适用于HEVC标准的二进制算术编码模块,其特征在于:所述二进制算术编码模块分为4级流水线,其中,第一级根据待编码字符bin的状态索引查表得到RangeLPS和shift候选值;第二级用于更新Range值;第三级用于更新low值;最后一级用于将low值不在变化的比特位移出打包作为输出;二进制算术编码模块每个周期处理4个待编码字符bin;每个bin的输入包括其状态索引PState,当前小概率字符LPS以及当前bin的编码模式MODE;二进制算术编码中有四种编码模式:Regular模式,Bypass模式,Multi‑bypass模式和Terminal模式,其中Bypass模式和Multi‑bypass模式合为一种模式Mbypasss,并在每级流水线中将Mbypass、Regular和Terminal模式分开处理,以减小关键路径长度。
【技术特征摘要】
【专利技术属性】
技术研发人员:范益波,程魏,郭勇,黄磊磊,金怡泽,曾晓洋,
申请(专利权)人:复旦大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。