专利名称:基于对象的纹理快速运动估值的方法
技术领域:
本发明涉及的是一种运动估值的方法,特别涉及一种基于对象的纹理快速运动估值的方法,属于视频编码技术领域。
背景技术:
在传统的国际视频编码标准中,都是用许多二维矩形帧来表达视频序列,对整个矩形帧统一进行编码,并不区分其中的具体对象。这种视频序列的表达使视频编码器不能对矩形帧中某个具体的对象进行操作,大大限制了视频编码的灵活性。在基于对象的视频编码标准中,对矩形帧的编码转变为对任意形状、独立行为、独立纹理的视频对象的编码。由于视频对象概念的引入,在进行视频编码时需要对视频对象的三类信息进行编码形状编码、运动编码、纹理编码。视频对象平面(VOP)内的纹理信息被分成了许多16×16的宏块,宏块分为三类透明宏块、不透明宏块、边界宏块。为了降低视频序列之间的时间冗余度,提高编码效率,在进行帧间编码时,必须对视频对象的纹理信息进行运动估值和补偿(ME/MC)在参考纹理信息中找到当前编码纹理宏块的最佳匹配块(对应的匹配误差最小),对其运动补偿后的残差块进行编码。在运动估值方法中,全局搜索(FS)方法通过匹配搜索区域内的全部候选参考块,找到最佳的匹配块,因此全局搜索也是最精确的运动估值方法,但是这种方法需要占用整个纹理编码器80%以上的计算量,成为编码器中计算复杂度最高的模块。
经对现有技术文献的检索发现,Shan Zhu等人在IEEE Transactions on ImageProcessing,vol.9,no.2,pp.287-290,Feb.2000(IEEE图象处理汇刊,第9卷,第2期,287-290页,2000年2月)上发表的文章“A New Diamond Search Algorithmfor Fast Block-Matching Motion Estimation”(“一种新的用于快速块匹配运动估值的钻石搜索算法”)中,提出了一种新的快速运动估值算法,称为钻石搜索(DS)算法。该算法通过两个大小不同的搜索窗,寻找具有最小运动补偿的点,该点对应着最终的运动向量。该算法有两个明显的缺陷,一个缺陷是该算法没有利用视频对象的形状特性,是在基于帧的编码环境下提出的,如果只是简单地把这种快速运动估值方法运用到基于对象的视频编码中,有时候会因为视频对象的边界特性而影响运动估值的效果;另一个缺陷是该算法假设全局最小点在零向量周围,而实际上并不是所有的视频序列都能满足这个假设,对于不能满足假设的序列,钻石搜索法很容易陷入局部最小点,从而使运动估值的效果变差。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于对象的纹理快速运动估值的方法(OBS)。使其不仅充分利用了视频对象的形状信息、对象边缘宏块的匹配特性;而且充分利用了对象内部宏块运动的相关性,避免了运动估值时陷入局部最小点;同时充分利用了纹理宏块的编码特性。本发明优于已有的各种快速运动估值方法,而匹配误差保持相近,且该方法和现有方法是互补的,可利用现有方法提出的最佳搜索路径,以进一步提高运动估值的速度。
本发明是通过以下技术方案实现的,具体步骤如下(1)边界纹理宏块的运动估值由于在基于对象的编码中,对象的边缘出现了边界宏块,而边界宏块和对象内部的不透明宏块在进行运动估值时匹配特性是不同的,因此本发明对边界纹理宏块和不透明纹理宏块进行区别对待。对于边界纹理宏块,本发明的核心思想可描述如下由于在基于对象的编码中,在编码纹理宏块之前,先进行相应的形状BAB块(二值形状块)的编码。在编码BAB块时,已经计算出BAB块的形状运动向量MVs。由于边界BAB块和边界纹理宏块是一一对应的,其运动信息非常相似,因此在进行边界纹理宏块的运动估值时,充分利用形状编码时BAB块的MVs,用MVs作为边界纹理宏块运动向量的预测值,从而大大提高运动估值的速度。
在本发明中,边界纹理宏块的运动估值方法为在进行形状编码时,保留相应BAB块的形状运动向量MVs,在参考帧中以MVs确定的位置为中心,±1范围内搜索边界纹理宏块的运动向量MV。如果与边界纹理宏块相应的BAB块是帧内(Intra)编码模式,则令MVs=(0,0)。
本发明用运动估值时的搜索点数来衡量运动估值的速度,用边界纹理宏块运动补偿差值的绝对值和的平均MAE来衡量边界纹理宏块运动估值时的多边形匹配误差,如下式所示
MAE(m,n)=1MΣi=0N-1Σj=0N-1|fk(i,j)-fk-1(i+m,j+n)|×(Alphaoriginal(i,j)≠0)]]>式中N表示宏块的大小,M表示宏块中不透明象素的个数,(m,n)为运动向量,fk(i,j)表示当前宏块的数据,fk-1(i,j)表示运动补偿宏块的数据,Alphaoriginal(i,j)为宏块对应的形状数据。
与全局搜索方法相比,本发明方法大大降低了边界纹理宏块运动估值时的搜索点数,只有原搜索点数的0.83%,而匹配误差保持相近。
(2)对象内部的不透明纹理宏块的运动估值若当前宏块为对象内部的不透明纹理宏块,则要进行常规的运动估值。这是由于虽然不透明BAB块和不透明纹理宏块也是一一对应的,但是它们的运动向量会有很大的差别,因为BAB块在进行运动估值时主要考虑对象的轮廓信息,不透明BAB块很可能匹配参考Alpha平面中邻近的任意一个不透明BAB块。因此不透明纹理宏块仍然要进行常规的运动估值。
在本发明中,该运动估值过程分别从初始搜索点的选取、搜索范围的确定和中断运动估值过程的判断三个方面描述如下①初始搜索点的选取在本发明中,对象内部的不透明纹理宏块进行运动估值时初始搜索点的选取及搜索方法为计算出当前宏块的左边宏块、顶部宏块、右上宏块的运动向量的中值MVmedian。
②搜索范围的确定为了加快运动估值的速度,在本发明中,对象内部的不透明纹理宏块的搜索方法为在参考帧中,以MVmedian确定的位置为中心,±4范围内搜索MV。这样就可以大大减少搜索点数,因为MVD绝大部分都在±4的范围内,所以该方法并不会明显增加匹配误差。仿真实验结果表明,本发明的搜索点数只有常规方法搜索点数的8.33%,而匹配误差几乎没有增加。
对于最佳搜索路径的选择,可以利用已有的快速运动估值方法提出的最佳搜索路径。前面已经阐述了采用本发明不会陷入匹配误差的局部最小点,所以利用其它的快速运动估值方法不会影响运动估值的效果。因此,本发明和现有的快速运动估值方法是互补的,最佳运行方式是联合使用。例如在±4搜索范围内本发明可以采用钻石搜索、四步搜索、新三步搜索等快速方法。能够联合使用其它运动估值方法是本发明的优点。
③中断运动估值过程的判断在运动估值过程中,如果当前宏块与候选的参考宏块之间的匹配满足一定的精度以后,可以中断运动估值过程,无需继续搜索,这样可以减少搜索点数,而并不会明显增加匹配误差。
在本发明中,使用两种中断运动估值过程的判断方法第一种如果当前宏块的左边宏块、顶部宏块、右上宏块都是帧间编码,且三个宏块的运动向量相同,则中断运动估值过程,当前宏块的运动向量等于邻近宏块的运动向量。仿真实验结果表明,采用该中断判断方法时搜索点数减少了很多,从而加快了运动估值的过程,而匹配误差并没有明显增加。
第二种分别计算宏块中四个块的匹配误差SAD8×8值,如果四个块都满足SAD8 ×8<20×QP,则可以判定进行运动补偿后的残差宏块经过DCT-量化以后为全0,中断运动估值过程。对边界宏块进行运动估值时也采用该中断判断方法,其中SAD是宏块运动补偿残差的绝对值和。
本发明用SAD来衡量运动估值过程中宏块的匹配误差时,SAD由下式给出SAD(m,n)=Σi=0NΣj=0N|fk(i,j)-fk-1(i+m,j+n)|×(Alphaoriginal(i,j)≠0)]]>式中N表示宏块的大小,fk(i,j)表示当前宏块的数据,fk-1(i,j)表示运动补偿宏块的数据,(m,n)为运动向量,Alphaoriginal(i,j)表示当前宏块对应的形状信息。
仿真实验结果表明,随着量化参数的增大,搜索点数在不断的减少,从而加快了运动估值的速度,这在低码率的应用中非常有用;此时匹配误差虽然增大了一些,但并不影响整体的编码效率,因为此时的运动补偿残差最终被量化为0,并不编码。
无论是满足上述某一种中断运动估值过程的判断条件,还是搜索到了最后一个搜索点,运动估值过程都会停止,并得到最终的运动向量MV。
与现有的纹理快速运动估值算法相比,本发明方法充分利用了视频对象的形状信息与对象边缘宏块的匹配特性,这也是本发明的核心思想。本发明采用边界形状块的形状运动向量作为边界纹理宏块运动向量的初始值,然后再进一步地的搜索得到最终的运动向量,从而极大地提高了边界纹理宏块的运动估值速度。本发明还充分利用了对象内部宏块运动的相关性,以周围临近宏块运动向量的中值作为不透明纹理宏块运动估值时的搜索中心,从而使起始搜索点距离最终的运动向量更近,不仅避免了运动估值时运动补偿误差陷入局部最小点,而且可以在更小的搜索范围内搜索最终的运动向量,运动补偿误差并不会有明显的增加。另外,本发明还充分利用了纹理宏块的编码特性,通过两个中断运动估值过程的判断方法来进一步提高运动估值的速度。
图1为本发明流程2为本发明方法中当前宏块的邻近宏块分布示意图具体实施方式
以下结合附图和方法的内容提供本发明的实施例。
如图1所示,本发明可以分为以下几个步骤。
(1)边界纹理宏块的运动估值在本发明中,首先判断当前宏块是否为边界纹理宏块,若是边界纹理宏块,则对其进行的运动估值方法为在进行形状编码时,保留相应BAB块的形状运动向量MVs,在参考帧中以MVs确定的位置为中心,±1范围内搜索边界纹理宏块的运动向量MV。如果与边界纹理宏块相应的BAB块是帧内(Intra)编码模式,则令MVs=(0,0)。
表1采用不同搜索方法时边界纹理宏块运动估值的运行结果比较(搜索范围为±15)
表1给出了分别采用全局搜索(FS)方法和本发明方法(OBS)时,边界纹理宏块运动估值的运行结果比较。测试序列为100帧,CIF(352×288)格式。本发明用运动估值时的搜索点数来衡量运动估值的速度,用边界纹理宏块运动补偿差值的绝对值和的平均(MAE)来衡量边界纹理宏块运动估值时的多边形匹配误差,如下式所示MAE(m,n)=1MΣi=0N-1Σj=0N-1|fk(i,j)-fk-1(i+m,j+n)|×(Alphaoriginal(i,j)≠0)]]>式中N表示宏块的大小,M表示宏块中不透明象素的个数,(m,n)为运动向量,fk(i,j)表示当前宏块的数据,fk-1(i,j)表示运动补偿宏块的数据,Alphaoriginal(i,j)为宏块对应的形状数据。
从表1中可以看出,与全局搜索方法相比,采用OBS方法大大降低了边界纹理宏块运动估值时的搜索点数,只有原搜索点数的0.83%,而匹配误差保持相近。
(2)对象内部的不透明纹理宏块的运动估值在本发明中,若当前宏块不是边界纹理宏块,即当前宏块是对象内部的不透明纹理宏块,则对该宏块进行的运动估值过程包括初始搜索点的选取、搜索范围的确定和中断运动估值过程的判断三个步骤。
①初始搜索点的选取初始搜索点的选取及搜索方法为计算出当前宏块的左边宏块、顶部宏块、右上宏块的运动向量的中值MVmedian,邻近宏块的分布如图2所示,在参考帧中以MVmedian确定的位置为中心,开始搜索运动向量MV。
表2邻近宏块MV取中值的方法
中值MVmedian的计算方法如表2所示,可描述如下·如果当前宏块只有一个相邻宏块,则若该相邻宏块是帧间(Inter)编码,则MVmedian取作该相邻宏块的MV,若该相邻宏块是帧内(Intra)编码,则MVmedian取作(0,0);·如果当前宏块有两个相邻宏块,则若两个相邻宏块都是帧内编码,则MVmedian取作(0,0),若两个相邻宏块都是帧间编码,则MVmedian取作相邻宏块MV的中值,若两个相邻宏块一个是帧内编码,另一个是帧间编码,则MVmedian取作该帧间编码宏块的MV;·如果当前宏块有三个相邻宏块,则若三个相邻宏块全都是帧内编码,则MVmedian取作(0,0),若三个相邻宏块全都是帧间编码,则MVmedian取作相邻宏块MV的中值,若三个相邻宏块中一个是帧内编码,另两个是帧间编码,则MVmedian取作相邻宏块MV的中值,若三个相邻宏块中一个是帧间编码,另两个是帧内编码,则MVmedian取作该帧间编码宏块的MV;需要说明的是在取中值时,如果只有两个邻近宏块,则令第三个邻近宏块的MV=(0,0);如果有三个邻近宏块但其中有一个是帧内编码,则令帧内编码宏块的MV=(0,0)。表3给出了分别以零向量(0,0)和邻近宏块运动向量的中值作为搜索中心时,不透明纹理宏块运动估值的运行结果比较。测试序列为100帧,CIF(352×288)格式。从表3中可以看出,采用本发明的方法进行不透明纹理宏块的运动估值时,匹配误差并没有明显的变化,说明本发明的方法是可行的。
表3选取不同初始搜索点时不透明纹理宏块运动估值的运行结果比较(搜索范围为±15)
②搜索范围的确定在本发明中,为了加快运动估值的速度,不透明纹理宏块的搜索方法为在参考帧中,以MVmedian确定的位置为中心,±4范围内搜索MV。这样就可以大大减少搜索点数,因为MVD绝大部分都在±4的范围内,所以该方法并不会明显增加匹配误差。表4给出了采用常规方法和本发明方法时不透明纹理宏块运动估值的运行结果比较。测试序列为100帧,CIF(352×288)格式。从表中可以看出,本发明搜索点数只有常规方法搜索点数的8.33%,而匹配误差几乎没有增加。
表4采用不同搜索方法时不透明纹理宏块运动估值的运行结果比较
③中断运动估值过程的判断在本发明中,第一种中断运动估值过程的判断方法为如果当前宏块的左边宏块、顶部宏块、右上宏块都是帧间编码,且三个宏块的运动向量相同,则中断运动估值过程,当前宏块的运动向量等于邻近宏块的运动向量。表5给出了分别采用全局搜索和本发明的第一种中断判断方法时不透明纹理宏块运动估值的运行结果比较。测试序列为100帧,CIF(352×288)格式。从表5中可以看出,采用本发明中断判断方法时搜索点数减少了很多,从而加快了运动估值的过程,而匹配误差并没有明显增加。
表5采用全局搜索和第一种中断判断方法时不透明纹理宏块运动估值的运行结果比较
在本发明中,第二种中断运动估值过程的判断方法为分别计算宏块中四个块的匹配误差SAD8×8值,如果四个块都满足SAD8×8<20×QP,则可以判定进行运动补偿后的残差宏块经过DCT-量化以后为全0,中断运动估值过程。对边界纹理宏块进行运动估值时也采用该中断判断方法。表6给出了分别采用全局搜索和本发明第二种中断判断方法时,边界纹理宏块和不透明纹理宏块运动估值的运行结果比较。从表中可以看出,随着量化参数的增大,搜索点数在不断的减少,从而加快了运动估值的速度,这在低码率的应用中非常有用;此时匹配误差虽然增大了一些,但并不影响整体的编码效率,因为此时的运动补偿残差最终被量化为0,并不编码。
表6采用全局搜索和第二种中断判断方法时全部宏块运动估值的运行结果比较(100帧CIF序列)
无论是满足上述某一种中断运动估值过程的判断条件,还是搜索到了最后一个搜索点,运动估值过程都会停止,并得到最终的运动向量MV。
本发明的运动估值速度大大快于全局搜索方法的运动估值速度,并且优于其它的快速运动估值方法,而匹配误差保持相近。为了对比,这里给出了全局搜索方法(FS)、钻石搜索方法(DS)、本发明提出的基于对象搜索方法(OBS)和本发明的OBS+钻石搜索方法的实验结果。使用QCIF(176×144)和CIF(352×288)格式的MPEG-4标准测试序列,每个序列的长度为100帧,第一帧为IVOP编码模式,后面99帧都为PVOP编码模式(即IPPP…),宏块的搜索范围为±16。
测试序列的基本特征为“Akiyo”和“Weather”为QCIF格式,“News”、“Container”、“Coastguard”和“Stefan”为CIF格式;其中“Container”、“Akiyo”和“News”为慢速运动序列,“Coastguard”和“Weather”为中等运动序列,“Stefan”为快速运动序列。
用宏块运动补偿差值的绝对值和的平均(MAE)来衡量宏块运动估值时的匹配误差,用运动估值时的搜索点数来衡量运动估值的速度。表7给出了仿真实验的统计结果。
从表7中可以看出,OBS方法的MAE和FS、DS方法对应的MAE非常接近,但要稍微大一些,主要是因为在OBS方法的第二种中断判断方法中,当判断出候选的匹配块对应的残差块经过DCT-量化后为全零块时,将停止运动估值,此时对应的MAE将比较大,但并不影响最终的编码效率,因为全零块并不进行编码;另外,边界纹理宏块利用其对应的形状块的运动向量作为预测值然后在比较小的范围内搜索纹理运动向量,也会略微增加MAE。
从表7中还可以看出,与其它的快速运动估值方法相比,本发明搜索速度最快。由于本发明与其它快速运动估值方法在技术上是互补的,所以当OBS方法联合其它快速运动估值方法(例如钻石搜索方法)在±4的范围内搜索运动向量时,搜索点数可进一步降低,即运动估值的速度可进一步加快。
表7各种运动估值方法的运行结果比较(测试序列100帧)
从表7中可以得出如下结论(1)本发明方法对各种序列进行运动估值的效果都很好;(2)本发明方法的运动估值速度大大优于全局搜索方法的运动估值速度,并且优于其它的快速运动估值方法,而匹配误差保持相近;(3)当本发明方法联合其它的快速运动估值方法时(例如钻石搜索方法)时,其平均的搜索点数可进一步减少,即运动估值的速度可进一步加快,因此本发明方法(OBS)联合其它的快速运动估值方法是最佳的运行方式,这样可以充分利用各个方法的优点。
与现有的纹理快速运动估值算法相比,本发明的优点是(1)充分利用了视频对象的形状信息与对象边缘宏块的匹配特性;(2)采用边界形状块的形状运动向量作为边界纹理宏块运动向量的初始值,然后再进一步地的搜索得到最终的运动向量,从而极大地提高了边界纹理宏块的运动估值速度;(3)充分利用了对象内部宏块运动的相关性,以周围临近宏块运动向量的中值作为不透明纹理宏块运动估值时的搜索中心,从而使起始搜索点距离最终的运动向量更近,不仅避免了运动估值时运动补偿误差陷入局部最小点,而且可以在更小的搜索范围内搜索最终的运动向量,运动补偿误差并不会有明显的增加;(4)还充分利用了纹理宏块的编码特性,通过两个中断运动估值过程的判断方法来进一步提高运动估值的速度。
权利要求
1.一种基于对象的纹理快速运动估值的方法,其特征在于,步骤如下(1)边界纹理宏块的运动估值在进行形状编码时,保留相应BAB块的形状运动向量MVs,在参考帧中以MVs确定的位置为中心,±1范围内搜索边界纹理宏块的运动向量MV,如果与边界纹理宏块相应的BAB块是帧内编码模式,则令MVs=(0,0);(2)对象内部的不透明纹理宏块的运动估值①初始搜索点的选取计算出当前宏块的左边宏块、顶部宏块、右上宏块的运动向量的中值MVmedian;②搜索范围的确定在参考帧中,以MVmedian确定的位置为中心,±4范围内搜索MV;③中断运动估值过程的判断包括两种方法,具体如下第一种如果当前宏块的左边宏块、顶部宏块、右上宏块都是帧间编码,且三个宏块的运动向量相同,则中断运动估值过程,当前宏块的运动向量等于邻近宏块的运动向量;第二种分别计算宏块中四个块的匹配误差SAD8×8值,如果四个块都满足SAD8×8<20×QP,则判定进行运动补偿后的残差宏块经过DCT-量化以后为全0,中断运动估值过程,对边界宏块进行运动估值时也采用该中断判断方法,其中SAD是宏块运动补偿残差的绝对值和;无论是满足上述某一种中断运动估值过程的判断条件,还是搜索到了最后一个搜索点,运动估值过程都会停止,并得到最终的运动向量MV。
2.根据权利要求1所述的基于对象的纹理快速运动估值的方法,其特征是,所述的步骤(2)的初始搜索点的选取,当前宏块的左边宏块、顶部宏块、右上宏块的运动向量的中值MVmedian的计算方法如下·如果当前宏块只有一个相邻宏块,则若该相邻宏块是帧间编码,则MVmedian取作该相邻宏块的MV,若该相邻宏块是帧内编码,则MVmedian取作(0,0);·如果当前宏块有两个相邻宏块,则若两个相邻宏块都是帧内编码,则MVmedian取作(0,0),若两个相邻宏块都是帧间编码,则MVmedian取作相邻宏块MV的中值,若两个相邻宏块一个是帧内编码,另一个是帧间编码,则MVmedian取作该帧间编码宏块的MV;·如果当前宏块有三个相邻宏块,则若三个相邻宏块全都是帧内编码,则MVmedian取作(0,0),若三个相邻宏块全都是帧间编码,则MVmedian取作相邻宏块MV的中值,若三个相邻宏块中一个是帧内编码,另两个是帧间编码,则MVmedian取作相邻宏块MV的中值,若三个相邻宏块中一个是帧间编码,另两个是帧内编码,则MVmedian取作该帧间编码宏块的MV;需要说明的是在取中值时,如果只有两个邻近宏块,则令第三个邻近宏块的MV=(0,0);如果有三个邻近宏块但其中有一个是帧内编码,则令帧内编码宏块的MV=(0,0)。
3.根据权利要求1所述的基于对象的纹理快速运动估值的方法,其特征是,在所述的第二种中断运动估值过程的判断方法,用SAD来衡量运动估值过程中宏块的匹配误差,SAD由下式给出SAD(m,n)=Σi=0NΣj=0N|fk(i,j)-fk-1(i+m,j+n)|×(Alphaoriginal(i,j)≠0)]]>式中N表示宏块的大小,fk(i,j)表示当前宏块的数据,fk-1(i,j)表示运动补偿宏块的数据,(m,n)为运动向量,Alphaoriginal(i,j)表示当前宏块对应的形状信息。
4.根据权利要求1所述的基于对象的纹理快速运动估值的方法,其特征是,所述的步骤(1)中,用运动估值时的搜索点数来衡量运动估值的速度,用边界纹理宏块运动补偿差值的绝对值和的平均MAE来衡量边界纹理宏块运动估值时的多边形匹配误差,如下式所示MAE(m,n)=1MΣi=0N-1Σj=0N-1|fk(i,j)-fk-1(i+m,j+n)|×(Alphaoriginal(i,j)≠0)]]>式中N表示宏块的大小,M表示宏块中不透明象素的个数,(m,n)为运动向量,fk(i,j)表示当前宏块的数据,fk-1(i,j)表示运动补偿宏块的数据,Alphaoriginal(i,j)为宏块对应的形状数据。
全文摘要
一种基于对象的纹理快速运动估值的方法,属于视频编码技术领域。步骤如下(1)边界纹理宏块的运动估值在参考帧中以MVs确定的位置为中心,±1范围内搜索边界纹理宏块的运动向量MV,如果与边界纹理宏块相应的BAB块是帧内编码模式,则令MVs=(0,0);(2)对象内部的不透明纹理宏块的运动估值包括从初始搜索点的选取、搜索范围的确定和中断运动估值过程的判断。本发明优于已有的各种快速运动估值方法,而匹配误差保持相近,且该方法和现有方法是互补的,可利用现有方法提出的最佳搜索路径,以进一步提高运动估值的速度。
文档编号H04N7/26GK1688165SQ20051002659
公开日2005年10月26日 申请日期2005年6月9日 优先权日2005年6月9日
发明者张瑞, 周军, 余松煜, 支琤 申请人:上海交通大学