首页> 中国专利> 对自包含式编码结构进行编码或解码时的调色板预测结果初始化程序

对自包含式编码结构进行编码或解码时的调色板预测结果初始化程序

摘要

本发明涉及用于使用如HEVC SCC中所定义的调色板预测模式来对图像进行处理、例如将图像编码在位流中或从位流解码图像的方法和装置。图像被分割成分层编码结构。在解码器处,该方法包括以下步骤:使用调色板编码模式对具有相同分层等级的两个自包含式编码结构的编码数据进行解码,该调色板编码模式针对两个编码结构的处理后的各块使用包括使各个条目索引与相应像素值相关联的条目的关联调色板,其中与处理后的各像素块相关联的调色板是使用来自位流的预测信息根据调色板预测结果所预测的;从位流获得与以分层方式位于两个自包含式编码结构上方的编码结构相关联的调色板预测结果初始化程序;以及使用所获得的相同调色板预测结果初始化程序来针对每一个自包含式编码结构对调色板预测结果进行初始化。

著录项

  • 公开/公告号CN107211122A

    专利类型发明专利

  • 公开/公告日2017-09-26

    原文格式PDF

  • 申请/专利权人 佳能株式会社;

    申请/专利号CN201680008164.6

  • 发明设计人 C·吉斯科特;G·拉罗彻;P·乌诺;

    申请日2016-01-29

  • 分类号

  • 代理机构北京魏启学律师事务所;

  • 代理人魏启学

  • 地址 日本东京都大田区下丸子3丁目30番2号

  • 入库时间 2023-06-19 03:27:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-05

    授权

    授权

  • 2017-10-27

    实质审查的生效 IPC(主分类):H04N19/103 申请日:20160129

    实质审查的生效

  • 2017-09-26

    公开

    公开

说明书

技术领域

本发明涉及用于使用调色板(palette)预测模式来对至少一个图像进行处理、例如将这些图像编码到位流中或者从位流中解码这些图像的方法和装置。本发明特别涉及如在HEVC画面内容编码(Screen Content Coding,SCC)扩展中所介绍的调色板模式编码。

背景技术

本发明更特别地适用于基于利用所谓的调色板进行编码后的或者根据调色板构建得到的各个索引块来分别对像素块进行编码的编码模式。

本文献中的调色板被定义为具有使索引与像素的值相关联的条目或“元素”的查找表。通常,各条目包括如后面所述的一个或三个元素。各元素涉及针对颜色分量的像素值。例如,如果图像是单色,则调色板的各条目包括针对唯一颜色分量的一个元素。

换句话说,通常但并非必需地,像素的值包括与该像素相关联的各颜色分量的值,这样得到彩色调色板。然而,像素的值可以由单个像素分量(命名为“元素”)构成,这样得到单色调色板。

通常将对像素块进行编码的该模式称为调色板编码模式。例如,在高效视频编码国际标准的画面内容编码(SCC)扩展(参见文献JCTVC-S1005)中,考虑采用该模式。

在对视频序列中的图像进行编码的情况下,首先将该图像分割成被称为编码树块(CTB)的大小相等的像素的编码实体(还称为“编码结构”)。可以将CTB分组成诸如条带(slice)和/或区块(tile)等的具有更高分层等级的其它编码结构。换句话说,将图像递归地分割成分层编码结构或编码实体。

编码树块的大小通常是64×64个像素。然后,各编码树块可分解成较小块的分层树,其中这些较小块的大小可以改变,并且这些较小块是要编码的实际像素块。将要编码的这些较小块称为编码单元(CU)。

特定编码单元的编码涉及包括众所周知的INTRA(帧内)编码模式、众所周知的INTER(帧间)编码模式和调色板编码模式的预测编码模式之间的竞争。

利用调色板编码模式,可以将针对给定编码单元的代表块定义为来自调色板的索引块:针对编码单元中的各像素位置,所述代表块包含与调色板中的如下像素值相关联的索引,其中该像素值最接近于编码单元中位置相同(即,同位置)的像素的值。然而,用于选择最接近的调色板条目的该基于调色板的算法在HEVC SCC中仅是编码器:不必知晓所述算法以解析或解码位流。通常,最接近意味着具有使用诸如分量值的绝对值和或者平方、差等的特定度量距离的最低距离。特别地,在无损编码的情况下,这意味着调色板条目应被编码器选择为等于像素。在下文,使用“与…相对应”或者“与…一致”来表示无损编码时的“等于”、或者其它情况下的“最接近”。

在HEVC SCC的最近版本中,没有设置原始像素块和相应的基于调色板的代表像素块之间的残差。为了避免编码后图像中的高质量下降,引入了“逃逸编码”特征来对像素进行编码,其中这些像素的值与调色板的条目的像素值不一致。这意味着,在无损编码中,没有调色板条目等于像素值。在这种情况下,使用调色板中的特定索引来通知“逃逸编码”像素;并且将逃逸编码像素的量化值本身直接编码在位流中,其中该量化依赖于以CU等级所发送的量化步长。在无损编码的情况下,量化步长为0,这意味着不进行量化。量化在HEVC标准中被定义为变换旁路量化,并且使用截断二进制代码来对量化值进行编码。

因而,调色板编码模式使用当前调色板来构建代表当前编码单元或像素块的索引块。调色板中的条目索引还已知为“等级(level)”。

在使用调色板模式的情况下,经常在对图像进行编码的位流中传输调色板以及索引或“等级”块。由于需要针对各编码单元传输可能包括数十个条目的调色板,因此这表示信令的成本高。

在申请人在JCT-VC(No.JCTVC-Q0063标题为“AhG10:palette predictorstuffing”,17th Meeting:Valencia,ES,2014年3月27日~4月4日)的贡献中,提出了使用调色板预测结果(例如,(针对最后处理的编码单元的)最后使用的调色板)来预测针对当前编码单元的当前调色板。由于不再针对各编码单元完全明确地传输调色板,因此该方法的目的在于降低编码成本。

另外,所提出的另一预测机制依赖于原样重复使用完整的前一调色板,其中这种重复使用是利用标志palette_share_flag来表示并且要求解码器存储所述调色板的大小。然而,在预测结果的开头不必原样存储该调色板。

然而,一些编码特定性可能会破坏图像的所有编码单元中的调色板预测方案。这是如条带和区块那样的编码结构的情况。

在HEVC中引入了条带编码结构和区块编码结构,以在图像序列(视频)中的数据损失的情况下提供再同步。注意,如HEVC标准中所定义的独立区块包括至少一个条带并且在空间上独立于其它区块。

为了获得再同步性质,彼此独立地对条带和区块进行编码/解码。换句话说,这些条带和区块是“自包含”的,这意味着例如在条带或区块的边界不进行INTRA预测,并且IBC(Intra Block Copy,帧内块复制)预测所用的熵编码状态或调色板预测结果或区域不与先前处理的条带或区块共享(或者不是从先前处理的条带或区块继承来的)。

因而,再同步性质使得可用于预测的数据不再可用,因此降低了编码效率。在申请人的贡献JCTVC-Q0063中,在开始对新的独立条带或区块进行编码的情况下、或者甚至在开始对新的一行CTB(已知为波前(Wavefront)编码)或者新的图像或帧进行编码的情况下,调色板预测结果被重置为零。申请人的贡献JCTVC-Q0063中的另一方法涉及:将选择调色板预测结果所来自于的调色板的集合重置为(在解码器处)局部确定的默认调色板。例如,该默认调色板由均等地分布在颜色空间上的像素值构成。

特别是针对在同一个图像内信息冗余性的程度高的SCC的情况,该方法明显不令人满意。

此外,一些编码特定性可能会破坏图像的所有编码单元中的调色板预测方案。这是如条带和区块那样的编码结构的情况。结果,在标题为“HEVC Screen Content CodingDraft Text 3”,21st>

然而,通知颜色格式在参数值中引入了冗余性或潜在的一些不兼容性。

发明内容

本发明是为了克服上述缺陷中的全部或一部分而设计的。特别地,本发明旨在使用调色板模式来提高编码效率,例如大幅降低使用诸如条带或区块等的编码结构时的信令成本。

在第一方面中,本发明提供一种用于从位流中解码至少一个图像的方法,所述图像被分割成包括多个条带的分层编码结构,所述多个条带各自在所述图像中具有相同的分层等级,所述方法包括以下步骤:

使用调色板编码模式来对两个条带的编码数据进行解码,所述调色板编码模式针对所述两个条带的处理后的各像素块使用包括条目的集合的关联调色板,所述条目的集合使各个条目索引与相应的像素值相关联,其中与处理后的各像素块相关联的调色板是使用来自所述位流的预测信息根据调色板预测结果所预测的;

从所述位流中获得与以分层方式位于所述条带上方的编码结构相关联的调色板预测结果初始化程序;以及

使用所获得的调色板预测结果初始化程序来针对所述两个条带各自对所述调色板预测结果进行初始化,

其中,初始化后的调色板之后的各调色板预测结果包括与当前解码的块相关联的当前调色板的所有条目以及用于预测所述当前调色板的调色板预测结果中的不用于预测所述当前调色板的一个或多个条目。

在第二方面中,本发明提供一种用于将至少一个图像编码在位流中的方法,包括以下步骤:

通过对所述图像进行分割来获得分层编码结构;

彼此独立地对所述图像的两个编码结构的数据进行编码,以获得在所述图像中具有相同的分层等级的编码后的两个条带,其中所述编码使用调色板编码模式,所述调色板编码模式针对所述两个条带的各像素块使用包括条目的集合的关联调色板,所述条目的集合使各个条目索引与相应的像素值相关联,其中所述编码步骤包括确定预测信息,所述预测信息根据调色板预测结果来预测与处理后的各像素块相关联的调色板;

确定用以针对所述两个条带对所述调色板预测结果进行初始化的调色板预测结果初始化程序;以及

在所述位流中,提供包括所述预测信息的编码数据并且提供所述调色板预测结果初始化程序,其中所述调色板预测结果初始化程序与所述位流中的以分层方式位于所述两个条带上方的编码结构相关联,

其中,在所述调色板编码模式中,初始化后的调色板预测结果之后的各调色板预测结果包括与当前编码的块相关联的当前调色板的所有条目以及用于预测所述当前调色板的调色板预测结果中的不用于预测所述当前调色板的条目。

在实施例中,所述调色板预测结果初始化程序是在图片参数集即PPS中按照图像等级所定义的,以及所述两个条带参考所述图片参数集。

在实施例中,所述调色板预测结果初始化程序是在序列参数集(SequenceParameter Set)即SPS中按照序列等级所定义的,以及两个自包含式编码结构参考所述序列参数集。

在实施例中,在所述序列参数集中,在表示所述调色板编码模式是否启用的第一字段之后并且在包括针对所述调色板预测结果的最大大小的第二字段之后,定义所述调色板预测结果初始化程序。

在实施例中,所述调色板预测结果初始化程序是在包括所述两个条带的区块中按照区块等级所定义的,以及所述两个条带各自标识该条带所属的区块。

在实施例中,针对所述两个条带的所述初始化步骤是在对各个条带中的第一个像素块进行解码之前进行的。

在实施例中,用于根据调色板预测结果来预测调色板的所述预测信息包括标志的位图,其中各标志用于定义所述调色板预测结果中的相应条目是否被选择为用以生成所述调色板中的条目的条目。

