发明内容
本发明的目的在于克服现有技术的缺点的至少一个。为此目的,本发明涉及一种编码像素块的方法,包括以下步骤:
从运动矢量确定像素块的预测块;
计算像素块和预测块之间的残差;以及
编码所述残差。
有利地,确定预测块包括以下步骤:
确定大小严格大于像素块的大小的中间预测块;
将中间预测块变换成以第一变换来变换的第一块;以及
将第一变换块变换成以第一变换的第二逆变换来变换的第二块,所述第二逆变换的基函数被移位运动矢量的每个分量的至少一部分,所述预测块是从第二变换块中提取的。
根据第一实施例,所述中间预测块是通过将运动方向上的至少一行像素和至少一列像素添加到通过像素块的运动补偿从中间运动矢量获得的块而确定的,所述中间运动矢量的分量是所述运动矢量的分量的整数部分,并且所述第二变换的基函数被移位所述运动矢量的分量的小数部分。
根据第一实施例,中间预测块是通过以下确定的,将至少一行像素和至少一列像素在运动的方向上添加到共同位于要编码的像素块的块中,使得中间预测块的大小严格大于与运动矢量的分量的整数部分对应的位移、并且将第二变换的基函数移位以运动矢量整个分量。
根据本发明的特定特征,中间预测块的大小是2的幂。
根据本发明的另一特定特征,第一变换是2D离散余弦变换。
本发明还涉及包括以下步骤的像素块:
从运动矢量确定像素块的预测块;
解码像素块的残差;以及
从预测块和残差重构像素块。
有利地,预测块的确定包括以下步骤:
确定大小严格大于像素块的大小的中间预测块;
将中间预测块变换成以第一变换来变换的第一块;以及
将第一变换块变换成以第一变换的第二逆变换来变换的第二块,所述第二逆变换的基函数被移位运动矢量的每个分量的至少一部分,所述预测块是从第二变换块中提取的。
本发明还涉及一种编码像素块的设备,包括以下部件:
从运动矢量确定所述像素块的预测块的部件;
计算所述像素块和所述预测块之间的残差的部件;
编码所述残差的部件,
有利地,所述预测块的确定部件包括以下部件:
确定大小严格大于所述像素块的大小的中间预测块的部件;
将所述中间预测块变换成以第一变换来变换的第一块的部件;
将第一变换块变换成以所述第一变换的第二逆变换来变换的第二块的部件,所述第二逆变换的基函数被移位所述运动矢量的每个分量的至少一部分;以及
从第二变换块中提取所述预测块的部件。
本发明还涉及一种解码流以便重构像素块的设备,包括以下部件:
用于从运动矢量确定像素块的预测块的部件;
用于从所述流解码像素块的残差的部件;
用于从预测块和残差重构像素块的部件。
有利地,所述预测块的确定部件包括以下部件:
确定大小严格大于所述像素块的大小的中间预测块的部件;
将所述中间预测块变换成以第一变换来变换的第一块的部件;
将第一变换块变换成以所述第一变换的第二逆变换来变换的第二块的部件,所述第二逆变换的基函数被移位所述运动矢量的每个分量的至少一部分;以及
从第二变换块中提取所述预测块的部件。
具体实施方式
图1示出了一种根据本发明的编码图像Ic的像素块Bc的方法,Bc是大小M×M的块,其中M是整数。像素块Bc属于图像序列的图像Ic。在步骤10期间,从分量(Vx,Vy)的运动矢量Vp为要编码像素块Bc确定预测块Bp,其中Vx=dx+dxrs并且Vy=dy+dyrs,其中(dx,dy)是分量的整数部分并且(dxrs,dyrs)是分量的小数部分。例如,如果Vx=2.28,则dx=2并且dxrs=0.28,并且如果Vx=-3.73,则dx=-3并且dxrs=-0.73。与块Bc相关联的该运动矢量Vp来自例如通过相位相关或甚至全局运动估计的运动估计。Vp指示当前图像Ic和参考图像Ir之间的块Bc的位移。本发明决不局限于用于获取运动矢量Vp的方法。根据图2中表示的第一实施例,用于确定10预测块Bp的步骤(也已知为运动补偿步骤)包括:步骤110,用于从中间运动矢量确定参考图像Ir中的中间预测块b’,所述中间运动矢量的分量是如图2所图示的运动矢量Vp的分量的整数部分(dx,dy)。中间预测块b’包括从分量(dx,dy)的中间运动矢量通过块Bc的运动补偿获得的块b。b’是N×N大小,其中N严格大于M。在第一变型中,N=M+1。更具体地,通过在如图2所图示的位移/运动方向上在块b的旁边对其添加至少1个像素行与1个像素列获得块b’。运动的方向由运动矢量Vp给出。因此,在图2中,在块b’中子像素向下并且向右发生位移。因此,块b’是关于块b在上方增加1像素行并且在左侧增加1像素列的块。
例如,如果要编码的块Bc并且因此相关联的预测块Bp是大小8×8的块,则中间预测块b’是通过在如图2所图示的运动方向上对块b添加1个像素行和1个像素列而获得的大小9×9的块。
根据第二实施例变型,通过在位移/运动方向上在块b的2条边对其添加所需数量的像素行和列使得N是2的幂而获得中间预测块b’。该变型使得能够使用快速变换算法。
然后在步骤120期间使用维度N的第一变换T将中间预测块b’变换成第一变换块B1。T是例如可分离DCT(“离散余弦变换”)变换,其基函数c(i,j)定义如下:
C=CN×M=(i,j)]N×N以及
以及
因此,B1=[B1(u,v)]N×N=C.b.'CT(2)
在步骤130期间,使用第一变换的第二逆变换将第一变换块B1变换成第二变换块B2,所述第二逆变换的基函数被移位运动矢量Vp的分量的小数部分(dxrs,dyrs)。第二变换是例如逆DCT变换,其基函数定义如下:
Cdx=[cdx(i,j)]N×N以及
Cdy=[cdy(i,j)]M×N以及
在参照图2描述的情况下,因此基函数被移位运动矢量的分量的小数部分(dxrs,dyrs)。
因此,B2=[B2(i,j)]N×N=Cdy.B1.Cdx (5)
在步骤140期间,通过从第二变换块B2中提取与块b对应的部分来获得预测块Bp。在图2的特定情况下,通过从B2中去除第一像素行和第一像素列来获得块Bp。
因此通过添加像素行和列使得从中间预测块b’的像素向块b的像素(即,在与运动相反的方向上)进行通过逆变换(3)和(4)的中间预测块b’内的图像信号的子像素位移来获得中间预测块b’。
在步骤12期间,计算像素块Bc和预测块Bp之间的残差或残差块。残差一般通过在要编码的像素块Bc和在步骤10确定的预测块Bp之间逐个像素地区分来计算。这个差可能通过考虑亮度(luminosity)变化模型而加权。
在步骤14期间,在编码数据流中编码残差。这一步一般地包括残差的变换、量化和熵编码。这些步骤对于视频编码器领域技术人员熟知并且不做进一步描述。这个步骤14可能包括对与要编码的像素块Bc相关联的运动矢量Vp进行编码。根据一种变型,运动矢量未被编码。例如,通过与模板匹配类型相同的方法在编码器和解码器侧确定与要编码的像素块Bc相关联的运动矢量Vp。
根据第二实施例,从图像Ir中与块Bc共同定位的块b、通过将其放大,即,通过在运动方向上添加一个或更多像素行和列,直到严格大于与矢量Vp的整数部分(dx,dy)对应的位移的N×N大小,即,如图3所图示的N>dx并且N>dy,来获得在步骤110确定的中间预测块b’。这个大小例如是2的幂,以便能够使用快速变换算法。
然后在步骤120期间使用第一变换T将中间预测块b’变换成第一变换块B1。T是例如可分离DCT(“离散余弦变换”)。因此,B1=[B1(u,v)]N×N=C.b'.CT。
在步骤130期间,使用第一变换的第二逆变换将第一变换块B1变换成第二变换块B2,所述第二逆变换的基函数被移位运动矢量的分量的整数和小数部分。
第二变换是例如逆DCT变换,其基函数定义如下:
Cdx=[cdx(i,j)]N×N以及
Cdy=[cdy,j)]M×N以及
因此在参照图3所描述的情况下,基函数被移位运动矢量Vp的分量。
因此,B2=[B2(i,j)]N×N=Cdy.B1.Cdx(9)。
在步骤140期间,通过从第二变换块B2中提取与共同定位的块b对应的部分来获得预测块Bp。图4中,块Bp是阴影的。
根据本发明的编码方法的一个优点在于,其使用比常规内插滤波器的支持更小的支持。因此,对于1/4像素内插,常规内插滤波器具有等于6个系数的长度。这种内插滤波器的使用在图像边缘出现问题并且需要使用填充技术(padding techniques)。根据本发明的方法使得其自身能够摆脱这个问题。实际上,在图像边缘上,优选使用具有N=M+1的第一实施例。
图5展现根据本发明的从编码数据的流F重构像素块Bc的方法。
在图5中使用相同的标号标志与编码方法相同的步骤,并且因此不做进一步描述。
在步骤10期间,从分量(Vx,Vy)的运动矢量Vp为要编码的像素块确定预测块,其中Vx=dx+dxrs并且Vy=dy+dyrs。这个矢量来自于例如对编码数据的流F的一部分进行解码。根据一种变型,通过模板匹配确定矢量Vp。步骤10具体包括步骤110、120、130和140来确定预测块Bp。这些步骤与参照图1描述的编码方法的那些步骤相同。为编码方法描述的实施例变型也适用于解码方法。
在步骤22期间,解码要从流F重构的块Bc的残差。这个步骤一般地包括熵解码流F的至少一部分,逆量化以及逆变换。这些步骤对于视频编码器领域技术人员是熟知的并且不做进一步描述。这些是在编码方法的步骤14进行的那些步骤的逆步骤。
在步骤24期间,从残差和预测块Bp重构块Bc。一般地通过将残差与在步骤10确定的预测块逐个像素地相加来重构块Bc。这个求和可能通过考虑到亮度变化模型而加权。
本发明还涉及参照图6描述的编码设备12和参照图7描述的解码设备13。在该图中,所示模块为可能或可能不对应于物理可区分单元的功能单元。例如,这些模块或它们中的一些可以在单个组件或电路中分组在一起,或构建相同软件的功能。相反,一些模块可以由单独的物理实体组成。
编码设备12在输入处接收属于图像的序列的图像I。每个画面被划分成像素的块,每个像素块与至少一个画面项目(例如,亮度和/或色度)数据相关联。编码设备12特别地以时间预测实施编码。图6中仅展现了与通过时间预测的编码和帧间(INTER)编码有关的编码设备12的模块。其它未展现的并且对于视频编码器领域技术人员已知的模块利用或不利用空间预测实施帧内(INTRA)编码。编码设备12特别地包括计算模块ADD1,其能够从当前块Bc中逐个像素地减去预测块Bp以便生成以res表示的残差或残差块。其还包括模块TQ,其能够变换然后量化残差块res成量化数据。变换T例如是DCT变换。编码设备12还包括熵编码模块COD,其能够将量化数据编码成编码数据的流F。其还包括进行模块TQ的逆操作的模块ITQ。模块ITQ进行逆量化,随后是逆变换。模块ITQ与计算模块ADD2连接,计算模块ADD2能够逐个像素地将来自模块ITQ的数据的块与预测块Bp相加,以便生成在存储器MEM中存储的重构图像数据的块。
编码设备12还包括运动估计模块ME,其能够估计块Bc和存储在MEM中的参考画面Ir之间的至少一个运动矢量Vp,这个图像先前已经被编码然后被重构。根据一种变型,运动估计可以在当前块Bc和与Ir对应的源图像之间进行,在这种情况下存储器MEM不连接到运动估计模块ME。根据对于本领域技术人员已知的方法,运动估计模块在参考图像Ir中、分别在对应的源图像中搜索运动矢量使得最小化在当前块Bc和参考图像Ir中的块之间计算的误差,分别在对应的源图像中,使用所述运动矢量标识。根据一种变型,通过相位相关或全局运动估计确定运动矢量。通过运动估计模块ME将运动数据发送到判断模块DECISION,该判断模块DECISION能够在预定的编码模式集合中选择用于块Bc的编码模式。所选择的编码模式例如是最小化比特率失真类型准则的那一个。然而,本发明不限于这个选择方法并且可以根据另一准则(例如,先验类型准则)来选择所选择的模式。通过判断模块DECISION所选择的编码模式以及运动数据(例如在时间预测模式或帧间模式的情况下的运动矢量或多个矢量)被发送到预测模块PRED。另外将运动矢量或多个矢量以及所选择的编码模式发送到熵编码模块COD用于编码到流F中。如果判断模块DECISION保留帧间(INTER)预测模块,则预测模块PRED在先前重构并在存储器MEM中存储的参考图像Ir中、从运动估计模块ME确定的运动矢量中确定预测块Bp。如果判断模块DECISION保留帧内(INTRA)预测模式,则预测模块PRED在当前图像中在先前编码的并且存储在存储器MEM中的块,确定预测块Bp。
预测模块PRED能够根据参照图1描述的编码方法的步骤110、120、130和140确定预测块Bp。
参照图7描述解码设备13。解码设备13在输入处接收表示图像的序列的编码数据的流F。例如通过编码设备12发送流F。解码设备13包括熵解码模块DEC,其能够生成解码数据,例如,与图像的内容有关的编码模式和解码数据。解码设备13还包括运动数据重构模块。根据第一实施例,运动数据重构模块是解码表示运动矢量的流F的一部分的熵解码模块DEC。
根据图7中未示出的变型,运动数据重构模块是运动估计模块。这种用于通过解码设备13重构运动数据的解决方案被已知为“模板匹配”。
然后将与画面的内容有关的解码数据发送到能够进行逆量化随后逆变换的模块ITQ。模块ITQ与已生成编码流F的编码设备12的模块ITQ相同。模块ITQ连接到计算模块ADD,计算模块ADD能够逐个像素地将来自模块ITQ的块与预测块Bp相加以便生成存储在存储器MEM中的重构图像数据的块。解码设备13还包括与编码设备12的预测模块PRED相同的预测模块PRED。如果帧间(INTER)预测模式被解码,则预测模块PRED在先前重构并存储在存储器MEM中的参考图像IR中、从通过熵解码模块DEC为当前块Bc解码的运动矢量Vp确定预测块Bp。如果帧内(INTRA)预测模式被解码,则预测模块PRED在当前图像中、在先前重构并且存储在存储器MEM中的块中,确定预测块Bp。
预测模块PRED能够根据参照图5描述的重构方法的步骤110、120、130和140确定预测块Bp。
根据本发明的编码和解码设备例如以各种形式的硬件、软件、固件、特殊用途处理器或其组合而实施。优选地,本原理可以被实施为硬件和软件的组合。此外,优选地将软件实施为有形地体现于程序存储设备的应用程序。应用程序可以被上传到、并通过包括任何适当构架的机器执行。优选地,该机器被实施于具有诸如一个或更多中央处理单元(CPU)、随机存取存储器(RAM)、以及输入/输出(I/O)接口的硬件的计算机平台上。计算机平台还包括操作系统和微指令码。在此描述的各种处理和功能可以是经由操作系统执行的微指令码的一部分或应用程序的一部分(或它们的组合)。此外,各种其它外围设备可以连接到计算机平台,诸如额外的数据存储设备和打印设备。
根据变型,根据本发明的编码和解码设备根据完全硬件实现而实施,例如,以专用组件(例如,以ASIC(特定用途集成电路)或FPGA(场可编程门阵列)或VLSI(超大规模集成电路))或集成于设备的若干电子组件的形式、或甚至硬件元件和软件元件的混合的形式。
显然,本发明不限于以上提及的实施例。
具体地,本领域技术人员可以对所陈述的实施例应用任何变化并且将它们组合以受益于它们的各种优点。具体地,利用DCT描述的本发明可以应用于其它可分离或不可分离的变换。
此外,本发明可以应用于任何形式的块,即,不是矩形。如上文所提及的,本发明可以应用于其他变换,诸如SADCT类型的形状自适应变换。SADCT尤其在以下文献中描述:
Kaup A.,Panis S.,On the Performance of the Shape Adaptive DCT inObject-based coding of motion compensated difference Images;1997Stasinski R.,Konrad J.,Reduced-complexity shape-adaptive dct forregion-based image coding,USA;1998
针对像素块描述的本发明可以应用于图像的若干块或者甚至应用于若干图像的序列的若干块。