对LUT进行编码的方法和进行解码的方法以及对应的设备与流程

文档序号:17987608发布日期:2019-06-22 00:31阅读:195来源:国知局
对LUT进行编码的方法和进行解码的方法以及对应的设备与流程
公开一种对被定义为顶点的点阵的查找表进行编码的方法,其中至少一个值与点阵的每个顶点相关联。示例性地,值为色彩值。公开一种对应的解码方法、编码设备和解码设备。
背景技术
:如图1所示,可缩放的视频解码在于对基础层(bl)比特流和至少一个增强层(el)比特流进行解码(相应地,编码)。通常,根据(可能经向上采样的)解码的bl画面来预测el画面。然而,当el画面和bl画面用不同的色彩空间来表示和/或被进行了不同的色彩评级,则预测不太高效。为了改进预测,已知对解码的bl画面应用色彩变换。更准确地,色彩变换使用色彩信息将bl色彩空间(第一色彩空间)的色彩映射为el色彩空间(第二色彩空间)的色彩。如图2所示,在视频内容分发中,通常对解码画面应用色彩变换,使得经变换的解码画面适合于终端设备呈现能力。这种色彩变换也被称为色彩映射函数(cmf)。cmf例如通过加上偏移的3x3增益矩阵(增益偏移模型)来近似。在该情况下,cmf由12个参数来定义。然而,这样的cmf的近似不是非常精确,因为其假设线性变换模型。因此,使用3d查找表(也被称为3dlut)来描述这样的cmf,而不用在cmf模型上的任何先验。该3dlut精确得多,因为其大小可以根据所需要的准确度来增加。然而,该3dlut可能因此表示巨大的数据集。因此,将3dlut传送给接收器需要对lut进行编码。近似cmf的lut将第二色彩空间中的另外的色彩值与第一色彩空间中的至少一个色彩值相关联。lut允许将第一色彩空间划分成由lut的顶点限定的一组区域。示例性地,3dlut将一组色彩值与第一色彩空间中的色彩值的三元组相关联。该组色彩值可以是第二色彩空间中的色彩值的三元组或者表示被用于将第一色彩空间中的色彩值变换为第二色彩空间中的色彩值的色彩变换(例如,局部定义的cmf参数)的一组色彩值。在图3中,方形3dlut表示为nxnxn个顶点的点阵。对于3dlut中的每个顶点v(c1,c2,c3),需要存储色彩值(vc1,vc2,vc3)的对应的三元组。与3dlut相关联的数据量为nxnxnxk,其中k是被用于存储一个lut三元组值的比特的量。三元组值例如是(r,g,b)三元组、(y,u,v)三元组或(y,cb,cr)三元组等。对所有顶点值进行编码是不高效的,因为其表示巨大量的数据。技术实现要素:本发明的目的是克服现有技术中的至少一个不足。公开一种用于对被定义为顶点的点阵的lut进行编码的方法。至少一个值与点阵的每个顶点相关联。该编码方法包含对当前顶点:-根据另外的值来预测与所述当前顶点相关联的至少一个值;以及-在比特流中对当前顶点的至少一个值与其在比特流中的预测之间计算出的至少一个残差进行编码。有利地,所述另外的值根据与相邻顶点相关联的重构值来获得。根据本发明的具体特征,值是色彩值。根据具体实施例,色彩值表示色彩变换。根据本发明的具体特征,色彩值是增益参数或偏移。根据具体实施例,lut是使用八叉树编码的3dlut,并且三个值与点阵的每个顶点相关联。在该情况下,用于预测的相邻节点属于当前顶点所属的当前八分区的父八分区。根据本发明的具体特征,根据与相邻顶点相关联的重构值来预测与所述当前顶点相关联的至少一个值包含根据相邻顶点的对应的重构值来内插所述至少一个值。根据具体特征,该方法还包含对比特流中的指示内插的类型的索引进行编码。根据具体实施例,对至少一个残差进行编码包含通过量化器将至少一个残差量化为量化残差以及在比特流中对量化残差进行熵编码,并且其中该方法还包含在比特流中对量化器进行编码。根据本发明的具体特征,针对当前顶点,对指示是否针对顶点对至少一个残差进行编码的标志进行编码。根据变型,针对当前顶点的每个值,对指示是针对该值对残差进行编码还是不对残差进行编码并将其推断为零的标志进行编码。有利地,针对当前八分区对指示是对其直接孩子进行递归编码还是将其所有尚未被编码的孩子的顶点的所有残差推断为零的拆分标志进行编码。还公开一种用于对被定义为顶点的点阵的lut进行解码的方法。至少一个值与点阵的每个顶点相关联。该解码方法包含对于当前顶点:-从比特流中解码出至少一个残差;-根据另外的值来预测与当前顶点相关联的至少一个值;以及-根据其预测和解码的至少一个残差来重构当前顶点的至少一个值。有利地,所述另外的值根据与相邻顶点相关联的重构值来获得。根据本发明的具体特征,值为色彩值。根据具体实施例,色彩值表示色彩变换。根据本发明的具体特征,色彩值是增益参数或偏移。根据具体实施例,lut是使用八叉树解码的3dlut,并且三个值与点阵的每个顶点相关联,相邻顶点属于当前顶点所属的当前八分区的父八分区。根据本发明的具体特征,根据与相邻顶点相关联的重构值来预测与当前顶点相关联的至少一个值包含根据相邻顶点的对应的重构值来内插至少一个值。根据具体特征,该方法还包含从比特流中解码出指示内插的类型的索引。根据具体实施例,解码至少一个残差包含从比特流中熵解码出量化残差并且用量化器将量化残差逆量化成解码的残差,并且其中该方法还包含从比特流中解码出量化器。根据本发明的具体特征,对每个顶点解码出指示是否针对顶点对至少一个残差进行编码的标志。根据变型,针对当前顶点的每个值解码出指示是针对该值解码出残差还是将该残差推断为零的标志。有利地,针对当前八分区解码出指示是对其直接孩子进行递归解码还是将其所有尚未被解码的孩子的所有的顶点的残差推断为零的拆分标志。一种对被定义为顶点的点阵的lut进行编码的编码器,其中至少一个值与点阵的每个顶点相关联,包含对于当前顶点:-用于根据另外的值来预测与所述当前顶点相关联的至少一个值的部件;以及-用于对当前顶点的至少一个值与其在比特流中的预测之间计算出的至少一个残差进行编码的部件。有利地,所述另外的值根据与相邻顶点相关联的重构值来获得。该编码器被配置为执行用于编码的方法的步骤。一种对被定义为顶点的点阵的lut进行解码的解码器,其中至少一个值与点阵的每个顶点相关联,包含:-用于从比特流中解码出与当前顶点相关联的至少一个残差的部件;-用于根据另外的值来预测与当前顶点相关联的至少一个值的部件;以及-用于根据其预测和解码的至少一个残差来重构当前顶点的至少一个值的部件。有利地,所述另外的值根据与相邻顶点相关联的重构值来获得。该编码器被配置为执行用于解码的方法的步骤。公开一种至少对被定义为顶点的点阵的lut进行编码的比特流。至少一个值与点阵的每个顶点相关联,并且该比特流包含在其中被编码的、在当前顶点的至少一个值与其预测之间计算出的至少一个残差。附图说明通过下面对本发明的一些实施例的描述,将呈现本发明的其他特征和优点,该描述结合附图进行,附图中:-图1示出根据现有技术的使用全范围可缩放性(gamutscalablility)的可缩放视频解码器的架构;-图2示出根据现有技术的包含色彩变换以适于呈现显示特征的视频解码器的架构;-图3概略地示出根据现有技术的被表示为nxnxn个顶点的点阵的方形3dlut;-图4图示根据本发明的示例性实施例的编码方法的流程图;-图5概略地示出2dlut;-图6呈现根据本发明的另一个示例性实施例的编码方法的流程图;-图7a和图7b概略地在左边示出将立方体递归地细分成八分区,并且在右边示出对应的八叉树;-图8示出根据本发明的顶点的色彩值的内插;-图9a概略地示出被表示为不均匀点阵的3dlut;-图9b示出根据具体且非限制性的实施例的与顶点相关联的值的预测;-图9c表示8个顶点中的仅4个被编码的八分区;-图9d表示共享顶点的八分区;-图10表示根据本发明的示例性实施例的解码方法的流程图;-图11呈现根据本发明的另一个示例性实施例的解码方法的流程图;-图12概略地示出根据本发明的用于对lut进行编码的编码器;-图13概略地示出根据本发明的用于对lut进行解码的解码器;以及-图14图示八分区的8个顶点的位置。具体实施方式图4呈现根据本发明的示例性实施例的编码方法的流程图。该方法用于对被定义为顶点的点阵的lut进行编码,其中至少一个值(例如色彩值)与点阵的每个顶点相关联。在提到解码时,术语“重构”和“解码”往往被用作同义词。下文中,术语色彩值包含诸如rgb、yuv或y,cb,cr值这样的给定色彩空间的色彩值,并且还包含诸如cmf参数(亦即矩阵参数和偏移值)这样的表示色彩变换的值。在步骤40中,当前顶点的至少一个色彩值根据与相邻顶点相关联的重构色彩值来预测。作为示例,在图5中图示与顶点v0(c10,c20)即例如色彩值的值(v0c1,v0c2)的对应对相关联的2dlut。与顶点v0相关联的值例如根据空间相邻的顶点v1(c11,c21)、v2(c12,c22)、v3(c13,c23)和v4(c14,c24)以及值(vic1,vic2)i=1,..4的对应对来预测。预测p(pc1,pc2)例如使用如下内插来计算:pc1=0.25*(v1c1+v2c1+v3c1+v4c1)pc2=0.25*(v1c2+v2c2+v3c2+v4c2)根据变型,2dlut将一组参数(m11,m12,m21,m22,o1,o2)而不是值(v0c1,v0c2)的对与顶点v0(c10,c20)相关联。该组参数被用于根据v0的值(c10,c20)来重构值(v0c1,v0c2)如下:voc1=m11*c10+m12*c20+o1voc2=m21*c10+m22*c20+o2与顶点v0相关联的参数例如根据与空间相邻的顶点v1(c11,c21)、v2(c12,c22)、v3(c13,c23)和v4(c14,c24)相关联的重构参数来预测。预测例如使用内插针对当前顶点的参数来计算。在步骤42中,在当前顶点的至少一个色彩值与其预测之间确定至少一个残差,并且还将其编码到比特流f中。通过从当前顶点的至少一个色彩值中减去其预测来确定残差。编码通常包含熵编码。根据变型,编码包含用量化器q对残差进行量化,并且对量化残差进行熵编码。作为示例,在2dlut的情况下,针对顶点v0计算了第一和第二残差。第一残差等于(v0c1-pc1)并且第二残差等于(v0c2-pc2)。然后,将残差或量化残差(v0c1-pc1)/q和(v0c2-pc2)/q熵编码到比特流f中。熵编码使用诸如指数golomb、huffman、cabac(“上下文自适应二进制算术编码”的英文首字母缩写)这样的传统的二进制编码技术。步骤40和42迭代以对lut的另外的顶点进行编码,直至lut的所有顶点被编码为止。可选地,编码方法包含将量化器值q编码到比特流f中。当前顶点的至少一个色彩值被重构以用于其他顶点的预测。如果未使用量化器,亦即q=1,则每个重构的至少一个色彩值等于对应的原始色彩值。否则,通过对残差去量化并且将去量化的残差添加到预测来确定至少一个重构色彩值。根据变型,编码方法还包含将用于预测顶点的至少一个色彩值的内插类型编码到比特流f中。更精确地,从比特流中解码出标识内插类型的索引。作为示例,索引0标识双线性内插,索引1标识最近近邻内插,索引2标识具有2个最近近邻的线性内插。根据变型,并非将lut的所有顶点都编码到比特流f中。例如,如果顶点的所有残差或所有量化残差的绝对值低于阈值th,则对于该顶点不对残差进行编码,例如在th=0或th=1的情况下。因此,在比特流中,针对每个顶点,在比特流中对指示是针对该顶点对至少一个残差进行编码还是对所有的残差都不编码并且因此而推断为零的二元标志进行编码。根据变型,针对每个顶点的每个色彩值,对指示是针对该色彩值对残差进行编码还是不对残差进行编码并且推断为零的二元标志进行编码。可选地,还将lut的大小编码到比特流中。图6呈现根据本发明的另一个示例性实施例的编码方法的流程图。该方法用于对使用八叉树被定义为顶点的点阵的3dlut进行编码,其中诸如色彩值的三元组这样的一组n个色彩值与点阵的每个顶点相关联,其中n是≥1的整数。八叉树用于划分3d色彩空间,其通过递归地将其细分成八个八分区,如图7a和7b所示。在图7a中,划分是对称的,而在图7b中,划分是不对称的。级别n的八分区具有其级别为n-1的父八分区。八叉树是四叉树的3d模拟。公开用于对属于当前八分区的点阵的当前顶点v进行编码的该编码方法。在下文中,n=3。在步骤50中,与坐标(r,g,b)的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个根据与相邻顶点亦即属于当前八分区的父八分区的顶点相关联的重构色彩值来预测。使用(r,g,b)而不是(c1,c2,c3),以便简化标记。但是本发明不限于(r,g,b)色彩空间。其可以应用于(y,u,v)、(y,cb,cr)等色彩空间表示。于是,针对每个色彩值,例如使用三线性内插,如图8所示出的那样,来确定预测:其中:具有i=0,1、j=0,1和k=0,1的(ri,gj,bk)是3d色彩空间中的父八分区的顶点的坐标;(r,g,b)是当前顶点的坐标;lut[ri][gj][bj].r是与顶点(ri,gj,bk)相关联的第一色彩值;s0(t)=t1-t并且s1(t)=t-t0,其中t=r、g或b。相同的等式用于g和b。可以使用诸如棱柱、锥体或四面体等其他类型的内插。点阵不必是如图9a所示那样均匀的。在步骤50的变型中,与索引j的当前八分区的坐标(r,g,b)的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个根据与坐标(rp,gp,bp)的一个相邻顶点vp,亦即属于索引(j-1)的相邻八分区的顶点相关联的至少一个重构色彩值预测。相邻八分区是在编码八分区列表中与当前八分区共享至少一个顶点和/或在当前八分区之前的八分区。编码八分区列表是指定八分区的编码的次序的列表。在具体实施例中,所有八分区属于同一个级别。这样,针对每个色彩值,对分量如图9b所示那样地确定预测,其中predar是取决于3dlut中的顶点的位置的值,并且predbr是取决于与相邻顶点vp相关联的重构色彩值的值。predar例如等于rp。示例性地,predbr=v’r-preda’r,其中v’r是相邻八分区的顶点vp的重构色彩值,并且preda’r是取决于3dlut中的顶点vp的位置的值。preda’r例如等于rp。对g和b使用相同的等式。在步骤52中,针对当前顶点计算三个残差,对每个色彩分量一个:和然后,将残差熵编码到比特流中或者在进行熵编码之前进行量化。熵编码使用诸如指数golomb、huffman、cabac(“上下文自适应二进制算术编码”的英文首字母缩写)这样的传统的二进制编码技术。级别0的八分区没有父八分区。同样,编码八分区列表中的第一八分区没有在前的八分区。因此,与该八分区的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个根据已知的色彩值(例如值128)来预测。根据变型,针对级别0的八分区的不同顶点使用不同的已知值。根据另外的变型,根据已知的色彩值进行预测还对级别0的八分区之外的其他八分区进行。根据变型,与该八分区的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个根据与属于相同八分区的相邻顶点相关联的已经重构的色彩值来预测。可选地,该编码方法包含将量化器值q编码到比特流中。还重构当前顶点的三个色彩值,并且可用于其他顶点的预测。如果未使用量化器(q=1),则每个重构色彩值等于原始色彩值。否则,每个重构色彩值通过将对应的残差去量化并且将去量化的残差添加到对应的预测来确定。根据变型,该编码方法还包含将用于预测顶点的至少一个色彩值编码的内插类型编码到比特流中。更精确地,将标识内插类型的索引编码到比特流中。作为示例,索引0标识三线性内插,索引1标识棱柱内插,索引2标识锥体内插,并且索引3标识四面体内插。根据变型,并非将lut的所有顶点都编码到比特流中。例如,如果顶点的所有残差或所有量化残差的绝对值低于阈值th,则针对该顶点,不对残差进行编码,例如th=0或th=1。因此,针对每个顶点,将指示是否针对该顶点对至少一个残差进行编码的二元标志编码到比特流中。根据变型,针对每个顶点的每个色彩值,对指示是针对该色彩值对残差进行编码还是不对残差进行编码并将其推断为零的二元标志进行编码。在另外的变型中,如图9c所示,仅对特定的顶点进行编码。在该图中,针对每个八分区,8个顶点中仅4个被编码。通常将lut编码到比特流中,以便用于变换诸如呈现显示色彩适配或色彩全范围可缩放性这样的应用中的视频的画面。可以将lut与视频一起编码和传送。如果编码方法知道3dlut的一些部分将不被应用所使用,则属于3dlut的该部分的顶点不被编码。同样,如果编码方法知道3dlut的一些部分对视频的最终呈现影响很小,则不对属于3dlut的该部分的顶点进行编码。递归地应用该方法以便对整个3dlut进行编码。在该情况下,对八叉树的所有八分区进行编码。当当前八分区的所有顶点被编码时,当前八分区的孩子八分区的顶点被编码。在变型中,3dlut在被编码之前被预处理。在该情况下,拆分标志与八叉树中的每个八分区相关联,并且最初被设置为假。在预处理步骤期间,针对每个八分区来确定拆分标志。如果当前八分区的要被编码的至少一个顶点具有至少一个大于th的可能经量化的残差,则其父八分区的拆分标志被设置为“真”。因此,级别n的当前八分区的拆分标志指示是对其直接孩子(亦即,级别n+1的孩子)递归地进行编码还是其所有尚未被编码的孩子(级别n+k的孩子,其中k>0)的顶点的所有残差被推断为零。在编码步骤期间,将拆分标志和残差编码到比特流中。当当前八分区的所有顶点被编码时,如果当前八分区拆分标志为真,则当前八分区的孩子八分区的顶点被编码。优选地,对属于两个八分区的顶点仅编码一次。在变型中,对在若干八分区之间共享的顶点编码一次以上。具体地,用不同的值将顶点编码若干次,其中针对其所属的每个八分区用一个值。参照图9d,在八分区(j)和八分区(j-1)之间共享顶点v1。因此,可以对v1编码两次,其中针对八分区(j)用一个值,并且针对八分区(j-1)用另外的值。每一值和另外的值可以不同。同样,可以对在4个八分区之间共享的顶点v2编码4次。3dlut例如被编码为vps(“视频参数集”)、sps(“序列参数集”)、pps(“画面参数集”)或者如在avc、hevc、svc或shvc视频编码标准中定义的一个sei消息(“补充增强信息”)。3dlut例如被编码为诸如在下面定义的sei消息。可选地,还将lut的大小s编码到比特流s中。s是一个方向上的顶点的数量。根据变型,对包含具有1个色彩值的顶点的n个3dlut进行编码,而不是对包含如上所公开的具有n个相关联的色彩值(例如n=3)的顶点的一个3dlut进行编码。根据变型,当3dlut大小为s=2时,对向解码器指示根据解码的3dlut来计算加上偏移的3x3增益矩阵并将其用作cmf而不是3dlut的标志进行编码。根据另外的变型,包含具有n个相关联的色彩值的顶点的一个3dlut被用于对局部定义的色彩变换的参数进行编码。示例性地,3dlut的每个顶点与表示色彩变换的12个色彩值相关联。代替将3个色彩值(vr,vg,vb)与当前顶点v相关联,表示色彩变换的12个色彩值与顶点v(r,g,b)相关联,其中在i=0、1或2的情况下的12个色彩值[ai,bi,ci,oi]被定义为满足下面的等式:根据变型,在i=0、1或2的情况下的参数[ai,bi,ci]与顶点相关联。实际上,在大小为2(具有8个顶点的一个单一八分区)的3dlut的情况下,可以选取顶点的三个色彩值,使得3dlut等同于由下面的等式定义的增益偏移模型:为此,必须将8个顶点a至h的3个色彩值(yx,ux,vx)x=a,...h设置为下面的值:k是取决于被用于表示每个色彩值的比特的数量的常量。如果色彩值以8比特来表示,则k=255,如果色彩值以10比特来表示,则k=1023,等等。于是,三线性内插等同于增益偏移模型。图10表示根据本发明的示例性实施例的解码方法的流程图。在步骤140中,从比特流f中解码出至少一个残差。解码通常包含熵解码。根据变型,解码包含对量化残差进行熵解码以及用量化器q对量化残差进行逆量化。熵解码使用诸如指数golomb、huffman、cabac(“上下文自适应二进制算术编码”的英文首字母缩写)这样的传统的二进制解码技术。可选地,解码方法包含从比特流f中解码出量化器值q。根据变型,并非将lut的所有顶点都编码到比特流f中。可选地,针对每个顶点,从比特流中解码出指示是否针对该顶点对至少一个残差进行编码的二元标志。如果没有残差被编码,则针对该顶点,将残差假设为零。在步骤142中,根据与相邻顶点相关联的重构色彩值来预测当前顶点的至少一个色彩值。作为与顶点(v0(c1,c2)相关联的2dlut的示例,在图5中图示色彩值(v0c1,v0c2)的对应对。根据空间相邻的顶点v1、v2、v3和v4来预测与顶点v0相关联的色彩值。例如,使用内插来计算出预测器p(pc1,pc2),如下:pc1=0.25*(v1c1+v2c1+v3c1+v4c1)pc2=0.25*(v1c2+v2c2+v3c2+v4c2)根据变型,2dlut将一组参数(m11,m12,m21,m22,o1,o2)而不是值(v0c1,v0c2)的对与顶点v0(c10,c20)相关联。该组参数被用于根据v0的值(c10,c20)来重构值(v0c1,v0c2),如下:v0c1=m11*c10+m12*c20+o1voc2=m21*c10+m22*c20+o2例如根据与空间相邻的顶点v1(c11,c21)、v2(c12,c22)、v3(c13,c23)和v4(c14,c24)相关联的重构参数来预测与顶点v0相关联的参数。预测例如针对当前顶点的参数使用内插来计算。在步骤144中,重构顶点。更精确地,当前顶点的至少一个色彩值根据其预测和解码的至少一个残差来重构。例如,在2dlut的情况下,针对当前顶点v0对两个残差rc1和rc2进行解码。从而,当前顶点通过如下计算其两个色彩值来重构:(rc1+pc1)和(rc2+pc2)。根据变型,解码方法还包含从比特流f中解码出用于预测顶点的至少一个色彩值的内插类型。更精确地,从比特流中解码出标识内插类型的索引。例如,索引0标识双线性内插,并且索引1标识最近顶点值内插。可选地,还从比特流中解码出lut的大小。图11表示根据本发明的另一个示例性实施例的解码方法的流程图。该方法用于对使用八叉树被定义为顶点的点阵的3dlut进行解码,其中色彩值的三元组与点阵的每个顶点相关联。公开该解码方法用于对属于当前八分区的点阵的当前顶点v进行解码。在步骤150中,从比特流f中解码出三个残差resr、resg、resb。解码通常包含熵解码。根据变型,解码包含对量化残差进行熵解码以及使用量化器q对量化残差进行逆量化。熵解码使用诸如指数golomb、huffman、cabac(“上下文自适应二进制算术编码”的英文首字母缩写)这样的传统的二进制解码技术。可选地,该解码方法包含从比特流f中解码出量化器值q。根据变型,并非lut的所有顶点都被编码到比特流f中。可选地,针对每个顶点,从比特流中解码出指示是否针对该顶点对至少一个残差进行编码的二元标志。如果没有残差被编码,则针对该顶点,将残差假设为零。在另外的变型中,如图9c所示,仅对特定顶点进行解码。在该图中,针对每个八分区,仅对8个顶点中的4个进行解码。在步骤152中,根据与相邻顶点亦即属于当前八分区的父八分区的顶点相关联的重构色彩值来预测与坐标(r,g,b)的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个。使用(r,g,b)而不是(c1,c2,c3)以便简化标记。但本发明不限于(r,g,b)色彩空间。其可以应用于(y,u,v)、(y,cb,cr)等色彩空间表示。因此,针对每个色彩值确定出预测。因此,针对每个色彩值,例如使用如图8所示的三线性内插来确定出预测:其中:具有i=0,1,j=0,1和k=0,1的(ri,gj,bk)是3d色彩空间中的父八分区的顶点的坐标;(r,g,b)是当前顶点的坐标;lut[ri][gj][bk].r是与顶点(ri,gj,bk)相关联的第一色彩值;s0(t)=t1-t并且s1(t)=t-t0,其中t=r、g或b。对g和b使用相同的等式。可以使用诸如棱柱、锥体或四面体这样的其他类型的内插。点阵不必如图9a所示那样地均匀。在步骤152的变型中,与索引j的当前八分区的坐标(r,g,b)的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个根据与坐标(rp,gp,bp)的相邻顶点vp亦即属于索引(j-1)的相邻八分区的顶点相关联的至少一个重构色彩值来预测。相邻八分区是与当前八分区共享至少一个顶点和/或在编码八分区列表中在当前八分区前面的八分区。编码八分区列表是指定八分区的编码的次序的列表。在具体实施例中,所有八分区属于同一个级别。从而,针对分量r,如图9b所示那样,针对每个色彩值来确定预测:,其中predar是取决于3dlut中的顶点的位置的值,并且predbr是取决于与相邻顶点vp相关联的重构色彩值的值。predar例如等于rp。示例性地,predbr=v’r-preda’r,其中v’r是相邻八分区的顶点vp的重构色彩值,并且preda’r是取决于3dlut中的顶点vp的位置的值。preda’r例如等于rp。对g和b使用相同的等式。在步骤154中,针对当前顶点计算出并因而重构的三个色彩值,其中根据它们的预测和对应的解码的残差(resr,resg,resb)。于是,当前顶点通过如下计算三个色彩值而被重构:并且级别0的八分区没有父八分区。同样,编码八分区列表中的第一八分区没有前面的八分区。因此,与该八分区的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个根据已知的色彩值(例如值128)来预测。根据变型,与该八分区的当前顶点v相关联的三个色彩值(vr,vg,vb)中的每一个根据与属于相同八分区的相邻顶点相关联的已经重构的色彩值来预测。递归地应用该方法,以便对整个3dlut进行解码。优选地,对属于两个八分区的顶点仅解码一次。在变型中,对在若干八分区之间共享的顶点解码一次以上。具体地,用不同的值对顶点解码若干次,针对其所属的每个八分区使用一个值。参照图9d,在八分区(j)和八分区(j-1)之间共享顶点v1。因此,可以对v1解码两次,针对八分区(j)用一个值,针对八分区(j-1)使用另外的值。第一个值和另外的值可以不同。同样,在4个八分区之间共享的顶点v2可以被解码4次。当当前八分区(级别n)的所有顶点被解码时,当前八分区的孩子(级别n+1)八分区的顶点被解码。根据变型,针对级别n的当前八分区解码出指示是对其直接孩子(亦即级别n+1的孩子)递归地进行解码还是将尚未被解码的所有孩子(亦即级别n+k的孩子,其中k>0)的顶点的所有残差推断为零的分拆标志。根据变型,该解码方法还包含从比特流f中解码出用于预测顶点的至少一个色彩值的内插类型。更精确地,从比特流中解码出标识内插类型的索引。例如,索引0标识三线性内插,索引1标识棱柱内插,索引2标识锥体内插,并且索引3标识四面体内插。3dlut例如从如在avc、hevc、svc或shvc视频编码标准中所定义的一个sei消息中或vps、sps、pps中解码出。可选地,还从比特流中解码出lut的大小。例如在诸如在下面定义的sei消息中解码出3dlut。根据变型,对包含具有1个色彩值的顶点的n个3dlut进行解码,而不是对包含具有n个色彩值(例如n=3)的顶点的一个3dlut进行解码。根据变型,当3dlut大小为s=2时,解码出指示解码器根据解码的3dlut计算加上偏移的3x3增益矩阵并将其用作cmf而不是3dlut的标志。关于根据图4和6的编码方法公开的相同变型可以应用于解码器侧。在图4、6、10和11中,所表示的框纯粹是功能实体,其未必对应于物理上分开的实体。如本领域中的技术人员将意识到的那样,本原理的方法可以实施为系统、方法或计算机可读介质。因此,本原理的方法可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或者结合软件和硬件方面的实施例(在本文中,一般可以将其称为“电路”、“模块”或“系统”)的形式。而且,本原理的方面可以采用计算机可读存储介质的形式。可以利用一个或多个计算机可读存储介质的任何组合。附图中的流程图和/或框图示出根据本发明的各个实施例的系统、方法和计算机程序产品的可能的实现方式的配置、操作和功能。就此而言,流程图或框图中的每个框可以表示代码的模块、片断或部分,其包含用于实现所指定的逻辑功能的一个或多个可执行的指令。应当注意到,在一些替代的实现方式中,在框中标记的功能可以不以在图中标记的次序出现。例如,相继示出的两个框实际上可以基本并行地执行,或者各个框有时可以以相反的次序来执行,或者各个框可以以替代性的次序来执行,取决于所涉及的功能。还要注意的是,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作的专用的基于硬件的系统或者利用的硬件和计算机指令的组合来实现。虽然未明确描述,但是所呈现的实施例可以以任何组合或子组合来使用。还公开了对诸如3dlut这样的lut进行编码的比特流。由图中的编码方法所产生的比特流对被定义为顶点的点阵的至少一个lut进行编码,其中至少一个色彩值与点阵的每个顶点相关联,其中所述比特流包含在其中编码的在当前顶点的至少一个色彩值与其预测之间计算出的至少一个残差。在itu-tsg16wp3和iso/iecjtc1/sc29/wg11的视频编码联合协作组(jct-vc)的文献jctvc-l1003中定义的hevc编码标准或者作为在itu-tsg16wp3和iso/iecjtc1/sc29/wg11的视频编码联合协作组(jct-vc)的文献jctvc-l1008中定义的hevc编码标准的可缩放的扩展的shvc编码标准的框架内提出示例性的实施例。该标准定义编码数据的任何流必须遵守以兼容该标准的语法。该语法具体地定义如何对不同项的信息进行编码(例如包括在序列中的画面有关的数据、运动矢量等)。在shvc编码标准的背景下,lut可以被编码为pps或vps。语法元素use_color_prediction被用于指示当前画面中的色彩预测的使用,如表1所示。表1:发出预测参数的信号如果use_color_prediction标志等于“1”,则调用3d_lut_color_data函数以发出3dlut数据的信号,如表2所示。表2:3dlut色彩数据的编码nbpcode指示针对nbpcode的给定值的如在表4中列出的3dlut大小。量化器值可以通过3d_lut_color_data()函数来编码。根据变型,3d_lut_color_data()在表3中被定义如下。表3:3dlut色彩数据的编码nbpcode指示针对nbpcode的给定值的如在表4中列出的3dlut大小。量化器值可以通过3d_lut_color_data()函数来编码。nbitspersample指示用于表示色彩值的比特的数量。表4:nbpcode的解释对octant(layer,y,u,v)的解码是如表4所示的递归函数。每个八分区包含与指示是对残差色彩值进行编码还是全部推断为零的标志(encoded_flag[i])相关联的8个顶点。通过将残差添加到色彩值的预测来重构色彩值。例如使用layer_id-1的8个相邻顶点的三线性内插来计算色彩值的预测。表5:coding_octant()的语法元素根据另外的有利的实施例,将lut编码为sei消息(sei代表“补充增强信息”)。hevc标准在其附录d中定义了对被称为sei的附加信息进行编码的方式。该附加信息在语法中通过被称为payloadtype的字段来引用。sei消息例如有助于与显示有关的处理。注意,如果解码设备不具有对于其使用所必要的功能,则忽略该信息。根据本发明的具体实施例,定义一种新的类型的sei消息,以便对与3dlut有关的附加信息进行编码。为此,从尚未使用的值之中定义字段payloadtype的新值(例如payloadtype等于24)。sei数据的语法(亦即sei_payload)以下面的方式扩展:表6:色彩映射sei消息根据变型,sei消息还包含指示符color_interpolator_id,例如在color_description_present_flag之后,其值指示如表7中所规定的内插的类型。color_interpolator_id3dlut大小0三线性1四面体表7:内插的类型该sei消息提供使得能能够针对具体显示环境的定制来重新映射输出的解码画面的色彩样本。该重新映射过程将rgb色彩空间中的编码的样本值映射为目标样本值。映射被表示在亮度或rgb色彩空间域中,并且应当被应用于亮度分量或者由解码画面的色彩空间转换相应地产生的每个rgb分量。3d_lut_color_data()在表2或3中定义。解码的3dlut被应用于属于例如通过nal单元首部的索引nuh_layer_id标识的层的解码画面(参见sei消息的itutsg16wp3和iso/iecjtc1/sc29/wg11的视频编码联合协作组(jct-vc)的文献jctvc-l1003中定义的文献hevc编码标准的7.3.1.2节)。color_map_id包含可以被用于标识色彩映射模型的目的的标识号。color_map_id的值可以被用作由应用所定义的。color_map_id可以被用于支持适合于不同显示场景的色彩映射操作。例如,color_map_id的不同的值可以对应于不同的显示位深度。color_map_cancel_flag等于1指示色彩映射信息sei消息取消输出次序中的任何先前色彩映射信息sei消息的留存(persistence)。color_map_cancel_flag等于0指示色彩映射信息跟随。color_map_repetition_period指定色彩映射信息sei消息的留存并且可以指定在其之中具有相同值的color_map_id的另外的色彩映射信息sei消息或编码视频序列的末尾将存在于比特流中的画面次序计数间隔。color_map_repetition_period等于0指定色彩映射信息仅适用于当前解码画面。color_map_repetition_period等1指定色彩映射信息以输出次序留存,直至以下条件中的任何一个为真为止:-新的编码视频序列开始;-输出具有大于被表示为picordercnt(currpic)的当前解码画面的poc的画面次序计数(被称为poc)的包含具有相同值的color_map_id的色彩映射信息sei消息的访问单位中的画面。color_map_repetition_period等于0或等于1指示具有相同值的color_map_id的另外的色彩映射信息sei消息可以存在或不可以存在。color_map_repetition_period大于1指示色彩映射信息留存直至以下条件中的任何一个为真为止:-新的编码视频序列开始;-输出具有大于picordercnt(currpic)并且小于或等于picordercnt(currpic)+color_map_repetition_period的poc的包含具有相同值的color_map_id的色彩映射信息sei消息的访问单位中的画面。color_map_repetition_period大于1指示对于被输出的具有大于picordercnt(currpic)并且小于或等于picordercnt(currpic)+color_map_repetition_period的poc的访问单位中的画面,存在具有相同值的color_map_id的另外的色彩映射信息sei消息;除非比特流结束或者新的编码视频序列开始而不输出这样的画面。color_description_present_flag等于1指定colour_primaries_input_id和colour_primaries_output_id存在。color_description_present_flag等于0指定colout_primaries_input_id和colout_primaries_output_id不存在。colout_primaries_input_id指示按照由iso11664-1所规定的x和y的cie1931定义的在表8中指定的来源主色的色度坐标。colout_primaries_output_id指示当应用3d色彩lut时,按照由iso11664-1所规定的x和y的cie1931定义的在表8中指定的经色彩映射的主色的色度坐标。color_output_rgb等于1指定输出色彩样本为亮度和色度信号。color_output_rgb等于0指定输出色彩样本为绿色彩、红色、蓝色值。lut_bit_depth_minus8指定3dlut样本的位深度。nbp_code指示针对给定值的nbp_code的在表4中所列出的3dlut大小nbp。3dlut解码的输出是nbpxnbpxnbp大小的三维阵列lut。每个lut阵列元素被称为顶点,并且与等于(lut_bit_depth_minus8+8)的位深度的3个重构样本值(recsamplesy,recsamplesu,recsamplesv)相关联。如果i%(nbp>>layer_id)、j%(nbp>>layer_id)、k%(nbp>>layer_id)的值等于零,则说顶点lut[i][j][k]属于层layer_id。一个顶点可能属于若干层。层layer_id的八分区包含属于layer_id的8个相邻顶点(图14)。octant(layer_id,y,u,v)的解码是递归函数。每个八分区包含与指示是对残差分量值(redy[i],resu[i],resv[i])进行编码还是全部推断为零的标志(encoded_flag[i])相关联的8个顶点(i=0,...7)。分量值通过将残差添加到分量值的预测来重构。分量值的预测使用layer_id-1的8个相邻顶点的三线性内插来计算。一旦被重构,就将顶点标记为重构。在(y+dy[i]),(u+du[i])和(v+dv[i])是当前八分区(具有(y,u,v)作为第一顶点(i=0)坐标)的8个孩子八分区坐标(第一3d色彩顶点的坐标)。针对给定层的值dy[i],du[i]和dv[i]在表9中示出。表8:色彩主色(color_primaries_input_id和color_primaries_output_id)idy[i]du[i]dv[i]0000100nbp>>layer_id20nbp>>layer_id030nbp>>layer_idnbp>>layer_id4nbp>>layer_id005nbp>>layer_id0nbp>>layer_id6nbp>>layer_idnbp>>layer_id07nbp>>layer_idnbp>>layer_idnbp>>layer_id表9:属于层=layer_id的顶点的以索引i的函数的形式的值dy[i]、du[i]和dv[i]属于层=layer_id的八分区的顶点的((y+dy[i]),(u+du[i]),(v+dv[i]))重构的3d色彩lut样本(recsamplesy[i]、recsamplesu[i]、recsamplesv[i])由下式给出:recsamplesy[i]=resy[i]+predsamplesy[i]其中,使用关于包含当前八分区的层=layer_id-1的八分区的顶点的三线性内插来推出predsampley[i]的值。图12表示编码器1的示例性架构。编码器被配置为执行编码方法的步骤。编码器1包含由数据和地址总线64链接到一起的以下元件:-微处理器61(或cpu),其例如是dsp(或数字信号处理器);-rom(或只读存储器)62;-ram(或随机存取存储器)63;-一个或若干i/o(输入/输出)设备65,诸如例如键盘、鼠标、网络摄像机;以及-电源66。根据变型,电源66在编码器的外部。图12中的这些元件中的每一个是本领域技术人员公知的,并且将不做进一步公开。在每个所提及的存储器中,在说明书中使用的措词“寄存器”在每个所提及的存储器中指低容量(一些二进制数据)的存储器区域以及大容量(使得能够存储整个程序或者表示所计算出的或要显示的数据的数据的全部或一部分)的存储器区域这两者。rom62包含程序和编码参数(诸如阈值th)。根据本发明的编码方法的算法存储在rom62中。当接通时,cpu61将程序620上载到ram中并且执行对应的指令。ram63包含寄存器中的由cpu61执行并且在接通编码器1之后上载的程序、寄存器中的输入数据、寄存器中的编码方法的不同状态下的编码的数据以及寄存器中的用于编码的其他变量。图13表示解码器2的示例性架构。解码器被配置为执行解码方法的步骤。解码器2包含由数据和地址总线74链接到一起的以下元件:-微处理器71(或cpu),其例如是dsp(或数字信号处理器);-rom(或只读存储器)72;-ram(或随机存取存储器)73;-i/o接口75,用于从应用接收要传送的数据;以及-电池76。根据变型,电池76在编码器的外部。图13中的这些元件中的每个被本领域技术人员所公知,并且将不做进一步公开。在每个所提及的存储器中,在说明书中使用的措词“寄存器”可以对应于小容量(一些比特)的区域或者非常大的区域(例如整个程序或大量的接收或解码的数据)。rom72包含至少一个程序和解码器参数。根据本发明的解码方法的算法存储在rom72中。当接通时,cpu71将程序720上载到ram中,并且执行对应的指令。ram73包含寄存器中的由cpu71执行并且在解码器2的接通之后上载的程序、寄存器中的输入数据、寄存器中的解码方法的不同状态下的解码的数据以及寄存器中的用于解码的其他变量。在本文中描述的实现方式可以实现为例如方法或过程、装置、软件程序、数据流或信号。尽管仅在单一形式的实现方式的背景下进行了讨论(例如,仅作为方法或设备进行了讨论),但是所讨论的特征的实现方式也可以实现为其他形式(例如程序)。装置可以实现为例如适当的硬件、软件和固件。所述方法可以实现在诸如例如通常被称为处理设备(例如包括计算机、微处理器、集成电路或可编程的逻辑设备)的处理器这样的装置中。处理器还包括通信设备,诸如例如计算机、手机、便携/个人数字助理(“pda”)以及便于与终端用户进行信息通信的其他设备。在本文中所述的各种处理和特征的实现方式可以实施为各种不同的装备或应用,具体地例如装备或应用。这样的装备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、网络服务器、机顶盒、膝上型电脑、个人计算机、手机、pda以及其他通信设备。应当清楚的是,装备可以是移动的,甚至可以安装在移动交通工具中。另外,方法可以通过由处理器执行的指令来实现,并且这样的指令(和/或由实现方式产生的数据值)可以存储在处理器可读取的介质上,诸如例如集成电路、软件载体或诸如例如硬盘、压缩盘(“cd”)、光盘(诸如例如,往往被称为数多功能盘或数字视频盘的dvd)、随机存取存储器(“ram”)或只读存储器(“rom”)这样的其他存储设备。指令可以形成有形地实现在处理器可读取的介质上的应用程序。指令例如可以在硬件、固件、软件或组合中。指令例如可以在操作系统、单独的应用或两者的结合中。因此,可以将处理器表征为例如被配置为执行处理的设备以及包括具有用于执行处理的指令的处理器可读取的介质(诸如存储设备)的设备这两者。另外,除了指令之外或者替代指令,处理器可读取的介质还可以存储由实现方式产生的数据值。对于本领域的技术人员将是显而易见的是,实现方式可以产生被格式化以携带例如可以被存储或传送的信息的各种信号。信息可以包括例如用于执行方法的指令或者由所述实现方式之一产生的数据。例如,信号可以被格式化为携带用于写入或读取所述实施例的语法的规则作为数据或者携带由所述实施例写入的实际语法值作为数据。例如,这样的信号可以被格式化为电磁波(例如,使用频谱的射频部分)或者基带信号。格式化可以包括例如对数据流进行编码以及用编码的数据流来调制载波。信号携带的信息可以是例如模拟或数字信息。信号可以通过各种不同的有线或无线链路来传送,如已知的那样。信号可以存储在处理器可读取的介质上。已经描述了许多实现方式。然而,将理解的是,可以进行各种修改。例如,可以组合、补充、修改或去除不同的实现方式的元件以产生其他实现方式。另外,本领域的技术人员将理解到,其他过程可以替换所公开的那些,并且得到的实现方式将以与所公开的实现方式至少基本相同的方式来执行至少基本相同的功能以获得至少基本相同的结果。因此,本申请想到这些以及其他实现方式。具体地,根据本发明的用于对lut进行编码的方法可以用于对任何类型的lut进行编码,无论与每个顶点相关联的值的类型如何。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1