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

视频解码方法、视频编码方法和比特流解码装置与流程

2022-05-17 22:22:47 来源:中国专利 TAG:

视频解码方法、视频编码方法和比特流解码装置
1.本技术为于2019年3月18日提交、申请号为201780057325.5、发明名称为“用于处理视频信号的方法和装置”的中国专利申请的分案申请。所述母案申请的国际申请日为2017年9月20日,国际申请号为pct/kr2017/010355,优先权日为2016年9月20日。
技术领域
2.本发明涉及用于处理视频信号的方法和装置,尤其涉及视频解码方法、视频编码方法和比特流解码装置。


背景技术:

3.近来,在各种应用领域中对高分辨率和高质量图像例如高清晰度(hd)图像和超高清晰度(uhd)图像的需求已经增加了。然而,与常规图像数据相比,更高分辨率和质量的图像数据的数据量增加。因此,在通过使用介质例如常规的有线和无线宽带网络传输图像数据时,或者在通过使用常规的存储介质存储图像数据时,传输和存储的成本增加了。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,可以利用高效的图像编码/解码技术。
4.图像压缩技术包括各种技术,包括:根据当前图片的先前图片或后续图片来对包括在当前图片中的像素值进行预测的帧间预测技术;通过使用当前图片中的像素信息对包括在当前图片中的像素值进行预测的帧内预测技术;将短代码分配给出现频率高的值并且将长代码分配给出现频率低的值的熵编码技术等。可以通过使用这样的图像压缩技术来有效地压缩图像数据,并且可以传输或存储图像数据。
5.同时,随着对高分辨率图像的需求的增加,对作为新的图像服务的立体图像内容的需求也在增加。正在讨论用于有效地提供具有高分辨率和超高分辨率的立体图像内容的视频压缩技术。


技术实现要素:

6.技术问题
7.本发明的目的是提供一种用于在对视频信号进行编码/解码时有效地划分/合并编码/解码目标块的方法和装置。
8.本发明的目的是提供一种用于合并其中完成了划分的两个块并且在对视频信号进行编码/解码时基于合并块执行预测或变换的方法和装置。
9.本发明的目的是提供一种用于在对视频信号进行编码/解码时通过将非正方形块划分成或转换成正方形块来执行变换的方法和装置。
10.本发明要实现的技术目的不限于上述技术问题。并且,本领域技术人员根据以下描述将明显地理解未提及的其他技术问题。
11.技术方案
12.根据本发明的用于对视频进行解码信号的方法和装置可以确定当前编码块的合
并目标候选块,指定合并目标候选块中的至少之一,以及通过将指定的合并目标候选块与当前编码块合并来生成合并块。
13.根据本发明的用于对视频信号进行编码的方法和装置可以确定当前编码块的合并目标候选块,指定合并目标候选块中的至少之一,以及通过将指定的合并目标候选块与当前编码块合并来生成合并块。
14.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,合并块中包括的多个编码块可以具有相同的运动信息或者具有相同的帧内预测模式。
15.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,合并块中包括的多个编码块可以具有相同的变换类型。
16.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,变换类型可以包括变换方案或变换模式中的至少之一。
17.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,合并目标候选块可以包括与当前编码块邻近的相邻块中的至少之一。
18.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,可以基于当前编码块和相邻编码块的高度、宽度或大小中的至少之一来确定相邻块是否可用作合并目标候选块。
19.在根据本发明的用于对视频信号进行编码/解码的方法和装置中,仅当当前编码块的大小或形状满足预定义条件时,才允许将当前编码块与合并目标候选块合并。
20.本发明提供一种用于对视频进行解码的方法,所述方法包括:基于1比特的第一标志,确定编码块是否被划分成两个分区;以及当确定所述编码块被划分成包括第一分区和第二分区的所述两个分区时,基于1比特的第二标志确定所述编码块是对称划分的还是不对称划分的,其中,所述编码块被在水平方向或竖直方向之一上划分成所述两个分区,其中,当确定不对称划分所述编码块时,所述第一分区具有所述编码块的3/4的大小,并且所述第二分区具有所述编码块的1/4的大小,以及其中,所述第一分区和所述第二分区在所述编码块中的位置是基于1比特的第三标志来确定的。
21.本发明提供一种用于对视频进行编码的方法,所述方法包括:通过确定编码块是否被划分成两个分区来对1比特的第一标志进行编码;当确定将所述编码块划分成包括第一分区和第二分区的所述两个分区时,通过确定所述编码块是对称划分的还是非对称划分的来对1比特的第二标志进行编码,其中,所述编码块在水平方向或竖直方向之一上划分成所述两个分区,其中,当所述编码块被不对称划分时,所述第一分区具有所述编码块的3/4的大小,并且所述第二分区具有所述编码块的1/4的大小,以及其中,还通过确定所述第一分区和所述第二分区在所述编码块内的位置来对1比特的第三标志进行编码。
22.本发明提供一种对与视频信号相关联的比特流进行解码的装置,其中,所述比特流包括1比特的第一标志,其中,1比特的所述第一标志用于确定编码块是否被划分成两个分区,其中,当所述编码块被划分成包括第一分区和第二分区的所述两个分区时,所述比特流还包括1比特的第二标志,其中,1比特的所述第二标志用于确定所述编码块是对称划分的还是不对称划分的,其中,所述编码块在水平方向或竖直方向之一上划分成所述两个分区,其中,当所述编码块是不对称划分时,所述第一分区具有所述编码块的3/4的大小,并且所述第二分区具有所述编码块的1/4的大小,以及其中,所述比特流还包括1比特的第三标
志以确定所述第一分区和所述第二分区在所述编码块中的位置。
23.以上对本发明简要概述的特征仅是本发明的随后的详细描述的说明性方面,而不限制本发明的范围。
24.有益效果
25.根据本发明,通过有效地划分/合并编码/解码目标块,可以提高编码/解码效率。
26.根据本发明,通过将其中完成了划分的两个块合并并且基于合并块执行预测或变换,可以提高编码/解码效率。
27.根据本发明,通过在将非正方形块划分成或转换成正方形块之后执行变换,可以提高编码/解码效率。
28.能够通过本发明获得的效果不限于上述效果,并且本领域技术人员可以根据以下描述清楚地理解未提及的其他效果。
附图说明
29.图1是示出根据本发明的实施方式的用于对视频进行编码的装置的框图。
30.图2是示出根据本发明的实施方式的用于对视频进行解码的装置的框图。
31.图3是示出根据本发明的实施方式的基于树结构来分层次地分割编码块的示例的图。
32.图4是示出根据本发明的实施方式的允许基于二叉树的分割的分割类型的图。
33.图5是示出根据本发明的实施方式的仅允许预定类型的基于二叉树的分割的示例的图。
34.图6是用于说明根据应用本发明的实施方式的对与可允许的二叉树分割次数有关的信息进行编码/解码的示例的图。
35.图7示出了基于非对称二叉树分割的编码块的分割类型。
36.图8示出了使用qtbt和非对称二叉树分割将编码块划分为多个编码块的示例。
37.图9是示出可以应用于编码块的分割类型的图。
38.图10是示出当通过帧间预测对编码块进行编码时可以应用于编码块的分割模式的图。
39.图11是示出生成合并预测块的示例的图。
40.图12是示出通过合并多个编码块来生成合并预测块的示例的图。
41.图13和图14是示出合并预测块的参考样本的图。
42.图15是示出根据本发明的实施方式的块合并方法的流程图。
43.图16是示出根据应用本发明的实施方式的获得残差样本的处理的流程图。
44.图17是示出变换系数级别图(transform coefficient level map)的图。
45.图18是用于说明基于预定单元对变换系数编码指示符进行解码的方面的图。
46.图19是示出根据每个扫描顺序的变换系数的解码顺序的图。
47.图20是示出根据当前块的扫描顺序的子块之间的扫描顺序的图。
48.图21是示出根据当前块的形状的变换系数基本块的扫描顺序的图。
49.图22是示出将非正方形的当前块划分成正方形的子块的示例的图。
50.图23至图26是示出将非正方形块转换成正方形块的示例的图。
具体实施方式
51.可以对本发明进行各种修改,并且存在本发明的各种实施方式,现在将参照附图提供各种实施方式的示例,并且详细描述各种实施方式的示例。然而,本发明不限于此,并且示例性实施方式可以被解释为包括本发明的技术构思和技术范围内的所有修改、等同物或替代方案。在所描述的附图中,相似的附图标记指代相似的元件。
52.说明书中使用的术语“第一”、“第二”等可以用于描述各种部件,但是这些部件不被解释为限制于这些术语。这些术语仅用于区分一个部件与其他部件。例如,在不偏离本发明的范围的情况下,“第一”部件可以被称为“第二”部件,并且“第二”部件也可以类似地被称为“第一”部件。术语“和/或”包括多个项的组合或者多个术语中的任何一个术语。
53.应该理解的是,在本说明书中,在元件被简单地称为“连接至”或“耦接至”另一元件而不是“直接连接至”或“直接耦接至”另一元件时,该元件可以“直接连接至”或“直接耦接至”另一元件,或者该元件可以连接至或耦接至另一元件并且有其他元件介于在它们之间。相反地,应该理解的是,在元件被称为“直接耦接”或“直接连接”至另一元件时,不存在中间元件。
54.本说明书中使用的术语仅用于描述特定实施方式,而并不意在限制本发明。以单数形式使用的表述包含复数形式的表述,除非其在上下文中具有明显不同的含义。在本说明书中,应当理解的是,诸如“包括”、“具有”等的术语意在指示本说明书中公开的特征、数字、步骤、动作、元件、部分或其组合的存在,并且不意在排除可以存在或可以添加一个或更多个其他特征、数字、步骤、动作、元件、部分或其组合的可能性。
55.在下文中,将参照附图详细描述本发明的优选实施方式。在下文中,附图中的相同构成元件由相同的附图标记表示,并且将省略对相同元件的重复描述。
56.图1是示出根据本发明的实施方式的用于对视频进行编码的装置的框图。
57.参照图1,用于对视频进行编码的装置100可以包括:图片分割模块110、预测模块120和125、变换模块130、量化模块135、重排模块160、熵编码模块165、逆量化模块140、逆变换模块145、滤波器模块150以及存储器155。
58.图1中所示的构成部分被独立地示出,以表示在用于对视频进行编码的装置中的彼此不同的特征功能。因此,这并不意味着每个构成部分都是由单独的硬件或软件的构成单元构成。换言之,为了方便起见,每个构成部分包括所列举的构成部分中的每一个。因此,可以将每个构成部分的至少两个构成部分进行组合以形成一个构成部分,或者可以将一个构成部分划分成多个构成部分以执行每个功能。在不偏离本发明的实质的情况下,组合每个构成部分的实施方式和划分一个构成部分的实施方式也被包括在本发明的范围内。
59.此外,构成部分中的一些可能不是执行本发明的基本功能的必不可少的构成部分,而是仅用于改善本发明的性能的可选构成部分。可以通过排除用于改善性能的构成部分而仅包括用于实现本发明的实质的必不可少的构成部分来实现本发明。排除仅用于改善性能的可选构成部分而仅包括必不可少的构成部分的结构也被包括在本发明的范围内。
60.图片分割模块110可以将输入图片分割成一个或更多个处理单元。此处,处理单元可以是预测单元(pu)、变换单元(tu)或编码单元(cu)。图片分割模块110可以将一个图片分割成多个编码单元、预测单元和变换单元的组合,并且可以通过使用预定准则(例如,成本函数)选择编码单元、预测单元和变换单元的一个组合来对图片进行编码。
61.例如,一个图片可以被分割成多个编码单元。可以使用递归树结构例如四叉树结构来将图片分割成编码单元。在一个图片或最大编码单元作为根的情况下被分割成其他编码单元的编码单元可以以子节点对应于所分割的编码单元的数目的方式进行分割。通过预定限制不能再分割的编码单元用作叶节点。即,当假设对于一个编码单元仅正方形分割可行时,一个编码单元可以最多被分割成四个其他编码单元。
62.在下文中,在本发明的实施方式中,编码单元(coding unit)可以意指执行编码的单元或者执行解码的单元。
63.预测单元可以是被分割成在单个编码单元中具有相同大小的正方形形状或矩形形状的分区中之一,或者预测单元可以是被分割成使得在单个编码单元中具有不同的形状/大小的分区中之一。
64.当基于编码单元生成经受帧内预测的预测单元并且编码单元不是最小编码单元时,可以在不将编码单元分割成多个预测单元n
×
n的情况下执行帧内预测。
65.预测模块120和125可以包括执行帧间预测的帧间预测模块120和执行帧内预测的帧内预测模块125。可以确定对于预测单元是执行帧间预测还是帧内预测,并且可以确定根据每个预测方法的详细信息(例如,帧内预测模式、运动矢量、参考图片等)。此处,经受预测的处理单元可以不同于针对其确定预测方法和详细内容的处理单元。例如,可以由预测单元确定预测方法、预测模式等,并且可以由变换单元执行预测。所生成的预测块与原始块之间的残差值(残差块)可以被输入至变换模块130。此外,用于预测的预测模式信息、运动矢量信息等可以与残差值一起由熵编码模块165进行编码,并且可以被传输至用于对视频进行解码的装置。在使用特定编码模式时,可以通过对原始块按其原样进行编码而不通过预测模块120和125生成预测块来向用于对视频进行解码的装置进行传输。
66.帧间预测模块120可以基于当前图片的先前图片或后续图片中的至少一个的信息来预测预测单元,或者在一些情况下,可以基于当前图片中的一些编码区域的信息来预测预测单元。帧间预测模块120可以包括参考图片插值模块、运动预测模块以及运动补偿模块。
67.参考图片插值模块可以从存储器155接收参考图片信息,并且可以根据参考图片来生成整像素(integer pixel)的或小于整像素的像素信息。在亮度像素的情况下,可以使用具有不同滤波器系数的基于dct的8抽头插值滤波器来以1/4像素为单位生成整像素的或小于整像素的像素信息。在色度信号的情况下,可以使用具有不同滤波器系数的基于dct的4抽头插值滤波器来以1/8像素为单位生成整像素的或小于整像素的像素信息。
68.运动预测模块可以基于由参考图片插值模块进行插值的参考图片来执行运动预测。作为用于计算运动矢量的方法,可以使用各种方法,例如,基于全搜索的块匹配算法(fbma)、三步搜索(tss)和新三步搜索算法(nts)等。基于插值像素,运动矢量可以具有以1/2像素或1/4像素为单位的运动矢量值。运动预测模块可以通过改变运动预测方法来预测当前预测单元。作为运动预测方法,可以使用各种方法,例如,跳过方法、合并方法、amvp(高级运动矢量预测)方法、帧内块复制方法等。
69.帧内预测模块125可以基于作为当前图片中的像素信息的与当前块相邻的参考像素信息来生成预测单元。在当前预测单元的相邻块是经受帧间预测的块并且因此参考像素是经受帧间预测的像素时,可以使用经受帧内预测的相邻块的参考像素信息来替换包括在
经受帧间预测的块中的参考像素。即,在参考像素不可用时,可以使用可用参考像素中的至少一个参考像素来替换不可用的参考像素信息。
70.帧内预测中的预测模式可以包括依赖于预测方向使用参考像素信息的方向性预测模式和在执行预测时不使用方向信息的非方向性预测模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且为了预测色度信息,可以利用用于预测亮度信息的帧内预测模式信息或者预测的亮度信号信息。
71.在执行帧内预测时,在预测单元的大小与变换单元的大小相同时,可以基于位于该预测单元的左侧、左上侧和顶部的像素对预测单元执行帧内预测。然而,在执行帧内预测时,在预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n分割的帧内预测可以仅用于最小编码单元。
72.在帧内预测方法中,可以在依赖于预测模式将ais(自适应帧内平滑)滤波器应用于参考像素之后生成预测块。应用于参考像素的ais滤波器的类型可以变化。为了执行帧内预测方法,可以根据与当前预测单元相邻的预测单元的帧内预测模式来预测当前预测单元的帧内预测模式。在通过使用根据相邻预测单元预测到的模式信息来预测当前预测单元的预测模式中,在当前预测单元的帧内预测模式与相邻预测单元的帧内预测模式相同时,可以使用预定标志信息来传输指示当前预测单元的预测模式与相邻预测单元的预测模式彼此相同的信息。在当前预测单元的预测模式与相邻预测单元的预测模式不同时,可以执行熵编码以对当前块的预测模式信息进行编码。
73.此外,可以基于由预测模块120和125生成的预测单元来生成包括关于残差值的信息的残差块,残差值是经受预测的预测单元与预测单元的原始块之间的差异。可以将所生成的残差块输入到变换模块130。
74.变换模块130可以通过使用诸如离散余弦变换(discrete cosine transform,dct)、离散正弦变换(discrete sine transform,dst)和klt的变换方法来对残差块进行变换,该残差块包括关于原始块与由预测模块120和125生成的预测单元之间的残差值的信息。可以基于用于生成残差块的预测单元的帧内预测模式信息来确定是应用dct、dst还是klt以对残差块进行变换。
75.量化模块135可以对由变换模块130变换到频域的值进行量化。量化系数可以依赖于块或图片的重要性而变化。可以将由量化模块135计算的值提供至逆量化模块140和重排模块160。
76.重排模块160可以对量化后的残差值的系数进行重排。
77.重排模块160可以通过系数扫描方法将二维块形式的系数改变成一维矢量形式的系数。例如,重排模块160可以使用锯齿形扫描方法从dc系数扫描至高频域的系数,以将系数改变成一维矢量形式。依赖于变换单元的大小和帧内预测模式,可以使用沿列方向扫描二维块形式的系数的竖直方向扫描或沿行方向扫描二维块形式的系数的水平方向扫描来代替锯齿形扫描。即,可以依赖于变换单元的大小和帧内预测模式来确定使用锯齿形扫描、竖直方向扫描和水平方向扫描中的哪种扫描方法。
78.熵编码模块165可以基于由重排模块160计算的值来执行熵编码。熵编码可以使用各种编码方法,例如指数哥伦布(golomb)编码、上下文自适应变长编码(cavlc)和上下文自适应二进制算术编码(cabac)。
79.熵编码模块165可以对来自重排模块160以及预测模块120和125的各种信息进行编码,各种信息例如编码单元的残差值系数信息和块类型信息、预测模式信息、分割单元信息、预测单元信息、变换单元信息、运动矢量信息、参考帧信息、块插值信息、滤波信息等。
80.熵编码模块165可以对从重排模块160输入的编码单元的系数进行熵编码。
81.逆量化模块140可以对由量化模块135量化的值进行逆量化,并且逆变换模块145可以对由变换模块130变换的值进行逆变换。可以将由逆量化模块140和逆变换模块145生成的残差值与由预测模块120和125的运动估计模块、运动补偿模块和帧内预测模块预测的预测单元进行组合,使得可以生成重构块。
82.滤波器模块150可以包括去块滤波器、偏移校正单元以及自适应环路滤波器(alf)中的至少一个。
83.去块滤波器可以移除由于重构图片中的块之间的边界而出现的块失真。为了确定是否执行去块,包括在块的若干行或若干列中的像素可以是确定是否对当前块应用去块滤波器的基础。当去块滤波器被应用于块时,可以依赖于所需的去块滤波强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,可以并行地处理水平方向滤波和竖直方向滤波。
84.偏移校正模块可以在经受去块的图片中以像素为单位来校正与原始图片的偏移。为了对特定图片执行偏移校正,可以使用考虑每个像素的边缘信息来施加偏移的方法,或者可以使用下述方法:将图片的像素分割成预定数量的区域,确定要经受偏移的区域,并且对所确定的区域施加偏移。
85.可以基于通过将滤波后的重构图片与原始图片进行比较而获得的值来执行自适应环路滤波(alf)。可以将包括在图片中的像素分成预定组,可以确定要应用于每个组的滤波器,并且可以针对每个组单独执行滤波。可以通过编码单元(cu)传输关于是否应用alf和亮度信号的信息。用于alf的滤波器的形状和滤波器系数可以依赖于每个块而变化。此外,无论应用目标块的特征如何,都可以应用用于alf的相同形状(固定形状)的滤波器。
86.存储器155可以存储通过滤波器模块150计算的重构块或重构图片。可以在执行帧间预测时将所存储的重构块或重构图片提供至预测模块120和125。
87.图2是示出根据本发明的实施方式的用于对视频进行解码的装置的框图。
88.参照图2,用于对视频进行解码的装置200可以包括:熵解码模块210、重排模块215、逆量化模块220、逆变换模块225、预测模块230和235、滤波器模块240以及存储器245。
89.当从用于对视频进行编码的装置输入视频比特流时,可以根据用于对视频进行编码的装置的逆处理来对输入比特流进行解码。
90.熵解码模块210可以根据由用于对视频进行编码的装置的熵编码模块进行的熵编码的逆处理来执行熵解码。例如,对应于由用于对视频进行编码的装置执行的方法,可以应用各种方法,例如指数哥伦布编码、上下文自适应变长编码(cavlc)和上下文自适应二进制算术编码(cabac)。
91.熵解码模块210可以对关于由用于对视频进行编码的装置执行的帧内预测和帧间预测的信息进行解码。
92.重排模块215可以基于在用于对视频进行编码的装置中使用的重排方法对由熵解码模块210进行熵解码的比特流执行重排。重排模块可以将一维矢量形式的系数重构和重
排成二维块形式的系数。重排模块215可以接收与在用于对视频进行编码的装置中执行的系数扫描有关的信息,并且可以经由基于在用于对视频进行编码的装置中执行的扫描顺序对系数进行逆扫描的方法来执行重排。
93.逆量化模块220可以基于从用于对视频进行编码的装置接收的量化参数和重排后的块的系数来执行逆量化。
94.逆变换模块225可以执行逆变换,即,逆dct、逆dst和逆klt,这是由变换模块对用于对视频进行编码的装置的量化结果执行的变换即dct、dst和klt的逆过程。可以基于用于对视频进行编码的装置所确定的变换单元来执行逆变换。用于对视频进行解码的装置的逆变换模块225可以依赖于多条信息例如预测方法、当前块的大小、预测方向等来选择性地执行变换方案例如dct、dst、klt。
95.预测模块230和235可以基于从熵解码模块210接收到的关于预测块生成的信息和从存储器245接收到的先前解码的块或图片信息来生成预测块。
96.如上所述,类似于用于对视频进行编码的装置的操作,在执行帧内预测时,在预测单元的大小与变换单元的大小相同时,可以基于位于预测单元的左侧、左上侧和顶部的像素对预测单元执行帧内预测。在执行帧内预测时,在预测单元的大小与变换单元的大小不同时,可以使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n分割的帧内预测可以仅用于最小编码单元。
97.预测模块230和235可以包括预测单元确定模块、帧间预测模块以及帧内预测模块。预测单元确定模块可以从熵解码模块210接收各种信息,例如预测单元信息、帧内预测方法的预测模式信息、关于帧间预测方法的运动预测的信息等,可以将当前编码单元分成预测单元,并且可以确定对预测单元执行帧间预测还是帧内预测。通过使用从用于对视频进行编码的装置接收的当前预测单元的帧间预测所需的信息,帧间预测模块230可以基于包括当前预测单元的当前图片的先前图片或后续图片中的至少一个的信息来对当前预测单元执行帧间预测。替选地,可以基于包括当前预测单元的当前图片中的一些预先重构区域的信息来执行帧间预测。
98.为了执行帧间预测,可以针对编码单元来确定跳过模式、合并模式、amvp模式和帧间块复制模式中的哪一个模式用作包括在编码单元中的预测单元的运动预测方法。
99.帧内预测模块235可以基于当前图片中的像素信息来生成预测块。当预测单元是经受帧内预测的预测单元时,可以基于从用于对视频进行编码的装置接收到的预测单元的帧内预测模式信息来执行帧内预测。帧内预测模块235可以包括自适应帧内平滑(ais)滤波器、参考像素插值模块以及dc滤波器。ais滤波器对当前块的参考像素执行滤波,并且可以依赖于当前预测单元的预测模式来确定是否应用滤波器。可以通过使用从用于对视频进行编码的装置接收到的预测单元的预测模式和ais滤波器信息来对当前块的参考像素执行ais滤波。在当前块的预测模式是不执行ais滤波的模式时,可以不应用ais滤波器。
100.在预测单元的预测模式是基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值模块可以对参考像素进行插值以生成整像素的或小于整像素的参考像素。在当前预测单元的预测模式是在不对参考像素进行插值的情况下生成预测块的预测模式时,可以不对参考像素进行插值。在当前块的预测模式是dc模式时,dc滤波器可以通过滤波来生成预测块。
101.可以将重构块或重构图片提供至滤波器模块240。滤波器模块240可以包括去块滤波器、偏移校正模块以及alf。
102.可以从用于对视频进行编码的装置接收关于是否将去块滤波器应用于相应的块或图片的信息以及关于在应用去块滤波器时应用强滤波器和弱滤波器中的哪个滤波器的信息。用于对视频进行解码的装置的去块滤波器可以从用于对视频进行编码的装置接收关于去块滤波器的信息,并且可以对相应的块执行去块滤波。
103.偏移校正模块可以基于在执行编码时应用于图片的偏移校正的类型和偏移值信息来对重构图片执行偏移校正。
104.可以基于从用于对视频进行编码的装置接收到的关于是否应用alf的信息和alf系数信息等来将afl应用于编码单元。alf信息可以被提供为被包括在特定参数集中。
105.存储器245可以存储重构图片或重构块以用作参考图片或参考块,并且可以将重构图片提供至输出模块。
106.如上面描述的,在本发明的实施方式中,为了便于说明,编码单元被用作表示用于编码的单元的术语,然而,编码单元可以用作执行解码以及编码的单元。
107.另外,当前块可以表示要进行编码/解码的目标块。并且,依赖于编码/解码步骤,当前块可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)、预测块(或预测单元)等。
108.可以通过将图片分割成具有正方形或非正方形形状的基本块来对图片进行编码/解码。此时,基本块可以称为编码树单元。编码树单元可以被定义为序列或片(slice)内允许的最大大小的编码单元。可以通过序列参数集、图片参数集或片头(slice header)来用信号通知关于编码树单元是具有正方形形状还是具有非正方形形状的信息或者关于编码树单元的大小的信息。编码树单元可以被分割成更小大小的分区。此时,如果假设通过划分编码树单元而生成的分区深度是1,则通过划分具有深度1的分区而生成的分区深度可以被定义为2。即,通过划分编码树单元中的深度为k的分区而生成的分区可以被定义为具有深度k 1。
109.通过划分编码树单元而生成的任意大小的分区可以被定义为编码单元。编码单元可以被递归地划分或划分成用于执行预测、量化、变换或环路滤波等的基本单元。例如,通过划分编码单元而生成的任意大小的分区可以被定义为编码单元,或者可以被定义为变换单元或预测单元,该编码单元、变换单元或预测单元是用于执行预测、量化、变换或环路滤波等的基本单元。
110.可以基于竖直线和水平线中的至少之一来执行编码树单元或编码单元的分割。另外,分割编码树单元或编码单元的竖直线或水平线的数量可以是至少一个或更多个。例如,可以使用一个竖直线或一个水平线将编码树单元或编码单元划分成两个分区,或者可以使用两个竖直线或两个水平线将编码树单元或编码单元划分成三个分区。替选地,可以通过使用一个竖直线和一个水平线将编码树单元或编码单元分割成具有1/2的长度和宽度的四个分区。
111.在使用至少一个竖直线或至少一个水平线将编码树单元或编码单元分割为多个分区时,分区可具有统一的大小或不同的大小。替选地,任何一个分区可以具有与其余分区不同的大小。
112.在下面描述的实施方式中,假设编码树单元或编码单元被划分成四叉树结构或二叉树结构。然而,还可以使用更多数量的竖直线或更多数量的水平线来划分编码树单元或编码单元。
113.图3是示出根据本发明的实施方式的基于树结构来分层次地分割编码块的示例的图。
114.以预定的块单元对输入的视频信号进行解码。用于对输入的视频信号进行解码的这样的默认单元是编码块(coding block)。编码块可以是执行帧内/帧间预测、变换以及量化的单元。另外,以编码块为单位确定预测模式(例如,帧内预测模式或帧间预测模式),并且包括在编码块中的预测块可以共享所确定的预测模式。编码块可以是具有在8
×
8至64
×
64范围内的任意大小的正方形块或非正方形块,或者可以是具有128
×
128、256
×
256或更大的大小的正方形块或非正方形块。
115.具体地,可以基于四叉树和二叉树中的至少一个来分层次地分割编码块。此处,基于四叉树的分割可以意指将2n
×
2n的编码块分割成四个n
×
n的编码块,并且基于二叉树的分割可以意指将一个编码块分割成两个编码块。即使执行基于二叉树的分割,也可以在较低深度中存在正方形形状的编码块。
116.可以对称地或者非对称地执行基于二叉树的分割。此外,基于二叉树分割的编码块可以是正方形块或非正方形块,例如长方形形状。例如,允许基于二叉树的分割的分割类型可以包括2n
×
n(水平方向非正方形编码单元)或n
×
2n(竖直方向非正方形编码单元)的对称类型、nl
×
2n、nr
×
2n、2n
×
nu或2n
×
nd的非对称类型中的至少之一。
117.可以将基于二叉树的分割限制地允许为对称类型分割或非对称类型分割中的之一。在这种情况下,使用正方形块构造编码树单元可以与四叉树cu分割对应,并且使用对称非正方形块构造编码树单元可以与二叉树分割对应。使用正方形块和对称非正方形块构造编码树单元可以与四叉树cu分割和二叉树cu分割对应。
118.可以对不再执行基于四叉树的分割的编码块执行基于二叉树的分割。可以不再对基于二叉树分割的编码块执行基于四叉树的分割。
119.此外,可以依赖于较高深度的分割类型来确定较低深度的分割。例如,如果在两个或更多个深度中允许基于二叉树的分割,则可以在较低深度中仅允许与较高深度的二叉树分割相同的类型。例如,如果使用2n
×
n类型执行较高深度中的基于二叉树的分割,则也使用2n
×
n类型执行较低深度中的基于二叉树的分割。替选地,如果使用n
×
2n类型执行较高深度中的基于二叉树的分割,则也使用n
×
2n类型执行较低深度中的基于二叉树的分割。
120.相比之下,也可以在较低深度中仅允许与较高深度的二叉树分割类型不同的类型。
121.可以限制仅特定类型的基于二叉树的分割被用于序列、片、编码树单元或编码单元。作为示例,对于编码树单元,可以仅允许2n
×
n类型或n
×
2n类型的基于二叉树的分割。可以在编码器或解码器中预定义可用分割类型。或者可以对关于可用分割类型的信息或关于不可用分割类型的信息进行编码,并且然后通过比特流用信号通知该信息。
122.图5是示出仅允许特定类型的基于二叉树的分割的示例的图。图5的(a)示出了仅允许n
×
2n类型的基于二叉树的分割的示例,并且图5的(b)示出了仅允许2n
×
n类型的基于二叉树的分割的示例。为了实现基于四叉树或二叉树的自适应分割,可以使用下述信息:指
示基于四叉树分割的信息、关于允许基于四叉树的分割的编码块的大小/深度的信息、指示基于二叉树的分割的信息、关于允许基于二叉树的分割的编码块的大小/深度的信息、关于不允许基于二叉树的分割的编码块的大小/深度的信息、关于是沿竖直方向还是沿水平方向执行基于二叉树的分割的信息等。例如,quad_split_flag(四叉树分割标志)指示编码块是否被划分为四个编码块,并且binary_split_flag(二叉树分割标志)指示编码块是否被划分为两个编码块。当编码块被划分为两个编码块时,可以用信号通知is_hor_split_flag(水平分割标志),is_hor_split_flag指示编码块的分割方向是竖直方向还是水平方向。
123.另外,对于编码树单元或特定的编码单元,可以获得关于允许二叉树分割的次数、允许二叉树分割的深度或者允许二叉树分割的深度的数量的信息。这些信息可以以编码树单元或编码单元为单位进行编码,并且可以通过比特流发送到解码器。
124.例如,可以通过比特流对指示允许二叉树分割的最大深度的语法“max_binary_depth_idx_minus1”进行编码/解码。在这种情况下,max_binary_depth_idx_minus1 1可以指示允许二叉树分割的最大深度。
125.参照图6中所示的示例,在图6中,已经针对深度为2的编码单元和深度为3的编码单元执行了二叉树分割。因此,可以通过比特流对指示编码树单元中的二叉树分割已经被执行的次数(即,2次)的信息、指示在编码树单元中已经允许二叉树分割的最大深度(即,深度3)或在编码树单元中已经执行二叉树分割的深度的数量(即,2个(深度2和深度3))的信息中的至少之一进行编码/解码。
126.作为另一示例,可以针对每个序列或每个片(slice)获得关于允许二叉树分割的次数、允许二叉树分割的深度或允许二叉树分割的深度的数量的信息中的至少之一。例如,该信息可以以序列、图片或片单元为单位进行编码,并且通过比特流进行传输。因此,第一片中的二叉树分割的次数、第一片中允许二叉树分割的最大深度或第一片中执行二叉树分割的深度的数量中的至少之一可以与第二片不同。例如,在第一片中,可以仅针对一个深度允许二叉树分割,而在第二片中,可以针对两个深度允许二叉树分割。
127.作为另一示例,可以根据片或图片的时间水平标识符(temporalid)不同地设置允许二叉树分割的次数、允许二叉树分割的深度或允许二叉树分割的深度的数量。此处,时间水平标识符(temporalid)用于标识具有视图、空间、时间或质量中的至少之一的可伸缩性的多个视频层中的每一个。
128.如图3中所示,可以基于四叉树将分区深度(拆分深度)为k的第一编码块300分割成多个第二编码块。例如,第二编码块310至340可以是具有第一编码块的一半宽度和一半高度的正方形块,并且第二编码块的分区深度可以增加至k 1。
129.分区深度为k 1的第二编码块310可以被分割成分区深度为k 2的多个第三编码块。可以通过依赖于分割方法选择性地使用四叉树和二叉树中的之一来执行第二编码块310的分割。此处,可以基于指示基于四叉树分割的信息和指示基于二叉树分割的信息中的至少之一来确定分割方法。
130.在基于四叉树对第二编码块310进行分割时,可以将第二编码块310分割成具有第二编码块的一半宽度和一半高度的四个第三编码块310a,并且第三编码块310a的分区深度可以增加至k 2。相比之下,在基于二叉树对第二编码块310进行分割时,可以将第二编码块310分割成两个第三编码块。此处,两个第三编码块中的每一个可以是具有第二编码块的一
半宽度和一半高度中的一者的非正方形块,并且分区深度可以增加至k 2。可以依赖于分割方向将第二编码块确定为水平方向或竖直方向的非正方形块,并且可以基于关于是沿竖直方向还是沿水平方向执行基于二叉树的分割的信息来确定分割方向。
131.同时,第二编码块310可以被确定为不再基于四叉树或二叉树进行分割的叶编码块。在这种情况下,叶编码块可以被用作预测块或变换块。
132.类似于第二编码块310的分割,第三编码块310a可以被确定为叶编码块,或者可以基于四叉树或二叉树被进一步分割。
133.同时,可以基于二叉树将基于二叉树分割的第三编码块310b进一步分割成竖直方向的编码块310b-2或水平方向的编码块310b-3,相关编码块的分区深度可以增加至k 3。替选地,第三编码块310b可以被确定为不再基于二叉树进行分割的叶编码块310b-1。在这种情况下,编码块310b-1可以被用作预测块或变换块。然而,可以基于以下信息中的至少之一来限制性地执行上述分割处理:关于允许基于四叉树的分割的编码块的大小/深度的信息、关于允许基于二叉树的分割的编码块的大小/深度的信息以及关于不允许基于二叉树的分割的编码块的大小/深度的信息。
134.表示编码块的大小的候选的数量可以被限制为预定数量,或者预定单元中的编码块的大小可以具有固定值。作为示例,序列或图片中的编码块的大小可以被限制为具有256
×
256、128
×
128或32
×
32。可以通过序列头或图片头来用信号通知指示序列中或图片中的编码块的大小的信息。
135.作为基于四叉树和二叉树的分割的结果,编码单元可以被表示为任意大小的正方形或矩形形状。
136.作为基于四叉树和二叉树的分割的结果,未被进一步分割的编码块可以用作预测块或变换块。也就是说,在基于四叉树和二叉树的qtbt分割方法中,编码块可以变为预测块,并且预测块可以变为变换块。例如,当使用qtbt分割方法时,可以以编码块为单位生成预测图像,并且以编码块为单位传输原始图像和预测图像之间的差异的残差信号。这里,以编码块为单位生成预测图像可以意味着针对编码块确定运动信息,或者针对编码块确定帧内预测模式。
137.在qtbt分割方法中,可以设置在bt中仅允许对称分割。然而,如果即使在块边界处划分目标和背景的情况下仅允许对称二进制分割,则可能降低编码效率。因此,在本发明中,提出了一种非对称地分割编码块的方法,以提高编码效率。
138.非对称二叉树分割表示将编码块分割为两个较小的编码块。作为非对称二叉树分割的结果,编码块可以被分割为非对称形式的两个编码块。为了便于说明,在以下实施方式中,将编码块分割为对称形式的两个分区将被称为二叉树分割(或二叉树划分),并且将编码块分割为非对称形式的两个分区将被称为非对称二叉树分割(或非对称二叉树划分)。
139.图7示出了基于非对称二叉树分割的编码块的分割类型。2nx2n的编码块可以被划分为宽度比为n:(l-n)的两个编码块或者高度比为n:(1-n)的两个编码块。其中n可以表示大于0且小于l的实数。
140.在图7中所示,通过将非对称二叉树分割应用于编码块,生成宽度比为1:3或3:1或高度比为1:3或3:1的两个编码块。
141.具体地,当wxh大小的编码块在竖直方向上被分割时,可以生成宽度为1/4w的左分
区和宽度为3/4w的右分区。如上所描述,左分区的宽度小于右分区的宽度的分割类型可以被称为nlx2n二进制分割。
142.当wxh大小的编码块在竖直方向上被分割时,可以生成宽度为3/4w的左分区和宽度为1/4w的右分区。如上所描述,右分区的宽度小于左分区的宽度的分割类型可以被称为nrx2n二进制分割。
143.当wxh大小的编码块在水平方向上被分割时,可以生成宽度为1/4h的上分区和宽度为3/4h的下分区。如上所描述,上分区的高度小于下分区的高度的分割类型可以被称为2nxnu二进制分割。
144.当wxh大小的编码块在水平方向上被分割时,可以生成宽度为3/4h的上分区和宽度为1/4h的下分区。如上所描述,下分区的高度小于上分区的高度的分割类型可以被称为2nxnd二进制分割。
145.在图7中,示出了两个编码块之间的宽度比或高度比是1:3或3:1。然而,由非对称二叉树分割产生的两个编码块之间的宽度比或高度比不限于此。编码块可以被分割为具有与图7中所示的宽度比或高度比不同的宽度比或不同高度比的两个编码块。
146.当使用非对称二叉树分割时,可以基于经由比特流进行信号通知的信息来确定编码块的非对称二进制分割类型。例如,可以基于指示编码块的分割方向的信息和指示通过分割编码块生成的第一分区是否具有比第二分区小的尺寸的信息来确定编码块的分割类型。
147.指示编码块的分割方向的信息可以是指示编码块是在竖直方向还是在水平方向上分割的1比特的标志。例如,hor_binary_flag(水平二叉树分割标志)可以指示编码块是否在水平方向上分割。如果hor_binary_flag的值是1,则其可以指示编码块在水平方向上分割,并且如果hor_binary_flag的值是0,则其可以指示编码块在竖直方向上分割。替选地,可以使用指示编码块是否在竖直方向上分割的ver_binary_flag(竖直二叉树分割标志)。
148.指示第一分区是否具有比第二分区小的尺寸的信息可以是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(右/下分区小分割标志)。
149.替选地,可以通过使用指示第一分区与第二分区之间的宽度比、高度比或面积比的信息来确定第一分区和第二分区的大小。
150.当hor_binary_flag的值是0并且is_left_above_small_part_flag的值是1时,可以表示nlx2n二进制分割,以及当hor_binary_flag的值是0并且is_left_above_small_part_flag的值是0时,可以表示nrx2n二进制分割。另外,当hor_binary_flag的值是1并且is_left_above_small_part_flag的值是1时,可以表示2nxnu二进制分割,以及当hor_binary_flag的值是1并且is_left_above_small_part_flag的值是0时,可以表示2nxnd二进制分割。
151.作为另一示例,编码块的非对称二进制分割类型可以由指示编码块的分割类型的
索引信息确定。这里,索引信息是要通过比特流进行信号通知的信息,并且可以以固定长度(即,固定的比特数量)编码,或者可以以可变长度编码。例如,下面的表1示出了每个非对称二进制分割的分割索引。
152.[表1]
[0153] 非对称的分割索引二进制化nlx2n00nrx2n1102nxnu21002nxnd3111
[0154]
可以根据qtbt分割方法使用非对称二叉树分割。例如,如果四叉树分割或二叉树分割不再应用于编码块,则可以确定是否将非对称二叉树分割应用于编码块。这里,是否将非对称二叉树分割应用于编码块可以由通过比特流用信号通知的信息确定。例如,该信息可以是1比特的标志“asymmetric_binary_tree_flag”(非对称二叉树标志),并且基于该标志,可以确定是否将非对称二叉树分割应用于编码块。
[0155]
替选地,当确定将编码块分割为两个块时,可以确定分割类型是二叉树分割还是非对称二叉树分割。这里,可以由通过比特流进行信号通知的信息来确定编码块的分割类型是二叉树分割还是非对称二叉树分割。例如,该信息可以是1比特的标志“is_asymmetric_split_flag”(非对称分割标志),并且基于该标志,可以确定编码块被分割为对称形式还是非对称形式。
[0156]
作为另一示例,分配给对称类型二进制分割和非对称类型二进制分割的索引可以是不同的,并且可以基于索引信息确定编码块是以对称类型还是非对称类型分割。例如,表2示出了示例,其中不同的索引被分配给对称二进制类型分割和非对称二进制类型分割。
[0157]
[表2]
[0158][0159]
可以通过四叉树分割、二叉树分割或非对称二叉树分割将编码树块或编码块分割为多个编码块。例如,图8示出了使用qtbt和非对称二叉树分割将编码块分割为多个编码块的示例。参照图8,可以看出,非对称二叉树分割分别以第一图中深度2分割、第二图中深度3
分割和第三图中深度3分割来执行。
[0160]
可以限制为不再划分通过非对称二叉树分割而划分的编码块。例如,对于通过非对称二叉树分割生成的编码块,可以不对与四叉树、二叉树或非对称二叉树有关的信息进行编码/解码。也就是说,对于通过非对称二叉树分割生成的编码块,可以省略指示是否应用四叉树分割的标志、指示是否应用二叉树分割的标志、指示是否应用非对称二叉树分割的标志、指示二叉树分割或非对称二叉树分割的方向的标志或者指示非对称二进制分割的索引信息等。
[0161]
作为另一示例,可以根据是否允许qtbt来确定是否允许二叉树分割。例如,在不使用基于qtbt的分割方法的图片或片中,可以限制不使用非对称二叉树分割。
[0162]
指示是否允许非对称二叉树分割的信息可以以块、片或图片为单位进行编码和用信号通知。这里,指示是否允许非对称二叉树分割的信息可以是1比特的标志。例如,如果is_used_asymmetric_qtbt_enabled_flag(使用非对称qtbt使能标志)的值是0,则可以指示不使用非对称二叉树分割。当在图片或片中没有使用二叉树分割时,在没有用信号通知的情况下也可以将is_used_asymmetric_qtbt_enabled_flag设置为0。
[0163]
还可以基于编码块的大小、形状、分区深度或分割类型来确定编码块中允许的分割类型。例如,在通过四叉树分割生成的编码块中以及在通过二叉树分割生成的编码块中允许的分割类型、分割形状或分割次数中的至少一个可以彼此不同。
[0164]
例如,如果通过四叉树分割生成编码块,则针对编码块,可以允许所有四叉树分割、二叉树分割和非对称二叉树分割。也就是说,如果基于四叉树分割生成编码块,则图9中所示的所有分割类型都可以应用于编码块。例如,2nx2n分割可以表示不进一步分割编码块的情况,nxn可以表示在四叉树中分割编码块的情况,并且nx2n和2nxn可以表示在二叉树中分割编码块的情况。另外,nlx2n、nrx2n、2nxnu和2nxnd可以表示在非对称二进制树中分割编码块的情况。
[0165]
另一方面,当通过二叉树分割生成编码块时,对于编码块可能不允许使用非对称二叉树分割。也就是说,当基于二叉树分割生成编码块时,可以限制不将图9所示的分割类型中的非对称分割类型(nlx2n、nrx2n、2nxnu、2nxnd)应用于编码块。
[0166]
当使用qtbt时,不被进一步分割的编码块可以用作预测块。也就是说,可以使用跳过模式、帧内预测、帧间预测或跳过方法中的至少一个来对编码块进行编码。
[0167]
作为另一示例,如果确定了编码块,则可以通过编码块的预测分割来确定具有与编码块相同的尺寸或者比编码块更小的尺寸的预测块。可以通过指示编码块的分割类型的分割模式(part_mode)来执行编码块的预测分割。可以根据编码块的分割模式来确定预测块的大小或形状。可以通过指定分割候选中的任何一个的信息来确定编码块的分割类型。此时,编码块可用的分割候选可以包括非对称分割类型(例如,nlx2n、nrx2n、2nxnu、2nxnd),这取决于编码块的大小、形状或编码模式。例如,可以根据当前块的编码模式来确定编码块可用的分割候选。例如,图10是示出当通过帧间预测对编码块进行编码时可以应用于编码块的分割模式的图。
[0168]
如果通过帧间预测对编码块进行编码,则图10中所示的8个分割模式中的一个可以将应用于编码块。
[0169]
另一方面,当通过帧内预测对编码块进行编码时,可以将part_2nx2n或part_nxn
的分割模式应用于编码块。
[0170]
当编码块具有最小尺寸时,可以应用part_nxn。这里,可以在编码器和解码器中预定义编码块的最小尺寸。替选地,可以经由比特流来对关于编码块的最小尺寸的信息进行信号通知。例如,通过片头对编码块的最小尺寸进行信号通知,从而可以按片定义编码块的最小尺寸。
[0171]
在另一示例中,可以根据编码块的大小或形状中的至少之一来不同地确定编码块可用的分割候选。例如,可以根据编码块的大小或形状中的至少之一来不同地确定编码块可用的分割候选的数量或类型。
[0172]
替选地,可以根据编码块的大小或形状限制编码块可用的分割候选中的非对称分割候选的类型或数量。例如,可以根据编码块的大小或形状中的至少之一来不同地确定编码块可用的非对称分割候选的数量或类型。
[0173]
通常,预测块可以具有从64
×
64到4
×
4的大小。然而,当通过帧间预测对编码块进行编码时,可以防止预测块具有4
×
4大小,以在执行运动补偿时减小存储器带宽。
[0174]
作为另一示例,可以通过合并多个编码块来生成预测块或变换块中的至少之一。通过合并多个编码块生成的预测块或变换块可以被称为合并预测块或合并变换块。因此,预测块或变换块可以大于编码块的大小。在下文中,将详细描述生成合并预测块和合并变换块的示例。
[0175]
图11是示出生成合并预测块的示例的图。如果基于qtbt分割或非对称二叉树分割将编码块划分成多个编码块,则可以将最终划分的编码块中的至少之一与另一个合并以生成合并预测块。例如,在图11的上图中示出,通过将大小彼此不同的两个块合并来生成合并预测块,并且在图11的下图中示出,通过将大小相同的两个块合并来生成合并预测块。
[0176]
可以以合并预测块或编码块为单位执行当前块的帧内预测或帧间预测。
[0177]
即使当以编码块为单位执行帧内预测或帧间预测时,也可以为每个合并预测块定义单个运动信息,或者可以为每个合并预测块定义单个帧内预测模式。也就是说,合并预测块中包括的多个编码块可以共享运动信息或帧内预测模式。这里,运动信息可以包括合并候选(或合并候选列表)、amvp候选(或amvp候选列表)、候选索引、运动矢量、参考图片索引或列表利用标志中的至少之一。
[0178]
替选地,可以将合并变换块划分成多个子块。并且还可以对每个子块使用不同的运动信息或不同的帧内预测模式。在这种情况下,子块的数量可以与合并预测块中包括的编码块的数量不同。
[0179]
可以与作为当前编码/解码目标的编码块(在下文中被称为当前编码块)合并的编码块可以被称为合并目标候选块。合并目标候选块可以包括与当前编码块相邻的编码块。例如,与当前编码块的左侧或顶侧相邻的编码块可以包括在当前编码块的合并目标候选块中。替选地,与当前编码块的右侧或底侧相邻的编码块或与当前编码块的一个角邻近的编码块也可以用作当前编码块的合并目标候选块。
[0180]
当前编码块的合并目标候选块可以受当前编码块的宽度、高度或大小中的至少之一限制。
[0181]
例如,具有等于当前编码块的宽度或高度的宽度或高度的相邻编码块可以用作当前编码块的合并目标候选块。与当前编码块的顶部相邻的编码块仅当具有与当前编码块相
同的宽度时才可以用作当前编码块的合并目标候选块,并且与当前编码块的左边相邻的编码块仅当具有与当前编码块相同的高度时才可以用作当前编码块的合并目标候选块。
[0182]
例如,在与当前编码块邻近的相邻编码块中,具有与当前编码块相同大小的相邻块(即,具有与当前编码块相同宽度和相同高度的编码块)可以用作当前编码块的合并目标候选块。另一方面,如果相邻编码块的大小不同于当前块,则编码块不能用作当前编码块的合并目标候选块。
[0183]
也就是说,左边编码块和顶部编码块全部可以用作当前块的合并目标候选块,或者左边编码块和顶部编码块中的仅一个可以用作当前块的合并目标候选块,这取决于它们是否具有与当前编码块相同的宽度、相同的高度或相同的大小。或者,也可能与当前编码块邻近的相邻编码块全部不可用作合并目标候选块。
[0184]
当前编码块的合并目标候选块可以受当前编码块的形状限制。例如,如果当前编码块是宽度大于高度的非正方形块,例如2n
×
n,则可以将与当前编码块的顶部相邻的编码块设置为当前编码块的合并目标候选块。另一方面,如果当前编码块是高度大于宽度的非正方形块,例如nx2n,则可以将与当前编码块的左边相邻的编码块设置为当前编码块的合并目标候选块。
[0185]
通过将当前编码块与相邻编码块合并来生成合并预测块可以被称为预测块合并方法。此时,可以基于当前编码块的大小、形状、分割深度、位置、编码模式或帧内预测模式中的至少之一来确定是否允许对当前编码块使用预测块合并方法。例如,仅当当前编码块的大小小于或等于预定大小时,才允许预测块合并方法。
[0186]
另外,可以基于从比特流进行信号通知的信息来确定是否将当前编码块与合并目标候选块合并。该信息可以是1比特的标志,并且可以基于该信息确定是否将当前编码块与合并目标候选块合并。
[0187]
如果存在当前编码块的多个合并目标候选块,则可以对指定多个合并目标候选块中的一个合并目标候选块的索引信息进行编码/解码。可以通过将当前编码块与由索引信息指定的合并目标候选块合并来生成合并预测块。
[0188]
可以通过将多个编码块合并来生成合并变换块。也就是说,合并变换块可以包括多个编码块。合并变换块可以用作用于残差信号(或变换系数)的变换或量化的基本单元。因此,可以将相同的变换方案应用于合并变换块中包括的变换系数。
[0189]
替选地,可以将合并变换块划分成多个子块。并且,还可以对每个子块执行量化或变换。因此,可以将不同的变换方案应用于每个子块。在这种情况下,子块的数量可以与合并变换块中包括的编码块的数量不同。
[0190]
可以将合并变换块设置为与合并预测块相同,或者可以将合并变换块设置为具有与合并预测块不同的大小或不同的形状。
[0191]
例如,可以在合并预测块之后生成合并变换块。也就是说,合并变换块可以具有与合并预测块相同的大小和形状。
[0192]
在另一示例中,可以独立于合并预测块来产生合并变换块。也就是说,可以基于指示是否将当前编码块与相邻编码块合并的信息、指示将与当前编码块合并的相邻编码块的索引信息等来生成合并变换块。
[0193]
还可以通过比特流来用信号通知指示是否将合并变换块设置为等于合并预测块
的信息。
[0194]
通过将编码块合并生成的合并预测块或合并变换块可以限于预定大小或预定形状。也就是说,可以基于通过将两个编码块合并生成的合并预测块或合并变换块是否具有预定大小或预定形状来确定是否将两个编码块合并。例如,合并预测块或合并变换块可以限于矩形形状或正方形形状。
[0195]
在另一示例中,合并预测块或合并变换块也可具有非矩形形状。例如,如果当前编码块同与当前编码块的左侧相邻的编码块以及与当前编码块的顶侧相邻的编码块合并,则可以生成非矩形形状的合并预测块或合并变换块。
[0196]
图12是示出通过将多个编码块合并来生成合并预测块的示例的图。在图12所示的示例中,编码块同与编码块的左侧和顶侧相邻的两个编码块合并,从而生成非矩形形状的合并预测块。
[0197]
如果合并预测块不是矩形形状,则可以将合并预测块划分成正方形子块,并且可以以子块为单位执行预测。此时,合并预测块中的所有子块可以使用相同的运动信息,或者可以使用相同的帧内预测模式。
[0198]
当对非矩形形状的合并预测块执行帧内预测时,可以从与合并预测块相邻的相邻样本中导出合并预测块的参考样本。此时,相邻样本可以包括与合并预测块的边界接壤的样本。因此,合并预测块的顶部参考样本或左参考样本根据合并预测块的形状可以不排列成行。
[0199]
例如,图13是示出合并预测块的参考样本的图。在图13中,示出了合并预测块的参考样本沿着合并预测块的顶部边界和左边界分布。
[0200]
在另一示例中,合并预测块的参考样本可从与合并预测块的最顶部边界和合并预测块的最左边界相邻的行或列中包括的相邻样本中导出。因此,无论合并预测块的形状如何,合并预测块的顶部参考样本或左参考样本可以排列成行。
[0201]
例如,图14是示出合并预测块的参考样本的图。在图14中,示出了合并预测块的参考样本沿着合并预测块的最顶部边界和最左边界分布。
[0202]
如果合并变换块不是矩形形状,则可以将合并变换块划分成矩形形状的子块,并且可以以子块为单位执行量化和/或变换。此时,合并预测块中的所有子块可以使用相同的变换方案。
[0203]
可以通过比特流来用信号通知指示预定单元内是否允许预测块合并方法或变换块合并方法的信息。例如,可以用信号通知指示在图片、片(slice)或块(例如,ctu)中是否允许预测块合并方法或变换块合并方法的信息。
[0204]
上述块合并方法(即,预测块合并方法或变换块合并方法)可以不与非对称二叉树分割方法结合使用。也就是说,在基于qtbt划分编码块之后,可以通过选择性地使用非对称二叉树分割方法或块合并方法来生成非对称块。
[0205]
在以上示例中,描述了通过将编码块合并来生成具有大于编码块的大小的合并预测块或合并变换块,然而,也可以设置合并预测块或者合并变换块的大小与编码块相同。也就是说,可以合并多个编码块以生成合并编码块,并且所生成的合并编码块可以用作合并预测块或合并变换块。
[0206]
图15是示出根据本发明的实施方式的块合并方法的流程图。
[0207]
首先,可以确定用于要解码/编码的当前编码块的合并目标候选块s1510。可以从与当前编码块邻近的相邻块中导出当前编码块的合并目标候选块。此时,可以基于当前编码块的高度、宽度或大小中的至少之一来确定与当前编码块邻近的相邻块是否可用作合并目标候选块。
[0208]
如果确定了当前编码块的合并目标候选块,则可以指定要与当前编码块合并的合并目标候选块s1520。具体地,可以基于指定当前块的合并目标候选块中的至少之一的索引信息来确定要与当前编码块合并的合并目标候选块。
[0209]
如果确定了当前编码块的合并目标候选块,则可以通过将当前编码块和确定的合并目标候选块合并来生成合并块s1530。合并块可以用作作为预测的基本单元的预测块,或者用作作为编码/解码残差信号的基本单元变换块。
[0210]
编码器可以以预定块为单位对残差样本(或残差信号)执行变换或量化,从而生成残差系数。这里,作为执行变换或量化的单元的预定块的单元可以针对每个颜色分量具有相同的大小,或者可以针对每个颜色分量具有不同的大小。例如,可以针对不同块单元中的亮度分量(luma)和每个色度分量(cb、cr)中的每一个生成残差系数。
[0211]
执行变换或量化的块单元可以被称为变换块,并且变换块可以具有正方形形状或非正方形形状。例如,变换块可以具有例如4x4、8x、16x16、32x32或64x64的正方形形状,或者可以具有例如4x、8x4、8x16、16x8、16x32、32x16、32x64、64x32、4x16、4x32或8x32的非正方形形状。
[0212]
解码器可以根据从编码器接收的比特流解码残差系数,并且可以对解码的残差信号执行逆量化或逆变换中的至少之一以对残差样本(或残差信号)进行解码。通过对残差系数进行解码并通过对解码的残差信号执行逆量化和逆变换中的至少之一生成残差信号来生成残差信号的处理可以被定义为“残差系数解码”。
[0213]
在下文中,将详细描述残差系数解码处理。
[0214]
图16是示出根据应用本发明的实施方式的获得残差样本的处理的流程图。
[0215]
解码器可以对来自比特流的指示当前块中是否存在非零变换系数的信息进行解码s1610,并且可以基于信息确定是否对当前块的残差系数进行解码s1620。
[0216]
该信息可以包括指示当前块中是否存在变换系数的变换系数编码指示符(coded_block_flag,cbf)。变换系数编码指示符可以指示在预定单元的块中是否存在非零变换系数。例如,如果变换系数编码指示符是0,则表示在预定单元的块中不存在非零变换系数,并且如果变换系数编码指示符是1,则表示在预定单元的块中存在至少一个非零变换系数。可以针对亮度分量和色度分量中的每一个对变换系数编码指示符进行编码和用信号通知。
[0217]
变换系数编码指示符可以包括以块(例如,变换块、编码块或编码树块)为单位用信号通知的指示符(即,'rqt_root_cbf')或以预定大小的子块为单位用信号通知的指示符(例如,'coded_sub_block_flag')中的至少之一。
[0218]
例如,rqt_root_cbf可以指示当前块中是否包括非零变换系数。解码器可以根据rqt_root_cbf的值确定是否对残差系数进行解码。例如,如果rqt_root_cbf是0,则不执行对当前块(例如,当前变换块)的变换系数的解码,并且可以将当前块中的所有残差样本的值设置为零。另一方面,如果rqt_root_cbf是1,则可以执行对当前块的变换系数的解码。
[0219]
coded_sub_block_flag可以指示预定大小的子块中是否包括非零系数。例如,
coded_sub_block_flag可以以4
×
4大小的子块为单位进行编码并用信号进行通知。如果coded_sub_block_flag是0,则可能意味着在预定大小的子块中不存在非零变换系数,并且如果coded_sub_block_flag是1,则可能意味着在预定大小的子块中存在至少一个非零变换系数。
[0220]
可以对rqt_root_cbf和coded_sub_block_flag分层次地编码并用信号进行通知。例如,当rqt_root_cbf是0时,可以省略coded_sub_block_flag的编码。另一方面,当rqt_root_cbf是1并且当前块大小大于子块时,可以在当前块中以预定大小的子块为单位对coded_sub_block_flag进行编码并用信号进行通知。
[0221]
在变换块与编码块之间可以对变换系数编码指示符分层次地编码并用信号进行通知。可以对指示是否包括多个变换块中的包括非零变换系数的至少一个变换块的第一变换系数编码指示符进行编码/解码。然后,根据第一变换系数编码指示符的值,可以确定是否对每个子块的第二变换系数编码指示符进行编码/解码。这里,包括多个变换块的上节点块的大小或形状中的至少之一可以是预定值,或者可以基于从比特流解码的信息来确定。替选地,可以基于编码树块的分割类型来确定上节点块的大小或形状中的至少之一。例如,可以将包括多个变换块的非正方形编码块或正方形编码块定义为多个非正方形变换块的上节点块。可以通过两层或更多层对变换系数编码指示符分层次地编码。
[0222]
如上所述,对变换系数编码指示符分层次地编码的方法将被称为分层次变换系数编码指示符(分层次编码块标志(hierarchical coded block flag),hcbf)导出方法。
[0223]
当在当前块中包括至少一个非零变换系数时,可以使用指示变换系数是否为0的变换系数级别指示符来对变换系数进行解码。变换系数级别指示符是1比特标记(例如,'significant_flag')并且指示当前块中的每个变换系数是否为0。例如,如果significant_flag是1,则表示变换系数不是0,并且如果significant_flag是0,则表示变换系数是0。
[0224]
这将被称为示出变换系数中的每一个是否为0的变换系数级别图(重要图(significant map))。编码器可以根据变换系数级别图对每个变换系数的变换系数编码指示符和变换系数级别指示符进行编码,并且可以对非零变换系数的绝对值和符号进行编码。解码器可以根据变换系数编码指示符和变换系数级别指示符对变换系数级别图进行解码,并且可以对非零变换系数的绝对值和符号进行解码。
[0225]
图17是示出变换系数级别图的图。图17中所示的值表示变换系数级别指标的值。并且,coded_sub_block_flag指示对于4
×
4的子块是否存在非零变换系数。
[0226]
预定大小的子块可以被称为变换系数基本块,对于该子块,对指示是否存在非零变换系数的信息进行编码/解码。例如,在图17中,其中对coded_sub_block_flag进行编码的4
×
4大小的块可以被定义为变换系数基本块。
[0227]
此时,可以根据编码块或变换块的形状或大小中的至少之一来不同地确定变换系数基本块的形状或大小中的至少之一。例如,如果当前块具有正方形形状,则当前块的变换系数基本块可以具有正方形形状,并且如果当前块具有非正方形形状,则当前块的变换系数基本块也可以具有非正方形形状。例如,当当前块具有例如nx2n或nx4n的非正方形形状时,当前块的变换系数基本块可以是2
×
8,并且如果当前块具有例如2n
×
n或4n
×
n的非正方形形状,则当前块的变换系数基本块可以是8x2。
[0228]
作为四叉树分割和二叉树分割的结果,编码树块或编码块可以包括2x8、8x2、4x16
或16x4的变换块。如上所描述,当除了四叉树分割之外还使用二叉树分割时,与仅使用四叉树分割的情况相比,可以在编码树块中包括更多数量的变换块或更多种形状的变换块。随着变换块的数量增加或者随着变换块的形状变得多样化,针对每个变换块对变换系数编码指示符进行编码可以降低编码效率。
[0229]
因此,在本发明的实施方式中,代替以变换块为单位对变换系数编码指示符进行编码,可以以预定单元为单位对变换系数编码指示符进行编码/解码或者可以通过将当前块的大小与预定单元比较,确定是否对当前块的变换系数编码指示符进行编码/解码。这里,预定单元可以由块的大小、块的形状或样本的数量来定义。
[0230]
编码器可以对用于确定预定单元的信息(例如,变换系数编码单元指示符)进行编码并用信号进行通知。该信息可以指示块的样本的大小、形状或数量。而且,可以在视频序列层级、图片参数集、片头或块层级中的至少之一中对信息进行编码并用信号进行通知。
[0231]
如果预定单元与块的样本的大小或数量有关,并且如果当前块小于预定单元,则关于当前块是否包括非零变换系数的信息可以以预定单元为单位进行编码并用信号进行通知。另一方面,如果当前块等于或大于预定单元,则对于当前块,可以对变换系数编码指示符进行编码并用信号进行通知。
[0232]
图18是用于说明基于预定单元对变换系数编码指示符进行解码的方面的图。
[0233]
当预定单元表示256个样本时,可以基于包括256个或更多个样本的块对变换系数编码指示符进行编码并用信号进行通知。因此,在图18所示的示例中,可以针对16
×
16的块或8
×
32的块对指示是否存在非零变换系数的变换系数编码指示符进行解码。
[0234]
还可以针对包括多于256个样本的块对变换系数编码指示符进行编码并用信号进行通知。因此,在图18所示的示例中,可以针对16
×
32大小的块或32
×
32大小的块对指示是否存在非零变换系数的变换系数编码指示符进行解码。
[0235]
当预定单元指示1024个样本时,可以基于包括1024个或更多个样本的块对变换系数编码指示符进行编码并用信号进行通知。因此,在图17所示的示例中,可以针对包括四个16
×
16大小的正方形块的上节点块对单个变换系数编码指示符进行解码,并且可以针对包括两个8
×
32大小的非正方形块和16x32大小的非正方形块的上节点块对单个变换系数编码指示符进行解码。
[0236]
可以针对包括多于1024个样本的块对变换系数编码指示符进行单独编码并用信号进行通知。因此,在图18所示的示例中,可以针对32
×
32块对变换系数编码指示符进行解码。
[0237]
预定单元可以指示其中对变换系数编码指示符进行编码并用信号进行通知的最大单元。也就是说,可以基于预定单元来定义对变换系数编码指示符进行编码的块的最大尺寸或块的形状。在这种情况下,可以通过比较由变换系数编码单元指示符指示的样本的数量和在变换块中包括的样本的数量来自适应地确定用信号通知变换系数的单元。
[0238]
例如,当由变换系数编码单元指示符指示的样本的数量大于变换块中包括的样本的数量时,可以针对变换块对变换系数编码指示符进行编码并用信号进行通知。另一方面,当由变换系数编码单元指示符指示的样本的数量小于变换块中包括的样本的数量时,根据预定单元将变换块划分成多个区域,并且针对每个区域对变换系数编码指示符进行编码。
[0239]
如果当前块中包括除0之外的残差系数,则可以确定当前块的扫描顺序s1630。然
后,根据确定的扫描顺序,可以对每个变换系数的绝对值或符号进行解码s1640。
[0240]
解码器可以在多个扫描顺序候选中选择当前块的扫描顺序。这里,多个扫描顺序候选可以包括对角线扫描、水平扫描和竖直扫描中的至少之一。例如,图19是示出根据每个扫描顺序的变换系数的解码顺序的图。
[0241]
可以基于当前块(例如,变换块或编码块)的大小、形状、编码模式或帧内预测模式中的至少之一来确定当前块的扫描顺序。这里,当前块的大小可以由块的宽度、高度或面积中的至少之一表示。
[0242]
例如,可以通过将当前块的大小与预定阈值进行比较来确定当前块的扫描顺序。这里,预定阈值可以由最大值或最小值表示。
[0243]
例如,以帧内模式编码的4
×
4或8
×
8大小的变换块或编码块可以根据帧内预测模式使用竖直扫描、水平方向或对角线扫描。具体地,当帧内预测模式具有水平方向时,可以使用竖直扫描。当帧内预测模式具有竖直方向时,可以使用水平扫描。对于其他帧内预测模式,可以使用对角线扫描。另一方面,对角线扫描可以用于以帧间模式编码的变换块或编码块或者以帧内模式编码的具有16
×
16的大小或更大的变换块或编码块。
[0244]
替选地,基于当前块的大小、形状、编码模式或帧内预测模式中的至少之一,可以不同地设置可用于当前块的扫描顺序候选的数量或类型中的至少之一。也就是说,根据上述条件,可以限制当前块使用对角线扫描、水平扫描或竖直扫描中的至少之一。
[0245]
例如,如果当前块具有非正方形形状,则可以根据宽度和高度比确定可用于当前块的扫描顺序。例如,如果当前块是具有高度比宽度长(例如,nx2n或nx4n)的形状的编码块或变换块,则可以选择对角线扫描或水平扫描中的至少之一。另一方面,如果当前块是具有宽度比高度长(例如,2n
×
n或4n
×
n)的形状的编码块或变换块,则可以选择对角线扫描或竖直扫描中的至少之一。
[0246]
可以将当前块划分成预定子块,并且可以以子块为单位执行变换系数的扫描。例如,可以对包括预定数量的像素的变换系数基本块单元执行变换系数的扫描。
[0247]
即使当当前块具有非正方形形状时,也可以将当前块划分成子块,并且可以以子块为单位执行扫描。此时,子块的大小可以具有固定值,或者可以具有基于当前块(例如,编码块或变换块)的大小或形状中的至少之一而变化的值。
[0248]
例如,如上面参照变换系数基本块所描述的,子块可以包括固定数量的像素(例如,16)。这里,根据编码块或变换块的形状,可以将子块的大小设置为4
×
4、2
×
8或8
×
2等。
[0249]
子块的分割类型可以与编码块或变换块相同。替选地,可以独立于编码块的分割类型来确定子块的分割类型。根据分割类型,子块可以具有正方形形状或非正方形形状。
[0250]
可以根据当前块的扫描顺序确定每个子块的扫描顺序。例如,图20是示出根据当前块的扫描顺序的子块之间的扫描顺序的图。
[0251]
在图20所示的示例中,当当前块的扫描顺序是对角线扫描时,子块之间的扫描顺序或子块中的扫描顺序中的至少之一可以跟随对角线扫描。另一方面,当当前块的扫描顺序是水平扫描时,子块之间的扫描顺序或子块中的变换系数的扫描顺序中的至少之一可以跟随水平扫描。替选地,如果当前块的扫描顺序是竖直扫描,则子块之间的扫描顺序或子块中的扫描顺序中的至少之一可以跟随竖直扫描。
[0252]
替选地,可以根据编码块或当前块的形状或大小自适应地设置每个子块的扫描顺
序。也就是说,可以根据当前块的大小或形状来不同地设置变换系数基本块的扫描顺序。
[0253]
图21是示出根据当前块的形状的变换系数基本块的扫描顺序的图。在图21中,每个子块上标记的数字表示扫描顺序。
[0254]
如果当前块是具有高度比宽度长的形状的编码块或变换块,则可以使用对角线扫描来顺序地扫描变换系数基本块,如图21所示的示例。
[0255]
另一方面,如果当前块是具有宽度比高度长的形状的编码块或变换块,则可以使用水平扫描来顺序地扫描变换系数基本块,如图21所示的示例。
[0256]
也就是说,根据当前块的形状,可以将变换系数基本块的扫描顺序设置为不同。
[0257]
在图21中定义的当前块的形状与变换系数基本块的扫描顺序之间的关系仅是本发明的示例,并且本发明不限于此。例如,与图21所示的示例不同,如果当前块是具有高度比宽度长的形状的编码块或变换块,则还可以使用竖直扫描来顺序地扫描变换系数基本块。
[0258]
根据本发明的实施方式,可以以块组为单位(或以块为单位)执行扫描,或者可以以块组为单位确定扫描顺序。这里,块组可以表示执行扫描的块单元,或者可以表示共享相同扫描类型的一组变换块。块组可以包括至少一个变换块。替选地,可以将构成正方形块的多个非正方形变换块定义为块组。
[0259]
例如,如果确定了块组的大小或范围,则可以将块组划分成用于扫描的单元,然后可以执行对块组的扫描。这里,扫描单元可以具有与块组中包括的变换块相同的大小或相同的形状。替选地,扫描单元的大小或形状中的至少之一可以与块组中包括的变换块不同。例如,扫描单元限于正方形形状,而块组包括非正方形形状的变换块。
[0260]
例如,如果确定了块组的大小或范围,则可以确定块组的扫描顺序,并且可以将确定的扫描顺序应用于块组中的所有变换块。
[0261]
块组可以具有正方形形状或非正方形形状。另外,块组可以包括至少一个非正方形形状变换块或至少一个正方形形状变换块。
[0262]
块组的大小可以具有固定值,或者可以具有可变地确定的值。例如,块组的大小可以具有例如64
×
64、32
×
32或16
×
16的固定值,或者可以基于关于通过比特流发送的块组的大小的信息来确定。
[0263]
如果获得当前块的残差系数,则可以对当前块的残差系数执行逆量化s1650。
[0264]
可以确定是否跳过对当前块的解量化残差系数的逆变换s1660。具体地,解码器可以确定是否跳过在当前块的水平方向或竖直方向中的至少一个方向上的逆变换。在确定在当前块的水平方向或竖直方向中的至少一个方向上应用逆变换时,可以通过对当前块的解量化残差系数进行逆变换来获得当前块的残差样本s1670。此处,可以使用dct、dst和klt中的至少之一来执行逆变换。
[0265]
在当前块的水平方向和竖直方向二者上均跳过逆变换时,不在当前块的水平方向和竖直方向上执行逆变换。在这种情况下,可以通过使用预定值对解量化残差系数进行缩放来获得当前块的残差样本s1680。
[0266]
跳过在水平方向上的逆变换意味着不在水平方向上执行逆变换,但是在竖直方向上执行逆变换。此时,可以在水平方向上执行缩放。
[0267]
跳过竖直方向上的逆变换意味着不在竖直方向上执行逆变换,但是在水平方向上
执行逆变换。此时,可以在竖直方向上执行缩放。
[0268]
可以依赖于当前块的分割类型来确定是否可以针对当前块使用逆变换跳过技术。例如,如果通过基于二叉树的分割生成当前块,则可以针对当前块限制逆变换跳过方案。因此,在通过基于二叉树的分割生成当前块时,可以通过对当前块进行逆变换来获得当前块的残差样本。另外,在通过基于二叉树的分割生成当前块时,可以省略对指示是否跳过逆变换的信息(例如,transform_skip_flag(变换跳过标志))进行的编码/解码。
[0269]
替选地,在通过基于二叉树的分割生成当前块时,可以将逆变换跳过方案限制到水平方向或竖直方向中的至少一个方向。此处,可以基于从比特流解码的信息来确定逆变换跳过方案被限制的方向,或者可以基于当前块的大小、当前块的形状或当前块的帧内预测模式中的至少之一来自适应地确定逆变换跳过方案被限制的方向。
[0270]
例如,在当前块是宽度大于高度的非正方形块时,可以仅在竖直方向上允许逆变换跳过方案并且在水平方向上限制逆变换跳过方案。即,在当前块是2n
×
n时,在当前块的水平方向上执行逆变换,并且可以在竖直方向上选择性地执行逆变换。
[0271]
另一方面,在当前块是高度大于宽度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案并且在竖直方向上限制逆变换跳过方案。即,在当前块是n
×
2n时,在当前块的竖直方向上执行逆变换,并且可以在水平方向上选择性地执行逆变换。
[0272]
与上述示例相比,在当前块是宽度大于高度的非正方形块时,可以仅在水平方向上允许逆变换跳过方案,并且在当前块是高度大于宽度的非正方形块时,可以仅在竖直方向上允许逆变换跳过方案。
[0273]
可以通过比特流来对指示是否针对水平方向跳过逆变换的信息或者指示是否针对竖直方向跳过逆变换的信息进行信号通知。例如,指示是否跳过水平方向上的逆变换的信息是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”中的至少之一来确定是否跳过水平方向或竖直方向上的逆变换。
[0274]
可以设置成:依赖于当前块的分割类型跳过对当前块的任何一个方向的逆变换。例如,如果通过基于二叉树的分割生成当前块,则可以跳过水平方向或竖直方向上的逆变换。即,如果通过基于二叉树的分割生成当前块,则可以在不对指示是否跳过当前块的逆变换的信息(例如,transform_skip_flag(变换跳过标志)、hor_transform_skip_flag、ver_transform_skip_flag)进行编码/解码的情况下,确定在水平方向或竖直方向中的至少一个方向上跳过当前块的逆变换。
[0275]
可以以具有特定形状的块为单位执行残差信号的编码/解码。这里,特定形状可以意味着正方形块或者是宽度与高度之间的比率等于或大于预定值的非正方形块。为了便于说明,在下面描述的实施方式中假设残差信号的编码/解码以具有正方形形状的块为单位执行。
[0276]
如果作为对残差信号进行编码/解码的目标的当前块(例如,编码块或变换块)具有非正方形形状,则将非正方形形状的当前块划分或转换为正方形形状的块,并且可以对
正方形形状的块执行残差信号(例如,残差系数)的量化、变换或编码/解码。
[0277]
例如,可以以正方形形状的块为单位确定变换类型。这里,变换类型可以表示变换方案(例如,dct或dst)或变换模式(例如,2d变换模式、1d变换(竖直/水平)模式或非变换模式)中的至少之一。为此,可以将非正方形形状的当前块划分成正方形形状的子块,并且以子块为单位确定变换类型。
[0278]
图22是示出将非正方形形状的当前块划分成正方形形状的子块的示例的图。
[0279]
如果当前块是非正方形形状的块,则可以将当前块划分成具有正方形形状的多个子块,如图22所示的示例。在图22中,示出了nx2n类型的块被划分成n
×
n类型子块。
[0280]
可以针对每个划分的子块确定变换类型。也就是说,可以独立地变换与当前块的上部分相对应的第一子变换块和与当前块的下部分相对应的第二子变换块,例如以dct或dst。
[0281]
替选地,可以对当前块中包括的多个子块中的每一个执行第一变换,然后可以对包括多个子块的单元执行第二变换。这里,第一变换和第二变换可以在变换模式、变换方案或变换的目标区域中的至少之一中彼此不同。
[0282]
作为另一示例,可以通过将非正方形形状的当前块与相邻块合并来生成正方形形状的块,并且可以在所生成的正方形形状的块上确定变换类型。此时,当前块可以与邻近当前块的左侧、右侧、顶部或底部的至少一个相邻块合并。合并块中包括的多个块可以具有相同的变换类型。
[0283]
替选地,还可以对正方形形状的合并块执行第一变换,然后对正方形形状的合并块中包括的多个块中的每一个执行第二变换。
[0284]
可以将非正方形形状的当前块转换为正方形形状,并且可以对转换后的当前块执行变换。
[0285]
例如,图23至图26是示出将非正方形形状的块转换为正方形形状的块的示例的图。
[0286]
当当前块具有非正方形形状时,可以通过基于预定大小或预定形状将当前块划分成子块并且以预定的顺序重新排列划分的子块来将当前块转换为正方形形状。这里,预定顺序可以包括z扫描、竖直扫描或水平扫描,或者z扫描、竖直扫描或水平扫描的相反顺序中的至少之一。可以基于当前块的大小、形状、编码模式(例如,帧内模式或帧间模式)或帧内预测模式(例如,帧内预测模式的方向或角度)中的至少之一来确定用于转换当前块的扫描顺序。替选地,可以在编码器/解码器中使用预定义的顺序,或者通过比特流来用信号通知用于指定子块的排列顺序的信息。
[0287]
图23和图24是示出将n
×
4n类型的块转换为正方形形状的块的示例的图。
[0288]
为了将当前块转换为正方形块,可以将n
×
4n类型的块划分成相同形状的四个子块。此后,划分的子块在水平方向上排成行,从而生成正方形形状的块。
[0289]
在图23中示出,通过将位于当前块的下部分的子块(3、4)排列到位于当前块的上部分的子块(1、2)的右侧来生成2n
×
2n大小的块(使用z扫描顺序或水平扫描顺序)。在图24中示出,通过根据竖直扫描顺序在水平方向上排列子块(即,按照1、3、2、4的顺序排列子块)来生成2n
×
2n大小的块。
[0290]
图25和图26是示出将4n
×
n类型的块转换为正方形形状的块的示例的图。
[0291]
为了将当前块转换为正方形块,可以将4n
×
n形状的块划分成相同形状的四个子块。随后,划分的子块在竖直方向上排列成行,从而生成正方形形状的块。
[0292]
在图25中示出,通过将位于当前块的右侧的子块(3、4)排列到位于当前块的左侧的子块(1、2)的底部来生成2n
×
2n大小的块(使用z扫描顺序或竖直扫描顺序)。在图26中示出,通过根据水平扫描顺序在竖直方向上排列子块(即,按照1、3、2、4的顺序排列子块)来生成2n
×
2n的块。
[0293]
在图23至图26中示出,当前块被划分成四个子块,以将当前块转换成正方形形状。然而,还可以将当前块划分成更大数量或更少数量的子块,以将当前块转换成正方形形状的块。
[0294]
在将当前块转换成正方形形状的块之后,可以对转换后的块执行dct或dst变换。替选地,还可以将当前块转换为正方形形状的块,然后通过将变换跳过应用于转换块来对残差系数进行编码。
[0295]
作为另一示例,可以对非正方形形状的块执行量化或变换。然而,可以以正方形的块为单位对用于完成量化或变换的非正方形形状的块的变换系数进行编码。也就是说,可以对正方形形状的块执行变换系数的编码/解码,而对非正方形形状的块执行变换或量化。
[0296]
尽管已经基于一系列步骤或流程图描述了上述实施方式,但是它们不限制本发明的时序顺序,并且可以根据需要同时或以不同顺序执行。此外,构成上述实施方式中的框图的部件(例如,单元、模块等)中的每一个可以由硬件装置或软件以及多个部件来实现。或者,可以通过单个硬件装置或软件来组合并实现多个部件。上述实施方式可以以程序指令的形式实现,所述程序指令可以通过各种计算机部件执行并被记录在计算机可读记录介质中。计算机可读记录介质可以包括程序命令、数据文件、数据结构等之一或其组合。计算机可读介质的示例包括诸如硬盘、软盘和磁带的磁介质、诸如cd-rom和dvd的光学记录介质、诸如光磁软盘的磁光介质、介质和专门被配置成存储和执行程序指令的硬件装置例如rom、ram、闪存等。硬件装置可以被配置成作为一个或更多个软件模块来进行操作以用于执行根据本发明的处理,反之亦然。
[0297]
工业应用性
[0298]
本发明可以应用于能够对视频进行编码/解码的电子装置。
[0299]
本发明还可以通过以下实施方案来实现。
[0300]
实施方案1.一种用于对视频进行解码的方法,所述方法包括:
[0301]
确定当前编码块的合并目标候选块;
[0302]
指定所述合并目标候选块中的至少之一;以及
[0303]
通过将指定的合并目标候选块与所述当前编码块合并来生成合并块。
[0304]
实施方案2.根据实施方案1所述的方法,其中,所述合并块中包括的多个编码块具有相同的运动信息或者具有相同的帧内预测模式。
[0305]
实施方案3.根据实施方案1所述的方法,其中,所述合并块中包括的多个编码块具有相同的变换类型。
[0306]
实施方案4.根据实施方案3所述的方法,其中,所述变换类型包括变换方案或变换模式中的至少之一。
[0307]
实施方案5.根据实施方案1所述的方法,其中,所述合并目标候选块包括与所述当
前编码块邻近的相邻块中的至少之一。
[0308]
实施方案6.根据实施方案5所述的方法,其中,基于所述当前编码块和相邻编码块的高度、宽度或大小中的至少之一来确定所述相邻块是否可用作所述合并目标候选块。
[0309]
实施方案7.根据实施方案5所述的方法,其中,仅当所述当前编码块的大小或形状满足预定义条件时,才允许将所述当前编码块与所述合并目标候选块合并。
[0310]
实施方案8.一种用于对视频进行编码的方法,所述方法包括:
[0311]
确定当前编码块的合并目标候选块;
[0312]
指定所述合并目标候选块中的至少之一;以及
[0313]
通过将指定的合并目标候选块与所述当前编码块合并来生成合并块。
[0314]
实施方案9.根据实施方案8所述的方法,其中,所述合并块中包括的多个编码块具有相同的运动信息或者具有相同的帧内预测模式。
[0315]
实施方案10.根据实施方案8所述的方法,其中,所述合并块中包括的多个编码块具有相同的变换类型。
[0316]
实施方案11.根据实施方案10所述的方法,其中,所述变换类型包括变换方案或变换模式中的至少之一。
[0317]
实施方案12.根据实施方案8所述的方法,其中,所述合并目标候选块包括与所述当前编码块邻近的相邻块中的至少之一。
[0318]
实施方案13.根据实施方案12所述的方法,其中,基于所述当前编码块和相邻编码块的高度、宽度或大小中的至少之一来确定所述相邻块是否可用作所述合并目标候选块。
[0319]
实施方案14.根据实施方案12所述的方法,其中,仅当所述当前编码块的大小或形状满足预定义条件时,才允许将所述当前编码块与所述合并目标候选块合并。
[0320]
实施方案15.一种用于对视频进行解码的装置,所述装置包括:
[0321]
图片分割单元,用于:确定当前编码块的合并目标候选块;指定所述合并目标候选块中的至少之一;以及通过将指定的合并目标候选块与所述当前编码块合并来生成合并块。
再多了解一些

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

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

相关文献