一种高效亚像素运动估计方法及系统与流程

文档序号:16889457发布日期:2019-02-15 22:56阅读:252来源:国知局
一种高效亚像素运动估计方法及系统与流程

本发明涉及一种高效亚像素运动估计方法,同时涉及相应的高效亚像素运动估计系统,属于信源编码通信技术领域。



背景技术:

视频编码器对原始数据进行编码压缩以获得尽可能小的重建失真,或者得到尽可能低的码率。为此采用了很多新技术如更复杂的帧间/帧内预测算法、可变块大小运动补偿、多模式块的划分、变尺寸块变换、率失真优化技术、亚像素插值、亚像素运动估计、亚像素运动补偿、自适应插值滤波等等。而这些压缩性能的提升,都是以增加大量的计算量为代价,给视频实时编码通信带来极大的不便。

现有的快速算法都是单独地针对亚像素运动估计和亚像素插值进行优化。亚像素插值是为了生成亚像素运动估计所需要的像素,为此,亚像素插值计算量与亚像素运动估计所检查的搜索位置数(searchpositions,简称sp)直接相关。因此有效的亚像素运动估计和亚像素插值不仅要在不影响精度的情况下减少运动估计中搜索位置的数目,而且也要尽量避免多余的亚像素插值。

现有的绝大多数亚像素运动估计算法都假设所有的亚像素已经在运动估计前预先计算。这样快速亚像素运动估计算法往往只着重于如何减少运动估计的搜索点数。然而,不同搜索位置所对应亚像素的插值滤波器是不同的,单纯地减少搜索数目而不考虑其对应插值代价的差异性,会无法更进一步地优化亚像素插值。

reciprocal算法对当前帧插值并利用了运动的相对性,在当前块中找出最匹配的参考块。该算法能够正确找到最优亚像素运动矢量的重要前提是:视频信号只存在平移运动。但在现实中,视频除了拥有平移运动以外,还存在许多其他类型的运动。这不仅会引起运算的误差,而且会带来率失真性能上的损失。与其他快速算法不同,亚像素插值算法必须是无损的快速算法,其计算必须严格遵照标准中的定义,否则将引发编解码端参考帧不一致的问题(drifting),误差不断累积。

所以,减少视频编码器在亚像素运动估计中的重复计算和冗余计算,提高编码速度成为视频编码的迫切需求。



技术实现要素:

针对现有技术的不足,本发明所要解决的首要技术问题在于提供一种高效亚像素运动估计方法。

本发明所要解决的另一技术问题在于提供一种高效亚像素运动估计系统。

为实现上述发明目的,本发明采用下述的技术方案:

根据本发明实施例的第一方面,提供一种高效亚像素运动估计方法,包括如下步骤:

确定预测像素最佳匹配点的起始点;

根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点;

以所述1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点;得到像素最佳匹配点;

亚像素运动估计结束。

其中较优地,在确定预测像素最佳匹配点的起始点之前,还包括如下步骤:

判断当前块是否为静止块;如果当前块是静止块,则亚像素运动估计结束;否则,确定当前块的预测像素最佳匹配点的起始点。

其中较优地,所述判断当前块是否为静止块采用如下方式:

当前块的最优整像素运动矢量为(0,0);

当前块的时域相邻块的运动矢量为(0,0);

当前块和相邻块的最优整像素残差值足够接近;

当以上三个条件同时满足时,当前宏块为静止块。

其中较优地,当前块和相邻块的最优整像素残差值足够接近为当前块和相邻块的最优整像素残差值比率不大于1。

其中较优地,所述预测像素最佳匹配点的起始点是当前块的左上角位置坐标值加上最佳整像素运动矢量所指向参考帧中的位置。

其中较优地,所述根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点,包括如下步骤:

s21,以起始点为中心点,根据小菱形模式找到菱形的四个顶点作为搜索点;

s22,计算搜索点的sad值;并找到sad值最小的候选搜索点;

s23,如果候选搜索点的sad值小于中心点的sad值,则以所述该搜索点为中心点,根据小菱形模式找到菱形的三个顶点作为搜索点,转向步骤s22;否则,转向步骤s24;

s24,搜索结束,所述中心点为1/2像素的运动估计的最佳匹配点。

其中较优地,所述计算搜索点的sad值;并找到sad值最小的候选搜索点,包括如下步骤:

s221,计算任一个搜索点的sad值,如果该搜索点的sad值小于中心点的sad值,则转向步骤s222;否则,转向步骤s223;

s222,计算该搜索点相邻两个搜索点的sad值;

s223,计算剩余搜索点的sad值;

s224,找到sad值最小的候选搜索点。

其中较优地,所述以1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点,得到像素最佳匹配点;包括如下步骤:

