一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法技术

技术编号:10233144 阅读:231 留言:0更新日期:2014-07-18 13:40
本发明专利技术涉及一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法,该方法首先通过增加子系数块邻块类型矩阵并提出一种子系数块邻块类型矩阵快速更新方法,提高了子系数块间信息获取的速度;其次,构造了系数类型值与子系数块邻块类型和系数坐标之间的关系表,并通过预先计算及查表的方法快速获得系数编码所需上下文模型偏移值,提高了上下文模型选择速度。本发明专利技术所提出的针对高效视频编码HEVC变换系数的熵编码上下文模型偏移值快速计算方法能够在保证编码质量的前提下,有效提高HEVC变换系数熵编码的速度。

【技术实现步骤摘要】
一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法
本专利技术属于多媒体编码领域,具体涉及一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法,是一种通过修改编码数据结构及过程提高HEVC熵编码上下文模型选择效率的方法。
技术介绍
HEVC是新一代视频编码标准,在预测编码、变换量化编码获得相应参数之后,需要进行熵编码以减少写入码流的熵冗余。HEVC采用了基于上下文的自适应二元算术编码(CABAC),CABAC主要包括几个步骤:(1)二元化:对于非二元的参数需要首先进行二元化,以更方便在算术编码阶段进行概率划分;(2)上下文建模:在参数编码过程中,需要依据不同参数场景选择不同的上下文模型;(3)算术编码:获得参数及其上下文模型后,进行算术编码写入码流。HEVC中的CABAC熵编码算法能够获得较高的编码性能,但由于以下两方面的原因,导致其计算复杂度显著较高:(1)HEVC熵编码相比H.264/AVC编码逻辑更加复杂,H.264/AVC在系数编码过程中,编码系数非零标志位后,直接编码非零系数的余值及符号位,HEVC在编码系数非零标志位后,还需对部分非零系数编码是否大于1或是否大于2的标志位;(2)为了更好地减少统计冗余,提高对较大变换单元系数熵编码的效率,算术编码中系数非零标志位上下文模型选择依赖参数较多,对每个参数算术编码前均需要获取其上下文模型,而在选择上下文模型前又需要计算或读取多个编码特征参数,计算复杂度高的同时,在获取相邻子系数块信息及类型时访存也较多,导致熵编码上下文模型选择的计算复杂度显著提高。综合两方面原因,HEVC熵编码特别是系数编码上下文选择算法复杂度显著高于H.264/AVC。本专利技术主要针对HEVC熵编码上下文模型选择计算复杂度高的问题进行优化。已有一些方法对上下文模型选择计算复杂度进行优化,采用合并多个参数上下文模型方法,减少变换系数编码时上下文模型选择依赖的参数数量,降低熵编码计算复杂度,但这种简单的通过减少上下文模型和参数数量来降低熵编码计算复杂度的方法,不可避免会影响熵编码的性能。本专利技术通过修改变换系数熵编码中子系数块间系数信息的存储结构,提高了子系数块间信息获取的效率;构造子系数块的相邻块类型值和系数坐标确定的系数类型值关系表,并通过预先计算及查表的方法快速获得系数非零标志位编码所需模型参数,降低复杂模型参数计算导致的高计算复杂度。从而在不影响编码性能的前提下,有效减少熵编码时间复杂度。
技术实现思路
针对HEVC变换系数熵编码复杂度高的问题,本专利技术公开了一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法。该方法首先通过增加子系数块的相邻块类型矩阵,提高了子系数块间信息获取的速度;其次,构造子系数块的相邻块类型值和系数坐标确定的系数类型值关系表,通过预先计算及查表的方法快速获得系数非零标志编码所需模型参数,提高上下文模型选择速度。实验表明本方法能够在保证编码性能的前提下,有效地减少熵编码时间。为实现上述目的,本专利技术采用下述技术方案:步骤(1)、在当前变换系数块熵编码开始前,通过子系数块的相邻块类型和系数一维坐标建立系数类型值的查询表,建立子系数块的相邻块类型矩阵uiSigCoeffGroupPat,并预先计算并存储变换矩阵类型值iOffset,所述变换矩阵类型值iOffset是由变换系数矩阵的大小,扫描方向和编码分量三个值计算得到的编码参数;所述子系数块的相邻块类型包括4类,0号类-3号类;步骤(2)、从最后一个非零子系数块开始对当前变换系数块扫描,对每一个扫描的子系数块执行步骤(3)至步骤(5),直至扫描完整个变换系数块;步骤(3)、对于当前子系数块,预先计算子系数块类型值iType并存储,若由子系数块非零标志矩阵获知当前子系数块存在非零系数则在子系数块相邻块类型矩阵中传播类型信息,并根据当前子系数块的相邻块类型信息选择子系数块非零标志位编码的上下文模型;步骤(4)、对当前子系数块,若其为变换系数块最后一个非零子系数块,则从该非零子系数块最后一个非零系数开始逆序依次扫描每一个系数,否则从最后一个系数开始逆序依次扫描每一个系数;并重复执行步骤(5),直至扫描完当前子系数块所有系数;步骤(5)、对于每个系数,由子系数块的相邻块类型和系数坐标查询系数类型值cnt,并与预先计算的变换矩阵类型值iOffset值和子系数块类型值iType值加和得到系数非零标志位上下文模型偏移uiCtxSig。所述步骤(1)具体包括如下步骤:步骤(11)、将子系数块的相邻块类型和系数坐标确定的系数非零类型关系转化为一维关系表格;步骤(12)、建立存储子系数块的相邻块类型值的uiSigCoeffGroupPat矩阵,用于在后续步骤中,采用较少访问内存的方式传播非零子系数块信息以获得每个子系数块的相邻块类型值,uiSigCoeffGroupPat矩阵中每个单元与子系数块一一对应,变换矩阵最大为32×32,子系数块大小为4×4,因此uiSigCoeffGroupPat矩阵大小为8×8,系数矩阵熵编码开始前初始化为全零矩阵;步骤(13)、由当前变换系数矩阵的大小,扫描方向和编码分量计算变换矩阵类型值iOffset。所述步骤(3)具体包括如下步骤:步骤(31)、由编码分量和当前子系数块位置计算子系数块类型值iType;步骤(32)、由子系数块非零标志矩阵uiSigCoeffGroupFlag获取当前子系数块是否存在非零系数信息,若当前子系数块存在非零系数,则当前子系数块的上侧子系数块对应的uiSigCoeffGroupPat矩阵中单元值加2,当前子系数块的左侧子系数块对应的uiSigCoeffGroupPat矩阵中单元值加1;步骤(33)、获取uiSigCoeffGroupPat矩阵中当前子系数块的相邻块类型值,可由判断当前子系数块的相邻块类型值是否非零求出子系数块的相邻块非零信息,得到子系数块非零标志位编码上下文模型偏移GroupSig,即可依此选择子系数块非零标志位编码上下文模型。所述步骤(5)具体包括如下步骤:步骤(51)、由子系数块编码前获取的当前子系数块的相邻块类型值,以及当前系数在子系数块中的坐标,通过查表获得当前系数类型值cnt;步骤(52)、由变换矩阵类型值iOffset、子系数块类型值iType和系数类型值cnt加和,得到系数非零标志位编码上下文模型偏移uiCtxSig,即可依此选择系数非零标志位编码上下文模型。本专利技术与现有技术相比的优点在于:1.本专利技术建立了子系数块的相邻块类型矩阵,并提出了一种系数块的相邻块类型矩阵快速更新方法,降低了子系数块的相邻块类型及非零信息获取的访存复杂度;2.预先计算系数非零标志位编码上下文模型偏移所需参数值,避免在每个系数非零标志位编码时进行重复计算;3.建立了系数类型值与子系数块邻块类型和系数一维坐标之间的关系表,在已知子系数块邻块类型和系数一维坐标后,可直接查表快速获得系数类型值,避免坐标转换和如图5所示的二维查表;4.本专利技术能够在不影响变换系数熵编码性能的同时,有效降低变换系数熵编码上下文模型选择的计算复杂度。附图说明图1为相邻子系数块类型为0时子系数块中不同位置系数的系数类型值。图2为相邻子系数块类型为1时子系数块中不同位置系数的系数本文档来自技高网
...
一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法