在第二方面的实施例中,确定调色板预测结果初始化程序包括:使用所述调色板编码模式来对分散在以分层方式位于所述两个条带上方的所述编码结构所定义的图像区域上的像素块的子集进行编码;以及使用所述编码步骤结束时所获得的调色板预测结果作为所述调色板预测结果初始化程序。

所述子集的像素块可以沿着所述图像区域的斜线或对角线分布。

所述子集的像素块可以在所述图像的顶部水平对齐。

所述子集的像素块可以是不连续的。

在实施例中,确定调色板预测结果初始化程序包括:递归地对像素块的同一子集进行编码,其中下一递归编码循环所使用的第一个调色板预测结果是在先前递归编码循环结束时所获得的调色板预测结果。

在实施例中,所述条带包括在两个单独图像中。

在实施例中,所述条带包括在同一图像中。

在实施例中,所述调色板的大小是使用用于对所述调色板预测结果进行初始化的所述调色板预测结果初始化程序的大小所设置的。

在实施例中,所述方法还包括以下步骤:获得与颜色分量的数量有关的信息,其中所述调色板预测结果初始化程序的结构是基于与颜色分量的数量有关的所述信息。例如,所述信息可以是用于通知所述图像是否是单色图像的标志。

在本发明的第三方面中,提供一种解码装置,用于从位流中解码至少一个图像,所述图像被分割成包括多个条带的分层编码结构,所述多个条带各自在所述图像中具有相同的分层等级:

解码部件,用于使用调色板编码模式来对两个条带的编码数据进行解码,所述调色板编码模式针对所述两个条带的处理后的各像素块使用包括条目的集合的关联调色板,所述条目的集合使各个条目索引与相应的像素值相关联,其中与处理后的各像素块相关联的调色板是使用来自所述位流的预测信息根据调色板预测结果所预测的;

获得部件,用于从所述位流中获得与以分层方式位于所述两个条带上方的编码结构相关联的调色板预测结果初始化程序;以及

初始化部件,用于使用所获得的调色板预测结果初始化程序来针对所述两个条带各自对所述调色板预测结果进行初始化,

其中,在所述调色板编码模式中,初始化后的调色板预测结果之后的各调色板预测结果包括与当前解码的块相关联的当前调色板的所有条目以及用于预测所述当前调色板的调色板预测结果中的不用于预测所述当前调色板的一个或多个条目。

在本发明的第四方面中,提供一种用于将至少一个图像编码在位流中的编码装置,所述编码装置包括:

获得部件,用于通过对所述图像进行分割来获得分层编码结构;

彼此独立地对所述图像的两个编码结构的数据进行编码,以获得在所述图像中具有相同的分层等级的两个条带,其中所述编码使用调色板编码模式,所述调色板编码模式针对所述两个条带的各像素块使用包括条目的集合的关联调色板,所述条目的集合使各个条目索引与相应的像素值相关联,其中所述编码步骤包括确定预测信息,所述预测信息根据调色板预测结果来预测与处理后的各像素块相关联的调色板;

确定用以针对所述两个条带对所述调色板预测结果进行初始化的调色板预测结果初始化程序;以及

在所述位流中,提供包括所述预测信息的编码数据并且提供所述调色板预测结果初始化程序,其中所述调色板预测结果初始化程序与所述位流中的以分层方式位于所述两个条带上方的编码结构相关联,

其中,在所述调色板编码模式中,初始化后的调色板预测结果之后的各调色板预测结果包括与当前编码的块相关联的当前调色板的所有条目以及用于预测所述当前调色板的调色板预测结果中的不用于预测所述当前调色板的条目。

在本发明的第五方面中,提供一种计算机程序,其中所述计算机程序在被执行的情况下,使得进行根据前述任一陈述所述的方法。

在又一方面中,本发明提供一种用于从位流中解码至少一个图像的方法,所述图像被分割成分层编码结构,所述方法包括以下步骤:

使用调色板编码模式来对所述图像中具有相同分层等级的两个自包含式编码结构(即,独立于相同分层等级的其它编码结构而进行编码的编码结构)的编码数据进行解码,所述调色板编码模式针对所述两个自包含式编码结构的处理后的各像素块使用包括条目的集合的关联调色板,所述条目的集合使各个条目索引与相应的像素值相关联,其中与处理后的各像素块相关联的调色板是使用来自所述位流的预测信息根据调色板预测结果所预测的;

从所述位流中获得与以分层方式位于所述两个自包含式编码结构上方的编码结构相关联的调色板预测结果初始化程序;以及

使用所获得的相同的调色板预测结果初始化程序来针对所述两个自包含式编码结构各自对所述调色板预测结果进行初始化。

以对称方式,本发明还提供一种用于将至少一个图像编码在位流中的方法,所述方法包括以下步骤:

通过对所述图像进行分割来获得分层编码结构;

独立于在所述图像中具有相同的分层等级的每个其它编码结构来对所述图像的两个编码结构的数据进行编码,以获得编码后的两个自包含式编码结构,所述编码使用调色板编码模式,所述调色板编码模式针对所述两个自包含式编码结构的处理后的各像素块使用包括条目的集合的关联调色板,所述条目的集合使各个条目索引与相应的像素值相关联,其中所述编码步骤包括确定预测信息,所述预测信息根据调色板预测结果来预测与处理后的各像素块相关联的调色板;

确定用以针对所述两个自包含式编码结构对所述调色板预测结果进行初始化的一个调色板预测结果初始化程序;以及

在所述位流中,提供包括所述预测信息的编码数据并且提供所述调色板预测结果初始化程序,其中所述调色板预测结果初始化程序与所述位流中的以分层方式位于所述两个自包含式编码结构上方的编码结构相关联。

相关地,本发明一种解码装置,用于从位流中解码至少一个图像,所述图像被分割成分层编码结构,所述解码装置包括至少一个微处理器,所述至少一个微处理器被配置为执行上述解码方法的步骤。本发明还提供一种编码装置,用于将至少一个图像编码在位流中,所述编码装置包括至少一个微处理器,所述至少一个微处理器被配置为执行上述编码方法的步骤。

由于本发明,提高了编码效率。这主要通过使用按照与需要对调色板预测结果进行初始化的编码结构其中之一相比严格更高的分层等级所定义的调色板预测结果初始化程序来实现。这是因为,多个独立的编码结构(例如,条带)可以以低成本(即,在无需在位流中多次发送的情况下)使用相同的调色板预测结果初始化程序。

本发明的实施例的可选特征是在所附权利要求书中所定义的。这里以下参考方法来说明这些特征中的一些特征,而该一些特征可被变换成专用于根据本发明实施例的装置的系统特征。

在实施例中,所述调色板预测结果初始化程序是在图片参数集即PPS中按照图像等级所定义的;并且两个自包含式编码结构参考所述图片参数集。该规定与编码器端的一些优化完全兼容,诸如在特定量的帧或时间之后更新调色板预测结果初始化程序、或者针对图像的各子区域(例如,区块或任意子区域)使用调色板预测结果初始化程序等。

在变形例中,所述调色板预测结果初始化程序是在序列参数集即SPS中按照序列等级所定义的;并且两个自包含式编码结构参考所述序列参数集。关于上述的PPS方法,该变形例不要求自包含式编码结构(例如,条带)等级的附加数据。这是因为,向SPS(或PPS)的参考已存在于自包含式编码结构(例如,条带)的通知中。如此编码效率大大提高。

根据特定特征,在所述序列参数集中,在表示所述调色板编码模式是否启用的第一字段之后并且在包括针对所述调色板预测结果的最大大小的第二字段之后,定义所述调色板预测结果初始化程序。由于例如在第一字段表示调色板编码模式没有启用的情况下不必进行调色板预测结果初始化程序确定,因此该规定优化了处理成本。

在另一变形例中,两个自包含式编码结构是条带;以及所述调色板预测结果初始化程序是在包括两个自包含式编码结构的区块中按照区块等级所定义的;以及两个自包含式编码结构各自识别该自包含式编码结构所属的区块。与PPS中的初始化程序的定义相比,该规定使得可以限制PPS ID的增加。这是因为,不再需要针对所声明的各新的调色板预测结果初始化程序提供新的PPS ID。要注意,可以在PPS内定义初始化程序的列表,其中各初始化程序与特定区块相关联。

关于解码,实施例可以规定:针对两个自包含式编码结构中的任意自包含式编码结构的初始化步骤是在对所考虑的自包含式编码结构中的第一个像素块进行解码之前进行的。这是因为,由于“自包含”性质,因而第一个块的编码/解码无法继承来自先前像素块或编码结构的(包括调色板预测结果的)数据。

在一些实施例中,针对两个自包含式编码结构其中之一中的下一像素块的下一调色板预测结果是根据用于对同一自包含式编码结构中的当前像素块进行编码的当前调色板所构建的。在这种情况下,对所述调色板预测结果进行初始化而不是扩展所述调色板预测结果是有利的,这是因为在后者情况下,扩展后的调色板预测结果随后可能最终变得具有重复值。

注意,在所考虑的编码结构内,通常根据扫描顺序(例如,光栅顺序)来连续地考虑像素块。例如,使用下一调色板预测结果来在与其它编码模式(INTRA、INTER等)的竞争期间评价调色板编码模式。在没有针对下一像素块选择调色板编码模式的情况下,可以将“下一调色板预测结果”用于再下一像素块。

上述规定表明,调色板预测结果必然随着对编码结构(例如,条带)内的像素块进行编码而动态地演变。

在特定实施例中,下一调色板预测结果是仅根据当前调色板和用于预测该当前调色板的当前调色板预测结果所构建的。

特别地,可以通过选择当前调色板的所有条目并且选择当前调色板预测结果中的没有用于预测当前调色板的条目来构建下一调色板预测结果。该方法在对像素块进行编码时,利用可以添加至当前调色板的新颜色来递增地补充自包含式编码结构中所使用的调色板预测结果。结果,随着像素块的遍历,调色板编码模式变得越来越高效。

在实施例中,用以根据调色板预测结果来预测调色板的预测信息包括标志的位图(通常是在解码器端从位流解码得到的并且在编码器端添加到位流中),其中各标志定义调色板预测结果中的相应条目是否被选择为用以生成调色板中的条目的条目。

在特定实施例中,(通常使用RLE即行程长度编码进行编码后的)标志的位图包括数量与调色板预测结果中的条目数量相同的位,并且位图中的位置处的各位定义调色板预测结果中的具有相应位置的条目是否被选择为调色板的条目。该结构提高了编码效率。可以进一步缩小位图的大小的变形例可以考虑使位图在被选择为调色板的条目的最后条目处停止。由于如以上所建议的、调色板预测结果中的条目根据发生而排序,因此这是特别有利的。在一些实施例中,这样导致调色板预测结果的最后条目从统计上不经常用于调色板。

在其它特定实施例中,该方法还可以包括:在具有从调色板预测结果所选择的条目的调色板的末尾添加附加条目。这些附加条目可以是针对(使用解码循环在解码器和编码器这两者处)所解码的附加像素的条目、以及/或者(如在传统的调色板编码模式中那样)来自例如由编码器构建并且(在位流中)被发送至解码器的预定调色板的条目。该规定用于提高调色板的编码效率。

