专利名称:基于对象边缘的形状快速运动估值的方法
技术领域:
本发明涉及的是一种快速运动估值的方法,更具体地,是涉及一种基于对象边缘的形状快速运动估值的方法,属于视频编码技术领域。
背景技术:
针对视频编码技术的发展,运动图像专家组(MPEG组织)制定了MPEG-4国际标准,提供对任意形状视频对象的编码功能。在基于对象编码的MPEG-4标准中,每个视频对象通常由三类信息描述形状信息、运动信息和纹理信息,其中形状编码是MPEG-4基于对象视频编码的关键。形状编码的核心算法是基于上下文的算术编码(CAE),分为帧内CAE和帧间CAE,分别用于形状信息的帧内编码和帧间编码。当进行帧间形状编码时,为了提高CAE的编码效率,必须对对象的形状信息进行运动估值在参考形状信息中找到当前编码二值α块(BAB)的最佳匹配块,这是决定CAE编码效率的关键。MPEG-4验证模型中的形状运动估值采用全局搜索(FS),通过匹配搜索区域内的全部候选参考块,找到最佳匹配块,实现了最精确的运动估值。但该方法要占用形状编码器90%以上的计算量,成为编码器中计算复杂度最高的模块。
经对现有技术的文献检索发现,Tsung-Han Tsai等人在IEEE视频技术电路与系统汇刊(IEEE Transactions on Circuits and Systems for Video Technology),Vol.14,NO.6,pp.908-913,Jun.2004上发表的“一种MPEG-4形状编码的快速二值运动估值算法”(A Fast Binary Motion Estimation Algorithm for MPEG-4Shape Coding)中,提出基于边界像素的形状快速运动估值(BPB)方法,大大提高了形状运动估值的速度,该方法的核心思想是利用视频对象的边界像素,有两方面的改进第一是用加权的差值绝对值和(WSAD)代替差值的绝对值和(SAD)来衡量匹配误差,可以避免形状运动向量残差(MVDs)过大而导致编码比特数增加;该方法对SAD和MVDs同时进行了加权,用其加权和WSAD来衡量BAB块的匹配误差,为了得到最佳的加权效果,需要选取合适的加权系数W1和W2。但在衡量BAB块的匹配误差时,SAD仍是最主要的决定因素,所以只应该适当考虑MVDs的大小,并且确定两个加权系数比确定一个加权系数要困难。
第二,该方法认为当前BAB块中的对象轮廓应该和参考BAB块中的对象轮廓相互重叠,因此在运动向量的搜索范围内,可以跳过大量的搜索点,这些跳过搜索点对应的参考BAB块中的对象轮廓和当前BAB块中的对象轮廓不重叠。但当视频对象平面(VOP)的边界变化比较大时,最佳匹配点往往不在VOP的边界像素处,此时只在VOP的边界像素处进行BAB块的匹配就不合适了,这也是该方法的弊端。
发明内容
本发明针对现有技术的不足,提出了一种基于对象边缘的形状快速运动估值(OBB)的方法,使其可以实现形状的实时编码,大大提高了形状运动估值的速度,而且形状的编码效率并没有降低。
本发明是通过以下技术方案实现的,具体步骤如下(1)形状运动向量预测值MVPs选取如果形状运动向量预测值MVPs选取的越准确,则MVPs距离最终的形状运动向量MVs就越近,即MVDs=MVs-MVPs越小,因此MVDs的编码比特数就越少;而且在后面的运动估值过程中,可以MVPs为中心,用更小的搜索范围来搜索MVs,这就可以大大减少搜索点数,加快形状运动估值的速度,而不会明显增加VOP形状的编码比特数。对于BAB块,因为属于同一个对象,所以邻近BAB块之间的形状运动向量MVs有很强的相关性。在现有的形状运动估值方法中,均选取候选运动向量列表{MVs1,MVs2,MVs3,MV1,MV2,MV3}中第一个有效的运动向量作为当前BAB块的形状运动向量预测值MVPs,但是这种方法并没有充分利用多个邻近BAB块之间形状运动向量的强相关性,而只是简单地利用了其中一个邻近BAB块的形状运动向量信息。
因此,本发明中,用当前BAB块的邻近BAB块形状运动向量{MVs1,MVs2,MVs3}的中值或者邻近纹理块运动向量{MV1,MV2,MV3}的中值作为当前BAB块的形状运动向量预测值MVPs,从而使MVDs变得更小,MVDs的编码比特数也就相应的减少,提高了VOP形状的编码性能。
(2)中间跳过方法确定MVPs以后,当前BAB块在参考Alpha平面中的初始运动补偿块MC-BAB也就确定了。在MPEG-4的验证模型中,如果BAB块中每一个4×4子块对应的匹配误差都小于等于16×AlphaTH,说明匹配精度满足了要求,则跳过后面的搜索过程,形状运动估值结束。但是这种方法跳过的BAB块并不多,整个形状运动估值的速度得不到明显的提高。如果BAB块被跳过,MVDs并不需要编码,节约了VOP形状的编码比特数。为了提高形状运动估值的速度,在确保不明显增加VOP形状编码比特数的情况下,可以适当降低匹配精度,使更多的BAB块跳过后面的搜索过程。
因此,本发明方法将BAB块跳过后面的搜索过程而结束形状运动估值的条件改为如果当前BAB块与MC-BAB块之间的匹配误差小于等于阈值TH,则形状运动估值过程结束,最终的MVs=MVPs。使用这种中间跳过方法,更多的BAB块跳过了后面的运动估值过程,节约了大量的计算量;而VOP形状的编码比特数并没有增加,反而下降了。这种VOP形状编码比特数的改善,可以用来弥补后面因快速运动估值时匹配精度不足而造成的编码比特数上升。
(3)匹配误差函数的选取在形状编码过程中,需要编码MVDs,因此MVDs的大小将直接影响VOP形状的编码比特数。在MPEG-4验证模型的形状运动估值算法中,用运动补偿差值的绝对值和SAD作为匹配误差函数,即用SAD来衡量BAB块的匹配误差。当通过SAD来得到最佳匹配时,如果MVDs比较大,同样会增加形状的编码比特数,因此在形状运动估值过程中,也应该考虑MVDs的大小。为了降低较大的MVDs对VOP形状编码的影响,本发明方法通过加权的SADweight来衡量BAB块的匹配误差,可以在SAD和MVDs之间保持一个平衡,在搜索最小SAD的同时确保MVDs不会很大,从而使VOP形状的编码比特数尽量减少。
(4)搜索区域的确定当确定了当前BAB块的形状运动向量预测值MVPs以后,在参考Alpha平面内以MVPs确定的位置为中心进行搜索,得到最终的形状运动向量MVs。为了加快形状运动估值的速度,在本发明的方法中,以MVPs确定的位置为中心,±4范围内搜索MVs。因为MVDs绝大部分都在±4的范围内,所以该方法并不会明显增加VOP形状的编码比特数。对于BAB块的三种类型来说,透明BAB块不需要编码,不透明BAB块一般都匹配参考Alpha平面中的不透明BAB块,其匹配误差为0,在中断方法中属于跳过的BAB块,无需继续后面的搜索过程。因此,在搜索MVs的过程中,主要是进行边界BAB块的匹配。
在本发明方法中,充分利用对象的边界特性进行边界BAB块的形状运动估值。对于当前的边界BAB块,在参考Alpha平面中对应的参考BAB块几乎都是边界块。基于这种考虑,在进行边界BAB块的形状运动估值时,只需要在参考Alpha平面的VOP边界附近进行BAB块的匹配,这样在搜索范围内就可以大大减少匹配BAB块的数目。并且对于非常关键的VOP边界处搜索区域的确定,本发明采用了一种灵活的确定VOP边界处搜索区域的宽度的方法,兼顾了运动估值的速度和编码效率。
本发明方法更加充分地利用了邻近形状BAB块之间形状运动向量的相关性,提高了形状运动向量预测值的精度,即形状运动向量的预测值距离最终形状运动向量更近,因此可以在更小的范围内搜索最终的形状运动向量,从而大大提高了形状运动估值的速度,而VOP形状的编码比特数并没有明显的增加;该方法还充分利用了形状运动估值时的边界特性——这也是该方法的核心思想,把搜索区域设定在VOP的边界附近,这样大大提高了形状运动估值的速度,而边界BAB块的匹配精度并没有明显的下降,因此VOP形状的编码比特数也不会有明显的增加。仿真结果表明,本发明优于现有的形状运动估值方法形状运动估值速度大大超过现有算法的形状运动估值速度,其平均搜索点数只有MPEG-4验证模型中算法搜索点数的0.82%,而形状的编码效率并没有降低。
图1本发明方法流程图。
具体实施例方式
以下结合附图和方法的内容提供具体的实施例。
如图所示,本发明可分为以下几个步骤(1)形状运动向量预测值MVPs的选取用当前BAB块的邻近BAB块形状运动向量{MVs1,MVs2,MVs3}的中值或者邻近纹理块运动向量{MV1,MV2,MV3}的中值作为当前BAB块的形状运动向量预测值MVPs。具体方法如下·如果邻近BAB块的{MVs1,MVs2,MVs3}中存在有效值,则(1)如果只有一个有效的MVs,MVPs等于该MVs;(2)如果只有两个有效的MVs,则令第三个无效的MVs等于(0,0),MVPs=Median(MVs1,MVs2,MVs3);[注Median()表示取中值。](3)如果三个MVs都是有效的,则MVPs=Median(MVs1,MVs2,MVs3)。
·如果{MVs1,MVs2,MVs3}都是无效的,但邻近纹理块的{MV1,MV2,MV3}中存在有效值,则(1)如果只有一个有效的MV,MVPs等于该MV;(2)如果只有两个有效的MV,则令第三个无效的MV等于(0,0),MVPs=Median(MV1,MV2,MV3);(3)如果三个MV都是有效的,则MVPs=Median(MV1,MV2,MV3);·如果{MVs1,MVs2,MVs3,MV1,MV2,MV3}都是无效的,则MVPs=(0,0)。
当确定了MVPs以后,计算当前BAB块与MVPs确定的参考BAB块之间的匹配误差,如果该匹配误差不大于预先设定的阈值,说明MVPs确定的参考BAB块已经达到了匹配精度,则跳过后面的运动估值过程,最终的MVs=MVPs,MVDs=0。如果MVPs确定的BAB块不能达到要求的匹配精度,则需要继续后面的运动估值过程,搜索最终的MVs,并编码MVDs。
表1给出了分别采用MPEG-4验证模型中选取MVPs的方法和本发明改进的中值预测方法时,被跳过的BAB块的数目。测试序列为300帧CIF格式的“Akiyo”,“Weather”和“Stefan”序列。从表中可以看出,采用本发明改进的中值预测方法后,跳过的BAB块增加了,说明使用邻近BAB块MVs的中值作为MVPs更加精确,从而使许多BAB块对应的匹配误差都不大于预先设定的阈值。因为跳过的BAB块不需要继续后面的运动估值过程,所以跳过的BAB块越多,形状运动估值的速度就越快。表1同时给出了采用不同MVPs选取方法时,VOP形状的平均编码比特数,用Bits/VOP表示。从表中可以看出,使用本发明方法,VOP形状的编码比特数减少了,主要是因为(1)跳过的BAB块增多,其对应的MVDs为0,不需要编码MVDs;(2)没有跳过的BAB块对应的MVDs变小,更多的分布在(0,0)附近,因此MVDs的编码比特数减少。
表1采用MVPs不同选取方法时跳过的BAB块以及形状编码比特数的比较
在形状运动向量的编码过程中,只需要编码传输MVDs,而不是编码传输MVs;在解码端,当选取MVPs以及解码MVDs以后,可以立即计算出MVs=MVPs+MVDs。由于MPEG-4已经标准化,MPEG-4的标准解码器是以邻近BAB块的第一个有效MVs作为MVPs,因此为了使标准解码器能够正确解码,当传送MVDs给解码器时,应该把邻近BAB块MVs的中值与第一个有效MVs之间的差值计算在MVDs中。即设采用本发明方法选取的MVPs=MVmedian,采用验证模型中的方法选取的MVPs=MVfirst,则计算得到的MVDs=MVDs+(MVmedian-MVfirst)。此时MVDs的编码比特数可能会有所增加,但增加的并不明显,而且由于采用下面描述的算法也可以节约一些编码比特数,所以采用整个方法后并不会明显增加形状编码比特数,对于大部分测试序列,编码比特数还会减少。
(2)中间跳过方法确定MVPs以后,当前BAB块在参考Alpha平面中的初始运动补偿块MC-BAB也就确定了。BAB块跳过后面的搜索过程而结束形状运动估值的条件为如果当前BAB块与MC-BAB块之间的匹配误差小于等于阈值TH,则形状运动估值过程结束,最终的MVs=MVPs。通过实验测试(测试序列300帧CIF格式的“Akiyo”,“Container”,“Coastguard”,“Weather”,“News”,“Stefan”),选取TH=255×10。通过仿真发现,对于不同的测试序列,被跳过的BAB块占全部BAB块的比例为19.5~63%,这就可以明显加快整个形状运动估值的速度。表2给出了分别采用MPEG-4验证模型的中间跳过方法和本发明改进的中间跳过方法时,被跳过的BAB块的数目以及VOP形状的平均编码比特数。从表中可以看出,使用本发明中间跳过方法,更多的BAB块跳过了后面的运动估值过程,节约了大量的计算量;而VOP形状的编码比特数并没有增加,反而下降了。
表2采用不同的中间跳过方法时跳过的BAB块以及形状编码比特数的比较
(3)匹配误差函数的选取通过加权的SADweight来衡量BAB块的匹配误差,在SAD和MVDs之间保持一个平衡,在搜索最小SAD的同时确保MVDs不会很大,从而使VOP形状的编码比特数尽量减少。采用下式来衡量BAB块的匹配误差SADweight=SAD+0.5×(|MVDs_x|+|MVDs_y|)式中MVDs_x和MVDs_y分别为MVDs的水平和垂直分量。
表3给出了分别采用基于边界像素算法中的加权WSAD方法以及本发明加权SADweight方法时,VOP形状的平均编码比特数。本发明的方法与基于边界像素算法中的加权WSAD方法的效果相近,本发明要好一些。另外本发明计算加权SADweight时只需要一个乘法,而基于边界像素算法计算加权WSAD时却需要两个乘法,这在实时编码中浪费了一定的计算量。
表3选取不同的匹配误差函数时形状编码比特数的比较
(4)搜索区域的确定当确定了当前BAB块的形状运动向量预测值MVPs后,在参考Alpha平面内以MVPs确定的位置为中心,±4范围内搜索MVs。
在本发明中,VOP边界处搜索区域的宽度为8,其确定方法为在参考Alpha平面中,以每一个像素点为顶点,形成一个8×8的块,如果该块为边界块,即块中既有VOP内的像素又有VOP外的像素,则该点在VOP的边界搜索区域内;如果该块是透明块或者不透明块,则该点不在VOP的边界搜索区域内。如果期望进一步提高形状运动估值的精度,可以把8×8块放大,最大为16×16,但形状运动估值的速度将会降低;如果期望进一步提高形状运动估值的速度,可以把8×8块缩小,但形状运动估值的精度将会降低,影响编码效率。
确定MVPs以后,对于没有跳过的BAB块,需要继续搜索最终的MVs,其搜索过程如下·在进行BAB块运动估值之前,在参考Alpha平面的VOP边界附近确定边界BAB块的搜索区域;·当进行BAB块的运动估值时,在参考Alpha平面中,以MVPs确定的位置为中心,±4范围内搜索最终的MVs;·在±4范围内搜索MVs时,如果搜索点不在预先确定的VOP边界搜索区域内,则跳过该搜索点,继续下一个搜索点的匹配。
下面使用300帧不同的测试序列对MPEG-4验证模型中形状运动估值算法、基于边界像素的形状快速运动估值算法和本发明方法这三种形状运动估值算法进行仿真,表4给出了仿真的统计结果。
从表4中可以得出本发明方法对各种运动类型的序列效果都很好,其形状运动估值的速度大大超过验证模型中的算法和基于边界像素算法的形状运动估值速度,平均搜索点数只有MPEG-4验证模型中算法搜索点数的0.82%,而VOP形状的编码比特数并没有明显增加,在许多序列中,VOP形状的编码比特数还有所减少,即形状的编码效率并没有降低。
表4各种形状运动估值算法的执行比较(测试序列为300帧)
综上所述,本发明优于其它方法,其优点是(1)并不假设VOP的形状是不变的,因此对各种序列的效果都很好;(2)避免了上述现有方法的不足;(3)更加充分地利用了邻近形状块之间形状运动向量的相关性,利用邻近BAB块的形状运动向量的中值作为当前BAB块的形状运动向量预测值,提高了预测值的精度,预测值的准确性保证了在不明显增加VOP形状编码比特数的情况下,可以大大缩小搜索范围;(4)充分利用了形状运动估值时的边界特性,把搜索区域设定在VOP的边界附近,大大提高了形状运动估值的速度,使VOP形状编码比特数和形状运动估值速度之间保持了平衡;(5)边界形状块的匹配精度并不会有明显的下降,VOP形状编码比特数保持相近,在许多视频序列中形状编码比特数还会有所减少,即形状的编码效率并没有降低。这种方法可以在保持形状编码效率的基础上大大提高现有算法的形状运动估值速度。
权利要求
1.一种基于对象边缘的形状快速运动估值的方法,其特征在于,步骤如下(1)形状运动向量预测值MVPs选取用当前BAB块的邻近BAB块形状运动向量{MVs1,MVs2,MVs3}的中值或者邻近纹理块运动向量{MV1,MV2,MV3}的中值作为当前BAB块的形状运动向量预测值MVPs;(2)中间跳过方法确定MVPs以后,当前BAB块在参考Alpha平面中的初始运动补偿块MC-BAB也就确定了,BAB块跳过后面的搜索过程而结束形状运动估值的条件为如果当前BAB块与MC-BAB块之间的匹配误差小于等于阈值TH,则形状运动估值过程结束,最终的MVs=MVPs;(3)匹配误差函数的选取通过加权的SADweight来衡量BAB块的匹配误差,在SAD和MVDs之间保持一个平衡;(4)搜索区域的确定当确定了当前BAB块的形状运动向量预测值MVPs以后,在参考Alpha平面内以MVPs确定的位置为中心,±4范围内进行搜索,搜索区域设定为VOP边界处,得到最终的形状运动向量MVs。
2.根据权利要求1所述的基于对象边缘的形状快速运动估值的方法,其特征是,所述的步骤(1),形状运动向量预测值MVPs选取具体方法如下·如果邻近BAB块的{MVs1,MVs2,MVs3}中存在有效值,则(1)如果只有一个有效的MVs,MVPs等于该MVs,(2)如果只有两个有效的MVs,则令第三个无效的MVs等于(0,0),MVPs=Median(MVs1,MVs2,MVs3),(3)如果三个MVs都是有效的,则MVPs=Median(MVs1,MVs2,MVs3);·如果{MVs1,MVs2,MVs3}都是无效的,但邻近纹理块的{MV1,MV2,MV3}中存在有效值,则(1)如果只有一个有效的MV,MVPs等于该MV,(2)如果只有两个有效的MV,则令第三个无效的MV等于(0,0),MVPs=Median(MV1,MV2,MV3),(3)如果三个MV都是有效的,则MVPs=Median(MV1,MV2,MV3);·如果{MVs1,MVs2,MVs3,MV1,MV2,MV3}都是无效的,则MVPs=(0,0);当确定了MVPs以后,计算当前BAB块与MVPs确定的参考BAB块之间的匹配误差,如果该匹配误差小于或者等于预先设定的阈值,说明MVPs确定的参考BAB块已经达到了匹配精度,则跳过后面的运动估值过程,最终的MVs=MVPs,MVDs=0;如果MVPs确定的BAB块不能达到要求的匹配精度,则需要继续后面的运动估值过程,搜索最终的MVs,并编码MVDs。
3.根据权利要求1所述的基于对象边缘的形状快速运动估值的方法,其特征是,所述的步骤(3)中,采用下式来衡量BAB块的匹配误差SADweight=SAD+0.5×(|MVDs_x|+|MVDs_y|)式中MVDs_x和MVDs_y分别为MVDs的水平和垂直分量。
4.根据权利要求1所述的基于对象边缘的形状快速运动估值的方法,其特征是,所述的步骤(4)中,VOP边界处搜索区域的宽度为8,搜索区域的确定方法为在参考Alpha平面中,以每一个像素点为顶点,形成一个8×8的块,如果该块为边界块,即块中既有VOP内的像素又有VOP外的像素,则该点在VOP的边界搜索区域内;如果该块是透明块或者不透明块,则该点在VOP的边界搜索区域外,通过把8×8块放大进一步提高形状运动估值的精度,最大为16×16;通过把8×8块缩小进一步提高形状运动估值的速度。
5.根据权利要求1所述的基于对象边缘的形状快速运动估值的方法,其特征是,确定MVPs以后,对于没有跳过的BAB块,需要继续搜索最终的MVs,其搜索过程如下·在进行BAB块运动估值之前,在参考Alpha平面的VOP边界附近确定边界BAB块的搜索区域;·当进行BAB块的运动估值时,在参考Alpha平面中,以MVPs确定的位置为中心,±4范围内搜索最终的MVs;·在±4范围内搜索MVs时,如果搜索点在预先确定的VOP边界搜索区域外,则跳过该搜索点,继续下一个搜索点的匹配。
全文摘要
一种视频编码技术领域的基于对象边缘的形状快速运动估值的方法,步骤如下(1)形状运动向量预测值MVPs选取用当前BAB块的邻近BAB块形状运动向量{MVs1,MVs2,MVs3}的中值或者邻近纹理块运动向量{MV1,MV2,MV3}的中值作为当前BAB块的形状运动向量预测值MVPs;(2)中间跳过方法BAB块跳过后面的搜索过程而结束形状运动估值的条件为如果当前BAB块与MC-BAB块之间的匹配误差小于等于阈值TH,则形状运动估值过程结束,最终的MVs=MVPs;(3)匹配误差函数的选取通过加权的SADweight来衡量BAB块的匹配误差;(4)搜索区域的确定在参考Alpha平面内以MVPs确定的位置为中心进行搜索,搜索区域设定为VOP边界附近。本发明大大超过现有方法的形状运动估值速度,且形状的编码效率并没有降低。
文档编号H04N7/26GK1688164SQ20051002659
公开日2005年10月26日 申请日期2005年6月9日 优先权日2005年6月9日
发明者解蓉, 王嘉, 周军, 余松煜, 支琤 申请人:上海交通大学