掌桥专利:专业的专利平台
掌桥专利
首页

变换系数块编码

文献发布时间:2024-04-18 19:58:21


变换系数块编码

本申请是申请日为2019年03月28日的PCT国际申请PCT/EP2019/057895在2020年11月27日向中国专利局递交并进入中国国家阶段后对应的题为“变换系数块编码”的发明专利申请No.201980036095.3的分案申请。

技术领域

本申请涉及使用变换系数块编码对图片和视频进行编码。

背景技术

换句话说,本申请涉及数字信号处理领域,并且具体地,涉及用于图像和视频解码器和编码器的方法和设备。

本发明的目的是提供用于更有效地将图片和/或视频编码为数据流的概念。

发明内容

该目的是通过本申请的独立权利要求的主题来实现的。

根据本申请的第一方面,通过使用上下文或上下文模型来对某个颜色分量的某个变换系数块进行熵编码/解码而实现了图片编码中的编码效率的提高,该上下文或上下文模型取决于不同颜色分量的变换系数块。也就是说,对图片的块分别进行分别针对第一颜色分量和第二颜色分量的比阿奴按,以便获得第一颜色分量的第一变换系数块和第二颜色分量的第二变换系数块,并且上下文自适应地对第二变换系数块进行熵编码/解码,取决于第一变换系数块来选择所使用的上下文。两个变换都可能与为每个颜色分量的块确定的预测残差有关,但这仅仅是可选的。在任何情况下,取决于第一变换系数块来渲染用于对第二变换系数块进行熵编码/解码的上下文,改善了熵编码/解码下的概率估计,并因此提高了编码效率。根据实施例,对第一变换系数块的上下文依赖关系被用于或应用于针对第一变换系数块和第二变换系数块被编码到数据流中的指示,该指示指示相应变换系数块内的变换系数是否被编码到数据流中,或者指示是否跳过对相应变换系数块内的变换系数的编码且相应变换系数块内的所有变换系数都为零。该指示可以是数据流中针对两个变换系数块用信号通知的标志。因此,根据该实施例,使用取决于第一变换系数块的上下文,使用上下文自适应熵编码/解码来执行对用于第二变换系数块的指示的编码/解码,例如取决于数据流中针对第一变换系数块用信号通知的指示或第一变换系数块的变换系数的量化水平。

根据本申请的第二方面,通过花费单独的上下文集合用于对某些变换系数的量化水平进行熵编码,更有效地呈现了使用变换系数块熵编码的图片编码。具体地,假设使用扫描图案将变换系数块编码到数据流中,变换系数块表示图片的块,该扫描图案依次遍历变换系数块的变换系数。因此,使用熵编码/解码完成对表示变换系数块的编码集合的数据的编码/解码,该编码集合是由扫描图案以预定方向从第一终止系数位置前进到第二终止系数位置而遍历得到的。该数据包括变换系数在变换系数的编码集合中的量化水平。使用用于第一终止系数位置处或第二终止系数位置处的变换系数的量化水平的上下文的第一集合,上下文自适应地完成对量化水平的编码/解码,其中该上下文的第一集合与用于变换系数的编码集合中的任何其他变换系数的上下文的第二集合不相交。例如,将单独的上下文集合用于变换系数块的DC变换系数,或者换句话说,用于左上角侧的变换系数,其中预定方向导致该表示第二终止系数位置的DC变换系数。例如,可以通过使用变换系数的量化水平的二值化,使用上下文自适应而进行熵编码/解码对变换系数的量化水平进行编码,并且可以将上下文的不相交的集合应用于或用于二值化的一个或多个数段,例如二值化的前缀部分。

根据本申请的第三方面,通过基于一个或多个先前编码的变换系数的总和和/或一个或多个先前编码的变换系数中的有效变换系数的数量来确定用于对变换系数块的当前编码的变换系数的量化水平进行熵编码/解码的上下文,实现了在使用变换系数块的熵编码对图片进行编码时,编码效率的提高,该一个或多个先前编码的变换系数位于由定位在当前编码/解码的变换系数的局部模板确定的位置。也就是说,使用局部模板以便检查变换系数块中位于附近的变换系数,只要由此检查的一个或多个变换系数的量化水平由数据流的先前部分披露即可。例如,可以通过在多个通路中对变换系数的量化水平的二值化的数段依次进行熵编码/解码,而在二进制基础上完成对变换系数块的变换系数的量化水平的熵编码/解码,并且因此基于刚刚提到的位于局部模板的变换系数的总和和/或刚刚提到的位于局部模板的变换系数中的有效变换系数的数量来确定用于当前编码/遍历的变换系数的二值化的至少一个数段的上下文。例如,根据一个或多个先前变换系数的系数水平的二值化的先前编码/解码的数段,总和可以是位于局部模板的一个或多个先前变换系数的系数水平的绝对值的总和,根据所述一个或多个先前编码的变换系数的系数水平的二值化的先前编码/解码的数段,所述一个或多个先前的变换系数最小具有所述绝对值。附加地或备选地,可以基于位于局部模板的一个或多个先前变换系数中的有效变换系数的数量来确定上下文,其中基于有效性是基于先前编码/解码的数段确定的。

本申请的另一方面涉及使用变换系数的量化水平的绝对值的二值化来对变换系数块的变换系数进行编码。根据本申请的该方面,通过基于一个或多个先前编码的变换系数的总和和/或一个或多个先前编码的变换系数中的有效变换系数的数量来设置用于对当前编码/解码的变换系数的二值化进行参数化的二值化参数,实现了编码效率的提高,一个或多个先前编码/解码的变换系数位于由定位在当前编码/解码的变换系数的局部模板确定的位置。例如,可以使用上下文自适应熵编码/解码对变换系数的二值化的第一部分进行编码,而使用等概率旁路模式来对二值化的第二部分进行编码/解码。也就是说,第二部分以编码率1被写入数据流,并以编码率1从数据流中读取第二部分。第二部分可以包括前缀部分和后缀部分,并且二值化参数可以确定前缀部分的长度。长度例如可以是指数哥伦布阶数或莱斯参数。关于在若干通路中对变换系数块的变换系数或其系数水平进行编码的可能性,以及关于在形成该总和和/或确定有效系数的数量时考虑该情况,与上面类似的陈述可能是正确的。

本申请的另一方面还涉及用于对变换系数块的变换系数的量化水平的绝对值进行编码的二进制化。具体地,根据该方面,通过自适应地改变与二值化相关联的截止值来使图片编码更有效。该二值化包括第一二值化码和第二二值化码,第一二值化码在截止值以下,第二二值化码在截止值以上且以第一二值化码用于截止值的码字为前缀。根据先前编码/解码的变换系数来执行截止值的自适应改变。例如,可以以还导致将截止值设置为零,随即二值化仅包括第二二值化码的方式来完成自适应。编码可以以使得第二二值化码的数段被上下文自适应地编码,而第二二值化码的数段以旁路模式编码的方式来完成。

本申请的另一方面还涉及截止值,并且旨在通过根据以下一项或多项来设置截止值而提高编码效率:块的大小、块的颜色分量、对预测信号进行的预测模式,块的预测模式表示预测残差,对变换系数块进行的变换、用于对变换系数块进行量化的量化参数、对先前编码/解码的变换系数的能量的度量,其中后者可以位于由定位在当前编码/解码的变换系数的局部模板确定的位置或者位于变换系数块中偏离当前分区的分区内的位置,当前编码/解码的变换系数位于当前分区中且根据编码顺序在当前分区之前,该编码顺序用于对变换系数块的变换系数的量化水平的绝对值进行编码/解码,通过以预定方向沿着扫描图案遍历变换系数块的变换系数来限定该编码顺序。

本申请的又一方面旨在通过设置局部模板的形状或禁用局部模板的智能方式来提高使用变换系数块编码进行图片编码的编码效率,该智能方式用于对变换系数块的变换系数的量化水平进行上下文自适应熵编码。具体地,依赖关系可以涉及以下一项或多项:块的大小、块的颜色分量、终止系数位置的位置(当沿着正向方向遍历扫描图案时,最后非零变换系数位于该终止系数位置)、以及对变换系数块进行的变换。然后可以基于一个或多个先前编码/解码的变换系数来确定上下文,一个或多个先前编码/解码的变换系数位于由定位在当前编码/解码的变换系数的局部模板确定的位置,或者如果禁用了局部模板,则与这些变换系数无关。以这种方式,可以根据实际需要更好地确定或适应在概率估计准确性方面的上下文管理复杂度、上下文的数量和上下文效率。在这方面,应当认识到过多上下文的使用不会必然增加编码效率。而是,上下文的选择需要考虑到:优选地,应当足够频繁地使用上下文,以便通过上下文更新获得良好的概率估计。因此,该方面认为使上下文管理特性适应需求,以便提高编码效率。

根据本申请的另一方面,为了对各个分区使用单独的上下文的集合,将变换系数块划分为图案。旨在通过改变分区的形状来提高编码效率,使得它们在变换系数块内彼此不一致,和/或通过根据扫描图案使分区的形状不同,沿着扫描图案执行对变换系数块的量化水平的熵编码/解码,和/或通过根据块的大小使分区的形状不同和/或通过根据显示分区形状信息使分区的形状不同。再次,该方面的理念涉及使上下文管理复杂度适应实际需求的必要性。由此,提高了编码效率。

本申请的另一方面涉及在数据流中为每个分区用信号通知一指示的方面,将变换系数块划分为分区,该指示实时相应分区内的所有变换系数是否被编码到数据流中,或者指示是否图跳过对相应分区内的所有变换系数的编码且相应分区内的所有变换系数都为零。具体地,根据本申请的该方面,以指示所有系数是否被编码或没有系数被编码的方式来说明该指示。这些分区中的每个分区可以具有与其相关联的上下文的集合,如果该指示指示对相应分区内的变换系数进行编码,则使用该上下文集合进行编码。换言之,这里分区级的零化指示指示了,如果如此设置,则对某个分区内的所有变换系数进行编码,且该情况不再需要被质疑。

本申请的另一方面还涉及以下方面:花费分区特定上下文集合对各个分区内的变换系数的量化水平进行编码,并且旨在通过在数据流中为变换系数块用信号通知划分模式来提高编码效率,该划分模式指示是否使用划分,或者指示是否禁用这种划分且代替地,该上下文的一个集合被全局用于变换系数块。

最后,本申请的另一方面还处理了分区特定上下文集合的用法,并且建议通过将扫描图案与分区解耦来提高编码效率,使得扫描图案以使得第一分区的至少一个变换系数在第二分区的两个变换系数之间遍历的方式遍历变换系数块的变换系数,沿着扫描图案对变换系数块的变换系数依次进行编码。以这种方式,以使得扫描变换系数期间的“知识增加”增加更迅速以便获得上下文选择/自适应的改进的编码历史的方式遍历变换系数是可行的,但是同时能够将各个上下集合适当地关联到变换块的各个分区。

附图说明

上述实施例和方面的有利实现是从属权利要求的主题。下面参考附图描述本申请的优选实施例,在附图中:

图1示出了使用基于变换的残差编码的基于块的预测解码器的示意性框图,其用作本文描述的本申请的实施例的可能实现的示例;

图2示出了适合于图1的编码器的基于块的预测视频解码器的示意性框图,其用作本文描述的解码器的实施例的可能实现的示例;

图3示出了用于将图片分别划分为使用帧内预测和帧间预测编码的编码块,以及为了对预测残差进行基于变换的残差变换而将相同的图片划分为残差块的示例,同时基于分别将预测信号和残差信号相加来示意性地示出基于残差的预测校正;

图4示出了说明经由某个变换对与残差块相关联的变换系数块92进行反编码,来对残差块进行基于变换的残差编码的示意图;

图5示出了说明当从特定的首先扫描的变换系数(如DC系数)到距离该第一系数最远的系数扫描变换系数时,通过经由指示最后非零变换系数的指示限定编码集合,来对变换系数块的变换系数的编码集合进行编码,使得编码集合包括最后非零系数和第一系数位置处的变换系数之间的所有系数的示意图;

图6示出了说明使用由第一二值化码和第二二值化码组成的二值化对变换系数进行编码的可能性的示意图,其中从仅包括第一二值化码的二值化切换到如下状态:二值化包括第一二值化码中用于截止值的码字,后跟第二二值化码;

图7示出了说明当这样的二值化可以作为例如图6的第二二值化码的基础时,具有前缀部分和后缀部分的可能性的示意图;

图8示例性地示出了将变换系数块划分为分区的划分,这里是规则划分为多行分区和多列分区,因此每个分区由系数阵列组成,其中划分可用于如下文所述的与变换系数和/或变换系数的零化(zeroness)指示的上下文集合关联性;

图9是示出为了上下文集合关联性而使用分区的示意图;

图10示意性地示出了变换系数块和对当前编码/解码的变换系数块所使用的局部模板,以便为该当前熵编码/解码的变换系数选择一个上下文;

图11a示出了说明关于将该块分解为一个以上的颜色分量来对残差块进行编码的示意图;

图11b示意性地示出了将变换系数块92编码到数据流14中的数据96,为包括指示该块92的所有变换系数是否都为零的全局零化指示190,在该块92的所有变换系数都为零的情况下,可以不必对变换系数的量化水平进行编码,而是在解码器侧推断为零;

图11c示意性地示出了将变换系数块划分为分区的用途,以便以分区为单位通过编码子块标志CBF来指示变换系数的零化;

图11d示出了编码有变换系数块的数据96可以包括最后位置指示114,该最后位置指示114指示如图5所示的非零变换系数的最后系数位置;

图11e示例性地示出了以上下文自适应方式使用上下文集合中的某个上下文对变换系数的量化水平进行熵解码/编码;

图11f示意性地示出了以下事实:编码有变换系数块的数据可以在数据流中包括以编码顺序102对变换系数的量化水平进行的顺序编码,该编码顺序102与从最后系数位置到第一系数位置遍历图5中的扫描部分相对应;

图12示出了说明本申请的第一实施例的示意图,该实施例根据用于另一颜色分量的相同残差块的变换系数块来执行针对一个颜色分量的上下文选择;

图13示出了说明将变换系数块划分为与图8中所示的形状不一致的分区的示意图;

图14示出了说明改变图10中所示的用于上下文选择的局部模板的形状的可能性,或甚至禁用该局部模板的示意图;

图15示出了说明利用一扫描部分将变换系数块划分为分区的示意图,该扫描部分以使得分区的变换系数彼此交织的方式遍历变换系数,来对变换系数依次编码;

图16示出了说明变换系数块及其使用图15中所示的交织扫描部分进行编码的示意图,其中示例性地示出了当前熵编码/解码的变换系数和超过某些阈值的先前编码的变换系数,例如使用超过某些阈值的先前编码的变换系数的计数,来为当前熵编码/解码的变换系数进行上下文选择;

图17示出了一方面示出系数的量化水平的编码序列,另一方面示出编码子块标志的零化指示的示意图,通过对具有图18示例性地示出的交织扫描部分的变换系数块进行编码而得到;

图18还示出了具有对图15和图16所示的不同分区的变换系数进行交织的扫描部分的变换系数块,其中使用阴影线示出非零系数;

图19示出了变换系数块的变换示例的分区级扫描示例;

图20示出了用于对变换系数块进行编码的伪代码;

图21示出了用于对变换系数的量化水平的绝对值进行二值化的伪代码;

图22示出了用于对变换系数的量化水平的绝对值进行二值化的示例;

图23示出了用于对变换系数块的变换系数进行编码的伪代码;

图24示出了用于对变换系数块的变换系数进行编码的伪代码;以及

图25示出了将变换系数块划分为分区的不同示例。

具体实施方式

附图的以下描述从对以下描述的呈现开始:针对视频的图片进行基于块的预测编解码的视频编码器和视频解码器,以便形成用于编码框架的示例,本文描述的实施例可以内置于该示例中。参考图1至图3描述了视频编码器和视频解码器。在下文中,相对于附图呈现本申请的其他实施例的描述。相同的部分被编号,并且在以上部分中,附图标记被用于表示以上哪些部分指代下面描述和要求保护的实施例。所有这些实施例都可以分别内置在图1的视频编码器和图2的视频解码器中,尽管本文描述的实施例(例如参照随后附图描述的那些实施例)也可以用于形成不按照图1的视频编码器和图2的视频解码器下的编码框架操作的视频编码器和视频解码器。

图1示出了用于将由图片12的序列组成的视频11预测编码到数据流14中的装置。为此,使用块级预测编码。此外,示例性地使用基于变换的残差编码。使用参考符号10表示装置或编码器。图2示出了相应的解码器20,即被配置为这里也示例性地使用基于变换的残差解码从数据流14中以图片块为单位对由图片12’组成的视频11’进行预测解码的装置20,其中撇号已被用于指示由解码器分别重构的图片12’和视频11’在由预测残差信号的量化引入的编码损失方面与由装置10原始编码的图片12发生了偏离。图1和图2示例性地使用基于变换的预测残差编码,尽管本申请的实施例不限于这种预测残差编码。对于参考图1和图2描述的其他细节也是如此,这将在下文中概述。

编码器10被配置为对预测残差信号进行空间到频谱变换,并将由此获得的预测残差信号编码到数据流14中。同样,解码器20被配置为从数据流14中解码预测残差信号,并对由此获得的预测残差信号进行频谱到空间变换。

