用于编码和解码表示至少一个图像的数据流的方法和设备与流程

文档序号:19735783发布日期:2020-01-18 04:26阅读:189来源:国知局
用于编码和解码表示至少一个图像的数据流的方法和设备与流程

1.技术领域

本发明的领域为图像或图像序列,特别是视频流的编码和解码领域。

更具体地,本发明涉及利用图像的分块表示压缩图像或图像序列。

本发明特别可应用于目前或未来的编码器(jpeg、mpeg、h.264、hevc等及其修订)中实现的图像或视频编码,以及对应的解码。

2.

背景技术:

数字图像和图像序列占用大量的存储空间,这使得在传送这些图像时需要压缩它们,以避免在用于该传输的网络中的拥塞问题。事实上,在该网络上可以使用的比特率通常是有限的。

已知多种视频数据压缩技术。这些技术中,hevc压缩标准("highefficiencyvideocoding,codingtoolsandspecification",matthiaswien,signalsandcommunicationtechnology,2015)提出了实施相对于属于同一图像的其他像素的当前图像的像素的预测(帧内预测),或者相对于属于前一个或下一个图像的其他像素的当前图像的像素的预测(帧间预测)。

更具体地,帧内预测利用图像内的空间冗余。为此,图像被细分成像素块。随后,按照图像中的块的扫描顺序,借助与当前图像中的先前编码/解码块对应的已重建信息来预测像素块。

此外,传统地,当前块的编码是借助于当前块的预测(称为预测块),和与当前块和预测块之差对应的预测残差或“残差块”来进行的。随后例如通过利用dct(离散余弦变换)类型的变换,来变换获得的残差块。变换后的残差块的系数随后被量化,之后利用熵编码进行编码,并被传送给解码器,通过将残差块和预测块相加,所述解码器可重建当前块。

解码是逐个图像地完成的,并且对于每个图像,解码是逐个块地完成的。对于每个块,读取流的对应元素。进行残差块的系数的逆量化和逆变换。然后,计算块的预测以获得预测块,并且通过将预测(即预测块)和解码的残差块相加来重建当前块。

传统地,通过利用图像中的先前重建的块的参考像素来完成当前块的帧内预测。图1中例示了这种状况,其中用于预测当前块x的像素(x(i,j)i=0,1,2,3和j=0,1,2,3)的参考像素通常对应于位于在当前块正上方的行中的像素(用t(-1,i)i=-1,0,1,2,3标识的像素)和位于在当前块左侧的列中的像素(用t(i,-1)i=-1,0,1,2,3标识的像素)。

例如,hevc标准定义利用这种参考像素的35种帧内预测模式,这些预测模式彼此不同之处在于利用这些参考像素来建立当前块的预测块的方式。

可以看出按照这样的帧内预测技术,位于预测块的第一行和第一列的像素被很好地预测,因为它们紧邻参考像素。事实上,像素在空间中彼此越近,它们所包含的信息相互关联的程度越大。

相反,预测块的位于右下侧,即,远离参考像素的像素,例如图1中图解所示的像素x(3,3)未被准确地预测。因此,这样的像素提供具有高能量的预测残差,并且因此为了对它们进行编码需要更高的比特率。

因此,需要一种建立预测块以便预测当前块的新的技术,从而允许改进图像或视频数据的压缩。

3.

技术实现要素:

本发明改进了现有技术。本发明涉及一种解码表示至少一个图像的编码数据流的解码方法,所述图像被细分成块。所述解码方法包括以下步骤,对于所述图像的至少一个当前块:

-从所述编码数据流,解码表示称为校正块的块的至少一条信息以及残差块,

-根据所解码的信息来确定所述校正块,

-确定当前块的预测块,包括:

-对于当前块的至少一个第一像素:

-根据所述图像的先前重建块的至少一个像素来获得所述第一像素的预测值,

-通过将所述校正块的像素的至少一个值和对于所述第一像素获得的预测值相加,来校正所述第一像素,

-对于当前块的与第一像素不同的至少一个当前像素:

-根据当前块的至少一个先前校正的像素来获得所述当前像素的预测值,

-通过将所述校正块的像素的至少一个值和对于所述当前像素获得的所述预测值相加,来校正所述当前像素,

-根据预测块和解码的残差块来重建所述当前块。

相关地,本发明涉及一种以编码数据流的形式编码至少一个图像的编码方法,所述图像被细分成块,并且所述编码方法包括以下步骤,对于待编码图像的至少一个当前块:

