用于视频编码的运动矢量预测方法

文档序号:7709174阅读:184来源:国知局
专利名称:用于视频编码的运动矢量预测方法
技术领域
本发明涉及一种用于视频编码的运动矢量预测方法,特别是指一种可以用于B帧中的直接编码模式,以获得更准确的运动矢量预测,从而更真实地体现视频中物体运动的、利用线性内插原理实现B帧中宏块的运动矢量预测的方法,属于数字音视频编码技术领域。
背景技术
高效的视频编解码技术是实现高质量、低成本多媒体数据存储与传输的关键。目前常用的编码方法有预测编码、正交变换编码、向量量化编码等等。这些方法都基于信号处理理论的,通常也称为第一代编码技术。现在比较流行的图像编码国际标准都基于这种编码理论,采用的是基于块匹配的运动补偿、离散余弦变换和量化相结合的编码方法。典型的有国际标准化组织/国际电工技术委员会第一联合技术组(ISO/IEC JTC1)推出的MPEG-1,MPEG-2和MPEG-4等国际标准,以及国际电信联盟(ITU-T)提出的H.26x系列推荐。这些视频编码标准在工业界得到了广泛应用。
上述的视频编码标准都采用了混合视频编码(Hybrid Video Coding)策略,通常包括预测、变换、量化和信息熵编码等四个主要模块。预测模块的主要功能是利用已经编码并重建的图像对当前要编码的图像进行预测(帧间预测),或者利用图像中已经编码并重建的图像块(或宏块)对当前要编码的图像块(或宏块)进行预测(帧内预测)。变换模块的主要功能是将输入的图像块变换到另外一个空间,使输入信号的能量尽可能地集中在低频变换系数上,进而降低图像块内元素之间的相关性,有利于压缩。量化模块的主要功能是将变换的系数映射到一个有利于编码的有限元素集上;信息熵编码模块的主要功能是根据统计规律,将量化后的变换系数用变长码表示。
视频解码系统包含与视频编码相似的模块,主要通过将输入的码流通过熵解码、反量化、反变换等过程重建解码图像。除了上述模块外,视频编解码系统中通常还包含一些辅助的编码工具,这些工具也会对整个系统的编码性能(压缩比)做出贡献。
基于运动补偿预测的主要功能是消除视频序列在时间上的冗余。视频编码的大部分编码效率来自于预测模块。视频编码过程就是对视频序列的每一帧图像进行编码的过程。常用的视频编码系统对每一帧图像的编码是以宏块为基本单元进行的。在编码每一帧图像时,又可以分为帧内(I帧)编码、预测(P帧)编码和双向预测(B帧)编码等。一般来说,编码时,I帧、P帧和B帧编码是穿插进行的,比如按照IBBPBBP的顺序。
B帧的引入可以有效地解决运动物体之间或物体与背景之间由于不同的运动方向或运动速率而引起的“遮挡问题”。B帧的编码可以使得编码压缩效率达到200∶1以上的码率。对B帧中的宏块进行的编码包括直接(Direct)、前向预测(Forward Prediction)、后向预测(BackwardPrediction)和双向预测(Bi-directional Prediction)四种模式。由于B帧技术需要同时进行前向与后向的运动估计,因此,运算复杂度较高;同时,为了区分前后向运动矢量,还要引入额外的标识信息。而采用Direct编码模式可以不对运动矢量信息进行编码,因此,可以减少编码运动矢量信息的比特,有效地提高编码效率。
在编码中,一个宏块是否采用Direct编码模式的关键在于运动矢量的预测是否精确。传统的B帧编码中的直接模式采用时域相邻的宏块来实现运动矢量来预测。换言之,对B帧中某个宏块编码时,要通过后面第一个参考帧中相应位置宏块的运动矢量推导得到,因此,这种预测方式建立在相邻宏块具有相似的运动轨迹的假设基础上。但是由于当前宏块的运动并不完全取决于时域相邻宏块的运动,特别是在物体的边缘时,由于物体之间运动的相对偏移,这种预测往往会得到不准确的预测结果。运动补偿预测的块尺寸已经降至4×4时,这种情况将会更明显。
通过线性内插的方法可以部分回复视频中两个参考帧之间的图像;因此,这种方法可以应用到B帧编码中。参见图7,传统的线性内插技术是基于像素级来实现的,其中的B是需要内插的帧,而前后两个P帧是正常编码形成的;在解码时,可以简单地利用前后两个P帧来插出B帧,即每一块的位置与P帧的位置相对应,然后对前后P帧相应块的像素做线性加权。这种技术虽然能够有效地实现静态场景编码,但对于运动复杂的物体往往不能达到很好的效果。
有鉴于此,可以引进运动补偿内插的方法,通过内插运动矢量的方式来解决线性、匀速运动的物体的编码。然而由于运动的物体并不总是沿着直线运动,而且由于噪声或亮度的变化往往会造成运动矢量预测的不准确,特别是在运动物体上形成的不连续(如物体边缘部分)。

