Hevc帧内编码单元快速选择方法

文档序号:7863801阅读:289来源:国知局
专利名称:Hevc帧内编码单元快速选择方法
技术领域
本发明提出在高性能视频编码(High Efficiency Video Coding, HE VC)技术,特别涉及在编码中对预测编码单元进行选择的技术。
背景技术
伴随着高清视频技术的发展和成熟,人们日常生活中涌现了大量的高清视频的应用。关于高清视频的各种应用受到了用户的欢迎和青睐。然而,较高的分辨率所带来较大的数据量使得高清视频对视频编解码算法的压缩性能要求更高。目前的视频编解码标准(如
H.264/AVC等)往往不能很好地满足高清视频对压缩性能的要求。为满足新的视频应用对编解码标准的要求,ITU-T/IS0/IEC的视频编码联合协同小组(Joint Collaborative Teamon Video Coding,JCT-VC)日前正在制定新的下一代视频编解码标准HEVC。为适用于视频技术的实时应用,我们需要提高HEVC的编码速度。本发明主要致力于提高HEVC的帧内编码速度,降低计算复杂度。目前,主要有一类HEVC帧内编码的快速算法。即基于预测方向的快速选择。这种方法有通过当前块的梯度信息来判断预测方向;也有利用相邻块的预测方向来辅助判断到当前块的预测方向。然而,这些方法大多是通过实现预测方向的快速选择来提高帧内编码速度。没有尝试从编码单元(CU,Coding Unit)的快速选择的角度去解决问题。事实上,帧内编码时CU的尺度有64x64、32x32、16xl6、8x8。对每一个64x64的最大编码单元(LCU)进行编码的时候,需要从尺度64x64向8x8按照四叉树结构往下遍历进行率失真优化,选取最合适的CU尺度。由于CU的最小尺度为8x8,对于8x8CU来说不能再往下分割成更小的CU。但是8x801的可以分成4个4x4的预测单元(Prediction Unit, PU)来编码。如果我们能快速预测出最终的帧内编码⑶尺度,那么在帧内预测过程中就可以省去很多⑶的预测过程。现有HEVC帧内编码过程中,对每个IXU的编码是通过从64x64(深度最小)到8x8尺度的⑶按照四叉树结构进行遍历。每个⑶在遍历过程中有一个分割标识符(splitflag)。这个splitflag用来判断当前CU是否需要分成四个更小尺度的CU,即计算并比较当前尺寸下⑶的在分割split编码之后的率失真代价Jsplit与不分割unsplit编码的率失真代价Jmsplit的大小;当率失真代价Junsplit小于等于率失真代价Jsplit,则当前的CU不再进行分割,标记该CU的分割标识符为unsplit ;当率失真代价Jmsplit大于率失真代价Jsplit,则当前的CU还需进行分割,标记该该CU的分割标识符为split,并继续使用率失真代价判断在该CU分割后是否还需进一步分割,直至对最小尺度8x8 (深度最大)判断完毕,在当前CU的分割标识符确定的同时,保存分割标识符对应的方式的编码信息来更新当前LCU的相应的编码息。

