HEVC中的改进的调色板模式的制作方法

文档序号:17238695发布日期:2019-03-30 08:28阅读:195来源:国知局
HEVC中的改进的调色板模式的制作方法

本发明涉及视频编码和解码。更精确地,本发明专用于调色板(palette)模式编码方法。调色板模式是在高效率视频编码(HEVC:ISO/IEC 23008-2MPEG-H第2部分/ITU-T H.265)国际标准的范围扩展的范围中已提出的新编码方法。该方法对于以“画面内容”视频序列作为对象的视频编码而言是高效的。

当前发明通过使用高效编码方法改进了调色板模式的编码效率。



背景技术:

本申请中的调色板被定义为具有使索引与像素的值相关联的条目的查找表。通常、但并非必需地,像素的值包括与该像素相关联的各颜色分量的值,这样得到彩色调色板。另一方面,像素的值可以由单个像素分量构成,这样得到单色调色板。

通常将对像素块进行编码的该模式称为调色板编码模式。例如,在高效视频编码(HEVC:ISO/IEC 23008-2MPEG-H第2部分/ITU-T H.265)国际标准的范围扩展中,考虑采用该模式。

在对视频序列中的图像进行编码的情况下,首先将该图像分割成被称为编码树块(CTB)的具有大小相等的像素的编码实体。编码树块的大小通常是64×64个像素。然后,各编码树块可分解成较小块的层级树,其中这些较小块的大小可以改变,并且这些较小块是要编码的实际像素块。将要编码的这些较小块称为编码单元(CU)。

特定编码单元的编码通常是可以预测的。这意味着首先确定预测结果块。接着,计算预测结果块和编码单元之间的差。将该差称为残差。接着,对该残差进行压缩。编码单元的实际编码信息由用以表示确定预测结果块和压缩后的残差的方式的某种信息构成。最佳预测结果块是与编码单元尽可能相似以得到可以高效地进行压缩的小残差的块。

基于用于确定编码单元的预测编码方法所用的预测结果块的方法来定义编码模式。

将第一个编码模式称为INTRA(帧内)模式。根据INTRA模式,基于当前图像内的直接包围编码单元的像素的值来构建预测结果块。值得注意的是,预测结果块不是当前图像的块而是构建物。使用方向来确定构建预测结果块实际使用了边界的哪些像素以及如何使用这些像素。INTRA模式背后的想法是:由于自然图像的通常的连贯性,因此直接包围编码单元的像素有可能与当前编码单元的像素相似。因此,可以基于这些周围像素使用预测结果块来获得编码单元的像素值的良好预测。

将第二个编码模式称为INTER(帧间)模式。根据INTER模式,预测结果块是另一图像的块。INTER模式背后的想法是:序列中的连续图像通常非常相似。主要区别通常源自于由于照相机的滚动或者由于场景中的运动物体所引起的这些图像之间的运动。预测结果块由相对于当前图像内的编码单元的位置、给出该预测结果块在参考图像中的位置的矢量来确定。该矢量被称为运动矢量。根据该模式,使用该模式的这种编码单元的编码包括包含运动矢量和压缩后的残差的运动信息。

在本申请中关注于被称为调色板模式的第三个编码模式。根据调色板模式的第一变形例,可以将给定编码单元的预测结果块定义为来自调色板的索引的块:针对预测结果块中的各像素位置,预测结果块包含与调色板中的如下像素值相关联的索引,其中该像素值最接近于编码单元中位置相同(即,同位置)的像素的值。然后,计算表示预测结果块和编码单元之间的差的残差,并对该残差进行编码。调色板中的条目索引还已知为“等级(level)”。

在使用根据该第一变形例的Palette模式的情况下,必须在位流中传输索引的预测结果块。对于该传输,使用三个句法元素对索引的预测结果块进行二进制编码。被称为“Pred模式”的第一句法元素使得能够在两个编码模式之间进行区分。在与具有值0的Pred模式相对应的第一模式(还已知为“从左复制模式”、“左方预测模式”或“索引模式”)中,必须在位流中传输要编码的等级的值。在与具有值1的Pred模式相对应的第二模式中,根据预测结果块中的上方像素的值来获得要编码的等级的值。不必传输该等级。

根据调色板模式的第二变形例,还可以定义用于根据调色板来预测给定编码单元的索引块:针对CU中的各像素位置,索引块包含与调色板中的表示编码单元的具有相同位置(即,同位置)的像素的值的像素值相关联的索引。在像素值不能与来自调色板的索引值相关联的情况下,还生成了被命名为“逃逸(Escape)值”的附加索引值。该“逃逸值”表示直接对相应的像素值进行编码。

根据该第二变形例,索引块和逃逸值与调色板一起在位流中传输。使用与针对第一变形例所述的句法元素相同的句法元素。

值得注意的是,尽管索引块严格而言不是图像的一部分,但通过类比,使用词语“像素”来指代该等级块的元素。

针对第一模式中的等级的值的传输定义被称为“等级”的第二句法元素。使用被称为“Run(行程)”的第三句法元素来对重复值进行编码。考虑到从左上角向右下角、从左向右从上向下逐行(即,光栅扫描顺序)扫描预测结果块,Run句法元素给出具有相同编码的预测结果块中的连续像素的数量。如果Pred模式是0,则这是具有相同的等级值的预测结果块的连续像素的数量。如果Pred模式是1,则这是具有与上方像素的等级值相对应的等级值的预测结果块的连续像素的数量。



技术实现要素:

本发明是为了改进调色板模式的编码效率所设计的。

根据本发明的第一方面,提供一种用于推断索引块中的索引的编码中所使用的编码参数的值的方法,其中所述索引块用于根据调色板编码模式对编码单元进行编码,所述索引属于包括与像素值相关联的索引的集合的调色板,根据给定编码顺序对所述索引块中的索引进行编码,其中,在所述索引块中的当前索引位于所述索引块的第一行的情况下,用于表示与所述当前索引相关联的预测模式的编码参数被推断为除上方以外的预测模式。

根据本发明的第二方面,提供一种用于推断索引块中的索引的编码中所使用的编码参数的值的方法,其中所述索引块用于根据调色板编码模式对编码单元进行编码,所述索引属于包括与像素值相关联的索引的集合的调色板,根据给定编码顺序对所述索引块中的索引进行编码,其中,在所述索引块中的当前索引跟随在编码顺序中的具有表示等于上方的预测模式的关联编码参数的先前索引后面的情况下,用于表示与所述当前索引相关联的预测模式的编码参数被推断为表示除等于上方的预测模式以外的预测模式。

在实施例中,除等于上方的预测模式以外的预测模式是等于左方的预测模式。

根据本发明的第三方面,提供一种用于推断索引块中的索引的编码中所使用的编码参数的值的方法,其中所述索引块用于根据调色板编码模式对编码单元进行编码,所述索引属于包括与像素值相关联的索引的集合的调色板,根据给定编码顺序对所述索引块中的索引进行编码,其中,在当前索引根据所述给定编码顺序而跟随在先前索引后面的情况下,根据与所述先前索引相关联的预测模式来推断所述当前索引的值。

在实施例中,在所述当前索引跟随在编码顺序中的具有关联预测模式的先前索引后面的情况下,根据不包括与所述先前索引相关联的预测模式被应用于所述当前索引时的与该预测模式相对应的索引的值的索引值列表来推断所述当前索引的值。

在实施例中,在所述当前索引跟随在编码顺序中的具有等于左方的关联预测模式的先前索引后面的情况下,根据不包括所述当前索引左方的索引的值的值列表来推断所述当前索引的值。

在实施例中,在所述当前索引跟随在编码顺序中的具有表示等于上方的预测方向的关联预测模式的先前索引后面的情况下,根据不包括所述当前索引上方的索引的值的值列表来推断所述当前索引的值。

在实施例中,在所述当前索引跟随在编码顺序中的具有表示等于上方的预测方向的关联预测模式的先前索引后面的情况下,等于左方的预测模式是所述当前索引的编码参数。

根据本发明的第四方面,提供一种用于对编码单元进行编码或解码的方法,包括以下步骤:推断索引块中的索引的编码中所使用的编码参数的值,其中所述索引块用于根据调色板编码模式对编码单元进行编码,所述索引属于包括与像素值相关联的索引的集合的调色板,根据给定编码顺序对所述索引块中的索引进行编码,其中,在当前索引根据所述给定编码顺序而跟随在先前索引后面的情况下,根据不包括与同所述先前索引相关联的预测模式相对应的索引的值的索引值列表来推断所述当前索引的值,并且根据整数R的值来修改表示所述当前索引的值的字的长度,诸如M=2N-R等,其中M是所述值列表中的值的数量,并且N是表示代表所述当前索引的值的字的长度的位数。

在实施例中,在所述当前索引跟随在编码顺序中的具有等于左方的关联预测模式的先前索引后面的情况下,根据不包括所述当前索引左方的索引的值的值列表来推断所述当前索引的值。

在实施例中,在所述当前索引跟随在编码顺序中的具有表示等于上方的预测方向的关联预测模式的先前索引后面的情况下,根据不包括所述当前索引上方的索引的值的值列表来推断所述当前索引的值。

根据本发明的第五方面,提供一种用于对编码单元进行编码的方法,包括根据第一方面至第三方面所述的用以推断编码参数的值的方法。

根据本发明的第六方面,提供一种用于对编码单元进行解码的方法,包括根据第一方面至第三方面中任一方面所述的用以推断编码参数的值的方法。

根据本发明的第七方面,提供一种用于确定编码参数的设备,所述设备包括用于进行根据第一方面至第三方面中任一方面所述的方法的部件。

根据本发明的第八方面,提供一种用于将编码单元编码在位流中的设备,所述设备包括用于进行第四方面或第五方面所述的各编码方法的部件。

根据本发明的第九方面,提供一种用于从位流中解码编码单元的设备,所述设备包括用于进行根据第四方面或第六方面所述的各解码方法的部件。

根据本发明的第十方面,提供一种包括可执行指令的计算机程序,其中所述可执行指令在由可编程设备执行的情况下,使得所述可编程设备进行根据第一方面至第六方面中任一方面所述的方法。

根据本发明的第十一方面,提供一种非瞬态计算机可读载体介质,其中所述非瞬态计算机可读载体介质在计算机或处理器上运行的情况下,使得所述计算机或所述处理器执行根据第一方面至第六方面中任一方面所述的方法。

根据第十二方面,本发明提供一种用于推断索引块中的索引的编码中所使用的编码参数的值的方法,其中所述索引块用于根据调色板编码模式对编码单元进行编码,所述索引属于包括与像素值相关联的索引的集合的调色板,所述调色板编码模式包括根据所述索引块构建预测结果块以预测当前编码单元,根据给定编码顺序对所述索引块中的索引进行编码,其中依赖于对像素进行编码的顺序,根据上下文信息来推断与像素块中的当前像素相关联的参数。

