背景技术
在块匹配算法(Block-Matching Algorithm,BMA)中,首先将图像分成N×N的宏块(Macro Block,MB),并假设块内像素作相同的运动,且只做平移运动,然后用当前图像的每一个宏块在上一帧的一定范围内搜索或穷举,得到一个最优的运动矢量(Motion Vector,MV)。在块匹配运动估计算法中,全搜索(FS)算法精度最高,但是运算量太大,软件实时性差。后来人们相继提出了许多快速运动估计算法,如Li R等人提出的三步法(TSS,A new three-step search algorithm for block motion estimation.IEEE Trans Circuits Systems for Video Technology,1994,4(4):438-442.),Po M L等人提出的四步法(FSS,A novel four-step searchalgorithm for fast block motion estimation.IEEE Trans CircuitsSystems for Video Technology,19966(6):313-317.)和Zhu S等人提出的菱形法(DS,A novel unrestricted center-biased diamond searchalgorithm for block motion estimation.IEEE Trans Circuits Systemsfor Video Technology,1998,8(8):369-377.)等。
在这些快速运动估计算法之中,DS算法即菱形搜索(Diamond Search)算法是其中性能最为优异的算法,它的综合性能(速度、准确度)明显优于其它的几种快速算法。DS算法是MPEG-4VM(验证模型)编码器中采用的快速运动估计算法,其综合性能代表了当前的国际先进水平。
搜索模板的形状和大小不但影响整个算法的运行速度,而且也影响它的性能。块匹配的误差实际上是在搜索范围内建立的误差表面函数,全局最小点即对应着最佳运动矢量。由于这个误差表面通常并不是单调的,所以搜索窗口太小,就容易陷入局部最优;而搜索窗口太大,又容易产生错误的搜索路径。另外,统计数据表明,在对视频图像进行运动估值时,最优点通常在零矢量周围(以搜索窗口中心为圆心,两像素为半径的圆内),如图1所示。
基于这两点事实,DS算法采用了两种搜索模板,分别是有9个搜索点的大模板LSPSP(Large Diamond Search Pattern)和有5个搜索点的小模板SDSP(Small Diamond Search Pattern),如图2和图3所示。搜索时先用大模板计算,当最小块误差MBD(Minimum Block Distortion)点出现在中心点处时,将大模板LSPSP换为SDSP,再进行匹配计算,这时5个点中的MBD即为最优匹配点。否则,改变中心点位置,仍用LSPSP重复计算。
DS算法的特点在于它分析了视频图像中运动矢量的基本规律,选用了大小两种形状的搜索模板LSPSP和SDSP。先用LSPSP大范围搜索,再用SDSP来准确定位,所以它的性能优于其它算法。但是,DS算法只是一种搜索策略的折衷处理,其性能上的缺陷表现在两个方面:(1)对于运动大的序列,DS算法在搜索最佳点所在区域时,并没有充分利用SAD(The Sum ofAbsolute Difference)的空间分布特性,而是同等地对待各部分,这造成较大的搜索冗余,影响了算法的搜索速度;(2)对于保持静止的图像序列,即运动矢量为零的情况,DS算法要经历由大模板(LSPSP)到小模板(SDSP)的变化过程,要对13个搜索点进行搜索,而理想情况是只需搜索5个点,即对于小运动序列DS算法还有待改进。
发明内容
针对上述DS算法的这些问题,本发明的目的是在提出的SDS算法的基础上进一步发展提出了线性正方形并行搜索(Line-Square ParallelSearch)快速运动估计方法,简称LSPS算法,该LSPS算法能够较好地解决了DS算法存在的问题。对于各种运动序列,LDPS算法的搜索速度都明显优于包括DS在内的以往各种快速运动估计算法,在精度上,对于小运动序列LDPS比DS略低,对于大运动序列要好于DS算法。
LSPS算法根据视觉的并行处理思想,以及SAD分布的空间方向性和运动矢量分布的中心偏移性,设计了正方形搜索模板和线性搜索方法。通过并行搜索和线性搜索减少了搜索冗余提高了算法速度,使用小的正方形模板保证了算法的搜索精度。LSPS算法在保证一定的搜索精度的同时,很好地克服了DS等快速算法搜索速度慢的缺点。
本发明是通过下述方法实现的:
基于块的快速运动估计算法的搜索模板和搜索策略决定了整个算法的搜索速度和准确度。为了设计合理的搜索模板和搜索方法,研究视频序列中块运动的基本性质是非常重要的。下面是关于块运动估计的三条基本性质:
性质1:运动矢量的分布具有中心偏移特性,即大部分块是静止的或准静止的。如图4显示:图4显示了Miss America序列在±7个像素的搜索范围内的运动矢量分布情况,从统计结果可以看出,运动矢量主要分布在零矢量周围的±2像素范围之内。所以,设计搜索模板时应该考虑运动矢量分布的中心偏移性。
性质2:误差曲面具有多峰分布的特性,在大多数情况下,误差曲面含有一个或多个局部极小点。因为这种多峰分布的特性,所以搜索模板不能太小,以免陷入局部极小点。
性质3:SAD(The Sum of Absolute Difference)的分布具有空间方向性,即一般SAD值沿着某一个梯度下降的方向趋向极小点。如图5所示:图5是Miss America某一块在35×35搜索窗内的SAD分布图,从图中可以看出SAD的分布具有明显的方向性,除了(0,0)附件的SAD值较小外(为最佳点所在区域),其余的SAD值都较大,且基本沿着某一个固定方向趋向最佳点所在区域。所以,搜索方法应该体现梯度下降法的基本思想。
根据以上基本性质及视觉的并行处理思想,本发明人设计了LSPS算法的搜索模板和搜索方法。LSPS算法的基本原理是:利用沿梯度下降方向的线性搜索代替传统方法的大模板搜索,减少了搜索冗余;同时用正方形模板保证了精细搜索的准确度,并且可以用其并行地确定下一步的搜索方向。
具体步骤如下:
一种线性正方形并行搜索快速运动估计方法,简称LSPS算法,该方法包括以下步骤:
a.构建正方形模板,该模板包括内模板和外模板,所述内模板包括9个搜索点,该9个搜索点由外面的8个搜索点和中心的一个搜索点组成,所述外模板包括8个虚拟搜索点,内模板的外面8个搜索点用于确定下一步线性搜索的方向,外模板上的8个虚拟搜索点根据前面9个搜索点的搜索情况来决定是否进行搜索和进行何种搜索;
b.以搜索区原点为正方形模板的中心点,在内模板上的9个搜索点处分别计算出对应的绝对差和SAD,找出最小块误差点即MBD点,若MBD点位于中心点,则执行步骤d;如果不是,则以此MBD点为线搜索点,执行步骤c;
c.在中心点和线搜索点所确定的方向上计算下一个检测点的SAD,若其SAD值小于线搜索点的SAD值,则以线搜索点为中心点,以此检测点为线搜索点,重新执行步骤c;否则,以线搜索点为正方形模板,即SP模板的中心点,执行步骤b;
d.将该MBD点作为最佳匹配点,得到运动矢量.
所述步骤b还可以为如下步骤,以搜索区原点为正方形模板的中心点,在内模板上的9个搜索点处分别计算出对应的绝对差和SAD,找出最小块误差点即MBD点,若MBD点位于中心点,则执行步骤d,如果MBD点为内模板外面的8个搜索点之一,则在此点所确定的搜索方向上进行线性搜索,即搜索外模板此方向上的虚拟搜索点,并且在这个方向上继续进行线性搜索,直到当前搜索点的SAD值大于前一个搜索点的SAD值才结束线性搜索,以上述最后得到的SAD值最小的搜索点为线搜索点,执行步骤c。
所述“中心点”指正方形模板,即SP模板的中心位置。所述“线搜索点”是指在正方形模板,即SP模板中SAD值最小的一个方向上的搜索点,中心点和线搜索点一起确定线搜索的方向。
根据运动矢量分布的中心偏移性及并行处理的思想,并考虑到视觉中心凹的特点(中心密,四周疏),上述的正方形模板(Square Pattern,SP)上有9个搜索点(称为内模板)和8个虚拟搜索点(称为外模板),该9个搜索点由外面的8个搜索点和中心的一个搜索点组成,所述外面的8个搜索点用于确定下一步线性搜索的方向,如图6(b)所示的8个搜索方向,外模板上的8个虚拟搜索点(图6中的虚线圆)根据前面内模板的9个点的搜索情况来决定是否进行搜索以及进行何种搜索。这种模板体现了视觉中心凹的特性,即中心密、四周疏。
本发明LSPS算法首先计算内模板上的9个搜索点,如果MBD(MinimumBlock Distortion)点为中心点,则算法终止,这体现了算法的并行处理能力,即在判断下一步搜索方向的同时对此区域进行精确搜索。显然,对于静止块,LSPS算法只需对9个搜索点进行搜索,比DS算法少搜索4个点(DS需对13个搜索点进行搜索)。
如果MBD点为内模板外面的8个点之一,则在此点所确定的搜索方向上进行线性搜索,即搜索外模板此方向上的虚拟搜索点,图6(c)和图6(d)分别说明了MBD在水平方向和对角线方向上的线性搜索方法。并且在这个方向上继续进行线性搜索,直到当前搜索点的值大于前一个搜索点的值线性搜索才结束,并利用正方形模板,即SP模板重新确定搜索方向,如图6(c)和图6(d)中的第五步
具体实施方式:
LSPS算法的具体实施例1的搜索步骤如下:
Starting:以搜索区原点作为正方形模板,即SP模板(SquarePattern)的中心点;
Selecting the search direction:在正方形模板,即SP模板上的9个点处分别计算出对应的SAD,找出MBD(Minimum Block Distortion)点,若MBD点位于中心,则转Ending;否则,以MBD点作为线搜索点,转Line Search;
Line Search:在中心点和线搜索点所确定的方向上计算下一个检测点的SAD,若其SAD值小于线搜索点的SAD,则以线搜索点为中心点,以此检测点为线搜索点,转Line Search;否则,以线搜索点为正方形模板,即SP模板的中心点,转Selecting the search direction;
Ending:将该MBD点作为最佳匹配点,得到运动矢量。
LSPS算法的具体实施例2的搜索步骤如下:
Starting:以搜索区原点作为正方形模板,即SP模板(SquarePattern)的中心点;
Selecting the search direction:在正方形模板,即SP模板上的9个点处分别计算出对应的SAD,找出MBD(Minimum Block Distortion)点,若MBD点位于中心,则转Ending;若MBD点为内模板外面的8个搜索点之一,则在此点所确定的搜索方向上进行线性搜索,即搜索外模板此方向上的虚拟搜索点,并且在这个方向上继续进行线性搜索,直到当前搜索点的SAD值大于前一个搜索点的SAD值才结束线性搜索,以上述最后得到的SAD值最小的搜索点为线搜索点,转Line Search;
Line Search:在中心点和线搜索点所确定的方向上计算下一个检测点的SAD,若其SAD值小于线搜索点的SAD,则以线搜索点为中心点,以此检测点为线搜索点,转Line Search;否则,以线搜索点为正方形模板,即SP模板的中心点,转Selecting the search direction;
Ending:将该MBD点作为最佳匹配点,得到运动矢量。
本发明LSPS算法具有以下优点:
根据SAD分布的空间方向性进行线性搜索,对于大运动序列,减少了搜索冗余,提高了算法速度;
根据运动矢量分布的中心偏移性,设计了9搜索点、8虚拟搜索点的正方形模板,保证了搜索算法的精度;
在确定搜索方向时,同时进行精确搜索,对于小运动序列,减少了搜索冗余,提高了算法速度;
从算法的实现步骤上看,算法复杂度低,便于软硬件实现。