编码器10内部可以包括预测残差信号形成器22,该预测残差信号形成器22生成预测残差24,以便测量预测信号26与原始信号(即视频11或当前图片12)的偏差。预测残差信号形成器22可以例如是减法器,其从原始信号(即当前图片12)中减去预测信号。然后,编码器10还包括变换器28,其对预测残差信号24进行空间到频谱变换以获得频谱域预测残差信号24’,然后由也包括在编码器10中的量化器32对该频谱域预测残差信号24’进行量化。将这样经量化的预测残差信号24”编码到比特流14中。为此,编码器10可以可选地包括熵编码器34,其将经变换和量化的预测残差信号熵编码到数据流14中。预测残差26由编码器10的预测级36基于编码到数据流14中并可从数据流14解码的预测残差信号24”来生成。为此,如图1所示,预测级36内部可以包括反量化器38,其对预测残差信号进行反量化,从而获得频谱域预测残差信号24”’,除量化损失之外,该频谱域预测残差信号24”’与信号24’相对应;随后是逆变换器40,其对后一个预测残差信号24”’进行逆变换,即频谱到空间变换,以获得预测残差信号24””,除量化损失之外,该预测残差信号24””与原始预测残差信号24相对应。然后,预测级36的组合器42例如通过加法来将预测信号26和预测残差信号24””重新组合,以获得经重构的信号46,即原始信号12的重构。经重构的信号46可以与信号12’相对应。

然后,预测级36的预测模块44通过使用例如空间预测(即帧内预测)和/或时间预测(即帧间预测),基于信号46来生成预测信号26。这方面的细节在下面描述。

同样,解码器20内部可以由与预测级36相对应的组件组成,并以与预测级36相对应的方式互连。具体地,解码器20的熵解码器50可以对来自数据流的经量化的频谱域预测残差信号24”进行熵解码,以与以上参考预测级36的模块的方式互连和协作的反量化器52、逆变换器54、组合器56和预测模块58基于预测残差信号24”来恢复经重构的信号,使得如图2所示,组合器56的输出产生经重构的信号,即视频11’或其当前图片12’。

尽管上面没有具体描述,但是很容易清楚,编码器10可以根据例如以优化一些速率和失真相关标准(即编码成本)和/或使用一些速率控制的方式的一些优化方案来设置一些编码参数,编码参数例如包括预测模式、运动参数等。如下面更详细描述的,编码器10和解码器20以及相应的模块44、58分别支持不同的预测模式,例如帧内编码模式和帧间编码模式、或者其中前面的一些模式形成原始预测模式的一种集合或池的模式,基于这些模式组成图片块的预测。编码器和解码器在这些预测组成之间切换的粒度可以分别与将图片12和12’细分为块的细分相对应。注意,这些块中的一些可以是仅被帧内编码的块,并且一些块可以是仅被帧间编码的块,并且可选地,甚至更多的块可以是使用帧内编码和帧间编码二者获得的块,但是细节记载于下文。根据帧内编码模式,基于相应块的空间、已编码/解码的邻域来获得块的预测信号。可以存在若干种帧内编码子模式,其中选择近似地表示一种帧内预测参数。可以存在方向性或角度性帧内编码子模式,根据该帧内编码子模式,通过将沿着特定于相应方向性帧内编码子模式的某个方向的邻域的样本值外插到相应的块来填充各个块。帧内编码子模式还可以例如包括一个或多个其他子模式,例如DC编码模式和/或平面帧内编码模式,根据DC编码模式,用于各个块的预测信号将DC值分配给各个块内的所有样本,根据平面帧内编码模式,各个块的预测信号被近似或确定为各个块的样本位置上的二维线性函数描述的样本值的空间分布,该二维线性函数基于相邻样本来定义平面的斜率和偏移。与此相比,根据帧间预测模式,例如可以通过在时间上预测块内部来获得块的预测信号。对于帧间预测模式的参数化,可以在数据流中用信号通知运动矢量,运动矢量指示视频11的先前编码的图片中的部分的空间位移,在该处对先前编码/解码的图片进行采样,以便获得各个块的预测信号。这意味着,除了数据流14所包括的残差信号编码,例如表示经量化的频域预测残差信号24”的经熵编码的变换系数水平之外,数据流14还可以在其中编码:用于分配给块预测模式的预测相关参数,用于所分配的预测模式的预测参数(例如用于帧间预测模式的运动参数),以及可选的其他参数,其他参数使用所分配的预测模式和预测参数控制块的最终预测信号的组成,如将在下面更详细地概述的。另外,数据流可以包括控制和用信号通知将图片12和12’分别细分为块的参数。解码器20使用这些参数以与编码器相同的方式细分图片,向块分配相同的预测模式和参数,并且执行相同的预测以产生相同的预测信号。

图3示出了一方面的经重构的信号(即经重构的图片12’)与另一方面的数据流中用信号通知的预测残差信号24””和预测信号26的组合之间的关系。如上所述,组合可以是加法。预测信号26在图3中被示为将图片区域细分为不同大小的块80,尽管这仅仅是示例。细分可以是任何细分,例如将图片区域规则地细分为多行的块和多列的块,或者将图片12多树细分(例如四叉树细分等)为不同大小的叶块,其中在图3中示出规则细分和多树细分的混合,其中图片区域首先被细分为多行的树根块或多列的树根块,然后根据递归多树细分将这些树根块进一步细分为块80。

图3中的预测残差信号24””也被示为将图片区域细分为块84。这些块可以被称为变换块或残差块,以便将其与编码块80区分开。实际上,图3示出了编码器10和解码器20可以使用两种不同的细分将图片12和图片12’分别细分为块,即一种细分为编码块80,另一种细分为块84。两种细分可以是相同的,即每个块80可以同时形成变换块84,且反之亦然,但是图3例如示出了到变换块84的细分形成了到块80的细分的扩展的情况,使得两个块80之间的任何边界都覆盖两个块84之间的边界,或者说,每个块80或者与变换块84之一重合,或者与变换块84的簇重合。然而,也可以彼此独立地确定或选择细分,使得变换块84可以备选地跨块80之间的块边界。就细分为变换块84而言,类似的陈述因此是正确的,正如关于细分为块80所提出的那样,即块84可以是:将图片区域规则细分为按行和列排列的块的结果、图片区域的递归多树细分的结果,或者其组合或任何其他种类的分割。顺便提一句,要注意的是,块80和84不限于正方形、矩形或任何其他形状。此外,将当前图片细分为块80,以块80为单位形成预测信号,并且将当前图片12细分为块84,以块84为单位对预测残差进行编码,可能不是用于编码/解码的唯一细分。这些细分形成了执行预测信号确定和残差编码的粒度,但首先,可以备选地在没有细分的情况下完成残差编码,其次,在除这些细分之外的其他粒度下,编码器和解码器可以设置某些编码参数,其可以包括一些前述参数,例如预测参数、预测信号组成控制参数等。

图3示出了预测信号26和预测残差信号24””的组合直接产生经重构的信号12’。然而,应注意,根据备选实施例,可以将一个以上的预测信号26与预测残差信号24””组合以产生图片12’,预测信号例如从其他视图或从其他编码层获得的预测信号,这些视图或编码层在具有单独的DPB的单独预测环路中编码/解码。

在图3中,变换块84应具有以下含义。变换器28和逆变换器54以这些变换块84为单位执行它们的变换。例如,许多编解码器对所有变换块84使用某种DST或DCT。一些编解码器允许跳过变换,从而对于一些变换块84,直接在空间域中对预测残差信号进行编码。然而,根据以下描述的实施例,编码器10和解码器20以它们支持几种变换的方式配置。例如,编码器10和解码器20支持的变换可以包括:

oDCT-II(或DCT-III),其中DCT表示离散余弦变换

oDST-IV,其中DST表示离散正弦变换

oDCT-IV

oDST-VII

o恒等变换(IT)

自然地,在变换器28将支持这些变换的所有正向变换版本的同时,解码器20或逆变换器54将支持其相应的后向或逆版本:

o逆DCT-II(或逆DCT-III)

o逆DST-IV

o逆DCT-IV

o逆DST-VII

o恒等变换(IT)

无论如何,应该注意的是,所支持的变换的集合可以仅包括一个变换,例如一个频谱到空间或空间到频谱变换。

如上面已经概述的,已经呈现图1至图3作为示例,其中可以实现下面进一步描述的概念,以便形成针对根据本申请的视频编码器和解码器的特定示例。就此而言,图1的视频编码器和图2的视频解码器可以分别表示本文中以下描述的视频编码器和解码器的可能实现。

将稍后描述的本申请的各个方面的实施例有时利用预先提出的共同的基础概念。也就是说,稍后描述的实施例的编码器和解码器在实现时不必像刚刚概述的那样与以上参照图1至图3阐述的细节相对应,而是它们可以与以下技术细节中的一个或多个相对应,且这些技术细节帮助或辅助理解稍后描述的实施例。例如,让我们从图4开始。稍后描述的实施例的一致之处在于它们与图片编码有关。图片可以是视频的一部分,并且下面描述的解码器和编码器可以分别是视频编码器和视频解码器,但是静止图片编码也可以适用。因此,图4示意性地示出了下面描述的实施例的编码器和解码器的一般行为或任务。

图4示出了要编码的图片。使用了与图1至图3中使用的相同的附图标记,以便帮助理解如何将以下阐述的细节以某种方式用于实现图1至图3的示例,从而获得本申请的实施例。此外,图4示出了图片12的块84。它是当前编码的块或当前解码的块。附图标记84的使用揭示了本文下面概述的变换编码可以与预测残差有关,因为上面已经参照图1至图3概述了预测残差,但是原则上这是在备选实施例中可以省略的情况。也就是说,对于本文以下阐述的所有实施例,可以是其中提到的变换系数块表示块84内的预测残差的变换,例如相对于帧内图片预测或帧间图片预测的残差。块84通过变换90与变换系数块92相关。上面已经参照图1至图3阐述了变换的示例,它们应适用于所有实施例。为块84选择一个变换。备选地,变换可以是固定的。在选择的情况下,可以在数据流用信号通知选择。一种变换可以是恒等变换。尽管变换系数块92的变换可能具有与块84的大小一致的尺寸或大小,即块92的系数的数量可以与块84中的样本的数量一致,但是这不需要适用于所有支持的变换,或者可以在仅使用一种变换90的情况下不适用。编码器和解码器二者可以使用逆变换,以便在空间域中重构块84的内部,例如预测残差,解码器出于呈现的目的使用,编码器出于向解码图片缓冲器馈送的目的使用。随后描述的实施例专注于将变换系数块92编码到数据流14中/从数据流14中解码变换系数块92的任务108。

如图4所示,变换系数块92可以由以矩形阵列排列的变换系数91组成。也就是说,变换系数块92可以是矩形块。

变换90的目的是旨在减少冗余并且对较少数量的系数91收集非零系数。例如参见图5,其示出了变换系数块92。变换系数位置104(即左上角系数位置)处的变换系数,可以是DC系数,并且朝着该系数位置104,某个系数被量化为量化水平不为零的概率例如增加。为了利用这种情况,变换系数块92的编码可以涉及在数据流中用信号通知指示,其指示在以一般背离系数位置104的方式沿着扫描路径94从系数位置104开始依次扫描变换系数时,距离系数位置104最远的变换系数位置98。该终止位置98的指示将用作数据流14仅在其中编码了变换系数91的编码集合100(即图5中以阴影示出的系数)的指示,其中编码集合100包括到终止系数位置98为止的所有变换系数,并且包括变换系数104。然后,解码器侧已知图5中未以阴影示出的其他系数为零。

当变换系数91的编码集合沿着逆向方向118被编码到数据流14中时,即不是沿着一般背离终止系数位置104的扫描路径94的正向方向,而是其指向终止系数位置104的反方向,这可能是有用的并用在根据本申请的一些实施例中。

尽管没有参照稍后描述的一些实施例进行具体讨论,但它甚至可以适用于使用二值化将变换系数91的量化水平编码到数据流14中的(可选的)后续实施例中。也就是说,如图6所示,通过二值化将某个变换系数91的量化水平映射到数段(bin)串或码字161。二值化可以由用作一种前缀的第一二值化码160和第二二值化码162组成。更准确地说,假设图6中的106是量化水平。如果量化水平106在某个截止值164之上,则将量化水平106二值化为数段串161,数段串161由源自第二二值化码的部分162组成,并以第一二值化码中与截止值164相对应的码字为前缀。然而,如果量化水平106不在截止值之上,则将量化水平106映射到仅由第一二值化码160组成的数段串上。在一些实施例中,对于某些变换系数,截止值164可以变为零,在这种情况下,二值化161仅包括第二二值化码162。

尽管可以沿着扫描路径94逐个系数地将形成某个变换系数的二值化161的一个或多个数段分别编码到数据流中,并从数据流中分别解码这些数段,但是稍后描述的一些实施例利用了若干遍历这些系数的通路。这又意味着,每当下面提到“先前编码/解码的变换系数”时,其二值化可能尚未被完全编码/解码。而是,已经针对这样的先前的变换系数对至少一个数段进行了编码/解码。二值化161可以以这样的方式形成:第一二值化码的长度、第二二值化码的长度以及二值化161的整体二值化长度相对于量化水平106,或者更精确的,量化水平106的量值,单调增加。也就是说,对于某个量化水平106,二值化161中已被读取的前导(leading)数段越多,则首先二值化161被完全读取的可能性越大,其次在这些前导数段之后存在二值化161的数段以及这些数段尚未被读取的情况下,量化水平106可能不会低于或量化水平最小具有的绝对值越大。

作为具体的示例,例如,可以是在一个或多个通路中首先对第一二值化码160的数段进行编码/解码,然后进行第二二值化码的编码/解码。尽管可以使用上下文自适应熵编码来对第一二值化码160的数段进行编码,但是可以使用等概率旁路模式(即使用编码率1)来对第二二值化码162的数段进行编码。

如图7所示,第二二值化码本身可以由包括前缀部分162a和后缀部分162b的二值化码组成。二值化参数163可以调整前缀部分162a的长度。例如,二值化参数163可以是指数哥伦布(Exp-Golomb)阶数或莱斯(Rice)参数。

再次,可以使用上下文自适应二进制编码来对属于第一二值化码的二值化161的数段165进行编码。图6中使用阴影线示出这些数段。可以使用旁路模式来对属于第二二值化码162的其他数段165进行编码,并且在图6和图7中以没有阴影的方式示出这些数段。随后描述的许多实施例涉及上下文选择。然后,作为特定的实施方式,该上下文选择例如可以用于上下文自适应地对一个或多个数段165进行编码。下文阐述了进一步的细节。

在开始对本申请的实施例进行描述之前,将提出稍后有时描述的一些实施例通常共同使用的其他概念。具体地,根据一些实施例,变换系数块92如使用图8中的虚线所示被划分为分区120,以便用信号通知某个分区120内的所有变换系数都为零,并因此在对变换系数91进行编码时可以跳过该分区。如果为了零化信号化而使用这种划分,则在数据流14中逐分区地用信号通知一指示,以便为某个分区用信号通知其中的变换系数91是否全部为零,或者不是全部为零的情况以及将其中的变换系数91编码到数据流中。如果在本申请的各个实施例的描述期间没有相反地教导,则可能适用于所有后续应用的实施例的是:可以以这样的方式选择扫描部分94,使得以某个分区120的所有变换系数91在任何其他分区的变换系数之前被扫描路径94扫描或遍历的方式,通过扫描路径94遍历变换系数91。当将后一种可能性与上面参照图6和图7提及的多通路备选结合时,可以是一个分区120内的变换系数91被完全编码,即在编码/解码进行到任何其他分区的变换系数之前,数段串161的数段被完全编码。也就是说,在编码/解码进行到扫描顺序(例如扫描顺序118)中沿着扫描路径94的下一分区的变换系数的编码/解码的一个或多个通路之前,一个或多个通路用于遍历沿着扫描路径94的某个分区120的变换系数91,以进行编码/解码。

参照图9示出了使用分区的另一概念。稍后描述的一些实施例利用该概念。这里,出于上下文使用的目的,将变换系数块92划分为分区120。在图9的右侧示出了上下文集合110a至110c。上下文集合110a至110c包括由“P#”指示的一个或多个上下文。每个“上下文”可以备选地表示为上下文模型,并且指示使用该上下文进行熵编码的概率估计。例如,在二进制熵编码的情况下,即数段的熵编码的情况下,上下文例如指示对数段值之一的概率估计,并且相应地,还自动指示对另一数段值的概率估计。每个分区120具有与其关联的上下文集合110a至110c之一。例如,使用上下文集合110中与某个分区120相关联的上下文集合对该分区120内的变换系数91进行熵编码/解码,该集合的选择例如基于对当前系数91的邻域中的系数的评估。

后一种情况例如在图10中示出。在本文中使用叉号130突出显示当前编码/解码的变换系数。当使用上述多通路方法时,当前编码/解码可以意味着该系数130的一个数段当前被编码/解码。附图标记132指示定位在系数130或系数130周围的局部模板,并且评估或使用定位在该局部模板132内或定位在该局部模板132处的系数,以便确定要用于对系数130或其当前编码/解码的数段进行编码的上下文。再次,一些实施例直接提及局部模板132的使用。稍后描述的实施例中,没有具体提及为了确定用于当前编码/解码的系数130的上下文而使用局部模板132,然而实际上可能对其进行修改,以便也使用该方式来选择上下文。根据图9的实施例,可以从与当前系数130所位于的分区120a相关联的集合中完成对系数130的选择。然而,为了上下文集合的分区特定设计而使用分区仅是示例,并非可用于所有实施例。