在实施例中,第一参数表示索引块中的当前索引的预测模式。

在实施例中,如果当前索引在索引块中的一列索引的首位,则推断所述第一参数。

在实施例中,如果当前索引跟随在编码顺序中的具有表示等于上方的预测模式的关联第一参数的先前索引后面,则推断所述第一参数。

在实施例中,第二参数表示当前索引的值。

在实施例中,如果当前索引跟随在编码顺序中的具有表示等于左方的预测模式的关联第一参数的先前索引后面,则根据不包括当前索引左方的索引的值的值列表来推断当前索引的第二参数。

在另一实施例中,如果当前索引跟随在编码顺序中的具有表示等于左方的预测模式的关联第一参数并且具有满足预定标准的关联第二参数的先前索引后面,则根据不包括当前索引左方的索引的值的值列表来推断当前索引的第二参数。

在实施例中,所述关联第二参数在低于预定值的情况下,满足所述预定标准。

在实施例中,如果当前索引跟随在编码顺序中的具有表示等于上方的预测方向的关联第一参数的先前索引后面,则根据不包括当前索引上方的索引的值的值列表来推断当前索引的第二参数。

在实施例中,如果用于推断当前索引的第二参数的所述值列表不包括当前索引的左方或上方的索引的值或者/以及预定值,则根据所述预定标准来调整表示第二参数的字的长度。该字的长度大于或等于零。

在实施例中,如果用于推断当前索引的第二参数的所述值列表不包括至少一个预定值,则根据预定标准来调整表示第二参数的字的长度。

在实施例中,根据所述值列表中的值的数量来调整表示第二参数的字的长度。

在实施例中,根据整数R的值来调整表示第二参数的字的长度,诸如M=2N-R等,其中M是所述值列表中的值的数量,并且N是表示代表第二参数的字的长度的位数。

换句话说,在这些最终的实施例中,如果当前索引跟随在(编码顺序中的)具有表示分别等于左方或上方的预测模式的关联第一参数的先前索引后面(或者在如以下所定义的任何其它预定情形下),则根据不包括分别位于当前索引左方或上方的索引的值的值列表(以下称为“稀疏列表”)来推断当前索引的第二参数。在这种实施例中,可以利用该列表来缩小要编码的索引的实际范围:可以使可能的值的最大数量递减,并且如果索引在缺失索引的上方,则还可以使索引的值递减。这可以与索引所用的高效编码方法相组合:对于元素的数量M、使得满足M=2N–R(其中,N≥0且0<R≤2N,且为整数),代替如最简单那样将索引编码在N位上,发生以下情况:

-如果值“val”的索引为R以下,则该索引原样编码在N-1位上;

-否则,将val+R编码在N位上。

根据第十三方面,本发明提供一种用于对编码单元进行编码或解码的方法,所述方法包括根据第十二方面所述的用以推断索引块中的索引的编码中所使用的编码参数的值的方法,其中所述索引块用于根据调色板编码模式对编码单元进行编码。

在第十四方面中,本发明提供一种用于对编码单元进行编码或解码的装置,所述装置包括用于执行根据第十二方面所述的用以推断索引块中的索引的编码中所使用的编码参数的值的方法的模块,其中所述索引块用于根据调色板编码模式对编码单元进行编码。

在第十五方面中,提供一种用于对编码单元进行编码或解码的方法,所述方法包括根据第十二方面所述的用以推断编码参数的值的方法。针对包括数字图像的编码序列的视频位流的解码可以包括针对编码单元的所述解码,并且将数字图像的序列编码成位流可以包括针对编码单元的所述编码。

在第十六方面中,提供一种用于推断索引块中的索引的编码中所使用的编码参数的值的设备,其中所述索引块用于根据调色板编码模式对编码单元进行编码,所述设备包括用于进行根据第十二方面所述的方法的部件。

在第十七方面中,提供一种用于对编码单元进行编码或解码的设备,所述设备包括用于进行根据第十五方面的各编码或解码方法的部件。

在第十八方面中,本发明提供一种用于存储程序的非瞬态计算机可读介质,其中所述程序在由一个或多个微处理器或计算机执行的情况下,使得所述微处理器或计算机进行根据第十二方面、第十三方面和第十五方面中任一方面所述的方法。

在第十九方面中,本发明提供一种信息存储部件,其能够由用于存储计算机程序的指令的计算机或微处理器进行读取,其中,所述信息存储部件使得能够实现根据第十二方面、第十三方面和第十五方面中任一方面所述的方法。

在第二十方面中,本发明提供一种计算机程序,其包括可执行指令,其中所述可执行指令在由可编程设备执行的情况下,使得所述可编程设备进行根据第十二方面、第十三方面和第十五方面中任一方面所述的方法。

根据本发明的第二十一方面,提供一种用于确定对索引块中的索引进行编码所使用的编码参数的值的方法,其中所述索引块用于使用调色板根据调色板模式对编码单元进行处理,各索引与构成所述编码单元的像素其中之一有关,所述调色板包括与像素值相关联的索引的集合,该处理包括根据所述索引块和所述调色板来获得编码单元预测结果以预测相应的编码单元。该方法包括以下步骤:

针对与所述编码单元的像素其中之一相关联的索引,考虑到构成所述编码单元的像素的编码顺序并且根据所述像素的空间近邻来确定一个或多个编码参数。

例如,空间近邻包括位于所考虑的像素的上方的像素。

在实施例中,所确定的第一编码参数表示索引块中的索引的预测模式。

在实施例中,如果当前索引的位置是索引块中的索引的第一行,则推导第一编码参数。

在实施例中,如果当前索引跟随在处理顺序中的具有表示等于上方的预测模式的关联第一参数的先前索引后面,则推导所述第一参数。

在实施例中,所确定的第二编码参数表示当前索引的值。

在实施例中,如果当前索引跟随在处理顺序中的具有表示等于左方的预测模式的关联第一参数的先前索引后面,则根据不包括当前索引左方的索引的值的索引值列表来确定当前索引的第二参数。

在实施例中,如果当前索引跟随在编码顺序中的具有表示等于左方的预测模式的关联第一参数并且具有满足预定条件的关联第二参数的先前索引的后面,则根据不包括当前索引左方的索引的值的值列表来确定当前索引值的第二参数。

在实施例中,预定条件是关联第二参数小于预定索引值。

在实施例中,如果当前索引跟随在处理顺序中的具有表示等于上方的预测方向的关联第一参数的先前索引后面,则根据不包括当前索引上方的索引的值的索引值列表来确定当前索引的第二参数。

在实施例中,如果索引跟随在具有表示代表等于左方的预测方向的第一预测模式的关联第一编码参数的索引后面,则根据索引值的数量小于或等于调色板的大小减1的索引值列表来确定索引的第二编码参数。

在实施例中,第一预测模式是可用的多个预测模式其中之一,并且所述列表的索引值依赖于多个预测模式。

在实施例中,参考利用除第一预测模式以外的预测模式能够预测的索引的值的索引值不包括在所述列表中。

在实施例中,索引值列表具有小于或等于调色板的大小减2的多个索引值。

在实施例中,如果利用除第一预测模式以外的预测模式所预测的索引的数量大于1,则不包括利用其它预测模式能够预测的索引的值中的最低索引值,使得索引值列表的大小等于调色板的大小减1。

在实施例中,可用的多个预测模式其中之一是转变模式,其中根据用于存储图案的表来确定编码参数,图案包括索引块中的索引的至少一个近邻的索引,所述图案与至少一个预测索引相关联,该至少一个预测索引与在图案的近邻中的位置处所预期的索引相对应。

根据本发明的第二十二方面,提出一种用于对编码单元进行编码的方法,所述方法包括以下步骤:根据上述方法来确定编码参数的值。使用编码参数的值来从用于对编码单元进行编码的索引块中获得索引,所述编码单元预测结果是根据索引块和调色板所生成的。

根据本发明的第二十三方面,提出一种用于从位流中解码编码单元的方法,所述方法包括以下步骤:获得编码参数的值,其中所述编码参数的值是利用上述方法所确定的。使用编码参数的值来从用于对编码单元进行解码的索引块中获得索引,所述编码单元预测结果是根据索引块和从位流中提取的调色板所获得的。

在实施例中,用于根据所述值列表中的值的数量来修改表示第二编码参数的字的长度的步骤包括根据整数R的值来修改字的长度,诸如M=2N-R等,其中M是所述值列表中的值的数量,并且N是表示代表第二参数的字的长度的位数。

根据本发明的第二十四方面,提出一种用于确定编码参数的值的设备,所述设备包括用于进行上述的任一权利要求的方法的部件。

根据本发明的第二十五方面,提出一种用于对编码单元进行编码或解码的设备,所述设备包括用于进行上述的各编码或解码方法的部件。

根据本发明的第二十六方面,提出一种计算机程序,其包括可执行指令,其中所述可执行指令在由可编程设备执行的情况下,使得所述可编程设备进行上述的方法。

根据本发明的第二十七方面,提出一种非瞬态计算机可读载体介质,其中所述非瞬态计算机可读载体介质在运行在计算机或处理器上的情况下,使得所述计算机或处理器执行上述的方法。

根据本发明的第二十八方面,提出一种用于确定对索引块中的索引进行编码所用的编码参数的方法,其中所述索引块用于根据调色板对图像的编码单元进行编码,各索引与构成所述编码单元的像素其中之一有关,所述调色板包括与像素值相关联的索引的集合。所述方法包括以下步骤:

-基于相应的编码参数,根据所述调色板来生成与所述编码单元有关的所述索引块的各像素;

-如果针对所述编码单元中的至少一个像素根据所述调色板无法生成所述索引块中的索引,则生成与用于替换所述索引块中的无法生成的索引的逃逸值相对应的索引值;以及

-考虑到所述编码单元的像素的编码顺序根据所述像素的空间近邻,来确定与索引相对应的一个或多个编码参数。

例如,所述空间近邻包括位于所考虑的像素的上方的像素。

在实施例中,第一编码参数表示索引块中的索引的预测模式。

在实施例中,如果当前索引的位置是索引块中的索引的行,则推导所述第一编码参数。

在实施例中,如果当前索引跟随在编码顺序中的具有表示等于上方的预测模式的关联第一参数的先前索引后面,则推导所述第一编码参数。

在实施例中,所确定的第二编码参数表示索引块中的所生成的索引的值。

在实施例中,如果所生成的索引跟随在编码顺序中的具有表示等于左方的预测模式的关联第一参数的先前索引后面,则根据不包括当前索引左方的索引的值的索引值列表来确定当前索引的第二参数。

在实施例中,如果当前索引跟随在编码顺序中的具有表示等于左方的预测模式的关联第一参数并且具有满足预定条件的关联第二参数的先前索引后面,则根据不包括当前索引左方的索引的值的值列表来确定当前索引值的第二参数。

在实施例中,预定条件是关联第二参数小于预定索引值。

