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

帧间预测信息编码/解码方法和装置与流程

2022-02-20 00:38:32 来源:中国专利 TAG:


1.本发明涉及一种图像编码/解码方法和设备以及用于存储比特流的记录介质。更具体地,本发明涉及一种用于对各种帧间预测模式进行编码/解码的图像编码/解码方法和设备。


背景技术:

2.最近,在各种应用中,对诸如高清(hd)或超高清(uhd)图像的高分辨率和高质量图像的需求已经增加。随着图像的分辨率和质量提高,数据量相应地增加。当通过诸如有线或无线宽带信道的现有传输介质传输图像数据时或者当存储图像数据时,这是传输成本和存储成本增加的原因之一。为了解决高分辨率和高质量图像数据的这些问题,需要高效的图像编码/解码技术。
3.存在各种视频压缩技术,诸如从先前画面或后续画面内的像素的值预测当前画面内的像素的值的帧间预测技术、从当前画面的另一区域内的像素的值预测当前画面的区域内的像素的值的帧内预测技术、压缩残差信号的能量的变换和量化技术、以及向频繁出现的像素值分配较短码而向较少出现的像素值分配较长码的熵编码技术。
4.由于帧间预测模式变得多样化以便提高图像编码设备的预测性能,用于表示帧间预测模式的数据可能增加,从而导致压缩比特的开销。


技术实现要素:

5.技术问题
6.本发明的目的是提供一种有效地对各种帧间预测模式进行编码/解码的方法。
7.此外,本发明的另一目的是提供一种用于存储由图像编码/解码方法或设备生成的比特流的记录介质。
8.技术方案
9.根据本发明的一种图像解码方法包括:对当前块的子块合并模式指示符进行解码,如果所述子块合并模式指示符不指示子块合并模式,则对所述当前块的常规合并模式指示符进行解码,并且如果所述子块合并模式指示符指示子块合并模式,则对所述当前块的子块合并模式信息进行解码。
10.在所述图像解码方法中,所述常规合并模式指示符可在第一值的情况下指示常规合并模式或具有运动矢量差的合并(mmvd)模式被用于推导所述当前块的帧间预测信息,并且在第二值的情况下指示组合帧内合并模式或几何分区合并模式被用于推导所述当前块的帧间预测信息。
11.在所述图像解码方法中,所述常规合并模式指示符是否被解码可以是基于所述当前块的组合帧内预测使用指示符而确定的。
12.在所述图像解码方法中,所述常规合并模式指示符是否被解码可以是基于所述当前块的跳过指示符而确定的。
13.在所述图像解码方法中,所述常规合并模式指示符是否被解码可以是基于所述当前块的条带类型而确定的。
14.在所述图像解码方法中,如果所述当前块的宽度或所述当前块的高度中的至少一个大于或等于预定义值,则所述常规合并模式指示符可不被解码。
15.在所述图像解码方法中,所述图像解码方法还可包括:如果所述常规合并模式指示符具有第一值,则对所述当前块的mmvd指示符进行解码,并且如果所述常规合并模式指示符具有第二值,则对所述当前块的组合帧内合并模式指示符进行解码。
16.在所述图像解码方法中,如果所述mmvd指示符在所述解码步骤中未被解码,则所述mmvd指示符可被推断为指示常规合并模式而不是mmvd模式的预定义值。
17.在所述图像解码方法中,如果所述组合帧内合并模式指示符在所述解码步骤中未被解码,则所述mmvd指示符可以是基于以下项中的至少一项而设置的:常规合并模式指示符、组合帧内合并模式使用指示符、跳过指示符、或所述当前块的尺寸。
18.根据本发明的一种图像编码方法包括:对当前块的子块合并模式指示符进行编码,如果所述子块合并模式指示符不指示子块合并模式,则对所述当前块的常规合并模式指示符进行编码,并且如果所述子块合并模式指示符指示子块合并模式,则对所述当前块的子块合并模式信息进行编码。
19.在所述图像编码方法中,所述常规合并模式指示符在第一值的情况下可指示常规合并模式或具有运动矢量差的合并(mmvd)模式被用于推导所述当前块的帧间预测信息,并且在第二值的情况下指示组合帧内合并模式或几何分区合并模式被用于推导所述当前块的帧间预测信息。
20.在所述图像编码方法中,所述常规合并模式指示符是否被编码可以是基于所述当前块的组合帧内预测使用指示符而确定的。
21.在所述图像编码方法中,所述常规合并模式指示符是否被编码可以是基于所述当前块的跳过指示符而确定的。
22.在所述图像编码方法中,所述常规合并模式指示符是否被编码可以是基于所述当前块的条带类型而确定的。
23.在所述图像编码方法中,如果所述当前块的宽度或所述当前块的高度中的至少一个大于或等于预定义值,则所述常规合并模式指示符可不被编码。
24.在所述图像编码方法中,所述图像编码方法还可包括:如果所述常规合并模式指示符具有第一值,则对所述当前块的mmvd指示符进行编码,并且如果所述常规合并模式指示符具有第二值,则对所述当前块的组合帧内合并模式指示符进行编码。
25.此外,根据本发明的记录介质可存储由根据本发明的所述图像编码方法生成的比特流。
26.有益效果
27.根据本发明,可通过定义各种帧间预测模式信息的编码/解码顺序来提高编码效率。
28.根据本发明,可通过基于在更高级被编码/解码的帧间预测模式启用信息对帧间预测模式信息进行编码/解码来提高编码效率。
29.此外,根据本发明,可提供一种用于存储由图像编码/解码方法或设备生成的比特
流的记录介质。
30.此外,根据本发明,可提高图像编码和解码效率。
附图说明
31.图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
32.图2是示出根据实施例且应用了本发明的解码设备的配置的框图。
33.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。
34.图4是示出帧内预测处理的示图。
35.图5是示出画面间预测处理的实施例的示图。
36.图6是示出变换和量化处理的示图。
37.图7是示出能够被用于帧内预测的参考样点的示图。
38.图8是示出根据本发明的实施例的帧间预测信息编码/解码方法的流程图。
39.图9至图12是示出根据本发明的各种实施例的合并模式的帧间预测信息语法的示图。
40.图13是示出在序列参数集被熵编码的非常规合并模式使用指示符的示图。
41.图14是示出根据本发明的实施例的合并模式的帧间预测信息语法的示图。
42.图15是示出序列参数集的仿射自适应运动矢量差使用指示符的示图。
43.图16是示出根据本发明的实施例的合并模式的帧间预测信息语法的示图。
44.图17是示出根据本发明的实施例的指示各种帧间预测模式的语法元素的示图。
45.图18是示出根据本发明的实施例的图像解码方法的流程图。
46.图19是示出根据本发明的实施例的图像编码方法的流程图。
具体实施方式
47.可对本发明进行各种修改,并且存在本发明的各种实施例,其中,现在将参照附图来提供本发明的各种实施例的示例并对其进行详细描述。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同或替代。在各个方面,相似的附图标号指代相同或相似的功能。在附图中,为了清楚,可夸大元件的形状和尺寸。在本发明的以下详细描述中,参照以图示的方式示出了可实践本发明的特定实施例的附图。足够详细地描述了这些实施例以使本领域技术人员能够实施本公开。应理解,本公开的各种实施例尽管不同,但不必是互斥的。例如,在不脱离本公开的精神和范围的情况下,结合一个实施例在此描述的特定特征、结构和特性可在其他实施例中被实现。此外,应理解,在不脱离本公开的精神和范围的情况下,可修改每个公开的实施例内的各个元件的位置或布置。因此,以下详细描述不应被视为具有限制意义,并且本公开的范围仅由所附权利要求(在被合适地解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
48.说明书中使用的术语“第一”、“第二”等可用于描述各种组件,但是组件不应解释为限于这些术语。这些术语仅用于将一个组件与其他组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被命名为“第二”组件,并且“第二”组件也可被类似地命名为“第一”组件。术语“和/或”包括多个项的组合或多个项中的任意一项。
49.将理解的是,在本说明书中,当元件被简单称为“连接到”或“耦接到”另一元件而不是“直接连接到”或“直接耦接到”另一元件时,元件可“直接连接到”另一元件或“直接耦接到”另一元件,或者在元件与另一元件之间介入有其他元件的情况下被连接到或耦接到另一元件。相反,应理解,当元件被称为“直接耦接”或“直接连接”到另一元件时,不存在中间元件。
50.此外,本发明的实施例中所示的构成部分被独立地示出,以表示彼此不同的特征功能。因此,这并不表示每个构成部分都以单独的硬件或软件的构成单元构成。换言之,为了方便,每个构成部分包括列举出的构成部分中的每个构成部分。因此,每个构成部分的至少两个构成部分可被组合以形成一个构成部分,或者一个构成部分可被划分为多个构成部分以执行每种功能。如果没有脱离本发明的实质,则每个构成部分被组合的实施例和一个构成部分被划分的实施例也包括在本发明的范围内。
51.本说明书中使用的术语仅用于描述特定实施例,而不旨在限制本发明。除非在上下文中具有明显不同的含义,否则以单数形式使用的表述包括复数形式的表述。在本说明书中,将理解,诸如“包括”、“具有”等的术语旨在指示存在说明书中公开的特征、数字、步骤、动作、元件、部件或其组合,而并不旨在排除可存在或可添加一个或更多个其他特征、数字、步骤、动作、元件、部件或其组合的可能性。换言之,当特定元素被称为“被包括”时,并不排除除了对应元素之外的元素,而是可在本发明的实施例或本发明的范围中包括另外的元素。
52.此外,一些组成部分可能不是执行本发明的基本功能的必不可少的组成部分,而是仅提高其性能的选择性组成部分。可通过仅包括用于实现本发明的本质的必不可少的组成部分而不包括用于提高性能的组成部分来实现本发明。仅包括必不可少的组成部分而不包括仅用于提高性能的选择性组成部分的结构也包括在本发明的范围内。
53.在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知的功能或构造,因为它们可能不必要地模糊对本发明的理解。附图中相同的构成元件由相同的附图标号表示,并且对相同元件的重复描述将被省略。
54.在下文中,图像可指构成视频的画面,或者可指视频本身。例如,“对图像进行编码或解码或者进行编码和解码两者”可指“对运动画面进行编码或解码或者进行编码和解码两者”,并且可指“对运动画面的图像中的一个图像进行编码或解码或者进行编码和解码两者”。
55.在下文中,术语“运动画面”和“视频”可用作相同的含义并且可彼此替换。
56.在下文中,目标图像可以是作为编码目标的编码目标图像和/或作为解码目标的解码目标图像。此外,目标图像可以是输入到编码设备的输入图像、以及输入到解码设备的输入图像。这里,目标图像可与当前图像具有相同的含义。
57.在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用作相同的含义并且可彼此替换。
58.在下文中,目标块可以是作为编码目标的编码目标块和/或作为解码目标的解码目标块。此外,目标块可以是作为当前编码和/或解码的目标的当前块。例如,术语“目标块”和“当前块”可被用作相同的含义并且可彼此替换。
59.在下文中,术语“块”和“单元”可被用作相同的含义并且可彼此替换。或者“块”可
表示特定单元。
60.在下文中,术语“区域”和“片段”可彼此替换。
61.在下文中,特定信号可以是表示特定块的信号。例如,原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残差块的信号。
62.在实施例中,特定信息、数据、标志、索引、元素和属性等中的每个可具有值。信息、数据、标志、索引、元素和属性的值等于“0”可表示逻辑假或第一预定义值。换言之,值“0”、假、逻辑假和第一预定义值可彼此替换。信息、数据、标志、索引、元素和属性的值等于“1”可表示逻辑真或第二预定义值。换言之,值“1”、真、逻辑真和第二预定义值可彼此替换。
63.当变量i或j用于表示列、行或索引时,i的值可以是等于或大于0的整数,或者是等于或大于1的整数。也就是说,列、行、索引等可从0开始计数,或者可从1开始计数。
64.术语的描述
65.编码器:表示执行编码的设备。也就是说,表示编码设备。
66.解码器:表示执行解码的设备。也就是说,表示解码设备。
67.块:是m
×
n的样点阵列。这里,m和n可表示正整数,并且块可表示二维形式的样点阵列。块可指单元。当前块可表示在编码时成为目标的编码目标块,或者在解码时成为目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
68.样点:是构成块的基本单元。根据比特深度(bd),样点可被表示为从0到2
bd-1的值。在本发明中,样点可被用作像素的含义。也就是说,样点、pel、像素可具有彼此相同的含义。
69.单元:可指编码和解码单元。当对图像进行编码和解码时,单元可以是通过对单个图像进行分区而生成的区域。此外,当在编码或解码期间将单个图像分区为子划分单元时,单元可表示子划分单元。也就是说,图像可被分区为多个单元。当对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为尺寸小于该单元的尺寸的子单元。根据功能,单元可表示块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种尺寸和形状,具体地,单元的形状可以是二维几何图形,诸如正方形、矩形、梯形、三角形、五边形等。此外,单元信息可包括指示编码单元、预测单元、变换单元等的单元类型以及单元尺寸、单元深度、单元的编码和解码的顺序等中的至少一个。
70.编码树单元:被配置有亮度分量y的单个编码树块以及与色度分量cb和cr相关的两个编码树块。此外,编码树单元可表示包括块和每个块的语法元素。可通过使用四叉树分区方法、二叉树分区方法和三叉树分区方法中的至少一个对每个编码树单元进行分区,以配置诸如编码单元、预测单元、变换单元等的下级单元。编码树单元可被用作用于指定在对作为输入图像的图像进行编码/解码时成为处理单元的样点块的术语。这里,四叉树可表示四元树。
71.当编码块的尺寸在预定范围内时,仅使用四叉树分区进行划分是可能的。这里,所述预定范围可被定义为能够仅使用四叉树分区进行划分的编码块的最大尺寸和最小尺寸中的至少一个。可通过比特流用信号发送指示允许四叉树分区的编码块的最大/最小尺寸的信息,并且可在序列、画面参数、并行块组或条带(片段)中的至少一个单元中用信号发送所述信息。可选地,编码块的最大/最小尺寸可以是编码器/解码器中预定的固定尺寸。例
如,当编码块的尺寸与256
×
256至64
×
64对应时,仅使用四叉树分区进行划分是可能的。可选地,当编码块的尺寸大于最大转换块的尺寸时,仅使用四叉树分区进行划分是可能的。这里,将被划分的块可以是编码块和变换块中的至少一个。在这种情况下,指示编码块的划分的信息(例如,split_flag)可以是指示是否执行四叉树分区的标志。当编码块的尺寸落在预定范围内时,仅使用二叉树或三叉树分区进行划分是可能的。在这种情况下,对四叉树分区的以上描述可以以相同方式被应用于二叉树分区或三叉树分区。
72.编码树块:可用作用于指定y编码树块、cb编码树块和cr编码树块中的任意一个的术语。
73.邻近块:可表示与当前块相邻的块。与当前块相邻的块可表示与当前块的边界接触的块、或者位于距当前块预定距离内的块。邻近块可表示与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可表示与水平相邻于当前块的邻近块垂直相邻的块、或者与垂直相邻于当前块的邻近块水平相邻的块。
74.重建邻近块:可表示与当前块相邻并且已经在空间/时间上被编码或解码的邻近块。这里,重建邻近块可表示重建邻近单元。重建空间邻近块可以是在当前画面内并且已经通过编码或解码或者编码和解码两者而被重建的块。重建时间邻近块是在参考图像内的与当前画面的当前块对应的位置处的块或所述块的邻近块。
75.单元深度:可表示单元的分区程度。在树结构中,最高节点(根节点)可与未被分区的第一单元对应。此外,最高节点可具有最小深度值。在这种情况下,最高节点的深度可以是等级0。深度为等级1的节点可表示通过对第一单元进行一次分区而生成的单元。深度为等级2的节点可表示通过对第一单元进行两次分区而生成的单元。深度为等级n的节点可表示通过对第一单元进行n次分区而生成的单元。叶节点可以是最低节点并且是不能被进一步分区的节点。叶节点的深度可以是最大等级。例如,所述最大等级的预定义值可以是3。根节点的深度可以是最低的,并且叶节点的深度可以是最深的。此外,当单元被表示为树结构时,单元所存在于的等级可表示单元深度。
76.比特流:可表示包括编码图像信息的比特流。
77.参数集:与比特流内的配置之中的头信息对应。视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个可被包括在参数集中。此外,参数集可包括条带(slice)头、并行块(tile)组头和并行块头信息。术语“并行块组”表示一组并行块并且与条带具有相同的含义。
78.自适应参数集可表示可通过在不同画面、子画面、条带、并行块组、并行块或分块(brick)中被参考而被共享的参数集。此外,可通过参考针对画面内的子画面、条带、并行块组、并行块或分块的不同自适应参数集来使用自适应参数集中的信息。
79.此外,关于自适应参数集,可通过使用针对画面内的子画面、条带、并行块组、并行块或分块的不同自适应参数集的标识符来参考不同自适应参数集。
80.此外,关于自适应参数集,可通过使用针对子画面内的条带、并行块组、并行块或分块的不同自适应参数集的标识符来参考不同自适应参数集。
81.此外,关于自适应参数集,可通过使用针对条带内的并行块或分块的不同自适应参数集的标识符来参考不同自适应参数集。
82.此外,关于自适应参数集,可通过使用针对并行块内的分块的不同自适应参数集
的标识符来参考不同自适应参数集。
83.关于自适应参数集标识符的信息可被包括在子画面的头或参数集中,并且与该自适应参数集标识符对应的自适应参数集可被用于子画面。
84.关于自适应参数集标识符的信息可被包括在并行块的头或参数集中,并且与该自适应参数集标识符对应的自适应参数集可被用于并行块。
85.关于自适应参数集标识符的信息可被包括在分块的头中,并且与该自适应参数集标识符对应的自适应参数集可被用于分块。
86.画面可被分区为一个或更多个并行块行以及一个或更多个并行块列。
87.子画面可被分区为画面内的一个或更多个并行块行以及一个或更多个并行块列。子画面可以是画面内的具有矩形/正方形形式的区域,并且可包括一个或更多个ctu。此外,至少一个或更多个并行块/分块/条带可被包括在一个子画面内。
88.并行块可以是画面内的具有矩形/正方形形式的区域,并且可包括一个或更多个ctu。此外,并行块可被分区为一个或更多个分块。
89.分块可表示并行块内的一个或更多个ctu行。并行块可被分区为一个或更多个分块,并且每个分块可具有至少一个或更多个ctu行。未被分区为两个或更多个的并行块可表示分块。
90.条带可包括画面内的一个或更多个并行块,并且可包括并行块内的一个或更多个分块。
91.解析:可表示通过执行熵解码来确定语法元素的值,或者可表示熵解码本身。
92.符号:可表示编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。此外,符号可表示熵编码目标或熵解码结果。
93.预测模式:可以是指示利用帧内预测而被编码/解码的模式或利用帧间预测而被编码/解码的模式的信息。
94.预测单元:可表示当执行预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿)时的基本单元。单个预测单元可被分区为具有更小尺寸的多个分区,或者可被分区为多个下级预测单元。多个分区可以是在执行预测或补偿时的基本单元。通过划分预测单元而生成的分区也可以是预测单元。
95.预测单元分区:可表示通过对预测单元进行分区而获得的形状。
96.参考画面列表可指包括用于帧间预测或运动补偿的一个或更多个参考画面的列表。存在若干类型的可用参考画面列表,包括lc(列表组合)、l0(列表0)、l1(列表1)、l2(列表2)、l3(列表3)。
97.帧间预测指示符可指当前块的帧间预测的方向(单向预测、双向预测等)。可选地,帧间预测指示符可指用于生成当前块的预测块的参考画面的数量。可选地,帧间预测指示符可指在对当前块执行帧间预测或运动补偿时使用的预测块的数量。
98.预测列表利用标志指示是否使用特定参考画面列表中的至少一个参考画面来生成预测块。可使用预测列表利用标志来推导帧间预测指示符,并且相反地,可使用帧间预测指示符来推导预测列表利用标志。例如,当预测列表利用标志具有第一值零(0)时,它表示参考画面列表中的参考画面不被用于生成预测块。另一方面,当预测列表利用标志具有第二值一(1)时,它表示参考画面列表被用于生成预测块。
99.参考画面索引可指指示参考画面列表中的特定参考画面的索引。
100.参考画面可表示由特定块参考以用于特定块的帧间预测或运动补偿的目的的参考画面。可选地,参考画面可以是包括由当前块参考以用于帧间预测或运动补偿的参考块的画面。在下文中,术语“参考画面”和“参考图像”具有相同的含义并且可互换。
101.运动矢量可以是用于帧间预测或运动补偿的二维矢量。运动矢量可表示编码/解码目标块与参考块之间的偏移。例如,(mvx,mvy)可表示运动矢量。这里,mvx可表示水平分量,并且mvy可表示垂直分量。
102.搜索范围可以是在帧间预测期间被搜索以检索运动矢量的二维区域。例如,搜索范围的尺寸可以是m
×
n。这里,m和n都是整数。
103.运动矢量候选可指在对运动矢量进行预测时的预测候选块或预测候选块的运动矢量。此外,运动矢量候选可被包括在运动矢量候选列表中。
104.运动矢量候选列表可表示由一个或更多个运动矢量候选组成的列表。
105.运动矢量候选索引可表示指示运动矢量候选列表中的运动矢量候选的指示符。可选地,它可以是运动矢量预测因子的索引。
106.运动信息可表示包括包含运动矢量、参考画面索引、帧间预测指示符、预测列表利用标志、参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引的项中的至少一项的信息。
107.合并候选列表可表示由一个或更多个合并候选组成的列表。
108.合并候选可表示空间合并候选、时间合并候选、组合合并候选、组合双预测合并候选或零合并候选。合并候选可包括诸如帧间预测指示符、每个列表的参考画面索引、运动矢量、预测列表利用标志和帧间预测指示符的运动信息。
109.合并索引可表示指示合并候选列表中的合并候选的指示符。可选地,合并索引可指示在空间上/时间上与当前块相邻的重建块中的块,其中,已从该块推导出合并候选。可选地,合并索引可指示合并候选的至少一条运动信息。
110.变换单元:可表示在对残差信号执行编码/解码(诸如变换、逆变换、量化、反量化、变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有更小尺寸的多个下级变换单元。这里,变换/逆变换可包括第一变换/第一逆变换和第二变换/第二逆变换中的至少一个。
111.缩放:可表示将量化的等级乘以因子的处理。可通过对量化的等级进行缩放来生成变换系数。缩放也可被称为反量化。
112.量化参数:可表示当在量化期间使用变换系数来生成量化的等级时使用的值。量化参数还可表示当在反量化期间通过对量化的等级进行缩放来生成变换系数时使用的值。量化参数可以是被映射在量化步长上的值。
113.增量量化参数:可表示预测的量化参数与编码/解码目标单元的量化参数之间的差值。
114.扫描:可表示对单元、块或矩阵内的系数进行排序的方法。例如,将系数的二维矩阵改变为一维矩阵可被称为扫描,将系数的一维矩阵改变为二维矩阵可被称为扫描或逆扫描。
115.变换系数:可表示在编码器中执行变换之后生成的系数值。变换系数可表示在解
码器中执行熵解码和反量化中的至少一个之后生成的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或者量化的变换系数等级也可落入变换系数的含义内。
116.量化的等级:可表示在编码器中通过对变换系数或残差信号进行量化而生成的值。可选地,量化的等级可表示作为在解码器中经历反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落入量化的等级的含义内。
117.非零变换系数:可表示具有除零之外的值的变换系数、或者具有除零之外的值的变换系数等级或量化的等级。
118.量化矩阵:可表示在为了提高主观图像质量或客观图像质量而执行的量化处理或反量化处理中使用的矩阵。量化矩阵也可被称为缩放列表。
119.量化矩阵系数:可表示量化矩阵内的每个元素。量化矩阵系数也可被称为矩阵系数。
120.默认矩阵:可表示在编码器或解码器中预先定义的预定量化矩阵。
121.非默认矩阵:可表示在编码器或解码器中未被预先定义而是由用户用信号发送的量化矩阵。
122.统计值:针对具有可计算的特定值的变量、编码参数、常量值等之中的至少一个的统计值可以是对应特定值的平均值、求和值、加权平均值、加权和值、最小值、最大值、最频繁出现的值、中值、插值之中的一个或更多个。
123.图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
124.编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对至少一个图像进行编码。
125.参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
126.编码设备100可通过使用帧内模式或帧间模式或者帧内模式和帧间模式两者来执行输入图像的编码。此外,编码设备100可通过对输入图像进行编码来生成包括编码信息的比特流,并输出生成的比特流。生成的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可切换到帧内。可选地,当帧间模式被用作预测模式时,切换器115可切换到帧间模式。这里,帧内模式可表示帧内预测模式,帧间模式可表示帧间预测模式。编码设备100可生成针对输入图像的输入块的预测块。此外,编码设备100可在生成预测块之后使用输入块和预测块的残差对残差块进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为当前编码目标的当前块,或者被称为编码目标块。
127.当预测模式是帧内模式时,帧内预测单元120可使用已被编码/解码并与当前块相邻的块的样点作为参考样点。帧内预测单元120可通过使用参考样点来对当前块执行空间预测,或者通过执行空间预测来生成输入块的预测样点。这里,帧内预测可表示帧内部的预测。
128.当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像检索与输入块最匹配的区域,并且通过使用检索到的区域来推导运动矢量。在这种情况下,搜索区域可被用作所述区域。参考图像可被存储在参考画面缓冲器190中。这里,当执行对参
考图像的编码/解码时,参考图像可被存储在参考画面缓冲器190中。
129.运动补偿单元112可通过使用运动矢量对当前块执行运动补偿来生成预测块。这里,帧间预测可表示帧之间的预测或运动补偿。
130.当运动矢量的值不是整数时,运动预测单元111和运动补偿单元112可通过将插值滤波器应用于参考画面的部分区域来生成预测块。为了对编码单元执行画面间预测或运动补偿,可确定跳过模式、合并模式、高级运动矢量预测(amvp)模式和当前画面参考模式之中的哪个模式被用于对包括在对应编码单元中的预测单元的运动预测和运动补偿。然后,根据所确定的模式,可不同地执行画面间预测或运动补偿。
131.减法器125可通过使用输入块和预测块的差来生成残差块。残差块可被称为残差信号。残差信号可表示原始信号和预测信号之间的差。此外,残差信号可以是通过对原始信号与预测信号之间的差进行变换或量化或者变换和量化而生成的信号。残差块可以是块单元的残差信号。
132.变换单元130可通过对残差块执行变换来生成变换系数,并输出生成的变换系数。这里,变换系数可以是通过对残差块执行变换而生成的系数值。当变换跳过模式被应用时,变换单元130可跳过对残差块的变换。
133.可通过将量化应用于变换系数或应用于残差信号来生成量化的等级。在下文中,量化的等级在实施例中也可被称为变换系数。
134.量化单元140可通过根据参数对变换系数或残差信号进行量化来生成量化的等级,并输出生成的量化的等级。这里,量化单元140可通过使用量化矩阵对变换系数进行量化。
135.熵编码单元150可通过根据概率分布对由量化单元140计算出的值或者对在执行编码时计算出的编码参数值执行熵编码来生成比特流,并输出生成的比特流。熵编码单元150可对图像的样点信息和用于对图像进行解码的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素。
136.当熵编码被应用时,符号被表示使得较少数量的比特被分配给具有高生成可能性的符号,并且较多数量的比特被分配给具有低生成可能性的符号,因此,可减小用于将被编码的符号的比特流的大小。熵编码单元150可使用诸如指数golomb、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等的用于熵编码的编码方法。例如,熵编码单元150可通过使用变长编码/码(vlc)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法和目标符号/二进制位的概率模型,并且通过使用推导的二值化方法和上下文模型来执行算术编码。
137.为了对变换系数等级(量化的等级)进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变为一维矢量形式。
138.编码参数可包括编码器中被编码并且被用信号发送到解码器的诸如语法元素的信息(标志、索引等)以及在执行编码或解码时推导出的信息。编码参数可表示在对图像进行编码或解码时所需要的信息。例如,以下项中的至少一个值或组合形式可被包括在编码参数中:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块形状、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、当前编码单元是否通过三
叉树分区被分区、三叉树分区的方向(水平方向或垂直方向)、三叉树分区的类型(对称类型或非对称类型)、当前编码单元是否通过多类型树分区被分区、多类型树分区的方向(水平方向或垂直方向)、多类型树分区的类型(对称类型或非对称类型)、多类型树分区的树(二叉树或三叉树)结构、预测模式(帧内预测或帧间预测)、亮度帧内预测模式/方向、色度帧内预测模式/方向、帧内分区信息、帧间分区信息、编码块分区标志、预测块分区标志、变换块分区标志、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧内预测模式、帧间预测模式、运动信息、运动矢量、运动矢量差、参考画面索引、帧间预测角度、帧间预测指示符、预测列表利用标志、参考画面列表、参考画面、运动矢量预测因子索引、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并索引、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小、运动矢量的表示精度、变换类型、变换尺寸、初级(第一)变换是否被使用的信息、次级变换是否被使用的信息、初级变换索引、次级变换索引、残差信号是否存在的信息、编码块样式、编码块标志(cbf)、量化参数、量化参数残差、量化矩阵、是否应用帧内环路滤波器、帧内环路滤波器系数、帧内环路滤波器抽头、帧内环路滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环路滤波器、自适应环路滤波器系数、自适应环路滤波器抽头、自适应环路滤波器形状/形式、二值化/反二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁路二进制位、有效系数标志、最后有效系数标志、针对系数组的单元的编码标志、最后有效系数的位置、关于系数的值是否大于1的标志、关于系数的值是否大于2的标志、关于系数的值是否大于3的标志、关于其余系数值的信息、符号信息、重建亮度样点、重建色度样点、残差亮度样点、残差色度样点、亮度变换系数、色度变换系数、量化的亮度等级、量化的色度等级、变换系数等级扫描方法、在解码器侧的运动矢量搜索区域的尺寸、在解码器侧的运动矢量搜索区域的形状、在解码器侧的运动矢量搜索的次数、关于ctu尺寸的信息、关于最小块尺寸的信息、关于最大块尺寸的信息、关于最大块深度的信息、关于最小块深度的信息、图像显示/输出顺序、条带标识信息、条带类型、条带分区信息、并行块标识信息、并行块类型、并行块分区信息、并行块组标识信息、并行块组类型、并行块组分区信息、画面类型、输入样点的比特深度、重建样点的比特深度、残差样点的比特深度、变换系数的比特深度、量化的等级的比特深度、以及关于亮度信号的信息或关于色度信号的信息。
139.这里,用信号发送标志或索引可表示由编码器对对应标志或索引进行熵编码并将其包括在比特流中,并且可表示由解码器从比特流对对应标志或索引进行熵解码。
140.当编码设备100通过帧间预测执行编码时,编码的当前图像可被用作用于随后被处理的另一图像的参考图像。因此,编码设备100可对编码的当前图像进行重建或解码,或者将重建或解码的图像作为参考图像存储在参考画面缓冲器190中。
141.量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可由加法器175将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预
测块相加,可生成重建块。这里,经过反量化或逆变换的系数或经过反量化和逆变换两者的系数可表示执行了反量化和逆变换中的至少一个的系数,并且可表示重建残差块。
142.重建块可通过滤波器单元180。滤波器单元180可将去块滤波器、样点自适应偏移(sao)和自适应环路滤波器(alf)中的至少一个应用于重建样点、重建块或重建图像。滤波器单元180可被称为环内滤波器。
143.去块滤波器可去除在块之间的边界中生成的块失真。为了确定是否应用去块滤波器,可基于块中所包括的若干行或列中包括的样点来确定是否将去块滤波器应用于当前块。当将去块滤波器应用于块时,可根据所需的去块滤波强度来应用另一滤波器。
144.为了补偿编码误差,可通过使用样点自适应偏移将合适的偏移值与样点值相加。样点自适应偏移可以以样点为单位对经过去块的图像与原始图像的偏移进行校正。可使用考虑关于每个样点的边缘信息来应用偏移的方法,或者可使用以下方法:将图像的样点分区为预定数量的区域,确定偏移被应用的区域,并对确定的区域应用偏移。
145.自适应环路滤波器可基于经滤波的重建图像和原始图像的比较结果来执行滤波。可将包括在图像中的样点分区为预定组,可确定将被应用于每个组的滤波器,并且可对每个组执行差异化滤波。是否应用alf的信息可通过编码单元(cu)被用信号发送,并且将被应用于每个块的alf的形式和系数可变化。
146.已经通过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。由滤波器单元180处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元180处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿中被使用。
147.图2是示出根据实施例并且应用了本发明的解码设备的配置的框图。
148.解码设备200可以是解码器、视频解码设备或图像解码设备。
149.参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器255、滤波器单元260和参考画面缓冲器270。
150.解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读记录介质中的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可生成通过解码而生成的重建图像或解码图像,并输出重建图像或解码图像。
151.当在解码时使用的预测模式是帧内模式时,切换器可被切换到帧内。可选地,当在解码时使用的预测模式是帧间模式时,切换器可被切换到帧间模式。
152.解码设备200可通过对输入比特流进行解码来获得重建残差块,并生成预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来生成成为解码目标的重建块。解码目标块可被称为当前块。
153.熵解码单元210可通过根据概率分布对比特流进行熵解码来生成符号。生成的符号可包括量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆处理。
154.为了对变换系数等级(量化的等级)进行解码,熵解码单元210可通过使用变换系数扫描方法将单向矢量形式的系数改变为二维块形式。
155.可在反量化单元220中对量化的等级进行反量化,或者可在逆变换单元230中对量化的等级进行逆变换。量化的等级可以是进行反量化或逆变换或者进行反量化和逆变换两
者的结果,并且可被生成为重建残差块。这里,反量化单元220可将量化矩阵应用于量化的等级。
156.当使用帧内模式时,帧内预测单元240可通过对当前块执行空间预测来生成预测块,其中,空间预测使用与解码目标块相邻并且已经被解码的块的样点值。
157.当使用帧间模式时,运动补偿单元250可通过对当前块执行运动补偿来生成预测块,其中,运动补偿使用运动矢量以及存储在参考画面缓冲器270中的参考图像。
158.加法器255可通过将重建残差块与预测块相加来生成重建块。滤波器单元260可将去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个应用于重建块或重建图像。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中并且在执行帧间预测时被使用。由滤波器单元260处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元260处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿中被使用。
159.图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。图3示意性地示出将单个单元分区为多个下级单元的示例。
160.为了有效地对图像进行分区,当进行编码和解码时,可使用编码单元(cu)。编码单元可被用作当对图像进行编码/解码时的基本单元。此外,编码单元可被用作用于在对图像进行编码/解码时区分帧内预测模式与帧间预测模式的单元。编码单元可以是用于预测、变换、量化、逆变换、反量化、或对变换系数的编码/解码处理的基本单元。
161.参照图3,图像300按照最大编码单元(lcu)被顺序地分区,并且lcu单元被确定为分区结构。这里,lcu可以以与编码树单元(ctu)相同的含义被使用。单元分区可表示对与该单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或程度或者单元被分区的次数和程度两者。可基于树结构将单个单元分区为与深度信息分层地相关联的多个下级单元。换言之,单元和通过对该单元进行分区而生成的下级单元可分别与节点和该节点的子节点对应。分区出的下级单元中的每个可具有深度信息。深度信息可以是表示cu的尺寸的信息,并且可被存储在每个cu中。单元深度表示与对单元进行分区相关的次数和/或程度。因此,下级单元的分区信息可包括关于下级单元的尺寸的信息。
162.分区结构可表示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的大小可减半。
163.此外,可通过使用cu的分区信息来表示cu是否被分区的信息。分区信息可以是1比特信息。除scu之外的所有cu可包括分区信息。例如,当分区信息的值为第一值时,cu可不被分区,当分区信息的值为第二值时,cu可被分区。
164.参照图3,具有深度0的lcu可以是64
×
64的块。0可以是最小深度。具有深度3的scu可以是8
×
8的块。3可以是最大深度。32
×
32的块和16
×
16的块的cu可分别被表示为深度1和深度2。
165.例如,当单个编码单元被分区为四个编码单元时,分区出的四个编码单元的水平尺寸和垂直尺寸可以是cu在被分区之前的水平尺寸和垂直尺寸的一半大小。在一个实施例中,当尺寸为32
×
32的编码单元被分区为四个编码单元时,分区出的四个编码单元中的每个可具有16
×
16的尺寸。当单个编码单元被分区为四个编码单元时,可称编码单元可被分区为四叉树形式。
166.例如,当一个编码单元被分区为两个子编码单元时,该两个子编码单元中的每个子编码单元的水平尺寸或垂直尺寸(宽度或高度)可以是原始编码单元的水平尺寸或垂直尺寸的一半。例如,当尺寸为32
×
32的编码单元被垂直分区为两个子编码单元时,该两个子编码单元中的每个子编码单元可具有16
×
32的尺寸。例如,当尺寸为8
×
32的编码单元被水平分区为两个子编码单元时,该两个子编码单元中的每个子编码单元可具有8
×
16的尺寸。当一个编码单元被分区为两个子编码单元时,可称编码单元被二分区或者按照二叉树分区结构被分区。
167.例如,当一个编码单元被分区为三个子编码单元时,可以以1:2:1的比例对编码单元的水平尺寸或垂直尺寸进行分区,从而产生水平尺寸或垂直尺寸的比例为1:2:1的三个子编码单元。例如,当尺寸为16
×
32的编码单元被水平分区为三个子编码单元时,该三个子编码单元以从最上方子编码单元到最下方子编码单元的顺序可分别具有16
×
8、16
×
16和16
×
8的尺寸。例如,当尺寸为32
×
32的编码单元被垂直划分为三个子编码单元时,该三个子编码单元以从左侧子编码单元到右侧子编码单元的顺序可分别具有8
×
32、16
×
32和8
×
32的尺寸。当一个编码单元被分区为三个子编码单元时,可称编码单元被三分区或者按照三叉树分区结构被分区。
168.在图3中,编码树单元(ctu)320是四叉树分区结构、二叉树分区结构和三叉树分区结构全都被应用的ctu的示例。
169.如上所述,为了对ctu进行分区,可应用四叉树分区结构、二叉树分区结构和三叉树分区结构中的至少一个。可根据预定的优先级顺序将各种树分区结构顺序地应用于ctu。例如,可将四叉树分区结构优先应用于ctu。不能再使用四叉树分区结构进行分区的编码单元可与四叉树的叶节点对应。与四叉树的叶节点对应的编码单元可用作二叉树和/或三叉树分区结构的根节点。也就是说,与四叉树的叶节点对应的编码单元可按照二叉树分区结构或三叉树分区结构被进一步分区,或者可不被进一步分区。因此,通过防止从与四叉树的叶节点对应的编码单元的二叉树分区或三叉树分区得到的编码单元经历进一步的四叉树分区,块分区操作和/或用信号发送分区信息的操作可被有效执行。
170.可使用四分区信息用信号发送与四叉树的节点对应的编码单元被分区的事实。具有第一值(例如,“1”)的四分区信息可指示当前编码单元按照四叉树分区结构被分区。具有第二值(例如,“0”)的四分区信息可指示当前编码单元未按照四叉树分区结构被分区。四分
区信息可以是具有预定长度(例如,一个比特)的标志。
171.在二叉树分区与三叉树分区之间可能没有优先级。也就是说,与四叉树的叶节点对应的编码单元可进一步经历二叉树分区和三叉树分区中的任意分区。此外,通过二叉树分区或三叉树分区生成的编码单元可经历进一步的二叉树分区或进一步的三叉树分区,或者可不被进一步分区。
172.在二叉树分区和三叉树分区之间不存在优先级的树结构被称为多类型树结构。与四叉树的叶节点对应的编码单元可用作多类型树的根节点。可使用多类型树分区指示信息、分区方向信息和分区树信息中的至少一个来用信号发送是否对与多类型树的节点对应的编码单元进行分区。为了对与多类型树的节点对应的编码单元进行分区,可顺序地用信号发送多类型树分区指示信息、分区方向信息和分区树信息。
173.具有第一值(例如,“1”)的多类型树分区指示信息可指示当前编码单元将经历多类型树分区。具有第二值(例如,“0”)的多类型树分区指示信息可指示当前编码单元将不经历多类型树分区。
174.当与多类型树的节点对应的编码单元按照多类型树分区结构被进一步分区时,所述编码单元可包括分区方向信息。分区方向信息可指示当前编码单元将在哪个方向上针对多类型树分区被分区。具有第一值(例如,“1”)的分区方向信息可指示当前编码单元将被垂直分区。具有第二值(例如,“0”)的分区方向信息可指示当前编码单元将被水平分区。
175.当与多类型树的节点对应的编码单元按照多类型树分区结构被进一步分区时,当前编码单元可包括分区树信息。分区树信息可指示将被用于对多类型树的节点进行分区的树分区结构。具有第一值(例如,“1”)的分区树信息可指示当前编码单元将按照二叉树分区结构被分区。具有第二值(例如,“0”)的分区树信息可指示当前编码单元将按照三叉树分区结构被分区。
176.所述分区指示信息、分区树信息和分区方向信息均可以是具有预定长度(例如,一个比特)的标志。
177.四叉树分区指示信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个可被熵编码/熵解码。为了对那些类型的信息进行熵编码/熵解码,可使用关于与当前编码单元相邻的邻近编码单元的信息。例如,当前编码单元的左侧邻近编码单元和/或上方邻近编码单元的分区类型(被分区或不被分区、分区树和/或分区方向)与当前编码单元的分区类型相似的可能性很高。因此,可从关于邻近编码单元的信息推导用于对关于当前编码单元的信息进行熵编码/熵解码的上下文信息。关于邻近编码单元的信息可包括四分区信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个。
178.作为另一示例,在二叉树分区和三叉树分区中,可优先执行二叉树分区。也就是说,当前编码单元可首先经历二叉树分区,并且随后可将与二叉树的叶节点对应的编码单元设置为用于三叉树分区的根节点。在这种情况下,对于与三叉树的节点对应的编码单元,可既不执行四叉树分区也不执行二叉树分区。
179.不能按照四叉树分区结构、二叉树分区结构和/或三叉树分区结构被分区的编码单元成为用于编码、预测和/或变换的基本单元。也就是说,所述编码单元不能被进一步分区以用于预测和/或变换。因此,在比特流中可能不存在用于将编码单元分区为预测单元和/或变换单元的分区结构信息和分区信息。
180.然而,当编码单元(即,用于分区的基本单元)的尺寸大于最大变换块的尺寸时,可递归地对编码单元进行分区,直到将编码单元的尺寸减小到等于或小于最大变换块的尺寸为止。例如,当编码单元的尺寸为64
×
64时并且当最大变换块的尺寸为32
×
32时,可将编码单元分区为用于变换的四个32
×
32的块。例如,当编码单元的尺寸为32
×
64并且最大变换块的尺寸为32
×
32时,可将编码单元分区为用于变换的两个32
×
32的块。在这种情况下,不单独用信号发送编码单元的针对变换的分区,并且可通过编码单元的水平尺寸或垂直尺寸与最大变换块的水平尺寸或垂直尺寸之间的比较来确定编码单元的针对变换的分区。例如,当编码单元的水平尺寸(宽度)大于最大变换块的水平尺寸(宽度)时,可将编码单元垂直地二等分。例如,当编码单元的垂直尺寸(高度)大于最大变换块的垂直尺寸(高度)时,可将编码单元水平地二等分。
181.编码单元的最大和/或最小尺寸的信息以及变换块的最大和/或最小尺寸的信息可在编码单元的上级被用信号发送或确定。所述上级可以是例如序列级、画面级、条带级、并行块组级、并行块级等。例如,编码单元的最小尺寸可被确定为4
×
4。例如,变换块的最大尺寸可被确定为64
×
64。例如,变换块的最小尺寸可被确定为4
×
4。
182.与四叉树的叶节点对应的编码单元的最小尺寸(四叉树最小尺寸)的信息和/或从多类型树的根节点到叶节点的最大深度(多类型树的最大树深度)的信息可在编码单元的上级被用信号发送或被确定。例如,所述上级可以是序列级、画面级、条带级、并行块组级、并行块级等。可针对画面内条带和画面间条带中的每一个用信号发送或确定四叉树的最小尺寸的信息和/或多类型树的最大深度的信息。
183.可在编码单元的上级用信号发送或确定ctu的尺寸与变换块的最大尺寸之间的差信息。例如,所述上级可以是序列级、画面级、条带级、并行块组级、并行块级等。可基于编码树单元的尺寸和所述差信息来确定与二叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为二叉树的最大尺寸)的信息。与三叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为三叉树的最大尺寸)可根据条带的类型而变化。例如,针对画面内条带,三叉树的最大尺寸可以是32
×
32。例如,针对画面间条带,三叉树的最大尺寸可以是128
×
128。例如,与二叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为二叉树的最小尺寸)和/或与三叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为三叉树的最小尺寸)可被设置为编码块的最小尺寸。
184.作为另一示例,可在条带级用信号发送或确定二叉树的最大尺寸和/或三叉树的最大尺寸。可选地,可在条带级用信号发送或确定二叉树的最小尺寸和/或三叉树的最小尺寸。
185.根据上述各种块的尺寸和深度信息,四分区信息、多类型树分区指示信息、分区树信息和/或分区方向信息可被包括或可不被包括在比特流中。
186.例如,当编码单元的尺寸不大于四叉树的最小尺寸时,编码单元不包括四分区信息。因此,四分区信息可被推断为第二值。
187.例如,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)大于二叉树的最大尺寸(水平尺寸和垂直尺寸)和/或三叉树的最大尺寸(水平尺寸和垂直尺寸)时,编码单元可不被二分区或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。
188.可选地,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)与二叉树的最大尺寸(水平尺寸和垂直尺寸)相同和/或是三叉树的最大尺寸(水平尺寸和垂直尺寸)的两倍大时,编码单元可不被进一步二分区或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。这是因为当按照二叉树分区结构和/或三叉树分区结构对编码单元进行分区时,小于二叉树的最小尺寸和/或三叉树的最小尺寸的编码单元被生成。
189.可选地,可基于虚拟流水线数据单元的尺寸(在下文中,流水线缓冲器尺寸)来限制二叉树分区或三叉树分区。例如,当通过二叉树分区或三叉树分区将编码单元划分为不适合流水线缓冲器尺寸的子编码单元时,对应的二叉树分区或三叉树分区可能受到限制。流水线缓冲器尺寸可以是最大变换块的尺寸(例如,64
×
64)。例如,当流水线缓冲器尺寸是64
×
64时,可限制下面的划分。
[0190]-用于编码单元的n
×
m(n和/或m是128)三叉树分区
[0191]-用于编码单元的水平方向的128
×
n(n《=64)二叉树分区
[0192]-用于编码单元的垂直方向的n
×
128(n《=64)二叉树分区
[0193]
可选地,当与多类型树的节点对应的编码单元的深度等于多类型树的最大深度时,编码单元可不被进一步二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。
[0194]
可选地,仅当垂直方向二叉树分区、水平方向二叉树分区、垂直方向三叉树分区和水平方向三叉树分区中的至少一个对于与多类型树的节点对应的编码单元是可能的时,可用信号发送多类型树分区指示信息。否则,编码单元可不被二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,但多类型树分区指示信息可被推断为第二值。
[0195]
可选地,仅当垂直方向二叉树分区和水平方向二叉树分区两者或垂直方向三叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码单元是可能的时,可用信号发送分区方向信息。否则,可不用信号发送分区方向信息,但是分区方向信息可被推断为指示可能的分区方向的值。
[0196]
可选地,仅当垂直方向二叉树分区和垂直方向三叉树分区两者或水平方向二叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码树是可能的时,可用信号发送分区树信息。否则,可不用信号发送分区树信息,但是分区树信息可被推断为指示可能的分区树结构的值。
[0197]
图4是示出帧内预测处理的示图。
[0198]
图4中从中心到外部的箭头可表示帧内预测模式的预测方向。
[0199]
可通过使用当前块的邻近块的参考样点来执行帧内编码和/或解码。邻近块可以是重建邻近块。例如,可通过使用包括在重建邻近块中的参考样点的值或编码参数来执行帧内编码和/或解码。
[0200]
预测块可表示通过执行帧内预测而生成的块。预测块可与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等的矩形块。
[0201]
可根据针对当前块的帧内预测模式来执行帧内预测。当前块可具有的帧内预测模
式的数量可以是固定值,并且可以是根据预测块的属性不同地确定的值。例如,预测块的属性可包括预测块的尺寸和预测块的形状等。
[0202]
不管块尺寸为多少,可将帧内预测模式的数量固定为n。或者,帧内预测模式的数量可以是3、5、9、17、34、35、36、65或67等。可选地,帧内预测模式的数量可根据块尺寸或颜色分量类型或者块尺寸和颜色分量类型两者而变化。例如,帧内预测模式的数量可根据颜色分量是亮度信号还是色度信号而变化。例如,随着块尺寸变大,帧内预测模式的数量可增加。可选地,亮度分量块的帧内预测模式的数量可大于色度分量块的帧内预测模式的数量。
[0203]
帧内预测模式可以是非角度模式或角度模式。非角度模式可以是dc模式或平面模式,并且角度模式可以是具有特定方向或角度的预测模式。帧内预测模式可由模式编号、模式值、模式数字、模式角度和模式方向中的至少一个来表示。帧内预测模式的数量可以是大于1的m,包括非角度模式和角度模式。为了对当前块进行帧内预测,可执行确定是否可将包括在重建邻近块中的样点用作当前块的参考样点的步骤。当存在不能用作当前块的参考样点的样点时,通过对包括在重建邻近块中的样点中的至少一个样点值进行复制或执行插值或者进行复制和插值两者而获得的值可被用于替换样点的不可用样点值,因此替换后的样点值被用作当前块的参考样点。
[0204]
图7是示出能够用于帧内预测的参考样点的示图。
[0205]
如图7中所示,参考样点线0至参考样点线3中的至少一个可用于当前块的帧内预测。在图7中,片段a和片段f的样点可分别利用最接近片段b和片段e的样点被填充,而不是从重建邻近块进行检索。可用信号发送指示将被用于当前块的帧内预测的参考样点线的索引信息。例如,在图7中,参考样点线指示符0、1和2可作为指示参考样点线0、参考样点线1和参考样点线2的索引信息而被用信号发送。在当前块的上方边界是ctu的边界时,仅参考样点线0可以是可用的。因此,在这种情况下,可不用信号发送索引信息。当除了参考样点线0之外的参考样点线被使用时,可不执行稍后将描述的针对预测块的滤波。
[0206]
当进行帧内预测时,可基于帧内预测模式和当前块尺寸将滤波器应用于参考样点和预测样点中的至少一个。
[0207]
在平面模式的情况下,当生成当前块的预测块时,根据预测目标样点在预测块内的位置,可通过使用当前块的上方参考样点与左侧参考样点以及当前块的右上方参考样点与左下方参考样点的加权和来生成预测目标样点的样点值。此外,在dc模式的情况下,当生成当前块的预测块时,可使用当前块的上方参考样点与左侧参考样点的平均值。此外,在角度模式的情况下,可通过使用当前块的上方参考样点、左侧参考样点、右上方参考样点和/或左下方参考样点来生成预测块。为了生成预测样点值,可执行实数单元的插值。
[0208]
在颜色分量之间的帧内预测的情况下,可基于第一颜色分量的对应重建块来生成第二颜色分量的当前块的预测块。例如,第一颜色分量可以是亮度分量,并且第二颜色分量可以是色度分量。对于颜色分量之间的帧内预测,可基于模板推导第一颜色分量与第二颜色分量之间的线性模型的参数。模板可包括当前块的上方和/或左侧邻近样点以及与其对应的第一颜色分量的重建块的上方和/或左侧邻近样点。例如,可使用模板中的样点中具有最大值的第一颜色分量的样点值及与其对应的第二颜色分量的样点值,以及模板中的样点中具有最小值的第一颜色分量的样点值及与其对应的第二颜色分量的样点值来推导线性模型的参数。当推导线性模型的参数时,可将对应重建块应用于线性模型以生成当前块的
预测块。根据视频格式,可对第一颜色分量的重建块的邻近样点和对应重建块执行子采样。例如,当第二颜色分量的一个样点与第一颜色分量的四个样点对应时,可对第一颜色分量的四个样点进行子采样以计算一个对应样点。在这种情况下,可基于对应的被子采样的样点执行线性模型的参数推导和颜色分量之间的帧内预测。是否执行颜色分量之间的帧内预测以及/或者模板的范围可作为帧内预测模式被用信号发送。
[0209]
当前块可在水平方向或垂直方向上被分区为两个子块或四个子块。可顺序地重建被分区的子块。也就是说,可对子块执行帧内预测以生成子预测块。此外,可对子块执行反量化和/或逆变换以生成子残差块。可通过将子预测块与子残差块相加来生成重建子块。重建子块可用作后续子块的帧内预测的参考样点。子块可以是包括预定数量(例如,16)或更多个样点的块。因此,例如,在当前块是8
×
4的块或4
×
8的块时,当前块可被分区为两个子块。此外,在当前块是4
×
4的块时,当前块可不被分区为子块。在当前块具有其它尺寸时,当前块可被分区为四个子块。可用信号发送关于是否基于子块和/或分区方向(水平或垂直)执行帧内预测的信息。可限于仅在使用参考样点线0时执行基于子块的帧内预测。当执行基于子块的帧内预测时,可不执行稍后将描述的针对预测块的滤波。
[0210]
可通过对被帧内预测的预测块执行滤波来生成最终预测块。可通过将预定权重应用于滤波目标样点、左侧参考样点、上方参考样点和/或左上方参考样点来执行滤波。可基于块尺寸、帧内预测模式和预测块中的滤波目标样点的位置中的至少一个来确定用于滤波的权重和/或参考样点(范围、位置等)。可仅在预定帧内预测模式(例如,dc、平面、垂直、水平、对角线和/或相邻对角线模式)的情况下执行滤波。相邻对角线模式可以是对对角线模式加上k或从对角线模式减去k的模式。例如,k可以是8或更小的正整数。
[0211]
可通过预测与当前块相邻存在的块的帧内预测模式来对当前块的帧内预测模式进行熵编码/熵解码。在当前块与邻近块的帧内预测模式相同时,可通过使用预定标志信息来用信号发送当前块与邻近块的帧内预测模式相同的信息。此外,可用信号发送多个邻近块的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式的指示符信息。在当前块与邻近块的帧内预测模式不同时,可通过基于邻近块的帧内预测模式执行熵编码/熵解码来对当前块的帧内预测模式信息进行熵编码/熵解码。
[0212]
图5是示出画面间预测处理的实施例的示图。
[0213]
在图5中,矩形可表示画面。在图5中,箭头表示预测方向。根据画面的编码类型,可将画面分类为帧内画面(i画面)、预测画面(p画面)和双预测画面(b画面)。
[0214]
可在不需要画面间预测的情况下通过帧内预测对i画面进行编码。可通过使用在相对于当前块的一个方向(即,前向或后向)上存在的参考画面,通过画面间预测来对p画面进行编码。可通过使用在相对于当前块的两个方向(即,前向和后向)上存在的参考画面,通过画面间预测来对b画面进行编码。当使用画面间预测时,编码器可执行画面间预测或运动补偿,并且解码器可执行对应运动补偿。
[0215]
在下文中,将详细描述画面间预测的实施例。
[0216]
可使用参考画面和运动信息来执行画面间预测或运动补偿。
[0217]
可通过编码设备100和解码设备200中的每一个在画面间预测期间推导当前块的运动信息。可通过使用重建邻近块的运动信息、同位置块(也称为col块或同位块)的运动信息和/或与同位块相邻的块的运动信息来推导当前块的运动信息。同位块可表示先前重建
的同位置画面(也称为col画面或同位画面)内的在空间上与当前块位于相同位置的块。同位画面可以是包括在参考画面列表中的一个或更多个参考画面中的一个画面。
[0218]
运动信息的推导方法可根据当前块的预测模式而不同。例如,应用于帧间预测的预测模式包括amvp模式、合并模式、跳过模式、具有运动矢量差的合并模式、子块合并模式、几何分区模式、组合帧间-帧内预测模式、仿射模式等。这里,合并模式可被称为运动合并模式。
[0219]
例如,当amvp被用作预测模式时,可将重建邻近块的运动矢量、同位块的运动矢量、与同位块相邻的块的运动矢量和(0,0)运动矢量中的至少一个确定为针对当前块的运动矢量候选,并且通过使用运动矢量候选生成运动矢量候选列表。可通过使用生成的运动矢量候选列表来推导当前块的运动矢量候选。可基于推导的运动矢量候选来确定当前块的运动信息。同位置块的运动矢量或与同位置块相邻的块的运动矢量可被称为时间运动矢量候选,并且重建邻近块的运动矢量可被称为空间运动矢量候选。
[0220]
编码设备100可计算当前块的运动矢量与运动矢量候选之间的运动矢量差(mvd),并且可对运动矢量差(mvd)执行熵编码。此外,编码设备100可对运动矢量候选索引执行熵编码并生成比特流。运动矢量候选索引可指示包括在运动矢量候选列表中的运动矢量候选之中的最佳运动矢量候选。解码设备可对包括在比特流中的运动矢量候选索引执行熵解码,并且可通过使用经过熵解码的运动矢量候选索引从包括在运动矢量候选列表中的运动矢量候选中选择解码目标块的运动矢量候选。此外,解码设备200可将经过熵解码的mvd与通过熵解码而提取的运动矢量候选相加,从而推导解码目标块的运动矢量。
[0221]
另外,编码设备100可对计算出的mvd的分辨率信息执行熵编码。解码设备200可使用mvd分辨率信息来调整被熵解码的mvd的分辨率。
[0222]
另外,编码设备100基于仿射模型计算当前块中的运动矢量和运动矢量候选之间的运动矢量差(mvd),并对mvd执行熵编码。解码设备200通过根据被熵解码的mvd和仿射控制运动矢量候选的总和推导解码目标块的仿射控制运动矢量来基于每个子块推导运动矢量。
[0223]
比特流可包括指示参考画面的参考画面索引。参考画面索引可通过编码设备100被熵编码,并且随后作为比特流被用信号发送到解码设备200。解码设备200可基于推导出的运动矢量和参考画面索引信息来生成解码目标块的预测块。
[0224]
推导当前块的运动信息的方法的另一示例可以是合并模式。合并模式可表示合并多个块的运动的方法。合并模式可表示从邻近块的运动信息推导当前块的运动信息的模式。当应用合并模式时,可使用重建邻近块的运动信息和/或同位置块的运动信息来生成合并候选列表。运动信息可包括运动矢量、参考画面索引和画面间预测指示符中的至少一个。所述预测指示符可指示单向预测(l0预测或l1预测)或双向预测(l0预测和l1预测)。
[0225]
合并候选列表可以是存储的运动信息的列表。包括在合并候选列表中的运动信息可以是以下至少一个:与当前块相邻的邻近块的运动信息(空间合并候选)、当前块的在参考画面中的同位置块的运动信息(时间合并候选)、通过合并候选列表中存在的运动信息的组合而生成的新运动信息、在当前块之前被编码/解码的块的运动信息(基于历史的合并候选)、以及零合并候选。
[0226]
编码设备100可通过对合并标志和合并索引中的至少一个执行熵编码来生成比特
流,并且可将比特流用信号发送到解码设备200。合并标志可以是指示是否针对每个块执行合并模式的信息,并且合并索引可以是指示当前块的邻近块中的哪个邻近块是合并目标块的信息。例如,当前块的邻近块可包括位于当前块的左侧的左侧邻近块、被布置在当前块上方的上方邻近块和在时间上与当前块相邻的时间邻近块。
[0227]
另外,编码设备100对合并候选的运动信息中的用于校正运动矢量的校正信息执行熵编码,并将其用信号发送到解码设备200。解码设备200可基于校正信息校正由合并索引选择的合并候选的运动矢量。这里,校正信息可包括关于是否执行校正的信息、校正方向信息和校正尺寸信息中的至少一个。如上所述,基于用信号发送的校正信息对合并候选的运动矢量进行校正的预测模式可被称为具有运动矢量差的合并模式。
[0228]
跳过模式可以是将邻近块的运动信息照原样应用于当前块的模式。当应用跳过模式时,编码设备100可对哪个块的运动信息将被用作当前块的运动信息的事实的信息执行熵编码,以生成比特流,并且可将比特流用信号发送到解码设备200。编码设备100可不将关于运动矢量差信息、编码块标志和变换系数等级中的至少任意一个的语法元素用信号发送到解码设备200。
[0229]
子块合并模式可表示以编码块(cu)的子块为单位推导运动信息的模式。当应用子块合并模式时,可使用参考图像中的与当前子块同位置的子块的运动信息(基于子块的时间合并候选)和/或仿射控制点运动矢量合并候选来生成子块合并候选列表。
[0230]
几何分区模式可表示这样的模式:通过按预定方向对当前块进行分区来推导运动信息,使用推导出的运动信息中的每一个来推导每个预测样点,并且通过对推导出的预测样点中的每一个进行加权来推导当前块的预测样点。
[0231]
帧间-帧内组合预测模式可表示通过对由帧间预测生成的预测样点和由帧内预测生成的预测样点进行加权来推导当前块的预测样点的模式。
[0232]
解码设备200可自行校正推导的运动信息。解码设备200可基于由推导的运动信息指示的参考块搜索预定区域,并推导具有最小sad的运动信息作为经过校正的运动信息。
[0233]
解码设备200可使用光流对经由帧间预测推导的预测样点进行补偿。
[0234]
图6是示出变换和量化处理的示图。
[0235]
如图6中所示,对残差信号执行变换处理和/或量化处理,以生成量化的等级信号。残差信号是原始块与预测块(即,帧内预测块或帧间预测块)之间的差。预测块是通过帧内预测或帧间预测生成的块。所述变换可以是初级变换、次级变换或者初级变换和次级变换两者。对残差信号的初级变换生成变换系数,并且对变换系数的次级变换生成次级变换系数。
[0236]
从预先定义的各种变换方案中选择的至少一种方案被用于执行初级变换。例如,所述预定义的变换方案的示例包括离散余弦变换(dct)、离散正弦变换(dst)和karhunen-lo
è
ve变换(klt)。通过初级变换生成的变换系数可经历次级变换。可根据当前块和/或当前块的邻近块的编码参数来确定用于初级变换和/或次级变换的变换方案。可选地,可用信号发送指示变换方案的变换信息。基于dct的变换可包括例如dct-2、dct-8等。基于dst的变换可包括例如dst-7。
[0237]
可通过对残差信号或对执行初级变换和/或次级变换的结果执行量化来生成量化的等级信号(量化系数)。根据块的帧内预测模式或块尺寸/形状,可根据对角线右上扫描、
垂直扫描和水平扫描中的至少一个来扫描量化的等级信号。例如,当按照对角线右上扫描来扫描系数时,块形式的系数改变为一维矢量形式。除了对角线右上扫描之外,根据帧内预测模式和/或变换块的尺寸,可使用水平地扫描二维块形式的系数的水平扫描或垂直地扫描二维块形式的系数的垂直扫描。扫描的量化的等级系数可被熵编码以插入比特流中。
[0238]
解码器对比特流进行熵解码以获得量化的等级系数。量化的等级系数可通过逆扫描以二维块形式被布置。对于逆扫描,可使用对角线右上扫描、垂直扫描和水平扫描中的至少一个。
[0239]
量化的等级系数随后可被反量化,然后根据需要被次级逆变换,最后根据需要被初级逆变换,以生成重建残差信号。
[0240]
可在环内滤波之前针对通过帧内预测或帧间预测重建的亮度分量执行动态范围中的逆映射。动态范围可被划分为16个相等的段,并且可用信号发送针对每个段的映射函数。可在条带级或并行块组级用信号发送映射函数。可基于映射函数推导用于执行逆映射的逆映射函数。在逆映射区域中执行环内滤波、参考画面存储和运动补偿,并且通过帧间预测生成的预测块经由使用映射函数的映射被转换到映射区域,然后被用于生成重建块。然而,由于在映射区域中执行帧内预测,因此经由帧内预测生成的预测块可被用于生成重建块而无需映射/逆映射。
[0241]
在当前块是色度分量的残差块时,可通过对映射区域的色度分量执行缩放来将残差块转换到逆映射区域。可在条带级或并行块组级用信号发送缩放的可用性。只有当针对亮度分量的映射可用并且亮度分量的划分和色度分量的划分遵循相同的树结构时,才可应用缩放。可基于与色差块对应的亮度预测块的样点值的平均值来执行缩放。在这种情况下,在当前块使用帧间预测时,亮度预测块可表示映射的亮度预测块。可通过使用亮度预测块的样点值的平均值所属的片段的索引参考查找表来推导缩放所需的值。最后,通过使用推导的值对残差块进行缩放,可将残差块转换到逆映射区域。然后,可在逆映射区域中执行色度分量块恢复、帧内预测、帧间预测、环内滤波和参考画面存储。
[0242]
可通过序列参数集用信号发送指示亮度分量和色度分量的映射/逆映射是否可用的信息。
[0243]
可基于指示当前画面中的当前块与参考块之间的位移的块矢量来生成当前块的预测块。以这种方式,用于参考当前画面生成预测块的预测模式被称为帧内块复制(ibc)模式。ibc模式可被应用于m
×
n(m《=64,n《=64)编码单元。ibc模式可包括跳过模式、合并模式、amvp模式等。在跳过模式或合并模式的情况下,构建合并候选列表,并且用信号发送合并索引,使得可指定一个合并候选。指定的合并候选的块矢量可用作当前块的块矢量。合并候选列表可包括空间候选、基于历史的候选、基于两个候选的平均值的候选和零合并候选中的至少一个。在amvp模式的情况下,可用信号发送差块矢量。此外,可从当前块的左侧邻近块和上方邻近块推导预测块矢量。可用信号发送将使用的邻近块的索引。ibc模式中的预测块被包括在当前ctu或左侧ctu中并且被限于已经重建的区域中的块。例如,可限制块矢量的值,使得当前块的预测块按照编码/解码顺序位于当前块所属的64
×
64的块之前的三个64
×
64的块的区域中。通过以这种方式限制块矢量的值,可减少根据ibc模式实施方案的存储器消耗和装置复杂度。
[0244]
在下文中,将描述根据本发明的对帧间预测信息进行编码的方法。
[0245]
图8是示出根据本发明的实施例的帧间预测信息编码/解码方法的流程图。
[0246]
参照图8,帧间预测信息编码/解码可包括[d1]预测模式信息编码/解码步骤和[d2]帧间预测信息编码/解码步骤。在下文中,将详细描述每个步骤。
[0247]
[d1]预测模式信息编码/解码步骤
[0248]
在针对当前将被编码/解码的块(以下称为“当前块”)执行对帧间预测模式进行编码和解码时,可使用跳过指示符(例如,cu_skip_flag)、预测模式指示符(例如,pred_mode_flag)或预测模式ibc指示符(例如,pred_mode_ibc_flag)中的至少一个来执行对预测模式信息的编码和解码。
[0249]
根据本发明的实施例的预测模式信息可指示是否执行当前块的跳过模式、帧间预测模式、帧内预测模式、基于帧内块复制的预测模式和调色板(palette)模式。此外,预测模式信息可包括跳过指示符、预测模式指示符或预测模式ibc指示符中的至少一个。
[0250]
跳过指示符cu_skip_flag可表示不存在针对当前块的残差信号。因此,可不执行对残差信号的熵编码/熵解码、量化/反量化和变换/逆变换。跳过指示符可具有单个比特“0”或“1”。另外,跳过指示符可指示针对当前块是执行帧间预测还是执行基于帧内块复制的预测。
[0251]
例如,如果由解码器解码的跳过指示符“cu_skip_flag”是“1”,则可对帧间预测信息(例如,merge_idx)进行解码。
[0252]
例如,如果由解码器解码的跳过指示符“cu_skip_flag”是“1”并且当前条带类型是“i”(帧内)条带,则可对基于帧内块复制的预测跳过信息进行解码。
[0253]
如果当前块的条带类型为“i”条带并且目标块的宽度或高度大于64,则可不对跳过指示符进行熵解码。换言之,这可表示针对具有上述条件的块不允许基于帧内块复制的预测跳过模式。
[0254]
例如,如果由解码器解码的跳过指示符“cu_skip_flag”是“1”,则可不执行对残差信号的熵解码。
[0255]
例如,如果由解码器解码的跳过指示符“cu_skip_flag”是“1”,则可不执行反量化和逆变换。
[0256]
例如,如果由解码器解码的跳过指示符“cu_skip_flag”是“0”,则可对预测模式指示符或预测模式ibc指示符进行解码。
[0257]
预测模式指示符pred_mode_flag可指示是执行对当前块的帧间预测还是帧内预测。预测模式指示符可具有单个比特0或1。
[0258]
例如,如果由解码器解码的预测模式指示符是“0”,则可执行对帧间预测模式相关信息的熵编码。
[0259]
例如,如果由解码器解码的预测模式指示符是“1”,则可执行对帧内预测模式相关信息的熵解码。
[0260]
预测模式ibc指示符pred_mode_ibc_flag可指示是否执行对当前块的基于帧内块复制的预测。预测模式指示符可具有单个比特0或1。
[0261]
例如,如果由解码器解码的帧内块复制预测模式指示符pred_mode_ibc_flag是“1”,则可执行对帧内块复制预测模式的熵解码。
[0262]
例如,如果由解码器解码的帧内块复制预测模式指示符pred_mode_ibc_flag为“0”,则可执行对帧间预测模式相关信息或帧内预测模式相关信息的熵解码。
[0263]
如果当前块的宽度或高度大于64,则可不对帧内块复制预测模式指示符进行熵解码。换言之,这可表示如果目标块的宽度或高度大于64,则这可表示不允许基于帧内块复制的预测。
[0264]
在执行对预测模式信息的熵编码/熵解码时,可不同地使用空间邻近块的预测信息自适应地执行熵编码/熵解码。空间邻近块的预测信息可包括空间邻近块的跳过指示符、预测模式指示符、预测模式ibc指示符或残差信号存在指示符cbf中的至少一个。
[0265]
例如,在对跳过指示符的cabac熵编码/熵解码中,可根据空间邻近块的跳过指示符为“1”的情况的数量来使用不同的概率模型。
[0266]
例如,在对跳过指示符的熵编码/熵解码中,当空间邻近块的跳过指示符为“1”的情况的数量大于特定阈值时,可执行cabac,并且否则,可执行旁路编码。
[0267]
[d2]帧间预测信息编码/解码
[0268]
可执行对当前块的帧间预测信息的编码和解码。
[0269]
帧间预测模式可包括一般合并模式和帧间模式(高级运动矢量预测(ampv)模式)中的至少一个,其中,所述一般合并模式用于从邻近块的运动信息推断当前块的运动信息,所述帧间模式(高级运动矢量预测(ampv)模式)用于通过将经过熵解码的运动矢量差信息和预测运动矢量相加来推导当前块的运动信息。
[0270]
一般合并模式可由一般合并模式指示符(例如,general_merge_flag)值来指示。
[0271]
例如,如果经过熵解码的“general_merge_flag”是作为第一值的“1”,则这可表示当前块在一般合并模式下被解码,这可指示当前块在以下模式中的至少一个模式下被解码:基于帧内块复制的合并模式、常规合并模式、具有mvd(运动矢量差)的合并模式、子块合并模式、组合帧内合并模式或三角形分区模式。
[0272]
例如,如果经过熵解码的“general_merge_flag”是作为第二值的“0”,则这可表示当前块在amvp模式或基于帧内块复制的帧间模式下被解码。
[0273]
如果由解码器解码的跳过指示符“cu_skip_flag”是作为第一值的“1”,则一般合并模式指示符general_merge_flag可在不被熵解码的情况下被推断为作为第一值的“1”。
[0274]
作为应用于一般合并模式的预测模式,可存在基于帧内块复制的合并模式、常规合并模式、具有mvd的合并(mmvd)模式、子块合并模式、组合帧内合并模式(或组合帧间帧内预测(ciip)模式)、三角形分区(或几何分区模式(gpm))等。
[0275]
另外,作为应用于跳过模式的预测模式,可存在基于帧内块复制的合并模式、常规合并模式、具有mvd的合并模式、子块合并模式、三角形分区模式(或几何分区模式)等。
[0276]
在常规合并模式下,由经过解码的合并索引选择的合并候选的运动信息可被用作当前块的运动信息。这里,常规合并模式可表示图5中描述的合并模式。
[0277]
常规合并模式可由常规合并模式指示符(例如,regular_merge_flag)值来指示,并且该指示符可被熵编码/熵解码。
[0278]
例如,如果经过熵解码的“regular_merge_flag”是作为第一值的“1”,则这可表示当前块在常规合并模式下被解码。如果“regular_merge_flag”是作为第一值的“1”,则可对合并索引信息进行熵编码/熵解码。
[0279]
例如,如果经过熵解码的“regular_merge_flag”是作为第二值的“0”,则这可表示
当前块在mmvd模式、子块合并模式、组合帧内合并模式或几何分区模式中的至少一个模式下被解码,而不是在常规合并模式下被解码。
[0280]
如果一般合并模式指示符(general_merge_flag)值是作为第一值的“1”并且满足以下条件(条件1或条件2)中的至少一个条件,则常规合并模式指示符可在不被熵编码/熵解码的情况下被推导为作为第一值的“1”。换言之,这可指示当前块总是处于常规合并模式。
[0281]
条件1:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的以下指示符值都具有作为第二值的“0”的情况,
[0282]
mmvd模式使用指示符(例如,sps_mmvd_enabled_flag),
[0283]
子块单元时间运动矢量预测使用指示符(例如,sps_sbtmvp_enabled_flag)
[0284]
仿射变换模型预测使用指示符(例如,sps_affine_enabled_flag)
[0285]
组合帧内预测使用指示符(例如,sps_ciip_enabled_flag)
[0286]
三角形分区合并模式使用指示符(例如,sps_triangle_enabled_flag)
[0287]
另外,如果以上指示符值是作为第二值的“0”,则这可表示对应合并模式未被使用。
[0288]
条件2:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的mmvd模式使用指示符sps_mmvd_enabled_flag具有作为第二值的“0”并且当前块的宽度和高度的乘积为32的情况
[0289]
在另一示例中,如果一般合并模式指示符(general_merge_flag)值是作为第一值的“1”并且满足以下条件(条件1或条件2)中的至少一个条件,则常规合并模式指示符可在不被熵编码/熵解码的情况下被推导为作为第一值的“1”。换言之,这可指示当前块总是处于常规合并模式。
[0290]
条件1:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的以下指示符值都具有作为第二值的“0”并且子块合并模式的最大候选数量信息maxnumsubblockmergecand为0(maxnumsubblockmergecand=0)的情况,mmvd模式使用指示符(例如,sps_mmvd_enabled_flag),
[0291]
组合帧内预测使用指示符(例如,sps_ciip_enabled_flag)
[0292]
三角形分区合并模式使用指示符(例如,sps_triangle_enabled_flag)
[0293]
条件2:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的mmvd模式使用指示符sps_mmvd_enabled_flag具有作为第二值的“0”并且当前块的宽度和高度的乘积为32的情况
[0294]
在另一示例中,如果一般合并模式指示符(general_merge_flag)值是作为第一值的“1”并且满足以下条件(条件1或条件2)中的至少一个条件,则常规合并模式指示符可在不被熵编码/熵解码的情况下被推导为作为第一值的“1”。换言之,这可指示当前块总是处于常规合并模式。
[0295]
条件1:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的以下指示符值都具有作为第二值的“0”并且三角形分区合并模式的最大候选数量信息maxnumtrianglemergecand为0(maxnumtrianglemergecand=0)的情况,mmvd模式使用指示符(例如,sps_mmvd_enabled_
flag),
[0296]
子块单元时间运动矢量预测使用指示符(例如,sps_sbtmvp_enabled_flag)
[0297]
仿射变换模型预测使用指示符(例如,sps_affine_enabled_flag)
[0298]
组合帧内预测使用指示符(例如,sps_ciip_enabled_flag)
[0299]
条件2:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的mmvd模式使用指示符sps_mmvd_enabled_flag具有作为第二值的“0”并且当前块的宽度和高度的乘积为32的情况
[0300]
在另一示例中,如果一般合并模式指示符(general_merge_flag)值是作为第一值的“1”并且满足以下条件(条件1或条件2)中的至少一个条件,则常规合并模式指示符可在不被熵编码/熵解码的情况下被推导为作为第一值的“1”。换言之,这可指示当前块总是处于常规合并模式。
[0301]
条件1:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的以下指示符值都具有作为第二值的“0”,子块合并模式的最大候选数量信息maxnumsubblockmergecand为“0”(maxnumsubblockmergecand=0),并且三角形分区合并模式的最大候选数量信息maxnumtrianglemergecand为“0”(maxnumtrianglemergecand=0)的情况,
[0302]
mmvd模式使用指示符(例如,sps_mmvd_enabled_flag),
[0303]
组合帧内预测使用指示符(例如,sps_ciip_enabled_flag)
[0304]
条件2:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组、条带头等)被熵解码的mmvd模式使用指示符sps_mmvd_enabled_flag具有作为第二值的“0”并且当前块的宽度和高度的乘积为32的情况
[0305]
在另一示例中,如果一般合并模式指示符general_merge_flag值是作为第一值的“1”,并且子块合并模式指示符(例如,merge_subblock_flag)是作为第二值的“0”(不指示子块合并模式),则常规合并模式指示符可在不被熵编码/熵解码的情况下被推导为作为第一值的“1”。换言之,这可指示当前块总是处于常规合并模式。
[0306]
另外,常规合并模式指示符(例如,regular_merge_flag)可指示常规合并模式或mmvd模式。
[0307]
例如,如果经过熵解码的“regular_merge_flag”是作为第一值的“1”,则这可表示当前块在常规合并模式或mmvd模式下被解码。
[0308]
可基于经过熵编码的预测模式信息(跳过指示符或预测模式ibc指示符)来确定基于帧内块复制的跳过/合并模式,并且由经过解码的合并索引选择的合并模式的运动信息可被用作当前块的运动信息,即,块矢量。
[0309]
在基于帧内块复制的跳过/合并模式下,仅合并索引信息可被熵解码。
[0310]
图9至图12是示出根据本发明的各种实施例的合并模式的帧间预测信息语法的示图。
[0311]
图9示出针对在当前块在一般合并模式下被编码/解码(即,general_merge_flag=1)时被熵解码的帧间预测模式信息的语法表的示例。
[0312]
如图9中所示,如果在更高级(例如,序列级)被熵解码的指示符“sps_mmvd_enabled_flag”、“sps_sbtmvp_enabled_flag”、“sps_affine_enabled_flag”、“sps_ciip_
enabled_flag”或“sps_triangle_enabled_flag”中的至少一个指示符是“1”,也就是说,仅在允许使用对应模式的情况下,可对常规合并模式指示符regular_merge_flag进行熵解码。在其他情况下,可不执行熵解码,并且常规合并模式指示符值可总是被推断为“1”。
[0313]
此外,如果指示符“sps_mmvd_enabled_flag”、“sps_sbtmvp_enabled_flag”、“sps_affine_enabled_flag”、“sps_ciip_enabled_flag”或“sps_triangle_enabled_flag”中的至少一个指示符是“1”,则另外地,可基于当前块的宽度和高度来确定对常规合并模式指示符的熵解码。
[0314]
例如,如图9中所示,仅在当前块的宽度和高度的乘积不是32时,可对常规合并模式指示符进行熵解码。换言之,如果宽度和高度的乘积是32,则可不执行熵解码,并且常规合并模式指示符值可总是被推断为“1”。也就是说,可推断当前块处于常规合并模式。
[0315]
此外,如果指示符“sps_mmvd_enabled_flag”、“sps_sbtmvp_enabled_flag”、“sps_affine_enabled_flag”、“sps_ciip_enabled_flag”或“sps_triangle_enabled_flag”中的至少一个指示符是“1”,则另外地,当“sps_mmvd_enabled_flag”是作为第一值的“1”时,如图9中所示,常规合并模式指示符可总是被熵解码,而不管当前块的宽度和高度如何。
[0316]
图10示出针对在当前块在一般合并模式下被编码/解码(即,general_merge_flag=1)时被熵解码的帧间预测模式信息的语法表的另一示例。
[0317]
与图9不同,不直接使用在更高级(例如,序列级)被熵解码的指示符“sps_sbtmvp_enabled_flag”和“sps_affine_enabled_flag”,并且可基于在另一更高级(例如,序列级、画面级或条带头)被熵解码的子块合并模式的最大数量信息maxnumsubblockmergecand来确定常规合并模式指示符regular_merge_flag是否被熵解码。
[0318]
maxnumsubblockmergecand可具有从0至5的值,并且可如下通过“five_minus_max_num_subblock_merge_cand”信息被推导出。
[0319]
maxnumsubblockmergecand=5-five_minus_max_num_subblock_merge_cand
[0320]
如果maxnumsubblockmergecand具有值“0”,则这可表示子块单元合并模式未被用于当前条带。
[0321]
如图10中所示,如果当前块的子块合并模式的最大数量信息大于0或者在更高级被熵解码的指示符“sps_mmvd_enabled_flag”、“sps_ciip_enabled_flag”或“sps_triangle_enabled_flag”中的至少一个指示符是“1”,则可对常规合并模式指示符regular_merge_flag进行熵解码。
[0322]
图11示出针对在当前块在一般合并模式下被编码/解码(即,general_merge_flag=1)时被熵解码的帧间预测模式信息的语法表的另一示例。
[0323]
与图9不同,不直接使用在更高级(例如,序列级)被熵解码的指示符“sps_triangle_enabled_flag”,并且可基于在另一更高级(例如,条带头)被熵解码的三角形分区合并模式的最大数量信息maxnumtrianglemergecand来确定常规合并模式指示符regular_merge_flag是否被熵解码。这里,三角形分区合并模式可以是几何分区合并模式。
[0324]
可如下通过在条带级被解码的“max_num_merge_cand_minus_max_num_triangle_cand”信息推导maxnumtrianglemergecand。
[0325]
maxnumtrianglemergecand=maxnummergecand-max_num_merge_cand_minus_
max_num_triangle_cand
[0326]
maxnummergecand可表示由在条带级被解码的“six_minus_max_num_merge_cand”推导出的合并候选的数量。
[0327]
如果maxnumtrianglemergecand具有值“0”,则这可表示三角形分区合并模式未被用于当前条带。
[0328]
如图11中所示,如果当前块的三角形合并模式的最大数量信息大于1或者在更高级被熵解码的指示符“sps_mmvd_enabled_flag”、“sps_sbtmvp_enabled_flag”、“sps_affine_enabled_flag”或“sps_ciip_enabled_flag”中的至少一个指示符是“1”,则可对常规合并模式指示符regular_merge_flag进行熵解码。
[0329]
图12示出针对在当前块在一般合并模式下被编码/解码(即,general_merge_flag=1)时被熵解码的帧间预测模式信息的语法表的另一示例。
[0330]
与图9不同,不直接使用在更高级(例如,序列级)被熵解码的指示符“sps_sbtmvp_enabled_flag”、“sps_affine_enabled_flag”和“sps_triangle_enabled_flag”,并且可基于在另一更高级(例如,序列级、画面级或条带头)被熵解码的子块合并模式的最大数量信息maxnumsubblockmergecand和三角形分区合并模式的最大数量信息maxnumtrianglemergecand来确定常规合并模式指示符regular_merge_flag是否被熵解码。
[0331]
maxnumsubblockmergecand可具有从0至5的值,并且可如下通过“five_minus_max_num_subblock_merge_cand”信息被推导出。
[0332]
maxnumsubblockmergecand=5-five_minus_max_num_subblock_merge_cand
[0333]
如果maxnumsubblockmergecand具有值“0”,则这可表示子块单元合并模式未被用于当前块。
[0334]
可如下通过在条带级被解码的“max_num_merge_cand_minus_max_num_triangle_cand”信息推导maxnumtrianglemergecand。
[0335]
maxnumtrianglemergecand=maxnummergecand-max_num_merge_cand_minus_max_num_triangle_cand
[0336]
maxnummergecand可表示由在条带级被解码的“six_minus_max_num_merge_cand”推导出的合并候选的数量。
[0337]
如果maxnumtrianglemergecand具有值“0”,则这可表示三角形分区合并模式未被用于当前条带。
[0338]
如图12中所示,如果当前块的三角形分区合并模式的最大数量信息大于1,子块合并模式的最大数量大于0,或者在更高级被熵解码的指示符“sps_mmvd_enabled_flag”或“sps_ciip_enabled_flag”中的至少一个指示符的值为“1”,则常规合并模式指示符regular_merge_flag可被熵解码。
[0339]
图13是示出针对在序列参数集被熵解码的非常规合并模式使用指示符的语法表的示例的示图。
[0340]
如果非常规合并模式使用指示符(例如,sps_non_regular_merge_enabled_flag)的值是作为第一值的“1”,则可对以下指示符中的至少一个指示符进行熵解码:具有mvd的合并模式使用指示符、子块单元时间运动矢量预测使用指示符、基于仿射模型变换的预测
使用指示符、组合帧内合并模式使用指示符或三角形分区合并模式使用指示符。
[0341]
如果非常规合并模式使用指示符(例如,sps_non_regular_merge_enabled_flag)的值是作为第二值的“0”,则以下指示符中的至少一个指示符可不被熵解码并且可被推断为作为第二值的“0”(这可指示对应预测模式未被使用):具有mvd的合并模式使用指示符、子块单元时间运动矢量预测使用指示符、基于仿射模型变换的预测使用指示符、组合帧内合并模式使用指示符或三角形分区合并模式使用指示符。
[0342]
图14是示出针对在当前块在一般合并模式下被编码/解码(即,general_merge_flag=1)时被熵解码的帧间预测模式信息的语法表的示例的示图。
[0343]
可基于在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的非常规合并模式使用指示符来确定是否对常规合并模式指示符regular_merge_flag进行熵解码。
[0344]
例如,仅在非常规合并模式使用指示符(例如,sps_non_regular_merge_enabled_flag)的值是作为第一值的“1”并且仅满足两个条件(在更高级被解码的“sps_mmvd_enabled_flag”是作为第一值的“1”并且当前块的宽度和高度的乘积不是32)中的至少一个条件的情况下,可对常规合并模式指示符regular_merge_flag进行熵解码。
[0345]
在下文中,将详细描述具有mvd的合并模式、子块合并模式、组合帧内合并模式和三角形分区模式。
[0346]
在具有mvd的合并(mmvd)模式下,可基于校正信息对由经过解码的合并索引选择的合并候选的运动信息的运动矢量进行校正,并且然后将其用作当前块的运动信息。这里,校正信息可包括校正方向信息mmvd_direction_idx或校正距离信息中的至少一个。可通过校正信息推导运动矢量差信息,并且通过将推导出的运动矢量差信息与由合并索引选择的合并候选的运动信息的运动矢量相加而获得的运动信息可被用作当前块的运动信息。
[0347]
mmvd模式可由mmvd模式指示符(例如,mmvd_merge_flag)值来指示,并且该指示符可被熵编码/熵解码。
[0348]
例如,如果经过熵解码的“mmvd_merge_flag”具有作为第一值的“1”,则这可表示当前块在mmvd模式下被解码。如果“mmvd_merge_flag”具有作为第一值的“1”,则可对与合并索引信息对应的“mmvd_cand_flag”、校正距离信息mmvd_distance_idx和校正方向信息mmvd_direction_idx进行熵解码。
[0349]
例如,如果经过熵解码的“mmvd_merge_flag”是作为第二值的“0”,则这可表示当前块在常规合并模式、子块合并模式、组合帧内合并模式或三角形分区合并模式中的至少一个模式下被解码,而不是在mmvd模式下被解码。
[0350]
例如,如果经过熵解码的“mmvd_merge_flag”是作为第二值的“0”,则这可表示当前块在常规合并模式下被解码,而不是在mmvd模式下被解码。
[0351]
可不基于在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的运动矢量差合并模式使用指示符值对该指示符进行熵解码。
[0352]
例如,仅当在sps被熵解码的mmvd使用指示符(例如,sps_mmvd_enabled_flag)具有作为第一值的“1”(指示使用mmvd模式)时,可对“mmvd_merge_flag”进行熵解码。
[0353]
如果指示符mmvd_merge_flag未被熵解码,则可设置值“0”。换言之,这可指示mmvd
模式未被应用于当前将被解码的块。
[0354]
子块合并模式可表示以当前块的子块为单位推导运动信息的模式。当子块合并模式被应用时,可使用参考图像中的与当前子块对应(同位)的子块的运动信息(基于子块的时间合并候选)和/或仿射控制点运动矢量合并候选来生成子块合并候选列表。
[0355]
子块合并模式可由子块合并模式指示符(例如,merge_subblock_flag)的值来指示,并且该指示符可被熵编码/熵解码。
[0356]
例如,如果经过熵解码的“merge_subblock_flag”具有作为第一值的“1”,则这可表示当前块在子块合并模式下被解码。如果“merge_sublock_flag”具有作为第一值的“1”,则可对子块合并索引信息merge_subblock_idx进行熵解码。
[0357]
例如,如果经过熵解码的“merge_subblock_flag”是作为第二值的“0”,则这可表示当前块在常规合并模式、mmvd模式、组合帧内合并模式或三角形分区合并模式中的至少一个模式下被解码,而不是在子块合并模式下被解码。
[0358]
可不基于在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的子块单元时间运动矢量预测使用指示符或基于仿射变换模型的预测使用指示符中的至少一个对所述指示符进行熵解码。
[0359]
例如,如果在sps被熵解码的子块单元时间运动矢量预测使用指示符(例如,sps_sbtmvp_enabled_flag)具有作为第一值的“1”(指示使用子块单元时间运动矢量),则可对指示符“merge_subblock_flag”进行熵解码。
[0360]
例如,如果在sps被熵解码的仿射变换模型预测使用指示符(例如,sps_affine_enabled_flag)具有作为第一值的“1”(指示使用仿射变换模型),则可对指示符“merge_subblock_flag”进行熵解码。
[0361]
例如,如果在sps被熵解码的“sps_sbtmvp_enabled_flag”和“sps_affine_enabled_flag”两者具有作为第二值的“0”(指示不使用子块单元时间运动矢量预测和仿射变换模型预测),则可不对指示符“merge_subblock_flag”进行熵解码。
[0362]
可基于子块合并模式的最大数量信息maxnumsubblockmergecand对所述指示符进行熵解码。例如,如果maxnumsubblockmergecand具有“0”,则可不对指示符“merge_subblock_flag”进行熵解码。
[0363]
如果指示符merge_subblock_flag未被熵解码,则可设置值“0”。换言之,这可指示子块单元合并模式未被应用于当前将被解码的块。
[0364]
组合帧内合并模式(或组合帧间帧内预测模式、ciip模式、组合帧间帧内预测模式)可表示这样的模式:通过对通过帧间预测生成的预测样点和通过帧内预测生成的预测样点进行加权求和来推导当前块的预测样点。
[0365]
组合帧内合并模式可由组合帧内合并模式指示符(例如,ciip_flag)的值来指示,并且该指示符可被熵编码/熵解码。
[0366]
例如,如果经过熵解码的“ciip_flag”具有作为第一值的“1”,则这可表示当前块在组合帧内合并模式下被解码。如果“ciip_flag”具有作为第一值的“1”,则可对用于生成帧间预测样点的合并索引信息merge_idx进行熵解码。
[0367]
例如,如果经过熵解码的“ciip_flag”具有作为第二值的“0”,则这可表示当前块在常规合并模式、mmvd模式、子块合并模式或三角形分区合并模式中的至少一个模式下被
解码,而不是在组合帧内合并模式下被解码。
[0368]
可不基于在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的组合帧内合并模式使用指示符值对所述指示符进行熵解码。
[0369]
例如,仅当在sps被熵解码的组合帧内合并模式使用指示符(例如,sps_ciip_enabled_flag)具有作为第一值的“1”(指示使用组合帧内合并模式)时,可对“ciip_flag”进行熵解码。
[0370]
如果所述指示符未被熵解码,则可基于组合帧内合并模式使用指示符sps_ciip_enabled_flag、常规合并模式指示符regular_merge_flag、跳过指示符cu_skip_flag或当前块的尺寸中的至少一个来设置组合帧内合并模式指示符的值。
[0371]
三角形分区合并模式(或几何分区模式,gpm,geometric partitioning mode)可表示这样的模式:通过对当前块进行分区来推导运动信息,使用推导出的运动信息来推导每个预测样点,并且通过对推导出的预测样点进行加权求和来推导当前块的预测样点。这里,几何分区模式可表示这样的模式:将当前块分区为不对称子块,并对当前块进行预测。
[0372]
三角形分区合并模式可由三角形分区合并模式指示符(例如,triangle_merge_flag)的值来指示,并且该指示符可被熵编码/熵解码。
[0373]
例如,如果经过熵解码的“triangle_merge_flag”具有作为第一值的“1”,则这可表示当前块在三角形分区合并模式下被解码。
[0374]
例如,如果经过熵解码的“triangle_merge_flag”具有作为第二值的“0”,则这可表示当前块在常规合并模式、mmvd模式、子块合并模式或组合帧内合并模式中的至少一个模式下被解码,而不是在三角形分区合并模式下被解码。
[0375]
可基于在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的三角形分区合并模式使用指示符的值对所述指示符进行熵解码。
[0376]
例如,仅当在sps被熵解码的三角形分区合并模式使用指示符(例如,sps_triangle_enabled_flag)具有作为第一值的“1”(指示使用三角形分区合并模式)时,可对“triange_merge_flag”进行熵解码。
[0377]
如果所述指示符未被熵解码,则可设置值“0”。换言之,这可表示三角形分区合并模式未被应用于当前将被解码的块。
[0378]
另外,可通过组合帧内合并模式指示符(例如,ciip_flag)的值来确定三角形分区合并模式是否被执行。例如,如果组合帧内合并模式指示符(ciip_flag)具有作为第二值的“0”(不指示组合帧内合并模式),则可将当前块确定为处于三角形分区合并模式,并且可对三角形分区合并预测信息进行熵解码。
[0379]
此外,可基于组合帧内合并模式指示符(例如,ciip_flag)的值来确定几何分区合并模式是否被执行。例如,如果组合帧内合并模式指示符ciip_flag具有作为第二值的“0”(不指示组合帧内合并模式),则可对几何分区合并预测信息进行熵解码。
[0380]
三角形分区合并模式可由三角形分区合并模式指示符的值来指示,并且如果在不执行熵编码/熵解码的情况下满足以下条件,则可将当前块的指示符(例如,mergetriangleflag)设置为“1”。这里,三角形分区合并模式可表示几何分区合并模式。也
就是说,三角形分区合并模式使用指示符、三角形分区合并模式的最大数量和三角形分区合并模式指示符可分别表示几何分区合并模式使用指示符、几何分区合并模式的最大数量和几何分区合并模式指示符。
[0381]
如果不满足以下条件中的至少一个条件,则可将“mergetriangleflag”的值设置为“0”。换言之,这可表示针对当前块不允许三角形分区合并模式。
[0382]
如果在更高级被熵解码的三角形分区合并模式使用指示符(例如,sps_triangle_enabled_flag)的值为“1”,
[0383]
如果当前块的条带类型为b条带,
[0384]
如果一般合并模式指示符general_merge_flag的值为“1”,
[0385]
如果三角形分区合并模式的候选的最大可允许数量maxnumtrianglemergecand大于或等于2,
[0386]
如果当前块的宽度和高度的乘积大于或等于64,
[0387]
如果常规合并模式指示符regular_merge_flag的值为“0”,
[0388]
如果mmvd模式指示符mmvd_merge_flag的值为“0”,
[0389]
如果子块合并模式指示符merge_subblock_flag的值为“0”,
[0390]
如果组合帧内合并模式指示符ciip_flag的值为“0”,
[0391]
如果mergetriangleflag是作为第一值的“1”,则可对两个子块的分区方向信息指示符merge_triangle_split_dir以及合并索引信息merge_triangle_idx0和merge_triangle_idx1进行熵编码/熵解码。
[0392]
如果三角形分区合并模式的候选的最大可允许数量maxnumtrianglemergecand为2,则可不对“merge_triangle_idx1”进行熵编码/熵解码,并且可使用除了由“merge_triangle_idx0”指示的候选之外的其他候选。
[0393]
如果当前块的经过编码/解码的一般合并模式general_merge_flag具有作为第一值的“1”并且以下所有合并模式指示符值是作为第二值的“0”,则当前块的合并索引信息merge_idx可在不被熵解码的情况下被推断为“0”。
[0394]
常规合并模式指示符(例如,regular_merge_flag)
[0395]
mmvd模式指示符(例如,mmvd_merge_flag)
[0396]
子块合并模式指示符(例如,merge_subblock_flag)
[0397]
组合帧内合并模式指示符(例如,ciip_flag)
[0398]
三角形分区合并模式指示符(例如,mergetriangleflag)
[0399]
如果满足上述条件并且因此一般合并模式general_merge_flag的值是作为第一值的“1”且合并索引信息被推断为“0”,则存储在合并候选列表中的运动信息中的第一候选的运动信息可被用作当前块的运动信息。
[0400]
存储在合并候选列表中的运动信息可以是以下项中的至少一项:与当前块相邻的邻近块的运动信息(空间合并候选)、参考图像中的与当前块对应(同位)的块的运动信息(时间合并候选)、通过合并候选列表中已经存在的运动信息的组合而生成的新运动信息、在当前块之前被编码/解码的块的运动信息(基于历史的合并候选)、或零合并候选。
[0401]
在另一示例中,如果当前块的经过编码/解码的一般合并模式general_merge_flag具有作为第一值的“1”并且以下所有合并模式指示符值具有作为第二值的“0”,则当前
块可被设置为回退(fallback)合并模式,并且在利用零合并候选配置合并列表之后,第一候选的运动信息可被用作当前块的运动信息。
[0402]
常规合并模式指示符regular_merge_flag
[0403]
mmvd模式指示符mmvd_merge_flag
[0404]
子块合并模式指示符merge_subblock_flag
[0405]
组合帧内合并模式指示符ciip_flag
[0406]
三角形分区合并模式指示符mergetriangleflag
[0407]
如果满足上述条件,一般合并模式general_merge_flag具有作为第一值的“1”,并且合并索引信息被推断为“0”,则可不基于从对应索引信息推导出的运动矢量来执行附加校正。
[0408]
如果满足上述条件,一般合并模式general_merge_flag具有作为第一值的“1”,并且当前块被设置为回退合并模式,则可不执行附加校正。
[0409]
附加校正可表示这样的处理(解码器运动矢量修正(dmvr)):在解码器中通过基于从合并索引信息“0”推导出的运动信息所指示的参考块搜索预定义区域来对具有最小sad的运动信息进行校正。
[0410]
附加校正可表示这样的处理(双向光流(bdof)):在解码器中基于从合并索引信息“0”推导出的运动信息使用光流来补偿通过帧间预测推导出的预测样点。
[0411]
应用于帧间模式(或amvp模式或高级运动矢量预测模式)的预测模式可包括基于帧内块复制的帧间模式、一般amvp模式、使用仿射变换模式的仿射帧间模式、用于基于l0方向mvd推导l1方向mvd的对称运动矢量差(smvd)模式、用于调整mvd的分辨率的自适应运动矢量分辨率(amvr)模式等。
[0412]
可基于经过熵解码的预测模式信息(预测模式ibc指示符,例如,pred_mode_ibc_flag)来确定帧内块复制帧间模式,并且通过将经过解码的块矢量差(bvd)与由经过解码的运动矢量索引(例如,mvp_l0_flag)选择的运动矢量预测候选相加而获得的运动矢量可被用作当前块的运动矢量,即,块矢量。
[0413]
在一般amvp模式下,通过将经过解码的l0/l1运动矢量差与由在l0方向和l1方向上解码的运动矢量索引(例如,mvp_lx_flag,x=0或1)选择的运动矢量预测候选相加而获得的运动矢量可被用作当前块的l0/l1运动矢量。
[0414]
可对指示l0或l1单向帧间预测或者l0/l1双向帧间预测的帧间预测指示符inter_pred_idc、l0和l1方向上的参考图像索引ref_idx、以及l0和l1方向上的水平/垂直运动矢量差值信息进行熵编码/熵解码。
[0415]
如果l0和l1方向上的水平或垂直运动矢量差值中的至少一个中的运动矢量差值不是“0”,则可对自适应运动矢量差指示符amvr_flag进行熵解码,并且如果对应指示符值是“1”,则可对针对1/16像素、1/2像素、1像素或4像素分辨率的指示符amvr_precision_flag进行熵解码。
[0416]
例如,如果“amver_flag”具有作为第一值的“1”并且“amvr_precision_flag”具有作为第二值的“0”,则这可表示运动矢量差值是1(整数)像素分辨率。如果“amver_flag”具有作为第一值的“1”并且“amvr_precision_flag”具有作为第一值的“1”,则这可表示运动矢量差值是4(整数)像素分辨率。如果“amvr_flag”具有作为第二值的“0”,则运动矢量差值
具有1/4像素分辨率。
[0417]
在仿射帧间模式下,通过将经过解码的l0/l1仿射控制点运动矢量差与由在l0方向和l1方向中的每个方向上解码的运动矢量索引(例如,mvp_lx_flag,x=0或1)选择的仿射控制点运动矢量预测候选相加而获得的运动矢量可被用作当前块的l0/l1仿射控制点运动矢量。
[0418]
指示当前块是否处于仿射帧间模式的仿射帧间模式指示符inter_affine_flag可被熵编码/熵解码。
[0419]
如果指示符inter_affine_flag具有作为第一值的“1”,则可对仿射类型信息cu_affine_type_flag进行熵编码/熵解码,其中,所述仿射类型信息cu_affine_type_flag指示使用两个仿射控制点运动矢量的4参数或使用三个仿射控制点运动矢量的6参数。
[0420]
如果“cu_affine_type_flag”具有作为第一值的“1”,则这可表示使用三个仿射控制点运动矢量的6参数。
[0421]
如果“cu_affine_type_flag”具有作为第二值的“0”,则这可表示使用两个仿射控制点运动矢量的4参数。
[0422]
可基于在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的6参数使用指示符(例如,sps_affine_type_flag)来确定仿射类型信息cu_affine_type_flag是否被熵编码/熵解码。
[0423]
例如,如果在sps被熵解码的sps_affine_type_flag具有“1”并且当前将被解码的块的仿射帧间模式指示符“inter_affine_flag”具有“1”,则可对cu_affine_type_flag进行编码/解码。
[0424]
如果不存在仿射类型信息,则作为第二值的“0”(即,4参数)可被推断出。
[0425]
可对指示l0或l1单向帧间预测或者l0/l1双向帧间预测的帧间预测指示符inter_pred_idc、l0和l1方向上的参考图像索引ref_idx、以及l0和l1方向上的水平/垂直运动矢量差值信息进行熵编码/熵解码。
[0426]
如果l0和l1方向上的两个或三个水平或垂直运动矢量差值中的至少一个中的运动矢量差值不是“0”,则可对自适应运动矢量差指示符amvr_flag进行熵解码,并且如果对应指示符值具有“1”,则可对针对1像素或1/16像素分辨率的指示符amvr_precision_flag进行熵解码。
[0427]
如果“amver_flag”具有作为第一值的“1”并且“amvr_precision_flag”具有作为第二值的“0”,则这可表示运动矢量差值是1/16像素分辨率。
[0428]
如果“amver_flag”具有作为第一值的“1”并且“amvr_precision_flag”具有作为第一值的“1”,则这可表示运动矢量差值是1(整数)像素分辨率。
[0429]
如果“amvr_flag”具有作为第二值的“0”,则这可表示运动矢量差值是1/4像素分辨率。
[0430]
可基于在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的仿射自适应运动矢量差使用指示符(例如,sps_affine_amvr_enabled_flag)来确定自适应运动矢量差指示符amvr_flag是否被熵编码/熵解码。
[0431]
如图15中所示,仅在仿射变换模型预测使用指示符sps_affine_enabled_flag的
值为作为第一值的“1”的情况下,仿射自适应运动矢量差使用指示符sps_affine_amvr_enabled_flag可被熵编码/熵解码。
[0432]
例如,如果在sps被编码/解码的“sps_affine_amvr_enabled_flag”具有作为第一值的“1”,当前块的仿射帧间模式指示符“inter_affine_flag”具有作为第一值的“1”,并且l0和l1方向上的两个或三个水平或垂直运动矢量差值中的至少一个方向上的运动矢量差值不是“0”,则可对自适应运动矢量差指示符amvr_flag进行熵编码/熵解码。
[0433]
在smvd模式下,可不对l0和l1方向中的每个方向上的参考图像索引信息ref_idx进行熵编码/熵解码,并且可使用在条带级推导出的参考图像索引信息。此外,l1方向上的水平/垂直运动矢量差值可不被熵编码/熵解码,并且经过熵编码/熵解码的l0方向上的水平/垂直运动矢量差值的对称值可被用作l1方向上的水平/垂直运动矢量差值。
[0434]
可对指示当前块是否处于smvd模式的对称mvd模式指示符sym_mvd_flag进行熵编码/熵解码。
[0435]
可基于以下项中的至少一项来确定指示符sym_mvd_flag是否被熵编码/熵解码:在更高级(诸如序列参数集(sps)、画面参数集(pps)、自适应参数集(aps)、子画面、并行块组或条带头)被熵解码的对称mvd模式使用指示符sps_smvd_enabled_flag、指示l0或l1单向帧间预测或者l0/l1双向帧间预测的帧间预测指示符inter_pred_idc、或者mvd_l1_zero_flag,其中,mvd_l1_zero_flag指示l1方向上的运动矢量差值在没有通过在条带头执行熵编码/熵解码而被熵解码的情况下是否被用作“0”。
[0436]
例如,如果在sps被解码的“sps_smvd_enabled_flag”具有作为第一值的“1”(允许对称mvd)并且经过解码的“mvd_l1_zero_flag”具有作为第二值的“0”,而当前块的帧间预测指示符是双向预测,则可对指示符sym_mvd_flag进行熵编码/熵解码。
[0437]
例如,如果在sps被解码的“sps_smvd_enabled_flag”具有作为第一值的“1”(允许对称mvd),并且经过解码的“mvd_l1_zero_flag”具有作为第一值的“1”,而当前块的帧间预测指示符是双向预测,则可不对指示符sym_mvd_flag进行熵编码/熵解码。
[0438]
如果“sym_mvd_flag”的值不存在,则可表示对应指示符值被推断为“0”并且不允许当前块的对称mvd。
[0439]
图16是示出根据本发明的实施例的合并模式的帧间预测信息语法的示图。
[0440]
图16示出针对在当前块在一般合并模式下被编码/解码(即,general_merge_flag=1)时被熵解码的帧间预测模式信息的语法表的示例。
[0441]
可基于在更高级(例如,序列级或画面级)被熵解码的子块合并模式的最大数量信息maxnumsubblockmergecand、当前块的宽度或当前块的高度中的至少一个来确定子块合并指示符merge_subblock_flag是否被熵解码。
[0442]
例如,如果maxnumsubblockmergecand大于“0”并且当前块的宽度和高度两者等于或大于8,则可对子块合并指示符进行熵解码。
[0443]
可基于以下项中的至少一项来确定常规合并模式指示符regular_merge_flag是否被熵解码:子块合并模式指示符merge_subblock_flag、跳过指示符cu_skip_flag、组合帧内预测使用指示符sps_ciip_enabled_flag、当前块的宽度cbwidth、当前块的高度cbheight、当前块的面积cbwidth*cbheight、条带类型slice_type、或三角形分区合并候选的最大数量maxnumtrianglemergecand。
[0444]
例如,如果子块合并模式指示符merge_subblock_flag具有作为第一值的“1”(指示子块合并模式的),则可不对常规合并模式指示符regular_merge_flag进行熵解码。
[0445]
例如,如果组合帧内预测使用指示符sps_ciip_enabled_flag具有作为第一值的“1”(指示允许使用组合帧内预测),并且跳过指示符cu_skip_flag具有作为第二值的“0”(不指示跳过模式),则可对常规合并模式指示符regular_merge_flag进行熵解码。
[0446]
例如,如果条带类型是b条带并且三角形分区合并候选的最大数量大于或等于预定义值(例如,2),则可对常规合并模式指示符regular_merge_flag进行熵解码。如果三角形分区合并候选的最大数量小于所述预定义值,则这可表示不执行三角形分区合并模式。例如,如果条带类型是b条带并且三角形分区合并模式被执行,则可对常规合并模式指示符regular_merge_flag进行熵解码。
[0447]
例如,如果条带类型指示i条带或p条带,并且跳过指示符cu_skip_flag具有作为第一值的“1”(指示跳过模式),则可不对常规合并模式指示符regular_merge_flag进行熵解码。
[0448]
例如,如果条带类型指示i条带或p条带,并且组合帧内预测使用指示符sps_ciip_enabled_flag具有作为第二值的“0”(不指示允许使用组合帧内预测),则可不对常规合并模式指示符regular_merge_flag进行熵解码。
[0449]
例如,如果当前块的宽度或高度中的至少一个大于或等于预定义值(例如,128),则可不对常规合并模式指示符regular_merge_flag进行熵解码。
[0450]
此外,如果满足图16中描述的条件,则可对常规合并模式指示符regular_merge_flag进行熵解码。
[0451]
如果常规合并模式指示符具有作为第一值的“1”(指示常规合并模式),并且mmvd模式使用指示符sps_mmvd_enabled_flag具有作为第一值的“1”(指示使用mmvd模式),则可对mmvd模式指示符mmvd_merge_flag进行熵解码。
[0452]
可基于以下项中的至少一项来确定组合帧内合并模式指示符ciip_flag是否被熵解码:常规合并模式指示符regular_merge_flag、跳过指示符cu_skip_flag、组合帧内预测使用指示符sps_ciip_enabled_flag、当前块的宽度cbwidth、当前块的高度cbheight、条带类型slice_type、或三角形分区合并候选的最大数量maxnumtrianglemergecand。如果常规合并模式指示符具有作为第二值的“0”(不指示常规合并模式),则可对组合帧内合并模式指示符ciip_flag进行熵解码。
[0453]
如果三角形分区合并候选的最大数量maxnumtrianglemergecand小于2,则可不对组合帧内合并模式指示符ciip_flag进行熵解码。如果三角形分区合并候选的最大数量maxnumtrianglemergecand小于2,则这可表示三角形分区合并模式未被执行。
[0454]
如果条带类型指示i条带或p条带,则可不对组合帧内合并模式指示符ciip_flag进行熵解码。
[0455]
如果组合帧内合并模式指示符ciip_flag具有作为第一值的“1”(指示组合帧内合并模式)并且合并候选的最大数量maxnummergecand大于1,则可对合并索引信息merge_idx进行熵解码。
[0456]
如果组合帧内合并模式指示符ciip_flag未被熵解码,则可基于以下项中的至少一项来设置组合帧内合并模式指示符的值:组合帧内合并模式使用指示符sps_ciip_
enabled_flag、常规合并模式指示符regular_merge_flag、跳过指示符cu_skip_flag、或当前块的尺寸。
[0457]
因此,即使组合帧内合并模式指示符ciip_flag未被熵解码,组合帧内合并模式指示符ciip_flag的值也可被设置为作为第一值的“1”。因此,即使组合帧内合并模式指示符未被熵解码,合并索引信息merge_idx也可被熵解码。
[0458]
可基于组合帧内合并模式指示符ciip_flag的值来确定三角形分区合并模式是否被执行。例如,如果组合帧内合并模式指示符ciip_flag具有作为第二值的“0”(不指示组合帧内合并模式),则可对三角形分区合并预测信息(merge_tranagle_split_dir、merge_triangle_idx0或merge_triagle_idx1)进行熵解码。这里,三角形分区合并模式可以是几何分区合并模式。
[0459]
图17是示出根据本发明的实施例的指示各种帧间预测模式的语法元素的示图。
[0460]
如果常规合并模式指示符regular_merge_flag的值为“1”,则这可指示常规合并模式或mmvd模式被用于推导帧间预测信息。如果常规合并模式指示符regular_merge_flag的值为“0”,则这可指示组合帧内合并模式或几何分区合并模式被用于推导帧间预测信息。
[0461]
如果mmvd模式指示符mmvd_merge_flag的值为“1”,则这可指示mmvd模式被用于推导帧间预测信息。如果mmvd模式指示符mmvd_merge_flag的值为“0”,则这可指示常规合并模式被用于推导帧间预测信息。
[0462]
另外,如果mmvd模式指示符mmvd_merge_flag未被熵解码,则可设置值“0”。换言之,这可指示mmvd模式未被应用于当前将被解码的块并且常规合并模式被应用。
[0463]
组合帧内合并模式指示符ciip_flag可指示帧间预测和帧内预测的组合是否被应用。
[0464]
另外,如果组合帧内合并模式指示符ciip_flag未被熵解码,则可基于以下项中的至少一项来设置组合帧内合并模式指示符的值:组合帧内合并模式使用指示符sps_ciip_enabled_flag、常规合并模式指示符regular_merge_flag、跳过指示符cu_skip_flag、或当前块的尺寸。
[0465]
图18是示出根据本发明的实施例的图像解码方法的流程图。
[0466]
参照图18,解码器可对当前块的子块合并模式指示符(例如,merge_subblock_flag)进行解码(s1801)。
[0467]
此外,如果子块合并模式指示符不指示子块合并模式(s1802-否),则解码器可对当前块的常规合并模式指示符(例如,regular_merge_flag)进行解码(s1803)。
[0468]
这里,常规合并模式指示符在第一值(例如,“1”)的情况下可指示常规合并模式或mmvd模式被用于推导当前块的帧间预测信息,并且在第二值(例如,“0”)的情况下可指示组合帧内合并模式或几何分区合并模式被用于推导当前块的帧间预测信息。
[0469]
可基于当前块的组合帧内预测使用指示符(例如,sps_ciip_enabled_flag)来确定常规合并模式指示符是否被解码。
[0470]
可基于当前块的跳过指示符(例如,cu_skip_flag)来确定常规合并模式指示符是否被解码。
[0471]
可基于当前块的条带类型(例如,slice_type)来确定常规合并模式指示符是否被解码。
[0472]
如果当前块的宽度或高度中的至少一个大于或等于预定义值(例如,128),则可不对常规合并模式指示符进行解码。
[0473]
此外,如果子块合并模式指示符指示子块合并模式(s1802-是),则解码器可对当前块的子块合并模式信息进行解码(s1804)。这里,子块合并模式信息可以是子块合并索引(例如,merge_subblock_idx)。
[0474]
另外,如果常规合并模式指示符具有第一值(例如,“1”),则解码器可对当前块的mmvd模式指示符mmvd_merge_flag进行解码。此外,如果常规合并模式指示符具有第二值(例如,“0”),则解码器可对当前块的组合帧内合并模式指示符(例如,ciip_flag)进行解码。
[0475]
如果mmvd模式指示符未被熵解码,则可将mmvd模式指示符推断为指示常规合并模式而不是mmvd模式的预定义值(例如,“0)”。
[0476]
如果组合帧内合并模式指示符未被熵解码,则可基于以下项中的至少一项来设置组合帧内合并模式指示符:常规合并模式指示符、组合帧内合并模式使用指示符、跳过指示符、或当前块的尺寸。
[0477]
图19是示出根据本发明的实施例的图像编码方法的流程图。
[0478]
参照图19,编码器可对当前块的子块合并模式指示符(例如,merge_subblock_flag)进行编码(s1901)。
[0479]
此外,如果子块合并模式指示符不指示子块合并模式(s1902-否),则编码器可对当前块的常规合并模式指示符regular_merge_flag进行编码(s1903)。
[0480]
这里,常规合并模式指示符在第一值(例如,“1”)的情况下可指示常规合并模式或mmvd模式被用于推导当前块的帧间预测信息,并且在第二值(例如,“0”)的情况下可指示组合帧内合并模式或几何分区合并模式被用于推导当前块的帧间预测信息。
[0481]
可基于当前块的组合帧内预测使用指示符(例如,sps_ciip_enabled_flag)来确定常规合并模式指示符是否被编码。
[0482]
可基于当前块的跳过指示符(例如,cu_skip_flag)来确定常规合并模式指示符是否被编码。
[0483]
可基于当前块的条带类型(例如,slice_type)来确定常规合并模式指示符是否被编码。
[0484]
如果当前块的宽度或高度中的至少一个大于或等于预定义值(例如,128),则可不对常规合并模式指示符进行编码。
[0485]
此外,如果子块合并模式指示符指示子块合并模式(s1902-是),则编码器可对当前块的子块合并模式信息进行编码(s1904)。这里,子块合并模式信息可以是子块合并索引(例如,merge_subblock_idx)。
[0486]
另外,如果常规合并模式指示符具有第一值(例如,“1”),则编码器可对当前块的mmvd模式指示符mmvd_merge_flag进行编码。此外,如果常规合并模式指示符具有第二值(例如,“0”),则编码器可对当前块的组合帧内合并模式指示符(例如,ciip_flag)进行编码。
[0487]
根据本发明的非暂时性计算机可读记录介质可存储通过参照图19描述的图像编码方法生成的比特流。
[0488]
具体地,在用于存储通过图像编码方法生成的比特流的非暂时性计算机可读记录介质中,所述图像编码方法包括:对当前块的子块合并模式指示符进行编码,如果子块合并模式指示符不指示子块合并模式,则对当前块的常规合并模式指示符进行编码,并且如果子块合并模式指示符指示子块合并模式,则对当前块的子块合并模式信息进行编码。
[0489]
可在编码器和解码器中以相同的方法执行以上实施例。
[0490]
以上实施例中的至少一个实施例或组合可被用于对视频进行编码/解码。
[0491]
应用于以上实施例的顺序在编码器与解码器之间可以是不同的,或者应用于以上实施例的顺序在编码器和解码器中可以是相同的。
[0492]
可对每个亮度信号和色度信号执行以上实施例,或者可对亮度信号和色度信号相同地执行以上实施例。
[0493]
应用本发明的以上实施例的块形式可具有正方形形式或非正方形形式。
[0494]
在编码器中熵编码和在解码器中熵解码的语法元素(标志、索引等)中的至少一个语法元素可使用以下二值化、反二值化、熵编码/熵解码方法中的至少一种。
[0495]
截断rice二值化方法
[0496]
k阶exp_golomb二值化方法
[0497]
有限k阶exp_golomb二值化方法
[0498]
固定长度二值化方法
[0499]
一元二值化方法
[0500]
截断一元二值化方法
[0501]
截断二元二值化方法
[0502]
可根据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本发明的上述实施例。这里,尺寸可被定义为最小尺寸或最大尺寸或者最小尺寸和最大尺寸两者,使得上述实施例被应用,或者尺寸可被定义为应用上述实施例的固定尺寸。此外,在上述实施例中,第一实施例可被应用于第一尺寸,并且第二实施例可被应用于第二尺寸。换言之,可根据尺寸组合地应用上述实施例。此外,当尺寸等于或大于最小尺寸且等于或小于最大尺寸时,可应用上述实施例。换言之,当块尺寸被包括在特定范围内时,可应用上述实施例。
[0503]
例如,当当前块的尺寸为8
×
8或更大时,可应用上述实施例。例如,当当前块的尺寸仅为4
×
4时,可应用上述实施例。例如,当当前块的尺寸为16
×
16或更小时,可应用上述实施例。例如,当当前块的尺寸等于或大于16
×
16且等于或小于64
×
64时,可应用上述实施例。
[0504]
可根据时间层来应用本发明的上述实施例。为了标识可应用上述实施例的时间层,对应标识符可被用信号发送,并且可将上述实施例应用于由所述对应标识符标识的指定时间层。这里,标识符可被定义为可应用上述实施例的最低层或最高层或者最低层和最高层两者,或者可被定义为指示应用所述实施例的特定层。此外,可定义应用所述实施例的固定时间层。
[0505]
例如,当当前图像的时间层是最低层时,可应用上述实施例。例如,当当前图像的时间层标识符是1时,可应用上述实施例。例如,当当前图像的时间层是最高层时,可应用上述实施例。
[0506]
可定义应用本发明的上述实施例的条带类型或并行块组类型,并且可根据对应的条带类型或并行块组类型来应用上述实施例。
[0507]
在上述实施例中,基于具有一系列步骤或单元的流程图描述了所述方法,但是本发明不限于所述步骤的顺序,而是一些步骤可与其他步骤同时执行或按不同的顺序执行。此外,本领域普通技术人员应理解,流程图中的步骤不彼此排斥,并且在不影响本发明的范围的情况下,可将其他步骤添加到流程图,或者可从流程图删除一些步骤。
[0508]
所述实施例包括示例的各个方面。可不描述针对各个方面的所有可能组合,但是本领域技术人员将能够认识到不同的组合。因此,本发明可包括权利要求的范围内的所有替换、修改和改变。
[0509]
可以以可由各种计算机组件执行并被记录在计算机可读记录介质中的程序指令的形式实现本发明的实施例。计算机可读记录介质可包括单独的程序指令、数据文件、数据结构等或者程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可以是针对本发明专门设计和构建的,或者是计算机软件技术领域的普通技术人员公知的。计算机可读记录介质的示例包括被具体构建为存储和实现程序指令的磁记录介质(诸如硬盘、软盘和磁带)、光学数据存储介质(诸如cd-rom或dvd-rom)、磁光介质(诸如软光盘)以及硬件装置(诸如只读存储器(rom)、随机存取存储器(ram)、闪存等)。程序指令的示例不仅包括由编译器格式化的机器语言代码,还包括可由计算机使用解释器实现的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作以进行根据本发明的处理,反之亦可。
[0510]
虽然已经根据诸如详细元件的特定项以及有限的实施例和附图描述了本发明,但是提供它们仅是为了帮助对本发明的更大体的理解,并且本发明不限于上述实施例。本发明所属领域的技术人员将理解,可从上述描述进行各种修改和改变。
[0511]
因此,本发明的精神不应限于上述实施例,并且权利要求及其等同物的整体范围将落入本发明的范围和精神内。
[0512]
工业适用性
[0513]
本发明可被用于对图像进行编码或解码。
再多了解一些

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

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

相关文献