s31,以该1/2像素最佳匹配点为中心点,根据小菱形模式计算起始点的1/4像素集;

s32,计算任一个1/4像素搜索点的sad值,如果该1/4像素搜索点的sad值小于中心点的sad值小,则转向步骤s33;否则,转向步骤s34;

s33,计算该1/4像素搜索点相邻两个1/4像素搜索点的sad值;

s34,计算剩余1/4像素搜索点的sad值;

s35,找到sad值最小的候选1/4像素搜索点,所述sad值最小的候选1/4像素搜索点即为像素最佳匹配点。

根据本发明实施例的第二方面,提供一种高效亚像素运动估计系统,包括处理器和存储器;所述存储器上存储有可用在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时实现如下步骤:

确定预测像素最佳匹配点的起始点;

根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点;

以所述1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点;得到像素最佳匹配点;

亚像素运动估计结束。

其中较优地,在确定预测像素最佳匹配点的起始点之前,所述计算机程序被所述处理器执行,还实现如下步骤;

判断当前块是否为静止块;如果当前块是静止块,则亚像素运动估计结束;否则,确定当前块的预测像素最佳匹配点的起始点。

本发明所提供的高效亚像素运动估计方法,通过确定预测像素最佳匹配点的起始点;根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点;然后以该1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点;得到像素最佳匹配点;亚像素运动估计结束。该方法能够减少亚像素搜索点,进而加快亚像素运动估计速度。

附图说明

图1为本发明所提供的高效亚像素运动估计方法的流程图;

图2为本发明所提供的实施例中,根据小菱形模式第一次获取的1/2像素集的示意图;

图3为本发明所提供的实施例中,根据小菱形模式获取的1/2像素集的示意图;

图4为本发明所提供的实施例中,根据小菱形模式获取的1/4像素集的示意图;

图5为本发明所提供的高效亚像素运动估计系统的结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。

加快亚像素运动估计速度的实质为:(1)减少亚像素搜索点;(2)减少多余的亚像素插值运算。如图1所示,本发明所提供的高效亚像素运动估计方法,包括如下步骤:首先,确定预测像素最佳匹配点的起始点;其中,像素最佳匹配点是与当前块最匹配的位置;其次,根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点;然后,以该1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点;亚像素运动估计结束。下面对这一过程做详细具体的说明。

s1确定预测像素最佳匹配点的起始点。

亚像素运动估计是在亚像素候选区域中找到与当前块最匹配位置的过程,一般有两个步骤:首先,得到预测像素最佳匹配点的起始点;然后,在该起始点的周围应用一个细化搜索模板进行校正。

由于亚像素的插值必须在搜索前完成,所以减少亚像素搜索位置不仅可以提升亚像素运动估计的速度,而且可以减少多余的亚像素插值。

在本发明所提供的实施例中,在确定一个块(宏块)的预测像素最佳匹配点的起始点之前,还包括如下步骤:

判断当前块是否为静止块;如果当前块是静止块,则亚像素运动估计结束;否则,确定当前块的预测像素最佳匹配点的起始点。

其中,判断当前块是否为静止块采用如下方式:

s11,当前块的最优整像素运动矢量mv为(0,0);

s12,当前块的时域相邻块的运动矢量mv为(0,0);

s13,当前块和相邻块的最优整像素残差值足够接近;在本发明所提供的实施例中,当前块和相邻块的最优整像素残差值足够接近为当前块和相邻块的最优整像素残差值比率不大于1;

s14,当以上三个条件同时满足时,当前宏块为静止块。

具体的,利用时域相邻静态分块的相关性以决定是否跳过当前块的亚像素插值和运动估计,以减少亚像素搜索位置。对于静止场景中的分块,最好的编码手段是跳过所有的分像素插值和运动估计。现有的提前终止条件利用了相邻分块最优残差值的相关性,但实际上,相邻分块最优残差值之间的变化非常不稳定,特别是在视频包含剧烈运动的情况,相邻分块的最优残差值相差甚远。为此,难以为各种情况设定一个统一提前终止条件。然而,如果该分块的内容是静止的,最优残差值之间的时域相关性就会相当高。直观上看,静止视频序列中的残差值,其变化也相对平稳。

针对当前块是否为一个静止分块给出如下3个条件:1)当前块的最优整像素运动矢量为(0,0);2)当前分块的时域相邻分块的运动矢量为(0,0);3)两个分块的最优整像素残差值足够接近。同时具备这3个条件的分块就是一个静止块,并且无须在该分块上应用亚像素运动估计和插值。