在实施例中,如果当前索引跟随在编码顺序中的具有表示等于上方的预测方向的关联第一参数的先前索引后面,则根据不包括当前索引上方的索引的值的索引值列表来确定当前索引的第二参数。

在实施例中,如果索引跟随在具有表示代表等于左方的预测方向的第一预测模式的关联第一编码参数的索引后面,则根据具有小于或等于调色板的大小减1的多个索引值的索引值列表来确定索引的第二编码参数。

在实施例中,第一预测模式是可利用的多个预测模式其中之一,并且所述列表的索引值依赖于多个预测模式。

在实施例中,参考利用除第一预测模式以外的预测模式能够预测的索引的值的索引值不包括在所述列表中。

在实施例中,索引值列表具有小于或等于调色板的大小减2的多个索引值。

在实施例中,如果利用除第一预测模式以外的预测模式所预测的索引的数量大于1,则不包括能够利用其它预测模式所预测的索引的值中的最低索引值,使得索引值列表的大小等于调色板的大小减1。

在实施例中,可利用的多个预测模式其中之一是转变模式,其中根据用于存储图案的表来确定编码参数,图案包括索引块中的索引的至少一个近邻的索引,所述图案与至少一个预测索引相关联,该至少一个预测索引与在图案的近邻的位置处所预期的索引相对应。

根据本发明的第二十九方面,提出一种对编码单元进行编码的方法,所述方法包括以下步骤:根据上述方法来确定编码参数的值。

根据本发明的第三十方面,提出一种用于对索引块的索引进行解码的方法,所述索引块用于根据从位流获得的调色板来对图像的编码单元进行解码,各索引与构成所述编码单元的像素其中之一相关联,所述调色板包括与像素值相关联的索引的集合。所述方法包括以下步骤:

-从所述位流中获得所述调色板,并且根据编码参数来基于所述位流和所获得的调色板生成所述索引块;

-在所述位流可利用的情况下从所述位流获得与逃逸值相对应的索引值,其中所述逃逸值用于替换所述索引块中的根据所述调色板无法生成的索引;以及

-考虑到构成所述编码单元的像素的编码顺序根据所述像素的空间近邻来确定与索引相对应的编码参数。

在实施例中,在利用上述方法对编码单元进行编码的情况下,考虑到编码顺序来确定编码参数。

在实施例中,用于根据所述值列表中的值的数量来修改表示第二编码参数的字的长度的步骤包括根据整数R的值来修改字的长度,诸如M=2N-R等,其中M是所述值列表中的值的数量,并且N是表示代表第二参数的字的长度的位数。

根据本发明的第三十一方面,提出一种用于确定编码参数的设备,所述设备包括用于进行上述方法的部件。

根据本发明的第三十二方面,提出一种用于对编码单元进行编码的设备,所述包括用于进行上述各编码方法的部件。

根据本发明的第三十三方面,提出一种用于对编码单元进行解码的设备,所述设备包括用于进行上述各解码方法的部件。

根据本发明的第三十四方面,提出一种计算机程序,其包括可执行指令,其中所述可执行指令在由可编程设备执行的情况下,使得所述可编程设备进行上述的方法。

根据本发明的第三十五方面,提出一种非瞬态计算机可读载体介质,其中所述非瞬态计算机可读载体介质在计算机或处理器上运行的情况下,使得所述计算机或处理器执行上述的方法。

根据第三十六方面,本发明提供一种用于推断索引块中的索引的编码中所使用的编码参数的值的方法,所述索引块用于根据调色板编码模式对编码单元进行编码,所述索引属于包括与像素值相关联的索引的集合的调色板,所述调色板编码模式包括根据所述索引块来构建预测结果块以预测当前编码单元,根据给定编码顺序来对所述索引块中的索引进行编码,其中依赖于对像素进行编码的顺序,根据上下文信息来推断与像素块中的当前像素相关联的参数。

在实施例中,第一参数表示所述索引块中的当前索引的预测模式。

在实施例中,如果所述当前索引在所述索引块中的索引的列中的首位,则推断所述第一参数。

在实施例中,如果所述当前索引跟随在编码顺序中的具有表示等于上方的预测模式的关联第一参数的先前索引后面,则推断所述第一参数。

在实施例中,第二参数表示所述当前索引的值。

在实施例中,如果所述当前索引跟随在编码顺序中的具有表示等于左方的预测模式的关联第一参数的先前索引后面,则根据不包括所述当前索引左方的索引的值的值列表来推断所述当前索引的所述第二参数。

在实施例中,如果所述当前索引按编码顺序位于具有表示等于上方的预测方向的关联第一参数的先前索引后面,则根据不包括所述当前索引的上方的索引的值的值列表来推断所述当前索引的所述第二参数。

在第三十七方面中,本发明提供一种用于对编码单元进行编码或解码的方法,所述方法包括根据第三十六方面所述的用以推断索引块中的索引的编码中所使用的编码参数的值的方法,其中所述索引块用于根据调色板编码模式对编码单元进行编码。

在第三十八方面中,本发明提供一种用于对编码单元进行编码或解码的装置,所述装置包括用于实现根据第三十六方面所述的用以推断索引块中的索引的编码中所使用的编码参数的值的方法的模块,其中所述索引块用于根据调色板编码模式对编码单元进行编码。

在第三十九方面中,本发明提供一种非瞬态计算机可读介质,其用于存储程序,所述程序在由编码或解码装置中的微处理器或计算机执行的情况下,使得所述编码或解码装置进行根据第三十六方面和第三十七方面所述的方法。

在第四十方面中,本发明提供一种信息存储部件,其能够由用于存储计算机程序的指令的计算机或微处理器进行读取,其中,所述信息存储部件使得能够实现根据第三十六方面和第三十七方面所述的方法。

根据第四十一方面,本发明提供一种用于根据调色板模式来对图像的像素的当前块进行编码或解码的方法,其中所述调色板模式使用包括用以表示所述当前块中的像素的至少一个分量的值的集合的彩色调色板,所述方法包括以下步骤:获得彩色调色板预测结果,并且使用所述彩色调色板预测结果来预测所述当前块的所述彩色调色板。如应当理解,第四十一方面的调色板模式还可以适用于进行以上已经说明的任何方面。

在实施例中,根据预先定义的扫描顺序来对所述图像的块进行排序,并且基于根据所述图像的给定原因区域中的调色板模式进行编码后的最后块的彩色调色板来确定所述彩色调色板预测结果。

在实施例中,根据所述彩色调色板预测结果中所包括的值来预测当前彩色调色板的值。

在实施例中,对彩色调色板的值进行排序,其中,当前彩色调色板的值与表示所述值是否是根据彩色调色板预测结果中的顺序相同的值而预测得到的标志相关联。

在实施例中,给定原因区域是包括像素的当前块的编码实体已经重建的部分。

在实施例中,对彩色调色板的值进行排序,其中,当前调色板的值与表示所述值是否是根据彩色调色板预测结果中的具有给定顺序的值而预测得到的标志相关联。

在实施例中,彩色调色板预测结果与图像的各编码实体相关联。

在实施例中,彩色调色板预测结果是根据与当前块相邻的像素所获得的。

根据本发明的第四十二方面,提供一种用于推断索引块中的索引的编码中所使用的编码参数的值的方法,所述索引块用于根据调色板编码模式来对编码单元进行编码,所述索引属于包括与像素值相关联的索引的集合的调色板,根据给定编码顺序来对所述索引块中的索引进行编码,其中,在当前索引根据所述给定编码顺序而跟随在具有表示等于上方的预测方向的关联预测模式的先前索引后面的情况下,根据不包括所述当前索引上方的索引的值的值列表来推断所述当前索引的值。

在实施例中,使用等于左方的预测模式来对所述当前索引进行编码。

根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)、或者组合在此通常均可称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用使计算机可用程序代码嵌入在介质中的任何有形表现介质中所嵌入的计算机程序产品的形式。

由于本发明可以以软件来实现,因此本发明可以体现为计算机可读代码以任何适当载体介质上提供至可编程设备。有形载体介质可以包括诸如软盘、CD-ROM、硬盘驱动器、USB盾、存储卡、磁带装置或固态存储器装置等的存储介质。瞬态载体介质可以包括诸如电气信号、电子信号、光学信号、声学信号、磁信号或者例如微波或RF信号的电磁信号等的信号。

附图说明

现在将仅通过示例的方式并且参考以下附图来说明本发明的实施例,其中:

图1示出视频编码器的架构;

图2示出视频解码器的架构;

图3示出原因区域(causal area)的概念;

图4示出HEVC范围扩展中所支持的色度(Chroma)格式;

图5示出将CTB分割成CU和这些CU的扫描顺序解码;

图6示出HEVC的coeff_abs_level_remaining所用的解码处理;

图7a示出用于根据调色板模式来对像素值进行解码的第一解码处理;

图7b示出用于根据调色板模式来对像素值进行解码的第二解码处理;

图8a示出与图7a有关的、调色板以及等级的块/CU的得出的示例;

图8b示出与图7b有关的、调色板以及等级的块/CU的得出的另一示例;

图9示出所生成的句法调色板元素的示例;

图10示出调色板模式句法的解码处理;

图11示出解码器侧的等级的块/CU的构造;

图12示出编码器侧的调色板确定算法;

图13示出等级的块/CU、预测模式和行程(run)的当前实现的处理选择;

图14示出本发明的第一实施例;

图15示出本发明的第二实施例;

图16示出本发明的与等级和行程编码的组合有关的另一实施例;

图17示出考虑到如根据先前的预测模式所确定的稀疏索引列表的索引的编码;

图18示出根据图17的编码处理进行编码后的索引的解码;

图19示出在稀疏索引列表包含一个以上的缺失等级的情况下、在更一般的上下文中考虑到该列表的索引的编码;

图20示出根据图19的编码处理进行编码后的索引的解码;

图21呈现转变模式;以及

图22示出计算装置的示意框图。

具体实施方式

视频压缩标准的一个一般原则是受益于空间冗余和时间冗余以降低视频位率。在图1和2中,分别呈现了在视频编码器和视频解码器中所进行的不同步骤。

图1示出HEVC编码器的架构。在视频序列编码器中,原始序列(101)分割成像素块(102)。然后,编码模式对各块产生影响。存在两类编码模式:基于空间预测的模式(INTRA(帧内))(103)、以及基于时间预测的模式(INTER(帧间),Bidir(双向),Skip(跳过))(104,105)。通常通过被称为INTRA预测的处理,根据INTRA块的原因边界处的编码后像素来预测该INTRA块。

时间预测首先在于:在先前帧或将来帧(即,参考帧(116))中发现离要编码的块最近的参考区域(运动估计(104)),其次在于:使用所选择的区域来预测该块(运动补偿(105))。

在这两种情况下(空间预测和时间预测),通过从原始预测块中减去预测来计算残差。

