一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像编码/解码方法和设备以及存储比特流的记录介质与流程

2022-06-09 00:36:19 来源:中国专利 TAG:


1.本发明涉及一种图像编码/解码方法和设备以及用于存储比特流的记录介质。更具体地,本发明涉及一种用于基于变换对视频图像进行编码/解码的方法和设备。


背景技术:

2.最近,在各种应用中,对诸如高清(hd)或超高清(uhd)图像的高分辨率和高质量图像的需求已经增加。随着图像的分辨率和质量提高,数据量相应地增加。当通过诸如有线或无线宽带信道的现有传输介质传输图像数据时或者当存储图像数据时,这是传输成本和存储成本增加的原因之一。为了解决高分辨率和高质量图像数据的这些问题,需要高效的图像编码/解码技术。
3.存在各种视频压缩技术,诸如从先前画面或后续画面内的像素的值预测当前画面内的像素的值的帧间预测技术、从当前画面的另一区域内的像素的值预测当前画面的区域内的像素的值的帧内预测技术、压缩残差信号的能量的变换和量化技术、以及向频繁出现的像素值分配较短码而向较少出现的像素值分配较长码的熵编码技术。
4.在传统的变换/逆变换方法中,由于使用单个变换/逆变换类型或者用于各种变换/逆变换类型的信令需要开销,因此图像在客观质量和主观质量方面都具有其限制。


技术实现要素:

5.技术问题
6.为了提高图像的客观质量和主观质量,本发明提供了一种视频编码/解码方法和设备,其中,所述视频编码/解码方法和设备基于变换是否被使用、一维变换类型、以及二维变换组合中的至少一个来确定缩减的次级变换/逆变换矩阵集、缩减的次级变换/逆变换矩阵以及是否执行缩减的次级变换/逆变换中的至少一个,其中,变换是否被使用、所述一维变换类型以及所述二维变换组合再次基于帧内预测模式、预测模式、颜色分量、尺寸和形式。
7.技术方案
8.本公开提供了一种视频解码方法,包括:获得指示变换/逆变换在当前块中是否被跳过的变换跳过模式标志;当根据所述变换跳过模式标志,变换/逆变换在所述当前块中被跳过时,确定次级变换/逆变换在所述当前块中被跳过;以及当根据所述变换跳过模式标志,变换/逆变换在所述当前块中未被跳过时,获得用于所述当前块的次级变换/逆变换的变换矩阵索引;并且基于所述变换矩阵索引确定次级变换/逆变换在所述当前块中是否被跳过。
9.根据实施例,获得所述变换跳过模式标志的步骤包括:获得针对亮度分量的变换跳过模式标志、针对cb分量的变换跳过模式标志和针对cr分量的变换跳过模式标志。
10.根据实施例,确定次级变换/逆变换在所述当前块中是否被跳过的步骤包括:当所述当前块的树结构是单树类型,针对亮度分量的变换跳过模式标志指示变换跳过模式被应
用于亮度分量,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,确定次级变换/逆变换在所述当前块中被跳过。
11.根据实施例,确定次级变换/逆变换在所述当前块中被跳过的步骤包括:当所述当前块的树结构是双树亮度类型,并且针对亮度分量的变换跳过模式标志指示变换跳过模式被应用于亮度分量时,确定次级变换/逆变换在所述当前块中被跳过。
12.根据实施例,确定次级变换/逆变换在所述当前块中被跳过的步骤包括:当所述当前块的树结构是双树色度类型,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,确定次级变换/逆变换在所述当前块中被跳过。
13.根据实施例,所述视频解码方法还可包括:当次级变换/逆变换被应用于所述当前块时,根据所述变换矩阵索引确定所述当前块的次级变换矩阵,并且根据所述次级变换矩阵将次级变换/逆变换应用于所述当前块。
14.根据实施例,确定所述当前块的次级变换矩阵的步骤包括:
15.根据所述变换矩阵索引、所述当前块的变换矩阵集索引和所述当前块的尺寸中的至少一个确定所述当前块的次级变换矩阵。
16.根据实施例,所述视频解码方法还可包括:获得关于帧内残差dpcm方法是否被用于所述当前块的信息,并且当关于帧内残差dpcm方法是否被使用的信息指示帧内残差dpcm方法被用于所述当前块时,确定变换/逆变换在所述当前块中被跳过,其中,获得所述变换跳过模式标志的步骤包括:当关于帧内残差dpcm方法是否被使用的信息指示帧内残差dpcm方法未被用于所述当前块时,获得所述变换跳过模式标志。
17.根据实施例,用于所述当前块的次级变换/逆变换的所述变换矩阵索引是当所述当前块根据不是基于矩阵的帧内预测模式的帧内预测模式而被预测时获得的。
18.根据实施例,根据所述变换矩阵索引确定次级变换/逆变换在所述当前块中是否被跳过的步骤包括:根据所述变换矩阵索引、所述当前块的尺寸和所述变换跳过模式标志中的至少一个来确定次级变换/逆变换在所述当前块中是否被跳过。
19.本公开提供了一种视频编码方法,包括:对指示变换/逆变换在当前块中是否被跳过的变换跳过模式标志进行编码;当根据所述变换跳过模式标志,变换跳过模式在所述当前块中被跳过时,确定次级变换/逆变换在所述当前块中被跳过;以及当根据所述变换跳过模式标志,变换跳过模式在所述当前块中未被跳过时,确定次级变换/逆变换在所述当前块中是否被跳过;并且根据次级变换/逆变换在所述当前块中是否被跳过来对用于所述当前块的次级变换/逆变换的变换矩阵索引进行编码。
20.根据实施例,对所述变换跳过模式标志进行编码的步骤包括:
21.对针对亮度分量的变换跳过模式标志、针对cb分量的变换跳过模式标志和针对cr分量的变换跳过模式标志进行编码。
22.根据实施例,确定次级变换/逆变换在所述当前块中被跳过的步骤包括:当所述当前块的树结构是单树类型,针对亮度分量的变换跳过模式标志指示变换跳过模式被应用于亮度分量,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,确定次级变换/逆变换
在所述当前块中被跳过。
23.根据实施例,确定次级变换/逆变换在所述当前块中被跳过的步骤包括:当所述当前块的树结构是双树亮度类型,并且针对亮度分量的变换跳过模式标志指示变换跳过模式被应用于亮度分量时,确定次级变换/逆变换在所述当前块中被跳过。
24.根据实施例,确定次级变换/逆变换在所述当前块中被跳过的步骤包括:当所述当前块的树结构是双树色度类型,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,确定次级变换/逆变换在所述当前块中被跳过。
25.根据实施例,对所述变换矩阵索引进行编码的步骤包括:当次级变换/逆变换被应用于所述当前块时,确定所述当前块的次级变换矩阵,并且根据次级变换/逆变换是否被应用于所述当前块,对所述变换矩阵索引进行编码。
26.根据实施例,确定所述当前块的次级变换矩阵的步骤包括:根据所述变换矩阵索引、所述当前块的变换矩阵集索引和所述当前块的尺寸中的至少一个确定所述当前块的次级变换矩阵。
27.根据实施例,所述视频编码方法还可包括:对关于帧内残差dpcm方法是否被用于所述当前块的信息进行编码,并且当关于帧内残差dpcm方法是否被使用的信息指示帧内残差dpcm方法被用于所述当前块时,确定变换/逆变换在所述当前块中被跳过,其中,对所述变换跳过模式标志进行编码的步骤包括:当关于帧内残差dpcm方法是否被使用的信息指示帧内残差dpcm方法未被用于所述当前块时,对所述变换跳过模式标志进行编码。
28.根据实施例,对用于所述当前块的次级变换/逆变换的变换矩阵索引进行编码的步骤包括:当所述当前块根据不是基于矩阵的帧内预测模式的帧内预测模式而被预测时,对所述变换矩阵索引进行编码。
29.本公开提供了一种用于存储通过视频编码方法对视频进行编码而生成的比特流的计算机可读记录介质,其中,所述视频编码方法包括:对指示变换/逆变换在当前块中是否被跳过的变换跳过模式标志进行编码;当根据所述变换跳过模式标志,变换跳过模式在所述当前块中被跳过时,确定次级变换/逆变换在所述当前块中被跳过;以及当根据所述变换跳过模式标志,变换跳过模式在所述当前块中未被跳过时,确定次级变换/逆变换在所述当前块中是否被跳过;并且根据次级变换/逆变换在所述当前块中是否被跳过来对用于所述当前块的次级变换/逆变换的变换矩阵索引进行编码。
30.有益效果
31.本发明可通过提供一种图像编码/解码方法和设备来提高图像的客观质量和主观质量,其中,所述图像编码/解码方法和设备基于变换是否被使用、一维变换类型以及二维变换组合中的至少一个来确定缩减的次级变换/逆变换矩阵集、缩减的次级变换/逆变换矩阵以及是否执行缩减的次级变换/逆变换中的至少一个,其中,变换是否被使用、所述一维变换类型以及所述二维变换组合再次基于帧内预测模式、预测模式、颜色分量、尺寸和形式。
附图说明
32.图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
33.图2是示出根据应用了本发明的实施例的解码设备的配置的框图。
34.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。
35.图4是示出帧内预测处理的示图。
36.图5是示出画面间预测处理的实施例的示图。
37.图6是示出变换和量化处理的示图。
38.图7是示出能够被用于帧内预测的参考样点的示图。
39.图8是示出根据本发明的使用sdst方法的解码方法的实施例的示图。
40.图9是示出根据本发明的使用sdst方法的编码方法的实施例的示图。
41.图10至图12是示出根据本发明的第一子块分区模式的实施例的示图。
42.图13是示出根据本发明的第二子块分区模式的实施例的示图。
43.图14是示出对角线扫描的实施例的示图。
44.图15是示出水平扫描的实施例的示图。
45.图16是示出垂直扫描的实施例的示图。
46.图17是示出基于块的对角线扫描的实施例的示图。
47.图18是示出基于块的水平扫描的实施例的示图。
48.图19是示出基于块的垂直扫描的实施例的示图。
49.图20是示出基于块的形状的扫描的各种实施例的示图。
50.图21是示出帧内预测模式的示图。
51.图22至图26是示出根据本发明的实施例的使用变换的编码处理或解码处理的示例的示图。
52.图27示出在编码器/解码器中执行次级变换和/或次级逆变换的实施例。
53.图28示出次级变换矩阵的实施例。
54.图29示出缩减的次级变换/逆变换处理。
55.图30至图32示出根据块尺寸、变换矩阵集索引和变换矩阵索引推导变换矩阵的多个实施例。
56.图33至图36示出根据本发明的实施例的被应用于使用变换的编码/解码方法和设备以及存储比特流的记录介质的比特流的语法。
57.图37至图54提供用于用信号发送变换矩阵索引的条件的各种实施例。
58.图55示出根据本发明的实施例的被应用于使用变换的编码/解码方法和设备以及存储比特流的记录介质的比特流的语法。
59.图56示出根据本发明的实施例的视频解码方法。
60.图57示出根据本发明的实施例的视频编码方法。
61.最佳模式
62.本公开提供了一种视频解码方法,包括:获得指示变换跳过模式是否被应用于当前块的变换跳过模式标志;根据所述变换跳过模式标志,当变换跳过模式被应用于所述当前块时,确定次级变换/逆变换未被应用于所述当前块;以及根据所述变换跳过模式标志,当变换跳过模式未被应用于所述当前块时,获得用于所述当前块的次级变换/逆变换的变换矩阵索引,并且基于所述变换矩阵索引,确定次级变换/逆变换是否被应用于所述当前块。
具体实施方式
63.可对本发明进行各种修改,并且存在本发明的各种实施例,其中,现在将参照附图来提供本发明的各种实施例的示例并对其进行详细描述。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同或替代。在各个方面,相似的附图标号指代相同或相似的功能。在附图中,为了清楚,可夸大元件的形状和尺寸。在本发明的以下详细描述中,参照以图示的方式示出了可实践本发明的特定实施例的附图。足够详细地描述了这些实施例以使本领域技术人员能够实施本公开。应理解,本公开的各种实施例尽管不同,但不必是互斥的。例如,在不脱离本公开的精神和范围的情况下,结合一个实施例在此描述的特定特征、结构和特性可在其他实施例中被实现。此外,应理解,在不脱离本公开的精神和范围的情况下,可修改每个公开的实施例内的各个元件的位置或布置。因此,以下详细描述不应被视为具有限制意义,并且本公开的范围仅由所附权利要求(在被合适地解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
64.说明书中使用的术语“第一”、“第二”等可用于描述各种组件,但是组件不应解释为限于这些术语。这些术语仅用于将一个组件与其他组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被命名为“第二”组件,并且“第二”组件也可被类似地命名为“第一”组件。术语“和/或”包括多个项的组合或多个项中的任意一项。
65.将理解的是,在本说明书中,当元件被简单称为“连接到”或“耦接到”另一元件而不是“直接连接到”或“直接耦接到”另一元件时,元件可“直接连接到”另一元件或“直接耦接到”另一元件,或者在元件与另一元件之间介入有其他元件的情况下被连接到或耦接到另一元件。相反,应理解,当元件被称为“直接耦接”或“直接连接”到另一元件时,不存在中间元件。
66.此外,本发明的实施例中所示的构成部分被独立地示出,以表示彼此不同的特征功能。因此,这并不表示每个构成部分都以单独的硬件或软件的构成单元构成。换言之,为了方便,每个构成部分包括列举出的构成部分中的每个构成部分。因此,每个构成部分的至少两个构成部分可被组合以形成一个构成部分,或者一个构成部分可被划分为多个构成部分以执行每种功能。如果没有脱离本发明的实质,则每个构成部分被组合的实施例和一个构成部分被划分的实施例也包括在本发明的范围内。
67.本说明书中使用的术语仅用于描述特定实施例,而不旨在限制本发明。除非在上下文中具有明显不同的含义,否则以单数形式使用的表述包括复数形式的表述。在本说明书中,将理解,诸如“包括”、“具有”等的术语旨在指示存在说明书中公开的特征、数字、步骤、动作、元件、部件或其组合,而并不旨在排除可存在或可添加一个或更多个其他特征、数字、步骤、动作、元件、部件或其组合的可能性。换言之,当特定元素被称为“被包括”时,并不排除除了对应元素之外的元素,而是可在本发明的实施例或本发明的范围中包括另外的元素。
68.此外,一些组成部分可能不是执行本发明的基本功能的必不可少的组成部分,而是仅提高其性能的选择性组成部分。可通过仅包括用于实现本发明的本质的必不可少的组成部分而不包括用于提高性能的组成部分来实现本发明。仅包括必不可少的组成部分而不包括仅用于提高性能的选择性组成部分的结构也包括在本发明的范围内。
69.在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知的功能或构造,因为它们可能不必要地模糊对本发明的理解。附图中相同的构成元件由相同的附图标号表示,并且对相同元件的重复描述将被省略。
70.在下文中,图像可指构成视频的画面,或者可指视频本身。例如,“对图像进行编码或解码或者进行编码和解码两者”可指“对运动画面进行编码或解码或者进行编码和解码两者”,并且可指“对运动画面的图像中的一个图像进行编码或解码或者进行编码和解码两者”。
71.在下文中,术语“运动画面”和“视频”可用作相同的含义并且可彼此替换。
72.在下文中,目标图像可以是作为编码目标的编码目标图像和/或作为解码目标的解码目标图像。此外,目标图像可以是输入到编码设备的输入图像、以及输入到解码设备的输入图像。这里,目标图像可与当前图像具有相同的含义。
73.在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用作相同的含义并且可彼此替换。
74.在下文中,目标块可以是作为编码目标的编码目标块和/或作为解码目标的解码目标块。此外,目标块可以是作为当前编码和/或解码的目标的当前块。例如,术语“目标块”和“当前块”可被用作相同的含义并且可彼此替换。
75.在下文中,术语“块”和“单元”可被用作相同的含义并且可彼此替换。或者“块”可表示特定单元。
76.在下文中,术语“区域”和“片段”可彼此替换。
77.在下文中,特定信号可以是表示特定块的信号。例如,原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残差块的信号。
78.在实施例中,特定信息、数据、标志、索引、元素和属性等中的每个可具有值。信息、数据、标志、索引、元素和属性的值等于“0”可表示逻辑假或第一预定义值。换言之,值“0”、假、逻辑假和第一预定义值可彼此替换。信息、数据、标志、索引、元素和属性的值等于“1”可表示逻辑真或第二预定义值。换言之,值“1”、真、逻辑真和第二预定义值可彼此替换。
79.当变量i或j用于表示列、行或索引时,i的值可以是等于或大于0的整数,或者是等于或大于1的整数。也就是说,列、行、索引等可从0开始计数,或者可从1开始计数。
80.术语的描述
81.编码器:表示执行编码的设备。也就是说,表示编码设备。
82.解码器:表示执行解码的设备。也就是说,表示解码设备。
83.块:是m
×
n的样点阵列。这里,m和n可表示正整数,并且块可表示二维形式的样点阵列。块可指单元。当前块可表示在编码时成为目标的编码目标块,或者在解码时成为目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
84.样点:是构成块的基本单元。根据比特深度(bd),样点可被表示为从0到2
bd-1的值。在本发明中,样点可被用作像素的含义。也就是说,样点、pel、像素可具有彼此相同的含义。
85.单元:可指编码和解码单元。当对图像进行编码和解码时,单元可以是通过对单个图像进行分区而生成的区域。此外,当在编码或解码期间将单个图像分区为子划分单元时,单元可表示子划分单元。也就是说,图像可被分区为多个单元。当对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为尺寸小于该单元的尺寸的子单
元。根据功能,单元可表示块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种尺寸和形状,具体地,单元的形状可以是二维几何图形,诸如正方形、矩形、梯形、三角形、五边形等。此外,单元信息可包括指示编码单元、预测单元、变换单元等的单元类型以及单元尺寸、单元深度、单元的编码和解码的顺序等中的至少一个。
86.编码树单元:被配置有亮度分量y的单个编码树块以及与色度分量cb和cr相关的两个编码树块。此外,编码树单元可表示包括块和每个块的语法元素。可通过使用四叉树分区方法、二叉树分区方法和三叉树分区方法中的至少一个对每个编码树单元进行分区,以配置诸如编码单元、预测单元、变换单元等的下级单元。编码树单元可被用作用于指定在对作为输入图像的图像进行编码/解码时成为处理单元的样点块的术语。这里,四叉树可表示四元树。
87.当编码块的尺寸在预定范围内时,仅使用四叉树分区进行划分是可能的。这里,所述预定范围可被定义为能够仅使用四叉树分区进行划分的编码块的最大尺寸和最小尺寸中的至少一个。可通过比特流用信号发送指示允许四叉树分区的编码块的最大/最小尺寸的信息,并且可在序列、画面参数、并行块组或条带(片段)中的至少一个单元中用信号发送所述信息。可选地,编码块的最大/最小尺寸可以是编码器/解码器中预定的固定尺寸。例如,当编码块的尺寸与256
×
256至64
×
64对应时,仅使用四叉树分区进行划分是可能的。可选地,当编码块的尺寸大于最大转换块的尺寸时,仅使用四叉树分区进行划分是可能的。这里,将被划分的块可以是编码块和变换块中的至少一个。在这种情况下,指示编码块的划分的信息(例如,split_flag)可以是指示是否执行四叉树分区的标志。当编码块的尺寸落在预定范围内时,仅使用二叉树或三叉树分区进行划分是可能的。在这种情况下,对四叉树分区的以上描述可以以相同方式被应用于二叉树分区或三叉树分区。
88.编码树块:可用作用于指定y编码树块、cb编码树块和cr编码树块中的任意一个的术语。
89.邻近块:可表示与当前块相邻的块。与当前块相邻的块可表示与当前块的边界接触的块、或者位于距当前块预定距离内的块。邻近块可表示与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可表示与水平相邻于当前块的邻近块垂直相邻的块、或者与垂直相邻于当前块的邻近块水平相邻的块。
90.重建邻近块:可表示与当前块相邻并且已经在空间/时间上被编码或解码的邻近块。这里,重建邻近块可表示重建邻近单元。重建空间邻近块可以是在当前画面内并且已经通过编码或解码或者编码和解码两者而被重建的块。重建时间邻近块是在参考图像内的与当前画面的当前块对应的位置处的块或所述块的邻近块。
91.单元深度:可表示单元的分区程度。在树结构中,最高节点(根节点)可与未被分区的第一单元对应。此外,最高节点可具有最小深度值。在这种情况下,最高节点的深度可以是等级0。深度为等级1的节点可表示通过对第一单元进行一次分区而生成的单元。深度为等级2的节点可表示通过对第一单元进行两次分区而生成的单元。深度为等级n的节点可表示通过对第一单元进行n次分区而生成的单元。叶节点可以是最低节点并且是不能被进一步分区的节点。叶节点的深度可以是最大等级。例如,所述最大等级的预定义值可以是3。根
节点的深度可以是最低的,并且叶节点的深度可以是最深的。此外,当单元被表示为树结构时,单元所存在于的等级可表示单元深度。
92.比特流:可表示包括编码图像信息的比特流。
93.参数集:与比特流内的配置之中的头信息对应。视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个可被包括在参数集中。此外,参数集可包括条带(slice)头、并行块(tile)组头和并行块头信息。术语“并行块组”表示一组并行块并且与条带具有相同的含义。
94.自适应参数集可表示可通过在不同画面、子画面、条带、并行块组、并行块或分块(brick)中被参考而被共享的参数集。此外,可通过参考针对画面内的子画面、条带、并行块组、并行块或分块的不同自适应参数集来使用自适应参数集中的信息。
95.此外,关于自适应参数集,可通过使用针对画面内的子画面、条带、并行块组、并行块或分块的不同自适应参数集的标识符来参考不同自适应参数集。
96.此外,关于自适应参数集,可通过使用针对子画面内的条带、并行块组、并行块或分块的不同自适应参数集的标识符来参考不同自适应参数集。
97.此外,关于自适应参数集,可通过使用针对条带内的并行块或分块的不同自适应参数集的标识符来参考不同自适应参数集。
98.此外,关于自适应参数集,可通过使用针对并行块内的分块的不同自适应参数集的标识符来参考不同自适应参数集。
99.关于自适应参数集标识符的信息可被包括在子画面的参数集或头中,并且与该自适应参数集标识符对应的自适应参数集可被用于子画面。
100.关于自适应参数集标识符的信息可被包括在并行块的参数集或头中,并且与该自适应参数集标识符对应的自适应参数集可被用于并行块。
101.关于自适应参数集标识符的信息可被包括在分块的头中,并且与该自适应参数集标识符对应的自适应参数集可被用于分块。
102.画面可被分区为一个或更多个并行块行以及一个或更多个并行块列。
103.子画面可被分区为画面内的一个或更多个并行块行以及一个或更多个并行块列。子画面可以是画面内的具有矩形/正方形形式的区域,并且可包括一个或更多个ctu。此外,至少一个或更多个并行块/分块/条带可被包括在一个子画面内。
104.并行块可以是画面内的具有矩形/正方形形式的区域,并且可包括一个或更多个ctu。此外,并行块可被分区为一个或更多个分块。
105.分块可表示并行块内的一个或更多个ctu行。并行块可被分区为一个或更多个分块,并且每个分块可具有至少一个或更多个ctu行。未被分区为两个或更多个的并行块可表示分块。
106.条带可包括画面内的一个或更多个并行块,并且可包括并行块内的一个或更多个分块。
107.解析:可表示通过执行熵解码来确定语法元素的值,或者可表示熵解码本身。
108.符号:可表示编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。此外,符号可表示熵编码目标或熵解码结果。
109.预测模式:可以是指示利用帧内预测而被编码/解码的模式或利用帧间预测而被
编码/解码的模式的信息。
110.预测单元:可表示当执行预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿)时的基本单元。单个预测单元可被分区为具有更小尺寸的多个分区,或者可被分区为多个下级预测单元。多个分区可以是在执行预测或补偿时的基本单元。通过划分预测单元而生成的分区也可以是预测单元。
111.预测单元分区:可表示通过对预测单元进行分区而获得的形状。
112.参考画面列表可指包括用于帧间预测或运动补偿的一个或更多个参考画面的列表。存在若干类型的可用参考画面列表,包括lc(列表组合)、l0(列表0)、l1(列表1)、l2(列表2)、l3(列表3)。
113.帧间预测指示符可指当前块的帧间预测的方向(单向预测、双向预测等)。可选地,帧间预测指示符可指用于生成当前块的预测块的参考画面的数量。可选地,帧间预测指示符可指在对当前块执行帧间预测或运动补偿时使用的预测块的数量。
114.预测列表利用标志指示是否使用特定参考画面列表中的至少一个参考画面来生成预测块。可使用预测列表利用标志来推导帧间预测指示符,并且相反地,可使用帧间预测指示符来推导预测列表利用标志。例如,当预测列表利用标志具有第一值零(0)时,它表示参考画面列表中的参考画面不被用于生成预测块。另一方面,当预测列表利用标志具有第二值一(1)时,它表示参考画面列表被用于生成预测块。
115.参考画面索引可指指示参考画面列表中的特定参考画面的索引。
116.参考画面可表示由特定块参考以用于特定块的帧间预测或运动补偿的目的的参考画面。可选地,参考画面可以是包括由当前块参考以用于帧间预测或运动补偿的参考块的画面。在下文中,术语“参考画面”和“参考图像”具有相同的含义并且可互换。
117.运动矢量可以是用于帧间预测或运动补偿的二维矢量。运动矢量可表示编码/解码目标块与参考块之间的偏移。例如,(mvx,mvy)可表示运动矢量。这里,mvx可表示水平分量,并且mvy可表示垂直分量。
118.搜索范围可以是在帧间预测期间被搜索以检索运动矢量的二维区域。例如,搜索范围的尺寸可以是m
×
n。这里,m和n都是整数。
119.运动矢量候选可指在对运动矢量进行预测时的预测候选块或预测候选块的运动矢量。此外,运动矢量候选可被包括在运动矢量候选列表中。
120.运动矢量候选列表可表示由一个或更多个运动矢量候选组成的列表。
121.运动矢量候选索引可表示指示运动矢量候选列表中的运动矢量候选的指示符。可选地,它可以是运动矢量预测因子的索引。
122.运动信息可表示包括包含运动矢量、参考画面索引、帧间预测指示符、预测列表利用标志、参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引的项中的至少一项的信息。
123.合并候选列表可表示由一个或更多个合并候选组成的列表。
124.合并候选可表示空间合并候选、时间合并候选、组合合并候选、组合双预测合并候选或零合并候选。合并候选可包括诸如帧间预测指示符、每个列表的参考画面索引、运动矢量、预测列表利用标志和帧间预测指示符的运动信息。
125.合并索引可表示指示合并候选列表中的合并候选的指示符。可选地,合并索引可
指示在空间上/时间上与当前块相邻的重建块中的块,其中,已从该块推导出合并候选。可选地,合并索引可指示合并候选的至少一条运动信息。
126.变换单元:可表示在对残差信号执行编码/解码(诸如变换、逆变换、量化、反量化、变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有更小尺寸的多个下级变换单元。这里,变换/逆变换可包括第一变换/第一逆变换和第二变换/第二逆变换中的至少一个。
127.缩放:可表示将量化的等级乘以因子的处理。可通过对量化的等级进行缩放来生成变换系数。缩放也可被称为反量化。
128.量化参数:可表示当在量化期间使用变换系数来生成量化的等级时使用的值。量化参数还可表示当在反量化期间通过对量化的等级进行缩放来生成变换系数时使用的值。量化参数可以是被映射在量化步长上的值。
129.增量量化参数:可表示预测的量化参数与编码/解码目标单元的量化参数之间的差值。
130.扫描:可表示对单元、块或矩阵内的系数进行排序的方法。例如,将系数的二维矩阵改变为一维矩阵可被称为扫描,将系数的一维矩阵改变为二维矩阵可被称为扫描或逆扫描。
131.变换系数:可表示在编码器中执行变换之后生成的系数值。变换系数可表示在解码器中执行熵解码和反量化中的至少一个之后生成的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或者量化的变换系数等级也可落入变换系数的含义内。
132.量化的等级:可表示在编码器中通过对变换系数或残差信号进行量化而生成的值。可选地,量化的等级可表示作为在解码器中经历反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落入量化的等级的含义内。
133.非零变换系数:可表示具有除零之外的值的变换系数、或者具有除零之外的值的变换系数等级或量化的等级。
134.量化矩阵:可表示在为了提高主观图像质量或客观图像质量而执行的量化处理或反量化处理中使用的矩阵。量化矩阵也可被称为缩放列表。
135.量化矩阵系数:可表示量化矩阵内的每个元素。量化矩阵系数也可被称为矩阵系数。
136.默认矩阵:可表示在编码器或解码器中预先定义的预定量化矩阵。
137.非默认矩阵:可表示在编码器或解码器中未被预先定义而是由用户用信号发送的量化矩阵。
138.统计值:针对具有可计算的特定值的变量、编码参数、常量值等之中的至少一个的统计值可以是对应特定值的平均值、求和值、加权平均值、加权和值、最小值、最大值、最频繁出现的值、中值、插值之中的一个或更多个。
139.图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
140.编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对至少一个图像进行编码。
141.参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、
逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
142.编码设备100可通过使用帧内模式或帧间模式或者帧内模式和帧间模式两者来执行输入图像的编码。此外,编码设备100可通过对输入图像进行编码来生成包括编码信息的比特流,并输出生成的比特流。生成的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可切换到帧内。可选地,当帧间模式被用作预测模式时,切换器115可切换到帧间模式。这里,帧内模式可表示帧内预测模式,帧间模式可表示帧间预测模式。编码设备100可生成针对输入图像的输入块的预测块。此外,编码设备100可在生成预测块之后使用输入块和预测块的残差对残差块进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为当前编码目标的当前块,或者被称为编码目标块。
143.当预测模式是帧内模式时,帧内预测单元120可使用已被编码/解码并与当前块相邻的块的样点作为参考样点。帧内预测单元120可通过使用参考样点来对当前块执行空间预测,或者通过执行空间预测来生成输入块的预测样点。这里,帧内预测可表示帧内部的预测。
144.当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像检索与输入块最匹配的区域,并且通过使用检索到的区域来推导运动矢量。在这种情况下,搜索区域可被用作所述区域。参考图像可被存储在参考画面缓冲器190中。这里,当执行对参考图像的编码/解码时,参考图像可被存储在参考画面缓冲器190中。
145.运动补偿单元112可通过使用运动矢量对当前块执行运动补偿来生成预测块。这里,帧间预测可表示帧之间的预测或运动补偿。
146.当运动矢量的值不是整数时,运动预测单元111和运动补偿单元112可通过将插值滤波器应用于参考画面的部分区域来生成预测块。为了对编码单元执行画面间预测或运动补偿,可确定跳过模式、合并模式、高级运动矢量预测(amvp)模式和当前画面参考模式之中的哪个模式被用于对包括在对应编码单元中的预测单元的运动预测和运动补偿。然后,根据所确定的模式,可不同地执行画面间预测或运动补偿。
147.减法器125可通过使用输入块和预测块的差来生成残差块。残差块可被称为残差信号。残差信号可表示原始信号和预测信号之间的差。此外,残差信号可以是通过对原始信号与预测信号之间的差进行变换或量化或者变换和量化而生成的信号。残差块可以是块单元的残差信号。
148.变换单元130可通过对残差块执行变换来生成变换系数,并输出生成的变换系数。这里,变换系数可以是通过对残差块执行变换而生成的系数值。当变换跳过模式被应用时,变换单元130可跳过对残差块的变换。
149.可通过将量化应用于变换系数或应用于残差信号来生成量化的等级。在下文中,量化的等级在实施例中也可被称为变换系数。
150.量化单元140可通过根据参数对变换系数或残差信号进行量化来生成量化的等级,并输出生成的量化的等级。这里,量化单元140可通过使用量化矩阵对变换系数进行量化。
151.熵编码单元150可通过根据概率分布对由量化单元140计算出的值或者对在执行编码时计算出的编码参数值执行熵编码来生成比特流,并输出生成的比特流。熵编码单元
150可对图像的样点信息和用于对图像进行解码的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素。
152.当熵编码被应用时,符号被表示使得较少数量的比特被分配给具有高生成可能性的符号,并且较多数量的比特被分配给具有低生成可能性的符号,因此,可减小用于将被编码的符号的比特流的大小。熵编码单元150可使用诸如指数golomb、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等的用于熵编码的编码方法。例如,熵编码单元150可通过使用变长编码/码(vlc)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法和目标符号/二进制位的概率模型,并且通过使用推导的二值化方法和上下文模型来执行算术编码。
153.为了对变换系数等级(量化的等级)进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变为一维矢量形式。
154.编码参数可包括编码器中被编码并且被用信号发送到解码器的诸如语法元素的信息(标志、索引等)以及在执行编码或解码时推导出的信息。编码参数可表示在对图像进行编码或解码时所需要的信息。例如,以下项中的至少一个值或组合形式可被包括在编码参数中:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块形状、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、当前编码单元是否通过三叉树分区被分区、三叉树分区的方向(水平方向或垂直方向)、三叉树分区的类型(对称类型或非对称类型)、当前编码单元是否通过多类型树分区被分区、多类型树分区的方向(水平方向或垂直方向)、多类型树分区的类型(对称类型或非对称类型)、多类型树分区的树(二叉树或三叉树)结构、预测模式(帧内预测或帧间预测)、亮度帧内预测模式/方向、色度帧内预测模式/方向、帧内分区信息、帧间分区信息、编码块分区标志、预测块分区标志、变换块分区标志、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧内预测模式、帧间预测模式、运动信息、运动矢量、运动矢量差、参考画面索引、帧间预测角度、帧间预测指示符、预测列表利用标志、参考画面列表、参考画面、运动矢量预测因子索引、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并索引、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小、运动矢量的表示精度、变换类型、变换尺寸、初级(第一)变换是否被使用的信息、次级变换是否被使用的信息、初级变换索引、次级变换索引、残差信号是否存在的信息、编码块样式、编码块标志(cbf)、量化参数、量化参数残差、量化矩阵、是否应用帧内环路滤波器、帧内环路滤波器系数、帧内环路滤波器抽头、帧内环路滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环内滤波器、自适应环内滤波器系数、自适应环内滤波器抽头、自适应环内滤波器形状/形式、二值化/反二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁路二进制位、有效系数标志、最后有效系数标志、针对系数组的单元的编码标志、最后有效系数的位置、关于系数的值是否大于1的标志、关于系数的值是否大于2的标志、关于系数的值是
否大于3的标志、关于其余系数值的信息、正负符号(sign)信息、重建亮度样点、重建色度样点、残差亮度样点、残差色度样点、亮度变换系数、色度变换系数、量化的亮度等级、量化的色度等级、变换系数等级扫描方法、在解码器侧的运动矢量搜索区域的尺寸、在解码器侧的运动矢量搜索区域的形状、在解码器侧的运动矢量搜索的次数、关于ctu尺寸的信息、关于最小块尺寸的信息、关于最大块尺寸的信息、关于最大块深度的信息、关于最小块深度的信息、图像显示/输出顺序、条带标识信息、条带类型、条带分区信息、并行块标识信息、并行块类型、并行块分区信息、并行块组标识信息、并行块组类型、并行块组分区信息、画面类型、输入样点的比特深度、重建样点的比特深度、残差样点的比特深度、变换系数的比特深度、量化的等级的比特深度、以及关于亮度信号的信息或关于色度信号的信息。
155.这里,用信号发送标志或索引可表示由编码器对对应标志或索引进行熵编码并将其包括在比特流中,并且可表示由解码器从比特流对对应标志或索引进行熵解码。
156.当编码设备100通过帧间预测执行编码时,编码的当前图像可被用作用于随后被处理的另一图像的参考图像。因此,编码设备100可对编码的当前图像进行重建或解码,或者将重建或解码的图像作为参考图像存储在参考画面缓冲器190中。
157.量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可由加法器175将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加,可生成重建块。这里,经过反量化或逆变换的系数或经过反量化和逆变换两者的系数可表示执行了反量化和逆变换中的至少一个的系数,并且可表示重建残差块。
158.重建块可通过滤波器单元180。滤波器单元180可将去块滤波器、样点自适应偏移(sao)和自适应环内滤波器(alf)中的至少一个应用于重建样点、重建块或重建图像。滤波器单元180可被称为环内滤波器。
159.去块滤波器可去除在块之间的边界中生成的块失真。为了确定是否应用去块滤波器,可基于块中所包括的若干行或列中包括的样点来确定是否将去块滤波器应用于当前块。当将去块滤波器应用于块时,可根据所需的去块滤波强度来应用另一滤波器。
160.为了补偿编码误差,可通过使用样点自适应偏移将合适的偏移值与样点值相加。样点自适应偏移可以以样点为单位对经过去块的图像与原始图像的偏移进行校正。可使用考虑关于每个样点的边缘信息来应用偏移的方法,或者可使用以下方法:将图像的样点分区为预定数量的区域,确定偏移被应用的区域,并对确定的区域应用偏移。
161.自适应环内滤波器可基于经滤波的重建图像和原始图像的比较结果来执行滤波。可将包括在图像中的样点分区为预定组,可确定将被应用于每个组的滤波器,并且可对每个组执行差异化滤波。是否应用alf的信息可通过编码单元(cu)被用信号发送,并且将被应用于每个块的alf的形式和系数可变化。
162.已经通过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。由滤波器单元180处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元180处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿中被使用。
163.图2是示出根据实施例并且应用了本发明的解码设备的配置的框图。
164.解码设备200可以是解码器、视频解码设备或图像解码设备。
165.参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器255、滤波器单元260和参考画面缓冲器270。
166.解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读记录介质中的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可生成通过解码而生成的重建图像或解码图像,并输出重建图像或解码图像。
167.当在解码时使用的预测模式是帧内模式时,切换器可被切换到帧内。可选地,当在解码时使用的预测模式是帧间模式时,切换器可被切换到帧间模式。
168.解码设备200可通过对输入比特流进行解码来获得重建残差块,并生成预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来生成成为解码目标的重建块。解码目标块可被称为当前块。
169.熵解码单元210可通过根据概率分布对比特流进行熵解码来生成符号。生成的符号可包括量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆处理。
170.为了对变换系数等级(量化的等级)进行解码,熵解码单元210可通过使用变换系数扫描方法将单向矢量形式的系数改变为二维块形式。
171.可在反量化单元220中对量化的等级进行反量化,或者可在逆变换单元230中对量化的等级进行逆变换。量化的等级可以是进行反量化或逆变换或者进行反量化和逆变换两者的结果,并且可被生成为重建残差块。这里,反量化单元220可将量化矩阵应用于量化的等级。
172.当使用帧内模式时,帧内预测单元240可通过对当前块执行空间预测来生成预测块,其中,空间预测使用与解码目标块相邻并且已经被解码的块的样点值。
173.当使用帧间模式时,运动补偿单元250可通过对当前块执行运动补偿来生成预测块,其中,运动补偿使用运动矢量以及存储在参考画面缓冲器270中的参考图像。
174.加法器255可通过将重建残差块与预测块相加来生成重建块。滤波器单元260可将去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个应用于重建块或重建图像。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中并且在执行帧间预测时被使用。由滤波器单元260处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元260处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿中被使用。
175.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。图3示意性地示出将单个单元分区为多个下级单元的示例。
176.为了有效地对图像进行分区,当进行编码和解码时,可使用编码单元(cu)。编码单元可被用作当对图像进行编码/解码时的基本单元。此外,编码单元可被用作用于在对图像进行编码/解码时区分帧内预测模式与帧间预测模式的单元。编码单元可以是用于预测、变换、量化、逆变换、反量化、或对变换系数的编码/解码处理的基本单元。
177.参照图3,图像300按照最大编码单元(lcu)被顺序地分区,并且lcu单元被确定为分区结构。这里,lcu可以以与编码树单元(ctu)相同的含义被使用。单元分区可表示对与该单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或程度或者单元被分区的次数和程度两者。可基于树结构将单个单元分区为
与深度信息分层地相关联的多个下级单元。换言之,单元和通过对该单元进行分区而生成的下级单元可分别与节点和该节点的子节点对应。分区出的下级单元中的每个可具有深度信息。深度信息可以是表示cu的尺寸的信息,并且可被存储在每个cu中。单元深度表示与对单元进行分区相关的次数和/或程度。因此,下级单元的分区信息可包括关于下级单元的尺寸的信息。
178.分区结构可表示lcu 310内的编码单元(cu)的分布。可根据是否将单个cu分区为多个(包括2、4、8、16等的等于或大于2的正整数)cu来确定这样的分布。通过分区生成的cu的水平尺寸和垂直尺寸可分别是分区之前的cu的水平尺寸和垂直尺寸的一半,或者可根据分区的次数而分别具有小于进行分区之前的水平尺寸和垂直尺寸的尺寸。cu可被递归地分区为多个cu。通过递归分区,与分区之前的cu的高度和宽度之中的至少一个相比,分区之后的cu的高度和宽度之中的至少一个可减小。可递归地执行cu的分区,直到预定义的深度或预定义的尺寸为止。例如,lcu的深度可以是0,最小编码单元(scu)的深度可以是预定义的最大深度。这里,如上所述,lcu可以是具有最大编码单元尺寸的编码单元,并且scu可以是具有最小编码单元尺寸的编码单元。分区从lcu 310开始,当cu的水平尺寸或垂直尺寸或者水平尺寸和垂直尺寸两者通过分区而减小时,cu深度增加1。例如,对于每个深度,未被分区的cu的尺寸可以是2n
×
2n。此外,在被分区的cu的情况下,可将尺寸为2n
×
2n的cu分区为尺寸为n
×
n的四个cu。随着深度增加1,n的大小可减半。
179.此外,可通过使用cu的分区信息来表示cu是否被分区的信息。分区信息可以是1比特信息。除scu之外的所有cu可包括分区信息。例如,当分区信息的值为第一值时,cu可不被分区,当分区信息的值为第二值时,cu可被分区。
180.参照图3,具有深度0的lcu可以是64
×
64的块。0可以是最小深度。具有深度3的scu可以是8
×
8的块。3可以是最大深度。32
×
32的块和16
×
16的块的cu可分别被表示为深度1和深度2。
181.例如,当单个编码单元被分区为四个编码单元时,分区出的四个编码单元的水平尺寸和垂直尺寸可以是cu在被分区之前的水平尺寸和垂直尺寸的一半大小。在一个实施例中,当尺寸为32
×
32的编码单元被分区为四个编码单元时,分区出的四个编码单元中的每个可具有16
×
16的尺寸。当单个编码单元被分区为四个编码单元时,可称编码单元可被分区为四叉树形式。
182.例如,当一个编码单元被分区为两个子编码单元时,该两个子编码单元中的每个子编码单元的水平尺寸或垂直尺寸(宽度或高度)可以是原始编码单元的水平尺寸或垂直尺寸的一半。例如,当尺寸为32
×
32的编码单元被垂直分区为两个子编码单元时,该两个子编码单元中的每个子编码单元可具有16
×
32的尺寸。例如,当尺寸为8
×
32的编码单元被水平分区为两个子编码单元时,该两个子编码单元中的每个子编码单元可具有8
×
16的尺寸。当一个编码单元被分区为两个子编码单元时,可称编码单元被二分区或者按照二叉树分区结构被分区。
183.例如,当一个编码单元被分区为三个子编码单元时,可以以1:2:1的比例对编码单元的水平尺寸或垂直尺寸进行分区,从而产生水平尺寸或垂直尺寸的比例为1:2:1的三个子编码单元。例如,当尺寸为16
×
32的编码单元被水平分区为三个子编码单元时,该三个子编码单元以从最上方子编码单元到最下方子编码单元的顺序可分别具有16
×
8、16
×
16和
16
×
8的尺寸。例如,当尺寸为32
×
32的编码单元被垂直划分为三个子编码单元时,该三个子编码单元以从左侧子编码单元到右侧子编码单元的顺序可分别具有8
×
32、16
×
32和8
×
32的尺寸。当一个编码单元被分区为三个子编码单元时,可称编码单元被三分区或者按照三叉树分区结构被分区。
184.在图3中,编码树单元(ctu)320是四叉树分区结构、二叉树分区结构和三叉树分区结构全都被应用的ctu的示例。
185.如上所述,为了对ctu进行分区,可应用四叉树分区结构、二叉树分区结构和三叉树分区结构中的至少一个。可根据预定的优先级顺序将各种树分区结构顺序地应用于ctu。例如,可将四叉树分区结构优先应用于ctu。不能再使用四叉树分区结构进行分区的编码单元可与四叉树的叶节点对应。与四叉树的叶节点对应的编码单元可用作二叉树和/或三叉树分区结构的根节点。也就是说,与四叉树的叶节点对应的编码单元可按照二叉树分区结构或三叉树分区结构被进一步分区,或者可不被进一步分区。因此,通过防止从与四叉树的叶节点对应的编码单元的二叉树分区或三叉树分区得到的编码单元经历进一步的四叉树分区,块分区操作和/或用信号发送分区信息的操作可被有效执行。
186.可使用四分区信息用信号发送与四叉树的节点对应的编码单元被分区的事实。具有第一值(例如,“1”)的四分区信息可指示当前编码单元按照四叉树分区结构被分区。具有第二值(例如,“0”)的四分区信息可指示当前编码单元未按照四叉树分区结构被分区。四分区信息可以是具有预定长度(例如,一个比特)的标志。
187.在二叉树分区与三叉树分区之间可能没有优先级。也就是说,与四叉树的叶节点对应的编码单元可进一步经历二叉树分区和三叉树分区中的任意分区。此外,通过二叉树分区或三叉树分区生成的编码单元可经历进一步的二叉树分区或进一步的三叉树分区,或者可不被进一步分区。
188.在二叉树分区和三叉树分区之间不存在优先级的树结构被称为多类型树结构。与四叉树的叶节点对应的编码单元可用作多类型树的根节点。可使用多类型树分区指示信息、分区方向信息和分区树信息中的至少一个来用信号发送是否对与多类型树的节点对应的编码单元进行分区。为了对与多类型树的节点对应的编码单元进行分区,可顺序地用信号发送多类型树分区指示信息、分区方向信息和分区树信息。
189.具有第一值(例如,“1”)的多类型树分区指示信息可指示当前编码单元将经历多类型树分区。具有第二值(例如,“0”)的多类型树分区指示信息可指示当前编码单元将不经历多类型树分区。
190.当与多类型树的节点对应的编码单元按照多类型树分区结构被进一步分区时,所述编码单元可包括分区方向信息。分区方向信息可指示当前编码单元将在哪个方向上针对多类型树分区被分区。具有第一值(例如,“1”)的分区方向信息可指示当前编码单元将被垂直分区。具有第二值(例如,“0”)的分区方向信息可指示当前编码单元将被水平分区。
191.当与多类型树的节点对应的编码单元按照多类型树分区结构被进一步分区时,当前编码单元可包括分区树信息。分区树信息可指示将被用于对多类型树的节点进行分区的树分区结构。具有第一值(例如,“1”)的分区树信息可指示当前编码单元将按照二叉树分区结构被分区。具有第二值(例如,“0”)的分区树信息可指示当前编码单元将按照三叉树分区结构被分区。
192.所述分区指示信息、分区树信息和分区方向信息均可以是具有预定长度(例如,一个比特)的标志。
193.四叉树分区指示信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个可被熵编码/熵解码。为了对那些类型的信息进行熵编码/熵解码,可使用关于与当前编码单元相邻的邻近编码单元的信息。例如,当前编码单元的左侧邻近编码单元和/或上方邻近编码单元的分区类型(被分区或不被分区、分区树和/或分区方向)与当前编码单元的分区类型相似的可能性很高。因此,可从关于邻近编码单元的信息推导用于对关于当前编码单元的信息进行熵编码/熵解码的上下文信息。关于邻近编码单元的信息可包括四分区信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个。
194.作为另一示例,在二叉树分区和三叉树分区中,可优先执行二叉树分区。也就是说,当前编码单元可首先经历二叉树分区,并且随后可将与二叉树的叶节点对应的编码单元设置为用于三叉树分区的根节点。在这种情况下,对于与三叉树的节点对应的编码单元,可既不执行四叉树分区也不执行二叉树分区。
195.不能按照四叉树分区结构、二叉树分区结构和/或三叉树分区结构被分区的编码单元成为用于编码、预测和/或变换的基本单元。也就是说,所述编码单元不能被进一步分区以用于预测和/或变换。因此,在比特流中可能不存在用于将编码单元分区为预测单元和/或变换单元的分区结构信息和分区信息。
196.然而,当编码单元(即,用于分区的基本单元)的尺寸大于最大变换块的尺寸时,可递归地对编码单元进行分区,直到将编码单元的尺寸减小到等于或小于最大变换块的尺寸为止。例如,当编码单元的尺寸为64
×
64时并且当最大变换块的尺寸为32
×
32时,可将编码单元分区为用于变换的四个32
×
32的块。例如,当编码单元的尺寸为32
×
64并且最大变换块的尺寸为32
×
32时,可将编码单元分区为用于变换的两个32
×
32的块。在这种情况下,不单独用信号发送编码单元的针对变换的分区,并且可通过编码单元的水平尺寸或垂直尺寸与最大变换块的水平尺寸或垂直尺寸之间的比较来确定编码单元的针对变换的分区。例如,当编码单元的水平尺寸(宽度)大于最大变换块的水平尺寸(宽度)时,可将编码单元垂直地二等分。例如,当编码单元的垂直尺寸(高度)大于最大变换块的垂直尺寸(高度)时,可将编码单元水平地二等分。
197.编码单元的最大和/或最小尺寸的信息以及变换块的最大和/或最小尺寸的信息可在编码单元的上级被用信号发送或确定。所述上级可以是例如序列级、画面级、条带级、并行块组级、并行块级等。例如,编码单元的最小尺寸可被确定为4
×
4。例如,变换块的最大尺寸可被确定为64
×
64。例如,变换块的最小尺寸可被确定为4
×
4。
198.与四叉树的叶节点对应的编码单元的最小尺寸(四叉树最小尺寸)的信息和/或从多类型树的根节点到叶节点的最大深度(多类型树的最大树深度)的信息可在编码单元的上级被用信号发送或被确定。例如,所述上级可以是序列级、画面级、条带级、并行块组级、并行块级等。可针对画面内条带和画面间条带中的每一个用信号发送或确定四叉树的最小尺寸的信息和/或多类型树的最大深度的信息。
199.可在编码单元的上级用信号发送或确定ctu的尺寸与变换块的最大尺寸之间的差信息。例如,所述上级可以是序列级、画面级、条带级、并行块组级、并行块级等。可基于编码树单元的尺寸和所述差信息来确定与二叉树的各个节点对应的编码单元的最大尺寸(在下
文中,称为二叉树的最大尺寸)的信息。与三叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为三叉树的最大尺寸)可根据条带的类型而变化。例如,针对画面内条带,三叉树的最大尺寸可以是32
×
32。例如,针对画面间条带,三叉树的最大尺寸可以是128
×
128。例如,与二叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为二叉树的最小尺寸)和/或与三叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为三叉树的最小尺寸)可被设置为编码块的最小尺寸。
200.作为另一示例,可在条带级用信号发送或确定二叉树的最大尺寸和/或三叉树的最大尺寸。可选地,可在条带级用信号发送或确定二叉树的最小尺寸和/或三叉树的最小尺寸。
201.根据上述各种块的尺寸和深度信息,四分区信息、多类型树分区指示信息、分区树信息和/或分区方向信息可被包括或可不被包括在比特流中。
202.例如,当编码单元的尺寸不大于四叉树的最小尺寸时,编码单元不包括四分区信息。四分区信息可被推断为第二值。
203.例如,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)大于二叉树的最大尺寸(水平尺寸和垂直尺寸)和/或三叉树的最大尺寸(水平尺寸和垂直尺寸)时,编码单元可不被二分区或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。
204.可选地,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)与二叉树的最大尺寸(水平尺寸和垂直尺寸)相同和/或是三叉树的最大尺寸(水平尺寸和垂直尺寸)的两倍大时,编码单元可不被进一步二分区或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。这是因为当按照二叉树分区结构和/或三叉树分区结构对编码单元进行分区时,小于二叉树的最小尺寸和/或三叉树的最小尺寸的编码单元被生成。
205.可选地,可基于虚拟流水线数据单元的尺寸(在下文中,流水线缓冲器尺寸)来限制二叉树分区或三叉树分区。例如,当通过二叉树分区或三叉树分区将编码单元划分为不适合流水线缓冲器尺寸的子编码单元时,对应的二叉树分区或三叉树分区可能受到限制。流水线缓冲器尺寸可以是最大变换块的尺寸(例如,64
×
64)。例如,当流水线缓冲器尺寸是64
×
64时,可限制下面的划分。
[0206]-用于编码单元的n
×
m(n和/或m是128)三叉树分区
[0207]-用于编码单元的水平方向的128
×
n(n《=64)二叉树分区
[0208]-用于编码单元的垂直方向的n
×
128(n《=64)二叉树分区
[0209]
可选地,当与多类型树的节点对应的编码单元的深度等于多类型树的最大深度时,编码单元可不被进一步二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。
[0210]
可选地,仅当垂直方向二叉树分区、水平方向二叉树分区、垂直方向三叉树分区和水平方向三叉树分区中的至少一个对于与多类型树的节点对应的编码单元是可能的时,可用信号发送多类型树分区指示信息。否则,编码单元可不被二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。
[0211]
可选地,仅当垂直方向二叉树分区和水平方向二叉树分区两者或垂直方向三叉树
分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码单元是可能的时,可用信号发送分区方向信息。否则,可不用信号发送分区方向信息,但是分区方向信息可被推断为指示可能的分区方向的值。
[0212]
可选地,仅当垂直方向二叉树分区和垂直方向三叉树分区两者或水平方向二叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码树是可能的时,可用信号发送分区树信息。否则,可不用信号发送分区树信息,但是分区树信息可被推断为指示可能的分区树结构的值。
[0213]
图4是示出帧内预测处理的示图。
[0214]
图4中从中心到外部的箭头可表示帧内预测模式的预测方向。
[0215]
可通过使用当前块的邻近块的参考样点来执行帧内编码和/或解码。邻近块可以是重建邻近块。例如,可通过使用包括在重建邻近块中的参考样点的值或编码参数来执行帧内编码和/或解码。
[0216]
预测块可表示通过执行帧内预测而生成的块。预测块可与cu、pu和tu中的至少一个对应。预测块的单元可具有cu、pu和tu中的一个的尺寸。预测块可以是尺寸为2
×
2、4
×
4、16
×
16、32
×
32或64
×
64等的正方形块,或者可以是尺寸为2
×
8、4
×
8、2
×
16、4
×
16和8
×
16等的矩形块。
[0217]
可根据针对当前块的帧内预测模式来执行帧内预测。当前块可具有的帧内预测模式的数量可以是固定值,并且可以是根据预测块的属性不同地确定的值。例如,预测块的属性可包括预测块的尺寸和预测块的形状等。
[0218]
不管块尺寸为多少,可将帧内预测模式的数量固定为n。或者,帧内预测模式的数量可以是3、5、9、17、34、35、36、65或67等。可选地,帧内预测模式的数量可根据块尺寸或颜色分量类型或者块尺寸和颜色分量类型两者而变化。例如,帧内预测模式的数量可根据颜色分量是亮度信号还是色度信号而变化。例如,随着块尺寸变大,帧内预测模式的数量可增加。可选地,亮度分量块的帧内预测模式的数量可大于色度分量块的帧内预测模式的数量。
[0219]
帧内预测模式可以是非角度模式或角度模式。非角度模式可以是dc模式或平面模式,并且角度模式可以是具有特定方向或角度的预测模式。帧内预测模式可由模式编号、模式值、模式数字、模式角度和模式方向中的至少一个来表示。帧内预测模式的数量可以是大于1的m,包括非角度模式和角度模式。为了对当前块进行帧内预测,可执行确定是否可将包括在重建邻近块中的样点用作当前块的参考样点的步骤。当存在不能用作当前块的参考样点的样点时,通过对包括在重建邻近块中的样点中的至少一个样点值进行复制或执行插值或者进行复制和插值两者而获得的值可被用于替换样点的不可用样点值,因此替换后的样点值被用作当前块的参考样点。
[0220]
图7是示出能够用于帧内预测的参考样点的示图。
[0221]
如图7中所示,参考样点线0至参考样点线3中的至少一个可用于当前块的帧内预测。在图7中,片段a和片段f的样点可分别利用最接近片段b和片段e的样点被填充,而不是从重建邻近块进行检索。可用信号发送指示将被用于当前块的帧内预测的参考样点线的索引信息。例如,在图7中,参考样点线指示符0、1和2可作为指示参考样点线0、参考样点线1和参考样点线2的索引信息而被用信号发送。在当前块的上方边界是ctu的边界时,仅参考样点线0可以是可用的。因此,在这种情况下,可不用信号发送索引信息。当除了参考样点线0
之外的参考样点线被使用时,可不执行稍后将描述的针对预测块的滤波。
[0222]
当进行帧内预测时,可基于帧内预测模式和当前块尺寸将滤波器应用于参考样点和预测样点中的至少一个。
[0223]
在平面模式的情况下,当生成当前块的预测块时,根据预测目标样点在预测块内的位置,可通过使用当前块的上方参考样点与左侧参考样点以及当前块的右上方参考样点与左下方参考样点的加权和来生成预测目标样点的样点值。此外,在dc模式的情况下,当生成当前块的预测块时,可使用当前块的上方参考样点与左侧参考样点的平均值。此外,在角度模式的情况下,可通过使用当前块的上方参考样点、左侧参考样点、右上方参考样点和/或左下方参考样点来生成预测块。为了生成预测样点值,可执行实数单元的插值。
[0224]
在颜色分量之间的帧内预测的情况下,可基于第一颜色分量的对应重建块来生成第二颜色分量的当前块的预测块。例如,第一颜色分量可以是亮度分量,并且第二颜色分量可以是色度分量。对于颜色分量之间的帧内预测,可基于模板推导第一颜色分量与第二颜色分量之间的线性模型的参数。模板可包括当前块的上方和/或左侧邻近样点以及与其对应的第一颜色分量的重建块的上方和/或左侧邻近样点。例如,可使用模板中的样点中具有最大值的第一颜色分量的样点值及与其对应的第二颜色分量的样点值,以及模板中的样点中具有最小值的第一颜色分量的样点值及与其对应的第二颜色分量的样点值来推导线性模型的参数。当推导线性模型的参数时,可将对应重建块应用于线性模型以生成当前块的预测块。根据视频格式,可对第一颜色分量的重建块的邻近样点和对应重建块执行子采样。例如,当第二颜色分量的一个样点与第一颜色分量的四个样点对应时,可对第一颜色分量的四个样点进行子采样以计算一个对应样点。在这种情况下,可基于对应的被子采样的样点执行线性模型的参数推导和颜色分量之间的帧内预测。是否执行颜色分量之间的帧内预测以及/或者模板的范围可作为帧内预测模式被用信号发送。
[0225]
当前块可在水平方向或垂直方向上被分区为两个子块或四个子块。可顺序地重建被分区的子块。也就是说,可对子块执行帧内预测以生成子预测块。此外,可对子块执行反量化和/或逆变换以生成子残差块。可通过将子预测块与子残差块相加来生成重建子块。重建子块可用作后续子块的帧内预测的参考样点。子块可以是包括预定数量(例如,16)或更多个样点的块。因此,例如,在当前块是8
×
4的块或4
×
8的块时,当前块可被分区为两个子块。此外,在当前块是4
×
4的块时,当前块可不被分区为子块。在当前块具有其它尺寸时,当前块可被分区为四个子块。可用信号发送关于是否基于子块和/或分区方向(水平或垂直)执行帧内预测的信息。可限于仅在使用参考样点线0时执行基于子块的帧内预测。当执行基于子块的帧内预测时,可不执行稍后将描述的针对预测块的滤波。
[0226]
可通过对被帧内预测的预测块执行滤波来生成最终预测块。可通过将预定权重应用于滤波目标样点、左侧参考样点、上方参考样点和/或左上方参考样点来执行滤波。可基于块尺寸、帧内预测模式和预测块中的滤波目标样点的位置中的至少一个来确定用于滤波的权重和/或参考样点(范围、位置等)。可仅在预定帧内预测模式(例如,dc、平面、垂直、水平、对角线和/或相邻对角线模式)的情况下执行滤波。相邻对角线模式可以是对对角线模式加上k或从对角线模式减去k的模式。例如,k可以是8或更小的正整数。
[0227]
可通过预测与当前块相邻存在的块的帧内预测模式来对当前块的帧内预测模式进行熵编码/熵解码。在当前块与邻近块的帧内预测模式相同时,可通过使用预定标志信息
来用信号发送当前块与邻近块的帧内预测模式相同的信息。此外,可用信号发送多个邻近块的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式的指示符信息。在当前块与邻近块的帧内预测模式不同时,可通过基于邻近块的帧内预测模式执行熵编码/熵解码来对当前块的帧内预测模式信息进行熵编码/熵解码。
[0228]
图5是示出画面间预测处理的实施例的示图。
[0229]
在图5中,矩形可表示画面。在图5中,箭头表示预测方向。根据画面的编码类型,可将画面分类为帧内画面(i画面)、预测画面(p画面)和双预测画面(b画面)。
[0230]
可在不需要画面间预测的情况下通过帧内预测对i画面进行编码。可通过使用在相对于当前块的一个方向(即,前向或后向)上存在的参考画面,通过画面间预测来对p画面进行编码。可通过使用在相对于当前块的两个方向(即,前向和后向)上存在的参考画面,通过画面间预测来对b画面进行编码。当使用画面间预测时,编码器可执行画面间预测或运动补偿,并且解码器可执行对应运动补偿。
[0231]
在下文中,将详细描述画面间预测的实施例。
[0232]
可使用参考画面和运动信息来执行画面间预测或运动补偿。
[0233]
可通过编码设备100和解码设备200中的每一个在画面间预测期间推导当前块的运动信息。可通过使用重建邻近块的运动信息、同位置块(也称为col块或同位块)的运动信息和/或与同位块相邻的块的运动信息来推导当前块的运动信息。同位块可表示先前重建的同位置画面(也称为col画面或同位画面)内的在空间上与当前块位于相同位置的块。同位画面可以是包括在参考画面列表中的一个或更多个参考画面中的一个画面。
[0234]
运动信息的推导方法可根据当前块的预测模式而不同。例如,应用于帧间预测的预测模式包括amvp模式、合并模式、跳过模式、具有运动矢量差的合并模式、子块合并模式、几何分区模式、组合帧间-帧内预测模式、仿射模式等。这里,合并模式可被称为运动合并模式。
[0235]
例如,当amvp被用作预测模式时,可将重建邻近块的运动矢量、同位块的运动矢量、与同位块相邻的块的运动矢量和(0,0)运动矢量中的至少一个确定为针对当前块的运动矢量候选,并且通过使用运动矢量候选生成运动矢量候选列表。可通过使用生成的运动矢量候选列表来推导当前块的运动矢量候选。可基于推导的运动矢量候选来确定当前块的运动信息。同位置块的运动矢量或与同位置块相邻的块的运动矢量可被称为时间运动矢量候选,并且重建邻近块的运动矢量可被称为空间运动矢量候选。
[0236]
编码设备100可计算当前块的运动矢量与运动矢量候选之间的运动矢量差(mvd),并且可对运动矢量差(mvd)执行熵编码。此外,编码设备100可对运动矢量候选索引执行熵编码并生成比特流。运动矢量候选索引可指示包括在运动矢量候选列表中的运动矢量候选之中的最佳运动矢量候选。解码设备可对包括在比特流中的运动矢量候选索引执行熵解码,并且可通过使用经过熵解码的运动矢量候选索引从包括在运动矢量候选列表中的运动矢量候选中选择解码目标块的运动矢量候选。此外,解码设备200可将经过熵解码的mvd与通过熵解码而提取的运动矢量候选相加,从而推导解码目标块的运动矢量。
[0237]
另外,编码设备100可对计算出的mvd的分辨率信息执行熵编码。解码设备200可使用mvd分辨率信息来调整被熵解码的mvd的分辨率。
[0238]
另外,编码设备100基于仿射模型计算当前块中的运动矢量和运动矢量候选之间
的运动矢量差(mvd),并对mvd执行熵编码。解码设备200通过根据被熵解码的mvd和仿射控制运动矢量候选的总和推导解码目标块的仿射控制运动矢量来基于每个子块推导运动矢量。
[0239]
比特流可包括指示参考画面的参考画面索引。参考画面索引可通过编码设备100被熵编码,并且随后作为比特流被用信号发送到解码设备200。解码设备200可基于推导出的运动矢量和参考画面索引信息来生成解码目标块的预测块。
[0240]
推导当前块的运动信息的方法的另一示例可以是合并模式。合并模式可表示合并多个块的运动的方法。合并模式可表示从邻近块的运动信息推导当前块的运动信息的模式。当应用合并模式时,可使用重建邻近块的运动信息和/或同位置块的运动信息来生成合并候选列表。运动信息可包括运动矢量、参考画面索引和画面间预测指示符中的至少一个。所述预测指示符可指示单向预测(l0预测或l1预测)或双向预测(l0预测和l1预测)。
[0241]
合并候选列表可以是存储的运动信息的列表。包括在合并候选列表中的运动信息可以是以下至少一个:与当前块相邻的邻近块的运动信息(空间合并候选)、当前块的在参考画面中的同位置块的运动信息(时间合并候选)、通过合并候选列表中存在的运动信息的组合而生成的新运动信息、在当前块之前被编码/解码的块的运动信息(基于历史的合并候选)、以及零合并候选。
[0242]
编码设备100可通过对合并标志和合并索引中的至少一个执行熵编码来生成比特流,并且可将比特流用信号发送到解码设备200。合并标志可以是指示是否针对每个块执行合并模式的信息,并且合并索引可以是指示当前块的邻近块中的哪个邻近块是合并目标块的信息。例如,当前块的邻近块可包括位于当前块的左侧的左侧邻近块、被布置在当前块上方的上方邻近块和在时间上与当前块相邻的时间邻近块。
[0243]
另外,编码设备100对合并候选的运动信息中的用于校正运动矢量的校正信息执行熵编码,并将其用信号发送到解码设备200。解码设备200可基于校正信息校正由合并索引选择的合并候选的运动矢量。这里,校正信息可包括关于是否执行校正的信息、校正方向信息和校正尺寸信息中的至少一个。如上所述,基于用信号发送的校正信息对合并候选的运动矢量进行校正的预测模式可被称为具有运动矢量差的合并模式。
[0244]
跳过模式可以是将邻近块的运动信息照原样应用于当前块的模式。当应用跳过模式时,编码设备100可对哪个块的运动信息将被用作当前块的运动信息的事实的信息执行熵编码,以生成比特流,并且可将比特流用信号发送到解码设备200。编码设备100可不将关于运动矢量差信息、编码块标志和变换系数等级中的至少任意一个的语法元素用信号发送到解码设备200。
[0245]
子块合并模式可表示以编码块(cu)的子块为单位推导运动信息的模式。当应用子块合并模式时,可使用参考图像中的与当前子块同位置的子块的运动信息(基于子块的时间合并候选)和/或仿射控制点运动矢量合并候选来生成子块合并候选列表。
[0246]
几何分区模式可表示这样的模式:通过按预定方向对当前块进行分区来推导运动信息,使用推导出的运动信息中的每一个来推导每个预测样点,并且通过对推导出的预测样点中的每一个进行加权来推导当前块的预测样点。
[0247]
帧间-帧内组合预测模式可表示通过对由帧间预测生成的预测样点和由帧内预测生成的预测样点进行加权来推导当前块的预测样点的模式。
[0248]
解码设备200可自行校正推导的运动信息。解码设备200可基于由推导的运动信息指示的参考块搜索预定区域,并推导具有最小sad的运动信息作为经过校正的运动信息。
[0249]
解码设备200可使用光流对经由帧间预测推导的预测样点进行补偿。
[0250]
图6是示出变换和量化处理的示图。
[0251]
如图6中所示,对残差信号执行变换处理和/或量化处理,以生成量化的等级信号。残差信号是原始块与预测块(即,帧内预测块或帧间预测块)之间的差。预测块是通过帧内预测或帧间预测生成的块。所述变换可以是初级变换、次级变换或者初级变换和次级变换两者。对残差信号的初级变换生成变换系数,并且对变换系数的次级变换生成次级变换系数。
[0252]
从预先定义的各种变换方案中选择的至少一种方案被用于执行初级变换。例如,所述预定义的变换方案的示例包括离散余弦变换(dct)、离散正弦变换(dst)和karhunen-lo
è
ve变换(klt)。通过初级变换生成的变换系数可经历次级变换。可根据当前块和/或当前块的邻近块的编码参数来确定用于初级变换和/或次级变换的变换方案。可选地,可用信号发送指示变换方案的变换信息。基于dct的变换可包括例如dct-2、dct-8等。基于dst的变换可包括例如dst-7。
[0253]
可通过对残差信号或对执行初级变换和/或次级变换的结果执行量化来生成量化的等级信号(量化系数)。根据块的帧内预测模式或块尺寸/形状,可根据对角线右上扫描、垂直扫描和水平扫描中的至少一个来扫描量化的等级信号。例如,当按照对角线右上扫描来扫描系数时,块形式的系数改变为一维矢量形式。除了对角线右上扫描之外,根据帧内预测模式和/或变换块的尺寸,可使用水平地扫描二维块形式的系数的水平扫描或垂直地扫描二维块形式的系数的垂直扫描。扫描的量化的等级系数可被熵编码以插入比特流中。
[0254]
解码器对比特流进行熵解码以获得量化的等级系数。量化的等级系数可通过逆扫描以二维块形式被布置。对于逆扫描,可使用对角线右上扫描、垂直扫描和水平扫描中的至少一个。
[0255]
量化的等级系数随后可被反量化,然后根据需要被次级逆变换,最后根据需要被初级逆变换,以生成重建残差信号。
[0256]
可在环内滤波之前针对通过帧内预测或帧间预测重建的亮度分量执行动态范围中的逆映射。动态范围可被划分为16个相等的段,并且可用信号发送针对每个段的映射函数。可在条带级或并行块组级用信号发送映射函数。可基于映射函数推导用于执行逆映射的逆映射函数。在逆映射区域中执行环内滤波、参考画面存储和运动补偿,并且通过帧间预测生成的预测块经由使用映射函数的映射被转换到映射区域,然后被用于生成重建块。然而,由于在映射区域中执行帧内预测,因此经由帧内预测生成的预测块可被用于生成重建块而无需映射/逆映射。
[0257]
在当前块是色度分量的残差块时,可通过对映射区域的色度分量执行缩放来将残差块转换到逆映射区域。可在条带级或并行块组级用信号发送缩放的可用性。只有当针对亮度分量的映射可用并且亮度分量的划分和色度分量的划分遵循相同的树结构时,才可应用缩放。可基于与色差块对应的亮度预测块的样点值的平均值来执行缩放。在这种情况下,在当前块使用帧间预测时,亮度预测块可表示映射的亮度预测块。可通过使用亮度预测块的样点值的平均值所属的片段的索引参考查找表来推导缩放所需的值。最后,通过使用推
导的值对残差块进行缩放,可将残差块转换到逆映射区域。然后,可在逆映射区域中执行色度分量块恢复、帧内预测、帧间预测、环内滤波和参考画面存储。
[0258]
可通过序列参数集用信号发送指示亮度分量和色度分量的映射/逆映射是否可用的信息。
[0259]
可基于指示当前画面中的当前块与参考块之间的位移的块矢量来生成当前块的预测块。以这种方式,用于参考当前画面生成预测块的预测模式被称为帧内块复制(ibc)模式。ibc模式可被应用于m
×
n(m《=64,n《=64)编码单元。ibc模式可包括跳过模式、合并模式、amvp模式等。在跳过模式或合并模式的情况下,构建合并候选列表,并且用信号发送合并索引,使得可指定一个合并候选。指定的合并候选的块矢量可用作当前块的块矢量。合并候选列表可包括空间候选、基于历史的候选、基于两个候选的平均值的候选和零合并候选中的至少一个。在amvp模式的情况下,可用信号发送差块矢量。此外,可从当前块的左侧邻近块和上方邻近块推导预测块矢量。可用信号发送将使用的邻近块的索引。ibc模式中的预测块被包括在当前ctu或左侧ctu中并且被限于已经重建的区域中的块。例如,可限制块矢量的值,使得当前块的预测块按照编码/解码顺序位于当前块所属的64
×
64的块之前的三个64
×
64的块的区域中。通过以这种方式限制块矢量的值,可减少根据ibc模式实施方案的存储器消耗和装置复杂度。
[0260]
在下文中,将描述用于通过改进作为视频编码处理之一的变换方法来增强视频压缩效率的方法。更具体地,传统的视频编码中的编码示意性地包括:帧内/帧间预测步骤,对作为当前原始图像的一部分的原始块进行预测;针对残差块的变换和量化步骤,其中,所述残差块是预测的预测块与原始块之间的差;以及熵编码步骤,所述熵编码步骤是基于已经执行变换和量化的块的系数和在先前步骤获得的压缩信息的概率的无损压缩方法。因此,生成作为原始图像的压缩形式的比特流,并且将其发送到解码器或存储在记录介质中。下面将在本说明书中描述的混排离散正弦变换(在下文中,称为“sdst(shuffling and discrete sine transform)”)旨在通过提高变换效率来增强压缩效率。
[0261]
根据本发明的sdst方法使用离散正弦变换类型-7(在下文中,称为“dst-vii”或“dst-7”)而不是作为在视频编码中广泛使用的变换核的离散余弦变换类型-2(在下文中,称为“dct-ii”或“dct-2”),从而更好地反映图像共有的频率特性。
[0262]
根据本发明的变换方法,与传统的视频编码方法相比,即使以相对低的比特率也可获得高的客观视频质量。
[0263]
dst-7可被应用于残差块的数据。可基于与残差块对应的预测模式来执行将dst-7应用于残差块。例如,它可被应用于在帧间模式下被编码的残差块。根据本发明的实施例,可在重排或混排残差块的数据之后应用dst-7。这里,混排可表示图像数据的重排,并且可等同于残差信号重排或翻转。这里,残差块可与残差、剩余块、剩余信号、残差信号、剩余数据或残差数据具有相同的含义。此外,残差块可与在编码器和解码器中以残差块的重建形式的重建残差、重建剩余块、重建剩余信号、重建残差信号、重建剩余数据或重建残差数据具有相同的含义。
[0264]
根据本发明的实施例,sdst可使用dst-7作为变换核。这里,sdst的变换核不限于dst-7,并且可使用各种类型的dst和dct(诸如离散正弦变换类型-1(dst-1)、离散正弦变换类型-2(dst-2)、离散正弦变换类型-3(dst-3)、
……
、离散正弦变换类型-n(dst-n)、离散余
弦变换类型-1(dct-1)、离散余弦变换类型-2(dct-2)、离散余弦变换类型-3(dct-3)、
……
、离散余弦变换类型-n(dct-n)等)中的至少一个(这里,n可以是正整数1或更大的正整数)。
[0265]
下面的等式1可表示根据本发明的实施例的执行一维dct-2的方法。这里,n可表示块的尺寸,k可表示频率分量的位置,并且xn可表示空间域中的第n系数的值。
[0266]
[等式1]
[0267][0268]
可通过利用上面的等式1对残差块执行水平变换和垂直变换来实现二维域中的dct-2。
[0269]
dct-2变换核可被定义为下面的等式2。这里,xk可表示根据频域中的位置的基矢量,并且n可表示频域的大小。
[0270]
[等式2]
[0271][0272]
另外,图7是示出根据本发明的dct-2的频域中的基矢量的示图。图7示出dct-2在频域中的频率特性。这里,通过dct-2的x0基矢量计算出的值可表示dc分量。
[0273]
可在针对尺寸为4
×
4、8
×
8、16
×
16、32
×
32等的残差块的变换处理中使用dct-2。
[0274]
另外,可基于残差块的尺寸、残差块的颜色分量(例如,亮度分量和色度分量)以及与残差块对应的预测模式中的至少一个选择性地使用dct-2。例如,当残差块具有4
×
4的尺寸且在帧内模式下被编码且残差块的分量为亮度分量时,dct-2被使用。例如,当在帧内模式下被编码的残差块的水平长度(宽度)在预定范围内(例如,等于或大于四个像素且等于或小于16个像素)并且水平长度(宽度)不长于垂直长度(高度)时,第一变换核可被用于水平变换。否则,第二变换核可被用于水平变换。例如,当在帧内模式下被编码的残差块的垂直长度(高度)等于或长于四个像素且等于或短于16个像素并且垂直长度(高度)不长于水平长度(宽度)时,第一变换核可被用于垂直变换。否则,第二变换核被可用于垂直变换。第一变换核可不同于第二变换核。也就是说,可在预定条件下基于块的形状隐式地确定针对在帧内模式下被编码的块的水平变换方法和垂直变换方法。例如,第一变换核可以是dst-7,并且第二变换核可以是dct-2。这里,残差块是变换目标,因此它可与变换块具有相同的含义。这里,预测模式可表示帧间预测或帧内预测。此外,在帧内预测的情况下,预测模式表示帧内预测模式或帧内预测方向。
[0275]
通过dct-2变换核的变换可针对具有邻近像素之间的改变像图像的背景一样小的特性的块实现高压缩效率。然而,它可能不适合作为针对具有复杂图案的区域(诸如纹理图像)的变换核。这是因为当在邻近像素之间具有低相关性的块通过dct-2被变换时,在频域的高频分量中出现大量变换系数。当在高频域中频繁生成变换系数时,图像的压缩效率可能降低。为了增强压缩效率,具有大值的系数需要出现在低频分量附近,并且系数的值需要在高频分量接近于零。
[0276]
下面的等式3可表示根据本发明的实施例的执行一维dst-7的方法。这里,n可表示
块的尺寸,k可表示频率分量的位置,并且xn可表示空间域中的第n系数的值。
[0277]
[等式3]
[0278][0279]
可通过利用上面的等式3对残差块执行水平变换和垂直变换来实现二维域中的dst-7。
[0280]
dst-7变换核可被定义为下面的等式4。这里,xk可表示dst-7的第k基矢量,i可表示频域中的位置,并且n可表示频域的大小。
[0281]
[等式4]
[0282][0283]
可在针对尺寸为2
×
2、4
×
4、8
×
8、16
×
16、32
×
32、64
×
64、128
×
128等中的至少一个的残差块的变换处理中使用dst-7。
[0284]
另外,dst-7可被应用于矩形块而不是正方形块。例如,dst-7可被应用于水平尺寸与垂直尺寸不同(诸如8
×
4、16
×
8、32
×
4、64
×
16等)的矩形块的垂直变换和水平变换中的至少一种。当可以选择性地应用多种变换方法时,dct-2被应用于正方形块的水平变换和垂直变换。当不可以选择性地应用多种变换方法时,dst-7被应用于正方形块的水平变换和垂直变换。
[0285]
此外,可基于残差块的尺寸、残差块的颜色分量(例如,亮度分量和色度分量)、与残差块对应的预测模式、帧内预测模式(方向)和残差块的形状中的至少一个选择性地使用dst-7。例如,当残差块具有4
×
4的尺寸且在帧内模式下被编码且残差块的分量为亮度分量时,dst-7被使用。这里,预测模式可表示帧间预测或帧内预测。此外,在帧内预测的情况下,预测模式表示帧内预测模式或帧内预测方向。例如,针对色度分量,基于块形状对变换方法的选择可以是不可用的。例如,当帧内预测模式是颜色分量之间的预测时,基于块形状对变换方法的选择是不可用的。例如,针对色度分量的变换方法可由通过比特流用信号发送的信息指定。当当前块被分区为多个子块并且对所述多个子块中的每个子块执行帧内预测时,基于帧内预测模式和/或块尺寸(水平尺寸和/或垂直尺寸)来确定针对当前块的变换方法。例如,当帧内预测模式是非方向的(dc或平面)并且水平长度(宽度)(或垂直长度(高度))在预定范围内时,第一变换核被用于水平变换(垂直变换)。否则,使用第二变换核。第一变换核可不同于第二变换核。例如,第一变换核可以是dst-7,并且第二变换核可以是dct-2。所述预定范围的范围可例如从4个像素到16个像素。当块的尺寸不在所述预定范围内时,相同的核(例如,第二变换核)被用于水平变换和垂直变换。当块的尺寸在所述预定范围内时,针对彼此相邻的帧内预测模式使用不同的变换核。例如,当第二变换核和第一变换核被分别用于模式27中的水平变换和垂直变换时,第一变换核和第二变换核被分别用于与模式27相邻的模式26和模式28中的水平变换和垂直变换。
[0286]
在下文中,将描述作为将dst-7用作变换核的变换方法中的一种变换方法的sdst。
[0287]
在下文中,块可表示cu、pu和tu中的一个。
[0288]
根据本发明的sdst可在两个步骤中执行。第一个步骤是对在帧间模式或帧内模式下预测的cu的pu内的残差信号执行混排。第二个步骤是将dst-7应用于已经执行混排的块内的残差信号。
[0289]
排列在当前块(例如,cu、pu或tu)内的残差信号可按第一方向被扫描,并且可按第二方向被重排。也就是说,排列在当前块内的残差信号可按第一方向被扫描,并且可按第二方向被重排以执行混排。这里,残差信号可表示指示原始信号与预测信号之间的差信号的信号。也就是说,残差信号可表示在执行变换和量化中的至少一个之前的信号。可选地,残差信号可表示执行了变换和量化中的至少一个的信号形式。此外,残差信号可表示重建的残差信号。也就是说,残差信号可表示已经执行逆变换和反量化中的至少一个的信号。此外,残差信号可表示在执行逆变换和反量化中的至少一个之前的信号。
[0290]
另外,第一方向(或扫描方向)可以是光栅扫描顺序、右上对角线扫描顺序、水平扫描顺序和垂直扫描顺序中的一个。此外,第一方向可被定义为以下(1)至(10)中的至少一个。
[0291]
从上方行向下方行扫描,并且在一行中从左向右扫描
[0292]
从上方行向下方行扫描,并且在一行中从右向左扫描
[0293]
从下方行向上方行扫描,并且在一行中从左向右扫描
[0294]
从下方行向上方行扫描,并且在一行中从右向左扫描
[0295]
从左侧列向右侧列扫描,并且在一列中从上向下扫描
[0296]
从左侧列向右侧列扫描,并且在一列中从下向上扫描
[0297]
从右侧列向左侧列扫描,并且在一列中从上向下扫描
[0298]
从右侧列向左侧列扫描,并且在一列中从下向上扫描
[0299]
螺旋形的扫描:从块的内部(或外部)扫描向块的外部(或内部),并且按顺时针/逆时针方向扫描
[0300]
对角线扫描:从块内的一个顶点开始,沿左上、右上、左下或右下方向对角地扫描
[0301]
另外,关于第二方向(或重排方向),可选择性地使用(1)至(10)扫描方向中的至少一个。第一方向和第二方向可相同,或者可彼此不同。
[0302]
可以以当前块为单位执行针对残差信号的扫描和重排处理。
[0303]
这里,重排可表示块内的按第一方向扫描的残差信号按第二方向被排列在相同尺寸的块中。这里,用于按第一方向扫描的块的尺寸可不同于用于按第二方向重排的块的尺寸。
[0304]
此外,扫描和重排被描述为根据第一方向和第二方向被单独地执行,但是扫描和重排可作为针对第一方向的一个处理来执行。例如,针对块内的残差信号,可从上方行向下方行执行扫描并且在一行中从右向左执行扫描,以在块中存储(重排)。
[0305]
另外,可在当前块内的子块的预定单元中执行针对残差信号的扫描和重排处理。这里,子块可以是尺寸等于或小于当前块的块。子块可以是从以四叉树、二叉树形式等对当前块进行分区得到的块。
[0306]
子块单元可具有固定的尺寸和/或形状(例如,4
×
4、4
×
8、8
×
8、
……
、n
×
m,其中,n和m是正整数)。此外,可以可变地推导子块单元的尺寸和/或形状。例如,可根据当前块的
尺寸、形状和/或预测模式(帧间和帧内)来确定子块单元的尺寸和/或形状。
[0307]
可根据子块的位置自适应地确定扫描方向和/或重排方向。在这种情况下,不同的扫描方向和/或重排方向可被用于子块,或者当前块的全部或部分子块可使用相同的扫描方向和/或相同的重排方向。
[0308]
例如,对于被帧间预测的块,可对与该块具有相同尺寸的残差块进行解码,或者可对与该块的一部分对应的子残差块进行解码。可针对该块用信号发送用于此操作的信息,并且所述信息可以是例如标志。当与该块具有相同尺寸的残差块被解码时,通过对比特流中包含的信息进行解码来确定关于变换核的信息。当与该块的一部分对应的子残差块被解码时,基于用于指定子残差块的类型和/或在该块内的位置的信息来确定针对子残差块的变换核。例如,关于子残差块的类型和/或在该块内的位置的信息可被包含在用于用信号发送的比特流中。这里,当该块大于32
×
32时,不执行基于子残差块的类型和/或在该块内的位置对变换核的确定。例如,针对大于32
×
32的块,预定变换核(例如,dct-2)可被应用,或者关于变换核的信息可被显式地用信号发送。可选地,当该块的宽度或高度大于32时,不执行基于子残差块的类型和/或在该块内的位置对变换核的确定。例如,对于64
×
8的块,预定变换核(例如,dct-2)可被应用,或者关于变换核的信息可被显式地用信号发送。
[0309]
关于子残差块的类型的信息可以是该块的分区信息。该块的分区信息可以是例如指示水平分区和垂直分区之中的一个的分区方向信息。可选地,该块的分区信息可包含分区比率信息。例如,分区比率可包括1:1、1:3和/或3:1。分区方向信息和分区比率信息可作为单独的语法元素或作为单个语法元素被用信号发送。
[0310]
关于子残差块的位置的信息可指示在该块内的位置。例如,当该块的分区是垂直分区时,关于所述位置的信息指示左侧和右侧之中的一个。此外,当该块的分区是水平分区时,关于所述位置的信息指示上方和下方之中的一个。
[0311]
可基于类型信息和/或位置信息来确定子残差块的变换核。可针对水平变换和垂直变换独立地确定变换核。例如,可基于分区方向来确定变换核。例如,在垂直分区的情况下,第一变换核可被应用于垂直变换。在水平分区的情况下,第一变换核可被应用于水平变换。例如,第一变换核或第二变换核可在垂直分区的情况下被应用于水平变换并且在水平分区的情况下被应用于垂直变换。例如,在垂直分区的情况下,第二变换核可在左侧位置被应用于水平变换,并且第一变换核可在右侧位置被应用于水平变换。此外,在水平分区的情况下,第二变换核可在上方位置被应用于垂直变换,并且第一变换核可在下方位置被应用于垂直变换。例如,第一变换核和第二变换核可分别是dst-7和dct-8。例如,第一变换核和第二变换核可分别是dst-7和dct-2。然而,不限于此,在本说明书中描述的各种变换核中,任意两个不同的变换核可被用作第一变换核和第二变换核。这里,该块可表示cu或tu。此外,子残差块可表示子tu。
[0312]
仅在被帧间预测的pu内的tu的情况下,可在旁路模式下对变换模式信息进行熵编码/熵解码。此外,在变换跳过模式、残差差分pcm(rdpcm)模式和无损模式中的至少一个的情况下,省略对变换模式信息的熵编码/熵解码,并且不用信号发送变换模式信息。
[0313]
此外,当块的编码块标志为零时,省略对变换模式信息的熵编码/熵解码,并且不用信号发送变换模式信息。当编码块标志为零时,在解码器中省略逆变换处理。因此,即使当在解码器中不存在变换模式信息时,也可以进行块的重建。
[0314]
然而,变换模式信息不限于通过标志表示变换模式,并且可以以预定义表和索引的形式来实现。这里,预定义表可以是定义针对每个索引的可用变换模式的表。
[0315]
此外,可在水平方向和垂直方向上分别执行dct-2或sdst的变换。相同的变换模式可被用于水平方向和垂直方向,或者不同的变换模式可被使用。
[0316]
此外,与dct-2是否被用于水平方向和垂直方向、sdst是否被使用以及dst-7是否被使用有关的变换模式信息可分别被熵编码/熵解码。变换模式信息可例如作为索引被用信号发送。由相同索引指示的变换核针对被帧内预测的块和被帧间预测的块可以是相同的。
[0317]
此外,变换模式信息可以以cu、pu、tu和块中的至少一个为单位被熵编码/熵解码。
[0318]
此外,可根据亮度分量或色度分量用信号发送变换模式信息。换言之,可根据y分量、cb分量或cr分量用信号发送变换模式信息。例如,当用信号发送与针对y分量dct-2是否被执行或者sdst是否被执行有关的变换模式信息时,针对y分量被用信号发送的变换模式信息可被用作块的变换模式,而无需用信号发送针对cb分量和cr分量中的至少一个的任何变换模式信息。
[0319]
这里,可利用使用上下文模型的算术编码方法对变换模式信息进行熵编码/熵解码。当变换模式信息以预定义表和索引的形式被实现时,利用使用上下文模型的算术编码方法对多个二进制位中的全部或部分二进制位进行熵编码/熵解码。
[0320]
此外,可根据块尺寸选择性地对变换模式信息进行熵编码/熵解码。例如,当当前块的尺寸等于或大于64
×
64时,不对变换模式信息进行熵编码/熵解码。当所述尺寸等于或小于32
×
32时,对变换模式信息进行熵编码/熵解码。
[0321]
此外,当在当前块内存在非零变换系数或l个量化的等级时,不对变换模式信息进行熵编码/熵解码,并且执行dct-2、dst-7和sdst方法中的一种方法。这里,无论块内的非零变换系数或量化的等级的位置如何,可不对变换模式信息进行熵编码/熵解码。此外,仅当非零变换系数或量化的等级存在于块内的左上方位置时,可不对变换模式信息进行熵编码/熵解码。这里,l可以是包括零的正整数,并且可以是例如1。
[0322]
此外,当在当前块内存在非零变换系数或者j个或更多个量化的等级时,对变换模式信息进行熵编码/熵解码。这里,j是正整数。
[0323]
此外,变换模式信息是根据同位块的变换模式限制对某些变换模式的使用或者同位块的变换模式由几个比特表示的方法,变换方法的二值化方法可变化。
[0324]
可基于当前块的预测模式、帧内预测模式、帧间预测模式、tu深度、尺寸和形状中的至少一个来有限制地使用上述sdst。
[0325]
例如,当当前块在帧间模式下被编码时,使用sdst。
[0326]
可定义允许sdst的最小/最大深度。在这种情况下,当当前块的深度等于或大于最小深度时,使用sdst。可选地,当当前块的深度等于或小于最大深度时,使用sdst。这里,最小/最大深度可以是固定值,或者可基于指示最小/最大深度的信息而被可变地确定。指示最小/最大深度的信息可从编码器被用信号发送,并且可基于当前块/邻近块的属性(例如,尺寸、深度和/或形状)从解码器被推导出。
[0327]
可定义允许sdst的最小/最大尺寸。类似地,当当前块的尺寸等于或大于最小尺寸时,使用sdst。可选地,当当前块的尺寸等于或小于最大尺寸时,使用sdst。这里,最小/最大
尺寸可以是固定值,或者可基于指示最小/最大尺寸的信息而被可变地确定。指示最小/最大尺寸的信息可从编码器被用信号发送,并且可基于当前块/邻近块的属性(例如,尺寸、深度及/或形状)从解码器被推导出。例如,当当前块是4
×
4时,dct-2被用作变换方法,并且不对与dct-2是否被使用或者sdst是否被使用有关的变换模式信息进行熵编码/熵解码。
[0328]
可定义允许sdst的块的形状。在这种情况下,当当前块的形状是所定义的块形状时,使用sdst。此外,可定义不允许sdst的块的形状。在这种情况下,当当前块的形状是所定义的块形状时,不使用sdst。允许或不允许sdst的块的形状可以是固定的,并且关于此的信息可从编码器被用信号发送。可选地,可基于当前块/邻近块的属性(例如,尺寸、深度和/或形状)从解码器推导所述信息。允许或不允许sdst的块的形状可表示例如在m
×
n的块中的m、n和/或m与n之比。
[0329]
此外,当tu的深度为零时,dct-2或dst-7被用作变换方法,并且关于使用了哪种变换方法的变换模式信息被熵编码/熵解码。当dst-7被用作变换方法时,执行对残差信号的重排处理。此外,当tu的深度是1或更大时,dct-2或sdst被用作变换方法,并且关于使用了哪种变换方法的变换模式信息被熵编码/熵解码。
[0330]
此外,可根据cu和pu的分区形状或当前块的形状来选择性地使用变换方法。
[0331]
根据实施例,当cu和pu的分区形状或当前块的形状为2n
×
2n时,使用dct-2。关于其余的分区形状和块形状,可选择性地使用dct-2或sdst。
[0332]
此外,当cu和pu的分区形状或当前块的形状为2n
×
n或n
×
2n时,使用dct-2。关于其余的分区形状和块形状,可选择性地使用dct-2或sdst。
[0333]
此外,当cu和pu的分区形状或当前块的形状为nr
×
2n、nl
×
2n、2n
×
nu或2n
×
nd时,使用dct-2。关于其余的分区形状和块形状,可选择性地使用dct-2或sdst。
[0334]
另外,当sdst或dst-7以从当前块的分区得到的块为单位被执行时,可以以从分区得到的块为单位对变换系数(量化的等级)执行扫描和逆扫描。此外,当sdst或dst-7以从当前块的分区得到的块为单位被执行时,可以以未被分区的当前块为单位对变换系数(量化的等级)执行扫描和逆扫描。
[0335]
此外,可根据当前块的帧内预测模式(方向)、当前块的尺寸和当前块的分量(亮度分量或色度分量)中的至少一个执行使用sdst或dst-7的变换/逆变换。
[0336]
此外,在使用sdst或dst-7的变换/逆变换中,可使用dst-1来代替dst-7。此外,在使用sdst或dst-7的变换/逆变换中,可使用dct-4来代替dst-7。
[0337]
此外,在使用dct-2的变换/逆变换中,被用于重排sdst或dst-7的残差信号的重排方法可被应用。也就是说,即使当使用dct-2时,对残差信号的重排或使用预定角度对残差信号的旋转也被执行。
[0338]
在下文中,将描述混排方法和信令方法的各种修改和实施例。
[0339]
本发明的sdst旨在通过改变变换、混排、重排和/或翻转方法来增强图像压缩效率。通过混排残差信号来执行dst-7有效地反映了pu内的残差信号的分布特性,因此实现了高压缩效率。
[0340]
在与混排步骤相关的以上描述中,已经描述了残差信号重排方法。在下文中,除了用于重排残差信号的混排方法之外,还将描述其他实现方法。
[0341]
下面描述的重排方法可被应用于与上述sdst方法相关的实施例中的至少一个实
施例。
[0342]
为了使实现残差信号的重排的硬件复杂度最小化,可通过水平翻转方法和垂直翻转方法来实现残差信号重排处理。残差信号重排方法可通过如以下(1)至(4)中所示的翻转来实现。下面描述的重排可表示翻转。
[0343]
(1)r'(x,y)=r(x,y);不翻转
[0344]
(2)r'(x,y)=r(w-1-x,y);水平翻转
[0345]
(3)r'(x,y)=r(x,h-1-y);垂直翻转
[0346]
(4)r'(x,y)=r(w-1-x,h-1-y);水平和垂直翻转
[0347]
表达式r'(x,y)表示重排之后的残差信号,表达式r(x,y)表示重排之前的残差信号。块的宽度和高度分别由w和h表示。块内的残差信号的位置由x和y表示。使用翻转的重排方法的逆重排方法可按照与该重排方法相同的处理被执行。也就是说,可通过再次执行水平翻转将使用水平翻转重排的残差信号重建为原始残差信号排列。由编码器执行的重排方法和由解码器执行的逆重排方法可以是相同的翻转方法。
[0348]
例如,当对已经执行水平翻转的残差块执行水平翻转时,获得执行翻转之前的残差块,如下所示。
[0349]
r’(w-1-x,y)=r(w-1-(w-1-x),y)=r(x,y)。
[0350]
例如,当对已经执行垂直翻转的残差块执行垂直翻转时,获得执行翻转之前的残差块,如下所示。
[0351]
r’(x,h-1-y)=r(x,h-1-(h-1-y))=r(x,y)。
[0352]
例如,当对已经执行水平和垂直翻转的残差块执行水平和垂直翻转时,获得执行翻转之前的残差块,如下所示。
[0353]
r’(w-1-x,h-1-y)=r(w-1-(w-1-x),h-1-(h-1-y))=r(x,y)。
[0354]
可在不对当前块进行分区的情况下使用基于翻转的残差信号混排/重排方法。也就是说,在sdst方法中,描述了将当前块(tu等)分区为子块并且将dst-7用于每个子块。然而,当使用基于翻转的残差信号混排/重排方法时,不将当前块分区为子块,并且对当前块的全部或部分执行翻转,然后执行dst-7变换。此外,当使用基于翻转的残差信号混排/重排方法时,不将当前块分区为子块,并且在执行dst-7逆变换之后,对当前块的全部或部分执行翻转。
[0355]
可定义能够执行基于翻转的残差信号混排/重排的块的最大尺寸(m
×
n)和/或最小尺寸(o
×
p)。这里,所述尺寸可包括作为水平尺寸(m或o)的宽度和作为垂直尺寸(n或p)的高度中的至少一个。m、n、o和p可以是正整数。块的最大尺寸和/或块的最小尺寸可以是编码器/解码器中的预定义值,或者可以是从编码器用信号发送到解码器的信息。
[0356]
例如,当当前块的尺寸小于能够执行翻转方法的最小尺寸时,不执行翻转和dst-7变换,而仅执行dct-2变换。这里,可不用信号发送作为指示翻转和dst-7是否被用作变换模式的变换模式信息的sdst标志。
[0357]
例如,当块的宽度小于能够执行翻转方法的最小宽度并且块的高度大于能够执行翻转方法的最小高度时,仅利用dct-2执行水平方向上的一维变换。关于垂直方向上的一维变换,在垂直翻转之后使用dst-7来执行一维垂直变换,或者在不进行翻转的情况下使用dst-7来执行一维垂直变换。这里,可仅针对垂直方向上的一维变换用信号发送作为指示翻
转是否被用作变换模式的变换模式信息的sdst标志。
[0358]
例如,当块的高度小于能够执行翻转方法的最小宽度并且块的宽度大于能够执行翻转方法的最小宽度时,关于水平方向上的一维变换,在水平翻转之后使用dst-7来执行一维水平变换,或者在不进行翻转的情况下使用dst-7来执行一维水平变换。仅利用dct-2执行垂直方向上的一维变换。这里,可仅针对水平方向上的一维变换用信号发送作为指示翻转是否被用作变换模式的变换模式信息的sdst标志。
[0359]
例如,当当前块的尺寸大于能够执行翻转方法的最大尺寸时,不使用翻转和dst-7变换,而仅使用dct-2变换。这里,可不用信号发送作为指示翻转和dst-7变换是否被用作变换模式的变换模式信息的sdst标志。
[0360]
例如,当当前块的尺寸大于能够执行翻转方法的最大尺寸时,仅使用dct-2变换或dst-7变换。
[0361]
例如,当能够执行翻转方法的最大尺寸是32
×
32并且最小尺寸是4
×
4时,翻转和dst-7变换不被用于尺寸为64
×
64的块,并且仅dct-2变换被使用。这里,针对尺寸为64
×
64的块,可不用信号发送作为指示翻转和dst-7是否被用作变换模式的变换模式信息的sdst标志。此外,针对尺寸为4
×
4到32
×
32的块,可用信号发送作为指示翻转和dst-7是否被用作变换模式的变换模式信息的sdst标志。在这种情况下,dst-7变换不被用于尺寸为64
×
64的块,因此可以节省用于存储用于尺寸为64
×
64的块的dst-7变换的存储器空间。
[0362]
例如,当能够执行翻转方法的最大尺寸是32
×
32并且最小尺寸是4
×
4时,不仅翻转方法被用于尺寸为64
×
64的块,并且dct-2或dst-7变换被使用。
[0363]
例如,尺寸为m
×
n的正方形块可按四叉树被分区为四个子块,并且可使用翻转对所述子块中的每个子块执行混排/重排方法,然后可执行dst-7变换。这里,可针对所述子块中的每个子块显式地用信号发送翻转方法。翻转方法可作为两个比特的固定长度码被用信号发送,并且可作为截断一元码被用信号发送。此外,可使用基于根据从分区得到的每个块的翻转方法的发生概率的二值化方法。这里,m和n可以是正整数,例如,64
×
64。
[0364]
可使用变换模式信息对关于对基于翻转的残差信号混排/重排方法的使用的信息(sdst_flag或sdst flag)进行熵编码/熵解码。也就是说,通过针对变换模式信息的信令,可在解码器中执行在编码器中执行的相同方法。例如,当指示变换模式信息的标志位具有第一值时,基于翻转和dst-7的残差信号混排/重排方法被用作变换/逆变换方法。当该标志位具有第二值时,另一变换/逆变换方法被使用。这里,可针对每个块对变换模式信息进行熵编码/熵解码。这里,另一变换/逆变换方法可以是dct-2变换/逆变换方法。此外,在变换跳过模式、残差差分pcm(rdpcm)模式和无损模式之一的情况下,省略对变换模式信息的熵编码/熵解码,并且不用信号发送变换模式信息。
[0365]
可使用当前块的深度、当前块的尺寸、当前块的形状、邻近块的变换模式信息、当前块的编码块标志和关于当前块的变换跳过模式是否被使用的信息中的至少一个对变换模式信息进行熵编码/熵解码。例如,当当前块的编码块标志为零时,省略对变换模式信息的熵编码/熵解码,并且不用信号发送变换模式信息。此外,可在熵编码/熵解码期间根据与当前块相邻的重建块的变换模式信息对变换模式信息进行预测性地编码/解码。此外,可基于当前块和邻近块的编码参数中的至少一个来用信号发送变换模式信息。
[0366]
此外,通过使用翻转方法信息,可以以标志或索引(flipping_idx)的形式对四种
翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的至少一种进行熵编码/熵解码。也就是说,通过用信号发送翻转方法信息,可在解码器中执行在编码器中执行的相同翻转方法。变换模式信息可包括翻转方法信息。
[0367]
此外,在变换跳过模式、残差差分pcm(rdpcm)模式和无损模式之一的情况下,省略对翻转方法信息的熵编码/熵解码,并且不用信号发送翻转方法信息。可使用当前块的深度、当前块的尺寸、当前块的形状、邻近块的翻转方法信息、当前块的编码块标志和关于当前块的变换跳过模式是否被使用的信息中的至少一个对翻转方法信息进行熵编码/熵解码。例如,当当前块的编码块标志为零时,省略对翻转方法信息的熵编码/熵解码,并且不用信号发送变换模式信息。此外,可在熵编码/熵解码期间根据与当前块相邻的重建块的翻转方法信息对翻转方法信息进行预测性地编码/解码。此外,可基于当前块和邻近块的编码参数中的至少一个用信号发送翻转方法信息。
[0368]
另外,上述残差信号重排方法的关于混排步骤的一部分可由编码器确定为最佳重排方法,并且可将关于所确定的重排方法的信息(翻转方法信息)用信号发送到解码器。例如,当四种重排方法被使用时,编码器将多达两个比特的关于残差信号重排方法的信息用信号发送到解码器。
[0369]
此外,当所使用的重排方法具有不同的出现概率时,使用较少的比特对具有高出现概率的重排方法进行编码,并且使用相对较多的比特对具有低出现概率的重排方法进行编码。例如,四种重排方法按照出现概率递减的顺序被排列,并且可以作为截断一元码(例如,(0、10、110、111)或(1,01、001、000))进行用信号发送。
[0370]
此外,重排方法的出现概率可根据编码参数(诸如当前cu的预测模式、pu的帧内预测模式(方向)、邻近块的运动矢量等)而变化。因此,可根据编码参数不同地使用关于重排方法的信息(翻转方法信息)的编码方法。例如,重排方法的出现概率可根据帧内预测的预测模式而变化。因此,针对每个帧内模式,可将较少比特分配给具有高出现概率的重排方法,并且可将许多比特分配给具有低出现概率的重排方法。可选地,根据情况,具有极低出现概率的重排方法可不被使用,并且可不被分配任何比特。
[0371]
可根据当前块的预测模式(帧间模式或帧内模式)、帧内预测模式(包括方向模式和非方向模式)、帧间预测模式、块尺寸、块形状(正方形形状或非正方形形状)、亮度/色度信号、变换模式信息等中的至少一个来构建包括残差信号重排方法中的至少一种残差信号重排方法的重排集合。重排可表示翻转。此外,基于当前块和邻近块的编码参数中的至少一个编码参数,可构建包括残差信号重排方法中的至少一种残差信号重排方法的重排集合。
[0372]
此外,根据当前块的预测模式、帧内预测模式、帧间预测模式、块尺寸、块形状、亮度/色度信号、变换模式信息等中的至少一个,可选择以下重排集合中的至少一个重排集合。此外,基于当前块和邻近块的编码参数中的至少一个编码参数,可选择重排集合中的至少一个重排集合。
[0373]
重排集合可包括“不翻转”、“水平翻转”、“垂直翻转”以及“水平和垂直翻转”中的至少一个。重排集合的示例如下所示。
[0374]
1、不翻转
[0375]
2、水平翻转
[0376]
3、垂直翻转
[0377]
4、水平和垂直翻转
[0378]
5、不翻转、以及水平翻转
[0379]
6、不翻转、以及垂直翻转
[0380]
7、不翻转、以及水平和垂直翻转
[0381]
8、水平翻转、以及垂直翻转
[0382]
9、水平翻转、以及水平和垂直翻转
[0383]
10、垂直翻转、以及水平和垂直翻转
[0384]
11、不翻转、水平翻转、以及垂直翻转
[0385]
12、不翻转、水平翻转、以及水平和垂直翻转
[0386]
13、不翻转、垂直翻转、以及水平和垂直翻转
[0387]
14、水平翻转、垂直翻转、以及水平和垂直翻转
[0388]
15、不翻转、水平翻转、垂直翻转、以及水平和垂直翻转
[0389]
基于重排集合,残差信号重排方法中的至少一种残差信号重排方法可被用于当前块的重排。
[0390]
此外,根据当前块的预测模式、帧内预测模式、帧间预测模式、块尺寸、块形状、亮度/色度信号、变换模式信息、翻转方法信息等中的至少一个,可在重排集合中选择残差信号重排方法中的至少一种残差信号重排方法。此外,基于当前块和邻近块的编码参数中的至少一个编码参数,可在重排集合中选择残差信号重排方法中的至少一种残差信号重排方法。
[0391]
根据当前块的预测模式,可构建至少一个重排集合。例如,当当前块的预测模式是帧内预测时,构建多个重排集合。当当前块的预测模式是帧间预测时,构建一个重排集合。
[0392]
根据当前块的亮度/色度信号,可构建至少一个重排集合。例如,当当前块是色度信号时,构建一个重排集合。当当前块是亮度信号时,构建多个重排集合。
[0393]
此外,基于重排集合,可对针对残差信号重排方法的索引进行熵编码/熵解码。这里,所述索引可被熵编码/熵解码为可变长度码或固定长度码。
[0394]
此外,基于重排集合,可执行针对残差信号重排方法的索引的二值化和反二值化。这里,所述索引可被二值化和反二值化为可变长度码或固定长度码。
[0395]
此外,重排集合在编码器和解码器中可以是表的形式,并且可通过等式被计算出。
[0396]
此外,重排集合可以以具有对称性的方式被构建。例如,可以以具有对称性的方式构建针对重排集合的表。这里,可以以针对帧内预测模式具有对称性的方式构建表。
[0397]
此外,可根据以下项中的至少一项来构建重排集合:帧内预测模式是否在特定范围中、以及帧内预测模式是偶数还是奇数。
[0398]
下表示出根据当前块的预测模式和帧内预测模式(方向)对残差信号重排方法进行编码/解码的方法的示例。
[0399]
此外,在下表中,可使用翻转方法信息来指示对残差信号重排方法中的至少一种残差信号重排方法的使用。
[0400]
[表1]
[0401][0402]
在表1中,残差信号重排方法的列(1)至列(4)指定了残差信号重排方法,诸如针对上述残差信号重排的扫描/重排顺序的索引、针对预定角度值的索引、针对预定翻转方法的索引等。在表1中,残差信号重排方法的列中的标记*表示在没有信令的情况下隐式地使用对应重排方法,并且标记-表示在对应情况下不使用对应重排方法。隐式地使用重排方法的含义可以是利用变换模式信息(sdst_flag或sdst flag)来使用重排方法,而不对针对残差信号重排方法的索引进行熵编码/熵解码。残差信号重排方法的列(1)至列(4)可分别指(1)不翻转、(2)水平翻转、(3)垂直翻转、以及(4)水平和垂直翻转。此外,数字0、1、10、11、110、111等可以是用于对残差信号重排方法进行熵编码/熵解码的二值化/反二值化的结果。作为二值化/反二值化方法,固定长度码、截断一元码、一元码等可被使用。如表1中所示,当当前块对应于预测模式和帧内预测模式(方向)中的至少一个时,在编码器和解码器中使用至少一种重排方法。这里,45度角的对角线方向可表示朝向当前块中的左上方位置的方向或从当前块中的左上方位置朝向当前块的方向。
[0403]
[表2]
[0404][0405]
作为另一示例,如表2中所示,当当前块对应于预测模式中的至少一个预测模式和帧内预测模式(方向)中的至少一个帧内预测模式(方向)时,在编码器和解码器中使用至少一种重排方法。
[0406]
[表3]
[0407][0408]
作为另一示例,如表3中所示,当当前块对应于预测模式中的至少一个预测模式和帧内预测模式(方向)中的至少一个帧内预测模式(方向)时,在编码器和解码器中使用至少一种重排方法。这里,残差信号重排方法可表示一种类型的变换。例如,当残差信号重排方法是(1)时,水平变换和垂直变换两者表示第一变换核。作为另一示例,当残差信号重排方法为(2)时,水平变换和垂直变换分别表示第二变换核和第一变换核。作为另一示例,当残差信号重排方法为(3)时,水平变换和垂直变换分别表示第一变换核和第二变换核。作为另一示例,当残差信号重排方法为(4)时,水平变换和垂直变换分别表示第二变换核和第二变换核。例如,第一变换核可以是dst-7,并且第二变换核可以是dct-8。当帧内预测模式是平面模式或dc模式时,使用基于出现频率的截断一元码对关于四种重排方法的信息(翻转方法信息)进行熵编码/熵解码。在帧间预测的情况下,重排方法(1)至(4)的出现概率可被认为是相等的,并且关于重排方法的信息可被熵编码/熵解码为两个比特的固定长度码。
[0409]
算术编码/解码可被用于所述码。此外,使用针对所述码的上下文模型的算术编码可不被使用,并且熵编码/熵解码可在旁路模式下进行。
[0410]
可在不翻转的情况下针对画面内的区域或ctu、整个画面、或画面组内的当前块执行利用dst-7的变换/逆变换,或者可通过在执行利用dct-2的变换/逆变换的两种方法中选择一种方法来执行变换/逆变换。在这种情况下,以当前块为单位指示是使用dst-7还是dct-2的1比特标志信息(变换模式信息)可被熵编码/熵解码。该方法可被用于距参考样点的距离越长而残差信号的能量越大的情况,或者可被用于降低编码和解码中的计算复杂
度。关于使用该方法的区域的信息可以以ctu、条带、pps、sps或其他特定区域为单位被用信号发送,并且1比特标志可以以开/关形式被用信号发送。
[0411]
对于画面内的区域或ctu、整个画面、或画面组内的当前块,可通过在以下五种方法中选择一种方法来执行变换/逆变换:dct-2变换/逆变换、不进行翻转的dst-7变换/逆变换、执行水平翻转之后的dst-7变换/逆变换、执行垂直翻转之后的dst-7变换/逆变换、以及执行水平和垂直翻转之后的dst-7变换/逆变换。可使用当前块的附近信息隐式地选择关于所述五种方法中的哪个变换将被选择的信息,并且可通过用信号发送索引(变换模式信息或翻转方法信息)来显式地选择关于所述五种方法中的哪个变换将被选择的信息。所述索引可以以下面的方式被用信号表示为截断一元码:dct-2为0,不进行翻转的dst-7为10,水平翻转之后的dst-7为110,垂直翻转之后的dst-7为1110,以及水平和垂直翻转之后的dst-7为1111。此外,根据当前块的尺寸和附近信息,可交换dct-2和dst-7的二值化以用信号发送。此外,二进制数中的第一个二进制数可以以cu为单位被用信号发送,并且其余二进制数可以以tu或pu为单位被用信号发送。此外,可通过在二进制数中将第一个二进制数、第二个二进制数和第三个二进制数区分开来将信息用信号表示为固定长度码。例如,变换模式信息或翻转方法信息可以以下面的方式被用信号发送:dct-2为0,不进行翻转的dst-7为000,水平翻转之后的dst-7为001,垂直翻转之后的dst-7为010,以及水平和垂直翻转之后的dst-7为011。此外,根据帧内预测模式,可仅使用所述五种方法中的一部分。例如,当帧内预测模式是与水平方向预测模式接近的预测模式时,仅使用三种变换方法:dct-2、不进行翻转的dst-7、以及垂直翻转之后的dst-7。在这种情况下,变换模式信息或翻转方法信息可以以下面的方式被用信号发送:dct-2为0,不进行翻转的dst-7为10,以及垂直翻转之后的dst-7为11。
[0412]
图8是示出根据本发明的使用sdst方法的解码方法的实施例的示图。
[0413]
参照图8,首先,在步骤801,可确定当前块的变换模式,并且在步骤802,可根据当前块的变换模式对当前块的残差数据执行逆变换。
[0414]
接下来,在步骤803,可对已经根据当前块的变换模式执行了逆变换的当前块的残差数据执行重排。
[0415]
这里,变换模式可包括混排离散正弦变换(sdst)、混排离散余弦变换(sdct)、离散正弦变换(dst)和离散余弦变换(dct)中的至少一种。
[0416]
sdst模式可指示在dst-7变换模式下执行逆变换并且对已经执行逆变换的残差数据执行重排的模式。
[0417]
sdct模式可指示在dct-2变换模式下执行逆变换并且对已经执行逆变换的残差数据执行重排的模式。
[0418]
dst模式可指示在dst-7变换模式下执行逆变换并且不对已经执行逆变换的残差数据执行重排的模式。
[0419]
dct模式可指示在dct-2变换模式下执行逆变换并且不对已经执行逆变换的残差数据执行重排的模式。
[0420]
因此,仅当当前块的变换模式是sdst和sdct之一时,执行对残差数据的重排。
[0421]
尽管描述了针对如上所述的sdst和dst模式在dst-7变换模式下执行逆变换,但是可使用基于其它dst(诸如dst-1、dst-2等)的变换模式。
[0422]
另外,在步骤801确定当前块的变换模式的步骤可包括:从比特流获得当前块的变换模式信息;并且基于变换模式信息确定当前块的变换模式。
[0423]
此外,在步骤801确定当前块的变换模式时,可基于当前块的预测模式、当前块的深度信息、当前块的尺寸和当前块的形状中的至少一个来确定当前块的变换模式。
[0424]
具体地,当当前块的预测模式是帧间预测模式时,sdst和sdct之一被确定为当前块的变换模式。
[0425]
另外,在步骤803对已经执行逆变换的当前块的残差数据进行重排的步骤可包括:按第一方向的顺序扫描排列在已经执行逆变换的当前块内的残差数据;并且按第二方向的顺序对已经执行逆变换的当前块内的按第一方向扫描的残差数据进行重排。这里,第一方向的顺序可以是光栅扫描顺序、右上对角线扫描顺序、水平扫描顺序和垂直扫描顺序中的一个。此外,第一方向的顺序可被如下定义。
[0426]
(1)从上方行向下方行扫描,并且在一行中从左向右扫描
[0427]
(2)从上方行向下方行扫描,并且在一行中从右向左扫描
[0428]
(3)从下方行向上方行扫描,并且在一行中从左向右扫描
[0429]
(4)从下方行向上方行扫描,并且在一行中从右向左扫描
[0430]
(5)从左侧列向右侧列扫描,并在一列中从上向下扫描
[0431]
(6)从左侧列向右侧列扫描,并在一列中从下向上扫描
[0432]
(7)从右侧列向左侧列扫描,并且在一列中从上向下扫描
[0433]
(8)从右侧列向左侧列扫描,并且在一列中从下向上扫描
[0434]
(9)螺旋形的扫描:从块的内部(或外部)向块的外部(或内部)扫描,并且按顺时针/逆时针方向扫描
[0435]
另外,对于第二方向的顺序,可选择性地使用上述方向中的一个方向。第一方向和第二方向可相同,或者可彼此不同。
[0436]
此外,在步骤803对已经执行逆变换的当前块的残差数据进行重排时,以当前块内的子块为单位执行重排。在这种情况下,可基于子块在当前块内的位置来对残差数据进行重排。
[0437]
此外,在步骤803对已经执行逆变换的当前块的残差数据进行重排时,可将在已经执行逆变换的当前块内排列的残差数据旋转预定义角度以进行重排。
[0438]
此外,在步骤803对已经执行逆变换的当前块的残差数据进行重排时,根据翻转方法,可对在已经执行逆变换的当前块内排列的残差数据执行翻转以进行重排。在这种情况下,在步骤801确定当前块的变换模式的步骤可包括:从比特流获得翻转方法信息;并且基于翻转方法信息确定针对当前块的翻转方法。
[0439]
图9是示出根据本发明的使用sdst方法的编码方法的实施例的示图。
[0440]
参照图9,在步骤901,可确定当前块的变换模式。
[0441]
接下来,在步骤902,可根据当前块的变换模式对当前块的残差数据进行重排。
[0442]
接下来,在步骤903,可对根据当前块的变换模式重排的当前块的残差数据进行变换。
[0443]
这里,变换模式可包括混排离散正弦变换(sdst)、混排离散余弦变换(sdct)、离散正弦变换(dst)和离散余弦变换(dct)中的至少一个。由于已经参照图8描述了sdst、sdct、
dst和dct模式,因此将省略重复的描述。
[0444]
另外,仅当当前块的变换模式是sdst和sdct之一时,执行对残差数据的重排。
[0445]
此外,在步骤901确定当前块的变换模式时,可基于当前块的预测模式、当前块的深度信息、当前块的尺寸和当前块的形状中的至少一个来确定当前块的变换模式。
[0446]
这里,当当前块的预测模式是帧间预测模式时,sdst和sdct之一被确定为当前块的变换模式。
[0447]
另外,在步骤902对当前块的残差数据进行重排的步骤可包括:按第一方向的顺序扫描在当前块内排列的残差数据;并且按第二方向的顺序对当前块内的按第一方向扫描的残差数据进行重排。
[0448]
此外,在步骤902对当前块的残差数据进行重排时,以当前块内的子块为单位执行重排。
[0449]
在这种情况下,在步骤902对当前块的残差数据进行重排时,可基于子块在当前块内的位置来重排残差数据。
[0450]
另外,在步骤902对当前块的残差数据进行重排时,可以以预定义角度旋转在当前块内排列的残差数据以进行重排。
[0451]
另外,在步骤902对当前块的残差数据进行重排时,根据翻转方法,可对在当前块内排列的残差数据执行翻转以进行重排。
[0452]
根据本发明的使用sdst方法的图像解码器可包括逆变换模块,其中,所述逆变换模块确定当前块的变换模式,根据当前块的变换模式对当前块的残差数据执行逆变换,并对已经根据当前块的变换模式执行了逆变换的当前块的残差数据进行重排。这里,变换模式可包括混排离散正弦变换(sdst)、混排离散余弦变换(sdct)、离散正弦变换(dst)和离散余弦变换(dct)中的至少一个。
[0453]
根据本发明的使用sdst方法的图像解码器可包括逆变换模块,其中,所述逆变换模块确定当前块的变换模式,根据当前块的变换模式对当前块的残差数据进行重排,并对根据当前块的变换模式重排的当前块的残差数据执行逆变换。这里,变换模式可包括混排离散正弦变换(sdst)、混排离散余弦变换(sdct)、离散正弦变换(dst)和离散余弦变换(dct)中的至少一个。
[0454]
根据本发明的使用sdst方法的图像编码器可包括变换模块,其中,所述变换模块确定当前块的变换模式,并根据当前块的变换模式对当前块的残差数据进行重排,并且对根据当前块的变换模式重排的当前块的残差数据进行变换。这里,变换模式可包括混排离散正弦变换(sdst)、混排离散余弦变换(sdct)、离散正弦变换(dst)和离散余弦变换(dct)中的至少一个。
[0455]
根据本发明的使用sdst方法的图像编码器可包括变换模块,其中,所述变换模块确定当前块的变换模式,根据当前块的变换模式对当前块的残差数据进行变换,并对根据当前块的变换模式变换的当前块的残差数据进行重排。这里,变换模式可包括混排离散正弦变换(sdst)、混排离散余弦变换(sdct)、离散正弦变换(dst)和离散余弦变换(dct)中的至少一个。
[0456]
通过根据本发明的使用sdst方法的编码方法生成的比特流可包括:确定当前块的变换模式;根据当前块的变换模式对当前块的残差数据进行重排;并且对根据当前块的变
换模式重排的当前块的残差数据进行变换,其中,所述变换模式可包括混排离散正弦变换(sdst)、混排离散余弦变换(sdct)、离散正弦变换(dst)和离散余弦变换(dct)中的至少一个。
[0457]
此外,可从针对每个块的n个预定义变换候选集合选择在本说明书中使用的变换。这里,n可以是正整数。变换候选中的每个变换候选可指定初级水平变换、初级垂直变换、以及次级变换(可与恒等变换相同)。变换候选的列表可根据块尺寸和预测模式而变化。所选的变换可如下被用信号发送。当编码块标志为1时,发送指示候选列表的第一变换是否被使用的标志。当指示候选列表的第一变换是否被使用的标志为零时,应用以下内容:当非零变换系数等级的数量大于阈值时,发送指示所使用的变换候选的变换索引;否则,使用列表的第二变换。
[0458]
此外,仅当作为初级变换的dct-2被用作默认变换时,使用作为次级变换的nsst。此外,关于水平变换或垂直变换,当宽度或高度各自等于或小于4时,dst-7被选择而无需进行用信号发送。
[0459]
关于残差块,当块的宽度等于或小于k时,dst-7而不是dct-2被用于一维水平变换。当块的高度等于或小于l时,dst-7而不是dct-2被用于一维垂直变换。此外,即使块的宽度或高度等于或小于k,当帧内预测模式是线性模型(lm)色度模式时,也使用dct-2。这里,k和l可以是正整数,例如,4。此外,k和l可相同或可具有不同的值。此外,残差块可以是在帧内模式下编码的块。此外,残差块可以是色度块。
[0460]
作为对残差信号执行翻转方法的替代,可使用已经执行翻转的变换核或变换矩阵来执行变换/逆变换。这里,已经执行翻转的变换/逆变换核或变换/逆变换矩阵可以是已经经历翻转且在编码器/解码器中预定义的核或矩阵。在这种情况下,由于已经执行翻转的变换/逆变换矩阵被用于执行变换/逆变换,因此可以获得与对残差信号执行翻转相同的效果。这里,翻转可以是不翻转、水平翻转、垂直翻转、以及水平和垂直翻转中的至少一种。在这种情况下,可以用信号发送关于已经执行翻转的变换/逆变换是否被使用的信息。此外,可针对水平方向上的变换/逆变换和垂直方向上的变换/逆变换中的每一个用信号发送关于已经执行翻转的变换/逆变换是否被使用的信息。
[0461]
此外,作为对残差信号执行翻转方法的替代,可在编码/解码处理中对变换核或变换矩阵执行翻转以执行变换/逆变换。在这种情况下,由于对变换/逆变换矩阵执行翻转以执行变换/逆变换,因此可以获得与对残差信号执行翻转相同的效果。这里,翻转可以是不翻转、水平翻转、垂直翻转、以及水平和垂直翻转中的至少一种。在这种情况下,可以用信号发送关于是否对变换/逆变换矩阵执行翻转的信息。此外,可针对水平方向上的变换/逆变换和垂直方向上的变换/逆变换中的每一个用信号发送关于是否对变换/逆变换矩阵执行翻转的信息。
[0462]
当翻转方法基于帧内预测模式而被确定并且当前块的两个或更多个帧内预测模式被使用时,在当前块的变换/逆变换之前/之后执行翻转作为用于非方向模式的翻转方法。
[0463]
此外,当翻转方法基于帧内预测模式而被确定并且当前块的两个或更多个帧内预测模式被使用时,在当前块的变换/逆变换之前/之后执行翻转作为主方向模式的翻转方法。这里,主方向模式可以是垂直模式、水平模式和对角线模式中的至少一种。
[0464]
当变换的尺寸等于或大于m
×
n时,在变换期间或在变换之后存在于m/2至m且n/2至n的区域中的所有变换系数被设置为值0。这里,m和n可以是正整数,例如,64
×
64。
[0465]
为了降低存储器需求,可对执行变换之后生成的变换系数按k执行右移位运算。此外,可对执行水平变换之后生成的临时变换系数按k执行右移位运算。此外,可对执行垂直变换之后生成的临时变换系数按k执行右移位运算。这里,k是正整数。
[0466]
为了降低存储器需求,可对执行逆变换之后生成的重建残差信号按k执行右移位运算。此外,可对执行水平逆变换之后生成的临时变换系数按k执行右移位运算。此外,可对执行垂直逆变换之后生成的临时变换系数按k执行右移位运算。这里,k是正整数。
[0467]
可对在水平方向上执行变换/逆变换之前、在水平方向上执行变换/逆变换之后、在垂直方向上执行变换/逆变换之前、以及在垂直方向上执行变换/逆变换之后生成的信号中的至少一个信号执行翻转方法中的至少一种翻转方法。在这种情况下,可以用信号发送在水平方向上的变换/逆变换或垂直方向上的变换/逆变换中使用的翻转方法信息。
[0468]
此外,可使用dct-4而不是dst-7。从2n尺寸的dct-2变换/逆变换矩阵提取2n-1尺寸的dct-4变换/逆变换矩阵以供使用,因此仅dct-2变换/逆变换矩阵而不是dct-4变换/逆变换矩阵被存储在编码器/解码器中,从而降低了编码器/解码器的存储器需求。此外,从2n尺寸的dct-2变换/逆变换逻辑利用2n-1尺寸的dct-4变换/逆变换逻辑,因此减小了实现编码器/解码器所需的芯片面积。这里,以上示例不仅被应用于dct-2和dct-4,并且当存在在dst变换/逆变换的类型中的至少一种类型与dct变换/逆变换的类型中的至少一种类型之间共享的变换矩阵或变换逻辑时,应用以上示例。也就是说,可从一个变换/逆变换矩阵或逻辑提取另一变换/逆变换矩阵或逻辑以供使用。此外,在特定变换/逆变换尺寸的情况下,可从一个变换/逆变换矩阵或逻辑提取另一变换/逆变换矩阵或逻辑以供使用。此外,可按照矩阵单元、基矢量单元和矩阵系数单元中的至少一个单元从一个变换/逆变换矩阵提取另一变换/逆变换矩阵。
[0469]
此外,当当前块小于m
×
n的尺寸时,作为特定变换/逆变换的替代,另一变换/逆变换被用于当前块的变换/逆变换。此外,当当前块大于m
×
n的尺寸时,作为特定变换/逆变换的替代,另一变换/逆变换被用于当前块的变换/逆变换。这里,m和n是正整数。所述特定变换/逆变换和另一变换/逆变换可以是在编码器/解码器中预定义的变换/逆变换。
[0470]
此外,本说明书中使用的dct-4、dct-8、dct-2、dst-4、dst-1、dst-7等的变换中的至少一个变换可由基于dct-4、dct-8、dct-2、dst-4、dst-1、dst-7等的变换计算出的变换中的至少一个变换替换。这里,计算出的变换可以是通过修改dct-4、dct-8、dct-2、dst-4、dst-1、dst-7等的变换矩阵内的系数值而计算出的变换。此外,dct-4、dct-8、dct-2、dst-4、dst-1、dst-7等的变换矩阵内的系数值可具有整数值。也就是说,dct-4、dct-8、dct-2、dst-4、dst-1、dst-7等的变换可以是整数变换。此外,计算出的变换矩阵内的系数值可具有整数值。也就是说,计算出的变换可以是整数变换。此外,计算出的变换可以是对dct-4、dct-8、dct-2、dst-4、dst-1、dst-7等的变换矩阵内的系数值按n执行左移位运算的结果。这里,n可以是正整数。
[0471]
dct-q和dst-w变换可表示包括dct-q和dst-w变换以及dct-q和dst-w逆变换。这里,q和w可具有正整数1或更大的正整数,并且例如,数字1至9可与罗马数字i至ix具有相同的含义。
[0472]
此外,本说明书中使用的dct-4、dct-8、dct-2、dst-4、dst-1、dst-7等的变换不限于此,并且可通过替换dct-4、dct-8、dct-2、dst-4、dst-1、dst-7的变换来使用dct-q变换和dst-w变换之中的至少一个变换。这里,q和w可具有正整数1或更大的正整数,并且例如,数字1至9可与罗马数字i至ix具有相同的含义。
[0473]
此外,在正方形块的情况下,可以以正方形变换形式执行本说明书中使用的变换。在非正方形块的情况下,可以以非正方形变换形式执行变换。在包括正方形块和非正方形块中的至少一个的正方形形状区域的情况下,可以以正方形变换形式对该区域执行变换。在包括正方形块和非正方形块中的至少一个的非正方形形状区域的情况下,可以以非正方形变换形式对该区域执行变换。
[0474]
此外,在本说明书中,关于重排方法的信息可以是翻转方法信息。
[0475]
此外,本说明书中使用的变换可表示变换和逆变换中的至少一个。
[0476]
编码器可针对残差块执行变换以生成变换系数,对变换系数进行量化以生成量化的系数等级,并且对量化的系数等级进行熵编码,以便提高图像的主观/客观图像质量。
[0477]
解码器可对量化的系数等级进行熵解码,对量化的系数等级进行反量化以生成变换系数,并且对变换系数进行逆变换以生成重建残差块。
[0478]
关于哪个变换被用作变换和逆变换的变换类型信息可被显式地熵编码/熵解码。此外,可基于编码参数中的至少一个编码参数隐式地确定关于哪个变换被用作变换和逆变换的变换类型信息,而不对关于哪个变换被用作变换和逆变换的变换类型信息进行熵编码/熵解码。
[0479]
在下文中,将描述本发明中的用于执行变换或逆变换中的至少一个的图像编码/解码方法和设备以及用于存储比特流的记录介质的实施例。
[0480]
使用以下实施例中的至少一个实施例,可将块分区为n个子块,并且可执行预测、变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个。这样的模式可被称为第一子块分区模式(例如,isp模式或帧内子分区模式)。
[0481]
块可表示编码块、预测块或变换块。例如,块可以是变换块。
[0482]
此外,分区出的子块可表示编码块、预测块或变换块中的至少一个。例如,分区出的子块可以是变换块。
[0483]
此外,块或分区出的子块可以是帧内块、帧间块或帧内块复制块中的至少一个。例如,块和子块可以是帧内块。
[0484]
此外,块或分区出的子块可以是帧内预测块、帧间预测块或帧内块复制预测块中的至少一个。例如,块和子块可以是帧内预测块。
[0485]
此外,块或分区出的子块可以是亮度信号块或色度信号块中的至少一个。例如,块和子块可以是亮度信号块。
[0486]
当块被分区为n个子块时,分区之前的块可以是编码块,并且分区出的子块可以是预测块或变换块中的至少一个。也就是说,可利用分区出的子块尺寸执行对变换系数的预测、变换/逆变换、量化/反量化、熵编码/熵解码。
[0487]
此外,当块被分区为n个子块时,分区之前的块可以是编码块或预测块中的至少一个,并且分区出的子块可以是变换块。也就是说,可利用分区之前的块的尺寸执行预测,并且可利用分区出的子块尺寸执行对变换系数的变换/逆变换、量化/反量化、熵编码/熵解
码。
[0488]
可基于块的面积(宽度和高度的乘积等)、尺寸(宽度、高度或者宽度和高度的组合)以及形状/形式(矩形(非正方形)、正方形等)中的至少一个确定块是否被分区为多个子块。
[0489]
例如,当当前块为64
×
64的块时,当前块可被分区为多个子块。
[0490]
作为另一示例,当当前块为32
×
32的块时,当前块可被分区为多个子块。
[0491]
作为另一示例,当当前块为32
×
16的块时,当前块可被分区为多个子块。
[0492]
作为另一示例,当当前块为16
×
32的块时,当前块可被分区为多个子块。
[0493]
作为另一示例,当当前块为4
×
4的块时,当前块可不被分区为多个子块。
[0494]
作为另一示例,当当前块为2
×
4的块时,当前块可不被分区为多个子块。
[0495]
作为另一示例,当当前块的面积等于或大于32时,当前块可被分区为多个子块。
[0496]
作为另一示例,当当前块的面积小于32时,当前块可不被分区为多个子块。
[0497]
作为另一示例,当当前块的面积为256且当前块的形状为矩形时,当前块可被分区为多个子块。
[0498]
作为另一示例,当当前块的面积为16且当前块的形状为正方形时,当前块可不被分区为多个子块。
[0499]
当块被分区时,块可在垂直方向或水平方向中的至少一个分区方向上被分区为多个子块。
[0500]
例如,当前块可在垂直方向上被分区为两个子块。
[0501]
作为另一示例,当前块可在水平方向上被分区为两个子块。
[0502]
作为另一示例,当前块可在水平方向上被分区为四个子块。
[0503]
作为另一示例,当前块可在垂直方向上被分区为四个子块。
[0504]
当块被分区为n个子块时,n可以是正整数,并且可以是例如2或4。此外,可使用块的面积、尺寸、形状或分区方向中的至少一个来确定n。
[0505]
例如,当当前块是4
×
8或8
×
4的块时,当前块可在水平方向上被分区为两个子块或在垂直方向上被分区为两个子块。
[0506]
作为另一示例,当当前块为16
×
8或16
×
16的块时,当前块可在垂直方向上被分区为四个子块或在水平方向上被分区为四个子块。
[0507]
作为另一示例,当当前块为8
×
32或32
×
32的块时,当前块可在水平方向上被分区为四个子块或在垂直方向上被分区为四个子块。
[0508]
作为另一示例,当当前块为16
×
4、32
×
4或64
×
4的块时,当前块可在垂直方向上被分区为四个子块。此外,当当前块是16
×
4、32
×
4或64
×
4的块时,当前块可在水平方向上被分区为两个子块。
[0509]
作为另一示例,当当前块为4
×
16、4
×
32或4
×
64的块时,当前块可在水平方向上被分区为四个子块。此外,当当前块是4
×
16、4
×
32或4
×
64的块时,当前块可在垂直方向上被分区为两个子块。
[0510]
作为另一示例,当当前块为j
×
4的块时,当前块可在水平方向上被分区为两个子块。这里,j可以是正整数。
[0511]
作为另一示例,当当前块为4
×
k的块时,当前块可在垂直方向上被分区为两个子
块。这里,j可以是正整数。
[0512]
作为另一示例,当当前块为j
×
k(k》4)的块时,当前块可在水平方向上被分区为四个子块。这里,j可以是正整数。
[0513]
作为另一示例,当当前块为j
×
k(j》4)的块时,当前块可在垂直方向上被分区为四个子块。这里,j可以是正整数。
[0514]
作为另一示例,当当前块为j
×
k(k》4)的块时,当前块可在垂直方向上被分区为四个子块。这里,j可以是正整数。
[0515]
作为另一示例,当当前块的面积为64时,当前块可在水平方向或垂直方向上被分区为四个子块。
[0516]
作为另一示例,当当前块为16
×
4的块且当前块的形状为矩形时,当前块可在垂直方向上被分区为四个子块。
[0517]
作为另一示例,当当前块的面积为1024且当前块的形状为正方形时,当前块可在水平方向或垂直方向上被分区为四个子块。
[0518]
此外,子块可具有最小面积、最小宽度或最小高度中的至少一个。
[0519]
例如,子块可具有s作为最小面积。这里,s可以是正整数,并且可以是例如16。
[0520]
作为另一示例,子块可具有j作为最小宽度。这里,j可以是正整数,并且可以是例如4。
[0521]
作为另一示例,子块可具有k作为最小高度。这里,k可以是正整数,并且可以是例如4。
[0522]
在每个分区出的子块中,可通过将残差块(或重建残差块)和预测块相加来生成重建块。这里,每个重建子块中的重建样点中的至少一个重建样点稍后可在被编码/解码的子块的帧内预测中被用作参考样点。
[0523]
可根据分区方向中的至少一个分区方向确定从块分区出的子块的编码/解码顺序。
[0524]
例如,水平分区出的子块的编码/解码顺序可被确定为从上方向到下方向的顺序。
[0525]
作为另一示例,垂直分区出的子块的编码/解码顺序可被确定为从左方向到右方向的顺序。
[0526]
针对分区出的子块,帧内预测模式可被共享并被使用。
[0527]
此时,关于针对每个子块的帧内预测模式的信息可在分区之前的块中被熵编码/熵解码仅一次。
[0528]
对于分区出的子块,帧内块复制模式可被共享并被使用。
[0529]
此时,关于针对每个子块的帧内块复制模式的信息可在分区之前的块中被熵编码/熵解码仅一次。
[0530]
为了指示将块分区为n个子块且以子块为单位执行预测、变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个的子块分区模式,可对子块分区模式信息或分区方向信息中的至少一个进行熵编码/熵解码。
[0531]
这里,子块分区模式信息可被用于指示子块分区模式。当指示子块分区模式被使用(第二值)时,可将块分区为子块,并且可执行预测、变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个。当指示子块分区模式未被使用(第一值)时,可不将块分区为子块,并
且可执行预测、变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个。这里,第一值可以是0,并且第二值可以是1。
[0532]
此外,分区方向信息可被用于指示子块分区模式是垂直分区还是水平分区。当分区方向信息具有第一值时,块可在水平方向上被分区为子块,并且第一值可以是0。此外,当分区方向信息具有第二值时,块可在垂直方向上被分区为子块,并且第二值可以是1。
[0533]
当当前块不使用最接近的参考样点线(第一参考样点线)作为参考样点线时,可不对子块分区模式信息或分区方向信息中的至少一个进行熵编码/熵解码。此时,可从子块分区模式信息推断当前块未被分区为子块。
[0534]
这里,当前块不使用最接近的参考样点线(第一参考样点线)作为参考样点线可表示第二参考样点线或更大的参考样点线可被用作当前块周围的重建参考线。
[0535]
也就是说,仅当当前块使用最接近的参考样点线作为参考样点线时,可对子块分区模式信息或分区方向信息中的至少一个进行熵编码/熵解码。
[0536]
可基于子块的面积、尺寸、形状或分区方向中的至少一个确定在变换系数的熵编码/熵解码期间使用的系数组的面积、尺寸、形状或分区方向中的至少一个。
[0537]
例如,当子块的面积为16时,系数组的面积可被确定为16。
[0538]
作为另一示例,当子块的面积为32时,系数组的面积可被确定为16。
[0539]
作为另一示例,当子块的尺寸为1
×
16或16
×
1时,系数组的尺寸可被确定为1
×
16或16
×
1。
[0540]
作为另一示例,当子块的尺寸为2
×
8或8
×
2时,系数组的尺寸可被确定为2
×
8或8
×
2。
[0541]
作为另一示例,当子块的尺寸为4
×
4时,系数组的尺寸可被确定为4
×
4。
[0542]
作为另一示例,当子块的宽度为2时,系数组的宽度可被确定为2。
[0543]
作为另一示例,当子块的宽度为4时,系数组的宽度可被确定为4。
[0544]
作为另一示例,当子块的高度为2时,系数组的高度可被确定为2。
[0545]
作为另一示例,当子块的高度为4时,系数组的高度可被确定为4。
[0546]
作为另一示例,当子块的形状为矩形(非正方形)时,系数组的形状可被确定为矩形(非正方形)。
[0547]
作为另一示例,当子块的形状为正方形时,系数组的形状可被确定为正方形。
[0548]
作为另一示例,当子块的尺寸为16
×
4且其形式为矩形时,系数组的尺寸可被确定为4
×
4或8
×
2中的至少一个。
[0549]
作为另一示例,当子块的尺寸为4
×
8且其形式为矩形时,系数组的尺寸可被确定为4
×
4或2
×
8中的至少一个。
[0550]
作为另一示例,当子块的尺寸为32
×
4且其形式为矩形时,系数组的尺寸可被确定为4
×
4或8
×
2中的至少一个。
[0551]
作为另一示例,当子块的尺寸为8
×
64且其形式为矩形时,系数组的尺寸可被确定为4
×
4或2
×
8中的至少一个。
[0552]
作为另一示例,当子块的尺寸为16
×
4且分区方向为垂直方向时,系数组的尺寸可被确定为4
×
4。
[0553]
作为另一示例,当子块的尺寸为4
×
8且分区方向为水平方向时,系数组的尺寸可
被确定为4
×
4。
[0554]
作为另一示例,当子块的尺寸为32
×
4且分区方向为水平方向时,系数组的尺寸可被确定为8
×
2。
[0555]
作为另一示例,当子块的尺寸为8
×
64且分区方向为垂直方向时,系数组的尺寸可被确定为2
×
8。
[0556]
针对每个分区出的子块,可对指示在子块单元中是否存在至少一个具有非零值的变换系数的编码块标志进行熵编码/熵解码。
[0557]
例如,编码块标志可以以子块为单位指示在至少一个子块中存在至少一个具有非零值的变换系数。
[0558]
作为另一示例,当m表示子块的总数并且从子块的前面起的m-1个子块的编码块标志指示不存在具有非零值的变换系数时,可推断第m个子块的编码块标志指示存在至少一个具有非零值的变换系数。
[0559]
作为另一示例,当编码块标志以子块为单位被熵编码/熵解码时,可以以分区之前的块为单位对编码块标志进行熵编码/熵解码。
[0560]
作为另一示例,当编码块标志以分区之前的块为单位被熵编码/熵解码时,可不以子块为单位对编码块标志进行熵编码/熵解码。
[0561]
另外,当当前块处于第一子块分区模式并且当前块的尺寸是预定义尺寸时,用于帧内预测的子块的尺寸和用于变换的子块的尺寸可彼此不同。也就是说,用于帧内预测的子块分区和用于变换的子块分区可彼此不同。这里,所述预定义尺寸可以是4
×
n或8
×
n(n》4)。这里,子块分区可表示垂直分区。
[0562]
例如,当当前块处于第一子块分区模式并且当前块的尺寸为4
×
n(n》4)时,当前块可被垂直分区为尺寸为4
×
n的子块以用于帧内预测,并且当前块可被垂直分区为尺寸为1
×
n的子块以用于变换。此时,可执行一维变换/逆变换以便执行尺寸为1
×
n的变换。也就是说,可基于当前块的分区模式或当前块的尺寸中的至少一个来执行一维变换/逆变换。
[0563]
作为另一示例,当当前块处于第一子块分区模式并且当前块的尺寸为8
×
n(n》4)时,当前块可被垂直分区为尺寸为4
×
n的子块以用于帧内预测,并且当前块可被垂直分区为尺寸为2
×
n的子块以用于变换。此时,可执行二维变换/逆变换以便执行尺寸为2
×
n的变换。也就是说,可基于当前块的分区模式或当前块的尺寸中的至少一个来执行二维变换/逆变换。
[0564]
这里,n可表示正整数,并且可以是小于64或128的正整数。
[0565]
此外,当前块的尺寸可表示当前块的编码块的尺寸、预测块的尺寸或变换块的尺寸中的至少一个。
[0566]
如在图10的示例中,根据第一子块分区模式的实施例,当前块可在水平方向上被分区为两个子块且可在垂直方向上被分区为两个子块。
[0567]
如在图11的示例中,根据第一子块分区模式的实施例,当前块可在水平方向上被分区为两个子块且可在垂直方向上被分区为两个子块。
[0568]
如在图12的示例中,根据第一子块分区模式的实施例,当前块可在水平方向上被分区为四个子块且可在垂直方向上被分区为四个子块。
[0569]
使用以下实施例中的至少一个实施例,块可被分区为n个子块,以便以子块为单位
执行变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个。这样的模式可被称为第二子块分区模式(例如,sbt模式或子块变换模式)。
[0570]
块可表示编码块、预测块或变换块中的至少一个。例如,块可以是变换块。
[0571]
此外,分区出的子块可表示编码块、预测块或变换块中的至少一个。例如,分区出的子块可以是变换块。
[0572]
此外,块或分区出的子块可以是帧内块、帧间块或帧内块复制块中的至少一个。例如,块或分区出的子块可以是帧间块。
[0573]
此外,块或分区出的子块可以是帧内预测块、帧间预测块或帧内块复制预测块中的至少一个。例如,块可以是帧间预测块。
[0574]
此外,块或分区出的子块可以是亮度信号块或色度信号块中的至少一个。例如,块和子块可以是亮度信号块。
[0575]
当块被分区为n个子块时,分区之前的块可以是编码块,并且分区出的子块可以是预测块或变换块中的至少一个。也就是说,可利用分区出的子块尺寸执行对变换系数的变换/逆变换、量化/反量化和熵编码/熵解码。
[0576]
此外,当块被分区为n个子块时,分区之前的块可以是编码块或预测块中的至少一个,并且分区出的子块可以是变换块。也就是说,利用分区之前的块的尺寸执行预测,并且可利用分区出的子块的尺寸执行对变换系数的变换/逆变换、量化/反量化和熵编码/熵解码。
[0577]
可基于块的面积(宽度和高度的乘积)、尺寸(宽度或高度或者宽度和高度的组合)或者形状/形式(矩形、正方形等)中的至少一个确定块是否被分区为多个子块。
[0578]
例如,当当前块为64
×
64的块时,当前块可被分区为多个子块。
[0579]
作为另一示例,当当前块为32
×
32的块时,当前块可被分区为多个子块。
[0580]
作为另一示例,当当前块为32
×
16的块时,当前块可被分区为多个子块。
[0581]
作为另一示例,当当前块为16
×
32的块时,当前块可被分区为多个子块。
[0582]
作为另一示例,当当前块为4
×
4的块时,当前块可不被分区为多个子块。
[0583]
作为另一示例,当当前块为2
×
4的块时,当前块可不被分区为多个子块。
[0584]
作为另一示例,当当前块的宽度或高度中的至少一个大于变换块的最大尺寸时,当前块可不被分区为多个子块。也就是说,当当前块的宽度或高度中的至少一个小于或等于变换块的最大尺寸时,第二子块分区模式可被应用于当前块。
[0585]
作为另一示例,当当前块的宽度或高度中的至少一个大于变换块的最大尺寸时,当前块可不被分区为多个子块。也就是说,当当前块的宽度和高度两者小于或等于变换块的最大尺寸时,第二子块分区模式可被应用于当前块。
[0586]
此外,当当前块的宽度或高度中的至少一个小于或等于变换块的最大尺寸时,可对指示第二子块分区模式的信息(子块分区模式信息、分区方向信息、子块位置信息或子块尺寸信息)中的至少一个进行熵编码/熵解码。这里,可基于在更高级的单元中用信号发送的变换块最大尺寸信息来确定变换块的最大尺寸。例如,可基于变换块最大尺寸信息将变换块的最大尺寸确定为64或32中的任意一个。
[0587]
作为另一示例,当当前块的面积等于或大于32时,当前块可被分区为多个子块。
[0588]
作为另一示例,当当前块的面积小于32时,当前块可不被分区为多个子块。
[0589]
作为另一示例,当当前块的面积为256且当前块的形状为矩形时,当前块可被分区为多个子块。
[0590]
作为另一示例,当当前块的面积为16且当前块的形状为正方形时,当前块可不被分区为多个子块。
[0591]
当当前块的宽度或高度中的至少一个大于或等于预定义值时,当前块可被分区为多个子块。
[0592]
例如,当当前块的宽度或高度中的至少一个等于或大于8时,当前块可被分区为多个子块。
[0593]
反之,当当前块的宽度和高度两者小于预定义值时,当前块可不被分区为多个子块。
[0594]
当当前块处于gpm(几何分区模式)时,当前块的变换块可不被分区为多个子块。这里,gpm可以是将当前块的预测块分区为两个子块以执行预测的预测模式。当当前块处于gpm时,当前块的预测块可被分区为两个子块。此时,可对与用于将当前块的预测块分区为两个子块的分区方向有关的信息进行熵编码/熵解码。可针对两个子块执行帧间预测,从而生成针对两个子块的预测样点。此外,可对针对所生成的两个子块的预测样点进行加权求和以推导当前块的预测样点。也就是说,当当前块的预测块被分区为至少两个子块时,当前块的变换块可不被分区为至少两个子块。类似地,当当前块的预测块未被分区为至少两个子块时,当前块的变换块可被分区为至少两个子块。
[0595]
当块被分区时,块可在垂直方向或水平方向中的至少一个方向上被分区为多个子块。
[0596]
例如,当前块可在垂直方向上被分区为两个子块。
[0597]
作为另一示例,当前块可在水平方向上被分区为两个子块。
[0598]
当块被分区为n个子块时,n可以是正整数,并且可以是例如2。此外,可使用块的面积、尺寸、形状或分区方向中的至少一个来确定n。
[0599]
例如,当当前块为4
×
8或8
×
4的块时,当前块可在水平方向上被分区为两个子块或在垂直方向上被分区为两个子块。
[0600]
作为另一示例,当当前块为16
×
8或16
×
16的块时,当前块可在垂直方向上被分区为两个子块或在水平方向上被分区为两个子块。
[0601]
作为另一示例,当当前块为8
×
32或32
×
32的块时,当前块可在水平方向上被分区为两个子块或在垂直方向上被分区为两个子块。
[0602]
作为另一示例,当当前块为j
×
8的块时,当前块可在水平方向上被分区为两个子块。这里,j可以是正整数。
[0603]
作为另一示例,当当前块为8
×
k的块时,当前块可在垂直方向上被分区为两个子块。这里,j可以是正整数。
[0604]
作为另一示例,当当前块为j
×
k(k》8)的块时,当前块可在水平方向上被分区为两个子块。这里,j可以是正整数。此时,分区出的子块的高度可具有1:3或3:1的比率。
[0605]
作为另一示例,当当前块为j(j》8)
×
k的块时,当前块可在垂直方向上被分区为两个子块。这里,j可以是正整数。此时,分区出的子块的宽度可具有1:3或3:1的比率。
[0606]
作为另一示例,当当前块的面积为64时,当前块可在水平方向或垂直方向上被分
区为两个子块。
[0607]
作为另一示例,当当前块为16
×
4的块且当前块的形状为矩形时,当前块可在垂直方向上被分区为两个子块。
[0608]
作为另一示例,当当前块的面积为1024且当前块的形状为正方形时,当前块可在水平方向或垂直方向上被分区为两个子块。
[0609]
此外,子块可具有最小面积、最小宽度或最小高度中的至少一个。
[0610]
例如,子块可具有s作为最小面积。这里,s可以是正整数,并且可以是例如16。
[0611]
作为另一示例,子块可具有j作为最小宽度。这里,j可以是正整数,并且可以是例如4。
[0612]
作为另一示例,子块可具有k作为最小高度。这里,k可以是正整数,并且可以是例如4。
[0613]
为了指示将块分区为n个子块以执行变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个的子块分区模式,可对子块分区模式信息、分区方向信息、子块位置信息或子块尺寸信息中的至少一个进行熵编码/熵解码。
[0614]
这里,子块分区模式信息可被用于指示子块分区模式。当子块分区模式信息指示子块分区模式被使用(第二值)时,可将块分区为子块,并且可执行变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个。当子块分区模式信息指示子块分区模式未被使用(第一值)时,可不将块分区为子块,并且可执行变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个。这里,第一值可以是0,第二值可以是1。
[0615]
此外,分区方向信息可被用于指示子块分区模式是在垂直方向上还是在水平方向上分区。当分区方向信息具有第一值时,子块可在垂直方向上被分区,并且第一值可以是0。此外,当分区方向信息具有第二值时,子块可在水平方向上被分区,并且第二值可以是1。
[0616]
此外,子块位置信息可被用于指示分区出的子块中的哪个分区出的子块的残差信号被编码/解码。当子块位置信息具有第一值时,第一子块的残差信号可被编码/解码,并且第一值可以是0。此外,当子块位置信息具有第二值时,第二子块的残差信号可被编码/解码,并且第二值可以是1。此外,当子块位置信息具有第一值时,可对针对第一子块的亮度信号的编码块标志或色度信号的编码块标志中的至少一个进行熵编码/熵解码。此外,当子块位置信息具有第二值时,可对针对第二子块的亮度信号的编码块标志或色度信号的编码块标志中的至少一个进行熵编码/熵解码。
[0617]
此外,子块尺寸信息可被用于指示分区出的子块的宽度或高度是块的宽度或高度的1/2还是1/4。当子块尺寸信息具有第一值时,这可指示由子块位置信息指示的残差信号被编码/解码的子块的宽度或高度是块的宽度或高度的1/2,并且第一值可以是0。此外,当子块尺寸信息具有第二值时,这可指示由子块位置信息指示的残差信号被编码/解码的子块的宽度或高度是块的宽度或高度的1/4,并且第二值可以是1。例如,当仅存在分区出的子块的尺寸是块的宽度或高度的1/2的情况时,可不对子块尺寸信息进行熵编码/熵解码。
[0618]
在每个分区出的子块中,可通过将残差块(或重建残差块)与预测块相加来生成重建块。
[0619]
可根据分区方向中的至少一个分区方向来确定从块分区出的子块的编码/解码顺序。
[0620]
例如,可将在水平方向上分区出的子块的编码/解码顺序确定为从上方向到下方向的顺序。
[0621]
作为另一示例,可将在垂直方向上分区出的子块的编码/解码顺序确定为从左方向到右方向的顺序。
[0622]
在分区出的子块中,指示是否存在具有非零值的变换系数中的至少一个变换系数的编码块标志可以以子块为单位被熵编码/熵解码。
[0623]
例如,编码块标志可以以子块为单位指示在至少一个子块中存在具有非零值的变换系数中的至少一个变换系数。
[0624]
作为另一示例,当编码块标志以子块为单位被熵编码/熵解码时,可不以分区之前的块为单位对编码块标志进行熵编码/熵解码。
[0625]
作为另一示例,当编码块标志以分区之前的块为单位被熵编码/熵解码时,可不以子块为单位对编码块标志进行熵编码/熵解码。
[0626]
仅针对由子块位置信息指示的子块,残差信号可被熵编码/熵解码。
[0627]
此时,由于残差信号可总是存在于由子块位置信息指示的子块中,因此可推断编码块标志指示存在至少一个非零变换系数。
[0628]
此外,由于残差信号可能不总是存在于未由子块位置信息指示的子块中,因此可推断编码块标志指示不存在至少一个非零变换系数。
[0629]
可基于子块的面积、尺寸、形状或分区方向中的至少一个确定在变换系数被熵编码/熵解码时使用的系数组的面积、尺寸、形状或分区方向中的至少一个。
[0630]
例如,当子块的面积为16时,系数组的面积可被确定为16。
[0631]
作为另一示例,当子块的面积为32时,系数组的面积可被确定为16。
[0632]
作为另一示例,当子块的尺寸为1
×
16或16
×
1时,系数组的尺寸可被确定为1
×
16或16
×
1。
[0633]
作为另一示例,当子块的尺寸为2
×
8或8
×
2时,系数组的尺寸可被确定为2
×
8或8
×
2。
[0634]
作为另一示例,当子块的尺寸为4
×
4时,系数组的尺寸可被确定为4
×
4。
[0635]
作为另一示例,当子块的宽度为2时,系数组的宽度可被确定为2。
[0636]
作为另一示例,当子块的宽度为4时,系数组的宽度可被确定为4。
[0637]
作为另一示例,当子块的高度为2时,系数组的高度可被确定为2。
[0638]
作为另一示例,当子块的高度为4时,系数组的高度可被确定为4。
[0639]
作为另一示例,当子块的形状为矩形(非正方形)时,系数组的形状可被确定为矩形(非正方形)。
[0640]
作为另一示例,当子块的形状为正方形时,系数组的形状可被确定为正方形。
[0641]
作为另一示例,当子块的尺寸为16
×
4且其形式为矩形时,系数组的尺寸可被确定为4
×
4或8
×
2中的至少一个。
[0642]
作为另一示例,当子块的尺寸为4
×
8且其形式为矩形时,系数组的尺寸可被确定为4
×
4或2
×
8中的至少一个。
[0643]
作为另一示例,当子块的尺寸为32
×
4且其形式为矩形时,系数组的尺寸可被确定为4
×
4或8
×
2中的至少一个。
[0644]
作为另一示例,当子块的尺寸为8
×
64且其形式为矩形时,系数组的尺寸可被确定为4
×
4或2
×
8中的至少一个。
[0645]
作为另一示例,当子块的尺寸为16
×
4且分区方向为垂直方向时,系数组的尺寸可被确定为4
×
4。
[0646]
作为另一示例,当子块的尺寸为4
×
8且分区方向为水平方向时,系数组的尺寸可被确定为4
×
4。
[0647]
作为另一示例,当子块的尺寸为32
×
4且分区方向为水平方向时,系数组的尺寸可被确定为8
×
2。
[0648]
作为另一示例,当子块的尺寸为8
×
64且分区方向为垂直方向时,系数组的尺寸可被确定为2
×
8。
[0649]
此外,在变换系数被熵编码/熵解码时使用的系数组的面积可被确定为预定义值。这里,所述预定义值可以是4或16。
[0650]
此外,可基于当前块的尺寸来确定变换系数组的面积或尺寸,而不管当前块的颜色分量如何。此时,当前块的尺寸可包括当前块的宽度或高度中的至少一个。
[0651]
例如,当当前块的宽度和高度为2时,系数组的尺寸可被确定为2
×
2。
[0652]
作为另一示例,当当前块的尺寸为2
×
4或4
×
2时,系数组的尺寸可被确定为2
×
2。
[0653]
如在图13的示例中,根据第二子块分区模式的实施例,当前块可在水平方向上被分区为两个子块(高度的1/2或1/4),并且可在垂直方向上被分区为两个子块(宽度的1/2或1/4)。在图13的示例中,灰色阴影可表示子块中的残差信号被编码/解码的块,并且可使用子块位置信息来指示该块。
[0654]
子块分区模式使用信息可在参数集或头中的至少一个中被熵编码/熵解码,其中,所述子块分区模式使用信息指示将块分区为n个子块并执行预测、变换/逆变换、量化/反量化或熵编码/熵解码中的至少一个的模式是否被使用。
[0655]
这里,子块分区模式使用信息可表示第一子块分区模式或第二子块分区模式中的至少一个。
[0656]
此时,参数集或头中的至少一个可以是视频参数集、解码参数集、序列参数集、自适应参数集、画面参数集、画面头、条带头、并行块组头或并行块头中的至少一个。
[0657]
例如,为了指示子块分区模式在视频内是否被使用,可在视频参数集中对子块分区模式使用信息进行熵编码/熵解码。
[0658]
作为另一示例,为了指示子块分区模式在解码处理内是否被使用,可在序列参数集中对子块分区模式使用信息进行熵编码/熵解码。
[0659]
作为另一示例,为了指示子块分区模式在序列内是否被使用,可在序列参数集中对子块分区模式使用信息进行熵编码/熵解码。
[0660]
作为另一示例,为了指示子块分区模式在若干画面内是否被使用,可在自适应参数集或自适应头中对子块分区模式使用信息进行熵编码/熵解码。
[0661]
作为另一示例,为了指示子块分区模式在画面内是否被使用,可在画面参数集或画面头中对子块分区模式使用信息进行熵编码/熵解码。
[0662]
作为另一示例,为了指示子块分区模式在条带内是否被使用,可在条带头中对子块分区模式使用信息进行熵编码/熵解码。
[0663]
作为另一示例,为了指示子块分区模式在并行块组内是否被使用,可在并行块组头中对子块分区模式使用信息进行熵编码/熵解码。
[0664]
作为另一示例,为了指示子块分区模式在并行块内是否被使用,可在并行块头中对子块分区模式使用信息进行熵编码/熵解码。
[0665]
可使用以下实施例中的至少一个实施例来确定每个块或子块的变换/逆变换类型。
[0666]
可基于针对块或子块的预测模式、帧内预测模式、颜色分量、尺寸、形状(形式)、子块分区相关信息、次级变换执行信息或基于矩阵的帧内预测执行信息中的至少一个来确定针对块或子块的一维变换类型、二维变换组合或是否使用变换中的至少一个。基于矩阵的帧内预测可指示基于矩阵进行帧内预测。
[0667]
例如,可基于针对块或子块的预测模式、帧内预测模式、颜色分量、尺寸、形状(形式)、子块分区相关信息、次级变换执行信息或基于矩阵的帧内预测执行信息中的至少一个来确定指示水平变换类型或垂直变换类型中的至少一个的一维变换类型。
[0668]
作为另一示例,可基于针对块或子块的帧内预测模式、预测模式、颜色分量、尺寸、形状或子块分区相关信息中的至少一个来确定指示水平变换类型和垂直变换类型的组合的二维变换组合。
[0669]
作为另一示例,可基于针对块或子块的帧内预测模式、预测模式、颜色分量、尺寸、形状或子块分区相关信息中的至少一个来确定指示是否执行变换的信息。
[0670]
此时,一维变换类型、二维变换组合或是否使用变换中的至少一个可根据针对块或子块的帧内预测模式、预测模式、颜色分量、尺寸、形状或子块分区相关信息中的至少一个而彼此不同。
[0671]
此外,当基于针对块或子块的帧内预测模式、预测模式、颜色分量、尺寸、形状(形式)、子块分区相关信息、次级变换执行信息或基于矩阵的帧内预测执行信息中的至少一个确定针对块或子块的一维变换类型、二维变换组合或是否使用变换中的至少一个时,关于一维变换类型的信息、关于二维变换组合的信息或关于是否使用变换的信息可不被熵编码/熵解码。
[0672]
也就是说,可根据编码器/解码器中的预定规则隐式地确定针对块或子块的一维变换类型、二维变换组合或是否使用变换中的至少一个。可基于编码器/解码器中的编码参数来设置所述预定规则。
[0673]
这里,基于矩阵的帧内预测可表示执行边界平均处理、矩阵矢量乘法处理或线性插值处理中的至少一个以生成预测块的帧内预测模式。
[0674]
这里,变换可表示变换或逆变换中的至少一个。
[0675]
此外,块可表示从块分区出的每个子块。
[0676]
初级变换可表示基于dct-j或dst-k(诸如针对残差块执行的以生成变换系数的dct-2、dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换。这里,j和k可以是正整数。
[0677]
可使用从基于dct-j或dst-k(诸如dct-2、dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换的变换矩阵提取的变换矩阵来执行初级变换。也就是说,可使用提取的变换矩阵执行初级变换。此外,提取的变换矩阵中的系数中的至少一个系数可等于
基于dct-j或dst-k(诸如dct-2、dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换的变换矩阵中的系数中的至少一个系数。此外,提取的变换矩阵可被包括在将被提取的变换矩阵中。此外,可通过针对将被提取的变换矩阵中的特定系数执行翻转或正负符号改变(sign change)中的至少一个来获得提取的变换矩阵。
[0678]
例如,基于dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换可从dct-2的变换矩阵被提取并被用于初级变换。
[0679]
这里,基于dct-j或dst-k(诸如dct-2、dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换可与基于dct-j或dst-k(诸如dct-2、dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换在变换矩阵中的具有不同的系数。
[0680]
例如,可通过执行针对基于dst-7的整数变换矩阵的水平翻转或针对dst-7变换矩阵系数中的至少一个系数的正负符号改变中的至少一个来推导基于dct-8的整数变换矩阵。此时,可使用垂直翻转来代替水平翻转。
[0681]
作为另一示例,可通过执行针对基于dct-8的整数变换矩阵的水平翻转或针对dct-8变换矩阵系数中的至少一个系数的正负符号改变中的至少一个来推导基于dst-7的整数变换矩阵。此时,可使用垂直翻转来代替水平翻转。
[0682]
作为另一示例,可通过执行针对基于dst-4的整数变换矩阵的水平翻转或针对dst-4变换矩阵系数中的至少一个系数的正负符号改变中的至少一个来推导基于dct-4的整数变换矩阵。此时,可使用垂直翻转来代替水平翻转。
[0683]
作为另一示例,可通过执行针对基于dct-4的整数变换矩阵的水平翻转或针对dct-4变换矩阵系数中的至少一个系数的正负符号改变中的至少一个来推导基于dst-4的整数变换矩阵。此时,可使用垂直翻转来代替水平翻转。
[0684]
次级变换可表示用于基于角度旋转变换系数中的至少一个变换系数的变换中的至少一个。可在初级变换之后执行次级变换。
[0685]
在编码器中,可针对经过初级变换的变换系数的左上侧的低频区域的系数执行次级变换。可基于变换块的尺寸来确定应用次级变换的低频区域的尺寸。
[0686]
在解码器中,可在执行初级逆变换之前执行次级逆变换。在以下描述中,次级变换可包括次级逆变换。
[0687]
次级变换可被称作lfnst(low frequency non-separable transform,低频不可分离变换),这是因为使用不可分离变换核而不是水平和垂直可分离变换核(或类型)。
[0688]
可仅针对帧内预测编码/解码执行次级变换,并且可基于帧内预测模式确定次级变换核。具体地,可基于帧内预测模式确定包括多个变换核的变换集。此外,可在基于索引信息确定的变换集中确定将被应用于次级变换的变换核。这里,变换集可包括四种类型的变换集。
[0689]
此外,当当前块的帧内预测模式为cclm模式时,可基于与色度块对应的亮度块的帧内预测模式来确定针对色度块的变换集。这里,当与色度块对应的亮度块处于基于矩阵的帧内预测模式时,这可被视为平面模式,并且可确定针对色度块的变换集。此外,当与色度块对应的亮度块处于ibc模式时,这可被视为dc模式,并且可确定针对色度块的变换集。
[0690]
作为另一示例,当与色度块对应的亮度块处于基于矩阵的帧内预测模式、ibc模式或调色板模式时,这可被视为平面模式并且可确定针对色度块的变换集。
[0691]
作为另一示例,当与色度块对应的亮度块处于基于矩阵的帧内预测模式、ibc模式或调色板模式时,这可被视为dc模式并且可确定针对色度块的变换集。
[0692]
此外,可使用次级变换索引信息来确定变换集中的次级变换核。这里,次级变换核可指示次级变换矩阵。
[0693]
是否使用变换可表示是否在残差块中使用初级变换或次级变换中的至少一个。是否使用变换可包括是否使用初级变换或是否使用次级变换中的至少一个。是否使用变换可指示是否应用变换跳过模式。此外,transform_skip_flag可指示变换跳过标志。
[0694]
例如,当作为指示是否使用初级变换或次级变换中的至少一个的信息的transform_skip_flag具有第一值(例如,0)时,这可指示初级变换或次级变换中的至少一个被使用。
[0695]
作为另一示例,当作为指示是否使用初级变换或次级变换中的至少一个的信息的transform_skip_flag具有第二值(例如,1)时,这可指示初级变换或次级变换中的至少一个未被使用。
[0696]
一维变换类型可表示初级变换的类型,并且表示针对基于dct-j或dst-k的整数变换类型中的至少一个整数变换类型的水平变换类型trtypehor或垂直变换类型trtypever。这里,j和k可以是正整数。
[0697]
作为初级变换的类型,第一变换至第n变换可被使用。这里,n可以是正整数2或更大的正整数。
[0698]
例如,第一变换可表示基于dct-2的整数变换。
[0699]
作为另一示例,当第一变换被用于水平变换和垂直变换时,作为针对水平变换的变换类型的trtypehor和作为针对垂直变换的变换类型的trtypever可分别具有值q和r。这里,q和r可以是负整数、0或正整数中的至少一个。例如,q和r可分别是0和0。
[0700]
例如,当trtypehor具有第一值时,这可表示基于dct-2的整数水平变换。
[0701]
作为另一示例,当trtypever具有第一值时,这可表示基于dct-2的整数垂直变换。
[0702]
第一值可以是0。
[0703]
例如,第二变换可表示基于除了dct-2之外的dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换。这里,j和k可以是正整数。也就是说,第二变换可表示除了第一变换之外的变换中的至少一个变换。
[0704]
作为另一示例,当第二变换被用于水平变换或垂直变换中的至少一个时,作为针对水平变换的变换类型的trtypehor和作为针对垂直变换的变换类型的trtypever可分别具有值t和u。这里,t和u可以是负整数、0或正整数中的至少一个。例如,t和u可分别是等于或大于1的值和等于或大于1的值。此外,t和u可分别大于q和r。
[0705]
例如,当trtypehor具有第二值时,这可表示基于dst-7的整数水平变换。
[0706]
作为另一示例,当trtypehor具有第三值时,这可表示基于dct-8的整数水平变换。
[0707]
作为另一示例,当trtypever具有第二值时,这可表示基于dst-7的整数垂直变换。
[0708]
作为另一示例,当trtypever具有第三值时,这可表示基于dct-8的整数垂直变换。
[0709]
第二值可以是1。此外,第三值可以是2。
[0710]
可使用dst-4来代替dst-7。此外,可使用dct-4来代替dct-8。
[0711]
例如,第一变换可以是基于dct-2的整数变换。此外,第二变换可以是基于dst-7的
整数变换。此外,第三变换可以是基于dct-8的整数变换。此外,第二变换可表示第二变换或第三变换中的至少一个。
[0712]
作为另一示例,第一变换可以是基于dct-2的整数变换。此外,第二变换可以是基于dst-4的整数变换。此外,第三变换可以是基于dct-4的整数变换。此外,第二变换可表示第二变换或第三变换中的至少一个。
[0713]
也就是说,第一变换可以是基于dct-2的整数变换,并且第二变换至第n变换可表示基于除了dct-2之外的dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换。这里,n可以是等于或大于3的正整数。
[0714]
例如,第一变换可以是基于dct-2的整数变换。此外,第二变换可以是从基于dct-2的整数变换矩阵提取的基于dst-7的整数变换。此外,第三变换可以是从基于dct-2的整数变换矩阵提取的基于dct-8的整数变换。此外,第二变换可表示第二变换或第三变换中的至少一个。
[0715]
作为另一示例,第一变换可以是基于dct-2的整数变换。此外,第二变换可以是从基于dct-2的整数变换矩阵提取的基于dst-4的整数变换。此外,第三变换可以是从基于dct-2的整数变换矩阵提取的基于dct-4的整数变换。此外,第二变换可表示第二变换或第三变换中的至少一个。
[0716]
也就是说,第一变换可以是基于dct-2的整数变换,并且第二变换至第n变换可表示从基于dct-2的整数变换矩阵提取的基于dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换。这里,n可以是等于或大于3的正整数。此外,第二变换可表示第二变换至第n变换中的至少一个。
[0717]
作为dct-2的替代,基于dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换可被使用。
[0718]
二维变换组合可表示初级变换的组合,并且可表示针对基于dct-j或dst-k的整数变换类型中的至少一个整数变换类型的水平变换类型trtypehor和垂直变换类型trtypever的组合。此外,二维变换组合可表示作为多变换选择索引的mts_idx。
[0719]
例如,当第一变换被用于水平变换和垂直变换时,作为多变换选择索引的mts_idx可具有值p。这里,p可以是负整数、0或正整数中的至少一个。例如,p可以是0。
[0720]
例如,当mts_idx为0时,trtypehor和trtypever可分别具有第一值(例如,0)。也就是说,当mts_idx为0时,这可表示基于dct-2的整数水平变换和基于dct-2的整数垂直变换。
[0721]
作为另一示例,当第二变换被用于水平变换或垂直变换中的至少一个时,作为多变换选择索引的mts_idx可具有值s或更大的值。这里,s可以是负整数、0或正整数中的至少一个。例如,s可以是1。此外,s可大于p。
[0722]
例如,当mts_idx为1时,trtypehor和trtypever可分别具有第二值(例如,1)。
[0723]
作为另一示例,当mts_idx为2时,trtypehor和trtypever可分别具有第三值(例如,2)和第二值(例如,1)。
[0724]
作为另一示例,当mts_idx为3时,trtypehor和trtypever可分别具有第二值(例如,1)和第三值(例如,2)。
[0725]
作为另一示例,当mts_idx为4时,trtypehor和trtypever可分别具有第三值(例如,3)。
[0726]
例如,当trtypehor具有第二值时,这可表示基于dst-7的整数水平变换。
[0727]
对于另一示例,当trtypehor具有第三值时,这可表示基于dct-8的整数水平变换。
[0728]
对于另一示例,当trtypever具有第二值时,这可表示基于dst-7的整数垂直变换。
[0729]
对于另一示例,当trtypever具有第三值时,这可表示基于dct-8的整数垂直变换。
[0730]
第二值可以是1。此外,第三值可以是2。
[0731]
在以上实施例中,可使用dst-4来代替dst-7。此外,可使用dct-4来代替dct-8。
[0732]
例如,在第一变换中,水平变换和垂直变换可分别为基于dct-2的整数变换。此外,在第二变换中,水平变换和垂直变换可分别为基于dst-7的整数变换和基于dst-7的整数变换。此外,在第三变换中,水平变换和垂直变换可分别为基于dct-8的整数变换和基于dst-7的整数变换。此外,在第四变换中,水平变换和垂直变换可分别为基于dst-7的整数变换和基于dct-8的整数变换。此外,在第五变换中,水平变换和垂直变换可分别为基于dct-8的整数变换和基于dct-8的整数变换。此外,第二变换可表示第二变换、第三变换、第四变换或第五变换中的至少一个。
[0733]
作为另一示例,在第一变换中,水平变换和垂直变换可分别为基于dct-2的整数变换。此外,在第二变换中,水平变换和垂直变换可分别为基于dst-4的整数变换和基于dst-4的整数变换。此外,在第三变换中,水平变换和垂直变换可分别为基于dct-4的整数变换和基于dst-4的整数变换。此外,在第四变换中,水平变换和垂直变换可分别为基于dst-4的整数变换和基于dct-4的整数变换。此外,在第五变换中,水平变换和垂直变换可分别为基于dct-4的整数变换和基于dct-4的整数变换。此外,第二变换可表示第二变换、第三变换、第四变换或第五变换中的至少一个。
[0734]
也就是说,在第一变换中,水平变换和垂直变换可分别是基于dct-2的整数变换,并且在第二变换至第n变换中,水平变换和垂直变换可表示基于除了dct-2之外的dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换。这里,n可以是等于或大于3的整数。
[0735]
例如,在第一变换中,水平变换和垂直变换可分别为基于dct-2的整数变换。此外,在第二变换中,水平变换和垂直变换可分别为从基于dct-2的整数变换矩阵提取的基于dst-7的整数变换和基于dst-7的整数变换。此外,在第三变换中,水平变换和垂直变换可分别为从基于dct-2的整数变换矩阵提取的基于dct-8的整数变换和从基于dct-2的整数变换矩阵提取的基于dst-7的整数变换。此外,在第四变换中,水平变换和垂直变换可分别为从基于dct-2的整数变换矩阵提取的基于dst-7的整数变换和从基于dct-2的整数变换矩阵提取的基于dct-8的整数变换。此外,在第五变换中,水平变换和垂直变换可分别为从基于dct-2的整数变换矩阵提取的基于dct-8的整数变换和基于dct-8的整数变换。此外,第二变换可表示第二变换、第三变换、第四变换或第五变换中的至少一个。
[0736]
作为另一示例,在第一变换中,水平变换和垂直变换可分别为基于dct-2的整数变换。此外,在第二变换中,水平变换和垂直变换可分别为从基于dct-2的整数变换矩阵提取的基于dst-4的整数变换和基于dst-4的整数变换。此外,在第三变换中,水平变换和垂直变换可分别是从基于dct-2的整数变换矩阵提取的基于dct-4的整数变换和从基于dct-2的整数变换矩阵提取的基于dst-4的整数变换。此外,在第四变换中,水平变换和垂直变换可分别是从基于dct-2的整数变换矩阵提取的基于dst-4的整数变换和从基于dct-2的整数变换
矩阵提取的基于dct-4的整数变换。此外,在第五变换中,水平变换和垂直变换可以是从基于dct-2的整数变换矩阵提取的基于dct-4的整数变换和基于dct-4的整数变换。此外,第二变换可表示第二变换、第三变换、第四变换或第五变换中的至少一个。
[0737]
也就是说,在第一变换中,水平变换和垂直变换可分别是基于dct-2的整数变换,并且在第二变换至第n变换中,水平变换和垂直变换可表示从基于dct-2的整数变换矩阵提取的基于dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换。这里,n可以是等于或大于3的正整数。在这种情况下,第二变换可表示第二变换至第n变换中的至少一个。
[0738]
作为dct-2变换的替代,基于dct-j或dst-k(诸如dct-8、dst-7、dct-4或dst-4)的整数变换中的至少一个整数变换可被使用。
[0739]
预测模式可表示块的预测模式,并且可表示帧内预测模式、帧间预测模式和ibc(帧内块复制)模式中的哪个模式被用于执行编码/解码。
[0740]
例如,当在特定模式下执行帧内预测和帧间预测两者以生成预测块时,所述特定模式可表示帧间预测模式。
[0741]
例如,当在特定模式下当前图像被用作参考图像并且矢量被用于预测时,所述特定模式可表示帧内块复制预测模式。帧内块复制预测模式可以是ibc模式。这里,ibc模式可表示这样的模式:在当前图像/条带/并行块/并行块组/ctu内设置参考区域,参考区域中的位置由块矢量指示,并且使用由块矢量指示的区域来执行预测。
[0742]
颜色分量可表示块的颜色分量并且可表示亮度(y)分量或色度分量。
[0743]
例如,色度分量可表示cb分量或cr分量中的至少一个。也就是说,颜色分量可表示y分量、cb分量或cr分量。
[0744]
作为另一示例,颜色分量可表示r分量、g分量或b分量中的至少一个。
[0745]
作为另一示例,当图像被分解为多个分量并被编码/解码时,颜色分量可表示分解出的分量。
[0746]
子块分区相关信息可表示指示块被分区为多个子块的信息。
[0747]
例如,子块分区相关信息可包括子块分区模式信息或分区方向信息中的至少一个。
[0748]
作为另一示例,子块分区相关信息可包括子块分区模式信息、分区方向信息、子块位置信息或子块尺寸信息中的至少一个。
[0749]
尺寸可表示块尺寸、子块尺寸或变换尺寸中的至少一个。这里,尺寸可表示宽度、高度或者宽度和高度的组合中的至少一个。
[0750]
变换尺寸可表示在对应块中使用的变换尺寸。变换尺寸可小于或等于块尺寸。
[0751]
尺寸可以是m
×
n,诸如2
×
2、4
×
2、2
×
4、4
×
4、8
×
4、8
×
2、2
×
8、8
×
8、16
×
8、16
×
4、16
×
2、2
×
16、4
×
16、8
×
16、16
×
16、32
×
16、32
×
8、32
×
4、32
×
2、2
×
32、4
×
32、8
×
32、16
×
32、32
×
32、64
×
32、64
×
16、64
×
8、64
×
4、64
×
2、2
×
64、4
×
64、8
×
64、16
×
64、32
×
64、64
×
64、128
×
64、128
×
32、32
×
128、64
×
128或128
×
128。这里,m和n可以是正整数,并且可相同或不同。此外,m可以是s*n。n可以是s*m。这里,s可以是正整数。
[0752]
这里,m可以表示宽度,n可表示高度。
[0753]
例如,在尺寸为64
×
64的块的情况下,可在块的左上方区域中执行尺寸为32
×
32
的变换。此时,可使用尺寸为32
×
32的量化矩阵。
[0754]
作为另一示例,在尺寸为64
×
32的块的情况下,可在块的左上方区域中执行尺寸为32
×
32的变换。此时,可使用尺寸为32
×
32的量化矩阵。
[0755]
作为另一示例,在尺寸为32
×
64的块的情况下,可在块的左上方区域中执行尺寸为16
×
32的变换。此时,可使用尺寸为16
×
32的量化矩阵。
[0756]
作为另一示例,在尺寸为32
×
32的块的情况下,可在块中执行尺寸为32
×
32的变换。此时,可使用尺寸为32
×
32的量化矩阵。
[0757]
形式(或形状)可表示块的形式、子块的形式或变换的形式中的至少一个。
[0758]
所述形式可以是正方形或非正方形形式。
[0759]
正方形形式可表示正方形的形式。
[0760]
非正方形形式可表示矩形形式。
[0761]
变换的形式可表示在对应块中使用的变换的形式。当水平变换尺寸和垂直变换尺寸彼此不同时,变换的形式可以是非正方形。此外,当水平变换尺寸和垂直变换尺寸相同时,变换的形式可以是正方形。变换的形式可等于或不同于对应块的形式。
[0762]
量化矩阵的形式可表示在对应块中使用的量化矩阵的形式。当水平变换尺寸和垂直变换尺寸彼此不同时,量化矩阵的形式可以是非正方形。此外,当水平变换尺寸和垂直变换尺寸相同时,量化矩阵的形式可以是正方形。量化矩阵的形式可等于或不同于对应块的形式。量化矩阵的形式可等于或不同于变换的形式。
[0763]
例如,在尺寸为64
×
64的正方形块的情况下,可在块的左上方区域中执行尺寸为32
×
32的正方形变换。此时,可使用尺寸为32
×
32的正方形量化矩阵。
[0764]
作为另一示例,在尺寸为16
×
16的正方形块的情况下,可在块中执行尺寸为16
×
16的正方形变换。此时,可使用尺寸为16
×
16的正方形量化矩阵。
[0765]
作为另一示例,在尺寸为16
×
4的非正方形块的情况下,可在块中执行尺寸为16
×
4的非正方形变换。此时,可使用尺寸为16
×
4的量化矩阵。
[0766]
作为另一示例,在尺寸为2
×
8的非正方形块的情况下,可在块中执行尺寸为2
×
8的变换。此时,可使用尺寸为2
×
8的量化矩阵。
[0767]
以下示出确定针对块或子块的一维变换类型、二维变换组合或是否使用变换中的至少一个的实施例。这里,可确定针对块或子块的水平变换或垂直变换中的至少一个的一维变换类型。
[0768]
当块或子块的宽度w或高度h小于x时,可将水平变换类型trtypehor或垂直变换类型trtypever确定为指示基于dct-2的整数变换的第一变换。
[0769]
此时,第一变换可表示trtypehor或trtypever具有第一值。这里,第一值可以是0。
[0770]
这里,x可以是正整数,并且可以是例如2或4。
[0771]
当块或子块的宽度或高度大于y时,可将水平变换类型trtypehor或垂直变换类型trtypever确定为指示基于dct-2的整数变换的第一变换。
[0772]
这里,y可以是正整数,并且可以是例如16、32或64。
[0773]
当块或子块的宽度或高度大于或等于x或者小于或等于y时,可将水平变换类型trtypehor或垂直变换类型trtypever确定为指示基于dst-7的整数变换的第二变换。
[0774]
此时,第二变换可表示trtypehor或trtypever具有第二值。
[0775]
这里,第二值可以是1。这里,x可以是正整数,并且可以是例如2或4。这里,y可以是正整数,并且可以是例如16、32或64。
[0776]
此外,当块或子块的宽度或高度为z时,可不执行水平变换或垂直变换。
[0777]
这里,z可以是包括0的正整数,并且可以是例如1。
[0778]
这里,可使用相同的水平变换类型或相同的垂直变换类型来对从块分区出的所有子块进行变换。
[0779]
此外,可确定针对块或子块的水平变换或垂直变换中的至少一个的一维变换类型,而不管帧内预测模式如何。也就是说,可确定针对块或子块的水平变换或垂直变换中的至少一个的变换类型,而不管帧内预测模式如何。可从至少两种变换类型选择所述变换类型。
[0780]
当当前块处于子块分区模式时,可基于当前块的宽度或高度来确定水平变换或垂直变换中的至少一个的变换类型,而不管帧内预测模式如何。这里,子块分区模式可以是第一子块分区模式(isp模式)或第二子块分区模式(sbt模式)。
[0781]
如在表4的示例中,可确定针对块或子块的水平变换类型trtypehor或垂直变换类型trtypever中的至少一个。
[0782]
【表4】
[0783]
trtypehortrtypever(w>=4&&w<=16)?1:0(h>=4&&h<=16)?1:0
[0784]
例如,当当前块处于子块分区模式时,可基于表4确定针对水平变换或垂直变换中的至少一个的变换类型,而不管帧内预测模式如何。
[0785]
此外,为了降低编码器/解码器的实现复杂度,可根据块的宽度和块的高度在相同标准上确定针对水平变换和垂直变换的一维变换类型。
[0786]
用于确定水平变换和垂直变换的条件可以是相同的,而不管块的宽度或块的高度如何。也就是说,用于确定水平变换的条件和用于确定垂直变换的条件可以是相同的。
[0787]
以上条件可表示当前块的宽度或高度与特定正整数之间的比较。
[0788]
这里,由于可共享针对用于确定水平变换和垂直变换的条件的逻辑,因此可以降低编码器/解码器的实现复杂度。
[0789]
此外,如表4的示例中所示,可在不执行当前块的宽度与高度之间的比较的情况下确定针对子块中所使用的水平变换或垂直变换中的至少一个的变换类型,以便降低计算复杂度。
[0790]
与下面的表5和表6相比,在表4中,由于可在不执行当前块的宽度与高度之间的比较的情况下确定针对子块中所使用的水平变换或垂直变换中的至少一个的变换类型,因此可以降低计算复杂度。
[0791]
可对作为多变换选择索引的mts_idx进行熵编码/熵解码,以确定块或子块的二维变换组合。可使用在编码器和解码器中预先确定的二维变换组合表来确定水平变换类型trtypehor和垂直变换类型trtypever。此时,二维变换组合可表示二维变换组合表中的每个项。
[0792]
当块未被分区为子块时,可对作为多变换选择索引的mts_idx进行熵编码/熵解码。
[0793]
可基于lfnst_idx(即,次级变换执行信息)来确定多变换选择索引mts_idx。换言之,可基于lfnst_idx(即,次级变换执行信息)对多变换选择索引mts_idx进行熵编码/熵解码。
[0794]
当在比特流中不存在多变换选择索引mts_idx时,多变换选择索引mts_idx可被推断为第一值(例如,0)。换言之,当多变换选择索引mts_idx未被熵编码/熵解码时,多变换选择索引mts_idx可被推断为第一值(例如,0)。
[0795]
根据实施例,可基于帧内预测显式多变换选择启用信息(sps_explicit_mts_intra_enabled_flag)和帧间预测显式多变换选择启用信息(sps_explicit_mts_inter_enabled_flag)中的至少一个来确定多变换选择索引mts_idx是否被用信号发送。例如,当当前块被帧内预测且帧内预测显式多变换选择启用信息指示多变换针对帧内预测块而被启用时,可用信号发送针对当前块的多变换选择索引。反之,当帧内预测显式多变换选择启用信息指示多变换针对帧内预测块而未被启用时,可不用信号发送针对当前块的多变换选择索引。
[0796]
此外,当当前块被帧间预测且帧间预测显式多变换选择启用信息指示多变换针对帧间预测块而被启用时,可用信号发送针对当前块的多变换选择索引。反之,当帧间预测显式多变换选择启用信息指示多变换针对帧间预测块而未被启用时,可不用信号发送针对当前块的多变换选择索引。
[0797]
此外,当根据ibc模式预测当前块时,可根据帧内预测显式多变换选择启用信息和/或帧间预测显式多变换选择启用信息来确定多变换选择索引是否被用信号发送。此外,当根据ibc模式预测当前块时,不管帧内预测显式多变换选择启用信息和帧间预测显式多变换选择启用信息如何,都可不用信号发送针对当前块的多变换选择索引。这里,当根据ibc模式预测当前块时,可不针对当前块执行次级变换/逆变换。此外,当当前块不是ibc模式和/或帧间预测模式而是帧内预测模式时,可针对当前块执行次级变换/逆变换。
[0798]
如在表5的示例中,可确定针对块或子块的水平变换类型trtypehor或垂直变换类型trtypever中的至少一个。根据表5,可预先确定二维变换组合表,并且可确定由多变换选择索引指示的二维变换组合。
[0799]
【表5】
[0800]
mts_idx[x0][y0]01234trtypehor01212trtypever01122
[0801]
以下示出确定针对块或子块的一维变换类型、二维变换组合或是否使用变换中的至少一个的实施例。这里,可确定针对块或子块的水平变换或垂直变换中的至少一个的一维变换类型。
[0802]
当块或子块的宽度w或高度h小于x时,可将水平变换类型trtypehor或垂直变换类型trtypever确定为指示基于dct-2的整数变换的第一变换。
[0803]
此时,第一变换可表示trtypehor或trtypever具有第一值。这里,第一值可以是0。
[0804]
这里,x可以是正整数,并且可以是例如2或4。
[0805]
当块或子块的宽度或高度大于y时,可将水平变换类型或垂直变换类型确定为指示基于dct-2的整数变换的第一变换。
[0806]
这里,y可以是正整数,并且可以是例如16、32或64。
[0807]
当块或子块的宽度或高度大于或等于x或者小于或等于y时,可根据以下条件确定水平变换类型或垂直变换类型。
[0808]
当分区方向信息具有第一值(0)且子块位置信息具有第一值(0)时,可将水平变换类型确定为指示基于dct-8的整数变换的第三变换,并且可将垂直变换类型确定为指示基于dst-7的整数变换的第二变换。
[0809]
当分区方向信息具有第一值(0)且子块位置信息具有第二值(1)时,可将水平变换类型确定为指示基于dst-7的整数变换的第二变换,并且可将垂直变换类型确定为指示基于dst-7的整数变换的第二变换。
[0810]
当分区方向信息具有第二值(1)且子块位置信息具有第一值(0)时,可将水平变换类型确定为指示基于dst-7的整数变换的第二变换,并且可将垂直变换类型确定为指示基于dct-8的整数变换的第三变换。
[0811]
当分区方向信息具有第二值(1)且子块位置信息具有第二值(1)时,可将水平变换类型确定为指示基于dst-7的整数变换的第二变换,并且可将垂直变换类型确定为指示基于dst-7的整数变换的第二变换。
[0812]
此时,第二变换可表示trtypehor或trtypever具有第二值。这里,第二值可以是1。
[0813]
此时,第三变换可表示trtypehor或trtypever具有第三值。这里,第三值可以是2。
[0814]
这里,x可以是正整数,并且可以是例如2或4。这里,y可以是正整数,并且可以是例如16、32或64。
[0815]
此外,当块或子块的宽度或高度为z时,可不执行水平变换或垂直变换。
[0816]
这里,z可以是包括0的正整数,并且可以是例如1。
[0817]
如在表6的示例中,可确定针对块或子块的水平变换类型trtypehor或垂直变换类型trtypever中的至少一个。
[0818]
【表6】
[0819]
分区方向信息子块位置信息trtypehortrtypever0021011110121111
[0820]
当块或子块的宽度w或高度h小于x时,可将水平变换类型trtypehor或垂直变换类型trtypever确定为指示基于dct-2的整数变换的第一变换。
[0821]
此时,第一变换可表示trtypehor或trtypever具有第一值。这里,第一值可以是0。
[0822]
这里,x可以是正整数,并且可以是例如2、4或8。
[0823]
当块或子块的宽度或高度大于y时,可将水平变换类型或垂直变换类型确定为指示基于dct-2的整数变换的第一变换。
[0824]
这里,y可以是正整数,并且可以是例如8、16、32或64。
[0825]
当块或子块的宽度或高度大于或等于x或者小于或等于y时,可将水平变换类型或垂直变换类型确定为指示基于dst-7的整数变换的第二变换。
[0826]
此时,第二变换可表示trtypehor或trtypever具有第二值。这里,第二值可以是1。
[0827]
这里,x可以是正整数,并且可以是例如2、4或8。这里,y可以是正整数,并且可以是例如8、16、32或64。
[0828]
此外,当块或子块的宽度或高度为z时,可不执行水平变换或垂直变换。
[0829]
这里,z可以是包括0的正整数,并且可以是例如1。
[0830]
这里,可使用相同的水平变换类型或相同的垂直变换类型来对从块分区出的所有子块进行变换。此外,可确定针对块或子块的水平变换或垂直变换中的至少一个的一维变换类型,而不管帧内预测模式如何。
[0831]
如在表7的示例中,可确定针对块或子块的水平变换类型trtypehor或垂直变换类型trtypever中的至少一个。
[0832]
【表7】
[0833]
trtypehortrtypever(w>=4&&w<=8)?1:0(h>=4&&h<=8)?1:0
[0834]
以下示出确定针对块或子块的一维变换类型、二维变换组合或是否使用变换中的至少一个的实施例。这里,可确定针对块或子块的水平变换或垂直变换中的至少一个的一维变换类型。
[0835]
当块或子块的宽度w或高度h小于x时,可将水平变换类型trtypehor或垂直变换类型trtypever确定为指示基于dct-2的整数变换的第一变换。
[0836]
此时,第一变换可表示trtypehor或trtypever具有第一值。这里,第一值可以是0。
[0837]
这里,x可以是正整数,并且可以是例如2、4或8。
[0838]
当块或子块的宽度或高度大于y时,可将水平变换类型或垂直变换类型确定为指示基于dct-2的整数变换的第一变换。
[0839]
这里,y可以是正整数,并且可以是例如8、16、32或64。
[0840]
当块或子块的宽度或高度大于或等于x或者小于或等于y时,可将水平变换类型或垂直变换类型确定为指示基于dst-7的整数变换的第二变换。
[0841]
此时,第二变换可表示trtypehor或trtypever具有第二值。这里,第二值可以是1。
[0842]
这里,x可以是正整数,并且可以是例如2、4或8。这里,y可以是正整数,并且可以是例如8、16、32或64。
[0843]
此外,当块或子块的宽度或高度为z时,可不执行水平变换或垂直变换。
[0844]
这里,z可以是包括0的正整数,并且可以是例如1。
[0845]
这里,可使用相同的水平变换类型或相同的垂直变换类型来对从块分区出的所有子块进行变换。此外,可确定针对块或子块的水平变换或垂直变换中的至少一个的一维变换类型,而不管帧内预测模式如何。
[0846]
如在表8的示例中,可确定针对块或子块的水平变换类型trtypehor或垂直变换类型trtypever中的至少一个。
[0847]
【表8】
[0848]
trtypehortrtypever(w>=4&&w<=32)?1:0(h>=4&&h<=32)?1:0
[0849]
以下示出确定针对块或子块的一维变换类型、二维变换组合或是否使用变换中的至少一个的实施例。这里,可确定针对块或子块的水平变换或垂直变换中的至少一个的一
维变换类型。
[0850]
当块或子块的预测模式是帧内预测模式或帧内块复制预测模式时,可基于实施例中的至少一个实施例确定针对块或子块的水平变换或垂直变换中的至少一个的一维变换类型。
[0851]
可执行针对块或子块的各种变换/逆变换类型确定方法,并且可在变换之后或逆变换之前执行以下扫描方法中的至少一种扫描方法。
[0852]
可针对在编码器/解码器中经过至少一次变换或量化的量化的系数等级或量化的等级执行以下扫描方法中的至少一种扫描方法。
[0853]
这里,量化的系数等级可表示通过针对残差块执行变换和量化而生成的结果。此外,量化的等级可表示通过针对残差块执行量化而生成的结果。
[0854]
此外,量化的系数等级和量化的等级可具有相同的含义,并且可与变换系数具有相同的含义。也就是说,量化的系数等级、量化的等级和变换系数可表示当残差块被熵编码/熵解码时的对象。
[0855]
如图14的示例中所示,可使用对角线扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用对角线扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0856]
从左下侧到右上侧的扫描方向可被称为右上对角线扫描。此外,从右上侧到左下侧的扫描方向可被称为左下对角线扫描。
[0857]
图14的示例示出对角线扫描中的右上扫描。
[0858]
如在图15的示例中,可使用水平扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用水平扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0859]
此时,水平扫描可以是优先扫描与第一行对应的系数的方法。
[0860]
如在图16的示例中,可使用垂直扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用垂直扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0861]
此时,垂直扫描可以是优先扫描与第一列对应的系数的方法。
[0862]
如在图17的示例中,可使用基于块的对角线扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用基于块的对角线扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0863]
此时,块尺寸可以是m
×
n。这里,m或n中的至少一个可以是正整数并且可以是4。此外,块尺寸可等于在变换系数编码/解码中使用的系数组的尺寸。
[0864]
图17的示例示出基于块的对角线扫描中的基于块的右上扫描。
[0865]
此时,块可表示从具有特定尺寸的块分区出的子块。如果使用基于块的扫描,则甚至可使用与块中的扫描方法相同的扫描方法来扫描具有特定尺寸的块中的子块。
[0866]
如在图17的示例中,当使用基于块的对角线扫描时,在尺寸为8
×
8的块被分区为尺寸皆为4
×
4的子块之后,可使用对角线扫描来扫描尺寸皆为4
×
4的子块,并且可使用对角线扫描来扫描子块中的系数。
[0867]
如在图18的示例中,可使用基于块的水平扫描将二维残差块中的量化的系数等级
排列为一维系数等级阵列。此外,可使用基于块的水平扫描将一维经重建的系数等级阵列排列为二维残差块中的量化的系数等级。此时,块尺寸可以是4
×
4,并且可优先扫描与第一行对应的块。
[0868]
此时,块尺寸可以是m
×
n。这里,m或n中的至少一个可以是正整数并且可以是4。此外,块尺寸可等于在变换系数编码/解码中使用的系数组的尺寸。
[0869]
此时,基于块的水平扫描可以是优先扫描与第一行对应的系数的方法。
[0870]
如在图19的示例中,可使用基于块的垂直扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用基于块的垂直扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0871]
此时,块尺寸可以是m
×
n。这里,m或n中的至少一个可以是正整数并且可以是4。此外,块尺寸可等于在变换系数编码/解码中使用的系数组的尺寸。
[0872]
此时,基于块的垂直扫描可以是优先扫描与第一列对应的系数的方法。
[0873]
如在图14至图19的示例中,与(a)对应的扫描可被用于针对j
×
k的块的尺寸为j
×
k的残差块,并且与(b)对应的扫描可被用于针对尺寸为8
×
8/16
×
16/32
×
32/64
×
64中的至少一个的块的尺寸为m
×
n或更大的残差块或者被用于尺寸为m
×
n的残差块。j、k、m和n可以是正整数。此外,j和k可分别小于m和n。此外,j
×
k可以是4
×
4,并且m
×
n可以是8
×
8。
[0874]
如在图14至图19的示例中,尽管仅示出了与8
×
8的最大尺寸对应的扫描方法,但是与8
×
8的尺寸对应的扫描方法适用于与大于8
×
8的尺寸对应的扫描方法,并且以上扫描不仅适用于具有正方形形式的残差块,而且适用于具有非正方形形式的残差块。
[0875]
为了在编码器中排列具有正方形/非正方形形式的二维残差块中的量化的系数等级,可对残差块中的量化的系数等级进行扫描。此外,为了在解码器中将一维重建的系数等级阵列排列为具有正方形/非正方形形式的二维残差块中的量化的系数等级,可对系数等级进行扫描。
[0876]
如在图20的示例中,可对量化的系数等级中的至少一个量化的系数等级进行扫描。
[0877]
例如,如在图20的(a)的示例中,可使用对角线扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用对角线扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0878]
此时,如在图20的(a)的示例中,对角线扫描方向可以是从左下侧到右上侧或从右上侧到左下侧。
[0879]
从左下侧到右上侧的扫描方向可被称为右上对角线扫描。此外,从右上侧到左下侧的扫描方向可被称为左下对角线扫描。
[0880]
图20的(a)的示例示出了对角线扫描中的右上扫描。
[0881]
作为另一示例,如在图20的(b)的示例中,可使用垂直扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用垂直扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0882]
此时,垂直扫描可以是优先扫描与第一列对应的系数的方法。
[0883]
作为另一示例,如在图20的(c)的示例中,可使用水平扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可使用水平扫描将一维重建的系数等级阵列
排列为二维残差块中的量化的系数等级。
[0884]
此时,水平扫描可以是优先扫描与第一行对应的系数的方法。
[0885]
作为另一示例,如在图20的(d)的示例中,可使用基于块的对角线扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,可以使用基于块的对角线扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0886]
此时,块尺寸可以是m
×
n。这里,m或n中的至少一个可以是正整数并且可以是4。此外,块尺寸可等于在变换系数编码/解码中使用的系数组的尺寸。
[0887]
如在图20的(d)的示例中,对角线扫描方向可从左下侧到右上侧。此外,对角线扫描方向可从右上侧到左下侧。
[0888]
图20的(d)的示例示出了针对整个8
×
4的块执行基于块的对角线扫描中的基于块的右上扫描的示例。
[0889]
作为另一示例,如在图20的(e)的示例中,针对整个8
×
4的块,可使用基于块的垂直扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,针对整个8
×
4块,可使用基于块的垂直扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0890]
此时,块尺寸可以是m
×
n。这里,m或n中的至少一个可以是正整数并且可以是4。此外,块尺寸可等于在变换系数编码/解码中使用的系数组的尺寸。
[0891]
此时,基于块的垂直扫描可以是优先扫描与第一列对应的系数的方法。
[0892]
作为另一示例,如在图20的(f)的示例中,针对整个4
×
8的块,可使用基于块的水平扫描将二维残差块中的量化的系数等级排列为一维系数等级阵列。此外,针对整个4
×
8的块,可使用基于块的水平扫描将一维重建的系数等级阵列排列为二维残差块中的量化的系数等级。
[0893]
此时,块尺寸可以是m
×
n。这里,m或n中的至少一个可以是正整数并且可以是4。此外,块尺寸可等于在变换系数编码/解码中使用的系数组的尺寸。
[0894]
此时,基于块的水平扫描可以是优先扫描与第一行对应的系数的方法。
[0895]
如在以上示例中,当残差块具有非正方形形状时,可按非正方形形状扫描残差块,或可将残差块分区为m
×
n的尺寸(为特定正方形块单元),并且可针对每个特定正方形块单元且在特定正方形块单元内执行扫描。这里,m和n可以是正整数,并且可相同或不同。
[0896]
图21示出具有各种方向的方向帧内预测模式(不包括0和1的-14至80)、作为非方向帧内预测模式的平面(0)和dc(1)的帧内预测模式值的示例。
[0897]
表9示出与帧内预测模式对应的帧内预测模式值。
[0898]
【表9】
[0899]
帧内预测模式值帧内预测模式0intra planar1intra dc2..66intra angular2..intra angular6681..83intra lt cclm,intra l cclm,intra t cclm
[0900]
图22至图26是示出根据本发明的实施例的使用变换的编码处理或解码处理的示例的示图。
[0901]
参照图22,从参数集中的至少一个用信号发送的多变换选择启用信息sps_mts_enabled_flag可指示多变换选择被启用,并且当满足以下条件中的至少一个条件时,可将隐式多变换选择信息implicitmtsenabled设置为指示隐式多变换选择的第一值(例如,1)。
[0902]-当前块处于isp模式(intrasubpartitionssplittype不等于isp_no_split)
[0903]-当前块处于sbt模式,并且当前块的宽度和高度中的较大值小于或等于32(cu_sbt_flag等于1,并且max(ntbw,ntbh)小于或等于32)
[0904]-帧内预测显式多变换选择启用信息和帧间预测显式多变换选择启用信息两者指示显式多变换选择未被启用,并且当前块的预测模式是帧内预测模式(sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag都等于0,并且cupredmode[xtby][ytby]等于mode_intra)
[0905]
在推导出的隐式多变换选择信息指示隐式多变换选择(implicitmtsenabled=1)的情况下,可如下选择水平变换类型trtypehor和垂直变换类型trtypever。
[0906]-在isp模式的情况下,基于当前块的宽度和高度(例如,上表4)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0907]-在帧内预测显式多变换选择启用信息和帧间预测显式多变换选择启用信息两者指示显式多变换选择未被启用(sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag都等于0)的情况下,基于当前块的宽度和高度(例如,上表4)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0908]-在sbt模式的情况下,基于分区方向信息和子块位置信息(例如,图26)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0909]
反之,当推导出的隐式多变换选择信息不指示隐式多变换选择(implicitmtsenabled=0)时,作为水平变换类型trtypehor和垂直变换类型trtypever,基于用信号发送的多变换选择信息tu_mts_idx和图25的表来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0910]
另外,当当前块是色度分量(cidx大于0)时,水平变换类型trtypehor和垂直变换类型trtypever可被选为指示基于dct-2的整数变换的第一变换,而不管推导出的隐式多变换选择信息如何。
[0911]
参照图23,从参数集中的至少一个用信号发送的多变换选择启用信息sps_mts_enabled_flag可指示多变换选择被启用,并且当满足以下条件中的至少一个条件时,可将隐式多变换选择信息implicitmtsenabled设置为指示隐式多变换选择的第一值(例如,1)。
[0912]-当前块处于isp模式(intrasubpartitionssplittype不等于isp_no_split)
[0913]-当前块处于sbt模式,并且当前块的宽度和高度中的较大值小于或等于32(cu_sbt_flag等于1,并且max(ntbw,ntbh)小于或等于32)
[0914]-帧内预测显式多变换选择启用信息和帧间预测显式多变换选择启用信息两者指示显式多变换选择未被启用,并且当前块的预测模式是帧内预测模式(sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag都等于0,并且cupredmode[xtby][ytby]等于mode_intra)
[0915]
在推导出的隐式多变换选择信息指示隐式多变换选择(implicitmtsenabled=1)的情况下,可如下选择水平变换类型trtypehor和垂直变换类型trtypever。
[0916]
在isp模式的情况下,基于当前块的宽度和高度(例如,上表4)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0917]
在帧内预测显式多变换选择启用信息和帧间预测显式多变换选择启用信息两者指示显式多变换选择未被启用并且当前块的预测模式指示帧内预测模式(sps_explicit_mts_intra_enabled_flag和sps_explicit_mts_inter_enabled_flag都等于0,并且cupredmode[xtby][ytby]等于mode_intra)的情况下,基于当前块的宽度和高度(例如,上表4)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0918]
在sbt模式的情况下,基于分区方向信息和子块位置信息(例如,图26)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0919]
反之,当推导出的隐式多变换选择信息不指示隐式多变换选择(implicitmtsenabled=0)时,作为水平变换类型trtypehor和垂直变换类型trtypever,基于用信号发送的多变换选择信息tu_mts_idx和图25的表来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0920]
另外,当当前块是色度分量(cidx大于0)时,水平变换类型trtypehor和垂直变换类型trtypever可被选为指示基于dct-2的整数变换的第一变换,而不管推导出的隐式多变换选择信息如何。
[0921]
根据实施例,与图22和图23不同,当帧内预测显式多变换选择启用信息指示显式多变换选择未被启用并且当前块的预测模式指示帧内预测模式(sps_explicit_mts_intra_enabled_flag等于0并且cupredmode[xtby][ytby]等于mode_intra)时,隐式多变换选择信息(implictmtsenabled)可被设置为指示隐式多变换选择的第二值(例如1)。
[0922]
根据实施例,当帧内预测显式多变换选择启用信息指示显式多变换选择未被启用,变换矩阵索引指示次级变换/逆变换未被应用于当前块,并且基于矩阵的帧内预测模式使用信息指示基于矩阵的帧内预测模式未被应用于当前块(sps_explicit_mts_intra_enabled_flag等于0,lfnst_idx[x0][y0]等于0,并且intra_mip_flag[x0][y0]等于0)时,隐式多变换选择信息(implictmtsenabled)可被设置为指示隐式多变换选择的第二值(例如1)。
[0923]
根据实施例,当帧内预测显式多变换选择启用信息指示显式多变换选择未被启用,当前块的预测模式指示帧内预测模式,变换矩阵索引指示次级变换/逆变换未被应用于当前块,并且基于矩阵的帧内预测模式使用信息指示基于矩阵的帧内预测模式未被应用于当前块(sps_explicit_mts_intra_enabled_flag等于0,cupredmode[0][xtby][ytby]等于mode_intra,lfnst_idx[x0][y0]等于0,并且intra_mip_flag[x0][y0]等于0)时,隐式多变换选择信息(implictmtsenabled)可被设置为指示隐式多变换选择的第二值(例如1)。
[0924]
基于矩阵的帧内预测模式使用信息可被熵编码/熵解码。
[0925]
根据另一实施例,从参数集中的至少一个用信号发送的多变换选择启用信息sps_mts_enabled_flag可指示多变换选择被启用,并且当满足以下条件中的至少一个条件时,隐式多变换选择信息implicitmtsenabled可被设置为指示隐式多变换选择的第一值(例如,1)。
[0926]-当前块处于isp模式
[0927]-当前块处于sbt模式,并且当前块的宽度和高度中的较大值小于或等于32
[0928]-帧内预测显式多变换选择启用信息指示显式多变换选择未被启用,当前块的预测模式是帧内预测模式,次级逆变换针对当前块未被执行,并且当前块不处于基于矩阵的帧内预测模式。
[0929]
当推导出的隐式多变换选择信息指示隐式多变换选择(implicitmtsenabled=1)时,可如下选择水平变换类型trtypehor和垂直变换类型trtypever。在以上实施例中,与图22和图23的实施例不同,由于通过仅确定sbt模式来选择水平变换类型和垂直变换类型,因此可降低计算复杂度。
[0930]-在sbt模式的情况下,基于分区方向信息和子块位置信息(例如,图26)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0931]-在非sbt模式的情况下(在isp模式的情况下),基于当前块的宽度和高度(例如,上表4)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0932]-在非sbt模式的情况下(帧内预测显式多变换选择启用信息指示显式多变换选择未被启用,当前块的预测模式是帧内预测模式,次级逆变换针对当前块未被执行,并且当前块不处于基于矩阵的帧内预测模式),基于当前块的宽度和高度(例如,上表4)来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0933]
这里,非sbt模式的情况(isp模式的情况,或者帧内预测显式多变换选择启用信息指示显式多变换选择未被启用、当前块的预测模式是帧内预测模式、次级逆变换针对当前块未被执行、并且当前块不处于基于矩阵的帧内预测模式的情况)可被划分为两种情况,并且在这两种情况下,可通过相同的方法来确定水平变换类型和垂直变换类型。
[0934]
也就是说,在两种情况(即,1)isp模式的情况和2)帧内预测显式多变换选择启用信息指示显式多变换选择未被启用、当前块的预测模式是帧内预测模式、次级逆变换针对当前块未被执行、并且当前块不处于基于矩阵的帧内预测模式的情况)下,可基于当前块的宽度和高度(例如,上表4)选择水平变换类型trtypehor和垂直变换类型trtypever。
[0935]
反之,当推导出的隐式多变换选择信息不指示隐式多变换选择(implicitmtsenabled=0)时,基于用信号发送的多变换选择信息和图25的表来选择水平变换类型trtypehor和垂直变换类型trtypever。
[0936]
另外,当当前块是色度分量时,水平变换类型trtypehor和垂直变换类型trtypever可被选为指示基于dct-2的整数变换的第一变换,而不管推导出的隐式多变换选择信息如何。此外,当当前块处于isp模式并且次级逆变换针对当前块被执行时,水平变换类型trtypehor和垂直变换类型trtypever可被选为指示基于dct-2的整数变换的第一变换,而不管推导出的隐式多变换选择信息如何。
[0937]
此外,当多变换选择启用信息sps_mts_enabled_flag指示多变换选择未被启用时,水平变换类型trtypehor和垂直变换类型trtypever可被选为指示基于dct-2的整数变换的第一变换。
[0938]
此外,当多变换选择启用信息sps_mts_enabled_flag指示多变换选择未被启用并且隐式多变换选择信息不指示隐式多变换选择(implicitmtsenabled=0)时,水平变换类型trtypehor和垂直变换类型trtypever可被选为指示基于dct-2的整数变换的第一变换。
[0939]
在以上示例中,当多变换选择启用信息sps_mts_enabled_flag指示多变换选择被启用时,多变换选择启用信息可被设置为第一值(例如,1)。
[0940]
在以上示例中,当隐式多变换选择信息implicitmtsenabled指示隐式多变换选择时,隐式多变换选择信息可被设置为第一值(例如,1)。此外,当隐式多变换选择信息implicitmtsenabled不指示隐式多变换选择时,隐式多变换选择信息可被设置为第二值(例如,0)。
[0941]
在以上示例中,当帧内预测显式多变换选择启用信息指示显式多变换选择被启用时,帧内预测显式多变换选择启用信息可被设置为第一值(例如,1)。此外,当帧内预测显式多变换选择启用信息指示显式多变换选择未被启用时,帧内预测显式多变换选择启用信息可被设置为第二值(例如,0)。
[0942]
在以上示例中,当帧间预测显式多变换选择启用信息指示显式多变换选择被启用时,帧间预测显式多变换选择启用信息可被设置为第一值(例如,1)。此外,当帧间预测显式多变换选择启用信息指示显式多变换选择未被启用时,帧间预测显式多变换选择启用信息可被设置为第二值(例如,0)。
[0943]
例如,当当前块处于isp(帧内子块分区)模式时,可基于当前块的宽度或高度中的至少一个来进行确定,而不管当前块的帧内预测模式如何。具体地,如在上表4的示例中,可确定水平变换类型和垂直变换类型。
[0944]
例如,当当前块处于isp(帧内子块分区)模式时,隐式多变换选择信息可被设置为指示隐式多变换选择的值。
[0945]
此外,当帧内预测显式多变换选择启用信息指示显式多变换选择未被启用,当前块的预测模式是帧内预测模式,次级逆变换针对当前块未被执行,并且当前块不处于基于矩阵的帧内预测模式时,隐式多变换选择信息可被设置为指示隐式多变换选择的值。
[0946]
这里,当隐式多变换选择信息指示隐式多变换选择时,可基于当前块是否处于sbt(子块变换)模式来确定水平变换类型和垂直变换类型。
[0947]
具体地,当隐式多变换选择信息指示隐式多变换选择并且当前块不处于sbt(子块变换)模式时,可确定水平变换类型和垂直变换类型,而不管当前块的帧内预测模式如何。具体地,如在上表4的示例中,可确定水平变换类型和垂直变换类型。
[0948]
当当前块处于isp(帧内子块分区)模式并且次级逆变换被执行时,水平变换类型和垂直变换类型可被确定为指示基于dct-2的整数变换的第一变换,而不管隐式多变换选择信息如何。
[0949]
当当前块为色度分量时,可将水平变换类型和垂直变换类型确定为指示基于dct-2的整数变换的第一变换,而不管隐式多变换选择信息如何。
[0950]
在编码器中,为了提高图像的主体/客观质量,可通过针对残差块执行初级变换来生成初级变换系数,可通过针对初级变换系数执行次级变换来生成次级变换系数,可通过对次级变换系数进行量化来生成量化的系数等级,并且可对量化的系数等级进行熵编码。
[0951]
在解码器中,可对量化的系数等级进行熵解码,可通过对量化的系数等级进行反量化来生成次级变换系数,可通过对次级变换系数进行次级逆变换来生成初级变换系数,并且可通过对初级变换系数进行初级逆变换来生成重建残差块。
[0952]
如图27中所示,可在编码器中在初级变换与量化之间执行次级变换。此外,可在解码器中在反量化与初级逆变换之间执行次级逆变换。这里,次级变换可以是缩减的次级变换或低频不可分离变换(lfnst)。
[0953]
指示哪个变换被用作初级/次级变换和逆变换的变换矩阵集信息(索引)和变换矩阵索引中的至少一个可被显式地熵编码/熵解码。变换矩阵集信息和变换矩阵索引可被包括在次级变换索引信息中。可选地,变换矩阵索引可表示次级变换索引信息。
[0954]
此外,可不对指示哪个变换被用作初级/次级变换和逆变换的变换矩阵集信息和/或变换矩阵索引进行熵编码/熵解码。而是,可基于至少一个编码参数隐式地确定变换矩阵集信息和/或变换矩阵索引。
[0955]
下面将描述用于执行初级/次级变换和逆变换中的至少一个的图像编码/解码方法和设备以及用于存储比特流的记录介质的实施例。
[0956]
在本说明书中,除非另有陈述,否则矩阵a
×
b可表示具有a列b行的矩阵。此外,在特殊情况下,它可表示具有b列a行的矩阵。
[0957]
可对后续输入样点执行不可分离变换,从而生成输出样点。
[0958]
在编码器中,输入样点可以是初级变换系数。在解码器中,输入样点可以是反量化的次级变换系数。
[0959]
作为4
×
4输入样点的示例,输入样点可由二维矩阵形式表示,如下面的等式5中所示。
[0960]
【等式5】
[0961][0962]
二维矩阵形式的4
×
4输入样点可由一维矢量形式表示,如下面的等式6中所示。
[0963]
【等式6】
[0964][0965]
可通过使用光栅扫描、水平扫描、垂直扫描、对角线扫描(右上对角线扫描或左下对角线扫描)、基于块的对角线扫描、基于块的水平扫描和基于块的垂直扫描中的至少一个,通过一维矢量形式表示二维矩阵形式的4
×
4输入样点。
[0966]
如下面的等式7中所述,可执行不可分离变换。这里,在编码器中可表示经过次级变换的系数矢量。此外,在解码器中,它可表示一维变换系数矢量。t可表示被用于4
×
4输入样点的具有16
×
16尺寸的次级变换矩阵的示例。
[0967]
【等式7】
[0968][0969]
可通过使用光栅扫描、水平扫描、垂直扫描、对角线扫描(右上对角线扫描或左下对角线扫描)、基于块的对角线扫描、基于块的水平扫描和基于块的垂直扫描中的至少一个,利用4
×
4输出样点来配置16
×
1形式的
[0970]
当执行不可分离变换时,可通过矩阵乘法计算次级变换/逆变换。
[0971]
为了降低计算复杂度和存储变换矩阵所需的存储器,可减小变换矩阵的维度。可在变换/逆变换处理中执行缩减的次级变换/逆变换。
[0972]
缩减的次级变换可以是将n维矢量映射到r维矢量的处理。这里,用于次级变换的n维矢量可表示输入样点。此外,r维矢量可表示输出样点。这里,n和r可以是正整数,并且r在缩减的次级变换中可小于n。
[0973]
n/r可表示缩减因子。在4
×
4尺寸的缩减的次级变换的情况下,缩减因子可以是1、2或4。此外,在8
×
8尺寸的缩减的次级变换的情况下,缩减因子可以是2、3、4、6或8。
[0974]
在缩减的次级变换中,可使用r
×
n变换矩阵而不是n
×
n变换矩阵,如图28中所示。此外,在缩减的次级逆变换中,可使用n
×
r变换矩阵而不是n
×
n变换矩阵。这里,r
×
n变换矩阵可表示具有n列r行的矩阵。这里,此外,n
×
r变换矩阵可表示具有r列n行的矩阵。
[0975]
这里,变换矩阵的r行可表示具有n维的r基矢量。作为缩减的次级变换的逆变换的缩减的次级逆变换可以是缩减的次级变换的转置形式。
[0976]
如图29中所示,可在编码器/解码器中执行次级变换/逆变换。
[0977]
例如,具有特定尺寸的变换矩阵可被用于缩减的次级变换/逆变换。
[0978]
在具有d
×
d尺寸的缩减的次级变换的情况下,可使用具有c
×
a或c
×
b尺寸的变换矩阵。
[0979]
当使用c
×
a变换矩阵时,包括在块的左上方d
×
d区域中的初级变换系数中的至少一个初级变换系数可被用作输入样点。
[0980]
此外,当使用c
×
a变换矩阵时,输出样点可被包括在块的左上方d
×
d区域内的左上方e
×
e区域中。
[0981]
在具有d
×
d尺寸的缩减的次级变换的情况下,可将具有a
×
a尺寸的变换矩阵缩减到c
×
b尺寸,使得具有c
×
b尺寸的变换矩阵可被使用。
[0982]
当使用c
×
b变换矩阵时,块的左上方d
×
d区域内的除了右下方e
×
e区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数可被用作输入样点。
[0983]
此外,当使用c
×
b变换矩阵时,输出样点可被包括在块的左上方d
×
d区域内的左上方e
×
e区域中。
[0984]
在具有d
×
d尺寸的缩减的次级逆变换的情况下,具有a
×
c或b
×
c尺寸的变换矩阵可被使用。
[0985]
当使用a
×
c变换矩阵时,块的左上方d
×
d区域内的左上方e
×
e区域中所包括的反量化的次级变换系数中的至少一个反量化的次级变换系数可被用作输入样点。
[0986]
此外,当使用a
×
c变换矩阵时,输出样点可被包括在块的左上方d
×
d区域中。
[0987]
在具有d
×
d尺寸的缩减的次级逆变换的情况下,具有a
×
a尺寸的变换矩阵可被缩减到b
×
c尺寸,使得具有b
×
c尺寸的变换矩阵可被使用。
[0988]
当使用b
×
c变换矩阵时,块的左上方d
×
d区域内的左上方e
×
e区域中所包括的反量化的次级变换系数中的至少一个反量化的次级变换系数可被用作输入样点。
[0989]
此外,当使用b
×
c变换矩阵时,输出样点可被包括在块的左上方d
×
d区域内的除了右下方e
×
e区域之外的其余区域中。
[0990]
a、b、c、d和e可以是正整数。例如,a、b、c、d和e可分别是64、48、16、8和4。
[0991]
这里,c可等于或小于a或b。
[0992]
此外,b可等于或小于值d*d。
[0993]
此外,c可以是值e*e。
[0994]
此外,e可等于或小于d。
[0995]
作为另一示例,具有特定尺寸的变换矩阵可被用于缩减的次级变换/逆变换。
[0996]
在具有d
×
d尺寸的缩减的次级变换的情况下,可使用具有c
×
a或c
×
b尺寸的变换矩阵。
[0997]
当使用c
×
a变换矩阵时,块的左上方d
×
d区域中所包括的初级变换系数中的至少一个初级变换系数可被用作输入样点。
[0998]
此外,当使用c
×
a变换矩阵时,输出样点可被包括在块的左上方d
×
d区域内的左上方e
×
e区域中。
[0999]
在具有d
×
d尺寸的缩减的次级变换的情况下,可将具有a
×
a尺寸的变换矩阵缩减到c
×
b尺寸,使得具有c
×
b尺寸的变换矩阵可被使用。
[1000]
当使用c
×
b变换矩阵时,块的左上方d
×
d区域内的除了右下方d
×
e区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数可被用作输入样点。
[1001]
此外,当使用c
×
b变换矩阵时,输出样点可被包括在块的左上方d
×
d区域内的左上方e
×
e区域中。
[1002]
在具有d
×
d尺寸的缩减的次级逆变换的情况下,可使用具有a
×
c或b
×
c尺寸的变换矩阵。
[1003]
当使用a
×
c变换矩阵时,块的左上方d
×
d区域内的左上方e
×
e区域中所包括的反量化的次级变换系数中的至少一个反量化的次级变换系数可被用作输入样点。
[1004]
此外,当使用a
×
c变换矩阵时,输出样点可被包括在块的左上方d
×
d区域中。
[1005]
在具有d
×
d尺寸的缩减的次级逆变换的情况下,具有a
×
a尺寸的变换矩阵可被缩减到b
×
c尺寸,使得具有b
×
c尺寸的变换矩阵可被使用。
[1006]
当使用b
×
c变换矩阵时,块的左上方d
×
d区域内的左上方e
×
e区域中所包括的反量化的次级变换系数中的至少一个反量化的次级变换系数可被用作输入样点。
[1007]
此外,当使用b
×
c变换矩阵时,输出样点可被包括在块的左上方d
×
d区域内的除了右下方d
×
e区域之外的其余区域中。
[1008]
a、b、c、d和e可以是正整数。例如,a、b、c、d和e可分别是64、32、16、8和4。
[1009]
这里,c可等于或小于a或b。
[1010]
此外,b可等于或小于值d*d。
[1011]
此外,c可以是值e*e。
[1012]
此外,e可等于或小于d。
[1013]
例如,缩减的次级变换、缩减的次级逆变换、输入样点区域和输出样点区域中的至少一个可根据当前块的尺寸而不同。
[1014]
例如,当当前块的尺寸是d
×
d时,具有c
×
b尺寸的变换矩阵可被用作缩减的次级变换,并且具有b
×
c尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1015]-缩减的次级变换的输入样点:块的左上方d
×
d区域中所包括的初级变换系数中的至少一个初级变换系数
[1016]-缩减的次级变换的输出样点:块的左上方d
×
e区域中所包括的次级变换系数中的至少一个次级变换系数
[1017]-缩减的次级逆变换的输入样点:块的左上方d
×
e区域中所包括的次级变换系数中的至少一个次级变换系数
[1018]-缩减的次级逆变换的输出样点:块的左上方d
×
d区域中所包括的初级变换系数中的至少一个初级变换系数
[1019]
作为另一示例,当当前块的尺寸为c
×
d或d
×
c时,具有b
×
b尺寸的变换矩阵可被用作缩减的次级变换,并且具有b
×
b尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1020]-缩减的次级变换的输入样点:块的左上方d
×
d区域中所包括的初级变换系数中的至少一个初级变换系数
[1021]-缩减的次级变换的输出样点:块的左上方d
×
d区域中所包括的次级变换系数中的至少一个次级变换系数
[1022]-缩减的次级逆变换的输入样点:块的左上方d
×
d区域中所包括的次级变换系数中的至少一个次级变换系数
[1023]-缩减的次级逆变换的输出样点:块的左上方d
×
d区域中所包括的初级变换系数中的至少一个初级变换系数
[1024]
作为另一示例,当当前块的尺寸是n
×
d或d
×
n时,具有b
×
b尺寸的变换矩阵可被用作缩减的次级变换,并且具有b
×
b尺寸的变换矩阵可被用作缩减的次级逆变换。这里,n可以是正整数。例如,它可等于或大于b。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1025]-缩减的次级变换的输入样点:块的两个左上方d
×
d区域中的至少一个左上方d
×
d区域中所包括的初级变换系数中的至少一个初级变换系数
[1026]-缩减的次级变换的输出样点:块的两个左上方d
×
d区域中的至少一个左上方d
×
d区域中所包括的次级变换系数中的至少一个次级变换系数
[1027]-缩减的次级逆变换的输入样点:块的两个左上方d
×
d区域中的至少一个左上方d
×
d区域中所包括的次级变换系数中的至少一个次级变换系数
[1028]-缩减的次级逆变换的输出样点:块的两个左上方d
×
d区域中的至少一个左上方d
×
d区域中所包括的初级变换系数中的至少一个初级变换系数
[1029]
作为另一示例,当当前块的尺寸是c
×
c时,具有c
×
a尺寸的变换矩阵可被用作缩减的次级变换,并且具有a
×
c尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1030]-缩减的次级变换的输入样点:块的左上方c
×
c区域内的除了右下方d
×
d区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1031]-缩减的次级变换的输出样点:块的左上方d
×
e区域中所包括的次级变换系数中的至少一个次级变换系数
[1032]-缩减的次级逆变换的输入样点:块的左上方d
×
e区域中所包括的次级变换系数中的至少一个次级变换系数
[1033]-缩减的次级逆变换的输出样点:块的左上方c
×
c区域内的除了右下方d
×
d区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1034]
作为另一示例,当当前块的尺寸大于c
×
c时,具有b
×
a尺寸的变换矩阵可被用作
缩减的次级变换,并且具有a
×
b尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1035]-缩减的次级变换的输入样点:块的左上方c
×
c区域内的除了右下方d
×
d区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1036]-缩减的次级变换的输出样点:块的左上方d
×
d区域中所包括的次级变换系数中的至少一个次级变换系数
[1037]-缩减的次级逆变换的输入样点:块的左上方d
×
d区域中所包括的次级变换系数中的至少一个次级变换系数
[1038]-缩减的次级逆变换的输出样点:块的左上方c
×
c区域内的除了右下方d
×
d区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1039]
a、b、c、d和e可以是正整数。例如,a、b、c、d和e可分别是48、16、8、4和2。
[1040]
这里,c可等于或小于a或b。
[1041]
此外,b可等于或小于值d*d。
[1042]
此外,c可以是值d*e。
[1043]
此外,e可等于或小于d。
[1044]
作为另一示例,缩减的次级变换、缩减的次级逆变换、输入样点区域和输出样点区域中的至少一个可根据当前块的尺寸而不同。
[1045]
例如,当当前块的尺寸为4
×
4时,具有8
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1046]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1047]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1048]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1049]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1050]
作为另一示例,当当前块的尺寸为8
×
4或4
×
8时,具有16
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1051]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1052]-缩减的次级变换的输出样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1053]-缩减的次级逆变换的输入样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1054]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1055]
作为另一示例,当当前块的尺寸为n
×
4或4
×
n时,具有16
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。这里,n可以是正整数。例如,它可等于或大于16。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1056]-缩减的次级变换的输入样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1057]-缩减的次级变换的输出样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1058]-缩减的次级逆变换的输入样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1059]-缩减的次级逆变换的输出样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1060]
作为另一示例,当当前块的尺寸是8
×
8时,具有8
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1061]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1062]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1063]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1064]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1065]
作为另一示例,当当前块的尺寸大于8
×
8时,具有16
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1066]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1067]-缩减的次级变换的输出样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1068]-缩减的次级逆变换的输入样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1069]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1070]
作为另一示例,缩减的次级变换、缩减的次级逆变换、输入样点区域和输出样点区域中的至少一个可根据当前块的尺寸而不同。
[1071]
例如,当当前块的尺寸为4
×
4时,具有8
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1072]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1073]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1074]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1075]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1076]
作为另一示例,当当前块的尺寸为n
×
4或4
×
n时,具有16
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。这里,n可以是正整数。例如,它可等于或大于8。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1077]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1078]-缩减的次级变换的输出样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1079]-缩减的次级逆变换的输入样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1080]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1081]
作为另一示例,当当前块的尺寸是8
×
8时,具有8
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1082]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1083]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1084]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1085]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1086]
作为另一示例,当当前块的尺寸大于8
×
8时,具有16
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1087]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1088]-缩减的次级变换的输出样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1089]-缩减的次级逆变换的输入样点:块的左上方4
×
4区域中所包括的次级变换系数
中的至少一个次级变换系数
[1090]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1091]
作为另一示例,缩减的次级变换、缩减的次级逆变换、输入样点区域和输出样点区域中的至少一个可根据当前块的尺寸而不同。
[1092]
例如,当当前块的尺寸是4
×
4、当前块的尺寸是8
×
4或4
×
8、或者当前块的尺寸是n
×
4或4
×
n时,具有8
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。这里,n可以是正整数。例如,它可等于或大于16。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1093]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1094]-缩减的次级变换的输出样点:块的左上方4
×
2区域或左上方2
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1095]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域或左上方2
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1096]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1097]
作为另一示例,当当前块的尺寸是8
×
8时,具有8
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1098]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1099]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1100]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1101]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1102]
作为另一示例,当当前块的尺寸大于8
×
8时,具有16
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1103]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1104]-缩减的次级变换的输出样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1105]-缩减的次级逆变换的输入样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1106]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1107]
作为另一示例,缩减的次级变换、缩减的次级逆变换、输入样点区域和输出样点区域中的至少一个可根据当前块的尺寸而不同。
[1108]
例如,当当前块的尺寸为4
×
4时,具有8
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1109]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1110]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1111]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1112]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1113]
作为另一示例,当当前块的尺寸为8
×
4或4
×
8时,具有16
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1114]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1115]-缩减的次级变换的输出样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1116]-缩减的次级逆变换的输入样点:块的左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1117]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1118]
作为另一示例,当当前块的尺寸为n
×
4或4
×
n时,具有16
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
16尺寸的变换矩阵可被用作缩减的次级逆变换。这里,n可以是正整数。例如,它可等于或大于16。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1119]-缩减的次级变换的输入样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1120]-缩减的次级变换的输出样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1121]-缩减的次级逆变换的输入样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1122]-缩减的次级逆变换的输出样点:块的两个左上方4
×
4区域中的至少一个左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1123]
作为另一示例,当当前块的尺寸为8
×
8或当前块的尺寸大于8
×
8时,具有8
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1124]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1125]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1126]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1127]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1128]
作为另一示例,缩减的次级变换、缩减的次级逆变换、输入样点区域和输出样点区域中的至少一个可根据当前块的尺寸而不同。
[1129]
例如,当当前块的尺寸是4
×
4、当前块的尺寸是8
×
4或4
×
8、或者当前块的尺寸是n
×
4或4
×
n时,具有8
×
16尺寸的变换矩阵可被用作缩减的次级变换,并且具有16
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。这里,n可以是正整数。例如,它可等于或大于16。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1130]-缩减的次级变换的输入样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1131]-缩减的次级变换的输出样点:块的左上方4
×
2区域或左上方2
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1132]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域或左上方2
×
4区域中所包括的次级变换系数中的至少一个次级变换系数
[1133]-缩减的次级逆变换的输出样点:块的左上方4
×
4区域中所包括的初级变换系数中的至少一个初级变换系数
[1134]
作为另一示例,当当前块的尺寸为8
×
8或当前块的尺寸大于8
×
8时,具有8
×
48尺寸的变换矩阵可被用作缩减的次级变换,并且具有48
×
8尺寸的变换矩阵可被用作缩减的次级逆变换。缩减的次级变换/逆变换的输入样点和输出样点的实施例可被如下描述。
[1135]-缩减的次级变换的输入样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1136]-缩减的次级变换的输出样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1137]-缩减的次级逆变换的输入样点:块的左上方4
×
2区域中所包括的次级变换系数中的至少一个次级变换系数
[1138]-缩减的次级逆变换的输出样点:块的左上方8
×
8区域内的除了右下方4
×
4区域之外的其余区域中所包括的初级变换系数中的至少一个初级变换系数
[1139]
作为缩减的次级变换矩阵,可存在总共j个变换矩阵集以及每个变换矩阵集有总共k个不可分离变换矩阵。这里,j和k可以是正整数。例如,j可以是4并且k可以是2。
[1140]
可以以cu、pu、tu、cb、pb和tb中的至少一个为单位对针对当前块的变换矩阵集索引lfnsttrsetidx进行熵编码/熵解码。这里,在解码器中,可通过使用经过熵解码的变换矩阵集索引lfnsttrsetidx来确定变换矩阵集。
[1141]
可根据当前块的帧内预测模式来确定变换矩阵集。可根据当前块和邻近块的编码
参数中的至少一个编码参数来确定变换矩阵集。可根据当前块的预测模式来确定变换矩阵集。
[1142]
例如,可在当前块的预测模式是帧内预测模式的情况与当前块的预测模式是ibc模式的情况之间确定不同的变换矩阵集。作为另一示例,可在以下情况之中确定不同的变换矩阵集:当前块的预测模式是帧内预测模式;当前块的预测模式是帧间预测模式;以及当前块的预测模式为ibc模式。
[1143]
可根据当前块的颜色分量来确定变换矩阵集。例如,可在当前块的颜色分量是y(亮度)的情况与当前块的颜色分量是cb(色度)或cr(色度)的情况之间确定不同的变换矩阵集。
[1144]
可根据当前块的尺寸确定变换矩阵集。例如,可在当前块的尺寸(水平尺寸和垂直尺寸的乘积)等于或小于16的情况与当前块的尺寸(水平尺寸和垂直尺寸的乘积)大于16的情况之间确定不同的变换矩阵集。
[1145]
可根据当前块的形式确定变换矩阵集。例如,可在当前块的形式为正方形的情况与当前块的形式为非正方形的情况之间确定不同的变换矩阵集。
[1146]
可根据在预测期间是否将当前块分区为子块来确定变换矩阵集。例如,可在预测期间当前块被分区为子块的情况与预测期间当前块未被分区为子块的情况之间确定不同的变换矩阵集。
[1147]
可根据是否使用当前块的初级变换来确定变换矩阵集。
[1148]
如表10中所示,可根据是否使用当前块的初级变换来确定不同的变换矩阵集。这里,即使当针对当前块未执行初级变换/逆变换时,也可执行次级变换/逆变换。
[1149]
例如,当关于是否使用初级变换的信息(transform_skip_flag)具有第一值(例如,0)时,可确定第一变换矩阵集。
[1150]
此外,当关于是否使用初级变换的信息(transform_skip_flag)不具有第一值(例如,0)时,可确定第二变换矩阵集。
[1151]
这里,第一变换矩阵集和第二变换矩阵集可彼此不同。
[1152]
【表10】
[1153][1154]
可根据当前块的初级变换类型确定变换矩阵集。
[1155]
如表11中所示,可根据当前块的初级变换的类型确定不同的变换矩阵集。
[1156]
例如,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。
[1157]
例如,当初级变换的类型是第二变换(基于dct-2的整数变换或trtypehor不是第一值(例如,0)或trtypever不是第一值(例如,0))时,可确定第二变换矩阵集。
[1158]
这里,第一变换矩阵集和第二变换矩阵集可彼此不同。
[1159]
作为另一示例,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。
此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或者trtypever是第二值(例如,1))时,可确定第二变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或者trtypever是第二值(例如,1))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第三值(例如,2))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或者trtypever是第三值(例如,2))时,可确定第二变换矩阵集。这里,第一变换矩阵集至第三变换矩阵集可彼此不同。
[1160]
作为另一示例,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第二值(例如,1))时,可确定第二变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第二值(例如,1))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第三值(例如,2))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第三值(例如,2))时,可确定第一变换矩阵集。这里,第一变换矩阵集至第三变换矩阵集可彼此不同。
[1161]
【表11】
[1162][1163]
作为另一示例,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第二值(例如,1))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或者trtypever是第二值(例如,1))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第三值(例如,2))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第三值(例如,2))时,可确定第二变换矩阵集。这里,第一变换矩阵集至第三变换矩阵集可彼此不同。
[1164]
作为另一示例,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第二值(例如,1))时,可确定第二变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第二值(例如,1))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第三值(例如,2))时,
可确定第四变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第三值(例如,2))时,可确定第一变换矩阵集。这里,第一变换矩阵集至第四变换矩阵集可彼此不同。
[1165]
作为另一示例,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第二值(例如,1))时,可确定第二变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或者trtypever是第二值(例如,1))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第三值(例如,2))时,可确定第四变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第三值(例如,2))时,可确定第二变换矩阵集。这里,第一变换矩阵集至第四变换矩阵集可彼此不同。
[1166]
作为另一示例,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第二值(例如,1))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第二值(例如,1))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第三值(例如,2))时,可确定第四变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第三值(例如,2))时,可确定第二变换矩阵集。这里,第一变换矩阵集至第四变换矩阵集可彼此不同。
[1167]
作为另一示例,当初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可确定第一变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或者trtypever是第二值(例如,1))时,可确定第二变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第二值(例如,1))时,可确定第三变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第二值(例如,1)或trtypever是第三值(例如,2))时,可确定第四变换矩阵集。此外,当初级变换的类型是第二变换(trtypehor是第三值(例如,2)或trtypever是第三值(例如,2))时,可确定第五变换矩阵集。这里,第一变换矩阵集至第五变换矩阵集可彼此不同。
[1168]
可根据当前块的二维变换组合来确定变换矩阵集。
[1169]
如表12中所示,可根据当前块的二维变换组合来确定不同的变换矩阵集。
[1170]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx不是第一值(例如,0)时,可确定第二变换矩阵集。这里,第一变换矩阵集和第二变换矩阵集可彼此不同。
[1171]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第二值(例如,1)时,可确定第二变换矩阵集。此外,当多变换选择索引mts_idx是第三值(例如,2)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第四值(例如,3)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_
idx是第五值(例如,4)时,可确定第二变换矩阵集。这里,第一变换矩阵集至第三变换矩阵集可彼此不同。
[1172]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第二值(例如,1)时,可确定第二变换矩阵集。此外,当多变换选择索引mts_idx是第三值(例如,2)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第四值(例如,3)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第五值(例如,4)时,可确定第一变换矩阵集。这里,第一变换矩阵集至第三变换矩阵集可彼此不同。
[1173]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第二值(例如,1)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第三值(例如,2)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第四值(例如,3)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第五值(例如,4)时,可确定第二变换矩阵集。这里,第一变换矩阵集至第三变换矩阵集可彼此不同。
[1174]
【表12】
[1175][1176]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第二值(例如,1)时,可确定第二变换矩阵集。此外,当多变换选择索引mts_idx是第三值(例如,2)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第四值(例如,3)时,可确定第四变换矩阵集。此外,当多变换选择索引mts_idx是第五值(例如,4)时,可确定第一变换矩阵集。这里,第一变换矩阵集至第四变换矩阵集可彼此不同。
[1177]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第二值(例如,1)时,可确定第二变换矩阵集。此外,当多变换选择索引mts_idx是第三值(例如,2)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第四值(例如,3)时,可确定第四变换矩阵集。此外,当多变换选择索引mts_idx是第五值(例如,4)时,可确定第二变换矩阵集。这里,第一变换矩阵集至第四变换矩阵集可彼此不同。
[1178]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第二值(例如,1)时,可确定第二变换矩阵集。此外,当多变换选择索引mts_idx是第三值(例如,2)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第四值(例如,3)时,可确定第四变换矩阵集。此外,当多变换选择索引mts_idx是第五值(例如,4)时,可确定第一变换矩阵集。这里,第一变换矩阵集至第四变换矩阵集可彼此不同。
[1179]
例如,当多变换选择索引mts_idx是第一值(例如,0)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第二值(例如,1)时,可确定第一变换矩阵集。此外,当多变换选择索引mts_idx是第三值(例如,2)时,可确定第三变换矩阵集。此外,当多变换选择索引mts_idx是第四值(例如,3)时,可确定第四变换矩阵集。此外,当多变换选择索引mts_idx是第五值(例如,4)时,可确定第二变换矩阵集。这里,第一变换矩阵集至第五变换矩阵集可彼此不同。
[1180]
根据实施例,在变换矩阵索引lfnst_idx被用信号发送之后,多变换选择索引mts_idx可被用信号发送。此外,多变换选择索引可自适应于变换矩阵索引而被用信号发送到。例如,当变换矩阵索引具有第一值(例如,0)时,即,当次级变换/逆变换未被应用于当前块时,多变换选择索引可被用信号发送。另一方面,当变换矩阵索引不具有第一值时,即,当次级变换/逆变换被应用于当前块时,多变换选择索引可不被用信号发送。
[1181]
这里,可根据变换矩阵索引lfnst_idx确定每个变换矩阵集中的不可分离变换矩阵。这里,变换矩阵索引lfnst_idx可被熵编码/熵解码。在以下情况下(在变换矩阵索引lfnst_idx不是第一值(例如,0)的情况下),可根据变换矩阵索引lfnst_idx的值来选择变换索引,并且所选的变换矩阵可被用于缩减的次级变换/逆变换。
[1182]
可在帧内块中用信号发送变换矩阵索引。
[1183]
当当前块的水平尺寸和垂直尺寸中的至少一个等于或大于n时,可用信号发送变换矩阵索引。这里,n可以是正整数。例如,它可以是4。当帧内子块分区类型(intrasubpartitionssplittype)与isp_no_split相同时,可用信号发送变换矩阵索引。当没有基于矩阵的帧内预测模式被使用时,可用信号发送变换矩阵索引。这里,当关于是否使用基于矩阵的帧内预测模式的信息(intra_mip_flag)具有第一值(例如,0)时,可用信号发送变换矩阵索引。
[1184]
根据实施例,当当前块的尺寸小于预定阈值时,可用信号发送变换矩阵索引。例如,当当前块的高度和宽度中的较大值小于预定阈值时,可用信号发送变换矩阵索引。所述阈值可以是指示变换块的最大尺寸(maxtbsizey)的值。
[1185]
根据实施例,根据当前块的最后非零变换系数的位置,可确定是否用信号发送变换矩阵索引lfnst_idx。例如,当当前块的最后非零变换系数位于当前块的左上角时,由于在当前块中仅存在一个非零变换系数,因此不执行次级变换/逆变换。因此,在这种情况下,可不用信号发送变换矩阵索引lfnst_idx。这里,可确定针对当前块未执行次级变换/逆变换。
[1186]
根据另一实施例,当在针对当前块的次级逆变换的应用区域之外存在非零变换系数时,可不用信号发送变换矩阵索引lfnst_idx。例如,当前块的次级逆变换的应用区域可以是当前块的左上方子块。具有4
×
4或更大尺寸的块的子块的尺寸可被确定为4
×
4。左上方子块表示与块的左上角紧邻的子块。当当前块的最后变换系数所在的子块不是当前块的左上方子块时,可不用信号发送变换矩阵索引lfnst_idx。这里,可确定未针对当前块执行次级变换/逆变换。这里,子块可表示系数组。
[1187]
根据又一实施例,当前块的次级逆变换的应用区域可以是当前块的左上方子块的一部分。例如,当当前块的尺寸为4
×
4或8
×
8时,可根据按照左上方子块的扫描顺序的前八个变换系数来确定当前块的次级逆变换的应用区域。因此,当当前块的最后变换系数按照
扫描顺序处于第9个位置或更后的位置时,可不用信号发送变换矩阵索引lfnst_idx。这里,可确定针对当前块未执行次级变换/逆变换。
[1188]
当没有使用帧内残差dpcm方法时,可用信号发送变换矩阵索引。这里,当关于是否使用帧内残差dpcm方法的信息(intra_bdpcm_flag)具有第一值(例如,0)时,可用信号发送变换矩阵索引。
[1189]
此外,当关于是否使用帧内残差dpcm方法的信息(intra_bdpcm_flag)具有第一值(例如,0)时,变换跳过模式标志可被隐式地确定为第一值(例如,0)。在本说明书中,变换跳过模式可表示变换省略模式。当变换跳过模式标志是第一值(例如,0)时,可执行初级变换/逆变换和次级变换/逆变换中的至少一个。此外,当变换跳过模式标志是第二值(例如,1)时,可不执行初级变换/逆变换和次级变换/逆变换。
[1190]
当使用帧内残差dpcm方法时,可不用信号发送变换矩阵索引。这里,当关于是否使用帧内残差dpcm方法的信息(intra_bdpcm_flag)具有第二值(例如,1)时,可不用信号发送变换矩阵索引。
[1191]
当使用帧内残差dpcm方法时,变换跳过模式标志可不被编码/解码/获得。在帧内残差dpcm方法中,可跳过残差信号的变换处理。因此,当dpcm方法被应用于帧内残差信号时,变换跳过模式标志可被隐式地确定为第二值(例如,1)。换言之,针对当前块可不执行变换/逆变换。此外,当使用帧内残差dpcm方法时,由于针对当前块未执行变换/逆变换,因此可不用信号发送变换矩阵索引。
[1192]
当帧内残差dpcm方法未被使用时,指示是否针对当前块的残差信号执行变换/逆变换的变换跳过模式标志可被编码/解码/获得。因此,可根据变换跳过模式标志确定变换/逆变换是否被应用于当前块。
[1193]
可针对每个颜色分量独立地确定根据是否使用帧内残差dpcm方法来编码/解码/获得和确定变换跳过模式标志的方法。
[1194]
当帧内参考样点线指示符为0时,可用信号发送变换矩阵索引。这里,当帧内参考样点线指示符(intra_luma_ref_idx)是第一值(例如,0)时,可用信号发送变换矩阵索引。当参考样点线指示符为0时,可通过使用当前块的最近邻参考样点来执行帧内预测。
[1195]
当帧内亮度mpm标志(intra_luma_mpm_flag)为第二值(例如,1)时,可用信号发送变换矩阵索引。
[1196]
当当前块的水平尺寸和垂直尺寸中的至少一个小于n时,可用信号发送变换矩阵索引。这里,n可以是正整数。例如,它可以是128。
[1197]
根据实施例,可根据多变换选择索引mts_idx用信号发送变换矩阵索引。
[1198]
例如,当多变换选择索引mts_idx为第m值(例如,m-1)时,可用信号发送变换矩阵索引。这里,当多变换选择索引mts_idx是第m值(例如,m-1)时,可执行缩减的次级变换/逆变换。
[1199]
作为另一示例,当多变换选择索引mts_idx不是第m值(例如,m-1)时,可不用信号发送变换矩阵索引。这里,当多变换选择索引mts_idx不是第m值(例如,m-1)时,可不执行缩减的次级变换/逆变换。
[1200]
这里,m可以是等于或大于1的正整数。例如,m可以是1。
[1201]
根据实施例,当当前块未被分区为子块时,可用信号发送变换矩阵索引。此外,当
当前块根据第一子块分区模式或第二子块分区模式而被分区为子块时,可不用信号发送变换矩阵索引。当前块可以是ctu/ctb、cu/cb、tu/tb等。
[1202]
根据另一实施例,可用信号发送变换矩阵索引,而不管当前块是否被分区为子块。因此,可根据变换矩阵索引将次级变换/逆变换应用于当前块的子块。
[1203]
当cu中的编码块标志、tu/tb中的y(亮度)分量编码块标志、tu/tb中的cb(色度)分量编码块标志和tu/tb中的cr(色度)分量编码块标志中的至少一个是第二值(例如,1)时,可用信号发送变换矩阵索引。
[1204]
例如,当cu中的编码块标志为第二值(例如,1)时,可在cu中用信号发送变换矩阵索引,并且可在对应cu中执行缩减的次级变换/逆变换。
[1205]
作为另一示例,当tu/tb中的y(亮度)分量编码块标志是第二值(例如,1)时,可在tu/tb中用信号发送变换矩阵索引,并且可在对应tu/tb中执行缩减的次级变换/逆变换。
[1206]
作为另一示例,当tu/tb中的cb(色度)分量编码块标志是第二值(例如,1)时,可在tu/tb中用信号发送变换矩阵索引,并且可在对应tu/tb中执行缩减的次级变换/逆变换。
[1207]
作为另一示例,当tu/tb中的cr(色度)分量编码块标志是第二值(例如,1)时,可在tu/tb中用信号发送变换矩阵索引,并且可在对应tu/tb中执行缩减的次级变换/逆变换。
[1208]
当在比特流中不存在变换矩阵索引时,变换矩阵索引可被推断为第一值(例如,0)。
[1209]
根据作为用于聚合色度信号(cb分量和cr分量)的残差信号的编码/解码方法的指示符的tu_joint_cbcr_residual,在tu_joint_cbcr_residual对应于第二值(例如,1)的情况下,可不在块(tb、tc)中对变换矩阵索引lfnst_idx进行熵编码/熵解码。此外,在tu_joint_cbcr_residual对应于第一值(例如,0)的情况下,可在块(tb、tu)中对变换矩阵索引lfnst_idx进行熵编码/熵解码。
[1210]
例如,当特定分量的残差信号由于tu_joint_cbcr_residual而不存在于比特流中时,可不在针对对应分量的块(tb、tu)中对变换矩阵索引lfnst_idx进行熵编码/熵解码。
[1211]
这里,tu_joint_cbcr_residual可表示cb分量的残差信号是否被用于推导cb分量和cr分量的残差信号。
[1212]
例如,当tu_joint_cbcr_residual是第一值(例如,0)时,cr分量的残差信号可根据另一语法元素值而存在于比特流中。此外,当tu_joint_cbcr_residual是第二值(例如,1)时,cb分量的残差信号可被用于推导cb分量和cr分量的残差信号。
[1213]
当tu_joint_cbcr_residual表示cb分量的残差信号是否被用于推导cb分量和cr分量的残差信号时,cr分量的残差信号可不存在于比特流中。在这种情况下,可不在针对cr分量的块(tb、tu)中对变换矩阵索引lfnst_idx进行熵编码/熵解码。
[1214]
此外,tu_joint_cbcr_residual可表示cr分量的残差信号是否被用于推导cb分量和cr分量的残差信号。
[1215]
例如,当tu_joint_cbcr_residual是第一值(例如,0)时,cb分量的残差信号可根据另一语法元素值而存在于比特流中。此外,当tu_joint_cbcr_residual是第二值(例如,1)时,cr分量的残差信号可被用于推导cb分量和cr分量的残差信号。
[1216]
当tu_joint_cbcr_residual表示cr分量的残差信号是否被用于推导cb分量和cr分量的残差信号时,cb分量的残差信号可不存在于比特流中。在这种情况下,可不在针对cb
分量的块(tb、tu)中对变换矩阵索引lfnst_idx进行熵编码/熵解码。
[1217]
根据实施例,当tu_cb_coded_flag(即,关于是否存在cb分量的变换系数的信息)和tu_cr_coded_flag(即,关于是否存在cr分量的变换系数的信息)两者指示第二值(例如,1)时,可用信号发送tu_joint_cbcr_residual。可选地,当当前块被帧内预测并且tu_cb_coded_flag(即,关于是否存在cb分量的变换系数的信息)或tu_cr_coded_flag(即,关于是否存在cr分量的变换系数的信息)指示第二值(例如,1)时,可用信号发送tu_joint_cbcr_residual。
[1218]
当tu_joint_cbcr_residual指示第二值(例如,1)时,根据tu_cb_coded_flag、tu_cr_coded_flag和joint_cbcr_sign_flag,可如下确定cb分量和cr分量的变换系数。
[1219]
根据指示cb分量和cr分量的变换系数是否具有相同正负符号的joint_cbcr_sign_flag,可确定cb分量和cr分量的正负符号。例如,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数具有相同正负符号时,可确定cb分量和cr分量具有相同正负符号。反之,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数具有相反正负符号时,可确定cb分量和cr分量的正负符号彼此相反。
[1220]
当tu_cb_coded_flag和tu_cr_coded_flag两者指示第二值(例如,1)时,或者当tu_cb_coded_flag指示第二值(例如,1)并且tu_cr_coded_flag指示第一值(例如,0)时,可用信号发送cb分量的变换系数。此外,当tu_cr_coded_flag指示第二值(例如,1)并且tu_cb_coded_flag指示第一值(例如,0)时,可用信号发送cr分量的变换系数。
[1221]
当tu_cb_coded_flag和tu_cr_coded_flag两者指示第二值(例如,1)时,可确定cr分量的变换系数和cb分量的变换系数具有相同绝对值。因此,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数具有相同正负符号时,可确定cr分量的变换系数与用信号发送的cb分量的变换系数相同。反之,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数不具有相同正负符号时,cr分量的变换系数可被确定为用信号发送的cb分量的变换系数的-1倍。
[1222]
当tu_cb_coded_flag指示第二值(例如,1)并且tu_cr_coded_flag指示第一值(例如,0)时,可根据通过将cb分量的变换系数的绝对值除以2而获得的值来确定cr分量的变换系数的绝对值。因此,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数具有相同正负符号时,可根据通过将用信号发送的cb分量的变换系数除以2而获得的值来确定cr分量的变换系数。反之,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数不具有相同正负符号时,可根据通过将用信号发送的cb分量的变换系数除以-2而获得的值来确定cr分量的变换系数。
[1223]
当tu_cr_coded_flag指示第二值(例如,1)并且tu_cb_coded_flag指示第一值(例如,0)时,可根据通过将cr分量的变换系数的绝对值除以2而获得的值来确定cb分量的变换系数的绝对值。因此,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数具有相同正负符号时,可根据通过将用信号发送的cr分量的变换系数除以2而获得的值来确定cb分量的变换系数。反之,当joint_cbcr_sign_flag指示cb分量和cr分量的变换系数不具有相同正负符号时,可根据通过将用信号发送的cr分量的变换系数除以-2而获得的值来确定cb分量的变换系数。
[1224]
关于变换系数是否存在的信息可表示为编码块标志。
[1225]
例如,当执行使用16
×
48变换矩阵的具有8
×
8尺寸的缩减的次级变换时,可在块的左上方8
×
8区域内的左上方4
×
4区域中生成非零的变换系数(非零系数)。
[1226]
换言之,可在块的左上方8
×
8区域内的除了左上方4
×
4区域之外的其余区域中仅生成具有值0的变换系数(零系数)。
[1227]
因此,当在块的左上方8
×
8区域内的除了左上方4
×
4区域之外的其余区域中存在非零变换系数时,由于未执行缩减的次级变换,可不对变换矩阵索引进行熵编码/熵解码。在这种情况下,由于变换矩阵索引被推断为第一值(例如,0),因此可不执行缩减的次级变换/逆变换。
[1228]
此外,不管是否存在非零变换系数,都可对变换矩阵索引进行熵编码/熵解码。
[1229]
例如,在双树结构的情况下,可分别用信号发送针对亮度分量的变换矩阵索引和针对色度分量的变换矩阵索引。
[1230]
作为另一示例,在非双树结构的情况下(或在画面间条带的情况下),可联合地用信号发送针对亮度分量的变换矩阵索引和针对色度分量的变换矩阵索引。
[1231]
在次级变换中,可根据块(tb或tu)尺寸执行4
×
4不可分离变换或8
×
8不可分离变换。
[1232]
例如,当当前块的水平尺寸和垂直尺寸中的较小值小于n时,可使用4
×
4不可分离变换。这里,n可以是正整数。例如,n可以是8。
[1233]
当min(当前块的水平尺寸,当前块的垂直尺寸)《8时,4
×
4不可分离变换/逆变换可被用于当前块。
[1234]
此外,例如,当当前块的水平尺寸和垂直尺寸中的较小值大于n时,可使用8
×
8不可分离变换。这里,n可以是正整数。例如,n可以是4。
[1235]
当min(当前块的水平尺寸,当前块的垂直尺寸)》4时,8
×
8不可分离变换/逆变换可被用于当前块。
[1236]
例如,当当前块的水平尺寸和垂直尺寸两者等于或大于n时,则可执行8
×
8缩减的次级变换。这里,n可以是正整数。例如,n可以是8。
[1237]
否则,作为另一示例,(当当前块的水平尺寸和垂直尺寸两者不等于也不大于n时),可执行4
×
4缩减的次级变换。这里,n可以是正整数。例如,n可以是8。
[1238]
当画面间条带和画面内条带中的至少一个是帧内块(编码块、预测块和变换块中的至少一个)时,可针对亮度分量和色度分量中的至少一个执行缩减的次级变换/逆变换。
[1239]
此外,当都满足以下条件时,可执行缩减的次级变换/逆变换。
[1240]
当前块的水平尺寸或垂直尺寸等于或大于n(这里,n可以是正整数。例如,n可以是4)。
[1241]
变换跳过模式标志(关于是否使用变换的信息:transform_skip_flag)是第一值(例如,0)。
[1242]
在次级变换中,可根据块(tb或tu)尺寸执行4
×
4不可分离变换或8
×
8不可分离变换。
[1243]
例如,当当前块的水平尺寸和垂直尺寸中的较小值小于n时,可使用4
×
4不可分离变换。这里,n可以是正整数。例如,n可以是8。
[1244]
当min(当前块的水平尺寸,当前块的垂直尺寸)《8时,4
×
4不可分离变换/逆变换
可被用于当前块。
[1245]
此外,例如,当当前块的水平尺寸和垂直尺寸中的较小值大于n时,可使用8
×
8不可分离变换。这里,n可以是正整数。例如,n可以是4。
[1246]
当min(当前块的水平尺寸,当前块的垂直尺寸)》4时,8
×
8不可分离变换/逆变换可被用于当前块。
[1247]
不可分离变换可表示缩减的次级变换。
[1248]
根据缩减的次级变换/逆变换是否被执行,可对块边界执行去块滤波。
[1249]
例如,当针对与块边界相邻的邻近块中的至少一个邻近块执行缩减的次级变换/逆变换时,可将块边界设置为将被去块滤波的目标块边界。此外,可针对块边界执行去块滤波。
[1250]
作为另一示例,当与块边界相邻的邻近块中没有邻近块经历二次变换/逆变换时,可不将块边界设置为将被去块滤波的目标块边界。此外,针对块边界可不执行去块滤波。
[1251]
在下面将描述在编码器/解码器中实现缩减的次级变换/逆变换所需的语法元素信息、语法元素信息的含义以及编码/解码处理的实施例。
[1252]
缩减的次级变换/逆变换所需的语法元素信息可包括作为与缩减的次级变换/逆变换是否在序列单元中被执行有关的信息的sps_lfnst_enabled_flag、变换矩阵索引lfnst_idx和变换矩阵集信息中的至少一个。
[1253]
表13至表26示出缩减的次级变换/逆变换所需的语法元素信息的示例以及根据帧内预测模式(predmodeintra)推导变换矩阵集索引的示例。可在参数集、头、分块、编码树单元(ctu)、编码单元(cu)、预测单元(pu)、变换单元(tu)、编码块(cb)、预测块(pb)和变换块(tb)中的至少一个中对缩减的次级变换/逆变换所需的语法元素中的至少一个语法元素进行熵编码/熵解码。
[1254]
这里,参数集可以是视频参数集、解码参数集、序列参数集、自适应参数集和画面参数集中的至少一个。头可以是画面头、子画面头、条带头、并行块组头和并行块头中的至少一个。
[1255]
这里,当在包括参数集、头、分块、ctu、cu、pu、tu、cb、pb和tb的用信号发送的单元中的至少一个单元中使用用于缩减的次级变换/逆变换的语法元素时,可执行缩减的次级变换/逆变换。
[1256]
例如,当用于缩减的次级变换/逆变换的语法元素在序列参数集中被熵编码/熵解码时,可通过在序列单元中使用具有相同语法元素值的用于缩减的次级变换/逆变换的语法元素来执行缩减的次级变换/逆变换。
[1257]
作为另一示例,当用于缩减的次级变换/逆变换的语法元素在条带头中被熵编码/熵解码时,可通过在条带单元中使用具有相同语法元素值的用于缩减的次级变换/逆变换的语法元素来执行缩减的次级变换/逆变换。
[1258]
作为又一示例,当用于缩减的次级变换/逆变换的语法元素在自适应参数集中被熵编码/熵解码时,可通过在参考相同自适应参数集的单元中使用具有相同语法元素值的用于缩减的次级变换/逆变换的语法元素来执行缩减的次级变换/逆变换。
[1259]
如表13中所示,sps_lfnst_enabled_flag可表示关于缩减的次级变换/逆变换是否在序列单元中被执行的信息。
[1260]
例如,当sps_lfnst_enabled_flag是第一值(例如,0)时,它可指示缩减的次级变换/逆变换没有在序列单元中被执行。当sps_lfnst_enabled_flag是第二值(例如,1)时,它可指示缩减的次级变换/逆变换在序列单元中被执行。
[1261]
作为另一示例,sps_lfnst_enabled_flag可表示变换矩阵索引lfnst_idx是否存在于cu、pu、tu、cb、pb和tb中的至少一个中。
[1262]
例如,当sps_lfnst_enabled_flag是第一值(例如,o)时,它可指示变换矩阵索引不存在于cu、pu、tu、cb、pb和tb中的至少一个中。当sps_lfnst_enabled_flag是第二值(例如,1)时,它可指示变换矩阵索引存在于cu、pu、tu、cb、pb和tb中的至少一个中。
[1263]
当在比特流中不存在sps_lfnst_enabled_flag时,sps_lfnst_enabled_flag可被推断为第一值(例如,0)。
[1264]
【表13】
[1265]
seq parameter set rbsp(){描述符sps lfnst enabled flagu(1)
[1266]
如表14至表18中所示,lfnst_idx[x0][y0]可以是指示变换矩阵集中的变换矩阵中的哪个变换矩阵将被用于缩减的次级变换/逆变换的变换矩阵索引。
[1267]
这里,当lfnst_idx[x0][y0]是第一值(例如,0)时,在当前块中可不执行缩减的次级变换/逆变换。此外,当lfnst_idx[x0][y0]是第二值(例如,1)时,当前块中的变换矩阵集的变换矩阵中的由lfnst_idx[x0][y0]指示的第一矩阵可被用于缩减的次级变换/逆变换。此外,当lfnst_idx[x0][y0]是第三值(例如,2)时,当前块中的变换矩阵集的变换矩阵中的由lfnst_idx[x0][y0]指示的第二矩阵可被用于缩减的次级变换/逆变换。
[1268]
lfnst_idx[x0][y0]可具有从0至n的值。这里,n可以是正整数。例如,n可以是2。
[1269]
在以下情况下,可对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1270]
如在表14和表15的示例中,当numzerooutsigcoeff是第一值(例如,0)并且满足(numsigcoeff》((treetype==single_tree)?m:n))时,可对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1271]
可选地,如在表16的示例中,当满足(numsigcoeff》((treetype==single_tree)?m:n))时,不管numzerooutsigcoeff的值如何,可对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1272]
可选地,如在表17的示例中,当numzerooutsigcoeff是第一值(例如,0)时,不管是否满足(numsigcoeff》((treetype==single_tree)?m:n)),可对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1273]
可选地,如在表18的示例中,不管numzerooutsigcoeff的值如何以及是否满足(numsigcoeff》((treetype==single_tree)?m:n)),可对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1274]
这里,m和n可以是正整数。例如,m可以是2并且n可以是1。
[1275]
当在比特流中不存在lfnst_idx[x0][y0]时,lfnst_idx[x0][y0]可被推断为值0。
[1276]
【表14】
[1277][1278]
【表15】
[1279][1280]
【表16】
[1281][1282]
【表17】
[1283][1284]
【表18】
[1285][1286]
对于i条带,qtbtt_dual_tree_intra_flag可表示每个ctu分区被分区为64
×
64的编码单元并且64
×
64的编码单元被用作亮度分量和色度分量的根节点。
[1287]
例如,当qtbtt_dual_tree_intra_flag为第一值(例如,0)时,每个ctu可被分区为64
×
64的编码单元并且64
×
64的编码单元可不被用作亮度分量和色度分量的根节点。另一方面,当qtbtt_dual_tree_intra_flag为第二值(例如,1)时,每个ctu可被分区为64
×
64的编码单元并且64
×
64的编码单元可被用作亮度分量和色度分量的根节点。
[1288]
当qtbtt_dual_tree_intra_flag是第一值(例如,0)时,单树结构可被用于针对亮度分量的块分区和针对色度分量的块分区。根据单树结构,单个块分区结构被用于亮度分量的块分区和色度分量的块分区。然而,根据色度分量的类型,亮度分量的块尺寸和色度分量的块尺寸可彼此不同。单树类型可被标识为single_tree。
[1289]
当条带类型是i条带并且qtbtt_dual_tree_intra_flag是第二值(例如,1)时,双树结构可被用于针对来自编码树单元(例如,64
×
64的编码单元)的亮度分量的块分区和色度分量的块分区。根据双树结构,不同的块分区结构分别被用于亮度分量的块分区和色度分量的块分区。在双树结构中,针对亮度分量的树类型可被标识为dual_tree_luma。此外,
在双树结构中,针对色度分量的树类型可被识别为dual_tree_chroma。
[1290]
对于变换矩阵索引lfnst_idx[x0][y0],可根据多变换选择索引tu_mts_idx[x0][y0]和树类型中的至少一个确定应用于上下文自适应二进制算术编码(cabac)的上下文模型。tu_mts_idx在含义上可等同于mts_idx。
[1291]
例如,可如下确定用于变换矩阵索引lfnst_idx[x0][y0]的熵编码/熵解码的上下文模型索引。
[1292]
(tu_mts_idx[x0][y0]==0&&treetype!=single_tree)?1:0
[1293]
例如,可如下确定用于变换矩阵索引lfnst_idx[x0][y0]的熵编码/熵解码的上下文模型索引。
[1294]
(tu_mts_idx[x0][y0]==0)?1:0
[1295]
例如,可如下确定用于变换矩阵索引lfnst_idx[x0][y0]的熵编码/熵解码的上下文模型索引。
[1296]
(treetype!=single_tree)?1:0
[1297]
例如,用于变换矩阵索引lfnst_idx[x0][y0]的熵编码/熵解码的上下文模型索引可被确定为0。
[1298]
例如,可根据当前块和邻近块的编码参数中的至少一个来确定用于变换矩阵索引lfnst_idx[x0][y0]的熵编码/熵解码的上下文模型索引。
[1299]
作为另一示例,类似于多变换选择索引的示例,可根据水平变换类型和垂直变换类型中的至少一个确定用于变换矩阵索引lfnst_idx[x0][y0]的熵编码/熵解码的上下文模型索引。
[1300]
可如下执行针对缩放的变换系数的变换处理。
[1301]
对于针对缩放的变换系数的变换,基于当前画面的左上样点,可输入当前亮度分量变换块的左上样点(xtby,ytby)、当前变换块的水平尺寸ntbw、当前变换块的垂直尺寸ntbh、当前块的颜色分量索引cidx和尺寸为(ntbw)
×
(ntbh)的缩放的变换系数阵列d[x][y]。这里,x可具有从0至ntbw-1的值,并且y可具有从0至ntbh-1的值。
[1302]
根据针对缩放的变换系数的变换,可输出尺寸为(ntbw)
×
(ntbh)的残差信号阵列r[x][y]。这里,x可具有从0至ntbw-1的值,并且y可具有从0至ntbh-1的值。
[1303]
当变换矩阵索引lfnst_idx[xtby][ytby]不是第一值(例如,0)并且变换跳过模式标志(transform_skip_flag)具有第一值(例如,0)并且ntbw和ntbh两者等于或大于4时,可如下执行针对缩放的变换系数的变换处理。在这种情况下,变换跳过模式标志可表示针对亮度(y)块和色度(cb、cr)块中的至少一个的标志。这里,当变换跳过模式标志是第一值(例如,0)时,这可表示初级变换和次级变换中的至少一个被执行。此外,当变换跳过模式标志是第二值(例如,1)时,这可表示初级变换和次级变换中的至少一个未被执行。
[1304]
可如下推导变量predmodeintra、nlfnstoutsize、log2lfnstsize、numlfnstx、numlfnsty和nonzerosize。
[1305]
predmodeintra=(cidx==0)?intrapredmodey[xtby][ytby]:intrapredmodec[xtby][ytby]
[1306]
nlfnstoutsize=(ntbw》=8&&ntbh》=8)?48:16
[1307]
log2lfnstsize=(ntbw》=8&&ntbh》=8)?3:2
[1308]
nlfnstsize=(1《《log2lfnstsize)
[1309]
numlfnstx=(ntbw》8&&ntbh==4)?2:1
[1310]
numlfnsty=(ntbw==4&&ntbh》8)?2:1
[1311]
nonzerosize=((ntbw==4&&ntbh==4)||(ntbw==8&&ntbh==8))?8:16
[1312]
可通过使用以下输入和输出来执行广角帧内预测模式映射处理。
[1313]
输入:predmodeintra、ntbw、ntbh和cidx
[1314]
输出:predmodeintra
[1315]
对于能够具有从0至numlfnstx-1的值的xsbidx和能够具有从0至numlfnsty-1的值的ysbidx,可如下执行处理。
[1316]
可如下推导u[x]的值。这里,x可具有从0至nonzerosize-1的值。
[1317]
xc=(xsbidx《《log2lfnstsize) diagscanorder[log2lfnstsize][log2lfnstsize][x][0]
[1318]
yc=(ysbidx《《log2lfnstsize) diagscanorder[log2lfnstsize][log2lfnstsize][x][1]
[1319]
u[x]=d[xc][yc]
[1320]
可通过使用以下输入和输出来执行一维低频不可分离变换处理。
[1321]
输入:缩放的变换系数的输入样点长度nonzerosize、设置为nlfnstoutsize的变换输出样点长度ntrs、不为值0的缩放的变换系数阵列u[x]、帧内预测模式predmodeintra和变换矩阵索引lfnst_idx[xtby][ytby]。
[1322]
这里,x可具有从0至nonzerosize-1的值。
[1323]
输出:v[x]
[1324]
这里,x可具有从0至nlfnstoutsize-1的值。
[1325]
可如下推导阵列d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]。这里,x和y可具有从0至nlfnstsize-1的值。
[1326]
当predmodeintra等于或小于34时,或者当predmodeintra与intra_lt_cclm、intra_t_cclm和intra_l_cclm中的至少一个相同时,可如下执行推导。
[1327]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(y《4)?v[x (y《《log2lfnstsize)]:((x《4)v[32 x ((y-4)《《2)]:d[x][y])
[1328]
否则,可如下执行推导。
[1329]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(x《4)?v[y (x《《log2lfnstsize)]:((y《4)v[32 y ((x-4)《《2)]:d[x][y])
[1330]
这里,当阵列d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]被推导时,可基于除了帧内预测模式predmodeintra之外的编码参数中的至少一个编码参数来执行推导。
[1331]
作为另一示例,可如下推导阵列d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]。这里,x和y可具有从0至nlfnstsize-1的值。
[1332]
当针对初级变换的类型是第一变换(基于dct-2的整数变换或trtypehor是第一值(例如,0)或trtypever是第一值(例如,0))时,可如下执行推导。
[1333]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(y《4)?v[x (y
《《log2lfnstsize)]:((x《4)?v[32 x ((y-4)《《2)]:d[x][y])
[1334]
否则,可如下执行推导。
[1335]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(x《4)?v[y (x《《log2lfnstsize)]:((y《4)?v[32 y ((x-4)《《2)]:d[x][y])
[1336]
作为另一示例,可如下推导阵列d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]。这里,x和y可具有从0至nlfnstsize-1的值。
[1337]
当针对初级变换的类型是第一变换(基于dct-2的整数变换,或者trtypehor是第一值(例如,0)并且trtypever是第一值(例如,0))时,当针对初级变换的类型是第二变换(trtypehor是第二值(例如,1)并且trtypever是第二值(例如,1))时,或者当针对初级变换的类型是第二变换(trtypehor是第三值(例如,2)并且trtypever是第三值(例如,2))时,可如下执行推导。
[1338]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(y《4)?v[x (y《《log2lfnstsize)]:((x《4)?v[32 x ((y-4)《《2)]:d[x][y])
[1339]
否则,可如下执行推导。
[1340]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(x《4)?v[y (x《《log2lfnstsize)]:((y《4)?v[32 y ((x-4)《《2)]:d[x][y])
[1341]
作为另一示例,可如下推导阵列d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]。这里,x和y可具有从0至nlfnstsize-1的值。
[1342]
当多变换选择索引mts_idx为第一值(例如,0)时,可如下执行推导。
[1343]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(y《4)?v[x (y《《log2lfnstsize)]:((x《4)?v[32 x ((y-4)《《2)]:d[x][y])
[1344]
否则,可如下执行推导。
[1345]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(x《4)?v[y (x《《log2lfnstsize)]:((y《4)?v[32 y ((x-4)《《2)]:d[x][y])
[1346]
作为另一示例,可如下推导阵列d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]。这里,x和y可具有从0至nlfnstsize-1的值。
[1347]
当多变换选择索引mts_idx为第一值(例如,0)时,当多变换选择索引mts_idx为第二值(例如,1)时,或者当多变换选择索引mts_idx为第五值(例如,4)时,可如下执行推导。
[1348]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(y《4)?v[x (y《《log2lfnstsize)]:((x《4)?v[32 x ((y-4)《《2)]:d[x][y])
[1349]
否则,可如下执行推导。
[1350]
d[(xsbidx《《log2lfnstsize) x][(ysbidx《《log2lfnstsize) y]=(x《4)?v[y (x《《log2lfnstsize)]:((y《4)?v[32 y ((x-4)《《2)]:d[x][y])
[1351]
在下文中,将描述广角帧内预测模式映射处理。
[1352]
对于广角帧内预测模式映射处理,输入帧内预测模式predmodeintra、变换块的水平尺寸ntbw、变换块的垂直尺寸ntbh和当前块的颜色分量索引cidx。
[1353]
根据广角帧内预测模式映射处理,输出修改的帧内预测模式predmodeintra。
[1354]
在广角帧内预测模式映射处理中,可如下推导变量nw和nh。
[1355]
当intrasubpartitionssplittype与isp_no_split相同且cidx不是第一值(例如,
0)时,可如下执行推导。
[1356]
nw=ntbw
[1357]
nh=ntbh
[1358]
否则,可如下执行推导。
[1359]
nw=ncbw
[1360]
nh=ncbh
[1361]
变量whratio可被设置为abs(log2(nw/nh))。对于矩形块(其中,nw与nh不同),可如下修改predmodeintra。当以下条件都为真时,predmodeintra可被设置为(predmodeintra 65)。
[1362]-nw大于nh
[1363]-predmodeintra等于或大于2
[1364]-predmodeintra小于(whratio》1)?(8 2*whratio):8
[1365]
当以下条件都为真时,predmodeintra可被设置为(predmodeintra-67)。
[1366]-nh大于nw
[1367]-predmodeintra等于或小于66
[1368]-predmodeintra大于(whratio》1)?(60-2*whratio):60
[1369]
在下文中,将描述低频不可分离变换处理。
[1370]
在低频不可分离变换处理中,可输入变换输入样点长度nonzerosize、变换输出样点长度ntrs、不是值0的缩放的变换系数阵列x[j]、帧内预测模式predmodeintra和变换矩阵索引lfnst_idx。这里,j可具有从0至nonzerosize-1的值。
[1371]
根据低频不可分离变换处理,可输出变换的样点阵列y[i]。这里,i可具有从0至ntrs-1的值。
[1372]
在低频不可分离变换处理中,可推导低频不可分离变换矩阵。在推导低频不可分离变换矩阵的处理中,可输入变换输出样点长度ntrs、帧内预测模式predmodeintra和变换矩阵索引lfnst_idx。
[1373]
根据推导低频不可分离变换矩阵的处理,可输出具有(ntrs)
×
(nonzerosize)尺寸的变换矩阵lowfreqtransmatrix。
[1374]
可如下推导变换的样点阵列y[i]。这里,i可具有从0至ntrs-1的值。
[1375][1376]
这里,coeffmin和coeffmax可分别表示变换系数的最小值和最大值,并且可如下被推导出。
[1377]
coeffmin=-(1《《n)
[1378]
coeffmax=(1《《n)-1
[1379]
这里,n可以是正整数。例如,n可以是15。当n是15时,这可表示变换系数的值被剪裁以便被包括在16比特动态范围中。
[1380]
在下文中,将描述推导低频不可分离变换矩阵的处理。
[1381]
在推导低频不可分离变换矩阵的处理中,可输入变换输出样点长度ntrs、帧内预测模式predmodeintra和变换矩阵索引lfnst_idx。此外,根据推导低频不可分离变换矩阵
的处理,可输出变换矩阵lowfreqtransmatrix。
[1382]
如在表19的示例中,在推导低频不可分离变换矩阵的处理中,可根据帧内预测模式predmodeintra推导变换矩阵集索引lfnsttrsetidx。这里,通过使用表20至表26来代替表19,可根据帧内预测模式predmodeintra推导变换矩阵集索引lfnsttrsetidx。
[1383]
当predmodeintra与intra_lt_cclm、intra_t_cclm和intra_l_cclm中的至少一个相同时,lfnsttrsetidx可被确定为m。这里,m可以是正整数。例如,m可以是0。
[1384]
如在表23至表26的示例中,predmodeintra可以是在执行广角帧内预测模式映射处理之前或在不执行广角帧内预测模式映射处理时的帧内预测模式。这里,帧内预测模式可具有范围从0至m的值。这里,m可以是帧内预测模式的最大值(正整数)。m可以是66。
[1385]
例如,当表20至表22和表24至表26的示例被使用时,由于将被存储在编码器/解码器中的变换矩阵的数量可从4减少到3,因此可减小在编码器/解码器中存储变换矩阵所需的存储器大小。
[1386]
【表19】
[1387]
predmodeintralfnsttrsetidxpredmodeintra<010<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=23224<=predmodeintra<=44345<=predmodeintra<=55256<=predmodeintra<=80181<=predmodeintra<=830
[1388]
【表20】
[1389]
predmodeintralfnsttrsetidxpredmodeintra<010<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=23224<=predmodeintra<=44245<=predmodeintra<=55256<=predmodeintra<=80181<=predmodeintra<=830
[1390]
【表21】
[1391]
predmodeintralfnsttrsetidxpredmodeintra<010<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=232
24<=predmodeintra<=44145<=predmodeintra<=55256<=predmodeintra<=80181<=predmodeintra<=830
[1392]
【表22】
[1393]
predmodeintralfnsttrsetidxpredmodeintra<010<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=23224<=predmodeintra<=44045<=predmodeintra<=55256<=predmodeintra<=80181<=predmodeintra<=830
[1394]
【表23】
[1395]
predmodeintralfnsttrsetidx0<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=23224<=predmodeintra<=44345<=predmodeintra<=55256<=predmodeintra<=661
[1396]
【表24】
[1397]
predmodeintralfnsttrsetidx0<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=23224<=predmodeintra<=44245<=predmodeintra<=55256<=predmodeintra<=661
[1398]
【表25】
[1399]
predmodeintralfnsttrsetidx0<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=23224<=predmodeintra<=44145<=predmodeintra<=55256<=predmodeintra<=661
[1400]
【表26】
[1401]
predmodeintralfnsttrsetidx0<=predmodeintra<=102<=predmodeintra<=12113<=predmodeintra<=23224<=predmodeintra<=44045<=predmodeintra<=55256<=predmodeintra<=661
[1402]
如在图30至图32的示例中,可基于ntrs、lfnsttrsetidx和lfnst_idx推导变换矩阵lowfreqtransmatrix。
[1403]
通常,当存在残差信号时,残差信号在编码处理中可被变换编码,并且然后通过被包括在比特流中而被发送。残差信号可在解码处理中通过被逆变换编码而被推导出。
[1404]
指示是否存在被包括在比特流中且被发送到解码器的残差信号相关信息的标识信息(例如,量化的变换系数等)可以是以下信息中的至少一个。
[1405]
cu_cbf:可表示当亮度分量和色度分量具有相同的块分区结构时关于是否存在亮度分量块的残差信号的量化的变换系数和色度分量块的残差信号的量化的变换系数的信息。当亮度分量和色度分量具有独立的块分区结构时,cu_cbf可表示关于是否存在亮度分量块或色度分量块的残差信号的量化的变换系数的信息。当关于是否存在残差信号的量化的变换系数的信息具有第一值(1)时,这可表示存在对应块的残差信号的量化的变换系数。当该信息具有第二值(0)时,这可表示不存在对应块的残差信号的量化的变换系数。当亮度分量和色度分量具有相同的块分区结构并且残差信号的量化的变换系数存在于亮度分量块和色度分量(cb和cr)块中的至少一个中时,cu_cbf可具有第一值。另一方面,当不存在针对所有分量的残差信号的量化的变换系数时,cu_cbf可具有第二值。
[1406]
tu_cbf_luma:可表示是否存在亮度分量块的残差信号的量化的变换系数。当关于是否存在亮度分量块的残差信号的量化的变换系数的信息具有第一值(1)时,这可表示存在对应亮度块的残差信号的量化的变换系数。此外,当该信息具有第二值(0)时,这可表示不存在对应亮度块的残差信号的量化的变换系数。
[1407]
tu_cbf_cr、tu_cbf_cb:可表示是否分别存在色度分量中的cr和cb的残差信号的量化的变换系数。当关于是否存在色度分量(cr或cb)块的残差信号的量化的变换系数的信息具有第一值(1)时,这可表示存在对应色度分量(cr或cb)块的残差信号的量化的变换系数。此外,当该信息具有第二值(0)时,这可表示不存在对应色度分量(cr或cb)块的残差信号的量化的变换系数。
[1408]
通常,仅当cu_cbf具有第一值(1)时,可另外发送tu_cbf_luma、tu_cbf_cr和tu_cbf_cb中的至少一个,从而指示是否存在亮度分量、作为色度分量的cr或作为色度分量的cb的残差信号的量化的变换系数。
[1409]
当亮度分量和色度分量具有独立的块分区结构时,cu_cbf可与tu_cbf_luma具有相同的信息。
[1410]
变换编码可包括初级变换/逆变换和次级变换/逆变换中的至少一个。
[1411]
在初级变换中,对于变换目标块,可在水平方向和垂直方向上应用dct-2。可选地,
对于变换目标块,可分别在水平方向和垂直方向上应用dst-7和dct-8。此外,可以以索引形式用信号发送应用于变换目标块的初级变换类型。当初级变换类型为dct-2时,初级变换类型索引可具有值0。此外,当根据dst-7和dct-8的组合执行变换时,初级变换类型索引可具有大于0的任意整数值。例如,当初级变换类型索引为1时,可在水平方向和垂直方向两者上应用dst-7。当初级变换类型索引为2时,可在水平方向上应用dst-7,并且可在垂直方向上应用dct-8。当初级变换类型索引为3时,可分别在水平方向和垂直方向上应用dct-8和dst-7。当初级变换类型索引为4时,可在水平方向和垂直方向两者上应用dct-8。
[1412]
可将次级变换应用于经过初级变换的信号的一部分。可以以索引形式用信号发送次级变换类型。当次级变换类型未被应用时,次级变换类型索引可具有值0。此外,当次级变换类型被应用时,次级变换类型索引可具有大于0的整数值。
[1413]
可在解码器中通过使用针对用信号发送的次级变换类型的索引来推导将被应用于次级逆变换的核。可通过应用由此推导出的核来执行次级逆变换。
[1414]
可在解码器中通过使用针对用信号发送的初级变换类型的索引来推导将被应用于初级逆变换的核。可通过使用由此推导出的核来对经过次级逆变换的信号执行初级逆变换。
[1415]
当应用次级变换时,dct-2可总是被应用于初级变换类型。当dct-2被应用于初级变换时,能量倾向于集中在经过初级变换的块的左上方位置。此外,当能量集中在经过初级变换的块的左上方位置时,次级变换很可能被应用。因此,当dct-2被应用于初级变换时,可提高编码效率的方面。
[1416]
此外,当次级变换/逆变换未被应用时,可通过对针对初级变换类型的索引进行熵编码/熵解码来应用初级变换/逆变换。
[1417]
初级变换和次级变换的可应用的水平尺寸或垂直尺寸可被限制。
[1418]
当cu的尺寸大于实现初级变换的最大尺寸时,cu被隐式地分区,直到其尺寸变得等于或小于实现初级变换的最大尺寸为止。由此分区出的块可被定义为变换单元(tu)。因此,一个cu可由一个或更多个tu组成。基于tu,可根据预定变换类型对通过预测编码生成的残差信号进行变换/逆变换。
[1419]
根据实施例,可在cu中用信号发送初级变换类型索引和次级变换类型索引。
[1420]
换言之,可将相同的初级变换类型和相同的次级变换类型中的至少一个应用于包括在cu中的所有tu。
[1421]
在这种情况下,例如,当通过应用isp方法生成帧内预测信号时,可将相同的初级变换类型和相同的次级变换类型中的至少一个应用于分区出的isp块。
[1422]
由于与将不同的初级变换类型和次级变换类型应用于cu中包括的每个tu相比,该方法用信号发送了更少量的数据,因此可提高编码效率。
[1423]
当用信号发送初级变换类型索引和次级变换类型索引时,可首先用信号发送初级变换类型索引,并且随后可用信号发送初级变换类型索引。
[1424]
当次级变换类型索引不为0时(即,当次级变换被应用时),由于dct-2总是被应用为初级变换类型,因此初级变换类型索引可不被用信号发送,而是可被设置为0(为指示dct-2的初级变换类型索引值)。换言之,当次级变换类型索引不是第一值(例如,0)时(即,当次级变换被应用时),可不用信号发送初级变换类型索引。
[1425]
当次级变换类型索引为0时(即,当次级变换未被应用时),可用信号发送初级变换类型索引。
[1426]
另外,可通过针对cu或cu中包括的tu的亮度分量不执行初级变换的变换跳过方法来对残差信号进行编码/解码。在这种情况下,也可不用信号发送初级变换类型索引。然而,由于在tu中执行了变换跳过,因此可在tu中用信号发送指示变换跳过的信息(transform_skip_flag)。此外,当存在亮度分量块的残差信号的量化的变换系数时(即,当tu_cbf_luma具有值1时),可用信号发送初级变换类型索引。因此,当将在cu中被用信号发送的次级变换类型索引为0且满足以下条件中的至少一个条件时,可用信号发送将在cu中被用信号发送的初级变换类型索引。
[1427]-针对cu中包括的每个tu的亮度分量,残差信号没有通过变换跳过方法被编码(即,针对每个tu的亮度分量,transform_skip_flag为0)
[1428]-针对cu中包括的tu中的至少一个tu的亮度分量,残差信号没有通过变换跳过方法被编码(即,针对cu中包括的tu中的至少一个tu的亮度分量,transform_skip_flag为0)
[1429]-针对cu中包括的第一tu的亮度分量,残差信号没有通过变换跳过方法被编码(即,cu中包括的第一tu亮度分量的transform_skip_flag为1)
[1430]-cu中包括的每个tu的tu_cbf_luma值为1
[1431]-cu中包括的至少一个tu的tu_cbf_luma值为1
[1432]-cu中包括的第一tu的tu_cbf_luma值为1
[1433]
根据实施例,可在tu中用信号发送初级变换类型索引和次级变换类型索引。
[1434]
换言之,被应用于cu中包括的tu的初级变换类型和次级变换类型可彼此不同。
[1435]
在这种情况下,例如,当通过应用isp方法生成帧内预测信号时,可将不同的初级变换类型和次级变换类型应用于每个分区出的子块。
[1436]
由于能够将合适的变换类型应用于每个tu,因此与将相同的初级变换类型和相同的次级变换类型应用于cu中包括的所有tu的方法相比,上述变换方法可提高编码准确度。
[1437]
根据实施例,可依次用信号发送次级变换类型索引和初级变换类型索引。
[1438]
当次级变换类型索引不为0时(即,当次级变换被应用时),由于dct-2总是被应用为初级变换类型,因此初级变换类型索引可不被用信号发送,而是被设置为0(为指示dct-2的初级变换类型索引值)。换言之,当次级变换类型索引不为0时(即,当次级变换被应用时),可不用信号发送初级变换类型索引。
[1439]
当次级变换类型索引为0时(即,当次级变换未被应用时),可用信号发送初级变换类型索引。
[1440]
另外,可通过针对tu的亮度分量不执行初级变换的变换跳过方法来对残差信号进行编码/解码。在这种情况下,也可不用信号发送初级变换类型索引。因此,当将在tu中被用信号发送的次级变换类型索引为0且对应tu的亮度分量未通过变换跳过方法被编码时,可用信号发送将在tu中被用信号发送的初级变换类型索引。
[1441]
如在图33至图36的示例中,lfnst_idx[x0][y0]可表示指示变换矩阵集中的变换矩阵之中的哪个变换矩阵将被用于缩减的次级变换/逆变换的变换矩阵索引。
[1442]
关于变换跳过模式标志,可在以下情况中的至少一种情况下对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1443]-如在图37的示例中,树结构为单树类型(single_tree),并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])、针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])中的至少一个为第一值(例如,0)
[1444]
(treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0||transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0))
[1445]-如在图38的示例中,树结构为双树亮度类型(dual_tree_luma),并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0)
[1446]
(treetype==dual_tree_luma&&transform_skip_flag[x0][y0][0]==0)
[1447]-如在图39的示例中,树结构为单树类型(single_tree)或双树亮度类型(dual_tree_luma),并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0)
[1448]
((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)
[1449]-如在图40的示例中,树结构为双树色度类型(dual_tree_chroma),针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])中的至少一个为第一值(例如,0),并且chromaarraytype不为第一值(例如,0)
[1450]
(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0||transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0)
[1451]-如在图41的示例中,树结构为单树类型(single_tree)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])、针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])中的至少一个为第一值(0),或者树结构是双树亮度类型(dual_tree_luma)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])是第一值(例如,0),或者树结构是双树色度类型(dual_tree_chroma)并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])中的至少一个是第一值(例如,0)且chromaarraytype不是第一值(例如,0)
[1452]
((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))
[1453]-如在图42的示例中,树结构为单树类型(single_tree)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])、针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])中的至少一个为第一值(0),或者树结构是单树类型(single_tree)或双树亮度类型(dual_tree_luma)并且针对亮度分量的变换跳过模式标志
(transform_skip_flag[x0][y0][0])是第一值(例如,0),或者树结构是双树色度类型(dual_tree_chroma)并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])中的至少一个是第一值(例如,0)且chromaarraytype不是第一值(例如,0)
[1454]
((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))
[1455]-如在图43的示例中,树结构为单树类型(single_tree)或双树亮度类型(dual_tree_luma)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0),或者树结构为双树色度类型(dual_tree_chroma)并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])中的至少一个是第一值(例如,0)且chromaarraytype不是第一值(例如,0)。
[1456]
(((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))
[1457]
作为另一示例,关于变换跳过模式标志,可在以下情况中的至少一个情况下对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1458]-如在图44的示例中,树结构为单树类型(single_tree)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])、针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0)
[1459]
(treetype==single_tree&&(transform_skip_flag[x0][y0][0]==0&&transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0))
[1460]-如在图45的示例中,树结构为单树类型(single_tree)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0)
[1461]
(treetype==single_tree&&transform_skip_flag[x0][y0][0]==0)
[1462]-如在图46的示例中,树结构为双树亮度类型(dual_tree_luma),并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0)
[1463]
(treetype==dual_tree_luma&&transform_skip_flag[x0][y0][0]==0)
[1464]-如在图47的示例中,树结构为单树类型(single_tree)或双树亮度类型(dual_tree_luma),并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0)
[1465]
((treetype==single_tree||treetype==dual_tree_luma)&&transform_skip_flag[x0][y0][0]==0)
[1466]-如在图48的示例中,树结构为双树色度类型(dual_tree_chroma),并且针对色度
分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0)
[1467]
(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0))
[1468]-如在图49的示例中,树结构是双树色度类型(dual_tree_chroma),针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都是第一值(例如,0),并且chromaarraytype不是第一值(例如,0)
[1469]
(treetype==dual_tree_chroma&&(transform_skip_flag[x0][y0][1]==0&&transform_skip_flag[x0][y0][2]==0)&&chromaarraytype!=0)
[1470]-如在图50的示例中,树结构为单树类型(single_tree)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])、针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0),或者树结构是双树亮度类型(dual_tree_luma)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])是第一值(例如,0),或者树结构是双树色度类型(dual_tree_chroma)并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0)且chromaarraytype不是第一值(例如,0)
[1471]
((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))
[1472]-如在图51的示例中,树结构为单树类型(single_tree)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])、针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0),或者树结构是双树亮度类型(dual_tree_luma)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])是第一值(例如,0),或者树结构是双树色度类型(dual_tree_chroma)并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0)
[1473]
((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))
[1474]-如在图52的示例中,树结构为单树类型(single_tree)或双树亮度类型(dual_tree_luma)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])
为第一值(例如,0),或者树结构是双树色度类型(dual_tree_chroma)并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0)且chromaarraytype不是第一值(例如,0)
[1475]
(((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))
[1476]-如在图53的示例中,树结构为单树类型(single_tree)或双树亮度类型(dual_tree_luma)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0),或者树结构是双树色度类型(dual_tree_chroma),并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都是第一值(例如,0)
[1477]
(((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)))
[1478]-如在图54的示例中,树结构为单树类型(single_tree)或双树亮度类型(dual_tree_luma)或chromaarraytype为第一值(例如,0)并且针对亮度分量的变换跳过模式标志(transform_skip_flag[x0][y0][0])为第一值(例如,0),或者树结构是双树色度类型(dual_tree_chroma)并且针对色度分量(cb)的变换跳过模式标志(transform_skip_flag[x0][y0][1])和针对色度分量(cr)的变换跳过模式标志(transform_skip_flag[x0][y0][2])都为第一值(例如,0)且chromaarraytype不是第一值(例如,0)
[1479]
(((treetype==single_tree||treetype==dual_tree_luma||chromaarraytype==0)&&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))
[1480]
如在图55的示例中,关于变换跳过模式标志,可根据与是否存在以作为颜色分量单元的变换块/单元为单位在对应变换块/单元中被编码的非零变换系数或非零变换系数等级有关的信息对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1481]
例如,当针对特定颜色分量(亮度分量、cb分量和cr分量中的至少一个)的编码块标志是第一值(例如,0)或者变换跳过模式标志是第一值(例如,0)时,可对lfnst_idx[x0][y0]进行熵编码/熵解码。
[1482]
根据颜色分量,编码块标志可表示tu_y_coded_flag、tu_cb_coded_flag和tu_cr_coded_flag中的至少一个。此外,当编码块标志是第一值(例如,0)时,这可表示不存在以变换块/单元为单位在对应变换块/单元中被编码的非零变换系数或非零变换系数等级。此外,当编码块标志是第二值(例如,1)时,这可表示存在以变换块/单元为单位在对应变换块/单元中被编码的非零变换系数或非零变换系数等级。
[1483]
这里,当变换跳过模式标志是第一值(例如,0)时,这可表示初级变换和次级变换中的至少一个被执行。此外,当变换跳过模式标志是第二值(例如,1)时,这可表示初级变换
和次级变换中的至少一个未被执行。
[1484]
chromaarraytype可表示当前序列或画面的色度格式。
[1485]
当chromaarraytype是第一值(例如,0)时,色度格式可被确定为4:0:0颜色格式,其中,在4:0:0颜色格式中不存在色度信号并且仅存在亮度信号。当色度格式是4:0:0颜色格式时,它可被确定为没有色度分量的单色。此外,当chromaarraytype是第二值(例如,1)时,色度格式可被设置为4:2:0颜色格式。当chromaarraytype是第三值(例如,2)时,色度格式可被设置为4:2:2颜色格式。当chromaarraytype是第四值(例如,3)时,色度格式可被设置为4:4:4颜色格式。
[1486]
chromaarraytype可基于chroma_format_idc语法元素值而被确定,并且表示色度分量的形式。
[1487]
根据实施例,基于次级变换执行信息,可确定次级变换/逆变换是否被应用于当前块。可根据变换矩阵索引(lfnst_idx)和/或树结构来推导次级变换执行信息。可针对序列、画面、子画面、并行块、条带、编码单元、预测单元和变换单元中的至少一个确定次级变换执行信息。根据次级变换执行信息,默认量化矩阵可被用于应用次级变换/逆变换的块。默认量化矩阵可表示所有矩阵系数具有常数值n的矩阵。这里,n可以是正整数。例如,n可以是16。
[1488]
根据实施例,当变换矩阵索引指示第一值(例如,0)时,可确定次级变换执行信息以指示次级变换/逆变换未被应用于当前块。当变换矩阵索引指示除了第一值之外的其他值时,可确定次级变换执行信息以指示次级变换/逆变换被应用于当前块。换言之,可从变换矩阵索引推导次级变换是否被应用于当前块。
[1489]
根据另一实施例,基于树结构,可确定次级变换执行信息。当树结构是单树类型时,可如下确定次级变换执行信息。
[1490]-针对亮度分量的块,当变换矩阵索引指示第一值(例如,0)时,可确定次级变换执行信息以指示次级变换/逆变换未被应用于当前块。此外,当变换矩阵索引指示除了第一值之外的其他值时,可确定次级变换执行信息以指示次级变换/逆变换被应用于当前块。
[1491]-然而,针对色度分量的块,可确定次级变换执行信息以指示次级变换/逆变换未被应用于当前块,而不管变换矩阵索引的值如何。
[1492]
当树结构是双树类型时,可确定次级变换执行信息,而不管块的颜色分量如何。例如,当变换矩阵索引指示第一值(例如,0)时,可确定次级变换执行信息以指示次级变换/逆变换未被应用于当前块。当变换矩阵索引指示除了第一值之外的其他值时,可确定次级变换执行信息以指示次级变换/逆变换被应用于当前块。
[1493]
图56示出根据实施例的视频解码方法。
[1494]
在步骤s5602,可获得指示变换跳过模式是否被应用于当前块的变换跳过模式标志。
[1495]
根据实施例,针对当前块,可获得关于帧内残差dpcm方法是否被使用的信息。当关于帧内残差dpcm方法是否被使用的信息示出帧内残差dpcm方法被用于当前块时,可确定变换跳过模式被应用于当前块。当关于帧内残差dpcm方法是否被使用的信息示出帧内残差dpcm方法未被用于当前块时,可获得变换跳过模式标志。
[1496]
根据实施例,针对当前块,可获得针对亮度分量的变换跳过模式标志、针对cb分量
的变换跳过模式标志和针对cr分量的变换跳过模式标志。
[1497]
在步骤s5604,当根据变换跳过模式标志,变换跳过模式被应用于当前块时,可确定次级变换/逆变换未被应用于当前块。
[1498]
根据实施例,当当前块的树结构是单树类型,针对亮度分量的变换跳过模式标志指示变换跳过模式被应用于亮度分量,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,可确定次级变换/逆变换未被应用于当前块。
[1499]
根据实施例,当当前块的树结构是双树亮度类型并且针对亮度分量的变换跳过模式标志指示变换跳过模式被应用于亮度分量时,可确定次级变换/逆变换未被应用于当前块。
[1500]
根据实施例,当当前块的树结构是双树色度类型,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,可确定次级变换/逆变换未被应用于当前块。
[1501]
在步骤s5606,当根据变换跳过模式标志,变换跳过模式未被应用于当前块时,可获得用于当前块的次级变换/逆变换的变换矩阵索引。此外,根据变换矩阵索引,可确定次级变换/逆变换是否被应用于当前块。
[1502]
根据实施例,当当前块根据不是基于矩阵的帧内预测模式的帧内预测模式而被预测时,可获得用于当前块的次级变换/逆变换的变换矩阵索引。
[1503]
根据实施例,当次级变换/逆变换被应用于当前块时,可根据变换矩阵索引确定当前块的次级变换矩阵。此外,根据次级变换矩阵,可将次级变换/逆变换应用于当前块。
[1504]
根据实施例,可根据变换矩阵索引、当前块的尺寸和变换跳过模式标志中的至少一个确定次级变换/逆变换是否被应用于当前块。此外,可根据变换矩阵索引、当前块的变换矩阵集索引和当前块的尺寸中的至少一个确定当前块的次级变换矩阵。
[1505]
图57示出根据实施例的视频编码方法。
[1506]
在步骤s5702,可对指示变换跳过模式是否被应用于当前块的变换跳过模式标志进行熵编码。
[1507]
根据实施例,针对当前块,可对关于帧内残差dpcm方法是否被使用的信息进行熵编码。此外,当关于帧内残差dpcm方法是否被使用的信息示出帧内残差dpcm方法被用于当前块时,可确定变换跳过模式被应用于当前块。另一方面,当关于帧内残差dpcm方法是否被使用的信息示出帧内残差dpcm方法未被用于当前块时,可对当前块的变换跳过模式标志进行熵编码。
[1508]
根据实施例,针对当前块,可对针对亮度分量的变换跳过模式标志、针对cb分量的变换跳过模式标志和针对cr分量的变换跳过模式标志进行熵编码。
[1509]
在步骤s5704,当根据变换跳过模式标志将变换跳过模式应用于当前块时,可确定次级变换/逆变换未被应用于当前块。
[1510]
根据实施例,当当前块的树结构是单树类型,针对亮度分量的变换跳过模式标志指示变换跳过模式被应用于亮度分量,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,可确定次级变换/逆变换未被应用于当前块。
[1511]
根据实施例,当当前块的树结构是双树亮度类型并且针对亮度分量的变换跳过模式标志指示变换跳过模式被应用于亮度分量时,可确定次级变换/逆变换未被应用于当前块。
[1512]
根据实施例,当当前块的树结构是双树色度类型,针对cb分量的变换跳过模式标志指示变换跳过模式被应用于cb分量,并且针对cr分量的变换跳过模式标志指示变换跳过模式被应用于cr分量时,可确定次级变换/逆变换未被应用于当前块。
[1513]
在步骤s5706,当变换跳过模式未被应用于当前块时,可确定次级变换/逆变换是否被应用于当前块。此外,根据次级变换/逆变换是否被应用于当前块,可对用于当前块的次级变换/逆变换的变换矩阵索引进行熵编码。
[1514]
根据实施例,当次级变换/逆变换被应用于当前块时,可确定当前块的次级变换矩阵。此外,根据次级变换/逆变换是否被应用于当前块,可对变换矩阵索引进行熵编码。
[1515]
根据实施例,可根据变换矩阵索引、当前块的尺寸和变换跳过模式标志中的至少一个确定次级变换/逆变换是否被应用于当前块。此外,可根据变换矩阵索引、当前块的变换矩阵集索引和当前块的尺寸中的至少一个确定当前块的次级变换矩阵。
[1516]
根据实施例,当当前块根据不是基于矩阵的帧内预测模式的帧内预测模式而被预测时,可对变换矩阵索引进行熵编码。
[1517]
图56和图57的实施例是说明性的,并且本领域技术人员可容易地修改图56和图57的每个步骤。此外,图56和图57的每个配置可被省略或被其他配置代替。可在图2的解码器中执行图56的视频解码方法。此外,可在图1的编码器中执行图57的视频编码方法。此外,一个或更多个处理器可执行实现图56和图57的每个步骤的命令。此外,包括实现图56和图57的每个步骤的命令的程序产品可被存储在存储器装置中或被在线流传。
[1518]
在本说明书中,当获得预定信息时,这可表示该信息是从比特流熵编码得到的。
[1519]
在编码器中,可通过在变换/逆变换处理中使用上述实施例中的至少一个实施例来执行变换/逆变换。此外,在解码器中,可通过在逆变换处理中使用上述实施例中的至少一个实施例来执行逆变换。
[1520]
在上述实施例中,基于针对块的帧内预测模式、预测模式、颜色分量、尺寸、形式、子块分区相关信息、次级变换执行信息和基于矩阵的帧内预测执行信息中的至少一个编码参数,可在变换/逆变换处理中确定变换是否被使用、一维变换类型、以及二维变换组合中的至少一个。
[1521]
在上述实施例中,基于针对块的帧内预测模式、预测模式、颜色分量、尺寸、形式、子块分区相关信息、次级变换执行信息和基于矩阵的帧内预测执行信息中的至少一个编码参数,可确定缩减的次级变换/逆变换矩阵集、缩减的次级变换/逆变换矩阵以及缩减的次级变换/逆变换是否被执行中的至少一个。
[1522]
在编码器中,可通过在量化/反量化处理中使用量化矩阵和上述实施例来执行量化/反量化。此外,在解码器中,可通过在反量化处理中使用恢复的量化矩阵和上述实施例来执行反量化。恢复的量化矩阵可以是二维形式的量化矩阵。
[1523]
在上述实施例中,可执行对量化矩阵的表达、构建、恢复、预测和编码/解码中的至少一个操作,使得基于针对块的预测模式、颜色分量、尺寸、形式、一维变换类型、二维变换组合以及变换是否被使用中的至少一个,在量化/反量化处理中使用不同的量化矩阵。这
里,被执行表达、构建、恢复、预测和编码/解码中的至少一个操作的量化矩阵中的至少一个量化矩阵可根据预测模式、颜色分量、尺寸、形式、一维变换类型、二维变换组合以及变换是否被使用中的至少一个而在量化矩阵中具有至少一个不同系数。
[1524]
在上述实施例中,可在编码器中通过在量化期间使用针对变换系数的量化矩阵来生成变换系数等级,并且可在解码器中通过在反量化期间使用针对变换系数等级的量化矩阵来生成变换系数。在本发明中,为了方便起见,变换系数和变换系数等级两者被统称为变换系数。
[1525]
在上述实施例中,由于m
×
n或n
×
m量化矩阵能够从正方形m
×
m量化矩阵推导出,因此在量化/反量化中表示为m
×
m尺寸的量化矩阵不仅可表示正方形m
×
m量化矩阵,而且可表示非正方形m
×
n或n
×
m量化矩阵。这里,m和n可以是正整数并且具有从2至64的值。此外,m和n可以是彼此不同的值。
[1526]
例如,由于非正方形16
×
4或4
×
16量化矩阵能够在量化/反量化中从正方形16
×
16量化矩阵推导出,因此在量化/反量化中表示为16
×
16尺寸的量化矩阵不仅可表示正方形16
×
16量化矩阵,而且可表示非正方形16
×
4或4
×
16量化矩阵。
[1527]
在上述实施例中,量化矩阵信息可表示量化矩阵和量化矩阵推导中的至少一个所需的信息。这里,推导量化矩阵所需的信息可包括关于量化矩阵是否被使用的信息、关于是否存在量化矩阵的信息、关于对量化矩阵进行预测的方法的信息、参考矩阵标识符、dc矩阵系数或最低频矩阵系数、和量化矩阵中的先前被编码/解码的量化矩阵系数值与将被编码/解码的量化矩阵系数值之间的差值中的至少一个。
[1528]
可根据块和单元中的至少一个的尺寸来应用本发明的以上实施例。这里,尺寸可被定义为最小尺寸或最大尺寸或者最小尺寸和最大尺寸两者,使得以上实施例被应用,或者尺寸可被定义为应用以上实施例的固定尺寸。此外,在以上实施例中,第一实施例可被应用于第一尺寸,并且第二实施例可被应用于第二尺寸。换言之,可根据尺寸组合地应用以上实施例。此外,仅当尺寸等于或大于最小尺寸并且等于或小于最大尺寸时,可应用以上实施例。换言之,仅当块尺寸在预定范围内时,可应用以上实施例。
[1529]
此外,仅当尺寸等于或大于最小尺寸并且等于或小于最大尺寸时,可应用以上实施例。这里,最小尺寸和最大尺寸可分别是块尺寸和单元尺寸中的一个。换言之,最小尺寸的目标块和最大尺寸的目标块可彼此不同。此外,当当前块的尺寸等于或大于块的最小尺寸并且等于或小于块的最大尺寸时,可应用以上实施例。
[1530]
例如,仅当当前块的尺寸等于或大于8
×
8时,可应用以上实施例。例如,仅当当前块的尺寸等于或大于16
×
16时,可应用以上实施例。例如,仅当当前块的尺寸等于或大于32
×
32时,可应用以上实施例。例如,仅当当前块的尺寸等于或大于64
×
64时,可应用以上实施例。例如,仅当当前块的尺寸等于或大于128
×
128时,可应用以上实施例。例如,仅当当前块的尺寸为4
×
4时,可应用以上实施例。例如,仅当当前块的尺寸等于或小于8
×
8时,可应用以上实施例。例如,仅当当前块的尺寸等于或小于16
×
16时,可应用以上实施例。例如,仅当当前块的尺寸等于或大于8
×
8并且等于或小于16
×
16时,可应用以上实施例。例如,仅当当前块的尺寸等于或大于16
×
16并且等于或小于64
×
64时,可应用以上实施例。
[1531]
可在编码器和解码器中以相同的方法执行上述实施例。
[1532]
上述实施例中的至少一个实施例或组合可被用于对视频进行编码/解码。
[1533]
应用于上述实施例的顺序在编码器与解码器之间可不同,或者应用于上述实施例的顺序在编码器和解码器中可相同。
[1534]
可对每个亮度信号和每个色度信号执行上述实施例,或者可对亮度信号和色度信号相同地执行上述实施例。
[1535]
应用了本发明的上述实施例的块形式可具有正方形形式或非正方形形式。
[1536]
仅上述实施例中的任意一个实施例不被应用于当前块的编码/解码处理,但是所述实施例中的至少一个实施例或特定实施例的组合可应用于当前块的编码/解码处理。
[1537]
由编码器熵编码和由解码器熵解码的语法元素(标志、索引等)中的至少一个可使用以下二值化/反二值化方法和熵编码/熵解码方法中的至少一种。
[1538]-有符号0阶exp_golomb二值化/反二值化方法(se(v))
[1539]-有符号k阶exp_golomb二值化/反二值化方法(sek(v))
[1540]-无符号0阶exp_golomb二值化/反二值化方法(ue(v))
[1541]-无符号k阶exp_golomb二值化/反二值化方法(uek(v))
[1542]-固定长度二值化/反二值化方法(f(n))
[1543]-截断rice二值化/反二值化方法或截断一元二值化/反二值化方法(tu(v))
[1544]-截断二元二值化/反二值化方法(tb(v))
[1545]-上下文自适应算术编码/解码方法(ae(v))
[1546]-字节单位比特串(b(8))
[1547]-有符号整数二值化/反二值化方法(i(n))
[1548]-无符号整数二值化/反二值化方法(u(n))
[1549]-一元二值化/反二值化方法
[1550]
可根据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本发明的上述实施例。这里,尺寸可被定义为最小尺寸或最大尺寸或者最小尺寸和最大尺寸两者,使得上述实施例被应用,或者尺寸可被定义为应用上述实施例的固定尺寸。此外,在上述实施例中,第一实施例可被应用于第一尺寸,并且第二实施例可被应用于第二尺寸。换句话说,可根据尺寸组合地应用上述实施例。此外,当尺寸等于或大于最小尺寸且等于或小于最大尺寸时,可应用上述实施例。换句话说,当块尺寸被包括在特定范围内时,可应用上述实施例。
[1551]
例如,当当前块的尺寸为8
×
8或更大时,可应用上述实施例。例如,当当前块的尺寸仅为4
×
4时,可应用上述实施例。例如,当当前块的尺寸为16
×
16或更小时,可应用上述实施例。例如,当当前块的尺寸等于或大于16
×
16且等于或小于64
×
64时,可应用上述实施例。
[1552]
可根据时间层来应用本发明的上述实施例。为了标识可应用上述实施例的时间层,对应标识符可被用信号发送,并且可将上述实施例应用于由所述对应标识符标识的指定时间层。这里,标识符可被定义为可应用上述实施例的最低层或最高层或者最低层和最高层两者,或者可被定义为指示应用所述实施例的特定层。此外,可定义应用所述实施例的固定时间层。
[1553]
例如,当当前图像的时间层是最低层时,可应用上述实施例。例如,当当前图像的时间层标识符是1时,可应用上述实施例。例如,当当前图像的时间层是最高层时,可应用上
述实施例。
[1554]
可定义应用本发明的上述实施例的条带类型或并行块组类型,并且可根据对应的条带类型或并行块组类型来应用上述实施例。
[1555]
在上述实施例中,基于具有一系列步骤或单元的流程图描述了所述方法,但是本发明不限于所述步骤的顺序,而是一些步骤可与其他步骤同时执行或按不同的顺序执行。此外,本领域普通技术人员应理解,流程图中的步骤不彼此排斥,并且在不影响本发明的范围的情况下,可将其他步骤添加到流程图,或者可从流程图删除一些步骤。
[1556]
所述实施例包括示例的各个方面。可不描述针对各个方面的所有可能组合,但是本领域技术人员将能够认识到不同的组合。因此,本发明可包括权利要求的范围内的所有替换、修改和改变。
[1557]
可以以可由各种计算机组件执行并被记录在计算机可读记录介质中的程序指令的形式实现本发明的实施例。计算机可读记录介质可包括单独的程序指令、数据文件、数据结构等或者程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可以是针对本发明专门设计和构建的,或者是计算机软件技术领域的普通技术人员公知的。计算机可读记录介质的示例包括被具体构建为存储和实现程序指令的磁记录介质(诸如硬盘、软盘和磁带)、光学数据存储介质(诸如cd-rom或dvd-rom)、磁光介质(诸如软光盘)以及硬件装置(诸如只读存储器(rom)、随机存取存储器(ram)、闪存等)。程序指令的示例不仅包括由编译器格式化的机器语言代码,还包括可由计算机使用解释器实现的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作以进行根据本发明的处理,反之亦可。
[1558]
虽然已经根据诸如详细元件的特定项以及有限的实施例和附图描述了本发明,但是提供它们仅是为了帮助对本发明的更大体的理解,并且本发明不限于上述实施例。本发明所属领域的技术人员将理解,可从上述描述进行各种修改和改变。
[1559]
因此,本发明的精神不应限于上述实施例,并且权利要求及其等同物的整体范围将落入本发明的范围和精神内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献