发明内容
本发明的主要目的在于提供一种用于视频编码的运动矢量预测方法,利用线性内插原理实现B帧中宏块的运动矢量预测,可以用于B帧中的Direct编码模式,以获得更准确的运动矢量预测,从而更真实地体现视频中物体的运动;同时与前向预测编码、后向预测编码相结合,实现一种新的预测编码类型。
本发明的目的是这样实现的通过相邻的两个参考帧之间的运动矢量预测要编码的B帧中各个宏块的运动矢量,对于B帧中某个宏块运动矢量的预测并不来自于后面第一个参考帧中相应的位置的宏块的运动矢量,如果该宏块处在后面第一个参考帧中某个宏块的运动轨迹上,则它的运动矢量与该宏块的运动轨迹相同。
为了更准确地估计B帧中各宏块的运动矢量,通过类似线性内插的方式来预测各宏块中每一运动估计块的运动矢量。当对B帧进行编码时,首先对后向参考帧的每一宏块预测方向都要进行预处理,通过后向参考帧相对于前向参考帧的运动轨迹,可以找到相应的B帧中的宏块。具体的预测方法是1、获取后向参考帧各个块的运动矢量;2、针对每一个快的运动矢量,得到当前从前向参考帧到后向参考帧的运动轨迹;3、利用该运动轨迹,计算出当前图像中落在此轨迹上的最匹配的块;4、完成后向参考帧的全部块运动估计处理后,将在当前图像中得到相应的运动矢量。
由于图像的噪声和不同物体的不规则运动,可能会导致当前图像中一些块所“穿过”的运动矢量多于一个。这种情况下可以通过如下的方式之一来解决第一种方法是采用“就近原则”,针对时域上连续的图像的物体运动基本上呈线性关系,而且偏离另一帧相应的位置不会太大,因此可以考虑在空域上离当前位置最近的块所得的运动矢量作为候选矢量。
第二种方法是采用“平均取值”的方法求取候选矢量;由于在很多情况下,在物体的边缘块往往会造成运动的“遮挡问题”,因此采用对“穿过”相应块的几个不同运动矢量求取平均值,将该求取平均值运动矢量作为候选矢量。
另外,当一些块所“穿过”的运动矢量为零时,可以假设此块没有direct模式;或者利用空域预测的方式来预测运动矢量;或者利用前向运动矢量的方式来实现运动矢量的预测;或者利用零运动矢量的方式来预测运动矢量。
根据上述的技术方案可知本发明可以更真实地体现视频中物体的运动,获得更准确的运动矢量预测;与前向预测编码,后向预测编码相结合,可用实现一种新的预测编码类型,其效果与传统B帧编码相似。