对于第1和第2个条件,可以通过检查相应分块的运动矢量判断,即可以通过检查当前块和它的时域相邻块的运动矢量mv是否等于(0,0)进行判断。针对第2个条件指出:如果时域相邻分块为帧内预测分块,则当前分块不可能成为静止分块。对于第3个条件判断相邻两个分块残差值是否足够接近,这里定义一个ratio比率。

其中,sadcurrent是指当前块的最优整像素运动矢量为(0,0)时,当前块与参考块的绝对差值和,而sadadjacent是指相邻块的运动矢量为(0,0)时,相邻块与参考块的绝对差值和。在编码过程中,当ratio>1则表明当前块不是静止块,不能跳过亚像素的搜索位置;当ratio<=1则表明当前块和相邻块的最优整像素残差值足够接近。

如果当前块认定为静止块,则不需要进行亚像素运动估计me和亚像素插值运算,直接将当前块的亚像素运动矢量mv赋值为(0,0),亚像素运动估计结束。如果不能同时满足上面3个条件则当前块被认为包含剧烈运动,确定预测像素最佳匹配点的起始点,进行亚像素的运动估计,尽量减少亚像素插值运算和减少亚像素搜索点的运算。在本发明所提供的实施例中,以当前块的左上角位置坐标值加上最佳整像素运动矢量mv所指向参考帧中的位置为起始点。其中,最佳整像素运动矢量通过计算整像素运动轨迹获取,可以是整像素运动轨迹中运动位置变化量最小的整像素运动矢量;也可以是残差值最小的整像素运动矢量,或者是其他自定义的整像素运动矢量,在此不做具体限定。

s2,根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点;具体包括如下步骤:

s21,以起始点为中心点,根据小菱形模式找到菱形的四个顶点作为搜索点。

具体的,以当前块的左上角位置坐标值加上最佳整像素运动矢量mv所指向参考帧中的位置为起始点,以起始点为中心点,按着小菱形模式进行1/2像素的运动估计me。即以起始点为中心点,以1/2像素点为半径构建小菱形,小菱形的四个顶点为搜索点。如图2所示,在这一步只计算1/2像素集:02和20,其它13个像素集在这一步不进行计算。例如,当起始点为00时(图2中用方框标出),只计算2个1/2像素:02和20(图2中用实线圆圈标出)。第一步会多出4个新的搜索点,剩余的步骤每一步都是多出3个新的搜索点(如图3中虚线圆圈所示)。

s22,计算搜索点的sad值;并找到sad值最小的候选搜索点;具体包括如下步骤:

s221,计算任一个搜索点的sad值,如果该搜索点的sad值小于中心点的sad值,则转向步骤s222;否则,转向步骤s223。

s222,计算该搜索点相邻两个搜索点的sad值。

s223,计算剩余搜索点的sad值。

s224,找到sad值最小的候选搜索点。

具体的,先计算任一个搜索点的sad(sumofabsolutedifferences,绝对差的总和)值,如果该搜索点的sad值比中心点的sad值小,那么跟它对称的那个搜索点就不去计算了;如果该搜索点的sad值比中心点的sad值大,那么才计算跟它对称的那个搜索点。这样每次只计算新搜索点中的3个或者4个搜索点的sad值。其中,计算搜索点的sad值可以是现有任意的计算像素点sad值的方法,在此不做具体限制。

s23,如果候选搜索点的sad值小于中心点的sad值,则以该候选搜索点为中心点,根据小菱形模式找到菱形的三个顶点作为搜索点,转向步骤s22;否则,转向步骤s24。

s24,搜索结束,该中心点为1/2像素的运动估计me的最佳匹配点。即得到1/2像素最佳匹配点。

具体的,如果拥有最小sad值的搜索点为小菱形的4个顶点之一,那么就以这个最小sad值的顶点为中心,扩展出一个新的菱形(如图3所示,扩展出新菱形的顶点用虚线圆圈标出),多出3个新的搜索点,然后转向步骤s22;如果拥有最小sad值的搜索点为小菱形的中心点,那么搜索结束,就认为该中心点为1/2像素的运动估计me的最佳匹配点。

s3,以该1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点,得到像素最佳匹配点;具体包括如下步骤:

s31,以该1/2像素最佳匹配点为中心点,根据小菱形模式计算起始点的1/4像素集。

以步骤s2中得到的1/2像素最佳匹配点为起始点,以该起始点为中心点,只计算出它周围4个1/4像素。即以该起始点为中心点,以1/4像素点为半径构建小菱形,小菱形的四个顶点为搜索点。例如,当s2中计算得到22点为最佳匹配点(图4中用方框标出),周围4个1/4像素为12、21、32、23(图4中用圆圈标出)。

s32,计算任一个1/4像素搜索点的sad值,如果该1/4像素搜索点的sad值小于中心点的sad值小,则转向步骤s33;否则,转向步骤s34。

