视频帧内预测模式的快速选择方法及其装置与流程

文档序号:17063649发布日期:2019-03-08 18:37阅读:155来源:国知局
视频帧内预测模式的快速选择方法及其装置与流程

本申请涉及视频处理领域,特别涉及视频帧内预测模式的快速选择技术。



背景技术:

为了使帧内预测更加精确,更高效地减少冗余,HEVC(High Efficiency Video Coding,高效视频编码)标准采用35种帧内预测(intra predication)模式。但是,在进行帧内编码时,如果依次对35种帧内预测模式使用率失真优化(Rate-Distortion optimization,RDO)以判断出最佳预测模式,则编码器将不能承受将所有预测方向进行RDO的运算量,无法实现最佳模式的判断。为此,HEVC采用了一种“先粗选后细选(Rough-to-Fine)”的模式选择方案,但是,在这种方案下,对于帧内最佳预测模式的选择依然占用整个编码过程的大部分的工作量。因此,亟需一种既能保证编码质量,又能提升帧内预测模式选择效率的方法。

申请内容

本申请的目的在于提供一种视频帧内预测模式的快速选择方法及其装置,以提升帧内预测模式选择的计算效率。

为解决上述技术问题,本申请的实施方式公开了一种视频帧内预测模式的快速选择方法,包括以下步骤:

获取预测块中每个元素的梯度振幅和梯度角度;

对梯度角度进行统计,生成预测块的梯度角度直方图;

如果该预测块的纹理平滑度大于第一预定阈值,则确定该预测块为第一类预测块,并设定该第一类预测块的预测模式为仅包括直流预测模式和平面预测模式;

如果该预测块的纹理平滑度小于第二预定阈值,则确定该预测块为第二类预测块,并设定该第二类预测块的角度预测模式为包括梯度角度直方图中的最大峰值对应的角度预测模式;

其中,第一预定阈值大于第二预定阈值。

本申请的实施方式还公开了一种视频帧内预测模式的快速选择装置,包括:

获取单元,用于获取预测块中每个元素的梯度振幅和梯度角度;

统计单元,用于对梯度角度进行统计,生成预测块的梯度角度直方图;

第一设定单元,用于在预测块的纹理平滑度大于第一预定阈值时,确定该预测块为第一类预测块,并设定该第一类预测块的预测模式为仅包括直流预测模式和平面预测模式;

第二设定单元,用于在预测块的纹理平滑度小于第二预定阈值时,确定该预测块为第二类预测块,并设定该第二类预测块的角度预测模式为包括梯度角度直方图中的最大峰值对应的角度预测模式;

其中,第一预定阈值大于第二预定阈值。

本申请实施方式与现有技术相比,主要区别及其效果在于:

基于预测块本身的纹理内容和特性,将预测块进行分类,对于不同类型的预测块设定不同数目的预测模式,可有效减少进行RDO的候选数目(RDO的计算非常复杂耗时),从而减少计算量,提高计算效率。

进一步地,随着预测块尺寸的减少,预测块的统计特性变弱,容易受噪声等因素的影响,因此,对不同尺寸预测块的角度预测模式数目进行自适应调整,即对于尺寸大的预测块选取较少的角度预测模式,而对于尺寸小的预测块选取数目较多的角度预测模式,可提高确定预测模式的准确性。

进一步地,如果元素为像素,预先计算好所有像素的梯度振幅和梯度角度,可在后续预测模式的选择过程中,供不同尺寸的预测块直接使用,与每次变换预测块尺寸后再进行各像素参数的计算相比,能有效避免不必要的重复计算,极大地提高计算效率。

附图说明

图1是本申请第一实施方式中一种视频帧内预测模式的快速选择方法的流程示意图;

图2是本申请第二实施方式中一种视频帧内预测模式的快速选择方法的流程示意图;

图3是本现有技术中的HEVC的33个角度预测模式角度示意图;

图4是本申请第二实施方式中一预测块的梯度角度直方图;

图5是本申请第二实施方式中三种预测块的图像示意图;

图6是本申请第三实施方式中一种视频帧内预测模式的快速选择装置的结构示意图。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。

本申请第一实施方式涉及一种视频帧内预测模式的快速选择方法,尤其适用于HEVC编码标准的视频帧内预测模式的选择。图1是该视频帧内预测模式的快速选择方法的流程示意图。