-确定当前块的预测块,包括:

-对于当前块的至少一个第一像素:

-根据所述图像的先前重建块的至少一个像素来获得所述第一像素的预测值,

-通过将称为校正块的块的像素的至少一个值和对于所述第一像素获得的预测值相加,来校正所述第一像素,

-对于当前块的与第一像素不同的至少一个当前像素:

-根据当前块的至少一个先前校正的像素来获得所述当前像素的预测值,

-通过将所述校正块的像素的至少一个值和对于所述当前像素获得的预测值相加,来校正所述当前像素,

-在数据流中,对表示所述校正块的至少一条信息进行编码,

-根据所述当前块和所确定的预测块来计算残差块,

-在数据流中对所述残差块进行编码。

按照本发明,因此改进当前块的当前像素的预测。事实上,因此可以通过当前块的先前校正的像素,来预测当前块的当前像素。特别地,对于空间上远离当前块的参考像素(即,与位于当前块正上方和当前块左侧的像素对应的参考像素)的当前像素,因此可以通过当前块的离该当前像素更近的像素来预测这样的当前像素。由于像素的预测得到改进,因此当前块与预测块之间的预测残差较小,并且降低了当前块的编码成本。

按照本发明,当前块的编码残差是在数据流中传送的,并与预测块相加以重建当前块,从而允许改善压缩性能。

按照本发明的另一个具体实施例,所述校正块包括预定的残差数据。

按照本发明的另一个具体实施例,所述校正块属于预定数据块的集合,表示所述校正块的所述至少一条信息使得能够从所述集合的块之中识别所述校正块。按照本发明的该具体实施例,残差数据块的字典在编码器和解码器处可用。对于待编码或解码的当前块,从字典的块中选择校正块。例如,字典的提供对当前块进行编码的最佳比特率/失真折衷的块被选为当前块的校正块。

按照本发明的另一个具体实施例,根据应用于位于所述当前像素上方的像素、位于所述当前像素左侧的像素和位于所述当前像素左上方的像素的局部预测函数,从当前块的至少一个先前校正的像素来获得当前像素的预测值。按照本发明的该具体实施例,借助当前像素的因果和局部邻域来预测该像素。当前像素与用于预测当前像素的参考像素之间的相关性因此比传统的帧内预测方法要高。

按照本发明的另一个具体实施例,在编码数据流中编码或者从编码数据流解码表示局部预测函数的信息。按照该具体实施例,不同的局部预测函数可用于预测当前块的像素。因此可以选择并用信号向解码器通知用于预测当前块的像素的最有效的局部预测函数。

按照本发明的另一个具体实施例,对于当前块,编码数据流包括指示是按照只利用属于所述图像的先前重建块的像素的预测模式来编码当前块,还是按照利用当前块的至少一个先前校正的像素的预测模式来编码当前块的信息。按照该具体实施例,数据流包含如下信息,该信息指示是按照诸如现有压缩标准中已知的定向帧内预测模式,还是按照这里在上面提及的任何一个具体实施例的新的帧内预测模式来编码当前块。因此,对于图像的每个块,可以选择就比特率/失真来说最佳的帧内预测模式。

本发明还涉及一种信号,所述信号包括表示至少一个图像的编码数据,所述图像被细分成块。对于所述图像的至少一个当前块,这种信号包括表示称为校正块的块的至少一条信息,当前块的至少一个第一像素是根据校正块的像素的至少一个值和对于所述第一像素的根据所述图像的先前重建块的至少一个像素获得的预测值进行编码的,并且当前块的至少一个当前像素是根据校正块的像素的至少一个值和对于所述当前像素从当前块的至少一个先前校正的像素获得的预测值进行编码的,从而提供当前块的预测块。所述信号还包括表示根据当前块和预测块计算的残差块的至少一条信息。

按照本发明的一个具体实施例,对于当前块,所述信号还包括指示是按照只利用属于所述图像的先前重建块的像素的预测模式来编码当前块,还是按照利用当前块的至少一个先前校正的像素的预测模式来编码当前块的信息。

本发明还涉及一种解码设备,所述解码设备被配置成实现按照这里在上面定义的任何一个具体实施例的解码方法。该解码设备当然可包括与按照本发明的解码方法相关的不同特征。因此,该解码设备的特征和优点与解码方法的特征和优点相同,并且不再更详细地说明。

按照本发明的一个具体实施例,这样的解码设备包括在终端中。