发明内容
本发明所要解决的技术问题是,一种基于模板匹配的快速选择HEVC帧内编码单元的方法。本发明为解决上述技术所采用的技术方案是,HEVC帧内编码单元快速选择方法,包括以下步骤步骤I、在当前编码帧中依次提取的待预测的最大编码单元LCU中,从最大编码尺度对应的深度对LCU该开始进行编码单元尺度判断;步骤2、计算当前编码帧在当前深度i下的第k个编码单元 〃的非归一化梯度直方图,判断在当前编码帧中当前深度i下已编码的分割标识符为分割split的编码单元数目^以及分割标识符为不分割unsplit的编码单元数目ζ,是否均大于等于预设的模板匹配启动门限N,如否,进行基于率失真代价的编码单元尺度判断,即进入步骤3 ;如是,进行基于模板匹配的编码单元尺度判断,即进入步骤4 ;步骤3、基于率失真代价的编码单元尺度判断步骤对当前深度i下的编码单元《4分别进行unsplit方式编码、split方式编码,比较两种编码方式的率失真代价大 小,选择率失真代价较小的方式为分割标识符赋值;当编码单元《4的分割标识符赋值为unsplit,则进入步骤5 ;如编码单元<^4的分割标识符赋值为split,则进入步骤6 ;步骤4、基于模板匹配的编码单元尺度判断步骤将编码单元C〃:的非归一化梯度直方图与当前编码帧中当前深度i下已编码的编码单元的非归一化梯度直方图进行匹配,找出与编码单元《4最相似的设定个数I个已编码的编码单元;判断I个已编码的编码单元的的分割标识符是否全部相同,如否,返回步骤3 ;如I个已编码的编码单元的的分割标识符均为unsplit,则对编码单元进行unsplit方式编码并对应编码方式下的计算率失真代价,再进入步骤5 ;如I个已编码的编码单元的的分割标识符均为split,对编码单元进行unsplit方式编码并计算对应编码方式下的率失真代价,再进入步骤6 ;其中,I < N ;步骤5、保留以unsplit方式编码的率失真代价以及编码信息,更新当前编码帧中当前深度i下已编码的分割标识符为unsplit的编码单元数目,ζ,初值为O ;步骤6、保留以split方式编码的率失真代价以及编码信息,更新当前编码帧中当前深度i下已编码的分割标识符为split的编码单元数目^=4+1,匕初值为O ;判断当前深度i是否为编码尺度8x8对应的深度,如当前深度为编码尺度8x8对应的深度,再进一步判断当前LCU在当前深度下是否还有需要尺度判断的编码单元,如是,更新k=k+l,返回步骤
2,如否,进入步骤7 ;如当前深度不为8x8对应的深度,则更新当前深度i = i+Ι,返回步骤2 ;步骤7、判断当前LCU中是否还有未编码完成的编码单元,如是,更新当前深度i为下一个未编码完成的编码单元的尺度对应的深度,如否,当前LCU编码完成,进一步判断是否到达当前编码帧的帧尾,如到达帧尾,则当前编码帧编码结束,如未到达帧尾,返回步骤
Io本发明提出一种基于非归一化的梯度直方图的模板匹配方式来实现CU的快速选择,从而提高HEVC帧内预测方法的编码速度的方法。经分析发现,用绝对误差和SAD近似得到的每个⑶的率失真代价与预测像素和源像素的差值成正比,这种正比关系与⑶的非归一化的梯度直方图有关。两个相等尺度的CU,其非归一化的梯度直方图相似程度越高,分割标识符越有可能相等。因此,本发明利用非归一化的梯度直方图作为特征来 判断每个CU是否需要分割成四个更小的CU。在满足模板匹配的条件下,省去了逐一比较编码率失真代价的步骤。本发明的有益效果是,基于非归一化直方图采用模板匹配的方式来预测当前CU的分块方式,计算复杂度低,检测准确率高,法简单而高效,在保证编码质量几乎不损失的前提下极大地降低了 HEVC帧内预测的时间复杂度。


