视频编码中运动矢量预测方法

文档序号:7647376阅读:161来源:国知局
专利名称:视频编码中运动矢量预测方法
技术领域
本发明涉及视频编码领域,尤其是一种视频编码中B帧或P帧的运动矢量的预测方法。
背景技术
对于数字电视、新一代移动通信、宽带网络通信和家庭消费电子这些蓬勃发展的高科技产业群,其共性技术集中在以视音频为主要内容的多媒体信息处理技术,特别是数据压缩技术。高效的视频编码技术是实现高质量、低成本多媒体数据存储与传输的关键。现在常用的编码有Mpeg 2/Mpeg 4/H.264等,运用的编码技术主要包括预测编码、变换编码、向量量化编码等等,这些视频编码标准以及相关技术在工业界得到了广泛应用。
这些视频编码标准都采用了混合视频编码(Hybrid Video Coding)策略,通常包括预测、变换、量化和信息熵编码等四个主要模块。预测模块的主要功能时利用已经编码并重建的图像块对当前要编码的图象块进行预测(帧内预测),或者利用图象中已经编码并重建的图象块变换到另外一个空间,使输入信号的能量尽可能地集中在低频变换系数上,进而降低图像块内元素之间的相关性,有利于压缩;量化模块的主要功能是将变换的系数映射到一个有利于编码的有限元素集上;信息熵编码模块的主要功能是根据统计规律,将量化后的变换系数用变长码表示。视频解码系统包含相似的模块,主要是将输入的码流通过熵编码、反量化、反变换等过程重建解码图象。除了上述模块,视频编解码系统中通常还包含一些辅助的编码工具,这些工具也会对整个系统的编码性能做出贡献。
在现有的视频编码方案中,有I帧、P帧和B帧三种模式的帧结构,其中,I帧为帧内编码,主要运用了帧内预测作为主要的预测方式,P帧为预测编码,主要运用了帧间预测再求残差的方式,B帧为双向预测编码,同P帧相同也是先预测再求残差。视频编码的大部分效率来自于基于运动补偿的预测。
现在在运动矢量的预测上,传统的方法都是选用在时域上相邻帧的相同位置开始进行运动矢量的预测,然后采用三步法(TSS),中心三步法(NTSS),或钻石搜索法(DS)等方法来减少搜索次数,从而降低资源损耗,但是由于选取的初始搜索位置都在相邻帧的相同块的位置进行搜索,所以搜索效率大打折扣。