在INTRA预测中,对预测方向进行编码。在时间预测中,对至少一个运动矢量进行编码。然而,为了进一步降低与运动矢量编码有关的位率成本,不是直接对运动矢量进行编码。实际上,假定运动是均匀的,则将运动矢量编码成该运动矢量与其附近的运动矢量(例如,相邻或周围块的运动矢量)之间的差,这特别值得关注。例如在H.264中,相对于所计算出的位于当前块的上方和左方的三个块之间的中值矢量,对运动矢量进行编码。仅将所计算出的中值矢量和当前块运动矢量之间的(还被称为残差运动矢量的)差编码在位流中。这是由模块“Mv预测和编码”(117)所进行的处理。各编码后矢量的值存储在运动矢量字段(118)中。从运动矢量字段(118)中提取预测所使用的相邻运动矢量。对于HEVC,运动矢量编码处理略微有所不同,并且在以下部分中进行详述。

然后,选择使率失真性能最优的模式(106)。为了进一步减少冗余,对残差块应用变换(DCT)(107),并且对系数应用量化(108)。然后,对量化后的系数块进行熵编码(109),并且将该结果插入位流(110)中。然后,编码器进行编码后的帧的解码,以供将来运动估计所使用(111~116)。这些步骤使得编码器和解码器能够具有相同的参考帧。

为了重建编码后的帧,对残差进行逆量化(111)和逆变换(112),从而在像素域中提供“解码”残差。根据编码模式(INTER或INTRA),将该残差添加至INTER预测结果(114)或INTRA预测结果。

然后,利用一种或多种后滤波对帧的该第一次重建进行滤波(115)。这些后滤波器集成于编码器和解码器回路中。这意味着,需要在编码器和解码器侧将这些后滤波器应用于重建帧,以在编码器和解码器侧使用相同的参考帧。该后滤波的目的是去除压缩伪像(compression artifact)。例如,H.264/AVC使用解块滤波器。该滤波器可以去除由于残差的DCT量化和块运动补偿而产生的块伪像。在当前HEVC标准中,使用解块滤波器、样本自适应偏移(SAO)和自适应回路滤波器(ALF)这三种回路滤波器。在以下部分中描述这些回路滤波器。

图2示出HEVC解码器的架构。在图2中,示出了解码器的原理。首先对视频流(201)进行熵解码(202)。然后,对残差数据进行逆量化(203)和逆变换(204),以获得像素值。还对模式数据进行熵解码,并且根据模式来进行INTRA型解码或INTER型解码。在INTRA模式的情况下,根据位流中所指定的帧内预测模式来确定INTRA预测结果(205)。如果模式是INTER,则从位流中提取运动信息(202)。该运动信息包括参考帧索引和运动矢量残差。将运动矢量预测结果与运动矢量残差相加以获得运动矢量(210)。然后,使用运动矢量来定位参考帧中的参考区域(206)。注意,利用解码后的运动矢量来更新运动矢量数据或运动矢量字段(211),以用于下一解码后运动矢量的预测。然后,利用与编码器侧所使用的完全相同的后滤波器来对解码后的帧的该第一次重建进行后滤波(207)。解码器的输出是未压缩的视频(209)。

图3示出视频编码器或视频解码器中的原因概念。在对索引A进行编码的情况下,可以使用B的全部或一部分来提高A的编码效率。无法访问C。

图4示出将来的HEVC范围扩展将支持的新视频格式。通常还称为HEVCRExt的HEVC范围扩展是根据新的视频编码标准HEVC的定义的扩展。该扩展的目的是提供用以利用附加的颜色格式和位深度来对视频序列进行编码的附加工具。更具体地,该扩展将支持4:2:2视频颜色格式和4:4:4视频颜色格式。如果当前HEVC标准能够应对针对各颜色样本具有8位和10位的4:2:0颜色格式,则HEVC范围扩展应附加支持扩展位深度在8位~高达14位的范围内的4:2:2视频格式和4:4:4视频格式。

彩色图片通常由三个颜色分量R、G和B构成。这些分量通常相关,并且在图像和视频压缩中,在处理图片之前使颜色分量去相关是很常见的。最常见的格式是YUV颜色格式。通常,通过向R、G和B输入图片这三个输入应用线性变换,来根据RGB图片创建YUV信号。Y通常被称为亮度分量,U和V通常被称为色度分量。代替术语“YUV”,通常还使用术语“YCbCr”。

对三个颜色分量应用不同的采样率,这很常见。子采样方案通常被表示为三部分的比J:a:b(例如,4:2:2),其中该三部分描述J个像素宽且2个像素高的概念区域中的亮度样本和色度样本的数量。这些部分(按各自的顺序)如下:

J:水平采样参考(概念区域的宽度)。通常为4。

a:J个像素的第一行中的色度样本(Cr,Cb)的数量。

b:J个像素的第二行中的(附加)色度样本(Cr,Cb)的数量。

图4示出HEVC RExt中所考虑的不同色度格式。这些格式由于三个颜色分量的图片大小不同并且由于这些颜色分量的类型不同而不同。

在(401)中所示的4:2:0YUV色度格式中,图片由以下三个颜色分量构成:Y(401.1)、还表示为Cr的U(401.2)以及还表示为Cb的V(401.3)。如果Y分量图片的宽度为W个像素且高度为H个像素,则U分量图片和V分量图片的宽度为W/2个像素且高度为H/2个像素。

在(402)中所示的4:2:2YUV色度格式中,图片由以下三个颜色分量构成:Y(402.1)、还表示为Cr的U(402.2)以及还表示为Cb的V(402.3)。如果Y分量图片的宽度为W个像素且高度为H个像素,则U分量图片和V分量图片的宽度为W/2个像素且高度为H个像素。

在(403)中所示的4:4:4YUV色度格式中,图片由以下三个颜色分量构成:Y(403.1)、还表示为Cr的U(403.2)以及还表示为Cb的V(403.3)。这三个分量具有相同的宽度W和高度H。

在(403)中示出4:4:4RGB色度格式中,图片由R(403.1)、G(403.2)和B(403.3)这三个颜色分量构成。这三个分量具有相同的宽度W和高度H。

在图片是单色的情况下,该图片的格式被命名为4:0:0。

输入样本的位深度是与各颜色分量的各像素有关的位数。HEVC版本1是针对4:2:0格式的8位的输入样本所定义的。在利用8位表示输入样本的情况下,各样本可以取2Λ8=256个值。对于一些应用,可以扩展输入样本的位深度以具有更大动态的样本。通常,目的是提高视频的视觉质量。已知的位深度为8位、10位、12位、14位或16位。除扩展的颜色格式外,HEVC的范围扩展(RExt)致力于该更大的动态。

此外,HEVC的范围扩展(RExt)能够以无损方式对输入序列进行编码。无损编解码器(与有损编解码器相比)的目的是具有与输入严格相同的解码输出。为了实现此,与有损编解码器相比,必须修改或添加多个内容。这里是HEVC以无损方式进行工作所需的具体内容的非穷尽列表:

·去除量化(错误的主要来源);

·强制启用旁路变换,这是因为(除不再适合无损编码外)正常余弦/正弦变换可能引入误差;

·去除诸如DBF和SAO等的专用于对量化噪声进行补偿的工具。

此外,已添加或考虑HEVC的范围扩展(RExt)专有的附加工具,以对除自然序列外的“画面内容”视频序列进行高效编码。“画面内容”序列是指具有非常有针对性的内容的特殊序列。“画面内容”视频序列与以下的视频序列有关,其中这些视频序列与从例如包含文本、采用幻灯片形式的演示、图形用户界面和表格的任何其它装置的个人计算机所捕获到的视频序列相对应。这些特殊序列与自然视频序列相比具有相当不同的统计数据。在视频编码中,传统视频编码工具的性能对于该针对性的视频内容而言有时是低效的。

考虑中的当前工具是“帧内块复制(Intra Block Copy)”模式和“彩色调色板(Color Palette)”模式。这些模式与以自然视频序列作为对象的传统方法相比表现出良好效率。彩色调色板模式是在本发明的范围内为了进一步提高以画面内容视频序列作为对象的情况下的HEVC范围扩展的编码效率而正考虑的工具。

图5示出将编码树块分割成编码单元以及这些编码单元的扫描顺序解码。在HEVC标准中,利用编码树块(CTB)来组织块结构。帧包含多个非重叠的正方形编码树块。编码树块的大小可以在64×64~16×16内改变。该大小是在序列层级确定的。在编码效率方面最高效的大小是最大大小64×64。请注意,除图像边界外,所有的编码树块具有相同的大小。在这种情况下,该大小根据像素量而改变。

各编码树块包含一个或多个正方形的编码单元(CU)。编码树块基于四叉树结构而分割成多个编码单元。编码树块中的各编码单元的编码或解码顺序基于光栅扫描顺序而遵循四叉树结构。图5示出编码单元的解码顺序的示例。在该图中,各编码单元中的数字给出该编码树块的各编码单元的解码顺序。

图6示出HEVC句法编码。在HEVC标准中或者在HEVC RExt中,使用多个方法来对不同的句法元素进行编码。HEVC使用如基于上下文的自适应二进制算术编码(CABAC)、Golomb-rice(哥伦布-莱斯)码或被称为固定长度编码的简单二进制表示那样的多种熵编码。在大多数情况下,在进行编码之前进行二进制处理以表示不同的句法元素。该二进制处理也是非常有针对性的,并且依赖于不同的句法元素。

例如,被称为“coeff_abs_level_remaining”的句法元素包含系数残差的绝对值或该绝对值的一部分。该特定编码的想法是针对最初的值使用Golomb-Rice码、并且针对更高的值使用指数Golomb。更具体地,根据被称为Golomb参数的给定参数,这意味着为了表示最初的值(例如,0~3的值),使用Golomb-Rice码,然后对于更高的值(4以上的值),使用指数Golomb码。

图6示出该特定解码处理的该原理。该处理的输入数据是位流(601)以及被已知为Rice Golomb(莱斯哥伦布)阶次或参数的rParam。该处理的输出是解码后符号(612)。

将前缀(Prefix)值设置为等于1(602),然后从位流(601)中提取1位,并且将变量标志设置为等于解码后的值(603)。如果该标志等于0(604),则使Prefix值递增(605),并且从位流中提取另一位(603)。在标志值等于1的情况下,决定模块(606)检查值Prefix是否小于3。如果为真,则从位流(601)中提取N位(其中,N=rParam)(608)并且将该N=rParam位设置为变量“码字”。该码字与Golomb Rice表示相对应。如步骤(609)所示,将符号(Symbol)值612设置为等于((prefix<<rParam)+码字)。其中,“<<”是左移运算符。

如果在步骤(606)中Prefix大于或等于3(606),则下一步骤是(610),其中在该(610)中,从位流中提取N=(prefix–3+rParam)位,并且将N=(prefix–3+rParam)位设置为变量“码字”(610)。将符号值设置为等于((1<<(prefix-3))+2)<<rParam)+码字(611)。这与指数Golomb表示相对应。