具体地,本申请实施方式涉及的是HEVC帧内预测模式的快速选择方法。如图1所示,该视频帧内预测模式的快速选择方法包括以下步骤:

在步骤101中,获取预测块中每个元素的梯度振幅和梯度角度。其中,预测块的元素可以是一个像素,也可以是小于预测块像素总数目的像素集合,例如对于32×32的预测块,其元素可以是单个像素,也可以是4×4、2×2或者8×8大小的像素集合。

步骤102,对梯度角度进行统计,生成预测块的梯度角度直方图。

在本实施方式中,梯度角度直方图中的横坐标可以每个元素的梯度角度,也可以是每个元素的预测角度,其中,每个元素的预测角度是指33个预测角度中与其梯度角度数值最接近的角度,该预测角度对应的角度预测模式也是与该元素的最相关角度预测模式。梯度角度直方图中的纵坐标可以是某个角度预测模式或梯度角度下的像素数目,也可以是某个角度预测模式或梯度角度下的像素梯度振幅的累加值。

步骤103,计算该预测块的纹理平滑度,并确定该预测块的纹理平滑度与第一预定阈值和第二预定阈值之间的大小关系。其中,第一预定阈值大于第二预定阈值。

上述纹理平滑度表示预测块内部元素之间变化的平缓程度,即纹理平滑度越大,则预测块的纹理越少,纹理平滑度越小,预测块的具有的纹理越多,且纹理的方向性越强烈。在本申请的一优选例中,预测块的纹理平滑度是基于预测块元素梯度振幅中的最大梯度振幅或梯度角度直方图中的最大峰值确定的。此外,可以理解,在本申请的其他实施方式中,也可以基于其他因素进行文理平滑度的确定,在此不做限定。

如果该预测块的纹理平滑度大于第一预定阈值,则进入步骤104,此后结束本流程;如果该预测块的纹理平滑度小于第二预定阈值,则进入步骤105,此后结束本流程;如果预测块的纹理平滑度大于第二预定阈值且小于第一预定阈值,则进入步骤106,此后结束本流程。

在步骤104中,确定该预测块为第一类预测块,并设定该第一类预测块的预测模式为仅包括直流(DC)预测模式和平面(Planar)预测模式。

在步骤105中,确定该预测块为第二类预测块,并设定该第二类预测块的角度预测模式为包括梯度角度直方图中的最大峰值对应的角度预测模式。

在步骤106中,确定预测块为第三类预测块,并设定该第三类预测块的角度预测模式为包括梯度角度直方图中的至少两个峰值所对应的角度预测模式。

上述仅仅确定了第二类预测块和第三类预测块的角度预测模式,根据HEVC标准,第二类预测块和第三类预测块的预测模式包括角度预测模式和非角度预测模式,即除了上述确定的角度预测模式,还直流预测模式和平面预测模式。此外,可以理解,第一类预测块,即平坦块纹理很少,块内部元素间的变化很平缓或几乎没有变化,其仅考虑DC和Planar两种非角度预测模式即可达到预测效果,不再计算其角度预测模式,可有效减少计算量。第二类预测块,即强方向纹理块具有很强的纹理,且纹理方向明确,因此,为了减少计算量仅需固定少量的角度预测模式即可达到预测效果。

为了提高预测块的预测精度,上述第二类预测块的角度预测模式还可以包括其他角度预测模式,例如,在本申请的一优选例中,第二类预测块的角度预测模式还包括与最大峰值对应的角度预测模式角度上相邻的N个角度预测模式,其中,N≥1。

此外,在本申请的另一优选例中,上述第二类预测块的角度预测模式的组成可以为:包含梯度角度直方图中最大峰值对应的角度预测模式的一个集合,集合中的角度预测模式对应的角度是连续的,例如,如果最大峰值对应的角度预测模式为26,则集合中包括角度预测模式26-29,或包括角度预测模式24-29,或包括角度预测模式22-26,等等。