【技术保护点】
一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法,其特征在于:该方法步骤如下:步骤(1)、在当前变换系数块熵编码开始前,通过子系数块的相邻块类型和系数一维坐标建立系数类型值的查询表,建立子系数块的相邻块类型矩阵uiSigCoeffGroupPat,并预先计算并存储变换矩阵类型值iOffset,所述变换矩阵类型值iOffset是由变换系数矩阵的大小,扫描方向和编码分量三个值计算得到的编码参数;所述子系数块的相邻块类型包括4类,0号类‑3号类;步骤(2)、从最后一个非零子系数块开始对当前变换系数块扫描,对每一个扫描的子系数块执行步骤(3)至步骤(5),直至扫描完整个变换系数块;步骤(3)、对于当前子系数块,预先计算子系数块类型值iType并存储,若由子系数块非零标志矩阵获知当前子系数块存在非零系数则在子系数块相邻块类型矩阵中传播类型信息,并根据当前子系数块的相邻块类型信息选择子系数块非零标志位编码的上下文模型;步骤(4)、对当前子系数块,若其为变换系数块最后一个非零子系数块,则从该非零子系数块最后一个非零系数开始逆序依次扫描每一个系数,否则从最后一个系数开始逆序依次扫描每一个系数;并重复执行步骤(5),直至扫描完当前子系数块所有系数;步骤(5)、对于每个系数,由子系数块的相邻块类型和系数坐标查询系数类型值cnt,并与预先计算的变换矩阵类型值iOffset值和子系数块类型值iType值加和得到系数非零标志位上下文模型偏移uiCtxSig。...