在以下的技术注释中,图中所描述的该解码处理(或者编码处理的对称方式)被称为具有输入参数Param的Golomb_H。可以用简单方式来标注Golomb_H(Param)。

在HEVC标准和HEVC范围扩展中,根据公式来更新Golomb参数“rParam”,以使得熵编码适应要编码的信号。在系数的值较大的情况下,该公式尝试通过增加Golomb阶次来减小Golomb码的大小。在HEVC标准中,通过以下公式来给出更新:

rParam=Min(cLastRiceParam+(cLastAbsLevel>(3*(1<<cLastRiceParam))?1:O),4)

其中,cLastRiceParam是最后使用的rParam,cLastAbsLevel是最后解码的coeff_abs_level_remaining。请注意,对于要编码或解码的第一个参数,cLastRiceParam和cLastAbsLevel设置为等于0。此外,请注意,参数rParam不能超过值4。

对于HEVC范围扩展,更新了该公式,以适应于应对更高的位深度、并且考虑用于应对扩展格式(4:2:2和4:4:4)的包括无损编码的视频压缩的应用程序所要求的非常高的质量。对于范围扩展,更新公式已如下所述发生了改变:

rParam=Min(cLastRiceParam+(cLastAbsLevel>>(2+cLastRiceParam)),7)

根据该公式,Param的最大值是7。此外,对于变换块的子块所用的coeff_abs_level_remaining的第一次编码,Golomb参数被设置为:

rParam=Max(0,cRiceParam-(transform_skip_flag||cu_transquant_bypass_flag?1:2))

其中:

变量“transform_skip_flag”在针对当前CU跳过了变换的情况下被设置为1,并且在使用变换的情况下被设置为0。

变量“cu_transquant_bypass_flag”在对CU进行无损编码的情况下被设置为1,否则被设置为0。

变量“cRiceParam”被设置为等于来自整个块的另一子块的最后使用的rParam,否则被设置为0。

以下,说明作为本发明的关注点的调色板模式的原理。调色板模式是在范围扩展的范围内提出的新编码方法。该方法对于以“画面内容”视频序列作为对象的视频编码而言是高效的。针对HEVC范围扩展所提出的调色板方法是一种预测模式。这意味着与通过运动预测(帧间情况)或通过帧内预测所进行的预测相同,使用调色板方法来构建给定CU的编码所用的预测结果。在生成了预测之后,对残差CU进行变换、量化和编码。

通常利用包含N元组颜色的集合的表来表示调色板,其中各颜色由该颜色在给定颜色空间中的分量来定义。例如,在典型的RGB格式中,调色板包括P个N元组(其中,对于RGB,N=3)元素的列表。更精确地,各元素与采用RGB格式的颜色的固定三元数组相对应。当然,这不限于RGB或YUV颜色格式。任何其它的颜色格式可以利用调色板来表示,并且可以使用数量更少或更多的颜色(这意味着N可以不同于3)。

在编码器侧,RExt中所考虑的调色板模式在于:将给定的输入CU的像素值变换成有限数量的索引(或等级)。这些索引是指关联调色板的用于定义有限数量的颜色的索引。在应用调色板模式方法之后,如此得到的CU包括索引,然后与该关联调色板(用于表示CU的有限的三元数组的表)一起被发送至解码器。

为了在编码器侧应用调色板模式,可以进行多个方法,但用以表示像素块的最简单方式如下所述:

·(例如,通过使整体失真最小化)求出最佳地描述要编码的像素的CU的P个三元数组;

·然后使各像素与这P个三元数组中最接近的颜色相关联:则要编码的值是相应的索引。

在解码器侧,调色板模式在于:以相反方式来进行转换。这意味着针对与CU的各像素相关联的各解码后索引,处理在于:通过使用针对各CU编码在位流中的调色板来重建CU。这意味着利用颜色来替换与各像素相关联的各索引,以重建CU的各像素的相应颜色。如已经说明的,调色板模式是预测模式,这意味着可以关联残差编码。然后将该残差编码与预测相加以构建最终的重建CU。

图7a还示出HEVC的范围扩展中所研究的解码器侧的调色板模式预测的原理。在步骤(702)中从位流(701)中提取当前CU所用的预测模式。当前,利用位流中的位于跳过标志之前的标志来标识调色板模式。该标志是使用单个上下文进行编码的CABAC。如果该模式是调色板模式(703),则从位流(701)中提取(704)调色板模式的相关句法(705)。

然后,在步骤(706)期间,构建调色板(707)和等级的块/CU(708)这两个元素。根据该等级的块/CU和关联的调色板,构建(709)(像素域中的)块/CU预测结果(710)。这意味着对于块/CU中的各等级,(RGB或YUV)颜色关联至各像素。

然后,从位流(701)中解码得到(711)CU残差。在范围扩展中所研究的当前实现调色板模式中,使用常见的HEVC帧间残差编码方法来对与调色板模式相关联的残差进行编码。为了获得CU的残差,进行传统的逆量化和逆变换。将块预测结果(710)与该块残差(712)相加(713),以形成重建CU(714)。

图7b描述HEVC的画面编码扩展中所研究的解码器侧的调色板模式的另一实现。在这种情况下,本质上不存在残差和预测。作为代替,将利用调色板不能适当地表示的像素编码为逃逸值,即使用索引来表示传输了明确的量化后像素值。在像素已被编码为逃逸值的情况下,如以下所述的逃逸标志已被设置为预定值。结果,与图7a相比,修改了若干步骤。由于考虑到没有对残差进行编码而句法略微改变,因此与705相比,步骤704b提取特定句法705b。实际上,在该新模式中,在可能的情况下,已使用调色板模式对像素值进行了编码。否则,如果不能使用调色板元素来对像素值进行编码(例如,由于调色板已达到其最大大小且不能添加新值),则将像素值编码为逃逸值。

然后,如图7a的步骤706那样,在步骤706b期间,解码器还构建调色板707、等级的CU 108以及附加的逃逸像素值的块715。将该新块715与已知的块708和调色板707组合,以产生输出块714。

图8a示出编码器侧的调色板方法的原理。将当前CU 801转换成代替具有3个值(Y,U,V)或(R,G,B)的像素而是包含等级的大小相同的块802。构建与该块或CU相关联的调色板803,并且该调色板针对各等级条目包含相关的像素颜色值。请注意,针对单色应用,像素值可以仅包含一个分量。

图8b通过使用与图7a有关的逃逸像素值来扩展该原理。在利用调色板元素不能表示像素块801b的像素值811的情况下,因此将该像素值811通知为逃逸值。这可以通过使用(与708相似的)802b内的特定索引等级(例如,812(取值3))来进行通知,其中(与707相似的)调色板803b内的条目813实际是未定义的:实际没有传输调色板元素。作为代替,将逃逸像素值作为(与715相似的)804b的一部分来进行传输。显然,可以使用除812/813以外的其它方式来通知并传输如逃逸标志那样的逃逸像素值。

如图7a所述,针对各CU对调色板进行编码并且将该调色板插入位流中。以相同方式,对等级的块/CU进行编码并将这些等级的块/CU插入位流中,并且在图9中给出示例。在该示例中,按水平顺序(例如,从左向右)逐行处理CU。

在图9中,等级的块/CU(91)与图中的块/CU(802)完全相同。表(92)和(93)描述了用于对块/CU(91)进行处理的连续步骤。表(93)应被理解为表(92)的后续步骤。这些表中所使用的颜色与用于对具有相同颜色的像素块/CU(91)进行处理的八个步骤相对应。

这两个表描述了与调色板模式相关联的当前句法。这些句法元素与CU(91)所用的位流中所关联的编码后信息相对应。在这些表中,使用3个主要的句法元素来充分表示调色板模式的操作,并且按照如下所述进行使用:

·“Pred模式”标志

在该标志等于“0”的情况下:这意味着对于当前像素使用新的等级。紧挨在该标志之后通知该等级;

在该标志等于“1”的情况下,这意味着使用“从上复制(copy up)”模式。更具体地,这意味着当前像素等级与位于紧挨在(从针对光栅扫描顺序相同的位置起的)上方的行处的像素等级相对应。在等于“1”的“Pred模式”标志的情况下,不必紧挨在该标志之后通知该等级。

位于紧挨上方的行处的像素等级在当前像素的空间邻域中。

·“Level”

该句法元素表示当前像素所用的调色板的等级值。

·“Run”

该句法元素具有根据“pred模式”标志而有所不同的含义。

在“Pred模式”标志等于“0”的情况下:该句法元素表示紧挨在当前等级之后应用相同等级的连续像素的数量。例如,如果Run=8,则这意味着将当前等级应用于当前样本(像素位置),并且应用于后面的8个样本,其中这9个像素与总共9个样本相对应。

在“Pred模式”标志等于“1”的情况下,该句法元素表示紧挨在当前等级之后应用“从上复制”模式的连续像素的数量。例如,如果Run=31,则这意味着当前样本以及后面的31个样本(与总共32个样本相对应)的等级是从上方的行的样本复制而来的。

关于表(92)和(93),体现出通过使用调色板模式来表示块/CU(91)的八个步骤。各步骤从“Pred模式”标志的编码开始,在“Pred模式”标志等于“0”的情况下后面跟随level句法元素、或者在“Pred模式”标志等于“1”的情况下后面跟随“run”句法元素。“run”句法元素始终跟随在“level”句法元素之后。

图10示出调色板模式的句法元素解码。

在针对当前块解码得到的预测模式是调色板模式的情况下,解码器首先对与该块有关的句法进行解码,然后应用图11所述的针对CU的重建处理。

图10详细示出与调色板模式有关的句法元素的解码处理。首先,从位流(1001)中提取调色板的大小并对调色板的大小进行解码(1002)。通过将步骤(1002)中解码得到的该大小值加1来获得调色板的准确大小(Palette_size)。实际上,通过使用值0具有最小位数(1位)的一元码来对该大小进行编码并且调色板的大小不能等于0,否则没有像素值可以用来构建块预测结果。

然后,开始进行与调色板值解码相对应的处理。将与调色板的索引相对应的变量i设置为等于0(1004),然后在步骤1005中进行测试以检查i是否等于调色板大小(Palette_size)。如果不是这种情况,则从位流(1001)中提取一个调色板元素并且进行解码(1006),然后将该一个调色板元素添加至具有等于i的关联等级/索引的调色板。然后,通过步骤(1007)使变量i递增。如果i等于调色板大小(1005),则调色板已经完全解码。

然后,进行与等级块的解码相对应的处理。首先,将与像素计数器相对应的变量j以及变量syntax_i设置为0(1008)。然后,进行检查以获知像素计数器是否与该块/CU中所包含的像素的数量相对应。如果步骤(1009)中的答案为“是”,则处理以步骤(1017)结束,否则从位流(1001)中提取与一个预测模式相对应的标志“Pred模式”的值并且进行解码(1010)。