随着预测块尺寸的减少,预测块的统计特性变弱,容易受噪声等因素的影响,因此,对不同尺寸预测块的角度预测模式数目进行自适应调整,即对于尺寸大的预测块选取较少的角度预测模式,而对于尺寸小的预测块选取数目较多的角度预测模式,可提高确定预测模式的准确性。因此,在本申请的一优选例中,上述第二类预测块或第三类预测块的尺寸越大,其角度预测模式的数目越少。例如,在步骤106中,第三类预测块的尺寸越大,角度预测模式的数目越少。实际应用中,可将梯度角度直方图中的峰值按照由大到小的次序排列,根据预测块的大小,取前M个峰值对应的角度预测模式作为该预测块的角度预测模式。

在本申请的其他实施方式中,也可以根据其他方式确定峰值的数目,例如,通过获取大于某一峰值阈值的峰值对应的角度预测模式来确定第三类预测块的角度预测模式,预测块的尺寸越大,峰值阈值越大,这样,对于尺寸大的预测块,其角度预测模式的数目还是少于尺寸小的预测块的。

基于预测块本身的纹理内容和特性,将预测块进行分类,对于不同类型的预测块设定不同数目的预测模式,可有效减少进行RDO的候选数目(RDO的计算非常复杂耗时),从而减少计算量,提高计算效率。

本申请第二实施方式涉及一种视频帧内预测模式的快速选择方法。图2是该视频帧内预测模式的快速选择方法的流程示意图。

第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:预测块中的元素为像素,通过预先计算好所有像素的梯度振幅和梯度角度,可在后续预测模式的选择过程中,供不同尺寸的预测块直接使用,与每次变换预测块尺寸后再进行各像素参数的计算相比,能有效避免不必要的重复计算,极大地提高计算效率。

具体地说,上述预测块中的元素为像素,如图2所示,该视频帧内预测模式的快速选择方法包括以下步骤:

在步骤201中,计算所述预测块所在当前帧图像中所有像素的梯度振幅和梯度角度。例如,在本申请的一实际应用中,当前帧图像中每个像素的梯度振幅和梯度角度的计算过程如下:

a)计算每个像素的梯度:Grad(x,y)={dx,dy},该式中的

dx=-p(x-1,y-1)+p(x-1,y+1)-2*p(x,y-1)+2*p(x,

y+1)-p(x+1,y-1)+p(x+1,y+1);

dy=p(x-1,y-1)+2*p(x-1,y)+p(x-1,y+1)-p(x+1,y-1)-2*p(x+1,y)-p(x+1,y+1)。

或者:

dx=-p(x-1,y-1)+p(x-1,y+1)-p(x,y-1)+p(x,y+1)-p(x+1,y-1)+p(x+1,y+1);

dy=p(x-1,y-1)+p(x-1,y)+p(x-1,y+1)-p(x+1,y-1)-p(x+1,y)-p(x+1,y+1)。

或者:

dx=-p(x-1,y-1)+p(x-1,y)-p(x,y-1)+p(x,y);

dy=p(x-1,y-1)+p(x-1,y)-p(x+1,y-1)-p(x+1,y)。

其中,p(x,y)为当前像素点的像素值。

b)梯度振幅GradAmp=abs(dx)+abs(dy)(abs表示取绝对值)

c)梯度角度GradAng=arctan(dy/dx)或者GradAng=dy/dx

此后进入步骤202中,对梯度角度进行统计,生成预测块的梯度角度直方图。在本实施方式的梯度角度直方图中,横坐标为预测模式(33个角度预测模式+DC预测模式+Player预测模式),纵坐标为每个预测模式下的所有像素的梯度振幅的累加值。直方图的具体生成过程如下:

a)计算每个像素的最相关角度预测模式

图3为HEVC的33个角度预测模式或方向(2,3,4,…,10,…,34)。用表格表示如下(只是顺序形式上的变化,是为了计算简化):

mode33=[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,...17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2];

对应这33个角度预测模式或方向,可以预先计算出其对应的梯度角度,如下表:

GradAng33=[-1.000000,-1.230769,-1.523810,-1.882353,-2.461538,-3.555556,-6.400000,-16.000000,9999,16.000000,6.400000,3.555556,2.461538,1.882353,1.523810,1.230769,1.000000,-0.812500,-0.656250,-0.531250,-0.406250,-0.281250,-0.156250,-0.062500,0.000000,0.062500,0.156250,0.281250,0.406250,0.531250,0.656250,0.812500,1.000000];

GradAng33是对应这33种角度预测模式的GradAng值(dy/dx);

