发明内容
本发明的目的是克服现有技术的至少一个缺点。为了这个目的,本发明涉及解码代表划分成块的图像序列的编码数据流的方法,对于当前块,该方法包含如下步骤:
-根据与当前块有关的编码数据流的第一部分的解码重构残差块;
-确定预测块;以及
-通过合并残差块和由加权预测参数加权的预测块来重构当前块。
有利的是,加权预测参数按照如下步骤确定:
-计算预测块的平均值;
-重构当前块的DC系数;
-根据预测块的平均值和DC系数计算当前块的平均值;以及
-计算作为当前块的平均值与预测块的平均值的比值的加权预测参数。
按照第一实施例变型,在计算当前块的平均值的步骤期间,通过从编码数据流中解码的初始加权预测参数加权预测块的平均值。
按照第二实施例变型,在计算当前块的平均值的步骤期间,通过等于当前块的邻域的平均值和与所述当前块相关联的参考块的相应邻域的平均值之间的比值的初始加权预测参数来加权预测块的平均值。
本发明还涉及编码划分成块的图像序列的方法,对于当前块,该方法包含如下步骤:
-确定当前块的预测块;
-通过从当前块中提取由加权预测参数加权的预测块来确定残差块;以及
-编码残差块。
有利的是,加权预测参数按照如下步骤确定:
-计算预测块的平均值和当前块的平均值;
-计算当前块的平均值与预测块的平均值之间的预测误差;
-根据预测块的平均值和相继量化和去量化的预测误差计算当前块的校正平均值;以及
-计算作为重构当前块的平均值与预测块的平均值之间的比值的加权预测参数。
按照一种实施例变型,在计算所述预测误差的步骤期间,通过初始加权预测参数加权所述预测块的平均值,所述初始加权预测参数在所述编码数据流中编码。
按照本发明的一个特定特征,按照如下步骤为当前块所属的图像的一部分确定初始加权预测参数:
-确定称作第一平均值的图像部分的平均值;
-确定称作第二平均值的预测块所属的相应图像部分的平均值;以及
-计算作为第一平均值与第二平均值的比值的加权预测参数。
按照本发明的一个特定特征,图像部分是整个图像或图像切片。
按照另一种实施例变型,在计算预测误差的步骤期间,通过等于当前块的邻域的平均值和与所述当前块相关联的参考块的相应邻域的平均值之间的比值的初始加权预测参数加权预测块的平均值。
具体实施方式
本发明涉及解码代表图像序列的编码数据流F以便重构这个序列的方法,以及将图像序列编码成编码数据流F的形式的方法。图像序列是一系列的几个图像。每个图像包含每一个与至少一项图像数据相关联的像素或像点。一项图像数据是例如一项亮度数据项或一项色度数据。
表述“发光(brightness)变化”在英文术语中也称为“亮度变化”,“光度变化”或“照度变化”。
术语“运动数据”应该从最宽泛的意义上来理解。它包含运动矢量以及可能包含使参考图像能够从图像序列中识别的参考图像索引。它还可以包含指示必须应用于参考块以便导出预测块的内插类型的一项信息。
术语“残差数据(residual data)”表示提取其它数据之后获得的数据。该提取一般是源数据与预测数据的逐个像素相减。但是,该提取更一般,并且特别是包含加权相减。这个术语与“残余(residue)”术语同义。残差块是与残差数据相关联的像素块。
术语“变换残差数据”表示已经应用变换的残差数据。这样变换的一个示例是在J.Wiley & Sons在2003年9月出版的I.E.Richardson的标题“H.264and MPEG-4 video compression”的书的第3.4.2.2章中描述的DCT(离散余弦变换)。其它示例是在I.E.Richardson的书第3.4.2.3章中描述的小波变换和哈达玛(Hadamard)变换。这样的变换将图像数据(例如,残差亮度和/或色度数据)块“变换”成也称作“频率数据块”或“系数块”的“变换数据块”。系数块一般包含根据连续系数或DC系数的名称的低频系数和已知为AC系数的高频系数。
术语“预测数据”表示用于预测其它数据的数据。预测块是与预测数据相关联的像素块。预测块是从与预测(空间预测或图像内预测)的块所属的图像相同的图像的一个块或几个块中,或从与预测的块所属的图像不同的图像(时间预测或图像间预测)的一个块(单向预测)或几个块(双向预测)中获得的。
术语“重构数据”表示将残差数据与预测数据合并之后获得的数据。该合并一般是预测数据与残差数据的逐个像素的总和。但是,该合并更一般,并且特别是包含加权总和。重构块是与重构图像数据相关联的像素块。
图2示出解码代表图像序列的编码数据流F的方法。该方法是针对当前块Bc描述的,并且可以应用于几个图像块。
在步骤1期间,为当前块Bc确定预测块Bpred。例如,从解码与当前块Bc有关的编码数据流F的一部分获得的运动数据中确定预测块Bpred。按照一种变型,通过模板匹配型方法从重构运动数据中确定预测块Bpred。这样的方法在标题为“Decoder Side Motion Vector Derivation”并且在2007年10月20日在ITU-T的VCEG组的第33次会议期间在中国深圳发表的Steffen Kamp等人的文献VCEG-AG16中描述。
在步骤2期间,确定预测块Bpred的平均值avrpred。作为一个简单示例,平均值avrpred等于与预测块Bpred的像素相关联的亮度值的平均值。按照一种变型,平均值avrpred等于与预测块Bpred的像素相关联的亮度和色度值的平均值。按照另一种变型,平均值avrpred等于与预测块Bpred的像素相关联的色度值的平均值。
在步骤4期间,从编码数据流F中重构当前块Bc的记为的DC系数。为了这个目的,通过熵解码将与DC系数有关的编码数据F解码成对其应用逆量化(inverse quatization)以获得的量化DC系数。注意,在这个步骤期间,也可以重构以后用于重构Bc的与当前块(就残差误差而言)有关的AC系数。为了这个目的,通过熵解码将与AC系数有关的编码数据F解码成对其应用逆量化的量化AC系数。
在步骤6期间,按如下从预测块Bpred的平均值avrpred和DC系数中计算当前块Bc的平均值avrcr_dec:
其中scale是将一个块的平均值和与所考虑的块相关联的DC系数的值相联系的比例系数。该比例系数取决于用于从图像域到DC系数所属的变换域的变换(例如,DCT 8×8、DCT 16×16、Hadamard等)。
按照一种变型,在步骤6期间,按如下根据由初始加权预测参数wpcr加权的预测块的平均值avrpred和DC系数计算当前块Bc的平均值avrcr_dec:
其中avrpred_cr=wpcr*avrpred
初始加权预测参数wpcr来自例如在现有技术中已知的方法之一。例如,从编码数据流F中解码初始加权预测参数wpcr。按照一种变型,通过计算如图1所示当前块Bc的邻域Nc的平均值和与参考块Br相对应的邻域Nr的平均值之间的比值确定初始加权预测参数wpcr。
在步骤8期间,通过计算在步骤6中计算的当前块的平均值avrcr_dec与在步骤2中计算的预测块的平均值avrpred之间的比值确定加权预测参数wpcr_dec,即,wpcr_dec=avrcr_dec/avrpred。
在步骤10期间,为当前块Bc重构残差块Bres。为此,通过解码与当前块Bc有关的编码数据流F的一部分(如果在步骤4期间尚未解码它们)重构与当前块有关的AC系数。通过逆变换将包含取代DC系数的零值和重构AC系数的系数块变换成残差块Bres。
在步骤14期间,通过合并在步骤10中重构的残差块Bres和由加权预测参数wpcr_dec加权的预测块Bpred重构当前块Bc。例如,当前块Bc等于残差块Bres和由加权预测参数wpcr_dec加权的预测块Bpred的逐个像素和值:Bc(i,j)=Bres(i,j)+wpcr_dec*Bpred(i,j),其中(i,j)是像素坐标。
按照一种变型,当前块Bc等于按照如下类型的方程的残余块和预测块的过滤版本的和值:
其中a(·)和b(·)是线性过滤器的系数。(k,l)是例如从-1变化到1的整数。作为一个简单示例,a()可以采用如下值:
1/64 -10/64 1/64
-10/64 100/64 -10/64
1/64 -10/64 1/64
并且b()可以采用如下值:
1/16 2/16 1/16
2/16 4/16 2/16
1/16 2/16 1/16
图3示出了将图像序列编码成编码数据流F的形式的方法。该方法是针对当前块Bc描述的,并且可以应用于图像的几个块。
在步骤15期间,为当前块Bc确定预测块Bpred。例如,根据通过视频编码器/解码器领域的技术人员已知的块匹配型的运动估计方法获得的运动数据确定预测块Bpred。但是,本发明决不会受用于确定预测块Bpred的方法限制。
在步骤16期间,确定预测块Bpred的平均值avrpred和当前块Bc的平均值avrcr。作一个简单示例,平均值avrpred等于与预测块Bpred的像素相关联的亮度值的平均值。按照一种变型,平均值avrpred等于与预测块Bpred的像素相关联的亮度和色度值的平均值。按照另一种变型,平均值avrpred等于与预测块Bpred的像素相关联的色度值的平均值。相同的变型应用于当前块Bc的平均值avrcr的计算。
在步骤18期间,按如下在当前块Bc的平均值avrcr与预测块Bpred的平均值之间计算预测误差IresDC:
IresDC=(avrcr-avrpred)×scale
这个预测误差IresDC与当前块Bc的平均值avrcr和预测块Bpred的平均值avrpred之间的差成正比。比例系数scale是将一个块的平均值和与所考虑的块相关联的DC系数的值相联系的系数。该比例系数取决于用于从图像域到DC系数所属的变换域的变换(例如,DCT 8×8、DCT 16×16、Hadamard等)。
按照一种变型,在步骤18期间,按如下根据由初始加权预测参数wpcr加权的预测块的平均值avrpred和当前块Bc的平均值avrcr计算预测误差IresDC:
IresDC=(avrcr-avrpred_cr)×scale
其中avrpred_cr=wpcr*avrpred
初始加权预测参数wpcr来自例如在现有技术中已知的方法之一。例如,通过计算如图1所示当前块Bc的邻域Nc的平均值和与参考块Br相对应的邻域Nr的平均值之间的比值确定初始加权预测参数wpcr。
按照另一种变型,按照如下步骤为当前块Bc所属的图像的一部分确定初始加权预测参数wpcr:
-确定称作第一平均值的图像部分的平均值;
-确定称作第二平均值的预测块所属的相应图像部分的平均值;以及
-计算作为第一平均值与第二平均值的比值的加权预测参数。
图像部分是整个图像或图像切片。在这种情况下,按照本发明的编码方法包含将初始加权预测参数在编码数据流F中编码的附加步骤。
在步骤20期间,按如下根据预测块Bpred的平均值avrpred和相继量化和去量化(dequantize)的预测误差计算当前块Bc的校正平均值avrcr_dec:
其中其中Q是量化算符,以及Q-1是逆量化算符。按照一种变型,对于avrcr_dec的计算,在上面方程中用avrpred_cr取代avrpred。
在步骤22期间,通过计算在步骤20中计算的当前块的平均值avrcr_dec与在步骤16中计算的预测块的平均值avrpred之间的比值确定加权预测参数wpcr_dec。
在步骤26期间,通过从当前块Bc中提取经由加权预测参数wpcr_dec加权的预测块Bpred确定残差块Bres。例如,残差块Bres等于当前块Bc与通过加权预测参数wpcr_dec加权的预测块Bpred的逐个像素差值:Bres(i,j)=Bc(i,j)-wpcr_dec*Bpred(i,j),其中(i,j)是像素的坐标。
按照一种变型,残差块Bres等于按照如下类型的方程的当前块和预测块的过滤版本的差值:
其中a′()和b′()是可能不同于前面定义的a()和b()系数的线性过滤器的系数。(k,l)是例如从-1变化到1的整数。作为一个简单示例,a′()可以采用如下值:
1/256 -18/256 1/256
-18/256 324/256 -18/256
1/256 -18/256 1/256
以及b′()可以采用如下值:
1/64 6/64 1/64
6/64 36/64 6/64
1/64 6/64 1/64
在步骤28期间,将在步骤26中确定的块Bres变换成包含由于通过wpcr-dec的校正而具有零或极低值的初始DC系数、和AC系数的系数块。然后用在步骤18中计算的预测误差IresDC取代初始DC系数。因此,IresDC是在流F中有效编码的DC系数。然后量化和通过熵编码来编码如此修改的系数块。
例如,使用熵编码VLC(可变长编码)型视频编码器(使用例如J.Wiley& Sons在2003年9月发表的书名叫做“H.264 and MPEG-4 video compression”的书的第3.5.2章中描述的预先计算VLC表)的本技术人员已知的熵编码方法。按照一种变型,可以使用像在I.E.Richardson的书的第6.5.4章中描述或再次在标题为“Information technology-Coding of audio-visual objects-Part 10:Advanced Video Coding”的ISO/IEC 14496-10文件的第9.3节中描述的那样的CABAC(基于上下文的自适应二进制算术编码)型方法。按照另一种变型,可以使用像在标题为“Information technology-Coding of audio-visual objects-Part 10:Advanced Video Coding”的ISO/IEC 14496-10文件的第9.2节中描述以及在I.E.Richardson的书的第6.4.13.2章中描述的那样的CAVLC(基于上下文的自适应可变长编码)型方法。
按照本发明的编码和解码方法具有以下优点,通过考虑当前块的内容,即,特别是不局限于其邻域的内容改进预测方法,以及动态地适应照度的局部变化而不必显性地编码与这些局部变化有关的参数。它们还具有在未在流中传送加权预测参数的情况下提高了编码效率的优点。
本发明还涉及参考图4所描述的编码设备12和参考图5所描述的解码设备13。在图4和5中,所示的模块是可以对应于或可以不对应于物理上可区分单元的功能单元。例如,这些模块或它们的一些可以一起分组在单个部件中,或构成同一软件的功能。相反,一些模块可以由分立物理实体组成。
参考图4,编码设备12在输入端上接收属于图像序列的图像。每个图像被划分成每一个与至少一项图像数据相关联的像素块。编码设备12特别实现利用时间预测的编码。在图12中只示出了编码设备12与通过时间预测的编码或INTER编码有关的模块。未示出的、并且视频编码器领域的技术人员已知的其它模块利用或不利用空间预测实现INTRA编码。编码设备12特别包含能够例如通过逐个像素相减从当前块Bc中提取预测块Bpred以生成残差图像数据块或残差块Bres的计算模块1200。它进一步包含能够将残差块Bres变换然后量化成量化数据的模块1202。变换T是例如离散余弦变换(或DCT)。编码设备12进一步包含能够将量化数据编码成编码数据流F的熵编码模块1204。它进一步包含进行模块1202的逆操作的模块1206。模块1206进行逆量化Q-1以及之后的逆变换T-1。模块1206与计算模块1208连接,计算模块1208能够例如通过逐个像素相加合并来自模块1206的数据块和预测块Bpred,以生成在存储器1210中存储的重构图像数据块。
编码设备12进一步包含能够估计当前块Bc与在存储器1210中存储的参考图像块Ir之间的至少一个运动矢量的运动估计模块1212,这个图像以前已经被编码然后重构。按照一种变型,可以在当前块Bc与原始参考图像Ic之间进行运动估计,在这种情况下存储器1210未与运动估计模块1212连接。按照本领域的技术人员熟知的方法,运动估计模块以这样的方式搜索一项运动数据,特别是运动矢量,以最小化在当前块Bc与借助该项运动数据识别的参考图像块Ir之间计算的误差。
确定的运动数据由运动估计模块1212发送给判定模块1214,判定模块1214能够在预定的一组编码模式中为块Bc选择一种编码模式。留下的编码模式是例如使位速率-失真型判据最小化的编码模式。但是,本发明不局限于这种选择方法,而是可以按照另一种判据,例如,先验型判据选择留下的模式。将判定模块1214选择的编码模式以及运动数据,例如,在时间预测模式或INTER模式的情况下该项或多项运动数据发送给预测模块1216。预测模块1216能够实现按照本发明的编码方法的步骤15到22。选择的编码模式以及如果需要的话,运动数据也被发送给熵编码模块1204以便在流F中编码。预测模块1216根据判定模块1214确定的编码模式,以及可能根据运动估计模块1212确定的运动数据(图像间预测)确定预测块Bpred。
参考图5,解码模块13在输入端上接收代表图像序列的编码数据流F。流F是例如编码设备12经由信道发送的。解码设备13包含能够生成解码数据,例如,编码模式和与图像的内容有关的解码数据的熵解码模块1300。
解码设备13还包含运动数据重构模块。按照第一实施例,该运动数据重构模块是解码代表所述运动数据的流F的一部分的熵解码模块1300。按照未在图13中示出的一种变型,该运动数据重构模块是运动估计模块。这种经由解码设备13重构运动数据的解决方案称为“模板匹配(template matching)”。
然后将与图像的内容有关的解码数据发送给能够进行逆量化以及之后的逆变换的模块1302。模块1302与生成编码流F的编码设备12的模块1206相同。模块1302与计算模块1304连接,计算模块1304能够例如通过逐个像素相加合并来自模块1302的块和预测块Bpred,以生成被存储在存储器1306中的重构当前块Bc。解码设备13还包含预测模块1308。预测模块1308根据熵解码模块1300为当前块解码的编码模式,以及可能根据运动数据重构模块确定的运动数据确定预测块Bpred。预测模块1308能够实现按照本发明的解码方法的步骤1到8。
当然,本发明不局限于上面提及的实施例示例。
尤其,本领域的技术人员可以将任何变型应用于所述实施例,并组合它们以便从它们的各种优点中获益。本发明决不会受变换类型限制。特别是,可以利用DCT变换、Hadamard变换或小波变换使用本发明。