将“Pred模式”的值添加至包含所有解码后的“Pred模式”值的表的索引syntax_i处。如果该“Pred模式”的值等于0(1011),则从位流(1001)中提取与“Level”相对应的句法元素并且进行解码(1012)。将该变量“Level”添加至包含所有解码后的等级的表的索引syntax_i处。使与像素计数器相对应的变量j递增1(1013)。

然后,在步骤(1014)中对“Run”句法元素进行解码。如果句法元素“Pred模式”等于1(1011),则在步骤(1014)中还对“Run”值进行解码。将该句法元素“Run”添加至包含所有解码后的行程的表的索引syntax_i处。

然后,在步骤(1015)中,使值j进行大小为步骤(1014)中解码得到的行程的递增。使变量syntax_i递增1。如果计数器j等于块中的像素的数量,则结束用以构建调色板预测结果的句法(1017)。在与调色板有关的该处理结束时,解码器获知调色板以及包含与该CU的调色板预测模式相关联的所有“Pred模式”、“Level”和“Run”句法元素的列表的表。然后,解码器可以继续进行CU的重建处理。

下表给出针对各句法元素的熵编码使用。

图11示出用以构建将用作预测结果的CU的重建处理。该处理的输入数据是包含“Pred模式”、“Level”和“Run”的列表以及块/CU大小的表。

在第一个步骤(1101)中,将表示像素计数器的变量i设置为等于0,并且还将变量j设置为等于0。然后,检查从“Pred模式”的表中的索引j处所提取的元素是否等于0(1104)。如果该元素等于0,则这意味着针对该当前像素i编码新的等级。因而,位置i处的像素的值被设置为等于等级的表中的索引j处的等级(Block[i]=Level[j])(1105)。

使变量i递增1(1106)。将变量k设置为等于0(1107)。在(1108)中进行检查,以获知k是否等于行程的表中的索引j处的“Run”元素。如果不等于,则将位置i处的像素的值(等级值)设置为等于位置i-1处的像素的值(等级值)(1109),这与以下表达式相对应:Block[i]=Block[i-1]。然后,使变量i(1110)和变量k(1111)递增1。如果在步骤1108中检查返回“是”,则结束左方等级值的传播并且进行步骤1120。

在步骤1104中检查返回值“否”的情况下,开始“从上复制”模式。将变量k设置为等于0(1112)。步骤1113检查(k-1)是否等于行程的表中的索引j处的“Run”元素。如果不等于,则将位置i处的像素的值(等级值)设置为等于上方行中的位置i处的像素的值(等级值)(1014)。这与以下表达式相对应:Block[i]=Block[i-width]。值“width(宽度)”是块/CU的宽度。然后,在步骤1115和1116中,使变量i和变量k递增1。如果在步骤1113中检查返回值“是”,则预测模式“从上复制”完成并且进行下一步骤1120。

在步骤1120中,进行检查以获知变量i是否等于块/CU中的像素的量。如果不等于,则使变量j递增1(1121),并且处理继续以上已经说明的步骤(1104)。

如果在步骤(1120)中检查为肯定,则在步骤(1122)中,使所有等级对块的各像素产生影响。

然后,最后的阶段(1123)在于:根据调色板内容来将各等级转换成颜色值。该处理根据各个块位置的等级和调色板中的条目而影响块中的该位置处的像素值(Y,U,V)或(R,G,B)。

图12示出编码器侧的调色板确定算法。该处理的输入数据是原始块/CU和块/CU大小。在该示例中,创建YUV调色板,但可以以相同方式构建RGB调色板。

在第一步骤(1201)中,将表示像素计数器的变量“i”和变量“Palette_size”设置为0。将表示阈值的变量“TH”设置为9。然后,在步骤(1203)中,从原始块(1204)中读取(1203)像素pi。然后,将变量j设置为等于0(1205),并且在步骤(1206)中,进行检查以获知调色板大小是否等于变量“j”。

如果调色板大小等于变量“j”,则将索引“j”处的调色板设置为等于像素值pi(1209)。这意味着当前像素Pi变为调色板的条目。更精确地,进行以下的分配:

·PALY[j]=(Yi)

·PALU[j]=(Ui)

·PALV[j]=(Vi)

使调色板大小(Palette_size)递增1(1210),并且针对索引“调色板大小”,将发生表设置为等于1(1211)。然后,使变量i递增(1213)以考虑块/CU中的下一像素“i”。

在步骤(1214)中进行检查以获知是否处理了块/CU的所有像素。如果“是”,则通过后面所述的排序处理(1215)来完成该处理,否则在已经说明的步骤(1203)中考虑下一像素。

返回至步骤(1206),在检查返回值“否”的情况下,下一步骤是步骤(1207),其中在步骤(1207)中,计算pi和索引j处的调色板元素之间的各颜色分量的绝对值。如果所有的绝对差均严格小于与TH(在本实施例中设置为9)相等的阈值,则使与调色板中的条目“j”有关的发生计数器递增1。在步骤(1212)之后,下一步骤是已经说明的步骤(1213)。

在步骤(1207)中,在检查返回否定回答的情况下,使变量j递增(1208)以将其它调色板元素与当前像素进行比较(1207)。如果在调色板中不存在满足标准(1207)的元素,则向调色板添加新的元素(1209,1210,1211)。

请注意,决定模块(1207)可以针对4:4:4(YUV或RGB)序列比较各颜色元素,并且针对4:2:0序列可以仅比较亮度颜色分量。

在该处理结束时,表“计数器”包含调色板元素的发生。然后,在步骤(1215)中根据调色板元素的发生来对调色板元素进行排序,使得最频繁的元素处于调色板中的首位。

此外,调色板大小可以超过在当前实现中固定为24的调色板的最大大小。如果调色板大小超过24,则将调色板大小设置为等于24并将其余元素从调色板去除。在这些处理结束时,构建了调色板。这仅是实现的示例,并且可以直接利用该算法来构建调色板。

图13示出等级块、预测模式和行程的当前实现的选择的处理。该处理的输入数据是原始块/CU、调色板和块/CU大小。

在第一步骤中,将与像素计数器有关的变量“i”设置为0(1301)。

独立评价2个预测模式(“Pred模式”=0和“Pred模式”=1)。

对于“从上复制”预测(与“Pred模式”=1相对应),将变量“icopy”设置为等于0(1303)。然后,步骤(1304)检查像素位置Block[i+icopy]处的当前等级是否等于上方行中与位置Block[i+icopy-width]相对应的像素的等级,其中“width”与所考虑的当前块CU的宽度相对应。如果回答为肯定,则在步骤(1305)中使变量“icopy”递增1。

请注意,在步骤(1308)中并行地确定块/CU的各索引的等级。这在于:影响位置i即最接近的调色板元素处的像素(1308)。该处理使用了位置i、调色板(1306)和原始块(1307)。在步骤(1308)中,使等级与位于块/CU中的位置“i”处的样本相关联。

如果在步骤(1304)中回答返回“否”,则将变量“icopy”传输至决定模块1314。该变量“icopy”与从上方的行所复制的值的数量相对应。

并行地(或顺次地),对用以确定左方预测模式的行程值的回路进行处理。首先,将变量“iStart”和“j”设置为等于“i”,并且将“ileft”设置为等于0(1009)。在步骤(1310)中,进行检查以获知j!=0且“Pred mode[j-1]”=0且Block[j]=Block[j-1]是否成立。如果为真,则使变量“ileft”递增1(1311),并且使变量j递增(1312)。

在步骤1310中回答为“否”的情况下,下一步骤是(1313),其中在该步骤(1313)中,进行新的检查。“j”是否大于“iStart”(1313)。因而,检查“j”是否是预测模式中的没有预测并利用等级直接进行编码的第一个值(j!=0或Predmode[j-1]=0)。如果不是第一个值,则将变量“ileft”传输至决定模块1314。并且如果是所检查的第一个值,则仅使变量j递增。以与从上复制预测所用的回路相同的方式,在同一回路(1308)中确定索引i处的等级Block[i]。

在计算了“左方预测”和“从上复制”模式的最大行程之后,通过获知“icopy”!=0以及“icopy”+2大于“ileft”是否成立来比较变量“ileft”和“icopy”(1314)。这意味着,如果“icopy”等于0,则选择“左方预测”模式(“icopy”!=0)(1315)。如果“icopy”不同于0并且“icopy”+2大于“ileft”,则选择“从上复制”模式(1316)。对于“左方预测”模式,将“PredMode”变量设置为等于0并且将行程设置为等于“ileft”(1315)。对于“从上复制”模式,将“PredMode”变量设置为等于1并且将行程设置为等于“icopy”-1(1316)。

然后,利用当前值“Pred模式”和“run”来更新包含“Pred模式”和“run”的表(1317)。请注意,步骤(1318)中要考虑的下一位置与通过“run”值进行了递增的当前位置相对应。然后,在步骤(1319)中进行检查,以获知是否处理了最后的像素。如果为“是”,则处理完成(1320),否则针对下一像素位置评价“左方预测”和“从上复制”这两个预测模式。

在该处理结束时,编码器获知块/CU的各样本的等级,并且能够基于两个表“Pred mode”和“Run”的内容来对块/CU的相应句法进行编码。

然后,为了确定块预测,编码器根据调色板来对所定义的等级块进行转换。

在本发明的第一实施例中,针对等级块的第一行避免“Pred模式”的编码/解码。在本实施例中,对于第一行,仅使用与等级的通知相对应的模式“Pred模式”=0。实际上,“Pred模式”=1、“从上复制”预测模式可被视为不可用于第一行,这是因为不存在上方行或该上方行不在编码中的等级块内,或者如果上方行属于调色板模式,则该行不应使用同一调色板。本实施例的优点在于:节省了可利用“从上复制”预测模式的“Pred模式”的通知所用的位。

图14示出本实施例。图14基于图10。模块1401~1417与模块1001~1017相同。添加了模块1418以避免在变量j小于行中的像素的数量的情况下的“Pred模式”的解码。

本实施例的替代例是对上方行应用等级选择处理。该等级选择处理在于:使等级影响上方行的各像素。在这种情况下,“从上复制”模式具有与内部块中的“从上复制”模式相同的功能,并且可以复制该上方行的一些等级。如果该上方行属于另一调色板模式CU,则即使上方CU和当前CU的调色板可能不同,与该上方行相对应的等级也可用于当前调色板的“从上复制”模式。

