用于图象信号编码系统的运动矢量估算方法和设备 本发明涉及一种用于图象信号编码系统的改进的运动矢量估算方法和设备,较具体地说,涉及一种能够利用基于改进的特征点的运动估算技术对所选的特征点正确地估算运动矢量的方法和设备。
众所周知,发送数字图象信号能够比发送模拟信号给出质量高得多的视频图象。当一个含有一系列图象“帧”的图象信号以数字形式表示时,为了发送,需要产生大量的数据,在高清晰度电视系统中尤其是如此。然而, 由于一般发送通道中可得到的频带宽度是有限的,为了通过该有限的通道带宽发送大量的数字数据,不可避免地需要压缩或减少发送数据的数据量。在各种视频压缩技术中,已知所谓的混合编码技术是最为有效的,该技术结合了时间和空间压缩技术和统计编码技术。
大多数混合编码技术利用了运动补偿的DPCM(差分脉冲编码调制),二维DCT(离散余弦变换),DCT系数量化,以及VLC(变长度编码)。运动补偿的DPCM是一种确定一个物体在当前帧和其前一帧之间的运动的处理,并根据该物体的运动来预测当前帧,以产生代表当前帧和预测当前帧之间地差别的差分信号。这个方法已在例如下述文献中说明:StaffanEricsson,“用于混合预测/变换编码的固定的和自适应的预测器(Fixed and Adaptive Predictors for Hybrid Preditive/Trans form Coding)”,IEEE Transactions on Communications,COM -33,No.12(1985年12月);以及Ninomiya和Ohtsuka,“一种用于电视图象的运动补偿帧间编码方案(A Motion-Compensated Interframe Coding Scheme for Television Pictures)″,IEEE Transactions on Communications,COM-30,No.1(1982年1月)。
特别地,在运动补偿的DPCM中,当前帧数据是基于对当前帧和前面帧之间的运动估算,从相应的前一帧数据中预测到的。这种估算的运动可以用代表前一帧和当前帧之间的象素位移的一些二维运动矢量来描述。已经提出了许多方法来估算一个物体上的各象素的位移。一种运动估算技术包含了利用一些特征点的逐个象素的运动估算,其中每个特征点被定义为能够代表其邻近象素的象素点。在利用特征点的运动估算技术中,首先从包含在前一帧的所有象素中选出一些特征点。然后利用块匹配算法确定所选各特征点的运动矢量,其中每一个运动矢量都代表前一帧中的一个特征点和当前帧中的相应匹配点(也即最相似象素)之间的空间位移。特别地,每个特征点的匹配点都是在当前帧中的一个搜索区内经过搜索得到的,其中的搜索区被定义为在一个预定区域内的一个区域,它包含了相应特征点的位置。然而,在逐个象素的运动估算中,如果在一个图象块内所有的象素并不以同样的形式运动时,就不容易估算例如一个特征点的真实的运动。
另一种用来估算特征点的运动矢量的运动估算技术已在下述待批共有美国专利申请中公开,该申请的标题为“用于确定所选象素的真实运动矢量的方法和设备(METHOD AND APPARATUS FOR DETERMINING TRUE MOTION VECTORS FOR SELECTED PIXELS)”。
在所公开的用于确定含在前一帧内的特征点的真实运动矢量的方法和设备中,首先确定各特征点的一组初始运动矢量。接着,给一个选定的特征点的初始运动矢量提供N个预定的位移量,由此对该所选特征点产生一个有N个待选运动矢量的子组。该所选特征点被它的例如四个相邻特征点所包围,形成了一个具有一组四个三角形的前一帧菱形。然后,通过利用相邻特征点的初始运动矢量,从相邻特征点给出当前帧中的准特征点;并且还利用N个待选运动矢量从所选特征点产生出一组N个被选准特征点。四个准特征点构成一个当前菱形,它具有由N个被选准特征点所确定的N个四三角形组。最后,从待选运动矢量子组内的N个待选运动矢量中选出一个真实运动矢量,其中,该真实运动矢量是对应于当前菱形中一个四三角形组的待选运动矢量子组中的一个待选运动矢量,它产生当前菱形和前一帧菱形之间的最小的误差值。
然而,由于以往技术的设备在推导最小误差值时没有考虑到组内所选准特征点的位置和当前菱形内每个象素的位置之间的距离,所以对相应于所选准特征点的特征点,并不总是能够给出真实的运动矢量。
因此,本发明的一个主要目的是,提供一种用于图象信号编码系统的改进的方法和设备,用来通过利用基于改进的特征点的运动估算技术,正确地估算各特征点的运动矢量,由此改进系统的性能。
根据本发明的一个方面,提供了一种用于图象信号编码系统的方法,用来对各特征点估算一组运动矢量,每个特征点都用位在分布于前一帧中的一个六边形栅格的节点上的象素位置来定义,该方法包括以下步骤:
(a)依次地把各个特征点设定为主特征点,其中的主特征点被它的六个相邻特征点所包围,由此定义出一个前一帧六边形,该前一帧六边形具有一组六个三角形区域,每个三角形都由连接主特征点和它的两个相邻特征点所形成;
(b)探测各特征点在当前帧和前一帧之间的第一组初始运动矢量;
(c)存储第一组初始运动矢量;
(d)利用第一组初始运动矢量在当前帧中确定对应于每个前一帧六边形的当前六边形;
(e)依次地在预定的N个位移量中的每一个位移量加上相应于每个主特征点的初始运动矢量,由此产生一组N个待选运动矢量;
(f)对含在每个当前六边形内的每个六三角形组中的每个象素,从前一帧中推导出一个预测象素,并产生上述每一组中的每个象素的位置数据;
(g)通过从上述每个象素的象素值中减去预测的象素值,对含在上述每个六三角形组内的上述每个象素产生一个差分象素值;
(h)根据上述每组内的每个象素的位置数据和对应于N个待选运动矢量中的每个运动矢量的象素的位置数据,有选择性地设定一个预定的权重因子;
(i)将差分象素值与它的相应的权重因子相乘,由此推导出加权的差分象素值;
(j)通过对相应于上述每个当前六边形内的上述每个六三角形组的加权差分象素值取平均,计算上述N个六三角形组的N个误差值;
(k)比较上述N个误差值,以选出一个最小误差值;
(l)从每一组的N个待选运动矢量中选出一个对应于所选最小误差值的运动矢量;
(m)用所选出的运动矢量更新所存储的关于主特征点的初始运动矢量;以及
(n)重复上述步骤(d)至(m),直到所有的初始运动矢量都被更新。
根据本发明的另一个方面,提供了一种用于图象信号编码系统的设备,用来对各特征点估算一组运动矢量,每个特征点都用位在分布于前一帧中的一个六角形栅格的节点上的象素位置来定义,该设备包括:
用来依次地把各个特征点设定为主特征点的装置,其中的主特征点被它的六个相邻特征点所包围,由此定义出一个前一帧六边形,该前一帧六边形具有一组六个三角形区域,每个三角形都由连接主特征点和它的两个相邻特征点所形成;
用来探测各特征点在当前帧和前一帧之间的第一组初始运动矢量的装置;
用来存储第一组初始运动矢量的装置;
用来利用第一组初始运动矢量在当前帧中确定对应于每个前一帧六边形的当前六边形的装置;
用来依次地在预定的N个位移量中的每一个位移量上加上对应于每个主特征点的初始运动矢量的装置,由此产生一组N个待选运动矢量;
用来对于含在每个当前帧六边形内的每个六三角形组中的每个象素,从前一帧推导出一个预测象素,并产生上述每一组中的每个象素的位置数据的装置;
用来通过从上述每个象素的象素值中减去预测象素的值,对含在上述每个六三角形组内的上述每个象素产生一个差分象素值的装置;
用来根据上述每组内的每个象素的位置数据和对应于N个待选运动矢量中的每一个运动矢量的象素的位置数据有选择性地设定一个预定的权重因子的装置;
用来将差分象素值与它的相应的权重因子相乘的装置,由此推导出加权的差分象素值;
用来通过对相应于上述每个当前六边形内的上述每个六三角形组的加权差分象素值取平均,计算关于上述N个六三角形组的N个误差值的装置;
用来比较上述N个误差值,以选出一个最小误差值,并从每一组的N个待选运动矢量中选出一个对应于所选最小误差值的运动矢量的装置;
用于用所选出的运动矢量更新存储在存储装置中的关于主特征点的初始运动矢量的装置;以及
用于当所有的初始运动矢量都已被更新之后,提取更新后的各运动矢量,作为运动矢量组的装置。
本发明的上述目的以及其他目的和特点将通过下面结合附图对优选实施例的说明而变得清楚,在附图中:
图1是利用本发明的新颖运动估算装置的图象信号编码系统的方框图;
图2给出图1所示运动估算装置的详细方框图;
图3示出关于定义特征点的一个示范性帧;
图4示出根据本发明的一个优选实施例的用来选择特征点的分布在前一帧上的一个六边形栅格;以及
图5A和5B分别示出前一帧中和当前帧中六边形的形成。
参见图1,那里示出了利用本发明的新颖运动估算装置200的一个图象信号编码系统的方框图。输入数字图象信号作为当前帧信号存储在第一帧存储器100中。
在运动估算装置200中,对通过线路L10从第一帧存储器100提取的当前帧信号和通过线路L12来自第二帧存储器124的重建的前一帧信号进行处理,以产生关于各特征点的估算的第一组运动矢量和特征点位置数据。关于运动估算装置200的细节将参考图2予以说明。来自运动估算装置200的第一组运动矢量通过线路L20被施加给当前帧运动矢量探测器126和熵编码器107,而特征点的位置数据则通过线路L25输送给当前帧运动矢量探测器126。
在当前帧运动矢量探测器126中,利用通过线路L20和L25由运动估算装置200提供的第一组运动矢量和位置数据,确定出关于线路L10上的当前帧中所有象素的第二组运动矢量。为了确定第二组运动矢量,首先确定出各个准特征点,其中的准特征点代表着把前一帧的特征点按第一组运动矢量移动后所得到的当前帧中的象素。在确定了准特征点之后,按照下述方法确定非准特征点的运动矢量,非准特征点是指当前帧中余下的象素点。
首先,用连接各准特征点的线段来确定多个不重叠的多边形,例如六边形。然后,根据形成上述每个多边形的各准特征点和它们所对应的各特征点之间的位置关系,确定当前帧每个多边形所含的每个象素在前一帧中的预测位置。其后,根据预测位置从前一帧得到关于上述每个象素的预测的象素值;然后根据一个象素的位置和它的预测位置之间的位移确定出关于上述当前帧中每个象素的运动矢量。这样确定的第二组运动矢量被提供给运动补偿器130,以在逐个象素的基础上产生预测的当前帧。
运动补偿器130利用第二组运动矢量中的每个运动矢量,从通过线路L12自第二帧存储器124读出的前一帧中提取准备含在预测的当前帧内的每个象素的象素值,由此通过线路L30向减法器102和加法器115提供预测的当前帧信号。
在减法器102中,从线路L11上的当前帧信号中减去线路L30上的预测的当前帧信号;所得到的数据,也即代表当前帧信号和预测的当前帧信号之间的差分象素值的帧差分信号,被输送给图象信号编码器105,在那里,利用例如离散余弦变换(DCT)和已知的量化方法把帧差分信号编码成一组量化的变换系数。
其后,量化的变换系数被传送给熵编码器107和图象信号解码器113。在熵编码器107中,利用例如扫描长度和可变长度相结合的编码技术对来自图象信号编码器105的量化的变换系数和线路L20上的第一组运动矢量一起进行编码,以从熵编码器发送出去。同时,图象信号解码器113利用逆量化和逆DCT把来自图象信号编码器105的量化的变换系数转换回到重建的帧差分信号。
在加法器115中,来自图象信号解码器113的重建的帧差分信号和线路L30上的预测的当前帧信号被相加而结合起来,由此向第二帧存储器124提供准备作为前一帧信号写入的重建的帧信号。重建帧差分信号的必要性在于,使编码器可以监视接收机中解码器的行为,以防止编码器中重建的当前帧信号偏离于接收机中解码器的信号。
除了本发明有创造性的运动估算装置200之外,上面给出的图象信号编码系统的详细说明已经在下述共有专利申请中公开:欧洲申请95106854.3号和美国专利申请流水号08/434,808,标题为“用来对视频信号编码和解码的方法和设备(METHOD AND APPARATUS FOR ENCODING/DECODI NG A VIDEO SI GNAL)”,这里引用它作为参考。
另一个适用于确定非准特征点的运动矢量的图象信号编码设备的例子已在下述共有专利申请中公开:美国专利申请流水号No.08/367,520,于1994年12月30日提交,标题为“利用逐个象素的运动预测对视频信号编码的方法和设备(METHODAND APPARATUS FOR ENCODING A VIDEO SIGNAL USINGPIXEL-BY-PIXEL MOTION PREDI CTION)”,这里也引用它作为参考。在该图象信号编码设备中,关于非准特征点的每个象素位置的运动矢量是这样确定的:对位在一个圆形边界内的各准特点的运动矢量取平均,这个圆的半径是通过把该象素位置与离它最近的准特征点之间的距离加上一个预定的扩展半径来确定的,这样就能使该圆包含准备用来计算运动矢量的其他准特征点。
现在参见图2,那里示出了图1中本发明的运动估算装置200的详细方框图。如图2所示,线路L12上的前一帧信号被传送给特征点选择器210、特征点运动矢量探测器220和当前六边形信号预测器260。位在线路L10上的当前帧信号被输入给第三帧存储器270以便存储在其中。
在特征点选择器210中,在含于前一帧内的各象素中选择出一些特征点。特征点是那些能够代表前一帧中的各物体的运动的位置。
参见图3,那里示出了一个10×7象素的示范性帧。如果环绕着帧的中心存在有一个运动物体,并且该运动物体的运动相继地由一组象素,例如“511”至“519”,来代表,则这些象素就被选择为该帧的一些特征点。
在本发明的一个优选实施例中,特征点是利用采用了各种类型的栅格(例如如图4所示的六边形栅格)的栅格技术来确定的。如图4所示,特征点位在该栅格的各个节点上。
回到图2,来自特征点选择器210的所选特征点的位置数据通过线路L25被提供给图1中的当前帧运动矢量探测器126,这些数据还输送给特征点运动矢量探测器220和六边形位置数据选择器240,以存储在那里。
在特征点运动矢量探测器220中,根据来自特征点选择器210的位置数据和从第三帧存储器270提取的当前帧信号,探测关于各所选特征点的第一组初始运动矢量。第一组中的每个初始运动矢量都代表前一帧中一个特征点和当前帧中与它最相似的象素之间的空间位移。有许多处理算法可以用来在逐个象素的基础上探测运动矢量。在本发明的一个优选实施例中,使用了块匹配算法。该算法是这样进行的:当从特征点选择器210接收到一个特征点的位置数据时,通过线路L12从图1中的第二帧存储器124提取前一帧中的一个以主特征点为中心的有M×M(例如5×5)个象素的特征点块,其中M为一个正整数。然后根据从一个误差函数,例如MAE(平均绝对误差)或MSE(均方误差)导出的相似性的计算,确定该特征点块的一个运动矢量,上述误差函数表示特征点块和多个同样大小的待选块中每个待选块之间的差别,这些待选块是含在从第三帧存储器270中提取的当前帧中的一个通常较大的搜索区域(例如10×10个象素)内的,上述运动矢量代表特征点块和能够产生最小误差函数的那个待选块之间的位移。
然后,这样确定的运动矢量被设定为特征点的初始运动矢量。对所有的特征点都探测了初始运动矢量之后,这些运动矢量作为第一组初始运动矢量被传送给运动矢量存储器230以存储在那里。
同时,六边形位置数据选择器240依次地把存储在其内的各个特征点指定为主特征点。如图5A所示,主特征点,例如517,被它的六个目前没有被选为主特征点的相邻特征点511、512、513、514、515、516所包围,由此形成了一个前一帧六边形,例如500,主特征点517位在该六边形的中心,结果得到了一组六个三角形区域521、522、523、524、525和526。每个主特征点,例如517,以及它的六个形成前一帧六边形500的相邻特征点,例如511、512、513、514、515、516的位置数据被传送到运动矢量存储器230。从六边形位置数据选择器240把位置数据传送给运动矢量存储器230的操作是由来自控制器300的第一控制信号CS1来控制的。
监视初始运动矢量在运动矢量存储器230中的存储状态的控制器300通过向六边形位置数据选择器240和运动矢量位移发生装置250提供第一和第二控制信号CS1和CS2来控制它们的操作。
同时,在对来自六边形位置数据选择器240的主特征点位置数据作出响应时,存储在运动矢量存储器230中的相应的初始运动矢量被依次地按预定的次数提供给运动矢量位移发生装置250;在对其六个相邻点的位置数据作出响应时,相应的运动矢量被读出并被传送给当前六边形信号预测器260。
运动矢量位移发生装置250包含运动矢量位移发生器252和加法器254,用来对每个主特征点的初始运动矢量发生一组N个待选运动矢量,其中N是一个正整数。较具体地说,在对来自控制器300的第二控制信号CS2作出响应时,预先存储在运动矢量位移发生器252中的N个预定位移量被依次地读出并提供给加法器254。在本发明的一个优选实施例中,该位移量最好设定在相对于每个初始运动矢量的水平方向和垂直方向上的从(0,0)到(±2,±2)象素的范围内。于是,在此情形下,上述的N等于25。这样,N个位移量依次地和每个主特征点的初始运动矢量在加法器254中相加,由此对每个初始运动矢量产生了一组N个待选运动矢量。然后,这组N个待选运动矢量被提供给当前六边形信号预测器260和运动矢量选择装置290。
在当前六边形信号预测器260中,从位在线路L12上的前一帧信号中推导出含在当前六边形内的所有象素的预测的象素值。为了推导预测的象素值,首先从运动矢量存储器230读出形成前一帧六边形500的六个顶点的初始运动矢量,并确定出准特征点,例如图5B所示的511′、512′、513′、514′、515′和516′,这些点代表着把六个特征点,也即前一帧六边形500的六个顶点511、512、513、514、515和516,分别移动它们相应的初始运动矢量而得到的当前帧中的六个象素。确定了准特征点之后,通过连接这六个准特征点511′、512′、513′、514′、515′和516′就确定了一个当前六边形,如图5B中所示的500′。
然后,确定一组N个主准特征点,它们代表着利用关于前一帧六边形500中的主特征点的一组N个待选运动矢量在当前帧中产生的N个象素。确定了各个准特征点和N个主准特征点之后,通过把上述N个主准特征点中的每个主准特征点与它的两个相邻准特征点相连接,对每个主准特征点确定一组六个三角形。在图5B中,示范性地示出了通过连接六个准特征点511′、512′、513′、514′、515′和516′,来产生一个当前六边形,例如500′的处理。该当前六边形500′有一个主准特征点517′,由此形成一个对应于例如前一帧六边形500的六三角形组,如图5B中以虚线表示的521′、522′、523′、524′、525′和526′。尽管在图中没有特别地示出,但对熟悉本技术领域的人们来说应该明白,由于从前一帧六边形500中的主特征点会推导出N个待选运动矢量,所以每个当前六边形都将含有N个六三角形组。
其后,利用已知的仿射变换技术,对N个主准特征点中的每个点进行每个当前六边形中的所有象素的预测。在本技术领域内周知,运动物体的任何旋转、平移和缩放的组合都能够用仿射变换来表示。
如图5B所示,假定已确定当前六边形500′中的三个象素,即两个顶点511′、512′和主准特征点之一517′为分别对应于前一帧六边形500中的特征点511、512和517的准特征点,则当前六边形500′的三角形521′中的各象素以如下定义的仿射变换与前一帧六边形500的三角形521中的各象素相关联:x′y′=abcd·xy+ef]]>其中(x,y)和(x′,y′)分别表示当前六边形中的一个象素和前一帧六边形中的一个预测的象素位置的x和y坐标;a、b、c、d、e和f是仿射变换系数。
这六个仿射变换系数是通过求解六个线性方程得到的,而这些线性方程是从三组相关的特征点和准特征点,即511-511′、512-512′和517-517′得到的。一旦得知仿射变换系数后,便可以利用仿射变换方程把三角形512′中的各个剩下的象素映射到三角形521中的各个位置上。当前六边形500′中每个三角形内的各个象素就以这种方法从前一帧六边形500预测出来。位在两个相邻三角形边界上的象素可以从这两个三角形中的任何一个预测。当前六边形中象素的预测处理重复地进行,直到所有N个六三角形组都处理完毕。原始主准特征点及其形成当前六边形的六个相邻准特征点的位置数据以及其内所含所有象素的位置数据都被提供给当前六边形信号发生器280,该发生器的作用是产生当前六边形信号。N个主准特征点中的每个主准特征点的位置数据和每个含在当前六边形内的象素的位置数据被提供给运动矢量选择装置290。接着,对应于每个六三角形组的每个预测的象素值被提供给运动矢量选择装置290。
当前六边形信号发生器280根据当前六边形中各象素的来自当前六边形信号预测器260的位置数据,依次地从第三帧存储器270提取当前六边形中的相应象素值,由此向运动矢量选择装置290提供每一个象素值。运动矢量选择装置290包含一个减法器292,一个权重因子发生器294、一个乘法器296、一个误差值计算器297、一个比较器298、以及一运动矢量选择器299。
然后,减法器292通过从由当前六边形信号发生器280提供的象素值中减去由当前六边形信号预测器260提供的相应的预测的象素值,推导出当前六边形的每个六三角形组的各个差分象素值。接着,在减法器292中导得的差分象素值被依次地提供给乘法器296。
同时,本发明的权重因子发生器294在对来自当前六边形信号预测器260的当前六边形中每个象素的位置数据和N个主准特征点中每个点的位置数据作出响应时,从预选存储在其内的多个权得因子中有选择性地产生任一个权重因子。根据本发明,权重因子最好根据这样一个原则来设定,即如果当前六边形内的一个象素的位置愈是接近于N个主特征点中的一个点,则应该对它设定愈大的权重因子。这是因为,在推导对应于主准特征点的那个特征点的准确的运动矢量时,较为靠近主准特征点的那些象素比较为远离的那些象素更为重要。在本发明的一个优选实施例中,权重因子在0.4到1的范围内确定。例如,可以象表一所示那样来确定权重因子(表中假定范围区间的大小为1.9,权重因子范围从0.4到1)。
从表一中可以看出,当一个主准特征点位置和当前六边形中的一个象素的位置之间的距离在0到1.9之间时,对应的权重因子被选为1;以及,当它们间的距离在4到5.9的范围内时,则权重因子被选为0.6,等等。其后,来自减法器292的差分象素值和来自权重因子发生器294的相应的权重因子被同时提供给乘法器296。
乘法器296把来自减法器292的差分象素值与来自权重因子发生器294的相应权重因子相乘由此向误差值计算器297提供加权的差分象素值。在误差值计算器297中,通过对各加权的差分象素值取平均计算出关于当前六边形中相应的每个六三角形组的一个误差值,由此对每个预测的当前六边形产生一组N个误差值。然后,每一组的N个误差值被提供给比较器298。
比较器298对上述每一组中的N个误差值进行比较,由此从上述每一组中选出一个最小误差值。通过这个比较处理,比较器298对每一个当前六边形产生一个表明具有所选最小误差值的运动矢量的选择信号,然后把该选择信号提供给运动矢量选择器299。运动矢量选择器299在对来自比较器298的选择信号作出响应时,从存储在其内的一组N个待选运动矢量中选择出对应于所选最小误差值的那个运动矢量,作为每个所选特征点的运动矢量。然后,选出的关于每个特征点的运动矢量通过线路L20被提供给图1中的当前帧运动矢量探测器126;它同时也被提供给运动矢量存储器230,以便用该选出的运动矢量更新存储在其内的主特征点运动矢量。应该看到,主特征点的更新的运动矢量可以在推导其相邻特征点的运动矢量时被用作参考运动矢量。
尽管本发明是通过具体的优选实施例来说明的,但对于熟悉本技术领域的人们来说,显然可以在不偏离由下述权利要求所确定的本发明的精神和范畴的情形下做出各种变化和修改。
表一 权重因子作为到主准特征点的距离的函数主准特征点位置和当前六边形中每个象素的位置之间的距离范围 权重因子 0-1.9 1 2-3.9 0.8 4-5.9 0.6 6- 0.4