本发明还涉及一种编码设备,所述编码设备被配置成实现按照这里在上面定义的任何一个具体实施例的编码方法。该编码设备当然可包括与按照本发明的编码方法相关的不同特征。因此,该编码设备的特征和优点与编码方法的特征和优点相同,不再更详细地说明。

按照本发明的一个具体实施例,这样的编码设备包括在终端或服务器中。

按照本发明,解码方法和编码方法分别可以各种方式,尤其是以有线或软件形式的方式实现。按照本发明的一个具体实施例,解码方法和编码方法分别由计算机程序实现。本发明还涉及一种计算机程序,所述计算机程序包括当所述程序由处理器执行时,实现按照在上面说明的任何一个具体实施例的解码方法或编码方法的指令。这样的程序可以使用任何编程语言。它可以下载自通信网络和/或记录在计算机可读介质上。

所述程序可以使用任何编程语言,并且可以是源代码、目标代码或源代码与目标代码之间的中间代码的形式,比如是部分编译的形式,或者是任何其他可取的形式。

本发明还旨在提供一种计算机可读的且包括这里如上所述的程序的指令的信息介质或记录介质。这里在上面提及的记录介质可以是能够存储所述程序的任何实体或设备。例如,所述质包括存储装置,比如rom之类,例如cdrom或微电子电路rom,或者磁记录装置,例如软盘或硬盘。此外,记录介质可对应于可经由电缆或光缆,利用无线电或者利用其他手段输送的可传送介质,比如电信号或光信号之类。特别地,按照本发明的程序可以从因特网类型的网络下载。

作为替代方案,记录介质可以对应于其中纳入所述程序的集成电路,所述电路适于执行所述方法,或者在所述方法的执行过程中使用。

4.附图说明

通过阅读作为简单示例且非限制性例子给出的几多个具体实施例的以下说明以及附图,本发明的其他特征和优点将体现地更加清楚,附图中:

图1图解说明按照现有技术的用于预测当前块的像素的参考像素的位置,

图2图解说明按照本发明的具体实施例的确定预测块的方法,

图3图解说明按照本发明的具体实施例的用于预测当前块的像素的参考像素的位置的例子,

图4表示按照本发明的具体实施例的编码方法的步骤,

图5表示按照本发明的具体实施例的解码方法的步骤,

图6表示适合于实现按照本发明的任何一个具体实施例的编码方法的编码设备的简化结构,

图7表示适合于实现按照本发明的任何一个具体实施例的解码方法的解码设备的简化结构,

图8a图解说明按照本发明的具体实施例的包括表示图像的至少一个块的编码数据的信号的例子,

图8b图解说明按照本发明的另一个实施例的包括表示图像的至少一个块的编码数据的信号的例子。

5.具体实施方式

5.1一般原理

本发明的一般原理旨在改进图像的待编码块的像素的预测,所述像素远离传统上用于块的预测的参考像素。

为此,利用已借助残差数据块先前校正的当前块本身的像素,来实现这些像素的预测。这种残差数据块不同于从借助预测的传统编码方法已知的编码残差块。按照本发明,也称为校正块的残差数据块包括允许校正当前块的像素的值的残差数据,所述当前块的像素用来预测当前块的后续像素。事实上,用来预测当前块的后续像素的当前块的像素本身是已通过当前块的先前校正的像素和/或图像的先前重建块的像素预测的,但是对其来说,预测残差还未被计算或者编码/解码。按照本发明,通过也属于当前块的还未被重建的其他像素,即,借助经编码/解码的预测残差,来预测当前块的像素,不过所述其他像素已借助编码器和解码器可用的校正块进行了校正。

这里,术语“像素的值”被理解为意味对于该像素,待编码图像的分量的值。例如,在以亮度分量y以及两个色度分量u和v的形式表示待编码图像的情况下,预测方法可以应用于每个分量,或者只应用于它们之一。本发明显然不限于yuv表示,并且类似地应用于图像的其他表示(rgb、ycbcr等)。

首先介绍按照本发明的当前块的预测块的确定的实施模式,随后介绍按照本发明的具体实施例的对图像序列进行编码的编码方法和对数据流进行解码的解码方法,所述编码方法和解码方法都利用图像的当前块的预测块的这种确定,以及对应的编码设备和解码设备。

5.2按照本发明的一个具体实施例确定预测当前块的预测块

图2图解说明对预测待编码图像的当前块x的预测块bpred的确定。

