对图像编码和解码的方法及存储比特流的计算机可读介质
1.本技术是向国家知识产权局提交的申请日为2018年07月31日、申请号为201880050390.x,且题为“图像编码/解码方法和装置以及存储比特流的记录介质”的专利申请的分案申请。
技术领域
2.本发明涉及一种图像编码/解码方法和设备以及存储比特流的记录介质。更具体地,本发明涉及一种能够自适应地确定变换系数的扫描方法的图像编码/解码方法和设备。
背景技术:3.近来,在各种应用领域中,对诸如高清(hd)图像和超高清(uhd)图像的高分辨率和高质量图像的需求已经增加。然而,与常规的图像数据相比,更高分辨率和更高质量的图像数据具有增加的数据量。因此,当通过使用诸如常规的有线和无线宽带网络的介质来发送图像数据时,或者当通过使用常规的存储介质来存储图像数据时,发送和存储的成本增加。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,对于更高分辨率和更高质量的图像,需要高效的图像编码/解码技术。
4.图像压缩技术包括各种技术,包括:帧间预测技术,从当前画面的先前或后续画面预测当前画面中包括的像素值;帧内预测技术,通过使用当前画面中的像素信息来预测当前画面中包括的像素值;变换和量化技术,用于压缩残差信号的能量;熵编码技术,将短码分配给具有高出现频率的值,并且将长码分配给具有低出现频率的值;等等。图像数据可通过使用这样的图像压缩技术被有效地压缩,并且可被发送或存储。
5.由于不管是否执行首次变换和二次变换都执行变换系数的扫描,因此传统的图像编码/解码方法和设备在编码效率方面受到限制。
技术实现要素:6.技术问题
7.本发明在于提供一种用于根据首次变换和二次变换中的至少一个是否被执行来对变换系数执行扫描以提高图像编码/解码效率的方法和设备。
8.本发明在于提供一种能够自适应地确定变换系数的扫描方法以提高图像编码/解码效率的图像解码/编码方法和设备。
9.技术方案
10.一种根据本发明的对图像进行解码的方法,该方法可包括:从比特流获得当前块的变换系数;确定当前块的扫描单元和扫描顺序;并且通过基于确定的扫描单元和扫描顺序对当前块的变换系数进行扫描来排列当前块的变换系数。
11.在根据本发明的对图像进行解码的方法中,其中,当前块的变换系数是反量化的输入、二次逆变换的输入和首次逆变换的输入中的任意一个。
12.在根据本发明的对图像进行解码的方法中,其中,所述扫描顺序包括如下顺序中
的至少一个顺序:垂直扫描顺序、水平扫描顺序、优先于其他列扫描第一列的第一垂直优先扫描顺序、优先于其他列扫描第一列和第二列的第二垂直优先扫描顺序、优先于其他行扫描第一行的第一水平优先扫描顺序、优先于其他行扫描第一行和第二行的第二水平优先扫描顺序、右上对角线扫描顺序以及左下对角线扫描顺序。
13.在根据本发明的对图像进行解码的方法中,其中,将扫描单元确定为系数组单元、个体系数单元和组合单元中的任意一个。
14.在根据本发明的对图像进行解码的方法中,其中,在确定当前块的扫描单元和扫描顺序的步骤中,基于当前块的邻近块的扫描单元和扫描顺序中的至少一个来确定当前块的扫描单元和扫描顺序。
15.在根据本发明的对图像进行解码的方法中,其中,当将当前块的扫描单元确定为系数组单元时,基于与当前系数组相邻的邻近系数组的扫描顺序来确定系数组单元内的变换系数扫描顺序。
16.在根据本发明的对图像进行解码的方法中,其中,基于当前块的深度来确定当前块的扫描顺序。
17.在根据本发明的对图像进行解码的方法中,其中,基于当前块的亮度分量的扫描单元和扫描顺序来确定当前块的色度分量的扫描单元和扫描顺序。
18.在根据本发明的对图像进行解码的方法中,其中,基于确定的扫描顺序来推导当前块的量化矩阵的扫描顺序。
19.在根据本发明的对图像进行解码的方法中,还包括:对排列的变换系数执行反量化、二次逆变换和首次逆变换中的至少一个。
20.一种根据本发明的对图像进行编码的方法,所述方法可包括:从当前块的残差块获得当前块的变换系数;确定当前块的扫描单元和扫描顺序;并且通过按照确定的扫描单元和扫描顺序对当前块的变换系数进行扫描来对当前块的变换系数进行熵编码。
21.在根据本发明的对图像进行编码的方法中,其中,当前块的变换系数是首次变换的输出、二次变换的输出和量化的输出中的任意一个。
22.在根据本发明的对图像进行编码的方法中,其中,所述扫描顺序包括如下顺序中的至少一个顺序:垂直扫描顺序、水平扫描顺序、优先于其他列扫描第一列的第一垂直优先扫描顺序、优先于其他列扫描第一列和第二列的第二垂直优先扫描顺序、优先于其他行扫描第一行的第一水平优先扫描顺序、优先于其他行扫描第一行和第二行的第二水平优先扫描顺序、右上对角线扫描顺序以及左下对角线扫描顺序。
23.在根据本发明的对图像进行编码的方法中,其中,将扫描单元确定为系数组单元、个体系数单元和组合单元中的任意一个。
24.在根据本发明的对图像进行编码的方法中,其中,在确定当前块的扫描单元和扫描顺序的步骤中,基于当前块的邻近块的扫描单元和扫描顺序中的至少一个来确定当前块的扫描单元和扫描顺序。
25.在根据本发明的对图像进行编码的方法中,其中,当将当前块的扫描单元确定为系数组单元时,基于与当前系数组相邻的邻近系数组的扫描顺序来确定系数组单元内的变换系数扫描顺序。
26.在根据本发明的对图像进行编码的方法中,其中,基于当前块的深度来确定当前
块的扫描顺序。
27.在根据本发明的对图像进行编码的方法中,其中,基于当前块的亮度分量的扫描单元和扫描顺序来确定当前块的色度分量的扫描单元和扫描顺序。
28.在根据本发明的对图像进行编码的方法中,其中,基于确定的扫描顺序来推导当前块的量化矩阵的扫描顺序。
29.一种存储通过编码方法生成的比特流的记录介质,所述编码方法包括:从当前块的残差块获得当前块的变换系数;确定当前块的扫描单元和扫描顺序;并且通过按照确定的扫描单元和扫描顺序对当前块的变换系数进行扫描来对当前块的变换系数进行熵编码。
30.有益效果
31.根据本发明,为了提高图像编码/解码效率,提供了一种用于根据首次变换和二次变换中的至少一个是否被执行来对变换系数执行扫描的方法和设备。
32.根据本发明,提供了一种能够自适应地确定变换系数的扫描方法的图像编码/解码方法和设备。
33.根据本发明,可提高图像编码效率和解码效率。
34.根据本发明,可减少图像编码器和图像解码器的计算复杂度。
附图说明
35.图1是示出根据本发明的实施例的编码设备的配置的框图。
36.图2是示出根据本发明的实施例的解码设备的配置的框图。
37.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。
38.图4是示出根据帧内预测模式的变换集的示图。
39.图5是示出变换和量化的处理的示图。
40.图6是示出对量化的变换系数进行扫描的示图。
41.图7至图9是示出根据本发明的实施例的扫描单元的示图。
42.图10是示出根据本发明的实施例的第一组合对角线扫描顺序和第二组合对角线扫描顺序的示图。
43.图11至图13是示出当按照系数组单元执行扫描时系数组内的扫描与系数组间的扫描之间的关系的示图。
44.图14是示出基于当前块的形状来确定扫描顺序的示例的示图。
45.图15至图18是示出基于执行了变换的区域来确定扫描顺序的示例的示图。
46.图19是示出根据本发明的实施例的图像解码方法的流程图的示图。
47.图20是示出根据本发明的实施例的图像编码方法的流程图的示图。
具体实施方式
48.可对本发明做出各种修改,并且存在本发明的各种实施例,其中,现在将参照附图提供所述各种实施例的示例并且将详细描述所述各种实施例的示例。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同形式或替换形式也是如此。相似的参考标号指在各方面相同或相似的功能。在附图中,为了清楚起见,元件的形状和尺寸可被夸大。在本发明的以下详细描述中,对通过图示的方式示
出可实施本发明的具体实施例的附图进行参照。这些实施例被足够详细地描述以使本领域技术人员能够实施本公开。应该理解,本公开的各种实施例尽管不同,但不必是相互排他的。例如,在不脱离本公开的精神和范围的情况下,这里结合一个实施例描述的特定特征、结构和特性可在其它实施例中被实施。此外,应该理解,在不脱离本公开的精神和范围的情况下,每个公开的实施例内的各个元件的位置或布置可被修改。因此,以下详细描述不应以限制的含义来理解,并且本公开的范围仅由所附权利要求(在合适的解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
49.在说明书中使用的术语“第一”、“第二”等可被用于描述各种组件,但这些组件并不被解释为受限于这些术语。这些术语仅被用于将一个组件与另一组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被称为“第二”组件,并且“第二”组件也可类似地被称为“第一”组件。术语“和/或”包括多个项的组合或者是多个项中的任意一项。
50.将理解的是,在本说明书中,当元件仅被称为“连接到”或“结合到”另一元件而不是“直接连接到”或“直接结合到”另一元件时,所述元件可“直接连接到”或“直接结合到”所述另一元件,或者在所述元件与所述另一元件之间具有其他元件的情况下连接到或结合到所述另一元件。相反,应该理解,当元件被称为“直接结合”或“直接连接”到另一元件时,不存在中间元件。
51.此外,在本发明的实施例中示出的组成部件被独立地示出,以便呈现彼此不同的特性功能。因此,这并不意味着每个组成部件以单独的硬件或软件的组成单元被组成。换句话说,为了方便,每个组成部件包括枚举的组成部件中的每一个。因此,每个组成部件中的至少两个组成部件可被组合形成一个组成部件,或者一个组成部件可被划分为用于执行每个功能的多个组成部件。在没有脱离本发明的本质的情况下,每个组成部件被组合的实施例以及一个组成部件被划分的实施例也被包括在本发明的范围中。
52.在本说明书中使用的术语仅用于描述具体实施例,而不旨在限制本发明。以单数使用的表达包括复数表达,除非它在上下文中具有明显不同的含义。在本说明书中,将理解,诸如“包括
……
的”、“具有
……
的”等的术语旨在指明存在说明书中所公开的特征、数量、步骤、动作、元件、部件、或其组合,而并不旨在排除可存在或者可添加一个或更多个其它特征、数量、步骤、动作、元件、部件、或其组合的可能性。换句话说,当特定元件被称为“被包括”时,除相应元件以外的元件并不被排除,而是,附加的元件可被包括在本发明的实施例中或者是本发明的范围中。
53.此外,一些组成元件可能不是执行本发明的必要功能的不可缺的组成元件,而是仅提升其性能的可选组成元件。可通过仅包括用于实施本发明的实质的不可缺的组成部件而排除在提升性能时使用的组成元件来实施本发明。仅包括所述不可缺的组成元件而排除在仅提升性能时使用的可选组成元件的结构也被包括在本发明的范围中。
54.在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知功能或结构,这是因为它们会不必要地模糊对本发明的理解。附图中的相同的组成元件由相同的参考标号来表示,并且对相同元件的重复描述将被省略。
55.在下文中,图像可指构成视频的画面,或者可指视频本身。例如,“对图像进行编码或解码或者进行编码和解码两者”可指“对运动画面进行编码或解码或者进行编码和解码两者”,并且可指“对运动画面的图像中的一个图像进行编码或解码或者进行编码和解码两
者。”56.在下文中,术语“运动画面”和“视频”可被用作相同的含义并且可彼此替换。
57.在下文中,目标图像可以是作为编码目标的编码目标图像和/或作为解码目标的解码目标图像。此外,目标图像可以是输入到编码设备的输入图像、以及输入到解码设备的输入图像。这里,目标图像可与当前图像具有相同的含义。
58.在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用作相同的含义并且彼此替换。
59.在下文中,目标块可以是作为编码目标的编码目标块和/或作为解码目标的解码目标块。此外,目标块可以是作为当前编码和/或解码的目标的当前块。例如,术语“目标块”和“当前块”可被用作相同的含义并且彼此替换。
60.在下文中,术语“块”和“单元”可被用作相同的含义并且彼此替换。或者“块”可表示特定单元。
61.在下文中,术语“区域”和“片段”可彼此替换。
62.在下文中,特定信号可以是表示特定块的信号。例如,原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残差块的信号。
63.在实施例中,特定信息、数据、标志、索引、元素和属性等中的每一个可具有值。等于“0”的信息、数据、标志、索引、元素和属性的值可表示逻辑假或第一预定义值。换言之,值“0”、假、逻辑假和第一预定义值可彼此替换。等于“1”的信息、数据、标志、索引、元素和属性的值可表示逻辑真或第二预定义值。换句话说,值“1”、真、逻辑真和第二预定义值可彼此替换。
64.当变量i或j用于表示列、行或索引时,i的值可以是等于或大于0的整数、或者等于或大于1的整数。也就是说,列、行、索引等可从0开始计数,或者可从1开始计数。
65.术语描述
66.编码器:表示执行编码的设备。也就是说,表示编码设备。
67.解码器:表示执行解码的设备。也就是说,表示解码设备。
68.块:是m
×
n的样点阵列。这里,m和n可表示正整数,并且块可表示二维形式的样点阵列。块可指单元。当前块可表示在编码时成为目标的编码目标块,或者在解码时成为目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
69.样点:是构成块的基本单元。根据比特深度(bd),样点可被表示为从0到2
bd-1的值。在本发明中,样点可被用作像素的含义。也就是说,样点、pel、像素可具有彼此相同的含义。
70.单元:可指编码和解码单元。当对图像进行编码和解码时,单元可以是通过对单个图像进行分区而生成的区域。此外,当在编码或解码期间将单个图像分区为子划分单元时,单元可表示子划分单元。也就是说,图像可被分区为多个单元。当对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为尺寸小于该单元的尺寸的子单元。依据功能,单元可表示块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种尺寸和形状,具体地,单元的形状可以是二维几何图形,诸如正方形、长方形、梯形、三角形、五边形等。此外,单元信息可包括指示编码单元、预测单元、变换单元等的单元类型
以及单元尺寸、单元深度、单元的编码和解码的顺序等中的至少一个。
71.编码树单元:被配置有亮度分量y的单个编码树块以及与色度分量cb和cr相关的两个编码树块。此外,编码树单元可表示包括块和每个块的语法元素。可通过使用四叉树分区方法、二叉树分区方法和三叉树分区方法中的至少一个对每个编码树单元进行分区,以配置诸如编码单元、预测单元、变换单元等的更低等级的单元。编码树单元可被用作用于指定在对作为输入图像的图像进行编码/解码时成为处理单元的样点块的术语。这里,四叉树可表示四元树。
72.编码树块:可用作用于指定y编码树块、cb编码树块和cr编码树块中的任意一个的术语。
73.邻近块:可表示与当前块相邻的块。与当前块相邻的块可表示与当前块的边界接触的块、或者位于距当前块预定距离内的块。邻近块可表示与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可表示与水平相邻于当前块的邻近块垂直相邻的块、或者与垂直相邻于当前块的邻近块水平相邻的块。
74.重建的邻近块:可表示与当前块相邻并且已经在空间/时间上被编码或解码的邻近块。这里,重建的邻近块可表示重建的邻近单元。重建的空间邻近块可以是在当前画面内并且已经通过编码或解码或者编码和解码两者而被重建的块。重建的时间邻近块是在参考图像内的与当前画面的当前块对应的位置处的块或所述块的邻近块。
75.单元深度:可表示单元的分区程度。在树结构中,最高节点(根节点)可与未被分区的第一单元对应。此外,最高节点可具有最小深度值。在这种情况下,最高节点的深度可以为等级0。深度为等级1的节点可表示通过对第一单元进行一次分区而生成的单元。深度为等级2的节点可表示通过对第一单元进行两次分区而生成的单元。深度为等级n的节点可表示通过对第一单元进行n次分区而生成的单元。叶节点可以是最低节点并且是不能被进一步分区的节点。叶节点的深度可以是最大等级。例如,最大等级的预定义值可以是3。根节点的深度可以是最低的,并且叶节点的深度可以是最深的。此外,当单元被表示为树结构时,单元存在于的等级可表示单元深度。
76.比特流:可表示包括编码图像信息的比特流。
77.参数集:与比特流内的配置之中的头信息对应。视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个可被包括在参数集中。此外,参数集可包括条带(slice)头和并行块(tile)头信息。
78.解析:可表示通过执行熵解码来确定语法元素的值,或者可表示熵解码本身。
79.符号:可表示编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。此外,符号可表示熵编码目标或熵解码结果。
80.预测模式:可以是指示利用帧内预测被编码/解码的模式或利用帧间预测被编码/解码的模式的信息。
81.预测单元:可表示当执行预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿)时的基本单元。单个预测单元可被分区为具有更小尺寸的多个分区,或者可被分区为多个更低等级的预测单元。多个分区可以是在执行预测或补偿时的基本单元。通过划分预测单元而生成的分区也可以是预测单元。
82.预测单元分区:可表示通过对预测单元进行分区而获得的形状。
83.参考画面列表:可指包括用于帧间预测或运动补偿的一个或更多个参考画面的列表。存在几种类型的可用参考画面列表,所述可用参考画面列表包括lc(列表组合)、l0(列表0)、l1(列表1)、l2(列表2)、l3(列表3)。
84.帧间预测指示符:可指当前块的帧间预测(单向预测、双向预测等)的方向。可选地,帧间预测指示符可指用于生成当前块的预测块的参考画面的数量。可选地,帧间预测指示符可指在对当前块执行帧间预测或运动补偿时所使用的预测块的数量。
85.预测列表利用标志:指示是否使用特定参考画面列表中的至少一个参考画面来生成预测块。可使用预测列表利用标志来推导帧间预测指示符,并且相反地,可使用帧间预测指示符来推导预测列表利用标志。例如,当预测列表利用标志具有第一值零(0)时,它表示不使用参考画面列表中的参考画面来生成预测块。另一方面,当预测列表利用标志具有第二值一(1)时,它表示使用参考画面列表来生成预测块。
86.参考画面索引:可指指示参考画面列表中的特定参考画面的索引。
87.参考画面:可表示由特定块参考以实现对特定块进行帧间预测或运动补偿的目的的参考画面。可选地,参考画面可以是包括由当前块参考以进行帧间预测或运动补偿的参考块的画面。在下文中,术语“参考画面”和“参考图像”具有相同的含义并且可彼此替换。
88.运动矢量:可以是用于帧间预测或运动补偿的二维矢量。运动矢量可表示编码/解码目标块与参考块之间的偏移。例如,(mvx,mvy)可表示运动矢量。这里,mvx可表示水平分量,并且mvy可表示垂直分量。
89.搜索范围:可以是在帧间预测期间为了检索运动矢量而搜索的二维区域。例如,搜索范围的大小可以是m
×
n。这里,m和n均为整数。
90.运动矢量候选:可指在对运动矢量进行预测时的预测候选块或预测候选块的运动矢量。此外,运动矢量候选可被包括在运动矢量候选列表中。
91.运动矢量候选列表:可表示由一个或更多个运动矢量候选组成的列表。
92.运动矢量候选索引:可表示在运动矢量候选列表中指示运动矢量候选的指示符。可选地,运动矢量候选索引可以是运动矢量预测因子的索引。
93.运动信息:可表示包括以下项中的至少一项的信息:运动矢量、参考画面索引、帧间预测指示符、预测列表利用标志、参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引。
94.合并候选列表:可表示由一个或更多个合并候选组成的列表。
95.合并候选:可表示空间合并候选、时间合并候选、组合合并候选、组合双向预测合并候选或零合并候选。合并候选可包括运动信息,诸如帧间预测指示符、针对每个列表的参考画面索引、运动矢量、预测列表利用标志和帧间预测指示符。
96.合并索引:可表示在合并候选列表中指示合并候选的指示符。可选地,合并索引可指示在空间上/时间上与当前块相邻的重建块之中的块,其中,合并候选已从该块被推导出。可选地,合并索引可指示合并候选的至少一条运动信息。
97.变换单元:可表示在对残差信号执行编码/解码(诸如变换、逆变换、量化、反量化、变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有更小尺寸的多个更低等级的变换单元。这里,变换/逆变换可包括第一变换/第一逆变换和第二变换/第二逆变换中的至少一个。
98.缩放:可表示将量化的等级乘以因子的处理。可通过对量化的等级进行缩放来生成变换系数。缩放也可被称为反量化。
99.量化参数:可表示当在量化期间使用变换系数来生成量化的等级时使用的值。量化参数还可表示当在反量化期间通过对量化的等级进行缩放来生成变换系数时使用的值。量化参数可以是被映射在量化步长上的值。
100.增量量化参数:可表示预测的量化参数与编码/解码目标单元的量化参数之间的差值。
101.扫描:可表示对单元、块或矩阵内的系数进行排序的方法。例如,将系数的二维矩阵改变为一维矩阵可被称为扫描,将系数的一维矩阵改变为二维矩阵可被称为扫描或逆扫描。
102.变换系数:可表示在编码器中执行变换之后生成的系数值。变换系数可表示在解码器中执行熵解码和反量化中的至少一个之后生成的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或者量化的变换系数等级也可落入变换系数的含义内。
103.量化的等级:可表示在编码器中通过对变换系数或残差信号进行量化而生成的值。可选地,量化的等级可表示作为在解码器中将经历反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落入量化的等级的含义内。
104.非零变换系数:可表示具有除零之外的值的变换系数、或者具有除零之外的值的变换系数等级或量化的等级。
105.量化矩阵:可表示在被执行以提高主观图像质量或客观图像质量的量化处理或反量化处理中使用的矩阵。量化矩阵也可被称为缩放列表。
106.量化矩阵系数:可表示量化矩阵内的每个元素。量化矩阵系数也可被称为矩阵系数。
107.默认矩阵:可表示在编码器或解码器中预先定义的预定量化矩阵。
108.非默认矩阵:可表示在编码器或解码器中未被预先定义而是由用户用信号发送的量化矩阵。
109.统计值:针对具有可计算的特定值的变量、编码参数、常量值等之中的至少一个的统计值可以是相应特定值的平均值、加权平均值、加权和值、最小值、最大值、最频繁出现的值、中值、内插值之中的一个或更多个。
110.图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
111.编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对至少一个图像进行编码。
112.参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
113.编码设备100可通过使用帧内模式或帧间模式或者帧内模式和帧间模式两者来对输入图像执行编码。此外,编码设备100可通过对输入图像进行编码来生成包括编码信息的比特流,并输出生成的比特流。生成的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可切换到帧内。可选地,当帧间模式被用作预测模式时,切换器115可切换到帧间模式。这里,帧内模式可表
示帧内预测模式,帧间模式可表示帧间预测模式。编码设备100可生成针对输入图像的输入块的预测块。此外,编码设备100可在生成预测块之后使用输入块和预测块的残差对残差块进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为当前编码目标的当前块,或者被称为编码目标块。
114.当预测模式是帧内模式时,帧内预测单元120可使用已被编码/解码并与当前块相邻的块的样点作为参考样点。帧内预测单元120可通过使用参考样点来对当前块执行空间预测,或者通过执行空间预测来生成输入块的预测样点。这里,帧内预测可表示帧内部的预测。
115.当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像检索与输入块最匹配的区域,并且通过使用检索到的区域来推导运动矢量。在这种情况下,搜索区域可被用作所述区域。参考图像可被存储在参考画面缓冲器190中。这里,当执行了对参考图像的编码/解码时,参考图像可被存储在参考画面缓冲器190中。
116.运动补偿单元112可通过使用运动矢量对当前块执行运动补偿来生成预测块。这里,帧间预测可表示帧之间的预测或运动补偿。
117.当运动矢量的值不是整数时,运动预测单元111和运动补偿单元112可通过将插值滤波器应用于参考画面的部分区域来生成预测块。为了对编码单元执行画面间预测或运动补偿,可确定将跳过模式、合并模式、高级运动矢量预测(amvp)模式和当前画面参考模式之中的哪个模式用于对包括在相应编码单元中的预测单元的运动预测和运动补偿。然后,依据所确定的模式,可不同地执行画面间预测或运动补偿。
118.减法器125可通过使用输入块和预测块的残差来生成残差块。残差块可被称为残差信号。残差信号可表示原始信号与预测信号之间的差。此外,残差信号可以是通过对原始信号与预测信号之间的差进行变换或量化或者进行变换和量化而生成的信号。残差块可以是块单元的残差信号。
119.变换单元130可通过对残差块执行变换来生成变换系数,并输出生成的变换系数。这里,变换系数可以是通过对残差块执行变换而生成的系数值。当变换跳过模式被应用时,变换单元130可跳过对残差块的变换。
120.可通过将量化应用于变换系数或应用于残差信号来生成量化的等级。在下文中,量化的等级在实施例中也可被称为变换系数。
121.量化单元140可通过根据参数对变换系数或残差信号进行量化来生成量化的等级,并输出生成的量化的等级。这里,量化单元140可通过使用量化矩阵对变换系数进行量化。
122.熵编码单元150可通过根据概率分布对由量化单元140计算出的值或者对在执行编码时计算出的编码参数值执行熵编码来生成比特流,并输出生成的比特流。熵编码单元150可对图像的样点信息和用于对图像进行解码的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素。
123.当熵编码被应用时,符号被表示使得较少数量的比特被分配给具有高生成可能性的符号,并且较多数量的比特被分配给具有低生成可能性的符号,因此,可减小用于将被编码的符号的比特流的大小。熵编码单元150可使用诸如指数哥伦布、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等的用于熵编码的编码方法。例如,熵
编码单元150可通过使用可变长度编码/码(vlc)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法和目标符号/二进制位的概率模型,并且通过使用推导出的二值化方法和上下文模型来执行算术编码。
124.为了对变换系数等级(量化的等级)进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变为一维矢量形式。
125.编码参数可包括在编码器中被编码并且被用信号发送到解码器的诸如语法元素的信息(标志、索引等)以及在执行编码或解码时推导出的信息。编码参数可表示在对图像进行编码或解码时所需要的信息。例如,以下项中的至少一个值或组合形式可被包括在编码参数中:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块形状、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、当前编码单元是否通过三叉树分区被分区、三叉树分区的方向(水平方向或垂直方向)、三叉树分区的类型(对称类型或非对称类型)、当前编码单元是否通过多类型树分区被分区、多类型树分区的方向(水平方向或垂直方向)、多类型树分区的类型(对称类型或非对称类型)和多类型树分区的树(二叉树或三叉树)结构、预测模式(帧内预测或帧间预测)、亮度帧内预测模式/方向、色度帧内预测模式/方向、帧内分区信息、帧间分区信息、编码块分区标志、预测块分区标志、变换块分区标志、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧内预测模式、帧间预测模式、运动信息、运动矢量、运动矢量差、参考画面索引、帧间预测角度、帧间预测指示符、预测列表利用标志、参考画面列表、参考画面、运动矢量预测因子索引、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并索引、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小、运动矢量的表示精度、变换类型、变换尺寸、首次(第一次)变换是否被使用的信息、二次变换是否被使用的信息、首次变换索引、二次变换索引、残差信号是否存在的信息、编码块样式、编码块标志(cbf)、量化参数、量化参数残差、量化矩阵、是否应用帧内环路滤波器、帧内环路滤波器系数、帧内环路滤波器抽头、帧内环路滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环路滤波器、自适应环路滤波器系数、自适应环路滤波器抽头、自适应环路滤波器形状/形式、二值化/反二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁路二进制位、有效系数标志、最后有效系数标志、针对系数组的单元的编码标志、最后有效系数的位置、关于系数的值是否大于1的标志、关于系数的值是否大于2的标志、关于系数的值是否大于3的标志、关于剩余系数值的信息、符号信息、重建的亮度样点、重建的色度样点、残差亮度样点、残差色度样点、亮度变换系数、色度变换系数、量化的亮度等级、量化的色度等级、变换系数等级扫描方法、在解码器侧的运动矢量搜索区域的尺寸、在解码器侧的运动矢量搜索区域的形状、在解码器侧的运动矢量搜索的次数、关于ctu尺寸的信息、关于最小块尺寸的信息、关于最大块尺寸的信息、关于最大块深度的信息、关于最小块深度的信息、图像显示/输出顺序、条带标识信息、条带类型、条带分区信息、并行块标识信息、并行块
类型、并行块分区信息、画面类型、输入样点的比特深度、重建样点的比特深度、残差样点的比特深度、变换系数的比特深度、量化的等级的比特深度、以及关于亮度信号的信息或关于色度信号的信息。
126.这里,用信号发送标志或索引可表示由编码器对相应的标志或索引进行熵编码并将其包括在比特流中,并且可表示由解码器从比特流对相应的标志或索引进行熵解码。
127.当编码设备100通过帧间预测执行编码时,编码的当前图像可被用作用于随后被处理的另一图像的参考图像。因此,编码设备100可对编码的当前图像进行重建或解码,或者将重建或解码的图像作为参考图像存储在参考画面缓冲器190中。
128.量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可由加法器175将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加,可生成重建块。这里,经过反量化或逆变换的系数或经过反量化和逆变换两者的系数可表示执行了反量化和逆变换中的至少一个的系数,并且可表示重建的残差块。
129.重建块可通过滤波器单元180。滤波器单元180可将去块滤波器、样点自适应偏移(sao)和自适应环路滤波器(alf)中的至少一个应用于重建样点、重建块或重建图像。滤波器单元180可被称为环内滤波器。
130.去块滤波器可去除在块之间的边界中生成的块失真。为了确定是否应用去块滤波器,可基于块中所包括的若干行或列中包括的样点来确定是否将去块滤波器应用于当前块。当将去块滤波器应用于块时,可根据所需的去块滤波强度来应用另一滤波器。
131.为了补偿编码误差,可通过使用样点自适应偏移将合适的偏移值与样点值相加。样点自适应偏移可以以样点为单位对经过去块的图像与原始图像的偏移进行校正。可使用考虑关于每个样点的边缘信息来应用偏移的方法,或者可使用以下方法:将图像的样点分区为预定数量的区域,确定偏移被应用的区域,并对确定的区域应用偏移。
132.自适应环路滤波器可基于经过滤波的重建图像和原始图像的比较结果来执行滤波。可将包括在图像中的样点分区为预定组,可确定将被应用于每个组的滤波器,并且可对每个组执行差异化滤波。是否应用alf的信息可通过编码单元(cu)被用信号发送,并且将被应用于每个块的alf的形式和系数可变化。
133.已经通过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。由滤波器单元180处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元180处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿时被使用。
134.图2是示出根据实施例的应用了本发明的解码设备的配置的框图。
135.解码设备200可以是解码器、视频解码设备或图像解码设备。
136.参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器225、滤波器单元260和参考画面缓冲器270。
137.解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读记录介质中的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可生成通过解码而生成的重建图像或解码图像,并输出重建图像或解码图像。
138.当在解码时使用的预测模式是帧内模式时,切换器可被切换到帧内。可选地,当在解码时使用的预测模式是帧间模式时,切换器可被切换到帧间模式。
139.解码设备200可通过对输入比特流进行解码来获得重建残差块,并生成预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来生成成为解码目标的重建块。解码目标块可被称为当前块。
140.熵解码单元210可通过根据概率分布对比特流进行熵解码来生成符号。生成的符号可包括量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆过程。
141.为了对变换系数等级(量化的等级)进行解码,熵解码单元210可通过使用变换系数扫描方法将单向矢量形式的系数改变为二维块形式。
142.可在反量化单元220中对量化的等级进行反量化,或者可在逆变换单元230中对量化的等级进行逆变换。量化的等级可以是进行反量化或逆变换或者进行反量化和逆变换两者的结果,并且可被生成为重建的残差块。这里,反量化单元220可将量化矩阵应用于量化的等级。
143.当使用帧内模式时,帧内预测单元240可通过对当前块执行空间预测来生成预测块,其中,空间预测使用与解码目标块相邻并且已经被解码的块的样点值。
144.当使用帧间模式时,运动补偿单元250可通过对当前块执行运动补偿来生成预测块,其中,运动补偿使用运动矢量以及存储在参考画面缓冲器270中的参考图像。
145.加法器225可通过将重建的残差块与预测块相加来生成重建块。滤波器单元260可将去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个应用于重建块或重建图像。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中并且在执行帧间预测时被使用。由滤波器单元260处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元260处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿时被使用。
146.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。图3示意性地示出将单个单元分区为多个更低等级的单元的示例。
147.为了有效地对图像进行分区,当进行编码和解码时,可使用编码单元(cu)。编码单元可被用作当对图像进行编码/解码时的基本单元。此外,编码单元可被用作用于在对图像进行编码/解码时区分帧内预测模式与帧间预测模式的单元。编码单元可以是用于预测、变换、量化、逆变换、反量化或对变换系数的编码/解码处理的基本单元。
148.参照图3,图像300按照最大编码单元(lcu)被顺序地分区,并且lcu单元被确定为分区结构。这里,lcu可以以与编码树单元(ctu)相同的含义被使用。单元分区可表示对与该单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或程度或者单元被分区的次数和程度两者。可基于树结构将单个单元分区为与深度信息分层地相关联的多个更低等级的单元。换言之,单元和通过对该单元进行分区而生成的更低等级的单元可分别与节点和该节点的子节点相应。分区出的更低等级的单元中的每一个可具有深度信息。深度信息可以是表示cu的尺寸的信息,并且可被存储在每个cu中。单元深度表示与对单元进行分区相关的次数和/或程度。因此,更低等级的单元的分区信息可包括关于更低等级的单元的尺寸的信息。
149.分区结构可表示lcu 310内的编码单元(cu)的分布。可根据是否将单个cu分区为
多个(等于或大于2的正整数,包括2、4、8、16等)cu来确定这样的分布。通过分区生成的cu的水平尺寸和垂直尺寸可分别是分区之前的cu的水平尺寸和垂直尺寸的一半,或者可分别具有根据分区的次数而小于分区之前的水平尺寸和垂直尺寸的尺寸。cu可以被递归地分区为多个cu。通过递归分区,与分区之前的cu的高度和宽度之中的至少一个相比,分区之后的cu的高度和宽度之中的至少一个可减小。可递归地执行cu的分区,直到预定义的深度或预定义的尺寸为止。例如,lcu的深度可以是0,最小编码单元(scu)的深度可以是预定义的最大深度。这里,如上所述,lcu可以是具有最大编码单元尺寸的编码单元,并且scu可以是具有最小编码单元尺寸的编码单元。分区从lcu 310开始,当cu的水平尺寸或垂直尺寸或者水平尺寸和垂直尺寸两者通过分区而减小时,cu深度增加1。例如,对于每个深度,未被分区的cu的尺寸可以为2n
×
2n。此外,在被分区的cu的情况下,可将尺寸为2n
×
2n的cu分区为尺寸为n
×
n的四个cu。当深度增加1时,n的大小可减半。
150.此外,可通过使用cu的分区信息来表示cu是否被分区的信息。分区信息可以是1比特信息。除scu之外的所有cu可包括分区信息。例如,当分区信息的值为1时,可不对cu进行分区,当分区信息的值为2时,可对cu进行分区。
151.参照图3,具有深度0的lcu可以是64
×
64的块。0可以是最小深度。具有深度3的scu可以是8
×
8的块。3可以是最大深度。32
×
32的块和16
×
16的块的cu可分别被表示为深度1和深度2。
152.例如,当单个编码单元被分区为四个编码单元时,分区出的四个编码单元的水平尺寸和垂直尺寸可以是cu在被分区之前的水平尺寸和垂直尺寸的一半大小。在一个实施例中,当尺寸为32
×
32的编码单元被分区为四个编码单元时,分区出的四个编码单元中的每一个的尺寸可以为16
×
16。当单个编码单元被分区为四个编码单元时,可称编码单元可被分区为四叉树形式。
153.例如,当一个编码单元被分区为两个子编码单元时,该两个子编码单元中的每一个的水平尺寸或垂直尺寸(宽度或高度)可以是原始编码单元的水平尺寸或垂直尺寸的一半。例如,当尺寸为32
×
32的编码单元被垂直分区为两个子编码单元时,该两个子编码单元中的每一个可具有16
×
32的尺寸。例如,当尺寸为8
×
32的编码单元被水平分区为两个子编码单元时,该两个子编码单元中的每一个可具有8
×
16的尺寸。当一个编码单元被分区为两个子编码单元时,可称编码单元被二分区,或者根据二叉树分区结构被分区。
154.例如,当一个编码单元被分区为三个子编码单元时,可以以1:2:1的比例对编码单元的水平尺寸或垂直尺寸进行分区,从而产生水平尺寸或垂直尺寸的比例为1:2:1的三个子编码单元。例如,当尺寸为16
×
32的编码单元被水平分区为三个子编码单元时,该三个子编码单元以从最上方子编码单元到最下方子编码单元的顺序可分别具有16
×
8、16
×
16和16
×
8的尺寸。例如,当尺寸为32
×
32的编码单元被垂直划分为三个子编码单元时,该三个子编码单元以从左侧子编码单元到右侧子编码单元的顺序可分别具有8
×
32、16
×
32和8
×
32的尺寸。当一个编码单元被分区为三个子编码单元时,可称编码单元被三分区或者根据三叉树分区结构被分区。
155.在图3中,编码树单元(ctu)320是四叉树分区结构、二叉树分区结构和三叉树分区结构全都被应用的ctu的示例。
156.如上所述,为了对ctu进行分区,可应用四叉树分区结构、二叉树分区结构和三叉
树分区结构中的至少一个。可根据预定的优先级顺序将各种树分区结构顺序地应用于ctu。例如,可将四叉树分区结构优先应用于ctu。不能再使用四叉树分区结构进行分区的编码单元可与四叉树的叶节点对应。与四叉树的叶节点对应的编码单元可用作二叉树和/或三叉树分区结构的根节点。也就是说,与四叉树的叶节点对应的编码单元可按照二叉树分区结构或三叉树分区结构被进一步分区,或者可不被进一步分区。因此,通过防止由与四叉树的叶节点对应的编码单元的二叉树分区或三叉树分区产生的编码块经历进一步的四叉树分区,可有效地执行块分区和/或用信号发送分区信息。
157.可使用四分区信息用信号发送与四叉树的节点对应的编码单元被分区的事实。具有第一值(例如,“1”)的四分区信息可指示当前编码单元按照四叉树分区结构被分区。具有第二值(例如,“0”)的四分区信息可指示当前编码单元未按照四叉树分区结构被分区。四分区信息可以是具有预定长度(例如,一个比特)的标志。
158.在二叉树分区与三叉树分区之间可没有优先级。也就是说,与四叉树的叶节点对应的编码单元可进一步经历二叉树分区和三叉树分区中的任意分区。此外,通过二叉树分区或三叉树分区生成的编码单元可经历进一步的二叉树分区或进一步的三叉树分区,或者可不被进一步分区。
159.在二叉树分区和三叉树分区中不存在优先级的树结构被称为多类型树结构。与四叉树的叶节点对应的编码单元可用作多类型树的根节点。可使用多类型树分区指示信息、分区方向信息和分区树信息中的至少一个来用信号发送是否对与多类型树的节点对应的编码单元进行分区。为了对与多类型树的节点对应的编码单元进行分区,可顺序地用信号发送多类型树分区指示信息、分区方向信息和分区树信息。
160.具有第一值(例如,“1”)的多类型树分区指示信息可指示当前编码单元将经历多类型树分区。具有第二值(例如,“0”)的多类型树分区指示信息可指示当前编码单元将不经历多类型树分区。
161.当与多类型树的节点对应的编码单元根据多类型树分区结构被进一步分区时,所述编码单元可包括分区方向信息。分区方向信息可指示当前编码单元将在哪个方向上根据多类型树分区被分区。具有第一值(例如,“1”)的分区方向信息可指示当前编码单元将被垂直分区。具有第二值(例如,“0”)的分区方向信息可指示当前编码单元将被水平分区。
162.当与多类型树的节点对应的编码单元按照多类型树分区结构被进一步分区时,当前编码单元可包括分区树信息。分区树信息可指示将被用于对多类型树的节点进行分区的树分区结构。具有第一值(例如,“1”)的分区树信息可指示当前编码单元将按照二叉树分区结构被分区。具有第二值(例如,“0”)的分区树信息可指示当前编码单元将按照三叉树分区结构被分区。
163.分区指示信息、分区树信息和分区方向信息均可以是具有预定长度(例如,一个比特)的标志。
164.四叉树分区指示信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个可被熵编码/熵解码。为了对那些类型的信息进行熵编码/熵解码,可使用关于与当前编码单元相邻的邻近编码单元的信息。例如,当前编码单元的左侧邻近编码单元和/或上方邻近编码单元的分区类型(被分区或未被分区、分区树和/或分区方向)与当前编码单元的分区类型相似的可能性很高。因此,可从关于邻近编码单元的信息推导出用于对
关于当前编码单元的信息进行熵编码/熵解码的上下文信息。关于邻近编码单元的信息可包括四分区信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个。
165.作为另一示例,在二叉树分区和三叉树分区中,可优先执行二叉树分区。也就是说,当前编码单元可首先经历二叉树分区,并且随后可将与二叉树的叶节点对应的编码单元设置为用于三叉树分区的根节点。在这种情况下,对于与三叉树的节点对应的编码单元,可既不执行四叉树分区也不执行二叉树分区。
166.不能按照四叉树分区结构、二叉树分区结构和/或三叉树分区结构被分区的编码单元成为用于编码、预测和/或变换的基本单元。也就是说,所述编码单元不能被进一步分区以用于预测和/或变换。因此,在比特流中可不存在用于将编码单元分区为预测单元和/或变换单元的分区结构信息和分区信息。
167.然而,当编码单元(即,用于分区的基本单元)的尺寸大于最大变换块的尺寸时,可递归地对编码单元进行分区,直到将编码单元的尺寸减小到等于或小于最大变换块的尺寸为止。例如,当编码单元的尺寸为64
×
64时并且当最大变换块的尺寸为32
×
32时,可将编码单元分区为用于变换的四个32
×
32的块。例如,当编码单元的尺寸为32
×
64并且最大变换块的尺寸为32
×
32时,可将编码单元分区为用于变换的两个32
×
32的块。在这种情况下,不单独用信号发送编码单元的用于变换的分区,并且可通过编码单元的水平尺寸或垂直尺寸与最大变换块的水平尺寸或垂直尺寸之间的比较来确定编码单元的用于变换的分区。例如,当编码单元的水平尺寸(宽度)大于最大变换块的水平尺寸(宽度)时,可将编码单元垂直地二等分。例如,当编码单元的垂直尺寸(长度)大于最大变换块的垂直尺寸(长度)时,可将编码单元水平地二等分。
168.可在编码单元的更高等级用信号发送或确定编码单元的最大尺寸和/或最小尺寸的信息以及变换块的最大尺寸和/或最小尺寸的信息。所述更高等级可以是例如序列级、画面级、条带级等。例如,可将编码单元的最小尺寸确定为4
×
4。例如,可将变换块的最大尺寸确定为64
×
64。例如,可将变换块的最小尺寸确定为4
×
4。
169.可在编码单元的更高等级用信号发送或确定与四叉树的叶节点对应的编码单元的最小尺寸(四叉树最小尺寸)的信息和/或从多类型树的根节点到叶节点的最大深度(多类型树的最大树深度)的信息。例如,所述更高等级可以是序列级、画面级、条带级等。可针对画面内条带和画面间条带中的每一个用信号发送或确定四叉树的最小尺寸的信息和/或多类型树的最大深度的信息。
170.可在编码单元的更高等级用信号发送或确定ctu的尺寸与变换块的最大尺寸之间的差信息。例如,所述更高等级可以是序列级、画面级、条带级等。可基于编码树单元的尺寸和所述差信息来确定与二叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为二叉树的最大尺寸)的信息。与三叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为三叉树的最大尺寸)可依据条带的类型而变化。例如,针对画面内条带,三叉树的最大尺寸可以是32
×
32。例如,针对画面间条带,三叉树的最大尺寸可以是128
×
128。例如,可将与二叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为二叉树的最小尺寸)和/或与三叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为三叉树的最小尺寸)设置为编码块的最小尺寸。
171.作为另一示例,可在条带级用信号发送或确定二叉树的最大尺寸和/或三叉树的
最大尺寸。可选地,可在条带级用信号发送或确定二叉树的最小尺寸和/或三叉树的最小尺寸。
172.依据上述各种块的尺寸信息和深度信息,四分区信息、多类型树分区指示信息、分区树信息和/或分区方向信息可被包括在比特流中或可不被包括在比特流中。
173.例如,当编码单元的尺寸不大于四叉树的最小尺寸时,编码单元不包含四分区信息。因此,可从第二值推导出四分区信息。
174.例如,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)大于二叉树的最大尺寸(水平尺寸和垂直尺寸)和/或三叉树的最大尺寸(水平尺寸和垂直尺寸)时,编码单元可不被二分区或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。
175.可选地,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)与二叉树的最大尺寸(水平尺寸和垂直尺寸)相同,和/或是三叉树的最大尺寸(水平尺寸和垂直尺寸)的两倍大时,编码单元可不被进一步二分区或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。这是因为,当按照二叉树分区结构和/或三叉树分区结构对编码单元进行分区时,生成了小于二叉树的最小尺寸和/或三叉树的最小尺寸的编码单元。
176.可选地,当与多类型树的节点对应的编码单元的深度等于多类型树的最大深度时,可不对编码单元进行进一步二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。
177.可选地,只有当垂直方向二叉树分区、水平方向二叉树分区、垂直方向三叉树分区和水平方向三叉树分区中的至少一个对于与多类型树的节点对应的编码单元是可行的时,才可用信号发送多类型树分区指示信息。否则,可不对编码单元进行二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。
178.可选地,只有当垂直方向二叉树分区和水平方向二叉树分区两者或者垂直方向三叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码单元是可行的时,才可用信号发送分区方向信息。否则,可不用信号发送分区方向信息,而是可从指示可能的分区方向的值推导出分区方向信息。
179.可选地,只有当垂直方向二叉树分区和垂直方向三叉树分区两者或者水平方向二叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码树是可行的时,才可用信号发送分区树信息。否则,可不用信号发送分区树信息,而是可从指示可能的分区树结构的值推导出分区树信息。
180.基于以上描述,将详细描述根据本发明的图像编码/解码方法。
181.在下文中,将描述根据本发明的变换和量化的处理。
182.可通过对在帧内预测或帧间预测之后生成的残差信号执行变换或量化或者变换和量化两者来生成量化的等级。可通过原始块与预测块(帧内预测块或帧间预测块)之间的差来生成残差信号。这里,预测块可以是通过帧内预测或帧间预测生成的块。此外,预测块可以是通过帧内预测和帧间预测中的至少一个或者是通过帧内预测和帧间预测的至少一种组合而生成的块。这里,变换可包括首次变换和二次变换中的至少一个。当对残差信号执
行了首次变换时,可生成变换系数,并且当对该变换系数执行了二次变换时,可生成二次变换系数。
183.另外,作为量化处理,可通过执行变换处理将残差信号变换到频域。这里,当执行首次变换时,除了dct类型2(dct-ii)之外,还可使用各种dct类型和dst核。对于这样的变换核,可通过使用可分离变换分别在水平方向或垂直方向或者这两个方向上对残差信号执行一维变换(1d变换)来执行变换,或者通过使用二维不可分离变换(2d不可分离变换)来执行变换。
184.在一个实施例中,如下表中所示,当执行1d变换时,作为用于变换的dct和dst类型,除了使用dct-ii之外,还可自适应地使用基于dct的变换和基于dst的变换(诸如dct-v、dct-viii、dst-i、dst-vii等)中的至少一个。例如,可通过配置如表1和表2的示例中所示的变换集来推导用于变换的dct或dst类型。
185.【表1】
186.变换集变换0dst_vii,dct-viii1dst-vii,dst-i2dst-vii,dct-v
187.【表2】
188.变换集变换0dst_vii,dct-viii,dst-i1dst-vii,dst-i,dct-viii2dst-vii,dct-v,dst-i
189.例如,如图4中所示,在根据帧内预测模式针对水平方向或垂直方向定义了彼此不同的变换集之后,可通过使用将被编码/解码的当前块的帧内预测模式和包括在变换集中的变换来在编码器/解码器中执行变换或逆变换或者变换和逆变换两者。
190.这里,可在编码器/解码器中根据相同规则来定义变换集,而不是对所述变换集进行熵编码/熵解码。这里,指示在包括在相应变换集中的变换之中使用哪个变换的信息可被熵编码/熵解码。
191.例如,当块尺寸等于或小于32
×
32时,如表2的示例中所示,可根据帧内预测模式配置三种类型的变换集,并且可通过将分别的三种变换组合为水平方向变换和垂直方向变换来以九种变换类型执行变换。因此,可通过使用最佳的变换类型对残差信号进行编码/解码来提高编码效率。这里,为了对表示使用一个变换集中包括的三种变换中的哪个变换的信息进行熵编码/熵解码,可使用截断一元二值化。这里,可对指示变换集中包括的变换中的哪个变换被用于垂直变换和水平变换中的至少一个的信息进行熵编码/熵解码。
192.在编码器中,在完成上述首次变换之后,如图5的示例中所示,可执行二次变换,以提高变换系数的能量聚集。可通过使用分别对水平方向或垂直方向或者这两个方向执行一维变换的可分离变换或者通过使用二维不可分离变换来执行二次变换。可根据当前块或邻近块的编码信息在编码器/解码器中用信号发送或隐式地推导指示所使用的变换的信息。例如,作为首次变换,可定义用于二次变换的变换集,并且可在编码器/解码器中根据相同规则来定义变换集,而不是对所述变换集进行熵编码/熵解码。这里,指示相应变换集中包
括的变换中的哪个变换的信息可被用信号发送,或者可被应用于通过帧内预测或帧间预测生成的至少一个残差信号。
193.变换集的变换候选的数量和类型中的至少一个可不同,并且可考虑如下项中的至少一个来可变地确定变换候选的数量和类型中的至少一个:块(cu、pu、tu等)的位置、尺寸、形状、预测模式(帧内模式/帧间模式)以及帧内预测模式是方向的还是非方向的。
194.在解码器中,可根据是否执行二次逆变换来执行二次逆变换,可根据是否执行首次逆变换来对二次逆变换的结果执行首次逆变换。
195.上述首次变换和二次变换可被应用于亮度/色度分量的至少一个信号分量,或者可根据任意编码块的尺寸/形状而被应用。指示在任意编码块中是否使用首次变换/二次变换以及所使用的首次变换/二次变换的索引可被熵编码/熵解码,或者可根据当前/邻近编码信息中的至少一个在编码器/解码器中被隐式地推导。
196.可通过对通过对残差信号执行首次变换或二次变换或者首次变换和二次变换两者而获得的结果执行量化来生成量化的等级。可基于帧内预测模式或者块尺寸/形状中的至少一个,根据右上对角线扫描、垂直扫描和水平扫描中的至少一个来扫描量化的等级。例如,通过使用右上对角线扫描来扫描块的系数,块的系数可改变为一维矢量或阵列形式。可根据变换块的尺寸或帧内预测模式或者变换块的尺寸和帧内预测模式两者来使用在列方向上扫描二维块形式的系数的垂直扫描、在行方向上扫描二维块形式的系数的水平扫描,而不使用右上对角线扫描。扫描的量化的等级可通过熵编码被包括在比特流中。
197.在解码器中,可通过对比特流进行熵解码来生成量化的等级。可通过对一维矢量或阵列形式的量化的等级执行逆扫描来将该一维矢量或阵列形式的量化的等级排列为二维块形式。这里,作为逆扫描方法,可执行右上对角线扫描、垂直扫描和水平扫描中的至少一个。
198.可对量化的等级执行反量化,可根据是否执行二次逆变换来执行二次逆变换,并且可通过根据是否执行首次逆变换对二次逆变换的结果执行首次逆变换来生成重建的残差信号。
199.在一个实施例中,当当前编码块的尺寸为8
×
8时,可通过根据图6中示出的三种扫描顺序方法中的至少一种方法对量化的变换系数进行扫描来对针对8
×
8的块的残差信号进行熵编码,其中,图6示出在首次变换和二次变换以及量化之后按照4
×
4的子块的四种扫描顺序。此外,可通过对量化的变换系数进行逆扫描来执行熵解码。经过逆扫描的量化的变换系数在反量化之后成为变换系数,并且可通过对变换系数执行二次逆变换和首次逆变换中的至少一个来生成重建的残差信号。
200.在下文中,参照图7至图18,将描述根据本发明的实施例的扫描变换系数的方法。
201.在编码器中,可基于扫描单元和扫描顺序来对如下系数中的至少一个执行扫描:作为对当前块的残差信号进行首次变换的结果而生成的变换系数、通过对首次变换结果另外执行二次变换而生成的变换系数以及通过执行量化而生成的系数。
202.在本说明书中,首次变换的输出、二次变换的输出、量化的输出、首次变换和二次变换的输出、首次变换和量化的输出、以及首次变换、二次变换和量化的输出可被称为变换系数。这里,为了方便起见,在不执行变换的情况下的作为量化的结果的系数也被称为变换系数。
203.在解码器中,在对经过熵解码的变换系数执行逆变换之前,可基于扫描单元和扫描顺序中的至少一个来执行逆扫描。这里,变换系数可以是经过熵解码的变换系数或经过反量化的变换系数,或者可以是经过熵解码和反量化两者的变换系数。
204.在下面,将基于编码器描述变换系数的扫描单元和扫描顺序,但是在编码器中使用的同一方法可在解码器中被使用作为变换系数的逆扫描单元和逆扫描顺序。
205.在编码器中,变换系数可通过量化来被扫描。这里,可在编码器中对经过扫描的变换系数进行熵编码。
206.在解码器中,可通过对经过熵解码的变换系数执行逆扫描来以块形式排列经过熵解码的变换系数。可对以块形式排列的变换系数执行反量化、二次逆变换和二次逆变换之后的首次逆变换、或首次逆变换。这里,对于以块形式排列的变换系数,可在反量化之后执行逆变换(二次逆变换或首次逆变换或者二次逆变换和首次逆变换两者)。经过逆变换的变换系数可以是当前块的重建残差信号。
207.在本说明书中,反量化的输入、二次逆变换的输入、首次逆变换的输入、首次逆变换和二次逆变换的输入、反量化和首次逆变换的输入、以及反量化、首次逆变换和二次逆变换的输入可被称为变换系数。这里,为了方便起见,作为在不执行变换的情况下的反量化的输入的系数也被称为变换系数。
208.在下面,扫描或扫描
……
可表示在编码器/解码器中执行扫描或逆扫描。此外,在解码器中,逆扫描可被表示为扫描。此外,扫描顺序可指扫描方法。这里,扫描顺序可指示执行对角线扫描、垂直扫描和水平扫描中的至少一个。此外,扫描顺序不限于上述扫描,可包括如下扫描中的至少一个:优先于其它列扫描第一列的第一垂直优先扫描、优先于其它列扫描第一列和第二列的第二垂直优先扫描、优先于其它行扫描第一行的第一水平优先扫描、优先于其它行扫描第一行和第二行的第二水平优先扫描、右上对角线扫描、以及左下对角线扫描。
209.此外,个体系数可指每个变换系数。
210.此外,在本说明书中,第一垂直优先扫描、第二垂直优先扫描、第一水平优先扫描、第二水平优先扫描可分别指第一垂直优先扫描顺序、第二垂直优先扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序。
211.此外,第一(或第二)垂直优先扫描不限于优先扫描第一列(或第一列和第二列),并且可优先扫描选择的一列(或两列)。
212.此外,第一(或第二)水平优先扫描不限于优先扫描第一行(或第一行和第二行),并且可优先扫描选择的一行(或两行)。这里,可基于通过比特流用信号发送的信息、在编码器/解码器中预先确定的信息、编码参数和查找表中的至少一个来执行选择优先扫描的列或行的操作。可选地,可比其它行或列优先扫描任意n个选择的行或列,或者可在其它行或列之后扫描任意n个选择的行或列。
213.根据本发明的实施例的扫描顺序的开始位置和结束位置可分别被定义为每个块的左上方和右下方。可选地,相反,扫描顺序的开始位置和结束位置可分别被定义为每个块的右下方和左上方。例如,在编码器和解码器中,定义了在块内将左上位置用作开始位置并将右下位置用作结束位置的扫描顺序,但是当对变换系数执行熵编码/熵解码时可以以相应扫描顺序的相反顺序执行扫描。类似地,例如,在编码器和解码器中,定义了在块内将右
下位置用作开始位置并将左上位置用作结束位置的扫描顺序,但是当对变换系数执行熵编码/熵解码时可以以相应扫描顺序的相反顺序执行扫描。
214.另外,根据本发明的扫描顺序的开始位置和结束位置不限于以上示例,并且可将块内的两个任意像素的位置确定为扫描顺序的开始位置和结束位置。在一个实施例中,所述两个任意像素中的至少一个可以是角像素。
215.可将属于当前块(例如,4
×
4的正方形子块)内的固定尺寸的系数确定为一个系数组(cg)。换句话说,为了对变换系数进行熵编码/熵解码,可将当前块内的n个系数定义为一个系数组。这里,n可以是等于或大于0的正整数。例如,n可以是16。此外,系数组的尺寸可具有j
×
k的尺寸,并且j
×
k个系数可被包括在一个系数组中。这里,j和k可以是正整数,并且可以是具有不同值或具有相同值的值。此外,j和k中的至少一个可以是从编码器用信号发送到解码器的信息,或者可以是在编码器/解码器中预设的值。
216.另外,可针对系数组单元或每个个体系数单元确定用于对变换系数进行熵编码/熵解码的标志或语法元素或者标志和语法元素两者。换句话说,可针对系数组单元或每个个体系数单元对用于变换系数的标志和语法元素中的至少一个进行熵编码/熵解码。
217.这里,标志或语法元素或者标志和语法元素两者可包括如下项中的至少一项:coded_sub_block_flag(以下简称csbf)、sig_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_abs_level_greater3_flag、coeff_abs_level_greater4_flag、coeff_abs_level_greater5_flag、coeff_sign_flag和coeff_abs_level_remaining_value。
218.coded_sub_block_flag可以是指示在每个cg中是否存在为0的变换系数的语法元素。
219.sig_coeff_flag可以是指示变换系数是否为0的语法元素。
220.coeff_abs_level_greater1_flag可以是指示变换系数的绝对值是否大于1的语法元素。
221.coeff_abs_level_greater2_flag可以是指示变换系数的绝对值是否大于2的语法元素。
222.coeff_abs_level_greater3_flag可以是指示变换系数的绝对值是否大于3的语法元素。
223.coeff_abs_level_greater4_flag可以是指示变换系数的绝对值是否大于4的语法元素。
224.coeff_abs_level_greater5_flag可以是指示变换系数的绝对值是否大于5的语法元素。
225.coeff_sign_flag可以是指示变换系数的符号的语法元素。
226.coeff_abs_level_remaining_value可以是指示当变换系数的绝对值大于n时通过从变换系数的绝对值减去n而获得的值的语法元素。这里,n可以是正整数。
227.例如,当coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag被熵编码/熵解码时,coeff_abs_level_remaining_value可以是指示当变换系数的绝对值大于3时通过从变换系数的绝对值减去3而获得的值的语法元素。
228.在另一实施例中,当coeff_abs_level_greater1_flag、coeff_abs_level_
greater2_flag、coeff_abs_level_greater3_flag、coeff_abs_level_greater4_flag和coeff_abs_level_greater5_flag被熵编码/熵解码时,coeff_abs_level_remaining_value可以是指示当变换系数的绝对值大于6时通过从变换系数的绝对值减去6而获得的值的语法元素。
229.另外,可通过使用下文中描述的扫描顺序,在当前块内执行扫描变换系数的操作时对用于对变换系数进行熵编码/熵解码的标志和语法元素中的至少一个进行熵编码/熵解码。
230.此外,用于对变换系数进行熵编码/熵解码的标志和语法元素中的至少一个可通过根据另一扫描顺序被扫描来被熵编码或熵解码。这里,可基于当前块的编码参数来确定用于对变换系数进行熵编码/熵解码的标志和语法元素中的至少一个的扫描顺序。
231.另外,将扫描的变换系数可指量化的变换系数等级、变换系数、量化的等级和残差信号系数中的至少一个。
232.此外,可通过使用变换系数的扫描顺序中的至少一个来对量化矩阵(量化矩阵或缩放列表)执行扫描。这里,应用于变换系数的扫描顺序可与应用于量化矩阵的扫描顺序相关联。换句话说,两种扫描顺序中的一个可基于另一扫描顺序被推导出。例如,通过从预定方法推导,两种扫描顺序可相同或可不同。
233.此外,在下面,为了方便起见,将描述在编码器中执行的扫描方法,但是所述扫描方法不限于此。可根据在编码器中执行的扫描方法来在解码器中执行逆扫描。
234.随后,将描述扫描单元。
235.可以以至少一个扫描单元扫描变换系数。根据本发明的实施例的变换系数的扫描单元可以是区域单元、系数组单元、个体系数单元和组合单元中的任意一个。这里,按照区域单元的扫描可指在包括包含当前块的块中的至少一个的区域内对各个变换系数执行扫描。这里,区域的尺寸可等于或大于当前块的尺寸。这里,当按照区域单元执行扫描时,可在区域内按照系数组单元对变换系数进行划分并在系数组之间执行扫描,并且还对存在于每个系数组内的变换系数执行扫描。按照系数组单元的扫描可指将当前块划分为至少一个系数组并在系数组之间执行扫描,并且对存在于每个系数组内的变换系数执行扫描。换句话说,按照系数组单元的扫描是指在系数组之间执行扫描,并且在系数组内对变换系数进行扫描。此外,按照个体系数单元的扫描可指在当前块内对各个变换系数执行扫描,而不使用系数组。
236.在一个实施例中,可按照尺寸或形状为如下中的至少一个的系数组单元对当前块内的变换系数进行扫描:2n
×
2n、2n
×
n、n
×
2n、3n
×
n、n
×
3n、3n
×
2n、2n
×
3n、4n
×
n、n
×
4n、4n
×
3n、3n
×
4n、8n
×
n、n
×
8n、8n
×
7n和7n
×
8n(n为等于或大于1的整数),或者可按照个体系数单元对当前块内的变换系数进行扫描。这里,形状可表示块形状是否是正方形、非正方形、垂直长矩形和水平长矩形中的至少一个。
237.可基于当前块的尺寸来确定扫描单元。
238.详细地,可通过将当前块的尺寸与预定阈值进行比较来确定扫描单元。这里,所述预定阈值可表示确定扫描单元的参考尺寸,并且可以以最小值和最大值中的至少一个的形式来表示所述预定阈值。
239.另外,预定阈值可以是在编码器/解码器中预先确定的固定值,可基于编码/解码
相关参数(例如,当前块的预测模式(帧间预测或帧内预测)、帧内预测模式、首次变换和二次变换中的至少一个是否被执行、变换类型、扫描顺序等)来可变地推导预定阈值,或者可通过比特流(例如,序列、画面、条带、并行块、ctu、块级等)用信号发送预定阈值。
240.在一个实施例中,可按照系数组单元扫描水平长度和垂直长度的乘积等于或大于n(例如,n=256)的块,否则,可按照个体系数单元扫描所述块。
241.在另一实施例中,可按照系数组单元扫描水平长度与垂直长度之中的最小长度为m(例如,m=8)的块,否则,可按照个体系数单元扫描所述块。然而,不限于此。例如,可按照系数组单元扫描长度等于或小于阈值(n或m)的块,否则,可按照个体系数单元扫描所述块。
242.另外,可基于当前块的形状确定扫描单元。
243.在一个实施例中,当当前块具有矩形形状时,可按照个体系数单元扫描所述块。
244.在另一实施例中,当当前块具有正方形形状时,可按照系数组单元扫描所述块。然而,不限于以上示例。例如,可按照系数组单元扫描具有矩形形状的当前块,并且可按照个体系数单元扫描具有正方形形状的当前块。
245.另外,可基于当前块的帧内预测模式来执行确定扫描单元的操作。这里,可考虑帧内预测模式的值本身,或者可考虑帧内预测模式是否为非方向模式(dc模式或平面模式)或帧内预测模式是否为方向模式(例如,垂直方向或水平方向)。
246.在一个实施例中,当当前块的帧内预测模式是dc模式和平面模式中的至少一个时,可按照系数组单元扫描当前块。
247.在另一实施例中,当当前块的帧内预测模式是垂直模式时,可按照个体系数单元扫描当前块。
248.在另一实施例中,当当前块的帧内预测模式是水平模式时,可按照个体系数单元扫描当前块。然而,不限于以上示例。例如,在非方向模式的情况下,可按照个体系数单元扫描块,而在垂直模式或水平模式的情况下,可按照系数组单元扫描块。
249.另外,可从编码器向解码器用信号发送扫描单元相关信息。因此,解码器可通过使用用信号发送的扫描单元相关信息来确定当前块的扫描单元。
250.图7至图9是示出根据本发明的实施例的扫描单元的示图。
251.可根据当前块的尺寸或形状或者尺寸和形状两者将扫描单元确定为具有预定义的固定尺寸的系数组单元或个体系数单元。例如,可使用与当前块具有相同的高宽比的单个系数组。
252.可基于当前块的高宽比来确定系数组单元的尺寸。此外,可按照相同系数组单元扫描当前块内的变换系数。这里,相同系数组单元可表示系数组单元的尺寸和系数组单元的形状中的至少一个是相同的。
253.在一个实施例中,可按照尺寸为8
×
8的相同系数组单元扫描当前块内的尺寸为16
×
16的变换系数。
254.在一个实施例中,可按照尺寸为4
×
8的相同系数组单元扫描当前块内的尺寸为8
×
16的变换系数。
255.在一个实施例中,可按照尺寸为8
×
4的相同系数组单元扫描当前块内的尺寸为16
×
8的变换系数。
256.在一个实施例中,如图7的(a)中所示,可按照尺寸为4
×
4的相同系数组单元扫描
当前块内的尺寸为16
×
16的变换系数。
257.在一个实施例中,如图7的(b)中所示,可按照尺寸为2
×
4的相同系数组单元扫描当前块内的尺寸为8
×
16的变换系数。
258.在一个实施例中,如图7的(c)中所示,可按照尺寸为4
×
2的相同系数组单元扫描当前块内的尺寸为16
×
8的变换系数。
259.另外,可按照不同系数组单元扫描当前块内的变换系数。这里,不同系数组单元可表示系数组单元的尺寸和系数组单元的形状中的至少一个是不同的。
260.在一个实施例中,如图8中所示,可通过将当前块内的尺寸为8
×
16的变换系数划分为一个8
×
8的系数组、两个4
×
4的系数组以及八个2
×
2的系数组来扫描当前块内的尺寸为8
×
16的变换系数。
261.另外,可从编码器向解码器用信号发送系数组单元的尺寸信息。因此,解码器可通过使用用信号发送的系数组单元的尺寸信息来确定当前块的扫描单元。
262.另外,可按照个体系数单元扫描当前块内的变换系数。这里,按照个体系数单元的扫描可指扫描当前块的全部变换系数,而不是按照系数组对当前块进行划分。
263.在一个实施例中,如图9的(a)所示,可按照个体系数单元扫描当前块内的尺寸为16
×
8的所有变换系数。
264.另外,可按照组合单元扫描当前块内的变换系数。这里,按照组合单元的扫描是指按照系数组单元扫描属于当前块内的变换系数的部分系数并按照个体系数单元扫描其余区域的系数。
265.在一个实施例中,如图9的(b)中所示,在当前块内的尺寸为16
×
8的变换系数中,可按照4
×
4的系数组单元扫描属于左上方4
×
4的区域的变换系数,并且可按照个体系数单元扫描其余区域的变换系数。
266.然而,不限于以上示例,并且可基于当前块的尺寸或形状或者尺寸和形状两者来推导部分区域的尺寸或形状或者尺寸和形状两者。在一个实施例中,当当前块是16
×
8的块时,所述部分区域可以是8
×
4的块。
267.可选地,可基于当前块的水平长度和垂直长度中的至少一个来推导部分区域的水平长度和垂直长度中的至少一个。
268.可选地,可对指示部分区域的尺寸或形状或者尺寸和形状两者的信息进行熵编码/熵解码。
269.可选地,可从当前块或至少一个邻近块或者当前块和至少一个邻近块两者推导部分区域的尺寸或形状或者尺寸和形状两者。
270.此外,部分区域的位置不限于当前块的左上方,并且可以是当前块内的任意位置。在一个实施例中,所述部分区域可位于拐角处,诸如当前块的左下方、右上方或右下方。
271.另外,可基于至少一个编码参数来推导部分区域的位置,其中,所述编码参数包括当前块的尺寸、形状、深度、预测模式、帧内预测模式等。可选地,与部分区域的位置相关的信息可从编码器被用信号发送到解码器,或者可从当前块或至少一个邻近块或者当前块和至少一个邻近块两者的信息被推导出。
272.随后,将描述扫描顺序。
273.可根据至少一个扫描顺序来扫描变换系数。当按照变换系数组单元或个体系数单
元或者变换系数组单元和个体系数单元两者扫描变换系数时,可根据至少一个扫描顺序对当前块内的变换系数执行系数组之间的扫描或系数组内的扫描或者系数组之间的扫描和系数组内的扫描两者。这里,可对当前块内的全部变换系数或部分变换系数执行扫描。
274.作为根据本发明的实施例的变换系数的扫描顺序,可使用图6中示出的对角线扫描顺序、水平扫描顺序和垂直扫描顺序中的任意一个以及图10中示出的第一组合对角线扫描顺序、第二组合对角线扫描顺序、左下对角线扫描顺序、第一垂直优先扫描顺序、第二垂直优先扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序。此外,可按照个体系数单元或变换系数组单元或者个体系数单元和变换系数组单元两者扫描变换系数。这里,图6中示出的对角线扫描顺序可表示右上对角线扫描顺序。
275.可基于当前块的形状(正方形或非正方形)来确定扫描顺序。这里,当前块的形状可由当前块的高宽比表示。换句话说,可基于当前块的水平长度与垂直长度的比率来确定扫描顺序。这里,可对当前块内的全部变换系数或部分变换系数执行扫描。
276.在一个实施例中,当当前块具有正方形形状时,通过使用右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来执行扫描,当当前块是垂直长度大于水平长度的块时,通过使用垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来执行扫描,并且当当前块是垂直长度小于水平长度的块时,可通过使用水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来执行扫描。
277.在另一实施例中,当当前块具有正方形形状时,可通过使用右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来执行扫描,当当前块是垂直长度大于水平长度的块时,可通过使用水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来执行扫描,并且当当前块是垂直长度小于水平长度的块时,可通过使用垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来执行扫描。另外,不限于以上示例。例如,当当前块是非正方形(矩形形状)时的可用扫描顺序以及当当前块是正方形(正方形形状)时的可用扫描顺序可与以上示例相反或可与以上示例不同。
278.在另一实施例中,当当前块具有矩形(非正方形)形状时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的至少一个来扫描变换系数组或个体系数。
279.在另一实施例中,当当前块具有正方形形状时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的至少一个来扫描变换系数组或个体系数。然而,不限于以上示例。例如,当当前块具有矩形形状时的可用扫描顺序以及当当前块具有正方形形状时的可用扫描顺序可与以上示例相反,可与以上示例不同。
280.图11至图13是示出当按照系数组单元执行扫描时在系数组内扫描与在系数组间扫描之间的关系的示图。当按照系数组单元执行扫描时,针对系数组内的扫描和系数组间的扫描,可通过使用相同的扫描顺序来执行扫描。
281.在一个实施例中,如图11中所示,当按照4
×
4的系数组单元扫描当前块内的尺寸为16
×
16的变换系数时,可根据右上对角线扫描顺序来执行针对系数组内的系数的扫描和针对系数组单元的扫描。
282.在另一实施例中,如图12中所示,当按照2
×
4的系数组单元扫描当前块内的尺寸为8
×
16的变换系数时,可根据垂直扫描顺序来执行针对系数组内的系数的扫描和针对系
数组单元的扫描。
283.在另一实施例中,如图13中所示,当按照4
×
2的系数组单元扫描当前块内的尺寸为16
×
8的变换系数时,可根据水平扫描顺序来执行针对系数组内的系数的扫描和针对系数组单元的扫描。
284.在另一实施例中,当按照4
×
4的系数组单元扫描当前块内的尺寸为8
×
8的变换系数时,可根据左下对角线扫描顺序来执行针对系数组内的系数的扫描和针对系数组单元的扫描。
285.在另一实施例中,当按照4
×
4的系数组单元扫描当前块内的尺寸为4
×
8的变换系数时,可根据第一垂直优先扫描顺序来执行针对系数组内的系数的扫描和针对系数组单元的扫描。
286.在另一实施例中,当按照4
×
2的系数组单元扫描当前块内的尺寸为8
×
4的变换系数时,可根据第一水平优先扫描顺序来执行针对系数组内的系数的扫描和针对系数组单元的扫描。
287.另一方面,当按照系数组单元执行扫描时,可将彼此不同的扫描顺序用于系数组内的扫描和系数组间的扫描。
288.在一个实施例中,当按照4
×
4的系数组单元扫描当前块内的尺寸为16
×
16的变换系数时,可根据右上对角线扫描顺序来扫描系数组内的系数,并且可根据水平扫描顺序或垂直扫描顺序来扫描系数组单元。
289.在另一实施例中,当按照2
×
4的系数组单元扫描当前块内的尺寸为8
×
16的变换系数时,可根据垂直扫描顺序来扫描系数组内的系数,并且可根据右上对角线扫描顺序或水平扫描顺序来扫描系数组单元。
290.在另一实施例中,当按照4
×
2的系数组单元扫描当前块内的尺寸为16
×
8的变换系数时,可根据水平扫描顺序来扫描系数组内的系数,并且可根据右上对角线扫描顺序或垂直扫描顺序来扫描系数组单元。
291.在另一实施例中,当按照4
×
4的系数组单元扫描当前块内的尺寸为8
×
8的变换系数时,可根据左下对角线扫描顺序来扫描系数组内的系数,并且可根据右上对角线扫描顺序来扫描系数组单元。
292.在另一实施例中,当按照4
×
4的系数组单元扫描当前块内的尺寸为4
×
8的变换系数时,可根据第一垂直优先扫描顺序或第二垂直优先扫描顺序来扫描系数组内的系数,并且可根据右上对角线扫描顺序或左下对角线扫描顺序来扫描系数组单元。
293.在另一实施例中,当按照4
×
4的系数组单元扫描当前块内的尺寸为8
×
4的变换系数时,可根据第一水平优先扫描顺序或第二水平优先扫描顺序来扫描系数组内的系数,并且可根据右上对角线扫描顺序或左下对角线扫描顺序来扫描系数组单元。
294.另外,指示当以系数组执行扫描时彼此不同的扫描顺序是否可被用于系数组内的扫描和系数组间的扫描的信息可以以更高等级从编码器被用信号发送到解码器。这里,所述更高等级的单元可以是例如视频参数集(vps)、序列参数集(sps)、画面参数集(pps)、条带、并行块和ctu中的至少一个。此外,不同类型的扫描顺序是否在块单元(诸如编码树单元、编码单元、预测单元、变换单元等)中被使用的信息可被熵编码/熵解码。在一个实施例中,当以系数组扫描时,指示不同扫描顺序是否被用于系数组内的扫描和系数组间的扫描
的信息可以以标志形式被表示。
295.另外,当按照个体系数单元扫描时,可根据一个扫描顺序来扫描当前块内的全部变换系数或部分变换系数。
296.当按照个体系数单元执行扫描时,可基于当前块的形状来确定扫描顺序。这里,当前块的形状可以以当前块的高宽比被表示。换句话说,可基于当前块的水平长度与垂直长度之间的比较来确定扫描顺序。
297.在另一实施例中,如图14的(a)中所示,可通过使用右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来按照个体系数单元扫描当前块内的尺寸为8
×
8的变换系数,如图14的(b)中所示,可通过使用垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来按照个体系数单元扫描当前块内的尺寸为4
×
8的变换系数,并且如图14的(c)中所示,可通过使用水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来按照个体系数单元扫描当前块内的尺寸为8
×
4的变换系数。
298.此外,尽管在图14中未示出,当当前块具有正方形形状时,可通过使用右上对角线扫描顺序或左下对角线扫描顺序中的任意一个来按照个体系数单元扫描当前块内的变换系数,当当前块具有垂直长度大于水平长度的非正方形形状时,可通过使用水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来按照个体系数单元扫描当前块内的变换系数,并且当当前块具有垂直长度小于水平长度的非正方形形状时,可通过使用垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来按照个体系数单元扫描当前块内的变换系数。
299.另外,当扫描变换系数时,可使用根据当前块的尺寸或形状或者尺寸和形状两者映射的扫描顺序。这里,形状可表示块是正方形、水平长矩形还是垂直长矩形。
300.另外,可基于当前块的尺寸来确定扫描顺序。
301.详细地,可基于当前块的尺寸与预定阈值之间的比较来确定扫描顺序。这里,所述预定阈值可表示确定扫描单元的参考尺寸,并且可以以最小值和最大值中的至少一个的形式表示所述预定阈值。
302.另外,预定阈值可以是在编码器/解码器中预定义的固定值,可基于当前块的编码/解码相关参数(例如,预测模式、帧内预测模式、变换类型、扫描顺序等)来可变地推导预定阈值,或者可通过比特流(例如,序列、画面、条带、并行块、ctu、块级等)用信号发送预定阈值。这里,可对当前块内的全部变换系数或部分变换系数执行扫描。
303.在一个实施例中,在水平长度和垂直长度的乘积等于或大于256的块的情况下,可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数,否则,可根据水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个或者垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。另外,与水平长度和垂直长度的乘积进行比较的阈值不限于256。这里,所述阈值可以是例如任意正整数。可选地,可存在n(n是正整数)个阈值。当存在n个阈值时,与n+1个部分中的当前块所属的部分相关联的扫描顺序可被应用于当前块。
304.在另一实施例中,在水平长度与垂直长度之中的最小长度等于或小于8的块的情况下,可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数,否则,可根据水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序
中的任意一个以及垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。另外,与水平长度和垂直长度中的最小长度进行比较的阈值不限于8。所述阈值可以是例如任意正整数。可选地,可存在n(n是正整数)个阈值。当存在n个阈值时,与n+1个部分中的当前块所属的部分相关联的扫描顺序可被应用于当前块。
305.在另一实施例中,当当前块的尺寸具有不被进一步划分的最小块尺寸时,可应用预定扫描顺序。所述预定扫描顺序可以是例如右上对角线扫描顺序或左下对角线扫描顺序。可以以例如vps、sps、pps、条带、并行块、ctu、块等中的至少一个单元来用信号发送与最小块尺寸相关的信息。
306.另外,可基于当前块的深度来确定扫描顺序。
307.可基于当前块的深度与预定阈值之间的比较来确定扫描顺序。所述预定阈值表示确定扫描顺序的参考尺寸或深度。所述预定阈值可以以最小值和最大值中的至少一个的形式被表示。所述预定阈值可以是在编码器/解码器中预定义的固定值,可基于当前块的编码/解码参数(例如,预测模式、帧内预测模式、变换类型、扫描顺序等)来可变地推导所述预定阈值,或者可通过比特流(例如,序列、画面、条带、并行块、ctu、块级等)用信号发送所述预定阈值。这里,可对当前块内的全部变换系数或部分变换系数执行扫描。
308.在一个实施例中,当当前块的深度为0时,可根据右上对角线扫描顺序或左下对角线扫描顺序来扫描变换系数组或个体系数,当当前块的深度不同于0时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的至少一个来扫描变换系数组或个体系数。
309.在另一实施例中,当当前块的深度等于或小于1时,可根据右上对角线扫描顺序或左下对角线扫描顺序来扫描变换系数组或个体系数,并且当当前块的深度大于1时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。另外,与当前块的深度进行比较的阈值不限于0或1。这里,所述阈值可以是例如等于或大于0的正整数。可选地,可存在n(n是正整数)个阈值。当存在n个阈值时,与n+1个部分中的当前块所属的部分相关联的扫描顺序可被应用于当前块。
310.在另一实施例中,当当前块具有不被进一步划分的最大划分深度时,可应用预定扫描顺序。这里,所述预定扫描顺序可以是例如对角线扫描顺序。此外,可以以例如vps、sps、pps、条带、并行块、ctu和块中的至少一个单元来用信号发送与最大划分深度相关的信息。
311.另外,可基于当前块的帧内预测模式来确定扫描顺序。这里,可考虑帧内预测模式的值本身,并且可考虑帧内预测模式是否为非方向模式或者考虑帧内预测模式的方向(例如,垂直方向或水平方向)。这里,可对当前块内的所有变换系数或一部分变换系数执行扫描。
312.在一个实施例中,当当前块的帧内预测模式是dc模式和平面模式中的至少一个时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。
313.在另一实施例中,当当前块的帧内预测模式是垂直模式时,可根据水平扫描顺序、
第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
314.在另一实施例中,当当前块的帧内预测模式是水平模式时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
315.在另一实施例中,当当前块的帧内预测模式是垂直模式或水平模式时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的至少一个来扫描变换系数组或个体系数。
316.在另一实施例中,当当前块的帧内预测模式被包括在与垂直模式或水平模式相邻的k个模式中时,可根据水平扫描顺序和左下对角线扫描顺序中的至少一个来扫描变换系数组或个体系数。这里,k可以是等于或大于1的正整数。这里,与垂直模式或水平模式相邻的k个模式可以是与通过将-k/2至k/2的值与由垂直模式或水平模式指示的特定帧内预测模式值相加而获得的值对应的帧内预测模式。
317.在另一实施例中,当当前块的帧内预测模式被包括在与垂直模式或水平模式相邻的k个模式中时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的至少一个来扫描变换系数组或个体系数。这里,k可以是等于或大于1的正整数。这里,与垂直模式或水平模式相邻的k个模式可以是与通过将-k/2至k/2的值与由垂直模式或水平模式指示的特定帧内预测模式值相加而获得的值对应的帧内预测模式。
318.在另一实施例中,当当前块的帧内预测模式以偶数形式存在时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的至少一个来扫描变换系数组或个体系数。此外,当当前块的帧内预测模式以奇数形式存在时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序、第二垂直优先扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。
319.在另一实施例中,当当前块的帧内预测模式以奇数形式存在时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。此外,当当前块的帧内预测模式以偶数形式存在时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序、第二垂直优先扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。
320.在另一实施例中,不管当前块的帧内预测模式如何,都可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。
321.在另一实施例中,根据通过对作为当前块的帧内预测模式的值的ipm执行取模(mod,%)运算而获得的结果,可将右上对角线扫描顺序、左下对角线扫描顺序、水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个确定为针对变换系数组或个体系数的扫描顺序。这里,取模运算可表示计算除法的余数的数学运算。换句话说,可根据(ipm mod m)的值确定扫描顺序中的至少一个。在下面,ipm为0可表示指示平面模式,并且ipm为1可表示指示dc模式。
322.例如,当((ipm-2)mod 2)为0时,可根据右上对角线扫描顺序来扫描变换系数组或个体系数。此外,当((ipm-2)mod 2)为1时,可根据左下对角线扫描顺序来扫描变换系数组
或个体系数。
323.例如,当((ipm-2)mod 4)为0时,可根据右上对角线扫描顺序来扫描变换系数组或个体系数。此外,当((ipm-2)mod 4)为1时,可根据左下对角线扫描顺序来扫描变换系数组或个体系数。此外,当((ipm-2)mod 4)为2时,可根据垂直扫描顺序来扫描变换系数组或个体系数。此外,当((ipm-2)mod 4)为3时,可根据水平扫描顺序来扫描变换系数组或个体系数。
324.此外,可将预定数量的方向预测模式分组为一个组,并且基于当前块的帧内预测模式属于哪个组,可将与相应组相关联的扫描顺序确定为当前块的扫描顺序。这里,包括在该组中的方向预测模式的数量可与包括在另一组中的方向预测模式的数量相同或不同。这里,可基于方向预测模式的角度或方向相似度来执行分组。
325.在一个实施例中,将与第一模式相邻的预定数量的模式分类为第一模式组,并且可将与第一模式组相关联的扫描顺序应用于具有包括在第一模式组中的帧内预测模式的当前块。例如,第一模式可以是垂直模式、水平模式、对角线模式等。
326.另外,可基于指示方向预测模式的值的取模运算来执行分组。这里,可基于当前块的尺寸、形状或深度来确定在取模运算中使用的除数。当当前块的尺寸变大时,可使用更大的除数(或更小的除数)。当除数变大时,通过取模运算的组的数量变大,并且因此可详细地执行确定扫描顺序的操作。
327.此外,基于当前块的帧内预测模式(方向),可确定多种(例如,n,n是等于或大于2的整数)扫描顺序。这里,n种扫描顺序可以是根据帧内预测模式在编码器/解码器中预设的多种扫描顺序。可根据帧内预测模式确定彼此不同的n种扫描顺序。这里,n种扫描顺序可包括对角线扫描、垂直扫描、水平扫描、右上对角线扫描、左下对角线扫描、第一垂直优先扫描、第二垂直优先扫描、第一水平优先扫描和第二水平优先扫描中的至少一个。
328.在一个实施例中,当当前块的帧内预测模式是dc模式和平面模式中的至少一个时,可根据两种扫描顺序(右上对角线扫描顺序和左下对角线扫描顺序)之中的一种扫描顺序的信息来扫描变换系数组或个体系数。
329.在另一实施例中,当当前块的帧内预测模式是垂直模式时,可根据两种扫描顺序(水平扫描顺序和左下对角线扫描顺序)之中的一种扫描顺序的信息来扫描变换系数组或个体系数。
330.在另一实施例中,当当前块的帧内预测模式是垂直模式并且被包括在k个邻近模式中时,可根据两种扫描顺序(水平扫描顺序和左下对角线扫描顺序)之中的一种扫描顺序的信息来扫描变换系数组或个体系数。这里,k可以是等于或大于1的正整数。
331.在另一实施例中,当当前块的帧内预测模式是垂直模式并且被包括在k个邻近模式中时,可根据三种扫描顺序(水平扫描顺序、左下对角线扫描顺序和第一水平优先扫描顺序)中的一种扫描顺序的信息来扫描变换系数组或个体系数。这里,k可以是等于或大于1的正整数。
332.在另一实施例中,当当前块的帧内预测模式是水平模式时,可根据两种扫描顺序(垂直扫描顺序和右上对角线扫描顺序)之中的一种扫描顺序的信息来扫描变换系数组或个体系数。
333.在另一实施例中,当当前块的帧内预测模式是水平模式并且被包括在k个邻近模
式中时,可根据两种扫描顺序(垂直扫描顺序和右上对角线扫描顺序)之中的一种扫描顺序的信息来扫描变换系数组或个体系数。这里,k可以是等于或大于1的正整数。
334.在另一实施例中,当当前块的帧内预测模式是水平模式并且被包括在k个邻近模式中时,可根据三种扫描顺序(垂直扫描顺序、右上对角线扫描顺序和第一垂直优先扫描顺序)中的一种扫描顺序的信息来扫描变换系数组或个体系数。这里,k可以是等于或大于1的正整数。
335.在另一实施例中,当垂直模式或水平模式具有特定帧内预测模式值时,与垂直模式或水平模式相邻的k个邻近模式可以是与通过将-k/2至k/2的值与由垂直模式或水平模式指示的特定帧内预测模式值相加而获得的值对应的帧内预测模式。
336.另外,可从编码器向解码器用信号发送与扫描顺序相关的信息。因此,解码器可通过使用用信号发送的与扫描顺序相关的信息来确定当前块的扫描顺序。在一个实施例中,与扫描顺序相关的信息可以是指示对角线扫描顺序、垂直扫描顺序、水平扫描顺序、第一组合对角线扫描顺序、第二组合对角线扫描顺序、右上对角线扫描顺序、左下对角线扫描顺序、第一垂直优先扫描顺序、第二垂直优先扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序等的信息。这里,与扫描顺序相关的信息可以以标志或索引的形式被熵编码/熵解码。
337.另外,可基于在与当前块相邻的邻近块中使用的扫描顺序或当前块的编码参数来确定当前块的扫描顺序。
338.例如,可通过使用在与当前块相邻的左侧块、右侧块、上方块和下方块中的至少一个中相同地使用的扫描顺序来扫描当前块内的变换系数。这里,可配置包括邻近块的至少一个扫描顺序的列表,并且可通过使用该列表的索引来推导当前块的扫描顺序。该索引可被熵编码/熵解码。
339.可选地,可使用在邻近块中使用的扫描顺序中的至少一个扫描顺序的统计值。例如,可将与指示扫描顺序的值的平均值、加权平均值、最小值、最大值、众数和中值中的至少一个值相关联的扫描顺序确定为当前块的扫描顺序。
340.另外,当按照系数组单元执行扫描时,可基于在与当前系数组相邻的邻近系数组中使用的扫描顺序来确定当前块内的当前系数组中的变换系数的扫描顺序。例如,可通过使用与在与当前系数组相邻的左侧系数组、右侧系数组、上方系数组和下方系数组中的至少一个中使用的系数组内的扫描顺序相同的方法来扫描当前系数组内的变换系数。
341.此外,可在与系数组间的扫描顺序和系数组内的扫描顺序中的至少一个相关的信息中对与扫描顺序相关的信息进行熵编码/熵解码。换句话说,可分别对系数组间的扫描顺序的信息和系数组内的扫描顺序的信息进行熵编码/熵解码。可选地,可以以单条信息对系数组间的扫描顺序的信息和系数组内的扫描顺序的信息进行熵编码/熵解码。
342.可选地,可选择性地使用应用了与当前块的帧内预测模式相同的预测模式的邻近块的扫描顺序。如上所述,当存在应用了与当前块的帧内预测模式相同的预测模式的多个邻近块时,可通过配置列表并应用索引来确定当前块的扫描顺序。
343.上述变换系数的扫描单元和扫描顺序中的至少一个可基于应用于当前块的变换类型、变换位置、应用变换的区域、是否执行变换、是否执行首次变换、是否执行二次变换、块尺寸、块形状和帧内预测模式(或方向)中的至少一个被确定。这里,可对扫描单元和扫描
顺序中的至少一个进行熵编码/熵解码。
344.这里,变换位置可以是指示是否将特定变换用作垂直变换或是否将特定变换用作水平变换的信息。此外,是否执行变换可指是否执行首次变换和二次变换中的至少一个。此外,变换类型可指示根据基于dct的变换和基于dst的变换(诸如dct-ii、dct-v、dct-viii、dst-i、dst-vi、dst-vii等)中的至少一个三角函数的变换类型,并且可指示karhunen-lo
è
ve变换(klt)和方向变换中的至少一个。
345.作为首次变换,可执行恒等变换。这里,恒等变换可被应用于水平变换和垂直变换中的至少一个。
346.例如,当针对当前块将恒等变换应用于垂直变换和水平变换两者时,当前块可如同没有对其执行变换一样。
347.例如,当针对当前块将恒等变换用作垂直变换时,当前块可如同仅对其执行首次水平变换一样,并且当针对当前块将恒等变换用作水平变换时,当前块可如同仅对其执行首次垂直变换一样。
348.此外,可针对当前块将恒等变换用作首次变换,并且可执行二次变换。这里,当前块可如同仅对当前块执行二次变换一样。
349.可基于至少一个编码参数(诸如当前块的预测模式、帧内预测模式(方向)、块尺寸、块形状等)来确定是否将恒等变换用作水平变换和垂直变换。
350.此外,可不对执行了恒等变换的块执行去块滤波。
351.当通过将恒等变换和另一变换组合为首次变换来执行变换时,可根据使用恒等变换的变换位置来确定扫描顺序。这里,如下面的公式1的n
×
n矩阵in所示,恒等变换可以是主对角线(从左上方到右下方的对角线)的值为1且其他元素为0的矩阵。
352.[公式1]
[0353][0354]
在一个实施例中,当通过将恒等变换用作水平变换并且通过将基于dct的变换和基于dst的变换(诸如dct-ii、dct-v、dct-viii、dst-i、dst-vi、dst-vii等)中的至少一个用作垂直变换来执行变换时,可根据垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0355]
在另一实施例中,当通过将基于dct的变换和基于dst的变换(诸如dct-ii、dct-v、dct-viii、dst-i、dst-vi、dst-vii等)中的至少一个用作水平变换并且通过将恒等变换用作垂直变换来执行变换时,可根据水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0356]
在另一实施例中,当通过将恒等变换用作水平变换并且通过将基于dct的变换和基于dst的变换(诸如dct-ii、dct-v、dct-viii、dst-i、dst-vi、dst-vii等)中的至少一个用作垂直变换来执行变换时,可根据水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0357]
在另一实施例中,当通过将基于dct的变换和基于dst的变换(诸如dct-ii、dct-v、
dct-viii、dst-i、dst-vi、dst-vii等)中的至少一个用作水平变换并且通过将恒等变换用作垂直变换来执行变换时,可根据垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0358]
在另一实施例中,当针对水平变换和垂直变换中的至少一个执行恒等变换时,可根据右上对角线扫描和左下对角线扫描中的任意一个来扫描变换系数组或个体系数。
[0359]
此外,可基于是否执行恒等变换来确定扫描顺序。
[0360]
另外,当对变换块执行基于dct的变换或基于dst的变换作为首次变换时,可根据基于dct的变换与基于dst的变换之中的哪个变换被用作垂直变换或水平变换来确定扫描顺序。这里,基于dct的变换可表示dct-ii、dct-v、dct-viii等变换中的至少一个。此外,基于dst的变换可表示dst-i、dst-vi、dst-vii等变换中的至少一个。这里,基于dct的变换和基于dst的变换可分别表示dct变换和dst变换。
[0361]
在一个实施例中,当通过将dct变换用作水平变换并且通过将dst变换用作垂直变换来执行变换时,可根据垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0362]
在另一实施例中,当通过将dst变换用作水平变换并且通过将dct变换用作垂直变换来执行变换时,可根据水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0363]
在另一实施例中,当通过将dct变换用作水平变换并且通过将dst变换用作垂直变换来执行变换时,可根据水平扫描顺序、第一水平优先扫描顺序和第二水平优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0364]
在另一实施例中,当通过将dst变换用作水平变换并且通过将dct变换用作垂直变换来执行变换时,可根据垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0365]
在另一实施例中,当对变换块执行dct变换或dst变换作为首次变换时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0366]
在另一实施例中,当在水平变换中使用dct变换或dst变换作为首次变换并且在垂直变换中执行dct变换或dst变换时,可根据右上对角线扫描和左下对角线扫描中的任意一个来扫描变换系数组或个体系数。
[0367]
此外,可根据指示dct变换和dst变换中至少一个的标志或索引信息来确定扫描顺序。此外,可根据指示是否使用dct变换和dst变换中的至少一个的标志或索引信息来确定扫描顺序。可选地,可基于是否执行dct变换或dst变换作为首次变换来确定扫描顺序。
[0368]
另外,当对变换块执行dst变换作为首次变换时,可根据残差信号被重排的形式来确定扫描顺序。这里,残差信号被重排的形式可指残差信号未被翻转的形式、残差信号沿水平方向被翻转的形式、残差信号沿垂直方向被翻转的形式、残差信号沿水平方向和垂直方向被翻转的形式等。
[0369]
在一个实施例中,当残差信号未被翻转时,可根据右上对角线扫描和左下对角线扫描中的任意一个来扫描变换系数组或个体系数。
[0370]
在另一实施例中,在残差信号沿水平方向被翻转的形式的情况下,可根据右上对角线扫描来扫描变换系数组或个体系数。
[0371]
在另一实施例中,在残差信号沿垂直方向被翻转的形式的情况下,可根据左下对角线扫描来扫描变换系数组或个体系数。
[0372]
在另一实施例中,在残差信号沿水平方向和垂直方向被翻转的形式的情况下,可根据右上对角线扫描和左下对角线扫描中的任意一个来扫描变换系数组或个体系数。
[0373]
在另一实施例中,当对变换块执行dst变换作为首次变换时,可根据右上对角线扫描和左下对角线扫描中的任意一个来扫描变换系数组或个体系数。
[0374]
在另一实施例中,当不对变换块执行dst变换作为首次变换时,可根据右上对角线扫描和左下对角线扫描中的任意一个来扫描变换系数组或个体系数。
[0375]
此外,可基于是否执行dst变换作为首次变换来确定扫描顺序。
[0376]
另外,当通过将旋转变换用作二次变换来执行变换时,可根据旋转角度来确定扫描顺序。此外,可根据指示旋转角度的索引信息来确定扫描顺序。
[0377]
在一个实施例中,当旋转角度为0度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度为90度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度为180度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度为270度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。
[0378]
在另一实施例中,当旋转角度为0度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度为90度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度为180度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度为270度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。
[0379]
在一个实施例中,当通过将旋转变换用作二次变换来执行变换时,可根据右上对角线扫描和左下对角线扫描中的至少一个来执行扫描。
[0380]
在另一实施例中,当执行二次变换时,可根据右上对角线扫描和左下对角线扫描中的至少一个来执行扫描。
[0381]
在另一实施例中,当执行dct变换或dst变换作为首次变换并且执行二次变换时,可根据右上对角线扫描和左下对角线扫描中的至少一个来执行扫描。
[0382]
可选地,可基于是否执行二次变换、是否执行旋转变换作为二次变换以及是否在首次变换之后执行二次变换来确定扫描顺序。
[0383]
另外,当通过将givens变换或hyper-givens变换用作二次变换来执行变换时,可根据旋转角度θ(theta)来确定扫描顺序。此外,可根据指示旋转角度的索引信息来确定扫描顺序。这里,可基于下面的公式2中所示的代表性定义来定义givens变换或hyper-givens变换矩阵g(m,n,θ)。
[0384]
[公式2]
[0385][0386]
在一个实施例中,当旋转角度θ(theta)为0度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度θ(theta)为90度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度θ(theta)为180度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度θ(theta)为270度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。
[0387]
在另一实施例中,当旋转角度θ(theta)为0度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度θ(theta)为90度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。另外,当旋转角度θ(theta)为180度时,水平扫描、第一水平优先扫描和第二水平优先扫描中的任意一个可被用于系数组单元或个体系数单元。此外,当旋转角度θ(theta)为270度时,垂直扫描、第一垂直优先扫描和第二垂直优先扫描中的任意一个可被用于系数组单元或个体系数单元。
[0388]
在另一实施例中,当通过将givens变换或hyper-givens变换用作二次变换来执行变换时,可根据右上对角线扫描和左下对角线扫描中的任意一个来执行扫描。
[0389]
可选地,可基于是否执行givens变换或hyper-givens变换作为二次变换来确定扫描顺序。
[0390]
当前块可包括变换跳过区域(对其执行量化而不执行变换)、首次变换执行区域以及首次变换和二次变换执行区域。这里,可根据每个区域按照预定扫描顺序来执行扫描。当对通过对当前块执行首次变换而获得的结果的部分区域另外执行二次变换时,可通过根据是否对每个系数执行变换将变换系数划分为多个区域来扫描变换系数。这里,可对当前块内的全部变换系数或部分变换系数执行扫描。
[0391]
在一个实施例中,当当前块是跳过了变换的块或区域时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。此外,当当前块不是跳过了变换的块或区域时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。
[0392]
在另一实施例中,当当前块是跳过了变换的块或区域时,可根据水平扫描顺序、第一水平优先扫描顺序、第二水平优先扫描顺序、垂直扫描顺序、第一垂直优先扫描顺序和第二垂直优先扫描顺序中的任意一个来扫描变换系数组或个体系数。此外,当当前块不是跳过了变换的块或区域时,可根据右上对角线扫描顺序和左下对角线扫描顺序中的任意一个来扫描变换系数组或个体系数。另外,基于当前块是否是跳过了变换的块而确定的扫描顺序不限于以上示例,并且可被确定为在根据本公开的各种扫描顺序中选择的任意扫描顺
序。
[0393]
图15是示出在对8
×
8的当前块执行首次变换之后对部分区域(例如,左上方的4
×
4的区域(灰色区域))执行二次变换的情况的示图。这里,可通过将变换系数划分为区域a和区域b来对变换系数进行扫描,其中,对所述区域a仅执行首次变换,对所述区域b执行首次变换和二次变换。具有相同尺寸或不同尺寸的系数组单元可被用于区域a和区域b,或者可在区域之间使用相同或不同的扫描顺序。
[0394]
在一个实施例中,可将按照4
×
4的系数组单元的扫描相同地用于区域a和区域b,并且可将按照右上对角线扫描顺序或左下对角线扫描顺序的扫描用于这两个区域。
[0395]
在另一实施例中,可将按照4
×
4的系数组单元的扫描用于区域a,可将按照2
×
2的系数组单元的扫描用于区域b,可将垂直扫描顺序或水平扫描顺序用于区域a内的系数单元,并且可将右上对角线扫描顺序或左下对角线扫描顺序用于区域b内的系数单元。
[0396]
在另一实施例中,可将按照4
×
4的系数组单元的扫描用于区域a,可将按照2
×
2的系数组单元的扫描用于区域b,并且可将右上对角线扫描顺序或左下对角线扫描顺序用于所述两个区域。
[0397]
在另一实施例中,如图16中所示,可将按照4
×
4的系数组单元的扫描相同地用于区域a和区域b,可将右上对角线扫描顺序或左下对角线扫描顺序用于区域a内的系数组单元,并且可将垂直扫描顺序用于区域b。
[0398]
图17是示出在对16
×
16的当前块执行首次变换之后对部分区域(例如,左上方的8
×
8的区域(灰色区域))执行二次变换的情况的示图。这里,可通过将变换系数划分为区域a和区域b来对变换系数进行扫描,其中,对所述区域a仅执行首次变换,对所述区域b执行首次变换和二次变换。可将具有相同尺寸或不同尺寸的系数组单元用于区域a和区域b,并且可在区域之间使用相同或不同的扫描顺序。
[0399]
在一个实施例中,可将按照4
×
4的系数组单元的扫描相同地用于区域a和区域b,并且可将右上对角线扫描顺序或左下对角线扫描顺序用于这两个区域。
[0400]
在另一实施例中,可将按照8
×
8的系数组单元的扫描用于区域a,可将按照4
×
4的系数组单元的扫描用于区域b,可将垂直扫描顺序或水平扫描顺序用于区域a内的系数单元,并且可将右上对角线扫描顺序或左下对角线扫描顺序用于区域b内的系数单元。
[0401]
在另一实施例中,可将按照8
×
8的系数组单元的扫描相同地用于区域a和区域b,并且可将右上对角线扫描顺序或左下对角线扫描顺序用于所述两个区域。
[0402]
在另一实施例中,如图18中所示,可将按照4
×
4的系数组单元的扫描相同地用于区域a和区域b,可将垂直扫描顺序用于区域a内的系数组单元,并且可将右上对角线扫描顺序用于区域b。
[0403]
在另一实施例中,可将按照4
×
4和8
×
8的系数组单元的扫描分别用于区域a和区域b,可将垂直扫描顺序用于区域a内的系数单元,并且可将右上对角线扫描顺序用于区域b。
[0404]
另外,可基于当前块的帧内预测模式和当前块的尺寸来确定仅执行首次变换的区域的扫描顺序。
[0405]
此外,可基于当前块的形状来确定执行首次变换和二次变换的区域的扫描顺序,或者可应用预定扫描顺序。这里,所述预定扫描顺序可以是在编码器/解码器中共同设置的
扫描顺序。另外,可从编码器向解码器用信号发送针对执行首次变换和二次变换的区域所预定义的扫描顺序的信息。
[0406]
另外,可将上述至少一个扫描顺序作为针对特定块尺寸的扫描顺序预设或存储在编码器/解码器中。这里,当确定针对小于特定块尺寸的块的扫描顺序时,可通过对针对块尺寸的扫描顺序执行二次采样或上采样来推导扫描顺序。
[0407]
在一个实施例中,当在编码器/解码器中针对32
×
32的块尺寸存储了右上扫描顺序时,为了推导针对16
×
16的块尺寸的块的扫描顺序,可通过从32
×
32的块尺寸的右上扫描顺序提取(或二次采样)与16
×
16的尺寸的右上扫描顺序对应的位置的扫描顺序值来推导针对16
×
16的块尺寸的扫描顺序。
[0408]
在另一实施例中,当在编码器/解码器中针对8
×
8的块尺寸存储了左下扫描顺序时,为了推导针对16
×
16的块尺寸的块的扫描顺序,可通过从8
×
8尺寸的左下扫描顺序上采样(或插值)与16
×
16尺寸的右上扫描顺序对应的位置的扫描顺序值来推导针对16
×
16的块尺寸的扫描顺序。
[0409]
另外,当当前块具有非正方形形状时,可以以正方形形状重排当前块内的系数组,并且可通过扫描重排的系数组内的变换系数来执行熵编码/熵解码。这里,可将针对本发明的扫描顺序的实施例中的至少一个用作重排方法。
[0410]
例如,当当前块具有32
×
8尺寸的非正方形形状时,可通过使用系数组之间的扫描顺序中的至少一个扫描顺序来在具有16
×
16尺寸的正方形形状的块中重排系数组,并且可扫描重排的系数组内的变换系数。
[0411]
可将色度信号的扫描顺序确定为与亮度信号中使用的扫描顺序相同。这里,本发明的扫描顺序的实施例中的至少一个可被用于色度信号的扫描顺序。可选地,可与亮度信号的扫描顺序相关联地预定义色度信号的扫描顺序。
[0412]
在一个实施例中,编码器/解码器可通过参考预定义的查找表从亮度信号的扫描顺序推导色度信号的扫描顺序。可选地,可通过使用根据本发明的确定亮度信号的扫描顺序的各种方法中的至少一种来确定色度信号的扫描顺序。
[0413]
另外,当以比特平面形式表示变换系数的值时,可通过使用本发明的扫描顺序的实施例中的至少一个,通过扫描来对每个比特平面执行熵编码/熵解码。
[0414]
另外,可通过使用本发明的扫描顺序的实施例中的至少一个扫描顺序来执行二次变换。换句话说,二次变换可被替换为对在首次变换之后生成的变换系数执行扫描。通过将二次变换替换为扫描,可通过重排变换系数来提高编码效率。
[0415]
图19是示出根据本发明的实施例的图像解码方法的流程图的示图。
[0416]
参照图19,在步骤s1910中,解码器可从比特流获得当前块的变换系数。
[0417]
随后,在步骤s1920中,解码器可确定当前块的扫描单元和扫描顺序。
[0418]
这里,当前块的变换系数可以是反量化的输入、二次逆变换的输入和首次逆变换的输入中的任意一个。
[0419]
另外,扫描顺序可包括如下顺序中的至少一个:垂直扫描顺序、水平扫描顺序、优先于其他列扫描第一列的第一垂直优先扫描顺序、优先于其他列扫描第一列和第二列的第二垂直优先扫描顺序、优先于其他行扫描第一行的第一水平优先扫描顺序、优先于其他行扫描第一行和第二行的第二水平优先扫描顺序、右上对角线扫描顺序以及左下对角线扫描
顺序。
[0420]
另外,可将扫描单元确定为系数组单元、个体系数单元和组合单元中的任意一个。
[0421]
另外,在确定当前块的扫描单元和扫描顺序的步骤s1920中,可基于当前块的邻近块的扫描单元和扫描顺序中的至少一个来确定当前块的扫描单元和扫描顺序。
[0422]
另外,当将当前块的扫描单元确定为系数组单元时,可基于与当前系数组相邻的邻近系数组的扫描顺序来确定系数组单元内的变换系数扫描顺序。
[0423]
另外,可基于当前块的深度来确定当前块的扫描顺序。
[0424]
另外,可基于当前块的亮度分量的扫描单元和扫描顺序来确定当前块的色度分量的扫描单元和扫描顺序。
[0425]
另外,可基于确定的扫描顺序来推导当前块的量化矩阵的扫描顺序。
[0426]
此外,在步骤s1930中,解码器可通过基于确定的扫描单元和扫描顺序对当前块的变换系数进行扫描来排列当前块的变换系数。
[0427]
此外,解码器可对排列的变换系数执行反量化、二次逆变换和首次逆变换中的至少一个。
[0428]
图20是示出根据本发明的实施例的图像编码方法的流程图的示图。
[0429]
参照图20,在步骤s2010中,编码器可从当前块的残差块获得当前块的变换系数。
[0430]
随后,在步骤s2020中,编码器可确定当前块的扫描单元和扫描顺序。
[0431]
这里,当前块的变换系数可以是首次变换的输出、二次变换的输出和量化的输出中的任意一个。
[0432]
另外,扫描顺序可包括如下顺序中的至少一个:垂直扫描顺序、水平扫描顺序、优先于其他列扫描第一列的第一垂直优先扫描顺序、优先于其他列扫描第一列和第二列的第二垂直优先扫描顺序、优先于其他行扫描第一行的第一水平优先扫描顺序、优先于其他行扫描第一行和第二行的第二水平优先扫描顺序、右上对角线扫描顺序以及左下对角线扫描顺序。
[0433]
另外,可将扫描单元确定为系数组单元、个体系数单元和组合单元中的任意一个。
[0434]
另外,在确定当前块的扫描单元和扫描顺序的步骤s2020中,可基于当前块的邻近块的扫描单元和扫描顺序中的至少一个来确定当前块的扫描单元和扫描顺序。
[0435]
另外,当当前块的扫描单元被确定为系数组单元时,可基于与当前系数组相邻的邻近系数组的扫描顺序来确定系数组单元内的变换系数扫描顺序。
[0436]
另外,可基于当前块的深度来确定当前块的扫描顺序。
[0437]
另外,可基于当前块的亮度分量的扫描单元和扫描顺序来确定当前块的色度分量的扫描单元和扫描顺序。
[0438]
另外,可基于确定的扫描顺序来推导当前块的量化矩阵的扫描顺序。
[0439]
随后,在步骤s2030中,编码器可通过基于确定的扫描单元和扫描顺序对当前块的变换系数进行扫描来对当前块的变换系数进行熵编码。
[0440]
可以以相同的方法在编码器和解码器中执行以上实施例。
[0441]
应用以上实施例的顺序可在编码器和解码器之间不同,或者应用以上实施例的顺序可在编码器和解码器中相同。
[0442]
可对亮度信号和色度信号分别执行以上实施例,或者可对亮度信号和色度信号相
同地执行以上实施例。
[0443]
应用本发明的实施例的块形状可具有正方形形状或非正方形形状。
[0444]
本发明的实施例可根据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸被应用。这里,尺寸可被定义为可应用所述实施例的最小尺寸或最大尺寸或者最小和最大两种尺寸,或者可被定义为应用所述实施例的固定尺寸。此外,在实施例中,可将第一实施例应用于第一尺寸,并且可将第二实施例应用于第二尺寸。换句话说,可根据尺寸以组合方式应用所述实施例。此外,本发明的实施例可被应用于等于或大于最小尺寸并且等于或小于最大尺寸的尺寸。换句话说,当块尺寸被包括在预定范围内时,可应用所述实施例。
[0445]
例如,实施例可被应用于尺寸等于或大于8
×
8的当前块。例如,实施例可被应用于尺寸等于或大于4
×
4的当前块。例如,实施例可被应用于尺寸等于或小于16
×
16的当前块。例如,实施例可被应用于尺寸等于或大于16
×
16并且等于或小于64
×
64的当前块。
[0446]
可根据时间层应用本发明的实施例。为了识别可应用所述实施例的时间层,可用信号发送附加标识符,并且可将所述实施例应用于由相应标识符指定的时间层。这里,标识符可被定义为可应用所述实施例的最低层或最高层或者最低层和最高层两者,或者可被定义为指示应用所述实施例的特定层。此外,可定义应用所述实施例的固定时间层。
[0447]
例如,当当前图像的时间层是最低层时,可应用所述实施例。例如,当当前图像的时间层标识符等于或大于1时,可应用所述实施例。例如,当当前图像的时间层是最高层时,可应用所述实施例。
[0448]
可定义应用本发明的实施例的条带类型,并且可根据相应的条带类型来应用本发明的实施例。
[0449]
在编码器中被熵编码并且在解码器中被熵解码的标志和索引中的至少一个可使用下面的二值化方法中的至少一种:
[0450]
截断莱斯(truncated rice)二值化方法
[0451]
k阶exp_golomb二值化方法
[0452]
受限k阶exp_golomb二值化方法
[0453]
固定长度二值化方法
[0454]
一元二值化方法
[0455]
截断一元二值化方法
[0456]
可将特定实施例或多个实施例的至少一种组合应用于当前块的编码/解码处理,而不是限于将实施例中的仅一个实施例应用于当前块的编码/解码处理。
[0457]
在上述实施例中,基于具有一系列步骤或单元的流程图描述了方法,但是本发明不限于这些步骤的顺序,而是,一些步骤可与其他步骤同时执行或以不同的顺序执行。此外,本领域的普通技术人员应该理解,流程图中的步骤并不互相排斥,并且在不影响本发明的范围的情况下,可将其他步骤添加到流程图或者可将步骤中的一些步骤从流程图删除。
[0458]
实施例包括示例的各个方面。可不描述各个方面的所有可能的组合,但是本领域技术人员将能够认识到不同的组合。因此,本发明可包括权利要求范围内的所有替换、修改和改变。
[0459]
本发明的实施例可以以程序指令的形式实现,其中,该程序指令可由各种计算机
组件执行并且被记录在计算机可读记录介质中。计算机可读记录介质可单独地包括程序指令、数据文件、数据结构等,或者可包括程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可以是为本发明专门设计和构建的,或者对于计算机软件技术领域的普通技术人员是公知的。计算机可读记录介质的示例包括磁记录介质(诸如,硬盘、软盘和磁带)、光学数据存储介质(诸如,cd-rom或dvd-rom)、磁光介质(诸如软光盘)以及被专门构造为存储和实现程序指令的硬件装置(诸如,只读存储器(rom)、随机存取存储器(ram)、闪存等)。程序指令的示例不仅包括由编译器格式化的机械语言代码,而且包括可由计算机使用解释器来实现的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作或者反之亦可,以进行根据本发明的处理。
[0460]
尽管已经在特定项目(诸如,详细元件)以及有限的实施例和附图方面描述了本发明,但是它们仅被提供以帮助更全面地理解本发明,并且本发明不限于以上实施例。本发明所属领域的技术人员将理解,可对以上描述进行各种修改和改变。
[0461]
因此,本发明的精神将不应限于上述实施例,并且所附权利要求及其等同物的整个范围将落入本发明的范围和精神内。
[0462]
工业适用性
[0463]
本发明可被用于图像编码/解码设备。