【技术特征摘要】
1.一种HEVC变换系数的熵编码上下文模型偏移值快速计算方法,其特征在于:该方法步骤如下:步骤(1)、在当前变换系数块熵编码开始前,通过子系数块的相邻块类型和系数一维坐标建立系数类型值的查询表,建立子系数块的相邻块类型矩阵uiSigCoeffGroupPat,并预先计算并存储变换矩阵类型值iOffset,所述变换矩阵类型值iOffset是由变换系数矩阵的大小,扫描方向和编码分量三个值计算得到的编码参数;所述子系数块的相邻块类型包括4类,0号类-3号类;步骤(2)、从最后一个非零子系数块开始对当前变换系数块扫描,对每一个扫描的子系数块执行步骤(3)至步骤(5),直至扫描完整个变换系数块;步骤(3)、对于当前子系数块,预先计算子系数块类型值iType并存储,若由子系数块非零标志矩阵获知当前子系数块存在非零系数则在子系数块相邻块类型矩阵中传播类型信息,并根据当前子系数块的相邻块类型信息选择子系数块非零标志位编码的上下文模型;步骤(4)、对当前子系数块,若其为变换系数块最后一个非零子系数块,则从该非零子系数块最后一个非零系数开始逆序依次扫描每一个系数,否则从最后一个系数开始逆序依次扫描每一个系数;并重复执行步骤(5),直至扫描完当前子系数块所有系数;步骤(5)、对于每个系数,由子系数块的相邻块类型和系数坐标查询系数类型值cnt,并与预先计算的变换矩阵类型值iOffset值和子系数块类型值iType值加和得到系数非零标志位上下文模型偏移uiCtxSig;所述步骤(1)具体包括如下步骤:步骤(11)、将子系数块的相邻块类型和系数坐标确定的系数非零类型关系转化为一维关系表格;步骤(12)、建立存储子系数块的相邻块类型值的uiSigCoeffGroupPat矩阵,用于在后续步骤中,采用较少访问内存的方式传播非零子系数块信息以获得每个子...

【专利技术属性】
技术研发人员:张永飞徐飞樊锐姜宏旭李波
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1