稍后描述的一些实施例直接涉及并且也可以用于修改或扩展其他实施例的另一方面,涉及与多个分量(即多个颜色分量)有关的块84的内容。颜色分量的示例是例如亮度/色度表示,根据该亮度/色度表示,块84的内容为针对亮度L和针对两个色度分量C

上面尚未描述的另一方面是以下事实:某个变换系数块92的编码以及其相应的解码可以从指示190开始,指示190指示该变换系数块92的任何变换系数91是否仍然为非零。如果不是,则解码器已知变换系数块全局为零。仅在图11b中示出的该指示190指示存在至少一个非零系数91的情况下,以上概述的概念的任何组合都用于对变换系数块进行编码。以类似的方式,图11c示出了用于分区120的相似的指示150,即它们指示相关联的分区120内的零化。图11d示出了可能指示位置98的最后位置指示114。图11e示出了从相关联的上下文集合110中选择出的、当前用于对当前系数的量化水平106进行熵编码/解码116的各个上下文,并且图11f示出了将量化水平106编码到数据流中的编码顺序102,即例如以方向118遍历路径94所产生的顺序。

现在应当准备使读者理解并遵循随后描述的本申请的实施例。参照图12描述了涉及本申请的第一方面的实施例。这里,编码器和解码器以在执行一个块84的不同颜色分量的不同变换系数块的熵编码方面的特殊方式,将图片12编码到数据流14中/从数据流14中解码图片12。图12示出了块84由两个颜色分量组成,由此由样本阵列841和84

例如,使用对第一变换系数块的依赖关系300确定的上下文可以与以上参考图8解释的分区特定指示有关,指示了某个分区120中的变换系数91是否全部为零或者至少包含一个非零系数,在至少包含一个非零系数的情况下,该分区内的变换系数91的量化水平被熵编码到数据流14中/从数据流14中熵解码,而对指示全零化的其他分区,跳过该熵编码/解码。对分区120的这种指示可以是标志,并且可以被称为编码子块标志。例如,针对某个分区/子块120的这种编码子块标志选择的上下文可以例如是取决于针对第一变换系数块中的共位子块(分区)编码的编码子块标志(另一指示)选择的。因此,可以在两种可用的上下文中进行选择:如果第一变换系数块92

也就是说,在上面没有明确说明的情况下,我们可以假定两个变换系数块92

备选地或附加地,依赖关系300可以与上面解释的变换系数零化的全局指示有关。也就是说,关于变换系数块92

附加地或备选地,依赖关系300可以与终止系数位置98的位置指示有关。存在不同的可能性来在数据流14中用信号通知该位置指示。例如,当以正向方向116沿着扫描路径94进行测量时,可以在数据流中以一维地址或秩用信号通知位置指示,该一维地址或秩将位置98指示为位置98在所有系数位置中的地址或秩。备选地,位置指示可以通过两个坐标来指示位置98在各个变换系数块内的位置,该两个坐标分别就位置98在变换系数块92

对块92

附加地或备选地,可以对第二变换系数块92

在完成对图12的实施例的描述时,应当注意,图12中所示的两个颜色分量可以是色度分量,并且具体地,第二变换系数块的颜色分量可以是C

用于将图片编码到数据流中的编码器和用于从数据流中解码图片的解码器的下一个实施例涉及本申请的另一方面,即通过为特定变换系数位置(即变换系数位置104,其可以是如上所述的DC系数位置)提供特定上下文集合110来以提高编码效率为目的。尽管以下刚好针对该变换系数位置104给出了实施例,但是应当注意,备选地或附加地,可以将特定系数单独的上下文集合的提供应用于系数位置98,即沿着扫描路径94测量的距离系数位置104最远的非零系数的位置。“单独的上下文”应表示以下事实:上下文集合未用于相同变换系数块的任何其他系数91,或者甚至所讨论的变换系数位置(这里为104)的上下文集合所包含的任何上下文都不用于对相同变换系数块内的任何其他变换系数进行编码。

可以基于图5示出该实施例。编码器被配置为通过将数据96编码到数据流中,来使用扫描图案94将变换系数块92编码到数据流中,解码器被配置为通过从数据流中解码数据96来使用扫描图案94从数据流中解码变换系数块92(与图4相比较),数据96表示变换系数91中以预定方向102由扫描图案94从第一终止系数位置98到第二终止系数104遍历的编码集合100,数据96包括变换系数的编码集合100中的非零变换系数的量化水平,即至少是沿着其位置的非零变换系数的量化水平或者变换集和100的所有变换系数的量化水平。应当理解,对于当前描述的实施例,以上参照图5描述的用信号通知位置98的位置指示仅是示例,并且在本实施例中,可以省略用信号通知该位置指示,而以如下方式代替:例如编码集合100不可避免地覆盖变换系数块92的所有变换系数91,或以其他方式在确定编码集合100时使编码器和解码器同步。

在任何情况下,根据本实施例,编码器和解码器被配置为针对终止系数位置104使用上下文的特定(第一)集合110来上下文自适应地对量化水平进行熵编码/熵解码,终止系数位置104可以是DC系数位置,并且用于位置104的系数的该系数集合110与用于变换系数的编码集合100中的任何其他变换系数91的一个或多个上下文集合不相交。根据特定示例,例如,一个上下文集合110被用于对位置104处的DC变换系数的量化水平进行熵编码,而另一个/不同的上下文集合110被用于对块92的所有其他变换系数91的量化水平进行熵编码/解码,其中上下文集合之间的“差异”可以涉及:位置104处的系数的上下文集合中所包含的上下文都不包含在其他变换系数的上下文集合内,且反之亦然。

根据将位置特定的上下文集合用于位置98处的变换系数量化水平的上述备选方案,所有其他变换系数91可以使用相同的上下文集合,该上下文集合与用于位置98处的变换系数的上下文集合不同。并且在上面也提到的另一备选方案的情况下,位置特定的上下文集合可以用于位置104处的变换系数以及位置98处的变换系数二者,并且它们可以彼此互不相同,且与上下文集合互不相同,然后例如将其联合用于对包含在编码集合100中且沿着扫描路径94介于位置104和98之间的系数91进行熵编码/解码。

因此,为一个系数位置(即这里为系数位置104)单独提供的位置特定的上下文集合例如可被用于对位置104处的变换系数的二值化161的一个或多个数段进行编码。该一个或多个数段165可以是第一二值化码160的一个或多个数段165。例如,它可以是二值化161的数段顺序中的第一个数段,例如指示相应位置处的变换系数是否有效,即是否非零。同样,上下文中用于其他变换系数的不相交集合将用于这些其他变换系数的二值化161的相应一个或多个数段。

应当记得,参照图5刚刚提到的上下文集合然后可以用作容器,然后从该容器中将特定上下文用于当前编码/解码的变换系数。也就是说,用于位置104处的变换系数的位置特定的上下文集合110将用作容器的基础,使用图10中所示的局部模板132从该容器中选择实际要用于对位置104处的变换系数的系数水平的二值化161的一个或多个数段进行熵编码/解码的上下文。图10中所示的局部模板132包括当前熵编码/解码的变换系数130的邻域中的五个变换系数位置,即位于当前熵编码/解码的变换系数130的右侧、下方、对角线上的右下方的系数位置,以及系数130的右侧的紧下一个位置和下方的紧下一个位置。然而,这仅是示例,并且可以不同地选择由局部模板132覆盖的位置的数量和地方。

为完整起见,请注意,可以将刚刚描述的实施例(其中将上下文特定上下文集合用于一个或两个特定系数位置104和/或98)与参照图8讨论的可能性相结合,根据参照图8讨论的可能性,对于剩余的变换系数,分区特定系数集合110可以用于将变换系数块92划分为的分区120。例如,图13示出了位置104,并且示出了变换系数块92被划分为若干分区,即这里为四个分区120。根据本实施例,位置特定上下文集合将用于对位置104处的系数的量化水平进行熵编码/解码,而对于块92的所有其他变换系数91,要使用的上下文集合将被确定为与相应变换系数91所位于的分区相关联的一个上下文集合,并且这些上下文集合可以互不相交,以及与专门为位置104提供的上下文集合不相交。

在图13的示例中,分区沿着与变换系数块的对角线122倾斜的方向对角地延伸,该对角线122穿过诸如DC系数位置的终止系数位置104和变换系数块的相对角,即在系数块92的右下侧的系数位置,该右下侧的系数位置因此可以与水平和垂直方向上的最高频率相对应。

很明显,参照图5和图13刚刚描述的实施例可以容易地与参照图12描述的实施例相结合。

接下来描述的实施例涉及本申请针对用于将图片编码到数据流中的解码器和用于从数据流中解码图片的另一方面,该方面针对当前编码/解码的变换系数的上下文选择或上下文确定是特定的。可以参照图10最佳地理解和描述实施例。具体地,编码器和解码器被配置为:通过使用基于一个或多个先前编码的变换系数的总和和/或一个或多个先前编码的变换系数中的有效变换系数的数量所确定的上下文,上下文自适应地对变换系数块92的当前编码/解码的变换系数130的量化水平进行熵编码/解码,一个或多个先前编码/解码的变换系数位于由定位在当前编码/解码的变换系数130的局部模板132确定的位置。应当记得,尽管根据本实施例,变换系数或更准确地说,对变换系数的量化水平一个接一个地进行熵编码/解码是可能的,即在对下一个变换系数91进行熵编码/解码之前完成,但是还可以应用上面讨论的概念,根据该概念,在多通路中使用量化水平的二值化的数段的上下文自适应熵编码来对变换系数的量化水平进行熵编码/解码。如上所述,上下文自适应性可以限于第一二值化码160。也就是说,一方面,应注意,可以将使用局部模板132选择/确定并形成局部模板132内的一个或多个变换系数的的总和和/或一个或多个变换系数中的有效变换系数的计数的上下文应用于第一二值化码160的一个或多个数段。另外,可以使用多通路编码。也就是说,当前熵编码/解码的变换系数130可以是其数段被当前熵编码/解码的变换系数。此外,由于块92的变换系数91的二值化161的数段165在多个通路中被依次编码,因此局部模板132所包含的变换系数91的二值化161的数段165到目前为止可能尚未完全熵编码/解码。因此,关于确定系数130的上下文,或者更准确地说,确定其当前编码/解码的数段,可以如下计算总和。具体地,可以将局部模板132内的系数91的总和计算为位于局部模板132内的一个或多个变换系数的系数水平的预定绝对值的总和,根据到目前为止在多通路数段编码/解码过程中已经编码/解码的该变换系数的该系数水平的二值化的数段,局部模板132内的相应系数的系数水平必须最少具有该预定绝对值。作为特定示例,可以设想二值化161包括以下数段:如上所述,第一二值化码160的第一数段可以指示二值化161所涉及的变换系数的量化水平是否有效,即是否非零。二值化160的数段顺序中的第二数段也可以属于第一二值化码160,即也可以经过上下文自适应熵编码/解码,并且可以指示二值化160所涉及的系数的量化水平的绝对值是否大于1。数段顺序的第三数段也可以属于第一二值化码160,并且可以指示变换系数的绝对值是奇数还是偶数,即其奇偶性。数段顺序中的另一个数段,即第四数段,也可以属于第一二值化码160,并且可以在奇偶性为奇数的情况下,指示当前变换系数是否大于2,在奇偶性为偶数的情况下,指示当前变换系数是否大于3。其他数段可以属于第二二值化码162。因此,取决于已经对局部模板132内的系数进行了熵编码/解码的数段的数量,其绝对量化水平值或者是完全已知的并且可以形成求和的加数,或者可以代替地使用最小绝对值,并基于该系数的量化水平的已经编码/解码的数段来导出该最小绝对值。

就局部模板内的有效系数的数量而言,根据刚刚概述的示例,以上过程也是可用的,因为至少对于局部模板内在逆向方向118上沿着扫描通路在当前编码/解码的系数130之前的那些系数,已经针对局部模板内的系数,对第一数段进行了编码。

一个特定的示例可以是上下文确定仅基于总和。另一个示例可以是仅基于模板132内的有效系数的数量或计数来确定/选择上下文。又一个示例是使用有效系数的总和与数量之间的差。此外,备选地或附加地,以刚刚概述的方式确定的上下文可以用于第一二值化码160的一个或多个数段,例如刚刚具体示例的数段中的任意数段或一个以上的数段。

刚刚参照图10描述的实施例可以与上述任何实施例结合。

接下来描述的实施例涉及本申请的另一方面,并且可以与本申请的方面的任何先前描述的实施例相结合。还可以参照图10提供该描述。正如参照图10描述的并且涉及先前描述的实施例的解码器和编码器一样,现在描述的实施例涉及用于将图片编码为数据流的编码器和用于从数据流解码图片的解码器,编码器被配置为将变换系数块92编码到数据流中,解码器被配置为从数据流中解码变换系数块92。然而,根据现在描述的实施例,局部模板,且具体是位于局部模板的位置的一个或多个先前编码/解码的变换系数,被用于设置二值化参数。以使用二值化进行二值化的方式对变换系数块92的当前编码/解码的变换系数130的量化水平的绝对值进行编码/解码,使用二值化参数对该二值化进行参数化。将一个或多个先前编码/解码的变换系数的总和和/或一个或多个先前编码/解码的变换系数中的有效变换系数的数量用于确定。

也就是说,本实施例的描述与先前给出了关于基于对局部模板的一个或多个先前编码/解码的变换系数的评估来确定上下文的描述非常一致,然而,关注点在二值化参数的设置上。应当注意,根据本实施例,使用其对变换系数块的变换系数的量化水平的绝对值进行编码/解码且其二值化参数使用局部模板132来设置的二值化,可以是上面参照图6描述的二值化161,但是不是必须的。也就是说,这里的二值化意味着可能具有第一二值化码或者其二元数段被上下文自适应地编码的第一部分或前缀部分,但它也可以例如是使用旁路模式编码的整个变换系数块,或者这里的二值化意味着仅有第二二值化码162组成。基于对局部模板132的评估所确定的二值化参数可以确定前缀部分162a的长度。可以使用查找表以便将局部模板132内的一个或多个先前编码/解码的变换系数的量化水平的绝对值的总和映射到二值化参数上。可能以使得二值化参数在变换系数上连续增加或连续减小的方式来确定二值化参数。

关于其他细节,参考先前描述的实施例的描述,即关于上下文的确定,基于该上下文,对二值化的经上下文自适应熵编码的数段进行编码。这些细节阐述了在使用多通路方法遍历变换系数的情况下如何确定总和。在这一点上,对于本实施例以及对于前一实施例,应当记得,多通路方法可以以使得多通路方法被分区级应用的方式完成。然而,在任何情况下,由于扫描通路94一般从变换系数块92的右下指向左上,因此图10中所示的模板位置,即位于当前编码/解码的变换系数130的右侧和/或下方的模板位置,在当前编码/解码的变换系数或其当前数段要被编码到数据流中/从数据流中解码当前编码/解码的变换系数或其当前数段时倾向于已被编码/解码。

接下来描述的实施例涉及一种用于将图片编码到数据流中的编码器和从数据流中解码图片的解码器,就截止值164来说,该编码器和解码器是特定的。因此,可以基于图4和图6的组合来最好地理解以下描述。这里,编码器被配置为通过以使用第一二值化码160和第二二值化码162进行二值化的方式,对变换系数块92的变换系数91的量化水平106的绝对值进行编码,来使用图5中所示的扫描图案94将变换系数块92编码到数据流中,解码器被配置为通过以使用第一二值化码160和第二二值化码162进行二值化的方式,对变换系数块92的变换系数91的量化水平106的绝对值进行解码,来使用图5中所示的扫描图案94从数据流中解码变换系数块92,第一二值化码160在截止值164之下,第二二值化码162在截止值之上并以第一二值化码中用于截止值的码字为前缀。从上面对可能的一般实现示例或概念的描述中可以清楚地看出,第一二值化码160的数段使用上下文自适应二进制熵编码来编码,而第二二值化码使用等概率旁路模式来编码。根据本实施例,用于变换系数块92的变换系数91的截止值根据先前编码/解码的变换系数自适应地改变。

根据一个具体实施例,自适应改变可以如下地体现。可以将变换系数块92划分为分区120,其中扫描路径94穿过变换系数块92,以便逐个分区地扫描变换系数91。也就是说,一个分区内的所有变换系数位置将在下一分区之前被扫描路径94扫描/遍历。除此之外,变换系数91的编码/解码将以使得数段165以通路编码的方式完成。将对第一二值化码160的数段165进行上下文熵编码,而对第二二值化码162的数段进行等概率旁路模式。将在第二二值化码162的数段之前,对第一二值化码160的数段进行编码/解码。在该编码环境中,可以如下实现截止值的自适应改变:在一个或多个前导通路中扫描当前分区内的变换系数91的数段165。然而,使用上下文自适应二进制熵编码/解码进行编码的数段165的数量可能受到限制。也就是说,在这种情况下,假设使用一条通路来对第一二值化码160的数段165进行编码。然后,当前分区120内的系数91的量化水平的绝对值的第一二值化码160的数段165将被逐个系数地编码。然后,已经针对各个系数91编码的数段的数量将根据相应变换系数的量化水平的值而改变。在某个系数下,将达到第一二值化码160的经上下文自适应二进制熵编码的数段165的最大数量。因此,第一通路将完成。下一通路将从头开始扫描当前分区的系数91,即从该分区120内距离块92的位置104最远的系数位置开始。对于在达到经上下文自适应二进制熵编码的数段的最大数量之前的所有系数,截止值164将等于该截止值的初始值。对于由于达到了经上下文自适应熵编码的数段的最大数量而不能完全对其第一二值化码160的数段165进行上下文自适应二进制熵编码/解码的系数,以与该系数的第一二值化码160的经编码的数段165的数量相对应的方式来减小截止值。具体地,减小该系数的截止值,以与针对该系数编码的数段的数量相对应,并且用于该系数的第二二值化码162仅对与第一二值化码的数段165相关联的最大绝对值之上的“剩余值”进行编码。对于该分区120内的后续系数,截止值甚至将为零,并且二值化161将仅由第二二值化码162组成。