发明内容
本发明的目的是针对于现有技术中运动矢量预测效率低下的缺陷,提出一种视频编码中运动矢量的预测方法为实现上述目的,本发明提供了一种视频编码中运动矢量的预测方法,包括以下步骤获取具有运动矢量的参考帧中各个宏块的运动矢量,并根据所述各个宏块的运动矢量获得所述各个宏块从参考帧到当前帧的运动轨迹;根据线性平均算法和线性逼近算法依次求取所述参考帧中与所述当前帧中各个宏块对应的匹配块,并获得所述当前帧中各个宏块的运动矢量。
本发明将每个视频帧分成许多宏块(MB-Micro Block),每个宏块由多个Y亮度块、Cb色度块和Cr色度块组成,并以宏块为单位进行视频帧的压缩,本发明所提供的算法还可以应用于当前帧的这几种亮度和色度块的运动矢量预测。
在上述方案中,当所述参考帧为两个或两个以上时,求取所述两个或两个以上参考帧中与当前帧中每个宏块对应的匹配块,并选取与所述当前帧中每个宏块匹配程度最高的参考帧,获得基于所述匹配程度最高的参考帧对应的当前帧中各个宏块的运动矢量。也可以在所述参考帧为两个或两个以上时,随机选择任一参考帧求取所述任一参考帧中与当前帧中每个宏块对应的匹配块,并获得所述当前帧中各个宏块的运动矢量。
在以上的技术方案中,所述求取参考帧中与所述当前帧中每个宏块对应的匹配块的操作包括步骤1、选取四个相邻宏块的运动轨迹,该运动轨迹与参考帧和当前帧分别相交成四个交点,如果当前帧中第一宏块的第一中心点落入所述当前帧由四个交点所构成的四边形,选择所述参考帧的四个交点所构成的四边形内的第一参考点,根据线性平均算法获得在所述当前帧中对应的第二参考点,并获得第一参考点到第二参考点之间的第一线段;步骤2、通过所述第一中心点做第一线段的平行线,所述平行线与参考帧相交获得第三参考点,判断所述第三参考点是否在所述参考帧的四个交点所构成的四边形,是则根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段,否则取第三参考点和第一参考点之间连线与所述参考帧的四个交点所构成的四边形的边界相交的交点作为新的第三参考点,然后根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段作为新的第一线段;步骤3、重复步骤2,直到所述当前帧中第四参考点与第一中心点之间的距离小于预定阈值,则确定参考帧中以第三参考点为中心的第二宏块为与所述第一宏块对应的匹配块。
在求取匹配块时,还可以采用当前帧与三条运动轨迹的交点构成的三角形为基础,包括以下步骤步骤10、选取三个相邻宏块的运动轨迹,该运动轨迹与参考帧和当前帧分别相交成三个交点,如果当前帧中第一宏块的第一中心点落入所述当前帧由三个交点所构成的三角形,选择所述参考帧的三个交点所构成的三角形内的第一参考点,根据线性平均算法获得在所述当前帧中对应的第二参考点,并获得第一参考点到第二参考点之间的第一线段;步骤20、通过所述第一中心点做第一线段的平行线,所述平行线与参考帧相交获得第三参考点,判断所述第三参考点是否在所述参考帧的三个交点所构成的三角形内,是则根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段,否则取第三参考点和第一参考点之间连线与所述参考帧的四个交点所构成的三角形的边界相交的交点作为新的第三参考点,然后根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段;步骤30、重复步骤20,直到所述当前帧中第四参考点与第一中心点之间的距离小于预定阈值,则确定参考帧中基于第三参考点的第二宏块为与所述第一宏块对应的匹配块。
在获得匹配点之后,根据匹配点获得所述参考帧中与第一宏块对应的匹配块的操作可以采用两种方式,一种为对所述匹配点相邻预定阈值内的区域进行搜索,获得与所述第一宏块匹配程度最高的匹配块;另一种为获得以所述匹配点为中心,且长度和宽度与所述第一宏块相同的匹配块。
如果当前帧中第一宏块的第一中心点同时落入所述当前帧的由四个交点所构成的两个或两个以上的四边形,可以根据所述两个或两个以上的四边形分别获得与所述第一宏块对应的两个或两个以上的运动矢量,并根据线性平均算法获得平均的运动矢量作为所述第一宏块的运动矢量;或者获得所述参考帧中两个或两个以上与第一宏块对应的匹配块后,选择与所述第一宏块匹配程度最高的匹配块,并获得所述当前帧中第一宏块的运动矢量。
以上的技术方案中,当前帧为P帧或B帧,选用一个或数个P帧或者一个或数个B帧作为参考帧。
基于上述技术方案,本发明可以以较高的效率实现对视频中物体的运动的编码,获取较准确的运动矢量预测值,或者确定初始搜索点以获得更精确的运动矢量。