在一个实施例中,“Pred模式”的解码依赖于最后解码的“Pred模式”。在最后解码的“Pred模式”等于1(“从上复制”)的情况下,不对“Pred模式”进行解码。实际上,如果最后的模式是“从上复制”,则用以选择当前等级等于上方等级的简单方式是将最后的“从上复制”的行程+1。本实施例的优点是在“从上复制”预测模式之后节省了“Pred模式”的通知。图15示出本实施例。图15基于图10。除将Last_Pred变量设置为等于0的模块1508外,模块1501~1517与模块1001~1017相同。模块1518检查该Last_Pred是否设置为等于1(“从上复制”)。如果是这种情况,则不从位流中提取变量“Pred模式”并且将该“Pred模式”设置为等于0(1519)。此外,在对等级和/或行程值进行解码之后,将变量Last_Pred设置为等于“Pred模式”。

在替代实施例中,始终对“Pred模式”进行解码,但在发生的情况下,解码处理改变。因而,在“从上复制”跟随“从上复制”的情况下,应用“Pred模式”=0而不传输等级。将所复制的等级设置为等于最后解码的等级(左方等级)。本实施例的优点是避免了“Pred模式”和最后解码的“Pred模式”之间的解析依赖性。

在一个实施例中,“Pred模式”依赖于最后解码的“Pred模式”以及左方等级和上方等级。如果最后解码的“Pred模式”等于0并且如果上方等级等于左方等级,则不对“Pred模式”进行解码。实际上,在这种情况下,用以选择当前等级等于上方等级的简单方式是将最后的“Pred模式”的行程+1。如先前实施例那样,优点是在该条件为真的情况下节省了与“Pred模式”有关的位。

在本发明的一个实施例中,解码后等级的值依赖于最后的“Pred模式”的值,并且根据该“Pred模式”,解码后等级依赖于左方等级或上方等级的值。实际上,在Last_pred等于0的情况下,等级不应等于左方等级,相反对行程值设置+1更为简单。同样,在Last_pred等于1(“从上复制”)的情况下,等级不应等于上方等级,相反对行程值设置+1更为简单。本实施例的优点是节省了等级的编码中的一些位。因而,在Last_pred等于0的情况下,如果当前等级大于左方等级,则将当前等级设置为等级-1。同样,在Last_pred等于1的情况下,如果当前等级大于上方等级,则将当前等级设置为等级-1。此外,可能的最大等级值递减。请注意,如现有技术部分所述,在当前实现中,最大值用于固定各等级的位数。注意,最大大小是Palette_size。仅在Palette_size等于2的情况下,本实施例特别高效。实际上,在这种情况下,不必对除第一等级外的等级进行编码。为了简化实现,仅在Palette_size等于2的情况下应用本实施例。

在图16的另一实施例中,“等级”值包含与行程有关的信息。特别地,如果使用固定长度编码来对“等级”进行编码,则一些可能的码字将未被利用并且可能被强制保持更多信息。在这种情况下,如果解码后的“等级”大于或等于Palette_Size,则该值与特定行程长度和“等级”相对应。在图16中,示出1617的特定情况,其中:

-行程值可被推导为“等级”-Palette_Size

-“等级”是实际作为调色板的一部分的值X(通常为0)的一些其它“等级”(即,“等级”<Palette_Size)

当然,可以想象大于或等于Palette_Size的各“等级”可以表示特定的“等级”值和“Run”值。这可能影响在这种情况下如何对行程进行实际编码:以上暗示了“等级”值和“Run”值的一些组合不具有明确传输的“Run”值。在特定示例中,获知了Palette_Size~2B-1的“等级”值对“Run”值进行编码,因而不对0~T=2B-1-Palette_Size的“Run”值进行编码。这里,P是调色板元素的数量,并且B是整数,使得2B是最小整数,由此2B≥P。在这种情况下,可以使解码后的“Run”值递增T。考虑到这一点,还可以设想该特定情况所用的特定熵编码(步骤1614)、例如3阶指数Golomb码。

图17示出等级(或代表索引)编码的简化实施例,其目的是仅例示该编码。结果,步骤17.3~17.15是对本实施例而言重要的步骤,而其它步骤保持自动简化。设“idx”是要根据光栅扫描顺序进行编码的当前等级在等级块中的位置,|v|是与所述块相对应的阵列,W是(以每行的等级数量为单位的)块宽度,并且M是当前调色板中的元素数量。因而步骤17.1最显著地是通过将块中的当前位置“idx”设置为0,来对进行索引编码的回路进行初始化。步骤17.2检查是否必须对等级进行编码:在优选实施例中,这与检查位置“idx”处的预测模式是否是“从左复制”相似。

如果无需对等级进行编码,则处理直接跳至步骤17.16,否则处理继续步骤17.3。该步骤通过将要编码的变量“val”的值设置为|v|[idx]并且将稀疏列表中的可能等级的数量“M”设置为“M”(即,存在元素),来准备等级的编码。然后,步骤17.4检查最后的模式、即光栅扫描顺序中的先前使用的预测模式是否是“从左复制”。如果(例如,由于“idx”为0或者由于最后的模式是已知为“逃逸模式”的模式或者由于最后的模式不是“从左复制”)无法确定,则处理继续进行步骤17.5,否则进行步骤17.6,并且将临时变量“TH”设置为光栅扫描顺序中的先前等级,然后进入步骤17.8。

在另一实施例中,步骤17.4可以包括检查位置“idx-1”处的预测模式(最后的模式)是否是“从左复制”并且检查位置“idx-1”处的等级是否满足特定条件、特别是检查位置“idx-1”处的等级是否小于预定阈值LIMIT(极值)(诸如“|v|[idx-1]<LIMIT”等)。该新实施例对于“行程”功能已用于对先前块进行编码的情况特别有用,该功能暗示了针对具有相同等级的所有连续块编码相同的值。然而,在本实施例中,可以针对阈值LIMIT以上的块停用行程功能。返回至步骤17.5,该步骤检查先前模式是否是“从上复制”。关于步骤17.4,如果不能进行判断或者判断为否,则处理完全跳至步骤17.11,否则通过从位置减去与每行的等级数量W相等的值,来将变量TH的值设置为按光栅扫描顺序位于当前等级的上方的等级。然后,以与17.6的处理相同的方式,处理进入步骤17.8。这两个实施例都设置了稀疏列表中正缺失的变量TH。

实际上,变量TH表示根据所使用的最后模式而在位置idx处无法采用的等级值。例如,如果最后模式是“从左复制模式”,则idx处的等级不能与idx-1的等级相同,否则本应利用最后模式进行编码。

因此,在步骤17.8中将M'设置为M-1。然后,步骤17.9将要编码的值“val”与变量TH的值进行比较:如果要编码的值“val”大于TH,则在步骤17.10中使要编码的值递减。实际上,如果val的值小于TH,则该值不受步骤17.8影响。在所有情况下,之后进行步骤17.11。

这里,将M'与1进行比较。如果仅存在一个可能的等级,则可以推断该等级的值,并且可以完全跳过等级编码,因而处理跳至步骤17.16。

否则,在步骤17.12中,考虑到可能的等级的数量M',确定位数N(N≥0)和整数值R(0<R≤2N),使得M'=2N–R,在作为代替取N=N+1和R=2N时,为特殊情况M'=2N。N或R的值可以存储在表中或者可以是计算出的。例如,可以设想如下的系统:可以根据M'来容易地计算N或2N或它们的一些变形,因此可以容易地推导出R。因此,对于M'=5,将会是R=3且N=3,并且对于M'=8,将会是R=8且N=4。然后,可以进行步骤17.13。这些值被设计成使得索引码字的编码和解码简单,但本领域技术人员将理解,可以采用不同的决定和码字以实现将较短的码字赋予特定等级的同一目标。

可以注意到,如果M'=2N,则发生特殊情况,并且之后始终进行N+1-1代替N-1位的步骤17.14。这可以作为图18中的附加检查和步骤来实现,但特别是在使用表来实现的情况下,更为简单的做法是使步骤17.12求出满足该行为的值。

步骤17.13将要编码的值“val”与R进行比较。如果该要编码的值“val”小于R,则如步骤17.14的做法那样,实际可以将该值编码在N-1位上。否则,需要N位,并且作为代替,在步骤17.15中,将val+R编码在N位上。进行该操作,以使得解码器在决定是否要对附加位进行解码之前,可以仅检查N-1位,这将通过图18来更清楚地说明。

返回图17,无论是在步骤17.14还是17.15中,处理均继续进行17.16。这仅仅是回路处理,其中在该回路处理中,至少将位置更新为要编码的下一元素。一旦更新了位置,则在步骤17.17中可以判断是否到达块的末尾:如果没有到达块的末尾,则处理循环回步骤17.2,否则处理在步骤17.18结束。

讨论示出图17的相应解码处理的图18,其中保持了“idx”、“val”、“M”、“Μ'”、“N”和“R”的相同含义。步骤18.1例如通过将idx设置为0来对等级的解码进行初始化。然后,步骤18.2检查当前模式是否是“从左复制”:如果不是,则无需对等级(或索引)进行解码,并且处理跳至步骤18.20。否则,将Μ'设置为M。步骤18.4和18.5分别检查先前使用的模式是否分别是“从左复制”和“从上复制”,从而如果是这种情况则分别进入步骤18.6和18.7、或者如果不是这种情况或无法确定该先前模式则分别进入步骤18.5和18.9。步骤18.6和18.7在进入步骤18.8之前,将TH设置为缺失等级(分别为前一等级和上方等级),其中在该步骤18.8中,将M'设置为M-1,这是因为缺失了等级。另一方面,步骤18.9将TH设置为表示不存在缺失值的最大值MAX。然后,在步骤18.8和18.9之后进行步骤18.10。

步骤18.10检查是否仅存在一个可能的等级,其中在这种情况下,该等级是隐式的:在步骤18.11中,将解码后的值val设置为0。否则,与步骤17.12中的做法相同,在步骤18.12期间确定N和R。如在描述图17时所述,首先,在步骤18.13中从N-1位读取“val”。这样使得能够在步骤18.14中验证val是否为R以下:如果是这种情况,则编码后的值实际是编码在N-1位上的并且已对该编码后的值进行了完全解码,因而处理进入步骤18.17。否则,在步骤18.15中再读取一位。然后,步骤18.16可以确定实际的编码后的值2*val+bit-R,其中“bit”是所读取的位的值(0或1)。既然已确定了编码后的值,因此可以进行步骤18.17。

这些是步骤17.9和17.10的相反处理:如果解码后的值为TH以下,则解码后的值是实际等级,因而步骤18.18将该解码后的值设置为“val”。否则,发生了步骤17.10,因此步骤18.19通过将当前等级设置为val+1来进行相反的处理。应当注意,步骤18.9将TH设置为最大值MAX,使得绝不进行步骤18.19。在任何情况下,下一步骤18.20将idx更新为下一位置,然后进入步骤18.21。该步骤验证是否到达块的末尾,其中在这种情况下,等级解码在步骤18.22中停止,否则处理循环回步骤18.2。

更一般地,上述的稀疏列表可以是值减去任何预定等级值的列表,其中任何预定等级值表示如上所述的左方等级值或上方等级值、以及与左方或上方等级值相组合或不与左方或上方等级值相组合的任何其它预定等级值。