在刚刚概述的示例中,截止值的自适应改变起着核心作用。在随后概述的实施例中,使用对截止值的设置来提高编码效率,但是根据该实施例,该设置可以备选地是分别在对变换系数块进行编码和在对变换系数块进行解码的开始,对截止值的初始设置,而不是在对变换系数块的编码/解码期间自适应地设置截止值,尽管根据本实施例也存在后一种选择。也就是说,根据这些实施例,用于将图片编码到数据流中的编码器通过以使用第一二值化码和使用第二二值化码162进行二值化的方式对变换系数块92的变换系数91的量化水平106的绝对值进行编码,来对变换系数块92进行编码,用于从数据流解码图片的解码器通过以使用第一二值化码和使用第二二值化码162进行二值化的方式对变换系数块92的变换系数91的量化水平106的绝对值进行解码,来对变换系数块92进行解码,第一二值化码在截止值164以下,第二二值化码162在截止值以上并以第一二值化码160中用于截止值164的码字为前缀。根据以下一项或多项来设置截止值164:

·块84的大小,

·块84的颜色分量,

·对预测信号进行的预测模式,块84表示预测模式的预测残差,例如帧内或帧间编码模式,

·对变换系数块92进行的变换,

·用于对变换系数块92进行量化的量化参数,

·对先前编码/解码的变换系数的能量的度量,以及

·对先前编码/解码的变换系数的评估。

再次,本文描述的设置可以针对每个系数91进行,或者备选地仅针对第一个被编码的系数(即位置98处的系数)进行,或者备选地每个分区内由扫描路径94首先遍历的系数,即被首先遍历的分区120内的位置98处的系数和任何后续分区120中同样被首先遍历的系数。

用于设置截止值164的上述备选方案可以多种可能性实现。然而,原则上,截止值的设置也可以以相对于先前的示例概述的方式体现为一个示例:也就是说,对于每个系数,可以以根据到目前为止已经被上下文自适应二进制熵编码/解码的第一二值化码的数段的数量来设置截止值164。该数量可以用作能量的度量,或者该数量可以是对先前解码/编码的变换系数的评估结果。如果对每个分区120完成了第一二值化码160的已经编码/解码的数段的数量或计数,则该数量或计算将表示对当前分区120内的先前编码/解码的变换系数的能量的度量。关于设置截止值164的本实施例以及自适应地改变截止值164的先前实施例,应当注意,然而,关于经上下文自适应二进制熵编码的数段的最大数量也存在改变:代替单独为每个分区120定义相同的最大数量,最大数量可以全局确定。这将意味着仅对定位在一个分区120中的一个特定系数91和整个变换系数块92,达到了最大数量。对于所有先前扫描的分区120,截止值将与初始值相对应,而将截止值164减小到零将仅在该分区内发生。后续分区对于其所有系数91的截止值164都为零。

刚刚概述的实施例还存在许多其他实施例,用于根据一个或多个以上概述/列出的备选方案来设置截止值164。例如,对先前编码/解码的变换系数的评估可以限于位于由局部模板132确定的位置的系数91。也就是说,将对当前编码/解码的变换系数130进行设置,并且该设置将有效地为自适应改变。甚至备选地,可以相对于位于以下位置的系数来进行对先前编码/解码的变换系数的评估:变换系数块的分区内偏离当前位置的位置,当前编码/解码的变换系数130位于当前分区中,且根据编码顺序118,当前编码/解码的变换系数130位于当前分区的前方。在后一种备选方案中,可以对每个分区120完成评估,即在对相应分区120内的变换系数91进行编码的开始时以一种截止值的初始设置进行评估。下面将进一步讨论其他备选方案。例如,可以根据上面列出的一个或多个备选方案中的任何一个完成初始设置。取决于截止值164的初始设置值在预定阈值之下或超过预定阈值,可以激活截止值的自适应改变或者可以将截止值保持恒定。一个示例是,例如,根据量化参数来初始设置截止值。如果由量化参数确定的量化比预定阈值更精细,则可以激活自适应改变,并且可以自适应地改变截止值,因此根据先前编码/解码的变换系数相对于初始设置修改截止值,但是如果量化参数与较粗糙的量化相对应,则截止值保持恒定。

在下文中,涉及本申请的实施例,这些实施例与本申请专门处理局部模板132的形状的一个方面有关。也就是说,根据本实施例,编码器用于将图片编码到数据流14中,并且解码器用于从数据流中解码图片。编码器和解码器被配置为通过使用基于一个或多个先前编码的变换系数所确定的上下文来对变换系数块92的当前编码的变换系数130的量化水平106进行编码/解码,一个或多个先前编码的变换系数位于由定位在当前编码/解码的变换系数130的局部模板132确定的位置,或者如果禁用局部模板132,则与先前编码/解码的变换系数91无关。具体地,根据图14的实施例,根据1)先前编码/解码的变换系数91和/或2)以下一项或多项:块84的大小、块84的颜色分量、终止系数的位置(当沿着正向方向116遍历扫描图案94时,最后的非零变换系数结果,即98定位在该位置)、对变换系数块92进行的变换90,设置局部模板132的形状,或者根据以上禁用局部模板132,这意味着局部模板132消失并且根本不包含任何定位的系数。图14示例性地示出了局部模板132的两个形状170和172。一个,即172,与上面参照图10所描绘和描述的示例相对应。另一个,即170,仅包括当前熵编码/解码的系数130紧右边的相邻系数位置和当前熵编码/解码的系数130紧下方的相邻系数位置。

根据第一备选方案,根据与先前编码/解码的变换系数有关的依赖关系,它们对先前编码/解码的变换系数的依赖关系可以限于那些位于由局部模板的较小形状(例如局部基元模板170)确定的位置的一个或多个先前编码/解码的变换系数。取决于对定位在基元模板170的系数的评估,例如确定是否将该基元模板170用于上下文确定,或者是否使用较大的基元模板172。与基元模板170相比,较大的基元模板172远离当前编码的变换系数130而延伸。第二基元模板172可以包括第一基元模板170也包括的位置,或者可以不包括它们。

基于对较小模板170内的系数的评估来决定使用哪种形状可以根据基元模板170内的一个或多个先前编码的变换系数的总和和/或一个或多个先前编码的变换系数中的有效变换系数的数量来进行。甚至可以根据对基元模板170内的一个或多个系数的评估来做出禁用决定。甚至进一步,可以根据从变换系数块内的先前编码/解码的变换系数导出的累积值,或者变换系数块内的先前编码/解码的变换系数的计数是否超过预定量来做出禁用决定。附加地或备选地,如果变换系数块内的先前编码/解码的变换系数91中的有效变换系数的计数超过预定量,则可以禁用局部模板。

关于上下文对局部模板132内的一个或多个系数的依赖关系,上面阐述的细节可以成立,即可以使用局部模板内的有效系数的总和和/或数量。此外,基于局部模板132导出的上下文可以限于用于前缀部分160的数段165。此外,关于多通路的使用以及针对局部模板132内的总和的确定的相关性的上述说明也可以在这里应用。

参考特定实施例,可以是针对色度分量禁用局部模板132,而针对亮度分量未禁用局部模板132。

当使用分区120作为用于确定上下文集合使用的粒度时,本申请的进一步的实施例涉及分区120的大小。例如参考图8和图13。本申请涉及该方面的实施例描述了用于将特征编码到数据流14中的编码器和用于从数据流14中解码特征的解码器。它们通过对每个分区120使用与相应分区相关联的上下文集合110来上下文自适应地对变换系数块92的变换系数91的量化水平106进行熵编码/解码,以对变换系数块92的变换系数91进行编码/解码。然而,具体地,将变换系数块92细分为的分区120:1)形状不同,使得它们例如如图13所示的彼此不一致,而如图8所示是一致的,和/或2)分区120的形状取决于扫描图案,沿着该扫描图案执行对变换系数91的量化水平的熵编码/解码,例如可以在数据流14中用信号通知该扫描图案,例如分别对当前块84/92固有地确定,和/或3)分区120的形状取决于块84的大小,和/或4)分区120的形状取决于在数据流14中用信号通知的显式分区形状信息。在该实施例中,例如,可以使用局部模板132来决定为某个分区120内的每个系数91实际使用与相应分区相关联的上下文集合中的哪个上下文集合,来对相应的系数或其当前数段进行熵编码。如上所述,当前实施例的分区120可以另外用作在数据流中针对其发送编码块标志的分区,即,指示相应分区内的所有变换系数91是否都为零。

本申请的另外的实施例涉及本申请的又一方面,即根据该方面,为了进行零化指示使用了哪个分区,但是指示150为分区指示:相应分区内的所有变换系数是否被编码到数据流中,或者是否跳过对相应分区内的所有变换系数的编码且相应分区内的所有变换系数都为零。具体地,根据本申请的该方面,以指示所有系数是否被编码或没有系数被编码的方式来说明该指示。这些分区中的每个分区可以具有与其相关联的上下文的集合,如果该指示指示对相应分区内的变换系数进行编码,则使用该上下文集合进行编码。换言之,这里分区级的零化指示指示了,如果如此设置,则对某个分区内的所有变换系数进行编码,且该情况不再需要被质疑。甚至不能基于所有先前的系数都为零来推断分区的最后编码的系数的有效标志,指示150为该分区用信号通知其系数的编码。

本申请的另外的实施例涉及本申请的又一方面,即根据该方面,在数据流中针对变换系数块92用信号通知划分模式,该划分模式指示是否应用用在相关联的分区单独的上下文集合110中的到分区120的划分。更准确地说,实施例描述了一种用于将图片编码到数据流中的编码器和从数据流中解码图片的解码器,其中将变换系数块92的划分模式编码到数据流14中/从数据流14中解码变换系数块92的划分模式,并且通过以下方式对变换系数块92进行编码/解码:如果划分模式为第一模式,例如开启到分区120的划分,则为将变换系数块92细分为的分区中的每个分区120,使用与相应分区相关联的上下文集合110来上下文自适应地对变换系数块92的变换系数91的量化水平106进行熵编码/解码,如果划分模式为第二模式,例如指示关断到分区120的划分,则使用全局上下文集合来上下文自适应地对变换系数91的量化水平106进行熵编码/解码。然而,应当注意,对于用于位置104处的系数和/或定位在位置98的系数的特殊上下文集合,可以限制全局性。再次,即使在该实施例中,分区120也可以附加地起到形成在数据流中发送变换系数零化的指示的单元的作用:也就是说,对于每个分区120,编码子块标志可以是数据流中的信号,其指示相应分区内的所有变换系数91是否都为零。

通过参考图15可以最好地理解涉及本申请的最后方面的实施例。再次,该方面涉及为了将分区单独的上下文集合110与分区120相关联而使用到分区120的划分。编码器和解码器被配置为将图片编码到数据流中/从数据流中解码图片,并且使用扫描图案94对变换系数块92进行编码/解码,该扫描图案94通过为将变换系数块92细分为的分区中的每个分区120使用与相应分区120相关联126的上下文集合110,来上下文自适应地对变换系数块92的变换系数的量化水平106进行熵编码/解码而依次遍历变换系数块92的变换系数91。然而,与先前描述不同的是,以逐个分区的方式示例性地扫描变换系数91来描述扫描图案94,图15的扫描图案94以如下不同的方式扫描变换系数91:图15通过针对扫描图案的撇号,即94’,来指示该情况。扫描图案94’以使得第一分区的至少一个变换系数在第二分区的两个变换系数之间遍历的方式来依次遍历变换系数块92的变换系数91。例如,图15的系数91’是这样的系数:它在分区120

然而,上下文集合与分区120的分区级关联性并不意味着与分区120相关联的上下文集合110相对于每对分区120互不相同或互不相交。换言之,一个上下文的集合可以与两个分区共同地相关联。例如,沿着扫描图案94交织变换系数91可以与具有与其相关联的公共上下文集合110的分区120有关。为了理解这一点,参考图16,其示出了扫描部分94’的另一示例,该扫描部分以将至少两个分区120(这里为分区120a和120b)的变换系数交织的方式遍历变换系数91,其中在图16的示例中,仅将变换系数块92划分为分区120a和120b。这里,公共上下文集合可以与分区120a和120b相关联。然而,在图15和图16的两个示例中,分区可以被附加地用作单元,以该单元为单位在数据流中用信号通知零化编码或零化指示,即编码子块标志。在图15和图16的实施例中,从与当前编码/解码的变换系数位于的相应分区120相关联的上下文集合110中选择上下文,并且可以使用如上所述的局部模板132来执行。附加地或备选地,可以基于当前分区内的先前解码/编码的变换系数的计数来完成从相关联的上下文集合110中选择上下文。当前编码/解码的变换系数位于例如取决于该计数是否超过一个或多个特定阈值。例如,在图16的示例中,如果变换系数130是当前编码/解码的变换系数,则四个阴影示出的变换系数可以表示块92中超过一个或多个特定阈值的先前编码/解码的变换系数。

当使用零化指示或编码子块标志时,可以在第一次扫描某个分区120的变换系数时,分别将零化指示或编码子块标志编码到数据流中或从数据流中解码零化指示或编码子块标志。也就是说,一旦沿着扫描部分94’扫描了某个分区120的第一变换系数91,就可以扫描该分区的零化指示或编码子块标记。图17和图18为此提供了示例。图18再次示出了变换系数块92的示例,这次被划分为三个分区120a、120b和120c。扫描部分94’中介于另一分区(即分区120b)的两个变换系数之间的一个变换系数91(交织的)以附图标记91’示出。图17假设该变换系数91’也是偶然地是首先被编码的变换系数,即例如在使用以上参照图5讨论的最后位置指示时,定位在位置98。对其量化水平106进行编码,随后是分区102b的编码子块标志CBF

上面经常提到,但是这里再次指出,可以将属于本申请的不同方面的上述实施例组合,例如将涉及跨颜色分量上下文导出的实施例与所有其他实施例和后者的组合相组合,将涉及二值化参数设置的实施例和涉及上下文导出的实施例组合,将涉及用于这些分区的某个系数的上下文集合的实施例与涉及使用局部模板从这样的集合中选择上下文的实施例组合,等等。

因此,以上实施例涉及变换系数块编码,例如用于图像和视频压缩中的熵编码。

以上实施例涉及数字信号处理领域,并具体涉及用于图像和视频解码器和编码器的方法和装置。值得注意的是,以上实施例产生了应用于采用划分技术的图像和视频压缩架构中的熵编码阶段的策略集。通过修改语法元素的处理顺序,已经实现了改进的上下文建模策略。除别名外,还包括以下技术集合:分析当前等级的局部活动、采用专用上下文模型、修改语法处理顺序、评估跨分量语法元素以及排除或专用于处理具有极端概率的编码状态。

具体地,以上实施例提出了用于熵编码的新技术集,其尤其适合于涉及采用划分技术的图像和视频压缩架构中的残差压缩阶段的语法元素。这样的设计通常将图片分为规则的形状,例如矩形或块。在不失一般性的情况下,术语“块”代表在本文档的描述中描述所应用的划分技术的任意形式。起始点可以是如上参考图3所解释的最大允许大小,并且划分算法可以将每个块进一步划分为较小的单元。这样的划分可以通过使用四叉树结构来执行,例如在最新的高效率视频编码(HEVC)规范中。将不同策略用于划分也是可能的,例如,使用二叉树而不是四叉树。除划分外,残差压缩阶段之前的新编码工具还需要进一步发展现有方法。为了实现提高的压缩效率,解决了以下方面:

·定义语法元素以交换编码顺序(例如图15、图16、图18)

·结合以上修改,调整了二值化(例如针对截止值的自适应改变)

·对二值化过程产生的每个数段进行上下文建模(例如参见针对某些特征调整局部上下文模板的形状或禁用局部上下文模板的概念)

·对空间域中的局部活动的评估(例如参见根据涉及如能量等的某些特性使用局部模板或设置截止值的实施例),对频率域中的局部活动的评估(例如参见针对某些特性调整局部上下文模板的形状或禁用局部上下文模板,以及根据涉及如能量等的某些特性设置截止值的概念)和跨分量域中的局部活动的评估(例如参见图11a)

·排除具有极端概率的编码模式

·对具有极端概率的编码模式的专用处理

·分别处理专用编码状态

HEVC中采用的熵编码阶段是基于上下文的自适应二进制算术编码(CABAC),它由三个内部处理阶段组成。第一阶段是二值化阶段,第二阶段是上下文建模阶段,最终处理单元是二进制算术编码引擎。所有输入符号都经过二值化阶段。如果输入已经是二进制的,输出是相同的符号,否则,输出是表示输入符号的码字,其被称为数段串。上下文建模阶段选择上下文模型,并将其选择传递给熵编码引擎。注意,二进制算术编码引擎,例如在CABAC中实现的M-Coder,通常支持对符号具有均等概率的旁路模式。本文档的其余部分将使用上下文模型的编码称为常规模式,将不使用上下文模型的编码称为旁路模式。

