背景技术
附图的图1和图2显示使用运动补偿预测的视频编码系统的示意图。图1显示编码器和图2显示相应的译码器。下面概述在这样的系统中的运动补偿预测。在典型的视频序列中,连续帧的内容的改变在很大程度上是场景中运动的结果。这种运动可以是由于摄像机运动,或是在场景中所描绘的目标的运动。所以,典型的视频序列的特征在于很大的时间相关性,这种相关性沿着运动的轨迹最高,而视频序列的有效压缩需要利用视频序列的这种特性。运动补偿(MC)预测是广泛认知的用于视频压缩的技术。它利用这一事实,即在典型的视频序列中给出每两个帧的运动轨迹,则一个特定的帧的图象强度值可以通过使用某些其它已经编码的帧的图象强度被预测。
在图1所示的编码器中,运动估值功能块计算正在被编码的帧(In(x,y))(称为当前帧)与被表示为Rref(x,y)的参考帧之间的象素的运动矢量(Δx(x,y),Δy(x,y))。参考帧是先前已编码的帧之一(例如,在正在编码的帧之前的帧),它在给定的时刻可以从编码器和译码器的帧存储器中得到。数字对(Δx(x,y),Δy(x,y))被称为在当前帧中的位置(x,y)处象素的运动矢量,以及Δx(x,y)和Δy(x,y)分别是水平和垂直位移值。
当前帧的所有象素的运动矢量集被称为运动矢量区,它由运动区编码功能块进行压缩,以及被发送到译码器。为了表示运动矢量区的压缩典型地是有损失的,压缩的运动矢量被表示为
在运动补偿(MC)预测功能块中,压缩的运动矢量
和参考帧被使用来构建预测帧P
n(x,y):
预测误差,即在当前帧In(x,y)与预测帧Pn(x,y)之间的差值:
En(x,y)=In(x,y)-Pn(x,y), (2)被压缩和被发送到译码器。压缩的预测误差被表示为
在图2所示的译码器中,当前被编码的帧
的象素通过使用收到的运动矢量以找到参考帧R
ref(x,y)中的预测象素以及加上接收的预测误差
而被重新构建,即,
由于编码时引入的损耗,
不同于In(x,y)。在编码帧与原先帧之间的差值
被称为重建误差。
运动补偿预测的目的是找到在需要被发送到译码器的信息量与编码时引入的损耗之间的最佳折衷,即
1.使得预测误差量最小化,以及
2.使得为表示运动矢量区所需要的信息量最小化。
由于一帧中的象素数目非常大,所以对于每个象素发送单独的运动矢量是低效的。作为替代,在大多数视频编码方案中,当前帧被分成较大的图象段,以使得该段的所有运动矢量可被几个系数描述。取决于当前帧被分成段的方式,可以区分两种类型的运动补偿编码器:
1.基于块的编码器,其中当前帧被分成固定的和已知的块,例如在国际标准ISO/IEC MPEG 1或ITU-TH.T6 1编译码器中的16×16象素块(见图3a),或,
2.基于分段的(即,基于区域的)编码器,其中当前帧被分成任意形状的段,例如通过图3b的分段算法得到的。
典型的视频序列的一个帧包含多个具有不同运动的目标。通过把帧In(x,y)分成几个段SK和估值在该帧与参考帧Rref(x,y)之间的这些段的运动,而进行MC预测。实际上,一个分段包括至少几十个象素。为了简洁地表示这些象素的运动矢量,希望用几个参量的函数来描述它们的值。这样的函数被称为运动矢量区模型。运动补偿视频编码方案通过使用通用的公式来近似图象段的运动矢量:
其中参量cn被称为运动系数,以及它被压缩和被发送到译码器。压缩的运动系数将被表示为
函数fn被称为基函数,它们必须是编码器和译码器已知的。分段信息是运动表示的固有部分,它也需要被编码和被发送到译码器。在译码器中,分段信息和系数
被使用来得到对于每个段的补偿的运动矢量区:
在编码器中,运动区编码功能块的目标是使得表示运动矢量区所必需的比特数目最小化,而同时保持低的预测误差。对于表示运动矢量区所需要的比特的总数取决于:
-图象中的段数,
-每段的运动系数的数目,
-表示运动系数所需要的比特数目。
图4上显示用于执行运动区编码的现有技术系统,它包含4个主要的构建功能块:QR运动分析器1、分段合并功能块2、正交化功能块3和运动系数去除功能块4。在PCT出版物WO97/16025和WO97/40628中描述了这样的系统。
加到运动区编码功能块的输入是:
-由运动估值功能块找到的运动矢量区(Δx(x,y),Δy(x,y)),
-当前帧,
-参考帧,以及
-当前帧的初始分段。初始分段可以在运动估值以前或期间在编码器中得到。该分段也可以通过某些外部装置被提供给编码器。
运动区编码功能块可以通过以下方法来减小必须被发送到译码器的比特总数:
-通过把可以用一个公共的运动系数矢量进行预测而不造成预测误差有很大增加的那些段组合(合并)在一起而减小分段数。组合这些分段的处理过程被称为运动辅助合并,以及它由分段合并功能块2执行。
-使用对相应的运动系数的量化(由量化功能块5执行)具有低的灵敏度的基函数,以使得这些系数可以用小的比特数来代表。已经发现,相应于离散正交函数的系数对于量化是不灵敏的,所以,在分段合并以后,基函数相对于长方形限定该段而被正交化。这是由正交化功能块3完成的。
-对于每个段找出达到满意的低预测误差的基函数的最小数目。只有相应于这些选择的基函数的系数必须被发送到译码器。基函数和相应运动系数的这样的自适应选择的处理过程由运动系数去除功能块4执行。
QR运动分析器1的功能是找出运动矢量区的代表,它可在下游被分段合并功能块2和运动系数去除功能块4使用,以便有效地计算相应于段和基函数的不同组合的运动系数。QR运动分析器1和分段合并功能块2如下地运行。
QR运动分析器1执行包括矩阵运算的多个步骤。在PCT出版物WO97/16025和WO97/40628中详细地描述了这些步骤。在第一步骤中,预测帧被近似,这样,预测帧相对于运动矢量变成为线性的。在第二步骤,对于预测帧的每个段Sk构建矩阵Ek和矢量qk,以及它们被用于使平方预测误差最小化。在第三步骤,熟知的QR因式分解算法被使用来把矩阵Ek分解成两个矩阵Qk和Rk的乘积,其中Qk是酉矩阵,以及Rk是上三角矩阵。另外,从因子矩阵Qk和矩阵qk计算辅助矢量zk。部分的矩阵Rk和辅助矢量zk被加到分段合并功能块2。
分段合并功能块通过找出组合区域中的象素值是否可使用公共运动系数矢量被预测而对相邻的段Si和Sj执行合并操作。如果组合的段的区域可以通过使用运动系数的一个矢量被编码,而不过度地增加被规定为预测误差的失真,因此产生在重建误差与发送的比特数之间的更好的折衷,则这些段被合并。在矩阵运算中,首先形成矩阵方程,然后通过使用已知的矩阵计算方法处理因子矩阵。结果是一个矩阵方程,其中一个矩阵包括一些项,根据这些项,容易计算在合并段的区域中的平方预测误差。如果按照选择的准则这些平方预测误差的改变是可接受的,则这些段被合并。
在考虑了这些段的所有的分段对以后,分段合并功能块2的输出是:
i.带有减小数目的段的图象的新的划分,
ii.对于每个新的段,功能块输出矩阵R1 k,矢量z1 k,
iii.合并信息,该信息被发送到译码器并帮助译码器识别被合并的段。
总之,运动区编码功能块的输出是:
-描述图象段的信息,
-关于哪些系数被发送到译码器的信息,
-对于发送的运动系数的量化的数值。
关键的是运动区编码在计算上是简单的,这使得编码器能以进入的速率处理数据。
具体实施方式
一开始参照图1,这里所示的视频编码器的输出是被分成段S
k的压缩帧,每个段S
k伴随有关对于各个段的每个象素(x,y)的运动矢量[(Δx(x,y),Δy(x,y))]的信息。然后,对于包含P个具有坐标(x
i,y
i),i=1,2,...P,的象素的一个段S
k,运动区编码器的任务是从由运动估值功能块输出的运动矢量区[(Δx(x
i,y
i),Δy(x
i,y
i))]找出运动系数。被表示为c=(c
1,c
2,...c
N+M)的运动系数,代表压缩的运动矢量区
它通过使用以下形式的线性运动模型按需要来精确地近似[(Δx(x,y),Δy(x,y))]:
这样,平方预测误差最小化,SPE被给出为:
图5显示按照本发明的运动区编码器的实施例。它的输入包括参考帧和当前帧。加到这个功能块的第三输入是由运动估值区功能块产生的运动矢量区[(Δx(x,y),Δy(x,y))]。
为了完成这个任务,运动区编码器包含四个主要的构建功能块,它们是运动分析器功能块1、分段合并功能块2、正交化功能块3、运动系数去除功能块4。分段合并功能块2、正交化功能块3和运动系数去除功能块4减小运动信息量,这会导致不太精确的预测,因此使平方预测误差增加。
运动分析器1的目标是找出运动区的代表,它适合于有效地判断分段合并、正交化和系数去除对预测误差的影响。这个代表后来在随后的三个功能块(分段合并功能块2、正交化功能块3和运动系数去除功能块4)中被使用于快速灵活地确定对于合并的段的运动系数,和用于去除系数。图6显示按照本发明的运动分析器的一个实施例。
在PCT出版物WO97/16025和WO97/40628中详细地描述了正交化功能块3和系数去除块4,这样的说明在此引用,以供参考。
转到运动分析器,对于每个段Sk,运动分析器执行以下操作:
步骤1.误差近似当对于包含P个具有坐标(xi,yi),i=1,2,...P,的象素的一个段Sk的运动矢量区被近似为下式时,
结果的预测误差等于
在近似期间,等式12中的Rref(·)通过使用某些已知的近似方法被近似,以使得它成为线性地依赖于[(x(xp,yp),y(xp,yp))]。然后,等式12中的平方预测误差SPEk可被如下近似为:
数值ei,1,...ei,N+M和qi取决于所使用的近似方法。
步骤2.矩阵的构建由于在等式(13)中求平方的单元是系数cn的线性组合,所以等式(13)的最小化完全等效于以下的矩阵表示式的最小化
(Ekck-qk)T(Ekck-qk), (14)其中Ek,qk和ck由下式给出:
步骤3.输出计算运动分析器1的输出如下:
(1)矩阵Ak
(2)矢量dk
在分段合并功能块2中实行的合并操作确定,两个段Si和Sj是否能被组合成新的段Sk,以使得具有共同的运动系数矢量ck的运动补偿不会导致过分增加Sk中选择的误差测量值。
对于特定的段Si和Sj的分段对,合并操作包含以下步骤:
步骤1.共同的运动系数的估计本发明的优选实施例利用先前未知的性质,即ck可通过求解线性方程的系统而被找到:
Akck=dk (18)
其中
Ak=Ai+Aj,dk=di+dj. (19)Ai,di和Aj,dj是由运动分析器功能块1分别对于段Si和Sj产生的。
步骤2.分段合并通过使用运动系数矢量ck,判定段Si和Sj是否可被合并。如果它们可被合并,则新产生的段Sk的合并的矩阵Ak和矢量dk按照公式(19)被计算,即
Ak=Ai+Aj,dk=di+dj. (20)步骤1-2被应用到所有相邻的段的分段对。
对于在分段合并以后得到的新的分段的每个段Sk,计算以下的数值:
(1)(N+M)×(N+M)上三角矩阵R1 k,即具有以下形式的矩阵:
其中符号x表示非零元素,该矩阵是通过计算矩阵Ak的Cholesky因式分解得到的:
(2)通过求解以下的方程组得出矢量z1 k
矩阵R1 k和矢量z1 k,连同分段信息一起,是加到例如正交化功能块3的输入参量。
在优选实施例中,使用以下的多项式基函数fnf1(x,y)=f4(x,y)=1,f2(x,y)=f5(x,y)=y,f3(x,y)=f6(x,y)=x.(23)通过利用Rref(·)的一阶Taylor(台劳)展开式,完成线性化步骤,
xi′=xi+Δx(xi,yi)
yi′=yi+Δy(xi,yi)
(24)对于x和y:
Rref(xi+x(xi,yi),yi+y(xi,yi))≈Rref(xi′,yi′)+(x(xi,yi)-Δx(xi,yi))Gx(xi′,yi′)+(y(xi,yi)-Δy(xi,yi))Gy(xi′,yi′).(25)Gx(x’i,y’i)和Gy(x’i,y’i)是参考帧Rref(·)对于x和y的导数值。使用这样的近似,公式(15)中矩阵Ek和矢量qk的元素是:
qi=In(xi,yi)-Rref(xi′,yi′)-Gx(xi′,yi′)Δx(xi,yi)-Gy(xi′,yi′)Δy(xi,yi).(27)共同的运动系数估计被实现如下。通过以下步骤求解方程18:
(1)计算(N+M)×(N+M)矩阵Ak的Cholesky因式分解
其中R1 k是(N+M)×(N+M)上三角矩阵。
(2)求解2个方程组,首先
以便得到z1 k,然后
以便得到实际的运动系数矢量。由于使用三角矩阵,二者都可通过回代而被解出。
分段合并如下地被执行:
分段Sk的拉格朗日花费(Lagrangian cost)被定义为:
L(Sk)=D(Sk)+λR(Sk).(31)失真D(Sk)是在原先的和编码的段之间的平方误差。通过使用运动系数矢量ck预测段和随后压缩预测误差,而对该段进行编码。使用二维(2-D)离散余弦变换(DCT)来压缩预测误差。速率R(Sk)等于用在编码运动系数和DCT系数上的比特数。参量λ具有某些预定的数值,它给出在编码帧的质量与对于它的压缩所需要的比特数之间的折衷参量。
为了决定段Si和Sj是否应当被合并,在这些段被合并成一个段Sk时拉格朗日花费的减小ΔLij被作为一个准则使用
ΔLij=(L(Si)+L(Sj))-L(Sk).(32)对于得出段Sk的预测所必需的运动系数通过使用等式18进行计算。
分段合并程序过程从初始分段开始,以及进行如下:
(1)具有小于门限值(可能是负值)的ΔLij的那些相邻的段Si和Sj的分段对被定义为“非相邻”。(由于在以下步骤4中执行的更新数的很大减小,这个步骤对于减小总的计算花费特别重要)。
(2)在所有的分段对中间找出具有拉格朗日花费的最大减小的相邻的段的分段对。
(3)如果这个减小大于0合并,则这些段被合并。
(4)假定新的合并段的下标是k,对于新产生段Sk的所有的相邻的段Sl(l=1,...,L)的拉格朗日花费的减小,被重新计算如下:
(a)如果段Sk和Sl被合并而形成新的段Sm,则对于l=1,...,L,在段的组合区域中平方预测误差Δekl的增加,被计算为:
(b)计算拉格朗日花费的减小,该计算从其平方预测误差的增加是最小的段进行到其平方预测误差的增加是最大的段。如果遇到一个段Sl,使得ΔLkl是正的以及Δekl大于一个门限值(可能是自适应的),则计算停止。对于其余段,拉格朗日花费的减小被设置为某个负值。
(5)重复进行步骤1-3,直至对于所有可能的分段对,拉格朗日花费的减小是负值为止。
如果由于段SI和Sj合并成一个段Sk而引起的预测误差的增加小于某个预定的门限值,则矩阵Ak和矢量dk使用等式19被重新计算,以及共同的运动系数矢量ck使用等式18被计算。否则,
(1)通过使用运动估值找出段Sk的运动系数矢量ck,
(2)矩阵Ak和矢量dk使用等式16-17被重新计算。
在估计象素值中,Rref(x,y)的数值只对于整数的坐标x和y被规定。当运动补偿预测需要估计在参考帧Rref中的非整数位置(x,y)处的亮度和色度值时,使用三次卷积内插。在x和y方向上的图象导数,(Gx(x,y)和Gy(x,y))也通过使用三次卷积被计算。通过三次卷积内插得出的连续函数的导数被计算,以及把它们解释为图象导数。
本发明可以在不背离它的本质的属性的情况下,以其它特定的形式被实施。因此当表示本发明的范围时,应当参考附属权利要求和这里的其它一般性说明,而不是以上的具体说明。
系统可以以各种方式被实施。以下部分可以作出变动:
(1)在等式11中可以使用不同的多项式基函数,
(2)在等式12中可以使用不同的方法进行线性化,
(3)不同的准则可被使用来判定是否合并或不合并两个段,
(4)不同的方法可被使用来求解方程组18。
而且,在本说明书(其包括权利要求)中揭示的和/或在附图上显示的每个特性在本发明中可以独立于其它揭示的和/或显示的特性而被引用。在这方面,本发明包括这里揭示的任何新颖的特性或特性的组合,或者是明显地或者是任何通用化地,不管它是否涉及要求权利的发明,或缓和了所针对的任何或所有的问题。
这里一起提交的附属的摘要被包括在说明书中,以供参考。