变换信息编码/解码方法和装置以及比特流存储介质与流程

文档序号:30876821发布日期:2022-07-23 18:50阅读:99来源:国知局
变换信息编码/解码方法和装置以及比特流存储介质与流程
变换信息编码/解码方法和装置以及比特流存储介质
1.本技术要求于2019年10月11日提交的申请号为10-2019-0126242、于2019年12月24日提交的申请号为10-2019-0173708、于2020年1月13日提交的申请号为10-2020-0004424和于2020年10月12日提交的申请号为10-2020-0131168的韩国专利申请的权益,所述韩国专利申请通过引用其全部而被包含到本技术中。
技术领域
2.本公开总体上涉及一种用于图像编码/解码的方法、设备和存储介质。更具体地,本公开涉及一种用于变换信息编码/解码的方法、设备和存储介质。


背景技术:

3.随着信息与通信行业的持续发展,支持高清晰度(hd)分辨率的广播服务已经在全世界普及。通过这种普及,大量用户已经习惯了高分辨率和高清晰度图像和/或视频。
4.为了满足用户对高清晰度的需求,大量机构已加速了对下一代成像装置的开发。除了高清tv(hdtv)和全高清(fhd)tv之外,用户对uhd tv的兴趣也已增加,其中,uhd tv的分辨率是全高清(fhd)tv的分辨率的四倍以上。随着其兴趣的增加,现在需要针对具有更高分辨率和更高清晰度的图像的图像编码/解码技术。
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.所述变换可包括初级变换和次级变换。
36.相同的初级变换方法和相同的次级变换方法可被应用于所述多个子块。
37.是否将对所述多个子块执行次级逆变换可取决于针对所述目标块的编码参数。
38.所述编码参数可包括关于所述目标块的树的信息。
39.根据另一方面,提供了一种存储由所述编码方法生成的比特流的存储介质。
40.根据又一方面,提供了一种存储用于对图像进行解码的比特流的计算机可读存储介质,其中,所述比特流包括关于目标块的编码信息,对所述目标块的解码是使用所述编码信息来执行的,针对所述目标块的逆变换方法被确定,并且使用所述逆变换方法对所述目标块执行逆变换。
41.所述逆变换可包括次级逆变换和初级逆变换。
42.与次级逆变换对应的次级逆变换方法可以是基于针对所述目标块的编码参数而确定的。
43.所述编码参数可包括关于所述目标块的树的信息。
44.所述编码参数可以是树类型。
45.所述次级逆变换方法可以是多种方法中的一种方法。
46.次级逆变换方法索引可指示所述次级逆变换方法。
47.当所述编码参数具有特定值时,所述次级逆变换方法索引可被包括在比特流中。
48.当所述次级逆变换方法索引未被包括在比特流中时,所述次级逆变换方法索引可被推导为指示次级逆变换不被应用的第一值。
49.所述目标块可通过帧内子分区被分区为多个子块。
50.所述逆变换可包括次级逆变换和初级逆变换。
51.相同的次级逆变换方法和相同的初级逆变换方法可被应用于所述多个子块。
52.有益效果
53.提供了一种用于对变换信息进行编码/解码的设备和方法。
54.提供了一种用于对目标块进行编码/解码的设备和方法。
附图说明
55.图1是示出被应用了本公开的编码设备的实施例的配置的框图;
56.图2是示出被应用了本公开的解码设备的实施例的配置的框图;
57.图3是示意性地示出当图像被编码和解码时图像的分区结构的示图;
58.图4是示出编码单元能够包括的预测单元的形式的示图;
59.图5是示出能够被包括在编码单元中的变换单元的形式的示图;
60.图6示出根据示例的块的划分;
61.图7是用于解释帧内预测过程的实施例的示图;
62.图8是示出帧内预测过程中使用的参考样点的示图;
63.图9是用于解释帧间预测过程的实施例的示图;
64.图10示出根据实施例的空间候选;
65.图11示出根据实施例的将空间候选的运动信息添加到合并列表的顺序;
66.图12示出根据示例的变换和量化处理;
67.图13示出根据示例的对角线扫描;
68.图14示出根据示例的水平扫描;
69.图15示出根据示例的垂直扫描;
70.图16是根据实施例的编码设备的配置图;
71.图17是根据实施例的解码设备的配置图;
72.图18示出根据示例的用于将目标块分区为两个子块的isp;
73.图19示出根据示例的用于将目标块分区为四个子块的isp;
74.图20是根据实施例的编码方法的流程图;以及
75.图21是根据实施例的解码方法的流程图。
具体实施方式
76.本发明可被各种改变,并且可具有各种实施例,下面将参照附图详细地描述特定实施例。然而,应理解,这些实施例不意图将本发明限制为特定的公开形式,它们包括本发明的精神和范围内所包括的所有变化、等同形式或修改形式。
77.将参照示出特定实施例的附图对以下示例性实施例进行详细描述。描述这些实施例,使得本公开所属技术领域的普通技术人员能够容易地实施这些实施例。应注意,各种实施例彼此不同,但不需要彼此互斥。例如,在此描述的特定形状、结构和特性可在不脱离与
一个实施例相关的其它实施例的精神和范围的情况下被实现为所述其它实施例。此外,应理解,在不脱离实施例的精神和范围的情况下,能够改变在每个公开的实施例中的各个组件的位置或布置。因此,所附的详细描述并非旨在限制本公开的范围,并且示例性实施例的范围仅由所附的权利要求及其等同物(只要它们被适当地描述)限定。
78.在附图中,相似的参考标号被用于在各个方面指定相同或相似的功能。附图中的组件的形状、尺寸等可被夸大以使得描述清楚。
79.诸如“第一”和“第二”的术语可用于描述各种组件,但是组件不受所述术语限制。所述术语仅用于将一个组件与另一个组件区分开。例如,在不脱离本说明书的范围的情况下,第一组件可被称为第二组件。类似地,第二组件可被称为第一组件。术语“和/或”可包括多个相关描述项的组合或者多个相关描述项中的任意一个。
80.将理解的是,当组件被称为“连接”或“结合”到另一组件时,所述两个组件可彼此直接连接或结合,或者在所述两个组件之间可存在中间组件。另一方面,将理解的是,当组件被称为“直接连接或结合”时,在所述两个组件之间不存在中间组件。
81.此外,在实施例中描述的组件被独立地示出以指示不同的特征功能,但是这并不意味着每个组件由单独的一个硬件或软件形成。也就是说,为了方便描述,多个组件被单独地布置和包括。例如,多个组件中的至少两个组件可被集成为单个组件。相反,一个组件可被划分为多个组件。只要不脱离本说明书的本质,多个组件被集成的实施例或一些组件被分离的实施例被包括在本说明书的范围中。
82.此外,在示例性实施例中,描述组件“包括”特定组件的表述意指另外的组件可被包括在示例性实施例的实践或技术精神的范围内,但是不排除存在除了所述特定组件之外的组件。
83.在本说明书中使用的术语仅用于描述特定实施例,并不意图限制本发明。单数表述包括复数表述,除非在上下文中具体指出相反的描述。在本说明书中,应理解,诸如“包括”或“具有”的术语仅意图指示存在特征、数字、步骤、操作、组件、部件或它们的组合,而不意图排除将存在或添加一个或更多个其它特征、数字、步骤、操作、组件、部件或它们的组合的可能。也就是说,在本发明中,描述组件“包括”特定组件的表述意指另外的组件可被包括在本发明的实践或本发明的技术精神的范围内,但是不排除存在除了所述特定组件之外的组件。
84.本发明的一些组件不是用于执行必要功能的必要组件,而可以是仅用于改善性能的可选组件。可仅使用用于实现实施例的本质的必要组件来实现实施例。例如,仅包括必要组件(不包括仅用于改善性能的可选组件)的结构也包括在实施例的范围内。
85.下面将参照附图来详细描述实施例,使得实施例所属技术领域的普通技术人员能够容易地实现实施例。在实施例的以下描述中,被视为使本说明书的要点模糊的公知功能或配置的详细描述将被省略。此外,相同的参考标号在整个附图中用于指定相同的组件,并且将省略对相同组件的重复描述。
86.在下文中,“图像”可表示构成视频的单个画面,或者可表示视频本身。例如,“对图像的编码和/或解码”可表示“对视频的编码和/或解码”,并且也可表示“对构成视频的多个图像中的任意一个图像的编码和/或解码”。
87.在下文中,术语“视频”和“运动画面”可被用于具有相同的含义,并且可彼此互换
使用。
88.在下文中,目标图像可以是作为将被编码的目标的编码目标图像和/或作为将被解码的目标的解码目标图像。此外,目标图像可以是被输入到编码设备的输入图像或者被输入到解码设备的输入图像。并且,目标图像可以是当前图像,即,当前将被编码和/或解码的目标。例如,术语“目标图像”和“当前图像”可被用于具有相同的含义,并且可彼此互换使用。
89.在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用于具有相同的含义,并且可彼此互换使用。
90.在下文中,目标块可以是编码目标块(即,将被编码的目标)和/或解码目标块(即,将被解码的目标)。此外,目标块可以是当前块,即,当前将被编码和/或解码的目标。这里,术语“目标块”和“当前块”可被用于具有相同的含义,并且可彼此互换使用。当前块可表示在编码期间作为编码目标的编码目标块和/或在解码期间作为解码目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
91.在下文中,术语“块”和“单元”可被用于具有相同的含义,并且可彼此互换使用。可选地,“块”可表示特定单元。
92.在下文中,术语“区域”和“片段”可彼此互换使用。
93.在以下的实施例中,特定的信息、数据、标志、索引、元素和属性可具有它们各自的值。与所述信息、数据、标志、索引、元素和属性中的每一个对应的值“0”可指示假、逻辑假或第一预定义值。换句话说,值“0”、假、逻辑假和第一预定义值可彼此互换使用。与所述信息、数据、标志、索引、元素和属性中的每一个对应的值“1”可指示真、逻辑真或第二预定义值。换句话说,值“1”、真、逻辑真和第二预定义值可彼此互换使用。
94.当诸如i或j的变量被用于指示行、列或索引时,值i可以是整数0或大于0的整数,或者可以是整数1或大于1的整数。换句话说,在实施例中,行、列和索引中的每一个可从0开始计数,或者可从1开始计数。
95.在实施例中,术语“一个或更多个”或术语“至少一个”可表示术语“多个”。术语“一个或更多个”或术语“至少一个”可与“多个”互换使用。
96.下面,将描述将在实施例中使用的术语。
97.编码器:编码器表示用于执行编码的装置。也就是说,编码器可表示编码设备。
98.解码器:解码器表示用于执行解码的装置。也就是说,解码器可表示解码设备。
99.单元:单元可表示图像编码和解码的单元。术语“单元”和“块”可被用于具有相同的含义,并且可彼此互换使用。
100.–
单元可以是m
×
n的样点阵列。m和n中的每一个可以是正整数。单元通常可表示二维形式的样点阵列。
101.–
在图像的编码和解码过程中,“单元”可以是通过对一个图像进行分区而生成的区域。换句话说,“单元”可以是在一个图像中指定的区域。单个图像可被分区为多个单元。可选地,一个图像可被分区为子部分,并且单元可表示在对分区出的子部分执行编码或解码时每个分区出的子部分。
102.–
在图像的编码和解码过程中,可根据单元的类型对每个单元执行预定义的处理。
103.–
根据功能,单元类型可被分类为宏单元、编码单元(cu)、预测单元(pu)、残差单
元、变换单元(tu)等。可选地,根据功能,单元可表示块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。例如,作为编码和/或解码的目标的目标单元可以是cu、pu、残差单元和tu中的至少一个。
104.–
术语“单元”可表示包括亮度(luma)分量块、与亮度分量块对应的色度(chroma)分量块、以及用于各个块的语法元素的信息,使得单元被指定为与块区分开。
105.–
单元的尺寸和形状可被不同地实现。此外,单元可具有各种尺寸和形状中的任意一种。具体地,单元的形状不仅可包括正方形,还可包括可以以二维(2d)表示的几何形状(诸如,矩形、梯形、三角形和五边形)。
106.此外,单元信息可包括单元的类型、单元的尺寸、单元的深度、单元的编码顺序和单元的解码顺序等中的一个或更多个。例如,单元的类型可指示cu、pu、残差单元和tu中的一个。
107.–
一个单元可被分区为子单元,每个子单元具有比相关单元的尺寸更小的尺寸。
108.深度:深度可表示单元被分区的程度。此外,单元的深度可指示当由树结构表示单元时对应单元存在的等级。
109.–
单元分区信息可包括指示单元的深度的深度。深度可指示单元被分区的次数和/或单元被分区的程度。
110.–
在树结构中,可认为根节点的深度最小并且叶节点的深度最大。根节点可以是最高(顶部)节点。叶节点可以是最低节点。
111.–
单个单元可被分层分区为多个子单元,同时所述单个单元具有基于树结构的深度信息。换句话说,单元和通过对该单元进行分区而生成的子单元可分别对应于节点和该节点的子节点。每个被分区出的子单元可具有单元深度。由于深度指示单元被分区的次数和/或单元被分区的程度,因此子单元的分区信息可包括关于所述子单元的尺寸的信息。
112.在树结构中,顶部节点可对应于进行分区之前的初始节点。顶部节点可被称为“根节点”。此外,根节点可具有最小深度值。这里,顶部节点的深度可为等级“0”。
113.–
深度为等级“1”的节点可表示在初始单元被分区一次时所生成的单元。深度为等级“2”的节点可表示在初始单元被分区两次时所生成的单元。
114.–
深度为等级“n”的叶节点可表示在初始单元被分区n次时所生成的单元。
115.–
叶节点可以是不能被进一步分区的底部节点。叶节点的深度可以是最大等级。例如,针对最大等级的预定义值可以是3。
116.–
qt深度可表示针对四分区的深度。bt深度可表示针对二分区的深度。tt深度可表示针对三分区的深度。
117.–
样点:样点可以是构成块的基本单元。可用从根据比特深度(bd)的0到2
bd-1的值来表示样点。
118.–
样点可以是像素或像素值。
119.–
在下文中,术语“像素”和“样点”可被用于具有相同含义,并且可彼此互换使用。
120.编码树单元(ctu):ctu可由单个亮度分量编码树块(即,y编码树块)和与亮度分量编码树块相关的两个色度分量编码树块(即,cb编码树块和cr编码树块)构成。此外,ctu可表示包括上述块以及用于每个块的语法元素的信息。
121.–
可使用一个或更多个分区方法(诸如四叉树(qt)、二叉树(bt)和三叉树(tt))对
每个编码树单元(ctu)进行分区,以便配置子单元,诸如编码单元、预测单元和变换单元。四叉树可表示四元树。此外,可使用一个或更多个分区方法,利用多类型树(mtt)对每个编码树单元进行分区。
122.–“
ctu”可被用作指定在图像解码和编码处理中(如在对输入图像进行分区的情况下)作为处理单元的像素块的术语。
123.编码树块(ctb):“ctb”可被用作指定y编码树块、cb编码树块和cr编码树块中的任意一个的术语。
124.邻近块:邻近块(或邻近的块)可表示与目标块相邻的块。邻近块可表示重建的邻近块。
125.在下文中,术语“邻近块”和“相邻块”可被用于具有相同的含义,并且可彼此互换地使用。
126.邻近块可表示重建的邻近块。
127.空间邻近块:空间邻近块可以是在空间上与目标块相邻的块。邻近块可包括空间邻近块。
128.–
目标块和空间邻近块可被包括在目标画面中。
129.–
空间邻近块可表示边界与目标块接触的块或者位于距目标块预定距离内的块。
130.–
空间邻近块可表示与目标块的顶点相邻的块。这里,与目标块的顶点相邻的块可表示与水平相邻于目标块的邻近块垂直相邻的块或者与垂直相邻于目标块的邻近块水平相邻的块。
131.时间邻近块:时间邻近块可以是在时间上与目标块相邻的块。邻近块可包括时间邻近块。
132.–
时间邻近块可包括同位块(col块)。
133.–
col块可以是先前重建的同位画面(col画面)中的块。col块在col画面中的位置可与目标块在目标画面中的位置对应。可选地,col块在col画面中的位置可等于目标块在目标画面中的位置。col画面可以是参考画面列表中包括的画面。
134.–
时间邻近块可以是在时间上与目标块的空间邻近块相邻的块。
135.预测模式:预测模式可以是指示为了帧内预测而执行编码和/或解码的模式或者为了帧间预测而执行编码和/或解码的模式的信息。
136.预测单元:预测单元可以是用于预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿)的基本单元。
137.–
单个预测单元可被划分为具有更小尺寸的多个分区或者子预测单元。所述多个分区也可以是在执行预测或补偿时的基本单元。通过对预测单元进行划分所生成的分区也可以是预测单元。
138.预测单元分区:预测单元分区可以是预测单元被划分为的形状。
139.重建的邻近单元:重建的邻近单元可以是与目标单元邻近的已经被解码和重建的单元。
140.–
重建的邻近单元可以是在空间上与目标单元相邻或者在时间上与目标单元相邻的单元。
141.–
重建的空间邻近单元可以是目标画面中所包括的已经通过编码和/或解码被重
建的单元。
142.–
重建的时间邻近单元可以是参考图像中所包括的已经通过编码和/或解码被重建的单元。重建的时间邻近单元在参考图像中的位置可与目标单元在目标画面中的位置相同,或者可与目标单元在目标画面中的位置对应。此外,重建的时间邻近单元可以是与参考图像中的对应块邻近的块。这里,所述对应块在参考图像中的位置可与目标块在目标图像中的位置对应。这里,块的位置彼此对应的事实可表示块的位置彼此相同,可表示一个块被包括在另一个块中,或者可表示一个块占据另一个块中的特定位置。
143.子画面:画面可被划分为一个或更多个子画面。子画面可由一个或更多个并行块行和一个或更多个并行块列组成。
144.–
子画面可以是画面中具有正方形或矩形(即,非正方形的矩形)形状的区域。此外,子画面可包括一个或更多个ctu。
145.–
单个子画面可包括一个或更多个并行块、一个或更多个分块(brick)和/或一个或更多个条带。
146.并行块:并行块可以是画面中具有正方形或矩形(即,非正方形的矩形)形状的区域。
147.–
并行块可包括一个或更多个ctu。
148.–
并行块可被分区成一个或更多个分块。
149.分块:分块可表示并行块中的一个或更多个ctu行。
150.–
并行块可被分区成一个或更多个分块。每个分块可包括一个或更多个ctu行。
151.–
未被分区成两部分的并行块也可表示分块。
152.条带:条带可包括画面中的一个或更多个并行块。可选地,条带可包括并行块中的一个或更多个分块。
153.参数集:参数集可与比特流的内部结构中的头信息对应。
154.–
参数集可包括视频参数集(vps)、序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、解码参数集(dps)等中的至少一个。
155.通过每个参数集用信号发送的信息可被应用于参考对应参数集的画面。例如,vps中的信息可被应用于参考vps的画面。sps中的信息可被应用于参考sps的画面。pps中的信息可被应用于参考pps的画面。
156.每个参数集可参考更高的参数集。例如,pps可参考sps。sps可参考vps。
157.此外,参数集可包括并行块组、条带头信息和并行块头信息。并行块组可以是包括多个并行块的组。此外,“并行块组”的含义可与“条带”的含义相同。
158.率失真优化:编码设备可使用率失真优化以便通过利用以下项的组合来提供高编码效率:编码单元(cu)的尺寸、预测模式、预测单元(pu)的尺寸、运动信息和变换单元(tu)的尺寸。
159.–
率失真优化方案可计算各个组合的率失真代价以从这些组合中选择最优组合。可使用方程式“d+λ*r”来计算率失真代价。通常,可将使率失真代价最小的组合选为在率失真优化方案下的最优组合。
160.–
d可表示失真。d可以是变换单元中的原始变换系数与重建的变换系数之间的差值的平方的平均值(即,均方误差)。
161.–
r可表示所述率,其可使用相关上下文信息来表示比特率。
162.–
λ表示拉格朗日乘数。r不仅可包括编码参数信息(诸如预测模式、运动信息和编码块标志),还可包括由于对变换系数进行编码而生成的比特。
163.–
编码设备可执行诸如帧间预测和/或帧内预测、变换、量化、熵编码、逆量化(反量化)和/或逆变换的过程,以便计算精确的d和r。这些过程会大大增加编码设备的复杂度。
164.比特流:比特流可表示包括编码图像信息的比特的流。
165.解析:解析可以是通过对比特流执行熵解码而做出的对语法元素的值的判定。可选地,术语“解析”可表示这种熵解码本身。
166.符号:符号可以是编码目标单元和/或解码目标单元的语法元素、编码参数和变换系数中的至少一个。此外,符号可以是熵编码的目标或熵解码的结果。
167.参考画面:参考画面可以是被单元参考以便执行帧间预测或运动补偿的图像。可选地,参考画面可以是包括被目标单元参考以便执行帧间预测或运动补偿的参考单元的图像。
168.在下文中,术语“参考画面”和“参考图像”可被用于具有相同的含义,并且可彼此互换使用。
169.参考画面列表:参考画面列表可以是包括被用于帧间预测或运动补偿的一个或更多个参考图像的列表。
170.–
参考画面列表的类型可包括组合列表(lc)、列表0(l0)、列表1(l1)、列表2(l2)、列表3(l3)等。
171.–
对于帧间预测,可使用一个或更多个参考画面列表。
172.帧间预测指示符:帧间预测指示符可指示针对目标单元的帧间预测方向。帧间预测可以是单向预测和双向预测之一。可选地,帧间预测指示符可表示用于生成目标单元的预测单元的参考画面的数量。可选地,帧间预测指示符可表示用于目标单元的帧间预测或运动补偿的预测块的数量。
173.预测列表利用标志:预测列表利用标志可指示是否使用特定参考画面列表中的至少一个参考画面来生成预测单元。
174.–
可使用预测列表利用标志来推导帧间预测指示符。相反,可使用帧间预测指示符来推导预测列表利用标志。例如,预测列表利用标志指示“0”(作为第一值)的情况可指示对于目标单元,不使用参考画面列表中的参考画面来生成预测块。预测列表利用标志指示“1”(作为第二值)的情况可指示对于目标单元,使用参考画面列表生成预测单元。
175.参考画面索引:参考画面索引可以是指示参考画面列表中的特定参考画面的索引。
176.画面顺序计数(poc):画面的poc值可表示显示对应画面的顺序。
177.运动矢量(mv):运动矢量可以是用于帧间预测或运动补偿的2d矢量。运动矢量可表示目标图像与参考图像之间的偏移。
178.–
例如,可以以诸如(mv
x
,mvy)的形式来表示mv。mv
x
可指示水平分量,mvy可指示垂直分量。
179.搜索范围:搜索范围可以是在帧间预测期间执行针对mv的搜索的2d区域。例如,搜索范围的尺寸可以是m
×
n。m和n可分别是正整数。
180.运动矢量候选:运动矢量候选可以是在运动矢量被预测时作为预测候选的块或者作为预测候选的块的运动矢量。
181.–
运动矢量候选可被包括在运动矢量候选列表中。
182.运动矢量候选列表:运动矢量候选列表可以是使用一个或更多个运动矢量候选配置的列表。
183.运动矢量候选索引:运动矢量候选索引可以是用于指示运动矢量候选列表中的运动矢量候选的指示符。可选地,运动矢量候选索引可以是运动矢量预测因子的索引。
184.运动信息:运动信息可以是包括参考画面列表、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引中的至少一个以及运动矢量、参考画面索引和帧间预测指示符的信息。
185.合并候选列表:合并候选列表可以是使用一个或更多个合并候选配置的列表。
186.合并候选:合并候选可以是空间合并候选、时间合并候选、组合合并候选、组合双预测合并候选、基于历史的候选、基于两个候选的平均值的候选、零合并候选等。合并候选可包括帧间预测指示符,且可包括运动信息,诸如预测类型信息、用于每个列表的参考画面索引、运动矢量、预测列表利用标志和帧间预测指示符。
187.合并索引:合并索引可以是用于指示合并候选列表中的合并候选的指示符。
188.–
合并索引可指示在空间上与目标单元相邻的重建单元和在时间上与目标单元相邻的重建单元之中的用于推导合并候选的重建单元。
189.–
合并索引可指示合并候选的多条运动信息中的至少一条。
190.变换单元:变换单元可以是残差信号编码和/或残差信号解码(诸如变换、逆变换、量化、反量化、变换系数编码和变换系数解码)的基本单元。单个变换单元可被分区成具有较小尺寸的多个子变换单元。这里,变换可包括初级变换和次级变换中的一个或更多个,并且逆变换可包括初级逆变换和次级逆变换中的一个或更多个。
191.缩放:缩放可表示将因子乘以变换系数等级的过程。
192.–
作为对变换系数等级进行缩放的结果,可生成变换系数。缩放也可被称为“反量化”。
193.量化参数(qp):量化参数可以是用于在量化中生成针对变换系数的变换系数等级的值。可选地,量化参数也可以是用于在反量化中通过对变换系数等级进行缩放来生成变换系数的值。可选地,量化参数可以是被映射到量化步长的值。
194.变量增量(delta)量化参数:变量增量量化参数可表示目标单元的量化参数与预测出的量化参数之间的差值。
195.扫描:扫描可表示对单元、块或矩阵中的系数顺序进行排列的方法。例如,用于按照一维(1d)阵列的形式对2d阵列进行排列的方法可被称为“扫描”。可选地,用于按照2d阵列的形式对1d阵列进行排列的方法也可被称为“扫描”或“逆扫描”。
196.变换系数:变换系数可以是在编码设备执行变换时生成的系数值。可选地,变换系数可以是在解码设备执行熵解码和反量化中的至少一个时生成的系数值。
197.–
通过将量化应用于变换系数或残差信号而生成的量化的等级或量化的变换系数等级也可被包括在术语“变换系数”的含义中。
198.量化的等级:量化的等级可以是在编码设备对变换系数或残差信号执行量化时生
成的值。可选地,量化的等级可以是在解码设备执行反量化时作为反量化的目标的值。
199.–
作为变换和量化的结果的量化的变换系数等级也可被包括在量化的等级的含义中。
200.非零变换系数:非零变换系数可以是具有除了0之外的值的变换系数,或者可以是具有除了0之外的值的变换系数等级。可选地,非零变换系数可以是值的幅度不为0的变换系数,或者可以是值的幅度不为0的变换系数等级。
201.量化矩阵:量化矩阵可以是在量化过程或反量化过程中使用以便提高图像的主观图像质量或客观图像质量的矩阵。量化矩阵也可被称为“缩放列表”。
202.量化矩阵系数:量化矩阵系数可以是量化矩阵中的每个元素。量化矩阵系数也可被称为“矩阵系数”。
203.默认矩阵:默认矩阵可以是被编码设备和解码设备预先定义的量化矩阵。
204.非默认矩阵:非默认矩阵可以是未被编码设备和解码设备预先定义的量化矩阵。非默认矩阵可表示由用户从编码设备用信号发送到解码设备的量化矩阵。
205.最可能模式(mpm):mpm可表示高概率被用于针对目标块的帧内预测的帧内预测模式。
206.编码设备和解码设备可基于与目标块相关的编码参数以及与目标块相关的实体的属性来确定一个或更多个mpm。
207.–
编码设备和解码设备可基于参考块的帧内预测模式来确定一个或更多个mpm。参考块可包括多个参考块。多个参考块可包括与目标块的左侧相邻的空间邻近块和与目标块的上方相邻的空间邻近块。换句话说,根据哪些帧内预测模式已经被用于参考块,可确定一个或更多个不同的mpm。
208.–
可在编码设备和解码设备两者中以相同的方式确定一个或更多个mpm。也就是说,编码设备和解码设备可共享包括一个或更多个mpm的相同mpm列表。
209.mpm列表:mpm列表可以是包括一个或更多个mpm的列表。可预先定义mpm列表中的一个或更多个mpm的数量。
210.mpm指示符:mpm指示符可指示mpm列表中的一个或更多个mpm之中的将被用于针对目标块的帧内预测的mpm。例如,mpm指示符可以是用于mpm列表的索引。
211.–
由于在编码设备和解码设备两者中以相同的方式确定mpm列表,因此可不需要将mpm列表本身从编码设备发送到解码设备。
212.–
mpm指示符可从编码设备被用信号发送到解码设备。由于mpm指示符被用信号发送,解码设备可确定mpm列表中的mpm之中的将被用于针对目标块的帧内预测的mpm。
213.mpm使用指示符:mpm使用指示符可指示mpm使用模式是否将被用于针对目标块的预测。mpm使用模式可以是使用mpm列表来确定将被用于针对目标块的帧内预测的mpm的模式。
214.–
mpm使用指示符可从编码设备被用信号发送到解码设备。
215.信令:“信令”可表示信息从编码设备被发送到解码设备。可选地,“信令”可表示信息被包括在比特流或记录介质中。由编码设备用信号发送的信息可被解码设备使用。
216.–
编码设备可通过对将被用信号发送的信息执行编码来生成编码信息。编码信息可从编码设备发送到解码设备。解码设备可通过对所发送的编码信息进行解码来获得信
息。这里,编码可以是熵编码,并且解码可以是熵解码。
217.统计值:变量、编码参数、常数等可具有可计算的值。统计值可以是通过对指定目标的值执行计算(运算)而生成的值。例如,统计值可指示特定变量、特定编码参数、特定常数等的值的平均值、加权平均值、加权和、最小值、最大值、众数、中值及插值中的一个或更多个。
218.图1是示出被应用了本公开的编码设备的实施例的配置的框图。
219.编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括一个或更多个图像(画面)。编码设备100可顺序地对视频的一个或更多个图像进行编码。
220.参照图1,编码设备100包括帧间预测单元110、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化(逆量化)单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
221.编码设备100可使用帧内模式和/或帧间模式对目标图像执行编码。换句话说,目标块的预测模式可以是帧内模式和帧间模式中的一个。
222.在下文中,术语“帧内模式”、“帧内预测模式”、“画面内模式”和“画面内预测模式”可被用于具有相同的含义,并且可彼此互换使用。
223.在下文中,术语“帧间模式”、“帧间预测模式”、“画面间模式”和“画面间预测模式”可被用于具有相同的含义,并且可彼此互换使用。
224.在下文中,术语“图像”可仅指示部分图像,或者可指示块。此外,“图像”的处理可指示多个块的顺序处理。
225.此外,编码设备100可通过对目标图像进行编码来生成包括编码的信息的比特流,并且可输出和存储生成的比特流。生成的比特流可被存储在计算机可读存储介质中,并且可通过有线和/或无线传输介质被流传输。
226.当帧内模式被用作预测模式时,切换器115可切换到帧内模式。当帧间模式被用作预测模式时,切换器115可切换到帧间模式。
227.编码设备100可生成目标块的预测块。此外,在已生成了预测块之后,编码设备100可使用目标块与预测块之间的残差对用于目标块的残差块进行编码。
228.当预测模式是帧内模式时,帧内预测单元120可将与目标块相邻的先前被编码/解码的邻近块的像素用作参考样点。帧内预测单元120可使用所述参考样点对目标块执行空间预测,并且可经由空间预测针对目标块生成预测样点。预测样点可表示在预测块中的样点。
229.帧间预测单元110可包括运动预测单元和运动补偿单元。
230.当预测模式是帧间模式时,运动预测单元可在运动预测过程中在参考图像中搜索与目标块最匹配的区域,并且可基于找到的区域针对目标块和找到的区域推导运动矢量。这里,运动预测单元可将搜索范围用作用于搜索的目标区域。
231.参考图像可被存储在参考画面缓冲器190中。更具体地讲,当参考图像的编码和/或解码已被处理时,被编码和/或解码的参考图像可被存储在参考画面缓冲器190中。
232.由于存储了被解码的画面,因此参考画面缓冲器190可以是解码画面缓冲器(dpb)。
233.运动补偿单元可通过使用运动矢量执行运动补偿来生成针对目标块的预测块。这
里,运动矢量可以是用于帧间预测的二维(2d)矢量。此外,运动矢量可指示目标图像与参考图像之间的偏移。
234.当运动矢量具有除了整数之外的值时,运动预测单元和运动补偿单元可通过将插值滤波器应用于参考图像的部分区域来生成预测块。为了执行帧间预测或运动补偿,可确定跳过模式、合并模式、高级运动矢量预测(amvp)模式和当前画面参考模式中的哪一种模式对应于用于基于cu对cu中包括的pu的运动进行预测并对该运动进行补偿的方法,并且可根据该模式执行帧间预测或运动补偿。
235.减法器125可生成残差块,其中,残差块是目标块与预测块之间的差。残差块也可被称为“残差信号”。
236.残差信号可以是原始信号与预测信号之间的差。可选地,残差信号可以是通过对原始信号与预测信号之间的差进行变换或量化而生成的信号或者通过对该差进行变换和量化而生成的信号。残差块可以是针对块单元的残差信号。
237.变换单元130可通过对残差块进行变换来生成变换系数,并且可输出生成的变换系数。这里,变换系数可以是通过对残差块进行变换而生成的系数值。
238.变换单元130可在执行变换时使用多个预定义的变换方法中的一个。
239.所述多个预定义的变换方法可包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen-loeve变换(klt)等。
240.可根据针对目标块和/或邻近块的编码参数中的至少一个来确定用于对残差块进行变换的变换方法。例如,可基于针对pu的帧间预测模式、针对pu的帧内预测模式、tu的尺寸以及tu的形状中的至少一个来确定变换方法。可选地,指示变换方法的变换信息可从编码设备100被用信号发送到解码设备200。
241.当使用变换跳过模式时,变换单元130可省略对残差块进行变换的操作。
242.通过对变换系数实施量化,可生成量化的变换系数等级或者量化的等级。在下文中,在实施例中,量化的变换系数等级和量化的等级中的每一个也可被称为“变换系数”。
243.量化单元140可通过根据量化参数对变换系数进行量化来生成量化的变换系数等级(即,量化的等级或量化的系数)。量化单元140可输出生成的量化的变换系数等级。在这种情况下,量化单元140可使用量化矩阵对变换系数进行量化。
244.熵编码单元150可通过基于由量化单元140计算出的值和/或在编码过程中计算出的编码参数值执行基于概率分布的熵编码来生成比特流。熵编码单元150可输出生成的比特流。
245.熵编码单元150可对关于图像的像素的信息以及对图像进行解码所需的信息执行熵编码。例如,对图像进行解码所需的信息可包括语法元素等。
246.当应用熵编码时,可将更少的比特分配给更频繁出现的符号,并且可将更多的比特分配给很少出现的符号。由于通过该分配来表示符号,因此可减少用于将被编码的目标符号的比特串的大小。因此,通过熵编码可提高视频编码的压缩性能。
247.此外,为了进行熵编码,熵编码单元150可使用诸如指数哥伦布、上下文自适应可变长度编码(cavlc)或上下文自适应二进制算术编码(cabac)的编码方法。例如,熵编码单元150可使用可变长度编码/码(vlc)表来执行熵编码。例如,熵编码单元150可推导用于目标符号的二值化方法。此外,熵编码单元150可推导用于目标符号/二进制位的概率模型。熵
编码单元150可使用推导出的二值化方法、概率模型和上下文模型来执行算术编码。
248.熵编码单元150可通过变换系数扫描方法将2d块形式的系数变换为1d矢量形式,以便对量化的变换系数等级进行编码。
249.编码参数可以是编码和/或解码所需的信息。编码参数可包括由编码设备100编码且从编码设备100发送到解码设备的信息,并且还可包括可在编码或解码过程中推导的信息。例如,发送到解码设备的信息可包括语法元素。
250.编码参数不仅可包括由编码设备编码并由编码设备用信号发送到解码设备的诸如语法元素的信息(或标志或索引),还可包括在编码或解码处理中推导的信息。此外,编码参数可包括对图像进行编码或解码所需的信息。例如,编码参数可包括以下项中的至少一个值、以下项的组合或统计:单元/块的尺寸、单元/块的形状/形式、单元/块的深度、单元/块的分区信息、单元/块的分区结构、指示单元/块是否以四叉树结构被分区的信息、指示单元/块是否以二叉树结构被分区的信息、二叉树结构的分区方向(水平方向或垂直方向)、二叉树结构的分区形式(对称分区或非对称分区)、指示单元/块是否以三叉树结构被分区的信息、三叉树结构的分区方向(水平方向或垂直方向)、三叉树结构的分区形式(对称分区或非对称分区等)、指示单元/块是否以多类型树结构被分区的信息、多类型树结构的分区的组合及方向(水平方向或垂直方向等)、多类型树结构的分区的分区形式(对称分区或非对称分区等)、多类型树形式的分区树(二叉树或三叉树)、预测类型(帧内预测或帧间预测)、帧内预测模式/方向、帧内亮度预测模式/方向、帧内色度预测模式/方向、帧内分区信息、帧间分区信息、编码块分区标志、预测块分区标志、变换块分区标志、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧间预测模式、运动信息、运动矢量、运动矢量差、参考画面索引、帧间预测方向、帧间预测指示符、预测列表利用标志、参考画面列表、参考图像、poc、运动矢量预测因子、运动矢量预测索引、运动矢量预测候选、运动矢量候选列表、指示合并模式是否被使用的信息、合并索引、合并候选、合并候选列表、指示跳过模式是否被使用的信息、插值滤波器的类型、插值滤波器的抽头、插值滤波器的滤波器系数、运动矢量的大小、运动矢量表示的精确度、变换类型、变换大小、指示第一变换是否被使用的信息、指示附加(第二)变换是否被使用的信息、第一变换选择信息(或第一变换索引)、第二变换选择信息(或第二变换索引)、指示残差信号存在或不存在的信息、编码块样式、编码块标志、量化参数、残差量化参数、量化矩阵、关于环内滤波器的信息、指示环内滤波器是否被应用的信息、环内滤波器的系数、环内滤波器的抽头、环内滤波器的形状/形式、指示去块滤波器是否被应用的信息、去块滤波器的系数、去块滤波器的抽头、去块滤波器强度、去块滤波器的形状/形式、指示自适应样点偏移是否被应用的信息、自适应样点偏移的值、自适应样点偏移的类别、自适应样点偏移的类型、指示自适应环路滤波器是否被应用的信息、自适应环路滤波器的系数、自适应环路滤波器的抽头、自适应环路滤波器的形状/形式、二值化/反二值化方法、上下文模型、上下文模型决定方法、上下文模型更新方法、指示常规模式是否被执行的信息、指示旁路(bypass)模式是否被执行的信息、有效系数标志、最后有效系数标志、系数组的编码标志、最后有效系数的位置、指示系数的值是否大于1的信息、指示系数的值是否大于2的信息、指示系数的值是否大于3的信息、剩余系数值信息、正负符号信息、重建亮度样点、重将色度样点、上下文二进制位、旁路
二进制位、残差亮度样点、残差色度样点、变换系数、亮度变换系数、色度变换系数、量化的等级、亮度量化的等级、色度量化的等级、变换系数等级、变换系数等级扫描方法、解码设备侧的运动矢量搜索区域的尺寸、解码设备侧的运动矢量搜索区域的形状/形式、解码设备侧的运动矢量搜索的次数、ctu的尺寸、最小块尺寸、最大块尺寸、最大块深度、最小块深度、图像显示/输出顺序、条带标识信息、条带类型、条带分区信息、并行块组标识信息、并行块组类型、并行块组分区信息、并行块标识信息、并行块类型、并行块分区信息、画面类型、比特深度、输入样点比特深度、重建样点比特深度、残差样点比特深度、变换系数比特深度、量化的等级比特深度、关于亮度信号的信息、关于色度信号的信息、目标块的颜色空间和残差块的颜色空间。此外,上述编码参数相关信息也可被包括在编码参数中。用于计算和/或推导上述编码参数的信息也可被包括在编码参数中。使用上述编码参数计算或推导的信息也可被包括在编码参数中。
251.预测方案可表示帧内预测模式和帧间预测模式中的一个预测模式。
252.第一变换选择信息可指示应用于目标块的第一变换。
253.第二变换选择信息可指示应用于目标块的第二变换。
254.残差信号可表示原始信号与预测信号之间的差。可选地,残差信号可以是对原始信号与预测信号之间的差进行变换而生成的信号。可选地,残差信号可以是对原始信号与预测信号之间的差进行变换和量化而生成的信号。残差块可以是针对块的残差信号。
255.这里,用信号发送信息可表示编码设备100将通过对标志或索引执行熵编码而生成的熵编码的信息包括在比特流中,并且可表示解码设备200通过对从比特流提取的熵编码的信息执行熵解码来获取信息。这里,该信息可包括标志、索引等。
256.信号可表示将被用信号发送的信息。在下文中,关于图像和块的信息可被称为“信号”。此外,在下文中,术语“信息”和“信号”可被用来具有相同的含义,并且可彼此可互换地使用。例如,特定信号可以是表示特定块的信号。原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残差块的信号。
257.比特流可包括基于特定语法的信息。编码设备100可生成包括根据特定语法的信息的比特流。解码设备200可根据特定语法从比特流获取信息。
258.由于编码设备100经由帧间预测执行编码,因此编码的目标图像可被用作用于将被后续处理的另外的图像的参考图像。因此,编码设备100可对编码的目标图像进行重建或解码,并将重建或解码的图像作为参考图像存储在参考画面缓冲器190中。对于解码,可进行对编码的目标图像的反量化和逆变换。
259.量化的等级可由反量化单元160进行反量化,并且可由逆变换单元170进行逆变换。反量化单元160可通过针对量化的等级执行逆变换来生成反量化的系数。逆变换单元170可通过针对反量化的系数执行逆变换来生成经过反量化和逆变换的系数。
260.可由加法器175将经过反量化和逆变换的系数与预测块相加。将经过反量化和逆变换的系数和预测块相加,然后可生成重建块。这里,经过反量化和/或逆变换的系数可表示被执行了反量化和逆变换中的一个或更多个的系数,并且也可表示重建的残差块。这里,重建块可表示恢复的块或解码的块。
261.重建块可通过滤波器单元180进行滤波。滤波器单元180可将去块滤波器、样点自适应偏移(sao)滤波器、自适应环路滤波器(alf)和非局部滤波器(nlf)中的一个或更多个
滤波器应用于重建样点、重建块或重建画面。滤波器单元180也可被称为“环路滤波器”。
262.去块滤波器可消除在块之间的边界处出现的块失真。为了确定是否应用去块滤波器,可决定被包括在块中并且包括确定是否对目标块应用去块滤波器所基于的像素的列或行的数量。
263.当去块滤波器被应用于目标块时,所应用的滤波器可根据所需要的去块滤波的强度而不同。换句话说,在不同的滤波器中,可将考虑去块滤波的强度而决定的滤波器应用于目标块。当去块滤波器被应用于目标块时,可根据所需的去块滤波的强度将与强滤波器和弱滤波器中的任意一个对应的滤波器应用于目标块。
264.此外,当对目标块执行垂直滤波和水平滤波时,可并行地进行水平滤波和垂直滤波。
265.sao可将适当的偏移与像素值相加以便对编码误差进行补偿。sao可基于像素对被应用去块的图像执行校正,其中,该校正使用原始图像与被应用去块的图像之间的差的偏移。为了执行针对图像的偏移校正,可使用用于将图像中包括的像素划分为特定数量的区域、在划分出的区域之中确定将被应用偏移的区域并将偏移应用于所确定的区域的方法,并且也可使用用于考虑每个像素的边缘信息来应用偏移的方法。
266.alf可基于通过将重建图像与原始图像进行比较而获得的值来执行滤波。在图像中包括的像素已被划分为预定数量的组之后,可确定将被应用于每个组的滤波器,并且可针对各个组不同地执行滤波。可针对每个cu用信号发送与是否应用自适应环路滤波器相关的信息。可针对亮度信号用信号发送这种信息。将被应用于各个块的alf的形状和滤波器系数可针对各个块而不同。可选地,不管块的特征如何,具有固定形式的alf可被应用于所述块。
267.非局部滤波器可基于与目标块相似的重建块执行滤波。可从重建画面选择与目标块相似的区域,并且可使用所选择的相似区域的统计属性来执行目标块的滤波。可针对编码单元(cu)用信号发送关于是否应用非局部滤波器的信息。此外,将应用于块的非局部滤波器的形状和滤波器系数可根据该块而不同。
268.通过滤波器单元180滤波的重建块或重建图像可作为参考画面被存储在参考画面缓冲器190中。通过滤波器单元180滤波的重建块可以是参考画面的一部分。换句话说,参考画面可以是由通过滤波器单元180滤波的重建块构成的重建画面。存储的参考画面随后可被用于帧间预测或运动补偿。
269.图2是示出被应用了本公开的解码设备的实施例的配置的框图。
270.解码设备200可以是解码器、视频解码设备或图像解码设备。
271.参照图2,解码设备200可包括熵解码单元210、反量化(逆量化)单元220、逆变换单元230、帧内预测单元240、帧间预测单元250、切换器245、加法器255、滤波器单元260和参考画面缓冲器270。
272.解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读存储介质中的比特流,并且可接收通过有线/无线传输介质流传输的比特流。
273.解码设备200可在帧内模式和/或帧间模式下对比特流执行解码。此外,解码设备200可经由解码来生成重建图像或解码图像,并且可输出重建图像或解码图像。
274.例如,可通过切换器245来执行基于用于进行解码的预测模式而切换到帧内模式
或帧间模式的操作。当用于解码的预测模式是帧内模式时,切换器245可被操作以切换到帧内模式。当用于解码的预测模式是帧间模式时,切换器245可被操作以切换到帧间模式。
275.解码设备200可通过对输入的比特流进行解码来获取重建的残差块,并且可生成预测块。当重建的残差块和预测块被获取时,解码设备200可通过将重建的残差块与预测块相加来生成作为将被解码的目标的重建块。
276.熵解码单元210可通过基于比特流的概率分布对比特流执行熵解码来生成符号。生成的符号可包括以量化的变换系数等级的形式的符号(即,量化的等级或量化的系数)。这里,熵解码方法可与以上描述的熵编码方法相似。也就是说,熵解码方法可以是以上描述的熵编码方法的逆过程。
277.熵解码单元210可通过变换系数扫描方法将具有一维(1d)矢量形式的系数改变为2d块形状,以便对量化的变换系数等级进行解码。
278.例如,可通过使用右上对角线扫描对块系数进行扫描来将块的系数改变为2d块形状。可选地,可根据对应块的尺寸和/或帧内预测模式来确定右上对角线扫描、垂直扫描和水平扫描中的哪一个将被使用。
279.量化的系数可由反量化单元220进行反量化。反量化单元220可通过对量化的系数执行反量化来生成反量化的系数。此外,反量化的系数可由逆变换单元230进行逆变换。逆变换单元230可通过对反量化的系数执行逆变换来生成重建的残差块。作为对量化的系数执行反量化和逆变换的结果,可生成重建的残差块。这里,当生成重建的残差块时,反量化单元220可将量化矩阵应用于量化的系数。
280.当使用帧内模式时,帧内预测单元240可通过针对目标块执行空间预测来生成预测块,其中,所述空间预测使用与目标块相邻的先前被解码的邻近块的像素值。
281.帧间预测单元250可包括运动补偿单元。可选地,帧间预测单元250可被指定为“运动补偿单元”。
282.当使用帧间模式时,运动补偿单元可通过针对目标块执行运动补偿来生成预测块,其中,所述运动补偿使用运动矢量和被存储在参考画面缓冲器270中的参考图像。
283.运动补偿单元可在运动矢量具有除了整数之外的值时将插值滤波器应用于参考图像的部分区域,并且可使用被应用了插值滤波器的参考图像来生成预测块。为了执行运动补偿,运动补偿单元可基于cu确定跳过模式、合并模式、高级运动矢量预测(amvp)模式和当前画面参考模式中的哪一种模式对应于用于cu中包括的pu的运动补偿方法,并且可根据所确定的模式来执行运动补偿。
284.重建的残差块和预测块可由加法器255彼此相加。加法器255可通过将重建的残差块和预测块相加来生成重建块。
285.重建块可通过滤波器单元260进行滤波。滤波器单元260可将去块滤波器、sao滤波器、alf和nlf中的至少一个应用于重建块或重建图像。重建图像可以是包括重建块的画面。
286.滤波器单元可输出重建图像。
287.通过滤波器单元260滤波的重建图像和/或重建块可作为参考画面被存储在参考画面缓冲器270中。通过滤波器单元260滤波的重建块可以是参考画面的一部分。换句话说,参考画面可以是由通过滤波器单元260滤波的重建块构成的图像。存储的参考画面随后可被用于帧间预测或运动补偿。
288.图3是示意性地示出当图像被编码和解码时图像的分区结构的示图。
289.图3可示意性地示出单个单元被分区为多个子单元的示例。
290.为了有效地对图像进行分区,可在编码和解码中使用编码单元(cu)。术语“单元”可被用于共同地指定1)包括图像样点的块和2)语法元素。例如,“单元的分区”可表示“与单元对应的块的分区”。
291.cu可被用作用于图像编码/解码的基本单元。cu可被用作在图像编码/解码中从帧内模式和帧间模式选择的一个模式被应用到的单元。换句话说,在图像编码/解码中,可确定帧内模式和帧间模式中的哪一个模式将被应用于每个cu。
292.此外,cu可以是对变换系数进行预测、变换、量化、逆变换、反量化和编码/解码的基本单元。
293.参照图3,图像300可被顺序地分区为与最大编码单元(lcu)对应的单元,并且分区结构可针对每个lcu被确定。这里,lcu可被用于具有与编码树单元(ctu)相同的含义。
294.对单元进行分区可表示对与单元对应的块进行分区。块分区信息可包括关于单元的深度的深度信息。深度信息可指示单元被分区的次数和/或单元被分区的程度。单个单元可被分层分区为多个子单元,同时所述单个单元具有基于树结构的深度信息。
295.每个被分区出的子单元可具有深度信息。深度信息可以是指示cu的尺寸的信息。可针对每个cu存储深度信息。
296.每个cu可具有深度信息。当cu被分区时,从分区生成的cu的深度可从被分区的cu的深度增加1。
297.分区结构可表示lcu 310中的用于对图像进行有效编码的编码单元(cu)的分布。可根据单个cu是否将被分区为多个cu来确定这种分布。通过进行分区而生成的cu的数量可以是正整数2或更大,包括2、3、4、8、16等。
298.根据通过进行分区而生成的cu的数量,通过进行分区而生成的每个cu的水平尺寸和垂直尺寸可小于被分区之前的cu的水平尺寸和垂直尺寸。例如,通过分区生成的每个cu的水平尺寸和垂直尺寸可以是分区之前的cu的水平尺寸和垂直尺寸的一半。
299.每个分区出的cu可按照相同的方式被递归地分区为四个cu。与被分区之前的cu的水平尺寸和垂直尺寸中的至少一个相比,经由递归分区,每个被分区出的cu的水平尺寸和垂直尺寸中的至少一个可被减小。
300.cu的分区可被递归地执行直到预定义的深度或预定义的尺寸为止。
301.例如,cu的深度可具有范围从0到3的值。cu的尺寸范围依据cu的深度而可以是从64
×
64的尺寸到8
×
8的尺寸。
302.例如,lcu 310的深度可以是0,最小编码单元(scu)的深度可以是预定义的最大深度。这里,如上所述,lcu可以是具有最大编码单元尺寸的cu,并且scu可以是具有最小编码单元尺寸的cu。
303.可在lcu 310处开始进行分区,并且每当cu的水平尺寸和/或垂直尺寸通过进行分区而减小时,cu的深度可增加1。
304.例如,对于各个深度,未被分区的cu可具有2n
×
2n的尺寸。此外,在cu被分区的情况下,尺寸为2n
×
2n的cu可被分区为尺寸均为n
×
n的四个cu。每当深度增加1时,n的值可减半。
305.参照图3,深度为0的lcu可具有64
×
64个像素或64
×
64的块。0可以是最小深度。深度为3的scu可具有8
×
8个像素或8
×
8的块。3可以是最大深度。这里,作为lcu的具有64
×
64的块的cu可用深度0来表示。具有32
×
32的块的cu可用深度1来表示。具有16
×
16的块的cu可用深度2来表示。作为scu的具有8
×
8的块的cu可用深度3来表示。
306.关于对应cu是否被分区的信息可用cu的分区信息来表示。分区信息可以是1比特信息。除了scu之外的所有cu可包括分区信息。例如,未被分区的cu的分区信息的值可以是第一值。被分区的cu的分区信息的值可以是第二值。当分区信息指示cu是否被分区时,第一值可以是“0”并且第二值可以是“1”。
307.例如,当单个cu被分区为四个cu时,通过进行分区而生成的四个cu中的每个cu的水平尺寸和垂直尺寸可以是在被分区之前的cu的水平尺寸和垂直尺寸的一半。当尺寸为32
×
32的cu被分区为四个cu时,被分区出的四个cu中的每个cu的尺寸可以是16
×
16。当单个cu被分区为四个cu时,可认为cu已经以四叉树结构被分区。换句话说,可认为四叉树分区已被应用于cu。
308.例如,当单个cu被分区成两个cu时,通过进行分区而生成的两个cu中的每个cu的水平尺寸或垂直尺寸可以是在被分区之前的cu的水平尺寸或垂直尺寸的一半。当尺寸为32
×
32的cu被垂直分区为两个cu时,被分区出的两个cu中的每个cu的尺寸可以是16
×
32。当尺寸为32
×
32的cu被水平分区为两个cu时,被分区出的两个cu中的每个cu的尺寸可以是32
×
16。当单个cu被分区为两个cu时,可认为cu已经以二叉树结构被分区。换句话说,可认为二叉树分区已被应用于cu。
309.例如,当单个cu被分区(或划分)为三个cu时,被分区之前的原始cu被分区,使得其水平尺寸或垂直尺寸以1:2:1的比率被划分,因此使得能够生成三个子cu。例如,当尺寸为16
×
32的cu被水平分区为三个子cu时,由分区生成的三个子cu可在从顶部到底部的方向上分别具有16
×
8、16
×
16及16
×
8的尺寸。例如,当尺寸为32
×
32的cu被垂直分区为三个子cu时,由分区生成的三个子cu可在从左到右的方向上分别具有8
×
32、16
×
32及8
×
32的尺寸。当单个cu被分区为三个cu时,可认为cu以三叉树形式被分区。换句话说,可认为三叉树分区已被应用于cu。
310.四叉树分区和二叉树分区两者被应用于图3的lcu 310。
311.在编码设备100中,可通过递归四叉树结构将尺寸为64
×
64的编码树单元(ctu)分区为多个更小的cu。单个cu可被分区为具有相同尺寸的四个cu。每个cu可被递归地分区并且可具有四叉树结构。
312.通过cu的递归分区,可选择引起最小率失真代价的最优分区方法。
313.图3中的编码树单元(ctu)320是四叉树分区、二叉树分区和三叉树分区全都被应用的ctu的示例。
314.如上所述,为了对ctu进行分区,可将四叉树分区、二叉树分区及三叉树分区中的至少一个应用于ctu。可基于特定优先级来应用分区。
315.例如,四叉树分区可被优先应用于ctu。无法按照四叉树形式被进一步分区的cu可与四叉树的叶节点对应。与四叉树的叶节点对应的cu可以是二叉树和/或三叉树的根节点。也就是说,与四叉树的叶节点对应的cu可以以二叉树形式或三叉树形式被分区,或可不被进一步分区。在这种情况下,防止通过将二叉树分区或三叉树分区应用于与四叉树的叶节
点对应的cu而生成的每个cu再次被四叉树分区,从而有效地执行块的分区和/或用信号发送块分区信息的操作。
316.可使用四分区信息来用信号发送与四叉树的每个节点对应的cu的分区。具有第一值(例如,“1”)的四分区信息可指示对应cu以四叉树形式被分区。具有第二值(例如,“0”)的四分区信息可指示对应cu未以四叉树形式被分区。四分区信息可以是具有特定长度(例如,1比特)的标志。
317.在二叉树分区与三叉树分区之间可能不存在优先级。也就是说,与四叉树的叶节点对应的cu可以以二叉树形式或三叉树形式被分区。此外,通过二叉树分区或三叉树分区生成的cu可以以二叉树形式或三叉树形式被进一步分区,或可不被进一步分区。
318.当二叉树分区与三叉树分区之间不存在优先级时执行的分区可被称为“多类型树分区”。也就是说,与四叉树的叶节点对应的cu可以是多类型树的根节点。可使用指示cu是否按多类型树被分区的信息、分区方向信息和分区树信息中的至少一个来用信号发送与多类型树的每个节点对应的cu的分区。对于与多类型树的每个节点对应的cu的分区,可顺序地用信号发送指示按多类型树的分区是否被执行的信息、分区方向信息和分区树信息。
319.例如,指示cu是否按多类型树被分区且具有第一值(例如,“1”)的信息可指示对应cu以多类型树形式被分区。指示cu是否按多类型树被分区且具有第二值(例如,“0”)的信息可指示对应cu未以多类型树形式被分区。
320.当与多类型树的每个节点对应的cu以多类型树形式被分区时,对应cu可进一步包括分区方向信息。
321.分区方向信息可指示多类型树分区的分区方向。具有第一值(例如,“1”)的分区方向信息可指示对应的cu在垂直方向上被分区。具有第二值(例如,“0”)的分区方向信息可指示对应cu在水平方向上被分区。
322.当与多类型树的每个节点对应的cu以多类型树形式被分区时,对应cu可进一步包括分区树信息。分区树信息可指示被用于多类型树分区的树。
323.例如,具有第一值(例如,“1”)的分区树信息可指示对应cu以二叉树形式被分区。具有第二值(例如,“0”)的分区树信息可指示对应cu以三叉树形式被分区。
324.这里,上述指示按多类型树的分区是否被执行的信息、分区树信息及分区方向信息中的每个可以是具有特定长度(例如,1比特)的标志。
325.可对上述四分区信息、指示按多类型树的分区是否被执行的信息、分区方向信息和分区树信息中的至少一个进行熵编码和/或熵解码。为了执行这种信息的熵编码/熵解码,可使用与目标cu相邻的邻近cu的信息。
326.例如,可认为左侧cu和/或上方cu的分区形式(即,分区/非分区、分区树和/或分区方向)与目标cu的分区形式会彼此相似的概率很高。因此,基于邻近cu的信息,可推导用于目标cu的信息的熵编码和/或熵解码的上下文信息。这里,邻近cu的信息可包括以下各项中的至少一项:1)邻近cu的四分区信息,2)指示邻近cu是否按多类型树被分区的信息,3)邻近cu的分区方向信息,及4)邻近cu的分区树信息。
327.在二叉树分区和三叉树分区的另一实施例中,二叉树分区可被优先执行。也就是说,二叉树分区可被首先应用,然后与二叉树的叶节点对应的cu可被设置为三叉树的根节点。在这种情况下,可不对与三叉树的节点对应的cu执行四叉树分区或二叉树分区。
328.没有通过四叉树分区、二叉树分区和/或三叉树分区进一步分区的cu可以是编码、预测和/或变换的单元。也就是说,cu可不被进一步分区以用于预测和/或变换。因此,用于将cu分区成预测单元(pu)/或变换单元(tu)的分区结构、其分区信息等可不存在于比特流中。
329.然而,当作为分区的单元的cu的尺寸大于最大变换块的尺寸时,cu可被递归地分区,直到cu的尺寸变得小于或等于最大变换块的尺寸为止。例如,当cu的尺寸为64
×
64且最大变换块的尺寸为32
×
32时,cu可被分区成四个32
×
32的块以便执行变换。例如,当cu的尺寸为32
×
64且最大变换块的尺寸为32
×
32时,cu可被分区成两个32
×
32的块。
330.在这种情况下,可不单独地用信号发送指示cu是否被分区以用于变换的信息。在不用信号发送的情况下,可经由cu的水平尺寸(和/或垂直尺寸)与最大变换块的水平尺寸(和/或垂直尺寸)之间的比较来确定cu是否被分区。例如,当cu的水平尺寸大于最大变换块的水平尺寸时,cu可被垂直二等分。此外,当cu的垂直尺寸大于最大变换块的垂直尺寸时,cu可被水平二等分。
331.关于cu的最大尺寸和/或最小尺寸的信息以及关于变换块的最大尺寸和/或最小尺寸的信息可在高于cu的等级的等级处被用信号发送或确定。例如,更高等级可以是序列级、画面级、并行块级、并行块组级或条带级。例如,cu的最小尺寸可被设置为4
×
4。例如,变换块的最大尺寸可被设置为64
×
64。例如,变换块的最大尺寸可被设置为4
×
4。
332.关于与四叉树的叶节点对应的cu的最小尺寸(即,四叉树的最小尺寸)的信息和/或关于从多类型树的根节点到叶节点的路径的最大深度(即,多类型树的最大深度)的信息可在高于cu的等级的等级处被用信号发送或确定。例如,更高等级可以是序列级、画面级、条带级、并行块组级或并行块级。可在条带内级和条带间级中的每个处单独地用信号发送或确定关于四叉树的最小尺寸的信息和/或关于多类型树的最大深度的信息。
333.关于ctu的尺寸与变换块的最大尺寸之间的差的信息可在高于cu的等级的等级处被用信号发送或确定。例如,更高等级可以是序列级、画面级、条带级、并行块组级或并行块级。可基于ctu的尺寸及所述差的信息来确定关于与二叉树的每个节点对应的cu的最大尺寸(即,二叉树的最大尺寸)的信息。与三叉树的每个节点对应的cu的最大尺寸(即,三叉树的最大尺寸)可根据条带的类型而具有不同的值。例如,条带内级的三叉树的最大尺寸可以是32
×
32。例如,条带间级的三叉树的最大尺寸可以是128
×
128。例如,与二叉树的每个节点对应的cu的最小尺寸(即,二叉树的最小尺寸)和/或与三叉树的每个节点对应的cu的最小尺寸(即,三叉树的最小尺寸)可被设置为cu的最小尺寸。
334.在另一示例中,可在条带级用信号发送或确定二叉树的最大尺寸和/或三叉树的最大尺寸。此外,可在条带级用信号发送或确定二叉树的最小尺寸和/或三叉树的最小尺寸。
335.基于以上所述的各种块尺寸和深度,四分区信息、指示按多类型树的分区是否被执行的信息、分区树信息和/或分区方向信息可存在或可不存在于比特流中。
336.例如,当cu的尺寸不大于四叉树的最小尺寸时,cu可不包括四分区信息,且cu的四分区信息可被推断为第二值。
337.例如,当与多类型树的每个节点对应的cu的尺寸(水平尺寸及垂直尺寸)大于二叉树的最大尺寸(水平尺寸及垂直尺寸)和/或三叉树的最大尺寸(水平尺寸及垂直尺寸)时,
cu可不以二叉树形式和/或三叉树形式被分区。通过这种确定方式,指示按多类型树的分区是否被执行的信息可不被用信号发送,但是可被推断为第二值。
338.可选地,当与多类型树的每个节点对应的cu的尺寸(水平尺寸及垂直尺寸)等于二叉树的最小尺寸(水平尺寸及垂直尺寸)时,或当cu的尺寸(水平尺寸及垂直尺寸)等于三叉树的最小尺寸(水平尺寸及垂直尺寸)的两倍时,cu可不以二叉树形式和/或三叉树形式被分区。通过这种确定方式,指示按多类型树的分区是否被执行的信息可被不用信号发送,但可被推断为第二值。其原因在于,当cu以二叉树形式和/或三叉树形式被分区时,生成小于二叉树的最小尺寸和/或三叉树的最小尺寸的cu。
339.可选地,可基于虚拟流水线数据单元的尺寸(即,流水线缓冲器的尺寸)来限制二叉树分区或三叉树分区。例如,当cu通过二叉树分区或三叉树分区被分区成不适合流水线缓冲器的尺寸的子cu时,二叉树分区或三叉树分区可受到限制。流水线缓冲器的尺寸可等于变换块的最大尺寸(例如,64
×
64)。
340.例如,当流水线缓冲器的尺寸是64
×
64时,可限制以下分区。
[0341]-用于n
×
m的cu的三叉树分区(其中n和/或m为128)
[0342]-用于128
×
n的cu的水平二叉树分区(其中n《=64)
[0343]-用于n
×
128的cu的垂直二叉树分区(其中n《=64)
[0344]
可选地,当与多类型树的每个节点对应的cu的深度等于多类型树的最大深度时,cu可不以二叉树形式和/或三叉树形式被分区。通过这种确定方式,指示按多类型树的分区是否被执行的信息可被不用信号发送,但是可被推断为第二值。
[0345]
可选地,仅当垂直二叉树分区、水平二叉树分区、垂直三叉树分区和水平三叉树分区中的至少一个对于与多类型树的每个节点对应的cu是可能的时,可用信号发送指示按多类型树的分区是否被执行的信息。否则,cu可不以二叉树形式和/或三叉树形式被分区。通过这种确定方式,指示按多类型树的分区是否被执行的信息可被不用信号发送,而是可被推断为第二值。
[0346]
可选地,对于与多类型树的每个节点对应的cu,可仅在垂直二叉树分区和水平二叉树分区两者都可行时或仅在垂直三叉树分区和水平三叉树分区两者都可行时用信号发送分区方向信息。否则,分区方向信息可被不用信号发送,但是可被推断为指示cu可被分区的方向的值。
[0347]
可选地,对于与多类型树的每个节点对应的cu,可仅在垂直二叉树分区和垂直三叉树分区两者都可行时或仅在水平二叉树分区和水平三叉树分区两者都可行时用信号发送分区树信息。否则,分区树信息可被不用信号发送,但是可被推断为指示可应用于cu的分区的树的值。
[0348]
图4是示出编码单元能够包括的预测单元的形式的示图。
[0349]
在从lcu分区出的cu中,可将不再被分区的cu划分为一个或更多个预测单元(pu)。这种划分也被称为“分区”。
[0350]
pu可以是用于预测的基本单元。pu可在跳过模式、帧间模式和帧内模式中的任意一个模式下被编码和解码。可根据各个模式将pu分区为各种形状。例如,以上参照图1描述的目标块和以上参照图2描述的目标块可以均是pu。
[0351]
cu可不被划分为pu。当cu不被划分为pu时,cu的尺寸和pu的尺寸可彼此相等。
[0352]
在跳过模式下,在cu中可不存在分区。在跳过模式下,可支持2n
×
2n模式410,而不进行分区,其中,在2n
×
2n模式410中,pu的尺寸和cu的尺寸彼此相同。
[0353]
在帧间模式下,在cu中可存在8种类型的分区形状。例如,在帧间模式下,可支持2n
×
2n模式410、2n
×
n模式415、n
×
2n模式420、n
×
n模式425、2n
×
nu模式430、2n
×
nd模式435、nl
×
2n模式440和nr
×
2n模式445。
[0354]
在帧内模式下,可支持2n
×
2n模式410和n
×
n模式425。
[0355]
在2n
×
2n模式410下,可对尺寸为2n
×
2n的pu进行编码。尺寸为2n
×
2n的pu可表示尺寸与cu的尺寸相同的pu。例如,尺寸为2n
×
2n的pu可具有尺寸64
×
64、32
×
32、16
×
16或8
×
8。
[0356]
在n
×
n模式425下,可对尺寸为n
×
n的pu进行编码。
[0357]
例如,在帧内预测中,当pu的尺寸是8
×
8时,可对四个分区出的pu进行编码。每个分区出的pu的尺寸可以是4
×
4。
[0358]
当在帧内模式下对pu进行编码时,可使用多个帧内预测模式中的任意一个对pu进行编码。例如,高效视频编码(hevc)技术可提供35个帧内预测模式,pu可在所述35个帧内预测模式中的任意一个下被编码。
[0359]
可基于率失真代价来确定2n
×
2n模式410和n
×
n模式425中的哪一个模式将被用于对pu进行编码。
[0360]
编码设备100可对尺寸为2n
×
2n的pu执行编码操作。这里,该编码操作可以是在能够被编码设备100使用的多个帧内预测模式中的每个模式下对pu进行编码的操作。通过编码操作,可推导出用于尺寸为2n
×
2n的pu的最佳帧内预测模式。该最佳帧内预测模式可以是能够被编码设备100使用的多个帧内预测模式之中的在对尺寸为2n
×
2n的pu进行编码时出现最小率失真代价的帧内预测模式。
[0361]
此外,编码设备100可顺序地对通过进行n
×
n分区而获得的各个pu执行编码操作。这里,该编码操作可以是在能够被编码设备100使用的多个帧内预测模式中的每个模式下对pu进行编码的操作。通过编码操作,可推导出用于尺寸为n
×
n的pu的最佳帧内预测模式。该最佳帧内预测模式可以是能够被编码设备100使用的多个帧内预测模式之中的在对尺寸为n
×
n的pu进行编码时出现最小率失真代价的帧内预测模式。
[0362]
编码设备100可基于尺寸为2n
×
2n的pu的率失真代价与尺寸为n
×
n的pu的率失真代价之间的比较来确定尺寸为2n
×
2n的pu和尺寸为n
×
n的pu中的哪一个将被编码。
[0363]
单个cu可被分区为一个或更多个pu,并且pu可被分区为多个pu。
[0364]
例如,当单个pu被分区为四个pu时,通过分区生成的四个pu中的每一个的水平尺寸和垂直尺寸可以是被分区之前的pu的水平尺寸和垂直尺寸的一半。当尺寸为32
×
32的pu被分区为四个pu时,四个被分区出的pu中的每一个的尺寸可以是16
×
16。当单个pu被分区为四个pu时,可认为pu已经以四叉树结构被分区。
[0365]
例如,当单个pu被分区为两个pu时,通过分区生成的两个pu中的每一个的水平尺寸或垂直尺寸可以是被分区之前的pu的水平尺寸或垂直尺寸的一半。当尺寸为32
×
32的pu被垂直分区为两个pu时,两个被分区出的pu中的每一个的尺寸可以是16
×
32。当尺寸为32
×
32的pu被水平分区为两个pu时,两个被分区出的pu中的每一个的尺寸可以是32
×
16。当单个pu被分区为两个pu时,可认为pu已经以二叉树结构被分区。
[0366]
图5是示出能够被包括在编码单元中的变换单元的形式的示图。
[0367]
变换单元(tu)可以是cu中被用于诸如变换、量化、逆变换、反量化、熵编码和熵解码的过程的基本单元。
[0368]
tu可具有正方形形状或矩形形状。可基于cu的尺寸和/或形状来确定tu的形状。
[0369]
在从lcu分区出的cu中,可将不再被分区为cu的cu分区为一个或更多个tu。这里,tu的分区结构可以是四叉树结构。例如,如图5中所示,可根据四叉树结构将单个cu 510分区一次或更多次。通过这种分区,单个cu 510可由具有各种尺寸的tu组成。
[0370]
可认为当单个cu被划分两次或更多次时cu被递归地划分。通过划分,单个cu可由具有各种尺寸的变换单元(tu)组成。
[0371]
可选地,可基于划分cu的垂直线和/或水平线的数量将单个cu划分为一个或更多个tu。
[0372]
cu可被划分为对称tu或非对称tu。为了划分为非对称tu,可将关于每个tu的尺寸和/或形状的信息从编码设备100用信号发送到解码设备200。可选地,可从关于cu的尺寸和/或形状的信息推导每个tu的尺寸和/或形状。
[0373]
cu可不被划分为tu。当cu不被划分为tu时,cu的尺寸和tu的尺寸可彼此相等。
[0374]
单个cu可被分区为一个或更多个tu,并且tu可被分区为多个tu。
[0375]
例如,当单个tu被分区为四个tu时,通过分区生成的四个tu中的每一个的水平尺寸和垂直尺寸可以是被分区之前的tu的水平尺寸和垂直尺寸的一半。当尺寸为32
×
32的tu被分区为四个tu时,四个被分区出的tu中的每一个的尺寸可以是16
×
16。当单个tu被分区为四个tu时,可认为tu已经以四叉树结构被分区。
[0376]
例如,当单个tu被分区为两个tu时,通过分区生成的两个tu中的每一个的水平尺寸或垂直尺寸可以是被分区之前的tu的水平尺寸或垂直尺寸的一半。当尺寸为32
×
32的tu被垂直分区为两个tu时,两个被分区出的tu中的每一个的尺寸可以是16
×
32。当尺寸为32
×
32的tu被水平分区为两个tu时,两个被分区出的tu中的每一个的尺寸可以是32
×
16。当单个tu被分区为两个tu时,可认为tu已经以二叉树结构被分区。
[0377]
可以以与图5中所示的方式不同的方式对cu进行划分。
[0378]
例如,可将单个cu划分为三个cu。通过划分生成的三个cu的水平尺寸或垂直尺寸可分别是被划分之前的原始cu的水平尺寸或垂直尺寸的1/4、1/2和1/4。
[0379]
例如,当尺寸为32
×
32的cu被垂直划分为三个cu时,通过划分生成的三个cu的尺寸可分别是8
×
32、16
×
32和8
×
32。以这种方式,当单个cu被划分为三个cu时,可认为该cu以三叉树的形式被划分。
[0380]
可将示例性划分形式(即,四叉树划分、二叉树划分和三叉树划分)中的一个应用于cu的划分,并且可将多种划分方案组合并一起用于cu的划分。这里,将多种划分方案组合并一起使用的情况可被称为“复合树形式划分”。
[0381]
图6示出根据示例的块的划分。
[0382]
在视频编码和/或解码处理中,如图6中所示,目标块可被划分。例如,目标块可以是cu。
[0383]
对于目标块的划分,指示划分信息的指示符可从编码设备100被用信号发送到解码设备200。划分信息可以是指示目标块如何被划分的信息。
[0384]
划分信息可以是划分标志(以下称为“split_flag”)、四-二元标志(以下称为“qb_flag”)、四叉树标志(以下称为“quadtree_flag”)、二叉树标志(以下称为“binarytree_flag”)和二元类型标志(以下称为“btype_flag”)中的一个或更多个。
[0385]“split_flag”可以是指示块是否被划分的标志。例如,split_flag值为1可指示对应块被划分。split_flag值为0可指示对应块不被划分。
[0386]“qb_flag”可以是指示四叉树形式和二叉树形式中的哪一个与块被划分的形状对应的标志。例如,qb_flag值为0可指示块以四叉树形式被划分。qb_flag值为1可指示块以二叉树形式被划分。可选地,qb_flag值为0可指示块以二叉树形式被划分。qb_flag值为1可指示块以四叉树形式被划分。
[0387]“quadtree_flag”可以是指示块是否以四叉树形式被划分的标志。例如,quadtree_flag值为1可指示块以四叉树形式被划分。quadtree_flag值为0可指示块不以四叉树形式被划分。
[0388]“binarytree_flag”可以是指示块是否以二叉树形式被划分的标志。例如,binarytree_flag值为1可指示块以二叉树形式被划分。binarytree_flag值为0可指示块不以二叉树形式被划分。
[0389]“btype_flag”可以是指示当块以二叉树形式被划分时垂直划分和水平划分中的哪一个与划分方向对应的标志。例如,btype_flag值为0可指示块在水平方向上被划分。btype_flag值为1可指示块在垂直方向上被划分。可选地,btype_flag值为0可指示块在垂直方向上被划分。btype_flag值为1可指示块在水平方向上被划分。
[0390]
例如,可通过用信号发送quadtree_flag、binarytree_flag和btype_flag中的至少一个来推导图6中的块的划分信息,如下表1中所示。
[0391]
表1
[0392][0393]
例如,可通过用信号发送split_flag、qb_flag和btype_flag中的至少一个来推导图6中的块的划分信息,如下表2中所示。
[0394]
表2
[0395][0396]
划分方法可根据块的尺寸和/或形状而仅限于四叉树或二叉树。当这个限制被应用时,split_flag可以是指示块是否以四叉树形式被划分的标志或者指示块是否以二叉树形式被划分的标志。可根据块的深度信息来推导块的尺寸和形状,并且深度信息可从编码设备100被用信号发送到解码设备200。
[0397]
当块的尺寸落在特定范围内时,仅以四叉树形式进行划分是可能的。例如,可由能够仅以四叉树形式进行划分的最大块尺寸和最小块尺寸中的至少一个来定义所述特定范围。
[0398]
可通过比特流将指示能够仅以四叉树形式进行划分的最大块尺寸和最小块尺寸的信息从编码设备100用信号发送到解码设备200。此外,可针对诸如视频、序列、画面、参数、并行块组和条带(或片段)的单元中的至少一个用信号发送这个信息。
[0399]
可选地,最大块尺寸和/或最小块尺寸可以是由编码设备100和解码设备200预先定义的固定尺寸。例如,当块的尺寸大于64
×
64且小于256
×
256时,仅以四叉树形式进行划分是可能的。在这种情况下,split_flag可以是指示是否执行以四叉树形式的划分的标志。
[0400]
当块的尺寸大于变换块的最大尺寸时,仅以四叉树形式分区是可能的。这里,通过分区生成的子块可以是cu和tu中的至少一个。
[0401]
在这种情况下,split_flag可以是指示四叉树形式的分区是否被执行的标志。
[0402]
当块的尺寸落入特定范围内时,仅以二叉树形式或三叉树形式进行划分是可能的。例如,可由能够仅以二叉树形式或三叉树形式进行划分的最大块尺寸和最小块尺寸中的至少一个来定义所述特定范围。
[0403]
可通过比特流将指示能够仅以二叉树形式进行划分或以三叉树形式进行划分的最大块尺寸和/或最小块尺寸的信息从编码设备100用信号发送到解码设备200。此外,可针对诸如序列、画面和条带(或片段)的单元中的至少一个用信号发送这个信息。
[0404]
可选地,最大块尺寸和/或最小块尺寸可以是由编码设备100和解码设备200预先定义的固定尺寸。例如,当块的尺寸大于8
×
8且小于16
×
16时,仅以二叉树形式进行划分是可能的。在这种情况下,split_flag可以是指示是否执行以二叉树形式或三叉树形式的划分的标志。
[0405]
以上对以四叉树形式进行分区的描述可被同样地应用于二叉树形式和/或三叉树形式。
[0406]
块的分区可能受到先前分区的限制。例如,当块以特定二叉树形式被分区而且从所述分区生成多个子块时,每个子块可仅以特定树形式被另外分区。这里,特定树形式可以是二叉树形式、三叉树形式和四叉树形式中的至少一个。
[0407]
当分区块的水平尺寸或垂直尺寸是不能被进一步划分的尺寸时,可不用信号发送上述指示符。
[0408]
图7是用于解释帧内预测过程的实施例的示图。
[0409]
从图7中的图的中心径向延伸的箭头指示方向帧内预测模式的预测方向。此外,箭头附近出现的编号指示分配给帧内预测模式或帧内预测模式的预测方向的模式值的示例。
[0410]
在图7中,编号“0”可表示作为非方向帧内预测模式的平面模式。编号“1”可表示作为非方向帧内预测模式的dc模式。
[0411]
帧内编码和/或解码可使用目标块的邻近单元的参考样点来执行。邻近块可以是重建的邻近块。参考样点可表示邻近样点。
[0412]
例如,可使用包括在重建的邻近块中的参考样点的值或重建的邻近块的编码参数来执行帧内编码和/或解码。
[0413]
编码设备100和/或解码设备200可通过基于关于目标图像中的样点的信息对目标块执行帧内预测来生成预测块。当帧内预测被执行时,编码设备100和/或解码设备200可通过基于关于目标图像中的样点的信息执行帧内预测来生成针对目标块的预测块。当帧内预测被执行时,编码设备100和/或解码设备200可基于至少一个重建的参考样点来执行方向预测和/或非方向预测。
[0414]
预测块可以是作为执行帧内预测的结果而生成的块。预测块可对应于cu、pu和tu中的至少一个。
[0415]
预测块的单元可具有与cu、pu和tu中的至少一个对应的尺寸。预测块可具有尺寸为2n
×
2n或n
×
n的正方形形状。尺寸n
×
n可包括尺寸4
×
4、8
×
8、16
×
16、32
×
32、64
×
64等。
[0416]
可选地,预测块可以是尺寸为2
×
2、4
×
4、8
×
8、16
×
16、32
×
32、64
×
64等的正方形块或者尺寸为2
×
8、4
×
8、2
×
16、4
×
16、8
×
16等的矩形块。
[0417]
可考虑用于目标块的帧内预测模式执行帧内预测。目标块可具有的帧内预测模式的数量可以是预定义的固定值,并且可以是根据预测块的属性不同地确定的值。例如,预测块的属性可包括预测块的尺寸、预测块的类型等。此外,预测块的属性可指示用于预测块的编码参数。
[0418]
例如,不论预测块的尺寸如何,帧内预测模式的数量都可被固定为n。可选地,帧内预测模式的数量可以是例如3、5、9、17、34、35、36、65、67或95。
[0419]
帧内预测模式可以是非方向模式或方向模式。
[0420]
例如,帧内预测模式可包括与图7中所示的编号0至66对应的两种非方向模式和65种方向模式。
[0421]
例如,在使用特定帧内预测方法的情况下,帧内预测模式可包括与图7所示的编号-14至80对应的两个非方向模式和93个方向模式。
[0422]
所述两种非方向模式可包括dc模式和平面模式。
[0423]
方向模式可以是具有特定方向或特定角度的预测模式。方向模式也可被称为“角度模式”。
[0424]
帧内预测模式可由模式编号、模式值、模式角度和模式方向中的至少一个表示。换句话说,术语“帧内预测模式的(模式)编号”、“帧内预测模式的(模式)值”、“帧内预测模式的(模式)角度”和“帧内预测模式的(模式)方向”可被用于具有相同的含义,并且可彼此互换使用。
[0425]
帧内预测模式的数量可以是m。m的值可以是1或更大。换句话说,帧内预测模式的数量可以是m,其中,m包括非方向模式的数量和方向模式的数量。
[0426]
帧内预测模式的数量可被固定为m,而不管块的尺寸和/或颜色分量如何。例如,帧内预测模式的数量可被固定为35和67中的任意一个,而不管块的尺寸如何。
[0427]
可选地,帧内预测模式的数量可根据块的形状、尺寸和/或颜色分量的类型而不同。
[0428]
例如,在图7中,如虚线所示出的方向预测模式可仅被应用于针对非正方形块的预测。
[0429]
例如,块的尺寸越大,帧内预测模式的数量越多。可选地,块的尺寸越大,帧内预测模式的数量越少。当块的尺寸是4
×
4或8
×
8时,帧内预测模式的数量可以是67。当块的尺寸是16
×
16时,帧内预测模式的数量可以是35。当块的尺寸是32
×
32时,帧内预测模式的数量可以是19。当块的尺寸是64
×
64时,帧内预测模式的数量可以是7。
[0430]
例如,帧内预测模式的数量可根据颜色分量是亮度信号还是色度信号而不同。可选地,与亮度分量块对应的帧内预测模式的数量可大于与色度分量块对应的帧内预测模式的数量。
[0431]
例如,在模式值为50的垂直模式中,可基于参考样点的像素值沿垂直方向执行预测。例如,在模式值为18的水平模式中,可基于参考样点的像素值沿水平方向执行预测。
[0432]
即使在除了上述模式之外的方向模式中,编码设备100和解码设备200仍可使用依据与方向模式对应的角度的参考样点对目标单元执行帧内预测。
[0433]
位于相对于垂直模式的右侧的帧内预测模式可被称为“垂直-右侧模式”。位于水平模式下方的帧内预测模式可被称为“水平-下方模式”。例如,在图7中,模式值是51、52、
53、54、55、56、57、58、59、60、61、62、63、64、65和66之一的帧内预测模式可以是垂直-右侧模式。模式值是2、3、4、5、6、7、8、9、10、11、12、13、14、15、16和17之一的帧内预测模式可以是水平-下方模式。
[0434]
非方向模式可包括dc模式和平面模式。例如,dc模式的值可以是1。平面模式的值可以是0。
[0435]
方向模式可包括角度模式。在多个帧内预测模式中,除了dc模式和平面模式之外的其余模式可以是方向模式。
[0436]
当帧内预测模式是dc模式时,可基于多个参考像素的像素值的平均值生成预测块。例如,可基于多个参考像素的像素值的平均值确定预测块的像素的值。
[0437]
以上描述的帧内预测模式的数量以及各个帧内预测模式的模式值仅是示例性的。可根据实施例、实现方式和/或要求来不同地定义以上描述的帧内预测模式的数量以及各个帧内预测模式的模式值。
[0438]
为了对目标块执行帧内预测,可执行检查在重建的邻近块中包括的样点是否可被用作目标块的参考样点的步骤。当在邻近块中的样点之中存在不能被用作目标块的参考样点的样点时,经由使用重建的邻近块中包括的样点之中的至少一个样点值的插值和/或复制而生成的值可替换不能被用作参考样点的样点的样点值。当经由复制和/或插值而生成的值替换现有样点的样点值时,该样点可被用作目标块的参考样点。
[0439]
当使用帧内预测时,可基于目标块的尺寸和帧内预测模式中的至少一个将滤波器应用于参考样点和预测样点中的至少一个。
[0440]
将被应用于参考样点和预测样点中的至少一个的滤波器的类型可根据目标块的帧内预测模式、目标块的尺寸和目标块的形状中的至少一个而不同。滤波器的类型可根据滤波器抽头的长度、滤波器系数的值和滤波器强度中的一个或更多个来分类。滤波器抽头的长度可表示滤波器抽头的数量。此外,滤波器抽头的数量可表示滤波器的长度。
[0441]
当帧内预测模式是平面模式时,可在生成目标块的预测块时根据预测目标样点在预测块中的位置使用目标块的上参考样点、目标块的左参考样点、目标块的右上参考样点和目标块的左下参考样点的加权和来生成预测目标块的样点值。
[0442]
当帧内预测模式是dc模式时,可在生成目标块的预测块时使用目标块上方的参考样点和目标块左侧的参考样点的平均值。此外,可对目标块中的特定行或特定列执行使用参考样点的值的滤波。所述特定行可以是与参考样点相邻的一个或更多个上方行。所述特定列可以是与参考样点相邻的一个或更多个左侧列。
[0443]
当帧内预测模式是方向模式时,可使用目标块的上参考样点、左参考样点、右上参考样点和/或左下参考样点来生成预测块。
[0444]
为了生成上述预测样点,可执行基于实数的插值。
[0445]
可从与目标块相邻的邻近块的帧内预测模式预测目标块的帧内预测模式,并且用于预测的信息可被熵编码/熵解码。
[0446]
例如,当目标块和邻近块的帧内预测模式彼此相同时,可使用预定义的标志来用信号发送目标块和邻近块的帧内预测模式是相同的。
[0447]
例如,可用信号发送用于指示多个邻近块的帧内预测模式之中的与目标块的帧内预测模式相同的帧内预测模式的指示符。
[0448]
当目标块和邻近块的帧内预测模式彼此不同时,可使用熵编码和/或熵解码对关于目标块的帧内预测模式的信息进行编码和/或解码。
[0449]
图8是示出在帧内预测过程中使用的参考样点的示图。
[0450]
用于对目标块进行帧内预测的重建参考样点可包括左下参考样点、左参考样点、左上角参考样点、上参考样点和右上参考样点。
[0451]
例如,左参考样点可表示与目标块的左侧相邻的重建参考像素。上参考样点可表示与目标块的顶部相邻的重建参考像素。左上角参考样点可表示位于目标块的左上角处的重建参考像素。左下参考样点可表示在位于与由左参考样点组成的左侧样点线相同的线上的样点之中的位于所述左侧样点线下方的参考样点。右上参考样点可表示在位于与由上参考样点组成的上方样点线相同的线上的样点之中的位于所述上方样点线右侧的参考样点。
[0452]
当目标块的尺寸是n
×
n时,左下参考样点、左参考样点、上参考样点和右上参考样点的数量可以均是n。
[0453]
通过对目标块执行帧内预测,可生成预测块。生成预测块的过程可包括确定预测块中的像素的值。目标块和预测块的尺寸可相同。
[0454]
用于对目标块进行帧内预测的参考样点可根据目标块的帧内预测模式而改变。帧内预测模式的方向可表示参考样点与预测块的像素之间的依赖关系。例如,指定参考样点的值可被用作预测块中的一个或更多个指定像素的值。在这种情况下,所述指定参考样点和预测块中的所述一个或更多个指定像素可以是位于沿帧内预测模式的方向的直线上的样点和像素。换句话说,所述指定参考样点的值可被复制作为位于与帧内预测模式的方向相反的方向上的像素的值。可选地,预测块中的像素的值可以是相对于该像素的位置位于帧内预测模式的方向上的参考样点的值。
[0455]
在示例中,当目标块的帧内预测模式是垂直模式时,上参考样点可被用于帧内预测。当帧内预测模式是垂直模式时,预测块中的像素的值可以是垂直地位于该像素的位置上方的参考样点的值。因此,与目标块的顶部相邻的上参考样点可被用于帧内预测。此外,在预测块的一行中的像素的值可与上参考样点的像素的值相同。
[0456]
在示例中,当目标块的帧内预测模式是水平模式时,左参考样点可被用于帧内预测。当帧内预测模式是水平模式时,预测块中的像素的值可以是水平地位于该像素的位置左侧的参考样点的值。因此,与目标块的左侧相邻的左参考样点可被用于帧内预测。此外,在预测块的一列中的像素的值可与左参考样点的像素的值相同。
[0457]
在示例中,当当前块的帧内预测模式的模式值是34时,左参考样点中的至少一些、左上角参考样点、以及上参考样点中的至少一些可被用于帧内预测。当帧内预测模式的模式值是18时,预测块中的像素的值可以是对角地位于该像素的左上角处的参考样点的值。
[0458]
此外,在模式值为范围从52至66的值的帧内预测模式的情况下,右上参考样点中的至少一部分可被用于帧内预测。
[0459]
此外,在模式值为范围从2至17的值的帧内预测模式的情况下,左下参考样点中的至少一部分可被用于帧内预测。
[0460]
此外,在模式值为范围从19至49的值的帧内预测模式的情况下,左上角参考样点可被用于帧内预测。
[0461]
用于确定预测块中的一个像素的像素值的参考样点的数量可以是1或者2或者更
多。
[0462]
如上所述,可根据像素的位置和由帧内预测模式的方向所指示的参考样点的位置来确定预测块中的像素的像素值。当像素的位置以及由帧内预测模式的方向所指示的参考样点的位置是整数位置时,由整数位置所指示的一个参考样点的值可被用于确定预测块中的像素的像素值。
[0463]
当像素的位置以及由帧内预测模式的方向所指示的参考样点的位置不是整数位置时,可生成基于与该参考样点的位置最接近的两个参考样点的插值参考样点。插值参考样点的值可被用于确定预测块中的像素的像素值。换句话说,当预测块中的像素的位置以及由帧内预测模式的方向所指示的参考样点的位置指示两个参考样点之间的位置时,可生成基于这两个样点的值的插值。
[0464]
经由预测而生成的预测块可与原始目标块不同。换句话说,可能存在预测误差,该预测误差是目标块与预测块之间的差,并且也可能存在在目标块的像素与预测块的像素之间的预测误差。
[0465]
在下文中,术语“差”、“误差”和“残差”可被用于具有相同的含义,并且可彼此互换使用。
[0466]
例如,在方向帧内预测的情况下,预测块的像素与参考样点之间的距离越长,则可能发生的预测误差越大。这种预测误差可导致生成的预测块与邻近块之间的不连续性。
[0467]
为了减少预测误差,可使用针对预测块的滤波操作。滤波操作可被配置为自适应地将滤波器应用于预测块中的被认为具有较大预测误差的区域。例如,被认为具有较大预测误差的区域可以是预测块的边界。此外,在预测块中被认为具有较大预测误差的区域可根据帧内预测模式而不同,并且滤波器的特性也可根据帧内预测模式而不同。
[0468]
如图8所示,对于目标块的帧内预测,可使用参考线0至参考线3中的至少一个。每条参考线可指示参考样点线。当参考线的编号较小时,可指示更靠近目标块的参考样点线。
[0469]
片段a和片段f中的样点可通过填充来获取,而不是从重建的邻近块获取,其中,所述填充使用片段b和片段e中最接近目标块的样点。
[0470]
可用信号发送指示将被用于目标块的帧内预测的参考样点线的索引信息。所述索引信息可指示多个参考样点线中的将被用于目标块的帧内预测的参考样点线。例如,索引信息可具有与0至3中的任意一个对应的值。
[0471]
当目标块的上方边界是ctu的边界时,仅参考样点线0可以是可用的。因此,在这种情况下,可不用信号发送索引信息。当除了参考样点线0之外的附加参考样点线被使用时,可不执行稍后将描述的预测块的滤波。
[0472]
在颜色间帧内预测的情况下,可基于第一颜色分量的对应重建块来生成第二颜色分量的目标块的预测块。
[0473]
例如,第一颜色分量可以是亮度分量,且第二颜色分量可以是色度分量。
[0474]
为了执行颜色间帧内预测,可基于模板推导第一颜色分量与第二颜色分量之间的线性模型的参数。
[0475]
模板可包括目标块上方的参考样点(上参考样点)和/或目标块左侧的参考样点(左参考样点),并且可包括与所述参考样点对应的第一颜色分量的重建块的上参考样点和/或左参考样点。
[0476]
例如,可使用以下值来推导线性模型的参数:1)模板中的样点之中的具有最大值的第一颜色分量的样点的值,2)与该第一颜色分量的样点对应的第二颜色分量的样点的值,3)模板中的样点之中的具有最小值的第一颜色分量的样点的值,以及4)与该第一颜色分量的样点对应的第二颜色分量的样点的值。
[0477]
当推导出线性模型的参数时,可通过将对应重建块应用于线性模型来生成目标块的预测块。
[0478]
根据图像格式,可对与第一颜色分量的重建块邻近的样点和第一颜色分量的对应重建块执行子采样。例如,当第二颜色分量的一个样点对应于第一颜色分量的四个样点时,可通过对第一颜色分量的所述四个样点执行子采样来计算一个对应样点。当执行子采样时,可基于被子采样的对应样点执行线性模型的参数的推导和颜色间帧内预测。
[0479]
可在帧内预测模式中用信号发送关于是否执行颜色间帧内预测和/或模板的范围的信息。
[0480]
目标块可在水平方向和/或垂直方向上被分区为两个或四个子块。
[0481]
可顺序地重建通过分区生成的子块。也就是说,当对每个子块执行帧内预测时,可生成子块的子预测块。此外,当对每个子块执行反量化(逆量化)和/或逆变换时,可生成针对对应子块的子残差块。可通过将子预测块与子残差块相加来生成重建子块。重建子块可用作用于具有下一优先级的子块的帧内预测的参考样点。
[0482]
子块可以是包括特定数量(例如,16)个或更多个样点的块。例如,当目标块是8
×
4的块或4
×
8的块时,目标块可被分区为两个子块。此外,当目标块是4
×
4的块时,目标块不能被分区成子块。当目标块具有另一尺寸时,目标块可被分区为四个子块。
[0483]
可用信号发送关于是否执行基于这些子块的帧内预测的信息和/或关于分区方向(水平方向或垂直方向)的信息。
[0484]
可限制这种基于子块的帧内预测,使得其仅在参考样点线0被使用时执行。当执行基于子块的帧内预测时,可不执行将在下面描述的预测块的滤波。
[0485]
可通过对经由帧内预测生成的预测块执行滤波来生成最终预测块。
[0486]
可通过将特定权重应用于作为将被滤波的目标的滤波目标样点、左参考样点、上参考样点和/或左上参考样点来执行滤波。
[0487]
可基于块尺寸、帧内预测模式和预测块中的滤波目标样点的位置中的至少一个来确定用于滤波的权重和/或参考样点(例如,参考样点的范围、参考样点的位置等)。
[0488]
例如,可仅在特定帧内预测模式(例如,dc模式、平面模式、垂直模式、水平模式、对角线模式和/或相邻对角线模式)中执行滤波。
[0489]
相邻对角线模式可以是具有通过将k加到对角线模式的编号而获得的编号的模式,并且可以是具有通过从对角线模式的编号减去k而获得的编号的模式。换句话说,相邻对角线模式的编号可以是对角线模式的编号与k之和,或者可以是对角线模式的编号与k之差。例如,k可以是8或更小的正整数。
[0490]
可使用目标块附近存在的邻近块的帧内预测模式来推导目标块的帧内预测模式,并且可对这种推导出的帧内预测模式进行熵编码和/或熵解码。
[0491]
例如,当目标块的帧内预测模式与邻近块的帧内预测模式相同时,可使用特定标志信息来用信号发送指示目标块的帧内预测模式与邻近块的帧内预测模式相同的信息。
[0492]
此外,例如,可用信号发送多个邻近块的帧内预测模式中的帧内预测模式与目标块的帧内预测模式相同的邻近块的指示符信息。
[0493]
例如,当目标块的帧内预测模式与邻近块的帧内预测模式不同时,可通过基于邻近块的帧内预测模式执行熵编码和/或熵解码来对关于目标块的帧内预测模式的信息执行熵编码和/或熵解码。
[0494]
图9是用于解释帧间预测过程的实施例的示图。
[0495]
图9中示出的矩形可表示图像(或画面)。此外,在图9中,箭头可表示预测方向。从第一画面指向第二画面的箭头表示第二画面参考第一画面。也就是说,可根据预测方向对每个图像进行编码和/或解码。
[0496]
图像可根据编码类型被分类为帧内画面(i画面)、单预测画面或预测编码画面(p画面)、以及双预测画面或双预测编码画面(b画面)。可根据每个画面的编码类型对每个画面进行编码和/或解码。
[0497]
当作为将被编码的目标的目标图像是i画面时,目标图像可在不进行参照其它图像的帧间预测的情况下使用图像本身包含的数据被编码。例如,i画面可仅经由帧内预测被编码。
[0498]
当目标图像是p画面时,可经由使用存在于一个方向上的参考画面的帧间预测对目标图像进行编码。这里,所述一个方向可以是前向方向或后向方向。
[0499]
当目标图像是b画面时,可经由使用存在于两个方向上的参考画面的帧间预测对图像进行编码,或者可经由使用存在于前向方向和后向方向之一上的参考画面的帧间预测对图像进行编码。这里,所述两个方向可以是前向方向和后向方向。
[0500]
使用参考画面进行编码和/或解码的p画面和b画面可被视为使用帧间预测的图像。
[0501]
下面,将详细地描述根据实施例的在帧间模式下的帧间预测。
[0502]
可使用参考图像和运动信息来执行帧间预测或运动补偿。
[0503]
在帧间模式下,编码设备100可对目标块执行帧间预测和/或运动补偿。解码设备200可对目标块执行与由编码设备100执行的帧间预测和/或运动补偿对应的帧间预测和/或运动补偿。
[0504]
可由编码设备100和解码设备200在帧间预测期间单独地推导目标块的运动信息。可使用重建的邻近块的运动信息、col块的运动信息和/或与col块相邻的块的运动信息来推导运动信息。
[0505]
例如,编码设备100或解码设备200可通过将空间候选和/或时间候选的运动信息用作目标块的运动信息来执行预测和/或运动补偿。目标块可表示pu和/或pu分区。
[0506]
空间候选可以是在空间上与目标块相邻的重建块。
[0507]
时间候选可以是在先前重建的同位画面(col画面)中的与目标块对应的重建块。
[0508]
在帧间预测中,编码设备100和解码设备200可通过利用空间候选和/或时间候选的运动信息来提高编码效率和解码效率。空间候选的运动信息可被称为“空间运动信息”。时间候选的运动信息可被称为“时间运动信息”。
[0509]
下面,空间候选的运动信息可以是包括空间候选的pu的运动信息。时间候选的运动信息可以是包括时间候选的pu的运动信息。候选块的运动信息可以是包括候选块的pu的
运动信息。
[0510]
可使用参考画面执行帧间预测。
[0511]
参考画面可以是在目标画面之前的画面和在目标画面之后的画面中的至少一个。参考画面可以是用于目标块的预测的图像。
[0512]
在帧间预测中,可利用用于指示参考画面的参考画面索引(或refidx)、随后将被描述的运动矢量等来指定参考画面中的区域。这里,在参考画面中指定的区域可指示参考块。
[0513]
帧间预测可选择参考画面,并且还可从参考画面选择与目标块对应的参考块。此外,帧间预测可使用所选择的参考块来生成针对目标块的预测块。
[0514]
可由编码设备100和解码设备200中的每一个在帧间预测期间推导运动信息。
[0515]
空间候选可以是1)存在于目标画面中的2)已经在先前经由编码和/或解码而重建并且3)与目标块相邻或位于目标块的拐角处的块。这里,“位于目标块的拐角处的块”可以是与水平相邻于目标块的邻近块垂直相邻的块,或者是与垂直相邻于目标块的邻近块水平相邻的块。此外,“位于目标块的拐角处的块”可与“与目标块的拐角相邻的块”具有相同的含义。“位于目标块的拐角处的块”的含义可被包括在“与目标块相邻的块”的含义中。
[0516]
例如,空间候选可以是位于目标块左侧的重建块、位于目标块上方的重建块、位于目标块左下角的重建块、位于目标块右上角的重建块或位于目标块左上角的重建块。
[0517]
编码设备100和解码设备200中的每一个可识别存在于col画面中的在空间上与目标块对应的位置的块。目标块在目标画面中的位置和所识别的块在col画面中的位置可彼此对应。
[0518]
编码设备100和解码设备200中的每一个可将存在于针对所识别的块的预定义相关位置处的col块确定为时间候选。所述预定义相关位置可以是存在于所识别的块内部和/或外部的位置。
[0519]
例如,col块可包括第一col块和第二col块。当所识别的块的坐标是(xp,yp)并且所识别的块的尺寸用(npsw,npsh)表示时,第一col块可以是位于坐标(xp+npsw,yp+npsh)处的块。第二col块可以是位于坐标(xp+(npsw》》1),yp+(npsh》》1))处的块。当第一col块不可用时,可选择性地使用第二col块。
[0520]
可基于col块的运动矢量确定目标块的运动矢量。编码设备100和解码设备200中的每一个可对col块的运动矢量进行缩放。col块的经缩放的运动矢量可被用作目标块的运动矢量。此外,存储在列表中的时间候选的运动信息的运动矢量可以是经缩放的运动矢量。
[0521]
目标块的运动矢量相对于col块的运动矢量的比率可与第一时间距离相对于第二时间距离的比率相同。第一时间距离可以是参考画面与目标块的目标画面之间的距离。第二时间距离可以是参考画面与col块的col画面之间的距离。
[0522]
用于推导运动信息的方案可根据目标块的帧间预测模式而改变。例如,作为被应用于帧间预测的帧间预测模式,可存在高级运动矢量预测因子(amvp)模式、合并模式、跳过模式、具有运动矢量差的合并模式、子块合并模式、三角分区模式、帧间-帧内组合预测模式、仿射帧间模式、当前画面参考模式等。合并模式也可被称为“运动合并模式”。下面将详细描述各个模式。
[0523]
1)amvp模式
[0524]
当使用amvp模式时,编码设备100可在目标块的邻近区域中搜索相似块。编码设备100可通过使用找到的相似块的运动信息对目标块执行预测来获取预测块。编码设备100可对作为目标块与预测块之间的差的残差块进行编码。
[0525]
1-1)创建预测运动矢量候选的列表
[0526]
当amvp模式被用作预测模式时,编码设备100和解码设备200中的每一个可使用空间候选的运动矢量、时间候选的运动矢量和零矢量来创建预测运动矢量候选的列表。预测运动矢量候选列表可包括一个或更多个预测运动矢量候选。空间候选的运动矢量、时间候选的运动矢量和零矢量中的至少一个可被确定并被用作预测运动矢量候选。
[0527]
在下文中,术语“预测运动矢量(候选)”和“运动矢量(候选)”可被用于具有相同的含义,并且可彼此互换使用。
[0528]
在下文中,术语“预测运动矢量候选”和“amvp候选”可被用于具有相同的含义,并且可彼此互换地使用。
[0529]
在下文中,术语“预测运动矢量候选列表”和“amvp候选列表”可被用于具有相同的含义,并且可彼此互换使用。
[0530]
空间候选可包括重建的空间邻近块。换句话说,重建的邻近块的运动矢量可被称为“空间预测运动矢量候选”。
[0531]
时间候选可包括col块和与col块相邻的块。换句话说,col块的运动矢量或与col块相邻的块的运动矢量可被称为“时间预测运动矢量候选”。
[0532]
零矢量可以是(0,0)运动矢量。
[0533]
预测运动矢量候选可以是用于对运动矢量进行预测的运动矢量预测因子。此外,在编码设备100中,每个预测运动矢量候选可以是用于运动矢量的初始搜索位置。
[0534]
1-2)使用预测运动矢量候选的列表搜索运动矢量
[0535]
编码设备100可使用预测运动矢量候选的列表在搜索范围内确定将被用于对目标块进行编码的运动矢量。此外,编码设备100可在存在于预测运动矢量候选列表中的预测运动矢量候选之中确定将被用作目标块的预测运动矢量的预测运动矢量候选。
[0536]
将被用于对目标块进行编码的运动矢量可以是可按最小代价编码的运动矢量。
[0537]
此外,编码设备100可确定是否使用amvp模式对目标块进行编码。
[0538]
1-3)对帧间预测信息的传输
[0539]
编码设备100可生成包括帧间预测所需的帧间预测信息的比特流。解码设备200可使用比特流的帧间预测信息对目标块执行帧间预测。
[0540]
帧间预测信息可包含1)指示amvp模式是否被使用的模式信息、2)预测运动矢量索引、3)运动矢量差(mvd)、4)参考方向和5)参考画面索引。
[0541]
在下文中,术语“预测运动矢量索引”和“amvp索引”可被用于具有相同的含义,并且可彼此互换使用。
[0542]
此外,帧间预测信息可包含残差信号。
[0543]
当模式信息指示amvp模式被使用时,解码设备200可通过熵解码从比特流获取预测运动矢量索引、mvd、参考方向和参考画面索引。
[0544]
预测运动矢量索引可指示在预测运动矢量候选列表中包括的预测运动矢量候选之中的将被用于对目标块进行预测的预测运动矢量候选。
[0545]
1-4)使用帧间预测信息的amvp模式下的帧间预测
[0546]
解码设备200可使用预测运动矢量候选列表来推导预测运动矢量候选,并且可基于推导的预测运动矢量候选来确定目标块的运动信息。
[0547]
解码设备200可使用预测运动矢量索引在预测运动矢量候选列表中包括的预测运动矢量候选之中确定用于目标块的运动矢量候选。解码设备200可从预测运动矢量候选列表中包括的预测运动矢量候选之中选择由预测运动矢量索引所指示的预测运动矢量候选作为目标块的预测运动矢量。
[0548]
编码设备100可通过对预测运动矢量索引应用熵编码来生成熵编码的预测运动矢量索引,并且可生成包括熵编码的预测运动矢量索引的比特流。熵编码的预测运动矢量索引可通过比特流从编码设备100用信号发送到解码设备200。解码设备200可从比特流中提取熵编码的预测运动矢量索引,并且可通过对熵编码的预测运动矢量索引应用熵解码来获取预测运动矢量索引。
[0549]
实际将被用于对目标块进行帧间预测的运动矢量可能与预测运动矢量不匹配。为了指示实际将被用于对目标块进行帧间预测的运动矢量与预测运动矢量之间的差,可使用mvd。编码设备100可推导与实际将被用于对目标块进行帧间预测的运动矢量相似的预测运动矢量,以便使用尽可能小的mvd。
[0550]
mvd可以是目标块的运动矢量与预测运动矢量之间的差。编码设备100可计算mvd,并且可通过将熵编码应用于mvd来生成熵编码的mvd。编码设备100可生成包括熵编码的mvd的比特流。
[0551]
可通过比特流将mvd从编码设备100发送到解码设备200。解码设备200可从比特流中提取熵编码的mvd,并且可通过对熵编码的mvd应用熵解码来获取mvd。
[0552]
解码设备200可通过对mvd和预测运动矢量进行求和来推导目标块的运动矢量。换句话说,由解码设备200推导出的目标块的运动矢量可以是mvd和运动矢量候选之和。
[0553]
此外,编码设备100可通过将熵编码应用于所计算的mvd分辨率信息来生成熵编码的mvd分辨率信息,并且可生成包括熵编码的mvd分辨率信息的比特流。解码设备200可从比特流提取熵编码的mvd分辨率信息,并且可通过对熵编码的mvd分辨率信息应用熵解码来获取mvd分辨率信息。解码设备200可使用mvd分辨率信息来调整mvd的分辨率。
[0554]
另外,编码设备100可基于仿射模型计算mvd。解码设备200可通过mvd与仿射控制运动矢量候选之和推导目标块的仿射控制运动矢量,并且可使用仿射控制运动矢量推导子块的运动矢量。
[0555]
参考方向可指示将被用于对目标块进行预测的参考画面的列表。例如,参考方向可指示参考画面列表l0和参考画面列表l1中的一个。
[0556]
参考方向仅指示将被用于对目标块进行预测的参考画面列表,并且可不意味着参考画面的方向被限制为前向方向或后向方向。换句话说,参考画面列表l0和参考画面列表l1中的每一个可包括前向方向和/或后向方向上的画面。
[0557]
参考方向是单向的可意味着使用单个参考画面列表。参考方向是双向的可意味着使用两个参考画面列表。换句话说,参考方向可指示以下情况之一:仅使用参考画面列表l0的情况、仅使用参考画面列表l1的情况、以及使用两个参考画面列表的情况。
[0558]
参考画面索引可指示存在于参考画面列表中的参考画面之中的用于预测目标块
的参考画面。编码设备100可通过对参考画面索引应用熵编码来生成熵编码的参考画面索引,并且可生成包括熵编码的参考画面索引的比特流。可通过比特流将熵编码的参考画面索引从编码设备100用信号发送到解码设备200。解码设备200可从比特流中提取熵编码的参考画面索引,并且可通过对熵编码的参考画面索引应用熵解码来获取参考画面索引。
[0559]
当两个参考画面列表被用于对目标块进行预测时,单个参考画面索引和单个运动矢量可被用于参考画面列表中的每一个。此外,当两个参考画面列表被用于对目标块进行预测时,可为目标块指定两个预测块。例如,可使用针对目标块的两个预测块的平均值或加权和来生成目标块的(最终)预测块。
[0560]
可通过预测运动矢量索引、mvd、参考方向和参考画面索引来推导目标块的运动矢量。
[0561]
解码设备200可基于推导出的运动矢量和参考画面索引来生成针对目标块的预测块。例如,预测块可以是在由参考画面索引所指示的参考画面中的由推导出的运动矢量所指示的参考块。
[0562]
由于预测运动矢量索引和mvd被编码,而目标块的运动矢量自身不被编码,因此从编码设备100发送到解码设备200的比特的数量可减少,并且编码效率可提高。
[0563]
对于目标块,可使用重建的邻近块的运动信息。在特定的帧间预测模式下,编码设备100可不单独对目标块的实际运动信息进行编码。目标块的运动信息不被编码,而是可对额外信息进行编码,其中,所述额外信息使得能够使用重建的邻近块的运动信息来推导目标块的运动信息。由于所述额外信息被编码,因此被发送到解码设备200的比特的数量可减少,并且编码效率可提高。
[0564]
例如,作为目标块的运动信息不被直接编码的帧间预测模式,可存在跳过模式和/或合并模式。这里,编码设备100和解码设备200中的每一个可使用指示重建的邻近单元之中的其运动信息将被用作目标单元的运动信息的单元的标识符和/或索引。
[0565]
2)合并模式
[0566]
作为用于推导目标块的运动信息的方案,存在合并。术语“合并”可意味着对多个块的运动进行合并。“合并”可意味着一个块的运动信息也被应用于其它块。换句话说,合并模式可以是从邻近块的运动信息推导目标块的运动信息的模式。
[0567]
当使用合并模式时,编码设备100可使用空间候选的运动信息和/或时间候选的运动信息来预测目标块的运动信息。空间候选可包括在空间上与目标块相邻的重建的空间邻近块。空间邻近块可包括左侧邻近块和上方邻近块。时间候选可包括col块。术语“空间候选”和“空间合并候选”可被用于具有相同的含义,并且可彼此互换使用。术语“时间候选”和“时间合并候选”可被用于具有相同的含义,并且可彼此互换使用。
[0568]
编码设备100可经由预测来获取预测块。编码设备100可对作为目标块与预测块之间的差的残差块进行编码。
[0569]
2-1)创建合并候选列表
[0570]
当使用合并模式时,编码设备100和解码设备200中的每一个可使用空间候选的运动信息和/或时间候选的运动信息来创建合并候选列表。运动信息可包括1)运动矢量、2)参考画面索引和3)参考方向。参考方向可以是单向或双向。参考方向可表示帧间预测指示符。
[0571]
合并候选列表可包括合并候选。合并候选可以是运动信息。换句话说,合并候选列
表可以是存储多条运动信息的列表。
[0572]
合并候选可以是多条时间候选和/或空间候选的运动信息。换句话说,合并候选列表可包括时间候选和/或空间候选的运动信息等。
[0573]
此外,合并候选列表可包括通过对已存在于合并候选列表中的合并候选进行组合而生成的新的合并候选。换句话说,合并候选列表可包括通过对先前存在于合并候选列表中的多条运动信息进行组合而生成的新的运动信息。
[0574]
此外,合并候选列表可包括基于历史的合并候选。基于历史的合并候选可以是在目标块之前被编码和/或解码的块的运动信息。
[0575]
此外,合并候选列表可包括基于两个合并候选的平均值的合并候选。
[0576]
合并候选可以是推导帧间预测信息的特定模式。合并候选可以是指示推导帧间预测信息的特定模式的信息。可根据合并候选所指示的特定模式来推导目标块的帧间预测信息。此外,所述特定模式可包括推导一系列帧间预测信息的处理。这种特定模式可以是帧间预测信息推导模式或运动信息推导模式。
[0577]
可根据通过合并索引在合并候选列表中的合并候选中选择的合并候选所指示的模式来推导目标块的帧间预测信息。
[0578]
例如,合并候选列表中的运动信息推导模式可以是以下模式中的至少一个:1)针对子块单元的运动信息推导模式和2)仿射运动信息推导模式。
[0579]
此外,合并候选列表可包括零矢量的运动信息。零矢量也可被称为“零合并候选”。
[0580]
换句话说,合并候选列表中的多条运动信息可以是以下信息中的至少一个:1)空间候选的运动信息、2)时间候选的运动信息、3)通过对先前存在于合并候选列表中的多条运动信息进行组合而生成的运动信息、以及4)零矢量。
[0581]
运动信息可包括1)运动矢量、2)参考画面索引和3)参考方向。参考方向也可被称为“帧间预测指示符”。参考方向可以是单向或双向。单向参考方向可指示l0预测或l1预测。
[0582]
可在执行合并模式下的预测之前创建合并候选列表。
[0583]
可预先定义合并候选列表中的合并候选的数量。编码设备100和解码设备200中的每一个可根据预定义的方案和预定义的优先级将合并候选添加到合并候选列表,使得合并候选列表具有预定义数量的合并候选。可使用预定义的方案和预定义的优先级将编码设备100的合并候选列表和解码设备200的合并候选列表制作为彼此相同。
[0584]
可基于cu或pu来应用合并。当基于cu或pu执行合并时,编码设备100可将包括预定义的信息的比特流发送到解码设备200。例如,所述预定义的信息可包含1)指示是否针对各个块分区执行合并的信息、以及2)关于在作为针对目标块的空间候选和/或时间候选的块之中的将被执行合并的块的信息。
[0585]
2-2)使用合并候选列表搜索运动矢量
[0586]
编码设备100可确定将被用于对目标块进行编码的合并候选。例如,编码设备100可使用合并候选列表中的合并候选对目标块执行预测,并且可生成针对合并候选的残差块。编码设备100可使用在预测和残差块的编码中生成最小代价的合并候选来对目标块进行编码。
[0587]
此外,编码设备100可确定是否使用合并模式对目标块进行编码。
[0588]
2-3)对帧间预测信息的传输
[0589]
编码设备100可生成包括帧间预测所需的帧间预测信息的比特流。编码设备100可通过对帧间预测信息执行熵编码来生成经熵编码的帧间预测信息,并且可将包括经熵编码的帧间预测信息的比特流发送到解码设备200。经熵编码的帧间预测信息可由编码设备100通过比特流用信号发送到解码设备200。解码设备200可从比特流中提取熵编码的帧间预测信息,并且可通过对熵编码的帧间预测信息应用熵解码来获取帧间预测信息。
[0590]
解码设备200可使用比特流的帧间预测信息对目标块执行帧间预测。
[0591]
帧间预测信息可包含1)指示合并模式是否被使用的模式信息、2)合并索引和3)校正信息。
[0592]
此外,帧间预测信息可包含残差信号。
[0593]
解码设备200可仅在模式信息指示合并模式被使用时从比特流获取合并索引。
[0594]
模式信息可以是合并标志。模式信息的单位可以是块。关于块的信息可包括模式信息,并且模式信息可指示合并模式是否被应用于块。
[0595]
合并索引可指示合并候选列表中包括的合并候选之中的将被用于对目标块进行预测的合并候选。可选地,合并索引可指示与目标块在空间上或时间上相邻的邻近块之中的将与目标块合并的块。
[0596]
编码设备100可选择合并候选列表中包括的合并候选中的具有最高编码性能的合并候选,并且可将合并索引的值设置为指示所选择的合并候选。
[0597]
校正信息可以是用于校正运动矢量的信息。编码设备100可生成校正信息。解码设备200可基于校正信息校正由合并索引选择的合并候选的运动矢量。
[0598]
校正信息可包括指示是否将执行校正的信息、校正方向信息和校正尺寸信息中的至少一个。基于用信号发送的校正信息校正运动矢量的预测模式可被称为“具有运动矢量差的合并模式”。
[0599]
2-4)使用帧间预测信息的合并模式的帧间预测
[0600]
解码设备200可使用合并候选列表中包括的合并候选之中的由合并索引指示的合并候选对目标块执行预测。
[0601]
可通过由合并索引指示的合并候选的运动矢量、参考画面索引和参考方向来指定目标块的运动矢量。
[0602]
3)跳过模式
[0603]
跳过模式可以是将空间候选的运动信息或时间候选的运动信息在没有改变的情况下应用于目标块的模式。此外,跳过模式可以是不使用残差信号的模式。换句话说,当使用跳过模式时,重建块可与预测块相同。
[0604]
合并模式与跳过模式之间的差异在于是否发送或使用残差信号。也就是说,除了不发送或使用残差信号之外,跳过模式可类似于合并模式。
[0605]
当使用跳过模式时,编码设备100可通过比特流将与作为空间候选或时间候选的块之中的其运动信息将被用作目标块的运动信息的块有关的信息发送到解码设备200。编码设备100可通过对该信息执行熵编码来生成经熵编码的信息,并且可通过比特流将经熵编码的信息用信号发送到解码设备200。解码设备200可从比特流中提取熵编码的信息,并且可通过对熵编码的信息应用熵解码来获取信息。
[0606]
此外,当使用跳过模式时,编码设备100可不将其它语法信息(诸如mvd)发送到解
码设备200。例如,当使用跳过模式时,编码设备100可不将与mvd、编码块标志和变换系数等级中的至少一个相关的语法元素用信号发送到解码设备200。
[0607]
3-1)创建合并候选列表
[0608]
跳过模式也可使用合并候选列表。换句话说,可在合并模式和跳过模式两者中使用合并候选列表。在这方面,合并候选列表也可被称为“跳过候选列表”或“合并/跳过候选列表”。
[0609]
可选地,跳过模式可使用与合并模式的候选列表不同的额外候选列表。在这种情况下,在以下描述中,可分别用跳过候选列表和跳过候选来替换合并候选列表和合并候选。
[0610]
可在执行跳过模式下的预测之前创建合并候选列表。
[0611]
3-2)使用合并候选列表搜索运动矢量
[0612]
编码设备100可确定将被用于对目标块进行编码的合并候选。例如,编码设备100可使用合并候选列表中的合并候选对目标块执行预测。编码设备100可使用在预测中生成最小代价的合并候选对目标块进行编码。
[0613]
此外,编码设备100可确定是否使用跳过模式对目标块进行编码。
[0614]
3-3)对帧间预测信息的传输
[0615]
编码设备100可生成包括帧间预测所需的帧间预测信息的比特流。解码设备200可使用比特流的帧间预测信息对目标块执行帧间预测。
[0616]
帧间预测信息可包括1)指示跳过模式是否被使用的模式信息和2)跳过索引。
[0617]
跳过索引可与以上描述的合并索引相同。
[0618]
当使用跳过模式时,可在不使用残差信号的情况下对目标块进行编码。帧间预测信息可不包含残差信号。可选地,比特流可不包括残差信号。
[0619]
解码设备200可仅在模式信息指示跳过模式被使用时从比特流获取跳过索引。如上所述,合并索引和跳过索引可彼此相同。解码设备200可仅在模式信息指示合并模式或跳过模式被使用时从比特流获取跳过索引。
[0620]
跳过索引可指示合并候选列表中包括的合并候选之中的将被用于对目标块进行预测的合并候选。
[0621]
3-4)使用帧间预测信息的跳过模式下的帧间预测
[0622]
解码设备200可使用合并候选列表中包括的合并候选之中的由跳过索引指示的合并候选对目标块执行预测。
[0623]
可通过由跳过索引指示的合并候选的运动矢量、参考画面索引和参考方向来指定目标块的运动矢量。
[0624]
4)当前画面参考模式
[0625]
当前画面参考模式可表示这样的预测模式:该预测模式使用目标块所属的目标画面中的先前重建的区域。
[0626]
可使用用于指定先前重建的区域的运动矢量。可使用目标块的参考画面索引来确定目标块是否已在当前画面参考模式下被编码。
[0627]
指示目标块是否是以当前画面参考模式被编码的块的标志或索引可由编码设备100用信号发送到解码设备200。可选地,可通过目标块的参考画面索引来推断目标块是否是以当前画面参考模式被编码的块。
[0628]
当目标块以当前画面参考模式被编码时,当前画面可存在于针对目标块的参考画面列表中的固定位置或特定位置。
[0629]
例如,所述固定位置可以是参考画面索引的值是0的位置或最后位置。
[0630]
在目标画面存在于参考画面列表中的特定位置时,指示这样的特定位置的额外参考画面索引可由编码设备100用信号发送到解码设备200。
[0631]
5)子块合并模式
[0632]
子块合并模式可以是从cu的子块推导运动信息的模式。
[0633]
当应用子块合并模式时,可使用参考图像中的目标子块(即,基于子块的时间合并候选)的同位子块(col-sub-block)的运动信息和/或仿射控制点运动矢量合并候选来生成子块合并候选列表。
[0634]
6)三角分区模式
[0635]
在三角分区模式中,目标块可在对角线方向上被分区,并且可生成通过分区生成的子目标块。对于每个子目标块,可推导对应子目标块的运动信息,并且可使用推导的运动信息来推导每个子目标块的预测样点。可通过经由分区生成的子目标块的预测样点的加权和来推导目标块的预测样点。
[0636]
7)组合帧间-帧内预测模式
[0637]
组合帧间-帧内预测模式可以是使用经由帧间预测生成的预测样点和经由帧内预测生成的预测样点的加权和来推导目标块的预测样点的模式。
[0638]
在上述模式中,解码设备200可自主地校正推导的运动信息。例如,解码设备200可基于由推导的运动信息指示的参考块在特定区域中搜索具有最小绝对差和(sad)的运动信息,并且可将找到的运动信息推导为经校正的运动信息。
[0639]
在上述模式中,解码设备200可使用光流来补偿经由帧间预测推导的预测样点。
[0640]
在以上描述的amvp模式、合并模式、跳过模式等中,可使用列表的索引信息来指定列表中的多条运动信息之中的将被用于对目标块进行预测的运动信息。
[0641]
为了提高编码效率,编码设备100可仅用信号发送列表中的元素之中的在对目标块的帧间预测中生成最小代价的元素的索引。编码设备100可对该索引进行编码,并且可用信号发送编码后的索引。
[0642]
因此,必须能够由编码设备100和解码设备200使用相同的方案基于相同的数据来推导以上描述的列表(即,预测运动矢量候选列表和合并候选列表)。这里,所述相同的数据可包括重建画面和重建块。此外,为了使用索引指定元素,必须固定列表中的元素的顺序。
[0643]
图10示出根据实施例的空间候选。
[0644]
在图10中,示出了空间候选的位置。
[0645]
在图的中央处的大块可表示目标块。五个小块可表示空间候选。
[0646]
目标块的坐标可以是(xp,yp),目标块的尺寸可由(npsw,npsh)来表示。
[0647]
空间候选a0可以是与目标块的左下角相邻的块。a0可以是占有位于坐标(xp-1,yp+npsh+1)处的像素的块。
[0648]
空间候选a1可以是与目标块的左侧相邻的块。a1可以是与目标块的左侧相邻的块之中的最下方的块。可选地,a1可以是与a0的顶部相邻的块。a1可以是占有位于坐标(xp-1,yp+npsh)处的像素的块。
[0649]
空间候选b0可以是与目标块的右上角相邻的块。b0可以是占有位于坐标(xp+npsw+1,yp-1)处的像素的块。
[0650]
空间候选b1可以是与目标块的顶部相邻的块。b1可以是与目标块的顶部相邻的块之中的最右侧的块。可选地,b1可以是与b0的左侧相邻的块。b1可以是占有位于坐标(xp+npsw,yp-1)处的像素的块。
[0651]
空间候选b2可以是与目标块的左上角相邻的块。b2可以是占有位于坐标(xp-1,yp-1)处的像素的块。
[0652]
对空间候选和时间候选的可用性的确定
[0653]
为了将空间候选的运动信息或时间候选的运动信息包括在列表中,必须确定空间候选的运动信息或时间候选的运动信息是否可用。
[0654]
在下文中,候选块可包括空间候选和时间候选。
[0655]
例如,可通过顺序地应用以下步骤1)至步骤4)来执行所述确定。
[0656]
步骤1)当包括候选块的pu位于画面的边界外时,候选块的可用性可被设置为“假”。表述“可用性被设置为假”可具有与“设置为不可用”相同的含义。
[0657]
步骤2)当包括候选块的pu位于条带的边界外时,候选块的可用性可被设置为“假”。当目标块和候选块位于不同条带中时,候选块的可用性可被设置为“假”。
[0658]
步骤3)当包括候选块的pu位于并行块的边界外时,候选块的可用性可被设置为“假”。当目标块和候选块位于不同并行块中时,候选块的可用性可被设置为“假”。
[0659]
步骤4)当包括候选块的pu的预测模式是帧内预测模式时,候选块的可用性可被设置为“假”。当包括候选块的pu不使用帧间预测时,候选块的可用性可被设置为“假”。
[0660]
图11示出根据实施例的将空间候选的运动信息添加到合并列表的顺序。
[0661]
如图11中所示,当空间候选的多条运动信息被添加到合并列表时,可使用a1、b1、b0、a0和b2的顺序。也就是说,可按照a1、b1、b0、a0和b2的顺序将可用空间候选的多条运动信息添加到合并列表。
[0662]
用于在合并模式和跳过模式下推导合并列表的方法
[0663]
如上所述,可设置合并列表中的合并候选的最大数量。可用“n”来指示设置的最大数量。设置的数量可从编码设备100发送到解码设备200。条带的条带头可包括n。换句话说,可通过条带头来设置用于条带的目标块的合并列表中的合并候选的最大数量。例如,n的值基本上可以是5。
[0664]
可按照以下步骤1)至4)的顺序将多条运动信息(即,合并候选)添加到合并列表。
[0665]
步骤1)在空间候选之中,可将可用空间候选添加到合并列表。可按照图10中示出的顺序来将可用空间候选的多条运动信息添加到合并列表。这里,当可用空间候选的运动信息与合并列表中已经存在的其它运动信息重叠时,可不将可用空间候选的运动信息添加到合并列表。检查对应运动信息是否与列表中存在的其它运动信息重叠的操作可被简称为“重叠检查”。
[0666]
被添加的运动信息的最大条数可以是n。
[0667]
步骤2)当合并列表中的运动信息的条数小于n并且时间候选可用时,可将时间候选的运动信息添加到合并列表。这里,当可用时间候选的运动信息与合并列表中已经存在的其它运动信息重叠时,可不将可用时间候选的运动信息添加到合并列表。
[0668]
步骤3)当合并列表中的运动信息的条数小于n并且目标条带的类型是“b”时,可将通过组合双向预测(双预测)而生成的组合运动信息添加到合并列表。
[0669]
目标条带可以是包括目标块的条带。
[0670]
组合运动信息可以是l0运动信息和l1运动信息的组合。l0运动信息可以是仅参照参考画面列表l0的运动信息。l1运动信息可以是仅参照参考画面列表l1的运动信息。
[0671]
在合并列表中,可存在一条或更多条l0运动信息。此外,在合并列表中,可存在一条或更多条l1运动信息。
[0672]
组合运动信息可包括一条或更多条组合运动信息。当生成组合运动信息时,可预先定义所述一条或更多条l0运动信息和所述一条或更多条l1运动信息之中的将被用于生成组合运动信息的步骤的l0运动信息和l1运动信息。可经由使用合并列表中的一对不同运动信息的组合双向预测按照预定义的顺序来生成一条或更多条组合运动信息。所述一对不同运动信息中的一条运动信息可以是l0运动信息,并且所述一对不同运动信息中的另一条运动信息可以是l1运动信息。
[0673]
例如,被添加有最高优先级的组合运动信息可以是具有合并索引0的l0运动信息和具有合并索引1的l1运动信息的组合。当具有合并索引0的运动信息不是l0运动信息时或者当具有合并索引1的运动信息不是l1运动信息时,可既不生成也不添加组合运动信息。接下来,被添加有下一优先级的组合运动信息可以是具有合并索引1的l0运动信息和具有合并索引0的l1运动信息的组合。随后的详细组合可符合视频编码/解码领域的其它组合。
[0674]
这里,当组合运动信息与合并列表中已经存在的其它运动信息重叠时,可不将组合运动信息添加到合并列表。
[0675]
步骤4)当合并列表中的运动信息的条数小于n时,可将零矢量的运动信息添加到合并列表。
[0676]
零矢量运动信息可以是运动矢量是零矢量的运动信息。
[0677]
零矢量运动信息的条数可以是一个或更多个。一条或更多条零矢量运动信息的参考画面索引可彼此不同。例如,第一零矢量运动信息的参考画面索引的值可以是0。第二零矢量运动信息的参考画面索引的值可以是1。
[0678]
零矢量运动信息的条数可与参考画面列表中的参考画面的数量相同。
[0679]
零矢量运动信息的参考方向可以是双向的。两个运动矢量都可以是零矢量。零矢量运动信息的条数可以是参考画面列表l0中的参考画面的数量和参考画面列表l1中的参考画面的数量中较小的一个。可选地,当参考画面列表l0中的参考画面的数量和参考画面列表l1中的参考画面的数量彼此不同时,作为单向的参考方向可被用于可仅应用于单个参考画面列表的参考画面索引。
[0680]
编码设备100和/或解码设备200可随后将零矢量运动信息添加到合并列表,同时改变参考画面索引。
[0681]
当零矢量运动信息与合并列表中已经存在的其它运动信息重叠时,可不将零矢量运动信息添加到合并列表。
[0682]
上述步骤1)至步骤4)的顺序仅是示例性的,并且可被改变。此外,可根据预定义的条件省略以上步骤中的一些步骤。
[0683]
用于在amvp模式下推导预测运动矢量候选列表的方法
[0684]
可预先定义预测运动矢量候选列表中的预测运动矢量候选的最大数量。可用n来指示预定义的最大数量。例如,预定义的最大数量可以是2。
[0685]
可按照以下的步骤1)至步骤3)的顺序将多条运动信息(即,预测运动矢量候选)添加到预测运动矢量候选列表。
[0686]
步骤1)可将空间候选之中的可用空间候选添加到预测运动矢量候选列表。空间候选可包括第一空间候选和第二空间候选。
[0687]
第一空间候选可以是a0、a1、经缩放的a0和经缩放的a1中的一个。第二空间候选可以是b0、b1、b2、经缩放的b0、经缩放的b1和经缩放的b2中的一个。
[0688]
可按照第一空间候选和第二空间候选的顺序将可用空间候选的多条运动信息添加到预测运动矢量候选列表。在这种情况下,当可用空间候选的运动信息与预测运动矢量候选列表中已经存在的其它运动信息重叠时,可不将可用空间候选的运动信息添加到预测运动矢量候选列表。换句话说,当n的值是2时,如果第二空间候选的运动信息与第一空间候选的运动信息相同,则可不将第二空间候选的运动信息添加到预测运动矢量候选列表。
[0689]
被添加的运动信息的最大条数可以是n。
[0690]
步骤2)当预测运动矢量候选列表中的运动信息的条数小于n并且时间候选可用时,可将时间候选的运动信息添加到预测运动矢量候选列表。在这种情况下,当可用时间候选的运动信息与预测运动矢量候选列表中已经存在的其它运动信息重叠时,可不将可用时间候选的运动信息添加到预测运动矢量候选列表。
[0691]
步骤3)当预测运动矢量候选列表中的运动信息的条数小于n时,可将零矢量运动信息添加到预测运动矢量候选列表。
[0692]
零矢量运动信息可包括一条或更多条零矢量运动信息。所述一条或更多条零矢量运动信息的参考画面索引可彼此不同。
[0693]
编码设备100和/或解码设备200可顺序地将多条零矢量运动信息添加到预测运动矢量候选列表,同时改变参考画面索引。
[0694]
当零矢量运动信息与预测运动矢量候选列表中已经存在的其它运动信息重叠时,可不将零矢量运动信息添加到预测运动矢量候选列表。
[0695]
以上结合合并列表做出的对零矢量运动信息的描述也可应用于零矢量运动信息。将省略其重复的描述。
[0696]
以上描述的步骤1)至步骤3)的顺序仅是示例性的,并且可被改变。此外,可根据预定义的条件省略所述步骤中的一些步骤。
[0697]
图12示出根据示例的变换和量化处理。
[0698]
如图12中所示,可通过对残差信号执行变换和/或量化处理来生成量化的等级。
[0699]
残差信号可被生成为原始块与预测块之间的差。这里,预测块可以是经由帧内预测或帧间预测生成的块。
[0700]
残差信号可通过作为量化过程的一部分的变换过程被变换为频域中的信号。
[0701]
用于变换的变换核可包含各种dct核,诸如离散余弦变换(dct)类型2(dct-ii)及离散正弦变换(dst)核。
[0702]
这些变换核可对残差信号执行可分离变换或二维(2d)不可分离变换。可分离变换可为指示在水平方向及垂直方向中的每一者上对残差信号执行一维(1d)变换的变换。
[0703]
自适应地用于1d变换的dct类型和dst类型除了dct-ii之外还可包括dct-v、dct-viii、dst-i和dst-vii,如下表3和下表4中的每个表中所示。
[0704]
表3
[0705][0706][0707]
表4
[0708]
变换集变换候选0dst-vii,dct-viii,dst-i1dst-vii,dst-i,dct-viii2dst-vii,dct-v,dst-i
[0709]
如表3和表4中所示,当推导出将被用于变换的dct类型或dst类型时,可使用变换集。每个变换集可包括多个变换候选。每个变换候选可为dct类型或dst类型。
[0710]
下面的表5示出根据帧内预测模式将被应用于水平方向的变换集和将被应用于垂直方向的变换集的示例。
[0711]
表5
[0712]
帧内预测模式0123456789垂直变换集2101010101水平变换集2101010101帧内预测模式10111213141516171819垂直方向变换集0101000000水平方向变换集0101222222帧内预测模式20212223242526272829垂直方向变换集0001010101水平方向变换集2221010101帧内预测模式30313233343536373839垂直方向变换集0101010101水平方向变换集0101010101帧内预测模式40414243444546474849垂直方向变换集0101012222水平方向变换集0101010000帧内预测模式50515253545556575859垂直方向变换集2222210101水平方向变换集0000010101帧内预测模式60616263646566
ꢀꢀꢀ
垂直方向变换集0101010
ꢀꢀꢀ
水平方向变换集0101010
ꢀꢀꢀ
[0713]
在表5中,根据目标块的帧内预测模式将被应用于残差信号的水平方向的垂直变换集和水平变换集的编号被示出。
[0714]
如表5中所例示,可根据目标块的帧内预测模式来预先定义将被应用于水平方向和垂直方向的变换集。编码设备100可使用包括在与目标块的帧内预测模式对应的变换集中的变换来对残差信号执行变换和逆变换。此外,解码设备200可使用包括在与目标块的帧内预测模式对应的变换集中的变换来对残差信号执行逆变换。
[0715]
在变换和逆变换中,如表3、表4和表5中所例示,将被应用于残差信号的变换集可被确定,并且可不被用信号发送。可将变换指示信息从编码设备100用信号发送到解码设备200。变换指示信息可以是指示将被应用于残差信号的变换集中包括的多个变换候选中的哪一个被使用的信息。
[0716]
例如,当目标块的尺寸为64
×
64或更小时,可根据帧内预测模式来配置各自具有三个变换的变换集。可从由水平方向上的三个变换和垂直方向上的三个变换的组合产生的总共九个多变换方法中选择最优变换方法。通过这样的最优变换方法,残差信号可被编码和/或解码,并且因此可提高编码效率。
[0717]
这里,指示属于每个变换集的多个变换中的哪一个已被用于垂直变换和水平变换中的至少一个的信息可被熵编码和/或熵解码。这里,截断一元二值化可被用于对这样的信息进行编码和/或解码。
[0718]
如上所述,使用各种变换的方法可被应用于经由帧内预测或帧间预测生成的残差信号。
[0719]
变换可包括第一变换和次级变换中的至少一个。可通过对残差信号执行第一变换来生成变换系数,并且可通过对变换系数执行次级变换来生成次级变换系数。
[0720]
第一变换可被称为“初级变换”。此外,第一变换也可被称为“自适应多变换(amt)方案”。如上所述,amt可表示将不同的变换应用于各个1d方向(即,垂直方向和水平方向)。
[0721]
次级变换可以是用于提高由第一变换生成的变换系数的能量集中度的变换。类似于第一变换,次级变换可以是可分离变换或不可分离变换。这样的不可分离变换可以是不可分离次级变换(nsst)。
[0722]
可使用预定义的多种变换方法中的至少一种来执行第一变换。例如,所述预定义的多种变换方法可包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen-loeve变换(klt)等。
[0723]
此外,根据定义离散余弦变换(dct)或离散正弦变换(dst)的核函数,第一变换可以是具有各种类型的变换。
[0724]
例如,根据下表6中呈现的变换核,第一变换可包括诸如dct-2、dct-5、dct-7、dst-7、dst-1、dst-8和dct-8的变换。在下表6中,例示了用于多变换选择(mts)的各种变换类型和变换核函数。
[0725]
mts可指对一个或更多个dct和/或dst核的组合的选择,以便在水平和/或垂直方向上对残差信号进行变换。
[0726]
表6
[0727][0728]
在表6中,i和j可以是等于或大于0并且小于或等于n-1的整数值。
[0729]
可对通过执行第一变换而生成的变换系数执行次级变换。
[0730]
如在第一变换中,还可在次级变换中定义变换集。用于推导和/或确定上述变换集的方法不仅可被应用于第一变换,还可被应用于次级变换。
[0731]
可针对特定目标确定第一变换和次级变换。
[0732]
例如,第一变换和次级变换可被应用于与亮度(luma)分量和色度(chroma)分量中的一个或更多个对应的信号分量。可根据针对目标块和/或邻近块的编码参数中的至少一个来确定是否应用第一变换和/或次级变换。例如,可根据目标块的尺寸和/或形状来确定是否应用第一变换和/或次级变换。
[0733]
在编码设备100和解码设备200中,可通过利用指定信息来推导指示将被用于目标的变换方法的变换信息。
[0734]
例如,变换信息可包括将被用于初级变换和/或次级变换的变换索引。可选地,变换信息可指示初级变换和/或次级变换不被使用。
[0735]
例如,当初级变换和次级变换的目标是目标块时,可根据针对目标块和/或与目标块邻近的块的编码参数中的至少一个来确定由变换信息指示的将被应用于初级变换和/或次级变换的变换方法。
[0736]
可选地,可从编码设备100向解码设备200用信号发送针对特定目标的指示变换方法的变换信息。
[0737]
例如,对于单个cu,可由解码设备200将是否使用初级变换、指示初级变换的索引、是否使用次级变换以及指示次级变换的索引推导为变换信息。可选地,对于单个cu,可用信号发送指示以下项的变换信息:是否使用初级变换、指示初级变换的索引、是否使用次级变换以及指示次级变换的索引。
[0738]
可通过对通过执行第一变换和/或次级变换而生成的结果执行量化或者对残差信号执行量化来生成量化的变换系数(即,量化的等级)。
[0739]
图13示出根据示例的对角线扫描。
[0740]
图14示出根据示例的水平扫描。
[0741]
图15示出根据示例的垂直扫描。
[0742]
可根据帧内预测模式、块尺寸和块形状中的至少一个,经由(右上)对角线扫描、垂直扫描和水平扫描中的至少一个对量化的变换系数进行扫描。所述块可以是变换单元(tu)。
[0743]
每个扫描可在特定的开始点处启动,并且可在特定的结束点处终止。
[0744]
例如,可通过使用图13的对角线扫描对块的系数进行扫描来将量化的变换系数改变为1d矢量形式。可选地,可根据块的尺寸和/或帧内预测模式使用图14的水平扫描或图15的垂直扫描,而不使用对角线扫描。
[0745]
垂直扫描可以是在列方向上扫描2d块类型系数的操作。水平扫描可以是在行方向上扫描2d块类型系数的操作。
[0746]
换句话说,可根据块的尺寸和/或帧间预测模式来确定对角线扫描、垂直扫描和水平扫描中的哪一个将被使用。
[0747]
如图13、图14和图15中所示,可沿着对角线方向、水平方向或垂直方向扫描量化的变换系数。
[0748]
量化的变换系数可由块形状表示。每个块可包括多个子块。可根据最小块尺寸或最小块形状来定义每个子块。
[0749]
在扫描中,根据扫描的类型或方向的扫描顺序可被首先应用于子块。此外,根据扫描的方向的扫描顺序可被应用于每个子块中的量化的变换系数。
[0750]
例如,如图13、图14和图15中所示,当目标块的尺寸是8
×
8时,可通过对目标块的残差信号的第一变换、次级变换和量化来生成量化的变换系数。因此,可将三种类型的扫描顺序中的一种应用于四个4
×
4的子块,并且还可根据所述扫描顺序针对每个4
×
4的子块扫描量化的变换系数。
[0751]
编码设备100可通过对经过扫描的量化的变换系数执行熵编码来生成熵编码的量化的变换系数,并且可生成包括熵编码的量化的变换系数的比特流。
[0752]
解码设备200可从比特流中提取熵编码的量化的变换系数,并且可通过对熵编码的量化的变换系数执行熵解码来生成量化的变换系数。可经由逆扫描按照2d块的形式对量化的变换系数进行排列。这里,作为逆扫描的方法,可执行右上对角线扫描、垂直扫描和水平扫描中的至少一个。
[0753]
在解码设备200中,可对量化的变换系数执行反量化。可根据是否执行次级逆变换,对通过执行反量化而生成的结果执行次级逆变换。此外,可根据是否将执行第一逆变换,对通过执行次级逆变换而生成的结果执行第一逆变换。可通过对经由执行次级逆变换而生成的结果执行第一逆变换来生成重建的残差信号。
[0754]
对于经由帧内预测或帧间预测重建的亮度分量,可在环路滤波之前执行具有动态范围的逆映射。
[0755]
动态范围可被划分为16个相等的段,并且可用信号发送相应段的映射函数。可在条带级或并行块组级用信号发送这种映射函数。
[0756]
可基于映射函数推导用于执行逆映射的逆映射函数。
[0757]
可在逆映射区域中执行环路滤波、参考画面的存储和运动补偿。
[0758]
经由帧间预测生成的预测块可通过使用映射函数的映射而被变换到映射区域,并且变换后的预测块可被用于生成重建块。然而,由于在映射区域中执行帧内预测,因此经由帧内预测生成的预测块可在不需要映射和/或逆映射的情况下被用于生成重建块。
[0759]
例如,当目标块是色度分量的残差块时,可通过对映射区域的色度分量进行缩放来将残差块变换到逆映射区域。
[0760]
可在条带级或并行块组级用信号发送缩放是否可用。
[0761]
例如,缩放可仅被应用于映射可用于亮度分量且亮度分量的分区及色度分量的分区遵循相同树结构的情况。
[0762]
可基于与色度预测块对应的亮度预测块中的样点的值的平均值执行缩放。这里,当目标块使用帧间预测时,亮度预测块可表示映射的亮度预测块。
[0763]
可通过使用亮度预测块的样点值的平均值所属的片段的索引参考查找表来推导缩放所需的值。
[0764]
可通过使用最终推导的值对残差块进行缩放来将残差块变换到逆映射区域。此后,对于色度分量的块,可在逆映射区域中执行重建、帧内预测、帧间预测、环路滤波和参考画面的存储。
[0765]
例如,可通过序列参数集用信号发送指示亮度分量和色度分量的映射和/或逆映射是否可用的信息。
[0766]
可基于块矢量生成目标块的预测块。块矢量可指示目标块与参考块之间的位移。参考块可以是目标图像中的块。
[0767]
以这种方式,通过参考目标图像生成预测块的预测模式可被称为“帧内块复制(ibc)模式”。
[0768]
ibc模式可被应用于具有特定尺寸的cu。例如,ibc模式可被应用于m
×
n的cu。这里,m和n可小于或等于64。
[0769]
ibc模式可包括跳过模式、合并模式、amvp模式等。在跳过模式或合并模式的情况下,可配置合并候选列表,并且用信号发送合并索引,且因此可在合并候选列表中存在的合并候选之中指定单个合并候选。指定的合并候选的块矢量可被用作目标块的块矢量。
[0770]
在amvp模式的情况下,可用信号发送差分块矢量。此外,可从目标块的左侧邻近块和上方邻近块推导预测块矢量。此外,可用信号发送指示将使用哪个邻近块的索引。
[0771]
ibc模式中的预测块可被包括在目标ctu或左侧ctu中,并且可被限于先前重建区域内的块。例如,可限制块矢量的值,使得目标块的预测块位于特定区域中。特定区域可以是由在包括目标块的64
×
64的块之前被编码和/或解码的三个64
×
64的块限定的区域。以这种方式限制块矢量的值,因此可减少由ibc模式的实施引起的存储器消耗和装置复杂性。
[0772]
图16是根据实施例的编码设备的配置图。
[0773]
编码设备1600可与以上描述的编码设备100对应。
[0774]
编码设备1600可包括通过总线1690彼此通信的处理单元1610、内存1630、用户界面(ui)输入装置1650、ui输出装置1660和存储器1640。编码设备1600还可包括连接到网络1699的通信单元1620。
[0775]
处理单元1610可以是用于运行存储在内存1630或存储器1640中的处理指令的中
央处理器(cpu)或半导体器件。处理单元1610可以是至少一个硬件处理器。
[0776]
处理单元1610可生成并处理被输入到编码设备1600的、从编码设备1600输出的、或者在编码设备1600中使用的信号、数据或信息,并且可执行与信号、数据或信息相关的检查、比较、确定等。换句话说,在实施例中,可由处理单元1610执行数据或信息的生成和处理以及与数据或信息相关的检查、比较和确定。
[0777]
处理单元1610可包括帧间预测单元110、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
[0778]
帧间预测单元110、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190中的至少一些可以是程序模块,并且可与外部装置或系统进行通信。所述程序模块可以以操作系统、应用程序模块或其它程序模块的形式被包括在编码设备1600中。
[0779]
所述程序模块可被物理地存储在各种类型的公知的存储装置中。此外,所述程序模块中的至少一些也可被存储在能够与编码设备1600进行通信的远程存储装置中。
[0780]
程序模块可包括但不限于用于执行根据实施例的功能或操作或者用于实现根据实施例的抽象数据类型的例程、子例程、程序、对象、组件和数据结构。
[0781]
可使用由编码设备1600的至少一个处理器运行的指令或代码来实现所述程序模块。
[0782]
处理单元1610可运行帧间预测单元110、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190中的指令或代码。
[0783]
存储单元可表示内存1630和/或存储器1640。内存1630和存储器1640中的每一个可以是各种类型的易失性或非易失性存储介质中的任意一种。例如,内存1630可包括只读存储器(rom)1631和随机存取存储器(ram)1632中的至少一个。
[0784]
存储单元可存储用于编码设备1600的操作的数据或信息。在实施例中,编码设备1600的数据或信息可被存储在存储单元中。
[0785]
例如,存储单元可存储画面、块、列表、运动信息、帧间预测信息、比特流等。
[0786]
编码设备1600可被实现在包括计算机可读存储介质的计算机系统中。
[0787]
存储介质可存储编码设备1600的操作所需的至少一个模块。内存1630可存储至少一个模块,并且可被配置为使得所述至少一个模块由处理单元1610运行。
[0788]
可通过通信单元1620来执行与编码设备1600的数据或信息的通信相关的功能。
[0789]
例如,通信单元1620可将比特流发送到随后将描述的解码设备1700。
[0790]
图17是根据实施例的解码设备的配置图。
[0791]
解码设备1700可与以上描述的解码设备200对应。
[0792]
解码设备1700可包括通过总线1790彼此通信的处理单元1710、内存1730、用户界面(ui)输入装置1750、ui输出装置1760和存储器1740。解码设备1700还可包括连接到网络1799的通信单元1720。
[0793]
处理单元1710可以是用于运行存储在内存1730或存储器1740中的处理指令的中
央处理器(cpu)或半导体器件。处理单元1710可以是至少一个硬件处理器。
[0794]
处理单元1710可生成并处理被输入到解码设备1700的、从解码设备1700输出的、或者在解码设备1700中使用的信号、数据或信息,并且可执行与信号、数据或信息相关的检查、比较、确定等。换句话说,在实施例中,可由处理单元1710执行数据或信息的生成和处理以及与数据或信息相关的检查、比较和确定。
[0795]
处理单元1710可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、帧间预测单元250、切换器245、加法器255、滤波器单元260和参考画面缓冲器270。
[0796]
解码设备200的熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、帧间预测单元250、加法器255、切换器245、滤波器单元260和参考画面缓冲器270中的至少一些可以是程序模块,并且可与外部装置或系统进行通信。所述程序模块可以以操作系统、应用程序模块或其它程序模块的形式被包括在解码设备1700中。
[0797]
程序模块可被物理地存储在各种类型的公知的存储装置中。此外,所述程序模块中的至少一些也可被存储在能够与解码设备1700进行通信的远程存储装置中。
[0798]
程序模块可包括但不限于用于执行根据实施例的功能或操作或者用于实现根据实施例的抽象数据类型的例程、子例程、程序、对象、组件和数据结构。
[0799]
可使用由解码设备1700的至少一个处理器运行的指令或代码来实现所述程序模块。
[0800]
处理单元1710可运行熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、帧间预测单元250、切换器245、加法器255、滤波器单元260和参考画面缓冲器270中的指令或代码。
[0801]
存储单元可表示内存1730和/或存储器1740。内存1730和存储器1740中的每一个可以是各种类型的易失性或非易失性存储介质中的任意一种。例如,内存1730可包括rom 1731和ram 1732中的至少一个。
[0802]
存储单元可存储用于解码设备1700的操作的数据或信息。在实施例中,解码设备1700的数据或信息可被存储在存储单元中。
[0803]
例如,存储单元可存储画面、块、列表、运动信息、帧间预测信息、比特流等。
[0804]
解码设备1700可被实现在包括计算机可读存储介质的计算机系统中。
[0805]
存储介质可存储解码设备1700的操作所需的至少一个模块。内存1730可存储至少一个模块,并且可被配置为使得所述至少一个模块由处理单元1710运行。
[0806]
可通过通信单元1720来执行与解码设备1700的数据或信息的通信相关的功能。
[0807]
例如,通信单元1720可从编码设备1600接收比特流。
[0808]
帧内子分区(isp)
[0809]
图18示出根据示例的用于将目标块分区为两个子块的isp。
[0810]
图19示出根据示例的用于将目标块分区为四个子块的isp。
[0811]
图18和图19示出作为帧内预测方法之一的isp的执行的示例。
[0812]
在图像压缩中,随着块的尺寸越大,针对该块的预测的准确度可能变得越低,并且在变换过程中发生错误的概率可能越高。因此,随着块的尺寸越大,针对该块的压缩性能可能进一步劣化。
[0813]
因此,单个块可被分区为更小的块,并且可对分区出的块执行预测和变换。换言
之,可通过对一个父块进行分区来生成多个更小的子块,并且可将块处理应用于所述子块。
[0814]
在帧内预测中,如图18和图19中所示,可通过帧内子分区(isp)将块分区为更小的块,并且可通过对更小的分区块单元执行预测、变换等来提高针对图像信息的压缩效率。
[0815]
在提供诸如isp的帧内预测方法的编码设备100和解码设备200中,可另外用信号发送isp标志和isp模式。
[0816]
isp标志可指示isp是否将被使用。
[0817]
isp模式可指示isp的类型。
[0818]
例如,isp模式可指定针对目标块的分区方向。isp模式可指示水平模式和垂直模式中的一个模式。水平模式可以是对目标块应用水平分区的模式。垂直模式可以是对目标块应用垂直分区的模式。
[0819]
在下文中,isp信令可以是与isp相关的信息的信令。例如,isp信令可以是isp标志和isp模式的信令。
[0820]
与isp相关的信息可包括isp标志和isp模式。与isp相关的信息还可包括帧内子分区(isp)的数量。isp的数量可指示从对目标块的分区生成的子块的数量。isp的数量可从编码设备100被用信号发送,并且可由编码设备100和解码设备200基于上述实施例中例示的特定编码参数以相同方式推导出。
[0821]
所述编码参数可指示块的宽度和高度、宽度/高度的最大值/最小值、宽度和高度之和、属于该块的像素的数量、块形状、分量类型、参考像素的位置/范围、帧内预测模式的类型(例如,帧内预测模式是否是方向模式或帧内预测模式是否是预定义的默认模式)或角度、关于变换是否被跳过的信息、变换类型等中的至少一个。这里,该块可以是目标块(即,预测块和变换块中的至少一个)或与目标块邻近的块。
[0822]
如图18和图19中所示,当isp被使用时,目标块可被分区为n个子块。这里,n可以是整数2或更大的整数。
[0823]
目标块可具有w
×
h的尺寸。目标块的宽度可以是w,并且其高度可以是h。这里,宽度可以是水平像素的数量。高度可以是垂直像素的数量。w可以是整数1或更大的整数。h可以是整数1或更大的整数。
[0824]
如图18中所示,目标块可被垂直二等分,并且可被分区为尺寸皆为(w/2)
×
h的两个子块。可选地,目标块可被水平二等分,并且可被分区为尺寸皆为w
×
(h/2)的两个子块。
[0825]
如图19中所示,目标块可被垂直四等分,并且可被分区为尺寸皆为(w/4)
×
h的四个子块。可选地,目标块可被水平四等分,并且可被分区为尺寸皆为w
×
(h/4)的四个子块。
[0826]
可根据目标块的尺寸确定或限制目标块的分区的形状。
[0827]
例如,当目标块的尺寸是4
×
4时,可不执行将目标块分区为子块。
[0828]
例如,如图18中所示,当目标块的尺寸是4
×
8或8
×
4时,目标块可被分区为两个子块。
[0829]
例如,如图19中所示,当目标块的尺寸不对应于以上例示的尺寸时(即,当目标块的尺寸等于或大于预定义尺寸(诸如8
×
8)时),目标块可被分区为四个子块。
[0830]
在使用isp的帧内预测中,可在目标块被分区之前(针对目标块)选择帧内预测模式。因此,(针对目标块确定的)相同的帧内预测模式可共同被应用于从分区生成的多个子块,并且可使用相同的帧内预测模式对从分区生成的所述多个子块进行编码/解码。此外,
指示帧内预测模式的信息可仅被用信号发送一次。
[0831]
水平分区可以是将目标块分区为尺寸皆为w
×
h/4或w
×
h/2的子块的操作。也就是说,水平分区的分区方向可以是水平的。垂直分区可以是将目标块分区为尺寸皆为w/4
×
h或w/2
×
h的子块的操作。也就是说,垂直分区的分区方向可以是垂直的。
[0832]
当通过isp将目标块分区为一个或更多个子块时,可对每个子块执行编码/解码。每个子块的编码可包括对对应子块的预测、变换、量化、反量化、逆变换和重建中的至少一个。每个子块的解码可包括对对应子块的反量化、逆变换、预测和重建中的至少一个。换言之,子块可以是将被应用诸如预测、变换、量化、反量化、逆变换和重建的处理的单元。
[0833]
通过划分编码/解码的单元,可以提高预测等的准确性,并且可以增强压缩的性能。
[0834]
变换方法
[0835]
在以下与变换相关的描述中,“变换”可以是应用于编码设备100的术语。在以下与变换相关的描述中,术语“变换”可被替换为与解码设备200相关的术语“逆变换”。
[0836]
在实施例中描述的图像编码/解码方法中,当初级变换和次级变换被使用时,可基于与初级变换对应的初级变换方法(或类型)来确定与次级变换对应的次级变换方法。该确定在提高编码/解码的效率方面可能受到限制。这里,“初级变换方法”可指用于初级变换的核。“次级变换方法”可指用于次级变换的核。
[0837]
在稍后描述的实施例中,可基于与次级变换对应的次级变换方法来确定与初级变换对应的初级变换方法。换言之,与初级变换对应的初级变换方法可和与次级变换对应的次级变换方法相关联。可选地,与初级变换对应的初级变换方法可取决于与次级变换对应的次级变换方法。
[0838]
在实施例中,当存在针对目标块的残差信号时,可通过在编码处理中对残差信号进行变换编码来生成关于目标块的编码信息。例如,编码信息可以是量化的变换系数等级。
[0839]
编码信息可被包括在比特流中,并且可通过比特流被用信号发送到解码设备200。
[0840]
此外,当存在针对目标块的残差信号时,解码设备200可在解码处理中通过比特流获取编码信息。可通过对编码信息执行逆变换解码来生成针对目标块的(重建的)残差信号。例如,编码信息可以是量化的变换系数等级。
[0841]
指示编码信息(例如,量化的变换系数等级)是否存在于比特流中的标识信息可被包括在比特流中。该标识信息可通过比特流从编码设备100被用信号发送到解码设备200。
[0842]
该标识信息可包括以下项中的一项或更多项:1)编码块标志(针对编码单元:cu)、2)亮度编码块标志(针对变换单元:tu)、3)色度红色(cr)编码块标志(针对tu)、和4)色度蓝色(cb)编码块标志(针对tu)。
[0843]
编码块标志、亮度编码块标志、色度红色编码块标志和色度蓝色编码块标志的“标志”可以仅仅是示例性的。术语“标志”可用术语“信息”来替换。
[0844]
在下文中,编码块标志可由cu_cbf指示。亮度编码块标志可由tu_cbf_luma指示。色度红色编码块标志可由tu_cbf_cr指示。色度蓝色编码块标志可由tu_cbf_cb指示。所述标志的含义可被如下定义。
[0845]
1)cu_cbf:当(cu的)亮度分量和色度分量具有相同的块分区结构时,cu_cbf可以是指示是否存在针对亮度分量块的变换系数和针对色度分量块的变换系数的信息。在标识
信息的描述中,变换系数可以是关于残差块的信息。在标识信息的描述中,术语“变换系数”可用“变换系数等级”、“残差信号”、“量化的等级”、“量化的变换系数等级”、“量化的等级”和/或“量化的系数”来替换。
[0846]
当(cu的)亮度分量和色度分量具有独立的块分区结构时,cu_cbf可以是指示是否存在针对亮度分量块或色度分量块的变换系数的信息。
[0847]
当cu_cbf的值是第一值(例如,0)时,(在比特流中)可不存在针对目标块的残差块的变换系数。换言之,cu_cbf的第一值可指示不存在针对目标块的残差块的变换系数。因此,当cu_cbf的值是第一值时,可跳过用信号发送变换系数的操作。这里,目标块可以是cu,并且可以是通过对cu进行分区而生成的多个块中的任意块。
[0848]
当cu_cbf的值是第二值(例如,1)时,(在比特流中)可存在针对目标块的残差块的变换系数。换言之,cu_cbf的第二值可指示存在针对目标块的残差块的变换系数。因此,当cu_cbf的值是第二值时,可用信号发送变换系数。这里,目标块可以是cu,并且可以是通过对cu进行分区而生成的多个块中的任意块。
[0849]
当(cu的)亮度分量和色度分量具有相同的块分区结构并且对于所有亮度分量块和色度分量块不存在残差信号时,cu_cbf可具有第一值。色度分量块可以是cb分量块和cr分量块。
[0850]
当(cu的)亮度分量和色度分量具有相同的块分区结构并且存在针对亮度分量块和色度分量块中的至少一个的变换系数时,cu_cbf可具有第二值。
[0851]
2)tu_cbf_luma:tu_cbf_luma可指示是否存在针对(tu的)亮度分量块的变换系数。
[0852]
当tu_cbf_luma的值是第一值(例如,0)时,(在比特流中)可不存在针对亮度分量块的残差块的变换系数。换言之,tu_cbf_luma的第一值可指示不存在针对亮度分量块的残差块的变换系数。因此,当tu_cbf_luma的值是第一值时,可跳过用信号发送变换系数的操作。这里,亮度分量块可以是通过对cu进行分区而生成的tu。
[0853]
当tu_cbf_luma的值是第二值(例如,1)时,(在比特流中)可存在针对亮度分量块的残差块的变换系数。换言之,tu_cbf_luma的第二值可指示存在针对亮度分量块的残差块的变换系数。因此,当tu_cbf_luma的值是第二值时,可用信号发送变换系数。这里,亮度分量块可以是通过对cu进行分区而生成的tu。
[0854]
3)tu_cbf_cr:tu_cbf_cr可指示是否存在针对(tu的)cr分量块的变换系数。
[0855]
当tu_cbf_cr的值是第一值(例如,0)时,(在比特流中)可不存在针对cr分量块的残差块的变换系数。换言之,tu_cbf_cr的第一值可指示不存在针对cr分量块的残差块的变换系数。因此,当tu_cbf_cr的值是第一值时,可跳过用信号发送变换系数的操作。这里,cr分量块可以是通过对cu进行分区而生成的tu。
[0856]
当tu_cbf_cr的值是第二值(例如,1)时,(在比特流中)可存在针对cr分量块的残差块的变换系数。换言之,tu_cbf_cr的第二值可指示存在针对cr分量块的残差块的变换系数。因此,当tu_cbf_cr的值是第二值时,可用信号发送变换系数。这里,cr分量块可以是通过对cu进行分区而生成的tu。
[0857]
3)tu_cbf_cb:tu_cbf_cb可指示是否存在针对(tu的)cb分量块的变换系数。
[0858]
当tu_cbf_cb的值是第一值(例如,0)时,(在比特流中)可不存在针对cb分量块的
残差块的变换系数。换言之,tu_cbf_cb的第一值可指示不存在针对cb分量块的残差块的变换系数。因此,当tu_cbf_cb的值是第一值时,可跳过用信号发送变换系数的操作。这里,cb分量块可以是通过对cu进行分区而生成的tu。
[0859]
当tu_cbf_cb的值是第二值(例如,1)时,(在比特流中)可存在针对cb分量块的残差块的变换系数。换言之,tu_cbf_cb的第二值可指示存在针对cb分量块的残差块的变换系数。因此,当tu_cbf_cb的值是第二值时,可用信号发送变换系数。这里,cb分量块可以是通过对cu进行分区而生成的tu。
[0860]
通常,仅当cu_cbf的值是第二值时,tu_cbf_luma、tu_cbf_cr和tu_cbf_cb中的一个或更多个可被另外用信号发送,并且用信号发送的tu_cbf_luma、tu_cbf_cr和tu_cbf_cb可分别指示针对亮度分量、色度分量的cr分量和色度分量的cb分量是否存在变换系数。
[0861]
当亮度分量和色度分量具有独立的块分区结构时,可能发生cu_cbf和tu_cbf_luma具有相同的信息的情况。在这种情况下,tu_cbf_luma可不被用信号发送,并且可从cu_cbf的信息被推导出。例如,tu_cbf_luma可与cu_cbf相同。换言之,cu_cbf的值可被用作tu_cbf_luma的值。
[0862]
变换编码可包括初级变换和次级变换。
[0863]
次级变换可仅被应用于帧内预测模式。换言之,仅当针对目标块使用帧内预测时,可执行针对作为变换的目标的目标块的次级变换。
[0864]
初级变换可以是多种方法中的一种方法。初级变换方法可以是所述多种方法中的用于初级变换的方法。
[0865]
例如,初级变换方法可以是在目标块的水平方向和垂直方向上将dct-2应用于目标块的离散余弦变换(dct)-2方法。可选地,初级变换方法可以是在目标块的水平方向上应用dst-7并在目标块的垂直方向上应用dct-8的dct-7和dct-8的组合。
[0866]
应用于目标块的初级变换方法可以以索引的形式被用信号发送。初级变换方法索引可以是初级变换方法的索引。
[0867]
例如,当初级变换方法是dct-2时,初级变换方法索引的值可以是0。当初级变换方法是dst-7和dct-8的组合时,初级变换方法索引的值可以是大于0的特定整数。
[0868]
例如,当初级变换方法索引的值为1时,可在目标块的水平方向和垂直方向上应用dst-7。当初级变换方法索引的值为2时,可在目标块的水平方向上应用dst-7,并且可在目标块的垂直方向上应用dct-8。当初级变换方法索引的值为3时,可在目标块的水平方向上应用dct-8,并且可在目标块的垂直方向上应用dst-7。当初级变换方法索引的值为4时,可在目标块的水平方向和垂直方向两者上应用dct-8。
[0869]
例如,当初级变换方法索引的值为2时,可在目标块的水平方向上应用dct-8,并且可在目标块的垂直方向上应用dst-7。当初级变换方法索引的值为3时,可在目标块的水平方向上应用dst-7,并且可在目标块的垂直方向上应用dct-8。
[0870]
初级变换方法索引可由mts_idx或mts_idx[x0][y0]表示。x0和y0可以是目标块中的坐标。mts_idx[x0][y0]可指示针对目标块中的最左上方像素(或包括最左上方像素的块)的初级变换方法索引。在下文中,mts_idx[x0][y0]可用mts_idx来替换。
[0871]
例如,mts_idx[x0][y0]具有第一值(例如,0)的情况可表示dct-2被应用于目标块。
[0872]
次级变换可以是多种方法中的一种方法。次级变换方法可以是所述多种方法中的用于次级变换的方法。
[0873]
次级变换可仅被应用于应用了初级变换的信号(或块)的一部分。
[0874]
应用于目标块的次级变换方法可以以索引的形式被用信号发送。次级变换方法索引可以是次级变换方法的索引。
[0875]
例如,当次级变换未被应用于目标块时,次级变换方法索引的值可以是0。当次级变换被应用于目标块时,次级变换方法索引的值可以是大于0的整数。
[0876]
次级变换方法索引可由lfnst_idx或lfnst_idx[x0][y0]表示。x0和y0可以是目标块中的坐标。lfnst_idx[x0][y0]可指示针对目标块中的最左上方像素(或包括最左上方像素的块)的次级变换方法索引。在下文中,lfnst_idx[x0][y0]可用lfnst_idx来替换。
[0877]
fnst_idx[x0][y0]具有第一值(例如,0)的情况可表示次级变换未被应用于目标块。
[0878]
当lfnst_idx[x0][y0]具有第二值(例如,1)时,由lfnst_idx[x0][y0]指示的第一个次级变换方法可被用于次级变换。
[0879]
当lfnst_idx[x0][y0]具有第三值(例如,2)时,由lfnst_idx[x0][y0]指示的第二个次级变换方法可被用于次级变换。
[0880]
lfnst_idx[x0][y0]的值可等于或大于0并且小于或等于n。这里,n可以是正整数。例如,n可以是2。
[0881]
解码设备200可对目标块执行次级逆变换和初级逆变换。
[0882]
解码设备200可使用用信号发送的次级变换方法索引来推导将被应用于对目标块的次级逆变换的核。解码设备200可通过将推导出的核应用于次级逆变换来对目标块执行次级逆变换。解码设备200可通过将推导出的核应用于变换系数来生成经过次级逆变换的信号。
[0883]
解码设备200可使用用信号发送的初级变换方法索引来推导将被应用于对目标块的初级逆变换的核。解码设备200可通过将推导出的核应用于初级逆变换来对目标块执行初级逆变换。解码设备200可通过将推导出的核应用于经过次级逆变换的信号来生成经过次级逆变换和初级逆变换的信号。经过次级逆变换和初级逆变换的信号可以是重建的残差块。
[0884]
当次级变换被应用于目标块时,(针对目标块的水平方向和垂直方向的)初级变换方法可总是为dct-2。当次级变换被应用于目标块时,(针对目标块的水平方向和垂直方向的)初级变换方法可限于dct-2。可在能量集中在应用了初级变换的块的左上方区域的假设下应用次级变换。当初级变换方法是dct-2时,可能存在能量将集中在应用了初级变换的块的左上方区域的趋势。换言之,dct-2可使能量集中在应用了初级变换的块的左上方区域。因此,当次级变换被应用时,dct-2被用作初级变换方法,并且因此从编码效率的角度可获得优势。
[0885]
可限制可应用初级变换和/或次级变换的目标块的水平尺寸或垂直尺寸。水平尺寸可以是水平长度(即,宽度)。垂直尺寸可以是垂直长度(即,高度)。
[0886]
例如,当目标块的水平尺寸和/或垂直尺寸小于或等于特定值时,初级变换可以是可用的。可选地,当目标块的水平尺寸和/或垂直尺寸等于或大于特定值时,初级变换可以
是可用的。可选地,当目标块的水平尺寸和/或垂直尺寸落在特定范围内时,初级变换可以是可用的。
[0887]
例如,当目标块的水平尺寸和/或垂直尺寸小于或等于特定值时,次级变换可以是可用的。可选地,当目标块的水平尺寸和/或垂直尺寸等于或大于特定值时,次级变换可以是可用的。可选地,当目标块的水平尺寸和/或垂直尺寸落在特定范围内时,次级变换可以是可用的。
[0888]
初级变换可用于目标块的事实可表示可以将初级变换应用于目标块。
[0889]
初级变换不可用于目标块的事实可表示不可以将初级变换应用于目标块。
[0890]
次级变换可用于目标块的事实可表示可以将次级变换应用于目标块。根据情况,即使在次级变换可用于目标块的情况下,也可不将次级变换应用于目标块。例如,即使在次级变换可用于目标块的情况下,如果次级变换方法索引的值为0,则也可不将次级变换应用于目标块。
[0891]
次级变换不可用于目标块的事实可表示仅初级变换被应用于目标块,并且次级变换不能被应用于目标块。例如,当次级变换不可用于目标块时,可跳过用信号发送次级变换方法索引的操作(因为不需要确定哪个次级变换方法将被应用)。
[0892]
最大水平尺寸可以是初级变换或次级变换可用的目标块的最大水平尺寸。最大垂直尺寸可以是初级变换或次级变换可用的目标块的最大垂直尺寸。
[0893]
可针对亮度分量和色度分量中的每一个定义最大水平尺寸和/或最大垂直尺寸。针对亮度分量的最大水平尺寸和针对色度分量的最大水平尺寸可彼此不同。针对亮度分量的最大垂直尺寸和针对色度分量的最大垂直尺寸可彼此不同。
[0894]
可选地,可针对亮度分量定义最大水平尺寸和最大垂直尺寸,并且可基于针对亮度分量定义的最大水平尺寸和/或最大垂直尺寸来推导针对色度分量的最大水平尺寸和/或最大垂直尺寸。
[0895]
例如,最大水平尺寸或最大垂直尺寸可以是64、32或2n。n可以是特定正整数。
[0896]
最大水平尺寸或最大垂直尺寸可被称为最大变换块(tb)尺寸。此外,最大尺寸可以是最大水平尺寸或最大垂直尺寸。
[0897]
当cu的尺寸大于初级变换的最大尺寸时,可隐式地对cu进行分区,直到cu的尺寸变得小于或等于初级变换的最大尺寸为止。通过cu的分区生成的块可被称为变换单元(tu)。因此,一个cu可由一个或更多个tu组成。tu可以是应用变换方法的块。
[0898]
下表7中的代码示出用于通过隐式地对cu进行分区直到cu的尺寸变得小于或等于初级变换的最大尺寸为止来配置tu的程序。
[0899]
[表7]
[0900][0901]
在表7和后续的表中,最上方行的左侧部分指示程序(或函数)的名称。
[0902]
在表7和后续的表中,每一行的左侧部分指示一行的代码。可将诸如c和java的编程语言的语法应用于该代码。
[0903]
在表7和后续的表中,每一行的右侧部分指示描述符。ae(v)指示上下文自适应算术熵部门语法元素。当特定行的右侧部分指示ae(v)时,该特定行的左侧部分可指示用信号发送的语法元素的名称。每个语法元素可被上下文自适应算术熵编码。
[0904]
下面的表8、表9和表10中的代码可示出用信号发送以对一个tu进行编码/解码的信息以及用信号发送该信息的条件。
[0905]
[表8]
[0906][0907]
[表9]
[0908][0909]
[表10]
[0910][0911]
如表9和表10中所示,transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]可被选择性地用信号发送。
[0912]
可基于1)sps_transform_skip_enabled_flag、2)bdpcmflag[x0][y0]、3)wc、4)hc、和5)cu_sbt_flag来确定transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]是否将被用信号发送。
[0913]
例如,当sps_transform_skip_enabled_flag的值为1,bdpcmflag[x0][y0][n]的值为0,wc的值小于或等于maxtssize,hc的值小于或等于maxtssize,并且cu_sbt_flag的值为0时,可用信号发送transform_skip_flag[x0][y0][n]。n可以是0、1或2。maxtssize可以是变换跳过可用的最大块尺寸。
[0914]
1)sps_transform_skip_enabled_flag可以是指示变换跳过是否可用于序列参数集(sps)的标志。2)bdpcmflag可以是指示基于块的差量脉冲编码调制(bdpcm)是否将被应用于cu的标志。bdpcmflag[x0][y0][0]可以是针对亮度分量块的bdpcmflag。bdpcmflag[x0][y0][1]可以是针对cb分量块的bdpcmflag。bdpcmflag[x0][y0][2]可以是针对cr分量块的bdpcmflag。3)wc可以是cu的水平尺寸。4)hc可以是cu的垂直尺寸。5)cu_sbt_flag可以是指示子块变换是否将被用于cu的标志。
[0915]
次级变换可仅被应用于cu的尺寸小于或等于最大tb尺寸的情况。当cu的尺寸大于最大tb尺寸时,可不应用次级变换。仅在cu的水平尺寸小于或等于最大tb(水平)尺寸并且cu的垂直尺寸小于或等于最大tb(垂直)尺寸的情况下,可应用次级变换。在cu的水平尺寸大于最大tb(水平)尺寸或cu的垂直尺寸大于最大tb(垂直)尺寸的情况下,可不应用次级变换。
[0916]
可选地,在cu的尺寸小于或等于最大tb尺寸的情况下,次级变换可以是可用的。当cu的尺寸大于最大tb尺寸时,次级变换可以是不可用的。在cu的水平尺寸小于或等于最大tb(水平)尺寸并且cu的垂直尺寸小于或等于最大tb(垂直)尺寸的情况下,次级变换可以是可用的。在cu的水平尺寸大于最大tb(水平)尺寸或cu的垂直尺寸大于最大tb(垂直)尺寸的
情况下,次级变换可以是不可用的。
[0917]
可针对cu用信号发送初级变换方法索引和次级变换方法索引。针对cu的初级变换方法和次级变换方法可由针对cu用信号发送的初级变换方法索引和次级变换方法索引指定,并且相同的初级变换方法和相同的次级变换方法可被应用于cu中包括的所有tu。
[0918]
在这种情况下,当通过将isp应用于目标块来生成帧内预测信号时,可将相同的初级变换方法和相同的次级变换方法应用于通过isp生成的分区出的块。目标块可以是cu。帧内预测信号可包括isp标志、isp模式和帧内预测模式。
[0919]
与将不同的初级变换方法和不同的次级变换方法分别应用于cu中包括的tu的方案相比,该方案可减少将被用信号发送的信息量并从编码效率的角度获得优势。
[0920]
当初级变换方法索引和次级变换方法索引被用信号发送时,可首先用信号发送次级变换方法索引,然后可用信号发送初级变换方法索引(与由解码设备100执行的变换的顺序一致)。
[0921]
当次级变换方法索引的值不为0时(即,当次级变换被应用时),初级变换方法可总是为dct-2。因此,当次级变换方法索引的值不为0时,可不用信号发送初级变换方法索引,并且初级变换方法索引的值可被设置为作为指示dct-2的初级变换方法索引的值的0。
[0922]
当次级变换方法索引的值为0时(即,当次级变换未被应用时),可用信号发送初级变换方法索引。
[0923]
下面将描述的下表11至表27中的代码可指示根据示例的初级变换方法索引和次级变换方法索引的信令。
[0924]
[表11]
[0925][0926]
可使用变换跳过方法对残差信号进行编码。变换跳过方法可以是不对cu的亮度分量或包括在cu中的tu的亮度分量执行初级变换的方法。当变换跳过方法被使用时,可不应用次级变换。当变换跳过方法被使用时,可不用信号发送次级变换方法索引lfnst_idx[x0][y0],并且次级变换方法索引可被推导为第一值(例如,0),以便指示次级变换未被应用。
[0927]
变换跳过模式标志transform_skip_flag[x0][y0]可指示变换跳过方法是否将被应用。
[0928]
针对亮度分量的变换跳过模式标志transform_skip_flag[x0][y0][0]可指示针对亮度分量的变换跳过方法是否将被应用。
[0929]
针对cb分量的变换跳过模式标志transform_skip_flag[x0][y0][1]可指示针对cb分量的变换跳过方法是否将被应用。
[0930]
针对cr分量的变换跳过模式标志transform_skip_flag[x0][y0][2]可指示针对cr分量的变换跳过方法是否将被应用。
[0931]
与变换跳过模式标志transform_skip_flag[x0][y0]相关,当变换跳过模式标志transform_skip_flag[x0][y0]与第一种情况至第十七种情况(这将在下面参照下表12至表28中的代码进行描述)中的至少一种情况匹配时,次级变换方法索引lfnst_idx[x0][y0]
可被熵编码/熵解码并被用信号发送。
[0932]
[表12]
[0933][0934]
第一种情况)如上关于表12的代码所述,当以下代码1具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码1具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0935]
[代码1]
[0936]
(treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0||transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0))
[0937]
1)当树结构具有单树类型(即,single_tree)并且2)transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]中的至少一个具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0938]
树结构可指树类型。
[0939]
[表13]
[0940][0941]
第二种情况)如上关于表13的代码所述,当以下代码2具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码2具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0942]
[代码2]
[0943]
(treetype==dual_tree_luma&&transform_skip_flag[x0][y0][0]==0)
[0944]
1)当树结构具有双树亮度类型(即,dual_tree_luma)并且2)transform_skip_flag[x0][y0][0]具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0945]
例如,当树结构具有双树亮度类型(即,dual_tree_luma)时,可基于transform_skip_flag[x0][y0][0]是否具有特定值(例如,0)来确定lfnst_idx[x0][y0]是否将被用信号发送。
[0946]
[表14]
[0947][0948]
第三种情况)如上关于表14的代码所述,当以下代码3具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码3具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0949]
[代码3]
[0950]
((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)
[0951]
1)当树结构具有单树类型(即,single_tree)或双树亮度类型(即,dual_tree_luma)并且2)transform_skip_flag[x0][y0][0]具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0952]
[表15]
[0953][0954]
第四种情况)如上关于表15的代码所述,当以下代码4具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码4具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0955]
[代码4]
[0956]
(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0)
[0957]
1)当树结构具有双树色度类型(即,dual_tree_chroma),2)transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]中的至少一个具有第一值(或0),并且3)色度阵列类型chromaarraytype不具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0958]
[表16]
[0959][0960]
第五种情况)如上面关于表16的代码所述,当以下代码5具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码5具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0961]
[代码5]
[0962]
((treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0||transform_skip_flag[x0][y0][1]==0||ransform_skip_flag[x0][y0][2]==0))||(treetype==dual_tree_luma&&transform_skip_flag[x0][y0][0]==0)||(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0))
[0963]
1)当树结构具有单树类型(即,single_tree)并且transform_skip_flag[x0][y0]
[0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]中的至少一个具有第一值(或0)时,2)当树结构具有双树亮度类型(即,dual_tree_luma)并且transform_skip_flag[x0][y0][0]具有第一值(或0)时,或者3)当树结构具有双树色度类型(即,dual_tree_chroma),transform_skip_flag[x0][y0][1])和transform_skip_flag[x0][y0][2]中的至少一个具有第一值(或0)并且色度阵列类型chromaarraytype不具有第一值(例如,0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0964]
[表17]
[0965][0966]
第六种情况)如上关于表17的代码所述,当以下代码6具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码6具有第二值(或1)
时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0967]
[代码6]
[0968]
((treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0||transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0))||((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)||(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0))
[0969]
1)当树结构具有单树类型(即,single_tree)并且transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]中的至少一个具有第一值(或0)时,2)当树结构具有单树类型(即,single_tree)或双树亮度类型(即,dual_tree_luma)并且transform_skip_flag[x0][y0][0]具有第一值(或0)时,或者3)当树结构具有双树色度类型(即,dual_tree_chroma),transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]中的至少一个具有第一值(或0)并且色度阵列类型chromaarraytype不具有第一值(例如,0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0970]
[表18]
[0971][0972]
第七种情况)如上关于表18的代码所述,当以下代码7具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码7具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0973]
[代码7]
[0974]
(((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)||(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0))
[0975]
1)当树结构具有单树类型(即,single_tree)或双树亮度类型(即,dual_tree_luma)并且transform_skip_flag[x0][y0][0]具有第一值(或0)时,或者2)当树结构具有双树色度类型(即,dual_tree_chroma),transform_skip_flag[x0][y0][1]和transform_
skip_flag[x0][y0][2]中的至少一个具有第一值(或0),并且色度阵列类型chromaarraytype不具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0976]
[表19]
[0977][0978]
第八种情况)如上关于表19的代码所述,当以下代码8具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码8具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0979]
[代码8]
[0980]
(treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0&&transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0))
[0981]
1)当树结构具有单树类型(即,single_tree)并且2)transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]都具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0982]
例如,当树结构具有单树类型(即,single_tree)时,可基于transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]是否都具有特定值(例如,0)来确定lfnst_idx[x0][y0]是否将被用信号发送。
[0983]
[表20]
[0984][0985]
第九种情况)如上面关于表20的代码所述,当以下代码9具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码9具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0986]
[代码9]
[0987]
(treetype==single_tree&&transform_skip_flag[x0][y0][0]==0)
[0988]
1)当树结构具有单树类型(即,single_tree)并且2)transform_skip_flag[x0][y0][0]具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0989]
[表21]
[0990][0991]
第十种情况)如上面关于表21的代码所述,当以下代码10具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码10具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0992]
[代码10]
[0993]
(treetype==dual_tree_luma&&transform_skip_flag[x0][y0][0]==0)
[0994]
1)当树结构具有双树亮度类型(即,dual_tree_luma)并且2)transform_skip_flag[x0][y0][0]具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0995]
[表22]
[0996][0997]
第十一种情况)如上面关于表22的代码所述,当以下代码11具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码11具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[0998]
[代码11]
[0999]
((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)
[1000]
1)当树结构具有单树类型(即,single_tree)或双树亮度类型(即,dual_tree_luma)并且2)transform_skip_flag[x0][y0][0]具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1001]
[表23]
[1002][1003]
第十二种情况)如上关于表23的代码所述,当以下代码12具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码12具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1004]
[代码12]
[1005]
(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0))
[1006]
1)当树结构具有双树色度类型(即,dual_tree_chroma)并且2)transform_skip_flag[x0][y0][1])和transform_skip_flag[x0][y0][2]都具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1007]
例如,当树结构具有双树色度类型(即,dual_tree_chroma)时,可基于transform_skip_flag[x0][y0][1])和transform_skip_flag[x0][y0][2]是否都具有特定值(例如,0)来确定lfnst_idx[x0][y0]是否将被用信号发送。
[1008]
[表24]
[1009][1010]
第十三种情况)如上关于表24的代码所述,当以下代码13具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码13具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1011]
[代码13]
[1012]
(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0)
[1013]
1)当树结构具有双树色度类型(即,dual_tree_chroma),2)transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]都具有第一值(或0),并且3)色度阵列类型chromaarraytype不具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1014]
[表25]
[1015][1016]
第十四种情况)如上关于表25的代码所述,当以下代码14具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码14具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1017]
[代码14]
[1018]
((treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0&&transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0))||(treetype==dual_tree_luma&&transform_skip_flag[x0][y0][0]==0)||(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0))
[1019]
1)当树结构具有单树类型(即,single_tree)并且transform_skip_flag[x0][y0]
[0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]都具有第一值(或0)时,2)当树结构具有双树亮度类型(即,dual_tree_luma)并且transform_skip_flag[x0][y0][0]具有第一值(或0)时,或者3)当树结构具有双树色度类型(即,dual_tree_chroma),transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]都具有第一值(或0),并且色度阵列类型chromaarraytype不具有第一值(例如,0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1020]
[表26]
[1021][1022]
第十五种情况)如上面关于表26的代码所述,当以下代码15具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码15具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1023]
[代码15]
[1024]
((treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0&&transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0))||(treetype==dual_tree_luma&&transform_skip_flag[x0][y0][0]==0)||(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0)))
[1025]
1)当树结构具有单树类型(即,single_tree)并且transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]都具有第一值(或0)时,2)当树结构具有双树亮度类型(即,dual_tree_luma)并且transform_skip_flag[x0][y0][0]具有第一值(或0)时,或者3)当树结构具有双树色度类型(即,dual_tree_chroma)并且transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]都具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1026]
例如,可基于树结构、transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]来确定lfnst_idx[x0][y0]是否将被用信号发送。
[1027]
当树结构具有单树类型(即,single_tree)时,可基于transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]是否都具有特定值(例如,0)来确定lfnst_idx[x0][y0]是否将被用信号发送。
[1028]
例如,当树结构具有双树亮度类型(即,dual_tree_luma)时,可基于transform_skip_flag[x0][y0][0]是否具有特定值(例如,0)来确定lfnst_idx[x0][y0]是否将被用信号发送。
[1029]
例如,当树结构具有双树色度类型(即,dual_tree_chroma)时,可基于transform_skip_flag[x0][y0][1])和transform_skip_flag[x0][y0][2]是否都具有特定值(例如,0)来确定lfnst_idx[x0][y0]是否将被用信号发送。
[1030]
[表27]
[1031][1032]
第十六种情况)如上关于表27的代码所述,当以下代码16具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码16具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1033]
[代码16]
[1034]
(((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)||(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0))
[1035]
1)当树结构具有单树类型(即,single_tree)或双树亮度类型(即,dual_tree_luma)并且transform_skip_flag[x0][y0][0]具有第一值(或0)时,或者2)当树结构具有双树色度类型(即,dual_tree_chroma),transform_skip_flag[x0][y0][1]和transform_
skip_flag[x0][y0][2]都具有第一值(或0),并且色度阵列类型chromaarraytype不具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1036]
[表28]
[1037][1038]
第十七种情况)如上面关于表28的代码所述,当以下代码17具有第一值(或0)时,lfnst_idx[x0][y0]可既不被熵编码/熵解码也不被用信号发送。当以下代码17具有第二值(或1)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1039]
[代码17]
[1040]
(((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)||(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0)))
[1041]
1)当树结构具有单树类型(即,single_tree)或双树亮度类型(即,dual_tree_luma)并且transform_skip_flag[x0][y0][0]具有第一值(或0)时,或者2)当树结构具有双
树色度类型(即,dual_tree_chroma)并且transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]都具有第一值(或0)时,lfnst_idx[x0][y0]可被熵编码/熵解码并被用信号发送。
[1042]
在上述情况下,变换跳过模式标志具有第一值(或0)的情况可指示初级变换和次级变换中的至少一个被执行。变换跳过模式标志具有第二值(或1)的情况可指示初级变换和次级变换中的至少一个未被执行。可选地,变换跳过模式标志具有第二值(或1)的情况可指示初级变换和次级变换未被执行。
[1043]
在上述情况下,色度阵列类型chromaarraytype可指示色度信号的类型。例如,chromaarraytype具有第一值(或0)的情况可表示不存在色度信号且仅存在亮度信号的4:0:0颜色格式被使用。
[1044]
基于上面在实施例中描述的编码参数(诸如针对目标块的帧内预测模式、目标块的颜色分量、目标块的尺寸和目标块的形状)中的至少一个编码参数,可确定以下项中的至少一项:1)缩减的次级变换/逆变换矩阵集、2)缩减的次级变换/逆变换矩阵、以及3)是否执行缩减的次级变换/逆变换。
[1045]
图20是根据实施例的编码方法的流程图。
[1046]
当对目标块执行变换时,编码设备1600可使用上述实施例中的至少一个实施例。
[1047]
在步骤2010,可确定针对目标块的变换方法。
[1048]
步骤2010可由处理单元1610或变换单元130执行。步骤2010可以是上面参照图1描述的变换单元130的操作的一部分。
[1049]
目标块可以是cu。可选地,目标块可以是针对cu的残差块。
[1050]
变换可包括初级变换和次级变换。前述实施例中对变换、初级变换和次级变换的描述也可被应用于本实施例中的变换、初级变换和次级变换。
[1051]
可基于针对目标块的第一编码参数来确定是否将对目标块执行初级变换。可选地,是否将对目标块执行初级变换可取决于针对目标块的第一编码参数的值。
[1052]
例如,当针对目标块的第一编码参数的值是第一值时,可不对目标块执行初级变换。当针对目标块的第一编码参数的值是第二值时,可对目标块执行初级变换。
[1053]
例如,第一编码参数可包括关于针对目标块的残差块的信息。
[1054]
例如,第一编码参数可包括关于目标块的树的信息。所述编码参数可包括关于目标块的类型的信息。
[1055]
例如,第一编码参数可以是树结构或树类型。
[1056]
例如,第一编码参数可包括关于目标块的分区的信息。
[1057]
例如,第一编码参数可包括指定目标块的帧内子分区(isp)的信息。指定isp的信息可包括isp标志和/或isp模式。
[1058]
例如,根据由isp标志和/或isp模式指示的isp分区的类型,可通过isp将目标块分区为多个子块。可将相同的初级变换方法应用于多个子块。可基于针对目标块的第一编码参数来确定是否将对所述多个子块执行初级变换。
[1059]
与初级变换对应的初级变换方法可以是多种方法中的一种方法。
[1060]
初级变换方法索引可指示针对目标块的初级变换方法。
[1061]
可基于针对目标块的编码参数来确定是否将对目标块执行次级变换。可选地,是
否将对目标块执行次级变换可取决于针对目标块的第二编码参数的值。
[1062]
例如,当针对目标块的第二编码参数的值是第一值时,可不对目标块执行次级变换。当针对目标块的第二编码参数的值是第二值时,可对目标块执行次级变换。
[1063]
例如,第二编码参数可包括关于针对目标块的残差块的信息。
[1064]
例如,第二编码参数可包括关于目标块的树的信息。所述编码参数可包括关于目标块的类型的信息。
[1065]
例如,第二编码参数可以是树结构或树类型。
[1066]
例如,第二编码参数可包括关于目标块的分区的信息。
[1067]
例如,第二编码参数可包括指定目标块的isp的信息。指定isp的信息可包括isp标志和/或isp模式。
[1068]
例如,基于isp标志和/或isp模式,可通过isp将目标块分区为多个子块。可将相同的次级变换方法应用于所述多个子块。可基于针对目标块的第二编码参数来确定是否将对所述多个子块执行次级变换。
[1069]
与次级变换对应的次级变换方法可以是多种方法中的一种方法。
[1070]
次级变换方法索引可指示针对目标块的次级变换方法。
[1071]
在步骤2020,可使用变换方法对目标块执行变换。
[1072]
步骤2020可由处理单元1610或变换单元130执行。步骤2020可以是上面参照图1描述的变换单元130的操作的一部分。
[1073]
在步骤2030,可生成比特流。所生成的比特流可被存储在存储器1640中,并且可通过通信单元1620被发送到解码设备1700。
[1074]
步骤2030可由处理单元1610或熵编码单元150执行。步骤2030可以是上面参照图1描述的熵编码单元150的操作的一部分。
[1075]
步骤2030可在步骤2010和步骤2020已经执行之后执行,或者与步骤2010和步骤2020并行地执行。
[1076]
表7至表28中的代码中的每个代码可指示比特流。比特流可包括表7至表28中的代码的语法元素。可选地,比特流可包括表7至表28中的代码中的一个代码中的语法元素。
[1077]
可通过比特流选择性地用信号发送初级变换方法索引。
[1078]
例如,当第一编码参数具有第一值时,比特流可不包括初级变换方法索引,并且可不用信号发送初级变换方法索引。当第一编码参数具有第二值时,初级变换方法索引可被包括在比特流中,并且初级变换方法索引可被用信号发送。
[1079]
如表7至表28中的代码所例示,可根据第一条件语句来确定初级变换方法索引是否将被用信号发送。第一条件语句可包括第一编码参数。
[1080]
例如,条件语句可以是“if”语句,并且条件语句中的条件可以是“if”语句的括号内的代码。
[1081]
例如,当第一条件语句中的条件的值为第一值(或0)时,比特流可不包括初级变换方法索引,并且初级变换方法索引可不被用信号发送。
[1082]
例如,当第一条件语句中的条件的值为第二值(或1)时,比特流可包括初级变换方法索引,并且初级变换方法索引可被用信号发送。
[1083]
例如,当第一条件语句中的条件的值为第一值(或0)时,比特流可包括初级变换方
法索引,并且初级变换方法索引可被用信号发送。
[1084]
例如,当第一条件语句中的条件的值为第二值(或1)时,比特流可不包括初级变换方法索引,并且初级变换方法索引可不被用信号发送。
[1085]
可独立于特定编码参数来确定初级变换方法索引是否将被用信号发送。换言之,可确定初级变换方法索引是否将被用信号发送,而不管所述特定编码参数的值如何。可选地,当确定初级变换方法索引是否将被用信号发送时,可排除所述特定编码参数。
[1086]
例如,在前述表7至表28中的代码中,可根据第一条件语句中的条件的值来确定初级变换方法索引是否将被用信号发送。所述特定编码参数可以是第一条件语句中的条件中未包括的编码参数。
[1087]
可选地,所述特定编码参数可以是用于(直接)确定初级变换方法索引是否将被用信号发送的条件语句中的条件中未包括的参数。换言之,在条件语句被设置为使得当条件语句中的条件的值是第一值(或0)时,不用信号发送初级变换方法索引,并且当条件语句中的条件的值是第二值(或0)时,用信号发送初级变换方法索引的情况下,如果所述特定编码参数未被包括在所述条件语句中的条件中,则可认为初级变换方法索引是否将被用信号发送独立于所述特定编码参数。
[1088]
第一条件语句可由多个“if”语句组成。第一条件语句中的条件可包括多个“if”语句中的条件。所述多个“if”语句中的条件可被视为通过逻辑and运算而相联系的单个条件。
[1089]
除非初级变换方法索引被包括在比特流中,否则初级变换方法索引可具有第一值。第一值可指示初级变换未被应用。可选地,初级变换方法索引可被推导为指示初级变换未被应用的第一值。
[1090]
可通过比特流选择性地用信号发送次级变换方法索引。
[1091]
例如,当第二编码参数具有第一值时,比特流可不包括次级变换方法索引,并且次级变换方法索引可不被用信号发送。当第二编码参数具有第二值时,次级变换方法索引可被包括在比特流中,并且次级变换方法索引可被用信号发送。
[1092]
如表7至表28中的代码所例示,可根据第二条件语句来确定次级变换方法索引是否将被用信号发送。第二条件语句可包括第二编码参数。
[1093]
在示例中,第二条件语句中的条件可以是与代码1至代码17对应的多个代码中的一个代码、所述多个代码的组合或所述多个代码中的一些代码。
[1094]
换言之,可基于1)与代码1至代码17对应的代码中的一个代码、2)所述多个代码的组合、或3)所述多个代码中的一些代码来确定次级变换方法索引是否将被用信号发送。
[1095]
例如,当第二条件语句中的条件的值是第一值(或0)时,比特流可不包括次级变换方法索引,并且次级变换方法索引可不被用信号发送。
[1096]
例如,当第二条件语句中的条件的值是第二值(或1)时,比特流可包括次级变换方法索引,并且次级变换方法索引可被用信号发送。
[1097]
例如,当第二条件语句中的条件的值是第一值(或0)时,比特流可包括次级变换方法索引,并且次级变换方法索引可被用信号发送。
[1098]
例如,当第二条件语句中的条件的值是第二值(或1)时,比特流可不包括次级变换方法索引,并且次级变换方法索引可不被用信号发送。
[1099]
可独立于特定编码参数确定次级变换方法索引是否将被用信号发送。换言之,可
确定次级变换方法索引是否将被用信号发送,而不管所述特定编码参数的值如何。可选地,当确定次级变换方法索引是否将被用信号发送时,可排除所述特定编码参数。
[1100]
例如,所述特定编码参数可以是transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]或transform_skip_flag[x0][y0][2]。
[1101]
例如,在前述表7至表28中的代码中,可根据第二条件语句中的条件的值来确定次级变换方法索引是否将被用信号发送。所述特定编码参数可以是第二条件语句中的条件中未包括的编码参数。
[1102]
可选地,所述特定编码参数可以是与代码1至代码17对应的代码中的一个代码中未包括的编码参数。
[1103]
可选地,所述特定编码参数可以是用于(直接)确定次级变换方法索引是否将被用信号发送的条件语句中的条件中未包括的参数。换言之,在所述条件语句被设置为使得当所述条件语句中的条件的值是第一值(或0)时,不用信号发送次级变换方法索引,并且当所述条件语句中的条件的值是第二值(或0)时,用信号发送次级变换方法索引的情况下,如果所述特定编码参数未被包括在所述条件语句中的条件中,则可认为次级变换方法索引是否将被用信号发送独立于所述特定编码参数。
[1104]
第二条件语句可由多个“if”语句组成。第二条件语句中的条件可包括多个“if”语句中的条件。所述多个“if”语句中的条件可被视为通过逻辑and运算而相联系的单个条件。
[1105]
除非次级变换方法索引被包括在比特流中,否则次级变换方法索引可具有第一值。第一值可指示次级变换未被应用。可选地,次级变换方法索引可被推导为指示次级变换未被应用的第一值。
[1106]
图21是根据实施例的解码方法的流程图。
[1107]
解码设备1700可在对目标块执行逆变换时使用上述实施例中的至少一个实施例。此外,编码设备1600可在对目标块执行逆变换时使用上述实施例中的至少一个实施例。
[1108]
在步骤2110,可获取比特流。用于对图像进行解码的计算机可读存储介质可包括比特流。
[1109]
比特流可包括关于目标块的编码信息,并且可使用编码信息对目标块执行解码。
[1110]
步骤2110可由处理单元1710、通信单元1720或熵解码单元210执行。步骤2110可以是上面参照图2描述的熵解码单元210的操作的一部分。
[1111]
处理单元1710可从存储器1740读取比特流。通信单元1720可从编码设备1600接收比特流。
[1112]
步骤2110可在步骤2120和步骤2130执行之前执行,或者与步骤2120和步骤2130并行地执行。
[1113]
表7至表28中的代码中的每个代码可指示比特流。比特流可包括表7至表28中的代码的语法元素。可选地,比特流可包括表7至表28中的代码中的一个代码中的语法元素。
[1114]
在步骤2120,可确定针对目标块的逆变换方法。
[1115]
步骤2120可由处理单元1710或逆变换单元230执行。可选地,步骤2120可由处理单元1610或逆变换单元170执行。步骤2120可以是上面参照图2描述的逆变换单元230的操作的一部分。步骤2120可以是上面参照图1描述的逆变换单元170的操作的一部分。
[1116]
目标块可以是cu。可选地,目标块可以是针对cu的残差块。
[1117]
逆变换可包括初级变换和次级逆变换。上述实施例中对逆变换、初级逆变换和次级逆变换的描述也可被应用于本实施例中的逆变换、初级逆变换和次级逆变换。
[1118]
上述实施例中对变换的描述也可被应用于本实施例中的逆变换。这里,变换和逆变换的输入和输出可彼此相反。上述实施例中的对变换的输入可对应于本实施例中的来自逆变换的输出(从逆变换重建的输出)。上述实施例中的来自变换的输出可对应于本实施例中的对逆变换的输入。
[1119]
上述实施例中对初级变换的描述也可被应用于本实施例中的初级逆变换。这里,初级变换和初级逆变换的输入和输出可彼此相反。上述实施例中的对初级变换的输入可对应于本实施例中的来自初级逆变换的输出(从逆变换重建的输出)。上述实施例中的来自初级变换的输出可对应于本实施例中的对初级逆变换的输入。
[1120]
在对目标块进行编码的处理期间,初级变换可被应用于目标块,之后次级变换可被应用于目标块。根据本技术,在对目标块进行解码的处理期间,次级逆变换可被应用于目标块,之后初级逆变换可被应用于目标块。
[1121]
可基于针对目标块的编码参数来确定是否将对目标块执行次级逆变换。可选地,是否将对目标块执行次级逆变换可取决于针对目标块的第二编码参数的值。
[1122]
例如,当针对目标块的第二编码参数具有第一值时,可不对目标块执行次级逆变换。当针对目标块的第二编码参数具有第二值时,可对目标块执行次级逆变换。
[1123]
例如,第二编码参数可包括关于针对目标块的残差块的信息。
[1124]
例如,第二编码参数可包括关于目标块的树的信息。所述编码参数可包括关于目标块的类型的信息。
[1125]
例如,第二编码参数可以是树结构或树类型。
[1126]
例如,第二编码参数可包括关于目标块的分区的信息。
[1127]
例如,第二编码参数可包括指定目标块的isp的信息。指定isp的信息可包括isp标志和/或isp模式。
[1128]
例如,基于isp标志和/或isp模式,可通过isp将目标块分区为多个子块。可将相同的次级逆变换方法应用于多个子块。可基于针对目标块的第二编码参数来确定是否将对多个子块执行次级逆变换。
[1129]
与次级逆变换对应的次级逆变换方法可以是多种方法中的一种方法。
[1130]
次级逆变换方法索引可指示针对目标块的次级逆变换方法。
[1131]
可基于针对目标块的第一编码参数来确定是否将对目标块执行初级逆变换。可选地,是否将对目标块执行初级逆变换可取决于针对目标块的第一编码参数的值。
[1132]
例如,当针对目标块的第一编码参数具有第一值时,可不对目标块执行初级逆变换。当针对目标块的第一编码参数具有第二值时,可对目标块执行初级逆变换。
[1133]
例如,第一编码参数可包括关于针对目标块的残差块的信息。
[1134]
例如,第一编码参数可包括关于目标块的树的信息。所述编码参数可包括关于目标块的类型的信息。
[1135]
例如,第一编码参数可以是树结构或树类型。
[1136]
例如,第一编码参数可包括关于目标块的分区的信息。
[1137]
例如,第一编码参数可包括指定目标块的isp的信息。指定isp的信息可包括isp标
志和/或isp模式。
[1138]
例如,根据由isp标志和/或isp模式指示的ips分区的类型,可通过isp将目标块分区为多个子块。可将相同的初级逆变换方法应用于多个子块。可基于针对目标块的第一编码参数来确定是否将对多个子块执行初级逆变换。
[1139]
与初级逆变换对应的初级逆变换方法可以是多种方法中的一种方法。
[1140]
初级逆变换方法索引可指示针对目标块的初级逆变换方法。
[1141]
在步骤2130,可使用逆变换方法对目标块执行逆变换。
[1142]
步骤2130可由处理单元1710或逆变换单元230执行。可选地,步骤2130可由处理单元1610或逆变换单元170执行。步骤2130可以是上面参照图2描述的逆变换单元230的操作的一部分。步骤2130可以是上面参照图1描述的逆变换单元170的操作的一部分。
[1143]
可通过比特流选择性地用信号发送初级变换方法索引。
[1144]
例如,当第一编码参数具有第一值时,比特流可不包括初级变换方法索引,并且初级变换方法索引可不被用信号发送。当第一编码参数具有第二值时,初级变换方法索引可被包括在比特流中,并且初级变换方法索引可被用信号发送。
[1145]
如表7至表28中的代码所例示,可根据第一条件语句来确定初级变换方法索引是否将被用信号发送。第一条件语句可包括第一编码参数。
[1146]
例如,条件语句可以是“if”语句,并且条件语句中的条件可以是“if”语句的括号内的代码。
[1147]
例如,当第一条件语句中的条件的值为第一值(或0)时,比特流可不包括初级变换方法索引,并且初级变换方法索引可不被用信号发送。
[1148]
例如,当第一条件语句中的条件的值为第二值(或1)时,比特流可包括初级变换方法索引,并且初级变换方法索引可被用信号发送。
[1149]
例如,当第一条件语句中的条件的值为第一值(或0)时,比特流可包括初级变换方法索引,并且初级变换方法索引可被用信号发送。
[1150]
例如,当第一条件语句中的条件的值为第二值(或1)时,比特流可不包括初级变换方法索引,并且初级变换方法索引可不被用信号发送。
[1151]
可独立于特定编码参数来确定初级变换方法索引是否将被用信号发送。换言之,可确定初级变换方法索引是否将被用信号发送,而不管所述特定编码参数的值如何。可选地,当确定初级变换方法索引是否将被用信号发送时,可排除所述特定编码参数。
[1152]
例如,在前述表7至表28中的代码中,可根据第一条件语句中的条件的值来确定初级变换方法索引是否将被用信号发送。所述特定编码参数可以是第一条件语句中的条件中未包括的编码参数。
[1153]
可选地,所述特定编码参数可以是用于(直接)确定初级变换方法索引是否将被用信号发送的条件语句中的条件中未包括的参数。换言之,在所述条件语句被设置为使得当所述条件语句中的条件的值是第一值(或0)时,不用信号发送初级变换方法索引,并且当所述条件语句中的条件的值是第二值(或0)时,用信号发送初级变换方法索引的情况下,如果所述特定编码参数未被包括在所述条件语句中的条件中,则可认为初级变换方法索引是否将被用信号发送独立于所述特定编码参数。
[1154]
第一条件语句可由多个“if”语句组成。第一条件语句中的条件可包括多个“if”语
句中的条件。所述多个“if”语句中的条件可被视为通过逻辑and运算而相联系的单个条件。
[1155]
除非初级变换方法索引被包括在比特流中,否则初级变换方法索引可具有第一值。第一值可指示初级变换未被应用。可选地,初级变换方法索引可被推导为指示初级变换未被应用的第一值。
[1156]
可通过比特流选择性地用信号发送次级变换方法索引。
[1157]
例如,当第二编码参数具有第一值时,比特流可不包括次级变换方法索引,并且次级变换方法索引可不被用信号发送。当第二编码参数具有第二值时,次级变换方法索引可被包括在比特流中,并且次级变换方法索引可被用信号发送。
[1158]
如表7至表28中的代码所例示,可根据第二条件语句来确定次级变换方法索引是否将被用信号发送。第二条件语句可包括第二编码参数。
[1159]
在示例中,第二条件语句中的条件可以是与代码1至代码17对应的多个代码中的一个代码、所述多个代码的组合或所述多个代码中的一些代码。
[1160]
换言之,可基于1)与代码1至代码17对应的多个代码中的一个代码、2)所述多个代码的组合、或3)所述多个代码中的一些代码来确定次级变换方法索引是否将被用信号发送。
[1161]
例如,当第二条件语句中的条件的值是第一值(或0)时,比特流可不包括次级变换方法索引,并且次级变换方法索引可不被用信号发送。
[1162]
例如,当第二条件语句中的条件的值是第二值(或1)时,比特流可包括次级变换方法索引,并且次级变换方法索引可被用信号发送。
[1163]
例如,当第二条件语句中的条件的值是第一值(或0)时,比特流可包括次级变换方法索引,并且次级变换方法索引可被用信号发送。
[1164]
例如,当第二条件语句中的条件的值是第二值(或1)时,比特流可不包括次级变换方法索引,并且次级变换方法索引可不被用信号发送。
[1165]
可独立于特定编码参数来确定次级变换方法索引是否将被用信号发送。换言之,可确定次级变换方法索引是否将被用信号发送,而不管所述特定编码参数的值如何。可选地,当确定次级变换方法索引是否将被用信号发送时,可排除所述特定编码参数。
[1166]
例如,所述特定编码参数可以是transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]或transform_skip_flag[x0][y0][2]。
[1167]
例如,在前述表7至表28中的代码中,可根据第二条件语句中的条件的值来确定次级变换方法索引是否将被用信号发送。所述特定编码参数可以是第二条件语句中的条件中未包括的编码参数。
[1168]
可选地,所述特定编码参数可表示与代码1至代码17对应的代码中的一个代码中未包括的编码参数。
[1169]
可选地,所述特定编码参数可以是用于(直接)确定次级变换方法索引是否将被用信号发送的条件语句中的条件中未包括的参数。换言之,在所述条件语句被设置为使得当所述条件语句中的条件的值是第一值(或0)时,不用信号发送次级变换方法索引,并且当所述条件语句中的条件的值是第二值(或0)时,用信号发送次级变换方法索引的情况下,如果所述特定编码参数未被包括在所述条件语句中的条件中,则可认为次级变换方法索引是否将被用信号发送独立于所述特定编码参数。
[1170]
第二条件语句可由多个“if”语句组成。第二条件语句中的条件可包括多个“if”语句中的条件。所述多个“if”语句中的条件可被视为通过逻辑and运算而相联系的单个条件。
[1171]
除非次级变换方法索引被包括在比特流中,否则次级变换方法索引可具有第一值。第一值可指示次级变换未被应用。可选地,次级变换方法索引可被推导为指示次级变换未被应用的第一值。
[1172]
可由编码设备1600和解码设备1700使用彼此相同和/或对应的方法来执行以上实施例。此外,对于图像的编码和/或解码,可使用以上实施例中的一个或更多个的组合。
[1173]
在编码设备1600和解码设备1700中,应用实施例的顺序可彼此不同。可选地,在编码设备1600和解码设备1700中,应用实施例的顺序可(至少部分地)相同。
[1174]
在编码设备1600和解码设备1700中,应用实施例的顺序可彼此不同,或者在编码设备1600和解码设备1700中,应用实施例的顺序可相同。
[1175]
可对亮度信号和色度信号中的每一个执行所述实施例。可对亮度信号和色度信号等同地执行所述实施例。
[1176]
应用本公开的实施例的块的形式可具有正方形或非正方形形状。
[1177]
可根据目标块、编码块、预测块、变换块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本公开的实施例。这里,尺寸可被定义为使得实施例被应用的最小尺寸和/或最大尺寸,并且可被定义为应用实施例的固定尺寸。此外,在实施例中,第一实施例可被应用于第一尺寸,并且第二实施例可被应用于第二尺寸。也就是说,可根据尺寸综合应用所述实施例。此外,本公开的实施例可仅被应用于尺寸等于或大于最小尺寸并且小于或等于最大尺寸的情况。也就是说,所述实施例可仅被应用于块尺寸落在特定范围内的情况。
[1178]
此外,本公开的实施例可仅被应用于满足尺寸等于或大于最小尺寸的条件和尺寸小于或等于最大尺寸的条件的情况,其中,所述最小尺寸和所述最大尺寸中的每一个可以是以上实施例中描述的块和以上实施例中描述的单元中的一个的尺寸。也就是说,作为最小尺寸的目标的块可不同于作为最大尺寸的目标的块。例如,本公开的实施例可仅被应用于目标块的尺寸等于或大于块的最小尺寸并且小于或等于块的最大尺寸的情况。
[1179]
例如,所述实施例可仅被应用于目标块的尺寸等于或大于8
×
8的情况。例如,所述实施例可仅被应用于目标块的尺寸等于或大于16
×
16的情况。例如,所述实施例可仅被应用于目标块的尺寸等于或大于32
×
32的情况。例如,所述实施例可仅被应用于目标块的尺寸等于或大于64
×
64的情况。例如,所述实施例可仅被应用于目标块的尺寸等于或大于128
×
128的情况。例如,所述实施例可仅被应用于目标块的尺寸为4
×
4的情况。例如,所述实施例可仅被应用于目标块的尺寸小于或等于8
×
8的情况。例如,所述实施例可仅被应用于目标块的尺寸小于或等于16
×
16的情况。例如,所述实施例可仅被应用于目标块的尺寸等于或大于8
×
8并且小于或等于16
×
16的情况。例如,所述实施例可仅被应用于目标块的尺寸等于或大于16
×
16并且小于或等于64
×
64的情况。
[1180]
缩减的次级变换/逆变换的语法元素可由编码设备100熵编码,并由解码设备200熵解码。对于这些语法元素中的至少一个语法元素,可使用以下二值化、反二值化、熵编码和/或熵解码方法中的一种或更多种方法。
[1181]-有符号0阶exp_golomb二值化/反二值化方法(se(v))
[1182]-有符号k阶exp_golomb二值化/反二值化方法(sek(v))
[1183]-针对无符号的正整数的0阶exp_golomb二值化/反二值化方法(ue(v))
[1184]-针对无符号的正整数的k阶exp_golomb二值化/反二值化方法(uek(v))
[1185]-固定长度二值化/反二值化方法(f(n))
[1186]-截断rice二值化/反二值化方法或截断一元二值化/反二值化方法(tu(v))
[1187]-截断二进制二值化/反二值化方法(tb(v))
[1188]-上下文自适应算术编码/解码方法(ae(v))
[1189]-逐字节的比特串(b(8))
[1190]-有符号整数二值化/反二值化方法(i(n))
[1191]-无符号正整数二值化/反二值化方法(u(n))。u(n)可以是固定长度二值化/反二值化方法
[1192]-一元二值化/反二值化方法
[1193]
可根据时间层来应用本公开的实施例。为了识别实施例可适用的时间层,可用信号发送单独的标识符,并且实施例可被应用于由对应的标识符指定的时间层。这里,标识符可被定义为实施例可适用的最低(底部)层和/或最高(顶部)层,并且可被定义为指示应用实施例的特定层。此外,还可定义应用实施例的固定时间层。
[1194]
例如,实施例可仅被应用于目标图像的时间层是最下层的情况。例如,实施例可仅被应用于目标图像的时间层标识符等于或大于1的情况。例如,实施例可仅被应用于目标图像的时间层是最高层的情况。
[1195]
可定义应用实施例的本发明的实施例的条带类型或并行块组类型,并且可根据对应的条带类型或并行块组类型来应用本发明的实施例。
[1196]
在上述实施例中,可解释为,在将特定处理应用于特定目标期间,假设可能需要特定条件并且在特定确定下执行特定处理,在已经进行了描述使得基于特定编码参数确定是否满足了特定条件或者基于特定编码参数进行特定确定时,特定编码参数可被替换为附加编码参数。换句话说,可认为影响特定条件或特定确定的编码参数仅仅是示例性的,并且可理解,除了特定编码参数之外,一个或更多个附加编码参数的组合用作特定编码参数。
[1197]
在上述实施例中,虽然已基于作为一系列步骤或单元的流程图描述了方法,但是本公开不限于所述步骤的顺序,并且一些步骤可按照与已描述的步骤的顺序不同的顺序来执行或者与其它步骤同时执行。此外,本领域技术人员将理解:在流程图中示出的步骤不是排他性的,并且还可包括其它步骤,或者,可在不脱离本公开的范围的情况下删除流程图中的一个或更多个步骤。
[1198]
上述实施例包括各个方面的示例。尽管不能描述用于指示各个方面的所有可能的组合,但是本领域技术人员将理解,除了明确描述的组合之外,其他组合也是可能的。因此,应当理解,本公开包括属于所附权利要求的范围的其他替换、改变和修改。
[1199]
上述根据本公开的实施例可被实现为能够由各种计算机设备运行的程序,并且可被记录在计算机可读存储介质上。计算机可读存储介质可单独地或者组合地包括程序指令、数据文件和数据结构。在存储介质上记录的程序指令可被专门设计并被配置用于本公开,或者对于计算机软件领域的普通技术人员而言可以是已知的或者可用的。
[1200]
计算机可读存储介质可包括本公开的实施例中使用的信息。例如,计算机可读存
储介质可包括比特流,并且所述比特流可包括上面在本公开的实施例中描述的信息。
[1201]
计算机可读存储介质可包括非暂时性计算机可读介质。
[1202]
计算机可读存储介质的示例可包括被专门配置用于记录和运行程序指令的所有类型的硬件装置,诸如,磁介质(诸如硬盘、软盘和磁带)、光学介质(诸如致密盘(cd)-rom和数字多功能盘(dvd))、磁光介质(诸如软光盘、rom、ram和闪存)。程序指令的示例包括机器代码(诸如由编译器创建的代码)和能够由计算机使用解释器执行的高级语言代码。硬件装置可被配置为作为一个或更多个软件模块进行操作以执行本公开的操作,反之亦可。
[1203]
如上所述,虽然已基于特定细节(诸如详细组件以及有限数量的实施例和附图)描述了本公开,但是所述特定细节仅被提供用于容易理解整个公开,本公开不限于这些实施例,本领域技术人员将根据以上描述实践各种改变和修改。
[1204]
因此,应理解的是,本实施例的精神不限于上述实施例,并且所附权利要求及其等同物和对它们的修改落入本公开的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1