本发明涉及动画图像中运动估算的一种方法和装置。 它特别适用于数字电视系统的实现和减少在此类系统中传送的信息量。
为了估算使一个图像系列活动起来的那些点的运动或位移,已知的方法是,或者建立起图像特征线条之间的对应关系,或者利用具有代表性的一些点的空间梯度和时间梯度,应用一种差分估算方法。可是在这后一情形中,所用梯度算法的初始化是难以把握的。例如,按照一种第一类方法,已经知道是通过保证某些特征点(角点、轮廓……)的时间连续性,来估算它们的运动和初始化一个梯度算法的,然而在此情形中,必须在实现这种连续性之前解决角点地提取问题和建立角点间对应关系的问题。这是很费事的,并且所给出结果还十分不完善。
同样已经知道,按照一种第二类方法,它使得图像间的亮度局部变化,或者电视场(trame)间的亮度局部变化的方差为最小,并且通过对一个点(它位于当前点同一行上,并且在当前点的前面)的运动估算来进行梯度算法的初始化。在此情形中,算法的收敛性在很大程度上取决于所用初始化方法的情况,并且它通常是在仅仅考虑这样一些参数的情况下进行的,这些参数是在当前的最接近原空间邻域(voisinage spatial causal)内定义的。这样,对于每一个图像对,运动场是独立地计算的,而没有考虑到从一幅图像到另一幅图像这些运动场(champ)必然是相关的这个事实。
本发明的目的是弥补上述不足之处。
为此,本发明的目的是提供在一个电视类型动画图像系列中的一种运动估算方法,在这种图像系列中,每幅图像都是由一定数量的,分布在一些行和列的交叉处的发光点所组成的。其中的模型是,运动的估算由执行梯度算法来获得,该算法使得图像的当前点相对于前一幅图像中的对应点的亮度的局部变化有最小方差;算法的初始化从由当前点的接近原领域内的多个方向所估算出的位移矢量起始来进行;以及各个估算是沿图像的行扫描方向来传播的;其特点是,它同样包括利用时间预测(predition temporelle)矢量来初始化算法的执行,对于一个图像电视场中的每一个当前点,该时间预测矢量是由前一电视场中一个点(该点沿着其位移矢量方向在当前电视场上的投影点最接近于当前点)的位移矢量来定义的。
本发明的另一个目的是提供一种用来实施上述方法的装置。
根据本发明的方法和装置的主要优点是,由于利用了一个增添的时间初始化矢量,它们可以提高梯度算法的收敛速度。由于位移场中存在连续性这一事实,所得到的位移估算有可能进行较好的时间插值。错误估算(它会引起使眼睛很不舒适的图像跳动)的危险性也被发现是有限的。本发明的其它特点和优点在下面的描述中体现出来,这种描述是通过对应的附图来进行的。
图1a和1b是两个简图,用来说明利用本发明来实施运动估算的两种类型。
图2是一个流程图,用来说明利用本发明实施位移估算的第一种类型。
图3表示一个估算区和一个搜索区。
图4a,4b,4c是三个示意图,分别用来说明在一个电视场中位移估算的传播方向以及奇数行和偶数行初始值的确定。
图5是一个示意图,用来说明本发明第一类位移估算中所使用的当前点梯度计算模式。
图6是一个示意图,表示在当前图像的前面一个图像中的位移。
图7表示一个搜索区。
图8是一个流程图,用来说明在本发明第一类位移估算中实施的决策算法。
图9是一个透视示意图,用来说明根据本发明的方法对于第二类位移估算中的电视场之间的作用模式的一个应用。
图10是一个流程图,用来说明用本发明来实施第二类位移估算。
图11是一个示意图,用来说明本发明第二类位移估算中实施电视场之间位移差和亮度梯度的计算。
图12表示电视场Ta中一个当前点(1X,1Y,Tj)的位移矢量端点的所在区域,这对应于第二类位移估算。
图13a至13f是一些简图,用来说明相继电视场Ta和Tb之间的不同位移类型;关于属于两种估算类型的,Tb和Tc之间的运动预测场的定义模式,以及在时间投影期间预测场中出现空洞和冲突的情况。
图14是一个透视示意图,表示插入在相继电视场Ta,Tb,Tc之间的虚设电视场组,用来说明在本发明第二类位移估算中实施时间预测的方法。
图15a和15b是两个示意图,用来说明根据本发明的方法能够利用扫描来处理空洞的情况。
图16是三个相继电视场Ta,Tb和Tc的透视示意图,用来说明本发明第一类位移估算中时间预测方法的实施。
图17是一个流程图,用来说明本发明时间预测执行过程的各个步骤。
图18是对图10所示流程图提出的修改,以便实现时间预测中的运动估算。
图19是一个透视示意图,表示插入在两个电视场内的一个对应于本发明第二类位移估算的虚设电视场的位移窗口的设定。
图20是对图2所示流程图提出的修改,以便实现对应于第一类位移估算的时间预测中的运动估算。
图21是对图8所示流程图提出的修改,以便实现时间预测中的运动估算。
图22至27表示实施根据本发明的方法的各种装置的实现模式。
图28是一个以流程图形式表示的,新位移计算方法的变体;
图29是一个示意图,用来说明计算当前电视场中位移矢量端点的梯度的一个变形。
图30至34是一些示意图,用来说明处理在时间投影中产生的空洞的两个可能的变形,如前所述;
图35是一个投影运动场的滤波装置,位在当前图像的运动估算之前。
下面将叙述的根据本发明的方法,是基于下述文章中所描述的那种位移估算方法的。该文章发表于“BELL SYSTEM TECHNOLOGIE”,58卷,631至670页,1979年3月,第一部分。其标题为“Motion compensated televisioncoding”(“运动补偿电视编码”),作者为A.N.NETRAVALI和JD.ROBBINS。已经开发的梯度算法已能够对一个电视图像的每一个当前点的亮度的局部变化(指当前点与前一图像中与之对应的点之间的亮度局部变化)给出最小方差。
计算法的表达式由下述关系式来定义:
-Di(z,t)=Di-1-ε·DFD(z,Di-1)·gradl(z-Di-1,t-T) (1)
-其中z(x,y)表示当前点P(z,t)的空间坐标,它是该点在图像平面(x,y)中位置的函数。
-1(z,t)是当前点P(z,t)在时刻t的亮度。
-Di(z,t)是在第i次迭代中对于点P(z,t)的估算位移,DFD(z,D)表示位移图像之间的差值(位移图像间差,La difference interimage deplacee),它满足下述关系式:
DFD(z,D)=1(z,t)-1(z-D,t-T) (2)
-T表示图像周期,或者电视场的周期。
-grad 1(z,t)表示当前点P(z,t)的梯度矢量。以及ε表示算法增益。
为了改善算法的收敛速度和精度,ε由下述关系式定义:
ε= 1/2 ·|grad1(z-Di-1,t-1)|2(3)
其中,|grad 1(z-Di-1,t-1)|2=
grad2x 1(z-Di-1,t-1)+grad2y 1(z-Di-1,t-1) (4)
以及条件:
当ε=0时,|grad 1(z-Di-1,t-1)|2=0 (5)
关系式(3)表明,梯度越大,则对于前一迭代的估算位移的修正项就越减少。为了估算运动,根据本发明的方法利用在一系列图像中的两个电视场的图像Ta和Tb的场间差值;所考虑的时间单位是图像周期,于是电视场Ta和Tb由它们的拍摄时刻来确定。
按照实现本发明的第一个变体,两个电视场Ta和Tb之间的运动估算是从Ta和Tb上的一些点,对于Ta和Tb之一的各个像素开始的,如图1a所示(图中是从Tb的像素开始的)。因此所得到的运动场是属于电视场Ta和Tb(图1a中为Tb)的。根据运动是在电视场Ta中估算的还是在Tb中估算的,水平和垂直亮度分量为1X和1Y的各个像素的位移矢量De分别由如下关系式定义:
De=(1X,1Y,Ta)=DX,DY
或De=(1X,1Y,Tb)=DX,DY
例如,在考虑各个当前点P(z,Tb)均位在电视场Tb上的情形时,电视场Tb中的当前点的每个位移矢量De(z,Tb)都有一个旋转端点落在电视场Tb的一个像素上,并且有一个自由的起始端点位在电视场Ta中。在本文中,如果必须插入那些位在电视场Tj上的点的运动(电视场Tj在时间上位于电视场Ta和Tb之间),则位移矢量场De(z,Tb)是与电视场Tj上的像素相连系的,并且插值计算能够从定义D(z,Tj)来得知De(z,Tb)。
按照实现本发明的第二个变体,运动估算直接在电视场Ta和Tb之间对虚设的中间电视场Tj的亮度分量为(1X,1Y)的各个点来进行。在获得了电视场Tj中坐标为(1X,1Y,Tj)的各个像素的位移矢量D之后,便可以用插值方法提供对电视场Tj中的每个点(1X,1Y,Tj)的重建值,而不需要与电视场Tj的运动有关的补充步骤。不过,如果在电视场Ta和Tb之间插入许多个电视场Tj,那么这个过程将很快变得十分费时,因为对于每一个电视Tj,都需要在电视场Ta和Tb之间做一个运动估算,那时可能宁愿选择前述的第一类估算。按照实现本发明的第二个变体,电视场Tj中每个像素P(z,Tj)的位移矢量D(z,Tj)于是将绕其像素旋转,并且它的两个端点分别落在电视场Ta和Tb上。图1b画出了该变体的示意图。
这种情况使得由一个含有适当的电视场运动插值器的运动估算器所获得的运动场得到充分的利用。
需要注意,对于这两种变体,电视场Ta,Tb和Tj(后者只存在于第二到变体中)的奇偶性可能都是偶的或都是奇的;偶数电视场与奇数电视场仅仅是在垂直方向上错开半行(在时间上错开半个图像周期):偶数电视场的第L行与奇数电视场的第L行及第L+1行等距离。当用一个适当的寻址器来建立两个电视场的对应关系时,这些是应该予以考虑的。
对应于实现第一个变体的方法步骤表示上图2之中。按照图2中标有1的第一个步骤,每个当前电视场1MS(t)(Tb)是通过扫描每一行来逐点进行分析的。图像平面中坐标为z=(x,y)的各个当前点的亮度梯度在步骤2中计算,在步骤3中上述亮度梯度值与由参考值确定的一个阈值Sg进行比较。如果在步骤3中发现梯度值小于阈值Sg,则本方法执行步骤4,它在当前点P(z,t)的原领域中选择一个位移。反之,如果在步骤3中发现梯度值大于阈值Sg,则本方法执行步骤5所指出的处理,即从当前点的原领域中的4个位移初始值出发,估算4个新的位移。在步骤5执行终了时,本方法过渡到执行步骤6,即从由步骤5估算出来的4个位移中选出一个位移。本方法就是这样地通过相继的迭代而进行下去,每次执行完步骤4或步骤6之后,都在步骤7中引起对下一个点的初始化,这些位移都在步骤8中被记录下来。
在图像上,所估算的位移被限制在一个矩形框内的行和列上,该矩形相对于当前点的坐标值为±DXmax和±DYmax。当前图像Tb中的运动估算以图3所示的方式被沿图像水平方向X和沿垂直方向Y的最大位移量DXMAX和DYMAX的值所限制。位移点的搜索在整个前一幅图像(Ta)中进行。
如果位移矢量是对Tb(包括边界)的所有像素来估算的,则可以增添一个检验来证实矢量的动端确实落在时刻Ta的电视场上。如果情况不是这样,那么很容易对这个矢量进行修正,使得当前像素有一个新的矢量,它最靠近原来的矢量并且其动端位在Ta上,以便能够估算函数DFD和gradL。
除去位在前面定义的窗口之外的那些点,Tb上每一个点都具有一个位在Ta上的矢量端点的搜索局部窗口,其中心位在当前点处,其水平尺寸和垂直尺寸分别为2DXmax和2DYmax。
从当前点的最接近原领域中估算出来的位移用于运动估算算法的初始化。这个领域包含4个位移,它们被并行地用来初始化4个运动估算。
本方法中的传播估算是通过电视图像的普通扫描来进行的。然而,为了避免图像中的某个传播方向(例如自左至右方向)出现优势,扫描方向交替地在每两行中有一行是反方向的。图4a表示交替在偶数行上和奇数行上扫描的情形,图4b和4c分别表示奇数行和偶数行的初始值DoA,DoB,DoC和DoD。
根据图5所示,当前图像中的梯度计算是对当前点P(z,t)沿着当前行扫描来进行的。因为计算是服从因果关系的,它将随扫描的方向不同而不同。对于奇数行,梯度满足关系式:
gradx=1(k,L)-1(k-1,L);
grady=1(k,L)-1(k,L-1) (8)
对于偶数行,梯度满足关系式:
gradx=1(k+1,L)-1(k,L);
grady=1(k,L)-1(k,L-1) (9)
并且有
|grad1(z,t)|=(grad2x+grad2y)1/2(10)
因为所采用的基本算法是梯度计算,在弱梯度区域中不进行迭代(新的位移估算)。阈值Sg是对当前梯度模值所使用的阈值。
为了进行插值和计算前一幅图像中的梯度,每个位移D=(Dx,Dy)都按下述关系式分解成为它的两个分量Dx和Dy;
Dx=1Dx+FDx和Dy=1Dy+FDy,其中1D和FD分别表示位移的整数部分和小数部分。
位移在X方向的单位由位在同一行上的两个点的间隔组成,位移在Y方向的单位由同一个电视场中两个行的间隔组成。至于梯度,它们按照下列文章所描述的已知方法来计算的。该文章发表于IEEE Trans.on Com.,vol.com.32,No8,1984年8月,文章的标题是“Movement compensated intertrame prediction for NTSC coler TV signals”(“对于NTSC制彩色电视信号的运动补偿场间预测”),作者是S.SABRI。这种计算的图形表示在图6中画出,它画出了前一幅图像IMS(t-1)中的位移。
在前一幅图像中位移了的当前点的亮度1B由对一些邻近点的亮度1n作双线性插值获得,使用图6中的符号,它由下述关系式表达:
1B=15·(1-FDx)·(1-FDy)+16·FDx(1-FDy)
+12·(1-FDx)·FDy+11·FDx·FDy (11)
水平梯度为:
1x=(15-16+12-11)/2 (12)
垂直梯度为:
1y=(15-12+16-11)/2 (13)
如果FDx=0,则1x=(14-16+13-11)/4 (14)
1y=(15-12) (15)
如果FDy=0,则1x=(15-16) (16)
1y=(17-11+18-12)/4 (17)
如果FDx=0,且FDy=0,则
1x=(14-16+13-11)/4 (18)
1y=(17-11+18-12)/4 (19)
为了限制修正项发散或消失的危险,它们要被增大和减小。我们有:
Dix=Dxi-1-(修正项)x(20)
Diy=Dyi-1-(修正项)y(21)
(修正项)x=DFD(z,Di-1)·gradx 1(z-Di-1,t-1)
(22)
(修正项)y=DFD(z,Di-1)·grady 1(z-Di-1,t-1)
(23)
通过以最大精度0.25计算出前一个图像中的梯度,根据关系式(3)我们得到:
εmax=8 (24)
一般地说,FDx和FDy不为零,梯度的最大精度为0.5。于是我们得到:
εmax=2
根据实现本发明的一种可能模式,用位移单位表示的修正项的限制检验或许可以按如下方式来确定:
1.如果|(修正项)|<1/16,则(修正项)将取为±1/16。
2.如果|(修正项)x|>3,则(修正项)将取为±3。
3.如果|(修正项)y|>2,则(修正项)将取为±2。
在这个实现模式中,作为例子,我们同样可以取Dxmax=±15作为x方向的最大位移,取Dymax=±5作为y方向的最大位移。
如果所估算的位移超出了这些值中的某一个值,便把它们重置为零。
在这种情况下,在电视场IMS(t-1)中,对一个当前点P(z,t)的搜索区被确定在一个尺寸为3.0×10的矩形之中,如图7所示。
4个位移估算是从4个初始值DoA,DoB,DoC和DoD出发而同时进行的。如果在进行了i次迭代(0≤i≤imax,即i大于或等于零并且i小于或等于最大迭代次数imax,i=0代表初始值)之后,4个位移值DiA,DiB,DiC和DiD之中至少有一个值能给出绝对值小于阈值S(预先确定的)的位移图像间差DFD(z,Di),则一个点被认为是收敛的。如果没有任何位移值能给出小于或等于S的|DFD|值,则那个点被认为是发散的,然而即使如此,还是把DAimax,DBimax,DCimax和DDimax中能给出最小DFD绝对值的那一个作为这个点的位移。
如果当前图像的梯度是小的,则位移的选择在当前点P(z,t)的原领域中进行,而不做任何迭代(i=0)。这时,决策的准则是在值DoA,DoB,DoC和DoD中选出能给出有最小绝对值的图像间位移差DFD(z,Do)的那一个位移。对于出现有相同绝对值的情形,选择按DoA,DoB,DoC和DoD这个次序来进行(图8中的步骤9至15)。然而,如果所选择的位移量给出的图像间位移差不小于或等于阈值S(步骤16)(发散检验阈值),则位移取零值(步骤17)。
如果在每次迭代(从零到imax)中当前图像的梯度都被提高,我们将得到4个|DFD(Di)|值,用来与阈值S比较。
被保留的位移是第一个能给出小于或等于阈值S的|DFD|的那个位移。如果在同一次迭代中得到了多个位移,则选择能给出最小位移图像差|DFD|的那一个。万一给出的|DFD|又是相等的,则按次序DiA,DiB,DiC,DiD来作出任意的选择。
这样,在每一次迭代i(0≤i≤imax)中,一个位移Di,一个位移图像间差DFD和一个迭代次数i被联系起来了。
于是,决策的采取先是依据迭代次数为最少,然后依据位移图像间差DFD为最小,再后或许是一个任意的选择。
按照实现本发明的第二个变体,本方法能够以属于一个虚设电视场(它通常位在两个母电视图像场之间)的矢量场形式来确定一个图像系列中两个电视场(一般它们是相继的)之间的运动场,该运动场由一个矢量群组成。每个矢量都通过虚设电视场上的一个像素,矢量的两个端点落在位于虚设电视场两侧的两个母电视场上。在图9中,母电视场由它们的拍摄时间Ta和Tb来定义。虚设电视场位在时刻Ta和Tb之间的时刻Tj上,目的是对虚设电视场(它是在时刻Tj考虑的)上的每一个像素都提供一个位移矢量,以及从时刻为Ta和Tb的电视场的亮度场出发来提供每个像素的亮度(原先它们是未知的)。按照实现本发明的另一个模式,同样还有可能考虑这样的情形:时刻Tj也能位在间隔(Ta,Tb)之外。
这个方法与前述对应于实现本发明的第一个变体的方法相似,与前述方法的不同之处在于,它能对虚设电视场Tj上的像素估算两个时刻为Ta和Tb的电视场之间的运动。算法以及由它导出的估算装置的复杂程度有相同的等级。
运动估算从时刻为Ta和Tb的电视场上的像素的亮度L()出发来计算。对各个像素所估算的运动以矢量D的形式表示,其两个分量为水平分量DX和垂直分量DY。
D代表虚设电视场Tj中坐标为(z,Tj)的像素P在Ta和Tb间的位移。z代表虚设电视场Tj中像素的一对坐标:水平坐标1·X和垂直坐标TY。在目前情形中,位移矢量D通过点(z,Tj),并且它的端点位在电视场Ta和Tb上;而在前述情形中,位移矢量D(z,Tb)对应于坐标为(z,Tb)的像素在电视场Ta和Tb之间的位移。这个差别所引起的后果是在基本方程(1)的定义上。该方程变为:
Di(z,Tj)=Di-1(z,Tj)-TC (24)
其中TC=(DFD(z,Di-1)·grad L(z,Di-1))/2·(grad L(z,Di-1))2
其中:z是一个代表当前点P(z,Tj)的空间坐标的矢量,位移矢量D(z,Tj)就是对这个点来估算的,D(z,Tj)是在第i次迭代中对点P(z,Tj)估算的位移矢量,DFD(z,Di-1)代表沿位移Di-1方向的亮度随时间的差值,它也被称作“位移场间差”(“difference inter-trames deplacees”),在Ta和Tb之间按下式计算:
DFD(z,Di-1)=L(B,Tb)-L(A,Ta)
其中B=z+((Tb-Tj)/(Tb-Ta)×Di-1
A=z-((Tj-Ta)/(Tb-Ta))×Di-1
grad L(z,Di-1)是一个矢量,它代表在位移Di-1方向上亮度L的空间梯度。这个矢量等于Di-1的两个端点(位在Ta和Tb上)处理是两个空间梯度之和的一半,它的值由下式定义:
2grad L(z,Di-1)
=grad L(A,Ta)+grad L(B,Tb)
与方程(1)相比,上面的方程(24)没有多大差别,不过它在函数DFD和grad L的计算上有所差别,它是使运动矢量绕着像素(z,Tj)旋转的,从而其在时刻为Ta和Tb的电视场上的端点是在变动的,然而在前述情形中,是让矢量的一个端点绕着像素P(z,Tb)旋转的,而其另一个端点在电视场Ta上是自由的。其结果是前述估算所具有优点被保留下来了。同样,在关于基本方程的使用范围上,在目前的估算中仍有意义的策略也被保留了。
特别重要的是:
-按照所考察的迭代方法对当前点的运动矢量的估算,它是从4个初始矢量出发进行并行计算的,这4个初始矢量是对位在原邻域中的当前点的4个邻近点所估算的位移矢量。
-在本发明范围中,当前电视场即电视场Tj中的行扫描方向的交替改变,
-目的在于从4个估算位移中选择出一个位移的决策单元。
然而,包含以下两点的步骤被删去了,这两点是将当前点的亮度梯度与一个阈值比较,以及将两个步骤按此梯度是大于(严格地)还是小于这个阈值来加以区分。实际上,由于当前电视场Tj的亮度是未知的,这个区别不再有意义,从而在这种情形下虚设电视场Tj上的所有点都按照4个并行迭代计算,使用同样的运动矢量估算步骤。
另一方面,估算是在两个可能具有相同奇偶性或不同奇偶性的电视场Ta和Tb之间,对一个也可能是偶的或奇的电视场Tj来计算的。在计算函数DFD和grad L时,引入了一个用dza或dzb表示的修正矢量。dza与Ta和Tj的相对奇偶性有关,dzb与Tb和Tj的相对奇偶性有关。
函数DFD和grad L变为:
DFD=L(B+dzb,Tb)-L(A+dza,Ta) (25)
2×grad L(z,Di-1)=
grad L(B+dzb,Tb)-grad L(A+dza,Ta)
(26)
在所考虑的电视场Tj位在区间(Ta,Tb)之外的情形中,上面列出的差值方程保持不变。在此情形中,矢量D(z,Tj)的支点通过点P(z,Tj,并且它仍然能度量时刻Ta和Tb的电视场之间的相对位移。
为了估算运动,本方法利用存在于两个时刻为Ta和Tb的电视场之间的场间差,不论这两个电视场在图像系列中是不是直接相随的。在下面的描述中,将假定时刻为Tj的虚设电视场中的每个像素的位移在时刻为Ta和Tb的两个电视场之间都是直线,并且对时刻为Tj的虚设电视场的目标元素(像素亮度)同样出现在时刻为Ta和Tb的电视场中。
本方法按多个步骤来开展,这些步骤表示在图10的流程图中。根据以18表示的第一个步骤,通过对电视场中所有点的行扫描,对当前电视场中的每一个点都进行分析。本方法执行步骤19所示的处理的目的是,从位在当前点原邻域中的4个位移初始值出发,估算4个位移值。在完成步骤19后,本方法过渡到步骤20的执行,即从已由步骤19估算出来的4个位移中选出一个位移。每次执行完步骤20之后,又开始对下一个点的初始化(步骤21)。位移是在步骤22中记录的。本方法就是这样地通过连续的迭代而进行下去。
在当前点的最接近原邻域中估算出来的位移被用来初始化运动估算算法。这个原邻域含有4个位移,它们被用来并行地初始化4个运动估算算法。
与前述情况相同,扫描方向也是交替地在每两行中有一行是反向的。
为了进行插值和计算前一个电视场中的梯度,每一个位移D=(DX,DY)都按下述关系式分解为它的两个分量DX和DY:
DX=1DX+FDX以及DY=1DY+FDY,其中1D和FD分别代表位移的整数部分和小数部分。
位移在X方向的单位由位在同一行上的两个点的间隔组成,位移在Y方向的单位由同一个电视场中两个行的间隔组成。
梯度将以下面描述的方式来计算,并由图11来说明。该图表示时刻为Ta的电视场的一个部分,端点位在电视场Ta的一个位移矢量的坐标值为(z-DA,Ta),亮度为LA。其位在时刻为Tb的电视场上的端点的亮度LB,以及关于该点的位移矢量DB均以同样方式来计算。
在此情形中,位移矢量DA和DB遵从下述关系式:
DA=((Tj-Ta)/(Tb-Ta))×D
DB=((Tb-Tj)/(Tb-Ta))×D
此时DA和DB是共线的,使得D=DA+DB。
在时刻为Ta的电视场中位移了的当前点的亮度LA通过对附近像素的亮度Ln作双线性插值来得到,利用图11的符号可以导出下述关系式:
LA=19·(1-FDX)·(1-FDY)+18·FDX·
(1-FDY)
+14(1-FDX)·FDY+15·FDX·FDY
这个点上的亮度空间梯度G(其分量用GX和GY表示)以如下的方式来计算:
如果FDX小于0.2,并且FDY小于0.2,则
GX=(110-18)/2
GY=(111-14)/2
或者,如果FDY大于0.8,则
GX=(13-15)/2
GY=(19-12)/2
或者,如果FDY在0.2和0.8之间,则
GX=(110-18+13-15)/4
GY=(19-14)
如果FDX大于0.8,并且FDY小于0.2,则
GX=(19-17)/2
GY=(112-15)/2
或者,如果FDY大于0.8,则
GX=(14-16)/2
GY=(18-11)/2
或者,如果FDY在0.2和0.8之间,则
GX=(19-17+14-16)/4
GY=(18-15)
最后,如果FDX在0.2和0.8之间,并且FDY小于0.2,则
GX=(19-18)
GY=(111-14+112-15)/4
或者,如果FDY大于0.8,则
GX=(14-15)
GY=(19-12-18-11)/4
或者,如果FDY在0.2和0.8之间,则
GX=(14-15+19-18)/2
GY=(19-14+18-15)/2
一旦矢量D在时刻为Ta和Tb的电视场上的端点亮度LA和LB被确定时,位于多场间差就用下述关系式计算:
DFD(z,D)=LB-LA
同样地,一旦矢量D在时刻为Ta和Tb的电视场上的端点的空间梯度GA和GB被确定时,迭代公式(24)中的梯度gradL(z,D)便由下述关系式计算:
2×grad L(z,D)=GA+GB
与前面情形一样,修正项发散或消失的危险性能够通过增大或减小它们来限制,因而
Dix=Dxi-1-(X方向的修正项)
Diy=Dyi-1-(Y方向的修正项)
其中
(X方向的修正项)=DFD(z,Di-1)×gradx(z,Di-1)×ε
以及
(Y方向的修正项)=DFD(z,Di-1)×grady(z,Di-1)×ε
其中ε=(1/2)×|grad L(z,Di-1)|2和
|grad L(z,Di-1)|2=
grad2x L(z,Di-1)+grad2y L(z,Di-1) (5)
附带条件是当(grad L(z,Di-1))2=0时ε的值为零。
与前面的情形一样,用位移单位表示的修正项限制检验可以按如下方式来确定:
1.如果(修正项)的绝对值小于1/16,则(修正项)将取为±1/16。
2.如果(X方向修正项)的绝对值大于3,则(X方向修正项)将取为±3。
3.如果(Y方向修正项)的绝对值大于2,则(Y方向修正项)将取为±2。
在相继两幅电视场的情形中,作为例子,我们同样可以取DXMAX=±8列作为X方向的最大位移,取DYMAX=±4行作为Y方向的最大位移。
如果所估计的位移超出了这些值中的某一个值,便把它重置为零。
时刻为Ta和Tb的电视场间的最大位移DMAX能够分解成共线矢量DAMAX和DBMAX,使得有DMAX=DAMAX+DBMAX;其中DAMAX的两个端点分别落在时刻为Ta和Tb的电视场上,DBMAX的分别落在时刻为Ta和Tj的电视场上。由于DMAX是固定的,从而DAMAX和DBMAX取决于电视场Tj至电视场Ta和Tb的距离。于是对于当前点P(z,Tj),在电视场Ta和Tb中的搜索区由分别在电视场Ta和Tb上的一个矩形来确定(如图12和图19所画出的那样),它们的大小分别为:
2DAMAX=2×(DXMAX×((Tj-Ta)/(Tb-Ta)),
DYMAX×((Tj-Ta)/(Tb-Ta))
和
2DBMAX=2×(DXMAX×((Tb-Tj)/(Tb-Ta)),
DYMAX×((Tb-Tj)/(Tb-Ta))
如果一个位移矢量是对虚设电视场Tj(包括边界)上的所有像素来估算的,那么可以增添一个检验来证实矢量的端点确实位在为Ta和Tb的电视场上。如果情况不是这样,那么很容易对这个矢量进行修正,使得当前像素有一个新的矢量,它最靠近原来的矢量并且它的两个端点在Ta和Tb的电视场上,以便能够估算函数DFD和grad L。
和前面的情形一致,4个位移估算是从4个初始值DoA,DoB,DoC和DoD出发而同时进行的。如果在进行了i次迭代(i大于或等于零并且小于或等于最大迭代次数imax,i=0代表初始值)之后,4个位移值DiA,DiB,DiC和DiD中至少有一个值能给出绝对值小于阈值S(预先确定的)的位移场间差DFD(z,Di),则一个点被认为是收敛的。如果没有任何位移值能给出一个小于或等于S的DFD值,则那个点被认为是发散的,然而即使如此,还是把DAimax,DBimax,DCimax,DDimax中能给出最小位移图像间差DFD绝对值的那一个作为这个点的位移。
在每次迭代(从零到imax)中,本方法都给出4个DFD(Di)值,它们要和阈值S相比较。
被保留的位移是第一个能够给出小于或等于阈值S的DFD值的那个位移。如果在同一次迭代中,有多个位移都具有小于或等于S的DFD值,则选择能给出最小位移场间差DFD的那一个。万一给出的DFD值又是相等的,则按次序DiA,DiB,DiC,DiD来作出任意选择。
这样,在从值i=0直到值imax的每一次迭代i中,一个位移Di,一个位移场间差DFD以及一个迭代次数i被联系起来了。
决策的采取先是依据迭代次数为最少,然后依据位移场间差DFD为最小,再后或许是依据一个任意的选择。
由于考虑到从一个图像到另一个图像运动场必然是相关的这一事实,上面所描述的方法应该在它们的初始化阶段予以修正。即引入一个补充的时间位移量;其困难在于,为了估算在时间上的传播,需要在前面所估算的运动场中找到一个位移,它最适合于正在进行位移估算算法的当前点。
按照第一种方法,有可能利用这样的点的位移来作为初始值,这个点与前面估算的运动场中的点有相同的空间坐标,如图13a和图13b所示。然而,这个方法只有在一幅图像相对于另一幅图像的位移是小的时候才适用,并且举例来说,不应该给当前点一个虚设的初始值,否则它会在运动估算中引入附加的不精确性。
按照第二种方法,在图像有大位移的情形中,有必要从前面的运动场出发,沿着图13c和图13d所示的运动方向,进行当前运动场的时间预测。然后这个时间预测被用来初始化位移估算。
从第一种方法会引入不精确性的含义上来说,它的意义不大。反之,时间初始值是很容易获得的:只要在前一幅图像的运动存贮器中读出属于具有相同空间坐标的点的运动即可。
第二种方法更适于执行:把对于虚设电视场Tj-1上的点或者对于电视场Ta和Tb上的点在电视场Ta和Tb之间所估算的位移,沿着它们的方向向下一幅电视场投影,由此我们便可以分别对电视场Tj或对电视场Tb或Tc来估算运动,以组成预测的图像。这样,我们得到了时间预测的初始运动场,它可以用来对电视场Tj上的点或者对电视场Tb或Tc上的点进行Tc和Tb之间的位移估算。
于是,如果统一用Tx来代表电视场(Tj,Tb或Tc),在其上应用运动估算算法,则根据假设,前一电视场Tx-1包括一个运动场,它由其上每一个点的,含有两个分量(DX和DY)的运动矢量所定义。在此情形下,如果对于电视场Tx上的每一个点,都在电视场Tx-1中存在一个对应点,则运动场是对电视场Tx上的所有点来定义的。理想的情况是,当电视场Tx-1中的点向电视场Tx的点映射时,电视场Tx中的每一个点都在电视场Tx-1中有一个而且只有一个对应点。
然而这种情形在实际情形当中永远不会碰到,如同图13e和图13f所示,实际上或者是缺少对应点,这时在预测场中将出现空洞;或者是存在多个对应点,这时预测场中将出现冲突。
在本发明中,这些困难是用下述方法来克服的。
对于位移是对电视场Ta和Tb之间的虚设电视场Tj-1中的点,在Ta和Tb之间进行估算的情形,根据本发明的方法包括,对应于电视场Tb和后一电视场Tc之间的下一幅虚设电视场Tj上的每一个点,都从虚设电视场Tj-1的运动场出发,定义一个运动矢量的预测值;这个运动场是由电视场Tj-1上的每一个点的运动矢量D=(DX,DY)来定义的。为此,如图14所示,假设电视场Tj-1和Tj之间的运动是线性的,并且电视场Tj-1的每一个运动矢量都被延长到电视场Tj上,造成一个交点。于是,交点的数目和电视场Tj-1中的像素数目一样多,其中一些交点或许可能会混在一起。因此每一个交点都与产生它的运动矢量相联系,从而每一个交点都带有关于电视场Tj中的点的运动的信息。
于是,问题变为,从也是位在电视场Tj上的交点的位移矢量出发,来确定哪一个应该是赋予电视场Tj像素的运动预测。
作为例子,考虑图14中对于电视场Tj-1上点的,电视场Ta和Tb之间的运动场。若把Tj-1上B点的位移矢量称作D=(DX,DY),并设电视场Ta和Tj之间的运动是线性的,则可以认为B点的运动是属于C点(B点位移矢量在电视场Tj上的交点)的。
如果B点的空间坐标为(X,Y),则交点C的空间坐标为:
(Xi,Yi)=(X+ (Tj-Tj-1)/(Tb-Ta) ×DX;
Y+ (Tj+Tj-1)/(Tb-Ta) ×DY)
不过,由于交点C一般不对应于电视场Tj中的一个像素(因为电视场中的位移一般不是整数),而我们的目的是要给电视场Tj的每一个像素P(Xp,Yp)赋予一个预测矢量,所以把C点的位移矢量赋予坐标值最接近于交点C的哪个像素,如同可以从图13c和图13d所示的例子中看到的那样。在此情形下,赋予点P的位移矢量Dop(P,Tj)等于电视场Tj-1中B点的位移矢量D(B,Tj-1)。
为了处理冲突,例如当电视场Tj-1中的多个四元点(X,Y,DX,DY)都对应到电视场Tj的同一个坐标为(Xp,Yp)的点上时,所采用的解决方法包括:利用所得到的位移矢量沿着电视场Tc和Tb之间的运动方向来计算时间差值,只保留能给出最小DFD差值的那个位移来作为时间预测。或许还可以考虑其它的解决方法。例如,第二个解决方法是,只保留所出现的第一个运动,这就是说,电视场Tj的一个点已经得到一个运动之后,它不再能接收其它的运动。不过,从这个解决方法不能判断所赋予的第一个运动是否适合于作为初始值的意义上来说,它呈现出相当大的危险性。
此外,这个解决方法还需要对每一个点做一个检验,以便了解这个点是否已经被赋予运动了。还有一个可以考虑的比较简单的第三个解决方法,即只保留所出现的最后一个运动。然而类似于在第二个解决方法中已经提及的那个问题依旧存在。对于物体和背景以相反的方向如同第二个解那样位移的运动情形,第三个解将给出好的结果,但是物体相对于背景的运动是相反的,仍然存在物体在背景后面通过的问题。
对于空洞的处理以下述方法进行:如前所述,电视场Tj上的某些像素有可能得不到任何运动(图13f),预测运动场中的这些空洞用对最接近领域的运动矢量作空间插值来填充。为此,当本方法已经把相应的运动与交点的最接近像素联系起来之后,它在这样得到的电视场Tj的预测场中,通过交替地在每两行中改变一行水平扫描方向的方式来搜索空洞。
当出现一个空洞时,就考虑4个邻域点,如图15a和图15b所示。在图15a和图15b所示的情形中,我们假定原邻域点(一方面是A,另一方面是B或C,视水平扫描方向而定)是已经处理过的,并且它们已经具有了位移矢量。然而点C或点B(视扫描方向而定)和点D可能并不具有运动矢量,是和空洞一样的。在此情形下,在插值时不在考虑它们。这时,本方法把由空间邻域点的运动矢量的平均值所给出的运动赋予空洞。在最好情形下这个计算用4个运动矢量(点A,B,C和D)来进行,最坏情形下用2个运动矢量(点A以及B或C,视扫描而定,此时C或B和D是和空洞一样的)。
在对于电视场Tc和Tb上的点进行电视场Tc和Tb之间的位移估算时,时间预测的过程是相似的。
例如,如图16所示,对电视场Tb中的点考虑电视场Ta和Tb之间的运动场,若假设运动是线性的,则电视场Tb中空间坐标为(X,Y)的像素B的运动能够被赋予电视场Tc中空间坐标为(X1,Y1)的点C,C点是属于B点的运动矢量与该电视场的交点。在此情形中坐标(X1,Y1)服从关系式:
(X1,Y1)=(X+DX,Y+DY+DEY)
其中DX,DY代表电视场Tb中B点的位移矢量D的分量,DEY代表电视场Tb和Tc之间可能存在的垂直距离(如果两电视场的奇偶性不同)。
因为C点一般并不对应于一个像素,D点的运动矢量不得不被赋于最接近C点的像素;若把最接近C点的像素写作P(XP,YP),便能得到下例关系式:
DoP(P,Tc)=D(B,Tb)。
预测场中的冲突和空洞是用与前面相同的方式来处理的。
时间预测过程的各个步骤在图17的流程图中简要地画出。第一个步骤,步骤23存贮每一电视场Ti-1或Tb的点的位移矢量,使得在步骤24中能够延长位移矢量,以确定它们在电视场Tj或Tc上的交点。在步骤25中,位移矢量被赋于最接近于交点的像素,并且当有多个矢量同时到达同一个交点时处理冲突。空洞的处理在步骤26中进行,而对电视场Tj或Tc存贮运动场则在步骤27中实现。
为了获得一个非常好的预测,应该在由步骤27中获得的运动场的时间预测中加上前面在当前点的原空间邻域中所获得的预测。
由上述的例子,这就导致要确定5个初始位移,4个从最接近原领域中选取(空间迭代),一个由前述时间预测方法选取。
在此情况下,由图2和图10流程图所描述的方法应该分别按图20和图18来修改,以便在每个初始划阶段中引入时间预测参数。
按照图18中的第一个步骤(步骤18),通过扫描该电视场的每一行来考虑当前电视场中的每一个点。本方法执行步骤19所表明的处理,以便从在当前点原领域中确定的4个位移初始矢量以及从一个在步骤28中确定的时间预测初始值出发,来估算5个新的位移。在执行完步骤19之后,本方法过渡到执行步骤20,从由步骤19估算出来的5个位移中选择出一个位移。本方法就是这样地通过相继的迭代而展开,每执行完步骤20后又开始下一个点的初始划,而位移在步骤22中记录。
5个位移估算是从4个空间初始值DoA,DoB,DoC,DoD和初始值DoP出发而并行地进行的。如果在进行了i次迭代(i大于或等于零并且小于或等于最大迭代次数imax,即0≤i≤imax,i=0代表初始值)之后,5个位移值DiA,DiB,DiC,DiD和DiP之中至少有一个值能给出绝对值小于阈值S(预先确定的)的位移场间差DFD(z,Di),则一个点被认为是收敛的。如果没有任何位移值能给出小于或等于S的|DFD|值,则那个点被认为是发散的,然而即使如此,还是把DAimax,DBimax,DCimax,DDimax,DPimax中能给出最小DFD绝对值的那一个作为这个点的位移。
这样,在每次迭代(自零至imax)中,我们都得到5个|DFD(Di)|值,用来与阈值S比较。
被保留的位移是第一个能给出小于或等于阈值S的|DFD|的那个位移。如果在同一次迭代中得到了多个位移,则选择能给出最小位移图象间差|DFD|的那一个。万一给出的|DFD|又是相等的,则按次序DiP,DiA,DiB,DiC,DiD来作出任意的选择。这样,在每一次迭代i(0≤i≤imax)中,一个位移Di,一个位移场间差DFD和一个迭代次数i被联系起来了。于是,决策的采取先是依据迭代次数为最少,然后依据位移图象间差DFD为最小,再后或许是一个任意的选择。
类似于用图2流程图所描述的方法,通过扫描当前电视场TC中的每一行,来考察该电视场上的每一个点,如图20的流程图所示。
当前点上的梯度模值|gradP(z,t)|在步骤2中计算。
对当前梯度模值的检验在步骤3中进行。
如果|gradp(z,t)|是小的,则借助于决策单元4来选择当前点的位移。其中考虑5个初始值:4个位在原空间领域中,1个是时间预测初始值。不进行任何修正项的计算。然后过渡到步骤8。
如果|gradp(z,t)|是大的,则在步骤5中,从5个初始值(4个空间的加1个时间的)出发来并行地估算5个新的位移。步骤6是从由步骤5估算出来的5个位移中选择出一个位移。每次执行完步骤4或步骤6之后,都导致下一个点的初始化(步骤7和步骤9),位移在步骤8中记录。
若图象梯度是小的,则位移是从5个初始值中按照图21所示的方式来选择的,4个空间位移值是按照和图8相同的步骤9至步骤17来选择的,时间位移值是通过执行步骤30和步骤31来选择的。和前面一样,被保留的位移是5个位移DoP,DoA,DoB,DoC,DoD中能给出最小位移图象间差的那一个,万一给出的位移图象间差相等,则按DoP,DoA,DoB,DoC和DoD这个次序来选择。然而,如果位移图象间差不小于或等于收敛阈值S,则所选择的位移置为零。
若当前图象的梯度是大的,则5个位移估算是从4个空间初始值DoA,DoB,DoC,DoD和1个时间初始值DoB出发,并行地进行的。如果在进行了i次迭代(i大于或等于零并且小于或等于最大迭代次数imax,即0≤i≤imax,i=0代表初始值)之后,5个位移值DiA,DiB,DiC,DiD,DiP之中至少有一个值能给出绝对值小于阈值S(预先确定的)的位移场间差DFD(Z,Di),则一个点被认为是收敛的。如果没有任何位移值能给出小于或等于S的|DFD|值,则那个点被认为是发散的,然而即使如此,还是把DPimax,DAimax,DBimax,DCimax,DDimax中能给出最小DFD绝对值的那一个作为这个点的位移。
在每次迭代(自零至imax)中,我们都得到5个|DFD(z,Di)|值,用来与阈值S比较。
被保留的位移是第一个能给出小于或等于阈值S的|DFD|的那个位移。如果在同一次迭代中得到了多个位移,则选择能给出最小位移图象间差|DFD|的那一个。万一给出的|DFD|又是相等的,则按次序DiP,DiA,DiB,DiC,DiD来作出任意的选择。
这样,在每一次迭代i(0≤i≤imax)中,一个位移Di,一个位移场间差DFD和一个迭代次数i被联系起来了。
决策的采取先是依据迭代次数为最少,然后依据位移图象间差DFD为最小,再后或许是一个任意的选择。
按照实现本发明方法的其他模式,还有可能对初始化矢量的数目以及对图象中运动传播的方向进行修改。
在上面所描述的运动估算方法中,为了避免图象中运动的某一个水平传播方向出现优势,例如自左至右方向出现优势,交替地使水平扫描方向在每两行中有一行是反向的。当然,为了避免图象中运动的某一个垂直传播方向出现优势,例如自上至下方向出现优势,同样可以交替地使垂直扫描方向在每两幅图象中有一幅是反向的。因为相继图象间的运动场计算是互相独立的,垂直扫描的交替反向缺乏时间连续性,因而没有什么用处。
但是,与单纯使用自上至下垂直方向扫描的空间迭代估算相比,时间连续性与迭代方向的交替改变的结合给出更为精确并且对迭代方向较不敏感的运动场;尤其是在图象高度方向上,它还能使估算的收敛速度加快。
同样,还可能在时间预测的初始运动以外,只采用了个原领域的位移空间初始值:DoB,DoC,DoD或者只采用两个初始值:DoC和DoD(见图4b和图4c)。从实现的观点来看,这样做是恰当的:如果用对点A估算的运动来当作对当前点P的运动预测值,将完全不能在当前行上进行并行的运动预测。不过,如果删去了DoA,将失去水平迭代和交替行扫描的意义,这会增加运动估算中迭代的方向效应(主要是垂直方向的)。
按照实现本发明方法的另外一种变体,从一个电视场到下一个电视场的运动传播方向的交替可以通过旋转来达到。事实上,前面描述的关系式(1)和(24)在运动的水平分量和垂直分量Dx和Dy之间以及在水平亮度和垂直亮度GX和GY的空间梯度之间确定了一个关系式,在初始运动方向上的时间梯度DFD使得:
GX×DX+GY×DY=-DFD
以及方程式(1)中的修正函数D确定了下述方程的一个特解:
D = - (DFD×G)/(|G|2) 其中:G=(GX,GY)
在这种情况下,若出现纯粹的垂直轮廓(GX≠0,GY=0),分量DX将能肯定地确定。如果只出现水平轮廓,分量DY也同样地肯定地确定。
然而,在一幅图象中,空间梯度并不均匀地分布的。从而在运动主要分量的传播中的迭代便具有重要性:为了造成一个精确而均匀的运动场,它应该尽可能地各向同性。
这就是为什么可以考虑对每一个图象对(运动是在它们上面估算的)作四分之一圈的旋转:它可以对每幅图象的迭代方向进行修正。这个旋转与时间连续性的结合有利于加速估算值向真实运动的收敛。
这个修正对以下情况特别重要。例如:当我们不把预测矢量DoA放在当前点的同一行上时,或者更一般地说,当为了减少所估算的矢量的空间相互依赖关系,而使预测矢量的数目减少为1或者利用迭代选择出能减小运动传播角度的预测矢量的情况。
这个修正可以用如下方式来实现:
1、保留前面确定的矢量:DoC,DoD或许还有DoB,为初始化矢量。
2、对于每一个要估算的新运动场,新的源图象对要做一个旋转。为了同样变成4个运动场,这个旋转交替地为0°,90°,180°,270°。
3、同样地,时间预测的运动场也要做相同的旋转,并且一个或两个运动分量的正负号需要根据旋转的情况来修改,以保持正的位移方向。
4、这样,在估算值中加入的仅有的修正是关于图象的格式的:第一列和最后一列的参数DC和FC以及第一行和最后一行的参数DL和FL在每一个新的图象对中需要互换:DC取DL的值,DL取DC的值,FC取FL的值,FL取FC的值。
5、在运动场估算完成之后,它要做一次旋转和标记更改,以便回复到原来的方向上去,这样可以应用于运动估算和时间预测以外的情形。
现在,借助图22至图24来描述实现第一个位移估算装置的例子,该装置实施图20和图21所示方法的各个阶段。在图22中,它由以下各部分组成:一个行存储器组,一个图象存储器33,一个确定扫描方向和计算当前梯度模值的装置34,一个分岔装置35,决策单元36和37,位移估算单元38,一个初始化装置39和一个与预测运动存储器41及42相偶合的时间预测装置40。确定扫描方向和计算当前梯度模值的装置34从行存储器组32接收信息,并向位移估算装置38和分岔装置35提供计算结果。位移估算装置38有两个输入口,其中一个通过确定扫描方向和计算当前梯度的装置34与行存储器组32的输出口相连,另一个与图象存储器33的输出口相连。行存储器32用作图象存储器33的缓冲存储器,使得在考察点跑出搜索窗口外面之前,图象存储器33的刷新信息得以贮存起来。当搜索窗以图7所示的方式占有10个行的空间时,一个行存储器具有对应于5个行的点的存贮容量看起来就足够了。计算以时钟脉冲HI和HK(由行时钟提供,图上未画出)的节律按照点频率来进行。装置34确定当前行的序号1,并且按照当前行序号1的奇偶性来确定当前的列序号k。在设置当前点的坐标(k,1)时,装置34计算当前梯度的模值。分岔装置35把装置34所提供的计算结果与参考阈值Sg相比较,并按照图20所示的算法打开其输入开口1或2。如果|gradl(z,t)|≤Sg,则选择输入口1,如果|gradl(z,t)|>Sg,则选择输入口2。决策单元36和37具有图21所示流程图的功能,能够用已知的方式来实现:或者在微处理机上利用一个典型的微程序结构,或者利用一个已知的由比较电路组成的逻辑电路。
位移估算装置的一个实现模式如图23所示。它包括由单元43至单元67所组成的计算集合。后者向决策单元36提供位移信息DiA,DiB,DiC,DiD,DiP,而决策单元又把它们传递到分岔装置35的输入口2上,见图22。同样表示在图23中的初始化模块39能够初始化位移计算的算法。模块39包含一个第一存贮器68和一个第二存贮器69。这两个存贮器由三个不同的部分组成,一个用来存贮代表x和y方向位移的字(那里它们分别称为MDX和MDY)的二进制字,另一个能够用决策单元36计算的位移字MTDX和MTDY的缓冲存贮器,最后一个用来存贮时间位移预测字MPDX和MPDY。
利用上述符号,我们有:
MDX=(FC-DC-2DXmax+3)位移
MDY=(FC-DC-2DXmax+3)位移
MTDX=1位移,以及MTDY=1位移
在图象的每一个电视场开始的时候,字组MDX,MDY,MTDX和MTDY都置为零。MTDX和MTDY被用来作为在对应于位移D(K-1,L-1)的字MDX和MDY消失之前的中间量,以便过渡到对下一个点(K+1,1)的分析。它们同样用作在对应于位移D(K+1,L-1)的字MDX和MDY消失之前的中间量,以便过渡到下一个点(K-1,L)的分析。
当k等于FC时,所估算的位移D(FD,L)便自动地被置放在字(MTDX,MTDY)中以及字(MDX,MDY)中,它们对应于位移D(DC,L)和D(DC-1,L)。
位移估算的计算装置内单元43至67组成,若当前图象的空间梯度大于预先定义的阈值Sg,它从装在初始化模块39内的5个初始值DoP,DoA,DoB,DoC,DoD出发,并行地进行5个位移的计算。信息DoP,DoA,DoB,DoC,DoD分别被送到分岔电路43,48,53,58和63的第一输入口上,这些分岔电路的输出又分别与收敛检验模块和修正项计算模块相连接,这两类模块的代号分别为:(44,45),(49,50),(54,55),(59,60)和(64,65)。收敛检验和修正项计算的结果分别送到分岔装置46,51,56,61和66的输入口上,它们又按下述情况把这些结果传送下去:如果进行了i次(i小于imax)迭代后前述算法的解是发散的,则把结果送到计算新位移的装置(符号分别为47,52,57,62和67)中去,否则把结果送到决策单元36的各个输入口上去。由计算装置47,52,57,62和67提供的新的位移被分别施加到分岔装置43,48,53,68和63的第二输入口处。
收敛检验模块44的实现细节是与修正项计算模块45以及新位移计算模块47相联系的,该细节在图24的虚线框内表示。
收敛检验模块44包含两个部分,一部分是与计算图象间位移差绝对值|DFD|的装置71相连的一个插值电路70,装置71又通过交换器72,73与决策单元36相藕合;另一部分是一个梯度计算装置74,它与计算位移梯度平方和的装置75相连接。可能是由一个可编程只读存贮器组成的插值电路70也是与图象存贮器33相藕合的。修正项计算模块45含有一个计算前述ε值的装置76,后者是与增量计算装置77,修正值计算装置78以及比较电路79和80相藕合的。
新位移计算模块47包含两个减法电路81和82,两者都与比较电路83相藕合。收敛检验模块44与修正项计算模块45的藕合通过图23中的交换器46来实现。交换器46的输入口直接与计算装置75的输出口相连接,并且通过交换器72和73与计算装置71的输出口相藕合。另一方面,如图23所示,初始化模块39通过交换器43的中介而与收敛检验模块44相藕合。这个交换器一方面把初始化模块39与插值电路70的第一输入口连接起来,另一方面又把初始化模块39与计算装置74的第一输入口连接起来。交换器43的第二入口同样与由比较电路83组成的新位移计算模块47的输出口相连接。
位移估算装置的功能如下:对于图象中的每一个当前点,交换器43都把一个从存贮器39中找到的初始值Do传送给插值电路70和梯度计算装置74。插值电路70对值Do进行双线性插值运算,以确定在前一幅图象中位移了的当前点的亮度1(z-Do,t-1)。位移图象间差DFD(z,Do)及其绝对值由计算装置71从当前点的亮度信息出发来计算。如果由计算装置71算出的值小于或等于预先定义的阈值S,则交换器72把这个值送到决策单元36中。位移Do和位移图象间差的绝对值|DFD(Do)|都被送到决策单元36的输入口上。在相反的情况下,计算装置71所提供的计算结果被送到交换器73的输入口,如果迭代次数i的值等于最大迭代次数值imax,则上述计算结果接着又被送到决策单元36的输入口。反之,如果迭代次数值i小于最大值,则计算结果通过交换器46被送到修正计算模块45的输入口。
在从时刻t=0开始的时间t内进行的计算过程中,位移梯度gradx,grady和项G2=2×(grad2x+grad2y)由计算装置75计算。
根据G2值的大小,交换器46把所得结果引导到不同地方:如果得到的G2值小于或等于一个例如等于0.125的系数值,则所得结果被导向决策单元36,否则被导向新位移修正项计算模块45和47。
计算装置76计算值ε=1/G2。迭代次数值i由增量计算装置77增加1个单位,在分析下一个当前点时,它被置零。X和Y方向上的修正项(TC)x和(TC)y由电路78计算。在计算装置78的输出口得到的(TC)x和(TC)y值服从如下关系式:
(TC)x=DFD(z,Di)×gradx(Di)x
(TC)y=DFD(z,Di)×grady(Di)x
所得到的(TC)x和(TC)y值被分别加到比较电路79和80的输入口处,以便被限制在它们的极大值和极小值上(不过要差一个正负号)。根据一种实现本发明的较好的模式,(TC)x和(TC)y的最小值是相同的,并固定为1/16,相反地,(TC)x的最大值总是等于3而(TC)y的最大值总是等于2。所得到的(TC)x和(TC)y上由减法电路81和82被加到位移值Dox和Doy上,由此得到的结果D1和D1(它们对应于估算的位移)在送到交换器43的第二输入口之前又受到比较电路83的一个新的限制。在下一个迭代i(i=2)中,交换器43把估算位移Dix和Diy送到电路70,74,81和82中。
在决策单元36的输出口处已对当前点选出了一个位移,并且它被写入含有字MTDX和MTDY的缓冲存贮器39中。i被置零,交换器43复原到它的起始位置,前述计算又重新开始,对一个新的当前点作位移估算。
实施图18所示方法的各个阶段的第二位移估算装置的实现例子在图25和图26中示出。图25所示装置与图22所述例子的不同之处可能在于这样的事实:它只含有决策单元36而不含有分岔装置35。因此与图22相同的那些单元都用相同的参考号码来代表。
新位移估算装置的结构与借助于图23已经描述过的结构相类似,仅有的微小差别在于位移估算计算装置的结构,它的一个相应的实现模式在图26中表示。
差别或许就在于这里用了两个插值电路70和70′以及两个计算装置74和74′,而不像前面那样每种只用一个。
因为所有其他单元的结构都与图24中的单元有类似的结构,所有在图26中它们都用相同的参考号码代表。
位移估算装置的功能如下:对于图象的每一个当前点,交换器43都把一个从存贮器39中找到的位移初始值Do传送到插值电路70和70′以及梯度计算装置74和74′中去。值Do使估算初始化。一个双线性插值计算以如下形式进行:一方面,由插值电路70来估算当前点(z,Tj)的亮度L(z-Do×(Tj-Ta)/(Tb-Ta),Ta),这个当前点在时刻为Ta的前一幅电视场中位移了Do×(Tj-Ta)/(Tb-Ta);另一方面,由插值电路70′来估算同一当前点的亮度L(z+Do×(Tb-Tj)/(Tb-Ta),Tb),不过这一次该当前点在下一幅电视场Tb中位移了Do×(Tb-Tj)/(Tb-Ta)。
位移场间差DFD(z,Do)及其绝对值由计算装置71计算。
如果由计算装置所得的值小于或等于一个预先定义的阈值S,则交换器71把该计算值传送到决策单元36中。位移Do和位移场间差DFD(Do)的绝对值被加到决策单元的输入口上,在相反的情况下,由计算装置71提供的结果被送到交换器72的输入口,如果迭代次数i值等于迭代次数最大值imax,则该结果接着被传送到决策单元36的输入口。反之,在其他情况下,即当迭代次数值i小于最大值时,由计算装置71提供的结果则被通过交换器46而加到修正计算模块45的输入口上。
在从时刻t=0开始的时间T内进行的计算过程中,在时刻为Ta和Tb的每个电视场中位移了的当前点的梯度(gradXa,gradYa)和(gradXb,gradYb)由装置74和74′并行地计算。然后,按照下述关系式确定的梯度值gradX和gradY由装置75计算:
2×gradX=gradXa+gradXb
2×gradY=gradYa+gradYb
其后,计算装置75′计算这样形式的项:
G2=2×(grad2X+grad2Y)
关于时刻为Ta和Tj的电视场的奇偶性在电路70和74中考虑,关于时刻为Tb和Tj的电视场的奇偶性在电路70′和74′中考虑。
按照G2值的大小,交换器把所得结果导向不同地点。如果所得的G2值小于或等于一个例如为0.125的系数值,则所得结果被导向决策单元36,否则导向新位移修正项计算模块45和47。
和前面相同,计算装置76计算由前面定义的值,迭代次数值i由增量计算1个单位,在分析下一个当前点时,它被置零。X和Y方向上的修正项(TC)x和(TC)y由电路78计算。在计算装置78的输出口得到的(TC)x和(TC)y值服从如下关系式:
(TC)x=DFD(z,Di)×gradx(Di)X
和(TC)y=DFD(z,Di)×grady(Di)X
所得到的(TC)x和(TC)y值被分别加到比较电路79和80的入口处,以便被限制在它们的极大值和极小值上(不过要差一个正负号)。根据一种实现本发明的较好的模式,(TC)x和(TC)y的最小值是相同的,并固定为1/16,相反地,(TC)x的最大值总是等于3而(TC)y的最大值总是等于2。借助于电路81和82,所得到的(TC)x和(TC)y项被加到位移值Dox和Doy上,得到的结果Dx1和Dy1(它们对应于所估算的位移)在送到交换器43的第二输入口之前又受到比较电路83的一个新的限制。在下一个迭代=2)中,交换器48把估算值位移Dx1和Dy1送到电路70,70′,74,74′,81和82中。
在决策单元36的输出口处,已对当前点选出了一个位移,并且它被写入缓充存贮器39的区域MTDX和MTDY中。迭代次数i值被置零,交换器43复原到它的起始位置,前述计算又重新开始,对一个新的当前点作位移估算。
实现时间预测装置的一个模式在图27中示出。它包括一个通过交换器87与两个存贮器85和86相藕合的计算装置84。存贮器85和86的输出口是通过交换器89与另一个计算装置88相连接的。
计算装置84由一个只读存贮器或其他等价的装置组成,并通过所估算的当前运动矢量来寻址。它计算一幅图像或下一电视场的交点以及最接近于该交点的像素,当前运动矢量即与此像素相关联。交换器87把这个矢量传送到存贮器85或86中。这两个存贮器由双稳态触发器(“Flip-Flop”)装成。交换器89选择正在读出中的那个存贮器。计算装置88探测并填补时间预测运动场中的空洞。计算装置88的输出口与初始化模块39相连接。在这个装置中,冲突的解决方法只是简单地把与前面当前点相联系的新矢量和这个点联系起来。
从所描述的本发明的实现模式中可以清楚地看出,所考虑的点的数目和进行计算的迭代次数越大,则计算时间这个因素就应该变得越重要。这时,为了把计算时间限制在一个最大值内,上述计算方法可以做如下改进:只对空间梯度的计算作一次迭代,把它限制于只考查与位于当前电视场中的位移矢量端点最为接近的4个点的亮度。
这样,本方法可归结为:对于每一个估算的位移矢量Dpj,只用一次迭代来计算当前点亮度与位移了距离Dpj的前一电视场中其亮度值之间的位移图像间差DFD(Dj),对得到的DFD值作相互比较,以便选出一个能给出最小DFD(Dpj)值的估算位移矢量;以及通过执行从当前电视场中位移矢量端点的空间梯度和相应的DFD(Dpj)值出发的梯度算法,来计算当前位移矢量Dj。
与当前所描述的过程的不同之处在于,图28所示的方法可以按照实现本发明的某一个变形,只通过一次迭代来实现运动估算。按照图28中用“100”表示的第一个步骤,一个位移场间差值DFD(Dpj)是对每个估算位移矢量Dpj来计算的。然后在步骤101中,进行DFD绝对值之间的比较,以便选出能给出最小位移场间差的位移矢量Dpj。当前位移矢量Dj的估算则由执行步骤102至107来实现。在步骤102中,计算位移矢量Dj端点处的空间梯度。这个计算是在每一个电视场中考虑最接近于这个电视场内的位移矢量Dpj的端点的4个像素的情形下进行的,如图29所示。在图29中,L1,L2,L3和L4代表这些点各自的亮度。分量为(GX,GY)(它们分别沿图像的水平扫描方向X和垂直扫描方向Y)的空间梯度值是值L1,L2,L3和L4的函数,其函数关系式为:
GX=((L2-L1)+(L4-L3))/2
和GY=((L3-L1)+(L4-L2))/2
这个操作是对电视场Ta和Tb进行的。梯度Dpj是两个梯度矢量的平均值。
当步骤103已经按前述方法计算出修正项之后,步骤104利用上述梯度公式来计算新位移矢量Dj。当然,如前面已经说明过的那样,所算得的位移矢量Dj的分量应该受到限制,所以在步骤105和106中进行一次检验,以证实所得到的Dj值确实位于两个预订的位移值-Dmax和+Dmax之间。如果不是这样,则所保留的Dj值将是在步骤101中选出的那个位移值Dpj。
这个操作是对各个分量分别进行的。可以按分量(水平的和垂直的)对这样获得的运动场进行空间滤波。这样做的优点一方面是使运动场平滑化,另一方面是使运动场均匀化,并且使图像的均匀亮度区中的运动场得以确定,否则运动信息是不能直接测量的。这个滤波可以在目的在于确定所预测场的时间投影之前进行。滤波器组成的一个例子是,一个具有平滑信号功能的中频滤波器,后面接一个特别能够确定均匀区的运动的平均滤波器。
在前面所描述的方法中,为了避免运动在水平或垂直图像中的某些传播方向上出现优势,总是可能交替地使每两行中的一行水平扫描方向反射,也还可能交替地使用两幅图像中的一幅的垂直扫描方向反射。然而也还有可能会在其上估算运动的每一对图像旋转四分之一圈,使得对每幅图像的迭代方向得到修改,从而这种旋转和时间连续性的结合便有利于加速运动估算值向真实运动的收敛。
同样地,对于填补出现在时间投影之后的运动预测场之中的空洞,本方法仍是适用的。对于当前的空洞,本方法由两部分组成:考察周围4个像素的矢量,如果它们存在的话;用存在的矢量分量的平均值来定义运动矢量。空洞以图30,31和32所示的方式通过改变行扫描来考察。于是存在的矢量数目最多是4,最少是2,位于起源部分的像素是已经被处理过的。即使这样也还是有两种可能的实现变形。第一个变形是选择能对当前空洞像素给出最小位移图像间差DFD绝对值的矢量,以便把这个矢量取作与空洞相联系的矢量。第二个变形也可以是选择最接近于矢量平均值的那个矢量。另一方面,在某些实现的情形中,如果前一像素的矢量对应于这个空洞,由于处理的并行性问题,还可以考虑不研究前一像素的矢量。于是,可以按照第一种变形来工作,或者也可以按照第二类变形以图33和34所示的方式工作,取不是空洞的最后一个像素的矢量。
当然,时间预测方法也还是适用的,它在很大程度上利用了运动的时间相关性,并能使迭代算法快速地收敛。然而如同在空间矢量的源的周围预先选择出多个空间矢量来一样,也有可能选择出多个时间预测值来。例如,如图35所示,有可能利用对运动场(它来自存贮在例如存贮器110中的时间投影)的各种滤波(例如由一组滤波器108和109来实现)来获得多个运动预测场。根据对运动场滤波程度的不同,预测场将或者适合于运动剧变的区域,或者相反地适合于均匀运动的图像区域。
刚才描述的方法的实施当然可以用前面所述的装置来实现,因为如同利用适当编程后的微处理机结构来执行前述方法那样的手段,同样可以在这里实施。