在用以发送标志的位图的变形例中,可以使用隐式方法,由此减少要在位流中发送的附加数据或位(位图):可以经由标志(palette_share_flag)来表示要进行调色板编码的下一像素块或CU将重复使用用于最后一个调色板编码像素块或CU的最后一个调色板的所有条目。在这种情况下,特定实施例可能涉及:使用调色板预测结果初始化程序大小来对要用于对像素块进行编码的调色板的大小进行初始化。

在一些实施例中,当前调色板的条目的像素值具有颜色分量,并且使用调色板预测结果来仅对这些颜色分量的子部分进行预测。实际上,可以预测三个颜色分量中的一个或两个颜色分量。该规定减少了位流中的处理和信令。

关于编码,实施例可以规定,确定单个调色板预测结果的步骤包括:使用所述调色板编码模式来对分散在包括以分层方式位于两个自包含式编码结构上方的所述编码结构的图像区域上的像素块的子集进行编码,并且包括:使用所述编码步骤结束时所获得的调色板预测结果作为所述调色板预测结果初始化程序。

将确定步骤限制于像素的子集,这使得可以在确定初始化程序时具有复杂度低的处理。这特别适合于低延迟编码。

要注意,调色板编码模式优选与其它编码模式(例如,INTRA和INTER)进行竞争,使得(由于使用另一编码模式进行编码因而)不考虑不适用于调色板编码的块。此外,确定步骤的编码没有导致生成位流的数据,而是仅构成基于调色板编码对像素的子集的分析。

在一些实施例中,所述子集的像素块沿着所述图像区域的斜线或对角线分布。这是为了具有尽可能多地代表要使用调色板预测结果初始化程序的整个图像区域的像素块的子集。

在变形例中,所述子集的像素块在所述图像区域的顶部、优选在所述图像的顶部水平对齐。如此获得的调色板预测结果初始化程序非常适合图像的开头的编码,并且可用于多个连续图像。

在特定实施例中,所述子集的像素块不是连续的。例如,针对每两个(或更多个)像素块,可以选择一个像素块。这是为了避免通过对非常相似的连续像素块进行处理而可能产生的无用处理。

在其它实施例中,确定单个调色板预测结果包括:递归地对像素块的同一子集进行编码,其中下一递归编码循环所使用的第一个调色板预测结果是在先前递归编码循环结束时所获得的调色板预测结果。换句话说,先前递归编码循环结束时所获得的调色板预测结果被用作用于下一编码循环的调色板预测结果初始化程序。随着递归循环的数量增加,调色板预测结果初始化程序变得与对自包含式编码单元的像素块进行编码越来越相关。结果,对更多的像素块进行调色板编码并且对更少的像素块进行INTER或INTRA编码,由此提高编码速率。

在一些实施例中,两个自包含式编码结构包括在两个单独图像中。在变形例中,两个自包含式编码结构包括在同一图像中。

在可能与连续的调色板编码像素块之间的调色板的重复使用或共享有关的一些实施例中,该方法还可以包括定义当前调色板的大小。例如,可以使用用于对调色板预测结果进行初始化的调色板预测结果初始化程序的大小来设置调色板的大小。由于不存在从先前像素块继承来的调色板,因此该操作主要针对自包含式编码结构中的第一个调色板编码像素块而发生。在可能与连续的调色板编码像素块之间的调色板的共享有关的一些实施例中,该方法还可以包括:在实际上不存在先前调色板的情况下,对共享调色板的大小进行初始化。根据本发明的实施例,如果该大小小于针对调色板所容许的最大大小,则该大小可以使用调色板预测结果初始化程序的大小来进行初始化。

在实施例中,获得与颜色分量的数量有关的信息,其中所述调色板预测结果初始化程序的结构是基于所述信息的。

换句话说,调色板预测结果初始化程序可以包括与颜色分量一样多的分量,其中调色板预测结果初始化程序的分量的数量是从所述信息所获得的。

优选地,所述信息是用于通知所述图像是否是单色图像的标志。

本发明的另一方面涉及一种非暂时性计算机可读介质,其存储程序,所述程序在由用于对至少一个图像进行解码或编码的装置中的微处理器或计算机系统执行的情况下,使得所述装置进行如以上所定义的解码或编码方法。

非暂时性计算机可读介质可以具有与以上和以下与方法和装置相关地陈述的特征和优点类似的特征和优点。

本发明的另一方面涉及一种大致如这里参考附图中的图12a或者图12b或者图12和(图14a或图14b或图14c或图14d)进行说明并示出的用于从位流中解码至少一个图像的方法,其中所述图像被分割成分层编码结构。

本发明的又一方面涉及一种大致如这里参考附图中的图13b或者图13a和图13b或者图13a和(图14a或图14b或图14c或图14d)进行说明并示出的用于将至少一个图像编码在位流中的方法。

本发明的另一方面涉及一种用于对从位流中解码图像所使用的图片参数集进行解码的方法,所述图像包括具有至少一个颜色分量的像素,所述方法分成多个步骤。所述方法包括:

对所述图片参数集中所定义的并且在所述解码方法的至少两个步骤中涉及的一个颜色分量参数进行解码,其中所述一个颜色分量参数表示所述图像是否是单色;以及

在解码的颜色分量参数表示所述图像是单色的情况下,跳过或修改所述解码方法的至少一个步骤。

本发明的该方面的目的在于提出不存在曾经是错误根源的任何冗余性的句法。本发明的该方面更加高效并且防止了相互矛盾的配置。

在实施例中,跳过或修改至少两个不同的步骤,其中所述至少两个不同的步骤中的至少一个步骤包括使用调色板模式来对已编码的像素值进行解码。

在实施例中,一个步骤包括确定针对调色板预测结果初始化程序的至少一个条目或各条目的元素的数量。如以上所定义的,各元素涉及针对颜色分量的像素值。例如,如果图像是单色,则调色板的各条目包括针对唯一颜色分量的一个元素。

在实施例中,调色板预测结果初始化程序的各条目在解码的颜色分量参数被设置为预定值的情况下是单元素,否则是三元数组。

在实施例中,这些步骤其中之一与在颜色分量参数表示图像是单色的情况下所跳过的残差自适应颜色变换有关。

在实施例中,参数是在图像是单色的情况下取值“1”的标志。

本发明的另一方面涉及一种用于对从位流中解码图像所使用的图片参数集进行解码的方法,其中,所述图像包括具有至少一个颜色分量的像素,所述图像是通过使用包括调色板模式的多个模式中的一个模式来进行编码的。所述方法包括:

-与残差自适应颜色变换有关的步骤;以及

-定义步骤,用于定义调色板预测结果初始化程序,其中基于表示所述图像是否是单色的颜色分量参数的值来对所述定义步骤进行处理。

颜色分量参数的值是通过残差自适应颜色变换的执行而推断出的。

本发明的该其它方面的目的在于提出不存在曾经是错误根源的任何冗余性的句法。本发明的该方面更加高效并且防止了相互矛盾的配置。

在实施例中,如果执行了残差自适应颜色变换,则推断出颜色分量参数的值以表示图像不是单色。

在实施例中,颜色分量参数是在执行残差自适应颜色变换的情况下值被推断为“0”的标志。

本发明的另一方面涉及一种用于对从位流中解码图像所使用的图片参数集进行解码的方法,所述图像包括具有至少一个颜色分量的像素,至少一个图像是通过使用调色板模式来进行编码的,所述方法包括用于利用具有相同数量的条目的调色板预测结果初始化程序来对调色板预测结果进行初始化的步骤,其中所述调色板预测结果初始化程序和所述调色板预测结果针对各条目具有一个或多个元素。

在从包括具有给定数量的颜色分量的像素的图像切换为具有另一数量的颜色分量的图像的情况下,利用调色板预测结果初始化程序的调色板预测结果的初始化受到预定规则的管理。

在实施例中,预定规则包括:针对调色板预测结果的至少一个条目,将这些元素中的至少两个元素设置为调色板预测结果初始化程序的相同元素的值。

在实施例中,预定规则包括:针对调色板预测结果的至少一个条目,将这些元素至少之一设置为预定的默认值。

在实施例中,在从具有一个颜色分量的图像切换为具有三个颜色分量的图像的情况下,应用该预定规则。

根据本发明的另一方面,提出一种解码装置,所述解码装置用于从位流中解码与图像有关的图片参数集,所述解码装置被配置为实现根据以上所述的实施例其中之一所述的解码方法。

根据本发明的另一方面,提供一种非暂时性计算机可读介质,其存储有程序,所述程序在由用于对至少一个图像进行解码的装置中的微处理器或计算机系统执行的情况下,使得所述装置进行根据上述实施例其中之一所述的方法。根据本发明的方法的至少一部分可以通过计算机来实现。因此,本发明可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)、或者组合在此通常均可称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明可以采用使计算机可用程序代码嵌入在介质中的任何有形表现介质中所嵌入的计算机程序产品的形式。

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

附图说明

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

图1示出HEVC编码器架构;

图2示出HEVC解码器架构;

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

图4示出编码树块向编码单元的分割和这些编码单元的扫描顺序解码;

图5示出HEVC的SECC扩展的研究中的解码器侧的调色板模式的原理以及所述调色板的预测;

图6示出编码单元以及相应的等级块和关联的调色板的示例;

图7示出同一等级块以及该等级块的编码所使用的句法元素的集合;

图8示出与调色板编码模式有关的句法元素的解码处理;

图9示出解码侧的用以构建等级块的重建处理;

图10示出包括调色板预测结果的示例性迭代构建的预测方案;

图11示出视频编码中所使用的各种块结构;

图12a示出从位流解析调色板预测结果初始化程序;

图12b示出解码器使用调色板预测结果初始化程序来对位流进行解码;

图13a示出调色板预测结果初始化程序的编码器确定中所使用的块的各种子集;

图13b示出编码器针对用于确定调色板预测结果初始化程序的块的子集所进行的分析;

图14a、14b、14c和14d示出用于通知如由编码器编写且由解码器解析的现有SPS或PPS SCC扩展中的调色板预测初始化程序的示例;

图15示出用于通知JCTVC-T1005文献所提出的如由编码器编写且由解码器解析的PPS SCC扩展中的调色板预测初始化程序的示例;

图16示出本发明的另一方面的实施例;

图17示出本发明的另一方面的另一实施例;以及

图18是本发明的一个或多个实施例的实现所用的计算装置的示意框图。

具体实施方式

图1示出HEVC编码器架构。在视频编码器中,将原始序列101分割成像素块102。然后,向各块分配编码模式。存在HEVC中通常使用的两类编码模式:基于空间预测的模式或者INTRA模式103、以及基于时间预测的模式或基于运动估计104和运动补偿105的INTER模式。已知为HEVC SCC的当前设计中的HEVC的扩展添加了附加的编码模式、特别是与INTRA和INTER编码模式竞争以对像素块进行编码的调色板编码模式。以下特别是参考图5~9来更详细地说明该调色板编码模式。本领域技术人员还可以在最新的著作即文献JCTVC-S1005(HEVC画面内容编码草案文本2)中获得与调色板编码模式有关的详情。要注意,本发明不限于如HEVC SCC扩展所述的调色板编码模式的实现,而且可以应用于任何调色板预测方案。

通常,通过被称为INTRA预测的处理,根据INTRA编码单元的原因边界处的编码像素来预测该INTRA编码单元。

