发明内容
本发明的目的是克服先有技术的至少一个缺点。
本发明涉及预测属于图像序列的当前图像的当前块以便编码或重构当前块的方法。所述序列的每个图像包含每一个与至少一个图像数据相联系的像素。所述方法包含如下步骤:
a)从先前与当前块相联系的至少一个运动数据中为当前块确定参考块;
b)核实是否满足预定条件,所述条件代表参考块的图像数据与先前从与参考块相联系的至少一个运动数据中确定的参考块的预测块的图像数据之间的时间变化;
c)按照核实的结果修改当前块的至少一个运动数据;以及
d)从当前块的至少一个运动数据中为当前块生成预测块。
在直接,即从与当前块相联系的运动数据中而不是级联几次预测为当前块确定预测块中,在时间上更好地预测了当前块的图像数据。因此,重构数据具有更好质量。另外,通过不编码参考图像索引类型的任何附加运动信息地应用本发明的方法,本发明当被编码设备使用时,对于相同重构图像质量,能够以较低位速率生成编码图像数据流。在仍然编码参考图像索引的特殊情况下,按照本发明的方法就编码效率而言仍然比“多参考图像”型手段更加有效。
按照本发明的一个特定特征,如果满足预定条件,则根据与参考块最一般地相联系的至少一个运动数据修改当前块的至少一个运动数据,否则,不修改当前块的至少一个运动数据。
按照本发明的另一个方面,在步骤c)之后,用从与参考块最一般地相联系的至少一个运动数据中确定的参考块取代所述参考块,并且只要满足预定条件,就重复步骤b和c。
按照一个特定特征,当前块和第一参考块的至少一个运动数据的每一个包含运动向量。
按照一种变体,当前块和第一参考块的至少一个运动数据的每一个还包含参考图像索引。
按照第一实施例,如果大多数参考块像素是时间预测像素和如果在参考块图像数据与参考块的预测块图像数据之间计算的预测误差小于预定阈值,则满足所述条件。
按照第二实施例,另外如果所述时间预测参考块的所有像素的预定比例含有单个和相同相关运动数据,则满足所述条件。
按照第三实施例,如果如下不等式也得到核实,则满足所述条件:
D(mv1/d1;mv2/d2)<α,
其中:
-d1是当前图像与参考块所属的序列的图像之间的距离;
-d2是当前图像与和参考块最一般地相联系的运动向量所指的序列的图像之间的距离;
-mv1是当前块的运动向量;
-mv2是与参考块最一般地相联系的运动向量;以及
-D是距离函数。
按照本发明的另一个方面,在核实步骤之前,所述方法包含确定包含参考块的中间参考块的步骤。在核实和修改步骤中,用中间参考块取代参考块。
本发明还涉及编码图像序列的设备,所述序列的每个图像被划分成每一个与至少一个图像数据相联系的像素块,所述设备包含:
-能够为所述序列的当前块确定至少一个运动数据的运动估计模块;
-能够从至少一个运动数据中为当前块确定预测块的运动补偿模块;以及
-能够编码当前块与预测块之间的差值的编码模块。
有利的是,所述编码设备包含自适应模块,能够核实是否满足预定条件,所述条件代表从与当前块相联系的至少一个运动数据中识别的参考块的图像数据与所述运动估计模块先前从与参考块相联系的至少一个运动数据中确定的参考块的预测块的图像数据之间的时间变化,并且能够根据这种核实的结果,修改当前块的至少一个运动数据。
本发明还涉及解码代表图像序列的编码数据流的设备,每个图像被划分成每一个与至少一个图像数据相联系的像素块,所述设备包含:
-流解码模块,能够对当前块重构残差数据;
-运动数据重构模块,能够为当前块重构至少一个运动数据;
-运动补偿模块,能够从至少一个运动数据中为当前块确定预测块;以及
-重构模块,能够从预测块和残差数据中重构当前块。
有利的是,所述解码设备还包含自适应模块,能够核实是否满足预定条件,所述条件代表从与当前块相联系的至少一个运动数据中识别的参考块的图像数据与所述运动数据重构模块先前从与参考块相联系的至少一个运动数据中确定的参考块的预测块的图像数据之间的时间变化,并且能够根据这种核实的结果,修改当前块的至少一个运动数据。
具体实施方式
图像序列是一系列的几个图像。每个图像包含每一个与至少一个图像数据相联系的像素或图像点。图像数据例如是亮度数据或色度数据。将术语“编码模式”理解成按视频编码标准授权的一组编码模式。一般说来,可以将它们分类成:INTRA模式,即,不实现时间预测,但可能实现与它们相联系的块的空间预测的模式;和INTER模式,即,实现与它们相联系的块的时间预测的模式。更一般地说,按照INTER模式编码的块叫做INTER块,或按照INTRA模式编码的块叫做INTRA块。
像素块可以具有包括只由一个像素组成的任何大小。
术语“运动数据”应该从最广泛的意义上来理解。它们包含运动向量和可能包含使参考图像能够在图像序列中得以标识的参考图像索引。它们还可以包括照度局部变化参数。
术语“残差数据”表示与其它数据相减之后获得的数据。这个术语与术语“残差”同义。残差块是与残差数据相联系的像素块。
术语“预测数据”表示用于预测其它数据的数据。预测块是与预测数据相联系的像素块。
残差值例如是通过在预测块与当前图像数据块之间逐个像素差分获得的。
图2代表预测属于几个图像的序列的当前图像Ic的当前块Bc以便编码或解码当前块Bc的方法。
在步骤E10中,从先前与当前块Bc相联系的至少一个运动数据DMVc中为当前块确定显示在图3中的参考块Bref。运动数据DMVc包含至少一个运动向量MVc。按照第一实施例,在步骤E10中从与当前块Bc相联系和坐标被四舍五入成整数值的运动向量MVc中确定参考块Bref。运动向量MVc例如是通过像块匹配那样在先有技术中已知的方法获得的。按照这个实施例,运动向量MVc是这样确定的,即,使在当前块Bc与参考图像Iref(例如,时间上在当前图像之前的图像)的参考块Bref(即,使用所述运动向量MVc识别的块)之间逐个像素计算的预测误差最小:
按照一种变体,在步骤E10中从两个运动数据,即运动向量MVc和参考图像索引IDc中确定参考块Bref。运动向量和参考图像索引是这样确定的,即,使在当前块Bc与使用所述运动向量DMV识别的几个参考图像的集合IREF的一个参考图像的一个块Bref之间逐个像素计算的预测误差最小:
但是,本发明决不会受下述确定运动数据的方法限制。因此,可以使用确定运动向量的像素递归式(pel-recursive type)方法,也可以使用像描述在2006年1月12日以第US2006/0008005号公布的专利中的那种那样的分层运动估计方法。
按照另一种变体,在步骤E10中从运动向量中和可能从先前在解码代表当前块Bc的编码数据流的一部分期间与当前块Bc相联系的参考图像索引中确定参考块Bref。
在步骤E12中,核实预定条件是否已经得到满足。这个条件代表参考块Bref的图像数据与先前从与参考块Bref相联系的至少一个运动数据中确定的参考块Bref的预测块Pred(Bref)的图像数据之间的时间变化。通过块匹配或通过任何其它运动估计方法,或通过解码代表参考块Bref的编码数据流的一部分,按照先前针对当前块Bc所述的方法之一使运动数据与参考块Bref相联系。
如果满足条件,则该方法继续前进到步骤E14,如果不满足,则该方法继续前进到步骤E16。在这后一种情况下,不修改当前块Bc的运动数据DMVc。
按照一个特定实施例,如果以INTER模式编码参考块的大多数像素,和如果在INTER模式下与这些像素相联系的残差数据可忽略不计,即,它们是零,它们的绝对值之和小于预定阈值或最大幅度值小于预定值,则满足条件。残差数据是在参考块Bref与它的一个或数个预测块Pred(Bref)之间计算的。
按照第一种变体,如果以INTER模式编码参考块Bref的大多数像素,和另外如果以INTER模式编码的所有像素具有相同相关运动向量MV′1和可能具有相同参考图像索引ID′1,则满足条件。
按照第二种变体,如果以INTER模式编码参考块Bref的大多数像素,和另外如果在INTER模式下所有像素的预定比例(例如,至少50%像素)具有相同相关运动数据,即具有相同相关运动向量MV′1和可能具有相同参考图像索引ID′1,则满足条件。
按照第三种变体,如果以INTER模式编码参考块Bref的大多数像素,如果在INTER模式下与这些像素相联系的残差数据可忽略不计,即,它们是零,它们的绝对值之和小于预定阈值或最大幅度值小于预定值,和另外如果在INTER模式下所有像素的预定比例(例如,至少50%像素)具有相同相关运动数据,即具有相同相关运动向量MV′1和可能具有相同参考图像索引ID′1,则满足条件。
按照第四种变体,如果以INTER模式编码参考块Bref的大多数像素,和另外如果与以INTER模式编码的参考块的像素最一般地相联系的运动向量MV′1和运动向量MVc是相干的,即是这样的:D(MVc1/d1;MV′1/d2)<α,
其中:
-d1是当前图像与参考块Bref所属的序列的图像之间的时间距离;
-d2是当前图像与和参考块Bref的像素最一般地相联系的运动向量MV′1所指的序列的图像之间的时间距离;以及
-D是距离函数,
则满足条件。
例如,D(a,b)是差值(a-b)的L2-norm(L2范数)或向量分量之间的最大差值的幅度。
按照第五种变体,如果以INTER模式编码参考块Bref的大多数像素,如果在INTER模式下与这些像素相联系的残差数据可忽略不计,即,它们是零,它们的绝对值之和小于预定阈值或最大幅度值小于预定值,和另外如果与以INTER模式编码的参考块的像素最一般地相联系的运动向量MV′1和运动向量MVc是相干的,即是这样的:D(MVc1/d1;MV′1/d2)<α,
其中:
-d1是当前图像与参考块Bref所属的序列的图像之间的时间距离;
-d2是当前图像与和参考块Bref的像素最一般地相联系的运动向量MV′1所指的序列的图像之间的时间距离;以及
-D是距离函数,
则满足条件。
例如,D(a,b)是差值(a-b)的L2-norm(L2范数)或向量分量之间的最大差值的幅度。
按照第六种变体,如果以INTER模式编码参考块Bref的大多数像素,如果在INTER模式下与这些像素相联系的残差数据可忽略不计,即,它们是零,它们的绝对值之和小于预定阈值或最大幅度值小于预定值,另外如果在INTER模式下所有像素的预定比例(例如,至少50%像素)具有相同相关运动数据,例如,具有相同相关运动向量和可能具有相同参考图像索引,和另外如果参考图像索引IDc标识属于该集合IREF的图像,则满足条件。
可以组合这些不同变体形成新的变体。
在步骤E14中,根据与参考块Bref最一般地相联系的运动数据修改当前块Bc的运动数据DMVc。在如图4所示标为DMV1和DMV′1的几个运动数据与参考块Bref相联系的情况下,那么,根据与参考块Bref最一般地相联系的运动数据修改DMVc。
在这种情况下:
MVc=MVc+MV′1和
IDc=ID′1。
显示在图3中的特殊情况在参考块Bref覆盖与不同运动数据相联系和可能与不同参考图像相联系的像素块的像素情况下是可能的。在图3中,运动数据DMV′1(MV′1,ID′1)与位于参考块Bref顶部的像素相联系,而运动数据DMV1(MV1,ID1)与位于参考块Bref底部的像素相联系。此外,参考块Bref的大多数像素含有运动数据DMV′1,这是为什么根据与参考块Bref,即DMV′1(MV′1,ID′1)最一般地相联系的运动数据修改DMVc的原因。
在步骤E16中,从可能在步骤E14中被修改的DMVc中为当前块Bc确定预测块。
这种手段使Bc能够在只编码初始运动数据DMVc的时候,即,没有编码与图像Iref2相联系的参考图像索引ID′1地直接从Iref2的图像数据中得到预测。参考图1,这个实施例有利地使b3块能够通过只编码运动向量MV2,尤其不用编码能够标识图像I1的参考图像索引地从I1的图像数据中直接得到预测,因此得到编码。
图5代表按照本发明的一个特别有利实施例,预测属于几个图像的序列的当前图像Ic的当前块Bc以便编码或解码当前块Bc的方法。在这个图形中,与参考图2所述的实施例的那些相同的步骤用相同标号标识,并且不再作进一步描述。
在步骤E10中,从先前与当前块Bc相联系的至少一个运动数据DMVc中为当前块确定第一参考块Bref1。DMVc包含将坐标四舍五入成整数值以便确定第一参考块Bref1的至少一个运动向量MVc。
在步骤E12中,核实预定条件是否已经得到满足。这个条件代表第一参考块Bref1的图像数据与先前从与第一参考块Bref1相联系的至少一个运动数据中确定的第一参考块Bref1的预测块Pred(Bref1)的图像数据之间的时间变化。如果满足条件,则该方法继续前进到步骤E14,如果不满足,则在步骤E16中继续执行该方法。在这后一种情况下,不修改当前块Bc的运动数据DMVc。
在步骤E14中,根据与所述第一参考块Bref1最一般地相联系的运动数据DMV1修改当前块Bc的运动数据DMVc。
在步骤E15中,用第二参考块Bref2(即,在参考图像中从与第一参考块Bref1最一般地相联系的运动数据中识别的块)取代第一参考块Bref1,并且重复步骤E12到E15,直到不再满足预定条件。
在步骤E16中,从可能在步骤E14中被修改的运动数据DMVc中为当前块Bc确定预测块。
参考图1,这个实施例有利地使b3块能够通过只编码运动向量MV2,尤其不用编码能够标识图像I0的参考图像索引地从I0的图像数据中直接得到预测,因此得到编码。
图6示出了按照本发明的另一个特别有利实施例,为属于几个图像的序列的当前图像Ic的当前块Bc确定运动数据DMVc的方法。在这个图形中,与参考图1所述的实施例的那些相同的步骤用相同标号标识,并且不再作进一步描述。
在步骤E10中,从先前与当前块Bc相联系的至少一个运动数据DMVc中为当前块确定参考块Bref。
在步骤E11中,确定包含在步骤E10中确定的参考块Bref的中间参考块BrefI。这个步骤使预测方法能够得到改善,尤其使可能用于步骤E16中的时间预测的内插滤波器的大小能够被考虑进来。按照一个特定实施例,(Sx,Sy)是在步骤E10中确定的参考块Bref的线度(dimentsion),(dx,dy)是与当前块Bc相联系的运动向量MVc的坐标整数部分,(px,py)是运动向量MVc的坐标小数部分。因此,MVc的坐标等于dx+px和dy+py。然后,将中间块BrefI的线度设置在(Sx+wx,Sy+wy)上,其中(wx,wy)分别代表与小数部分(px,py)相联系的水平和垂直内插滤波支持的大小。按照一种变体,在每次迭代时可以使数据(Sx,Sy)增加正值ux和uy。这种解决方案使通过累积预测方法生成的不确定性能够被考虑进来:Sx=Sx+ux和Sy=Sy+uy。
在步骤E12中,核实预定条件是否已经得到满足。这个条件代表参考块BrefI的图像数据与先前从与参考块BrefI相联系的至少一个运动数据中确定的参考块BrefI的预测块Pred(BrefI)的图像数据之间的时间变化。如果满足条件,则该方法继续前进到步骤E14,如果不满足,则在步骤E16中继续执行该方法。在这后一种情况下,不修改当前块Bc的运动数据DMVc。
在步骤E14中,根据与参考块BrefI最一般地相联系的运动数据DMV1修改当前块Bc的运动数据DMVc。
在步骤E16中,从可能在步骤E14中被修改的DMVc中为当前块Bc确定预测块。
因此,在图7中,块BrefI包含块Bref。
图8示出了按照本发明的另一个特别有利实施例,为属于几个图像的序列的当前图像Ic的当前块Bc确定运动数据DMVc的方法。在这个图形中,与参考图6所述的实施例的那些相同的步骤用相同标号标识,并且不再作进一步描述。
在步骤E10中,从先前与当前块Bc相联系的至少一个运动数据DMVc中为当前块确定显示在图3中的参考块Bref。
在步骤E11中,确定包含在步骤E10中确定的参考块Bref的中间参考块BrefI。这个步骤使预测方法能够得到改善,尤其使可能用于步骤E16中的时间预测的内插滤波器的大小能够被考虑进来。按照一个特定实施例,(Sx,Sy)是在步骤E10中确定的参考块Bref的线度,(dx,dy)是与当前块Bc相联系的运动向量MVc的整数部分坐标,(px,py)是运动向量MVc的小数部分坐标。因此,MVc的坐标等于dx+px和dy+py。然后,将中间块BrefI的线度设置在(Sx+wx,Sy+wy)上,其中(wx,wy)分别代表与小数部分(px,py)相联系的水平和垂直内插滤波支持的大小。按照一种变体,在每次迭代时可以使数据(Sx,Sy)增加正值ux和uy。这种解决方案使通过累积预测方法生成的不确定性能够被考虑进来:Sx=Sx+ux和Sy=Sy+uy。
在步骤E12中,核实预定条件是否已经得到满足。这个条件代表参考块BrefI的图像数据与先前从与参考块BrefI相联系的至少一个运动数据中确定的参考块BrefI的预测块Pred(BrefI)的图像数据之间的时间变化。如果满足条件,则该方法继续前进到步骤E14,如果不满足,则该方法继续前进到步骤E16。在这后一种情况下,不修改当前块Bc的运动数据DMVc。
在步骤E14中,根据与所述第一参考块Bref1最一般地相联系的运动数据DMV1修改当前块Bc的运动数据DMVc。
在步骤E15中,用第二参考块Bref2(即,在参考图像中根据与第一参考块Bref1最一般地相联系的运动数据中识别的块)取代第一参考块Bref1,并且重复步骤E12到E15,直到不再满足预定条件。
在步骤E16中,从可能在步骤E14中被修改的运动数据DMVc中为当前块Bc确定预测块。
本发明还涉及参考图9描述的编码设备12。编码设备12在输入端上接收属于图像序列的图像I。将每个图像划分成每一个与至少一个图像数据相联系的像素块。编码设备12尤其实现利用时间预测的编码。在图9中只示出了编码设备12与通过时间预测或INTER编码的编码有关的模块。未示出和视频编码器的普通技术人员已知的其它模块实现利用或不用空间预测的INTRA编码。编码设备12尤其包含能够逐个像素地从当前块Bc中减去预测块Pred(Bc),生成表示成res的残差图像数据块或残差块的计算模块1200。它还包含能够变换然后量化残差块res变成量化数据的模块1202。变换T例如是离散余弦变换(DCT)。编码模块12进一步包含能够将量化数据编码成编码数据流F的熵编码模块1204。它还包含进行模块1202的逆操作的模块1206。模块1206进行逆量化IQ,接着进行逆变换IT。模块1206与计算模块1208连接,计算模块1208能够逐个像素地相加来自模块1206的数据块和预测块Pred(Bc),生成存储在存储器1210中的重构图像数据的一个块。编码设备12还包含能够估计块Bc与存储在存储器1210中的参考图像之间的至少一个运动向量的运动估计模块1212,这个图像是先前已经编码然后重构的。按照一种变体,可以在当前块Bc与原始参考图像之间进行运动估计,在这种情况下,存储器1210未与运动估计模块1212连接。按照本领域的普通技术人员众所周知的方法,运动估计模块1212以这样的方式在参考图像中搜索运动向量,即,使在当前块Bc与参考图像中通过所述运动向量识别的参考块Bref之间计算的误差最小。
运动数据由运动估计模块1212发送到能够核实预定条件是否已经得到满足的自适应模块1213,所述条件代表参考块Bref的图像数据与先前从与参考块相联系的至少一个运动数据中确定的参考块Bref的预测块Pred(Bref)的图像数据之间的时间变化。自适应模块1213还能够按照这种核实,修改要编码的当前块Bc的运动数据。自适应模块1213尤其能够实现按照参考图2到7所述的实施例之一的预测方法的步骤E10到E16。
编码设备12还包含能够在编码模式预定集合中为块Bc选择编码模式的判定模块1214。保留下来的编码模式例如是使率失真型准则最小的那个。但是,本发明不局限于这种选择方法,保留下来的模式可以按照另一种准则(例如,先验型准则)来选择。将判定模块1214选择的编码模型以及运动数据(例如,在时间预测模式或INTER模式下的一个或数个运动向量)发送到运动补偿模块1216。还要将一个或数个运动向量和所选编码模式发送到要熵编码模块1404以便编码在流F中。然后,运动补偿模块1216在先前重构和存储在存储器1210中的参考图像Ir中,根据自适应模块1213可能修改过的运动数据DMVc和熵解码模块1300为当前块Bc解码的编码块确定预测块Pred(Bc)。形成一组模块的模块1200、1202、1204、1206、1210和1214叫做编码模块。
本发明还涉及参考图10描述的解码设备13。解码设备13在输入端上接收代表图像序列的编码数据流F。流F例如是编码设备12发送的。解码设备13包含能够生成解码数据(例如,编码模式)和与图像的内容有关的解码数据的熵解码模块1300。
解码设备1300还包含运动数据重构模块。按照第一实施例,运动数据重构模块是解码代表所述运动向量的流F的一部分的熵解码模块1300。
按照未显示在图10中的一种变体,运动数据重构模块是运动估计模块。这种经由解码设备13重构运动数据的模块称为“模板匹配”。
然后,将与图像的内容有关的解码数据发送到能够进行逆量化,接着进行逆变换的模块1302。模块1302与生成编码流F的编码模块12的模块1202相同。模块1302与计算模块1304连接,计算模块1304能够逐个像素地相加来自模块1302的块和预测块Pre(Bc),生成存储在存储器1306中的重构图像数据的一个块。解码设备13还包含能够核实预定条件是否已经得到满足的自适应模块1213,所述条件代表参考块Bref的图像数据与先前从与参考块相联系的至少一个运动数据中确定的参考块Bref的预测块Pred(Bref)的图像数据之间的时间变化。自适应模块1213还能够按照这种核实,修改要重构的当前块Bc的运动数据。自适应模块1213尤其能够实现按照参考图2到7所述的实施例之一的预测方法的步骤E10到E16。
解码设备13还包含与编码设备12的模块1216相同的运动补偿模块1308。然后,运动补偿模块1308在先前重构和存储在存储器1306中的参考图像中,根据自适应模块1213可能修改过的运动数据DMVc和熵解码模块1300为当前块Bc解码的编码模式确定预测块Pred(Bc)。
形成一组模块的模块1302、1304和1306叫做重构模块。