s33,计算该1/4像素搜索点相邻两个1/4像素搜索点的sad值。

s34,计算剩余1/4像素搜索点的sad值。

s35,找到sad值最小的候选1/4像素搜索点,即为1/4像素最佳匹配点。

具体的,计算任一个1/4像素的sad值,如果该1/4像素搜索点的sad值比中心点的sad值小,接着计算跟该1/4像素搜索点相近的两个1/4像素搜索点的sad值,选择sad值最小的1/4像素搜索点为1/4像素最佳匹配点;如果该1/4像素搜索点的sad值比中心点的sad值大,只能计算剩余的3个1/4像素搜索点的sad值,选择sad值最小的搜索点为1/4像素最佳匹配点。

s4,亚像素运动估计结束。

另一方面,本发明还提供一种高效亚像素运动估计系统。如图5所示,该系统包括处理器52以及存储有处理器52可执行指令的存储器51;

其中,处理器52可以是通用处理器,例如中央处理器(cpu),还可以是数字信号处理器(dsp)、专用集成电路(asic),或者是被配置成实施本发明实施例的一个或多个集成电路。

其中,存储器51,用于存储程序代码,并将该程序代码传输给cpu。存储器51可以包括易失性存储器,例如随机存取存储器(ram);存储器51也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器51还可以包括上述种类的存储器的组合。

具体地,本发明实施例所提供的第三方动态库接口拦截系统,包括处理器52和存储器51;存储器51上存储有可用在处理器52上运行的计算机程序,当计算机程序被处理器52执行时实现如下步骤:

确定预测像素最佳匹配点的起始点;

根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点;

以该1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点;得到像素最佳匹配点;

亚像素运动估计结束。

其中,在确定预测像素最佳匹配点的起始点之前,计算机程序被处理器52执行实现如下步骤;

判断当前块是否为静止块;如果当前块是静止块,则亚像素运动估计结束;否则,确定当前块的预测像素最佳匹配点的起始点。

其中,当计算机程序被处理器52执行时实现如下步骤;

所述判断当前块是否为静止块采用如下方式:

当前块的最优整像素运动矢量为(0,0);

当前块的时域相邻块的运动矢量为(0,0);

当前块和相邻块的最优整像素残差值足够接近;

当以上三个条件同时满足时,当前宏块为静止块。

其中,当计算机程序被处理器52执行时实现如下步骤;

当前块和相邻块的最优整像素残差值足够接近为当前块和相邻块的最优整像素残差值比率不大于1。

其中,当计算机程序被处理器52执行时实现如下步骤;

该预测像素最佳匹配点的起始点是当前块的左上角位置坐标值加上最佳整像素运动矢量所指向参考帧中的位置。

其中,根据小菱形模式进行1/2像素的运动估计,得到1/2像素最佳匹配点,当计算机程序被处理器52执行时实现如下步骤;

s21,以起始点为中心点,根据小菱形模式找到菱形的四个顶点作为搜索点;

s22,计算搜索点的sad值;并找到sad值最小的候选搜索点;

s23,如果候选搜索点的sad值小于中心点的sad值,则以所述该搜索点为中心点,根据小菱形模式找到菱形的三个顶点作为搜索点,转向步骤s22;否则,转向步骤s24。

s24,搜索结束,所述中心点为1/2像素的运动估计的最佳匹配点。

其中,计算搜索点的sad值;并找到sad值最小的候选搜索点,当计算机程序被处理器52执行时实现如下步骤;

s221,计算任一个搜索点的sad值,如果该搜索点的sad值小于中心点的sad值,则转向步骤s222;否则,转向步骤s223;

s222,计算该搜索点相邻两个搜索点的sad值;

s223,计算剩余搜索点的sad值;

s224,找到sad值最小的候选搜索点。

其中,以1/2像素最佳匹配点为起始点,搜索1/4像素最佳匹配点,得到像素最佳匹配点,当计算机程序被处理器52执行时实现如下步骤;

s31,以该1/2像素最佳匹配点为中心点,根据小菱形模式计算起始点的1/4像素集;

s32,计算任一个1/4像素搜索点的sad值,如果该1/4像素搜索点的sad值小于中心点的sad值小,则转向步骤s33;否则,转向步骤s34;

s33,计算该1/4像素搜索点相邻两个1/4像素搜索点的sad值;

s34,计算剩余1/4像素搜索点的sad值;

s35,找到sad值最小的候选1/4像素搜索点,所述sad值最小的候选1/4像素搜索点即为像素最佳匹配点。

本发明实施例还提供了一种计算机可读存储介质。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。

上面对本发明所提供的高效亚像素运动估计方法及系统进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

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