对于残差压缩阶段,即变换系数水平的传输,输入主要是由整数值系数组成的块。这些值通常是变换到频域中的预测残差,并且由于量化过程,这些水平通常仅表示原始信息的一部分量。由于该处理在熵编码阶段是串行性质,因此有必要将二维形状分解为一维向量。扫描图案指定二维块到一维向量的映射。可以多次应用这种扫描图案,使得每次仅在比特流中(例如在HEVC中)发送变换系数水平的一部分量。在以下段落中,本文档从不同的角度描述了残差压缩阶段。

HEVC中的残差压缩的工作方式如下。首先对编码块标志(CBF)语法元素进行编码,其用信号通知当前变换块的非有效性,即所有变换系数水平是否都等于零。当存在有效水平(significant level)时,指定最后的有效扫描位置。它取决于所选择的扫描图案,并且对从用信号通知的最后位置到由扫描图案限定的第一位置的所有水平进行编码。隐式地,扫描顺序等于以逆向顺序使用扫描图案。将整个过程拆分为子任务可以提高实现复杂度和压缩效率。大于4×4的变换块将以4×4的子单元处理,称为子块。子块的处理顺序与扫描位置的处理相同,即假设每个子块表示规则的频率位置,且变换块具有N/4×M/4而不是N×M的大小,如图19中针对使用垂直扫描图案的8×8块示例性地示出的。

在有效变换块的第一步中,对最后位置的绝对坐标进行编码,即以左上角为坐标原点的x坐标和y坐标进行编码。选择三种预定义的扫描图案之一:对角线、水平或垂直。当预测模式为帧内,变换块小于或等于8×8,并且预测子的方向在预定义的范围内时,可以使用水平或垂直扫描图案。接下来,从包含最后有效水平的子块开始,对关于水平的剩余信息进行编码,直到水平被重构。对剩余子块重复所描述的过程,直到处理顺序中的最后一个子块为止,其中最后一个子块始终是覆盖DC频率位置的子块。存在嵌入到处理中的其他技术,例如用于子块的CBF的编码。由于最后的扫描位置的信令已经推断出该子块是有效的,因此跳过了最后一个子块。对覆盖DC频率位置的子块的推断也是一种特殊情况。另外,可以将符号位隐藏(SBH)技术应用于每个子块。图20给出了概述。

从二值化阶段的角度来看,每个整数值x表示间隔上的一个点,且为间隔上的每个点分配码字。一元码是常用的方案,其中|x|=n由n个二进制值b

将每个子块的编码分割为若干扫描通路,使得语法元素按组排序。在第一处理通路中,发送有效性信息。接下来,发送所有大于1的语法元素,然后发送所有大于2的语法元素、剩余绝对水平,最后发送符号。整数值最后有效位置的二值化如下操作。取决于块大小,对于N的块大小,最大值限制为N-1。根据大小N,二值化的输出是截断一元码和固定长度二进制码的组合。

上下文建模的详细工作如下。一般地,由固定长度二值化、哥伦布-莱斯或指数哥伦布码产生的二进制符号(数段)以旁路模式编码,而与一元码或截断一元码相关的数段使用常规模式编码。同样,已经是二进制的输入符号通常以算术二进制编码器的常规模式进行编码。对于亮度分量中的CBF,对于等于零的残差四叉树(RQT)深度,采用专用上下文模型,对其余深度采用另一专用上下文模型。由于在色度中用信号通知的CBF沿着每个深度,而不是像亮度那样沿着叶层级,因此为RQT的每个深度使用专用上下文模型。指定为x坐标和y坐标的最后位置,取决于块大小,为特定数量的连续数段采用相同的上下文模型。更具体地,不是对每个数段使用单个上下文模型,而是采用统一的上下文量化器,以减少所使用的上下文模型的数量。水平的编码采用了四种使用不同上下文模型集合的语法元素类型。根据相邻的右子块和下子块的有效性,子块的CBF采用了三种不同的上下文模型:两个相邻子块都是有效的、两个相邻子块都是不有效的和两个相邻子块中的一个是有效的。有效性标志采用了四种不同的图案,其中上下文模型被固定分配给子块内的扫描位置,且这些模式取决于相邻右子块和相邻下子块。使用常规模式的剩余水平信息大于1且大于2,即截断一元码在第一二值化界限等于3时的两个数段。由于对大于2进行了一次编码,因此采用单个上下文模型。对于大于1的信息,使用集合中的下一个上下文模型,直到出现第一个非终止二进制值b

上下文建模在熵编码阶段起着重要的作用。通过采用更高级的上下文建模技术,可以实现更高的压缩效率结果。本文提出的实施例通过修改编码顺序来提高水平编码的压缩效率,使得现有的信息更早地可用于上下文建模阶段。一种可能的编码结构如图23所示。

根据实施例,修改处理顺序,使得每个水平在步进到下一扫描位置之前被完全发送。通过这样做,为上下文建模阶段启用了条件,从而允许更高的压缩效率。具体地,代替在多个通路中处理子块,而是完整地发送每个扫描位置的绝对水平,使得仅需要一个处理通路。尽管多个扫描通路方案对一些硬件架构有好处,但是对于另一架构类型,例如在存储器访问方面存在缺点。概述如图24所示。

经修改的处理顺序完全发送绝对水平,使得在对相邻频率位置进行评估时,完整的绝对水平是可用的,而不是仅使用一部分量。注意,修改不必像所描述的那样固定。通常,残差能量是平坦的,因此绝对水平很小。折衷操作模式仅在已经检测到特定量的大于特定阈值的绝对水平时,才启用模板评价。(例如参见参照图14描述的实施例)另外,出于吞吐量的原因,可以限制指示绝对水平大于1且大于2的标志的数量,以便减少常规模式下的数段的数量。(例如参见参照图6描述的并且旨在适应或设置截止值4的实施例)当采用绝对水平编码时,子块的概念不必再取决于4×4形状(例如与分区的形状相关的实施例,如参照图13),而是可以是一组连续扫描位置。也就是说,属于不同分区的系数可能不会发生交织。注意,子块的主要原因可以是上下文建模。4×4子块的概念可以容易地扩展到一组扫描位置。例如,可以使用等于16的固定数量的扫描位置,导致与现有的4×4子块相似的配置。图25示出了将常规分区转换为大小为16(以系数为单位)的4个分区(左侧),和转换为相同大小但遵循之字形(zigzag)扫描的4个分区(右侧)。

根据所选择的大小,连续扫描位置的分组通常仅包含扫描位置。为了提高压缩效率,可以将大小配置为可变的(参见与分区的形状有关的实施例),但是对于给定的变换块大小,该大小是固定的。另一示例如下。DC频率位置可以形成专用形状,并且形成的扫描位置的数量等于对角线。注意,应当以根据块大小的方式来配置大小。将特定数量的连续扫描图案形成为一组,从而省去了频率位置之间的相邻关系。因此,将空间上彼此靠近的扫描位置分组在一起是合理的。为了与现有的扫描图案组合,不必连续地处理一个组的扫描位置。(参见图15、图16和图18)而是在处理组的第一扫描位置时对组的CBF进行编码。参见图17和图18。此外,可以预先指定分组,例如,使用前向驱动(比较上述显式分区形状信息)或后向驱动方法(根据扫描图案或块大小比较上述分区形状)或二者的组合。在该配置中,根据最后有效位置,对用信号通知是否使用分组的另一标志进行编码,其导致对于组CBF的存在或不存在。(参见使用划分模式信令的实施例)扫描位置的数量的适配允许如下降低高频位置处的水平的成本。一般地,较高频率位置处的水平具有较低的能量,并且有效水平之间的距离也趋向于比在较低频率位置处的大。因此,速率失真优化量化方法进一步将这种水平量化为不有效。当自适应地形成扫描位置的数量时,可以进一步降低两个这样的水平之间的距离的成本。该概念也可以应用于另一端。在具有较高残差能量的较高操作点中,可以进一步降低仅具有有效水平的一组扫描位置的成本。此外,该组的CBF的定义也发生了改变,意味着当CBF等于1时,对该组进行编码,而不是在该组内存在至少一个有效系数时对该组进行编码。改变语义降低了逻辑。

从4:2:0色度子采样信号的经验数据角度来看,亮度残差信号通常包含比空间上相邻(例如,空间上对应)的色度残差信号更高的能量。当对处理重新排序时,可以将该事实合并到水平的编码中,使得在用信号通知CBF后立即对水平进行编码。然后可以对上下文建模阶段评估更多的信息。可以针对色度CBF或色度残差的结果来调节用于亮度CBF和残差的上下文建模。(比较图12的描述)此外,可以加个最后有效位置的编码与水平编码解耦,即在所有三个变换块都是有效的情况下。所有三个最后有效位置均被顺序编码。与CBF的编码类似,最后有效位置的编码可以以相邻(例如共位)变换块的最后有效位置的结果为条件。(比较图12的描述)另一技术是对最后有效位置的联合编码,即对于两个色度变换块,仅对单个最后扫描位置进行编码,而不是对两个最后有效位置进行编码,即例如对于亮度和色度,仅将位置指示114联合编码一次。

第一二值化界限,即截止值164是自适应的,并且具有复杂度和压缩效率之间的折衷。当选择的固定界限太低时,实现较低的压缩效率,当选择的固定界限太高时,复杂度较高。注意,较高的界限不会导致压缩效率的成比例增加,相反,这种改进非常有限。然而,由于不同的划分策略以及残差压缩阶段之前的其他或新颖的编码技术,操作点改变。例如,通过将第一二值化界限设置为等于5,可以在启用其他变换模式(例如前向自适应或后向自适应控制的自适应变换)时提高压缩效率。第一二值化界限可以用于控制不同的编码模式。例如,当检测到高能量的水平时,可以将第一二值化界限设置为等于零,使得在常规模式下没有数段被编码。(比较以上关于截止值的改变和设置的实施例)可以通过分析变换块或变换块的子块的已经发送的语法元素(或二进制判定)的值来实现对高信号能量的检测。作为示例,可以通过将(变换块或变换块的子块中的)绝对值的总和与某个阈值进行比较来实现对高信号能量的检测。备选地,可以通过将(变换块或变换块的子块的)扫描位置上的第一扫描通路中已经编码的数段的数量与某个阈值进行比较来实现该检测。(比较以上关于截止值的改变和设置结合多通路概念的实施例)

通用操作点的配置如下。初始界限,即截止值,取决于所使用的预测和变换模式、以及量化参数,且截止值大于3,例如等于5。(参见以上关于截止值的设置的实施例)对于等于HEVC中的配置的模式的组合,初始第一界限被设置为等于3。在该模式下,根据水平值的出现减小界限。(参见以上关于截止值的变换的实施例)但是,当初始第一界限等于5时,对于组甚至整个变换块,该初始第一界限保持固定。

已经将用于上下文导出的局部模板用作现有技术的一部分,然而,由于信息有限,即,仅对绝对水平的一部分量进行了评估。通过对编码结构应用改变,现有信息在编码过程的更早阶段可用,因此可用于上下文及建模阶段。由于绝对水平因应用于编码结构的上述技术而可用,因此局部模板覆盖的频率位置包括更新信息,所呈现的实施例中的一些如下利用该事实。由于编码已被排序,使得每个水平都被完全编码,因此局部模板对已经编码的相邻空间位置进行评估。采用相邻水平的绝对值总和与有效水平的数量来导出作为第一二值化码的一部分的数段的上下文模型,第一二值化码可能是一元二值化或截断一元二值化。也可以从评估中导出二值化参数163,例如莱斯参数。示例配置如下。

模板的形状可以是固定的或自适应的。上面已经描述了形状适应实施例。例如,当模板大小等于5且对前两个相邻位置的评估已经导致非常高的绝对值总和时,可以跳过对剩余相邻位置的评估,从而导致局部模板的自适应形状。(参见图14)可以根据块大小、颜色分量、以及最后有效位置和所选择的变换来配置形状。在特殊情况下,可以将模板的大小设置为等于零,使得局部邻域内部的已经编码的量化水平都不用于上下文导出。然后禁用局部模板。当残差能量在频率位置之间扩散且是平坦的时,即当绝对水平较低时,覆盖更多相邻频率位置的模板更加有效。这样的情况通常在较大的变换块中,并与高频位置处的最后有效位置相结合。

在量化索引的二值化的数段是在变换块或变换块的子块的扫描位置上的多个扫描通路中编码的情况下,仅在当前和先前扫描通路中发送的数段可用于导出上下文模型。在该情况下,使用经部分重构的绝对水平(其使用在当前和先前扫描通路中发送的数段导出)。具体地,对于在(变换块或之快的扫描位置上的)第一通路中发送的经上下文编码的数段,使用由在第一扫描通路中编码的数段给出的部分重构的变换系数水平来评估模板。

可以根据诸如当前对角线、块大小、所应用的变换、所选择的预测子或预测模式以及截断一元码字内的位置之类的信息来采用不同的上下文模型集合。为了避免上下文稀释,可以合并上下文集合。例如:相邻对角线可以与如图25(右手边)所描绘的一个分区相关联。作为示例,某个上下文集合可以用于多个对角线位置(即根据对角(x+y)位置,将变换系数的块划分为多个区域,并为这些分区中的每个分区使用单独的上下文集合)。类似地,可以通过合并其他参数的多个值或不同参数的组合来获得不同的上下文集合。在某些情况下,为DC位置设置专用上下文模型也是有益的。(例如,参见为位置104和/或98提供样本特定上下文集合的实施例)这意味着,对于DC系数(位于变换系数的块中的位置x=0和y=0,即位置104),可以使用与所有其他系数位置不同的上下文模型的集合。这样的上下文集合区别可以应用于作为截断一元码的一部分的所有数段。这意味着,上述用于指定上和文集合的任何方法可以应用于变换系数水平的二值化的各个数段,或者备选地,应用于变换系数水平的二值化的数段的子集,或者作为另一备选,应用于变换系数水平的二值化的所有经上下文编码的数段。

上下文模型选择取决于模板评估的结果。例如,导出模板内的水平的绝对值总和与有效位置的数量。根据这两个数量,可以导出第一二值化码160(例如截断一元码和莱斯参数k)的所有数段部分的上下文模型。例如,绝对值总和减去有效位置的数量直接导致上下文模型集合内的上下文模型索引。由于上下文模型集合受限,因此可以将值截取为上下文模型集合内的上下文模型的数量。对于莱斯参数,可以导出映射表,使得可以建立绝对值总和与莱斯参数之间的直接映射。然而,为了限制表大小,绝对值总和也应受到限制。

上下文模型选择也可以通过所选择的变换来导出。具体地,如果使用仅应用于初级系数的子集的次级变换,则可以将上下文模型的专用集合用于这两个子集。

存在已知的并且可以被利用以提高压缩效率的编码状态。对于最后有效扫描位置,给出了具有水平编码的情况。对于该位置,采用专用上下文模型来对作为第一二值化码的一部分的数段进行编码,其可能是截断一元二值化。可以例如通过评估对角线将其与块中的当前位置组合,从而可以使用不同的上下文集合。它可以进一步与上述方法组合,其中将上下文模型的另一不同集合用于DC变换系数水平(即,变换块内部位置x=0和y=0处的变换系数水平)的数段。对于最后有效扫描位置等于DC位置的情况,存在多个可能性:使用针对最后位置的上下文集合(即最后位置具有更高的优先级)、使用针对DC位置的上下文集合(即最后位置具有较高的优先级)、或者为也是最后扫描位置的DC位置使用单独的上下文集合。如上所述,不同的上下文集合可以应用于变换系数水平的二值化的各个数段,或者备选地,应用于变换系数水平的二值化的数段的子集,或者作为另一备选,应用于变换系数水平的二值化的所有经上下文编码的数段。

另一种情况是,当局部模板内的所有系数都是有效的且它们的绝对水平在特定阈值之上时。在这种情况下,上下文建模切换到局部模板评估被禁用的模式,直到变换块结束为止。再次,例如根据当前对角线,可以使用不同的上下文模型集合。相反,可以排除以低频出现但是需要信令的编码模式。这样的编码模式是例如在先前的组由较高数量的绝对水平组成时,对组的CBF进行编码。在该示例中,配置是依次处理由组覆盖的扫描位置。另一示例是第一二值化界限160。代替在每个组的开始以固定界限值开始,对先前组的绝对水平进行分析,并且界限在1至5之间改变。为了减轻吞吐量方面,当先前组由非常高的残差能量组成时,可以将界限设置为零。然后,第一二值化码160将消失。当统计信息不极端,即条件概率没有接近最小熵时,使用局部模板是有效的。在后一种情况下,可以在保持压缩效率的同时禁用模板开估,从而降低复杂度。当水平的数量对处理性能起重要作用时,这对于更高的操作点特别有用。当水平的主要量不有效时,在变换块的开始给出另一情况。在这种情况下,由于不确定性较高且可用于上下文建模的附加信息量较小,因此可以禁用模板评估。

存在不同的平面,也被称为颜色分量,每个平面携带不同的颜色信息,例如亮度和色度信息。所有平面都覆盖图片的相同区域,因此,颜色平面中的变换块在所有其他颜色平面中具有相应的块。这些变换块被依次编码,每个变换块使用相同的语法。因此,对于每个变换块存在相同的语法元素。因此,来自颜色分量中的变换块的信息可用于随后的变换块。通过评估其他颜色分量中的对应物,可以利用该方法导出当前处理的块中的语法元素的上下文模型/集合。(比较图12)给出一种情况,对第二色度分量的编码块标记(CBF)进行编码。根据第一色度分量的先前CBF的值,选择两个不同上下文中的一个。另一示例是截断一元码的第一数段用于绝对系数水平编码。再次,对先前颜色平面中相同位置处的截断一元码的第一数段的值进行评估,以便选择不同的上下文集合。