对于图3中借助粗线图解所示的当前块x的各个像素xi,在步骤e20期间确定像素xi的预测值。为此,使用局部预测函数h(ai,bi,ci,)。这种函数根据像素ai、bi、ci的值,来计算像素xi的预测值pi。按照这里说明的本发明的具体实施例,像素ai、bi、ci分别对应于位于像素xi左侧,像素xi上方和像素xi左上方的像素。

局部预测函数h(ai,bi,ci,)例如具有以下形式:

作为变体,可使用其他类型的局部预测函数,例如

局部预测函数h(ai,bi,ci,)可为编码器和解码器所知,或者可在图像或图像序列的编码数据处,在编码数据流中传送。

取决于当前块x中的像素xi的位置,局部预测函数利用可属于归属于当前块x和/或图像的先前重建块的像素ai、bi、ci。

例如,对于图3的像素x1,根据像素a1、b1和c1,即,仅仅借助于属于图像的先前重建块,并且更具体地,属于位于当前块的上方、左侧和左上方的块的参考像素来确定预测值。

对于图3的像素x2,根据像素a2、b2和c2,即,借助于属于图像的先前重建块的参考像素并借助于属于当前块的像素来确定预测值。

对于图3的像素x3,根据像素a3、b3和c3,即,仅仅借助于属于当前块的像素来确定预测值。

通常,并且借助参考图1的符号,对于当前块x的像素x(lin,col),其中lin表示像素x的行相对于块x的左上角的索引,并且col表示像素x的列相对于块x的左上角的索引,利用下式获得预测值g(lin,col):

g(lin,col)=h(t(0,-1),t(-1,0),t(-1,-1))如果lin=0并且col=0,

g(lin,col)=h(t(lin,-1),pk(lin-1,0),t(lin-1,-1)),如果lin>0并且col=0,

g(lin,col)=h(pk(0,col-1),t(-1,col),t(-1,col-1)),如果lin=0并且col>0,