对于图像输入进来的每一个像素,根据上面计算得到了dy/dx的值,梯度角度GradAng=arctan(dy/dx)或者GradAng=dy/dx。然后在GradAng33表格中查找最接近的值,比如我们找到了第i个值最接近,而GradAng33的第i个值,对应于mode33表格中的第i个值,则mode33表格中的第i个值就是该像素最相关的角度预测模式;至此,得到了每个像素最相关的角度预测模式。

此处,如果后续会用到预测块的最大梯度振幅,则可计算每个预测块中的最大梯度振幅,即从该预测块包括的像素的梯度振幅中选择出值最大的梯度振幅。

b)生成预测块的梯度角度直方图

在一实例中,对某一个角度预测模式,把所有最相关角度预测模式是该角度预测模式的像素的梯度振幅值累加,则得到该角度预测模式的直方图;再对所有的角度预测模式(33个角度预测模式),得到其角度预测模式直方图,最后得到总的梯度角度直方图(如图4所示)。在该梯度角度直方图中,横坐标2,3,…34表示33种角度预测模式(其预测角度对应于梯度角度)。纵坐标是相应角度预测模式下梯度振幅的累加值。在该梯度角度直方图中,是不是峰值以及是第几峰值,是根据纵坐标值,也就是其梯度振幅的累加值决定的,例如,第一峰值(即最大峰值)其梯度振幅累加值1022,指示的是预测模式(也就是预测角度方向)17;第二峰值其梯度振幅累加值624,指示的是预测模式(也就是预测角度方向)19;第三峰值其梯度振幅累加值422,指示的是预测模式(也就是预测角度方向)18;第四峰值其梯度振幅累加值396,指示的是预测模式(也就是预测角度方向)16。

此后进入步骤203中,计算该预测块的纹理平滑度,并根据该预测块的纹理平滑度与第一预定阈值和第二预定阈值之间的大小关系,对该预测块进行分类。本申请的一具体实现过程如下:

a)先对于预测块是第一类预测块(即光滑平坦块)还非第一类预测块(即非光滑平坦块)进行判断。具体用该预测块的纹理梯度是否很小(即纹理平滑度是否很大)的判断条件来判断;如果满足条件,则是光滑平坦块;否则,不是光滑平坦块。纹理梯度是否很小的判断条件具体用如下特征来衡量:

该预测块中像素的最大振幅<Th_GradAmp,或者该预测块的梯度角度直方图的最大峰值<Th_Peak,其中,Th_GradAmp,Th_Peak是设定的阈值。此处,预测块中像素的最大振幅或梯度角度直方图中的最大峰值越小,其纹理平滑度越大。

该预测块的最大梯度振幅、该预测块的梯度方向直方图的最大峰值,在前面已经计算得到。

b)如果该预测块是非第一类预测块,则判断其是属于第二类预测块(即强纹理方向块)还是第三类预测块(即一般块)。具体地,用该预测块的梯度角度直方图的最大峰值是否占主要地位来进行判断:如果该预测块的梯度角度直方图中的最大峰值占主要地位,则是强纹理方向块,否则是一般块。该预测块的梯度角度直方图的最大峰值是否占主要地位用如下具体特征来进行衡量:

梯度角度直方图中的最大峰值>k*(梯度角度直方图的第二大峰值+梯度角度直方图的第三大峰值),或者

梯度角度直方图的最大峰值>Th_percent*梯度角度直方图的总能量

上述判断条件中,k为参数,比如0.9;Th_percent是设定的阈值,比如60%。

至此,就完成了对预测块的预分类。如图5所示,图5a-c分别表示一具体应用中的平坦块(第一类预测块)、一般块(第三类预测块)和强纹理方向块(第二类预测块)。

此后进入步骤204,设定该预测块的角度预测模式。

如果该预测块是第一类预测块,则设定该预测块的预测模式为仅包括DC预测模式和Planar预测模式两种非角度预测模式;

如果该预测块是第二类预测块,则设定该预测块的预测模式包括3个角度预测模式(梯度角度直方图中最大峰值对应的角度预测模式和与该角度预测模式在角度上相邻的两个角度预测模式)和两个非角度预测模式(DC预测模式和Planar预测模式);