在涉及编码结构的优选实施例中,组织编码,使得针对变换块的每个扫描位置完全传送每个变换系数水平。在另一优选实施例中,在两个通路中对水平进行编码,使得对部分160的所有常规编码的数段165进行编码,随后对部分162的旁路数段165进行编码。在本发明的另一优选实施例中,保留通路的数量,但是针对整个变换块进行处理,而不是逐个子块地进行处理。

在优选实施例中,分组形状固定,其中固定的形状大小比现有的4×4小。在另一优选实施例中,分组形状固定,其中形状大小可变。形式取决于变换块大小和/或颜色分量和/或预测模式和/或所选择的变换和/或最后有效位置。在另一优选实施例中,使用前向自适应来自适应地导出形状大小。在该实施例中,形状大小以规则的4×4形式开始,并且作为示例,大小可以变为8×8。

在优选实施例中,如图13中示例性地示出的,扫描图案与分组解耦,使得在对组的第一频率位置进行编码时,对组的CBF进行编码。在该配置中,扫描图案可以例如是水平的(或垂直的),使得变换块的每一行都被完全处理,而形状仍然是4×4。

在优选实施例中,布置编码结构,使得在对相应变换块的CBF标志进行编码之后,立即对水平进行编码。重新排序使得能够对已经编码的空间上相邻的变换块进行评估,以进行上下文建模。在另一优选实施例中,色度块的编码是交织的。在该配置中,对最后位置编码一次,并且编码在两个色度变换块之间切换。在另一实施例中,最后位置被常规编码,并且扫描位置对齐时,两个色度块之间的切换被激活。在另一优选实施例中,两个色度块被交织,使得生成具有与4:2:0内容的色度相同大小的变换块。然后,对经合并的色度块进行常规编码。

在优选实施例中,为色度变换块联合编码最后有效位置。在该配置中,最后位置且不是最后有效位置,相反,它是编码开始的最后位置,因此必须针对该特定位置编码有效信息。在另一实施例中,对于两个色度块,对最后位置编码一次,但是仅对色度块之一指定最后位置。对于另一色度块,必须在另一色度块的最后有效位置处对有效性进行编码。

在优选实施例中,CBF意味着变换块应被编码。结果是变换块可能是不有效的。在该特定配置中,最后有效位置仅等于最后位置。该配置可以耦合到特定条件,例如块大小、预测模式、变换模式等。例如,当采用一维分区时,对于4×4块,所得的条带仅为1×4。在这种情况下,当第一个1×4条带是有效的时,可以推断CBF等于1。

在优选实施例中,CBF意味着应对组的频率位置进行编码。在该配置中,所有扫描位置均被编码,并且不对组内的最后扫描位置进行推断。

在关于二值化的优选实施例中,取决于块大小或颜色分量或预测模式或所选择的变换,第一二值化界限164对于每个变换块是可变的。在该配置中,当需要在比特流中用信号通知另一变换模式时,第一界限可以是5。但是对于常规变换,第一界限可以保持为3。

在优选实施例中,当界限大于3时,第一界限164从不减小。在该优选实施例中,假设水平不是固定的,因此,在常规模式下比通常情况对更多的数段进行编码是有意义的。在另一优选实施例中,第一界限的减小取决于块(其可以表示变换块或变换块的子块)内经编码的符号的数量。在另一优选实施例中,第一界限取决于模板评估是自适应的。例如,当有效位置的数量为零时,第一界限为5。但是,当模板内存在给定量的有效水平时,例如3个,则将界限设置为等于2,且当模板内有5个有效水平时,将界限设置为等于1。

在优选实施例中,使用模板导出莱斯参数。在该配置中,获取水平的绝对值总和,并将绝对值总和映射到莱斯参数。表大小可以限制为等于8、16或32。查找表中的值可以凭经验导出。在本发明的另一优选实施例中,即使使用模板,对于一个组,莱斯参数也不会降低。在本发明的另一优选实施例中,莱斯参数取决于由模板覆盖的水平的最优莱斯参数。注意,在该配置中,可以在计算中考虑已经编码的水平的第一二值化界限。

在优选实施例中,莱斯码覆盖的间隔取决于莱斯参数,且随着莱斯参数越高其间隔变得越大。在另一优选实施例中,莱斯码覆盖的间隔取决于块大小和/或预测模式、和/或变换大小和/或量化参数。注意,对于本段中的优选实施例,可以从莱斯码覆盖的间隔推断出第二二值化界限。

在优选实施例中,指数哥伦布的阶数是固定的并且等于零。在另一优选实施例中,指数哥伦布阶数最初为莱斯参数加一。在另一优选实施例中,指数哥伦布阶数最初为莱斯参数。在两个优选实施例中,指数哥伦布码仅覆盖有限的间隔,并且当值大于间隔的结尾时,再次对剩余值但以不同阶数应用指数哥伦布。在优选实施例中,以等于1的步长减小指数哥伦布阶数,直到它为零。在另一优选实施例中,指数哥伦布阶数即刻等于零。

关于上下文建模,在优选实施例中,模板形状是固定的且覆盖所有相邻的空间邻居。在另一优选实施例中,模板形状是固定的,并且还覆盖另一颜色通道中的空间上相邻的邻居。该配置被设计用于色度变换块的编码。

在优选实施例中,模板形状是自适应的,并且在变换块的开始处导出。具体地,形状取决于变换块大小、和/或预测模式、和/或变换、和/或量化参数而较大或较小。在本发明的另一优选实施例中,在变换块内调整模板形状。在该配置中,形状变得较大或较小。例如,当形状大小等于5,且3或4个相邻位置是有效的,但是绝对水平总和在某个阈值之下时,增加模板以合并更多的相邻位置。另一方面,当所有频率位置都是有效的且绝对水平总和在某个阈值之上时,形状变得更小,即被设置为等于3。

在优选实施例中,截断一元部分的第一数段的上下文模型集合取决于对角线。在该配置中,亮度变换块可以采用三个不同的上下文集合,而色度变换块仅采用两个不同的上下文集合。对角线限定了切换点并且可以在亮度和色度之间不同。在本发明的另一优选实施例中,当必须在比特流中用信号通知选择了一变换时,采用不同的上下文集合。

在优选实施例中,从第二位置开始的数段,即截断一元码中除了第一数段之外的所有数段采用相同的上下文集合。在本发明的另一优选实施例中,数段使用上下文模型集合的相同集合,但是上下文集合可以根据对角线而不同。在另一优选实施例中,数段使用上下文模型集合的相同集合,但是上下文集合可以根据所选择的变换而不同。在另一优选实施例中,第一对角线采用专用上下文模型集合。在另一优选实施例中,从第四位置开始的数段(即截断一元码中除了第一、第二和第三数段之外的所有那些数段)根据所选择的变换采用另一上下文集合。

在优选实施例中,使用模板的绝对总和导出第一数段的上下文模型,该模板的绝对总和限制在与所使用的上下文集合具有相同大小的特定阈值内。在另一优选实施例中,评估在截取之前从绝对水平总和减去有效位置的数量。在另一优选实施例中,评估在截取之后从绝对水平总和减去有效位置的数量。在另一优选实施例中,计算绝对水平的方差,将其归一化到上下文模型集合内的上下文模型的数量。

在优选实施例中,对于从第二数段直到截断一元码的结尾的上下文模型,通过从绝对水平总和减去有效位置的数量来选择上下文模型。在本发明的另一优选实施例中,采用了现有方法,但是对其进行了修改以与模板合并。在该配置中,可以更早地切换到专用上下文模型,例如当绝对水平总和在某个阈值之上时。

在优选实施例中,首先对所选择的变换进行解码。如果该变换由初级变换阶段和次级变换阶段组成,并且只有初级变换的子集由次级阶段进一步变换,则两个不同的模板被用于这两个系数位置集合。

在优选实施例中,专用上下文模型被用于截断一元码的数段的最后有效位置。在该配置中,上下文模型专门用于最后有效位置。参照图5讨论了细节。在另一优选实施例中,用于最后有效位置的截断一元码的数段的上下文模型取决于空间上相邻的变换块的已经编码的最后有效位置,空间上相邻的变换块包括另一颜色平面中相同位置处的变换块。具体地,针对截断一元码的当前数段所选择的上下文模型集合取决于另一颜色平面中的最后有效位置。每当由当前数段指示的当前位置变大时,就选择另一上下文集合。

在优选实施例中,用于亮度CBF的上下文建模取决于已经编码的色度CBF。在另一优选实施例中,用于第二色度CBF的上下文建模取决于已经编码的第一CBF。在本发明的另一优选实施例中,用于第一色度CBF的上下文模型取决于已经编码的亮度CBF。在本发明的另一优选实施例中,当改变编码结构时,用于CBF的上下文建模使用来自空间上相邻的变换块的能量信息,空间上相邻的变换块还包括另一颜色平面中相同位置处的变换块。具体地,评估绝对值总和,并将其与阈值列表进行比较。只要该值大于阈值,就将上下文索引增加1。在另一优选实施例中,用于CBF的上下文建模使用相同的能量信息,但是阈值集合取决于当前和/或相邻块的预测模式,例如如果测试模式是LM色度模式之一。在另一优选实施例中,用于CBF的上下文建模使用相同的能量信息,但是上下文集合可以根据当前和/或相邻块的预测模式而不同,例如如果预测模式是LM色度模式之一。

在优选实施例中,用于截断一元码的第一数段的上下文建模取决于空间上相邻的变换块中已经编码的数段,空间上相邻的变换块还包括另一颜色平面中相同位置处的变换块。具体地,根据截断一元码的第一数段在另一颜色平面的相同位置处的值,来选择上下文模型集合。

在优选实施例中,用于截断一元码的数段的上下文建模取决于空间上相邻的变换块中已经编码的数段,空间上相邻的变换块还包括另一颜色平面中相同位置处的变换块。具体地,根据截断一元码的相应数段位置在另一颜色平面的相同位置处的值,来选择上下文模型集合。在另一优选实施例中,用于截断一元码的数段的上下文建模使用来自空间上相邻的变换块的能量信息,空间上相邻的变换块还包括另一颜色平面中相同位置处的变换块。具体地,评估变换块的不同区域中的绝对值总和,并将其与阈值列表进行比较。只要该值大于阈值,就会选择另一上下文集合。

在优选实施例中,当已经对足够数量的绝对水平进行了编码时,启用/禁用模板。在另一优选实施例中,当已经对足够数量的有效位置进行了编码时,启用/禁用模板。

换言之,下面再次概括上面设置的实施例。

根据实施例,一种用于将图片编码到数据流中的编码器可以被配置为:分别针对第一颜色分量和第二颜色分量,对图片的块进行变换,以分别获得第一变换系数块和第二变换块;以及使用取决于第一变换系数块的上下文,上下文自适应地对第二变换系数块进行熵编码。

根据一个实施方式,编码器可以被配置为:为第二变换系数块被细分为的分区集合中的每个分区编码一指示150,该指示150指示相应分区内的变换系数是否被编码到数据流中,或者指示是否跳过对相应分区内的变换系数的编码且相应分区内的所有变换系数都为零;以及对于该指示指示相应分区内的变换系数被编码到数据流中的分区,对第二变换系数块的变换系数的量化水平进行熵编码,对于该指示指示跳过对相应分区内的变换系数的编码且分区内的所有变换系数都为零的分区,跳过对分区内的变换系数的编码,其中使用取决于第一变换系数块的上下文,使用上下文自适应熵编码来执行对该指示的编码。

根据进一步的实施方式,编码器可以被配置为:为第一变换系数块被细分为的进一步分区集合中的每个进一步分区编码进一步指示,该进一步指示指示相应的进一步分区内的变换系数是否被编码到数据流中,或者指示是否跳过对相应的进一步分区内的变换系数的编码且相应的进一步分区内的所有变换系数都为零;以及对于该进一步指示指示相应的进一步分区内的变换系数被编码到数据流中的分区,对第一变换系数块的变换系数的量化水平进行熵编码,对于该进一步指示指示跳过对相应的进一步分区内的变换系数的编码且进一步分区内的所有变换系数都为零的进一步分区,跳过对进一步分区内的变换系数的编码,其中使用取决于第一变换系数块的进一步分区的进一步指示和/或变换系数的量化水平的上下文,使用上下文自适应熵编码来执行对该指示的编码。

根据进一步的实施方式,编码器可以被配置为:对一指示190进行编码,该指示190指示第二变换系数块内的变换系数是否被编码到数据流中,或者指示是否跳过对相应分区内的变换系数的编码且第二变换系数块内的所有变换系数都为零;以及如果该指示指示第二变换系数块的变换系数被编码到数据流中,则对第二变换系数块的变换系数的量化水平进行熵编码,如果该指示指示跳过对第二变换系数块的变换系数的编码且分区内的所有变换系数都为零,则跳过对第二变换系数块的变换系数的编码,其中使用取决于第一变换系数块的上下文,使用上下文自适应熵编码来执行对指示190的编码。

根据进一步的实施方式,编码器可以被配置为:对进一步指示190进行编码,该进一步指示190指示第一变换系数块的变换系数是否被编码到数据流中,或者指示是否跳过对第一变换系数块的变换系数的编码且相应的进一步分区内的所有变换系数都为零;以及如果该进一步指示指示第一变换系数块的变换系数被编码到数据流中,则对第一变换系数块的变换系数进行熵编码,如果该进一步指示指示跳过对相应的进一步分区内的第一变换系数块的变换系数的编码且第一变换系数块内的所有变换系数都为零,则跳过对第一变换系数块的变换系数的编码,其中使用取决于第一变换系数块的该进一步指示和/或变换系数的量化水平的上下文,使用上下文自适应熵编码来执行对指示190的编码。

根据进一步的实施方式,编码器可以被配置为:将第一终止系数位置的第一指示114编码到数据流中,当遍历第一扫描图案时,第一最后非零变换系数位于该第一终止系数位置处,该第一扫描图案沿着正向方向依次遍历第一变换系数块的变换系数;将第一数据编码到数据流中,第一数据表示以逆向方向由第一扫描图案从第一终止系数位置遍历的变换系数的第一编码集合,第一数据包括变换系数的第一编码集合中的非零变换系数的量化水平;将第二终止系数位置的第二指示114编码到数据流中,当遍历第二扫描图案时,第二最后非零变换系数位于该第二终止系数位置处,该第二扫描图案沿着正向方向依次遍历第二变换系数块的变换系数;将第二数据编码到数据流中,第二数据表示以逆向方向由第二扫描图案从第二终止系数位置遍历的变换系数的第二编码集合,第二数据包括变换系数的第二编码集合中的非零变换系数的量化水平,其中使用取决于第一终止系数位置的上下文,使用上下文自适应熵编码来执行对第二指示的编码。

根据另一实施例,一种用于从数据流中解码图片的解码器可以被配置为:针对第一颜色分量和第二颜色分量,分别对图片的块进行变换,以分别获得第一变换系数块和第二变换块;使用取决于第一变换系数块的上下文,上下文自适应地对第二变换系数块进行熵解码。

根据一个实施方式,解码器可以被配置为:为第二变换系数块被细分为的分区集合中的每个分区,解码一指示150,该指示150指示相应分区内的变换系数是否被编码到数据流中,或者指示是否跳过对相应分区内的变换系数的编码且相应分区内的所有变换系数都为零;以及对于该指示指示相应分区内的变换系数被编码到数据流中的分区,对第二变换系数块的变换系数的量化水平进行熵解码,对于该指示指示跳过对相应分区内的变换系数的编码且分区内的所有变换系数都为零的分区,跳过对分区内的变换系数的解码,其中使用取决于第一变换系数块的上下文,使用上下文自适应熵编码来执行对该指示的解码。

根据进一步的实施方式,解码器可以被配置为:为第一变换系数块被细分为的进一步分区集合中的每个进一步分区,解码进一步指示,该进一步指示指示相应的进一步分区内的变换系数是否被编码到数据流中,或者指示是否跳过对相应的进一步分区内的变换系数的编码且相应的进一步分区内的所有变换系数都为零;以及对于该进一步指示指示相应的进一步分区内的变换系数被编码到数据流中的分区,对第一变换系数块的变换系数的量化水平进行熵解码,对于该进一步指示指示跳过对相应的进一步分区内的变换系数的编码且进一步分区内的所有变换系数都为零的进一步分区,跳过对进一步分区内的变换系数的解码,其中使用取决于第一变换系数块的进一步分区的进一步指示和/或变换系数的量化水平的上下文,使用上下文自适应熵编码来执行对该指示的解码。

根据进一步的实施方式,解码器可以被配置为:对指示190进行解码,指示190指示第二变换系数块内的变换系数是否被编码到数据流中,或者指示是否跳过对相应分区内的变换系数的编码且第二变换系数块内的所有变换系数都为零;以及如果该指示指示第二变换系数块的变换系数被编码到数据流中,则对第二变换系数块的变换系数的量化水平进行熵解码,如果该指示指示跳过对第二变换系数块的变换系数的编码且分区内的所有变换系数都为零,则跳过对第二变换系数块的变换系数的解码,其中使用取决于第一变换系数块的上下文,使用上下文自适应熵编码来执行对指示190的解码。