g(lin,col)=h(pk(lin,col-1),pk(lin-1,col),pk(lin-1,col-1),如果lin>0并且col>0其中t(lin,col)是属于先前重建块的像素,h是局部预测函数,并且pk(x,y)是属于当前块x且已利用这里在下面说明的校正块vk先前校正的像素x(x,y)的预测值。

在步骤e20结束时,对于当前像素x(lin,col),获得预测值g(lin,col)。

在步骤e21期间,对于像素x(lin,col),借助于校正块vk的值来校正预测值g(lin,col)。校正块vk是例如当以8比特表示像素的值时,包含在-255和+255之间的值的残差数据块。

按照本发明的一个具体实施例,校正块vk属于预定的残差数据块的集合或字典{vk}k=0...n,n是所述集合中的块的数量。

例如,这种字典包括残差的值的所有可能组合的子集,所述子集是例如通过向一组图像学习而选择的,和/或是与编码数据流一起传送的。

例如,在本例中认为图像的像素是以8比特编码的,并且校正块的各个像素可以或负或正地校正本身是以8比特表示的预测值。校正块的这种像素因此须具有9比特的动态范围。结果,对于例如大小为8x8像素的校正块,可能的块的数量为29x64。因此须对大量的信息进行编码,以识别从残差的值的所有可能组合中选择的校正块。另外,搜索最佳的校正块在计算上的成本将非常高。

实践中,包括例如32至512个校正块的字典大小允许获得最佳压缩,即,高质量增益,以减少信息传送。然而,须很好地选择字典的各个块,使得这种校正块代表真正可用于进行当前块的像素的校正的块。

按照这里说明的例子,作为包括所有可能的校正块,即,包括残差的值的所有可能组合的校正块的巨大集合中的校正块的子集而建立字典{vk}k=0...n。按照第一种变体,为了建立该字典{vk}k=0...n,,如在linde,y.;buzo,a.;gray,r.(1980)."analgorithmforvectorquantizerdesign".ieeetransactionsoncommunications.28:84.doi:10.1109/tcom.1980.1094577中所述,使用利用linde-buzo-gray算法(即,lbg算法)的传统建立技术。该技术包括使用待校正的像素块的学习序列,以及例如随机选择的初始字典。该技术随后迭代两个步骤:

-第一步骤,包括:对于学习序列的每个块,确定就预定标准(例如在学习序列的当前块的像素的预测期间使用校正块而产生的失真)而言的字典的最佳校正块。学习块被分成多个类,每个类是与字典的校正块关联的学习块的集合。

-对于每个类,确定新的校正块,使得该块改善针对所述类的预定标准。随后用该新块替换与该类关联的字典的块。

为本领域的技术人员所知的用于建立量化字典的其他方法是可能的,比如在allengersho和robertm.gray的“vectorquantizationandsignalcompression”,thespringerinternationalseriesinengineeringandcomputerscienceseriesvolume159springerus中说明的“pairwisenearestneighbor”方法。

优选地,校正块vk具有与当前块的大小相同的大小。

按照本发明的一个具体实施例,对于当前块的所有像素使用相同的校正块。

在步骤e21中,将校正块的值vk(lin,col)与对于像素x(lin,col)获得的预测值g(lin,col)相加,以获得像素x(lin,col)的校正后的预测值pk(lin,col):pk(lin,col)=g(lin,col)+vk(lin,col)。

在步骤e22中,验证是否预测了当前块的所有像素。如果情况是这样(图2中y),那么与校正块vk关联的对于各个像素x(lin,col)包括经校正的预测值pk(lin,col)的预测块bpred可用于编码或重建当前块。否则(图2中n),通过对于下一个像素迭代步骤e20和e21,操作转到当前块的下一个像素的预测。

5.3编码方法

图4表示按照本发明的一个具体实施例的以编码数据流str的形式,对待编码的图像序列i1、i2、...、inb进行编码的方法的步骤。例如,这种编码方法由如参考图6说明的编码设备实现。

在该编码方法的输入处,提供图像序列i1、i2、...、inb,nb是待编码的序列的图像数量。该编码方法输出表示在输入处给予的图像序列的编码数据流str。

以已知的方式,按照预先设置并且由解码器已知的编码顺序,逐个图像地完成图像序列i1、i2、...、inb的编码。例如,可按照时间顺序i1、i2、...、inb,或者按照任何其他顺序,例如i1、i3、i2、...、inb,对图像进行编码。

在步骤e0,图像序列i1,i2,...,inb中的待编码图像ij被细分成块,例如,大小为32x32或64x64或更大的块。这样的块可被细分成例如大小为16x16、8x8、4x4、16x8、8x16等的正方形或长方形子块。

随后,在步骤e0期间,按照对图像ij(1≤j≤nb)的预定扫描方向,选择图像ij的待编码的块或子块x。

这里假定块x是按照帧内编码模式编码的。在可用的帧内编码模式之中,假定可借助于传统的帧内编码模式,例如,按照在记载在"overviewofthehighefficiencyvideocoding(hevc)standard",g.-j.sullivan,j.-r.ohm,w.-j.han,t.wiegand,ieeetransactionsoncircuitsandsystemsforvideotechnology,december2012之中的hevc标准中定义的帧内编码模式,或者借助于利用如上参考图2和3说明的预测的帧内编码模式,对块x进行编码。这里说明的编码方法当然适用于可用于编码当前块x的其他帧内预测模式,而不仅仅局限于记载在hevc标准中的帧内编码模式。

按照这里说明的具体实施例,将借助于与每种帧内编码模式关联的比特率/失真成本,来选择用于块x的最佳帧内编码模式。

在步骤e10中,确定用于对块x进行编码的最佳传统帧内模式。传统帧内预测包括借助先前重建的像素t(lin,col)来预测当前块的像素x(lin,col)的集合,其中lin表示像素的行相对于块x的左上角的图像中的索引,并且col表示像素的列相对于块x的左上角的图像中的索引,如图1中图解所示。先前重建的像素t(lin,col)是借助从一组函数{fm}中选择的插值函数插值的,其中m的值在0和m-1之间,m是对于每个像素x(lin,col)的帧内模式的数量,预测值p(lin,col)由p(lin,col)=fm(t,lin,col)给出,其中m是帧内预测模式的索引。

因此,按照hevc标准,模式m=1包括将先前重建像素t(lin,col)的平均值指派给每个预测像素p(lin,col)。以m>1为索引的模式是从先前重建的像素t(lin,col)沿33个不同方向的定向插值。

在步骤e10期间,确定传统帧内预测模式m,m=0,m-1之中的最佳可能预测。

为此,对于从0到m-1的每种预测模式m:

-在子步骤e101期间,通过把对应预测函数应用于当前块x的每个像素,来建立预测块pm:pm(lin,col)=fm(t,lin,col),

-在子步骤e102期间,通过resm(lin,col)=x(lin,col)-pm(lin,col),为当前块x的每个像素计算针对模式m的当前块x的预测残差resm。

-传统地,在子步骤e103期间,例如通过dct变换来对预测残差进行变换,并对其进行量化,从而提供量化的系数resqm,并且根据量化的系数resqm和用于帧内预测模式m的信令成本来估计与帧内预测模式m关联的编码成本rm,

-在子步骤e104期间,通过量化的系数resqm的逆量化和逆变换来重建预测残差resrecm,

-在子步骤e105期间,通过xrecm=resrecm+pm来重建当前块xrecm,

-在子步骤e106期间,计算当前块x和重建的当前块xrecm之间的与帧内预测模式m关联的失真dm:dm=dist(x,xrecm),其中dist表示误差函数,例如二次误差函数,并计算与帧内预测模式m关联的比特率/失真成本:jm=rm+λ×dm。

在子步骤e107期间,将提供与从0到m-1的预测模式m关联的所有比特率/失真成本jm之中的最低比特率/失真成本jn的预测模式选为最佳传统帧内预测模式。为操作的后续部分存储预测模式n、与预测残差resqn关联的编码信息、以及重建的当前块xrecm。

在步骤e11期间,确定如参考图2和3所述的帧内预测模式的编码成本,以便随后与最佳传统帧内预测模式比较。为了更清楚起见,如参考图2和3所述的帧内预测模式将被称为“校正预测模式”。

在步骤e11期间,确定提供按照校正预测模式的比特率/失真成本最低的当前块x的编码的校正块vb。为此,对于校正块的集合中的各个校正块vk,k从0到n-1,实现以下子步骤:

-在子步骤e111期间,通过实现参考图2说明的步骤20-22来建立与校正块vk关联的预测块pk,

-在子步骤e112期间,通过resk(lin,col)=x(lin,col)-pk(lin,col),对于当前块x的每个像素,计算针对校正块vk的当前块x的预测残差resk。

-在子步骤e113期间,例如通过dct变换来对预测残差进行变换,并对其进行量化,从而提供量化的系数resqk,并根据量化的系数和校正块vk的信令成本来估计与校正块vk关联的编码成本rk。例如,通过对校正块的集合之中的校正块vk的索引进行编码,来用信号向解码器通知校正块vk,

-在子步骤e114期间,通过量化的系数resqk的逆量化和逆变换来重建预测残差resreck,

-在子步骤e115期间,通过xreck=resreck+pk来重建当前块xrec

-在子步骤e116期间,计算当前块x和与校正块vk关联的重建的当前块xreck之间的失真dk:dk=dist(x,xreck),其中dist是误差函数,例如二次误差函数,并计算与校正块vk关联的比特率/失真成本:jk=rk+λ×dk。

在子步骤e117期间,将提供与校正块vk(k从0到n-1)关联的比特率/失真成本jk中的最低比特率/失真成本jk的校正块vb选为最佳校正块。为操作的后续部分存储校正块vb的索引和与预测残差resb关联的编码信息。

在步骤e12期间,比较在步骤e10期间和在步骤e11期间分别获得的两种预测模式的比特率/失真成本jn和jb,并且按照提供最低比特率/失真成本的帧内预测模式对当前块x进行编码。

在步骤e12期间,在数据流str中,对指示帧内预测模式类型的信息(ty)编码,如在图8a和8b中图解所示。这样的信息指示是按照传统的帧内预测模式,即,只利用属于图像的先前重建块的像素的预测模式来编码当前块x,还是按照校正预测模式,即,利用当前块x的至少一个先前校正的像素的预测模式来编码当前块x。

如果在步骤e12期间确定编码当前块x的最佳帧内预测模式是传统的帧内预测模式n,那么在步骤e13期间,在编码数据流str中对预测模式n进行编码,并通过熵编码模块,例如记载在d.marpe,h.schwarz,t.wiegand的“context-basedadaptivebinaryarithmeticcodingintheh.264/avcvideocompressionstandard”ieeetransactionsoncircuitsandsystemsforvideotechnology(volume:13,issue:7),pages620–636,july2003中的cabac编码器,在编码数据流str中对针对该预测模式n获得的量化的系数resqn进行编码。

如果在步骤e12期间确定编码当前块x的最佳帧内预测模式是利用校正块vb的校正预测模式,那么在步骤e13期间,在编码数据流str中,对表示校正块vb的信息进行编码,所述信息例如校正块的字典中的校正块vb的索引“b”。这样的索引是通过例如固定或可变长度的代码编码的。随后通过熵编码模块,例如cabac编码器,在编码数据流str中对在步骤e113中对于校正块vb获得的量化的系数resqb进行编码。图8a中图解说明了按照校正预测模式,得自于对当前块x的编码的信号的例子。

按照本发明的一个具体实施例,如在图8b中图解所示,在编码数据流str中,对表示用于校正预测模式的局部预测函数h(ai,bi,ci,)的信息进行编码。按照本发明的该具体实施例,可在图像层级编码这样的信息。因此,当按照校正预测模式编码图像的所有块时,对于图像的所有块使用相同的局部预测函数。或者,可在块层级编码这样的信息,因此局部预测函数可适合于每个块,并且可以选择提供最佳比特率/失真成本的局部预测函数。

在步骤e14期间,验证待编码图像ij的所有块是否都已被编码。如果否(n),那么通过按照待编码图像的预定扫描转入下一个块的选择,编码方法返回步骤e10。

如果图像的所有块都已被处理,那么在步骤e15期间,从图像的重建块xrec重建图像ijrec,并保存在参考图像列表中,以便随后在图像序列的后续图像的编码期间用作参考。编码方法随后返回步骤e0,以按照编码顺序处理图像序列的后续图像。

5.4解码方法

图5表示按照本发明的一个具体实施例的对表示待解码图像序列i1、i2、...、inb的编码数据流str进行解码的方法的步骤。

例如,数据流str是通过参考图4介绍的编码方法生成的。在如参考图7说明的解码设备dec的输入端提供所述数据流str。

所述解码方法逐个图像地进行所述流的解码并且各个图像是逐个块地解码的。

对于要重建的图像的块x,在步骤e50期间,与块x对应的数据流str的数据由熵解码模块解码,以便一方面提供与用于当前块x的编码模式相关的语法元素,并且另一方面提供当前块x的预测残差resqb的系数。

按照本发明的一个具体实施例,解码的语法元素包括指示当前块x是按照传统的帧内预测模式,即,只利用属于图像的先前重建块的像素的预测模式编码的,还是当前块x是按照校正预测模式,即,利用当前块x的至少一个先前校正的像素的预测模式编码的信息(ty)。

这里假设当前块x是按照校正预测的模式编码的。

在步骤e50期间解码的语法元素还包括表示属于在解码器dec处可用的校正块的字典的校正块vb的信息“b”。

在步骤e501期间,从解码的信息“b”确定校正块vb。在解码器dec处可用的字典的校正块之中,识别校正块vb。例如,这样的校正块存储在解码器dec的存储器中。

在步骤e51期间,块x的预测残差的系数经历逆量化,随后经历逆变换,以给出解码的预测残差resqbrec

在步骤e52期间,通过实现参考图2说明的步骤20至22,建立与校正块vb关联的预测块pb。

按照本发明的一个具体实施例,在步骤e50期间解码的解码语法元素还包括表示用于校正预测模式的局部预测函数h(ai,bi,ci,)的信息。可以在对于当前块x或者图像语法元素的层级解码这样的信息。这种表示局部预测函数h(ai,bi,ci,)的信息可以是编码器和解码器已知的预测函数的列表中的函数的索引。按照本发明的该具体实施例,在步骤e52期间,编码数据流str的解码的局部预测函数h(ai,bi,ci,)由参考图2说明的确定预测块的方法使用。

在步骤e53期间,通过将已从编码数据流str解码的与当前块x关联的预测残差resqbrec和与校正块vb关联的预测块pb相加,来重建当前块xrec

在步骤e54期间,验证待解码图像的所有块是否都已被解码和重建。如果否(n),那么解码方法通过按照待解码图像的预定扫描进行下一个块的选择,在步骤e50重新开始。

如果图像的所有块都已被处理(y),那么在步骤e55,从重建的块xrec重建图像ikrec,并将其保存在参考图像列表中,以便随后在图像序列中的后续图像的解码期间用作参考。

在上面说明的编码方法和解码方法可以集成到诸如h.266、hevc/h.265、avc/h.264之类的标准视频编码器/解码器,或者任意类型的专用视频编码器/解码器中。按照本发明的编码方法和解码方法也适用于所有类型的固定图像编码器/解码器,并且更一般地,利用按块预测编码的信号的编码器/解码器。

上面在按块空间编码(图像的帧内编码)的情况下,说明了编码方法和解码方法。在按照其中只有某些块可通过空间预测进行编码的其他类型的编码模式(例如帧间编码模式)的情况下,易于应用这些方法。

5.5编码设备

图6表示适合于实现按照本发明的任何一个具体实施例的编码方法的编码设备cod的简化结构。

按照本发明的一个具体实施例,编码方法的各个步骤由计算机程序指令实现。为此,编码设备cod具有计算机的传统架构,并且特别包括存储器mem、配备有例如处理器proc并由存储在存储器mem中的计算机程序pg操控的处理单元ut。计算机程序pg包括当所述程序由处理器proc执行时,实现这里如上所述的编码方法的步骤的指令。

在初始化时,计算机程序代码pg的指令在由处理器proc执行之前被载入例如存储器ram中。处理单元ut的处理器proc按照计算机程序pg的指令,来实现这里在上面说明的编码方法的步骤。

按照本发明的另一个具体实施例,编码方法由功能模块实现。为此,编码设备cod还包括:

-配置成确定待编码图像的当前块的预测块的预测模块pred,预测模块pred还被配置成:

-对于当前块的至少一个第一像素:

-根据所述图像的先前重建块的至少一个像素来获得所述第一像素的预测值,

-通过将称为校正块的块的像素的至少一个值和对于所述第一像素获得的预测值相加,来校正所述第一像素,

-对于当前块的至少一个当前像素:

-根据当前块的至少一个先前校正的像素来获得所述当前像素的预测值,

-通过将所述校正块的像素的至少一个值和对于当前像素获得的预测值相加,来校正所述当前像素,

-编码模块cd,编码模块cd适于在编码数据流中,对表示所述校正块的至少一条信息以及从所述当前块和所述确定的预测块计算的残差块进行编码。

处理单元ut被配置成从当前块和所确定的预测块来计算残差块。

处理单元ut与这里在上面描述的不同功能模块和存储器mem合作,以实现编码方法的步骤。

这里在上面说明的不同功能模块可以呈硬件形式和/或软件形式。在软件形式下,这样的功能模块可包括处理器、存储器和程序代码指令,以在代码指令由处理器执行时,实现对应于该模块的功能。在硬件形式下,这样的功能模块可以由适合的任意类型的编码电路实现,比如且以非限制性的方式的微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)电路、逻辑单元的布线等。