图1为一个运动矢量穿过当前编码块的示意图;图2为多个运动矢量穿过当前编码块的示意图;图3为本发明通过相邻的块来决定从多个矢量中选取真正的运动矢量的示意图;图4为本发明通过相邻的块来预测运动矢量的示意图;图5为相邻的块均没有运动矢量情况的示意图;图6为本发明利用前向运动矢量的延伸来预测运动矢量的示意图;图7为现有的帧内插方式示意图;图8本发明实施例的流程图。
具体实施例方式
以下结合附图和具体的实施例对本发明作进一步的详细说明请参见图1和图8,本发明对于当前编码块计算运动矢量的步骤1.进行后向参考帧的运动估计,得到每一个n×n块的最佳运动矢量;2.预处理当前帧各n×n块的候选运动矢量;假设图像的宽与高分别为width、height。这总共有width/n×height/n个运动估计的块。对于后向参考帧中的每一n×n大小的块,假设其中心点的位置的运动矢量为其估计的运动矢量,沿着此运动矢量的方向得到运动的轨迹,并在当前帧中找到最匹配的块。
当后向参考帧的每一n×n运动块的块运动矢量(假设从此n×n块的中间出发)穿过当前图像时,可以获取当前图像与此矢量的交点,然后计算出此交点会落在哪一个n×n块内,此块的前向运动矢量与后向参考帧的运动矢量方向一样,模为其1/2,当前块的后向运动矢量则方向相反,模为其1/2。
对于每一块做相对于参考帧的运动估计,对于不同的匹配块可以用给定的准则(如SAD,SSD等)来求得最佳的匹配块,并从当前图像中得到相应的运动矢量。
如果,当前、后向参考帧某一运动块的左上角位置为BACK_POS(x,y),其运动矢量为(mvx,mvy)(这里mvx、mvy为运动矢量为二维坐标轴上x,y轴方向上的值),则在前向参考帧中的位置FOR_POS(x,y)为FOR_POS(x,y)=BACK_POS(x-n/2,y-n/2)+(mvx,mvy);相应的当前块的位置CURR_POS(x,y)为CURR_POS(x,y)=BACK_POS(x-n/2,y-n/2)+(mvx/2,mvy/2);由此,可以求得相应的块位置为CURR_BLOCK=CURR_POS(X,Y)/n,此块前向的运动矢量分别为(mvx/2,mvy/2),后向的运动矢量分别为(-mvx/2,-mvy/2)。
3.参见图2,当多个运动矢量指向同一估计块时,在经过上述处理后,在有的估计块上可能会得到两个或两个以上的运动矢量。此时,采用空域预测的方法来得到真正的运动矢量。具体是根据邻近的已经求得的运动矢量的块来选择最匹配的运动矢量,即通过对相邻块的运动矢量取均值,得出一个候选运动矢量,然后以该候选矢量为当前块的参考运动矢量。如图3所示,通过对相邻的块的运动矢量取均值的方式可以得出一个候选运动矢量,然后对当前块的多个运动矢量与候选矢量进行比较,最后取其方向最相近的块。其中,虚线的正方形代表相邻的块,实线的正方形代表当前的块,其中n1,n2为相邻块的运动矢量。由于有两个穿过当前块的运动矢量,因此可以找出与n1,n2矢量方向最相近的运动矢量。
4.对于没有运动矢量穿过,但相邻块有运动矢量时,可以采用空域预测的方式获得相应的运动矢量;如图4、5所示,通过对相邻块的运动矢量取均值的方式可以得出一个候选运动矢量,然后以候选矢量为当前块的参考运动矢量。即当前块的前后向运动矢量与参考运动矢量的方向一样,模也一样。参见图4,虚线的正方形代表相邻的块,实线的正方形代表当前的块,其中n1,n2为相邻块的运动矢量,而含有字符A的正方形代表没有运动矢量穿过当前块(实线的正方形);由于没有运动矢量穿过当前块,因此可以以n1,n2的矢量平均来作为当前块的运动矢量。参见图5,虚线的正方形代表相邻的块,实线的正方形代表当前的块,而含有字符A的正方形代表没有运动矢量穿过当前块(实线的正方形)。
5.对于没有运动矢量穿过当前块且同时相邻块也没有运动矢量时,可以利用前向的运动矢量来处理;如图6所示,用前向参考帧相应位置块的运动矢量来作为当前块的参考运动矢量。即当前块的的前向运动矢量与参考运动矢量的方向相反,模一样。后向运动矢量的方向与参考向量的方向一样,模也一样。参见图6,其为本发明利用前向运动矢量的延伸来预测运动矢量的示意图;其中,虚线的正方形代表相邻的块,实线的正方形代表当前的块,而含有字符A的正方形代表没有运动矢量穿过当前块(实线的正方形),F表示前向参考帧运动矢量穿过当前块的情形。
6.如果当前向运动矢量的延伸也没有穿过该运动块时,则设其运动矢量为零。
参见图8,本发明的一个具体的处理流程是步骤a进行后向参考帧的运动估计,对该后向参考帧的每一个4×4块求出其运动轨迹;步骤b根据所述的运动轨迹,求出落入运动轨迹的当前帧的4×4块;步骤c如果已经计算完每个宏块的运动矢量,则结束;步骤d统计穿过当前4×4块的运动矢量的数目;步骤e如果该数目大于1,则采用空域预测的方法来得到真正的运动矢量,执行步d;步骤f如果该数目等于1,则设该运动矢量为当前块的运动矢量,执行步骤d;步骤g如果该数目等于0,则进一步判断相邻块是否有运动矢量;步骤h如果有,则利用相邻块进行空域预测,得到运动矢量;执行步骤d;步骤i如果没有,则进一步判断前向运动矢量的延伸是否通过当前块;
步骤j如果是,则利用前向块的运动矢量作为当前块的运动矢量;执行步骤d;步骤k如果不是,则设置当前块的运动矢量为零;执行步骤d。
最后应说明的是以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种用于视频编码的运动矢量预测方法,其特征在于该方法至少包括步骤1获取后向参考帧各个块的运动矢量;步骤2针对每一个块的运动矢量,得到当前从前向参考帧到后向参考帧的运动轨迹;步骤3根据步骤2获得的运动轨迹,获得当前图像中落在相应轨迹上最匹配的块;步骤4完成后向参考帧的全部块运动估计处理,从当前图像中得到相应的运动矢量。
2.根据权利要求1所述的用于视频编码的运动矢量预测方法,其特征在于所述最匹配的块具体通过如下的方法获得步骤31当后向参考帧的运动块的运动矢量穿过当前图像时,则通过获取的当前图像与所述运动矢量的交点,计算出该交点所落入的块;步骤32将该当前块的前向运动矢量设为与后向参考帧的的运动矢量方向一样,模为其1/2;同时将该当前块的后向运动矢量设为与其前向运动矢量的方向相反,模为其1/2。
3.根据权利要求1所述的用于视频编码的运动矢量预测方法,其特征在于对于当前图像中与多个运动轨迹相交的运动矢量,根据邻近的已经求得的运动矢量的块来选择最匹配的运动矢量;具体是通过对相邻的块的运动矢量取加权值的方式得出一个候选运动矢量,然后对当前块的多个运动矢量与候选矢量进行比较;最后取其方向最相近块的运动矢量。
4.根据权利要求3所述的用于视频编码的运动矢量预测方法,其特征在于所述的加权值通过平均加权或线性加权或非线性加权的方式获得。
5.根据权利要求1所述的用于视频编码的运动矢量预测方法,其特征在于如果运动轨迹与当前图像相交的运动矢量为零时,则通过空域预测的方式来预测运动矢量,或通过前向运动矢量预测方式来预测运动矢量,或通过零运动矢量的方式预测运动矢量。
6.根据权利要求5所述的用于视频编码的运动矢量预测方法,其特征在于所述的空域预测是通过对相邻块的运动矢量取均值,得出一个候选运动矢量,然后以该候选矢量为当前块的参考运动矢量。
7.根据权利要求5所述的用于视频编码的运动矢量预测方法,其特征在于所述的前向运动矢量预测方式是用前向参考帧相应位置块的运动矢量来作为当前块的参考运动矢量,即当前块的的前向运动矢量与参考运动矢量的方向相反,模一样;后向运动矢量的方向与参考向量的方向一样,模也一样。
8.根据权利要求5所述的用于视频编码的运动矢量预测方法,其特征在于所述的零运动矢量的预测方式是通过帧内预测来确定当前块的运动矢量。
全文摘要
本发明公开了一种用于视频编码的运动矢量预测方法,该方法可以用于B帧中的直接编码模式,以获得更准确的运动矢量预测,从而更真实地体现视频中物体运动的、利用线性内插原理实现B帧中宏块的运动矢量预测。具体是先获取后向参考帧各个块的运动矢量;针对每一个块的运动矢量,得到当前从前向参考帧到后向参考帧的运动轨迹;再根据该运动轨迹,获得当前图像中落在相应轨迹上最匹配的块,完成后向参考帧的全部块运动估计处理后,从当前图像中得到相应的运动矢量。本发明可以更真实地体现视频中物体的运动,获得更准确的运动矢量预测;与前向预测编码,后向预测编码相结合,可用实现一种新的预测编码类型。
文档编号H04N5/14GK1568009SQ03148030
公开日2005年1月19日 申请日期2003年6月27日 优先权日2003年6月27日
发明者高文, 季向阳, 吕岩, 马思伟, 齐洪钢 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1