INTER编码模式的时间预测首先涉及:在运动估计步骤104中,在被称为参考帧116的先前帧或将来帧中发现离编码单元最接近的参考区域。该参考区域构成预测结果块。接着,在运动补偿步骤105中,使用预测结果块来预测该编码单元以计算残差。

在空间预测和时间预测这两种情况下,通过从原始预测结果块中减去编码单元来计算残差。

在INTRA预测中,对预测方向进行编码。在时间预测中,对至少一个运动矢量进行编码。然而,为了进一步降低与运动矢量编码有关的位率成本,不是直接对运动矢量进行编码。实际上,假定运动是均匀的,则将运动矢量编码成该运动矢量与其周围的运动矢量之间的差,这特别有利。例如在H.264/AVC编码标准中,针对位于当前块的上方和左方的三个块之间所计算出的中值矢量,对运动矢量进行编码。仅将中值矢量和当前块运动矢量之间所计算出的还被称为残差运动矢量的差编码在位流中。这是在模块“Mv预测和编码”117中进行处理的。将各编码矢量的值存储在运动矢量字段118中。从运动矢量字段118中提取预测所使用的相邻运动矢量。

接着,在模块106中选择使率失真性能最优的模式。为了进一步减少冗余性,在模块107中对残差块应用通常为DCT的变换,并且在模块108中对系数应用量化。然后,在模块109中对量化后的系数块进行熵编码,并且将该结果插入位流110中。

然后,在模块111~116中,编码器进行编码帧的解码,以供将来运动估计所使用。这是编码器中的解码循环。这些步骤使得编码器和解码器能够具有相同的参考帧。为了重建编码帧,在模块111中对残差进行逆量化并且在模块112中对残差进行逆变换,从而提供像素域中的“重建”残差。根据编码模式(INTER或INTRA),将该残差添加至INTER预测结果114或INTRA预测结果113。

接着,在模块115中,利用一种或多种后滤波对该第一次重建进行滤波。这些后滤波器集成于解码循环中。这意味着,需要在编码器和解码器处将这些后滤波器应用于重建帧,以在编码器和解码器处使用相同的参考帧。该后滤波的目的是去除压缩伪像(compression artifact)。

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

图3示出通过如HEVC那样的逐块编码所得到的原因原理。

在高等级处,图像分割成按光栅扫描顺序进行编码的编码单元。因而,在对块3.1进行编码的情况下,区域3.3的所有块已进行了编码,并且可被视为可供编码器使用。同样,在解码器处对块3.1进行解码的情况下,区域3.3的所有块已进行了解码并且如此进行了重建,并且可被视为在解码器处可利用。区域3.3被称为编码单元3.1的原因区域。一旦对编码单元3.1进行了编码,则该编码单元3.1将属于下一编码单元的原因区域。该下一编码单元以及接下来的所有编码单元属于被示出为带点区域的区域3.4,并且无法用于对当前编码单元3.1进行编码。值得注意的是,原因区域由重建块构成。用于对给定编码单元进行编码的信息不是图像的原始块,其原因是该信息在解码时不可用。解码时可用的唯一信息是原因区域中的像素块的重建版本、即这些块的解码版本。由于该原因,在编码时,对原因区域中先前编码块进行解码以提供这些块的该重建版本。

在对块3.1进行编码时,可以使用来自原因区域中的块3.2的信息。在HEVC扩展草案规范中,可在位流中传输的位移矢量3.5可以表示该块3.2。

图4示出将编码树块分割为编码单元以及用以顺次处理这些编码单元的示例性扫描顺序。在HEVC标准中,利用编码树块(CTB)来组织块结构。帧包含多个非重叠的正方形编码树块。编码树块的大小可以在64×64~16×16的范围内。该大小是在序列等级确定的。在编码效率方面的最高效大小是最大大小即64×64。注意,除图像边界外,所有的编码树块具有相同的大小,这意味着这些编码树块是按行排列的。边界CTB的大小根据剩余像素量而改变。

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

在HEVC中,使用多个方法来对不同的句法元素(例如,块残差、与预测结果块有关的信息(运动矢量、INTRA预测方向等))进行编码。HEVC使用诸如基于上下文的自适应二进制算术编码(CABAC)、Golomb-rice码或被称为固定长度编码的简单二进制表示等的多种熵编码。在大多数情况下,进行二进制编码处理以表示不同的句法元素。该二进制编码处理同时也是非常有针对性的,并且依赖于不同的句法元素。

通常还被称为HEVC SCC的HEVC画面内容编码扩展是针对新的视频编码标准HEVC的当前正起草的扩展。该HEVC SCC是根据通常还被称为HEVC RExt的HEVC范围扩展所得到的。

该扩展的目的是提供用以特别是针对具有8位的位深度的4:4:4颜色格式并且可能地以无损方式对视频序列进行编码的附加工具,其中该视频序列包含诸如图形用户界面捕获、计算机图形生成内容等的内容(已知为画面内容)。

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

此外,一些SCC的工具还与其它颜色格式兼容。特别地,通过调整4:4:4情况,已使调色板模式与4:2:0兼容,其中该4:4:4情况被设置成通过针对一个分量而不是三个分量进行操作来处理单色数据。还可以处理不同的位深度。

除有损压缩外,HEVC SCC还能够提供输入序列的无损编码;这是为了具有与输入101严格一致的解码输出209。为了实现此,与传统的HEVC RExt有损编解码器相比,已修改或添加了多个工具。

HEVC SCC所用的附加工具当前正被设计为除自然序列外,还对“画面内容”视频序列进行编码。如以上简要介绍的,“画面内容”视频序列是指具有与从任何其它装置的个人计算机所捕获到的内容相对应的非常针对性的内容的特定视频序列,其中这些特定视频序列例如包含文本、幻灯片演示、图形用户界面、表格(例如,屏幕截图)。这些特定视频序列与自然视频序列相比具有相当不同的统计数据。在视频编码中,包括HEVC的传统视频编码工具的性能在处理这种“画面内容”时有时被证明是平庸的。

在HEVC SCC中当前所讨论的用以处理“画面内容”视频序列的工具包括自适应颜色变换、帧内块复制模式和调色板模式。这些模式的原型与针对自然视频序列的传统方法相比已表现出良好的编码效率。本申请关注于调色板编码模式。

HEVC SCC的调色板编码模式是表示信息直接对像素数据进行编码的编码模式。如当前所起草的,调色板编码模式不使用残差数据,而是在像素与当前所使用的调色板的任何条目不一致时使用“逃逸编码”。特别地,在无损编码的情况下,这意味着调色板条目应被编码器选择为等于像素、或者不对逃逸编码像素进行量化,其中量化值是以CU等级进行传输的。

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

在编码器侧,HEVC SCC中所考虑的调色板模式在于:将给定输入编码单元的像素值变换成被称为等级的索引。这些等级标识关联调色板中的像素值与输入编码单元的像素值一致的条目。然而,在例如由于失真将过大(在无损编码的情况下大于0)、因此利用等级不能表示输入编码单元的像素值(即,像素值不一致)的情况下,利用表示“逃逸编码”的特定等级来表示所述像素。针对利用该特定“逃逸编码”等级表示的各像素,还传输量化像素值。

在变换之后,如此得到的编码单元包括等级块和(针对逃逸编码像素的)量化值块。然后,该编码单元与关联调色板(通常是具有用于表示编码单元的有限数量的颜色的三元数组的表)一起被发送至解码器。由于调色板定义有限数量的颜色,因此向索引块的变换通常近似有损编码时的原始输入编码单元,但与无损编码时的原始输入编码单元严格相对应。

为了在编码器侧应用调色板模式,按照如下所述进行用以对像素的编码单元进行变换的示例性方式:

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

-然后使这P个三元数组中的一致颜色与编码单元的各像素相关联:要编码的值(或等级)(如此构成索引块的一部分)是与所关联的一致颜色的条目相对应的索引。如此通过将调色板的条目与编码单元的各像素进行比较来从调色板获得索引块,以针对各像素识别出定义一致颜色的条目。如果不存在一致的条目,则表示逃逸编码的等级以及量化像素值与(量化值的块中的)像素相关联。

对于各编码单元,调色板(即,所发现的P个三元数组)、索引块或等级块、以及量化像素值的块被编码在位流110中,并且发送至解码器。

此外,可以在位流的一些参数集中设置特定标志,以指定(例如,在序列参数集或“SPS”中)是否启用调色板编码模式。这些参数集还可被称为句法结构。

此外,在编码单元等级,标志可以指定编码单元是否具有逃逸编码值,以强制调色板包括上述的特定“逃逸编码”等级。

在解码器处,调色板编码模式涉及以相反方式来进行转换。这意味着利用从位流解码得到的调色板中的相应颜色来替换与编码单元的各像素相关联的各解码索引,以重建编码单元的各像素的相应颜色。注意,如果像素与“逃逸编码”等级相关联,则从量化像素值(即,逃逸编码像素)的块来解码相应的量化像素值并且对这些量化像素值进行逆量化。这是颜色空间中的索引块(即,编码单元预测结果)的重建。

图5还示出解码器处的调色板编码模式的原理。在对条带、帧或区块进行解码的情况下,解码处理从第一个编码单元开始,对来自位流的CU进行循环。然后,在步骤502中从位流501提取当前编码单元所用的预测模式。当前,利用位流中的位于跳过标志和帧内块复制标志之后的标志来标识调色板模式(以上参考图1和2已说明了其它编码模式)。该标志是使用单个上下文进行编码得到的CABAC。如果该模式不是调色板模式503,则在步骤520中发生传统的解码。否则,从位流501提取并解码得到(504)调色板模式的相关句法505(即,与调色板、等级块和逃逸编码像素块有关的信息)。

接着,在步骤506期间,根据解码数据来构建调色板509、逃逸编码像素块507和等级块508这三个元素。特别地,HEVC SCC规定了根据调色板预测结果510来预测调色板。根据该等级块、关联的调色板和逃逸编码像素块,构建像素域中的重建编码单元514。这意味着对于块等级的各等级,颜色(RGB或YUV)与各像素相关联。

然后,使用调色板509来更新在对其它调色板编码CU进行解码时所使用的调色板预测结果510。

要注意,使用调色板预测结果510的调色板509的预测可能不使用调色板预测结果510的所有条目。可以存储与调色板预测结果510的所使用条目或者未使用条目有关的信息、以及与最后使用的调色板的大小有关的信息。如以下所述,重复使用这种信息。

图6示出编码器处的调色板编码模式的原理。将当前编码单元601转换成代替3个颜色值(Y,U,V)或(R,G,B)而是包含各像素的等级的大小相同的块602。为了例示,实际对601的像素611进行逃逸编码,因此该像素611的关联等级612表示调色板的逃逸编码等级613(值“3”)。结果,逃逸编码像素块604包含单个像素620的量化像素值。基于编码单元整体失真最小化来构建与该等级块602相关联的调色板603,并且该调色板603针对每个条目使条目索引或等级与相应的像素颜色值相关联。注意,针对单色应用,像素值可以仅包含一个分量。

如与图5相关地所述,针对各编码单元对调色板(和逃逸编码像素块)进行编码并且将该调色板(和逃逸编码像素块)插入位流中。以相同方式,对(与编码单元相对应的)等级块进行编码并将该等级块插入位流中,并且以下参考图7给出编码的示例。在该示例中,按水平顺序扫描等级块。