图1为本发明视频编码中运动矢量的预测方法的一个实施例的流程示意图。
图2为图1实施例中的运动轨迹与参考帧和当前帧相交的示意图。
图3为图1实施例中包括第一参考点和第二参考点的示意图。
图4为图1实施例中通过第一中心点0做第一线段vV的平行线的示意图。
图5为图1实施例中第三参考点不在四边形时的示意图。
图6为本发明视频编码中运动矢量的预测方法的另一个实施例的流程示意图。
具体实施例方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明的基本构思为先获得各个宏块从参考帧到当前帧的运动轨迹,利用当前帧中的各个宏块的中心点和从参考帧中选取的初始参考点求取参考帧中与所述当前帧中各个宏块对应的匹配块,从而获得当前帧中各个宏块的运动矢量。在求取过程中采用了线性平均算法和线性逼近算法。
如图1所示,为本发明视频编码中运动矢量的预测方法的一个实施例的流程示意图,本实施例采用前后两个P帧对当前的B帧的运动矢量进行预测,包括以下步骤
步骤101、从两个P帧获取各个宏块的运动矢量,并根据各个宏块的运动矢量获得各个宏块从第一个P帧到第二个P帧之间的运动轨迹,由于当前的B帧处于两个P帧之间,因此便获得了从两个P帧中任意一个P帧到当前帧的运动轨迹。
步骤102、选择其中一个P帧作为参考帧,然后选取相邻的四个宏块的运动轨迹,这四条运动轨迹与参考帧和当前帧分别相交成四个交点,如图2所示,为图1实施例中的运动轨迹与参考帧和当前帧相交的示意图,在参考帧的四个交点分别为a、b、c、d,对应于当前帧的四个交点为A、B、C、D。abcd四点构成了四边形,对应于当前帧的四个交点ABCD也构成四边形。当前帧也被划分成多个宏块,每个宏块的中心可能落入由参考帧内的四边形所对应到当前帧的四边形中,结合附图2,当前帧中的某个宏块的中心点0作为第一中心点落入到ABCD四边形内。这时如图3所示,为图1实施例中包括第一参考点和第二参考点的示意图,选择参考帧内由四个交点abcd构成的四边形内的中点作为第一参考点v,然后通过线性平均算法计算出在当前帧中对应的第二参考点V,第一参考点v和第二参考点V构成第一线段vV。
步骤103、如图4所示,为图1实施例中通过第一中心点0做第一线段vV的平行线的示意图,该平行线与参考帧相交获得第三参考点v1,第三参考点v1可能在四边形abcd内,也可能落在四边形abcd之外,因此需要对这两种情况作出判断。
步骤104,当判断第三参考点v1在四边形abcd内时,执行步骤105,如果判断第三参考点不在四边形时,执行步骤106。
步骤105、根据线性平均算法获得在当前帧中对应的第四参考点01,从而获得第三参考点v1到第四参考点01之间的第二线段v101,并将v101作为新的第一线段。
步骤106、如图5所示,为图1实施例中第三参考点不在四边形时的示意图,第三参考点v1和第一参考点v之间的连线vv1与边界cd相交于p点,然后将p点作为新的第三参考点,根据线性平均算法计算出在当前帧中对应的第四参考点01,从而获得第三参考点p到第四参考点01之间的第二线段p01并将p01作为新的第一线段。
步骤107、判断当前帧中第四参考点01与第一中心点0之间的距离是否小于预定阈值,如果小于预定阈值,则选择基于第三参考点v1或p的第二宏块为与第一宏块对应的匹配块,并执行步骤108,如果大于或等于预定阈值,则重复步骤103。
步骤108、根据当前帧的各个宏块对应的匹配块获得各个宏块的运动矢量,即从参考帧中的匹配块的中心到当前帧的各个宏块的中心的矢量为当前帧中各个宏块的运动矢量。
在本实施例的步骤102中,选择参考帧内由四个交点abcd构成的四边形内的中点作为第一参考点v,除了选择中点之外,选择四边形内任意一点也可以实现本发明。
线性平均算法是针对运动矢量在各个方向上的分量分别计算参考点在当前帧对应的位置,然后再根据参考点与对应位置的连线确定通过参考点的运动矢量在各个方向上的分量,然后根据各个方向上的分量获得通过参考点的运动矢量,从而也获得参考点在当前帧平面的对应点。
在通过线性平均算法求参考点在当前帧上对应的位置时,由于时间轴方向上各个运动矢量的分量都相等,实际上只需计算沿运动矢量在参考帧x轴和y轴的分量,而对于四边形或者三角形这种算法都可以求出参考点对应在当前帧的唯一位置。
在步骤108之前,通过步骤103到步骤107这个递归的过程实现对匹配点的线性逼近,获得的匹配块可以是以匹配点为中心,且长度和宽度与第一宏块相同的匹配块。也可以在计算出匹配点后,以匹配点作为初始搜索点,对匹配点相邻预定阈值内的区域进行搜索,获得与第一宏块匹配程度最高的匹配块,这里的匹配程度是指两块相同尺寸的区域之间的差值。搜索的精度与内插精度有关,内插精度越高,则搜索精度就越高。
块匹配程度的判断准则有很多种,传统的准则有绝对平均误差函数(MAE)、互相关函数(CCF)、均方误差函数(MSE)、最大误差最小函数(MME)等。还可以采用绝对差和(SAD)作为判断准则。
下面分别以MSE和SAD为例,MSE的匹配公式为MSE(x,y,k,l)=1N2×Σi,j=0N-1(F-1(i+x,j+y)-F0(i+k,j+l))2]]>SAD的匹配公式为SAD(x,y,k,l)=Σi,j=0N-1|F-1(i+x,j+y)-F0(i+k,j+l)|]]>在上述两个公式中,F0和F-1分别代表当前帧和参考帧;k,1为待编码宏块在当前帧中的坐标;x、y为重构帧中参考宏块的坐标;N表示宏块的尺寸。从上述两个公式中可见,SAD用绝对值运算代替了MSE的乘方运算,明显降低了运算量,可以加快计算速度,从而为较优的可选方案。
如图6所示,为本发明视频编码中运动矢量的预测方法的另一个实施例的流程示意图,本实施例采用参考P帧对当前的P帧的运动矢量进行预测,包括以下步骤步骤201、从P帧获取各个宏块的运动矢量,并根据各个宏块的运动矢量获得参考P帧到当前P帧之间的运动轨迹,该运动轨迹也就是参考P帧的运动矢量的延长线,该延长线与当前P帧相交。
步骤202、选取相邻的三个宏块的运动轨迹,这三条运动轨迹与参考帧和当前帧分别相交成三个交点,在参考帧的三个交点构成了三角形,对应于当前帧的三个交点也构成三角形。当前帧也被划分成多个宏块,每个宏块的中心可能落入由参考帧内的三角形所对应到当前帧的三角形中,当前帧中的某个宏块的中心点作为第一中心点落入到三角形内时,选择参考帧内由三角形中任意一点作为第一参考点,然后通过线性平均算法计算出在当前帧中对应的第二参考点,第一参考点和第二参考点构成第一线段。
步骤203、该平行线与参考帧相交获得第三参考点,第三参考点可能在三角形内,也可能落在三角形之外,因此需要对这两种情况作出判断。
步骤204、当判断第三参考点在三角形内时,执行步骤205,如果判断第三参考点不在三角形内时,执行步骤206。
步骤205、根据线性平均算法获得在当前帧中对应的第四参考点,从而获得第三参考点到第四参考点之间的第二线段,并作为新的第一线段。
步骤206、将第三参考点和第一参考点之间的连线与三角形边界相交点作为新的第三参考点,根据线性平均算法计算出在当前帧中对应的第四参考点,从而获得第三参考点到第四参考点之间的第二线段并作为新的第一线段。
步骤207、判断当前帧中第四参考点与第一中心点之间的距离是否小于预定阈值,如果小于预定阈值,则选择参考帧中基于第三参考点的第二宏块为与第一宏块对应的匹配块,并执行步骤208,如果差值大于或等于预定阈值,则重复步骤203。
步骤208、根据当前帧的各个宏块对应的匹配块获得各个宏块的运动矢量,即从参考帧中的匹配块的中心到当前帧的各个宏块的中心的矢量为当前帧中各个宏块的运动矢量。
对于上述两个实施例来说,参考帧可以为B帧也可以为P帧,可以为一个或者多个。对于多个B帧或P帧来预测当前帧的运动矢量时,可以分别的求取两个或两个以上参考帧中与当前帧中每个宏块对应的匹配块,并选取与当前帧中每个宏块匹配程度最高的参考帧,获得基于匹配程度最高的参考帧对应的当前帧中各个宏块的运动矢量。这种方式可以对当前帧的运动矢量做出更为精确的预测。
参考帧为多个B帧或P帧时,还可以随机选择任一参考帧求取任一参考帧中与当前帧中每个宏块对应的匹配块,并获得当前帧中各个宏块的运动矢量。
最后应当说明的是以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解依然可以对本发明的具体实施方式
进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1.一种视频编码中运动矢量的预测方法,其特征在于,包括以下步骤获取具有运动矢量的参考帧中各个宏块的运动矢量,并根据所述各个宏块的运动矢量获得所述各个宏块从参考帧到当前帧的运动轨迹;根据线性平均算法和线性逼近算法依次求取所述参考帧中与所述当前帧中各个宏块对应的匹配块,并获得所述当前帧中各个宏块的运动矢量。
2.根据权利要求1所述的预测方法,其特征在于,所述参考帧为两个或两个以上时,求取所述两个或两个以上参考帧中与当前帧中每个宏块对应的匹配块,并选取与所述当前帧中每个宏块匹配程度最高的参考帧,获得基于所述匹配程度最高的参考帧对应的当前帧中各个宏块的运动矢量。
3.根据权利要求1所述的预测方法,其特征在于,所述参考帧为两个或两个以上时,随机选择任一参考帧求取所述任一参考帧中与当前帧中每个宏块对应的匹配块,并获得所述当前帧中各个宏块的运动矢量。
4.根据权利要求1或2或3所述的预测方法,其特征在于,所述求取参考帧中与所述当前帧中每个宏块对应的匹配块的操作包括步骤1、选取四个相邻宏块的运动轨迹,该运动轨迹与参考帧和当前帧分别相交成四个交点,如果当前帧中第一宏块的第一中心点落入所述当前帧由四个交点所构成的四边形,选择所述参考帧的四个交点所构成的四边形内的第一参考点,根据线性平均算法获得在所述当前帧中对应的第二参考点,并获得第一参考点到第二参考点之间的第一线段;步骤2、通过所述第一中心点做第一线段的平行线,所述平行线与参考帧相交获得第三参考点,判断所述第三参考点是否在所述参考帧的四个交点所构成的四边形内,是则根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段作为新的第一线段,否则取第三参考点和第一参考点之间连线与所述参考帧的四个交点所构成的四边形的边界相交的交点作为新的第三参考点,然后根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段作为新的第一线段;步骤3、重复步骤2,直到所述当前帧中第四参考点与第一中心点之间的距离小于预定阈值,则确定参考帧中以第三参考点为中心的第二宏块为与所述第一宏块对应的匹配块。
5.根据权利要求1或2或3所述的预测方法,其特征在于,所述求取参考帧中与所述当前帧中每个宏块对应的匹配块的操作包括步骤10、选取三个相邻宏块的运动轨迹,该运动轨迹与参考帧和当前帧分别相交成三个交点,如果当前帧中第一宏块的第一中心点落入所述当前帧由三个交点所构成的三角形,选择所述参考帧的三个交点所构成的三角形内的第一参考点,根据线性平均算法获得在所述当前帧中对应的第二参考点,并获得第一参考点到第二参考点之间的第一线段;步骤20、通过所述第一中心点做第一线段的平行线,所述平行线与参考帧相交获得第三参考点,判断所述第三参考点是否在所述参考帧的三个交点所构成的三角形内,是则根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段,否则取第三参考点和第一参考点之间连线与所述参考帧的四个交点所构成的三角形的边界相交的交点作为新的第三参考点,然后根据线性平均算法获得在所述当前帧中对应的第四参考点,并获得第三参考点到第四参考点之间的第二线段;步骤30、重复步骤20,直到所述当前帧中第四参考点与第一中心点之间的距离小于预定阈值,则确定参考帧中基于第三参考点的第二宏块为与所述第一宏块对应的匹配块。
6.根据权利要求4所述的预测方法,其特征在于,在所述步骤3中根据所述匹配点获得所述参考帧中与第一宏块对应的匹配块的操作具体为对所述匹配点相邻预定阈值内的区域进行搜索,获得与所述第一宏块匹配程度最高的匹配块。
7.根据权利要求4所述的预测方法,其特征在于,在所述步骤3中根据所述匹配点获得所述参考帧中与第一宏块对应的匹配块的操作具体为获得以所述匹配点为中心,且长度和宽度与所述第一宏块相同的匹配块。
8.根据权利要求4所述的预测方法,其特征在于,所述步骤1中对于当前帧中第一宏块的第一中心点落入所述当前帧的由四个交点所构成的两个或两个以上的四边形,根据所述两个或两个以上的四边形分别获得与所述第一宏块对应的两个或两个以上的运动矢量,并根据线性平均算法获得平均的运动矢量作为所述第一宏块的运动矢量。
9.根据权利要求4所述的预测方法,其特征在于,所述步骤1中对于当前帧中第一宏块的第一中心点落入所述当前帧的由四个交点所构成的两个或两个以上的四边形,获得所述参考帧中两个或两个以上与第一宏块对应的匹配块后,选择与所述第一宏块匹配程度最高的匹配块,并获得所述当前帧中第一宏块的运动矢量。
10.相据权利要求4所述的预测方法,其特征在于,当前帧为P帧或B帧,选用一个或数个P帧或者一个或数个B帧作为参考帧。
全文摘要
本发明涉及一种视频编码中运动矢量的预测方法,包括以下步骤获取具有运动矢量的参考帧中各个宏块的运动矢量,并根据所述各个宏块的运动矢量获得所述各个宏块从参考帧到当前帧的运动轨迹;根据线性平均算法和线性逼近算法依次求取所述参考帧中与所述当前帧中各个宏块对应的匹配块,并获得所述当前帧中各个宏块的运动矢量。本发明可以以较高的效率实现对视频中物体的运动的编码,获取较准确的运动矢量预测值,或者确定初始搜索点以获得更精确的运动矢量。
文档编号H04N7/26GK101018338SQ20071006397
公开日2007年8月15日 申请日期2007年2月15日 优先权日2007年2月15日
发明者孟智平 申请人:孟智平
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1