5.6解码设备

图7表示适合于实现按照本发明的任何一个具体实施例的解码方法的解码设备dec的简化结构。

按照本发明的一个具体实施例,解码设备dec具有计算机的传统架构,并且特别包括存储器mem0、配备有例如处理器proc0并由存储在存储器mem0中的计算机程序pg0操控的处理单元ut0。计算机程序pg0包括当所述程序由处理器proc0执行时,实现这里如上所述的解码方法的步骤的指令。

在初始化时,计算机程序代码pg0的指令在由处理器proc0执行之前被载入例如存储器ram中。处理单元ut0的处理器proc0按照计算机程序pg0的指令,实现这里在上面说明的解码方法的步骤。

按照本发明的另一个具体实施例,解码方法由功能模块实现。为此,解码设备dec还包括:

-解码模块dc,解码模块dc被配置成对于待重建图像的至少一个当前块,从编码数据流解码表示称为校正块的块的至少一条信息以及残差块,

-确定模块det,确定模块det被配置成根据所解码的信息来确定所述校正块,

-预测模块pred0,预测模块pred0被配置成确定当前块的预测块,预测模块pred0被配置成:

-对于当前块的至少一个第一像素:

-根据所述图像的先前重建块的至少一个像素来获得所述第一像素的预测值,

-通过将所述校正块的像素的至少一个值和对于所述第一像素获得的预测值相加,来校正所述第一像素,

-对于当前块的与第一像素不同的至少一个当前像素:

-根据当前块的至少一个先前校正的像素来获得所述当前像素的预测值,

-通过将所述校正块的像素的至少一个值和对于所述当前像素获得的预测值相加,来校正所述当前像素,

-重建模块rec,重建模块rec适合于根据预测块和残差块来重建所述当前块。

处理单元ut0与这里在上面说明的不同功能模块和存储器mem0合作,以实现解码方法的步骤。

这里在上面说明的不同功能模块可以呈硬件和/或软件形式。在软件形式下,这样的功能模块可包括处理器、存储器和程序代码指令,以在代码指令由处理器执行时,实现对应于该模块的功能。在硬件形式下,这样的模块可以由适合的任意类型的解码电路实现,比如且以非限制性的方式的微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、逻辑单元的布线等。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1