等级块71与图6所示的附图标记602的等级块完全相同。表72和73描述了用于对等级块71进行编码的连续句法元素。表73应被理解为表72的延续。该表中的句法元素与块71中的实线所包围的等级组的编码相对应。

按扫描顺序以连续像素为组来对等级块进行编码。使用给出预测方向的第一句法元素、给出重复次数的第二元素和给出像素值(即,等级)的可选的第三元素来对各组进行编码。该重复次数与组中的像素的数量相对应。

这两个表表示与调色板编码模式相关联的当前句法。这些句法元素与等级块71所用的位流中所插入的编码信息相对应。在这些表中,使用三个主要的句法元素来充分表示调色板编码模式的操作,并且如下所述在逐次考虑等级块71的等级的情况下使用。

被称为“Pred mode”(预测模式)的第一句法元素使得可以区分两个编码模式。在与等于“0”的“Pred mode”标志相对应的第一模式中,对于当前像素使用新的等级。在位流中,紧挨在该标志之后通知该等级。在与等于“1”的“Pred mode”标志相对应的第二模式中,使用“从上复制(copy up)”模式。更具体地,这意味着当前像素等级与位于紧挨在从针对光栅扫描顺序相同的位置起的上方的行处的像素等级相对应。在等于“1”的“Pred mode”标志的情况下,由于通过参考等级块71中的正上方的像素的等级的值而已知了等级的值,因此不必紧挨在该标志之后通知该等级。

被称为“Level”(等级)的第二句法元素表示仅处于“Pred mode”的第一模式下的当前像素所用的调色板的等级值、或者该像素的逃逸编码所用的等级值。

使用被称为“Run”(行程)的第三句法元素来对“Pred mode”的两个模式中的重复次数值进行编码。考虑到从左上角向右下角并且从左向右从上向下逐行扫描等级块71,因此Run句法元素给出了块71中具有相同编码的连续像素的数量。

该“Run”句法元素具有根据“Pred mode”标志而有所不同的含义。在Pred mode是0的情况下,“Run”元素是索引块中具有相同等级值的连续像素的数量。例如,如果Run=8,则这意味着当前“Level”适用于当前像素,并且适用于后面的8个像素,其中这9个像素与光栅扫描顺序中的9个相同连续样本相对应。

在Pred mode是1的情况下,“Run”元素是索引块中具有与块71中的连续像素上方的像素的等级值相对应的等级值(即,应用了“从上复制”模式)的这些连续像素的数量。例如,如果Run=26,则这意味着当前像素以及后面的26个像素(与总共27个像素相对应)的等级是从上方的行的像素复制而来的。

表72和73表示通过使用调色板编码模式来表示块71的九个步骤。各步骤从“Predmode”标志的编码开始,在“Pred mode”标志等于“0”的情况下跟随“Level”句法元素、或者在“Pred mode”标志等于“1”的情况下跟随“Run”句法元素。“Run”句法元素始终跟随在“Level”句法元素之后。

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

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

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

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

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

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

接着,在步骤818中,针对如利用等级表示的逃逸编码的各像素(即,如果所提取的Level等于“逃逸编码”等级、例如图6和7的示例中的“3”),则从逃逸编码像素块来解析关联的量化像素值并且进行去量化。该去量化的像素值例如被存储在相应表的索引syntax_i处。

注意,可以紧挨在步骤812之后进行步骤818。在变形例中,可以在步骤809和步骤817之间的步骤中从位流中提取整个逃逸编码像素块并且进行去量化。

接着,在步骤815中,使值j进行大小为步骤814中进行解码的行程的递增。使变量syntax_i递增1以考虑句法元素的下一集合。如果计数器j等于块中的像素的数量,则结束用以构建等级块71的句法(817)。在该处理结束时,解码器获知调色板以及包含与该编码单元的调色板编码模式相关联的所有“Pred mode”、“Level”和“Run”句法元素的列表的表,并且还获知逃逸编码像素的去量化像素值的表。然后,解码器可以继续进行如通过图5所述的编码单元的重建处理。

在图8的本实施例的微变形例中,针对等级块71的顶部的第一行像素不设置“Predmode”元素。这是因为,由于这些像素在上方行不具有等级,因此无法执行“从上复制”模式。因此,只要在步骤809中j小于块宽度,则不设置“Pred mode”元素并且跳过步骤810~811,由此直接进行步骤812。注意,该微变形例使编码等级块的大小减小。

在可以与图8的上述实施例或其微变形例相组合的实施例中,可以生成多个等级块,而不是仅一个等级块。这意味着针对像素的全部或一部分使用多个等级。例如,可以针对第一颜色分量(例如,Y)构建第一等级块,而可以针对至少一个剩余分量(例如,U和V)构建另一等级块。当然,可以考虑针对三个颜色分量的三个等级块。可以使用特定标志来在位流中通知具有多个等级块及其与颜色分量的对应关系的选择。在变形例中,这可以利用图像的颜色格式来表示。

返回参考调色板,通常使用三个二进制码来对上述示例中由三个值构成的各调色板元素进行编码。二进制码的长度与各颜色分量的位深度相对应。使用一位来对“Predmode”元素进行编码。使用二进制码长度等于b的二进制码来对“Level”元素进行编码,其中2b是等于或大于调色板大小的最小整数。

图9示出用以构建等级块911的重建处理。该处理的输入数据是使用以上图8的处理所获得的包含“Pred mode”、“Level”和“Run”的列表的表。

除“Pred mode”、“Level”和“Run”元素以外的输入数据的项是根据位流中所通知的四叉树(图4)而获知的编码单元801的大小(与等级块602/71的大小相同)。

在第一个步骤901中,将表示像素计数器的变量i设置为等于0,并且还将用以逐次考虑句法元素的各集合的变量j设置为等于0。在步骤904中,检查从“Pred mode”的表中的索引j处所提取的元素Pred_mode[j]是否为0。

如果Pred_mode[j]等于0,则针对当前像素i编码新的等级。结果,位置i处的像素的值被设置为等于等级的表中的索引j处的等级;Block[i]=Level[j]。这是步骤905。在步骤906中使变量i递增1以考虑下一像素,并且在步骤907中将专用于对当前Run中已处理的像素进行计数的变量k设置为等于0。

在步骤908中进行检查,以判断k是否等于行程的表中的索引j处的“Run”元素:k=Run[j]?。如果不相等,则将位置i处的像素的等级设置为等于位置i-1处的像素的等级值:Block[i]=Block[i-1]。这是步骤909。然后,在步骤910和911中,分别使变量i和变量k递增1。如果在步骤908中k=Run[j],则结束左方等级值的传播并且进行(以下所述的)步骤920。

如果在步骤904中Pred_mode[j]不同于0,则在步骤912中,“从上复制”模式从变量k被设置为等于0开始。接着,步骤913检查(k-1)是否等于行程的表中的索引j处的“Run”元素:k=Run[j]+1?。如果不相等,则将位置i处的像素的等级值设置为等于上方行中的位置i处的像素的等级值:Block[i]=Block[i-width],其中“width”是如根据所输入的编码单元的大小推导出的等级块的宽度(与编码单元相同)。这是步骤914。接着,在步骤915和916中,分别使变量i和变量k递增1。如果在步骤913中k=Run[j]+1,则预测模式“从上复制”完成并且处理继续进行步骤920。

在步骤920中,进行检查以判断变量i是否等于块71/CU 601中的像素量。如果不相等,则在步骤921中使变量j递增1以考虑句法元素的下一集合,并且处理循环回上述的步骤904。

如果在步骤920中对所有的像素均进行了处理,则在步骤922中获得最后的等级块71:这与表Block[]相对应。

然后,最后的步骤923涉及:使用利用图8的处理进行解码的调色板603并且使用针对逃逸编码像素的去量化像素值块604来将各等级转换成颜色值。该最后的步骤根据各个块位置的等级、以及调色板603中的相应条目(在存在的情况下)或者块604中的相应去量化像素值而影响该块位置处的像素值(Y,U,V)或(R,G,B)。

如上所述,如在HEVC SCC中当前设计的调色板编码模式要求针对各编码单元发送调色板。这表示位流中的数据量大、因而编码成本大。为了降低该成本,所提出的一些机制将当前调色板提供于使用调色板预测结果要预测的当前编码单元。

如在申请人的贡献JCTVC-Q0063中所提出的,可以在位流中发送参考调色板预测结果以供例如条带的各编码单元使用;或者可以使用与所处理的编码单元相邻的像素来构建调色板预测结果;或者可以根据已存在的两个或更多个调色板来构建预测结果。

因而,预测处理修改用于从位流形成调色板的步骤806。

图10示出包括调色板预测结果的示例性迭代构建的预测方案。在该方案中,构建中的调色板预测结果包括来自使用标志的位图基于(用作预测结果的)第二调色板进行了预测的第一调色板的条目,其中这些标志中的各标志用于定义第二调色板中的相应条目是否被选择为用以预测第一调色板中的条目的条目。可以在位流中发送标志的位图。

本实施例的特殊之处在于:通过还包括与位图中的用于定义不选择用以预测第一调色板的条目的标志相对应的第二调色板的条目,来构建调色板预测结果。

参考图10,示出可以是当前图像中正处理的连续编码单元的三个编码单元CU1~CU3。

附图标记1000表示用于对CU1进行处理(编码或解码)的调色板。可能已经使用了本申请中所述的任何机制将该调色板编码在位流中(因而被解码器检索到)、或者对该调色板进行了预测。

使用调色板1000作为用于构建用以处理CU2的调色板1001的调色板预测结果。调色板1001的预测是基于标志的位图1006。需要重申的是,这些标志根据用于预测下一CU的调色板的相应元素的使用与否而分别取值1或0。在变形例中,标志=1可以表示不选择相应元素,而标志=0可以表示选择用于预测下一CU的调色板的元素。

结果,在本示例中,如位图1006中所定义的,将调色板预测结果1000的第一个元素、第三个元素、第四个元素和第五个元素复制到调色板1001中。第二个元素1002未被重复使用(在位图1006中标志=0)。注意,基于上述的机制(例如,在位流中进行明确传输),附加调色板元素1003可能已添加至构建中的调色板1001的末尾。

此外,根据调色板1000和1001来构建调色板预测结果1005。将调色板1001的所有元素都复制到(步骤1004)CU3所用的调色板预测结果1005中。在该示例中,将与位图中的定义不选择用以预测调色板1001的条目(通常为标志=0,例如元素1002)的标志相对应的调色板预测结果1000的条目添加至(步骤1008)调色板预测结果1005。这是因为,由于复制步骤1004,因此调色板预测结果1000的其它条目已存在于调色板预测结果1005中。由于位图1006中的标志,因此可以非常快速地进行元素1002的该选择。

该方法使得仅根据用于对当前像素块进行编码的当前调色板和用于预测当前调色板的当前调色板预测结果来构建针对下一像素块的下一调色板预测结果。

可以设置用以基于调色板预测结果1005来预测用以处理CU3的调色板的位图。

当然,调色板预测结果1005也可以直接是用以处理CU3的调色板。然而,调色板预测结果1005由于其包括先前调色板中所定义的所有元素因而不断增长,直到定义调色板的最大大小的极值为止。

