本发明涉及图像处理技术领域,特别是涉及一种真实运动估计方法及装置。
背景技术:
目前视频传输中的编解码技术可以获得很高的压缩比,然而为了适应一些网络带宽的限制,通常将视频信号的时空分辨率降低以降低数据量,在时域中可以通过编码端跳帧来实现。但是,在解码端必然会引起视频运动的不连续和图像质量的退化,尤其在快速运动和复杂场景中更为明显。
为解决上述问题,可以通过在解码端采用视频插帧技术,即帧率转换技术来恢复原始帧率以提高视频图像的主观视觉效果。视频插帧技术也可以用于不同帧率的视频格式之间的转换。由于简单的帧重复和帧平均会产生运动抖动和模糊,因此,在实际运用中通常采用方法是基于块匹配的运动补偿内插(Motion-compensated Interpolation,MCI),而该方法所获得的内插帧的质量取决于运动矢量估计的准确度。
现有技术中,通常采用三维递归搜索的块匹配方法来估计物体的真实运动。三维递归搜索的块匹配方法,当前块的运动矢量是对时间、空间预测的运动矢量的小范围的修正。当前块的运动矢量同时也是下一分块,下一行的相邻分块的空域候选矢量和时域候选矢量。因此,对当前块的运动估计需要在计算各个帧图像划分得到的分块的候选运动矢量时,采用光栅扫描顺序,即从上到下,从左至右的顺序。但是,这种扫描顺序会造成运动矢量沿着从上至下,或者从左至右的顺序收敛,无法快速并准确地收敛到真实的运动矢量。
技术实现要素:
本发明实施例解决的技术问题是如何提高运动矢量估计的速度和准确性。
为解决上述问题,本发明实施例提供了一种真实运动估计方法,所述方 法,包括:
将当前帧的图像划分成为多个分块;
将按照预设的扫描顺序预测所述各个分块的候选运动矢量,所述预设的扫描顺序包括:沿着水平方向将所述当前帧的图像划分成为一个以上的子图像;对于同一个子图像,开始扫描的第一行的分块采用从左至右且相邻行的分块之间采用相反的扫描顺序;对于相邻的两个子图像,采用行扫描顺序相反的扫描顺序;
从所述各个分块的候选运动矢量中选取最优预测运动矢量;
以所述最优预测运动矢量为中心搜索得出当前帧的图像的运动矢量。
可选地,所述候选运动矢量,包括:空域候选运动矢量、时域候选运动矢量、全局运动矢量和零运动矢量。
可选地,所述从所述各个分块的候选运动矢量中选取最优预测运动矢量,包括:
计算各个候选运动矢量对应的绝对差和,并将各个候选运动矢量与周围分块的运动矢量之间的差值与预设权重系数的乘积作为惩罚项;
从所述候选运动矢量场中选取对应的绝对差和与惩罚项之和最小的候选运动矢量作为所述最优预测运动矢量。
可选地,所述以所述最优预测运动矢量为中心搜索得出当前帧的图像的运动矢量,包括:
将与所述最优预测运动矢量之间的距离为第一距离的8个运动矢量作为第一组运动矢量,将与所述最优预测运动矢量之间的距离为第二距离的8个运动矢量作为第二组运动矢量;
分别对第一组运动矢量和第二组运动矢量中的各个运动矢量计算对应的绝对差和与惩罚项;
分别从所述第一组运动矢量和第二组运动矢量中选取绝对差和与惩罚项之和最小的运动矢量作为第一最优运动矢量和第二最优运动矢量;
当确定所述第一最优运动矢量或者所述第二最优运动矢量与所述最优运动矢量相同时,将所述最优预测运动矢量作为所述当前帧的图像的运动矢量;
当确定所述第一最优运动矢量和所述第二最优运动矢量均与所述最优运动矢量不相同,且所述第一最优运动矢量和所述第二最优运动矢量位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,从与所述第一最优运动矢量的距离为所述第一距离的8个运动矢量中,除所述第一组运动矢量之外的5个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第三最优运动矢量,从与所述第二最优运动矢量的距离为所述第二距离的8个运动矢量中除所述第二组运动矢量之外的5个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第四最优运动矢量;
当确定所述第一最优运动矢量和所述第二最优运动矢量均与所述最优运动矢量不相同,且所述第一最优运动矢量和所述第二最优运动矢量非位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,从与所述第一最优运动矢量的距离为所述第一距离的8个运动矢量中,除所述第一组运动矢量之外的3个运动矢量中选取对应的绝对差和与惩罚项之和最小的运动矢量作为所述第三最优运动矢量,从与所述第二最优运动矢量的距离为所述第二距离的8个运动矢量中除所述第二组运动矢量之外的3个运动矢量中选取对应的绝对差和与惩罚项之和最小的运动矢量作为第四最优运动矢量;
从所述第三最优运动矢量和所述第四最优运动矢量中选取所述绝对差和与惩罚项之和较小的运动矢量作为当前帧的图像的运动矢量。
可选地,所述第一距离为1,所述第二距离为3。
本发明实施例还提供了一种真实运动估计装置,所述装置包括:
分块单元,适于将当前帧的图像划分成为多个分块;
预测单元,适于将按照预设的扫描顺序预测所述各个分块的候选运动矢量,所述预设的扫描顺序包括:沿着水平方向将所述当前帧的图像划分成为一个以上的子图像;对于同一个子图像,开始扫描的第一行的分块采用从左至右且相邻行的分块之间采用相反的扫描顺序;对于相邻的两个子图像,采用行扫描顺序相反的扫描顺序;
选取单元,适于从所述各个分块的候选运动矢量中选取最优预测运动矢量;
搜索单元,适于以所述最优预测运动矢量为中心搜索得出当前帧的图像的运动矢量。
可选地,所述候选运动矢量,包括:空域候选运动矢量、时域候选运动矢量、全局运动矢量和零运动矢量。
可选地,所述选取单元适于计算各个候选运动矢量对应的绝对差和,并将各个候选运动矢量与周围分块的运动矢量之间的差值与预设权重系数的乘积作为惩罚项;从所述候选运动矢量场中选取对应的绝对差和与惩罚项之和最小的候选运动矢量作为所述最优预测运动矢量。
可选地,所述搜索单元适于将与所述最优预测运动矢量之间的距离为第一距离的8个运动矢量作为第一组运动矢量,将与所述最优预测运动矢量之间的距离为第二距离的8个运动矢量作为第二组运动矢量;分别对第一组运动矢量和第二组运动矢量中的各个运动矢量计算对应的绝对差和与惩罚项;分别从所述第一组运动矢量和第二组运动矢量中选取绝对差和与惩罚项之和最小的运动矢量作为第一最优运动矢量和第二最优运动矢量;当确定所述第一最优运动矢量或者所述第二最优运动矢量与所述最优运动矢量相同时,将所述最优预测运动矢量作为所述当前帧的图像的运动矢量;当确定所述第一最优运动矢量和所述第二最优运动矢量均与所述最优运动矢量不相同,且所述第一最优运动矢量和所述第二最优运动矢量位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,从与所述第一最优运动矢量的距离为所述第一距离的8个运动矢量中除所述第一组运动矢量之外的5个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第三最优运动矢量,从与所述第二最优运动矢量的距离为所述第二距离的8个运动矢量中除所述第二组运动矢量之外的5个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第四最优运动矢量;当确定所述第一最优运动矢量和所述第二最优运动矢量均与所述最优运动矢量不相同,且所述第一最优运动矢量和所述第二最优运动矢量非位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,从与所述第一最优运动矢量的距离为所述第 一距离的8个运动矢量中除所述第一组运动矢量之外的3个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为所述第三最优运动矢量,从与所述第二最优运动矢量的距离为所述第二距离的8个运动矢量中除所述第二组运动矢量之外的3个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第四最优运动矢量;
从所述第三最优运动矢量和所述第四最优运动矢量中选取所述绝对差和与惩罚项之和较小的运动矢量作为当前帧的图像的运动矢量。
可选地,所述第一距离为1,所述第二距离为3。
与现有技术相比,本发明的技术方案具有以下的优点:
上述的方案,在对当前帧的图像划分得到的分块进行扫描时,对于同一个子图像,开始扫描的第一行的分块采用从左至右且相邻行的分块之间采用相反的扫描顺序;对于相邻的两个子图像,采用行扫描顺序相反的扫描顺序,这样,在同一帧图像中既存在从上之下的扫描和从左至右的扫描,也存在从下至上和从右至左的块扫描顺序,可以从四个方向上对运动矢量收敛,因此,可以加快收敛的速度,并提高真实运动估计的准确性。
进一步地,在从当前帧的各个分块的候选运动矢量中选取最优预测运动矢量时,在计算对应的绝对差和的基础上,增加了由所述运动矢量与周围分块的运动矢量的差值构成的惩罚项,可以保证运动矢量的连续性,因此,可以真实运动估计的准确性。
进一步地,在根据得到的最优预测运动矢量搜索得到当前帧的图像的运动矢量时,以所述最优预测运动矢量为中心对周围的运动矢量进行搜索,可以避免由于在最优预测运动矢量上加上一个随机偏移所造成的收敛速度慢的问题,因此,可以提高运动收敛的速度,进而提高真实运动估计的速度。
附图说明
图1是本发明实施例中的一种真实运动估计方法的流程图;
图2是本发明实施例中的预设的扫描顺序示意图;
图3是本发明实施例中的以所述最优预测运动矢量为中心搜索得出当前 帧的图像的运动矢量的流程图;
图4是本发明实施例中的真实运动估计装置的结构示意图。
具体实施方式
为解决现有技术中存在的上述问题,本发明实施例采用的技术方案通过对前一帧图像的各个分块的运动矢量进行聚类得到的多个类的质心对应的运动矢量作为当前帧图像的全局运动矢量并输出,可以节约运算量,并提高计算得出的全局运动矢量的准确性。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1示出了本发明实施例中的一种真实运动估计方法的流程图。如图1所示的真实运动估计方法,可以包括:
步骤S101:将当前帧的图像划分成为多个分块。
在具体实施中,可以将当前帧的图像划分成为N*N个不重叠的分块。其中,N为正整数,并可以根据实际的需要进行设置。
步骤S102:按照预设的扫描顺序预测所述各个分块的候选运动矢量。
在具体实施中,当得到各个分块后,可以将各个分块与参考帧进行匹配,以预测得到各个分块的候选运动矢量。其中,在将各个分块与参考帧进行匹配时,各个分块的扫描顺序,也即预测出各个分块的候选矢量的顺序,对于各个分块的运动矢量快速地收敛至真实的运动具有重要的影响。
在本发明一实施例中,为了提高预测收敛的速度,可以采用下述的扫描顺序预测得出各个分块的运动矢量:
首先,可以将当前帧的图像沿着水平方向划分成为若干个子图像。其中,在对当前帧的图像进行子图像的划分时,所划分的子图像的个数可以根据实际的需要进行设置,例如,为1、2、4等。当将当前帧的图像划分成为2个以上的子图像时,由于片上存储容量的大小与待处理的子图像的宽度成正比,因此,可以减少所需的片上的存储容量。
但是,这里需要指出的是,在进行子图像的划分时,同一个分块只能属 于一个子图像,而不可以将一个分块的不同部分划分到不同的子图像中。
在划分得到对应的子图像之后,对于同一个子图像,开始扫描的第一行的分块采用从左至右且相邻行的分块之间采用相反的扫描顺序;对于相邻的两个子图像,采用行扫描顺序相反的扫描顺序。其中,这里的行扫描顺序是指,在垂直方向上的行与行之间的扫描顺序。例如,对于相邻的两个子图像而言,其中一个子图像可以采用从上至下的行扫描顺序,而另一个子图像可以采用从下至上的行扫描顺序。
例如,请参见图2所示,对于虚线200左边的子图像201,采用从上之下且同一行的分块采用从左至右的顺序进行扫描,对于虚线200右边的子图像202,则采用从下至上且同一行的分块采用从右至左的顺序进行扫描。同时,子图像201和子图像200开始扫描的第一行的分块的扫描方向相同,即从左至右。当然,相邻的子图像201和子图像202之间的扫描顺序也可以互换,只要扫描时第一行的分块的扫描顺序为从左至右即可。
上述的扫描顺序,使得当前帧的图像中既存在从上至下和从左至右的扫描,也有从下至上和从右至左的扫描,这样可以使得运动矢量可以沿着上下左右四个方向收敛,因此,可以提高运动矢量的收敛速度,进而提升真实运动估计的速度。
在具体实施中,按照上述的扫描顺序预测得出的各个分块的运动矢量所述候选运动矢量C,可以包括相应分块的空域候选运动矢量CS、时域候选运动矢量CT、全局运动矢量CG和零运动矢量C0,即:
C={CS,CT,CG,C0} (1)
其中,以当前块所在行采用从左到右,当前块所在子图像采用从上到下的行扫描顺序为例,零运动矢量C0用于检测静止场景;全局运动矢量CG用于改善当前块与周围的分块的运动不一致的情形;空域候选运动矢量CS,采用在同一图像中已经完成运动估计的周围块的运动矢量,即:
时域候选运动矢量CT,采用前一帧图像中当前块周围的分块的运动矢量,即:
步骤S103:从所述各个分块的候选运动矢量中选取最优预测运动矢量。
在具体实施中,当得到各个分块的候选运动矢量之后,可以采用一定的方式从各个分块的候选运动矢量中选取最优运动矢量。
在本发明一实施例中,可以首先计算各个分块的候选运动矢量对应的绝对差与和惩罚项之和,即:
其中,E表示当前分块的候选运动矢量对应的绝对差与和惩罚项之和,SAD(fc(x),fr(x+MVp))表示利用当前分块的候选运动矢量指向的参考位置计算得出的对应的绝对差和,λ∑i∈C||MVi-MVp||表示当前分块的候选运动矢量对应的惩罚项(也可以采用其他的名称,如补偿项、调整项等),即与周围的分块的候选运动矢量的差值与预设的权重系数的乘积。其中,所述设权重系数λ可以随着各个分块而变化,也可以为固定的数值,本发明对此不作限制。
在具体实施中,当采用公式(4)计算得出各个分块的候选运动矢量对应的E时,便可以从中选取E值最小的分块的候选矢量作为所述最优预测候选矢量,即:
其中,MVpred表示所述最优预测候选运动矢量。
这里需要指出的是,也可以采用其他的方式从当前帧的图像的各个分块的候选运动矢量中选取最优预测运动矢量,本领域的技术人员可以根据实际的需要进行选择,在此不做限制。
步骤S104:以所述最优预测运动矢量为中心搜索得出当前帧的图像的运 动矢量。
在具体实施中,当从当前帧的各个分块的候选运动矢量中选取最优预测运动矢量时,以所述最优预测运动矢量为中心,通过搜索所述最优预测运动矢量周围的运动矢量,而最终得出当前帧的图像的运动矢量。
下面将结合图3对本发明实施例中的以所述最优预测运动矢量为中心搜索得出当前帧的图像的运动矢量的过程做进一步详细的说明。
步骤S301:搜索与所述最优预测运动矢量之间的距离为第一距离的8个运动矢量作为第一组运动矢量。
在具体实施中,假定第一距离为d,最优预测运动矢量为(X,Y),那么,与最优预测运动矢量为(X,Y)的距离为第一距离d的8个运动矢量可以表示为(X±d,Y±d)。
步骤S302:从所述第一组运动矢量中选取第一最优运动矢量。
在具体实施中,同样可以采用公式(4)从所述第一组运动矢量中选取对应的绝对差和与惩罚项之和最小的运动矢量作为所述第一最优运动矢量。
步骤S303:判断所述第一最优运动矢量是否与所述最优预测运动矢量相同;当判断结果为是时,可以执行步骤S304,反之,则可以执行步骤S305。
步骤S304:将所述最优预测运动矢量作为当前帧的图像的运动矢量输出。
在具体实施中,当确定第一最优运动矢量与所述最优预测运动矢量相同,也即二者重合时,可以将所述最优预测运动矢量作为当前帧的图像的运动矢量输出。
步骤S305:判断所述第一最优运动矢量是否位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方;当判断结果为是时,可以执行步骤S306;反之,则可以执行步骤S307。
在具体实施中,当判断所述第一最优运动矢量与所述最优预测运动矢量不重合时,可以判断所述第一最优运动矢量是否位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方。
步骤S306:从与所述第一最优运动矢量之间的距离为第一距离的8个运 动矢量中,除所述第一运动矢量组中的运动矢量之外的5个运动矢量中,选取第三最优运动矢量。
在具体实施中,当确定所述第一最优运动矢量位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,可以从与所述第一最优运动矢量的距离为第一距离且非所述第一运动矢量组中的5个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量,作为所述第二最优运动矢量。
步骤S307:从与所述第一最优运动矢量之间的距离为第一距离的8个运动矢量中,除所述第一运动矢量组中的运动矢量之外的3个运动矢量中,选取所述第三最优运动矢量。
在具体实施中,当确定所述第一最优运动矢量不是位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,可以从与所述第一最优运动矢量的距离为第一距离且非所述第一运动矢量组的3个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量,作为所述第二最优运动矢量。
在执行上述的步骤S301~步骤S307的同时,执行下述的步骤S308~步骤S315:
步骤S308:搜索与所述最优预测运动矢量之间的距离为第二距离的8个运动矢量作为第二组运动矢量。
步骤S309:从所述第二组运动矢量中选取第二最优运动矢量。
步骤S310:判断所述第二最优运动矢量是否与所述最优预测运动矢量相同;当判断结果为是时,可以执行步骤S304,反之,则可以执行步骤S305。
步骤S311:将所述最优预测运动矢量作为当前帧的图像的运动矢量输出。
步骤S312:判断所述第二最优运动矢量是否位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方;当判断结果为是时,可以执行步骤S313;反之,则可以执行步骤S314。
步骤S313:从与所述第二最优运动矢量之间的距离为第二距离的8个运动矢量中,除所述第二运动矢量组中的运动矢量之外的5个运动矢量中,选取第四最优运动矢量。
步骤S314:从与所述第二最优运动矢量之间的距离为第二距离的8个运动矢量中,除所述第二运动矢量组中的运动矢量之外的3个运动矢量中,选取所述第四最优运动矢量。
这里需要指出的是,步骤S308~步骤S314与步骤S301~步骤S307执行一一对应,且对应的步骤的处理过程相类似,在此不做赘述。
步骤S315:从所述第三最优运动矢量和所述第四候选运动矢量中选取所述绝对差和与惩罚项之和较小的运动矢量作为当前帧的图像的运动矢量。
在具体实施中,当得出第三最优运动矢量和第四最优运动矢量时,可以从二者中选取匹配程度更高地作为当前帧的图像的运动矢量进行输出。
在本发明一实施例中,同样可以采用公式(4)计算第三最优运动矢量第四运动矢量对应的E,并从中选取较小E值对应的第三最优运动矢量或者第四最优运动矢量作为当前帧的图像的运动矢量记性输出。
在本发明一实施例中,所述第一距离为1,所述第二距离为3。
图4示出了本发明实施例中的一种真实运动估计装置的结构示意图。如图4所示的真实运动估计装置400,可以包括分块单元401、预测单元402、选取单元403和搜索单元404,其中:
分块单元401,适于将当前帧的图像划分成为多个分块。
预测单元402,适于将按照预设的扫描顺序预测所述各个分块的候选运动矢量,所述预设的扫描顺序包括:沿着水平方向将所述当前帧的图像划分成为一个以上的子图像;对于同一个子图像,开始扫描的第一行的分块采用从左至右且相邻行的分块之间采用相反的扫描顺序;对于相邻的两个子图像,采用行扫描顺序相反的扫描顺序。
在具体实施中,所述候选运动矢量可以包括:空域候选运动矢量、时域候选运动矢量、全局运动矢量和零运动矢量。
选取单元403,适于从所述各个分块的候选运动矢量中选取最优预测运动矢量。
在具体实施中,所述选取单元403适于计算各个候选运动矢量对应的绝 对差和,并将各个候选运动矢量与周围分块的运动矢量之间的差值与预设权重系数的乘积作为惩罚项;从所述候选运动矢量场中选取对应的绝对差和与惩罚项之和最小的候选运动矢量作为所述最优预测运动矢量。
搜索单元404,适于以所述最优预测运动矢量为中心搜索得出当前帧的图像的运动矢量。
在具体实施中,所述搜索单元404适于将与所述最优预测运动矢量之间的距离为第一距离的8个运动矢量作为第一组运动矢量,将与所述最优预测运动矢量之间的距离为第二距离的8个运动矢量作为第二组运动矢量;分别对第一组运动矢量和第二组运动矢量中的各个运动矢量计算对应的绝对差和与惩罚项;分别从所述第一组运动矢量和第二组运动矢量中选取绝对差和与惩罚项之和最小的运动矢量作为第一最优运动矢量和第二最优运动矢量;当确定所述第一最优运动矢量或者所述第二最优运动矢量与所述最优运动矢量相同时,将所述最优预测运动矢量作为所述当前帧的图像的运动矢量;当确定所述第一最优运动矢量和所述第二最优运动矢量均与所述最优运动矢量不相同,且所述第一最优运动矢量和所述第二最优运动矢量位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,从与所述第一最优运动矢量的距离为所述第一距离的8个运动矢量中除所述第一组运动矢量之外的5个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第三最优运动矢量,从与所述第二最优运动矢量的距离为所述第二距离的8个运动矢量中除所述第二组运动矢量之外的5个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第四最优运动矢量;当确定所述第一最优运动矢量和所述第二最优运动矢量均与所述最优运动矢量不相同,且所述第一最优运动矢量和所述第二最优运动矢量非位于所述最优预测运动矢量的正上方、正下方、正左方或者正右方时,从与所述第一最优运动矢量的距离为所述第一距离的8个运动矢量中除所述第一组运动矢量之外的3个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为所述第三最优运动矢量,从与所述第二最优运动矢量的距离为所述第二距离的8个运动矢量中除所述第二组运动矢量之外的3个运动矢量中,选取对应的绝对差和与惩罚项之和最小的运动矢量作为第四最优运动矢量;从所述第三最优运动矢 量和所述第四最优运动矢量中选取所述绝对差和与惩罚项之和较小的运动矢量作为当前帧的图像的运动矢量。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。