图I为模板匹配快速预测方式示例。
具体实施例方式本发明利用非归一化的梯度直方图作为特征来判断当前CU是否需要分割成四个更小的CU。考虑到在同一个视频帧内,相似的区域可能会重复出现。我们采用一种模板匹配的方式在当前帧前面已编码的相同尺度的CU中,寻找与当前CU的非归一化的梯度直方图最相似I个⑶,通过这I个⑶的对应splitflag来判断当前⑶的splitflag。当这I个CU的splitflag均相同时,当前CU的splitflag也与这I个⑶的splitflag相等。否则,当这I个CU不完全相同时,当前CU按照现有的率失真代价比较方式来判定在分割方式为 split 或 Unsplit0如图I所示,黑色块cuk为当前正在编码的⑶。C=Icuc^cu1,,cud为当前帧已编码的CU的集合,由灰色块和白色块构成。其中灰色块为split块,白色块为unsplit块。模板匹配的过程就是在C中搜索与cuk最相似的I个⑶。如果这I个⑶对于的splitflag相同,那么cuk也采用相同的splitflag。否则,计算当前⑶在split和unsplit情况下的率失真代价,通过比较率失真代价来选择splitflag。即 sphtfla8^=X ^ L ==/"‘<‘, ⑴其中Iniu和Inis分别为I个最匹配的CU中unsplit和split的CU数目。Jsplit和Junspiit分别为当前块按照split和unsplit方式计算得到的率失真代价。另外,对每个深度i的CU来说,如果当前帧已编码的CU只属于一类,则不能很好地区分当前块。因为匹配的时候找到的相似CU也属于这一类。依次下去,整个帧的CU都属于这一类。显然这样预测误差较大。所以要求在模板匹配之前,两类参考CU的数目中最小值必须不小于一个定值,即预设的模板匹配启动门限N min(/;;i,/;J>AA、2其中,和&分别为当前帧中已编码的unsplit⑶和split⑶的数目。由于对于高清图像中较小尺度的CU数目较多,在为使得匹配效果更好,可采用一种类似均匀采样的方式按照一定的步长s对CU进行模板采样匹配,即每s个已编码CU采样一个进行比较。为了让步长s的取值更灵活,步长s为动态步长,s的大小与当前帧中已编码的CU个数有关
5J1 +fs = max(l, pu ^ ps)^ 3 ;T为一个控制参数,可根据经验调节。实施例本发明在HM6. O实验平台上进行实现,步骤如下初始化步骤第I步在当前编码帧中依次提取的待预测的最大编码单元LCU中,从最大编码尺度对应的深度对LCU该开始进行编码单元尺度判断;在对每一帧编码帧各深度i的CU进行 编码之前,&和&初始化为O ;编码单元尺度判断步骤第2步计算当前编码帧在当前深度i下的第k个编码单元的非归一化梯度直方图;判断在当前编码帧中当前深度i下已编码的分割标识符为分割split的编码单元数目t以及分割标识符为不分割Unsplit的编码单元数目ζ,,是否均大于等于预设的模板匹配启动门限N,即判断是否满足min(/^,/jj > Nmmxil; JiiJ > I ,如否,进行基于率
失真代价的编码单元尺度判断,即进入步骤3 ;如是,进行基于模板匹配的编码单元尺度判断,即进入步骤4;步骤3、基于率失真代价的编码单元尺度判断步骤对当前深度i下的编码单元《4分别进行unsplit方式编码、split方式编码,比较两种编码方式的率失真代价大小,选择率失真代价较小的方式为分割标识符赋值;当编码单元的分割标识符赋值为unsplit,则进入步骤5 ;如编码单元《4的分割标识符赋值为split,则进入步骤6 ;步骤4、基于模板匹配的编码单元尺度判断步骤将编码单元《4的非归一化梯度直方图与每隔步长s采样当前编码帧中当前深度i下已编码的编码单元的非归一化梯度直方图进行匹配,找出与编码单元《4最相似的设定个数I个已编码的编码单元;判断I个已编码的编码单元的的分割标识符是否全部相同,即是否max(lmu,Ims) ==1,如否,返回步骤3 ;如I个已编码的编码单元的的分割标识符均为unsplit,则对编码单元进行unsplit方式编码并对应编码方式下的计算率失真代价,再进入步骤5 ;如I个已编码的编码单元的的分割标识符均为split,对编码单元《4进行unsplit方式编码并计算对应编码方式下的率失真代价,再进入步骤6 ;其中,I彡N ;循环判断步骤步骤5、保留以unsplit方式编码的率失真代价以及编码信息,更新当前编码帧中当前深度i下已编码的分割标识符为unsplit的编码单元数目步骤6、保留以split方式编码的率失真代价以及编码信息,更新当前编码帧中当前深度i下已编码的分割标识符为split的编码单元数目^=匕+1;判断当前深度i是否为编码尺度8x8对应的深度,如当前深度为编码尺度8x8对应的深度,再进一步判断当前LCU在当前深度下是否还有需要尺度判断的编码单元,如是,更新k=k+l,返回步骤2,如否,进入步骤7 ;如当前深度不为8x8对应的深度,则更新当前深度i = i+Ι,返回步骤2 ;步骤7、判断当前LCU中是否还有未编码完成的编码单元,如是,更新当前深度i为下一个未编码完成的编码单元的尺度对应的深度,如否,当前LCU编码完成,进一步判断是否到达当前编码帧的帧尾,如到达帧尾,则当前编码帧编码结束,如未到达帧尾,返回步骤
权利要求
1.HEVC帧内编码单元快速选择方法,其特征在于,包括以下步骤 步骤I、在当前编码帧中依次提取的待预测的最大编码单元LCU中,从最大编码尺度对应的深度对LCU该开始进行编码单元尺度判断; 步骤2、计算当前编码帧中在当前深度i下的第k个编码单元cw:的非归一化梯度直方图,判断在当前编码帧中当前深度i下已编码的分割标识符为分割split的编码单元数目C以及分割标识符为不分割unsplit的编码单元数目ζ 是否均大于等于预设的模板匹配启动门限N,如否,进行基于率失真代价的编码单元尺度判断,即进入步骤3 ;如是,进行基于模板匹配的编码单元尺度判断,即进入步骤4 ; 步骤3、基于率失真代价的编码单元尺度判断步骤对当前深度i下的编码单元〃分别进行unsplit方式编码、split方式编码,比较两种编码方式的率失真代价大小,选择率失真代价较小的方式为分割标识符赋值;当编码单元《4的分割标识符赋值为unsplit,则进入步骤5 ;如编码单元的分割标识符赋值为split,则进入步骤6 ; 步骤4、基于模板匹配的编码单元尺度判断步骤将编码单元⑶I的非归一化梯度直方图与当前编码帧中当前深度i下已编码的编码单元的非归一化梯度直方图进行匹配,找出与编码单元c",最相似的设定个数I个已编码的编码单元;判断I个已编码的编码单元的的分割标识符是否全部相同,如否,返回步骤3 ;如I个已编码的编码单元的的分割标识符均为unsplit,则对编码单元进行unsplit方式编码并对应编码方式下的计算率失真代价,再进入步骤5 ;如I个已编码的编码单元的的分割标识符均为split,对编码单元《4进行unsplit方式编码并计算对应编码方式下的率失真代价,再进入步骤6 ;其中,l^N; 步骤5、保留以unsplit方式编码的率失真代价以及编码信息,更新当前编码帧中当前深度i下已编码的分割标识符为unsplit的编码单元数目,/丨 初值为O ; 步骤6、保留以split方式编码的率失真代价以及编码信息,更新当前编码帧中当前深度i下已编码的分割标识符为split的编码单元数目G,=匕+1心初值为O ;判断当前深度i是否为编码尺度8x8对应的深度,如当前深度为编码尺度8x8对应的深度,再进一步判断当前LCU在当前深度下是否还有需要尺度判断的编码单元,如是,更新k=k+l,返回步骤2,如否,进入步骤7 ;如当前深度不为8x8对应的深度,则更新当前深度i = i+Ι,返回步骤2 ; 步骤7、判断当前LCU中是否还有未编码完成的编码单元,如是,更新当前深度i为下一个未编码完成的编码单元的尺度对应的深度,如否,当前LCU编码完成,进一步判断是否到达当前编码帧的帧尾,如到达帧尾,则当前编码帧编码结束,如未到达帧尾,返回步骤I。
2.如权利要求I所述HEVC帧内编码单元快速选择方法,其特征在于,所述步骤4中,将编码单元《4的非归一化梯度直方图与当前编码帧中当前深度i下,按动态步长采样已编码的编码单元的非归一化梯度直方图进行匹配,所述动态步长取值与已编码的编码单元数成正比。
3.如权利要求2所述HEVC帧内编码单元快速选择方法,其特征在于,所述动态步长取值的具体方法为
全文摘要
本发明提供一种HEVC帧内编码单元快速选择方法。由于用绝对误差和SAD近似得到的每个CU的率失真代价与CU的非归一化的梯度直方图有关。两个相等尺度的CU,其非归一化的梯度直方图相似程度越高,分割标识符越有可能相等。本发明使用基于非归一化的梯度直方图的模板匹配方式来实现CU的快速选择,从而提高HEVC帧内预测方法的编码速度的方法。利用非归一化的梯度直方图作为特征来判断每个CU是否需要分割成四个更小的CU。在满足模板匹配的条件下,省去了逐一比较编码率失真代价的步骤。
文档编号H04N7/26GK102917225SQ20121041195
公开日2013年2月6日 申请日期2012年10月25日 优先权日2012年10月25日
发明者李宏亮 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1