优选在调色板预测结果1005的末尾进行元素1002的添加。可以直接观察到如此得到的调色板预测结果与上述情形相比变得丰富。

在调色板预测结果的末尾添加未使用的元素的一个特殊优点是这些元素按寿命和使用程度进行了大致排序。这样使得调色板预测结果中的最后的元素是最没有用且最有可能被去除的元素。如此,例如可以在使用包括某种元素的各个调色板对最后的M个(M是待定义的整数)像素块进行处理时,基于该元素的使用次数来决定从构建中的调色板预测结果中去除该元素。

当然,该处理还可适用于将未使用的元素放置于调色板预测结果的开头、或者甚至与来自调色板1001的一部分元素交错存在。

注意,从先前调色板中选择未使用的元素确保了这些元素是唯一的,因此位图中的标志不会冗余。如此使调色板预测结果效率最大化。

然而,存在当前打破目前的调色板预测方案的情形。

这些情形中的一些情形与目的在于差错恢复和/或并行处理的HEVC编码工具/结构的使用有关。这些工具/结构通常不允许图像内的编码结构之间的任何依赖关系。

这里,值得注意的是,如图4所示,图像通常被递归地分割成分层编码结构、例如由条带构成的区块,其中条带由CTB构成,各个CTB被分割成CU。定义分层编码结构的参数通常包含在序列参数集(即,针对序列有效)和/或图片参数集(即,可以更新)中。因而,编码结构必须通过指示这些SPS/PPS的ID来参考这些SPS和PSS中所存储的信息,其中该ID是使用可变长度方案进行编码的整数。

在一些编码结构之间不存在依赖关系例如表示:在编码结构的边界处不能进行INTRA预测,并且在编码结构之间不能共用熵编码状态、调色板预测结果或IBC预测所用的区域。

如以上简要说明的,这些编码结构其中之一是将图像分割成包含完整CTB的不同矩形的区块结构。序列是否使用区块以及区块的形状通常包含在SPS中。

区块的行或列可能不是均匀分布的。这是图11的图像1100的情况,其中该图像1100被分割成四个区块1102、1103、1104和1105。

已经说明的另一编码结构是条带结构。条带是CTB上方的基础编码结构,这意味着条带由一个或多个CTB构成,并且区块由一个或多个条带构成,并且图像可以由一个或多个区块(因而条带)构成。

作为示例,图11的图像1110包含条带1111、1113、1114等。特别地,条带1114可被视为仅包含一个CTB。

各条带包括条带头部,其中该条带头部(按不分先后的顺序)包括:与依赖于CTB大小和区块结构的开头的CTB地址(按光栅扫描)有关的信息、条带所依赖于的SPS和PPS的ID。

HEVC规定区块和条带是“自包含”的,即彼此独立地分别对区块和条带进行编码/解码。本发明关注于这种自包含式编码结构。

要注意,一些特定情况规定可以将一组条带标记为实际完全依赖,这意味着一些编码信息从一个条带继承至下一条带。在这些情况下,本发明仅关注于该组依赖条带中的第一个条带。

为了进一步例示条带结构的“自包含”特征,可以参考图像1120,其中该图像1120包含(利用粗线定界的)四个均匀区块,各区块包含CTB计数不断改变的(具有不同的填充图案的)条带。

由于非依赖型当前条带或区块不能分别参考另一条带或区块,因此其它条带或区块中的误差不会影响针对当前条带或区块的解码。另外,针对当前条带或区块的编码结果没有依赖于其它条带或区块。因此,可以并行地对当前条带或区块进行编码或解码。

“自包含”性质的一个缺点是:在切换至新的条带或区块时,预测所使用的数据不再不可用,因此降低了编码效率。对于在一个图像内存在高水平的信息冗余性的SCC,更是这种情况。因此,在这些情况下,期望减轻该编码效率损失中的一些编码效率损失。

在该上下文中,本发明提供以下步骤:

从位流中获得以分层方式位于要解码的两个自包含式编码结构上方的编码结构相关联的调色板预测结果初始化程序;以及

使用所获得的同一调色板预测结果初始化程序来对这两个自包含式编码结构各自的调色板预测结果进行初始化。

在编码器端,对称地,本发明提供以下步骤:

确定用以对两个自包含式编码结构的调色板预测结果进行初始化的一个调色板预测结果初始化程序;以及

在位流中,提供包括用以根据调色板预测结果预测与处理后的各像素块相关联的调色板的预测信息的编码数据,并且提供调色板预测结果初始化程序,其中该调色板预测结果初始化程序与位流中以分层方式位于两个自包含式编码结构上方的编码结构相关联。

如本发明所提出的,使用调色板预测结果初始化程序来简单地对调色板预测结果进行初始化,这在编码效率和复杂度这两方面都提供了相当好的结果。可以注意到,调色板预测结果初始化程序从未被用作用于进行调色板编码模式的调色板本身。

此外,本发明规定调色板预测结果初始化程序是“全局性”的,这意味着在调色板预测结果初始化程序由多个独立编码结构(区块或条带)使用的情况下,在位流中通知一次调色板预测结果初始化程序。这可以通过与以分层方式位于由于“自包含”性质而要求调色板预测结果的初始化的编码结构上方的编码结构相关联地通知调色板预测结果初始化程序来实现。

将调色板预测结果初始化程序存储于条带等级(即,与要求调色板预测结果初始化程序的编码结构(条带)相同的等级)对于本发明人而言似乎效率不高。这是因为,将图像分割成条带正是编码效率损失的原因。

以下的说明意图提出针对所述初始化程序的高效的存储和传输机制。

在一个实施例中,调色板预测结果初始化程序是在图片参数集即PPS中的图像等级进行定义的(因而在位流的相应部分中进行传输),其中在这种情况下,两个自包含式编码结构参考图片参数集。例如,两个自包含式条带在各自的头部内包括PPS ID。

在变形例中,在序列参数集即SPS中在序列等级定义调色板预测结果初始化程序,其中在这种情况下,两个自包含式编码结构参考序列参数集。

优先PPS中的调色板预测结果初始化程序的定义。这是因为,将调色板预测结果初始化程序存储于SPS等级,这使得不允许诸如在特定量的帧或时间之后更新初始化程序以及/或者针对图像的各区域(例如,区块或任意区域)使用初始化程序等的多个编码器优化。

然而,如上所述,条带经由PPS ID参考PPS。所发送的PPS越多,ID变得越大,因而对这些PPS进行编码所需的位越多。标准化组织不禁止但强烈建议不使多个PPS共用同一ID:实际上,按不正确顺序对PPS进行解码并且使不正确信息关联至条带将是有可能的。针对该问题的潜在解决方案是环绕机制:在达到值MAX时,PPS ID被重置为0。尽管这并未完全防止不正确解码,但由于具有相同ID的PPS现在可以相距任意持续时间,因此这大大降低了风险。

现在参考图12~14来例示本发明的实施例。

图12示出解码器端的示例性处理,并且包括图12a,其中该图12a示出从序列的位流1200中检索调色板预测结果初始化程序。

在步骤1201中,从位流中提取并解码与高分层等级的编码结构相关联的句法结构。该句法结构可以是与序列相关联的SPS、或者与图像相关联的PPS。

接着,在步骤1202中推导该句法结构的ID:该ID是PPS的PPS ID和SPS的SPS ID。

接着,在步骤1203中从所提取的句法结构读取调色板预测结果初始化程序中的条目的数量。要注意,在SPS中指定调色板编码模式要使用的调色板预测结果的最大大小,因而所提取的句法结构所表示的大小受到该限制,这意味着该大小小于或等于该最大大小。

在所提取的句法结构是SPS的情况下,调色板预测结果初始化程序优选位于用于定义针对序列是否启用调色板编码模式的信息之后、并且还位于调色板预测结果的最大大小之后。该特定位置使得可以在调色板模式禁用的情况下(例如,在所提取的句法结构适用于自然内容的编码而不适用于画面内容的编码的情况下)、避免调色板预测结果初始化程序数据(该初始化程序的条目数量)的解析和读取。

在步骤1204中,该处理基于步骤1203中所读取的条目的数量来判断调色板预测结果初始化程序是否具有条目。

如果调色板预测结果初始化程序包括至少一个条目,则在步骤1205中从位流获得条目。用于从位流(所提取的句法结构)读取调色板预测结果初始化程序的机制可以与HEVCSCC中所定义的用以读取位流中所传输的任何调色板的机制相同。

一旦完全确定了调色板预测结果初始化程序,则在步骤1206中,将该调色板预测结果初始化程序存储在存储器中并且与所提取的句法结构的ID(即,步骤1202中所获得的ID)相关联。该存储使得能够在随后再次使用ID的情况下容易地检索到调色板预测结果初始化程序。

图12b以更为简单的方式示出与图5相同的解码处理,但适用于本发明。

步骤1211~1217与解码器的传统步骤相同。步骤1220和1221是本发明的实施例特有的。

在该解码处理中,在步骤1211中解析位流1200以获得与当前编码结构有关的信息。该信息例如可以定义当前编码结构的性质,例如当前编码结构是否是帧、条带、区块等;并且该信息还可以指定哪个像素块(CU或CTB)是当前编码结构的第一个块。这是因为,本发明致力于初始化、即致力于针对所考虑的编码结构的第一部分通常进行的处理。

在HEVC相关的实施例中,所考虑的像素块是CTB。这样使得能够通过在步骤1212中选择第一个CU来使针对当前编码结构的解码循环初始化。接着,在使用调色板编码模式对当前CU进行编码的情况下,在步骤1213中,可能地使用调色板预测结果1215来对该CU进行解码(以获得当前调色板)。

在依赖于调色板共享(即,使用最后使用的调色板作为要用于下一调色板编码像素块的调色板)的特定实施例中,最后使用的调色板已被复制到针对下一像素块的调色板预测结果的开头部分中(该调色板预测结果还可能接收到其它条目)。为了通知为了形成下一调色板而要复制的调色板预测结果的第一条目(即,来自于最后使用的调色板的条目)的数量、并由此便于从预测结果中检索这些条目,调色板预测结果1215还保持表示为N的最后使用的调色板大小的信息。实际上,通过仅仅将调色板预测结果的N个第一条目复制到下一调色板中,完全建立了调色板共享模式中的下一调色板。

在步骤1214中,例如以上参考图10所述或者通过在调色板共享的情况下复制当前调色板的各条目,在适当情况下更新调色板预测结果。通过步骤1216和1217来获得针对所有CU的解码循环。

根据本发明,在开始对新的自包含式编码结构进行编码或解码的情况下,使用调色板预测结果初始化程序来对调色板预测结果1215进行初始化。为了实现此,在解析(或者编码时编写)位流1200时,在步骤1220中获得与高分层等级的编码结构相关联的句法结构的标识符ID。这可以通过在解析信息1211之前或之后但在解码第一个CU 1212之前从位流中提取信息(1220)而发生。

该标识符ID使得能够在步骤1221中检索图12a的步骤1206中先前使用标识符所存储的调色板预测结果初始化程序。该标识符可以是新的句法元素。在所解析的编码结构是条带并且将调色板预测结果初始化程序存储在PPS中的一个实施例中,已经存在的针对所述条带来标识PPS的句法元素起到该作用。

