对图像进行解码或编码的方法以及图像数据的传送方法与流程
未命名
08-17
阅读:187
评论:0
对图像进行解码或编码的方法以及图像数据的传送方法
1.本技术是申请日为2019年3月27日、国际申请号为pct/kr2019/003591、发明名称为“用于处理视频信号的方法和设备”、进入中国国家阶段的申请号为201980035242.5的中国专利申请的分案申请。
技术领域
2.本发明涉及用于处理视频信号的方法和设备。
背景技术:
3.近来,在各种应用领域中对高分辨率和高品质图像(例如,高清晰度(high definition,hd)图像和超高清晰度(ultra-high definition,uhd)图像)的需求已经增加。然而,与常规图像数据相比,较高的分辨率和品质的图像数据具有增加的数据量。因此,当通过使用介质、例如常规的有线和无线宽带网络传送图像数据时,或者当通过使用常规的存储介质存储图像数据时,传送成本和存储成本增加。为了解决随着图像数据的分辨率和品质的提高而出现的这些问题,可以利用高效的图像编码/解码技术。
4.图像压缩技术包括各种技术,所述各种技术包括:根据当前图片的先前图片或后续图片来对包括在当前图片中的像素值进行预测的帧间预测技术;通过使用当前图片中的像素信息对包括在当前图片中的像素值进行预测的帧内预测技术;将短代码分配给出现频率高的值并且将长代码分配给出现频率低的值的熵编码技术等。可以通过使用这样的图像压缩技术有效地压缩图像数据,并且可以传送或存储图像数据。
5.同时,随着对高分辨率图像的需求,也增加了对作为新的图像服务的立体图像内容的需求。正在对用于有效地提供具有高分辨率和超高分辨率的立体图像内容的视频压缩技术进行讨论。
技术实现要素:
6.技术问题
7.本发明的目的是提供用于在对视频信号进行编码/解码时有效地拆分编码/解码目标块的方法和设备。
8.本发明的目的是提供用于在对视频信号进行编码/解码时将编码/解码目标块拆分成对称类型的块或非对称类型的块的方法和设备。
9.本发明的目的是提供用于在对视频信号进行编码/解码时将预测目标块或变换目标块设置成在大小/形状上与编码块的大小/形状不同的方法和设备。
10.本发明的目的是提供用于在对视频信号进行编码/解码时自适应地确定对残差系数编码指示符进行编码/解码的子块的大小/形状的方法和设备。
11.本发明的目的是提供用于在对视频信号进行编码/解码时将残差系数的绝对值设置成等于或小于预设值的方法和设备。
12.要由本发明实现的技术目的不限于以上提及的技术问题。并且,本领域技术人员
将从以下描述中清楚地理解未提及的其他技术问题。
13.技术方案
14.根据本发明,提供了用于对视频信号进行解码的方法和设备,其中,确定在当前块中是否包括非0残差系数,以及当确定在当前块中包括非0残差系数时,根据当前块的扫描顺序来对当前块中包括的残差系数进行解码。在本文中,扫描索引大于残差系数调整索引的残差系数的绝对值等于或小于残差系数调整参考值。
15.根据本发明,提供了用于对视频信号进行编码的方法和设备,其中,确定在当前块中是否包括非0残差系数,以及当确定在当前块中包括非0残差系数时,根据当前块的扫描顺序来对当前块中包括的残差系数进行编码。在本文中,扫描索引大于残差系数调整索引的残差系数的绝对值等于或小于残差系数调整参考值。
16.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,残差系数调整索引可以基于当前块的大小和最后的有效残差系数的位置中的至少一个来确定。
17.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,残差系数调整参考值可以是1,残差系数的绝对值可以被设置为与残差水平指示符的值相同,并且残差水平指示符可以指示残差系数的绝对值是否大于0。
18.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,残差系数调整参考值对于每个切片被设置为不同。
19.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,可以将残差系数调整参考值设置为与扫描索引是残差系数调整索引的残差系数的绝对值相同。
20.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,可以基于当前块的残差系数编码指示符来执行对在当前块中是否包括非0残差系数的确定。
21.根据本发明,提供了一种对图像进行解码的方法,其包括:基于分割信息来分割编码树块以确定当前变换块,分割信息包括指示是否使用四叉分割的第一分割标志、指示是否使用二叉分割的第二分割标志和指示二叉分割的分割方向的第三分割标志中的至少一个;确定在当前变换块中是否包括至少一个非0残差系数;以及响应于确定在当前变换块中包括至少一个非0残差系数,根据当前变换块的扫描顺序获得当前变换块的残差系数,其中,基于当前变换块的系数水平信息来获得当前变换块的残差系数,其中,系数水平信息包括第一残差水平标志、奇偶标志和第二残差水平标志中的至少一个,其中,残差系数的绝对值通过以下步骤来确定:基于第一残差水平标志来确定残差系数的绝对值是否大于1,响应于指示残差系数的绝对值大于1的第一残差水平标志,基于奇偶标志确定残差系数的绝对值是偶数还是奇数,以及基于第二残差水平标志来确定残差系数的绝对值是否大于3,其中,仅当第一残差水平标志指示残差系数的绝对值大于1时,经由比特流用信号发送奇偶标志和第二残差水平标志,以及其中,响应于指示残差系数的绝对值不大于3的第二残差水平标志,根据奇偶标志的值将残差系数的绝对值确定为2或3。
22.根据本发明,提供了一种对图像进行编码的方法,其包括:分割编码树块以确定当前变换块;确定在当前变换块中是否包括至少一个非0残差系数;以及响应于确定在当前变换块中包括至少一个非0残差系数,根据当前变换块的扫描顺序对当前变换块的残差系数进行编码,以生成当前变换块的系数水平信息,其中,编码树块的分割信息被编码到比特流中,其中,分割信息包括指示是否使用四叉分割的第一分割标志、指示是否使用二叉分割的
第二分割标志和指示二叉分割的分割方向的第三分割标志中的至少一个,其中,系数水平信息包括第一残差水平标志、奇偶标志和第二残差水平标志中的至少一个,其中,指示残差系数的绝对值是否大于1的第一残差水平标志被编码到比特流中,其中,仅当第一残差水平标志指示残差系数的绝对值大于1时,指示残差系数的绝对值是偶数还是奇数的奇偶标志以及指示残差系数的绝对值是否大于3的第二残差水平标志被进一步编码到比特流中,以及其中,响应于残差系数的绝对值是2或3,指示残差系数的绝对值不大于3的第二残差水平标志被编码到比特流中。
23.根据本发明,还提供了一种图像数据的传送方法,其包括:获得图像数据的比特流,其中,通过以下步骤生成比特流:分割编码树块以确定当前变换块,确定在当前变换块中是否包括至少一个非0残差系数,并且响应于确定在当前变换块中包括至少一个非0残差系数,根据当前变换块的扫描顺序对当前变换块的残差系数进行编码;以及传送比特流,其中,比特流包括编码树块的分割信息,其中,分割信息包括指示是否使用四叉分割的第一分割标志、指示是否使用二叉分割的第二分割标志和指示二叉分割的分割方向的第三分割标志中的至少一个,其中,比特流包括通过对当前变换块的残差系数进行编码生成的系数水平信息,其中,系数水平信息包括第一残差水平标志、奇偶标志和第二残差水平标志中的至少一个,其中,第一残差水平标志指示残差系数的绝对值是否大于1,奇偶标志指示残差系数的绝对值是偶数还是奇数,并且第二残差水平标志指示残差系数的绝对值是否大于3,其中,仅当第一残差水平标志指示残差系数的绝对值大于1时,奇偶标志和第二残差水平标志被编码到比特流中,以及其中,响应于残差系数的绝对值是2或3,指示残差系数的绝对值不大于3的第二残差水平标志被编码到比特流中。
24.以上对本发明简要概述的特征仅是下面对本发明的详细描述的说明性方面,而不是限制本发明的范围。
25.有益效果
26.根据本发明,可以通过有效地拆分编码/解码目标块来改善编码/解码效率。
27.根据本发明,可以通过将编码/解码目标块拆分成对称类型或非对称类型的块来改善编码/解码效率。
28.根据本发明,将预测目标块或变换目标块的大小/形状设置为与编码块的大小/形状不同,使得可以改善编码/解码效率。
29.根据本发明,自适应地确定对残差系数编码指示符进行编码/解码的子块的大小/形状,使得可以改善编码/解码效率。
30.根据本发明,将残差系数的绝对值设置为预设值或更小,使得可以改善编码/解码效率。由本发明获得的效果不限于以上提及的效果,并且本领域技术人员可以从以下描述中清楚地理解未提及的其他效果。
附图说明
31.图1是示出了根据本发明的实施方式的用于对视频进行编码的装置的框图。
32.图2是示出了根据本发明的实施方式的用于对视频进行解码的装置的框图。
33.图3是示出了当通过帧间预测对编码块进行编码时可以应用于编码块的划分模式候选的图。
34.图4是示出了根据本发明的实施方式的基于树结构对编码块进行分层划分的示例的图。
35.图5是示出了根据本发明的实施方式的允许基于二叉树的划分的划分类型的图。
36.图6是示出了仅允许预定类型的基于二叉树的划分的示例的图。
37.图7是用于说明根据应用本发明的实施方式的编码/解码与二叉树划分的允许数目相关的信息的示例的图。
38.图8是示出了基于以分层方式编码的划分信息来确定编码单元的划分类型的处理的流程图。
39.图9是示出了基于划分信息来确定非正方形形状的编码单元的划分类型的处理的流程图。
40.图10示出了基于非对称二叉树划分的编码块的划分类型。
41.图11是示出了基于四叉树划分、对称二叉树划分和非对称二叉树划分将编码块划分为多个编码块的示例的图。
42.图12是示出了基于四叉树的编码块的划分类型的图。
43.图13是示出了使用多条垂直线或多条水平线的四叉树划分类型的图。
44.图14是示出了三叉树划分类型的图。
45.图15是示出了作为三叉树划分的结果而生成的编码块的另外的划分类型的图。
46.图16是示出了适用于编码块的划分类型的图。
47.图17是示出了由三叉树划分产生的编码块的变换单元的图。
48.图18是示出了根据应用本发明的实施方式的获取残差系数的处理的流程图。
49.图19是示出了针对每个子块对残差系数编码指示符进行编码的示例的图。
50.图20和图21是示出了用于超小非对称编码单元的coded_sub_block_flag的编码方面的图。
51.图22是示出了针对包括预设数目的样本的每个子块对残差系数编码指示符进行编码的示例的图。
52.图23是示出了调整残差系数的值的示例的图。
53.图24是示出了根据应用本发明的实施方式的获得残差样本的处理的流程图。
具体实施方式
54.可以对本发明进行各种修改,并且存在本发明的各种实施方式,现在将参照附图提供这些实施方式的示例,并且详细地描述这些实施方式的示例。然而,本发明不限于此,并且示例性实施方式可以被解释为包括本发明的技术构思和技术范围内的所有修改、等同物或替代方案。在描述的附图中,相似的附图标记指代相似的元件。
55.说明书中使用的术语
‘
第一’、
‘
第二’等可以用于描述各种部件,但是这些部件不应当被解释为限于这些术语。这些术语仅用于区分一个部件与其他部件。例如,在不偏离本发明的范围的情况下,
‘
第一’部件可以被称为
‘
第二’部件,并且
‘
第二’部件也可以被类似地称为
‘
第一’部件。术语“和/或”包括多个项的组合或者多个项中的任何一项。
56.将理解的是,在本说明书中,当元件被简单地称为
‘
连接至’或
‘
耦接至’另一元件而不是
‘
直接连接至’或
‘
直接耦接至’另一元件时,该元件可以
‘
直接连接至’或
‘
直接耦接
至’另一元件,或者该元件可以连接至或耦接至另一元件并且有其他元件介于其之间。相比之下,应当理解的是,当元件被称为“直接耦接”或“直接连接”至另一元件时,不存在中间元件。
57.本说明书中使用的术语仅用于描述特定实施方式,而并不旨在限制本发明。以单数形式使用的表述包含复数形式的表述,除非该表述在上下文中具有明显不同的含义。在本说明书中,应当理解,诸如“包括”、“具有”等术语旨在指示本说明书中公开的特征、数字、步骤、动作、元件、部分或其组合的存在,并且不旨在排除可以存在或可以添加一个或多个其他特征、数字、步骤、动作、元件、部分或其组合的可能性。
58.在下文中,将参照附图详细地描述本发明的优选实施方式。在下文中,附图中的相同组成元件由相同的附图标记表示,并且将省略对相同元件的重复描述。
59.图1是示出了根据本发明的实施方式的用于对视频进行编码的装置的框图。
60.参照图1,用于对视频进行编码的装置100可以包括:图片划分模块110、预测模块120和125、变换模块130、量化模块135、重排模块160、熵编码模块165、逆量化模块140、逆变换模块145、滤波器模块150和存储器155。
61.图1中所示的组成部分被独立地示出,以表示在用于对视频进行编码的装置中的彼此不同的特征功能。因此,其并不意味着每个组成部分都以分开的硬件或软件的组成单元组成。换言之,为了方便起见,每个组成部分包括列举的组成部分中的每个。因此,每个组成部分中的至少两个组成部分可以被组合以形成一个组成部分,或者一个组成部分可以被分成多个组成部分以执行每个功能。在不偏离本发明的本质的情况下,组合每个组成部分的实施方式和分割一个组成部分的实施方式也被包括在本发明的范围内。
62.此外,组成部分中的一些组成部分可以不是执行本发明的基本功能的不可缺少的组成部分,而是仅改善本发明的性能的可选组成部分。可以通过排除用于改善性能的组成部分而仅包括用于实现本发明的本质的不可缺少的组成部分来实现本发明。排除仅用于改善性能的可选组成部分而仅包括不可缺少的组成部分的结构也被包括在本发明的范围内。
63.图片划分模块110可以将输入图片划分为一个或更多个处理单元。在此,处理单元可以是预测单元(pu)、变换单元(tu)或编码单元(cu)。图片划分模块110可以将一个图片划分为多个编码单元、预测单元和变换单元的组合,并且可以通过使用预定标准(例如,成本函数)选择编码单元、预测单元和变换单元的一个组合来对图片进行编码。
64.例如,可以将一个图片划分为多个编码单元。可以使用递归树结构(例如,四叉树结构)来将图片划分为编码单元。以一个图片或最大编码单元为根而被划分为其他编码单元的编码单元可以被划分为具有与所划分的编码单元的数目相对应的子节点。按照预定限制不能再被划分的编码单元用作叶节点。也就是说,当假设对于一个编码单元进行仅正方形划分可行时,一个编码单元可以最多被划分为四个其他编码单元。
65.在下文中,在本发明的实施方式中,编码单元可以意指执行编码的单元或者执行解码的单元。
66.预测单元可以是在单个编码单元中被划分为具有相同大小的正方形形状或矩形形状的分区中之一,或者预测单元可以是在单个编码单元中被划分成使得具有不同的形状/大小的分区中之一。
67.当基于编码单元生成经受帧内预测的预测单元并且编码单元不是最小编码单元
时,可以在不将编码单元划分为多个预测单元nxn的情况下执行帧内预测。
68.预测模块120和125可以包括执行帧间预测的帧间预测模块120和执行帧内预测的帧内预测模块125。可以确定对于预测单元是执行帧间预测还是帧内预测,并且可以确定根据每个预测方法的详细信息(例如,帧内预测模式、运动向量、参考图片等)。在此,经受预测的处理单元可以与对其确定了预测方法和详细内容的处理单元不同。例如,可以由预测单元确定预测方法、预测模式等,并且可以由变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以被输入至变换模块130。此外,用于预测的预测模式信息、运动向量信息等可以与残差值一起由熵编码模块165进行编码,并且可以被传送至用于对视频进行解码的装置。当使用特定编码模式时,可以在不通过预测模块120和125生成预测块的情况下通过按原样对原始块进行编码来向用于对视频进行解码的装置进行传送。
69.帧间预测模块120可以基于当前图片的先前图片或后续图片中的至少一个的信息来预测预测单元,或者在一些情况下,可以基于当前图片中的一些编码区域的信息来预测预测单元。帧间预测模块120可以包括参考图片插值模块、运动预测模块和运动补偿模块。
70.参考图片插值模块可以从存储器155接收参考图片信息,并且可以根据参考图片来生成整像素或小于整像素的像素信息。在亮度像素的情况下,可以使用具有不同滤波器系数的基于dct的8抽头插值滤波器以1/4像素为单位生成整像素或小于整像素的像素信息。在色度信号的情况下,可以使用具有不同滤波器系数的基于dct的4抽头插值滤波器以1/8像素为单位生成整像素或小于整像素的像素信息。
71.运动预测模块可以基于由参考图片插值模块插值的参考图片来执行运动预测。可以使用诸如,基于全搜索的块匹配算法(full search-based block matching algorithm,fbma)、三步搜索(three step search,tss)、新三步搜索算法(new three-step search algorithm,nts)等的各种方法作为用于计算运动向量的方法。基于插值像素,运动向量可以具有以1/2像素或1/4像素为单位的运动向量值。运动预测模块可以通过改变运动预测方法来预测当前预测单元。可以使用诸如,跳过方法、合并方法、amvp(advanced motion vector prediction,高级运动向量预测)方法、帧内块复制方法等的各种方法作为运动预测方法。
72.帧内预测模块125可以基于与当前块相邻的参考像素信息来生成预测单元,该参考像素信息是当前图片中的像素信息。在当前预测单元的相邻块是经受帧间预测的块并且因此参考像素是经受帧间预测的像素时,可以使用经受帧内预测的相邻块的参考像素信息来替换在经受帧间预测的块中包括的参考像素。也就是说,当参考像素不可利用时,可以使用可利用的参考像素中的至少一个参考像素代替不可利用的参考像素信息。
73.帧内预测的预测模式可以包括在执行预测时根据预测方向使用参考像素信息的方向预测模式和不使用方向信息的无方向预测模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且为了预测色度信息,可以利用用于预测亮度信息的帧内预测模式信息或者可以利用预测的亮度信号信息。
74.在执行帧内预测时,当预测单元的大小与变换单元的大小相同时,可以基于位于该预测单元的左侧、左上侧和上侧的像素对预测单元执行帧内预测。然而,在执行帧内预测时,当预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用nxn划分的帧内预测可以仅用于最小编码单元。
75.在帧内预测方法中,可以在根据预测模式将ais(adaptive intra smoothing,自适应帧内平滑)滤波器应用于参考像素之后生成预测块。应用于参考像素的ais滤波器的类型可以不同。为了执行帧内预测方法,可以根据与当前预测单元相邻的预测单元的帧内预测模式来预测当前预测单元的帧内预测模式。在通过使用根据相邻预测单元预测的模式信息来预测当前预测单元的预测模式中,在当前预测单元的帧内预测模式与相邻预测单元的帧内预测模式相同时,可以使用预定的标志信息来传送指示当前预测单元的预测模式与相邻预测单元的预测模式彼此相同的信息。在当前预测单元的预测模式与相邻预测单元的预测模式不同时,可以执行熵编码,以对当前块的预测模式信息进行编码。
76.此外,可以基于由预测模块120和125生成的预测单元来生成包括关于残差值的信息的残差块,该残差值是经受预测的预测单元与预测单元的原始块之间的差。可以将所生成的残差块输入至变换模块130。
77.变换模块130可以通过使用诸如离散余弦变换(discrete cosine transform,dct)、离散正弦变换(discrete sine transform,dst)和klt的变换方法来对包括关于原始块与由预测模块120和125生成的预测单元之间的残差值的信息的残差块进行变换。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是否应用dct、dst还是klt以便对残差块进行变换。
78.量化模块135可以对由变换模块130变换至频域的值进行量化。量化系数可以根据图片的块或重要性而不同。可以将由量化模块135计算的值提供至逆量化模块140和重排模块160。
79.重排模块160可以对经量化的残差值的系数进行重排。
80.重排模块160可以通过系数扫描方法将二维块形式的系数变为一维向量形式的系数。例如,重排模块160可以使用之字形扫描方法从dc系数扫描至高频域的系数,以便将系数变为一维向量形式。根据变换单元的大小和帧内预测模式,可以使用在列方向上扫描二维块形式的系数的垂直方向扫描或在行方向上扫描二维块形式的系数的水平方向扫描代替之字形扫描。也就是说,可以根据变换单元的大小和帧内预测模式来确定使用之字形扫描、垂直方向扫描和水平方向扫描中的哪种扫描方法。
81.熵编码模块165可以基于由重排模块160计算的值来执行熵编码。熵编码可以使用诸如,指数哥伦布(golomb)编码、上下文自适应可变长编码(cavlc)和上下文自适应二进制算术编码(cabac)的各种编码方法。
82.熵编码模块165可以对来自重排模块160以及预测模块120和125的各种信息(例如,编码单元的残差值系数信息和块类型信息、预测模式信息、划分单元信息、预测单元信息、变换单元信息、运动向量信息、参考帧信息、块插值信息、滤波信息等)进行编码。
83.熵编码模块165可以对从重排模块160输入的编码单元的系数进行熵编码。
84.逆量化模块140可以对由量化模块135量化的值进行逆量化,并且逆变换模块145可以对由变换模块130变换的值进行逆变换。可以将由逆量化模块140和逆变换模块145生成的残差值与由预测模块120和125的运动估计模块、运动补偿模块和帧内预测模块预测的预测单元进行组合,使得可以生成重构块。
85.滤波器模块150可以包括去块滤波器、偏移校正单元和自适应环路滤波器(alf)中的至少一个。
86.去块滤波器可以去除由于重构图片中的块之间的边界而出现的块失真。为了确定是否执行去块,包括在块中的若干行或若干列中的像素可以是确定是否将去块滤波器应用于当前块的基础。当去块滤波器被应用于块时,可以根据所需的去块滤波强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,可以并行地处理水平方向滤波和垂直方向滤波。
87.偏移校正模块可以在经受去块的图片中以像素为单位校正与原始图片的偏移。为了对特定图片执行偏移校正,可以使用考虑每个像素的边缘信息来施加偏移的方法,或者使用下述方法:将图片的像素划分为预定数目的区域、确定要执行偏移的区域以及将偏移施加至所确定的区域。可以基于通过将经滤波的重构图片与原始图片进行比较而获得的值来执行自适应环路滤波(adaptive loop filtering,alf)。可以将包括在图片中的像素分成预定的组,可以确定要应用于多个组中的每个组的滤波器,并且可以针对每个组来单独地执行滤波。可以通过编码单元(cu)传送关于是否应用alf的信息和亮度信号。用于alf的滤波器的形状和滤波器系数可以取决于每个块而不同。此外,无论应用目标块的特征如何,都可以应用相同形状(固定形状)的用于alf的滤波器。
88.存储器155可以存储通过滤波器模块150计算的重构块或重构图片。可以在执行帧间预测时将所存储的重构块或重构图片提供至预测模块120和125。
89.图2是示出了根据本发明的实施方式的用于对视频进行解码的装置的框图。
90.参照图2,用于对视频进行解码的装置200可以包括:熵解码模块210、重排模块215、逆量化模块220、逆变换模块225、预测模块230和235、滤波器模块240以及存储器245。
91.当从用于对视频进行编码的装置输入视频比特流时,可以根据用于对视频进行编码的装置的逆处理对输入的比特流进行解码。
92.熵解码模块210可以根据由用于对视频进行编码的装置的熵编码模块进行的熵编码的逆处理来执行熵解码。例如,对应于由用于对视频进行编码的装置执行的方法,可以应用诸如指数哥伦布编码、上下文自适应可变长度编码(cavlc)和上下文自适应二进制算术编码(cabac)的各种方法。
93.熵解码模块210可以对关于由用于对视频进行编码的装置执行的帧内预测和帧间预测的信息进行解码。
94.重排模块215可以基于在用于对视频进行编码的装置中使用的重排方法对由熵解码模块210进行熵解码的比特流执行重排。重排模块可以将一维向量形式的系数重构和重排为二维块形式的系数。重排模块215可以接收与在用于对视频进行编码的装置中执行的系数扫描相关的信息,并且可以基于在用于对视频进行编码的装置中执行的扫描顺序经由对系数进行逆扫描的方法来执行重排。
95.逆量化模块220可以基于从用于对视频进行编码的装置接收的量化参数和块的经重排的系数来执行逆量化。
96.逆变换模块225可以对由用于对视频进行编码的装置的量化结果执行逆变换,即逆dct、逆dst和逆klt,该逆变换是由变换模块执行的变换(即dct、dst和klt)的逆处理。可以基于由用于对视频进行编码的装置确定的传输单元来执行逆变换。用于对视频进行解码的装置的逆变换模块225可以根据诸如预测方法、当前块的大小、预测方向等的多条信息来选择性地执行变换方案(例如,dct、dst和klt)。
97.预测模块230和235可以基于关于从熵解码模块210接收的预测块生成的信息和从存储器245接收的先前解码的块或图片信息来生成预测块。
98.如上所述,类似于用于对视频进行编码的装置的操作,在执行帧内预测时,当预测单元的大小与变换单元的大小相同时,可以基于位于预测单元的左侧、左上侧和上侧的像素对预测单元执行帧内预测。在执行帧内预测时,当预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用nxn划分的帧内预测可以仅用于最小编码单元。
99.预测模块230和235可以包括预测单元确定模块、帧间预测模块和帧内预测模块。预测单元确定模块可以从熵解码模块210接收各种信息,例如,预测单元信息、帧内预测方法的预测模式信息、关于帧间预测方法的运动预测的信息等,可以将当前编码单元分成预测单元,并且可以确定对预测单元执行帧间预测还是帧内预测。通过使用从用于对视频进行编码的装置接收的当前预测单元的帧间预测中所需的信息,帧间预测模块230可以基于包括当前预测单元的当前图片的先前图片或后续图片中的至少一个的信息来对当前预测单元执行帧间预测。替选地,可以基于包括当前预测单元的当前图片中的一些预先重构区域的信息来执行帧间预测。
100.为了执行帧间预测,可以针对编码单元来确定将跳过模式、合并模式、amvp模式和帧间块复制模式中的哪种模式用作包括在编码单元中的预测单元的运动预测方法。
101.帧内预测模块235可以基于当前图片中的像素信息来生成预测块。当预测单元是经受帧内预测的预测单元时,可以基于从用于对视频进行编码的装置接收的预测单元的帧内预测模式信息来执行帧内预测。帧内预测模块235可以包括自适应帧内平滑(ais)滤波器、参考像素插值模块和dc滤波器。ais滤波器对当前块的参考像素执行滤波,并且可以根据当前预测单元的预测模式来确定是否应用滤波器。可以通过使用从用于对视频进行编码的装置接收的ais滤波器信息和预测单元的预测模式来对当前块的参考像素执行ais滤波。在当前块的预测模式是不执行ais滤波的模式时,可以不应用ais滤波器。
102.当预测单元的预测模式是其中基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值模块可以对参考像素进行插值,以生成整像素或小于整像素的参考像素。在当前预测单元的预测模式是其中在没有对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。在当前块的预测模式是dc模式时,dc滤波器可以通过滤波来生成预测块。
103.可以将重构块或重构图片提供至滤波器模块240。滤波器模块240可以包括去块滤波器、偏移校正模块和alf。
104.可以从用于对视频进行编码的装置接收关于是否将去块滤波器应用于相应的块或图片的信息以及关于在应用去块滤波器时应用强滤波器和弱滤波器中的哪种滤波器的信息。用于对视频进行解码的装置的去块滤波器可以从用于对视频进行编码的装置接收关于去块滤波器的信息,并且可以对相应的块执行去块滤波。
105.偏移校正模块可以基于在执行编码时应用于图片的偏移校正的类型和偏移值信息来对重构图片执行偏移校正。
106.可以基于从用于对视频进行编码的装置接收的关于是否应用alf的信息、alf系数信息等来将alf应用于编码单元。alf信息可以被提供为被包括在特定参数集中。
107.存储器245可以存储重构图片或重构块以用作参考图片或参考块,并且可以将重构图片提供至输出模块。
108.如上所述,在本发明的实施方式中,为了便于说明,编码单元用作表示用于编码的单元的术语,但是编码单元可以用作执行解码以及编码的单元。
109.另外,当前块可以表示要被编码/解码的目标块。并且,根据编码/解码步骤,当前块可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)、预测块(或预测单元)等。在本说明书中,
‘
单元’表示用于执行特定编码/解码处理的基本单元,并且
‘
块’可以表示预定大小的样本阵列。如果它们之间没有区别,则术语
‘
块’和
‘
单元’可以互换使用。例如,在以下描述的实施方式中,可以理解编码块和编码单元具有相互等同的含义。
110.可以通过将图片分成具有正方形形状或非正方形形状的基本块来对图片进行编码/解码。此时,基本块可以被称为编码树单元。编码树单元可以被定义为序列或切片(slice)内允许的最大大小的编码单元。可以通过序列参数集、图片参数集或片头(slice header)来用信号发送有关编码树单元是具有正方形形状还是具有非正方形形状的信息或有关编码树单元的大小的信息。编码树单元可以被分成更小大小的分区。此时,如果假设通过分割编码树单元生成的分区的深度是1,则通过分割深度为1的分区生成的分区的深度可以被定义为2。也就是说,通过在编码树单元中分割深度为k的分区生成的分区可以被定义为深度为k+1。
111.通过分割编码树单元生成的任意大小的分区可以被定义为编码单元。编码单元可以被递归地分割或分割成用于执行预测、量化、变换或环路滤波等的基本单元。例如,通过分割编码单元生成的任意大小的分区可以被定义为编码单元,或者可以被定义为变换单元或预测单元,该编码单元、变换单元或预测单元是用于执行预测、量化、变换或环路滤波等的基本单元。
112.替选地,可以通过编码块的预测划分来确定与编码块具有相同的大小或大小小于编码块的预测块。为了对编码块进行预测划分,可以指定划分模式(part_mode)候选中之一。可以经由比特流用信号发送用于确定指示划分中之一的划分索引的信息。替选地,可以基于当前块的大小、形状或编码模式中的至少一个来确定编码块的划分索引。可以基于由划分索引指定的划分模式来确定预测块的大小或形状。划分模式候选可以包括非对称划分类型(例如,nlx2n、nrx2n、2nxnu、2nxnd)。可以基于当前块的大小、形状或编码模式来确定可用于编码块的非对称划分模式候选的数目或类型。
113.图3示出了当通过帧间预测对编码块进行编码时可以应用于编码块的划分模式候选。
114.当使用帧间预测对编码块进行编码时,图3中所示的八个划分模式候选中的任意一个被应用于编码块。
115.相反,当使用帧内预测对编码块进行编码时,仅将正方形形状划分的划分应用于编码块。也就是说,当使用帧内预测对编码块进行编码时,将划分模式part_2nx2n或part_nxn应用于编码块。
116.当编码块处于最小大小时,应用划分模式part_nxn。在本文中,可以在编码器和解码器中预定义编码块的最小大小。替选地,可以通过比特流用信号发送关于编码块的最小
大小的信息。例如,可以通过片头来用信号发送编码块的最小大小。因此,可以为各个切片确定编码块的不同最小大小。
117.作为另一示例,可以根据编码块的大小和形状之中的至少一个来将编码块能够使用的划分模式候选设置为不同。例如,可以根据编码块的大小和形状之中的至少一个来将编码块能够使用的划分模式候选的数目或类型设置为不同。
118.替选地,基于编码块的大小或形状,可以确定编码块能够使用的非对称划分模式候选的类型或数目。可以根据编码块的大小和形状之中的至少一个来将编码块能够使用的非对称划分模式候选的数目或类型设置为不同。例如,当编码块处于宽度大于高度的非正方形形状时,划分模式part_2nxn、part_2nxnu和part_2nxnd中的至少一个不用作编码块的划分模式候选。当编码块处于高度大于宽度的非正方形形状时,划分模式part_nx2n、part_nlx2n和part_nrx2n中的至少一个不用作编码块的划分模式候选。
119.通常,预测块的大小范围为从64x64的大小到4x4的大小。然而,在使用帧间预测对编码块进行编码的情况下,为了减小在执行运动补偿时的存储带宽,将预测块设置成不处于4x4的大小。
120.基于划分模式,可以以递归的方式对编码块进行划分。也就是说,在由划分索引确定的划分模式的基础上,可以对编码块进行划分以生成多个分区,并且可以将多个分区中的每个分区定义为编码块。
121.在下文中,将更详细地描述以递归的方式对编码单元进行划分的方法。在稍后描述的实施方式中,编码单元可以指代编码树单元或包括在编码树单元中的编码单元。另外,作为对编码块进行划分的结果而生成的“分区”可以指代“编码块”。
122.可以通过至少一条线来对编码单元进行划分。在本文中,对编码单元进行划分的线的角度具有在从0度到360度范围内的值。例如,水平线的角度可以是0度角,垂直线的角度可以是90度角,在向右向上方向上的对角线的角度可以是45度角,并且在向左向上方向上的对角线的角度可以是135度角。
123.当通过多条线对编码单元进行划分时,多条线处于相同的角度。替选地,多条线中的至少一条可以与另一条线处于不同的角度。替选地,对编码树单元或编码单元进行划分的多条线可以具有预定义的角度差(例如,90度角)。
124.可以通过划分模式来确定关于对编码单元进行划分的线的信息。替选地,可以对关于块内的线的方向、角度和位置、线的数目之中的至少一个的信息进行编码。
125.为了便于描述,在稍后描述的实施方式中,假设通过使用垂直线和水平线之中的至少一个来将编码单元划分为多个编码单元。
126.对编码单元进行划分的垂直线或水平线的数目可以是至少一条。例如,可以通过使用一条垂直线或一条水平线来将编码单元划分为两个分区。替选地,可以通过使用两条垂直线或两条水平线来将编码单元划分为三个分区。替选地,通过使用一条垂直线和一条水平线,可以将编码单元划分为四个分区,其中,四个分区中的每个的宽度和高度是编码单元的宽度和高度的1/2。
127.当通过使用至少一条垂直线或至少一条水平线来将编码单元划分为多个分区时,这些分区的大小是统一的。替选地,任何一个分区可以与其他划分具有不同的大小,或者这些分区可以分别具有不同的大小。例如,当利用两条水平线或两条垂直线对编码单元进行
划分时,编码单元被划分为三个分区。在本文中,三个分区的宽度比或高度比可以是n:2n:n、2n:n:n或n:n:2n。
128.在稍后描述的实施方式中,将编码单元划分为四个分区被称为基于四叉树的划分,并且将编码单元划分为两个分区被称为基于二叉树的划分。
129.在稍后描述的附图中,示出了使用一条垂直线和/或一条水平线对编码单元进行划分。然而,在本发明的范围内还包括:通过使用比附图中所示的线更多的垂直线和/或水平线,将编码单元划分为比附图中所示的分区更多或更少的分区。
130.图4是示出了根据本发明的实施方式的基于树结构对编码块进行分层划分的示例的图。
131.以预定的块单元对输入视频信号进行解码。用于对输入视频信号进行解码的这样的默认单元是编码块。编码块可以是执行帧内/帧间预测、变换和量化的单元。另外,以编码块为单位确定预测模式(例如,帧内预测模式或帧间预测模式),并且编码块中包括的预测块可以共享所确定的预测模式。编码块可以是具有在8x8到64x64范围内的任意大小的正方形块或非正方形块,或者可以是具有128x128、256x256或更大的大小的正方形块或非正方形块。
132.具体地,可以基于四叉树划分方法或二叉树划分方法中的至少一个来对编码块进行分层划分。在此,基于四叉树的划分可以意指将2nx2n编码块划分为四个nxn编码块,并且基于二叉树的划分可以意指将一个编码块划分为两个编码块。即使执行基于二叉树的划分,也可能在较低深度中存在成正方形形状的编码块。
133.通过基于二叉树的划分生成的分区可以具有对称形状或非对称形状。另外,由基于二叉树的划分产生的编码块可以是正方形块或非正方形块(例如,矩形块)。
134.图5是示出了基于二叉树划分的编码块的划分类型的图。基于二叉树划分的编码块的划分形状可以包括诸如2nxn(水平非正方形编码单元)、nx2n(垂直非正方形编码单元)等的对称类型,或者诸如nlx2n、nrx2n、2nxnu、2nxnd等的非对称类型。对称类型或非对称类型之中的任意一种被允许作为编码块的划分类型。
135.对于编码单元,仅允许以正方形形状或非正方形对称形状进行划分。在这种情况下,将编码单元划分为正方形划分可以对应于四叉树cu划分,并且将编码单元划分为对称非正方形划分可以对应于二叉树划分。将编码树单元划分为正方形划分和对称非正方形划分可以对应于四叉树和二叉树cu划分(qtbt)。
136.可以对不再执行基于四叉树的划分的编码块执行基于二叉树的划分。对于由基于二叉树的划分产生的编码块,可能不再执行基于四叉树的划分。
137.另外,可以根据父深度划分的划分类型来确定对子深度划分进行划分。例如,当基于二叉树对父划分和子划分进行划分时,在子深度划分中仅允许与父深度划分的二叉树划分类型相同类型的基于二叉树的划分。例如,当父深度划分的二叉树划分类型是2nxn类型时,子深度划分的二叉树划分类型也被设置成2nxn类型。替选地,当父深度划分的二叉树划分类型是nx2n类型时,子深度划分的划分类型也被设置成nx2n类型。
138.替选地,可以考虑父深度划分的划分类型和相邻子深度划分的划分类型来确定子深度划分的划分类型。具体地,当基于二叉树对父深度划分进行划分时,以这样的方式来确定子深度划分的划分类型:使得不产生与基于四叉树对父深度划分进行划分的结果相同的
结果。例如,当父深度划分的划分类型是2nxn并且相邻子深度划分的划分类型是nx2n时,当前子深度划分的划分类型不被设置为nx2n。这是因为,在当前子深度划分的划分类型是nx2n时会导致与nxn型四叉树划分父深度划分的结果相同的结果。当父深度划分的划分类型是nx2n并且相邻子深度划分的划分类型是2nxn时,当前子深度划分的划分类型不被设置为2nxn。也就是说,当父深度划分的二叉树划分类型与相邻子深度划分的二叉树划分类型不同时,当前子深度划分的二叉树划分类型被设置为与父深度划分的二叉树划分类型相同。
139.替选地,可以将子深度划分的二叉树划分类型设置为与父深度划分的二叉树划分类型不同。
140.可以按每个序列、按每个切片或按每个编码单元来确定允许的二叉树划分类型。例如,可以将编码树单元允许的二叉树划分类型限制为2nxn或nx2n类型。可以在编码器或解码器中预定义允许的划分类型。替选地,关于允许的划分类型或不允许的划分类型的信息可以被编码并且通过比特流用信号发送。
141.图6是示出了仅允许特定类型的基于二叉树的划分的示例的图。
142.图6的(a)示出了仅允许nx2n类型的基于二叉树的划分的示例,并且图6的(b)示出了仅允许2nxn类型的基于二叉树的划分的示例。
143.为了实现基于四叉树或二叉树的自适应划分,可以使用以下项中的至少一个:指示基于四叉树的划分的信息、关于允许基于四叉树的划分的编码块的大小/深度的信息、指示基于二叉树的划分的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息、关于不允许基于二叉树的划分的编码块的大小/深度的信息或者关于是在垂直方向上还是在水平方向上执行基于二叉树的划分的信息。
144.另外,可以针对编码树单元或编码单元获得关于允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数目的信息中的至少一个。这些信息可以以编码树单元或编码单元为单位进行编码,并且可以通过比特流传送至解码器。
145.例如,可以通过比特流对指示允许二叉树划分的最大深度的语法
‘
max_binary_depth_idx_minus1’进行编码/解码。在这种情况下,max_binary_depth_idx_minus1+1可以指示允许二叉树划分的最大深度。
146.替选地,可以在编码器和解码器中预定义允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数目。替选地,可以基于序列或切片的索引、以及编码单元的大小/形状之中的至少一个来确定允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数目。例如,在第一切片中,可以在一个深度处允许二叉树划分,并且在第二切片中,可以在两个深度处允许二叉树划分。
147.参照图7中所示的示例,在图7中,已经针对深度为2的编码单元和深度为3的编码单元执行二叉树划分。因此,可以通过比特流对以下项中的至少一个进行编码/解码:指示已经执行编码树单元中的二叉树划分的次数(即,2次)的信息、指示在编码树单元中由二叉树划分生成的分区的最大深度(即,深度3)或在编码树单元中已经应用二叉树划分的划分深度的数目(即,2个(深度2和深度3))的信息。
148.作为另一示例,可以针对每个序列或每个切片获得关于准许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数目的信息中的至少一个。例如,该信
息可以以序列、图片或切片单元为单位被编码,并且通过比特流传送。因此,第一切片中的二叉树划分的数目、在第一切片中允许二叉树划分的最大深度或在第一切片中执行二叉树划分的深度的数目中的至少一个可以与第二切片不同。例如,在第一切片中,可能仅针对一个深度准许二叉树划分,而在第二切片中,可能针对两个深度准许二叉树划分。
149.作为另一示例,可以根据切片或图片的时间级别标识符(temporalid)不同地设置准许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数目。此处,时间级别标识符(temporalid)用于标识具有视图、空间、时间或质量中的至少一个的可扩展性的多个视频层中的每个。
150.可以通过比特流用信号发送用于确定编码单元的划分类型的信息。解码器可以对来自比特流的信息进行解码,并且可以对编码单元进行划分。
151.图8是示出了基于以分层方式编码的划分信息来确定编码单元的划分类型的处理的流程图。
152.在步骤s810处,基于split_flag,可以确定是否将当前编码单元划分为子深度编码单元。由split_flag指示是否将当前编码单元划分为子深度编码单元。当split_flag的值为真时,在步骤s820处对用于确定编码单元的划分类型的qt_flag或bt_flag进行解码。由qt_flag指示是否对编码单元进行四叉树划分。由bt_flag指示是否对编码单元进行二叉树划分。可以选择性地对qt_flag和bt_flag之中的仅一个进行编码。当qt_flag的值为真或bt_flag的值为假时,在步骤s830处将编码单元划分为四个编码单元。当qt_flag的值为假或bt_flag的值为真时,将编码单元划分为两个编码单元。当qt_flag的值为假或bt_flag的值为真时,在步骤s840处对指示编码单元的划分方向的bt_hor_flag或bt_ver_flag进行解码。由bt_hor_flag指示是否在水平方向上对编码单元进行划分。由bt_ver_flag指示是否在垂直方向上对编码单元进行划分。可以选择性地对bt_hor_flag和bt_ver_flag之中的仅一个进行编码。当bt_hor_flag的值为真或bt_ver_flag的值为假时,在步骤s850处在水平方向上对编码单元进行划分(2nxn)。当bt_hor_flag的值为假或bt_ver_flag的值为真时,在步骤s860处在垂直方向上对编码单元进行划分(nx2n)。
153.可以以递归的方式执行将编码单元划分为多个子深度编码单元以及确定子深度编码单元中的每个的划分类型的处理。在本文中,可以设置,对于非正方形形状的编码单元或作为二叉树划分的结果而生成的编码单元,不允许四叉树划分。是否对非正方形形状的编码单元或作为二叉树划分的结果而生成的编码单元进行划分可以遵循下文描述的图9。
154.图9是示出了基于划分信息来确定非正方形形状的编码单元的划分类型的处理的流程图。
155.在步骤s910处,基于split_flag,可以确定是否将当前编码单元划分为子深度编码单元。当split_flag的值为真时,在步骤s920处对指示编码单元的划分方向的bt_hor_flag或bt_ver_flag进行解码。可以选择性地对bt_hor_flag和bt_ver_flag之中的仅一个进行编码。当bt_hor_flag的值为真或bt_ver_flag的值为假时,在步骤s930处在水平方向上对编码单元进行划分(2nxn)。当bt_hor_flag的值为假或bt_ver_flag的值为真时,在步骤s940处在垂直方向上对编码单元进行划分(nx2n)。
156.在上述实施方式中,已经描述了使用split_flag确定是否对编码块进行划分。作为另一示例,可以省略split_flag的编码,并且可以基于qt_flag和bt_flag之中的至少一
个来确定是否对编码块进行划分。例如,当qt_flag的值为真时,将编码块划分为四个分区。当qt_flag的值为假且bt_flag的值为真时,将编码块划分为两个分区。当qt_flag和bt_flag的值均为假时,不再对编码块进行划分。
157.如图4中所示,可以基于四叉树将划分深度(拆分深度)为k的第一编码块300划分为多个第二编码块。例如,第二编码块310至340可以是具有第一编码块的半宽度和半高度的正方形块,并且第二编码块的划分深度可以增加至k+1。
158.划分深度为k+1的第二编码块310可以被划分为划分深度为k+2的多个第三编码块。可以根据划分方法通过选择性地使用四叉树和二叉树中之一来执行第二编码块310的划分。在此,可以基于指示基于四叉树的划分的信息和指示基于二叉树的划分的信息中的至少一个来确定划分方法。
159.当基于四叉树对第二编码块310进行划分时,第二编码块310可以被划分为具有第二编码块的半宽度和半高度的四个第三编码块310a,并且第三编码块310a的划分深度可以增加至k+2。相比之下,当基于二叉树对第二编码块310进行划分时,第二编码块310可以被划分为两个第三编码块。在此,两个第三编码块中的每个可以是具有第二编码块的半宽度和半高度中之一的非正方形块,并且划分深度可以增加至k+2。可以根据划分方向将第二编码块确定为水平方向或垂直方向的非正方形块,并且可以基于关于是在垂直方向上还是在水平方向上执行基于二叉树的划分的信息来确定划分方向。
160.同时,第二编码块310可以被确定为不再基于四叉树或二叉树进行划分的叶编码块。在这种情况下,叶编码块可以用作预测块或变换块。
161.类似于第二编码块310的划分,第三编码块310a可以被确定为叶编码块,或者可以基于四叉树或二叉树被进一步划分。
162.同时,基于二叉树划分的第三编码块310b可以基于二叉树被进一步划分为垂直方向的编码块310b-2或水平方向的编码块310b-3,并且相关编码块的划分深度可以增加至k+3。替选地,第三编码块310b可以被确定为不再基于二叉树进行划分的叶编码块310b-1。在这种情况下,编码块310b-1可以用作预测块或变换块。然而,可以基于以下项中的至少一个来限制性地执行上述划分处理:关于允许基于四叉树的划分的编码块的大小/深度的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息以及关于不允许基于二叉树的划分的编码块的大小/深度的信息。
163.候选大小的数目可以被限制为预定数目,或者预定单元中的编码块的大小可以具有固定值。作为示例,序列中或图片中的编码块的大小可以被强制为具有256x256、128x128或32x32中之一。可以通过序列头或图片头来用信号发送指示序列中或图片中的编码块的大小的信息。
164.作为基于四叉树和二叉树的划分的结果,编码单元可以被表示为任意大小的正方形或矩形形状。
165.作为基于四叉树和二叉树的划分的结果,不再被划分的编码块可以用作预测块或变换块。也就是说,其可以用作作为四叉树划分或二叉树划分的结果而生成的编码块、预测块、或变换块。例如,可以基于每个编码块生成预测图像,并且可以基于每个编码块变换为原始图像与预测图像之间的差的残差信号。为了基于每个编码块生成预测图像,可以基于编码块来确定运动信息,或者可以基于编码块来确定帧内预测模式。因此,可以使用跳过模
式、帧内预测和帧间预测之中的至少一个来对编码块进行编码。
166.作为另一示例,通过对编码块进行划分,可以使用大小小于编码块的大小的预测块或变换块。
167.可以以仅允许对称划分的方式设置编码块的基于二叉树的划分类型。然而,即使在对象和背景在块边界处被分割的情况下,当仅允许对称二叉划分(binary partition)时,编码效率也会被降低。因此,在本发明中,提出了一种将编码块划分为非对称分区以改善编码/解码效率的方法。
168.作为非对称二叉树划分的结果,可以将编码块划分为两个较小的编码块。这两个编码块可以具有不同的大小。将编码块划分为相同大小的两个划分可以被定义为对称二叉树划分。将编码块划分为不同大小的两个分区可以被定义为非对称二叉树划分。二叉树划分类型可以包括对称二叉树划分类型和非对称二叉树划分类型之中的至少一个。
169.图10是示出了基于非对称二叉树划分的编码块的划分类型的图。
170.2nx2n编码块可以被划分为宽度比为n:(1-n)的两个编码块,或者高度比为n:(1-n)的两个编码块。在本文中,n可以表示大于0且小于1的实数。
171.例如,作为非对称二叉树划分的结果而生成的编码块的宽度比或高度比可以是1:3或3:1。
172.具体地,当在垂直方向上对wxh大小的编码块进行划分时,生成宽度为w/4的左侧分区和宽度为3w/4的右侧分区。如上地,其中左侧分区的宽度小于右侧分区的宽度的划分类型可以被称为nlx2n二叉划分。
173.当在垂直方向上对wxh大小的编码块进行划分时,生成宽度为3w/4的左侧分区和宽度为w/4的右侧分区。如上地,其中右侧分区的宽度小于分区划分的宽度的划分类型可以被称为nrx2n二叉划分。
174.当在水平方向上对wxh大小的编码块进行划分时,生成高度为h/4的上部分区和高度为3h/4的下部分区。如上地,其中上部分区的高度小于下部分区的高度的划分类型可以被称为2nxnu二叉划分。
175.当在水平方向上对wxh大小的编码块进行划分时,生成高度为3h/4的上部分区和高度为h/4的下部分区。如上地,其中下部分区的高度小于上部分区的高度的划分类型可以被称为2nxnd二叉划分。
176.可以在编码器和解码器中预定义作为非对称二叉树划分的结果而生成的两个编码块的宽度比或高度比。替选地,可以通过比特流用信号发送指示两个编码块的宽度比或高度比的信息。替选地,可以基于编码块的形状、大小、编码模式、扫描顺序和帧内预测模式之中的至少一个来确定两个编码块的宽度比或高度比。
177.可以基于通过比特流用信号发送的信息来确定编码块的非对称二叉划分形状。例如,可以基于指示编码块的划分方向的信息和指示作为对编码块进行划分的结果而生成的第一分区的大小是否小于第二分区的大小的信息来确定编码块的划分类型。
178.指示编码块的划分方向的信息可以是指示编码块是在垂直方向上还是在水平方向上被划分的1比特的(one-bit)标志。例如,可以通过比特流用信号发送hor_binary_flag和ver_binary_flag之中的任意一个。可以由hor_binary_flag来指示编码块是否在水平方向上被划分,并且可以由ver_binary_flag来指示编码块是否在垂直方向上被划分。当hor_
binary_flag的值为1或ver_binary_flag的值为0时,编码块在水平方向上被划分。当hor_binary_flag的值为0或ver_binary_flag的值为1时,编码块在垂直方向上被划分。
179.指示第一分区的大小是否小于第二分区的大小的信息可以是1比特的标志。例如,可以通过比特流用信号发送is_left_above_small_part_flag和is_right_bottom_small_part_flag之中的任意一个。由is_left_above_small_part_flag指示作为对编码块进行划分的结果而生成的左侧分区或上部分区的大小是否小于右侧分区或下部分区的大小,以及由is_right_bottom_small_part_flag指示作为对编码块进行划分的结果而生成的右侧分区或下部分区的大小是否小于左侧分区或上部分区的大小。当is_left_above_small_part_flag的值为1或is_right_bottom_small_part_flag的值为0时,左侧分区或上部分区的大小被设置为小于右侧划分或下部划分的大小。当is_left_above_small_part_flag的值为0或is_right_bottom_small_part_flag的值为1时,左侧分区或上部分区的大小被设置为大于右侧分区或下部分区的大小。
180.例如,值为0的hor_binary_flag和值为1的is_left_above_small_part_flag指示nlx2n二叉划分。值为0的hor_binary_flag和值为0的is_left_above_small_part_flag指示nrx2n二叉划分。另外,值为1的hor_binary_flag和值为1的is_left_above_small_part_flag指示2nxnu二叉划分。值为1的hor_binary_flag和值为0的is_left_above_small_part_flag指示2nxnd二叉划分。
181.替选地,可以使用指示第一分区与第二分区之间的宽度比、高度比或面积比的信息来确定第一分区的大小和第二分区的大小。
182.替选地,可以用信号发送用于确定编码块的非对称二叉划分形状的索引信息,并且可以基于由索引信息指示的非对称二叉划分形状来对编码块进行划分。可以将不同的索引分配给非对称二叉划分形状,并且索引信息可以指示索引中的任何一个。可以以固定长度(即,固定的比特数目)或可变长度来对索引信息进行编码。例如,以下的表1表示划分索引和与其对应的索引信息的二进制代码。
183.[表1]
[0184] 非对称划分索引二进制化(binarization)nlx2n00nrx2n1102nxnu21002nxnd3111
[0185]
可以根据是否使用四叉树划分方法和对称二叉树划分方法来确定是否使用非对称二叉树划分方法。例如,当确定不将四叉树划分或对称二叉树划分应用于编码块时,确定是否将非对称二叉树划分应用于编码块。例如,当qt_flag和bt_flag的值均为假时,对指示是否将非对称二叉树划分应用于编码块的信息进行编码/解码。该信息可以是1比特的标志“asymmetric_binary_tree_flag”。值为1的asymmetric_binary_tree_flag指示将非对称二叉树划分应用于编码块,以及值为0的asymmetric_binary_tree_flag指示不将非对称二叉树划分应用于编码块。
[0186]
替选地,当确定将二叉树划分应用于编码块时,确定编码块的划分类型是对称类型还是非对称类型。例如,当split_flag的值为真并且qt_flag的值为假时,或者当split_
flag的值为真并且bt_flag的值为真时,对指示编码块的划分类型的信息进行编码/解码。该信息可以是1比特的标志“is_asymmetric_split_flag”。值为1的is_asymmetric_split_flag指示编码块的划分类型是非对称类型的事实,并且值为0的is_asymmetric_split_flag指示编码块的划分类型是对称类型的事实。
[0187]
替选地,可以将不同的索引分配给对称二叉划分形状和非对称二叉划分形状,并且可以基于指示多个划分形状之一的索引信息来确定编码块的划分形状。例如,表2表示划分索引和与其对应的索引信息的二进制代码。
[0188]
[表2]
[0189] 二叉划分索引二进制化2nxn(水平二叉划分)00nx2n(垂直二叉划分)110nlx2n2110nrx2n311102nxnu411110 2nxnd511111
[0190]
可以通过四叉树划分、对称二叉树划分或非对称二叉树划分将编码块划分为多个编码块。
[0191]
图11是示出了基于四叉树划分、对称二叉树划分和非对称二叉树划分将编码块划分为多个编码块的示例的图。参照图11,发现在第一图的深度2的划分、第二图的深度3的划分和第三图的深度3的划分中,执行非对称二叉树划分。
[0192]
由非对称二叉树划分产生的编码块可以被设置成不被划分为较小的编码块。例如,可以不对以下之中的至少一个进行编码/解码:指示对通过非对称二叉树划分生成的编码块是否执行划分的信息、指示是否执行四叉树划分的信息、指示是否执行对称二叉树划分的信息、指示是否执行非对称二叉树划分的信息、指示划分方向的信息和指示划分形状的信息。也就是说,对于通过非对称二叉树划分生成的编码块,可以省略与指示是否执行四叉树划分的标志、指示是否执行二叉树划分的标志、指示是否执行对称二叉树划分的标志、指示是否执行非对称二叉树划分的标志、指示二叉树划分的方向的标志或者指示划分形状的索引信息相关的语法的编码/解码。
[0193]
在不允许qtbt的图片、切片或编码树单元中,也可能不允许非对称二叉树划分。替选地,指示是否允许非对称二叉树划分的信息可以基于每个块、每个切片或每个图片被编码并且可以用信号发送。该信息可以是1比特的标志。例如,值为0的is_used_asymmetric_qtbt_enabled_flag可以指示不允许非对称二叉树划分的事实。替选地,在确定是否允许二叉树之后,可以确定是否允许非对称二叉树划分。例如,在图片级别或切片级别,当确定允许二叉树划分时,通过is_used_asymmetric_qtbt_enabled_flag确定是否执行非对称二叉树划分。替选地,在图片级别或切片级别,当确定不允许二叉树划分时,不用发送is_used_asymmetric_qtbt_enabled_flag,但是将其值设置为0。
[0194]
因此,不能将非对称二叉树划分应用于不允许qtbt或非对称二叉树划分的图片、切片或编码树单元中所包括的编码块。因此,可以省略与编码块的非对称二叉树划分相关的编码/解码信息。替选地,可以设置与非对称二叉树划分相关的语法的值,使得非对称二
叉树划分不被应用于编码块。
[0195]
可以基于编码块的大小、形状、划分深度、父节点编码块的划分类型等来确定编码块所允许的划分类型。例如,在通过四叉树划分生成的编码块与通过二叉树划分生成的编码块之间,划分类型、划分形状和划分的数目之中的至少一个可以是不同的。
[0196]
例如,可以将四叉树划分、二叉树划分和非对称二叉树划分之中的任意一个选择性地应用于通过四叉树划分而生成的编码块。也就是说,当基于四叉树划分生成编码块时,适用于该编码块的划分方法的候选包括四叉树划分、二叉树划分和非对称二叉树划分。作为结果,可以将2nx2n、nx2n、2nxn、nxn、nlx2n、nrx2n、2nxnu和2nxnd之中的至少一种划分形状应用于编码块。2nx2n划分表示其中编码块不再被划分的情况。nxn表示其中编码块被四叉树划分的情况。nx2n和2nxn表示其中编码块经受对称二叉树划分的情况。nlx2n、nrx2n、2nxnu或2nxnd表示其中编码块经受非对称二叉树划分的情况。
[0197]
例如,对于通过二叉树划分生成的编码块,可能不允许非对称二叉树划分。也就是说,可以不将诸如nlx2n、nrx2n、2nxnu、2nxnd等的非对称划分形状应用于编码块。
[0198]
已经通过上述实施方式描述编码块的各种划分类型。在下文中,将描述除上述划分类型之外的其他各种划分类型。
[0199]
除了将编码块划分为四个正方形块的方法之外,还可以允许非对称四叉树划分(非对称四叉树cu划分)。使用将编码块划分为两个的水平线和将编码块划分为两个的垂直线之中的至少一条,以非对称形状对编码块进行划分,从而执行非对称四叉树划分。例如,可以将以下应用于编码块:水平线以非对称形状对编码块进行划分,而垂直线以对称形状对编码块进行划分的划分形状;水平线以对称形状对编码块进行划分,而垂直线以非对称形状对编码块进行划分的划分形状;或者水平线和垂直线以非对称形状对编码块进行划分的划分形状。作为非对称四叉树划分的结果,任何一个划分的宽度或高度都可能与另一个划分的宽度或高度不同。
[0200]
图12是示出了基于四叉树的编码块的划分类型的图。
[0201]
图12的(a)示出了其中水平线和垂直线对称地对编码块进行划分的划分形状。图12的(b)和图12的(c)示出了其中水平线对称地对编码块进行划分,而垂直线非对称地对编码块进行划分的划分形状。图12的(d)和图12的(e)示出了其中垂直线对称地对编码块进行划分,而水平线非对称地对编码块进行划分的划分形状。
[0202]
与四叉树划分类型相关的信息可以被编码在比特流中。该信息可以是指示多个划分形状候选中的任意一个的索引信息。例如,可以将不同的索引分配给图12中所示的多个划分形状候选。另外,可以基于指示多个划分形状候选中的任意一个的索引的索引信息来确定编码块的四叉树划分类型。替选地,该信息可以包括指示四叉树划分类型是对称类型还是非对称类型的指示符。可以基于每个块对该指示符进行编码。例如,当指示符指示值为真时,确定编码块的四叉树划分类型是对称划分(图12的(a))。当指示符指示值为假时,确定编码块的划分类型是非对称划分类型(图12的(b)、图12的(c)、图12的(d)和图12的(e))中的任意一个。当指示符指示值为假时,指示非对称划分类型中的任意一个的索引信息被进一步编码/解码。替选地,当指示符指示值为假时,以下描述的垂直划分信息和水平划分信息之中的至少一个被进一步编码/解码。
[0203]
替选地,指示垂直线是否对称地对编码块进行划分的垂直划分信息和指示水平线
是否对称地对编码块进行划分的水平划分信息之中的至少一个可以被编码/解码。可以基于垂直划分信息和垂直划分信息之中的至少一个来确定编码块的四叉树划分类型。
[0204]
替选地,水平划分信息和垂直划分信息之中的任意一个的值可以基于另一个的值来确定。也就是说,可以对水平划分信息和垂直划分信息之中的仅一个进行编码,并且另一个的值可以基于编码的信息的值来确定。例如,水平划分信息和垂直划分信息可以具有不同的值。当水平划分信息指示非对称划分时,确定垂直划分信息是对称划分。替选地,当垂直划分信息指示非对称划分时,确定水平划分信息是对称划分。
[0205]
当水平划分信息指示非对称划分时,关于对编码块进行非对称划分的水平线的位置的信息和关于通过水平划分生成的编码块的高度的信息之中的至少一个被进一步编码/解码。当垂直划分信息指示非对称划分时,关于对编码块进行非对称划分的垂直线的位置的信息和关于通过垂直划分生成的编码块的宽度的信息之中的至少一个被进一步编码/解码。
[0206]
除了使用一条垂直线和一条水平线的四叉树划分方法之外,还可以使用其中使用多条垂直线或多条水平线的四叉树划分方法。例如,可以将以下应用于编码块:使用多条垂直线和一条水平线,或多条水平线和一条垂直线的四叉树划分类型,或者使用多条垂直线或多条水平线的四叉树划分类型。
[0207]
图13是示出了使用多条垂直线或多条水平线的四叉树划分类型的图。
[0208]
四叉树划分类型可以包括以下类型:其中,使用两条垂直线将编码块划分为三个块,并且然后使用一条水平线对由划分产生的三个块中的任意一个进行划分。此处,水平线可以用于以对称形状或非对称形状对三个块中的任意一个进行划分。另外,四叉树划分类型可以包括以下这种类型:其中,使用两条水平线将编码块划分为三个块,并且然后使用一条垂直线对由划分产生的三个块中的任意一个进行划分。此处,垂直线可以用于以对称形状或非对称形状对三个块中的任意一个进行划分。
[0209]
如在图13中所示的示例中,在使用两条垂直线或两条水平线对编码块进行划分时生成的三个块之中,位于中间的块可以被进一步划分。替选地,四叉树划分类型可以包括其中三个块之中的位于编码块的边缘处的块被进一步划分的类型。
[0210]
可以在编码器和解码器中预定义在三个划分之中要被进一步划分的分区。例如,通过利用两条水平线或两条垂直线对编码块进行划分而生成的三个分区的宽度比或高度比可以为n:2n:n、2n:n:n或n:n:2n。可以将在三个划分之中具有最大宽度或高度的分区确定为进一步划分的目标。替选地,可以通过比特流用信号发送用于指定在三个划分之中要被进一步划分的分区的信息(例如,划分索引)。
[0211]
如在图13中所示的示例中,四叉树划分类型可以包括以下之中的至少一个:通过组合多条垂直线和一条水平线来对编码块进行划分的划分类型和通过组合多条水平线和一条垂直线来对编码块进行划分的划分类型。通过四叉树划分,可以将编码块划分为第一大小/第一形状的两个划分和第二大小/第二形状的两个划分。替选地,通过四叉树划分,可以将编码块划分为第一大小/第一形状的一个分区、第二大小/第二形状的一个分区和第三大小/第三形状的两个分区。如上地,其中四个分区的大小或形状的数目为两个或三个的四叉树划分类型可以被定义为三叉型(triple-type)非对称四叉树划分(三叉型非对称四叉树cu划分)。
[0212]
关于三叉型非对称四叉树划分的信息可以通过比特流来进行编码。该信息可以包括以下项中的至少一个:指示是否允许三叉型非对称四叉树划分的信息、指示编码块是否经受三叉型非对称四叉树划分的信息以及指示三叉型非对称四叉树划分的划分类型的信息。指示划分类型的信息可以包括以下之中的至少一个:指示多个划分形状候选中的任意一个的索引信息、关于水平线或垂直线的数目的信息、关于水平线或垂直线的位置的信息以及指示分区的宽度比或高度比的信息。
[0213]
四叉树划分表示将编码块划分为四个编码块,而二叉树划分表示将编码块划分为两个编码块。可以定义将编码块划分为三个编码块或者五个或更多编码块的划分类型。将编码块划分为三个分区可以被定义为三叉树划分(triple-tree partitioning)。三叉树划分类型可以包括使用两条垂直线对编码块进行划分的类型和使用两条水平线对编码块进行划分的类型中的至少一个。可以通过三叉树划分生成三个非正方形划分。
[0214]
图14是示出了三叉树划分类型的图。
[0215]
三叉树划分类型可以包括使用两条水平线对编码块进行划分的类型,或者使用两条垂直线对编码块进行划分的类型。作为对编码块进行划分的结果而生成的分区的宽度比或高度比可以是n:2n:n、2n:n:n或n:n:2n。
[0216]
可以在编码器和解码器中预定义在三个划分之中具有最大宽度或高度的分区的位置。替选地,可以通过比特流用信号发送指示在三个分区之中具有最大宽度或高度的分区的信息。
[0217]
作为三叉树划分的结果而生成的编码块可以被划分为较小大小的编码块。替选地,对于预测或变换,可以将作为三叉树划分的结果而生成的编码块划分为较小大小的预测块或变换块。替选地,在作为三叉树划分的结果而生成的三个编码块之中,仅具有最大大小的编码块可以被划分为较小大小的编码块。
[0218]
作为另一示例,可以将作为三叉树划分的结果而生成的编码块设置成不被进一步划分。
[0219]
替选地,可以设置成不将四叉树划分、三叉树划分和二叉树划分之中的至少一个应用于作为三叉树划分的结果而生成的编码块。例如,可以设置成,对于作为三叉树划分的结果而生成的编码块,不允许四叉树划分和三叉树划分。对于该编码块,可以允许仅二叉树划分。
[0220]
图15是示出了作为三叉树划分的结果而生成的编码块的其他划分类型的图。
[0221]
可以设置成:对于作为三叉树划分的结果而生成的编码块,不允许四叉树划分方法和三叉树划分方法之中的至少一个。可以设置成:对于作为三叉树划分的结果而生成的编码块,仅允许二叉树划分方法。
[0222]
图15的(a)示出了以下示例,其中在作为三叉树划分的结果而生成的编码块之中,垂直方向上的二叉划分被应用于具有小宽度的两个编码块1510和1530。图15的(b)示出了以下示例,其中在作为三叉树划分的结果而生成的编码块之中,水平方向上的二叉划分被应用于具有最大宽度的编码块1520。图15的(c)示出了以下示例,其中在作为三叉树划分的结果而生成的编码块之中,水平方向上的二叉划分被应用于具有小宽度的两个编码块1510和1530。
[0223]
可以设置成:在作为三叉树划分的结果而生成的编码块之中,对于具有最大大小
的编码块,不允许沿与上述三叉树划分相同的方向上的二叉树划分。例如,如在图15的(b)中所示的示例中,在作为沿垂直方向的三叉树划分的结果而生成的编码块之中,对于具有最大宽度的编码块,可以仅允许沿垂直方向上的二叉树划分。因此,对于该编码块,可以省略指示二叉树划分的方向的编码/解码信息。
[0224]
可以根据编码块的宽度、高度、宽度与高度之比、大小或形状来确定是否允许三叉树划分。例如,对于以下情况中的至少一种,可能不允许三叉树划分:编码块的宽度和高度之中的至少一个等于或大于预定义值的情况;编码块的大小等于或大于预定义值的情况;以及编码块的宽度与高度之比等于或大于预定义值的情况。替选地,仅对于编码块处于mxn大小的情况才可以允许三叉树划分。此处,n和m可以是具有相同值或不同值的自然数。例如,n和m的值可以为4、8、16、32、64或更大。
[0225]
替选地,指示允许三叉树划分的编码块的宽度、高度、大小、宽度与高度之比或形状的信息可以被编码并通过比特流传送。该信息可以指示最大值或最小值。例如,当编码块的宽度、高度、大小或宽度与高度之比等于或大于由信息指示的最小值时,或者当编码块的宽度、高度、大小、宽度与高度之比等于或小于由该信息指示的最大值时,对于该编码块允许三叉树划分。替选地,允许三叉树划分的块的大小或形状可以在编码器/解码器中具有预定的固定值。
[0226]
替选地,可以通过比特流用信号发送指示是否允许三叉树划分的信息。该信息可以在图片级别、切片级别、图块(tile)组级别、图块级别或块级别用信号发送。该信息可以是1比特的标志。当编码块被包括在不允许三叉树划分的父级别中时,省略与编码块的三叉树划分相关的编码和解码信息。当编码块被包括在允许三叉树划分的父级别中时,与针对编码块编码/解码的划分类型相关的信息包括与三叉树划分相关的信息。
[0227]
可以通过比特流用信号发送指示编码块是否被三叉树划分的信息。该信息可以是1比特的标志。例如,指示编码块是否被三叉树划分的tt_flag可以被编码/解码。值为真的tt_flag指示将编码块划分为三个编码块的事实。值为假的tt_flag指示不将三叉树划分应用于编码块的事实。
[0228]
替选地,可以使用qt_flag或bt_flag确定是否将三叉树划分应用于编码块。例如,值为真的qt_flag可以指示编码块被四叉树划分的事实,而值为假的qt_flag可以指示编码块被三叉树划分的事实。
[0229]
替选地,值为真的bt_flag可以指示编码块被二叉树划分的事实,而值为假的bt_flag可以指示编码块被三叉树划分的事实。当qt_flag的值为假时,或者当编码块为非正方形分区并且split_flag的值为1时,对bt_flag进行编码/解码。
[0230]
当将三叉树划分应用于编码块时,进一步用信号发送指示编码块的划分方向的信息和指示作为对编码块进行划分的结果而生成的分区的大小的信息中的至少一个。指示划分方向的信息可以指示编码块的划分方向是否是水平方向或者编码块的划分方向是否是垂直方向。当编码块的划分方向是水平方向时,编码块被两条水平线划分为三个编码块。当编码块的划分方向是垂直方向时,编码块被两条垂直线划分为三个编码块。
[0231]
当编码块被三叉树划分时,包括在编码块中的分区根据编码块的大小或形状共享运动信息、合并候选、参考样本、帧内预测模式等。例如,在当前编码块被三叉树划分并且当前编码块的大小或形状满足预定条件时,当前编码块内的编码块共享用于帧间预测的空间
相邻块候选、用于帧间预测的时间相邻块候选、用于帧内预测的参考样本以及帧内预测模式之中的至少一个。替选地,可以设置成:当前编码块内的编码块中的仅一些编码块共享信息,而其余编码块不共享信息。
[0232]
概括上述实施方式,对编码块进行划分的方法可以包括四叉树划分方法、二叉树划分方法和三叉树划分方法之中的至少一种。四叉树划分可以包括对称四叉树划分、非对称四叉树划分和三叉型非对称四叉树划分之中的至少一种。二叉树划分可以包括对称二叉树划分和非对称二叉树划分之中的至少一种。通过使用上述的四叉树划分方法、二叉树划分方法和三叉树划分方法之中的至少一种来对编码块进行划分的方法可以被称为多叉树划分(multi-tree partitioning)(或多个树划分(multiple-tree partitioning))方法。
[0233]
图16是示出了适用于编码块的划分类型的图。
[0234]
当允许对称四叉树划分、对称二叉树划分、非对称二叉树划分和三叉树划分时,确定编码块的划分类型是图16中所示的九种划分类型中的任意一种。
[0235]
可以在序列级别、图片级别、切片级别、图块组级别或图块级别确定是否允许四叉树划分、是否允许二叉树划分以及是否允许三叉树划分之中的至少一个。可以通过比特流用信号发送指示是否允许每种划分方法的信息。该信息可以是1比特的标志。例如,可以通过比特流用信号发送指示是否允许四叉树划分方法的isusequadtreeflag、指示是否允许二叉树划分方法的isusebinarytreeflag和指示是否允许三叉树划分方法的isusetripletreeflag之中的至少一个。取决于是否允许每种划分方法,可以使用四叉树划分、二叉树划分和三叉树划分对父级别中包括的编码块进行划分,或者可以使用四叉树划分、二叉树划分和三叉树划分之中的一种或两种划分方法对父级别中包括的编码块进行划分。
[0236]
替选地,可以默认允许四叉树划分、二叉树划分和三叉树划分之中的一种或一些划分方法,并且可以选择性地确定是否允许其余划分方法。例如,可以默认允许四叉树划分方法,但是可以选择性地确定是否允许二叉树划分方法或三叉树划分方法。替选地,可以默认允许四叉树划分方法和三叉树划分方法,但是可以选择性地确定是否允许二叉树划分方法。替选地,可以默认允许四叉树划分方法和二叉树划分方法,但是可以选择性地确定是否使用三叉树划分。指示是否允许二叉树划分方法的信息或指示是否允许三叉树划分方法的信息可以是1比特的标志。例如,可以通过比特流用信号发送指示是否允许二叉树划分方法的isusebinarytreeflag和指示是否允许三叉树划分方法的isusetripletreeflag之中的至少一个。该信息可以在序列头、图片级别、切片级别、图块组级别或图块级别用信号发送。例如,值为1的isusebinarytreeflag指示序列内的编码块能够使用二叉树划分方法进行划分的事实。值为0的isusebinarytreeflag指示序列中包括的编码块无法使用二叉树划分方法进行划分的事实。当不允许二叉树划分方法时,省略与编码块的二叉树划分相关的编码/解码信息。
[0237]
替选地,值为1的isusetripletreeflag指示序列中包括的编码块能够使用三叉树划分方法进行划分的事实。值为0的isusetripletreeflag指示序列中包括的编码块无法使用三叉树划分方法进行划分的事实。当不允许三叉树划分方法时,省略与编码块的三叉树划分相关的编码/解码信息。
[0238]
作为四叉树划分、二叉树划分或三叉树划分的结果而生成的编码块可以被设置为
预测或变换的基础。也就是说,可以将编码块设置为预测块或变换块,并且可以对该编码块执行预测、变换或量化。
[0239]
替选地,可以将预测块和编码块之中的至少一个的大小和/或形状设置为与编码块的大小和/或形状不同。例如,通过对编码块进行划分,可以生成大小小于编码块的大小的预测块或变换块。替选地,可以将多个编码块设置为一个预测块或变换块。例如,可以将作为三叉树划分的结果而生成的编码块的变换单元确定为父划分区域。父划分区域可以是非正方形或正方形区域,该非正方形或正方形区域包括作为三叉树划分的结果而生成的三个块中的至少一个。也就是说,可以在编码块的变换单元处设置包括编码块的父节点块。
[0240]
图17是示出了由三叉树划分产生的编码块的变换单元的图。
[0241]
在图17的(a)中,可以将作为三叉树划分的结果而生成的cu0、cu1和cu2的变换单元设置为包括cu0、cu1和cu2的父节点块。也就是说,可以基于包括cu0、cu1和cu2的父节点块来执行对cu0、cu1和cu2的变换和/或量化。
[0242]
在图17的(b)中,可以将作为三叉树划分的结果而生成的cu3、cu4和cu5的变换单元设置为包括cu3、cu4和cu5的父节点块。也就是说,可以基于包括cu3、cu4和cu5的父节点块来执行对cu3、cu4和cu5的变换和/或量化。
[0243]
如上所述,可以将多个编码块设置为一个变换单元。也就是说,可以执行用于将一组多个编码块设置为一个变换单元的变换处理。除了通过三叉树划分生成的块之外,可以对通过二叉树划分或四叉树划分生成的编码块执行变换处理。可以考虑编码块的形状、编码块的大小、编码块的划分深度和父节点块的划分类型之中的至少一个来执行变换处理。例如,当满足以下情况中的至少一种时,执行变换处理:编码块的大小是最小大小的情况;编码块的划分深度是最大划分深度的情况;编码块处于非正方形的情况;以及编码块的大小等于或小于预定大小的情况。当多个编码块中的至少一个满足条件时,执行变换处理。可以在编码器和解码器中预定义最小大小或最大划分深度。替选地,可以通过比特流用信号发送用于确定最小大小或最大划分深度的信息。可以在编码器和解码器中预设预定大小。
[0244]
替选地,可以设置成当编码块的形状是在编码器和解码器中预设的形状时,执行变换处理。预设形状可以是正方形形状(例如,2x2或4x4)或矩形形状(例如,2x4、4x2、2x8或8x2)。
[0245]
替选地,可以通过比特流用信号发送指示是否执行变换处理的信息。例如,可以通过比特流用信号发送指示是否对多个编码块中的任何一个执行变换处理的标志。替选地,可以通过比特流用信号发送指定对其执行变换处理的第一编码块和最后编码块的信息。
[0246]
替选地,可以通过比特流用信号发送指示执行变换处理的条件的信息。该信息可以是关于允许进行变换处理的编码块的形状、编码块的大小和编码块的深度之中的至少一个。
[0247]
可以对多个编码块中的每个执行预测,并且可以对包括编码块的变换块执行变换或量化。
[0248]
编码器可以基于每个预定块对残差样本(或残差信号)执行变换和/或量化。可以将对其执行变换和/或量化的单位块定义为变换块。作为对残差样本执行变换和/或量化的结果,可以生成残差系数。残差系数可以包括以下之中的至少一个:通过对残差样本进行变换而生成的变换系数、通过对变换系数进行量化而生成的量化的变换系数以及通过对跳过
变换的残差样本进行量化而生成的量化的残差样本。可以为各个颜色分量设置不同的变换块。例如,用于亮度分量的变换块的大小和用于色度分量的变换块的大小可以不同。可以对亮度分量、第一色度分量cb和第二色度分量cr独立地执行变换和/或量化。
[0249]
变换块可以处于正方形形状或非正方形形状。例如,变换块可以处于正方形形状,例如4x4、8x、16x16、32x32、64x64等,或者可以处于非正方形形状,例如4x8、8x4、8x16、16x8、16x32、32x16、32x64、64x32、4x16、4x32、8x32等。
[0250]
通过多叉树划分生成的编码块可以被设置为变换块。替选地,可以将编码块划分为较小大小的变换块。替选地,可以通过合并多个编码块来生成变换块。可以基于在编码器和解码器中预定义的变换块的最小大小,或者基于用于扫描变换系数的最小块的大小来确定编码块中包括的变换块的数目、大小和/或形状,或者变换块中包括的编码块的数目、大小和/或形状。
[0251]
关于编码块是否被用作变换块的信息、用于将编码块划分为变换块的信息以及用于将编码块合并为变换块的信息之中的至少一个可以通过比特流来用信号发送。可以在序列头、图片头、片头、图块组头或块级别(例如,编码块或变换块)用信号发送该信息。
[0252]
解码器可以对来自从编码器接收到的比特流的残差系数进行解码,并且可以对解码的残差信号执行逆量化和逆变换之中的至少一个,从而对残差样本(或残差信号)进行解码。通过对残差系数进行解码并对解码的残差信号执行逆量化和逆变换之中的至少一个来生成残差信号的处理可以被定义为“残差系数解码”。
[0253]
在下文中,将详细地描述残差系数解码处理。
[0254]
图18是示出了根据应用本发明的实施方式获得残差系数的处理的流程图。
[0255]
可以确定当前块的扫描顺序(s1810)。扫描顺序可以包括对角线扫描、z扫描、之字形扫描、水平扫描或垂直扫描中的至少一个。可以基于当前块的大小、当前块的形状、当前块的编码模式或当前块的帧内预测模式中的至少一个来确定当前块的扫描顺序。
[0256]
可以对指示在当前块内是否存在非0残差系数的信息进行编码/解码(s1820)。基于该信息,可以确定是否对当前块的残差系数进行编码/解码(s1830)。
[0257]
该信息可以包括指示在当前块内是否存在残差系数的残差系数编码指示符(coded_block_flag,cbf)。残差系数编码指示符可以指示在块内是否存在非0变换系数。例如,值为0的残差系数编码指示符指示在块内不存在非0残差系数,而值为1的残差系数编码指示符指示在块内存在至少一个非0残差系数。可以针对亮度分量和色度分量中的每个对残差系数编码指示符进行编码,并且可以用信号发送该残差系数编码指示符。
[0258]
残差系数编码指示符可以包括在第一级别块用信号发送的指示符(例如,“rqt_root_cbf”)和在包括在第一级别块中的第二级别块用信号发送的指示符(例如,“coded_sub_block_flag”,csbf)之中的至少一个。第一级别块指示变换块、编码块或编码树块。第二级别块指示在第二级别块中包括的子块。
[0259]
例如,rqt_root_cbf可以指示在当前块中是否包括非0残差系数。解码器可以根据rqt_root_cbf值确定是否对残差系数进行解码。例如,当rqt_root_cbf的值为0时,不对当前块(例如,当前变换块)执行残差系数解码,并且将当前块内的残差样本的所有值设置为0。相反,当rqt_root_cbf的值为1时,在当前块内执行残差系数解码。
[0260]
在当前块的大小大于预定义大小时,对coded_sub_block_flag进行编码/解码。例
如,预定义大小可以是4x4、2x8或8x2。coded_sub_block_flag可以指示在子块内是否包括非0变换系数。例如,coded_sub_block_flag可以基于每个子块而被编码并且可以用信号发送,其中,子块为4x4大小。值为0的coded_sub_block_flag可以指示在子块内不存在非0残差系数,而值为1的coded_sub_block_flag可以指示在子块内存在至少一个非0残差系数。
[0261]
图19是示出了针对每个子块对残差系数编码指示符进行编码的示例的图。
[0262]
首先,16x16大小的变换块包括非0残差系数,并且因此可以将变换块的rqt_root_flag设置为值1。
[0263]
可以为包括在变换块中的成4x4大小的子块中的每个子块设置coded_sub_block_flag。当在4x4大小的子块内存在非0残差系数时,子块的coded_sub_block_flag被设置值为1。例如,在图19中,示出了将包括非0残差系数的第一子块、第二子块和第三子块的coded_sub_block_flag的值设置为1。当在4x4大小的子块内不存在非0残差系数时,将子块的coded_sub_block_flag设置值为0。例如,在图19中,示出了不包括非0残差系数的第四子块的coded_sub_block_flag的值被设置为0。
[0264]
rqt_root_cbf和coded_sub_block_flag可以以分层的方式进行编码并且可以用信号发送。例如,当rqt_root_cbf的值为0时,省略对coded_sub_block_flag进行编码/解码。相反,当rqt_root_cbf的值为1,并且当前块的大小大于子块的大小时,针对当前块内的每个子块,coded_sub_block_flag被编码并被用信号发送。
[0265]
即使在变换块与编码块之间的残差系数编码指示符也可以以分层的方式被编码并且可以用信号发送。例如,指示在多个变换块之中是否包括具有非0残差系数的至少一个变换块的第一残差系数编码指示符可以被编码/解码。取决于第一残差系数编码指示符的值,可以确定是否针对每个变换块对第二残差系数编码指示符进行编码/解码。在本文中,包括多个变换块的父块的大小和形状之中的至少一个可以具有预定义值,或者可以通过比特流用信号发送的信息来确定。替选地,可以基于编码树块的划分类型来确定父块的大小和形状之中的至少一个。例如,可以将包括多个非正方形变换块的正方形编码块或非正方形编码块定义为用于多个非正方形变换块的父块。残差系数编码指示符可以通过两个或更多个分层以分层的方式被编码。
[0266]
如上地,以分层的方式对残差系数编码指示符进行编码的方法可以被称为分层残差系数编码指示符(分层编码块标志,hcbf)导出方法。
[0267]
作为执行四叉树划分、二叉树划分或三叉树划分中的至少一个的结果,可以生成宽度或高度或两者均小于预定义值的编码块。例如,可以生成宽度或高度或两者均小于值4的编码块。宽度或高度或两者均小于值4的编码块可以被定义为超小非对称编码单元。
[0268]
当前块中包括的子块的大小、形状或数目中的至少一个可以基于当前块的大小、当前块的形状或当前块的量化参数中的至少一个来确定。例如,包括在宽度和高度大于值4的编码块中的子块可以处于4x4大小。因此,可以针对每个成4x4大小的子块对coded_sub_block_flag进行编码。相反,包括在宽度或高度或两者均小于值4的编码块中的子块可以具有2x2、2x4、4x2、2x8或8x2的大小。因此,可以针对具有2x2、2x4、4x2、2x8或8x2大小的每个子块对coded_sub_block_flag进行编码。
[0269]
图20和图21是示出了用于超小非对称编码单元的coded_sub_block_flag的编码方面的图。
[0270]
对于2xn大小的超小非对称编码块,可以针对2x2、2x4或2x8大小的每个子块对csbf进行编码。图20的(a)是示出了子块为2x2大小的情况的图。图20的(b)是示出了子块为2x4大小的情况的图。图20的(c)是示出了子块为2x8大小的情况的图。
[0271]
对于nx2大小的超小非对称编码块,可以针对2x2、4x2或8x2大小的每个子块对csbf进行编码。图21的(a)是示出了子块为8x2大小的情况的图。图21的(b)是示出了子块为4x2大小的情况的图。图21的(c)是示出了子块为2x2大小的情况的图。
[0272]
可以通过比特流用信号发送指示包括在编码块中的子块的大小、形状或子块的数目中的至少一个的信息。基于该信息,可以确定包括在超小非对称编码块中的子块的大小和/或形状。可以基于使用该信息确定的子块来对csbf进行编码。该信息可以在序列头、图片头、片头、图块组头、图块头或块级别用信号发送。该信息可以指示包括在编码块中的子块的大小、子块的形状或子块的数目中的至少一个。替选地,该信息可以指示对csbf进行编码的最小单位、对csbf进行编码的最大单位或者在对csbf进行编码的最小单位与最大单位之间的差值。
[0273]
替选地,基于预设数目的样本,可以定义子块。此处,预设数目可以是4、8、16或更多。预设数目可以在编码器和解码器中预定义。替选地,可以基于编码块的大小、编码块的形状或编码块的量化参数中的至少一个来确定预设数目。替选地,可以通过比特流用信号发送用于确定预设数目的信息。该信息可以指示对csbf进行编码的子块的样本的最小数目、对csbf进行编码的子块的样本的最大数目或者在样本的最小数目与样本的最大数目之间的差值。
[0274]
图22是示出了针对包括预设数目的样本的每个子块对残差系数编码指示符进行编码的示例的图。
[0275]
在图22中所示的示例中,cu0和cu2是1x16大小的超小非对称编码块,并且cu1是2x16大小的超小非对称编码块。
[0276]
假设针对16个样本的组包括csbf,对于各自都包括16个样本的cu0和cu2,可以对csbf进行编码而无需划分为子块。替选地,对于cu0和cu2,可以省略对csbf进行编码/解码,并且可以对rqt_root_flag进行编码/解码。
[0277]
可以将包括32个样本的cu1划分为两个子块,并且可以针对子块中的每个对csbf进行编码/解码。在图20中,示出了包括在cu1中的子块为2x8的大小,但是可以设置与所示示例不同的子块的大小。例如,cu1可以被划分为1x16大小的两个子块。
[0278]
当在当前块内包括非0残差系数时,根据当前块的扫描顺序对每个残差系数的绝对值和/或符号进行编码/解码(s1840)。
[0279]
当在当前块或子块中包括至少一个非0残差系数时,使用指示残差系数是否为0的残差系数水平指示符对残差系数进行编码/解码。残差系数水平指示符是1比特的标志(例如,“significant_flag”或“sig_coeff_flag”),并且指示当前块内的每个残差系数是否为0。例如,值为1的significant_flag指示残差系数不为0,而值为0的significant_flag指示残差系数为0。非0残差系数可以被称为有效残差系数。
[0280]
在块内的所有残差系数的变换系数水平可以被称为残差系数水平图(有效图(significant map))。编码器可以对残差系数水平图进行编码,并且然后可以对有效残差系数的绝对值和符号进行编码。具体地,编码器可以根据当前块的扫描顺序对最后的有效
变换系数的位置进行编码,并且可以从最后的有效变换系数开始执行逆变换扫描,以对每个残差系数的残差系数水平指示符进行编码。可以在扫描顺序的相反方向上执行逆变换扫描。另外,可以对有效变换系数的绝对值和符号进行编码。
[0281]
可以使用以下项之中的至少一个来对有效变换系数的绝对值进行编码:指示有效变换系数的绝对值是否大于1的标志(gt1_flag)、指示有效变换系数的绝对值或通过从有效变换系数中减去1获得的值是否是偶数的标志(parity_level_flag)、指示有效变换系数的绝对值是否大于3的标志(gt3_flag)以及通过从有效变换系数的绝对值中减去3获得的值(abs_remainder)。
[0282]
可以重复执行csbf的编码、残差系数水平指示符的编码以及有效变换系数的绝对值和符号的编码,直到完成对最后的残差系数进行编码为止。
[0283]
解码器可以对最后的有效残差系数的位置进行解码,并且可以从第一样本开始到最后样本,对样本的有效残差系数水平指示符进行解码。
[0284]
当指示有效变换系数的绝对值不大于1时,确定有效变换系数的绝对值为1。当指示有效变换系数的绝对值大于1且不大于3时,通过指示有效变换系数的绝对值是否是偶数的标志来确定有效变换系数的绝对值。例如,当指示通过从有效变换系数中减去1而获得的值是奇数时,确定有效变换系数的绝对值为2。当指示通过从有效变换系数中减去1而获得的值是偶数时,确定有效变换系数的绝对值为3。当有效变换系数的绝对值大于3时,通过对通过从有效变换系数的绝对值中减去3而获得的值进行解码并且通过将解码的值加上3来确定有效变换系数的绝对值。
[0285]
基于包括在mxn大小的块中包括的残差系数之中的在预设位置处的残差系数,可以调整从预设变换系数沿预设方向上的残差系数的值。此处,mxn大小的块可以指代变换块或在变换块中包括的子块。可以根据变换块或子块的大小来确定m的值和n的值。可以根据当前块的扫描顺序确定预设方向。例如,可以调整其扫描顺序比在预设位置的残差系数的扫描顺序具有较低的优先级的残差系数的残差系数值,或者其扫描顺序比在预设位置的残差系数的扫描顺序具有较高的优先级的残差系数的残差系数值。替选地,预设方向可以是在编码器和解码器中预定义的方向。例如,预设方向可以是向左方向、向右方向、向上方向、向下方向或对角线方向。
[0286]
调整残差系数的值可以指代将残差系数的值改变为与残差系数调整参考值相同、将残差系数的值改变为小于残差系数调整参考值的值或者将残差系数的值改变为0。
[0287]
图23是示出了调整残差系数的值的示例的图。
[0288]
可以通过残差系数中的每个的扫描索引来识别包括在成mxn大小的块中的mxn个残差系数中的每个的扫描顺序。另外,可以将预设的扫描顺序定义为残差系数调整索引。可以将mxn个残差系数之中的扫描索引比残差系数调整索引具有较低的优先级的残差系数的绝对值调整为残差系数调整参考值或更小。
[0289]
例如,可以将在扫描顺序中晚于第八的残差系数的绝对值设置成不超过1。参照图23,在对角线扫描下,从扫描索引0开始到扫描索引7的残差系数的值为(13、10、2、4,-5、8,-1,-3、1)。在扫描顺序上晚于第八的残差系数(即,扫描索引大于7的残差系数)之中,可以将绝对值超过1的残差系数的绝对值设置为1或更小。例如,在扫描顺序上为第十四的残差系数(即,扫描索引为13的残差系数)的绝对值为2,并且因此可以将残差系数的绝对值改变为
1。
[0290]
可以基于块中包括的样本的数目来确定调整索引。例如,用于mxn个残差系数的调整索引可以被设置为(mxn)》》1。替选地,可以基于最后的有效变换系数的位置来确定调整索引。例如,可以将调整索引设置为(lastsigpos+1)》》1或(lastsigpos-1)》》1。最后的有效变换系数的位置可以由lastsigpos表示。替选地,可以通过比特流用信号发送用于确定调整索引的信息。可以通过序列参数、图片级别、片头、图块组、图块、变换块或残差编码语法来用信号发送该信息。
[0291]
替选地,可以在编码器和解码器中预定义调整索引的值。
[0292]
残差系数调整参考值可以被设置为非0整数值。残差系数调整参考值可以在编码器或解码器中预定义。替选地,可以在序列级别、图片级别、切片级别或块级别中定义残差系数调整参考值。例如,可以在所有切片中使用预定义的残差系数调整值,或者可以针对每个切片确定残差系数调整值。
[0293]
替选地,基于调整索引,可以确定残差系数调整参考值。例如,可以将以下项设置为残差系数调整参考值:扫描索引为调整索引的残差系数的值、扫描索引大于调整索引的残差系数之中的第一有效残差系数的值或者扫描索引小于调整索引的残差系数之中的第一有效残差系数的值。
[0294]
可以将扫描索引具有比调整索引低的优先级的有效残差系数的绝对值设置为残差系数调整参考值或更小。因此,可以不对残差系数的绝对值进行编码,或者可以仅对用于确定残差系数的绝对值的最小信息进行编码。例如,在残差系数调整参考值为1时,确定扫描索引具有比调整索引低的优先级的有效残差系数的绝对值为1。作为结果,可以将扫描索引具有比调整索引低的优先级的残差系数的绝对值设置为与残差系数水平指示符的值相同。因此,可以省略对用于确定有效残差系数的绝对值的gt1_flag、parity_level_flag、gt3_flag和/或abs_remainder之中的至少一个进行编码/解码。
[0295]
例如,当残差系数调整参考值是2时,确定扫描索引具有比调整索引低的优先级的有效残差系数的绝对值是1或2。作为结果,可以将扫描索引具有比调整索引低的优先级的残差系数的绝对值设置为与残差系数水平指示符和gt1_flag的值的和相同。因此,对用于确定有效残差系数的绝对值的parity_level_flag、gt3_flag和abs_remainder之中的至少一个进行的编码/解码可以省略。
[0296]
例如,当残差系数调整参考值是3时,确定扫描索引具有比调整索引低的优先级的有效残差系数的绝对值是1、2或3。作为结果,可以将扫描索引具有比调整索引低的优先级的残差系数的绝对值设置为与残差系数水平指示符、gt1_flag的值和parity_level_flag的和相同。因此,对用于确定有效残差系数的绝对值的gt3_flag和abs_remainder之中的至少一个进行的编码/解码可以省略。
[0297]
也就是说,通过将有效残差系数的绝对值调整为残差系数调整参考值或更小,减少了用于确定有效残差系数的绝对值所需的比特的数目,使得可以改善编码/解码效率。
[0298]
可以通过比特流用信号发送指示残差系数的绝对值是否被调整的信息。该信息可以是1比特的标志。例如,值为真的标志指示当前块内的扫描索引大于调整索引的残差系数的绝对值被调整的事实。值为假的标志指示当前块内的残差系数的绝对值未被调整的事实。
[0299]
图24是示出了根据应用本发明的实施方式获得残差样本的处理的流程图。
[0300]
首先,可以获得当前块的残差系数(s2410)。解码器可以通过系数扫描方法获得残差系数。例如,解码器可以使用对角线扫描、锯齿形(jig-zag)扫描、右上(up-right)扫描、垂直扫描或水平扫描来执行系数扫描,并且可以以二维块的形式获得残差系数。
[0301]
可以对当前块的残差系数执行逆量化(s2420)。
[0302]
可以确定是否跳过对当前块的反量化的残差系数的逆变换(s2430)。具体地,解码器可以确定是否跳过当前块的水平方向或垂直方向中的至少一个上的逆变换。当确定应用当前块的水平方向或垂直方向中的至少一个上的逆变换时,可以通过对当前块的反量化的残差系数进行逆变换来获得当前块的残差样本(s2440)。在此,可以使用dct、dst或klt中的至少一种来执行逆变换。
[0303]
当在当前块的水平方向和垂直方向两者上都跳过逆变换时,不在当前块的水平方向和垂直方向上执行逆变换。在这种情况下,可以通过利用预定值缩放反量化的残差系数来获得当前块的残差样本(s2450)。
[0304]
在水平方向上跳过逆变换意味着不是在水平方向上执行逆变换,而是在垂直方向上执行逆变换。此时,可以在水平方向上执行缩放。
[0305]
在垂直方向上跳过逆变换意味着不是在垂直方向上执行逆变换,而是在水平方向上执行逆变换。此时,可以在垂直方向上执行缩放。
[0306]
可以根据当前块的划分类型来确定是否可以将逆变换跳过技术用于当前块。例如,如果通过基于二叉树的划分生成当前块,则逆变换跳过方案可以被限制用于当前块。因此,当通过基于二叉树的划分生成当前块时,可以通过对当前块进行逆变换来获得当前块的残差样本。另外,当通过基于二叉树的划分生成当前块时,可以省略指示是否跳过逆变换的信息(例如,transform_skip_flag)的编码/解码。
[0307]
替选地,当通过基于二叉树的划分生成当前块时,可以将逆变换跳过方案限制为水平方向或垂直方向中的至少一个。在此,可以基于从比特流解码的信息来确定逆变换跳过方案被限制的方向,或者可以基于当前块的大小、当前块的形状或当前块的帧内预测模式来自适应地确定逆变换跳过方案被限制的方向。
[0308]
例如,在当前块是宽度大于高度的非正方形块时,可以仅在垂直方向上允许逆变换跳过方案,而在水平方向上限制逆变换跳过方案。也就是说,在当前块是2nxn时,在当前块的水平方向上执行逆变换,并且可以在垂直方向上选择性地执行逆变换。
[0309]
另一方面,在当前块是高度大于宽度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案,而在垂直方向上限制逆变换跳过方案。也就是说,在当前块是nx2n时,在当前块的垂直方向上执行逆变换,并且可以在水平方向上选择性地执行逆变换。
[0310]
与以上示例相比,在当前块是宽度大于高度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案,并且在当前块是高度大于宽度的非正方形块时,可以仅在垂直方向上允许逆变换跳过方案。
[0311]
可以通过比特流用信号发送指示是否相对于水平方向跳过逆变换的信息或者指示是否相对于垂直方向跳过逆变换的信息。例如,指示是否在水平方向上跳过逆变换的信息是1比特标志
‘
hor_transform_skip_flag’,并且指示是否在垂直方向上跳过逆变换的信息是1比特标志
‘
ver_transform_skip_flag’。编码器可以根据当前块的形状来对
‘
hor_
transform_skip_flag’或
‘
ver_transform_skip_flag’中的至少一个进行编码。此外,解码器可以通过使用“hor_transform_skip_flag”或“ver_transform_skip_flag”中的至少一个确定是否跳过水平方向或垂直方向上的逆变换。
[0312]
可以设置成根据当前块的划分类型来跳过当前块的任意一个方向的逆变换。例如,如果通过基于二叉树的划分生成当前块,则可以跳过水平方向或垂直方向上的逆变换。也就是说,如果通过基于二叉树的划分生成当前块,则可以确定在水平方向或垂直方向中的至少一个上跳过当前块的逆变换,而无需指示是否跳过当前块的逆变换的编码/解码信息(例如,transform_skip_flag、hor_transform_skip_flag、ver_transform_skip_flag)。
[0313]
本公开内容还能够具有以下配置:
[0314]
1.一种对图像进行解码的方法,所述方法包括:
[0315]
确定在当前块中是否包括非0残差系数;以及
[0316]
当确定在所述当前块中包括非0残差系数时,根据所述当前块的扫描顺序对所述当前块中包括的残差系数进行解码,
[0317]
其中,扫描索引大于残差系数调整索引的残差系数的绝对值等于或小于残差系数调整参考值。
[0318]
2.根据方案1所述的方法,其中,所述残差系数调整索引基于所述当前块的大小和最后的有效残差系数的位置中的至少一个来确定。
[0319]
3.根据方案1所述的方法,其中,所述残差系数调整参考值为1,所述残差系数的绝对值被设置为与残差水平指示符的值相同,并且所述残差水平指示符指示残差系数的绝对值是否大于0。
[0320]
4.根据方案1所述的方法,其中,所述残差系数调整参考值对于每个切片被设置为不同。
[0321]
5.根据方案1所述的方法,其中,所述残差系数调整参考值被设置为与扫描索引是所述残差系数调整索引的残差系数的绝对值相同。
[0322]
6.根据方案1所述的方法,其中,基于所述当前块的残差系数编码指示符来执行对所述当前块中是否包括非0残差系数的确定。
[0323]
7.一种对图像进行编码的方法,所述方法包括:
[0324]
确定在当前块中是否包括非0残差系数;以及
[0325]
当确定在所述当前块中包括非0残差系数时,根据所述当前块的扫描顺序对所述当前块中包括的残差系数进行编码,
[0326]
其中,扫描索引大于残差系数调整索引的残差系数的绝对值等于或小于残差系数调整参考值。
[0327]
8.根据方案7所述的方法,其中,所述残差系数调整索引基于所述当前块的大小和最后的有效残差系数的位置中的至少一个来确定。
[0328]
9.根据方案7所述的方法,还包括:
[0329]
对指示残差系数的绝对值是否大于0的残差水平指示符进行编码,
[0330]
其中,所述残差系数调整参考值为1,并且残差系数的绝对值被设置为与所述残差水平指示符的值相同。
[0331]
10.根据方案7所述的方法,其中,所述残差系数调整参考值对于每个切片被设置
为不同。
[0332]
11.根据方案7所述的方法,其中,所述残差系数调整参考值被设置为与扫描索引是所述残差系数调整索引的残差系数的绝对值相同。
[0333]
12.根据方案7所述的方法,还包括:
[0334]
对所述当前块的残差系数编码指示符进行编码,所述残差系数编码指示符指示在所述当前块中是否包括非0残差系数。
[0335]
13.一种用于对图像进行解码的设备,所述设备包括:
[0336]
解码模块,其确定在当前块中是否包括非0残差系数,并且当确定在所述当前块中包括非0残差系数时,根据所述当前块的扫描顺序对所述当前块中包括的残差系数进行解码,
[0337]
其中,扫描索引大于残差系数调整索引的残差系数的绝对值等于或小于残差系数调整参考值。
[0338]
14.一种用于对图像进行编码的设备,所述设备包括:
[0339]
编码模块,其确定在当前块中是否包括非0残差系数,并且在确定在所述当前块中包括非0残差系数时,根据所述当前块的扫描顺序对所述当前块中包括的残差系数进行编码,
[0340]
其中,扫描索引大于残差系数调整索引的残差系数的绝对值等于或小于残差系数调整参考值。
[0341]
在上述实施方式中使用的语法的名称仅为了便于描述而命名。
[0342]
将关注于解码处理或编码处理描述的实施方式应用于编码处理或解码处理包括在本发明的范围内。将以预定顺序描述的实施方式改变为不同顺序也包括在本发明的范围内。
[0343]
尽管已经基于一系列步骤或流程图描述了上述实施方式,但是它们不限制本发明的时间序列顺序,并且可以根据需要同时执行或以不同顺序执行。此外,在上述实施方式中构成框图的部件(例如,单元、模块等)中的每个可以由硬件装置或软件以及多个部件来实现。或者,多个部件可以组合并通过单个硬件装置或软件来实现。可以以可以通过各种计算机部件执行并记录在计算机可读记录介质中的程序指令的形式来实现上述实施方式。该计算机可读记录介质可以包括程序命令、数据文件、数据结构等之一或其组合。计算机可读介质的示例包括诸如硬盘、软盘和磁带的磁性介质、诸如cd-rom和dvd的光学记录介质、诸如软式光盘的磁光介质、介质以及专门被配置成存储和执行程序指令的硬件装置(例如rom、ram、闪存等)。硬件装置可以被配置成作为一个或更多个软件模块进行操作,以用于执行根据本发明的处理,并且反之亦然。
[0344]
工业适用性
[0345]
本发明可以应用于能够对视频进行编码/解码的电子装置。
技术特征:
1.一种对图像进行解码的方法,所述方法包括:基于分割信息来分割编码树块以确定当前变换块,所述分割信息包括指示是否使用四叉分割的第一分割标志、指示是否使用二叉分割的第二分割标志和指示所述二叉分割的分割方向的第三分割标志中的至少一个;确定在所述当前变换块中是否包括至少一个非0残差系数;以及响应于确定在所述当前变换块中包括至少一个非0残差系数,根据所述当前变换块的扫描顺序获得所述当前变换块的残差系数,其中,基于所述当前变换块的系数水平信息来获得所述当前变换块的残差系数,其中,所述系数水平信息包括第一残差水平标志、奇偶标志和第二残差水平标志中的至少一个,其中,残差系数的绝对值通过以下步骤来确定:基于所述第一残差水平标志来确定所述残差系数的绝对值是否大于1,响应于指示所述残差系数的绝对值大于1的第一残差水平标志,基于所述奇偶标志确定所述残差系数的绝对值是偶数还是奇数,以及基于所述第二残差水平标志来确定所述残差系数的绝对值是否大于3,其中,仅当所述第一残差水平标志指示所述残差系数的绝对值大于1时,经由比特流用信号发送所述奇偶标志和所述第二残差水平标志,以及其中,响应于指示所述残差系数的绝对值不大于3的第二残差水平标志,根据所述奇偶标志的值将所述残差系数的绝对值确定为2或3。2.根据权利要求1所述的方法,其中,在经由比特流明确地用信号发送的信息具有除0之外的值的情况下,扫描顺序早于解码装置中预定义的参考位置处的残差系数的每个残差系数等于0。3.根据权利要求2所述的方法,其中,关于扫描顺序早于所述参考位置处的残差系数的每个残差系数的系数水平信息不经由比特流用信号发送。4.根据权利要求1所述的方法,还包括:基于指示是否跳过逆变换的变换跳过标志来确定是否跳过所述当前变换块的逆变换,其中,在所述当前变换块是通过划分编码块生成的两个变换块中的一个时,不经由比特流用信号发送所述变换跳过标志,并且不允许跳过所述当前变换块的逆变换。5.一种对图像进行编码的方法,所述方法包括:分割编码树块以确定当前变换块;确定在当前变换块中是否包括至少一个非0残差系数;以及响应于确定在所述当前变换块中包括至少一个非0残差系数,根据所述当前变换块的扫描顺序对所述当前变换块的残差系数进行编码,以生成所述当前变换块的系数水平信息,其中,所述编码树块的分割信息被编码到比特流中,其中,所述分割信息包括指示是否使用四叉分割的第一分割标志、指示是否使用二叉分割的第二分割标志和指示所述二叉分割的分割方向的第三分割标志中的至少一个,其中,所述系数水平信息包括第一残差水平标志、奇偶标志和第二残差水平标志中的至少一个,
其中,指示所述残差系数的绝对值是否大于1的第一残差水平标志被编码到比特流中,其中,仅当所述第一残差水平标志指示所述残差系数的绝对值大于1时,指示所述残差系数的绝对值是偶数还是奇数的奇偶标志以及指示所述残差系数的绝对值是否大于3的第二残差水平标志被进一步编码到比特流中,以及其中,响应于所述残差系数的绝对值是2或3,指示所述残差系数的绝对值不大于3的第二残差水平标志被编码到比特流中。6.根据权利要求5所述的方法,其中,在明确地编码到比特流中的信息被设置为等于除0之外的值的情况下,扫描顺序早于编码装置中预定义的参考位置处的残差系数的每个残差系数等于0。7.根据权利要求6所述的方法,其中,关于扫描顺序早于所述参考位置处的残差系数的每个残差系数的系数水平信息不被编码到比特流中。8.根据权利要求5所述的方法,还包括:确定是否跳过所述当前变换块的变换,其中,在所述当前变换块是通过划分编码块生成的两个变换块中的一个时,指示是否跳过变换的变换跳过标志不被编码到比特流中,并且不允许跳过所述当前变换块的变换。9.一种图像数据的传送方法,包括:获得所述图像数据的比特流,其中,通过以下步骤生成比特流:分割编码树块以确定当前变换块,确定在所述当前变换块中是否包括至少一个非0残差系数,并且响应于确定在所述当前变换块中包括至少一个非0残差系数,根据所述当前变换块的扫描顺序对所述当前变换块的残差系数进行编码;以及传送比特流,其中,所述比特流包括所述编码树块的分割信息,其中,所述分割信息包括指示是否使用四叉分割的第一分割标志、指示是否使用二叉分割的第二分割标志和指示所述二叉分割的分割方向的第三分割标志中的至少一个,其中,所述比特流包括通过对所述当前变换块的残差系数进行编码生成的系数水平信息,其中,所述系数水平信息包括第一残差水平标志、奇偶标志和第二残差水平标志中的至少一个,其中,所述第一残差水平标志指示残差系数的绝对值是否大于1,所述奇偶标志指示所述残差系数的绝对值是偶数还是奇数,并且所述第二残差水平标志指示所述残差系数的绝对值是否大于3,其中,仅当所述第一残差水平标志指示所述残差系数的绝对值大于1时,所述奇偶标志和所述第二残差水平标志被编码到比特流中,以及其中,响应于所述残差系数的绝对值是2或3,指示所述残差系数的绝对值不大于3的第二残差水平标志被编码到比特流中。
技术总结
提供了一种对图像进行解码或编码的方法以及图像数据的传送方法。对图像进行解码的方法包括:基于分割信息来分割编码树块以确定当前变换块,分割信息包括指示是否使用四叉分割的第一分割标志、指示是否使用二叉分割的第二分割标志和指示二叉分割的分割方向的第三分割标志中的至少一个;确定在当前变换块中是否包括至少一个非0残差系数;以及响应于确定在当前变换块中包括至少一个非0残差系数,根据当前变换块的扫描顺序获得当前变换块的残差系数,其中,基于当前变换块的系数水平信息来获得当前变换块的残差系数,系数水平信息包括第一残差水平标志、奇偶标志和第二残差水平标志中的至少一个。志中的至少一个。志中的至少一个。
技术研发人员:李培根
受保护的技术使用者:株式会社KT
技术研发日:2019.03.27
技术公布日:2023/8/16
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