根据进一步的实施方式,解码器可以被配置为:对进一步指示190进行解码,该进一步指示190指示第一变换系数块的变换系数是否被编码到数据流,或者指示是否跳过对第一变换系数块的变换系数的编码且相应的进一步分区内的所有变换系数都为零;以及如果进一步指示指示第一变换系数块的变换系数被编码到数据流中,则对第一变换系数块的变换系数的量化水平进行熵解码,如果进一步指示指示跳过对相应的进一步分区内的第一变换系数块的变换系数的编码且第一变换系数块的所有变换系数都为零,则跳过对第一变换系数块的变换系数的解码,其中使用取决于第一变换系数块的进一步指示和/或变换系数的量化水平的上下文,使用上下文自适应熵编码来执行对指示190的解码。

根据进一步的实施方式,解码器可以被配置为:从数据流中解码第一终止系数位置的第一指示114,当遍历第一扫描图案时,第一最后非零变换系数位于该第一终止系数位置处,该第一扫描图案沿着正向方向依次遍历第一变换系数块的变换系数;从数据流中解码第一数据,第一数据表示以逆向方向由第一扫描图案从第一终止系数位置遍历的变换系数的第一编码集合,第一数据包括变换系数的第一编码集合中的非零变换系数的量化水平;从数据流中解码第二终止系数位置的第二指示114,当遍历第二扫描图案时,第二最后非零变换系数位于该第二终止系数位置处,该第二扫描图案沿着正向方向依次遍历第二变换系数块的变换系数;从数据流中解码第二数据,第二数据表示以逆向方向由第二扫描图案从第二终止系数位置遍历的变换系数的第二编码集合,第二数据包括变换系数的第二编码集合中的非零变换系数的量化水平,其中使用取决于第一终止系数位置的上下文,使用上下文自适应熵编码来执行对第二指示的解码。

根据进一步的实施例,一种用于将图片12编码到数据流14中的编码器,可以被配置为:通过将表示变换系数91中以阴影线示出的编码集合100的数据96编码到数据流14中,该编码集合100是由扫描图案94[或扫描路径]以预定方向102从第一终止系数位置98遍历到第二终止系数104,使用依次遍历变换系数块92的变换系数的扫描图案94,将表示图片12的块84的变换系数块92编码108到数据流14中,数据96包括变换系数的编码集合100中的[至少]非零变换系数的量化水平106,其中该编码器被配置为:使用上下文112中用于第一终止系数位置98处或第二终止系数位置104处的非零变换系数的量化水平的第一集合110,对量化水平106进行熵编码,该上下文112的第一集合110与用于变换系数的编码集合100中的任何其他非零变换系数的上下文112的第二集合110不相交。

根据一个实施方式,编码器可以被配置为:将终止系数位置的指示114编码到数据流14中,当沿着正向方向116遍历扫描图案94时,最后非零变换系数位于该终止系数位置处,其中预定方向102是逆向方向118,第一终止系数位置是由指示114指示的终止系数位置且第二终止系数位置104是逆向方向118上沿着扫描路径94最晚遍历的系数位置。

根据进一步的实施方式,编码器可以被配置为:将上下文的第一集合用于第一终止系数位置98处的非零变换系数。

根据进一步的实施方式,编码器可以被配置为:将上下文的第一集合用于第二终止系数位置处的非零变换系数。

根据进一步的实施方式,编码器可以被配置为:针对第一终止系数位置98处的非零变换系数,使用上下文的第一集合,针对第二终止系数位置98处的非零变换系数,使用上下文中与第一集合不相交的第三集,其中第一集合和第三集合与上下文中用于变换系数的编码集合中沿着扫描图案位于第一终止系数位置和第二终止系数位置之间的任何非零变换系数的第二集合不相交。

根据进一步的实施方式,第一集合可以与上下文中用于以下系数位置处的非零变换系数的第二集合不相交:逆向方向118上沿着扫描图案94紧接在第一终止系数位置98之后和紧接在第二终止系数位置104之前的系数位置。

根据进一步的实施方式,不相交性可以与第一终止系数位置98无关。

根据进一步的实施方式,编码器可以被配置为:为变换系数块92被细分为的分区120的每个分区子块,使用上下文中与第一集合不相交的集合来上下文自适应地对变换系数块92的其他非零变换系数的量化水平进行熵编码116。

根据进一步的实施方式,变换系数块被细分为的分区120可以沿着倾斜于与变换系数块92的对角线122的方向对角地延伸,该对角线122穿过第二终止系数位置,例如DC位置。

根据进一步的实施例,一种用于从数据流14中解码图片12的解码器,可以被配置为:通过从数据流14中解码表示变换系数91中以阴影线示出的编码集合100的数据96,该编码集合100是由扫描图案94[或扫描路径]以预定方向102从第一终止系数位置98遍历到第二终止系数104,使用依次遍历变换系数块92的变换系数的扫描图案94,来从数据流14中解码108表示图片12的块84的变换系数块92,数据96包括变换系数的编码集合100中的[至少]非零变换系数的量化水平106,其中该解码器被配置为:使用上下文112中用于第一终止系数位置98处或第二终止系数位置104处的非零变换系数的量化水平的第一集合110来上下文自适应地对量化水平106进行解码,该第一集合110与上下文112中用于变换系数的编码集合100中的任何其他非零变换系数的第二集合110不相交。

根据一个实施方式,解码器可以被配置为:从数据流14中解码终止系数位置的指示114,当沿着正向方向116遍历扫描图案94时,最后非零变换系数位于该终止系数位置处,其中预定方向102是逆向方向118,第一终止系数位置是由指示114指示的终止系数位置且第二终止系数位置104是逆向方向118上沿着扫描路径94最晚遍历的系数位置。

根据进一步的实施方式,解码器可以被配置为:将上下文的第一集合用于第一终止系数位置98处的非零变换系数。

根据进一步的实施方式,解码器可以被配置为:将上下文的第一集合用于第二终止系数位置处的非零变换系数。

根据进一步的实施方式,解码器可以被配置为:针对第一终止系数位置98处的非零变换系数,使用上下文的第一集合,针对第二终止系数位置98处的非零变换系数,使用上下文中与第一集合不相交的第三集,其中第一集合和第三集合与上下文中用于变换系数的编码集合中沿着扫描图案位于第一终止系数位置和第二终止系数位置之间的任何非零变换系数的第二集合不相交。

根据进一步的实施方式,解码器使第一集合可以与上下文中用于以下系数位置处的非零变换系数的第二集合不相交:在逆向方向118上沿着扫描图案94紧接在第一终止系数位置98之后和紧接在第二终止系数位置104之前的系数位置。

根据进一步的实施方式,不相交性可以与第一终止系数位置98无关。

根据进一步的实施方式,解码器可以被配置为:为变换系数块92被细分为的分区120中的每个分区(子块),使用上下文中与第一集合不相交的集合来上下文自适应地对变换系数块92的其他非零变换系数的量化水平进行熵解码116。

根据进一步的实施方式,变换系数块被细分为的分区120可以沿着倾斜于变换系数块92的对角线122的方向对角地延伸,该对角线122穿过第二终止系数位置(例如DC位置)。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:通过使用基于一个或多个先前编码的变换系数的总和与一个或多个先前编码的变换系数中的有效变换系数的数量所确定的上下文,上下文自适应地对表示图片12的块84的变换系数块92的当前编码的变换系数的量化水平进行熵编码,该一个或多个先前编码的变换系数位于由定位在当前编码的变换系数的局部模板132确定的位置。

根据一个实施方式,编码器可以被配置为:通过形成基于总和确定的第一值与基于数量确定的第二值之间的差来确定上下文。

根据进一步的实施方式,编码器可以被配置为:使用量化水平的绝对值的二值化的上下文自适应二进制算术编码(其涉及一元码)对量化水平进行熵编码,其中上下文用于一元码的数段。

根据进一步的实施例,一种用于从数据流中解码图片的解码器,可以被配置为:通过使用基于一个或多个先前解码的变换系数的总和和/或一个或多个先前解码的变换系数中的有效变换系数的数量所确定的上下文,上下文自适应地对表示图片12的块84的变换系数块92的当前解码的变换系数的量化水平进行熵解码,该一个或多个先前解码的变换系数位于由定位在当前解码的变换系数的局部模板132确定的位置。

根据一个实施方式,解码器可以被配置为:通过形成基于总和确定的第一值与基于数量确定的第二值之间的差来确定上下文。

根据进一步的实施方式,解码器可以被配置为:使用量化水平的绝对值的二值化的上下文自适应二进制算术编码(其涉及一元码)对量化水平进行熵解码,其中上下文用于一元码的数段。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:通过以使用二值化161二值化的方式对变换系数块的当前编码的变换系数的量化水平的绝对值进行编码,来将表示图片12的块84的变换系数块92编码到数据流中,二值化161使用二值化参数参数化,二值化参数[例如截止值;指数哥伦布阶数或莱斯参数]的设置基于一个或多个先前编码的变换系数的总和与一个或多个先前编码的变换系数中的有效变换系数的总和与数量,一个或多个先前编码的变换系数位于由定位在当前编码的变换系数的局部模板132确定的位置。

根据另一实施例,一种用于从数据流中解码图片的解码器,可以被配置为:通过以使用二值化161二值化的方式对变换系数块的当前解码的变换系数的量化水平的绝对值进行解码,来从数据流中解码表示图片12的块84的变换系数块92,二值化161使用二值化参数参数化,二值化参数[例如截止值;指数哥伦布阶数或莱斯参数]的设置基于一个或多个先前解码的变换系数的总和与一个或多个先前解码的变换系数中的有效变换系数的总和与数量,一个或多个先前解码的变换系数位于由定位在当前解码的变换系数的局部模板132确定的位置。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:通过使用以一元码160和非一元码162进行二值化的方式对变换系数块的变换系数的量化水平106的绝对值进行编码,使用依次遍历变换系数块的变换系数的扫描图案94来将变换系数块92编码到数据流中,变换系数块92表示图片12的块84,一元码160在截止值164之下,非一元码162在截止值之上且以用于截止值的一元码160为前缀,根据先前编码的变换系数自适应地改变用于变换系数块的变换系数的截止值(与权利要求41至60中没有初始截止值设置相比较)。

根据另一实施例,一种用于从数据流中解码图片的解码器,可以被配置为:通过使用以一元码160和非一元码162二值化的方式对变换系数块的变换系数的量化水平106的绝对值进行解码,使用依次遍历变换系数块的变换系数的扫描图案94来从数据流中解码变换系数块92,变换系数块表示图片12的块84的一元码160在截止值164之下,非一元码162在截止值之上且以用于截止值的一元码160为前缀,根据先前解码的变换系数自适应地改变用于变换系数块的变换系数的截止值(与权利要求41至60中没有初始截止值设置相比较)。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:通过使用以一元码160和非一元码162二值化的方式对变换系数块的变换系数的量化水平106的绝对值进行编码,来将变换系数块92编码到数据流中,变换系数块表示图片12的块84,一元码160在截止值以下[即对于截止值以下的绝对值],非一元码162在截止值以上且以用于截止值的一元码160为前缀,根据以下一项或多项来[例如初始地]设置截止值164:块84的大小、块84的颜色分量、对预测信号进行的预测模式(块84的预测模式表示预测残差)、对变换系数块92进行的变换、用于对变换系数块92进行量化的量化参数、对先前编码的变换系数的能量的度量、对先前编码的变换系数的评估,先前编码的变换系数位于由定位在当前编码的变换系数的局部模板132确定的位置,或者位于变换系数块92中偏离当前编码的变换系数所位于的当前分区且根据编码顺序在当前分区之前的分区内的位置,该编码顺序用于对变换系数块的变换系数的量化水平106的绝对值进行编码,通过以预定方向102沿着扫描图案遍历变换系数块的变换系数来限定编码顺序。

根据一个实施方式,编码器可以被配置为:如果截止值被初始设置为预定阈值以下的值[意味着较精细的量化],则根据先前编码的变换系数,自适应地改变用于变换系数块的变换系数的截止值,以及如果截止值被初始设置为超过预定阈值的值[意味着较粗糙的量化],则至少初步将截止值164保持恒定[例如直到达到顺序方向102中的最后分区为止]。

根据进一步的实施方式,编码器可以基于一个或多个先前编码的变换系数的总和与一个或多个先前编码的变换系数中的有效变换系数的数量来自适应地改变用于当前编码的变换系数的截止值,一个或多个先前编码的变换系数位于由定位在当前编码的变换系数处的局部模板132确定的位置。

根据进一步的实施方式,编码器可以被配置为:对于变换系数块被细分为的分区中的每个分区,使用与相应分区相关联的上下文的集合,上下文自适应地对一元码的一个或多个数段进行熵编码,其中该编码器被配置为:以取决于对先前编码的变换系数的评估的方式来执行预定分区的设置,先前编码的变换系数位于由编码顺序遍历时在该预定分区之前的分区中。

根据进一步的实施方式,编码器可以被配置为:以使得在对先前编码的变换数据的能量的度量增加了特定阈值的情况下,不存在一元码的方式来自适应地改变截止值,包括将截止值设置为零。

根据另一实施例,一种用于从数据流中解码图片的解码器,可以被配置为:通过以使用一元码160和非一元码162二值化的方式对变换系数块的变换系数的量化水平106的绝对值进行解码,来从数据流中解码变换系数块92,变换系数块表示图片12的块84,一元码160在截止值以下[即对于截止值之下的绝对值],非一元码162在截止值以上且以用于截止值的一元码160为前缀,根据以下一项或多项来[例如初始地]设置截止值164:块84的大小、块84的颜色分量、对预测信号进行的预测模式(块84的预测模式表示预测残差)、对变换系数块92进行的变换、用于对变换系数块92进行量化的量化参数、对先前解码的变换系数的能量的度量、对先前解码的变换系数的评估,先前解码的变换系数位于由定位在当前解码的变换系数的局部模板132确定的位置,或者位于变换系数块92中偏离当前解码的变换系数所位于的当前分区且根据编码顺序在当前分区之前的分区内的位置,该编码顺序用于对变换系数块的变换系数的量化水平106的绝对值进行解码,通过以预定方向102沿着扫描图案遍历变换系数块的变换系数来限定编码顺序。

根据一个实施方式,解码器可以被配置为:如果截止值被初始设置为预定阈值以下的值[意味着较精细的量化],则根据先前解码的变换系数,自适应地改变用于变换系数块的变换系数的截止值,以及如果截止值被初始设置为超过预定阈值的值[意味着较粗糙的量化],则至少初步将截止值164保持恒定[例如直到达到顺序方向102中的最后分区为止]。

根据进一步的实施方式,解码器可以被配置为:基于一个或多个先前编码的变换系数的总和与一个或多个先前编码的变换系数中的有效变换系数的数量来自适应地改变用于当前编码的变换系数的截止值,一个或多个先前编码的变换系数位于由定位在当前解码的变换系数处的局部模板132确定的位置。

根据进一步的实施方式,解码器可以被配置为:对于变换系数块被细分为的分区中的每个分区,使用与相应分区相关联的上下文的集合,上下文自适应地对一元码的一个或多个数段进行熵解码,其中该解码器被配置为:以取决于对先前解码的变换系数的评估的方式来执行预定分区的设置,先前解码的变换系数位于由编码顺序遍历时在该预定分区之前的分区中。

根据进一步的实施方式,解码器可以被配置为:以使得在对先前解码的变换数据的能量的度量增加了特定阈值的情况下,不存在一元码的方式来自适应地改变截止值,包括将截止值设置为零。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:使用基于一个或多个先前编码的变换系数确定的上下文,通过根据先前编码的变换系数和/或根据以下一项或多项来设置局部模板132的形状或者禁用局部模板132[使得模板特定上下文依赖关系被禁用],上下文自适应地对表示图片12的块84的变换系数块92的当前编码的变换系数的量化水平进行熵编码:块84的大小、在沿着正向方向116遍历扫描图案时最后非零变换系数所在的终止系数位置的位置、对变换系数块92进行的变换,一个或多个先前编码的变换系数位于由定位在当前编码的变换系数处的局部模板130确定的位置,或者如果禁用了局部模板,则局部模板与先前编码的变换系数无关。

根据一个实施方式,编码器可以被配置为:在根据先前编码的变换系数设置局部模板的形状时,根据位于由第一局部基元模板170确定的位置的一个或多个先前编码的变换系数,来设置局部模板的形状,第一局部基元模板170定位在当前编码的变换系数处。

根据进一步的实施方式,编码器可以被配置为:在根据先前编码的变换系数设置局部模板的形状时,根据位于由第一局部基元模板170确定的位置的一个或多个先前编码的变换系数来决定局部模板132的形状应当为第一局部基元模板170还是第二局部基元模板172,第一局部基元模板170定位在当前编码的变换系数处,其中第二局部基元模板比第一基元模板远离当前编码的变换系数而延伸,并且包括或不包括由第一基元模板确定的位置。

根据进一步的实施方式,编码器可以被配置为:根据位于由第一局部基元模板170确定的位置的一个或多个先前编码的变换系数的总和或一个或多个先前编码的变换系数中的有效变换系数的数量来执行决定,第一局部基元模板170定位在当前编码的变换系数处。

根据进一步的实施方式,编码器可以被配置为:如果基于变换系数块内的先前编码的变换系数导出的累积值或者变换系数块内大于一些阈值的先前编码的变换系数的计数超过预定量,则禁用局部模板,和/或如果变换系数块内不有效的先前编码的变换系数的计数超过预定量,则禁用局部模板。

根据进一步的实施方式,编码器可以被配置为:一个或多个先前编码的变换系数的总和或一个或多个先前编码的变换系数中的有效变换系数的数量来确定上下文,一个或多个先前编码的变换系数位于由定位在当前编码的变换系数的局部模板确定的位置处。

