专利名称:视频编码器的运动估计方法及系统的制作方法
技术领域:
本发明涉及视频编码系统。具体地说,涉及利用运动补偿预计来压缩视频序列的系统。
图1和图2是利用运动补偿预计的系统的原理图。图1说明具有运动估计块的编码器10,图2说明对应的解码器30。以下概述在这种系统中的运动补偿预计。
在一般的视频序列中,连续帧内容的更改在很大程度上是场景运动的结果。此运动可以是因摄像机运动或因场景中呈现对象的运动所造成的。因此,通常的视频序列具有相当大的时间相关性特征,这种相关性沿运动轨道最强。视频序列的高效压缩需要开发此特性。
视频补偿(MC)预计是一项广为认可的压缩技术。它利用了这样一个事实在典型的视频序列中,特定帧的像素(pel)值可以使用其他某幅已经编码并传送的帧的像素值来预计(给定了这两帧之间的运动轨道)。
以下参照图1和2来描述运动补偿系统。运动补偿视频编码器的工作原理是将预计错误En(x,y)、也就是称为当前帧的已编码帧In(x,y)与预计帧Pn(x,y)之间的差最小化En(x,y)=In(x,y)-Pn(x,y) (1)预计帧Pn(x,y)使用表示为Rn(x.y)的参考帧像素值和当前帧与参考帧之间像素的运动矢量、使用以下等式来构建Pn(x,y)=Rn[x+Δx(x,y),y+Δy(x,y)](2)参考帧Rn(x,y)的帧信息先前已被编码并传送,以便可以在解码器中重新构建它。因而,它可以是正被用于编码帧之前的一帧,它同时存在编码器10和解码器30的帧存储器中。所述一对值[Δx(x,y),Δy(x,y)]表示当前帧中位置(x,y)处像素的运动矢量。Δx(x,y)和Δy(x,y)分别是该像素水平和垂直位移值。运动矢量由编码器10中运动域估计块12计算,如图1所示。当前帧所有像素的运动矢量集[Δx(.),Δy(.)]被称为运动矢量域,它在运动补偿预计块16中被用来计算预计帧Pn(x,y)之前、在运动域编码块14中计算出来。运动矢量域也被传送至解码器30。
再来看图1,减法器18根据等式1来确定预计帧和已编码帧In(x,y)之间的预计误差En(x,y)。一旦计算出来,预计误差En(x,y)被在预计误差编码块20中压缩,产生压缩的预计误差,表示为 ,开将它发送至解码器30。压缩过程通常会产生一些信息丢失。因此,压缩的预计误差 在预计误差解码块22中被解码,以便在编码器10中使用它来产生参考帧Rn(x,y),它对应于在解码器30中产生的参考帧Rn(x,y)。在编码器10中,这是通过在加法器24中将解码的预计误差En(x,y)和预计帧Pn(x,y)组合以便产生参考帧Rn(x,y)来完成的。参考帧Rn(x,y)存储于编码器10的帧存储器26中。
来自运动域编码块14的运动信息和来自预计误差编码块20的预计误差信息在多路复用块28中被组合在一起。
图3显示解码器30。多路分解器32将预计误差信息和运动信息分离。预计误差信息提供给预计误差解码块34,运动信息提供给运动补偿预计块36。运动补偿预计块36使用运动信息和存储在解码器30帧存储器38中的参考帧Rn(x,y)来重新构建预计帧Pn(x,y)。然后通过在加法器40中将预计帧加到接收的预计误差 来重构编码的当前帧 的像素,即I~n(x,y)=Rn[x+Δx(x.y),y+Δy(x,y)]+E~n(x,y)---(3)]]>
由于帧中的像素数量非常大,为每帧传送单独的运动矢量效率很差。作为替代,在大多数视频编码方案中,当前帧被划分成较大的图像区段,因而区段的所有运动矢量可以由较少系数描述。取决于当前帧划分成区段的方法,可区分为两类运动补偿编码器1.基于区块的编码器,其当前帧被划分成固定和预知的区块(参见图3a),例如按照国际标准ISO/IEC MPEG-1或ITU-T H.261,在编解码器中分为16×16像素区块;以及2.基于区段(基于区域)的编码器,其当前帧被划分为任意形状的区段(参见图3b),例如由分段算法所获得。例如,参考Centrede Morphologie Mathematique(CMM),“多标准区域结合的分段算法”,文档SIM(95)19,COST 211ter Project Meeting,1995年5月,及P.Cicconi和H.Nicolas的“图像序列编码的高效基于区域运动估计及面向对称的分段”,IEEE Transaction on Circuits and Systems forVideo Technology,卷4,第三号,1994年6月,第357-364页。
实际上,区段至少包括几十个像素。为紧凑地表示这些像素的运动矢量,较好的方法是用带有几个系数的函数来描述它们的值。这样的函数称为运动矢量域模型。
几乎所有通常使用的运动矢量域模型都是加法运动模型。运动补偿视频编码方案可根据以下一般等式定义图像区段的运动矢量Δx(x,y)=Σi=0N-1aifi(x,y)---(4)]]>Δy(x,y)=Σi=0M-1bigi(x,y)---(5)]]>其中系数ai和bi称为运动系数,它们被传送至解码器。函数fi和gi称为运动域基本函数,它们为编码器和解码器所共知。
为了将发送运动系数至解码器所需的信息量最小化,并不传送所有区段的所有运动系数。例如,这可以是在可忽略某些运动系数而不会导致重大误差的情况。代之以,某些区段的某些运动系数被传送,而不传送其他系数。
多项式运动模型是广为使用的运动模型族。(参见,例如在90年Proc.Picture Coding Symposium中H.Nguyen和E.Dubois的“图像编码的运动信息表示”,马萨诸塞州剑桥,1990年5月26-18,第841-845页,以及Centre de Morphoiogie Mathematique(CMM)的“多标准区域结合的分段算法”,文档SIM(95)19,COST 21 lter ProjectMeeting,1995年5月)。
运动矢量的值通过函数来描述,它是二维多项式函数的线性组合。平移运动模型是最简单的模型,仅需两个系数来描述每个区段的运动矢量。运动矢量的值由以下等式给出Δx(x,y)=a0Δy(x,y)=b0(6)此模型应用于国际标准(ISO MPEG-1、MPEG-2、MPEG-4、ITU-T推荐H.261和H.263),以描述8×8和16×16区块的运动。两个其他广泛使用的模型是由以下等式给出的仿射运动模型Δx(x,y)=a0+a1x+a2yΔy(x,y)=b0+b1x+b2y(7)以及由下面等式给出的二次运动模型Δx(x,y)=a0+a1x+a2y+a3xy+a4x2+a5y2Δy(x,y)=b0+b1x+b2y+b3xy+b4x2+b5y2(8)仿射运动模型给出了运动系数个数和预计效能之间非常简便的平衡。它仅用几个系数就能表示出一些通常现实生活的运动类型,如平移、旋转、变焦及剪切。
二次运动模型提供很好的预计效能,但在编码中它没有仿射模型通用,因为它使用较多运动系数,而预计效能并不太好。此外,使用二次模型比使用仿射模型估计运动在计算上代价更高。
运动估计块计算给定区段Sk的像素运动矢量[Δx(x,y),Δy(x,y)],这可以将区段中一定量的预计误差最小化。一个有意义的加法预计误差计算形式如下Σ(xi,yi)∈Skpih(|In(x,y)-Rn(x+Δx(x,y),y+Δy(x,y))|)---(9)]]>其中Pi的值是标量常数,|.|表示绝对值,h是个非递减函数。一个非常通用的计量是平方预计误差,在这种情况下Pi=1,h(.)=(.)2Σ(xi,yi)∈Sk(In(x,y)-Rn(x+Δx(x,y),y+Δy(x,y)))2---(10)]]>等式(9)是个带有许多变元的高度非线性函数,因而没有实践装置可以在可接受的时间内总是找到等式(9)的绝对最小值。因此,运动估计技术的区分点在于使所选预计误差计量最小化的算法。等式(10)一般用作运动估计中的代价函数。
以下讨论先前所知的运动估计技术。
一种技术是完全搜索。在此技术中,代价函数的值被计算为所有可能的允许运动系数值的组合(受限于可以表示运动系数的范围和精度)。选择使代价函数最小化的那些运动系数值来表示运动矢量域。
因计算的负担,完全搜索技术通常仅用来估计平移运动模型的运动系数,不能直接一般化用于其他运动模型。在直接一般化中,算法的计算复杂性随用以表示运动矢量域的运动系数个数而指数地增加。
作为可供选择的方法,可以使用高斯-牛顿迭代(或差别优化方案)运动估计。这些方案概括在93年Proc.Picture Coding Symposium中H.Sanson的“数字电视序列编码的基于区域运动估计和补偿”,瑞士洛桑,1993年3月17-19,以及C.A.Papadoupoulos和T.G.Clarkson的“使用二次几何变换的运动补偿”,IEEE Transaction onCircuits and Systems for Video Technology,卷5,第四号,1995年8月,第319-331页。这些技术使用著名的高斯-牛顿函数最小化算法来将代价函数(9)最小化,它是作为运动系数函数选择的预计误差计量。
此算法假设要最小化的函数可以由自变量的二次函数来局部估计。则第n次迭代步骤包括1.使用第n-1次步骤生成的运动系数,用实际函数的第一和第二导数计算适当的二次函数,2.计算最小化近似函数的系数向量,并将结果分配给n次步骤的运动系数。
与高斯-牛顿算法相关的主要问题是它仅覆盖局部最小值,除非初始运动系数位于全局最小值的吸引域中。因此,必须为高斯-牛顿算法提供足够好的实际最优初始估计。通常使用两种不同技术来改善高斯-牛顿算法的收剑。
1.使用多解析度图像金字塔的运动估计,2.使用运动模型的层次性提高级别的运动估计。
使用多解析度图像金字塔的运动估计技术是基于这样的假设对当前帧和参考帧进行低通滤波将消除局部极小值,并有助于算法收剑为全局最小值。运动估计首先在参考帧和当前帧的低通滤波(平滑)版上进行,其结果以输入信号的形式、使用较不平滑的图像馈送到运动估计阶段。最终估计在非平滑图像上进行。此类的某些变量附加减少了低通滤波图像的采样,以减少计算的数量。有关此技术的示例,参见93年Proc.Picture Coding Symposium中H.Sanson的“数字电视序列编码的基于区域运动估计和补偿”,瑞士洛桑,1993年3月17-19,以及P.J.Burt的“作为高效计算结构的金字塔”,它发表在“多解析度图像处理与分析”,ed.Rosenfeld,Springer Verlag,1984,第6-35页。
但是,低通滤波图像并不一定要消除局部最小值。此外,这可能转移全局最小值的位置。
比较起来,使用层次性提高运动模型级别的运动估计技术使用了以下假设1.复杂的运动模型可以用较低次的运动模型粗估。
2.此粗估是对更复杂运动模型系数的迭代搜索的较好初始推测。
最通常的层次开始于平移模型(两个系数),然后继续以简化线性模型(对应于平移、旋转及变焦物理运动,有4个系数),最后结束于完全线性模型(6个系数)。这样的层次可见于P.Cicconi和H.Nicolas的“图像序列编码的高效基于区域运动估计及面向对称的分段”,IEEE Transaction on Circuits and Systems for VideoTechnology,卷4,第三号,1994年6月,第357-364页,以及Proc.1994 International Conference on Acoustics,Speech and SignalProcessing中H.Nicolas和C.Labit的“图像序列编码的使用确定性松弛方案的基于区域运动估计”,第III265-268页。
这些假设在某些条件下可以运用得非常好。但是,收剑为局部最小值常常是一个问题,尤其是当粗估表现得非常差的情况下。
现有的系统,如以上概述的那些,受限于计算复杂性和视频压缩效能之间关系所带来的不利。也就是,在一方面,编码器将要求运动估计块具有很高的计算复杂性,以确定将所选预计误差量度(9)最小化因而取得适当的视频压缩效能的运动系数。通常,因达成此解决方案所需的计算量巨大,这种情况下这样的运动估计块起到了整体编码器计算复杂性的瓶颈的作用。
在另一方面,若计算复杂性得到减少,这将导致预计效能、从而视频压缩效能的降低。因为运动估计的预计效能严重影响编码器的总体压缩效能,对于运动估计算法来说,具有高预计效能(也就是低预计误差)、而复杂性又相对较低是关键。
要保持低复杂性,运动估计算法将对图像数据、运动及预计误差作出假设。这些假设统计上设得越多、并且假设越是健壮,算法就越好。不同的假设集通常引出不同的最小化技术。
根据本发明的第一方面,提供一种用于对视频帧序列进行运动补偿编码的编码器,它包括用于存储参考帧的存储器装置;以及用于至少使用参考帧估计当前帧中像素的运动的运动域估计装置,其中,运动域估计装置使用先前对当前帧的至少一个像素估计得到的预计运动系数来估计当前帧中至少一个其他像素的运动系数。
本发明利用了当进入运动估计阶段时已经具有的运动信息。此附加运动信息可以从相邻区段预计,或从对与要估计其运动的像素重叠的主片段的较早的运动估计继承。
运动域估计装置最好通过使用先前对至少一个相邻像素估计的预计运动系数集来对至少一个像素计算运动系数。这可以使用多个相邻像素。在这种情况下,它可以使用预计运动系数的平均集,该平均集从先前对多个相邻像素估计的运动信息中平均得到。
当应用于像素时,术语“相邻”指邻近的像素,其中一个像素的至少一个像素直接与另一个像素的至少一个像素靠近或重叠。
编码器最好包括分段装置,用以将接收的帧分为多个像素。分段装置可以为主像素导出初始运动系数。
所述像素最好是区段。
在一个实施例中,编码器包括两个单独的运动估计器,一个运动估计器用以基于预计的运动系数来估计运动系数,另一个运动估计器用以基于初始运动系数估计运动系数。若预计运动系数和初始运动系数同时可用,则两个运动估计器可同时估计运动系数。在这种情况下,编码器中的选择装置可以选择来自这两个运动估计器中任一个的运动系数用于对当前帧进行编码。然而,若仅有一个运动系数集可用,而另一个运动估计器的系数集却不可用,则一个运动估计器估计运动系数。
本发明能够使用各种具有比较简单的运动估计方法的运动估计器的组合,它们依赖不同假设,而非一个高度复杂的方法依赖一个假设。
编码器最好确定与当前选择的运动估计方法所估计的运动系数相关的预计误差是否超过预定阈值,并且如果超过,它顺序地选择后续的运动估计方法。
编码器最好包括具有各不相同的复杂性的一系列运动估计方法。该系列可以包括含有零运动模型、平移运动模型及仿射运动模型在内的各个层次。
编码器最好包括一系列最小化器,包括区段匹配最小化器、高斯-牛顿最小化器及准牛顿最小化器。
本发明最好能够在健壮性各异的统计上有效假设之间动态切换。这样,它能够以相对较小的复杂性取得统计上的低误差。
编码器最好包括用于对当前帧进行二次抽样、以产生二次抽样后的帧并且用于将二次抽样后的帧转发给运动模型系列的装置。二次抽样的装置可以包括一系列二次抽样器,其二次抽样因子各异。
编码器还可以包括控制装置,若与当前选择的运动估计器单元所估计的运动矢量域相关的预计误差超过预定阈值,它可以用来选择并使用该系列中后续的运动模型。控制装置可以被用来在最小化期间根据预计误差的改变选择二次抽样的量。
编码器最好包括接收装置,用以接收要被运动编码的当前帧。
根据第二方面,本发明提供一种编解码器,它包括根据本发明第一方面的编码器以及解码器。
根据第三方面,本发明提供一种移动终端,它包括根据本发明第一方面的编码器。
根据第四方面,本发明提供一种数据通信网络,它包括根据本发明第一方面的编码器。
根据第五方面,本发明提供一种用于对视频帧序列进行运动补偿编码的方法,它包括以下步骤存储参考帧;至少使用所述参考帧估计当前帧中像素的运动;以及把先前对当前帧的至少一个像素估计得到的预计运动系数集用于估计当前帧中至少一个其他像素的运动系数集。
以下仅以示例方式参考附图描述本发明的实施例,附图中图1显示用于视频帧运动补偿编码的编码器;图2显示用于视频帧运动补偿编码的解码器;图3(a)显示用于基于区块的运动补偿的当前帧的分割;图3(b)显示用于基于区段的运动补偿的当前帧的分割;图4显示根据本发明的用于视频帧运动补偿编码的编码器;图5显示根据本发明实施例的运动估计系统;图6显示图5运动估计系统中出现的运动估计块;图7显示图6运动估计块中出现的二次抽样块;图8是图6运动估计块中出现的运动模型选择器框图;图9是图6运动估计块中出现的代价函数最小化器框图;图10是全动感估计块的结果验证块的最佳实现方案流程图;以及图11是精细运动估计块的结果验证块的最佳实现方案流程图。
根据本发明的编码器10显示于图4中。此图与图1相似,并且适用前面的描述。图4的编码器与对应于图2的解码器结合工作。以下将描述图4。
在本发明实施例中使用了运动域编码块14中的基于区块的分段,以下将说明它。最终分段由16×16像素的宏区块和8×8像素的子区块所组成。在估计了宏区块的运动之后,预计误差将在运动域估计块12中分析,并在运动域估计块12中作出决定是否将宏区块分割成四块8×8的子区块。若发生分割,宏区块的运动系数保留在运动域估计块12的运动系数存储器中,并用作8×8运动估计中的初始运动系数。这将在以下说明。不管分割是否发生,宏区块的最终运动系数被输出到运动域编码块14。运动域编码块14最终决定要传送的运动模型,是否使用单个16×16区块或四个8×8区块来描述此(16×16)宏区块及运动系数的编码。在此实施例中使用了相同的运动估计系统,而与被估计运动区块的大小无关。
图1和图4之间的主要差别是运动域编码块14所产生的运动信息被回馈到运动域估计块12。此运动信息同时包括初始运动系数和与相对于参考帧中区段的当前帧中区段的运动相关的预计运动系数。此反馈由数字30表示。以下将说明运动域估计块如何使用运动信息。
运动域估计块在图5中显示。所述块包括两个运动估计块、即全动感估计块41和精细运动估计块42以及运动系数存储器43。为获得对上述16×16宏区块运动估计的良好起点,首先将在全动感估计块41中估计32×32像素区块的运动。作为结果的运动系数被保存于运动系数存储器43中,并被取出和用作分割先前估计区块所创建区段(16×16宏区块或8×8子区块)的初始运动系数。全动感估计块41根据当前帧和较早的参考帧之间的差别来计算运动系数。但是,若有初始运动系数可用,则全动感估计块41可包括它们以作为计算当前帧区段运动系数的基础。精细运动估计块42根据对先前已经计算的当前帧区段所预计的运动系数来计算当前帧的一个区段的运动系数。
若运动域编码块14没有先前预计的运动系数可供运动域估计块12用作预计运动系数的基础,则仅使用全动感估计块41(若可用,则使用初始运动系数)。
若运动域编码块14有先前预计的运动系数可供运动域估计块12用作预计运动系数的基础,则使用全动感估计块41和精细运动估计块42。运动估计块41和42的操作将在稍后参照图10和11作较详细的描述。
全动感估计块41和精细运动估计块42具有通用的运动估计块结构,这在图6中显示。现参考图6,两个运动估计块都包含四个主要块,即二次抽样块51、运动模型选择块52、代价函数最小化器块53及结果验证块54。以下将描述每个块。
全动感估计块41和精细运动估计块42按步骤操作。在每个步骤决定运动模型,即用于将代价函数值和二次抽样因子最小化的最小化方法。这些决定在图6的相应的运动估计块的结果验证块54中做出。
图7显示二次抽样块51的框图。所述块的输入有来自编码器10的帧存储器26的参考帧Rn(x,y)、当前帧In(x,y)、来自运动域编码块14的分段信息,以及有关二次抽样所需级别的信息。这是由二次抽样开关信号55所提供的,它在下面描述。
二次抽样块51由二次抽样器61(1)至61(k)的存储体(bank)61和多路复用器形式的二次抽样选择器62组成。在存储体61中的每个二次抽样器61(1)至61(k)(表示为“按m×m二次抽样”)通过取得每个水平方向上第m个和垂直方向上第m个像素来对参考图像和当前图像二者进行二次抽样,其中m是2的整数乘幂。
二次抽样选择器62的输入有参考帧Rn(x,y)和当前帧In(x,y)、分段信息及其各个级别的二次抽样版,即未取样版和由每个二次抽样器61(1)至61(k)二次抽样所得版。二次抽样选择器使用二次抽样开关信号55选择图像对及要输出的适当分段。结果验证块54(图6)负责产生一致的开关信号。
图8显示优选的运动模型选择块52。运动模型选择块52包括运动模型多路复用器71和运动模型存储体72。运动模型选择决52从结果验证块54接收运动模型开关信号73。
运动模型选择块52是个多路复用器,它依据运动模型开关信号73来在运动模型72a至72c的存储体72中做出选择。存储体72中的运动模型按复杂性的增加依次有“无运动”72a、“平移模型”72b及“仿射模型”72c。复杂性程度指用于表示运动的基本函数的个数。在运动模型的复杂性程度和计算复杂性之间有密切的关系随着运动模型复杂性程度的增加,模型系数估计的计算复杂性也增加。作为特例,“无运动”模型72a的所有运动系数都设为零。也可以使用其他运动模型,例如二次运动模型。此模型或者可以作为附加使用的模型。
存储体72中的运动模型72a至72c具有层次“无运动”模型72a可以在平移模型和仿射模型中通过设置所有运动系数为零来表示。同样地,“平移模型”72b可以在仿射模型中通过设置等式(7)中a1=a2=b1=b2=0来完全表示。
图9显示代价函数最小化器块53的框图。代价函数的最小化在所述块中执行。它包括最小化方法选择器81、最小化方法存储体82及最小化块83,后者计算运动系数向量及其相关的最小化代价函数向量。最小化方法包括“无最小化”82a、“区段匹配”82b以及“高斯-牛顿步骤”82c。以下将进一步说明这些最小化方法。
代价函数最小化器块53的输入有来自二次抽样块51的参考帧Rn(x,y)和当前帧In(x,y)及分段信息(它们全部都可能被二次抽样);来自运动模型选择器52的所选运动模型;以及当前运动系数,来自结果验证块54的当前代价函数值及最小化方法开关信号80。
此代价函数最小化器块53由其存储体82中的方法之一执行最小化。方法的选择由结果验证块54所提供的最小化方法开关信号80来决定。
“无最小化”82a可对于任何运动模型选择。在这种情况下,代价函数最小化块53不执行任何代价函数优化,而仅返回输入了运动系数的代价函数值。此方法在存在初始运动参数的情况下用来评估代价函数值。
“区段匹配”82b仅可对平移运动模型选择。对所选运动系数a0和b0的值的集合,计算代价函数的值。产生(6)中预计误差最小值的值a0和b0被选为解。搜索在量化网格上进行,也就是说,仅使用标量化的值a0和b0。搜索通过评估网格上某些或所有候选对来进行,并选择产生最小代价函数值的对。
除了“无运动”外,“高斯-牛顿步骤”82c可被用于任何运动模型。它使用单个高斯-牛顿迭代步骤来减少代价函数。R.Fletcher的“优化的实践方法”,第二版,John Wiley 8 Sons,1987,第3章和第6章给出了高斯-牛顿最小化的概述。
高斯-牛顿方法是牛顿方法的具体形式,当要最小化的代价函数是平方和时通用。
牛顿的方法在下面概述。使e(a)为参数向量a函数的代价函数。使ac为当前参数向量,作为最小化迭代的输入。则此代价函数可以围绕ac被二次地粗估如下e(a)≈e(ac)+gT(a-ac)+12(a-ac)TG(a-ac)---(11)]]>其中g表示在点a=ac处关于a的e梯度;并且G是在点a=ac处关于a的e的第二导出矩阵粗估。
然后,根据牛顿方法的最小化步骤输出参数向量ao由以下等式计算
ao=-G-1g+ac(12)这是围绕ac的的代价函数二次粗估成为最小的点。若e(a)具有以下形式e(a)=Σi=1m(di(a))2=dTd---(13)]]>则高斯-牛顿方法通过以下等式来粗估第二导出矩阵G≈2(d)(d)T(14)其中d表示雅可比矩阵,其列是d组件的第一导出向量di。考虑通过以下等式给出第一导出向量gg=2(d)d (15)高斯-牛顿方法的迭代步骤采用以下形式ao=-[(d)(d)T]-1((d)d)+ac(16)在预计误差最小化的上下文中,等式(10)向量d的项di由以给出di=In(xi,yi)-Rn(xi+Δx(xi,yi),yi+Δy(xi,yi)) (17)高斯-牛顿方法的计算代价并不太高,因为它仅执行一次迭代步骤。代价函数最小化器53输出最小化的代价函数值及运动系数向量。
图6显示图5的全动感估计41和精细运动估计42块的细节。验证块54提供开关信号。开关信号包括二次抽样开关信号55、运动模型开关信号73以及最小化方法开关信号80,它们分别选择二次抽样因子、运动模型及最小化模型,以便用于当前迭代中。由结果验证块54所产生的任何开关信号组合都具有基本的假设集。结果验证块54的目的是优化这些假设。一旦确定了假设集,将产生新的开关信号集及引出新的运动系数和新的代价函数值。通过将这些与先前的进行比较,结果验证块54将确定1)是否接受(验证通过)新的系数;2)代价函数是否达到可接受的低值(终止决定);以及3)假如迭代继续,下一个开关信号将是什么。
这些开关信号控制系统中的其他块。因此,开关信号的确定将决定要用于下轮迭代中的运动模型、最小化方法以及二次抽样因子。
结果验证块54保留“当前运动系数”,它是目前为止产生代价函数最小值的运动系数,以及“当前代价函数值”,它是目前为止的代价函数最小值。若迭代继续,则当前运动系数和当前代价函数值被馈送至代价函数最小化器53。
当代价函数收剑时,也就是说,当代价函数落至几个预定义阈值之一以下时,结果验证块54设置收敛标记信号56,然后把收敛标记信号56与当前运动系数一起作为“最终运动系数”57并且把当前代价函数值作为“最终代价函数值”58输出。这些输出被发送至运动域编码块14。
结果验证块54是一个使系统的计算复杂性保持最小的强大工具。通过在假设集之间上下文相关切换,也就是在特定运动模型集、最小化方法和二次抽样程度之间,所述块允许高效能的运动估计,仅当需要时才涉及计算上复杂的技术。该系统可以对以下情况找到区段的运动系数任何任意形状的区段;区段中任何期望的运动域模型;以及任何有意义地选择的估计误差(均方误差、中间绝对误差、拉格朗日比率失真,等等)代价函数。
该系统可以用多种方法实现例如,以下特性可以改变
在等式(4)和(5)中可以使用不同的基本函数;作为量度预计误差可以选择不同的代价函数;对于区段匹配可以使用不同方法;可以使用各种不同的牛顿方法;对于结果验证和方法切换可以使用不同策略;以及对于图像的子像素评估和梯度计算可以使用不同方法。
以下将描述本发明的最佳实施例。
在最佳实施例中,在二次抽样块51中仅配备一个二次抽样器61。此二次抽样器将使信号以2×2来二次抽样。二次抽样开关信号55要么选择此二次抽样器,或完全没有二次抽样。
在本发明的最佳实施例中,在运动模型选择器存储体72中有三个运动模型“无运动”模型72a、“平移模型”72b以及“仿射模型”72c。
在此最佳实施例的代价函数最小化器53中,所执行的区段匹配82a是“具有完全搜索的完全像素区段匹配”。该操作需要在特定范围中测试所有整数值的运动系数对,以找到最小化代价函数的那对。
对于高斯-牛顿最小化82c,等式(16)可以重新设置如下Gδ=g (18)其中δ=ao-ac,G=(d)(d)T,g=-(d)d。
等式(18)由Cholesky分解所解答(W.H.Press、S.A.Teukolsky、W.T.Vetterling及B.P.Flannery所著“用C语言编程的数字处方”,第二版,剑桥大学出版社,1992年,第96-98页),输出运动系数向量ao由ao=ac+δ计算。在最佳实现模式中,仅当运动模型是仿射时才使用高斯-牛顿步骤。在此例中,G是具有以下项的6×6正半确定对称矩阵(m,n)=Σ(xi,yi)∈Skcm(i)cn(i)---(19)]]>其中c(i)=[dxiyidxixidxidyiyidyixidyi]T;dxi表示在第i个像素处的水平图像导数,dyi表示在第i个像素处的垂直图像导数。同样地,g是具有以下项的大小为6的向量g(n)=Σ(xi,yi)∈Skdicn(i)---(20)]]>其中di如等式(17)中所定义。
立方卷积插值法被用于子像素评估。图像导数也使用立体卷积计算计算由立方卷积插值法所得到的连续函数的导数,它们被解释作图像导数。
在全动感估计块41和精细运动估计块42的结果验证块54中新开关信号的产生可以用许多方法来完成。以下说明两个运动估计块产生开关信号的优选的方法。
图10显示根据本发明最佳实施例,在全动感估计块41的结果验证块54中所执行操作的流程图。第一套假设“无运动”(91)被通过将二次抽样级别切换至“无”来设置,最小化方法设置为“无最小化”,运动模型为“无运动”。若作为结果的代价函数低于预定义阈值(92)(在图10中表示为″Th1″),则搜索结束(913),不产生运动系数。
若代价函数值大于或等于Th1,下一套假设(93)是“平移模型可以粗估实际运动域”以及“二次抽样不会根本地转移全局最小值”。遵循这些假设,二次抽样开关信号55被设为“按2×2二次抽样”,模型切换至“平移模型”,代价函数最小化方法被设为“区段匹配”(93)(执行二次抽样以减少操作复杂性)。若此步骤导致的代价函数低于对应于零运动的代价函数,则至目前为止最佳的系数通过将等式7中的值a0和b0设置为区段匹配所计算的值,并设置其他系数为零来更新(94)。
若初始运动系数可用,例如来自主区段(并存储于运动系数存储器块43中),则下一个假设是“具有初始运动系数的仿射模型可以粗估实际运动”(95)。现在,运动模型被设为“仿射”,“无最小化”被选为最小化方法,并且二次抽样开关信号55设为“无”。再次使用等式(10)来评估所述代价,并且若代价小于先前阶段(96)的最小代价,则作为目前最佳值来存储初始运动系数。若没有初始运动系数可用,则步骤95和96不发生,并且步骤97跟随步骤94。
下一套假设是“仿射运动模型满意地粗估了运动域”,并且“高斯-牛顿步骤减少了代价函数”。因而,运动模型开关信号73被设为“仿射”、二次抽样开关信号55为“无”,以及最小化方法开关信号80为“高斯-牛顿”。用这些设置,执行迭代98、99、910、911及952,直到发生以下条件之一在最后迭代中代价函数值的减少低于预定阈值Th2(910);或者达到一定个数的迭代计数Maxlter1(912)。
再次地,在每次迭代之后,与迭代结果相关的代价函数与到目前为止得到的最佳代价函数进行比较(99)。若作为结果的代价函数小于到目前为止最佳的代价函数,则迭代的结果将用来更新运动系数和到目前为止最佳的代价函数值。
图11显示在根据本发明的较好方法实施例中,在精细运动估计块42的结果验证块54中所执行操作的流程图。可以看出操作与图10中所执行的那些相似。第一个假设是“无运动”,并且如果与此假设相关的结果代价函数值低于预定义阈值Th1(与图10相同),则搜索结束(913),不产生运动系数。第二个假设是“进来的预计运动系数集已经相当好地粗估了最终运动系数52”(101)。初始代价被评估并与预定义阈值Th3(102)进行比较。若代价低于阈值,则输入运动系数如(109)输出,并发送至运动域编码块14。否则作出新的假设,“高斯-牛顿的牛顿步骤减少了代价函数”。运动模型开关信号被设为“仿射”、二次抽样开关信号被设为“无”,并且最小化方法为“高斯-牛顿”(104)。如全动感估计块41的结果验证块54中那样,在每个步骤之后评估代价函数,并且如果代价减少了,作为结果的运动系数与代价一起存储(105)。再次有两个结束迭代的条件在最后迭代中代价函数值的减少低于预定阈值Th4(106);或者达到一定个数的迭代计数Maxlter2(108)。
若全动感估计块41和精细运动估计块42都可工作(也就是说若初始运动系数和预计的运动系数都可用),则在接收到这些决的输出时,运动域编码块14将比较“最终代价函数值”以选择要使用的一套运动系数。比较这些运动系数的合适方法在与此有关的题为“适应性运动矢量域编码”的美国专利申请中描述,发明人为JaniLainerna和Marta Karczewicz,于2000年1月21日提交。
预定义的阈值在最小化的不同阶段和/或对于不同模型和/或对于不同位速率可能不同。
如以上所概括的,根据本发明的运动估计系统在取得运动估计上比先前的解决方案极大地减少了预计误差,同时使计算复杂性保持在统计上的低级别。这是通过在每个迭代进行假设验证,在健壮性各异的统计有效假设之间提供动态切换来达到的。
进一步地,本发明使用多项式运动矢量域模型特别为图像区段的运动估计提供改进的系统。运动估计是使用运动补偿预计的视频编码要素。本系统找到了比先有技术解决方案能产生较低预计误差的运动系数,同时让计算复杂性保持在低级别。此低预计误差使得在视频压缩方面有较好的效能。此低预计误差是通过将图像数据和运动的一般特性整合入众所周知的函数最小化技术组合中而达到的。
前面的描述对于本专业的技术人员来说很容易明白一点在权利要求书的范围内可以做各种修改。
权利要求
1.一种用于对具有像素的视频帧序列执行运动补偿编码的编码器(10),所述编码器包括用于存储参考帧的存储器装置(26);以及用于至少使用所述参考帧估计当前帧中的像素运动的运动域估计装置(12),其中,所述运动域估计装置把先前对所述当前帧的至少一个第一像素的估计得到的预计运动系数用于估计所述当前帧中至少一个第二像素的运动系数。
2.如权利要求1所述的编码器(10),其特征在于所述运动域估计装置(12)利用先前对至少一个相邻像素估计的预计运动系数集来对至少一个第二像素计算运动系数。
3.如权利要求1或权利要求2所述的编码器(10),其特征在于所述运动域估计装置(12)利用先前对多于一个相邻像素估计的预计运动系数集来对至少一个第二像素计算运动系数。
4.如上述权利要求中任何一个所述的编码器(10),其特征在于所述运动域估计装置(12)使用对先前对多于一个相邻像素估计的预计运动信息求平均得来的平均预计运动系数集。
5.如上述权利要求中任何一个所述的编码器(10),其特征在于为将接收到的帧分段为多个像素而设置分段装置。
6.如权利要求5所述的编码器(10),其特征在于所述分段装置为主像素导出初始运动系数。
7.如上述权利要求中任何一个所述的编码器(10),其特征在于所述运动域估计装置(12)包括用于根据所述预计的运动系数估计第一运动系数的第一运动估计器(41,42);以及用于根据初始运动系数估计第二运动系数的第二运动估计器(41,42)。
8.如权利要求7所述的编码器(10),其特征在于如果所述预计运动系数和所述初始运动系数可用,则所述第一运动估计器(41,42)和所述第二运动估计器(41,42)将估计运动系数。
9.如权利要求7或权利要求8所述的编码器(10),其特征在于如果一个运动估计器(41,42)的对应运动系数可用,而另一个运动估计器(41,42)的那些系数不可用,则仅一个运动估计器(41,42)估计运动系数。
10.如上述权利要求中任何一个所述的编码器(10),其特征在于所述运动域估计装置(12)包括选择装置,用以从第一运动系数或第二运动系数选择运动系数。
11.如上述权利要求中任何一个所述的编码器(10),其特征在于所述运动域估计装置(12)包括一系列运动模型(52)。
12.如权利要求11所述的编码器(10),其特征在于所述运动模型系列(52)包括有层次,所述层次包括零运动模型(72a)、平移运动模型(72b)及仿射运动模型(72c)。
13.如权利要求11或权利要求12所述的编码器(10),其特征在于包括控制装置(71),若与当前选择的运动估计器单元所估计的运动矢量域相关的预计误差超过预定阈值,则它可以用来选择并使用所述系列中后续的运动模型。
14.如权利要求11至13中任一个所述的编码器(10),其特征在于包括用于对当前帧进行二次抽样(51)、以便产生二次抽样后的帧并且将所述二次抽样后的帧转发给所述运动模型系列的装置。
15.如权利要求14所述的编码器(10),其特征在于包括在最小化期间根据预计误差的变化选择二次抽样量的控制装置(62)。
16.如权利要求15或权利要求16所述的编码器(10),其特征在于所述二次抽样装置(51)包括一系列二次抽样器(61(1),…61(k)),其二次抽样因子各不相同。
17.如上述权利要求中任何一个所述的编码器(10),其特征在于所述运动估计装置包括一系列最小化器(82),后者包括区段匹配最小化器(82a)、高斯-牛顿最小化器(82b)以及准牛顿最小化器(82c)。
18.一种包括如上述权利要求中任何一个所述的编码器(10)和解码器(30)的编解码器。
19.一种包括如上述权利要求中任何一个所述的编码器(10)的移动终端。
20.一种包括如权利要求1至17中任何一个所述的编码器(10)的数据通信网络。
21.一种用于对具有像素的视频帧序列执行运动补偿编码的方法,所述方法包括以下步骤存储参考帧;至少使用所述参考帧估计当前帧中像素的运动;以及把先前对所述当前帧的至少一个第一像素的估计得到的预计运动系数集用于估计所述当前帧中至少一个第二像素的运动系数集。
全文摘要
公开一种用于视频编码器运动估计方法和系统。所述系统包括待编码的视频图像的输入。它还包括一个层次系列的具有各不相同的复杂性的运动估计器,用以估计接收到的图像和参考图像之间的运动矢量域。若由当前选择的运动估计器所估计的与运动矢量域相关的预计误差超过预定阈值,则由控制装置选择系列中随后的运动估计器。当继承和预计的运动信息可用时,则使用它们来改进预计质量。
文档编号H04N7/26GK1418437SQ01806741
公开日2003年5月14日 申请日期2001年1月19日 优先权日2000年1月21日
发明者M·卡尔泽维克, J·濑内马 申请人:诺基亚有限公司