在每个条带的开头发生步骤1221并且使调色板预测结果初始化程序与区块相关联(即,在区块等级定义调色板预测结果初始化程序)的另一实施例中,每个条带可以(使用ID)标识该条带所属的区块。在本实施例中,步骤1220如此标识当前条带属于哪个区块,然后针对该关联区块的ID检索调色板预测结果初始化程序。

在步骤1221结束时,已经检索到调色板预测结果初始化程序。可以使用该调色板预测结果初始化程序以紧挨在对当前编码结构(例如,条带)的第一个CU进行解码之前使调色板预测结果1215初始化。这可以通过根据初始化程序的条目数量设置预测结果中的条目数量来进行。由于可能施加最大大小(来自于SPS最大预测结果大小或任意大小),因此这两个大小可能不相等。然后,根据刚刚设置的预测结果中的条目的数量,将这些条目从调色板预测结果初始化程序复制到调色板预测结果。

在另一实施例中,由于不存在已解码的CU,因此先前调色板的大小为0。然而,由于调色板预测结果初始化程序提供调色板,因此可以根据调色板预测结果初始化程序的大小来推导先前调色板的所述大小、例如最大调色板大小(参考图14a上的palette_max_size)和调色板初始化程序大小之间的最小值。在例如实现调色板共享的情况下,即在通过编码结构的处理使得用于对下一像素块或CU进行编码的下一调色板重复使用了最后一个调色板编码像素块或CU所使用的最后一个调色板的所有条目的情况下,该另一实施例进行工作。

上述说明表明:在编码结构的具有比条带的分层等级(例如,SPS、PPS、区块等)严格更高的分层等级的等级处,定义调色板预测结果初始化程序,然后在条带的该等级处关联该调色板预测结果初始化程序。

现在转向编码器端处的用以确定这种调色板预测结果初始化程序的算法。图13示出初始化程序确定所用的示例性算法,其中该算法具有编码效率、计算负载控制和低延迟特性的好处(即,这些结果是在不会对输出数据时的编码器延迟产生过大影响的情况下针对当前帧所获得的)。

该算法是通过针对(优选分散在与所考虑的自包含式编码结构(例如条带)相对应的图像区域内的)CTB的子集进行或多或少的快速编码来进行工作的。为了实现该快速编码,可以启用不同的快捷方式,如(例如在INTER中或者在测试调色板模式时将存在过多的逃逸编码像素的情况下)提前终止或者修改引起进一步分析的阈值(例如,以研究针对IBC的进一步分区)。可以使用在针对CTB的子集的快速编码结束时所获得的调色板预测结果其中之一作为位流中传输的调色板预测结果初始化程序。

图13a显示初始化程序确定所用的像素块的这种子集的示例。

理想地,CTB规则地间隔开以尽可能多地代表区域(例如,条带)。优选地,由于使用除调色板编码模式以外的其它编码模式可能更容易对针对该子集所考虑的CTB的内容进行编码(例如,利用INTRA角度预测更好地对用户界面的硬边进行编码),因此这些CTB不在区域或图像的边缘(左方/上方/下方/右方)上。

此外,针对子集所考虑的CTB优选没有水平或垂直对齐。否则,这些CTB可以属于同一帧宽结构。

在该图的左部所示的第一实施例1301中,子集的像素块沿着区域的斜线或对角线分布。在该示例中,子集由暗色CTB构成。该示例遵循上述的所有性质。

认为该第一示例性子集1301非常适合必须针对一个以上的条带仅确定一个调色板预测结果初始化程序的区域。

在该图的右部所示的第一实施例1302中,子集的像素块在图像区域的顶部、优选在图像的顶部水平对齐。本实施例更适合更高等级结构(图像或区块)包含一个自包含式编码结构(例如一个条带)的情况,并且如此获得的调色板预测结果初始化程序更适合对所述较高等级结构的开头进行编码。

特别地,使调色板预测结果初始化程序适合图像的另一部分将表示在条带编码期间强制重置调色板预测结果的可能性。然后,调色板预测结果初始化程序的好处源自于调色板预测结果初始化程序将用于多个帧(因而用于多个条带)这一事实。

因此,构成子集1302的CTB相对集中于图像中的调色板预测结果通常为空的开头。

在这种情况下,分析远离图像开头的CTB可能得到利用图12b的更新机制1214将刷新的调色板预测结果元素。

另外,选择彼此过于靠近的CTB可能会导致拾取仅略微不同且极少发生的颜色。因而,如1302所示,例如通过定义所考虑的CTB之间的等于或大于1的步长,优先选择不连续的像素块。

基于CTB的子集,图13b以流程图示出编码器端处的用于确定调色板预测结果初始化程序的一般步骤。

该处理通过考虑到该处理所应用的区块、条带和区域等的使用确定块子集,在步骤1311中开始。

特别地,如参考图11所述,图像可以被人为地分割成区域、或者分割成传统的区块或条带。在这种情况下,算法可以应用于各区域,然后在对编码结构(例如条带)进行编码的情况下,判断编码结构属于哪个较高等级区域(编码结构可能不完全属于所述区域)。

该方法使得可以获得定义诸如示例1301和1302等的子集块所基于的区域的起始点和结束点。

在确定子集时可考虑的另一参数是块或CTB的容许数量。例如,子集中的块的数量可能不大于预定数量(例如,10)或者所考虑的区域的比率(例如,10%)。

在步骤1311之后,步骤1312规定对编码器参数进行初始化。这可能涉及所有的经典确定(量化矩阵、量化步长、容许编码模式等)。特别地,这还可能涉及设置快速分析参数,例如针对帧内块复制的缩小搜索、(包括调色板编码模式的)一些编码模式的去除或加速等。

接着,在步骤1313中,选择子集的第一块。

在步骤1314中,对当前块进行编码。如前面所述,可以利用步骤1312略微修改编码处理以提供减少的工作量。这可能还涉及针对该块设置特定编码参数:例如,在块的边界上不存在编码像素,并且帧内预测方法无法针对这些边界像素进行工作,因而在针对这些像素的分析期间禁用。

此外,使用CTB的子集可能会在帧内块复制分析中产生问题。可以在步骤1314中解决所有这些问题。

在步骤1315中,检索并保存针对当前块所生成的调色板预测结果以供随后参考。

接着,在步骤1316中,进行测试以判断分析是否完成。

该判断可以基于时间预算。如果时间预算得到充分使用,则分析停止。

此外,参考针对来自图12b的步骤1214的调色板预测结果的元素的可能刷新,在分析期间检测这种刷新以决定何时停止分析可能是值得关注的。

例如,在考虑示例性子集1302的情况下,由于实际可能很少使用新的条目,因此高度关注足够快速地停止分析。例如,可以在检测到刷新时立即停止所述分析,或者刷新计数器在刷新了各新的元素时可能递减,直到该计数器达到0并且表示分析结束为止。

在示例性子集1301的情况下,由于需要针对尽可能多的CTB定义调色板预测结果初始化程序中的颜色,因此该方法不值得关注。因此,(由于认为CTB将用于多个条带因而)值得关注的是保持最频繁使用。

在任意情况下,如果步骤1316判断为应停止分析,则算法在后面将说明的步骤1319结束。否则,步骤1317测试是否处理了子集中的最后一个块。如果处理了子集中的最后一个块,则发生步骤1319以结束算法。否则,在步骤1318中选择子集中的下一个块,并且分析处理循环回至步骤1314。

在特定实施例中,可以多次重复针对子集的该编码,以每次获得针对块的更好的调色板预测结果,因而更频繁地使用调色板编码模式:该重复包括对像素块的相同子集进行递归编码,其中下一递归编码循环所使用的第一个调色板预测结果是在先前递归编码循环结束时所获得的调色板预测结果。

在该分析结束1319时,进行多个操作。

主要操作是设置调色板预测结果初始化程序、将该调色板预测结果初始化程序编码在位流中并进行发送。

这要求选择调色板预测结果其中之一以用作调色板预测结果初始化程序。例如,该调色板预测结果可以是分析的最后一个调色板预测结果。

接着,可以控制所选择的调色板预测结果初始化程序,以判断该调色板预测结果初始化程序实际上对编码是否有好处。

例如,如果在调色板预测结果初始化程序中存在过少(例如,少于四个)条目,则这可以表示在所分析的区域中大部分是自然内容,其中在这种情况下,使用调色板编码模式是不值得的。因而,该信息可用于停用常规编码中的调色板编码模式,直到另一分析获得更好的结果为止。

另一情况是所选择的调色板预测结果与当前用于该区域的调色板预测结果初始化程序不够不同(例如,前者包括在后者内)的情况,其中在这种情况下,代替新确定的调色板预测结果初始化程序,保持当前使用中的调色板预测结果初始化程序。

另一操作是:例如基于频率标准(例如,针对仅一个块所发生的一些颜色)或相似度标准(在调色板预测结果初始化程序中某颜色与另一颜色非常相似),在所选择的调色板预测结果的条目无用的情况下,滤除这些条目。

另一实施例是再次推导所选择的调色板预测结果的条目以代表尽可能多的所分析的CTB。例如,更经典的分类算法可以采用所发现的调色板条目作为起始点,并且使用例如K-means算法来针对与所述条目相关联的各个类确定实际质心。

图14示出用于特别是在图14a的SPS内并且在图14b的PPS内声明或定义调色板预测结果初始化程序的两个实施例。这两个实施例十分相似;因而以下给出一个组合描述。

这两个实施例依赖于HEVC标准及其SCC标准中的PPS和SPS句法结构的现有扩展部分(参见文献JCTVC-S1005)。在SPS和PPS中,利用标志sps_scc_extensions_flag和pps_scc_extensions_flag来分别表示相应扩展部分(即“sps_scc_extensions”和“pps_scc_extensions”)的存在。

在这两个实施例中,分别向SPS SCC扩展和PPS SCC扩展添加相关的调色板预测结果初始化程序信息。

在图14a和14b中用粗体示出添加至现有扩展部分的句法元素。这些附加句法元素的信息的名称、位置或类型用于例示的目的。当然,可以使用其它名称。

如以上参考步骤1204所述,可以停用调色板编码模式。结果,本发明仅在palette_mode_enabled_flag正确的情况下、或者在SPS或PPS等级处的等效信息表示调色板编码模式启用的情况下,才解析与调色板模式有关的信息。

基于图14a和14b的示例,可以使用第一个标志palette_predictor_initializer_present_flag。该标志表示是否存在调色板预测结果初始化程序(即,调色板预测结果初始化程序实际是否定义在SPS或PPS SCC扩展中)。

如果存在调色板预测结果初始化程序,则其大小是已知的并且至少为1。其最大大小是可变的,但可被限制为小于SPS或PPS SCC扩展中所指示的最大大小(参见palette_max_predictor_size)。

使用相应字段size_palette_predictor_initializer_minus1来指定VLC大小-1(VLC即可变长度编码,例如使用标准指定的Exp-Golomb代码)。这是调色板预测结果初始化程序的大小。

接着,定义调色板预测结果初始化程序的条目的值。尽管这里没有示出,但优先使用字节对齐编码来对这些值进行编码:这样使得能够更容易地进行SCC扩展的解析。在实施例中,利用针对各条目的分量comp的N[comp](参见以下),这些值被编码为固定长度的元素。

