用于对视频进行编码和解码的方法与流程
未命名
09-19
阅读:89
评论:0

用于对视频进行编码和解码的方法
1.本技术为于2019年5月24日提交、申请号为201780072950.7、发明名称为“视频信号处理方法和设备”的中国专利申请的分案申请。所述母案申请的国际申请日为2017年11月23日,国际申请号为pct/kr2017/013438。
技术领域
2.本发明涉及用于处理视频信号的方法和设备。
背景技术:
3.近来,在各种应用领域中对高分辨率和高质量图像例如高清晰度(hd)图像和超高清晰度(uhd)图像的需求已经增加了。然而,与常规图像数据相比,更高分辨率和质量的图像数据的数据量增加。因此,在通过使用介质例如常规的有线和无线宽带网络传输图像数据时,或者在通过使用常规的存储介质存储图像数据时,传输和存储的成本增加。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,可以利用高效的图像编码/解码技术。
4.图像压缩技术包括各种技术,包括:根据当前图片的先前图片或后续图片来对包括在当前图片中的像素值进行预测的帧间预测技术;通过使用当前图片中的像素信息对包括在当前图片中的像素值进行预测的帧内预测技术;将短代码分配给出现频率高的值并且将长代码分配给出现频率低的值的熵编码技术等。可以通过使用这样的图像压缩技术来有效地压缩图像数据,并且可以传输或存储图像数据。
5.同时,随着对高分辨率图像的需求的增加,对作为新的图像服务的立体图像内容的需求也在增加。正在讨论用于有效地提供具有高分辨率和超高分辨率的立体图像内容的视频压缩技术。
技术实现要素:
6.技术问题
7.本发明的目的是提供一种用于在编码/解码视频信号时有效地划分编码/解码目标块的方法和设备。
8.本发明的目的是提供一种用于在编码/解码视频信号时将编码/解码目标块划分成对称类型的块或非对称类型的块的方法和设备。
9.本发明的目的是提供一种用于划分编码/解码目标块以包括多边形形状的划分的方法和设备。
10.本发明的目的是提供一种用于选择大小/形状与编码块不同的预测目标块或变换目标块的方法和设备。
11.本发明的目的是提供一种用于通过使用垂直方向划分信息和水平方向划分信息来确定编码块的划分类型的方法和设备。
12.本发明要实现的技术目的不限于上述技术问题。并且,本领域技术人员根据以下
描述将明显地理解未提及的其他技术问题。
13.技术方案
14.根据本发明的用于对视频信号进行解码的方法和设备可以:对指示是否要通过沿垂直方向的划分线或沿水平方向的划分线来分割当前编码块的划分信息进行解码,以及基于该划分信息将编码块分割成至少一个子块。此时,划分信息包括指示是否要通过沿垂直方向的划分线来分割当前编码块的垂直方向划分信息或者指示是否要通过沿水平方向的划分线来分割当前编码块的水平方向划分信息中的至少之一。
15.根据本发明的用于对视频信号进行编码的方法和设备可以:确定当前编码块的划分类型,以及基于该划分类型对指示是否通过沿垂直方向的划分线或沿水平方向的划分线来分割当前编码块的划分信息进行编码。此时,划分信息包括指示是否通过沿垂直方向的划分线来分割当前编码块的垂直方向划分信息或者指示是否通过沿水平方向的划分线来分割当前编码块的水平方向划分信息中的至少之一。
16.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,垂直方向划分信息可以包括指示将当前编码块分割成两个划分的沿垂直方向的划分线是否存在于当前编码块中的预定义位置处的垂直方向标志,并且水平方向划分信息可以包括指示将当前编码块分割成两个划分的沿水平方向的划分线是否存在于当前编码块中的预定义位置处的水平方向标志。
17.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,划分信息可以包括指示是否要将当前编码块分割成对称的两个划分的主划分信息和指示是否要将当前块分割成非对称的两个划分的子划分信息。
18.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,可以根据主划分信息的值来确定是否要对子划分信息进行解码。
19.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,可以根据主划分信息的值来得到子划分信息的值。
20.在根据本发明的用于对视频信号进行编码/解码的方法和设备中,垂直方向划分信息可以包括指示将当前编码块分割成两个划分的垂直线的位置的垂直方向索引,并且水平方向划分信息可以包括指示将当前块分割成两个划分的水平线的位置的水平方向索引。
21.以上对本发明简要概述的特征仅是随后对本发明的详细描述的说明性方面,而不限制本发明的范围。
22.有益效果
23.根据本发明,可以通过有效地划分编码/解码目标块来提高编码/解码效率。
24.根据本发明,可以通过将编码/解码目标块划分成对称类型的块或非对称类型的块来提高编码/解码效率。
25.根据本发明,可以通过划分编码/解码目标块以包括多边形形状的划分来提高编码/解码效率。
26.根据本发明,通过确定大小/形状与编码块不同的预测目标块或变换目标块,可以提高编码/解码效率。
27.根据本发明,通过使用垂直方向划分信息和水平方向划分信息,可以有效地表示编码块的各种划分类型。
28.能够通过本发明获得的效果不限于上述效果,并且本领域技术人员可以根据以下描述清楚地理解未提及的其他效果。
附图说明
29.图1是示出根据本发明的实施方式的用于对视频进行编码的设备的框图。
30.图2是示出根据本发明的实施方式的用于对视频进行解码的设备的框图。
31.图3是示出在通过帧间预测对编码块进行编码的情况下可以应用于编码块的划分模式的图。
32.图4是示出根据本发明的实施方式的基于树结构对编码块进行分层划分的示例的图。
33.图5是示出根据本发明的实施方式的允许基于二叉树的划分的划分类型的图。
34.图6是示出根据本发明的实施方式的仅允许预定类型的基于二叉树的划分的示例的图。
35.图7是用于说明根据应用本发明的实施方式的对与可允许的二叉树划分次数有关的信息进行编码/解码的示例的图。
36.图8示出了基于非对称二叉树划分的编码块的划分类型。
37.图9示出了使用qtbt和非对称二叉树划分将编码块分割成多个编码块的示例。
38.图10是示出可以应用于编码块的划分类型的图。
39.图11是示出编码块的四叉树划分类型的图。
40.图12是示出通过将多条垂直线/水平线和一条水平线/垂直线进行组合来分割编码块的示例的图。
41.图13是示出根据多边形二叉树划分的划分类型的图。
42.图14是示出将多边形划分分割成子划分的示例的图。
43.图15示出了基于三叉树来划分编码块的示例。
44.图16和图17示出了根据多叉树划分方法的编码块的划分类型。
45.图18是示出根据本发明的实施方式的编码块的划分过程的流程图。
46.图19是示出根据本发明的实施方式的确定四叉树划分的划分类型的过程的流程图。
47.图20是示出根据本发明的实施方式的确定二叉树划分的划分类型的过程的流程图。
48.图21至图23是示出通过合并两个或更多个编码块来生成预测块的示例的图。
49.图24是示出根据本发明的实施方式的预测单元合并的方法的流程图。
50.图25示出了基于相邻编码块的编码参数来得到当前编码块的编码参数的示例。
51.图26是用于说明水平方向划分信息和垂直方向划分信息的图。
52.图27至30是示出通过使用水平方向划分信息和垂直方向划分信息来指定编码块的划分类型的示例的图。
53.图31是示出根据应用本发明的实施方式的获得残差样本的过程的流程图。
具体实施方式
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.当基于编码单元生成要进行帧内预测的预测单元并且编码单元不是最小编码单元时,可以在不将编码单元划分成多个预测单元n
×
n的情况下执行帧内预测。
68.预测模块120和125可以包括执行帧间预测的帧间预测模块120和执行帧内预测的帧内预测模块125。可以确定对于预测单元是执行帧间预测还是帧内预测,并且可以确定根据每个预测方法的详细信息(例如,帧内预测模式、运动矢量、参考图片等)。此处,要进行预测的处理单元可以不同于针对其确定预测方法和详细内容的处理单元。例如,可以由预测单元确定预测方法、预测模式等,并且可以由变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以被输入至变换模块130。此外,用于预测的预测模式信息、运动矢量信息等可以与残差值一起由熵编码模块165进行编码,并且可以被传输至用于对视频进行解码的设备。在使用特定编码模式时,可以通过对原始块按其原样进行编码而不通过预测模块120和125生成预测块来向用于对视频进行解码的设备进行传输。
69.帧间预测模块120可以基于当前图片的先前图片或后续图片中的至少一个的信息来预测预测单元,或者在一些情况下,可以基于当前图片中的一些编码区域的信息来预测预测单元。帧间预测模块120可以包括参考图片插值模块、运动预测模块以及运动补偿模块。
70.参考图片插值模块可以从存储器155接收参考图片信息,并且可以根据参考图片来生成整像素或小于整像素的像素信息。在亮度像素的情况下,可以使用具有不同滤波器系数的基于dct的8抽头插值滤波器来以1/4像素为单位生成整像素或小于整像素的像素信息。在色度信号的情况下,可以使用具有不同滤波器系数的基于dct的4抽头插值滤波器来以1/8像素为单位生成整像素或小于整像素的像素信息。
71.运动预测模块可以基于由参考图片插值模块进行插值的参考图片来执行运动预测。作为用于计算运动矢量的方法,可以使用各种方法,例如,基于全搜索的块匹配算法(fbma)、三步搜索(tss)和新三步搜索算法(nts)等。基于插值像素,运动矢量可以具有以1/2像素或1/4像素为单位的运动矢量值。运动预测模块可以通过改变运动预测方法来预测当前预测单元。作为运动预测方法,可以使用各种方法,例如,跳过方法、合并方法、amvp(高级运动矢量预测)方法、帧内块复制方法等。
72.帧内预测模块125可以基于与作为当前图片中的像素信息的当前块相邻的参考像素信息来生成预测单元。在当前预测单元的相邻块是要进行帧间预测的块并且因此参考像素是要进行帧间预测的像素时,可以使用要进行帧内预测的相邻块的参考像素信息来替换
包括在要进行帧间预测的块中的参考像素。即,在参考像素不可用时,可以使用可用参考像素中的至少一个参考像素来替换不可用的参考像素信息。
73.帧内预测中的预测模式可以包括依赖于预测方向使用参考像素信息的方向性预测模式和在执行预测时不使用方向信息的非方向性预测模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且为了预测色度信息,可以利用用于预测亮度信息的帧内预测模式信息或者预测的亮度信号信息。
74.在执行帧内预测时,在预测单元的大小与变换单元的大小相同时,可以基于位于该预测单元的左侧、左上侧和上部的像素对预测单元执行帧内预测。然而,在执行帧内预测时,在预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n划分的帧内预测可以仅用于最小编码单元。
75.在帧内预测方法中,可以在依赖于预测模式将ais(自适应帧内平滑)滤波器应用于参考像素之后生成预测块。应用于参考像素的ais滤波器的类型可以变化。为了执行帧内预测方法,可以根据与当前预测单元相邻的预测单元的帧内预测模式来预测当前预测单元的帧内预测模式。在通过使用根据相邻预测单元预测到的模式信息来预测当前预测单元的预测模式中,在当前预测单元的帧内预测模式与相邻预测单元的帧内预测模式相同时,可以使用预定标志信息来传输指示当前预测单元的预测模式与相邻预测单元的预测模式彼此相同的信息。在当前预测单元的预测模式与相邻预测单元的预测模式不同时,可以执行熵编码以对当前块的预测模式信息进行编码。
76.此外,可以基于由预测模块120和125生成的预测单元来生成包括关于残差值的信息的残差块,残差值是要进行预测的预测单元与预测单元的原始块之间的差。可以将所生成的残差块输入至变换模块130。
77.变换模块130可以通过使用诸如离散余弦变换(dct)、离散正弦变换(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.偏移校正模块可以在要进行去块的图片中以像素为单位来校正与原始图片的偏移。为了对特定图片执行偏移校正,可以使用考虑每个像素的边缘信息来施加偏移的方法,或者可以使用下述方法:将图片的像素划分成预定数量的区域,确定要执行偏移的区域,并且对所确定的区域施加偏移。
88.可以基于通过将滤波后的重构图片与原始图片进行比较而获得的值来执行自适应环路滤波(alf)。可以将包括在图片中的像素分成预定组,可以确定要应用于每个组的滤波器,并且可以针对每个组单独执行滤波。可以通过编码单元(cu)传输关于是否应用alf和亮度信号的信息。用于alf的滤波器的形状和滤波器系数可以依赖于每个块而变化。此外,无论应用目标块的特征如何,都可以应用用于alf的相同形状(固定形状)的滤波器。
89.存储器155可以存储通过滤波器模块150计算的重构块或重构图片。可以在执行帧间预测时将所存储的重构块或重构图片提供至预测模块120和125。
90.图2是示出根据本发明的实施方式的用于对视频进行解码的设备的框图。
91.参照图2,用于对视频进行解码的设备200可以包括:熵解码模块210、重排模块215、逆量化模块220、逆变换模块225、预测模块230和235、滤波器模块240以及存储器245。
92.当从用于对视频进行编码的设备输入视频比特流时,可以根据用于对视频进行编码的设备的逆处理来对输入比特流进行解码。
93.熵解码模块210可以根据由用于对视频进行编码的设备的熵编码模块进行的熵编码的逆处理来执行熵解码。例如,对应于由用于对视频进行编码的设备执行的方法,可以应用各种方法,例如指数哥伦布编码、上下文自适应变长编码(cavlc)和上下文自适应二进制算术编码(cabac)。
94.熵解码模块210可以对关于由用于对视频进行编码的设备执行的帧内预测和帧间预测的信息进行解码。
95.重排模块215可以基于在用于对视频进行编码的设备中使用的重排方法对由熵解码模块210进行熵解码的比特流执行重排。重排模块可以将一维矢量形式的系数重构和重排成二维块形式的系数。重排模块215可以接收与在用于对视频进行编码的设备中执行的
系数扫描有关的信息,并且可以经由基于在用于对视频进行编码的设备中执行的扫描顺序对系数进行逆扫描的方法来执行重排。
96.逆量化模块220可以基于从用于对视频进行编码的设备接收的量化参数和重排后的块的系数来执行逆量化。
97.逆变换模块225可以执行逆变换,即,逆dct、逆dst和逆klt,这是由变换模块对用于对视频进行编码的设备的量化结果执行的变换即dct、dst和klt的逆过程。可以基于用于对视频进行编码的设备所确定的变换单元来执行逆变换。用于对视频进行解码的设备的逆变换模块225可以依赖于多条信息例如预测方法、当前块的大小、预测方向等来选择性地执行变换方案(例如dct、dst和klt)。
98.预测模块230和235可以基于从熵解码模块210接收到的关于预测块生成的信息和从存储器245接收到的先前解码的块或图片信息来生成预测块。
99.如上所述,类似于用于对视频进行编码的设备的操作,在执行帧内预测时,在预测单元的大小与变换单元的大小相同时,可以基于位于预测单元的左侧、左上侧和上部的像素对预测单元执行帧内预测。在执行帧内预测时,在预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n划分的帧内预测可以仅用于最小编码单元。
100.预测模块230和235可以包括预测单元确定模块、帧间预测模块以及帧内预测模块。预测单元确定模块可以从熵解码模块210接收各种信息,例如预测单元信息、帧内预测方法的预测模式信息、关于帧间预测方法的运动预测的信息等,可以将当前编码单元分割成预测单元,并且可以确定对预测单元执行帧间预测还是帧内预测。通过使用从用于对视频进行编码的设备接收的当前预测单元的帧间预测所需的信息,帧间预测模块230可以基于包括当前预测单元的当前图片的先前图片或后续图片中的至少一个的信息来对当前预测单元执行帧间预测。替选地,可以基于包括当前预测单元的当前图片中的一些预先重构区域的信息来执行帧间预测。
101.为了执行帧间预测,可以针对编码单元来确定跳过模式、合并模式、amvp模式和帧间块复制模式中的哪一个模式用作包括在编码单元中的预测单元的运动预测方法。
102.帧内预测模块235可以基于当前图片中的像素信息来生成预测块。当预测单元是要进行帧内预测的预测单元时,可以基于从用于对视频进行编码的设备接收到的预测单元的帧内预测模式信息来执行帧内预测。帧内预测模块235可以包括自适应帧内平滑(ais)滤波器、参考像素插值模块以及dc滤波器。ais滤波器对当前块的参考像素执行滤波,并且可以依赖于当前预测单元的预测模式来确定是否应用滤波器。可以通过使用从用于对视频进行编码的设备接收到的预测单元的预测模式和ais滤波器信息来对当前块的参考像素执行ais滤波。在当前块的预测模式是不执行ais滤波的模式时,可以不应用ais滤波器。
103.在预测单元的预测模式是基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值模块可以对参考像素进行插值以生成整数像素或小于整数像素的参考像素。在当前预测单元的预测模式是在不对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。在当前块的预测模式是dc模式时,dc滤波器可以通过滤波来生成预测块。
104.可以将重构块或重构图片提供至滤波器模块240。滤波器模块240可以包括去块滤
波器、偏移校正模块以及alf。
105.可以从用于对视频进行编码的设备接收关于是否将去块滤波器应用于相应的块或图片的信息以及关于在应用去块滤波器时应用强滤波器和弱滤波器中的哪个滤波器的信息。用于对视频进行解码的设备的去块滤波器可以从用于对视频进行编码的设备接收关于去块滤波器的信息,并且可以对相应的块执行去块滤波。
106.偏移校正模块可以基于在执行编码时应用于图片的偏移校正的类型和偏移值信息来对重构图片执行偏移校正。
107.可以基于从用于对视频进行编码的设备接收到的关于是否应用alf的信息、alf系数信息等来将afl应用于编码单元。alf信息可以被提供为被包括在特定参数集中。
108.存储器245可以存储重构图片或重构块以用作参考图片或参考块,并且可以将重构图片提供至输出模块。
109.如上面描述的,在本发明的实施方式中,为了便于说明,编码单元被用作表示用于编码的单元的术语,然而,编码单元可以用作执行解码以及编码的单元。
110.另外,当前块可以表示要进行编码/解码的目标块。并且,依赖于编码/解码步骤,当前块可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)、预测块(或预测单元)等。在本说明书中,“单元”表示用于执行特定编码/解码处理的基本单元,并且“块”可以表示预定大小的样本阵列。如果它们之间没有区别,则术语“块”和“单元”可以互换使用。例如,在下面描述的实施方式中,可以理解编码块和编码单元具有相互等同的含义。
111.可以通过将图片分割成具有正方形或非正方形形状的基本块来对图片进行编码/解码。此时,基本块可以称作编码树单元。编码树单元可以被定义为序列或片内允许的最大大小的编码单元。可以通过序列参数集、图片参数集或片头(slice header)来用信号发送关于编码树单元是具有正方形形状还是具有非正方形形状的信息或者关于编码树单元的大小的信息。编码树单元可以被分割成更小大小的划分。此时,如果假设通过分割编码树单元而生成的划分深度是1,则通过分割具有深度1的划分而生成的划分的深度可以被定义为2。即,通过分割编码树单元中的深度为k的划分而生成的划分可以被定义为具有深度k+1。
112.通过分割编码树单元而生成的任意大小的划分可以被定义为编码单元。编码单元可以被递归地分割或分割成用于执行预测、量化、变换或环路滤波等的基本单元。例如,通过分割编码单元而生成的任意大小的划分可以被定义为编码单元,或者可以被定义为变换单元或预测单元,该编码单元、变换单元或预测单元是用于执行预测、量化、变换或环路滤波等的基本单元。
113.替选地,如果确定了编码块,则可以通过对编码块的预测划分来确定与编码块具有相同的大小或大小小于编码块的预测块。可以通过指示编码块的划分类型的划分模式(part_mode)来执行对编码块的预测划分。可以根据编码块的划分模式来确定预测块的大小或形状。可以通过对划分候选中的任何一个进行指定的信息来确定编码块的划分类型。此时,取决于编码块的大小、形状、编码模式等,编码块可用的划分候选可以包括非对称划分类型(例如nl
×
2n、nr
×
2n、2n
×
nu、2n
×
nd)。例如,可以根据当前块的编码模式来确定编码块可用的划分候选。例如,图3示出了在通过帧间预测对编码块进行编码的情况下可以应用于编码块的划分模式。
114.在通过帧间预测对编码块进行编码的情况下,可以将8个划分模式中的一个应用于编码块,如图3示出的示例中那样。
115.另一方面,在通过帧内预测对编码块进行编码的情况下,可以将划分模式part_2n
×
2n或part_n
×
n应用于编码块。
116.在编码块具有最小大小的情况下,可以应用part_n
×
n。此处,可以在编码器和解码器中预定义编码块的最小大小。替选地,可以经由比特流用信号发送关于编码块的最小大小的信息。例如,通过片头用信号发送编码块的最小大小,从而可以针对每个片定义编码块的最小大小。
117.在另一示例中,可以根据编码块的大小或形状中的至少一者来不同地确定编码块可用的划分候选。例如,可以根据编码块的大小或形状中的至少一者来不同地确定编码块可用的划分候选的数目或类型。
118.替选地,可以根据编码块的大小或形状来限制编码块可用的划分候选中的非对称划分候选的类型或数目。例如,可以根据编码块的大小或形状中的至少一者来不同地确定编码块可用的非对称划分候选的数目或类型。
119.通常,预测块可以具有从64
×
64到4
×
4的大小。然而,在通过帧间预测对编码块进行编码时,可以防止预测块具有4
×
4大小,以在执行运动补偿时减小存储器带宽。
120.还可以使用划分模式来递归地分割编码块。也就是说,可以根据由划分索引指示的划分模式来分割编码块,并且可以将通过分割编码块生成的每个划分定义为编码块。
121.在下文中,将更详细地描述递归地分割编码单元的方法。为了便于说明,假设编码树单元也包括在编码单元的类别中。也就是说,在稍后描述的实施方式中,编码单元可以指编码树单元,或者可以指通过分割编码树单元而生成的编码单元。此外,在递归地分割编码块时,可以理解,通过分割编码块而生成的“划分”意指“编码块”。
122.可以通过至少一条线来分割编码单元。此时,分割编码单元的线可以具有预定角度。此处,预定角度可以是0度至360度的范围内的值。例如,0度的线可以意指水平线,90度的线可以意指垂直线,45度或135度的线可以意指对角线。
123.在通过多条线来分割编码单元时,多条线中的所有线都可以具有相同的角度。替选地,多条线中的至少一条线可以具有与其他线的角度不同的角度。替选地,分割编码树单元或编码单元的多条线可以被设置为具有预定义的角度差(例如,90度)。
124.可以对关于分割编码树单元或编码单元的线的信息进行定义并将其编码为划分模式。替选地,可以对关于线的数目、线的方向、线的角度、线在块中的位置等的信息进行编码。
125.为了便于说明,在以下实施方式中假设使用垂直线和水平线中的至少一者将编码树单元或编码单元分割成多个编码单元。
126.如果假设基于垂直线和水平线中的至少一者来执行对编码单元的划分,则划分编码单元的垂直线或水平线的数目可以是至少一个或更多个。例如,可以使用一条垂直线或一条水平线将编码树单元或编码单元分割成两个划分,或者可以使用两条垂直线或两条水平线将编码单元分割成三个划分。替选地,可以通过使用一条垂直线和一条水平线将编码单元划分成具有1/2的长度和宽度的四个划分。
127.在使用至少一条垂直线或至少一条水平线将编码树单元或编码单元分割成多个
划分时,划分可以具有统一的大小。替选地,任何一个划分可以与其余划分具有不同的大小,或者每个划分可以具有不同的大小。
128.在下面描述的实施方式中,假设将编码单元分割成4个划分是基于四叉树的划分,并且将编码单元分割成2个划分是基于二叉树的划分。在下面的图中,假设使用预定数量的垂直线或预定数量的水平线来分割编码单元,但是以下情况也在本发明的范围内:使用图中示出的更多数目的垂直线或更多数目的水平线将编码单元分割成比图中示出的划分数目更多的划分,或者将编码单元分割成比图中示出的划分数目更少的划分。
129.图4是示出根据本发明的实施方式的基于树结构对编码块进行分层划分的示例的图。
130.以预定的块单元对输入视频信号进行解码。用于对输入视频信号进行解码的这样的默认单元是编码块。编码块可以是执行帧内/帧间预测、变换以及量化的块。另外,以编码块为单位确定预测模式(例如,帧内预测模式或帧间预测模式),并且包括在编码块中的预测块可以共享所确定的预测模式。编码块可以是具有在8
×
8至64
×
64范围内的任意大小的正方形块或非正方形块,或者可以是具有128
×
128、256
×
256或更大的大小的正方形块或非正方形块。
131.具体地,可以基于四叉树和二叉树中的至少一个来对编码块进行分层划分。此处,基于四叉树的划分可以意指将2n
×
2n的编码块划分成四个n
×
n的编码块,并且基于二叉树的划分可以意指将一个编码块划分成两个编码块。即使执行基于二叉树的划分,也可以在较低深度中存在正方形形状的编码块。
132.可以对称地或者非对称地执行基于二叉树的划分。另外,基于二叉树划分的编码块可以是正方形块或非正方形块,例如矩形形状。例如,作为图5中示出的示例,其中允许基于二叉树的划分的划分类型可以包括2n
×
n(水平方向非正方形编码单元)或n
×
2n(垂直方向非正方形编码单元)的对称类型、nl
×
2n、nr
×
2n、2n
×
nu或2n
×
nd的非对称类型中的至少之一。
133.可以将基于二叉树的划分限制地允许为对称类型划分或非对称类型划分中的之一。在这种情况下,使用正方形块构造编码树单元可以与四叉树cu划分对应,并且使用对称非正方形块构造编码树单元可以与二叉树划分对应。使用正方形块和对称非正方形块构造编码树单元可以与四叉树cu划分和二叉树cu划分对应。
134.可以对不再执行基于四叉树的划分的编码块执行基于二叉树的划分。可以不再对基于二叉树划分的编码块执行基于四叉树的划分。
135.此外,可以依赖于较高深度的划分类型来确定较低深度的划分。例如,如果在两个或更多个深度中允许基于二叉树的划分,则可以在较低深度中仅允许与较高深度的二叉树划分相同的类型。例如,如果使用2n
×
n类型执行较高深度中的基于二叉树的划分,则也使用2n
×
n类型执行较低深度中的基于二叉树的划分。替选地,如果使用n
×
2n类型执行较高深度中的基于二叉树的划分,则也使用n
×
2n类型执行较低深度中的基于二叉树的划分。
136.相比之下,也可以在较低深度中仅允许与较高深度的二叉树划分类型不同的类型。
137.可以限制仅特定类型的基于二叉树的划分被用于序列、片、编码树单元或编码单元。作为示例,对于编码树单元,可以仅允许2n
×
n类型或n
×
2n类型的基于二叉树的划分。
可以在编码器或解码器中预定义可用划分类型。或者可以对关于可用划分类型的信息或关于不可用划分类型的信息进行编码,并且然后通过比特流用信号发送该信息。
138.图6是示出仅允许特定类型的基于二叉树的划分的示例的图。图6的(a)示出了仅允许n
×
2n类型的基于二叉树的划分的示例,并且图6的(b)示出了仅允许2n
×
n类型的基于二叉树的划分的示例。为了实现基于四叉树或二叉树的自适应划分,可以使用下述信息:指示基于四叉树划分的信息、关于允许基于四叉树的划分的编码块的大小/深度的信息、指示基于二叉树的划分的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息、关于不允许基于二叉树的划分的编码块的大小/深度的信息、关于是否沿垂直方向、沿水平方向等执行基于二叉树的划分的信息等。例如,quad_split_flag指示是否要将编码块分割成四个编码块,并且binary_split_flag指示是否要将编码块分割成两个编码块。在将编码块分割成两个编码块的情况下,可以用信号发送指示编码块的划分方向是垂直方向还是水平方向的is_hor_split_flag。
139.另外,可以针对编码树单元或特定编码单元获得以下信息:所述信息关于允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量。可以以编码树单元或编码单元为单位对信息进行编码,并且可以通过比特流将该信息传输至解码器。
140.例如,可以通过比特流对指示允许二叉树划分的最大深度的语法“max_binary_depth_idx_minus1”进行编码/解码。在这种情况下,max_binary_depth_idx_minus1+1可以指示允许二叉树划分的最大深度。
141.参照图7中所示的示例,在图7中,已经针对深度为2的编码单元和深度为3的编码单元执行了二叉树划分。因此,可以通过比特流对指示编码树单元中的二叉树划分已经被执行的次数(即,2次)的信息、指示在编码树单元中已经允许二叉树划分的最大深度(即,深度3)或在编码树单元中已经执行二叉树划分的深度的数量(即,2个(深度2和深度3))的信息中的至少之一进行编码/解码。
142.作为另一示例,可以针对每个序列或每个片获得关于允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量的信息中的至少之一。例如,该信息可以以序列、图片或片单元为单位进行编码,并且通过比特流进行传输。因此,第一片中的二叉树划分的次数、第一片中允许二叉树划分的最大深度或第一片中执行二叉树划分的深度的数量中的至少之一可以与第二片不同。例如,在第一片中,可以仅针对一个深度允许二叉树划分,而在第二片中,可以针对两个深度允许二叉树划分。
143.作为另一示例,可以根据片或图片的时间水平标识符(temporalid)不同地设置允许二叉树划分的次数、允许二叉树划分的深度或允许二叉树划分的深度的数量。此处,时间水平标识符(temporalid)用于识别具有视图、空间、时间或质量中的至少之一的可扩展性的多个视频层中的每一个。
144.如图4中所示,可以基于四叉树将划分深度(拆分深度)为k的第一编码块300划分成多个第二编码块。例如,第二编码块310至340可以是具有第一编码块的一半宽度和一半高度的正方形块,并且第二编码块的划分深度可以增加至k+1。
145.划分深度为k+1的第二编码块310可以被划分成划分深度为k+2的多个第三编码块。可以通过依赖于划分方法选择性地使用四叉树和二叉树中的之一来执行第二编码块310的划分。此处,可以基于指示基于四叉树划分的信息和指示基于二叉树划分的信息中的
至少之一来确定划分方法。
146.在基于四叉树对第二编码块310进行划分时,可以将第二编码块310划分成具有第二编码块的一半宽度和一半高度的四个第三编码块310a,并且第三编码块310a的划分深度可以增加至k+2。相比之下,在基于二叉树对第二编码块310进行划分时,可以将第二编码块310划分成两个第三编码块。此处,两个第三编码块中的每一个可以是具有第二编码块的一半宽度和一半高度中的一者的非正方形块,并且划分深度可以增加至k+2。可以依赖于划分方向将第二编码块确定为水平方向或垂直方向的非正方形块,并且可以基于关于是沿垂直方向还是沿水平方向执行基于二叉树的划分的信息来确定划分方向。
147.同时,第二编码块310可以被确定为不再基于四叉树或二叉树进行划分的叶编码块。在这种情况下,叶编码块可以被用作预测块或变换块。
148.类似于第二编码块310的划分,第三编码块310a可以被确定为叶编码块,或者可以基于四叉树或二叉树被进一步划分。
149.同时,可以基于二叉树将基于二叉树划分的第三编码块310b进一步划分成垂直方向的编码块310b-2或水平方向的编码块310b-3,并且相关编码块的划分深度可以增加至k+3。替选地,第三编码块310b可以被确定为不再基于二叉树进行划分的叶编码块310b-1。在这种情况下,编码块310b-1可以被用作预测块或变换块。然而,可以基于以下信息中的至少之一来限制性地执行上述划分处理:关于允许基于四叉树的划分的编码块的大小/深度的信息、关于允许基于二叉树的划分的编码块的大小/深度的信息以及关于不允许基于二叉树的划分的编码块的大小/深度的信息。
150.表示编码块的大小的候选的数量可以被限制为预定数量,或者预定单元中的编码块的大小可以具有固定值。作为示例,序列或图片中的编码块的大小可以被限制为具有256
×
256、128
×
128或32
×
32。可以通过序列头或图片头来用信号发送指示序列中或图片中的编码块的大小的信息。
151.作为基于四叉树和二叉树的划分的结果,编码单元可以被表示为任意大小的正方形或矩形形状。
152.作为基于四叉树和二叉树的分割的结果,可以将不被进一步划分的编码块用作预测块或变换块。也就是说,在基于四叉树和二叉树的qtbt划分方法中,编码块可以变为预测块,并且预测块可以变为变换块。例如,在使用qtbt划分方法时,可以以编码块为单位生成预测图像,并且以编码块为单位变换残差信号,该残差信号是原始图像与预测图像之间的差。此处,以编码块为单位生成预测图像可以意味着针对编码块确定运动信息或者针对编码块确定帧内预测模式。因此,可以使用跳过模式、帧内预测或帧间预测中的至少一者来对编码块进行编码。
153.作为另一示例,还可以通过分割编码块来使用大小小于编码块的预测块或变换块。
154.在qtbt划分方法中,可以设置在bt中仅允许对称划分。然而,如果仅允许对称二叉划分,即使在块边界处分割对象和背景也仅允许对称二叉划分,则可能会降低编码效率。因此,在本发明中,提出了一种非对称地划分编码块的方法,以提高编码效率。
155.非对称二叉树划分表示将编码块分割成两个较小的编码块。作为非对称二叉树划分的结果,编码块可以被分割成非对称形式的两个编码块。为了便于说明,在以下实施方式
中,将编码块分割成对称形式的两个划分将被称作二叉树划分(或二叉树划分),并且将编码块分割成非对称形式的两个划分将被称作非对称二叉树划分(或非对称二叉树划分)。
156.图8示出了基于非对称二叉树划分的编码块的划分类型。可以将2n
×
2n的编码块分割成宽度比为n:(1-n)的两个编码块或者高度比为n:(1-n)的两个编码块。其中n可以表示大于0且小于1的实数。
157.在图8中示出:通过将非对称二叉树划分应用于编码块来生成宽度比为1:3或3:1或者高度比为1:3或3:1的两个编码块。
158.具体地,当在垂直方向上划分w
×
h大小的编码块时,可以生成宽度为1/4w的左侧划分和宽度为3/4w的右侧划分。如上所述,其中左侧划分的宽度小于右侧划分的宽度的划分类型可以被称作nl
×
2n二叉划分。
159.当在垂直方向上划分w
×
h大小的编码块时,可以生成宽度为3/4w的左侧划分和宽度为1/4w的右侧划分。如上所述,其中右侧划分的宽度小于左侧划分的宽度的划分类型可以被称作nr
×
2n二叉划分。
160.当在水平方向上划分w
×
h大小的编码块时,可以生成高度为1/4h的上部划分和高度为3/4h的下部划分。如上所述,其中上部划分的高度小于下部划分的高度的划分类型可以被称作2n
×
nu二叉划分。
161.当在水平方向上划分w
×
h大小的编码块时,可以生成高度为3/4h的上部划分和高度为1/4h的下部划分。如上所述,其中下部划分的高度小于上部划分的高度的划分类型可以被称作2n
×
nd二叉划分。
162.在图8中,示出了两个编码块之间的宽度比或高度比是1:3或3:1。然而,通过非对称二叉树划分生成的两个编码块之间的宽度比或高度比不限于此。编码块可以被划分成具有与图8中示出的宽度比或高度比不同的宽度比或不同高度比的两个编码块。
163.在使用非对称二叉树划分时,可以基于经由比特流用信号发送的信息来确定编码块的非对称二叉划分类型。例如,可以基于指示编码块的划分方向的信息和指示通过分割编码块生成的第一划分是否具有比第二划分的大小更小的大小的信息来确定编码块的划分类型。
164.指示编码块的划分方向的信息可以是指示编码块是在垂直方向上被划分还是在水平方向上被划分的1比特的标志。例如,hor_binary_flag可以指示编码块是否在水平方向上被划分。如果hor_binary_flag的值是1,则其可以指示编码块在水平方向上被划分,并且如果hor_binary_flag的值是0,则其可以指示编码块在垂直方向上被划分。替选地,可以使用指示编码块是否在垂直方向上被划分的ver_binary_flag。
165.指示第一划分是否具有比第二划分的大小更小的大小的信息可以是1比特的标志。例如,is_left_above_small_part_flag可以指示通过分割编码块而生成的左侧划分或上部划分的大小是否小于右侧划分或下部划分的大小。如果is_left_above_small_part_flag的值为1,则其意味着左侧划分或上部划分的大小小于右侧划分或下部划分的大小。如果is_left_above_small_part_flag的值为0,则其意味着左侧划分或上部划分的大小大于右侧划分或下部划分的大小。替选地,可以使用指示右侧划分或下部划分的大小是否小于左侧划分或上部划分的大小的is_right_bottom_small_part_flag。
166.替选地,可以通过使用指示第一划分与第二划分之间的宽度比、高度比或面积比
的信息来确定第一划分的大小和第二划分的大小。
167.在hor_binary_flag的值为0且is_left_above_small_part_flag的值为1时,其可以表示nl
×
2n二叉划分,并且在hor_binary_flag的值为0且is_left_above_small_part_flag的值为0时,其可以表示nr
×
2n二叉划分。另外,在hor_binary_flag的值为1且is_left_above_small_part_flag的值为1时,其可以表示2n
×
nu二叉划分,并且在hor_binary_flag的值为1且is_left_above_small_part_flag的值为0时,其可以表示2n
×
nd二叉划分。
168.作为另一示例,编码块的非对称二叉划分类型可以通过指示编码块的划分类型的索引信息来确定。此处,索引信息是要通过比特流用信号发送的信息,并且可以以固定长度(即,固定的比特数)编码,或者可以以可变长度编码。例如,下表1示出了针对每个非对称二叉划分的划分索引。
169.[表1]
[0170] 非对称划分索引二进制化nl
×
2n00nr
×
2n1102n
×
nu21002n
×
nd3111
[0171]
可以根据qtbt划分方法使用非对称二叉树划分。例如,如果四叉树划分或二叉树划分不再适用于编码块,则可以确定是否将非对称二叉树划分应用于编码块。此处,可以通过经由比特流用信号发送的信息来确定是否将非对称二叉树划分应用于编码块。例如,该信息可以是1比特标志'asymmetric_binary_tree_flag',并且基于该标志,可以确定是否要将非对称二叉树划分应用于编码块。
[0172]
替选地,在确定编码块被划分成两个块时,可以确定划分类型是二叉树划分还是非对称二叉树划分。此处,可以通过经由比特流用信号发送的信息来确定编码块的划分类型是二叉树划分还是非对称二叉树划分。例如,该信息可以是1比特标志'is_asymmetric_split_flag',并且基于该标志,可以确定编码块要被划分成对称形式还是非对称形式。
[0173]
作为另一示例,分配给对称类型二叉划分和非对称类型二叉划分的索引可以是不同的,并且可以基于索引信息来确定编码块要以对称类型还是非对称类型划分。例如,表2示出了其中将不同的索引分配给对称二叉类型划分和非对称二叉类型划分的示例。
[0174]
[表2]
[0175] 二叉划分索引二进制化2n
×
n(沿水平方向的二叉划分)00n
×
2n(沿垂直方向的二叉划分)110nl
×
2n2110nr
×
2n311102n
×
nu4111102n
×
nd511111
[0176]
可以通过四叉树划分、二叉树划分或非对称二叉树划分将编码树块或编码块分割成多个编码块。例如,图8示出了其中使用qtbt和非对称二叉树划分将编码块分割成多个编
码块的示例。参照图9,可以看出,分别在第一个图中的深度2划分、第二个图中的深度3划分和第三个图中的深度3划分中执行非对称二叉树划分。
[0177]
可以限制不再对通过非对称二叉树划分而分割的编码块进行分割。例如,对于通过非对称二叉树划分生成的编码块,可以不对与四叉树、二叉树或非对称二叉树有关的信息进行编码/解码。也就是说,对于通过非对称二叉树划分生成的编码块,可以省略指示是否应用四叉树划分的标志、指示是否应用二叉树划分的标志、指示是否应用非对称二叉树划分的标志、指示二叉树划分或非对称二叉树划分的方向的标志、或者指示非对称二叉划分的索引信息等。
[0178]
作为另一示例,可以根据是否允许qtbt来确定是否允许二叉树划分。例如,在不使用基于qtbt的划分方法的图片或片中,可以限制不使用非对称二叉树划分。
[0179]
可以以块、片或图片为单位对指示是否允许非对称二叉树划分的信息进行编码并用信号发送该信息。此处,指示是否允许非对称二叉树划分的信息可以是1比特的标志。例如,如果is_used_asymmetric_qtbt_enabled_flag的值是0,则其可以指示不使用非对称二叉树划分。在在图片或片中不使用二叉树划分的情况下,也可以将is_used_asymmetric_qtbt_enabled_flag设置为0而不用信号进行发送。
[0180]
还可以基于编码块的大小、形状、划分深度或划分类型来确定编码块中允许的划分类型。例如,在通过四叉树划分生成的编码块和通过二叉树划分生成的编码块中允许的划分类型、划分形状或划分数目中的至少一个可以彼此不同。
[0181]
例如,如果通过四叉树划分来生成编码块,则对于编码块可以允许所有四叉树划分、二叉树划分和非对称二叉树划分。也就是说,如果基于四叉树划分来生成编码块,则可以将图10中示出的所有划分类型应用于编码块。例如,2n
×
2n划分可以表示编码块不被进一步分割的情况,n
×
n可以表示用四叉树划分编码块的情况,以及n
×
2n和2n
×
n可以表示用二叉树划分编码块的情况。另外,nl
×
2n、nr
×
2n、2n
×
nu和2n
×
nd可以表示用非对称二叉树划分编码块的情况。
[0182]
另一方面,在通过二叉树划分生成编码块时,对于编码块可能不允许使用非对称二叉树划分。也就是说,在基于二叉树划分生成编码块时,可以限制不将在图10示出的划分类型中的非对称划分类型(nl
×
2n、nr
×
2n、2n
×
nu、2n
×
nd)应用于编码块。
[0183]
如以上示例中所描述的,可以通过至少一条垂直线或水平线来递归地分割编码单元(或编码树单元)。例如,可以概括为,四叉树划分是使用水平线和垂直线来分割编码块的方法,并且二叉树划分是使用水平线或垂直线来分割编码块的方法。基于四叉树划分和二叉树划分的编码块的划分类型不限于图4至图10中示出的示例,并且可以使用除示出的类型之外的扩展划分类型。也就是说,可以用与图4和图10中示出的类型不同的类型来递归地分割编码块。在下文中,将对基于四叉树划分和二叉树划分的编码块的各种划分类型进行描述。
[0184]
在当前块被四叉树划分的情况下,水平线或垂直线中的至少一者可以非对称地分割编码块。此处,非对称可以意指通过水平线分割的块的高度不相同,或者通过垂直线分割的块的宽度不相同。例如,水平线可以将编码块分割成非对称形状,而垂直线将编码块分割成对称形状,或者水平线可以将编码块分割成对称形状,而垂直线将编码块分割成非对称形状。替选地,水平线和垂直线二者都可以非对称地分割编码块。
[0185]
图11是示出编码块的四叉树划分类型的图。在图11中,第一示例示出了其中水平线和垂直线二者都用于对称划分的示例。第二示例和第三示例示出了其中水平线用于对称划分而垂直线用于非对称划分的示例。第四示例和第五示例示出了其中垂直线用于对称划分而水平线用于非对称划分的示例。
[0186]
为了指定编码块的划分类型,可以对与编码块的划分类型有关的信息进行编码。此处,该信息可以包括指示编码块的划分类型是对称还是非对称的第一指示符。该第一指示符可以以块为单位进行编码,或者可以针对每条垂直线或每条水平线对该第一指示符进行编码。例如,第一指示符可以包括指示是否将垂直线用于对称划分的信息和指示是否将水平线用于对称划分的信息。
[0187]
替选地,可以仅针对垂直线或水平线来对第一指示符进行编码,并且可以通过第一指示符依赖地得到针对其第一指示符未被编码的另一条线的划分类型。例如,针对其第一指示符未被编码的另一条线的划分类型可以具有与第一指示符的值相反的值。也就是说,如果第一指示符指示将垂直线用于非对称划分,则与第一指示符相反地可以设置使用水平线进行对称划分。
[0188]
在第一指示符指示非对称划分的情况下,还可以针对垂直线或水平线进一步对第二指示符进行编码。此处,第二指示符可以指示以下中的至少之一:用于非对称划分的垂直线或水平线的位置或者通过垂直线或水平线分割的块之间的比率。
[0189]
可以使用多条垂直线或多条水平线来执行四叉树划分。例如,还可以通过对一条或更多条垂直线或者一条或更多条水平线中的至少一者进行组合来将编码块分割成四个块。
[0190]
图12是示出通过组合多条垂直线/水平线和一条水平线/垂直线来分割编码块的示例的图。
[0191]
参照图12,通过以下方式来执行四叉树划分:通过两条垂直线或两条水平线将编码块分割成三个块,然后将三个经分割的块中的一个分割成两个块。此时,如图12示出的示例,可以通过水平线或垂直线来对通过两条垂直线或两条水平线分割的块中的位于中央的块进行分割。还可以通过使用水平线或垂直线来分割位于编码块一侧的块。替选地,可以通过比特流用信号发送用于指定三个划分中要被分割的划分的信息(例如,划分索引)。
[0192]
可以使用水平线或垂直线中的至少一者来非对称地分割编码块,并且可以使用其他线来对称地分割编码块。例如,可以使用多条垂直线或多条水平线将编码块分割成对称形状,或者可以使用一条水平线或一条垂直线将编码块分割成对称形状。替选地,水平线和垂直线都可以用于将编码块分割成对称形状,或者可以用于将编码块分割成非对称形状。
[0193]
在组合多条垂直线/水平线和一条水平线/一条垂直线时,编码块可以被分割成由至少两个不同大小组成的四个划分(即,四个编码块)。将编码块分割成具有至少两个不同大小的四个划分的方法可以被称作三型(triple type)非对称四叉树划分(三型非对称四叉树cu划分)。
[0194]
可以基于上述第一指示符或第二指示符中的至少一个来对关于三型非对称四叉树划分的信息进行编码。例如,第一指示符可以指示编码块的划分类型是对称的还是非对称的。第一指示符可以以块为单位进行编码,或者可以分别针对垂直线或水平线对第一指示符进行编码。例如,第一指示符可以包括指示是否将一条或更多条垂直线用于对称划分
的信息以及指示是否将一条或更多条水平线用于对称划分的信息。
[0195]
替选地,可以仅针对垂直线或水平线来对第一指示符进行编码,并且可以通过第一指示符得到针对其第一指示符未被编码的另一条线的划分类型。
[0196]
在第一指示符指示非对称划分的情况下,还可以针对垂直线或水平线进一步对第二指示符进行编码。此处,第二指示符可以指示以下中的至少之一:用于非对称划分的垂直线或水平线的位置或者通过垂直线或水平线分割的块之间的比率。
[0197]
可以使用其中编码块被分割成矩形形状的划分和非矩形形状的划分的二叉树划分方法。其中将编码块递归地分割成矩形块和非矩形块的二叉树划分方法可以被称作多边形二叉树划分(多边形二叉树cu划分)。
[0198]
图13是示出根据多边形二叉树划分的划分类型的图。
[0199]
如在图13中示出的示例中那样,在基于多边形二叉树划分来分割编码块时,编码块可以被分割成正方形形状的划分和多边形形状的划分。
[0200]
可以基于指定划分类型的索引来确定编码块的划分类型。例如,可以基于指示图13中示出的poly 0至poly 3中的任何一个的索引信息来确定编码块的划分类型。
[0201]
替选地,可以基于指定正方形块在编码块中的位置的信息来确定编码块的划分类型。例如,在位置信息指示编码块中的正方形块相对于编码块的中央位于左上方的情况下,可以将编码块的划分类型确定为图13中示出的poly 0。
[0202]
还可以通过合并多个先前分割的编码块来生成多边形划分。例如,在2n
×
2n类型的编码块被分割成n
×
n类型的四个子编码块的情况下,可以通过将四个子编码块中的任何一个和与该子编码块相邻的子编码块合并来生成多边形类型划分。替选地,在2n
×
2n类型的编码块被分割成n
×
n类型的两个子编码块和2n
×
n类型或n
×
2n类型的一个子编码块的情况下,可以通过将n
×
n类型的子编码块与2n
×
n或n
×
2n类型的子编码块合并来生成多边形类型划分。
[0203]
在基于多边形二叉树划分来分割当前编码块时,可以用信号发送指示当前编码块的划分类型的索引或指示正方形块在当前编码块中的位置的信息,或者可以用信号发送用于构造当前编码块中的多边形形状的划分的信息。此处,用于构造多边形形状的划分的信息可以包括以下信息中的至少之一:指示经分割的块是否要与相邻块合并的信息、关于块的位置和/或要合并的块的数量的信息。可以根据特性通过视频参数集、序列参数集、图片参数集、片头或块级别中的至少一者来用信号发送用于指定划分类型的信息。
[0204]
可以对基于多边形二叉树划分生成的经分割的编码块进行限制,以不被进一步分割。替选地,对于基于多边形二叉树划分生成的经分割的编码块,可以仅允许特定类型的划分。
[0205]
可以通过视频参数集、序列参数集、图片参数集、片头或块级别中的至少一个来用信号发送关于是否允许多边形二叉树划分的信息。例如,通过序列头,可以用信号发送指示是否允许多边形二叉树划分的语法isusepolygonbinarytreeflag。如果isusepolygonbinarytreeflag等于1,则可以基于多边形二叉树划分来分割当前序列中的编码块。
[0206]
可以根据是否要使用二叉树划分来确定是否要使用多边形二叉树划分。例如,如果不允许二叉树划分(例如,如果isusebinarytreeflag为0),则可能不允许多边形二叉树
划分。另一方面,如果允许二叉树划分,则可以根据指示是否允许多边形二叉树划分的语法isusepolygonbinarytreeflag来确定是否要使用多边形二叉树划分。
[0207]
可以根据划分的位置来确定通过多边形二叉树划分生成的划分的划分索引。例如,包括预定位置的划分可以具有在不包括预定位置的划分之前的划分索引。例如,如在图13中示出的示例中那样,可以设置:包括编码块的左上样本的位置的划分可以具有划分索引0,并且其他划分可以具有划分索引1。替选地,可以根据划分的大小确定每个划分的划分索引。
[0208]
在通过多边形二叉树划分来分割编码块的情况下,每个划分的编码/解码顺序可以遵循划分索引。也就是说,在首先对划分0进行编码之后,在下一顺序中可以对划分1进行编码。替选地,可以对划分0和划分1并行进行编码/解码。
[0209]
此时,在对多边形划分执行预测的情况下,可以将多边形划分分割成子划分,并且可以以子划分为单位执行预测。
[0210]
图14是示出将多边形划分分割成子划分的示例的图。
[0211]
在对多边形划分执行帧内预测的情况下,可以将多边形划分分割成矩形形状的子块,如图14示出的示例中那样。可以将多边形划分分割成正方形形状的划分和非正方形形状的划分,如图14示出的示例中那样,或者尽管未在图中示出,但可以将多边形划分分割成正方形形状的划分。
[0212]
在多边形划分被分割成多个划分时,可以对每个经分割的划分执行帧内预测。例如,在图14示出的示例中,可以对pred 0和pred 1中的每一个执行帧内预测。
[0213]
虽然可以不同地确定pred 0和pred 1的帧内预测模式,但是可以基于多边形划分或编码块得到每个划分的参考样本。替选地,可以基于pred 0的帧内预测模式来得到pred 1的帧内预测模式,或者可以基于pred 1的帧内预测模式来得到pred 0的帧内预测模式。
[0214]
可以将上述非对称四叉树划分、多边形类型二叉树划分等定义为四叉树划分和二叉树划分的扩展类型。可以在序列单元、图片单元、片单元或块级别中确定是否要使用扩展划分类型,或者可以根据是否允许四叉树划分或是否允许二叉树划分来确定是否要使用扩展划分类型。
[0215]
在以上示例中,假设编码块被分割成四个划分或两个划分。然而,还可以将编码块递归地分割成更多数量的划分或更少数量的划分。例如,可以调整垂直线或水平线的数量,并且可以仅使用垂直线(一条或更多条)或水平线(一条或更多条)将编码块分割成两个划分或三个划分。例如,如果使用一条水平线或一条垂直线,则可以将编码块分割成两个划分。此时,根据每个划分的大小是否相同,可以确定编码块的划分类型是非对称二叉划分还是对称二叉划分。作为另一示例,可以通过使用两条垂直线或两条水平线将编码块划分成三个划分。使用两条垂直线或两条水平线将编码块分割成三个划分可以被称作三叉树划分。
[0216]
图15示出了基于三叉树划分编码块的示例。如在图15中示出的示例中那样,在通过两条水平线或两条垂直线分割编码块时,可以生成三个划分。
[0217]
通过三叉树划分生成的编码块可以进一步被分割成子编码块,或者可以进一步被分割成更小的单元以用于预测或变换。
[0218]
在另一示例中,可以限制通过三叉树划分生成的编码块,以不被进一步分割。替选
地,可以限制通过三叉树划分生成的编码块,使得不会应用四叉树划分、三叉树划分或二叉树划分中的一些。
[0219]
根据编码块的大小或形状,可以确定是否允许三叉树划分。例如,在编码块的大小是m
×
n的情况下,可以限制地允许三叉树划分。此处,n和m是自然数,并且n和m可以相同,或者可以彼此相同。例如,n和m可以具有4、8、16、32、64或更多的值。
[0220]
可以对指示允许三叉树划分的块的大小或形状的信息进行编码并通过比特流发送该信息。此时,该信息可以表示最大值或最小值。替选地,允许三叉树划分的块的大小或形状可以具有在编码器/解码器中预先约定的固定值。
[0221]
可以以图片、片或块为单位用信号发送指示是否允许三叉树划分的信息。只有在信息指示允许对预定单元进行三叉树划分时,才可以将指示是否应用三叉树划分的信息用信号发送至包括在预定单元中的块。
[0222]
指示是否要应用三叉树划分的信息可以是1比特的标志。例如,triple_split_flag可以指示是否要基于三叉树来分割当前编码块。在基于三叉树来分割当前编码块时,可以另外用信号发送指示划分方向的信息或指示每个划分的大小/比率的信息。指示划分方向的信息可以用于确定是否要通过两条水平线分割编码块,或者是否要通过两条垂直线分割编码块。
[0223]
在基于三叉树分割编码块时,包括在编码块中的划分可以根据编码块的大小或形状来共享运动信息、合并候选、参考样本或帧内预测模式。例如,如果基于三叉树划分来分割当前编码块并且当前编码块的大小或形状满足预定条件,则当前编码块中的编码块可以共享用于帧间预测的空间相邻块候选或时间相邻块候选、参考样本或用于帧内预测的帧内预测模式中的至少之一。替选地,仅当前编码块中的一些编码块可以共享该信息,并且其余的编码块不可以共享该信息。
[0224]
使用四叉树划分、二叉树划分或三叉树划分中的至少一者来分割编码块的方法可以称作多叉树划分(或多叉树划分)。根据多叉树划分方法,可以使用四叉树划分、二叉树划分或三叉树划分中的至少一者来将编码单元分割成多个划分。可以将通过分割编码块而生成的每个划分定义为编码单元。
[0225]
图16和图17示出了根据多叉树划分方法的编码块的划分类型。在图16中示出了根据四叉树划分、二叉划分和三叉树划分的九种划分类型。
[0226]
如果多边形类型二叉树划分包括在多叉树划分的类别中,则可以基于四叉树划分、二叉树划分、三叉树划分和多边形类型二叉树中的至少一个将编码块分割成多个划分。因此,编码块可以具有如图17示出的示例中的划分类型。
[0227]
根据多叉树划分方法,仅在图16或图17的示例中示出的预定义的划分类型可以被设置为可用。然而,预定义的划分类型不限于图16或图17中示出的示例。
[0228]
根据多叉树划分方法,可以以序列、图片或片为单位来确定是否使用四叉树划分、二叉树划分和三叉树划分中的每一个。例如,可以基于指示是否要使用每个划分方法的标志信息来确定是否使用四叉树划分、二叉树划分和三叉树划分。根据该确定,可以使用所有四叉树划分、二叉树划分和三叉树划分来划分包括在预定单元(即序列、图片、片等)中的块,或者可以使用四叉树划分、二叉树划分和三叉树划分中的一者或两者来划分包括在预定单元中的块。
[0229]
替选地,可以默认使用四叉树划分、二叉树划分和三叉树划分中的一些,并且可以选择性地确定是否使用其余划分方法。例如,默认使用四叉树划分,但是可以选择性地确定是否使用二叉树划分或三叉树划分。或者,默认使用四叉树划分和三叉树划分,但是可以选择性地确定是否使用二叉树划分。或者,默认使用四叉树划分和二叉树划分,但是可以选择性地确定是否使用三叉树划分。
[0230]
指示是否使用二叉树划分方法或三叉树划分方法的指示符可以是1比特的标志。例如,isusebinarytreeflag指示是否要使用二叉树划分,并且isusetripletreeflag指示是否要使用三叉树划分。
[0231]
可以通过序列头来用信号发送指示符。例如,如果isusebinarytreeflag的值是1,则可以将二叉树划分用于当前序列中的编码单元。替选地,如果isusetripletreeflag的值是1,则可以将三叉树划分用于当前序列中的编码单元。除了以上示例之外,还可以经由视频参数集、图片参数集、片头或块级别来用信号发送指示符。
[0232]
可以限制当前编码块的划分类型,以不生成比上节点的划分类型数量更多的划分。例如,如果通过三叉树划分生成当前编码块,则对于当前编码块仅允许三叉树划分或二叉树划分,并且对于当前编码块不允许四叉树划分。
[0233]
另外,可以根据作为划分的结果而生成的划分的数目来对指示是否要分割当前编码块的信息进行分层地编码/解码。例如,对指示是否要基于四叉树来分割当前编码块的信息进行编码/解码,并且如果确定不基于四叉树来分割当前块,则可以对是否基于三叉树进行分割的信息或者是否基于二叉树进行分割的信息进行编码/解码。
[0234]
替代上述示例,还可以通过组合多条水平线和多条垂直线来将编码块分割成四个或更多个块。
[0235]
图18是示出根据本发明的实施方式的编码块的划分过程的流程图。
[0236]
首先,可以确定是否对当前块执行四叉树划分s1810。如果确定要对当前块执行四叉树划分,则可以将当前块分割成四个编码块s1820。
[0237]
在将当前块分割成四个块时,可以另外执行图19的处理以确定当前块的划分类型。
[0238]
首先,在将当前块分割成四个编码块时,可以确定是否将三型非对称四叉树划分应用于当前块s1910。如果将三型非对称四叉树划分应用于当前块,则可以基于分割当前块的垂直线/水平线的数目或位置来确定当前块的划分类型s1920。例如,如果将三型非对称四叉树划分应用于当前块,则可以通过两条垂直线和一条水平线或者两条水平线和一条垂直线将当前块分割成四个划分。
[0239]
如果不应用三型非对称四叉树划分,则可以确定当前块的划分类型是正方形类型还是非正方形类型s1930。这里,可以基于对当前块进行分割的垂直线和水平线中的至少一者是否对称地分割当前块来确定当前块的划分类型是正方形类型还是非正方形类型。如果当前块被分割成非正方形类型,则可以基于对当前块进行分割的垂直线/水平线的位置来确定当前块的划分类型s1940。
[0240]
另一方面,如果确定对于当前块不允许进行四叉树划分,则可以确定是否对当前块执行三叉树划分或二叉树划分s1830。
[0241]
如果确定对当前块执行三叉树划分或二叉树划分,则可以确定当前块的划分类
型。此时,可以基于指示当前块的划分方向的信息或指定划分类型的索引信息中的至少一个来确定当前块的三叉树划分类型或二叉树划分类型。
[0242]
根据所确定的三叉树或二叉划分类型,可以将当前块分割成三个块或两个块s1840。
[0243]
在上述示例中,示出了在确定是否应用四叉树划分之后选择性地确定是否应用三叉树划分或二叉树划分,但是本发明不限于所示出的实施方式。与所示出的示例不同,还可以分层地确定是否应用三叉树划分或是否应用二叉树划分。例如,可以预先确定是否要基于三叉树来分割当前块,并且如果确定不基于三叉树来分割当前块,则执行是否要基于二叉树分割当前块的确定。替选地,可以优先确定是否要基于二叉树分割当前块,并且如果确定不基于二叉树分割当前块,则执行是否要基于三叉树分割当前块的确定。
[0244]
在将当前块分割成两个块时,可以另外执行图20的处理以确定当前块的划分类型。
[0245]
首先,在将当前块分割成两个编码块时,可以确定是否将多边形二叉树划分应用于当前块s2010。如果将多边形二叉树划分应用于当前块,则可以基于指示当前块的划分类型的索引或矩形形状的划分的位置来确定当前块的划分类型s2020。例如,如果将多边形二叉树划分应用于当前块,则可以将当前块划分成一个矩形形状的划分和一个非矩形形状的划分。
[0246]
如果不应用多边形二叉树划分,则可以确定当前块的划分类型是正方形类型还是非正方形类型s2030。此处,可以通过对当前块进行分割的垂直线或水平线中的至少一个是否将当前块分割成对称形式来确定当前块的划分类型是正方形类型还是非正方形类型。如果当前块被分割成非正方形块,则可以基于分割当前块的垂直线或水平线的位置来确定当前块的划分类型s2040。
[0247]
作为图20中示出的示例,还可以顺序地确定是否对当前块执行二叉树划分以及是否对当前块执行非对称二叉树划分。例如,可以仅在确定不允许对当前块进行二叉树划分的情况下确定是否执行非对称二叉树划分。
[0248]
已经对通过四叉树划分、二叉树划分或三叉树划分来递归地分割编码块的情况进行了以上描述。在四叉树划分、二叉树划分或三叉树划分下,编码块和预测块以及/或者编码块和变换块可以具有相同的大小。在这种情况下,可以以编码块为单位生成预测图像,或者可以以编码块为单位执行变换/量化。
[0249]
替选地,还可以将预测块或编码块中的至少一者设置成具有与编码块不同的大小和/或形状。例如,可以通过分割编码块来生成具有比编码块小的大小的预测块或变换块。可以将指示四叉树划分、二叉树划分、三叉树划分或上述划分类型的划分索引用于生成具有比编码块小的大小的预测块或变换块。所描述的划分方法可以用于递归地分割预测块或变换块。
[0250]
作为另一示例,可以合并两个或更多个编码单元以生成比编码块大的预测块或变换块。也就是说,可以通过将多个编码块中的特定编码块或任意编码块与至少一个相邻块合并来生成预测块或变换块。此处,相邻块是与特定编码块或任意编码块相邻的编码块,并且包括左侧编码块、上部编码块、右侧编码块、下部编码块或与编码块的一个角相邻的编码块中的至少之一。
[0251]
为了便于说明,将合并编码块以生成预测块的方法称为“预测单元合并”,并且将合并编码块以生成预测块的方法称为“变换单元合并”。
[0252]
另外,将合并的编码块之一称为“当前编码块”。当前编码块可以表示要合并的编码块中的任意编码块、特定位置处的编码块,或者当前要进行编码/解码的编码块。例如,当前编码块可以被理解为当前要进行编码/解码的编码块、在要合并的编码块中具有第一编码/解码顺序的块、具有特定划分索引的块或者在要合并的块中的特定位置处的块。(例如,当要合并三个编码块时,位于三个编码块中间的编码块)。
[0253]
将主要针对“预测单元合并”来描述下面的实施方式,但是“变换单元合并”也可以基于相同的原理来实现。可以通过在图1和图2示出的部件中的图片划分模块、预测模块(例如,帧间预测模块或帧内预测模块)或变换模块(或逆变换模块)中的至少一个来实现下面描述的预测单元合并或变换单元合并。
[0254]
图21至图23是示出通过合并两个或更多个编码块来生成预测块的示例的图。
[0255]
如在图21中示出的示例中那样,可以通过合并两个编码块来生成预测块。替选地,如在图22和图23中示出的示例中那样,还可以通过合并两个或更多个编码块来生成预测块。
[0256]
通过合并多个编码块而生成的预测块可以具有如图21示出的示例中的矩形形状,或者可以具有如图22和图23示出的示例中的多边形形状。
[0257]
在这种情况下,还可以对通过合并多个编码块而生成的预测块进行限制以具有特定形状。例如,作为合并多个编码块的结果而生成的预测块可以允许仅具有正方形形状和/或矩形形状。
[0258]
可以基于编码块的编码参数自适应地执行编码块之间的合并。也就是说,基于当前编码块的编码参数和相邻编码块的编码参数,可以自适应地选择要与当前编码块合并的相邻块。此处,编码参数可以包括:关于预测模式(编码块是通过帧内预测还是帧间预测编码)、帧内预测模式(或帧内预测模式的方向)、运动信息(例如,运动矢量、参考图片索引或预测方向指示符)、划分形状、划分模式(或划分类型)、划分索引、大小/形状、量化参数、是否应用变换跳过、变换方案、变换系数是否存在、是否位于片或区块的边界等的信息。编码参数不仅意指从编码器用信号发送至解码器的信息,还意指在解码器处得到的信息。
[0259]
例如,如图21至图23示出的,可以在具有相同大小/形状的编码块之间限制地允许预测单元合并,或者可以在使用相同预测模式(例如,帧内或帧间)的编码块之间限制地允许预测单元合并。
[0260]
也就是说,如在图21至图23中示出的示例中那样,可以基于编码块的编码参数是否相互相同来执行编码块之间的合并。作为另一示例,可以基于将编码块之间的编码参数的差与预定阈值进行比较的结果来确定是否执行编码块之间的合并。例如,可以基于编码块之间的编码参数的差是否等于预定阈值、是否大于或等于预定阈值、或者是否小于或等于预定阈值来确定是否执行编码块之间的合并。此处,可以基于从编码器用信号发送至解码器的信息来确定预定阈值,或者预定阈值可以是在编码器和解码器中预先约定的值。
[0261]
替选地,通过使用编码块的编码参数来构造包括可用于与当前编码块合并的候选块的候选块列表,并且从候选块列表中选择要与当前编码块合并的至少一个编码块。例如,当生成包括可用于与当前编码块合并的相邻块的候选块列表时,可以基于标识相邻块中的
至少一个相邻块的索引信息来指定要与当前编码块合并的相邻编码块。此时,可以基于候选编码块是否具有与当前编码块相同的编码参数或者基于将编码参数的差与预定阈值进行比较的结果来确定候选编码块。
[0262]
替选地,可以基于当前编码块是否为二叉树划分的划分和/或当前编码块的划分索引来确定候选编码块。例如,如果当前编码块是通过二叉树划分生成的划分并且如果当前编码块的划分索引大于相邻编码块(即,通过二叉树划分生成的其他划分),则可以限制将与当前编码块相邻的相邻编码块用作候选编码块。
[0263]
替选地,可以基于相邻编码块的位置来确定候选编码块。例如,当在当前编码块的左侧存在多个编码块或者在当前编码块的上部侧存在多个编码块的情况下,仅多个相邻编码块中的在预定位置处的编码块(例如,上部相邻块中的最右侧编码块或左侧相邻块中的最下部编码块)可以被用作候选编码块。
[0264]
如在图21至23中示出的示例中那样,可以通过合并至少两个编码块来生成一个预测块。此时,可以根据当前编码块的位置(或划分索引)来不同地确定与该当前编码块合并的相邻编码块的位置。例如,在图22的(a)中,如果假设右下块是当前编码块,则可以通过将当前编码块与上部编码块和左侧编码块合并来生成预测块。在图22的(b)中,如果假设左下块是当前编码块,则可以通过将当前编码块与右侧编码块和上部编码块合并来生成预测块。
[0265]
替选地,在图23的(a)中,如果假设左上块是当前编码块,则可以通过将当前编码块与右侧编码块和下部编码块合并来生成预测块。在图23的(b)中,如果假设右上块是当前编码块,则可以通过将当前编码块与左侧相邻块和下部相邻块合并来生成预测块。
[0266]
图24是示出根据本发明的实施方式的预测单元合并的方法的流程图。
[0267]
参照图24,可以确定可用于与当前编码块合并的候选编码块s2410。候选编码块可以包括与当前编码块相邻的至少一个相邻块。此处,相邻块可以包括左侧编码块、上部编码块、右侧编码块、下部编码块或与当前编码块的角相邻的编码块中的至少一个。此时,可以根据当前编码块的位置或划分索引来不同地确定候选编码块的位置。
[0268]
替选地,可以通过将当前编码块的编码参数与相邻编码块的编码参数进行比较来确定当前编码块的候选编码块。
[0269]
可以指定候选编码块中的要与当前编码块合并的至少一个块s2420。此处,可以基于当前编码块和相邻编码块的编码参数的比较结果来确定要与当前块合并的候选编码块。
[0270]
替选地,可以基于从比特流用信号发送的信息(例如,索引信息)来指定候选编码块中的至少一个。
[0271]
如果指定了候选编码块中的至少一个,则可以通过将当前编码块与指定编码块合并来生成预测块s2430。
[0272]
与参照图24描述的示例不同,可以基于通过比特流用信号发送的信息来执行编码块之间的合并。例如,可以基于指示是否将当前编码块与相邻块合并的信息和/或指定要与当前编码块合并的相邻块的信息来执行编码块之间的合并。例如,可以通过使用以下中的至少一者来执行针对特定编码块的编码块的合并:指示是否将编码块与右侧编码块合并的merge_right_flag和/或指示是否将编码块与下部编码合并的merge_below_flag。此时,可以根据编码块的位置来确定是否对merge_right_flag和merge_below_flag进行编码/解
码。例如,针对位于编码树块的最右列中的编码块,可以跳过对merge_right_flag的编码/解码,并且针对位于编码树块的最下行处的编码块,可以跳过对merge_below_flag的编码/解码。
[0273]
替选地,可以使用指示是否将编码块与左侧编码块合并的merge_left_flag和/或指示是否将编码块与上部编码块合并的merge_top_flag中的至少一者来执行编码块之间的合并。
[0274]
此外,可以通过比特流用信号发送针对特定编码块的信息,并且该信息指示是否允许包括在编码块中的编码块之间的预测单元合并。
[0275]
如上所述,还可以基于与预测单元合并相同的原理来应用变换单元合并。此时,可以根据预测单元合并的结果来确定变换单元合并的结果。例如,可以将变换块的形状确定为与预测块的形状相同。
[0276]
替选地,还可以独立于预测单元合并执行变换单元合并。例如,可以基于编码块之间的第一编码参数的比较结果来执行预测单元合并,而可以基于编码块之间的与第一编码参数不同的第二编码参数的比较结果来执行变换单元合并。
[0277]
通过合并多个编码块而生成的预测块可以共享一个帧内预测模式或一个运动信息。也就是说,可以基于相同的帧内预测模式对要合并的多个编码块进行帧内预测,或者可以基于相同的运动信息(例如,运动矢量、参考图片索引或预测方向指示符中的至少一个)对要合并的多个编码块进行帧间预测。
[0278]
通过合并多个编码块而生成的变换块可以共享量化参数、变换模式或变换类型(或变换核)中的至少一者。此处,变换模式可以指示是否使用初级变换和次级变换,或者可以指示垂直变换、水平变换、2d变换或变换跳过中的至少一者。变换类型可以指示dct、dst、klt等。
[0279]
可以根据变换块的形状或大小基于子块对通过合并多个编码块而生成的变换块(下文中称为非正方形合并变换块)执行变换或量化。例如,在变换块不具有正方形形状或矩形形状的情况下,变换块可以被分割为正方形形状或矩形形状的子块,并且可以以子单元为单位执行变换。替选地,在变换块的大小大于预定义大小的情况下,可以将变换块分割为预定大小的子块,并且可以以子块为单位执行变换。子块之间的量化参数、变换模式或变换类型中的至少一者可以相互相同。
[0280]
可以以包括通过合并编码块而生成的变换块的正方形形状的块或矩形形状的块为单位执行变换。例如,如在图22或图23中示出的示例中那样,在通过合并编码块生成多边形变换块的情况下,可以基于包括多边形变换块的正方形形状的块(或矩形形状的块)来执行对多边形变换块的变换或量化。此时,可以将正方形形状的块或矩形形状的块中的与合并的变换块不对应的部分的样本值(或变换系数)设置为预定值,并且然后可以对合并的变换块执行变换。例如,可以将与合并的变换块不对应的部分的样本值(或变换系数)设置为零。
[0281]
替选地,可以根据相邻编码块的编码参数得到编码树单元或包括在预定大小/形状的编码块中的多个编码块中的任何一者的编码参数。例如,可以基于相邻块的编码参数来得到多个编码块中的当前编码块的编码参数。此时,相邻编码块的编码参数优选地与当前编码块的编码参数相同。但是,它们也可能是异构参数。例如,可以根据与当前编码块相
邻的相邻块得到当前编码块的预测模式、帧内预测模式、运动信息、变换模式或变换类型中的至少一者。相邻块的范围可以与上面在预测单元合并或变换单元合并中描述的范围相同或相似。例如,相邻块可以包括左侧相邻块、上部相邻块、右侧编码块、下部编码块或与角相邻的编码块中的至少一者。
[0282]
替选地,多个编码块可以共享编码参数。例如,多个编码块中的任何一个可以与相邻编码块共享编码参数。如上所述,在当前编码块与相邻编码块之间共享编码参数的方法可以称为“编码单元共享”。例如,如果当前编码块的预测模式是帧间预测,则可以与相邻编码块共享运动信息、变换模式或变换类型中的至少一者。替选地,在当前编码块的预测模式是帧内预测的情况下,可以与相邻编码块共享帧内预测模式、变换模式或变换类型中的至少一者。相邻块的范围可以与上面在预测单元合并或变换单元合并中描述的范围相同或相似。例如,相邻块可以包括左侧相邻块、上部相邻块、右侧编码块、下部编码块或与角相邻的编码块中的至少一者。
[0283]
图25示出了基于相邻编码块的编码参数得到当前编码块的编码参数的示例。
[0284]
如在图25中示出的示例中那样,可以基于相邻编码块(例如,左侧编码块和上部编码块中的至少一者)的预测模式来得到当前编码块的预测模式。例如,当通过帧内预测对与当前编码块相邻的所有相邻编码块进行编码时,也将当前编码块的预测模式得到为帧内预测(参见图25(a)),或者当用帧内预测对与当前编码块相邻的所有相邻编码块进行编码时,也将当前编码块的预测模式得到为帧间预测(参见图25(b))。
[0285]
不仅可以从相邻块得到预测模式,还可以得到预测信息,例如帧内预测模式和/或当前编码块的运动信息。例如,可以得到相邻编码块(例如,左侧编码块和上部相邻块)的帧内预测模式的中间值或平均值作为当前编码块的帧内预测模式。
[0286]
另外,如果左侧编码块使用变换跳过,则当前编码块可以通过与左侧编码块共享变换模式来使用变换跳过。替选地,在上部编码块的变换类型是dct ii的情况下,当前编码块可以如在上部编码块中那样使用dct ii。
[0287]
可以基于当前编码块的位置、形状或划分索引来确定是否根据相邻块的编码参数得到当前编码块的编码参数。例如,仅在当前编码块位于任意大小的编码树单元或编码块中的右下方处的情况下,可以根据相邻块的编码参数得到当前编码块的编码参数。
[0288]
替选地,可以基于与当前编码块相邻的相邻块的编码参数是否相同来确定是否根据相邻块的编码参数得到当前编码块的编码参数。例如,仅在与当前编码块相邻的相邻块的编码参数相同的情况下,才可以根据相邻块的编码参数得到当前编码块的编码参数。
[0289]
可以基于从比特流用信号发送的信息来确定是否根据相邻块的编码参数得到当前编码块的编码参数。
[0290]
在上文中,描述了诸如二叉树划分和四叉树划分的划分方法作为多叉树划分方法的示例。此外,还描述了扩展划分方法,例如非对称二叉树划分、非正方形四叉树划分和多边形二叉树划分。通过使用上述划分方法中的至少一种来划分编码块,可以生成作为编码/解码目标的预定块单元。在本文中,预定块单元可以包括编码块(在本文中,编码块是包括编码树单元(或最大编码单元)或最小编码单元中的至少一者的概念)、子编码块、预测块或变换块中的至少一者。
[0291]
可以通过水平方向的划分信息和垂直方向的划分信息来确定编码块的划分类型。
在下文中,假设基于多叉树划分来递归地分割编码块,将详细描述对关于编码块的划分类型的信息进行编码/解码的示例。
[0292]
当使用多叉树划分时,可以使用至少一条水平线或至少一条垂直线中的至少一者来分割编码块。因此,可以通过对水平方向划分信息和垂直方向划分信息中的至少一者进行编码/解码来确定编码块的划分类型。水平方向划分信息和垂直方向划分信息可以指示以下内容中的至少一者:是否允许使用多叉树划分;是否允许非对称划分;水平方向划分或垂直方向划分(或划分线)的位置;多个水平方向划分或垂直方向划分或者划分的形状(例如,宽度、高度或其比率)。
[0293]
另外,垂直方向划分信息和水平方向划分信息可以是标志类型或索引类型的信息。例如,垂直方向划分信息和水平方向划分信息可以是指示是否通过在特定位置处的垂直线或水平线来分割编码块的1比特标志,或者可以是标识在预定位置中分割编码块的垂直线或水平线的位置的索引。在以下实施方式中,假设垂直方向划分信息和水平方向划分信息是1比特的标志。
[0294]
可以考虑编码块的属性来确定是否对垂直方向划分信息和/或水平方向划分信息进行编码/解码。这里,编码块的属性可以包括:诸如块(编码块、预测块或变换块)的大小/形状的参数;是否存在残差系数;是否跳过变换;变换方案(dct或dst);预测模式;帧内预测模式;是否允许二叉树划分;是否允许三叉树划分或是否允许四叉树划分。
[0295]
图26是用于说明水平方向划分信息和垂直方向划分信息的图。
[0296]
垂直方向划分信息是指示在沿垂直方向执行划分的情况下左侧划分的长度或右侧划分的长度的标志,并且水平方向划分信息是指示在沿水平方向执行划分的情况下上部划分的高度或下部划分的高度的标志。
[0297]
例如,如在图26中示出的示例中那样,n
×
4n_part_flag、2n
×
4n_part_flag和3n
×
4n_part_flag表示垂直方向划分信息,并且4n
×
n_part_flag、4n
×
2n_part_flag和4n
×
3n_part_flag表示垂直方向划分信息。
[0298]
mn
×
4n_part_flag(其中m是诸如1、2、3等的自然数)指示通过垂直线分割的左侧划分是否具有mn
×
4n的形状,并且4n
×
mn_part_flag指示通过水平线分割的上部划分是否具有4n
×
mn的形状。
[0299]
替选地,图26中示出的垂直方向划分信息或水平方向划分信息可以指示分割编码块的垂直线或水平线的位置。例如,mn
×
4n_part_flag指示是否存在将编码块分割成mn
×
4n和(4-m)n
×
4n的垂直线,并且4n
×
mn_part_flag指示是否存在将编码块分割成4n
×
mn和4n
×
(4-m)n的水平线。
[0300]
图27至图30是示出其中通过使用水平方向划分信息和垂直方向划分信息来指定编码块的划分类型的示例的图。
[0301]
在图27中,示出了作为四叉树划分的结果,编码块被分割成具有1/2宽度和1/2高度的四个正方形子编码块。2n
×
4n_part_flag指示编码块被分割成具有1/2宽度的两个划分,并且4n
×
2n_part_flag指示编码块被分割成具有1/2高度的两个划分。因此,可以通过将2n
×
4n_part_flag和4n
×
2n_part_flag设置为1并且将其他标志(4n
×
n_part_flag、4n
×
3n_part_flag、n
×
4n_part_flag和3n
×
4n_part_flag)设置为0来指定编码块的划分类型。
[0302]
在图28中,示出了作为非正方形四叉树划分的结果,编码块被划分成诸如具有3/4宽度和1/2高度的两个编码块以及具有1/4宽度和1/2高度的两个编码块的四个非正方形子编码块。3n
×
4n_part_flag指示编码块被分割成分别具有3/4宽度和1/4宽度的两个划分,并且4n
×
2n_part_flag指示编码块被分割成具有1/2高度的两个划分。因此,可以通过将3n
×
4n_part_flag和4n
×
2n_part_flag的值设置为1并且将其他标志(4n
×
n_part_flag、4n
×
3n_part_flag、n
×
4n_part_flag和2n
×
4n_part_flag)设置为0来指定编码块的划分类型。
[0303]
在图29中,示出了作为二叉树划分的结果,编码块被分割成分别具有1/2宽度和1/2宽度的两个编码块。由于2n
×
4n_part_flag指示将编码块分割成分别具有1/2宽度和1/2宽度的两个划分,因此可以通过将2n
×
4n_part_flag的值设置为1并且将其他标志(4n
×
n_part_flag、4n
×
2n_part_flag、4n
×
3n_part_flag、n
×
4n_part_flag、n
×
4n_part_flag和3n
×
4n_part_flag)设置为0来指定编码块的划分类型。
[0304]
在图30中,示出了作为三叉树划分的结果,编码块被分割成分别具有1/4宽度、2/4宽度和1/4宽度的三个子编码块。n
×
4n_part_flag指示当编码块被分割成两个块时左侧划分的宽度是1/4,并且3n
×
4n_part_flag指示当编码块被分割成两个块时左侧划分的宽度是3/4。因此,可以通过将n
×
4n_part_flag和3n
×
4n_part_flag的值设置为1并将其他标志(4n
×
n_part_flag、4n
×
2n_part_flag、4n
×
3n_part_flag、n
×
4n_part_flag和2n
×
4n_part_flag)设置为0来指定编码块的划分类型。
[0305]
如上所述,可以通过将水平方向划分信息与垂直方向划分信息组合来表示编码块的各种划分类型。
[0306]
在图26至图30中,通过多条垂直方向划分信息和多条水平方向划分信息确定编码块的划分类型。为了使用多条划分信息——例如多条垂直方向划分信息和/或多条水平方向划分信息——来指定编码块的划分类型,可以分层地或以预定义顺序对多条划分信息进行编码/解码。
[0307]
例如,可以在对指示编码块的非对称划分的划分信息(例如,n
×
4n_part_flag、3n
×
4n_part_flag、4n
×
n_part_flag或4n
×
3n_part_flag)进行编码/解码之前,对编码块的多个划分信息中的指示对称划分的划分信息(例如,2n
×
4n_part_flag或4n
×
2n_part_flag)进行编码/解码。
[0308]
在下文中,为了便于说明,将指示编码块的对称划分的信息称为主划分信息(或主划分标志)。即,将2n
×
4n_part_flag称为垂直方向主划分信息,并且将4n
×
2n_part_flag称为水平方向主划分信息。
[0309]
多个垂直方向划分信息中,优选地在对垂直方向主划分信息进行编码/解码,并且可以根据主划分信息的值选择性地对除主划分信息之外的剩余划分信息进行编码/解码。同样,在多个水平方向划分信息中,优选地对水平方向主划分信息进行编码/解码,可以根据主划分信息的值选择性地对除主划分信息之外的剩余划分信息进行编码/解码。
[0310]
也就是说,根据垂直方向主划分信息的值,选择性地确定是否对除垂直方向主划分信息之外的剩余垂直方向划分信息进行编码/解码,并根据水平方向主划分信息的值,选择性地确定是否对除水平方向主划分信息之外的剩余水平方向划分信息进行编码/解码。
[0311]
例如,如果2n
×
4n_part_flag的值是1,则可以跳过对剩余水平方向划分信息(例
如,n
×
4n_part_flag或3n
×
4n_part_flag)的编码/解码。另一方面,如果2n
×
4n_part_flag的值是0,则可以对剩余水平方向划分(例如,n
×
4n_part_flag或3n
×
4n_part_flag)的值进行编码/解码。类似地,如果4n
×
2n_part_flag的值是1,则可以跳过对剩余垂直方向划分信息(例如,4n
×
n_part_flag或4n
×
3n_part_flag)的编码/解码。另一方面,如果4n
×
2n_part_flag的值是0,则可以对剩余垂直方向划分信息(例如,4n
×
n_part_flag或4n
×
3n_part_flag)进行编码/解码。
[0312]
可以基于主划分信息的值来得到其中省略编码/解码的划分信息的值。例如,如果2n
×
4n_part_flag的值是1,则可以将未编码的剩余水平方向划分信息(例如,n
×
4n_part_flag或3n
×
4n_part_flag)的值得到为0。同样,如果4n
×
2n_part_flag的值是1,则可以将未编码的剩余水平方向划分信息(例如,4n
×
n_part_flag或4n
×
3n_part_flag)的值得到为0。
[0313]
也就是说,根据垂直方向主划分信息的值,可以得到剩余垂直方向划分信息的值,或者根据水平方向主划分信息的值,可以得到剩余水平方向划分信息的值。
[0314]
在除了主划分信息之外的剩余划分信息之间还可以执行遵循预定义优先级的编码/解码。例如,可以在对3n
×
4n_part_flag进行编码/解码之前对n
×
4n_part_flag进行编码/解码,并且可以在对4n
×
3n_part_flag进行编码/解码之前对4n
×
n_part_flag进行编码/解码。
[0315]
还可以根据预定义的优先级确定垂直方向划分信息与水平方向划分信息之间的编码/解码顺序。例如,可以在对水平方向划分信息进行编码/解码之前对垂直方向划分信息进行编码/解码,或者可以在对垂直方向划分信息进行编码/解码之前对水平方向划分信息进行编码/解码。
[0316]
可以在编码器和解码器中预先确定或者可以根据块的属性自适应地确定划分信息之间的编码/解码的优先级。例如,根据要应用于编码块的多叉树划分类型(例如,二叉树划分、三叉树划分或四叉树划分),可以在对对称划分信息进行编码/解码之前对非对称划分信息进行编码/解码。
[0317]
当基于二叉树或三叉树来分割编码块时,可以允许仅使用水平方向划分信息或垂直方向划分信息。此时,可以对指示使用水平方向划分信息和垂直方向划分信息中的哪个的信息进行编码/解码。这里,该信息可以是1比特标志。例如,为0的标志值指示仅使用水平方向划分信息(或垂直方向划分信息),并且为1的标志值指示仅使用垂直方向划分信息(或水平方向划分信息)。
[0318]
如果基于二叉树或三叉树来分割编码块,则可以根据垂直方向划分信息的值来得到水平方向划分信息的值,或者可以根据水平方向划分信息的值来得到垂直方向划分信息的值。例如,在确定要基于二叉树或三叉树来对编码块进行划分的情况下,如果存在具有值1的垂直方向划分信息,则可以将水平方向划分信息的值得到为0。另一方面,如果存在具有值1的水平方向划分信息,则可以将垂直方向划分信息的值得到为0。
[0319]
例如,在图30示出的示例中,当确定n
×
4n_part_flag和3n
×
4n_part_flag的值是1且2n
×
4n_part_flag的值是0时,省略诸如4n
×
n_part_flag、4n
×
2n_part_flag和4n
×
3n_part_flag的水平方向划分信息的编码/解码,并且可以将其值设置为0。此时,还可以将2n
×
4n_part_flag的值设置为0,而不对2n
×
4n_part_flag的值进行编码/解码。
[0320]
尽管未在附图中示出,但是当假设要基于三叉树来划分编码块时,并且当确定4n
×
n_part_flag和4n
×
3n_part_flag的值是1且4n
×
2n_part_flag的值是0时,可以省略对诸如n
×
4n_part_flag、2n
×
4n_part_flag和3n
×
4n_part_flag的垂直方向划分信息的编码/解码,并且可以将其值设置为0。此时,还可以将4n
×
2n_part_flag的值设置为0而不对4n
×
2n_part_flag的值进行编码/解码。
[0321]
水平方向划分信息或垂直方向划分信息可以是指示划分线的位置的索引信息。例如,当水平方向划分信息的值为0时,可以指示垂直方向划分线存在于左侧划分的大小为2n
×
4n的位置处,并且当水平方向划分信息的值为1或2时,可以指示垂直方向划分线存在于左侧划分的大小为n
×
4n或3n
×
4n的位置处。此时,可以以可变长度来对索引信息进行编码。例如,如在下表3中示出的示例中,可以将较短的码字分配给对称地分割编码块的垂直线的位置。
[0322]
[表3]
[0323]
左侧划分的大小二叉划分索引二进制化2n
×
4n00n
×
4n1103n
×
4n211
[0324]
关于水平方向划分信息,可以将较短的码字分配给对称地分割编码块的水平线的位置。
[0325]
根据在编码块中使用的多叉树划分的类型,可以不同地设置分配给每个索引的码字的长度。例如,在三叉树划分的情况下,分配给不对称地分割编码块的垂直线或水平线的码字可以比分配给对称地分割编码块的垂直线或水平线的码字短。
[0326]
图31是示出根据应用本发明的实施方式的获得残差样本的过程的流程图。
[0327]
首先,可以获得当前块的残差系数(s3110)。解码器可以通过系数扫描方法获得残差系数。例如,解码器可以使用对角线扫描、z字形(jig-zag)扫描、右上扫描、垂直扫描或水平扫描来执行系数扫描,并且可以获得二维块形式的残差系数。
[0328]
可以对当前块的残差系数执行逆量化(s3120)。
[0329]
可以确定是否跳过对当前块的解量化的残差系数的逆变换(s3130)。具体地,解码器可以确定是否跳过在当前块的水平方向或垂直方向中的至少一个方向上的逆变换。在确定在当前块的水平方向或垂直方向中的至少一个方向上应用逆变换时,可以通过对当前块的解量化的残差系数进行逆变换来获得当前块的残差样本(s3140)。此处,可以使用dct、dst和klt中的至少之一来执行逆变换。
[0330]
在当前块的水平方向和垂直方向二者上均跳过逆变换时,不在当前块的水平方向和垂直方向上执行逆变换。在这种情况下,可以通过使用预定值对解量化的残差系数进行缩放来获得当前块的残差样本(s3150)。
[0331]
跳过在水平方向上的逆变换意味着不在水平方向上执行逆变换,而是在垂直方向上执行逆变换。此时,可以在水平方向上执行缩放。
[0332]
跳过垂直方向上的逆变换意味着不在垂直方向上执行逆变换,而是在水平方向上执行逆变换。此时,可以在垂直方向上执行缩放。
[0333]
可以依赖于当前块的划分类型来确定是否可以针对当前块使用逆变换跳过技术。
例如,如果通过基于二叉树的划分生成当前块,则可以针对当前块限制逆变换跳过方案。因此,在通过基于二叉树的划分生成当前块时,可以通过对当前块进行逆变换来获得当前块的残差样本。另外,在通过基于二叉树的划分生成当前块时,可以省略对指示是否跳过逆变换的信息(例如,transform_skip_flag)的编码/解码。
[0334]
替选地,在通过基于二叉树的划分生成当前块时,可以将逆变换跳过方案限制于水平方向或垂直方向中的至少一个方向。此处,可以基于从比特流解码的信息来确定逆变换跳过方案被限制的方向,或者可以基于当前块的大小、当前块的形状或当前块的帧内预测模式中的至少之一来自适应地确定逆变换跳过方案被限制的方向。
[0335]
例如,在当前块是宽度大于高度的非正方形块时,可以仅在垂直方向上允许逆变换跳过方案并且在水平方向上限制逆变换跳过方案。即,在当前块是2n
×
n时,在当前块的水平方向上执行逆变换,并且可以在垂直方向上选择性地执行逆变换。
[0336]
另一方面,在当前块是高度大于宽度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案并且在垂直方向上限制逆变换跳过方案。即,在当前块是n
×
2n时,在当前块的垂直方向上执行逆变换,并且可以在水平方向上选择性地执行逆变换。
[0337]
与上述示例相比,在当前块是宽度大于高度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案,并且在当前块是高度大于宽度的非正方形块时,可以仅在垂直方向上允许逆变换跳过方案。
[0338]
可以通过比特流用信号发送指示是否针对水平方向跳过逆变换的信息或者指示是否针对垂直方向跳过逆变换的信息。例如,指示是否跳过水平方向上的逆变换的信息是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'中的至少之一来确定是否跳过水平方向或垂直方向上的逆变换。
[0339]
可以设置成:依赖于当前块的划分类型跳过对当前块的任何一个方向的逆变换。例如,如果通过基于二叉树的划分生成当前块,则可以跳过水平方向或垂直方向上的逆变换。即,如果通过基于二叉树的划分生成当前块,则可以在不对指示是否跳过当前块的逆变换的信息(例如,transform_skip_flag、hor_transform_skip_flag、ver_transform_skip_flag)进行编码/解码的情况下,确定在水平方向或垂直方向中的至少一个方向上跳过当前块的逆变换。
[0340]
尽管已经基于一系列步骤或流程图描述了上述实施方式,但是它们不限制本发明的时序顺序,并且可以根据需要同时或以不同顺序执行。此外,构成上述实施方式中的框图的部件(例如,单元、模块等)中的每一个可以由硬件设备或软件以及多个部件来实现。或者,可以通过单个硬件设备或软件来组合并实现多个部件。上述实施方式可以以程序指令的形式实现,所述程序指令可以通过各种计算机部件执行并被记录在计算机可读记录介质中。计算机可读记录介质可以包括程序命令、数据文件、数据结构等之一或其组合。计算机可读介质的示例包括诸如硬盘、软盘和磁带的磁介质、诸如cd-rom和dvd的光学记录介质、诸如光磁软盘的磁光介质、专门被配置成存储和执行程序指令的介质和硬件设备例如rom、ram、闪存等。硬件设备可以被配置成作为一个或更多个软件模块来进行操作以用于执行根
据本发明的处理,反之亦然。
[0341]
工业应用性
[0342]
本发明可以应用于能够对视频进行编码/解码的电子设备。
技术特征:
1.一种用于对视频进行解码的方法,所述方法包括:确定是否将编码块划分成两个变换块;当确定对所述编码块进行划分时,从比特流中解码第一标志,所述第一标志指示将所述编码块对称划分还是非对称划分;从所述比特流中解码第二标志,所述第二标志指示将所述编码块通过垂直划分线分割还是通过水平划分线分割;将所述编码块分割成第一变换块和第二变换块;从所述比特流中解码针对所述第一变换块的残差系数或所述第二变换块的残差系数;对所述第一变换块的残差系数或所述第二变换块的残差系数执行逆变换;以及对所述第一变换块或所述第二变换块执行逆变换,其中,当确定对所述编码块进行非对称划分时,所述编码块被划分成所述编码块的3/4大小的第一变换块和所述编码块的1/4大小的第二变换块,其中,所述第一变换块的位置和所述第二变换块的位置是基于从所述比特流中解码的第三标志来确定的,并且其中,当确定将所述编码块划分成所述第一变换块和所述第二变换块时,省略从比特流中解码指示是否跳过所述逆变换的变换跳过标志,并且不允许跳过针对所述第一变换块或所述第二变换块的逆变换。2.根据权利要求1所述的方法,其中,当确定通过水平方向线对所述编码块进行划分时,基于所述第三标志来确定所述第一变换块和所述第二变换块中的哪一个位于所述编码块的上侧,并且其中,当确定通过垂直方向线对所述编码块进行划分时,基于所述第三标志来确定所述第一变换块和所述第二变换块中的哪一个位于所述编码块的右侧。3.一种用于对视频进行编码的方法,所述方法包括:确定是否将编码块划分成第一变换块和第二变换块;基于所述编码块的划分类型对第一标志进行编码,所述第一标志指示是否将所述编码块划分成两个变换块;基于所述编码块的划分类型对第二标志进行编码,所述第二标志指示将所述编码块对称划分还是非对称划分;基于所述编码块的划分类型对第三标志进行编码,所述第三标志指示将所述编码块通过垂直划分线分割还是通过水平划分线分割;对所述第一变换块或所述第二变换块执行变换;对从所述变换得到的变换系数执行量化;以及将从所述量化得到的残差系数编码在所述比特流中,其中,当所述编码块被非对称划分时,生成所述编码块的3/4大小的第一变换块和所述编码块的1/4大小的第二变换块,其中,基于所述第一变换块的位置和所述第二变换块的位置来确定值的第四标志还被编码在所述比特流中,并且其中,当将所述编码块划分成所述第一变换块和所述第二变换块时,省略将指示是否跳过变换的变换跳过标志编码在比特流中,并且不允许跳过针对所述第一变换块或所述第
二变换块的变换。4.根据权利要求3所述的方法,其中,当确定通过水平方向线对所述编码块进行划分时,基于所述第一变换块和所述第二变换块中的哪一个位于所述编码块的上侧来确定所述第四标志的值,并且其中,当确定通过垂直方向线来对所述编码块进行划分时,基于所述第一变换块和所述第二变换块中的哪一个位于所述编码块的右侧来确定所述第四标志的值。5.一种方法,包括:生成与图像信号相关联的压缩视频数据;以及发送所述压缩视频数据,其中,所述压缩视频数据是通过编码方法生成的,所述编码方法包括:确定是否将编码块划分成第一变换块和第二变换块;基于所述编码块的划分类型对第一标志进行编码,所述第一标志指示是否将所述编码块划分成两个变换块;基于所述编码块的划分类型对第二标志进行编码,所述第二标志指示将所述编码块对称划分还是非对称划分;基于所述编码块的划分类型对第三标志进行编码,所述第三标志指示将所述编码块通过垂直划分线分割还是通过水平划分线分割;对所述第一变换块或所述第二变换块执行变换;对从所述变换得到的变换系数执行量化;以及将从所述量化得到的残差系数编码在所述比特流中,其中,当所述编码块被非对称划分时,生成所述编码块的3/4大小的第一变换块和所述编码块的1/4大小的第二变换块,其中,基于所述第一变换块的位置和所述第二变换块的位置来确定值的第四标志还被编码在所述比特流中,并且其中,当将所述编码块划分成所述第一变换块和所述第二变换块时,省略将指示是否跳过变换的变换跳过标志编码在比特流中,并且不允许跳过针对所述第一变换块或所述第二变换块的变换。
技术总结
根据本发明的图像解码方法可以包括如下步骤:对指示是否通过垂直划分线或水平划分线来划分当前编码块的划分信息进行解码;以及基于该划分信息将编码块划分成一个或更多个子块。块。块。
技术研发人员:李培根
受保护的技术使用者:株式会社KT
技术研发日:2017.11.23
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/