如果该预测块是第三类预测块,则设定该预测块的预测模式包括M个角度预测模式和两个非角度预测模式(DC预测模式和Planar预测模式)。其中,M个角度预测模式为该预测块梯度角度直方图中最大的M个峰值对应的角度预测模式,其中,该M根据预测块的尺寸的不同而不同,预测块的尺寸越大,M越小,预测块的尺寸越小,M越大,比如,对于64x64的预测块,N取2;对于32x32的预测块,N取2;对于16x16的预测块,N取4;对于8x8的预测块,N取6;对于4x4的预测块,N取8。

此后结束本流程。

对预测块进行预分类的好处是:可以减少某些特定块(光滑平坦块、强方向纹理块)进行后续RDO计算的候选数目,从而减少计算量。例如,对于16x16的预测块,如果用最原始的方法,则需要对完整的35(33个角度+2个非角度:DC,Planar)个候选预测模式进行RDO的计算;如果基于图像块的梯度方向直方图判断出大致的方向(即最佳预测模式),则不需要穷尽33个角度,对于一般块只需要对4个角度预测模式加上另外2个非角度预测模式(DC和Planar),进行RDO的计算;对于平坦块,仅需要对两种非角度预测模式(DC和Planar)进行RDO的计算;对于强纹理方向块,仅需要3个角度预测模式加两个非角度预测模式进行RDO的计算。总体上,可有效将RDO计算的模式数目减少。

本申请的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本申请是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Prograxable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Prograxable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Prograxable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。

本申请第三实施方式涉及一种视频帧内预测模式的快速选择装置。图6是该视频帧内预测模式的快速选择装置的结构示意图。

具体地,如图6所示,该视频帧内预测模式的快速选择装置包括:

获取单元,用于获取预测块中每个元素的梯度振幅和梯度角度。

统计单元,用于对梯度角度进行统计,生成预测块的梯度角度直方图。

确定单元,用于计算该预测块的纹理平滑度,并确定该预测块的纹理平滑度与第一预定阈值和第二预定阈值之间的大小关系。其中,第一预定阈值大于第二预定阈值。

第一设定单元,用于在预测块的纹理平滑度大于第一预定阈值时,确定该预测块为第一类预测块,并设定该第一类预测块的预测模式为仅包括直流预测模式和平面预测模式。

第二设定单元,用于在预测块的纹理平滑度小于第二预定阈值时,确定该预测块为第二类预测块,并设定该第二类预测块的角度预测模式为包括梯度角度直方图中的最大峰值对应的角度预测模式。

第三设定单元,用于当预测块的纹理平滑度大于第二预定阈值且小于第一预定阈值时,确定预测块为第三类预测块,并设定该第三类预测块的角度预测模式为包括梯度角度直方图中的至少两个峰值所对应的角度预测模式。

为了提高预测块的预测精度,上述第二类预测块的角度预测模式还包括其他角度预测模式,例如,在本申请的一优选例中,上述第二设定单元在设定第二类预测块的角度预测模式时,还设定该第二类角度预测模式还包括与最大峰值对应的角度预测模式角度上相邻的N个角度预测模式,其中,N≥1。

随着预测块尺寸的减少,预测块的统计特性变弱,容易受噪声等因素的影响,因此,对不同尺寸预测块的角度预测模式数目进行自适应调整,即对于尺寸大的预测块选取较少的角度预测模式,而对于尺寸大的预测块选取数目较多的角度预测模式,可提高确定预测模式的准确性。因此,在本申请的一优选例中,在第三设定模块设定第三类预测块的角度预测模式时,第三类预测块的尺寸越大,角度预测模式的数目越少。

第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

本申请第四实施方式涉及一种视频帧内预测模式的快速选择装置。

第四实施方式在第三实施方式的基础上进行了改进,主要改进之处在于:预测块中的元素为像素,通过预先计算好所有像素的梯度振幅和梯度角度,可在后续预测模式的选择过程中,供不同尺寸的预测块直接使用,与每次变换预测块尺寸后再进行各像素参数的计算相比,能有效避免不必要的重复计算,极大地提高计算效率。

具体地说。上述预测块中的元素为像素,且该视频帧内预测模式的快速选择装置还包括以下单元:

计算单元,用于计算所述预测块所在当前帧图像中所有像素的梯度振幅和梯度角度。

第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。

需要说明的是,本申请各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施方式并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。

需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

虽然通过参照本申请的某些优选实施方式,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1