要注意,条目的分量的数量num_comp是已知的:SPS中所包括的诸如chroma_format_idc或separate_colour_plane_flag等的信息使得能够确定分量的数量。此外,由于可以根据SPS中所包括的句法元素bit_depth_luma_minus8和bit_depth_chroma_minus8来推导针对各分量的位数N[comp],因此该位数也是已知的。

最后,图14c示出用以提供调色板预测结果初始化程序的列表以供在单独对分量进行编码或者使用区块的情况下使用的方式。没有对分量进行联合编码的情况是4:2:0颜色格式,其中可以针对亮度(单个分量)定义调色板并且可以针对色度(两个分量)定义另一调色板。

需要这种列表的另一情况是存在N个区块的情况,并且经由条带所属的区块来进行条带和调色板预测结果初始化程序之间的关联1221。

在各情况下,可以利用属于SPS或PPS的信息来确定列表。因而,句法结构针对大小为num_sets的初始化程序的列表的各集合进行循环。针对各集合,发送诸如以下等的已存在的不同信息:

palette_predictor_initializer_present_flag[set],以及

size_palette_predictor_initializer_minus1[set]。

然后,所述初始化程序的分量数量num_comps[set]和分量的列表comp_list[set]使得能够确定要使用的分量以及针对各集合如何读取调色板预测结果初始化程序的值。

在区块的情况下,这仅仅是分量的常规列表。在特定颜色格式的情况下,这样使得能够针对独立分量的各集合指定调色板预测结果初始化程序。

在另一实施例中,有利地使本发明所使用的句法与来自于例如SPS的其它信息分离。例如,这样使得能够进行利用解码器的单独处理以及视频流传输方案中的更容易的设置方案。在这种情况下,提供所复制的信息是重要的,例如如果如图所示在PPS中传输调色板预测结果初始化程序,则该PPS可以从SPS复制信息,同时要求所述信息具有相同含义。在图14d中示出本实施例。图14d的一些部分与图14c的一些部分相同。补充信息包括第一标志monochrome_entries_flag或等效参数,从而使得能够推导分量的数量。另一实施例是重复chroma_format_idc和/或separate_colour_plane_flag、或者其推导信息。该信息应与诸如SPS等的任何其它等级所发送的信息一致,使得根据该信息所推断出的分量的数量与参考pps_scc_extensions及其PPS的图像的分量的数量相对应。可以使用本发明实施例进一步给出针对位流及其与标准规范的一致性的该要求。

在分量的数量已知的情况下,可以获得更多信息。特别地,可以发送分量的位深度。通常单独发送亮度位深度和色度位深度,这是luma_bit_depth_entries_minus8和chroma_bit_depth_entries_minus8的情况。实际上,信号具有8位以上的深度,因而通常通知仅发送超过8的附加位数。一个重要考虑是:如在HEVC规范中所发现的,这些值理想地与参考PPS的图像的实际位深度(例如,BitDepthY和BitDepthC)一致,并且可被视为针对位流的一致性的又一要求。由于发送使得能够推导分量的数量的信息,因而chroma_bit_depth_entries_minus8的解析可以是条件性的。

在已知读取调色板预测结果初始化程序条目所需的所有信息的情况下,可以发生如在前面的图14a~14c中已经说明的条目的读取。这是以monochrome_entries_flag或等效句法信息的值为条件。典型实施例是如图14d所示,针对各调色板预测结果初始化程序条目,读取一个或三个分量。

相反,步骤1221中的所检索到的调色板预测结果初始化程序还包含针对各条目的分量的数量和所需存储量,由此清楚地确定如何将所述初始化程序复制到步骤1215中的实际调色板预测结果。

可以使用用以从SPS或PPS SCC扩展中提取初始化程序的条目的传统机制。

已经说明了用以在解码器侧对调色板预测结果进行初始化的多个方式(图12)、以及如何在编码器侧找到调色板预测结果初始化程序(图13)和如何将该调色板预测结果初始化程序嵌入位流中(图14)。在优选实施例中,将调色板预测结果初始化程序存储在PPS中,并且块结构是条带。

本发明人所进行的本发明的第一次实验已表现出1.8%的编码增益。然而,认为根据编码参数并且根据要编码的图像内容,可以获得更好的增益。

图15示出用于在如JCTVC-T1005所述的标准规范内声明或定义调色板预测结果初始化程序的现有处理。本实施例依赖于HEVC标准及其SCC扩展(参见文献JCTVC-T1005)中的PPS句法结构的现有扩展部分。在PPS中,利用标志pps_scc_extensions_flag来表示相应扩展部分(即,“pps_scc_extensions”)的存在。

调色板预测结果初始化程序首先包含与“残差自适应颜色变换”工具(从现在起称为“ACT”)有关的信息,其中该ACT向解码输出块应用可恢复的预定颜色变换。该工具可以通过将标志residual_adaptive_colour_transform_enabled_flag设置为0来在PPS等级处禁用。

如果该工具没有被禁用,则之后是附加信息。标志pps_slice_act_qp_offsets_present_flag表示是否存在(与针对使用当前PPS的条带所设置的量化步长偏移相比的)量化步长偏移,其中在这种情况下,将这些偏移pps_act_y_qp_offset_plus5、pps_act_cb_qp_offset_plus5和pps_act_cr_qp_offset_plus3作为可变长度元素进行发送。

然后,使用与调色板模式有关的第一个标志palette_predictor_initializer_present_flag。该标志表示是否存在调色板预测结果初始化程序(即,如上所述,调色板预测结果初始化程序实际是否定义在PPS SCC扩展中)。

如果存在调色板预测结果初始化程序,则发送与该初始化程序的条目有关的信息。首先,发送颜色格式信息。该颜色格式信息通常是三个分量或单色格式。标志monochrome_palette_flag在被设置为预定值(例如,1)的情况下,表示该格式仅包括一个颜色分量。如果该标志未被设置为该值,则格式不是单色。

然后,利用句法元素luma_bit_depth_entry_minus8来在可变数量的位上发送第一个(并且潜在地仅)分量的位深度。由于任何分量的位深度均不能低于8,因此仅需发送具有8的所述位深度的差异(由此节省一些位)。然后,如果条目不是单色,则经由句法元素chroma_bit_depth_entry_minus8来发送针对色度的位深度。

然后,由于已知发送调色板条目,因此调色板条目的数量是已知的,并且至少为1。经由可变长度句法元素num_palette_predictor_initializer_minus1来发送调色板条目的值。该值是调色板预测结果初始化程序的大小。

接着,定义调色板预测结果初始化程序的条目的值。要注意,条目的分量的数量numComps是已知的,并且在monochrome_palette_flag是1的情况下为1,否则为3。此外,由于可以根据SPS中所包括的句法元素luma_bit_depth_entry_minus8和chroma_bit_depth_entry_minus8推导出针对各分量的位的数量,因此该数量也是已知的。

所提出的句法是冗余的,并且甚至可能是错误的根源。通过授权相互矛盾的配置,当前句法不够高效。

如以下所提出的,可以关于调色板模式的使用来改进PPS扩展中的信息。图16示出这种改进的示例。

根据实施例,在发送调色板或ACT工具信息之前,发送如这里被称为“monochrome_flag”那样的标志的参数。换句话说,所提出的“monochrome_flag”是在PPS等级定义的。作为变形例,可以在序列等级定义单色标志。如果将monochrome_flag设置为预定值(例如,“1”),则在考虑调色板预测结果初始化程序的情况下,针对单色格式直接调整调色板条目(换句话说,假定调色板预测结果初始化程序针对各条目仅包括一个元素的情况下,修改用于定义调色板预测结果初始化程序的步骤)。不再需要用于通知颜色格式以修改条目数量的专用于调色板预测结果初始化程序的参数。根据一个方面的本发明提出使用按照等级较高的图片(或图像)等级所定义的参数。

在优选实施例中,在“monochrome_flag”被设置为“1”的情况下,考虑到ACT工具变得无用,禁用该工具(换句话说,跳过用于读取“residual_adaptive_colour_transform_enabled_flag”的值的步骤,从而禁用ACT工具)。在这种情况下,推断出标志residual_adaptive_colour_transform_enabled_flag为0。相反,如果monochrome_flag的值为0,则可能启用或者可能不启用ACT工具,因此发送其相应标志。同样,调色板条目的分量的数量numComps为3。

根据另一实施例,提出了monochrome_flag一次仅影响一个模式(优选为调色板模式)的更为简单的句法。这种示例将是已知调色板模式因另一方式而停用的情况。

在图17中示出这种实施例的示例。在这种情况下,在读取图10所呈现的标志monochrome_palette_flag之前引入条件(例如,一个条件)。如果启用ACT工具(如利用其相应标志residual_adaptive_colour_transform_enabled_flag的值所示),则推导出像素颜色格式不是单色的:存在三个颜色分量。标志monochrome_palette_flag的值可被直接推断为“0”。相反,如果禁用ACT工具,则格式可能是单色或者可能不是单色。

在另一实施例中,提出仅限编码器的约束,使得不会修改解码器逻辑。必须满足以下两个条件:如果residual_adaptive_colour_transform_enabled_flag为1,则monochrome_palette_flag必须为0。并且,如果monochrome_palette_flag为1,则residual_adaptive_colour_transform_enabled_flag必须为0。

在另一实施例中,提出了使实际像素格式与条目的分量的数量去相关。在先前实施例中,调色板预测结果初始化程序被设置成具有根据像素格式而具有不同的分量数量的条目。在本实施例中,必须能够将相同的调色板预测结果初始化程序用于单色数据以及RGB或YUV数据。结果,调色板预测结果和调色板预测结果初始化程序两者可以具有1~3个元素依赖于颜色格式的条目。针对各条目的元素的数量可能针对调色板预测结果和调色板预测结果初始化程序而不同。在这种情况下,在利用预测结果初始化程序对调色板预测结果进行初始化的情况下,可以应用各种规则。例如,在从一个分量到三个分量的情况下,利用默认灰度值或者现有的调色板预测结果初始化程序条目来对调色板预测结果条目predictor[i]进行初始化。例如,

-对于RGB,predictor[i][2]、predictor[i][1]和predictor[i][0]被设置得等于palette_predictor_initializers[i][0];

-对于YUV,predictor[i][0]被设置得等于palette_predictor_initializers[i][0],并且predictor[i][2]和predictor[i][1]被设置得等于分量的特定值(即,针对值为0~255的分量为0、128或255)。

其它变形是可以的,即在从三个分量到一个分量的情况下,在针对索引comp的分量对给定颜色面(例如,在考虑YUV的情况下为U)进行编码的情况下,predictor[i]被设置为palette_predictor_initializers[i][comp]。可以使用用以从PPS SCC扩展提取初始化程序的条目的传统机制。已经说明了用以定义去除解码器侧的调色板模式和其它现有工具之间的冗余性的简化句法的多个方式。

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

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

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

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

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

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

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

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

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

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

图13、14、16和17所示的算法的任何步骤可以通过诸如PC(“个人计算机”)、DSP(“数字信号处理器”)或微控制器等的可编程计算机器执行一组指令或程序来以软件方式实现;或者还可以通过诸如FPGA(“现场可编程门阵列”)或ASIC(“专用集成电路”)等的机器或专用组件来以硬件方式实现。

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

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

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号