图19示出用于更新稀疏列表的另一实施例。本实施例提出了用于在存在三个或更多个预定等级或索引值(这意味着考虑三个或更多个预测模式)的情况下对稀疏列表进行处理的方法。在优选实施例中,如果P是可利用的预测模式的数量,则可以去除多达P-1个等级值以获得稀疏列表。实际上,如果需要使用预测模式其中之一(例如,“从左复制”)来对等级值进行编码,则这意味着不选择其它模式(例如,“从上复制”或图21所示的被称为“转变模式”的模式),并且特别地,关联的等级值不可用。相同的推论还适用于所使用的模式是“从上复制”或“转变模式”的情况。换句话说,如果先前索引的模式是“从上复制”或“转变”模式,则无法重复左方的等级,这是因为左方的行程本应递增1以涵盖当前像素/等级。

处理与图17非常相似:除考虑到稀疏列表中的被禁止的一个以上的等级值的步骤19.4~19.10外,步骤在这两个图之间相同。

步骤19.4使得能够确定与P个其它模式相关联的等级值,其中这些其它模式的列表可能依赖于先前使用的模式。例如,可以考虑“从左复制”模式、“从上复制”模式和转变模式这三个模式,其中该转变模式使得能够通过隐式参考图案表的预定值来对给定像素的等级值进行编码。该图案表包含最后处理的像素的值和要编码的当前像素的关联值。以下通过参考图21来更详细地说明转变模式。

如此生成了禁止等级的第一列表L。然后,步骤19.5将列表L过滤成缩小列表L'。第一个实施例在于:按等级的降序来对L进行排序,然后去除重复的等级值并且将结果存储在L'中。因此,如果L等于{6,0,4,1,6},则L'等于{6,4,1,0}。

在另一实施例中,由于重复值的排序和去除可能是复杂的,因此仅对L的子集进行处理。例如,所述子集如下:获得列表L中的最小等级值的数量Q,并且获得L'中的数量R(诸如R≤Q等)个等级值,其中最显而易见的实施例是R=Q=1。

过滤处理暗示了当前调色板的新排序,以考虑到禁止等级值。例如,如果当前调色板等于{0,1,2,3,4,5,6,7},则在去除了L'的禁止等级值之后,当前调色板变为{2,3,5,7}。然后,在以下所述的处理之后,将各个索引2、3、5和7分别编码为0、1、2和3。

结果,确定了p个等级值(p等于L'大小),使得0<p≤P(P是模式的数量),并且稀疏列表当前包含M'=M-p个元素。在步骤19.6中,计算稀疏列表的大小M'。此外,通过将回路计数器i设置为0来选择L'中的第一个元素。

然后,步骤19.7检查在L'中是否剩余元素:如果在L'中没有剩余元素,则L'已被完全使用,并且处理继续与前面所述的步骤17.11相似的步骤19.11。否则,步骤19.8以与步骤17.9相同的方式进行工作。将临时变量TH设置为缩小列表L'的第一个值(i=0)。

如果值val为变量THi以上,则在步骤19.9中使val递减以考虑上述的稀疏列表的排序。在任何情况下,处理继续步骤19.10,其中该步骤19.10例如通过使回路计数器i递增来选择L'中的下一等级。结果,变量THi取新的值。然后,处理可以循环回步骤19.7。

图20示出相应的解码处理。步骤20.1~20.3、20.10~20.16和20.20~20.22与图18中的这些步骤的版本相同。步骤20.4与步骤19.4相同。步骤20.5可以与步骤19.5相同。结果,确定了包含p个元素的列表L',从而在步骤20.6中得到稀疏列表的新的大小M'=M-p。

然后,以相反方式进行步骤19.7~19.10所述的处理。因而,步骤20.7例如通过将回路计数器设置为p-1来选择列表L'中的最高等级。由于p可以等于0或者已经处理了L'中的最低等级,因此步骤20.8检查回路计数器。在本实施例中,已按升序对L'进行了排序。如果通过步骤20.9、20.17和20.18已处理了L'中的所有元素(这意味着考虑了所有的可能值),则等级值val已进行了完全解码并且在步骤20.19中产生影响。否则,在步骤20.9中将val与列表L'的当前等级THi进行比较。如果val低于THi,则无需进行处理,否则在步骤20.17中,使val递增。最后,在返回至步骤20.8的测试之前,经由步骤20.18,通过使i递减来选择列表L'的下一等级。

根据步骤19.7~19.10的处理,可以简化上述解码处理。例如,列表L'可以包含多达一个元素,这使得例如如18.6或18.7所示在适当设置了TH的情况下能够如步骤18.17~18.19那样进行重复使用。用以仅获得列表L'中的一个元素的一个解决方案是从列表L中选择最小等级值以获得列表L'。

根据另一实施例,在步骤20.5中可以按降序对L进行排序、并且相应地修改步骤20.7、20.8和20.18。

分割成图21a和21b的图21示出命名为转变模式的预测模式。根据优选实施例,该模式是图19和20的实施例所用的预测模式其中之一。

图21a示出图案、即多个相邻调色板等级和位置和等级的关联。图案编码的主旨是利用要编码的块中的冗余。通常,在块内发生相同的转变。这意味着可以在块的不同位置发现像素的子集。因此,转变模式通常以图案表的形式存储一些图案。图案定义了包围对象像素的给定布置中的像素的子集。假定针对图案的不同发生,对象像素的等级的值相同。在这种情况下,可以通过使用图案预测模式来免去等级值的编码。通过在所存储的图案中寻找与对象像素的实际周围相对应的图案来获得对象像素的实际值。图案表中的与所识别出的图案相关联的等级值给出了对象像素的等级的实际值。即,被称为转变模式的新预测模式使得能够通过隐式参考图案表的预定值来对给定像素的等级值进行编码。

例如,图案21.1使x的值与其左方相邻等级相关联,而21.2使用上方近邻,并且21.3使用两者。如21.4~21.6所示,应当理解,该所谓的图案的性质是多样化的,并且这里关键性质是可以使特定等级值与等级值的近邻相关联。图21b通过使图案21.1的左方等级值与21.1的右方等级的值x相关联来示出该处理。对本领域技术人员而言显而易见的是,该表如何能够适应于任何形式的图案。当然,可以在编码或解码的任何时间点对该表进行初始化或更新。

以下段落描述附加的优选实施例。

图22是用于实现本发明的一个或多个实施例的计算装置2400的示意框图。计算装置2400可以是诸如微计算机、工作站或轻盈便携式装置等的装置。计算装置2400包括通信总线,其中该通信总线连接至以下组件:

-诸如微处理器等的表示为CPU的中央处理单元2401;

-表示为RAM的随机存取存储器2402,用于存储本发明实施例的方法的可执行代码以及根据本发明的实施例的如下寄存器,其中这些寄存器被配置为记录实现用于对图像的至少一部分进行编码或解码的方法所需的变量和参数,其中RAM 2402的存储器容量例如可以利用连接至扩展口的可选RAM来扩展;

-表示为ROM的只读存储器2403,用于存储实现本发明实施例所用的计算机程序;

网络接口2404,其通常连接至发送或接收要处理的数字数据所经由的通信网络。网络接口2404可以是单个网络接口、或者包括不同的网络接口(例如,有线接口和无线接口或者不同种类的有线接口或无线接口)的集合。在CPU 2401中所运行的软件应用程序的控制下,将数据包写入网络接口以进行发送或者从网络接口读取数据包以进行接收;

-用户接口2405,其可用于从用户接收输入或向用户显示信息;

-表示为HD的硬盘2406,其可被设置为大容量存储装置;

-I/O模块2407,其可用于相对于诸如视频源或显示器等的外部装置进行数据的发送/接收。

可执行代码可以存储在只读存储器2403中、硬盘2406上或者例如盘等的可移除数字介质上。根据变形例,程序的可执行代码可以利用通信网络经由网络接口2404来接收,从而在执行之前存储在通信装置2400的诸如硬盘2406等的存储部件其中之一内。

中央处理单元2401被配置为控制和引导根据本发明实施例的一个或多个程序的指令或软件代码的一部分的执行,其中这些指令存储在上述存储部件其中之一内。在通电之后,CPU 2401例如能够在从程序ROM 2403或硬盘(HD)2406加载了来自主RAM存储器2402的与软件应用程序有关的指令之后,执行这些指令。这种软件应用程序在由CPU 2401执行的情况下,使得进行图6~7b和10~20所示的流程图的步骤。

在本实施例中,该设备是使用软件来实现本发明的可编程设备。然而,可选地,本发明可以以硬件(例如,以专用集成电路或ASIC的形式)来实现。

例如,被称为“逃逸模式”的已知模式(参见图7b和8b)在于:例如通过使用特定等级值来通知利用等级值不能表示像素、并且该像素的像素值是显式传播的。优选实施例是仅在调色板达到该调色板可以包含的值的最大数量的情况下,才插入逃逸标志。在这种情况下,调色板仅包含MAX-1个索引(MAX是调色板可以包含的值的最大数量),其中调色板中的位置MAX处的值是逃逸等级。在这种情况下,从值的列表中所减去的预定等级值是调色板的最后索引。

如果模式是从左复制,则可以启用该最后一个实施例。例如,通过参考图17(或图19),将在步骤17.2和17.3之间添加新步骤以使M减小1。本领域技术人员将理解,特定等级预测模式(除从上复制或从左复制外)可能或不能得到特定稀疏列表、以及如何将这里所提出的概念扩展至该特定模式。

如现有技术所述,禁止使用无元素的调色板,并且将Palette_size设置为等于解码后的大小+1(对Palette_size-1进行编码)。在一个实施例中,还禁止了等于1的值Palette_size。实际上,在于:仅使用调色板中的一个颜色来对恒定块进行编码,并且在视频编解码器中,如果一个块针对所有像素包含相同值或大致相同的值,则存在其它的高效模式。并且在这种情况下,调色板模式实际上不是最佳的。例如,帧内DC模式更加高效。因而,本实施例在于,通过以下等式来改变图10的模块1003的操作:

Palette_Size=Size+2

(代替Palette_Size=Size+1)

可以组合所有这些实施例。

尽管以上已经参考具体实施例说明了本发明,但本发明不限于这些具体实施例,并且本领域技术人员将明白存在于本发明的范围内的变形。

在参考仅以示例方式给出而并不意图限制本发明的范围的前述例示实施例的情况下,许多其它修改和改变对本领域普通技术人员是不言自明的,其中所述范围仅由所附权利要求书来确定。特别地,在适当情况下,可以互换来自不同实施例的不同特征。

在权利要求书中,词语“包括”没有排除其它要素或步骤,并且不定冠词“a”或“an”没有排除多个。在相互不同的从属权利要求中陈述不同的特征的仅有事实并不表明不能有利地使用这些特征的组合。

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