根据另一实施例,一种用于从数据流中解码图片的解码器,可以被配置为:使用基于一个或多个先前解码的变换系数确定的上下文,通过根据先前解码的变换系数和/或根据以下一项或多项来设置局部模板132的形状或禁用局部模板132[使得模板特定上下文依赖关系被禁用],上下文自适应地对表示图片12的块84的变换系数块92的当前解码的变换系数的量化水平进行熵解码:块84的大小、在沿着正向方向116遍历扫描图案时最后非零变换系数所在的终止系数位置的位置、对变换系数块92进行的变换,一个或多个先前解码的变换系数位于由定位在当前解码的变换系数的局部模板130确定的位置,或者如果禁用了局部模板,则局部模板与先前解码的变换系数无关。

根据一个实施方式,解码器可以被配置为:在根据先前解码的变换系数设置局部模板的形状时,根据位于由第一局部基元模板170确定的位置的一个或多个先前解码的变换系数,来设置局部模板的形状,第一局部基元模板170定位在当前解码的变换系数130处。

根据进一步的实施方式,解码器可以被配置为:在根据先前解码的变换系数设置局部模板的形状时,根据位于由第一局部基元模板170确定的位置的一个或多个先前解码的变换系数来决定局部模板132的形状应当为第一局部基元模板170还是第二局部基元模板172,第一局部基元模板170定位在当前解码的变换系数处,其中第二局部基元模板比第一基元模板远离当前解码的变换系数而延伸,并且包括或不包括由第一基元模板确定的位置。

根据进一步的实施方式,解码器可以被配置为:根据位于由第一局部基元模板170确定的位置的一个或多个先前解码的变换系数的总和或一个或多个先前解码的变换系数中的有效变换系数的数量来执行决定,第一局部基元模板170定位在当前解码的变换系数处。

根据进一步的实施方式,解码器可以被配置为:如果基于变换系数块内的先前解码的变换系数导出的累积值或者变换系数块内大于一些阈值的先前解码的变换系数的计数超过预定量,则禁用局部模板,和/或如果变换系数块内不有效的先前解码的变换系数的计数超过预定量,则禁用局部模板。

根据进一步的实施方式,解码器可以被配置为:基于一个或多个先前解码的变换系数的总和或一个或多个先前解码的变换系数中的有效变换系数的数量来确定上下文,一个或多个先前解码的变换系数位于由定位在当前解码的变换系数的局部模板确定的位置处。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:为变换系数块被细分为的分区中的每个分区,使用与相应分区相关联的上下文的集合,通过上下文自适应地对变换系数块的变换系数的量化水平106进行熵编码,来对表示图片12的块84的变换系数块92的变换系数92进行编码,其中变换系数块被细分为的分区的形状不同[即彼此不一致],和/或分区的形状取决于扫描图案,沿着该扫描图案执行对变换系数块的变换系数的量化水平的熵编码[并且例如可以在数据流中用信号通知该扫描图案,或者固有地确定该扫描图案],和/或分区的形状取决于块84的大小,和/或分区的形状取决于显式分区形状信息。

根据一个实施方式,编码器可以被配置为:通过遵循扫描图案,上下文自适应地依次对变换系数块的变换系数的量化水平进行熵编码,该扫描图案以依次遍历分区而无需交织不同分区的变换系数的方式,依次遍历变换系数块的变换系数。

根据进一步的实施方式,变换系数块被细分为的分区沿着倾斜于法线的方向对角地延伸,法线穿过变换系数块的DC变换系数。

根据另一实施例,一种用于从数据流中解码图片的解码器,可以被配置为:为变换系数块被细分为的分区中的每个分区,使用与相应分区相关联的上下文的集合,通过上下文自适应地对变换系数块的变换系数的量化水平106进行熵解码,来对表示图片12的块84的变换系数块92的变换系数92进行解码,其中变换系数块被细分为的分区的形状不同[即彼此不一致],和/或分区的形状取决于扫描图案,沿着该扫描图案执行对变换系数块的变换系数的量化水平的熵解码并且例如可以在数据流中用信号通知该扫描图案,或者固有地确定该扫描图案],和/或分区的形状取决于块84的大小,和/或分区的形状取决于显式分区形状信息。

根据一个实施方式,解码器可以被配置为:通过遵循扫描图案,上下文自适应地依次对变换系数块的变换系数的量化水平进行熵解码,该扫描图案以依次遍历分区而无需交织不同分区的变换系数的方式,依次遍历变换系数块的变换系数。

根据进一步的实施方式,变换系数块被细分为的分区沿着倾斜于法线的方向对角地延伸,法线穿过变换系数块的DC变换系数。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:通过为变换系数块被细分为的分区集合中的每个分区编码一指示150,来对表示图片12的块84的变换系数块92的变换系数进行编码,该指示150指示相应分区内的所有变换系数是否被编码到数据流中,或者指示是否跳过对相应分区内的所有变换系数的编码且相应分区内的所有变换系数都为零;以及为该指示指示相应分区内的所有变换系数被编码到数据流中的每个分区,使用与相应分区相关联的上下文的集合,上下文自适应地对相应分区的所有变换系数的量化水平进行熵编码。

根据一个实施方式,编码器可以被配置为:针对该指示指示相应分区内的所有变换系数被编码到数据流中的每个分区,通过为相应分区的最后变换系数熵编码一标志而与相应分区内的任何先前编码的变换系数是否全为零无关地来对相应分区的所有变换系数的量化水平进行熵编码,该标志指示最后变换系数是否为零,相应分区的最后变换系数是相应分区的变换系数中最后编码的变换系数。

根据进一步的实施方式,一种用于从数据流中解码图片的解码器,可以被配置为:通过为变换系数块被细分为的分区集合中的每个分区编码一指示150,来对表示图片12的块84的变换系数块92的变换系数进行解码,该指示150指示相应分区内的所有变换系数是否从数据流中解码,或者指示是否跳过对相应分区内的所有变换系数的解码且相应分区内的所有变换系数都为零;以及为该指示指示相应分区内的所有变换系数从数据流中解码的每个分区,使用与相应分区相关联的上下文的集合,上下文自适应地对相应分区的所有变换系数的量化水平进行熵解码。

根据进一步的实施方式,解码器可以被配置为:针对该指示指示相应分区内的所有变换系数从数据流中解码的每个分区,通过为相应分区的最后变换系数熵编码一标志而与相应分区内的任何先前解码的变换系数是否全为零无关地来对相应分区的所有变换系数的量化水平进行熵解码,该标志指示最后变换系数是否为零,相应分区的最后变换系数是相应分区的变换系数中最后解码的变换系数。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:将表示图片12的块84的变换系数块92的划分模式编码到数据流中,通过以下方式对变换系数进行编码:如果划分模式是第一模式[例如开启到分区120的划分],则通过为变换系数块被细分为的分区中的每个分区,使用与相应分区相关联的上下文的集合,上下文自适应地对变换系数块的变换系数的量化水平进行熵编码,如果划分模式是第二模式[例如关断到分区120的划分],则使用全局上下文集合,上下文自适应地对变换系数块的变换系数的量化水平进行熵编码(→如权利要求21至40,但是取决于模式和具有不相交性仅仅是可选的)。

根据一个实施方式,根据权利要求161的编码器,被配置为:如果划分模式是第一模式,则为分区集合中的每个分区编码一指示,该指示指示相应分区内的变换系数的量化水平是否被编码到数据流中,或者指示是否跳过对相应分区内的变换系数的量化水平的编码且相应分区内的所有变换系数都为零;以及在对变换系数的量化水平进行熵编码时,跳过对该指示指示跳过对分区内的变换系数的量化水平的编码且分区内的所有变换系数都为零的分区的熵编码。

根据实施例,一种用于从数据流中解码图片的解码器,可以被配置为:从数据路中解码表示图片12的块84的变换系数块92的划分模式,通过以下方式对变换系数进行解码:如果划分模式是第一模式[例如开启到分区120的划分],则通过为变换系数块被细分为的分区中的每个分区,使用与相应分区相关联的上下文的集合,上下文自适应地对变换系数块的变换系数的量化水平进行熵解码,如果划分模式是第二模式[例如关断到分区120的划分],则使用全局上下文集合,上下文自适应地对变换系数块的变换系数的量化水平进行熵解码(→如权利要求21至40,但是取决于模式和具有不相交性仅仅是可选的;例如对于整个块92为一个。

根据一个实施方式,解码器可以被配置为:如果划分模式是第一模式,则为分区集合中的每个分区解码一指示,该指示指示是否从数据流中解码相应分区内的变换系数的量化水平,或者是否跳过对相应分区内的变换系数的量化水平的解码且相应分区内的所有变换系数都为零;以及在对变换系数的量化水平进行熵解码时,跳过对该指示指示跳过对分区内的变换系数的量化水平的解码且分区内的所有变换系数都为零的分区的熵解码。

根据另一实施例,一种用于将图片编码到数据流中的编码器,可以被配置为:通过为变换系数块被细分为的分区120a、120b、120c中的每个分区,使用与相应分区120相关联126的上下文的集合110a、110b、110c,上下文自适应地对变换系数块的变换系数的量化水平106进行熵编码,来使用扫描图案94’将表示图片12的块84的变换系数块92编码到数据流14中,扫描图案94’依次遍历变换系数块的变换系数91,其中扫描图案94’以使得在第二分区(例如120b)的两个变换系数之间遍历第一分区(例如120a或120c)的至少一个变换系数(例如阴影示出的一个变换系数91’)的方式来依次遍历变换系数块92的变换系数。

根据一个实施方式,编码器可以被配置为:使得一个上下文的集合与第一分区和第二分区(例如120a或120c)共同相关联。

根据进一步的实施方式,编码器可以被配置为:在上下文自适应地对变换系数块92的变换系数的量化水平进行熵编码时,基于一个或多个先前编码的变换系数来从与当前编码的变换系数所位于的分区(例如120a)相关联的上下文112的集合110中,为当前编码的变换系数130确定上下文,一个或多个先前编码的变换系数位于由定位在当前编码的变换系数的局部模板132确定的位置。

根据进一步的实施方式,编码器可以被配置为:在上下文自适应地对变换系数块92的变换系数的量化水平进行熵编码时,基于一个或多个先前编码的变换系数来从与当前编码的变换系数所位于的分区相关联的上下文的集合中,为当前编码的变换系数确定上下文,一个或多个先前编码的变换系数位于由定位在当前编码的变换系数的局部模板132确定的位置,而与这些位置是否在当前编码的变换系数所位于的分区内无关,和/或基于先前编码的变换系数(例如位于当前编码的变换系数130所位于的分区(如120a)内的阴影示出的变换系数140)的计数(在示例附图中,示例为4)超过一个或多个特定阈值来从与当前编码的变换系数所位于的分区相关联的上下文的集合中,为当前编码的变换系数确定上下文。

根据进一步的实施方式,编码器可以被配置为:为变换系数块92被细分为的分区集合中的每个分区120a、120b、120c编码一指示150,该指示150指示相应分区内的变换系数是否被编码到数据流中,或者指示是否跳过对相应分区内的变换系数的编码且相应分区内的所有变换系数都为零;以及在对变换系数的量化水平进行熵编码时,跳过针对该指示指示跳过对分区内的变换系数的编码且分区内的所有变换系数都为零的分区的熵编码。

根据进一步的实施方式,编码器可以被配置为:在该指示指示相应分区内的变换系数被编码到数据流中的分区(例如对于120

根据另一实施例,一种用于从数据流中解码图片的解码器,可以被配置为:通过为变换系数块被细分为的分区中的每个分区,使用与相应分区120相关联126的上下文的集合110a、110b、110c,上下文自适应地对变换系数块的变换系数的量化水平106进行熵解码,来使用扫描图案94’从数据流14中解码表示图片12的块84的变换系数块92,扫描图案94’依次遍历变换系数块的变换系数91,其中扫描图案94’以使得在第二分区的两个变换系数之间遍历第一分区的至少一个变换系数(例如阴影示出的一个变换系数91’)的方式来依次遍历变换系数块92的变换系数91。

根据一个实施方式,解码器可以被配置为:使得一个上下文的集合与第一分区和第二分区(例如120a或120c)共同相关联。

根据进一步的实施方式,解码器可以被配置为:在上下文自适应地对变换系数块92的变换系数的量化水平进行熵解码时,基于一个或多个先前编码的变换系数来从与当前编码的变换系数所位于的分区(例如120a)相关联的上下文112的集合110中,为当前编码的变换系数130确定上下文,一个或多个先前编码的变换系数位于由定位在当前解码的变换系数的局部模板132确定的位置。

根据进一步的实施方式,解码器可以被配置为:在上下文自适应地对变换系数块92的变换系数的量化水平进行熵解码时,基于一个或多个先前解码的变换系数来从与当前解码的变换系数所位于的分区相关联的上下文的集合中,为当前解码的变换系数确定上下文,一个或多个先前解码的变换系数位于由定位在当前解码的变换系数的局部模板132确定的位置,而与这些位置是否在当前解码的变换系数所位于的分区内无关,和/或基于先前解码的变换系数(例如位于当前解码的变换系数130所位于的分区(如120a)内的阴影示出的变换系数140)的计数(在示例附图中,示例为4)超过一个或多个特定阈值来从与当前解码的变换系数所位于的分区相关联的上下文的集合中,为当前解码的变换系数确定上下文。

根据进一步的实施方式,解码器可以被配置为:为变换系数块92被细分为的分区集合中的每个分区120a、120b、120c解码一指示150,该指示150指示是否从数据流中解码相应分区内的变换系数,或者指示是否跳过对相应分区内的变换系数的解码且相应分区内的所有变换系数都为零;以及在对变换系数的量化水平进行熵解码时,跳过针对该指示指示跳过对分区内的变换系数的解码且分区内的所有变换系数都为零的分区的熵解码。

根据进一步的实施方式,编码器可以被配置为:在该指示指示从数据流中解码相应分区内的变换系数的分区(例如对于120

虽然已经在装置的上下文中描述了一些方面,但是将清楚的是,这些方面还表示对应方法的描述,其中,块或设备对应于方法步骤或方法步骤的特征。类似地,在方法步骤上下文中描述的方面也表示对相应块或项或者相应装置的特征的描述。可以由(或使用)硬件设备(诸如,微处理器、可编程计算机或电子电路)来执行一些或全部方法步骤。在一些实施例中,可以由这种装置来执行最重要方法步骤中的一个或多个方法步骤。

本发明的经编码的数据流可以存储在数字存储介质上,或者可以在诸如无线传输介质或有线传输介质(例如,互联网)等的传输介质上传输。

取决于某些实现要求,可以在硬件中或在软件中实现本发明的实施例。可以使用其上存储有电子可读控制信号的数字存储介质(例如,软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM或闪存)来执行实现,该电子可读控制信号与可编程计算机系统协作(或者能够与之协作)从而执行相应方法。因此,数字存储介质可以是计算机可读的。

根据本发明的一些实施例包括具有电子可读控制信号的数据载体,其能够与可编程计算机系统协作以便执行本文所述的方法之一。

通常,本发明的实施例可以实现为具有程序代码的计算机程序产品,程序代码可操作以在计算机程序产品在计算机上运行时执行方法之一。程序代码可以例如存储在机器可读载体上。

其他实施例包括存储在机器可读载体上的计算机程序,该计算机程序用于执行本文所述的方法之一。

换言之,本发明方法的实施例因此是具有程序代码的计算机程序,该程序代码用于在计算机程序在计算机上运行时执行本文所述的方法之一。

因此,本发明方法的另一实施例是其上记录有计算机程序的数据载体(或者数字存储介质或计算机可读介质),该计算机程序用于执行本文所述的方法之一。数据载体、数字存储介质或记录介质通常是有形的和/或非瞬时性的。

因此,本发明方法的另一实施例是表示计算机程序的数据流或信号序列,所述计算机程序用于执行本文所述的方法之一。数据流或信号序列可以例如被配置为经由数据通信连接(例如,经由互联网)传送。

另一实施例包括处理装置,例如,计算机或可编程逻辑器件,所述处理装置被配置为或适于执行本文所述的方法之一。

另一实施例包括其上安装有计算机程序的计算机,该计算机程序用于执行本文所述的方法之一。

根据本发明的另一实施例包括被配置为向接收机(例如,以电子方式或以光学方式)传送计算机程序的装置或系统,该计算机程序用于执行本文所述的方法之一。接收器可以是例如计算机、移动设备、存储设备等。装置或系统可以例如包括用于向接收器传送计算机程序的文件服务器。

在一些实施例中,可编程逻辑器件(例如,现场可编程门阵列)可以用于执行本文所述的方法的功能中的一些或全部。在一些实施例中,现场可编程门阵列可以与微处理器协作以执行本文所述的方法之一。通常,方法优选地由任意硬件装置来执行。

本文描述的装置可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来实现。

本文描述的装置或本文描述的装置的任何组件可以至少部分地在硬件和/或软件中实现。

本文描述的方法可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来执行。

本文描述的方法或本文描述的装置的任何组件可以至少部分地由硬件和/或由软件执行。

上述实施例对于本发明的原理仅是说明性的。应当理解的是,本文所述的布置和细节的修改和变形对于本领域其他技术人员将是显而易见的。因此,旨在仅由所附专利权利要求的范围来限制而不是由借助对本文的实施例的描述和解释所给出的具体细节来限制。

相关技术
  • 解码变换系数块的装置、方法、编码变换系数块的装置
  • 解码变换系数块的装置、方法、编码变换系数块的装置
技术分类

06120116481790