图像编码/解码方法和用于所述方法的记录介质与流程

未命名 08-13 阅读:79 评论:0

图像编码/解码方法和用于所述方法的记录介质
1.本技术是申请日为2017年05月23日,申请号为“201780032625.8”,标题为“图像编码/解码方法和用于所述方法的记录介质”的发明专利申请的分案申请。
技术领域
2.本发明涉及一种用于对图像进行编码/解码的方法和设备。更具体地讲,本发明涉及一种用于通过使用运动矢量预测来执行运动补偿的方法和设备。


背景技术:

3.近来,对诸如高清(hd)图像和超高清(uhd)图像的高分辨率和高质量图像的需求在各个应用领域已获得增长。然而,与传统的图像数据相比,更高分辨率和质量的图像数据的数据量有所增加。因此,当通过使用诸如传统的有线宽带网络和无线宽带网络的介质发送图像数据时,或者当通过使用传统的存储介质存储图像数据时,发送和存储的成本增加。为了解决这些随着图像数据的分辨率和质量的提高而出现的问题,对于更高分辨率和更高质量的图像,需要高效图像编码/解码技术。
4.图像压缩技术包括各种技术,包括:从当前画面的先前画面或后续画面预测包括在当前画面中的像素值的帧间预测技术;通过使用当前画面中的像素信息来预测包括在当前画面中的像素值的帧内预测技术;用于压缩残差信号的能量的变换和量化技术;向高出现频率的值分配短码并且向低出现频率的值分配长码的熵编码技术;等等。通过使用这样的图像压缩技术,图像数据可被有效压缩,并且可被发送或存储。
5.在传统的运动补偿中,仅空间运动矢量候选、时间运动矢量候选和零运动矢量候选被添加到将被使用的运动矢量候选列表,并且仅单向预测和双向预测被使用,因此对于提高编码效率有限制。


技术实现要素:

6.技术问题
7.本发明可提供一种用于通过使用组合运动矢量候选来执行运动补偿以提高图像的编码/解码效率的方法和设备。
8.本发明可提供一种用于通过使用单向预测、双向预测、三向预测和四向预测来执行运动补偿以提高图像的编码/解码效率的方法和设备。
9.解决方案
10.根据本发明,一种对图像进行解码的方法可包括:根据当前块的帧间预测方向来产生多个运动矢量候选列表;通过使用所述多个运动矢量候选列表来获得针对当前块的多个运动矢量;通过使用所述多个运动矢量来确定针对当前块的多个预测块;以及基于所述多个预测块来获得针对当前块的最终预测块。
11.根据本发明,一种对图像进行编码的方法可包括:根据当前块的帧间预测方向来产生多个运动矢量候选列表;通过使用所述多个运动矢量候选列表来获得针对当前块的多
个运动矢量;通过使用所述多个运动矢量来确定针对当前块的多个预测块;以及基于所述多个预测块来获得针对当前块的最终预测块。
12.根据所述对图像进行编码/解码的方法,帧间预测方向可指示单向预测或多向预测,并且所述多向预测可包括三向预测或更多向预测。
13.根据所述对图像进行编码/解码的方法,运动矢量候选列表可以是针对参考画面列表而被产生的。
14.根据所述对图像进行编码/解码的方法,运动矢量候选列表可包括以下运动矢量候选中的至少一个:从当前块的空间邻近块获得的空间运动矢量候选、从当前块的同位块获得的时间运动矢量候选、以及预定义值的运动矢量候选。
15.根据所述对图像进行编码/解码的方法,运动矢量候选列表可包括通过对以下运动矢量候选中的至少两个进行组合而产生的组合运动矢量候选:所述空间运动矢量候选、所述时间运动矢量候选以及所述预定义值的运动矢量候选。
16.根据所述对图像进行编码/解码的方法,所述最终预测块可以是基于所述多个预测块的加权和而被确定的。
17.根据所述对图像进行编码/解码的方法,应用于所述多个预测块的权重可以是基于权重预测值和权重差值而被确定的。
18.有益效果
19.在本发明中,提供了一种用于通过使用组合运动矢量候选来执行运动补偿以提高图像的编码/解码效率的方法和设备。
20.在本发明中,提供了一种用于通过使用单向预测、双向预测、三向预测和四向预测来执行运动补偿以提高图像的编码/解码效率的方法和设备。
附图说明
21.图1是示出根据本发明的实施例的编码设备的配置的框图。
22.图2是示出根据本发明的实施例的解码设备的配置的框图。
23.图3是示意性地示出当对图像进行编码和解码时的图像的分区结构的示图。
24.图4是示出可被包括在编码单元(cu)中的预测单元(pu)的形式的示图。
25.图5是示出可被包括在编码单元(cu)中的变换单元(tu)的形式的示图。
26.图6是用于解释帧内预测的处理的实施例的示图。
27.图7是用于解释帧间预测的处理的实施例的示图。
28.图8是用于解释根据帧内预测模式的变换集的示图。
29.图9是用于解释变换的处理的示图。
30.图10是用于解释对量化的变换系数进行扫描的示图。
31.图11是用于解释块分区的示图。
32.图12是示出根据本发明的对图像进行编码的方法的流程图。
33.图13是示出根据本发明的对图像进行解码的方法的流程图。
34.图14是用于解释获得当前块的空间运动矢量候选的示例的示图。
35.图15是用于解释获得当前块的时间运动矢量候选的示例的示图。
36.图16是示出对同位块的运动矢量进行缩放以获得当前块的时间运动矢量候选的
示例的示图。
37.图17是示出产生运动矢量候选列表的示例的示图。
38.图18是示出将具有预定值的运动矢量添加到运动矢量候选列表的示例的示图。
39.图19是示出从运动矢量候选列表去除运动矢量候选的示例的示图。
40.图20是示出运动矢量候选列表的示例的示图。
41.图21是示出从运动矢量候选列表获得当前块的预测运动矢量候选的示例的示图。
42.图22a和图22b是示出用于关于运动补偿的信息的语法的示例的示图。
具体实施方式
43.可对本发明做出多种修改,并且存在本发明的多种实施例,其中,现在将参照附图提供所述实施例的示例并且将详细描述所述实施例的示例。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同形式或替换形式。相似的参考标号指在各方面相同或相似的功能。在附图中,为了清楚起见,元件的形状和尺寸可被夸大。在本发明的以下详细描述中,对通过图示的方式示出可对本发明进行实施的具体实施例的附图进行参照。这些实施例被足够详细地描述以使本领域技术人员能够实施本公开。应该理解,本公开的各种实施例尽管不同,但不必是相互排他的。例如,在不脱离本公开的精神和范围的情况下,这里描述的与一个实施例关联的特定特征、结构和特性可在其它实施例中被实施。此外,应该理解,在不脱离本公开的精神和范围的情况下,每个公开的实施例内的各个元件的位置或布置可被修改。因此,以下详细描述并不用以限制的含义,本公开的范围经由所附权利要求(在合适的解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
44.在说明书中使用的术语“第一”、“第二”等可被用于描述各种组件,但这些组件并不被解释为限制所述术语。所述术语仅被用于将一个组件与另一组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被称为“第二”组件,并且“第二”组件也可被类似地称为“第一”组件。术语“和/或”包括多个项的组合或者是多个项中的任意一项。
45.将理解的是,在本说明书中,当元件被简单称为“连接到”或“结合到”另一元件而不是“直接连接到”或“直接结合到”另一元件时,它可以“直接连接到”或“直接结合到”另一元件,或者是在其间插入其它元件的情况下连接到或结合到另一元件。相反,应该理解,当元件被称为“直接结合”或“直接连接”到另一元件时,不存在中间元件。
46.此外,在本发明的实施例中示出的组成部件被独立示出,以便呈现彼此不同的特性功能。因此,这并不意味着每个组成部件以单独的硬件或软件的组成单元被组成。换句话说,为了方便,每个组成部件包括枚举的组成部件中的每一个。因此,每个组成部件中的至少两个组成部件可被组合形成一个组成部件,或者一个组成部件可被划分为多个组成部件以执行每个功能。在没有脱离本发明的本质的情况下,每个组成部件被组合的实施例以及一个组成部件被划分的实施例也被包括在本发明的范围中。
47.在本说明书中使用的术语仅用于描述具体实施例,而不旨在限制本发明。以单数使用的表达包括复数表达,除非它在上下文中具有明显不同的含义。在本说明书中,将理解,诸如“包括...的”、“具有...的”等的术语旨在指明说明书中所公开的特征、数量、步骤、行为、元件、部件、或其组合的存在,而并不旨在排除一个或更多个其它特征、数量、步骤、行
为、元件、部件、或其组合可能存在或者可能被添加的可能性。换句话说,当特定元件被称为“被包括”时,除相应元件以外的元件并不被排除,而是,另外的元件可被包括在本发明的实施例中或者是本发明的范围中。
48.此外,一些组成元件可能不是执行本发明的必要功能的不可缺的组成元件,而是仅提升其性能的可选组成元件。可通过仅包括用于实施本发明的实质的不可缺的组成部件而排除在提升性能时使用的组成部件来实施本发明。仅包括所述不可缺的组成部件而排除在仅提升性能时使用的可选组成部件的结构也被包括在本发明的范围中。
49.在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知功能或结构,这是因为它们会不必要地模糊对本发明的理解。附图中的相同的组成元件通过相同的参考标号来表示,并且对相同元件的重复描述将被省略。
50.此外,在下文中,图像可意为构成视频的画面,或者可意为视频本身。例如,“对图像进行编码或解码或者进行两者”可意为“对视频进行编码或解码或者进行两者”,并且可意为“对视频的多个图像之中的一个图像进行编码或解码或者进行两者”。这里,画面和图像可具有相同的含义。
51.术语描述
52.编码器:可意为执行编码的设备。
53.解码器:可意为执行解码的设备。
54.解析:可意为通过执行熵解码来确定语法元素的值,或者可意为熵解码本身。
55.块:可意为m
×
n矩阵的样点。这里,m和n是正整数,并且块可意为二维形式的样点矩阵。
56.样点:是块的基本单元,并且可指示依据比特深度(bd)而范围为0至2bd

1的值。样点在本发明中可意为像素。
57.单元:可意为对图像进行编码和解码的单元。在对图像进行编码和解码时,单元可以是通过对一个图像进行分区而产生的区域。此外,单元可意为在编码或解码期间当一个图像被分区为多个子划分单元时的子划分单元。在对图像进行编码和解码时,可执行针对每个单元的预定处理。一个单元可被分区为大小比该单元的大小更小的子单元。依据功能,单元可意为块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、亮度分量块的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种大小和形状,具体而言,单元的形状可以是二维几何图形,诸如矩形、正方形、梯形、三角形、五边形等。此外,单元信息可包括单元类型(指示编码单元、预测单元、变换单元等)、单元大小、单元深度、对单元进行编码和解码的顺序等中的至少一个。
58.重建邻近单元:可意为在空间上/时间上被在先编码或解码的重建单元,并且重建单元与编码/解码目标单元相邻。这里,重建邻近单元可意为重建邻近块。
59.邻近块:可意为与编码/解码目标块相邻的块。与编码/解码目标块相邻的块可意为具有与编码/解码目标块接触的边界的块。邻近块可意为位于编码/解码目标块的相邻顶点的块。邻近块可意为重建邻近块。
60.单元深度:可意为单元的被分区程度。在树结构中,根节点可以是最高节点,叶节点可以是最低节点。
61.符号:可意为编码/解码目标单元的语法元素、编码参数、变换系数的值等。
62.参数集:可意为比特流的结构中的头信息。参数集可包括视频参数集、序列参数集、画面参数集或自适应参数集中的至少一个参数集。此外,参数集可意为条带头信息和并行块(tile)头信息等。
63.比特流:可意为包括编码图像信息的比特串。
64.预测单元:可意为当执行帧间预测或帧内预测以及针对预测的补偿时的基本单元。一个预测单元可被分区为多个分区。在这种情况下,多个分区中的每个分区可以是在执行预测和补偿时的基本单元,并且从预测单元分区获得的每个分区可以是预测单元。此外,一个预测单元可以被分区为多个小预测单元。预测单元可具有各种大小和形状,并且具体来说,预测单元的形状可以是二维几何图形,诸如矩形、正方形、梯形、三角形和五边形等。
65.预测单元分区:可意为分区出的预测单元的形状。
66.参考画面列表:可意为包括至少一个参考画面的列表,其中,所述至少一个参考画面被用于帧间预测或运动补偿。参考画面列表的类型可以是list combined(lc)、list 0(l0)、list 1(l1)、list 2(l2)、list 3(l3)等。至少一个参考画面列表可被用于帧间预测。
67.帧间预测指示符:可意为以下之一:帧间预测情况下的编码/解码目标块的帧间预测方向(单向预测、双向预测等)、用于通过所述编码/解码目标块产生预测块的参考画面的数量、以及用于通过所述编码/解码目标块执行帧间预测或运动补偿的参考块的数量。
68.参考画面索引:可意为参考画面列表中的特定参考画面的索引。
69.参考画面:可意为特定单元为了帧间预测或运动补偿所参考的画面。参考图像可被称为参考画面。
70.运动矢量:是用于帧间预测或运动补偿的二维矢量,并且可意为编码/解码目标画面与参考画面之间的偏移。例如,(mvx,mvy)可指示运动矢量,mvx可指示水平分量,mvy可指示垂直分量。
71.运动矢量候选:可意为当预测运动矢量时成为预测候选的单元,或者可意为该单元的运动矢量。
72.运动矢量候选列表:可意为通过使用运动矢量候选而配置的列表。
73.运动矢量候选索引:可意为指示运动矢量候选列表中的运动矢量候选的指示符。运动矢量候选索引可被称为运动矢量预测因子的索引。
74.运动信息:可意为运动矢量、参考画面索引和帧间预测指示符,以及包括参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引等中的至少一个的信息。
75.合并候选列表:可意为通过使用合并候选而配置的列表。
76.合并候选:可包括空间合并候选、时间合并候选、组合合并候选、组合双向预测合并候选、零合并候选等。合并候选可包括诸如预测类型信息的运动信息、用于每个列表的参考画面索引、运动矢量等。
77.合并索引:可意为指示合并候选列表中的合并候选的信息。此外,合并索引可指示与当前块在空间/时间上相邻的重建块之中的获得合并候选的块。此外,合并索引可指示合并候选的多条运动信息中的至少一条。
78.变换单元:可意为当对残差信号执行与变换、逆变换、量化、反量化以及变换系数编码/解码类似的编码/解码时的基本单元。一个变换单元可被分区为多个小变换单元。变
换单元可具有各种大小和形状。具体而言,变换单元的形状可以是二维几何图形,诸如矩形、正方形、梯形、三角形、五边形等。
79.缩放:可意为将一因子与变换系数等级相乘的处理,其结果是,变换系数可被产生。缩放还可被称为反量化。
80.量化参数:可意为在量化和反量化期间在对变换系数等级进行缩放时使用的值。这里,量化参数可以是被映射到量化的步长大小的值。
81.变量增量(delta)量化参数:可意为编码/解码目标单元的量化参数与预测出的量化参数之间的差值。
82.扫描:可意为对块或矩阵内的系数顺序进行排序的方法。例如,将二维矩阵排序为一维矩阵的操作可被称为扫描,并且将一维矩阵排序为二维矩阵的操作可被称为扫描或逆扫描。
83.变换系数:可意为在执行变换之后产生的系数值。在本发明中,量化的变换系数等级(即被应用了量化的变换系数)可被称为变换系数。
84.非零变换系数:可意为值不为0的变换系数,或者可意为值不为0的变换系数等级。
85.量化矩阵:可意为在量化和反量化中使用以便提高图像的主体质量(subject quality)或对象质量(object quality)的矩阵。量化矩阵可被称为缩放列表。
86.量化矩阵系数:可意为量化矩阵的每个元素。量化矩阵系数可被称为矩阵系数。
87.默认矩阵:可意为在编码器和解码器中被预先定义的预定量化矩阵。
88.非默认矩阵:可意为在编码器和解码器中未被预先定义的情况下由用户发送/接收的量化矩阵。
89.编码树单元:可由一个亮度分量(y)编码树单元以及相关的两个色度分量(cb,cr)编码树单元构成。每个编码树单元可通过使用至少一种分区方法(诸如四叉树、二叉树等)被分区,以构成诸如编码单元、预测单元、变换单元等的子单元。编码树单元可被用作用于指示像素块(即在图像的解码/编码处理中的处理单元,如输入图像的分区)的术语
90.编码树块:可用作用于指示y编码树单元、cb编码树单元和cr编码树单元之一的术语。
91.图1是示出根据本发明的实施例的编码设备的配置的框图。
92.编码设备100可以是视频编码设备或图像编码设备。视频可包括一个或更多个图像。编码设备100可按照时间顺序对视频的一个或更多个图像进行编码。
93.参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180以及参考画面缓冲器190。
94.编码设备100可按照帧内模式或帧间模式或者是帧内模式和帧间模式两者来对输入画面进行编码。此外,编码设备100可通过对输入画面进行编码来产生比特流,并可输出产生的比特流。当帧内模式被用作预测模式时,切换器115可切换到帧内。当帧间模式被用作预测模式时,切换器115可切换到帧间。这里,帧内模式可被称为帧内预测模式,帧间模式可被称为帧间预测模式。编码设备100可产生输入画面的输入块的预测块。此外,在产生预测块之后,编码设备100可对输入块和预测块之间的残差进行编码。输入画面可被称为作为当前编码的目标的当前图像。输入块可被称为当前块或者可被称为作为当前编码的目标的
编码目标块。
95.当预测模式是帧内模式时,帧内预测单元120可使用与当前块相邻的先前编码块的像素值作为参考像素。帧内预测单元120可通过使用参考像素来执行空间预测,并可通过使用空间预测来产生输入块的预测样点。这里,帧内预测可意为帧内帧预测。
96.当预测模式是帧间模式时,运动预测单元111可在运动预测处理中从参考画面搜索与输入块最优匹配的区域,并可通过使用搜索到的区域获得运动矢量。参考画面可被存储在参考画面缓冲器190中。
97.运动补偿单元112可通过使用运动矢量执行运动补偿来产生预测块。这里,运动矢量可以是用于帧间预测的二维矢量。此外,运动矢量可指示当前画面和参考画面之间的偏移。这里,帧间预测可意为帧间帧预测。
98.当运动矢量的值不为整数时,运动预测单元111和运动补偿单元112可通过对参考画面中的部分区域应用插值滤波器来产生预测块。为了基于编码单元执行帧间预测或运动补偿,可在跳过模式、合并模式、amvp模式和当前画面参考模式之中确定编码单元中的预测单元的运动预测和补偿方法使用哪种方法。可根据每种模式执行帧间预测或运动补偿。这里,当前画面参考模式可意为使用具有编码目标块的当前画面的预先构建的区域的预测模式。为了指明所述预先构建的区域,可定义针对当前画面参考模式的运动矢量。是否按照当前画面参考模式对编码目标块进行编码可通过使用编码目标块的参考画面索引而被编码。
99.减法器125可通过使用输入块和预测块之间的残差来产生残差块。残差块可被称为残差信号。
100.变换单元130可通过对残差块进行变换来产生变换系数,并可输出变换系数。这里,变换系数可以是通过对残差块进行变换而产生的系数值。在变换跳过模式中,变换单元130可跳过对残差块的变换。
101.可通过对变换系数应用量化来产生量化的变换系数等级。在下文中,在本发明的实施例中,量化的变换系数等级可被称为变换系数。
102.量化单元140可通过依据量化参数对变换系数进行量化来产生量化的变换系数等级,并可输出量化的变换系数等级。这里,量化单元140可通过使用量化矩阵来对变换系数进行量化。
103.熵编码单元150可通过根据概率分布对由量化单元140计算出的值或对在编码处理中计算出的编码参数值等执行熵编码来产生比特流,并可输出产生的比特流。熵编码单元150可对用于对图像进行解码的信息执行熵编码,并对图像的像素的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素等。
104.当熵编码被应用时,通过对具有高出现概率的符号分配少量比特并对具有低出现概率的符号分配大量比特来表示符号,从而减少对目标符号进行编码的比特流的大小。因此,通过熵编码,图像编码的压缩性能可提高。对于熵编码,熵编码单元150可使用诸如指数哥伦布、上下文自适应变长编码(cavlc)以及上下文自适应二进制算术编码(cabac)的编码方法。例如,熵编码单元150可通过使用变长编码/码(vlc)表来执行熵编码。此外,熵编码单元150可获得目标符号的二进制化方法以及目标符号/二进制位的概率模型,并且随后可通过使用获得的二进制化方法或获得的概率模型来执行算术编码。
105.为了对变换系数等级进行编码,熵编码单元150可通过使用变换系数扫描方法将
二维块形式的系数改变为一维矢量形式。例如,通过用右上扫描来扫描块的系数,二维形式的系数可被改变为一维矢量。根据变换单元的大小以及帧内预测模式,可使用用于沿列方向扫描二维块形式的系数的垂直方向扫描以及用于沿行方向扫描二维块形式的系数的水平方向扫描,而不是使用右上扫描。也就是说,依据变换单元的大小以及帧内预测模式,可确定右上扫描、垂直方向扫描和水平方向扫描之中的哪种扫描方法将被使用。
106.编码参数可包括由编码器编码并被发送到解码器的诸如语法元素的信息,并可包括可在编码或解码处理中获得的信息。编码参数可意为对图像进行编码或解码所必要的信息。例如,编码参数可包括以下项中的至少一个值或组合形式:块大小、块深度、块分区信息、单元大小、单元深度、单元分区信息、四叉树形式的分区标志、二叉树形式的分区标志、二叉树形式的分区方向、帧内预测模式、帧内预测方向、参考样点滤波方法、预测块边界滤波方法、滤波器抽头、滤波器系数、帧间预测模式、运动信息、运动矢量、参考画面索引、帧间预测方向、帧间预测指示符、参考画面列表、运动矢量预测因子、运动矢量候选列表、关于运动合并模式是否被使用的信息、运动合并候选、运动合并候选列表、关于跳过模式是否被使用的信息、插值滤波器类型、运动矢量大小、运动矢量表示的精确度、变换类型、变换大小、关于附加(二次)变换是否被使用的信息、关于残差信号是否存在的信息、编码块样式、编码块标志、量化参数、量化矩阵、环路内的滤波器信息、关于滤波器是否在环路内被应用的信息、环路内的滤波器系数、二值化/反二值化方法、上下文模型、上下文二进制位、旁通二进制位、变换系数、变换系数等级、变换系数等级扫描方法、图像显示/输出顺序、条带识别信息、条带类型、条带分区信息、并行块识别信息、并行块类型、并行块分区信息、画面类型、比特深度、以及亮度信号或色度信号的信息。
107.残差信号可意为原始信号与预测信号之间的差。可选择地,残差信号可以是通过对原始信号和预测信号之间的差进行变换而产生的信号。可选择地,残差信号可以是通过对原始信号和预测信号之间的差进行变换和量化而产生的信号。残差块可以是块单元的残差信号。
108.当编码设备100通过使用帧间预测执行编码时。编码的当前画面可被用作针对将被随后处理的另一图像的参考画面。因此,编码设备100可对编码的当前画面进行解码,并可将解码的图像存储为参考画面。为了执行解码,可对编码的当前画面执行反量化和逆变换。
109.量化的系数可通过反量化单元160被反量化,并可通过逆变换单元170被逆变换。可由加法器175将经过反量化和逆变换的系数与预测块相加,由此可产生重建块。
110.重建块可通过滤波器单元180。滤波器单元180可向重建块或重建画面应用去块滤波器、样点自适应偏移(sao)以及自适应环路滤波器(alf)中的至少一个。滤波器单元180可被称为环路滤波器。
111.去块滤波器可去除在块之间的边界处出现的块失真。为了确定去块滤波器是否被运行,可基于包括在块中的若干行或列中的像素来确定去块滤波器是否被应用于当前块。当去块滤波器被应用于块时,可依据所需的去块滤波器强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,可并行处理水平方向滤波和垂直方向滤波。
112.样点自适应偏移可将最优偏移值添加到像素值以便对编码误差进行补偿。样点自适应偏移可针对每个像素对经过去块滤波的图像和原始画面之间的偏移进行校正。为了对
特定画面执行偏移校正,可使用考虑每个像素的边缘信息来应用偏移的方法,或使用以下方法:将图像的像素分区为预定数量的区域,确定将被执行偏移校正的区域,并对所确定区域应用偏移校正。
113.自适应环路滤波器可基于通过将重建画面与原始画面进行比较而获得的值来执行滤波。图像的像素可被分区为预定组,被应用于每个组的一个滤波器被确定,并且不同的滤波可在每个组被执行。关于自适应环路滤波器是否被应用于亮度信号的信息可针对每个编码单元(cu)被发送。被应用于每个块的自适应环路滤波器的形状和滤波器系数可变化。此外,具有相同形式(固定形式)的自适应环路滤波器可在不考虑目标块的特性的情况下被应用。
114.经过滤波器单元180的重建块可被存储在参考画面缓冲器190中。
115.图2是示出根据本发明的实施例的解码设备的配置的框图。
116.解码设备200可以是视频解码设备或图像解码设备。
117.参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器255、滤波器单元260以及参考画面缓冲器270。
118.解码设备200可接收从编码设备100输出的比特流。解码设备200可按照帧内模式或帧间模式对比特流进行解码。此外,解码设备100可通过执行解码来产生重建画面,并可输出重建画面。
119.当在解码中使用的预测模式是帧内模式时,切换器可被切换到帧内。当在解码中使用的预测模式是帧间模式时,切换器可被切换到帧间。
120.解码设备200可从输入的比特流获得重建残差块,并可产生预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来产生作为解码目标块的重建块。解码目标块可被称为当前块。
121.熵解码单元210可通过根据概率分布对比特流执行熵解码来产生符号。产生的符号可包括具有量化的变换系数等级的符号。这里,熵解码的方法可与上述熵编码的方法类似。例如,熵解码的方法可以是上述熵编码的方法的逆处理。
122.为了对变换系数等级进行解码,熵解码单元210可执行变换系数扫描,由此,一维矢量形式的系数可被改变为二维块形式。例如,通过用右上扫描来扫描块的系数,一维矢量形式的系数可被改变为二维块形式。根据变换单元的大小以及帧内预测模式,可使用垂直方向扫描以及水平方向扫描,而不是使用右上扫描。也就是说,依据变换单元的大小以及帧内预测模式,可确定在右上扫描、垂直方向扫描和水平方向扫描之中的哪种扫描方法被使用。
123.量化的变换系数等级可通过反量化单元220被反量化,并可通过逆变换单元230被逆变换。量化的变换系数等级被反量化并被逆变换以便产生重建残差块。这里,反量化单元220可对量化的变换系数等级应用量化矩阵。
124.当帧内模式被使用时,帧内预测单元240可通过执行空间预测来产生预测块,其中,空间预测使用与解码目标块相邻的先前解码块的像素值。
125.当帧间模式被使用时,运动补偿单元250可通过执行运动补偿来产生预测块,其中,运动补偿使用存储在参考画面缓冲器270中的参考画面两者以及运动矢量。当运动矢量的值不是整数时,运动补偿单元250可通过对参考画面中的部分区域应用插值滤波器来产
生预测块。为了执行运动补偿,基于编码单元,可在跳过模式、合并模式、amvp模式和当前画面参考模式之中确定编码单元中的预测单元的运动补偿方法使用哪种方法。此外,可依据所述模式执行运动补偿。这里,当前画面参考模式可意为使用具有解码目标块的当前画面内的先前重建区域的预测模式。先前重建区域可不与解码目标块相邻。为了指明先前重建区域,可针对当前画面参考模式使用固定矢量。此外,指示解码目标块是否是按照当前画面参考模式被解码的块的标志或索引可被用信号发送,并可通过使用解码目标块的参考画面索引而被获得。针对当前画面参考模式的当前画面可存在于针对解码目标块的参考画面列表内的固定位置(例如,参考画面索引为0的位置或最后的位置)。此外,当前画面可以可变地位于参考画面列表内,为此,可用信号发送指示当前画面的位置的参考画面索引。
126.可通过加法器255将重建残差块与预测块相加。通过将重建残差块和预测块相加而产生的块可经过滤波器单元260。滤波器单元260可对重建块或重建画面应用去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个。滤波器单元260可输出重建画面。重建画面可被存储在参考画面缓冲器270中,并可被用于帧间预测。
127.图3是示意性地示出当对图像进行编码和解码时的图像的分区结构的示图。图3示意性地示出将一个单元分区为多个子单元的实施例。
128.为了对图像进行有效分区,编码单元(cu)可在编码和解码中被使用。这里,编码单元可意为进行编码的单元,单元可以是1)语法元素和2)包括图像样点的块的组合。例如,“单元的分区”可意为“与单元相关的块的分区”。块分区信息可包括关于单元深度的信息。深度信息可指示单元被分区的次数或单元被分区的程度或两者。
129.参照图3,图像300针对每个最大编码单元(lcu)被顺序分区,并且分区结构针对每个lcu被确定。这里,lcu和编码树单元(ctu)具有相同的含义。一个单元可具有基于树结构的深度信息,并可被分层分区。每个分区出的子单元可具有深度信息。深度信息指示单元被分区的次数或单元被分区的程度或两者,因此,深度信息可包括关于子单元的大小的信息。
130.分区结构可意为lcu 310中的编码单元(cu)的分布。cu可以是用于对图像进行有效编码的单元。所述分布可基于一个cu是否将被多次(即等于或大于2的正整数,包括2、4、8、16等)分区而被确定。分区出的cu的宽度大小和高度大小可分别为原始cu的一半宽度大小和一半高度大小。可选择地,根据分区的次数,分区出的cu的宽度大小和高度大小可分别小于原始cu的宽度大小和高度大小。分区出的cu可被递归地分区为多个进一步分区出的cu,其中,按照相同的分区方法,所述进一步分区出的cu具有比所述分区出的cu的宽度大小和高度大小更小的宽度大小和高度大小。
131.这里,cu的分区可被递归地执行直到预定深度。深度信息可以是指示cu的大小的信息,并且可被存储在每个cu中。例如,lcu的深度可以是0,并且最小编码单元(scu)的深度可以是预定最大深度。这里,lcu可以是具有上述最大大小的编码单元,并且scu可以是具有最小大小的编码单元。
132.每当lcu 310开始被分区,并且cu的宽度大小和高度大小通过分区操作而减小时,cu的深度增加1。在不能被分区的cu的情况下,cu针对每个深度可具有2n
×
2n大小。在能够被分区的cu的情况下,具有2n
×
2n大小的cu可被分区为多个n
×
n大小的cu。每当深度增加1时,n的大小减半。
133.例如,当一个编码单元被分区为四个子编码单元时,所述四个子编码单元之一的
宽度大小和高度大小可分别为原始编码单元的一半宽度大小和一半高度大小。例如,当32
×
32大小的编码单元被分区为四个子编码单元时,所述四个子编码单元中的每一个可具有16
×
16大小。当一个编码单元被分区为四个子编码单元时,编码单元可按照四叉树形式被分区。
134.例如,当一个编码单元被分区为两个子编码单元时,所述两个子编码单元之一的宽度大小或高度大小可分别为原始编码单元的一半宽度大小或一半高度大小。例如,当32
×
32大小的编码单元被垂直分区为两个子编码单元时,所述两个子编码单元中的每一个可具有16
×
32大小。例如,当32
×
32大小的编码单元被水平分区为两个子编码单元时,所述两个子编码单元中的每一个可具有32
×
16大小。当一个编码单元被分区为两个子编码单元时,编码单元可按照二叉树形式被分区。
135.参照图3,具有最小深度0的lcu的大小可以是64
×
64像素,并且具有最大深度3的scu的大小可以是8
×
8像素。这里,可由深度0来表示具有64
×
64像素的cu(即,lcu),可由深度1来表示具有32
×
32像素的cu,可由深度2来表示具有16
×
16像素的cu,并且可由深度3来表示具有8
×
8像素的cu(即,scu)。
136.此外,可通过cu的分区信息来表示关于cu是否将被分区的信息。分区信息可以是1比特信息。分区信息可被包括在除scu的所有cu中。例如,当分区信息的值为0时,cu可不被分区,当分区信息的值为1时,cu可被分区。
137.图4是示出可被包括在编码单元(cu)中的预测单元(pu)的形式的示图。
138.从lcu分区出的多个cu之中的不再被分区的cu可被分区为至少一个预测单元(pu)。该处理也可被称为分区。
139.pu可以是用于预测的基本单元。pu可按照跳过模式、帧间模式和帧内模式中的任一模式而被编码和解码。pu可依据所述模式按照各种形式被分区。
140.此外,编码单元可不被分区为多个预测单元,并且编码单元和预测单元可具有相同的大小。
141.如图4所示,在跳过模式中,cu可不被分区。在跳过模式中,可支持与不经分区的cu具有相同大小的2n
×
2n模式410。
142.在帧间模式中,在cu中可支持8个分区模式。例如,在帧间模式中,可支持2n
×
2n模式410、2n
×
n模式415、n
×
2n模式420、n
×
n模式425、2n
×
nu模式430、2n
×
nd模式435、nl
×
2n模式440以及nr
×
2n模式445。在帧内模式中,可支持2n
×
2n模式410和n
×
n模式425。
143.一个编码单元可被分区为一个或更多个预测单元。一个预测单元可被分区为一个或更多个子预测单元。
144.例如,当一个预测单元被分区为四个子预测单元时,所述四个子预测单元之一的宽度大小和高度大小可为原始预测单元的一半宽度大小和一半高度大小。例如,当32
×
32大小的预测单元被分区为四个子预测单元时,所述四个子预测单元中的每一个可具有16
×
16大小。当一个预测单元被分区为四个子预测单元时,预测单元可按照四叉树形式被分区。
145.例如,当一个预测单元被分区为两个子预测单元时,所述两个子预测单元之一的宽度大小或高度大小可为原始预测单元的一半宽度大小或一半高度大小。例如,当32
×
32大小的预测单元被垂直分区为两个子预测单元时,所述两个子预测单元中的每一个可具有16
×
32大小。例如,当32
×
32大小的预测单元被水平分区为两个子预测单元时,所述两个子
预测单元中的每一个可具有32
×
16大小。当一个预测单元被分区为两个子预测单元时,预测单元可按照二叉树形式被分区。
146.图5是示出可被包括在编码单元(cu)中的变换单元(tu)的形式的示图。
147.变换单元(tu)可以是cu内的用于变换、量化、逆变换和反量化的基本单元。tu可具有正方形状或矩形形状等。tu可按照cu的大小或cu的形式或两者而被独立确定。
148.从lcu分区出的cu之中的不再被分区的cu可被分区为至少一个tu。这里,tu的分区结构可以是四叉树结构。例如,如图5所示,一个cu 510可依据四叉树结构而被分区一次或更多次。一个cu被分区至少一次的情况可被称为递归分区。通过进行分区,一个cu 510可由具有不同大小的tu形成。可选择地,cu可依据对cu进行分区的垂直线的数量或对cu进行分区的水平线的数量或两者而被分区为至少一个tu。cu可被分区为彼此对称的tu,或者可被分区为彼此不对称的tu。为了将cu分区为彼此对称的tu,tu的大小/形状的信息可被用信号传送,并可从cu的大小/形状的信息获得。
149.此外,编码单元可不被分区为变换单元,并且编码单元和变换单元可具有相同的大小。
150.一个编码单元可被分区为至少一个变换单元,并且一个变换单元可被分区为至少一个子变换单元。
151.例如,当一个变换单元被分区为四个子变换单元时,所述四个子变换单元之一的宽度大小和高度大小可分别为原始变换单元的一半宽度大小和一半高度大小。例如,当32
×
32大小的变换单元被分区为四个子变换单元时,所述四个子变换单元中的每一个可具有16
×
16大小。当一个变换单元被分区为四个子变换单元时,变换单元可按照四叉树形式被分区。
152.例如,当一个变换单元被分区为两个子变换单元时,所述两个子变换单元之一的宽度大小或高度大小可分别为原始变换单元的一半宽度大小或一半高度大小。例如,当32
×
32大小的变换单元被垂直分区为两个子变换单元时,所述两个子变换单元中的每一个可具有16
×
32大小。例如,当32
×
32大小的变换单元被水平分区为两个子变换单元时,所述两个子变换单元中的每一个可具有32
×
16大小。当一个变换单元被分区为两个子变换单元时,变换单元可按照二叉树形式被分区。
153.当执行变换时,可通过使用预定变换方法中的至少一种变换方法对残差块进行变换。例如,所述预定变换方法可包括离散余弦变换(dct)、离散正弦变换(dst)、klt等。可通过使用以下项中的至少一个来确定哪种变换方法被应用于对残差块进行变换:预测单元的帧间预测模式信息、预测单元的帧内预测模式信息以及变换块的大小/形状。指示变换方法的信息可被用信号传送。
154.图6是用于解释帧内预测的处理的实施例的示图。
155.帧内预测模式可以是非方向模式或方向模式。非方向模式可以是dc模式或平面模式。方向模式可以是具有特定方向或角度的预测模式,并且方向模式的数量可以是等于或大于1的m。方向模式可被指示为模式编号、模式值和模式角度中的至少一个。
156.帧内预测模式的数量可以是等于或大于1的n,包括非方向模式和方向模式。
157.帧内预测模式的数量可依据块的大小而变化。例如,当块的大小为4
×
4或8
×
8时,帧内预测模式的数量可以是67,当块的大小是16
×
16时,帧内预测模式的数量可以是35,当
块的大小是32
×
32时,帧内预测模式的数量可以是19,当块的大小是64
×
64时,帧内预测模式的数量可以是7。
158.帧内预测模式的数量可被固定为n,而不管块的大小如何。例如,帧内预测模式的数量可被固定为35或67中的至少一个,而不管块的大小如何。
159.帧内预测模式的数量可依据颜色分量的类型而变化。例如,预测模式的数量可依据颜色分量是亮度信号还是色度信号而变化。
160.可通过使用重建邻近块中所包括的样点值或编码参数来执行帧内编码和/或解码。
161.为了按照帧内预测对当前块进行编码/解码,可识别包括在重建邻近块中的样点是否可用作编码/解码目标块的参考样点。当存在不能用作编码/解码目标块的参考样点的样点时,通过使用包括在重建邻近块中的样点中的至少一个样点,样点值被复制和/或插值到不能用作参考样点的样点,由此,不能用作参考样点的样点可被用作编码/解码目标块的参考样点。
162.在帧内预测中,基于帧内预测模式以及编码/解码目标块的大小中的至少一个,滤波器可被应用于参考样点或预测样点中的至少一个。这里,编码/解码目标块可意为当前块,并且可意为编码块、预测块和变换块中的至少一个。被应用于参考样点或预测样点的滤波器的类型可依据帧内预测模式或当前块的大小/形状中的至少一个而变化。滤波器的类型可依据滤波器抽头的数量、滤波器系数值或滤波器强度中的至少一个而变化。
163.在帧内预测模式之中的非方向平面模式中,当产生编码/解码目标块的预测块时,可根据样点位置通过使用当前样点的上参考样点、当前样点的左参考样点、当前块的右上参考样点、以及当前块的左下参考样点的加权和来产生预测块中的样点值。
164.在帧内预测模式之中的非方向dc模式中,当产生编码/解码目标块的预测块时,可通过当前块的上参考样点和当前块的左参考样点的均值来产生预测块。此外,可通过使用参考样点值对编码/解码块中与参考样点相邻的一个或更多个上方行以及一个或更多个左侧列执行滤波。
165.在帧内预测模式之中的多个方向模式(角度模式)的情况下,可通过使用右上参考样点和/或左下参考样点来产生预测块,并且所述多个方向模式可具有不同的方向。为了产生预测样点值,可执行实数单元的插值。
166.为了执行帧内预测方法,可从与当前预测块相邻的邻近预测块的帧内预测模式预测当前预测块的帧内预测模式。在通过使用从邻近帧内预测模式预测出的模式信息来预测当前预测块的帧内预测模式的情况下,在当前预测块和邻近预测块具有相同的帧内预测模式时,当前预测块和邻近预测块具有相同的帧内预测模式的信息可通过使用预定标志信息被发送。在当前预测块的帧内预测模式不同于邻近预测块的帧内预测模式时,可通过执行熵编码来对编码/解码目标块的帧内预测模式信息进行编码。
167.图7是用于解释帧间预测的处理的实施例的示图。
168.图7中示出的四角形可指示图像(或画面)。此外,图7的箭头可指示预测方向。也就是说,图像可根据预测方向被编码或解码或者被编码和解码。根据编码类型,每个图像可被分类为i画面(帧内画面)、p画面(单向预测画面)、b画面(双向预测画面)等。每个画面可依据每个画面的编码类型而被编码和解码。
169.当作为编码目标的图像是i画面时,画面本身可在无需帧间预测的情况下被帧内编码。当作为编码目标的图像是p画面时,可通过使用仅在前向的参考画面进行帧间预测或运动补偿来对图像进行编码。当作为编码目标的图像是b画面时,可通过使用在前向和逆向两者的参考画面进行帧间预测或运动补偿来对图像进行编码。可选择地,可通过使用在前向和逆向之一的参考画面进行帧间预测或运动补偿来对图像进行编码。这里,当帧间预测模式被使用时,编码器可执行帧间预测或运动补偿,并且解码器可响应于编码器执行运动补偿。通过使用参考画面被编码或解码或者被编码和解码的p画面和b画面的图像可被视为用于帧间预测的图像。
170.在下文中,将详细描述根据实施例的帧间预测。
171.可通过使用参考画面和运动信息两者来执行帧间预测或运动补偿。此外,帧间预测可使用上述跳过模式。
172.参考画面可以是当前画面的先前画面和后续画面中的至少一个。这里,帧间预测可依据参考画面来预测当前画面的块。这里,参考画面可意为在对块进行预测时使用的图像。这里,参考画面内的区域可通过使用指示参考画面的参考画面索引(refidx)、运动矢量等来指明。
173.帧间预测可选择参考画面和参考画面内与当前块相关的参考块。可通过使用选择的参考块来产生当前块的预测块。当前块可以是当前画面的块之中的作为当前编码目标或当前解码目标的块。
174.可由编码设备100和解码设备200从帧间预测的处理获得运动信息。此外,获得的运动信息可在执行帧间预测时被使用。这里,编码设备100和解码设备200可通过使用重建邻近块的运动信息或同位块(col块)的运动信息或两者的运动信息来提高编码效率或解码效率或两者。col块可以是先前被重建的同位画面(col画面)内的与编码/解码目标块的空间位置相关的块。重建邻近块可以是当前画面内的块、以及通过编码或解码或者编码或解码两者先前被重建的块。此外,重建块可以是与编码/解码目标块相邻的块,或者是位于编码/解码目标块的外部拐角处的块,或者是两者。这里,位于编码/解码目标块的外部拐角处的块可以是与水平相邻于编码/解码目标块的邻近块垂直相邻的块。可选择地,位于编码/解码目标块的外部拐角处的块可以是与垂直相邻于编码/解码目标块的邻近块水平相邻的块。
175.编码设备100和解码设备200可分别确定存在于col画面内的与编码/解码目标块空间相关的位置处的块,并可基于确定的块来确定预定义的相对位置。所述预定义的相对位置可以是存在于与编码/解码目标块空间相关的位置处的块的内部位置或外部位置或者是内部位置和外部位置两者。此外,编码设备100和解码设备200可基于所确定的所述预定义的相对位置来分别获得col块。这里,col画面可以是在参考画面列表中包括的至少一个参考画面中的一个画面。
176.获得运动信息的方法可根据编码/解码目标块的预测模式而变化。例如,被应用于帧间预测的预测模式可包括高级运动矢量预测(amvp)、合并模式等。这里,合并模式可被称为运动合并模式。
177.例如,当amvp作为预测模式被应用时,编码设备100和解码设备200可分别通过使用重建邻近块的运动矢量或col块的运动矢量或两者来产生运动矢量候选列表。重建邻近
块的运动矢量或col块的运动矢量或者两者可被用作运动矢量候选。这里,col块的运动矢量可被称为时间运动矢量候选,重建邻近块的运动矢量可被称为空间运动矢量候选。
178.编码设备100可产生比特流,比特流可包括运动矢量候选索引。也就是说,编码设备100可通过对运动矢量候选索引进行熵编码来产生比特流。运动矢量候选索引可指示从包括在运动矢量候选列表中的运动矢量候选中选择出的最优运动矢量候选。运动矢量候选索引可通过比特流从编码设备100被发送到解码设备200。
179.解码设备200可从比特流对运动矢量候选索引进行熵解码,并可通过使用经过熵解码的运动矢量候选索引在运动矢量候选列表中所包括的运动矢量候选之中选择解码目标块的运动矢量候选。
180.编码设备100可计算解码目标块的运动矢量和运动矢量候选之间的运动矢量差(mvd),并对mvd进行熵编码。比特流可包括经过熵编码的mvd。mvd可通过比特流从编码设备100被发送到解码设备200。这里,解码设备200可对从比特流接收到的mvd进行熵解码。解码设备200可通过解码的mvd与运动矢量候选之和来获得解码目标块的运动矢量。
181.比特流可包括指示参考画面的参考画面索引等,并且参考画面索引可被熵编码并通过比特流从编码设备100被发送到解码设备200。解码设备200可通过使用邻近块的运动信息来预测解码目标块的运动矢量,并可通过使用预测出的运动矢量以及运动矢量差来获得解码目标块的运动矢量。解码设备200可基于获得的运动矢量和参考画面索引信息来产生解码目标块的预测块。
182.作为获得运动信息的另一方法,合并模式被使用。合并模式可意为多个块的运动的合并。合并模式可意为一个块的运动信息被应用于另一个块。当合并模式被应用时,编码设备100和解码设备200可分别通过使用重建邻近块的运动信息或col块的运动信息或两者来产生合并候选列表。运动信息可包括以下至少一个:1)运动矢量、2)参考画面索引、以及3)帧间预测指示符。预测指示符可指示单向(l0预测、l1预测)或双向。
183.这里,合并模式可被应用于每个cu或每个pu。当合并模式在每个cu或每个pu被执行时,编码设备100可通过对预定义的信息进行熵解码来产生比特流,并可将比特流发送到解码设备200。比特流可包括所述预定义的信息。所述预定义的信息可包括:1)作为指示合并模式是否针对每个块分区被执行的信息的合并标志、2)作为指示与编码目标块相邻的邻近块之中的哪个块被合并的信息的合并索引。例如,与编码目标块相邻的邻近块可包括编码目标块的左邻近块、编码目标块的上邻近块、编码目标块的时间邻近块等。
184.合并候选列表可指示存储运动信息的列表。此外,合并候选列表可在执行合并模式之前被产生。存储在合并候选列表中的运动信息可以是以下运动信息中的至少一个:与编码/解码目标块相邻的邻近块的运动信息、参考画面中与编码/解码目标块相关的同位块的运动信息、通过对运动候选列表中存在的运动信息的预先组合而新产生的运动信息、以及零合并候选。这里,与编码/解码目标块相邻的邻近块的运动信息可被称为空间合并候选。参考画面中与编码/解码目标块相关的同位块的运动信息可被称为时间合并候选。
185.跳过模式可以是将邻近块本身的模式信息应用于编码/解码目标块的模式。跳过模式可以是用于帧间预测的模式之一。当跳过模式被使用时,编码设备100可对关于哪个块的运动信息被用作编码目标块的运动信息的信息进行熵编码,并可通过比特流将该信息发送到解码设备200。编码设备100可不将其它信息(例如,语法元素信息)发送到解码设备
200。语法元素信息可包括运动矢量差信息、编码块标志以及变换系数等级中的至少一个。
186.在帧内预测或帧间预测之后产生的残差信号可通过作为量化处理的一部分的变换处理被变换到频域。这里,首次变换可使用dct类型2(dct-ii)以及各种dct、dst内核。这些变换内核可对残差信号执行用于沿水平和/或垂直方向执行1d变换的可分离变换,或者可对残差信号执行2d不可分离变换。
187.例如,在1d变换的情况下,在变换中使用的dct和dst类型可使用如下表中所示的dct-ii、dct-v、dct-viii、dst-i以及dst-vii。例如,如表1和表2中所示,可获得通过合成变换集而在变换中使用的dct或dst类型。
188.[表1]
[0189]
变换集变换0dst_vii、dct-viii 1dst-vii、dst-i2dst-vii、dct-v
[0190]
[表2]
[0191]
变换集变换0dst_vii、dct-viii、dst-i1dst-vii、dst-i、dct-viii 2dst-vii、dct-v、dst-i
[0192]
例如,如图8所示,根据帧内预测模式,不同的变换集针对水平方向和垂直方向被定义。接下来,编码器/解码器可通过使用当前编码/解码目标块的帧内预测模式和相关变换集的变换来执行变换和/或逆变换。在这种情况下,不对变换集执行熵编码/解码,并且编码器/解码器可根据相同的规则来定义变换集。在这种情况下,指示变换集的变换之中的哪种变换被使用的熵编码/解码可被执行。例如,当块的大小等于或小于64
×
64时,根据帧内预测模式,如表2中所示三个变换集被合成,并且三个变换被用于每个水平方向变换和垂直方向变换以组合并执行总共九个多变换方法。接下来,通过使用最优变换方法来对残差信号进行编码/解码,由此,编码效率可被提高。这里,为了对关于一个变换集中的三个变换之中哪个变换方法被使用的信息进行熵编码/解码,可使用截断一元二进制化。这里,为了进行垂直变换和水平变换中的至少一个,可对指示变换集的变换中的哪个变换被使用的信息执行熵编码/解码。
[0193]
在完成上述首次变换之后,如图9中所示,编码器可针对变换系数执行二次变换以提高能量集中度。二次变换可执行用于沿水平和/或垂直方向执行1d变换的可分离变换,或者可执行2d不可分离变换。所使用的变换信息可被发送,或者可被编码器/解码器根据当前编码信息和邻近编码信息而获得。例如,如1d变换,用于二次变换的变换集可被定义。不对该变换集执行熵编码/解码,并且编码器/解码器可根据相同的规则定义变换集。在这种情况下,指示变换集的变换之中的哪个变换被使用的信息可被发送,并且该信息可通过帧内预测或帧间预测被应用于至少一个残差信号。
[0194]
变换候选的数量或类型中的至少一个针对每个变换集而不同。变换候选的数量或类型中的至少一个可基于以下至少一个而被不同地确定:块(cu、pu、tu等)的位置、大小、分区形式、以及预测模式(帧内/帧间模式)或帧内预测模式的方向/非方向。
[0195]
解码器可依据二次逆变换是否被执行来执行二次逆变换,并可从二次逆变换的结果依据首次逆变换是否被执行来执行首次逆变换。
[0196]
上述首次变换和二次变换可被应用于亮度/色度分量中的至少一个信号分量,或者可根据任意编码块的大小/形状被应用。可对指示首次变换/二次变换是否被使用以及任意编码块中的所使用的首次变换/二次变换两者的索引执行熵编码/解码。可选择地,所述索引可由编码器/解码器根据至少一条当前/邻近编码信息而默认获得。
[0197]
在帧内预测或帧间预测之后获得的残差信号在经过首次变换和/或二次变换之后经过量化处理,并且量化的变换系数经过熵编码处理。这里,如图10中所示,量化的变换系数可基于帧内预测模式或最小块的大小/形状中的至少一个,按照对角方向、垂直方向和水平方向被扫描。
[0198]
此外,执行了熵解码的量化的变换系数可通过被逆扫描而按照块形式被布置,并且可对相关块执行反量化或逆变换中的至少一个。这里,作为逆扫描的方法,对角方向扫描、水平方向扫描和垂直方向扫描中的至少一个可被执行。
[0199]
例如,在当前编码块的大小为8
×
8时,可对针对8
×
8的块的残差信号执行首次变换、二次变换以及量化,接下来,可根据图10中示出的三种扫描顺序方法中的至少一种针对四个4
×
4的子块中的每一个对量化的变换系数执行扫描和熵编码。此外,可通过执行熵解码来对量化的变换系数执行逆扫描。执行了逆扫描的量化的变换系数在经过反量化之后成为变换系数,并且二次逆变换或首次逆变换中的至少一个被执行,由此,重建残差信号可被产生。
[0200]
在视频编码处理中,一个块可如图11所示被分区,并且与分区信息相应的指示符可被用信号传送。这里,分区信息可以是以下至少一个:分区标志(split_flag)、四叉/二叉树标志(qb_flag)、四叉树分区标志(quadtree_flag)、二叉树分区标志(binarytree_flag)以及二叉树分区类型标志(btype_flag)。这里,split_flag是指示块是否被分区的标志,qb_flag是指示块是按照四叉树形式还是按照二叉树形式被分区的标志,quadtree_flag是指示块是否按照四叉树形式被分区的标志,binarytree_flag是指示块是否按照二叉树形式被分区的标志,btype_flag是指示在二叉树形式的分区的情况下块是被垂直分区还是被水平分区的标志。
[0201]
当分区标志为1时,它可指示分区被执行,当分区标志为0时,它可指示分区不被执行。在四叉/二叉树标志的情况下,0可指示四叉树分区,并且1可指示二叉树分区。可选择地,0可指示二叉树分区,1可指示四叉树分区。在二叉树分区类型标志的情况下,0可指示水平方向分区,1可指示垂直方向分区。可选择地,0可指示垂直方向分区,1可指示水平方向分区。
[0202]
例如,可通过将如表3中示出的quadtree_flag、binarytree_flag和btype_flag中的至少一个用信号传送来获得图11的分区信息。
[0203]
[表3]
[0204][0205]
例如,可通过将如表4中示出的split_flag、qb_flag和btype_flag中的至少一个用信号传送来获得图11的分区信息。
[0206]
[表4]
[0207][0208]
可根据块的大小/形状仅按照四叉树形式或仅按照二叉树形式来执行分区方法。在这种情况下,split_flag可意为指示是按照四叉树形式还是按照二叉树形式执行分区的标志。块的大小/形状可根据块的深度信息来获得,并且深度信息可被用信号传送。
[0209]
当块的大小在预定范围中时,可仅按照四叉树形式执行分区。这里,所述预定范围可被定义为仅能够按照四叉树形式被分区的最大块的大小或最小块的大小中的至少一个。可通过比特流用信号传送指示允许四叉树形式的分区的最大块/最小块的大小的信息,并且可以以序列、画面参数或条带(分段)中的至少一个为单位用信号传送该信息。可选择地,最大块/最小块的大小可以是在编码器/解码器中预设的固定大小。例如,当块的大小的范围是256x256至64x64时,可仅按照四叉树形式执行分区。在这种情况下,split_flag可意为指示是否按照四叉树形式执行分区的标志。
[0210]
当块的大小在预定范围中时,可仅按照二叉树形式执行分区。这里,所述预定范围可被定义为仅能够按照二叉树形式被分区的最大块的大小或最小块的大小中的至少一个。可通过比特流用信号传送指示允许二叉树形式的分区的最大块/最小块的大小的信息,并且可以以序列、画面参数或条带(分段)中的至少一个为单位而用信号传送该信息。可选择地,最大块/最小块的大小可以是在编码器/解码器中预设的固定大小。例如,当块的大小的范围是16x16至8x8时,可仅按照二叉树形式执行分区。在这种情况下,split_flag可意为指示是否按照二叉树形式执行分区的标志。
[0211]
在按照二叉树形式对一个块进行分区之后,当分区出的块被进一步分区时,可仅按照二叉树形式执行分区。
[0212]
当分区出的块的宽度大小或长度大小不能被进一步分区时,至少一个指示符可不
被用信号传送。
[0213]
除了基于四叉树的二叉树分区以外,基于四叉树的分区可在二叉树分区以后被执行。
[0214]
基于以上描述,将详细公开根据本发明的通过使用运动矢量对图像进行编码/解码的方法。
[0215]
图12是示出根据本发明的对图像进行编码的方法的流程图。图13是示出根据本发明的对图像进行解码的方法的流程图。
[0216]
参照图12,编码设备可在步骤s1201获得运动矢量候选,并可在步骤s1202基于获得的运动矢量候选产生运动矢量候选列表。当运动矢量候选列表被产生时,在步骤s1203,可通过使用产生的运动矢量候选来确定运动矢量。在步骤s1204,可通过使用运动矢量来执行运动补偿。接下来,在步骤s1205,编码设备可对关于运动补偿的信息执行熵编码。
[0217]
参照图13,解码设备可在步骤s1301对从编码设备接收到的关于运动补偿的信息执行熵解码,并可在步骤s1302获得运动矢量候选。此外,解码设备可在步骤s1303基于获得的运动矢量候选来产生运动矢量候选列表,并可在步骤s1304通过使用产生的运动矢量候选列表来确定运动矢量。接下来,在步骤s1305,解码设备可通过使用运动矢量来执行运动补偿。
[0218]
在下文中,将详细公开图12和图13中示出的步骤。
[0219]
首先,将详细公开获得运动矢量候选的操作s1201和s1302。
[0220]
针对当前块的运动矢量候选可包括空间运动矢量候选或时间运动矢量候选中的至少一个。
[0221]
当前块的空间运动矢量可从与当前块相邻的重建块获得。例如,与当前块相邻的重建块的运动矢量可被确定为针对当前块的空间运动矢量候选。
[0222]
图14是用于解释获得当前块的空间运动矢量候选的示例的示图。
[0223]
参照图14,当前块的空间运动矢量候选可从与当前块x相邻的邻近块获得。这里,与当前块相邻的邻近块可包括以下块中的至少一个:与当前块的顶部相邻的块b1、与当前块的左侧相邻的块a1、与当前块的右上角相邻的块b0、与当前块的左上角相邻的块b2以及与当前块的左下角相邻的块a0。
[0224]
当在与当前块相邻的邻近块处存在运动矢量时,所述邻近块的运动矢量可被确定为当前块的空间运动矢量候选。可基于邻近块是否存在或者邻近块是否通过帧间预测被编码等来确定邻近块的运动矢量是否存在或者邻近块的运动矢量是否可用作当前块的空间运动矢量候选。这里,可根据预定优先级来确定邻近块的运动矢量是否存在或者邻近块的运动矢量是否可用作当前块的空间运动矢量候选。例如,在图14中,可按照位置a0、a1、b0、b1和b2处的块的顺序来确定运动矢量的可用性。
[0225]
在当前块的参考块不同于具有运动矢量的邻近块的参考图像时,邻近块的经过缩放的运动矢量可被确定为当前块的空间运动矢量候选。这里,可基于当前图像和当前块所参考的参考图像之间的距离以及当前图像和邻近块所参考的参考图像之间的距离中的至少一个距离来执行缩放。例如,按照当前图像和当前块所参考的参考图像之间的距离与当前图像和邻近块所参考的参考图像之间的距离的差值来对邻近块的运动矢量进行缩放,由此,可获得当前块的空间运动矢量候选。
[0226]
即使当前块的参考画面列表与邻近块的参考画面列表不同,也可基于当前块的参考图像是否与邻近块的参考图像相同来确定是否对邻近块的运动矢量进行缩放。这里,参考画面列表可包括list0(l0)、list1(l1)、list2(l2)、list3(l3)等中的至少一个。
[0227]
总之,可基于以下至少一个来获得空间运动矢量候选:邻近块的可用性、邻近块是否按照帧内预测模式被编码、邻近块是否具有与当前块的参考画面列表相同的参考画面列表、或邻近块是否具有与当前块的参考图像相同的参考图像。当邻近块可用并且不是按照帧内预测模式被编码时,可通过以下表5中示出的方法来产生当前块的空间运动矢量候选。
[0228]
[表5]
[0229][0230]
如表5中所示,即使当前块的参考画面列表不同于邻近块的参考画面列表,在当前块和邻近块具有相同的参考图像时,邻近块的运动矢量可仍被确定为当前块的空间运动矢量候选。
[0231]
相反,在当前块的参考图像不同于邻近块的参考图像时,不管当前块的参考画面列表是否与邻近块的参考画面列表相同,邻近块的运动矢量都可被缩放以被确定为当前块的空间运动矢量候选。
[0232]
在从邻近块获得当前块的空间运动矢量候选时,当前块的空间运动矢量候选的获得顺序可基于当前块和邻近块是否具有相同的参考图像而被确定。例如,可优选从具有与当前块的参考图像相同的参考图像的邻近块获得空间矢量候选,并且当获得的空间运动矢量候选的数量(或获得的运动矢量候选的数量)等于或少于预设最大值时,可从具有与当前块的参考图像不同的参考图像的邻近块获得空间矢量候选。
[0233]
可选择地,可基于当前块和邻近块是否具有相同的参考图像并且基于邻近块的位置来确定当前块的空间运动矢量预测候选。
[0234]
例如,根据参考图像是否相同,可从与当前块的左侧相邻的邻近块a0和a1获得当前块的空间运动矢量候选,接下来,根据参考图像是否相同,可从与当前块的顶部相邻的邻近块b0、b1和b2获得当前块的空间运动矢量候选。表6示出获得当前块的空间运动矢量候选的顺序。
[0235]
[表6]
[0236][0237]
当前块的空间运动矢量候选的最大数量在编码设备和解码设备中可被预设为相同的值。可选择地,编码设备可对指示当前块的空间运动矢量候选的最大数量的信息进行编码,并可通过比特流将该信息发送到解码设备。例如,编码设备可对指示当前块的空间运动矢量候选的最大数量的“maxnumspatialmvpcand”进行编码,并可通过比特流将“maxnumspatialmvpcand”发送到解码设备。这里,“maxnumspatialmvpcand”可被设置为包括零的正整数。例如,“maxnumspatialmvpcand”可被设置为2。
[0238]
可从包括在当前画面的同位画面中的重建块获得当前块的时间运动矢量候选。这里,所述同位画面是在当前画面之前完成了编码/解码的画面,并且可以是具有与当前画面的时间顺序不同的时间顺序的画面。
[0239]
图15是用于解释获得当前块的时间运动矢量候选的示例的示图。
[0240]
参照图15,在当前画面的同位画面中,可从包括与在空间上和当前块x相同的位置相应的块的外部位置的块获得当前块的时间运动矢量候选,或者可从包括与在空间上和当
前块x相同的位置相应的块的内部位置的块获得当前块的时间运动矢量候选。例如,可从块h(其中,块h同与在空间上和当前块相同的位置相应的块c的左下角相邻)获得当前块x的时间运动矢量候选,或者可从包括所述块c的中心点的块c3获得当前块的时间运动矢量候选。用于获得当前块的时间运动矢量候选的块h或块c3等可被称为“同位块”。
[0241]
在当前块的时间运动矢量候选可从包括块c的外部位置的块h获得时,块h可被设置为当前块的同位块。在这种情况下,当前块的时间运动矢量可基于块h的运动矢量来获得。相反,在当前块的时间运动矢量候选不能从块h获得时,包括块c的内部位置的块c3可被设置为当前块的同位块。在这种情况下,当前块的时间运动矢量可基于块c3的运动矢量而被包括。在当前块的时间运动矢量候选不能从块h和块c3获得时(例如,当块h和块c3被帧内编码时),当前块的时间运动矢量候选可以不从具有与块h和块c3不同的位置的块获得或者可以从具有与块h和块c3不同的位置的块获得。
[0242]
作为另一示例,当前块的时间运动矢量候选可从同位画面中的多个块获得。例如,可从块h和块c3获得针对当前块的多个时间运动矢量候选。
[0243]
在图15中,当前块的时间运动矢量候选可从与同位块的左下角相邻的块或者从包括同位块的中心点的块获得。然而,用于获得当前块的时间运动矢量候选的块的位置不限于图15中示出的示例。例如,当前块的时间运动矢量候选可从与同位块的上/下边界、左/右边界或拐角相邻的块获得,或者可从包括同位块内的特定位置的块(例如,与同位块的拐角边界相邻的块)获得。
[0244]
当前块的时间运动矢量候选可基于位于同位块的内部或外部的块的参考画面列表(或预测方向)以及当前块来确定。
[0245]
例如,在当前块可使用的参考画面列表是l0(即,帧内预测指示符指示pred_l0)时,位于同位块的内部或外部的块之中的使用l0作为参考画面的块的运动矢量可被获得作为当前块的时间运动矢量候选。也就是说,在当前块可使用的参考画面列表是lx(这里,x是指示参考画面列表的索引的诸如0、1、2、或3等的整数)时,位于同位块的内部或外部的块之中的使用lx作为参考画面的块的运动矢量可被获得作为当前块的时间运动矢量候选。
[0246]
即使当前块使用多个参考画面列表,当前块的时间运动矢量候选也可以基于当前块是否具有与位于同位块的内部或外部的块相同的参考画面列表来确定。
[0247]
例如,在当前块执行双向预测时(即,当帧间预测指示符是pred_bi时),位于同位块的内部或外部的块之中的使用l0和l1作为参考画面的块的运动矢量可被获得作为当前块的时间运动矢量候选。在当前块执行三向预测时(即,当帧间预测指示符是pred_tri时),位于同位块的内部或外部的块之中的使用l0、l1和l2作为参考画面的块的运动矢量可被获得作为当前块的时间运动矢量候选。在当前块执行四向预测时(即,当帧间预测指示符是pred_quad时),位于同位块的内部或外部的块之中的使用l0、l1、l2和l3作为参考画面的块的运动矢量可被获得作为当前块的时间运动矢量候选。
[0248]
可选择地,在当前块被设置为通过一个参考画面执行多向预测时,当前块的时间运动预测矢量候选可基于外部块与当前块是否具有相同的参考画面列表和相同的预测方向来确定。
[0249]
例如,在当前块针对参考画面列表l0执行双向预测时(即,当针对列表l0的帧间预测指示符是pred_bi时),位于同位块的内部或外部的块之中的通过使用l0作为参考画面来
针对l0执行双向预测的块的运动矢量可被获得作为当前块的时间运动矢量候选。
[0250]
此外,时间运动矢量候选可基于至少一个编码参数来获得。
[0251]
在获得的空间运动矢量候选的数量少于运动矢量候选的最大数量时,时间运动矢量候选可被预备性地获得。因此,在获得的空间运动矢量候选的数量等于运动矢量候选的最大数量时,可省略获得时间运动矢量候选的操作。
[0252]
例如,当运动矢量候选的最大数量为2并且获得的2个空间运动矢量候选具有不同的值时,可省略获得时间运动矢量候选的操作。
[0253]
作为另一示例,当前块的时间运动矢量候选可基于时间运动矢量候选的最大数量来获得。这里,时间运动矢量候选的最大数量可在编码设备和解码设备中被预设为具有相同值。可选择地,指示当前块的时间运动矢量候选的最大数量的信息可通过被编码而经由比特流被发送到解码设备。例如,编码设备可对指示当前块的时间运动矢量候选的最大数量的“maxnumtemporalmvpcand”进行编码,并可通过比特流将“maxnumtemporalmvpcand”发送到解码设备。这里,“maxnumtemporalmvpcand”可被设置为包括零的正整数。例如,“maxnumtemporalmvpcand”可被设置为1。
[0254]
在包括当前块的当前画面与当前块的参考画面之间的距离不同于包括同位块的同位画面与同位块的参考画面之间的距离时,可通过对同位块的运动矢量进行缩放来获得当前块的时间运动矢量候选。
[0255]
图16是示出对同位块的运动矢量进行缩放以获得当前块的时间运动矢量候选的示例的示图。
[0256]
可基于指示同位画面的显示顺序的poc(画面顺序计数)与同位块的参考画面的poc之间的差值(td)以及当前画面的poc与当前块的参考画面的poc之间的差值(tb)中的至少一个差值来对同位矢量的运动矢量进行缩放。
[0257]
在缩放之前,td或tb可被调整为存在于预定范围内。例如,当所述预定范围指示-128至127并且td或tb小于-128时,td或tb可被调整为-128。当td或tb大于127时,td或tb可被调整为127。当td或tb在-128至127的范围内时,td或tb不被调整。
[0258]
可基于td或tb来计算缩放因子distscalefactor。这里,可基于以下公式1来计算缩放因子。
[0259]
[公式1]
[0260]
distscalefactor=(tb*tx+32)》》6
[0261]
tx=(16384+abs(td/2))/td
[0262]
在公式1中,绝对值函数被表示为abs(),并且该函数的输出值是输入值的绝对值。
[0263]
基于公式1计算出的缩放因子distscalefactor的值可被调整到预定范围中。例如,distscalefactor可被调整为存在于-1024至1023的范围内。
[0264]
可通过经由缩放因子对同位块的运动矢量进行缩放来确定当前块的时间运动矢量候选。例如,可通过以下公式2来确定当前块的时间运动矢量候选。
[0265]
[公式2]
[0266]
sign(distscalefactor*mvcol)*((abs(distscalefactor*mvcol)+127)》》8)
[0267]
在公式2中,sign()是输出包含在()中的值的符号信息的函数。例如,sign(-1)输出-(负值)。在公式2中,mvcol指示同位块的运动矢量,即,缩放之前的时间运动矢量预测因
子。
[0268]
接下来,将公开基于获得的运动矢量候选产生运动矢量候选列表s1202和s1303。
[0269]
产生运动矢量候选列表的操作可包括将运动矢量候选添加到运动矢量候选列表或从运动矢量候选列表去除运动矢量候选,以及将组合运动矢量候选添加到运动矢量候选列表。
[0270]
在将获得的运动矢量候选添加到运动矢量候选列表或从运动矢量候选列表去除获得的运动矢量候选时,编码设备和解码设备可按照运动矢量候选的获得顺序来将获得的运动矢量候选添加到运动矢量候选列表。
[0271]
可根据当前块的帧间预测方向来确定产生的运动矢量候选列表。例如,可针对每个参考画面列表来产生一个运动矢量候选列表,并且可针对每个参考画面来产生一个运动矢量候选列表。多个参考画面列表或多个参考画面可共享一个运动矢量候选列表。
[0272]
在下述实施例中,假设运动矢量候选列表mvplistlx意为与参考画面列表l0、l1、l2和l3相应的运动矢量候选列表。例如,与参考画面列表l0相应的运动矢量候选列表可被称为mvplistl0。
[0273]
包括在运动矢量候选列表中的运动矢量候选的数量可在编码设备和解码设备中被设置为具有相同的预设值。可选择地,包括在运动矢量候选列表中的运动矢量候选的最大数量可通过在编码设备中被编码而经由比特流被发送到解码设备。
[0274]
例如,可包括在运动矢量候选列表mvplistlx中的运动矢量候选的最大数量maxnummvpcandlist可以是包括零的正整数。例如,maxnummvpcandlist可以是诸如2、3、4、5、6、7、8、9、10、11、12、13、14、15或16等的整数。当maxnummvpcandlist为2时,这意为mvplistlx可包括最大两个运动矢量候选。因此,首先被添加到mvplistlx的运动矢量候选的索引值可被设置为零,并且随后被添加的运动矢量候选的索引值可被设置为1。运动矢量候选的最大数量可针对每个运动矢量候选列表被定义,并且可针对所有运动矢量候选列表被同样定义。例如,mvplistl0和mvplistl1的最大运动矢量候选可具有不同的值,并且可具有相同的值。
[0275]
图17是示出产生运动矢量候选列表的示例的示图。
[0276]
假设未被空间缩放的空间运动矢量候选(1,0)是从位于图17(a)中所示的位置a1的块获得的,并且被缩放的时间运动矢量候选(2,3)是从位于图17(b)中所示的位置h的块获得的。在这种情况下,如图17(c)中所示,从位于位置a1的块获得的空间运动矢量候选以及从位于位置h的块获得的时间运动矢量候选可按顺序被添加到运动矢量候选列表。
[0277]
获得的运动矢量候选可按照预定顺序被添加到运动矢量候选列表。例如,在将空间运动矢量候选添加到运动矢量候选列表之后,当包括在运动矢量候选列表中的运动矢量候选的数量小于运动矢量候选的最大数量时,时间运动矢量候选可被添加到运动矢量候选列表。相反,时间运动矢量候选可通过具有比空间运动矢量候选的优先级更高的优先级而被添加到运动矢量候选列表。在这种情况下,根据是否与时间运动矢量候选相同,空间运动矢量候选可被可选地添加到运动矢量候选列表。
[0278]
此外,编码设备和解码设备可按照添加到运动矢量候选列表的顺序来分配用于标识每个运动矢量候选的索引。在图17(c)中,从位于位置a1的块获得的运动矢量候选的索引值被设置为0,并且从位于位置h的块获得的运动矢量候选的索引值被设置为1。
[0279]
除了空间运动矢量候选和时间运动矢量候选,具有预定值的运动矢量可被添加到运动矢量候选列表。例如,当包括在运动矢量候选列表中的运动矢量候选的数量小于运动矢量候选的最大数量时,可将具有值0的运动矢量添加到运动矢量候选列表。
[0280]
图18是示出将具有预定值的运动矢量添加到运动矢量候选列表的示例的示图。
[0281]
在图18中示出的示例中,“nummvpcandlx”指示包括在运动矢量候选列表mvplistlx中的运动矢量候选的数量。例如,nummvpcandl0可指示包括在运动矢量候选列表mvplistl0中的运动矢量候选的数量。
[0282]
此外,maxnummvpcand指示可包括在运动矢量候选列表mvplistlx中的运动矢量候选的最大数量。nummvpcandlx和maxnummvpcand可具有包括零的整数值。
[0283]
当nummvpcandlx小于maxnummvpcand时,具有预定值的运动矢量可被添加到运动矢量候选列表,并且nummvpcandlx的值可增加1。这里,被添加到运动矢量候选列表的运动矢量可具有固定值,并可被添加到运动矢量候选列表最后。例如,具有预定值并被添加到运动矢量候选列表的运动矢量可以是具有值(0,0)的零运动矢量候选。
[0284]
例如,如图18(a)中所示,当nummvpcandlx为1并且maxnummvpcand为2时,具有值(0,0)的零运动矢量候选可被添加到运动矢量候选列表,并且nummvpcandlx的值可增加1。
[0285]
当maxnummvpcand与nummvpcandlx之间的差值等于或大于2时,具有预定值的运动矢量可按照所述差值重复被添加到运动矢量候选列表。
[0286]
例如,当maxnummvpcand为2并且nummvpcandlx为0时,具有预定值的运动矢量候选可重复被添加到运动矢量候选列表,直到nummvpcandlx变为等于maxnummvpcand为止。在图18(b)中,具有值(0,0)的两个零运动矢量候选被添加到运动矢量候选列表。
[0287]
作为另一示例,具有预定值的运动矢量可仅在等于所述具有预定值的运动矢量的运动矢量候选未被包括在运动矢量候选列表中时可被添加到运动矢量候选列表。
[0288]
例如,当nummvpcandlx小于maxnummvpcand并且具有(0,0)的运动矢量未被包括在运动矢量候选列表中时,如图18(c)中所示,具有值(0,0)的运动矢量可被添加到运动矢量候选列表,并且nummvpcandlx可增加1。
[0289]
图18示出被添加到运动矢量候选列表的运动矢量的预定义的值为(0,0),但被添加到运动矢量候选列表的运动矢量的预定义的值不限于此。此外,如图18(b)中所示,当添加多个预定义的运动矢量候选时,被添加到运动矢量候选列表的多个预定义的运动矢量可以是不同的值。
[0290]
编码设备和解码设备可通过去除包括在运动矢量候选列表中的运动矢量候选来调整运动矢量候选列表的大小。
[0291]
例如,编码设备和解码设备可识别在运动矢量候选列表中是否存在相同的运动矢量候选。当在运动矢量候选列表中存在相同的运动矢量候选时,可从运动矢量候选列表去除不包括所述相同运动矢量候选之中具有最小运动矢量候选索引的运动矢量候选的残余运动矢量候选。
[0292]
确定运动矢量候选是否相同的操作可被仅应用于空间运动矢量之间的空间或时间运动矢量之间的空间,并且可被应用于空间运动矢量和时间运动矢量之间的空间。
[0293]
当包括在运动矢量候选列表中的运动矢量候选的数量大于可被包括在运动矢量候选列表中的运动矢量候选的最大数量时,可按照包括在运动矢量候选列表中的运动矢量
候选的数量与运动矢量候选的最大数量之间的差值来从运动矢量候选列表去除运动矢量候选。
[0294]
图19是示出从运动矢量候选列表去除运动矢量候选的示例的示图。
[0295]
当nummvpcandlx等于或大于maxnummvpcand时,具有比maxnummvpcand-1更大的索引值的运动矢量候选可从运动矢量候选列表被去除。
[0296]
例如,在图19中示出的示例中,当nummvpcandlx为3并且maxnummvpcand为2时,分配有大于maxnummvpcand-1的索引2的运动矢量候选(4,-3)从运动矢量候选列表被去除。
[0297]
接下来,将公开将组合运动矢量候选添加到运动矢量候选列表的操作。
[0298]
当包括在运动矢量候选列表中的运动矢量候选的数量小于运动矢量候选的最大数量时,通过使用包括在运动矢量候选列表中的运动矢量候选中的至少一个,组合运动矢量可被添加到运动矢量候选列表。例如,通过使用以下至少一个,组合运动矢量候选被产生:包括在运动矢量候选列表中的空间运动矢量候选、时间运动矢量候选以及零运动矢量候选,并且产生的组合运动矢量候选可被包括在运动矢量候选列表中。
[0299]
可选择地,通过使用未被包括在运动矢量候选列表中的运动矢量候选,组合运动矢量候选可被产生。例如,可通过使用未被包括在运动矢量候选列表中的从可用于获得空间运动矢量候选或时间运动矢量候选中的至少一个的块获得的运动矢量候选来产生组合运动矢量候选,或者通过使用未被包括在运动矢量候选列表中的具有预定义值的运动矢量候选(例如,零运动矢量)来产生组合运动矢量候选。
[0300]
可选择地,可基于编码参数中的至少一个来产生组合运动矢量候选,或可基于编码参数中的至少一个将组合运动矢量候选添加到运动矢量候选列表。
[0301]
在添加空间运动矢量候选、时间运动矢量候选或具有预设值的运动矢量候选中的至少一个之后,可使可被包括在运动矢量候选列表中的运动矢量候选的最大数量增加组合运动矢量的数量,或者增加更少数量。例如,maxnummvpcandlist具有针对空间运动矢量候选或时间运动矢量候选的第一值,并且在添加空间运动矢量候选或时间运动矢量候选之后,maxnummvpcandlist可增加到大于第一值的第二值,以便添加组合运动矢量候选。
[0302]
图20是示出运动矢量候选列表的示例的示图。
[0303]
可通过使用包括在运动矢量候选列表中的运动矢量候选来对当前块执行运动补偿。可通过使用针对一个参考画面列表的一个运动矢量或者通过使用针对一个参考画面列表的多个运动矢量来执行当前块的运动补偿。例如,在当前块的帧间预测方向是双向时,可通过获得针对参考画面列表l0和l1中的每一个列表的一个运动矢量或者通过获得针对参考画面列表l0的两个运动矢量来执行当前块的运动补偿。
[0304]
运动矢量候选列表可包括通过对空间运动矢量候选、时间运动矢量候选和零运动矢量候选进行组合而产生的组合运动矢量候选以及通过对空间运动矢量候选、时间运动矢量候选和零运动矢量候选中的至少两个进行组合而产生的组合运动矢量候选中的至少一个组合运动矢量候选。可通过运动矢量候选索引来识别每个运动矢量候选。
[0305]
基于当前块的帧间预测方向,可通过一个运动矢量候选索引来识别包括多个运动矢量候选的运动矢量候选集。这里,所述运动矢量候选集根据当前块的帧间预测方向的数量n而可包括n个运动矢量候选。例如,运动矢量候选集可包括多个运动矢量候选,诸如第一运动矢量候选、第二运动矢量候选、第三运动矢量候选和第四运动矢量候选等。
[0306]
可通过对以下至少两个进行组合来产生运动矢量候选集:空间运动矢量候选、时间运动矢量候选以及零运动矢量候选。例如,在图20中,包括两个运动矢量候选的运动矢量候选集被分配运动矢量候选索引4至13。此外,可通过对空间运动矢量候选(mxlxa,mxlxb)、时间运动矢量候选(mxlcol)以及零运动矢量(mvzero)进行组合来产生每个运动矢量候选集。
[0307]
根据针对参考画面列表lx的预测方向,可从参考画面列表获得至少一个运动矢量。例如,当对参考画面列表lx执行单向预测时,可通过使用被分配给运动矢量索引0至3的多个运动矢量候选之一来获得当前块的运动矢量。相反,当对参考画面列表lx执行双向预测时,可通过使用被分配给运动矢量索引4至13的多个运动矢量候选来获得当前块的运动矢量。也就是说,在编码/解码处理中,可基于包括在运动矢量候选列表中的运动矢量候选来获得至少一个运动矢量。
[0308]
可通过将运动矢量差值与运动矢量候选相加来获得当前块的运动矢量。例如,图20示出当运动矢量候选索引0至3之一的运动矢量候选被选择时,运动矢量差值(mvd)与选择的运动矢量候选相加以获得运动矢量。
[0309]
当包括多个运动矢量候选的运动矢量候选集被选择时,可基于包括在运动矢量候选集中的多个运动矢量候选来获得针对当前块的多个运动矢量。这里,可对针对包括在运动矢量候选集中的多个运动矢量候选中的每一个运动矢量候选的运动矢量差值进行编码/解码。在这种情况下,针对当前块,可通过添加与运动矢量候选相应的运动矢量差值来获得多个运动矢量。
[0310]
作为另一示例,可对针对包括在运动矢量候选集中的多个运动矢量候选中的一部分运动矢量候选的运动矢量差值进行编码/解码。例如,可针对包括多个运动矢量候选的运动矢量候选集对一个运动矢量差值进行编码/解码。在这种情况下,当前块可使用通过将运动矢量差值与包括在运动矢量候选集中的一个运动矢量候选相加而获得的运动矢量,并且可使用从运动矢量候选获得的运动矢量。图20示出针对包括两个运动矢量候选的运动矢量候选集,通过将运动矢量差值与一个运动矢量候选相加来获得第一运动矢量或第二运动矢量,并且剩余的一个与运动矢量候选相同。
[0311]
作为另一示例,包括在运动矢量候选集中的多个运动矢量候选可共享相同的运动矢量差值。
[0312]
帧间预测指示符可指示针对预定参考画面列表的单向预测或多向预测。例如,帧间预测指示符可被指定为指示针对参考画面列表lx的单向预测的pred_lx,并且可被指定为指示针对参考画面列表lx的双向预测的pred_bi_lx。这里,参考画面列表的索引可被指示为x,其中,x是包括0的整数(诸如0、1、2、3等)。
[0313]
例如,当针对参考画面列表l0执行单向预测时,帧间预测指示符可被设置为pred_l0。此外,当针对参考画面列表l1执行单向预测时,帧间预测指示符可被设置为pred_l1。
[0314]
相反,当针对参考画面列表l1执行双向预测时,帧间预测指示符可被设置为pred_bi_l1。在针对参考画面列表l1的帧间预测指示符为pred_bi_l1时,当前块使用运动矢量候选列表来获得两个运动矢量,并且可通过从包括在参考画面列表l1中的参考画面获得两个预测块来执行帧间预测。这里,可分别从包括在参考画面列表l1中的两个不同参考画面来获得两个预测块,或者可从包括在参考画面列表l1中的一个参考画面来获得两个预测块。
[0315]
帧间预测指示符可被编码/解码以指示针对当前块的全部预测方向的数量,并可被编码/解码以指示每个参考画面列表的预测方向的数量。
[0316]
例如,可针对当前块对指示针对参考画面列表l0的单向预测的帧间预测指示符(pred_l0)以及指示针对参考画面列表l1的双向预测的帧间预测指示符(pred_bi_l1)进行编码。可选择地,当执行针对参考画面列表l0的单向预测并执行针对参考画面列表l1的双向预测时,针对当前块的帧间预测指示符可指示pred_tri。
[0317]
图20示出针对特定参考画面列表lx的运动矢量候选列表mvplistlx的示例。当存在诸如l0、l1、l2、l3等的多个参考画面列表时,可针对每个参考画面列表产生运动矢量候选列表。因此,可产生至多n个预测块的至少一个预测块以在当前块的帧间预测或运动补偿中被使用。这里,n指示等于或大于1的整数,诸如2、3、4、5、6、7、8等。
[0318]
包括在运动矢量候选列表中的运动矢量候选中的至少一个可被确定为针对当前块的预测运动矢量(或运动矢量预测因子)。确定的预测运动矢量可在计算当前块的运动矢量的操作中被使用,并且当前块的运动矢量可在当前块的帧间预测或运动补偿中被使用。
[0319]
在当前块中,当包括多个运动矢量候选的运动矢量候选集被选择时,包括在运动矢量候选集中的多个运动矢量候选以及基于多个运动矢量候选计算出的当前块的运动矢量可被存储为关于当前块的运动补偿的信息。这里,存储的关于当前块的运动补偿的信息可稍后在产生运动矢量候选列表或在邻近块中执行运动补偿时被利用。
[0320]
图20示出针对每个参考画面列表产生运动矢量候选列表的示例。可针对每个参考画面来产生运动矢量候选列表。例如,当执行针对参考画面列表lx的双向预测时,在包括在参考画面列表lx的参考画面之中,可针对在双向预测中时使用的第一参考画面产生第一运动矢量候选列表,并且可针对在双向预测中使用的第二参考画面产生第二运动矢量候选列表。
[0321]
接下来,将公开确定从运动矢量候选列表预测出的运动矢量的操作s1203和s1304。
[0322]
在包括在运动矢量候选列表中的运动矢量候选之中,由运动矢量候选索引指示的运动矢量候选可被确定为针对当前块的运动矢量。
[0323]
图21是示出从运动矢量候选列表获得当前块的预测运动矢量候选的示例的示图。
[0324]
图21示出可被包括在运动矢量候选列表中的运动矢量候选的最大数量maxnummvpc为2,并且包括在运动矢量候选列表中的运动矢量候选的数量为2。这里,当运动矢量候选索引指示索引1时,包括在运动矢量候选列表中的具有(2,3)的第二运动矢量候选(即,被分配有索引1的运动矢量候选)可被确定为当前块的预测运动矢量。
[0325]
编码设备可通过计算运动矢量和预测运动矢量之间的差来获得运动矢量差值。解码设备可通过将预测运动矢量与运动矢量差相加来获得运动矢量。
[0326]
尽管没有示出,但运动矢量候选索引指示运动矢量候选集,可从包括在运动矢量候选集中的多个运动矢量候选获得多个运动矢量。这里,当前块的运动矢量可以是运动矢量候选与运动矢量差之和,并且可与运动矢量候选具有相同的值。
[0327]
接下来,将公开通过使用运动矢量执行运动补偿的操作s1204和s1305。
[0328]
编码设备和解码设备可通过使用预测运动矢量和运动矢量差值来计算运动矢量。当运动矢量被计算出时,可通过使用计算出的运动矢量来执行帧间预测或运动补偿。可选
择地,如图20中所示,运动矢量预测值可被确定为运动矢量。
[0329]
依据预测方向,当前块可具有至多n个运动矢量的至少一个运动矢量。可通过使用运动矢量来产生至多n个预测块的至少一个预测块,以获得当前块的最终预测块。
[0330]
例如,在当前块具有一个运动矢量时,通过使用运动矢量而产生的预测块可被确定为当前块的最终预测块。
[0331]
相反,在当前块具有多个运动矢量时,可通过使用多个运动矢量来产生多个预测块,并且可基于多个预测块的加权和来确定当前块的最终预测块。包括由多个运动矢量指示的多个预测块的参考画面可被包括在不同的参考画面列表中,并可被包括在相同的参考画面列表中。
[0332]
被应用于每个预测块的权重可具有按照1/n的相同的值(这里,n是产生的预测块的数量)。例如,当两个预测块被产生时,被应用于每个预测块的权重可以是1/2。当三个预测块被产生时,被应用于每个预测块的权重可以是1/3。当四个预测块被产生时,被应用于每个预测块的权重可以是1/4。可选择地,可通过对各个预测块分配不同的权重来确定当前块的最终预测块。
[0333]
权重针对每个预测块不必具有固定值,而是可针对每个预测块具有可变值。这里,应用于各个预测块的权重可以相同,或者可以不同。为了应用可变权重,可通过比特流用信号传送针对当前块的一条或更多条权重信息。可针对每个预测块用信号传送权重信息,并且可针对每个参考画面用信号传输权重信息。多个预测块可共享一条权重信息。
[0334]
以下描述的公式3至公式5指示在当前块的帧间预测指示符为pred_bi、pred_tri和pred_quad并且针对每个参考画面列表的预测方向为单向时产生当前块的最终预测块的示例。
[0335]
[公式3]
[0336]
p_bi=(wf_l0*p_l0+offset_l0+wf_l1*p_l1+offset_l1+rf)》》1
[0337]
[公式4]
[0338]
p_tri=(wf_l0*p_l0+offset_l0+wf_l1*p_l1+offset_l1+
[0339]
wf_l2*p_l2+offset_2+rf)/3
[0340]
[公式5]
[0341]
p+quad=(wf_l0*p_l0+offset_l0+wf_l1*p_l1+offset_l1+
[0342]
wf_l2*p_l2+offset_2+wf_l3*p_l3+offset_3+rf)》》2
[0343]
在公式3至公式5中,p_bi、p_tri和p_quad可指示当前块的最终预测块,lx(x=0,1,2,3)可意为参考画面列表。wf_lx可指示通过使用lx而产生的预测块的权重值,offset_lx可指示通过使用lx而产生的预测块的偏移值。p_lx可意为通过使用当前块的针对lx的运动矢量而产生的预测块。rf可意为可被设置为零、整数或负数的四舍五入因子。
[0344]
即使当针对预定参考画面列表的预测方向是多个方向时,可基于预测块的加权和来获得针对当前块的最终预测块。这里,被应用于从相同参考画面列表获得的预测块的权重可具有相同的值,或者可具有不同的值。
[0345]
针对多个预测块的权重(wf_lx)和偏移(offset_lx)中的至少一个可以是被熵编码/解码的编码参数。作为另一示例,所述权重和偏移可从与当前块相邻的经过编码/解码的邻近块获得。这里,与当前块相邻的邻近块可包括用于获得当前块的空间运动矢量候选
的块或用于获得当前块的时间运动矢量候选的块中的至少一个块。
[0346]
作为另一示例,所述权重和偏移可基于当前画面和参考画面的显示顺序(poc)来确定。在这种情况下,在当前画面远离参考画面时,所述权重或偏移可被设置为较小值。在当前画面接近参考画面时,所述权重或偏移可被设置为较大值。例如,在当前画面与l0参考画面之间的poc差为2时,被应用于通过参考l0参考画面而产生的预测块的权重值可被设置为1/3。相反,在当前画面和l0参考画面之间的poc差为1时,被应用于通过参考l0参考画面而产生的预测块的权重值可被设置为2/3。如上所述,所述权重或偏移值可与当前画面和参考画面之间的显示顺序差具有反比关系。作为另一示例,所述权重或偏移值可与当前画面和参考画面之间的显示顺序差具有正比关系。
[0347]
作为另一示例,基于编码参数中的至少一个,所述权重或偏移值中的至少一个可被熵编码/解码。此外,基于编码参数中的至少一个,预测块的加权和可被计算。
[0348]
接下来,将详细公开对关于运动补偿的信息进行熵编码/解码的处理s1205和s1301。
[0349]
图22a和图22b是示出用于关于运动补偿的信息的语法的示例的示图。
[0350]
编码设备可通过比特流对关于运动补偿的信息进行熵编码,解码设备可对包括在比特流中的关于运动补偿的信息进行熵解码。这里,被熵编码/解码的关于运动补偿的信息可包括以下至少一个:帧间预测指示符(inter_pred_idc)、参考画面索引(ref_idx_l0、ref_idx_l1、ref_idx_l2、ref_idx_l3)、运动矢量候选索引(mvp_l0_idx、mvp_l1_idx、mvp_l2_idx、mvp_l3_idx)、运动矢量差、权重值(wf_l0、wf_l1、wf_l2、wf_l3)以及偏移值(offset_l0、offset_l1、offset_l2、offset_l3)。
[0351]
帧间预测指示符可意为在当前块通过帧间预测被编码/解码时的当前块的帧间预测方向。例如,帧间预测指示符可指示单向预测、或多向预测(诸如双向预测、三向预测或四向预测等)。帧间预测指示符可意为在当前块产生预测块时使用的参考画面的数量。可选择地,一个参考画面可被用于多向预测。在这种情况下,m个参考画面可被用于执行n向预测(n>m)。帧间预测指示符可意为当针对当前块执行帧间预测或运动补偿时使用的预测块的数量。
[0352]
如上所述,基于帧间预测指示符,可确定在产生当前块的预测块时使用的参考画面的数量、在执行当前块的帧间预测或运动补偿时使用的预测块的数量、或者是当前块可使用的参考画面列表的数量等。这里,参考画面列表的数量n是正整数,诸如1、2、3、4、或更大值。例如,参考画面列表可包括l0、l1、l2和l3等。可通过使用至少一个参考画面列表来对当前块执行运动补偿。
[0353]
例如,当前块可通过使用至少一个参考画面列表来产生至少一个预测块,由此,可执行当前块的运动补偿。例如,可通过使用参考画面列表l0来产生一个或更多个预测块,以便执行运动补偿,或者可通过使用参考画面列表l0和l1来产生一个或更多个预测块以便执行运动补偿。可选择地,可通过使用参考画面列表l0、l1和l2来产生一个或更多个预测块或者最多n个预测块(这里,n是等于或大于2或3的正整数)以便执行运动补偿。可选择地,可通过使用参考画面列表l0、l1、l2和l3来产生一个或更多个预测块或者最多n个预测块(这里,n是等于或大于2或4的正整数)以便执行针对当前块的运动补偿。
[0354]
参考画面指示符可依据当前块的预测方向的数量而指示单向(pred_lx)、双向
(pred_bi)、三向(pred_tri)、四向(pred_quad)或更多向。
[0355]
例如,当针对每个参考画面列表执行单向预测时,帧间预测指示符pred_lx可意为通过使用参考画面列表lx(x是整数,诸如0、1、2或3等)产生一个预测块,并且通过使用所产生的一个预测块来执行帧间预测或运动补偿。帧间预测指示符pred_bi可意为通过使用参考画面列表l0和l1产生两个预测块,并且通过使用所产生的两个预测块来执行帧间预测或运动补偿。帧间预测指示符pred_tri可意为通过使用参考画面列表l0、l1和l2产生三个预测块,并且通过使用所产生的三个预测块来执行帧间预测或运动补偿。帧间预测指示符pred_quad可意为通过使用参考画面列表l0、l1、l2和l3产生四个预测块,并且通过使用所产生的四个预测块来执行帧间预测或运动补偿。也就是说,在执行当前块的帧间预测时使用的预测块的数量的总和可被设置为帧间预测指示符。
[0356]
当针对参考画面列表执行多向预测时,帧间预测指示符pred_bi可意为针对参考画面列表l0执行双向预测。帧间预测指示符pred_tri可意为:针对参考画面列表l0执行三向预测;针对参考画面列表l0执行单向预测且针对参考画面列表l1执行双向预测;或者针对参考画面列表l0执行双向预测且针对参考画面列表l1执行单向预测。
[0357]
如上所述,帧间预测指示符可意为从至少一个参考画面列表产生至少一个到最多n个预测块,以便执行运动补偿(这里,n是由帧间预测指示符所指示的预测方向的数量)。可选择地,帧间预测指示符可意为从n个参考画面产生至少一个到最多n个预测块并且通过使用产生的预测块来执行针对当前块的运动补偿。
[0358]
例如,帧间预测指示符pred_tri可意为通过使用参考画面列表l0、l1、l2和l3中的至少一个来产生三个预测块以便执行当前块的帧间预测或运动补偿。可选择地,帧间预测指示符pred_tri可意为通过使用参考画面列表l0、l1、l2和l3中的至少三个来产生三个预测块以便执行当前块的帧间预测或运动补偿。此外,帧间预测指示符pred_quad可意为通过使用参考画面列表l0、l1、l2和l3中的至少一个来产生四个预测块以便执行当前块的帧间预测或运动补偿。可选择地,帧间预测指示符pred_quad可意为通过使用参考画面列表l0、l1、l2和l3中的至少四个来产生四个预测块以便执行当前块的帧间预测或运动补偿。
[0359]
可根据帧间预测指示符来确定可用帧间预测方向,并且可基于当前块的大小和/或形状来选择性地使用所述可用帧间预测方向中的全部或一些。
[0360]
包括在每个参考画面列表中的参考画面的数量可被预定义,或者可通过在编码设备中被熵编码而被发送到解码设备。例如,语法元素“num_ref_idx_lx_active_minus1”(这里,x指示参考画面列表的索引,诸如0、1、2、3等)可指示针对参考画面列表(诸如l0、l1、l2或l3)的参考画面的数量。
[0361]
参考画面索引可指明每个参考画面列表中被当前块所参考的参考画面。至少一个参考画面索引可针对每个参考画面列表而被熵编码/解码。可通过使用至少一个参考画面索引来对当前块执行运动补偿。
[0362]
当通过n个参考画面索引选择了n个参考画面时,可通过产生至少一个至n(或多于n)个预测块来执行针对当前块的运动补偿。
[0363]
运动矢量候选索引指示针对每个参考画面列表或针对每个参考画面索引而产生的运动矢量候选列表中的用于当前块的运动矢量候选。针对每个运动矢量候选列表的至少一个运动矢量候选索引可被熵编码/解码。可通过使用至少一个运动矢量候选索引来对当
前块执行运动补偿。
[0364]
例如,基于n个运动矢量候选索引,可通过产生至少一个至n(或多于n)个预测块来执行针对当前块的运动补偿。
[0365]
运动矢量差指示运动矢量和预测出的运动矢量之间的差值。对于针对当前块的每个参考画面列表或每个参考画面索引而产生的运动矢量候选列表,至少一个运动矢量差可被熵编码/解码。可通过使用至少一个运动矢量差来对当前块执行运动补偿。
[0366]
例如,可通过经由n个运动矢量差产生至少一个至最多n(或多于n)个预测块来对当前块执行运动补偿。
[0367]
当在针对当前块的运动补偿期间产生了两个或更多个预测块时,可通过针对每个预测块的加权和来产生针对当前块的最终预测块。当计算加权和时,可对每个预测块应用权重和偏移中的至少一个。在计算加权和时使用的加权和因子(诸如权重或偏移等)可针对参考画面列表、参考画面、运动矢量候选索引、运动矢量差或运动矢量中的至少一个而被编码/解码。
[0368]
可通过指明编码设备和解码设备中的预定义集合之一的索引信息来获得加权和因子。在这种情况下,用于指明权重和偏移中的至少一个的索引信息可被熵编码/解码。
[0369]
与加权和因子相关的信息可按照块单元被熵编码/解码,并可按照更高等级被熵编码/解码。例如,权重或偏移可按照块单元(诸如ctu、cu或pu等)被熵编码/解码,或者可按照更高等级(诸如视频参数集、序列参数集、画面参数集、自适应参数集或条带头等)被熵编码/解码。
[0370]
加权和因子可基于指示加权和因子与加权和因子预测值之间的差值的加权和因子差值而被熵编码/解码。例如,权重预测值和权重差值可被熵编码/解码,或者偏移预测值和偏移差值可被熵编码/解码。这里,权重差值可指示权重与权重预测值之间的差值,偏移差值可指示偏移与偏移预测值之间的差值。
[0371]
这里,加权和因子差值可按照块单元被熵编码/解码,并且加权和因子预测值可按照更高等级被熵编码/解码。当加权和预测值(诸如权重预测值或偏移预测值等)按照画面或条带单元被熵编码/解码时,包括在画面或条带中的块可使用共同的加权和因子预测值。
[0372]
加权和因子预测值可通过图像、条带或并行块内的特定区域或者通过ctu或cu内的特定区域被获得。例如,图像、条带、并行块、ctu或cu内的特定区域的权重值或偏移值可被用作权重预测值或偏移预测值。在这种情况下,可省略对加权和因子预测值的熵编码/解码,并且可执行仅对加权和因子差值的熵编码/解码。
[0373]
可选择地,可从经过编码/解码的与当前块相邻的邻近块获得加权和因子预测值。例如,经过编码/解码的与当前块相邻的邻近块的权重值或偏移值可被设置为当前块的权重预测值或偏移预测值。这里,当前块的邻近块可包括以下块中的至少一个:在获得空间运动矢量候选时使用的块以及在获得时间运动矢量候选时使用的块。
[0374]
当使用权重预测值和权重差值时,解码设备可通过将权重预测值和权重差值相加来计算针对预测块的权重值。此外,当使用偏移预测值和偏移差值时,解码设备可通过将偏移预测值和偏移差值相加来计算针对预测块的偏移值。
[0375]
取代对关于当前块的加权和因子的信息进行熵编码/解码,经过编码/解码的与当前块相邻的邻近块的加权和因子可被用作当前块的加权和因子。例如,当前块的权重或偏
移可被设置为与经过编码/解码的与当前块相邻的邻近块的权重或偏移具有相同的值。
[0376]
至少一条关于运动补偿的信息可通过使用编码参数经由比特流被熵编码/解码,或者至少一条关于运动补偿的信息可通过使用至少一个编码参数来获得。
[0377]
当对关于运动补偿的信息进行熵编码/解码时,可使用二值化方法,诸如截断rice二值化方法、k阶exp_golomb二值化方法、有限k阶exp_golomb二值化方法、固定长度二值化方法、一元二值化方法或截断一元二值化方法等。
[0378]
当对关于运动补偿的信息进行熵编码/解码时,可通过使用关于与当前块相邻的邻近块的运动补偿的信息、关于先前编码/解码的运动补偿的信息、关于当前块的深度的信息以及关于当前块的大小的信息中的至少一条信息来确定上下文模型。
[0379]
此外,当对关于运动补偿的信息进行熵编码/解码时,可通过使用关于邻近块的运动补偿的信息、关于先前编码/解码的运动补偿的信息、关于当前块的深度的信息以及关于当前块的大小的信息中的至少一条信息作为针对关于当前块的运动补偿的信息的预测值来执行熵编码/解码。
[0380]
可针对亮度信号和色度信号中的每一个来执行帧间编码/解码处理。例如,在帧间编码/解码处理中,获得帧间预测指示符、产生运动矢量候选列表、获得运动矢量并执行运动补偿的至少一个方法可被不同地应用于亮度信号和色度信号。
[0381]
可对亮度信号和色度信号同样地执行帧间编码/解码处理。例如,在针对亮度信号应用的帧间编码/解码处理中,帧间预测指示符、运动矢量候选列表、运动矢量候选、运动矢量和参考画面中的至少一个可被应用于色度信号。
[0382]
所述方法可按照相同的方式在编码器和解码器中被执行。例如,在帧间编码/解码处理中,获得帧间预测指示符、获得运动矢量候选列表、获得运动矢量以及执行运动补偿的至少一个方法可被等同地应用在编码器和解码器中。此外,应用所述方法的顺序在编码器和解码器中可不同。
[0383]
本发明的实施例可根据编码块、预测块、块和单元中的至少一个的尺寸而被应用。这里,所述尺寸可被定义为最小尺寸和/或最大尺寸以便应用实施例,并且可被定义为应用了实施例的固定尺寸。此外,第一实施例可按照第一尺寸被应用,第二实施例可按照第二尺寸被应用。也就是说,实施例可根据所述尺寸而被多次应用。此外,本发明的实施例可仅在尺寸等于或大于最小尺寸并且等于或小于最大尺寸时被应用。也就是说,实施例可仅在块尺寸在预定范围中时被应用。
[0384]
例如,仅当编码/解码目标块的尺寸等于或大于8
×
8时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或大于16
×
16时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或大于32
×
32时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或大于64
×
64时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或大于128
×
128时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸为4
×
4时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或小于8
×
8时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或大于16
×
16时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或大于8
×
8且等于或小于16
×
16时,实施例才可被应用。例如,仅当编码/解码目标块的尺寸等于或大于16
×
16且等于或小于64
×
64时,实施例才可被应用。
[0385]
本发明的实施例可根据时间层而被应用。用于表示可被应用实施例的时间层的标识符可用信号传送,并且可针对由所述指示符指明的时间层应用实施例。这里,所述标识符可被定义为指示可被应用实施例的最小层和/或最大层,并且可被定义为指示可被应用实施例的特定层。
[0386]
例如,仅在当前画面的时间层为最底层时,实施例才可被应用。例如,仅在当前画面的时间层标识符为0时,实施例才可被应用。例如,仅在当前画面的时间层标识符等于或大于1时,实施例才可被应用。例如,仅在当前画面的时间层为最高层时,实施例才可被应用。
[0387]
如在本发明的实施例中所描述的,在参考画面列表构建和参考画面列表修改的处理中使用的参考画面集可使用参考画面列表l0、l1、l2和l3中的至少一个。
[0388]
根据本发明的实施例,当去块滤波器计算边界强度时,可使用编码/解码目标块的至少一个至最多n个运动矢量。这里,n指示等于或大于1的正整数,诸如2、3、4等。
[0389]
在运动矢量预测中,当运动矢量具有以下单元中的至少一个时,可应用本发明的实施例:16-像素(16-pel)单元、8-像素(8-pel)单元、4-像素(4-pel)单元、整数-像素(整数-pel)单元、1/2-像素(1/2-pel)单元、1/4-像素(1/4-pel)单元、1/8-像素(1/8-pel)单元、1/16-像素(1/16-pel)单元、1/32-像素(1/32-pel)单元以及1/64-像素(1/64-pel)单元。此外,在执行运动矢量预测时,可针对每个像素单元可选地使用运动矢量。
[0390]
可定义应用本发明的实施例的条带类型并且可根据条带类型应用本发明的实施例。
[0391]
例如,当条带类型是t(三向预测)-条带时,预测块可通过使用至少三个运动矢量来产生,并且可通过计算至少三个预测块的加权和而被用作编码/解码目标块的最终预测块。例如,当条带类型是q(四向预测)-条带时,预测块可通过使用至少四个运动矢量来产生,并且可通过计算至少四个预测块的加权和而被用作编码/解码目标块的最终预测块。
[0392]
本发明的实施例可被应用于使用运动矢量预测的帧间预测和运动补偿方法以及使用跳过模式、合并模式等的帧间预测和运动补偿方法。
[0393]
应用了本发明的实施例的块的形状可具有正方形或非正方形。
[0394]
在上述实施例中,基于具有一系列步骤或单元的流程图描述了所述方法,但本发明不限于所述步骤的顺序,而是,一些步骤可与其它步骤被同时执行,或者可与其它步骤按照不同顺序被执行。此外,本领域普通技术人员应该理解,流程图中的步骤不彼此相斥,并且在不影响本发明的范围的情况下,其它步骤可被添加到流程图中,或者一些步骤可从流程图被删除。
[0395]
实施例包括示例的各种方面。针对各个方面的所有可能组合可不被描述,但本领域技术人员将能够认识到不同组合。因此,本发明可包括权利要求范围内的所有替换形式、修改形式和改变。
[0396]
本发明的实施例可按照程序指令的形式来实施,其中,所述程序指令可由各种计算机组件来执行,并被记录在计算机可读记录介质上。计算机可读记录介质可包括单独的程序指令、数据文件、数据结构等,或者是程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可被特别设计和构造用于本发明,或者对于计算机软件技术领域的普通技术人员而言是已知的。计算机可读记录介质的示例包括:磁记录介质(诸
如硬盘、软盘和磁带);光学数据存储介质(诸如cd-rom或dvd-rom);磁光介质(诸如软光盘);以及被特别构造用于存储和实施程序指令的硬件装置(诸如只读存储器(rom)、随机存取存储器(ram)、闪存存储器等)。程序指令的示例不仅包括由编译器形成的机器语言代码,还包括可由计算机使用解释器实施的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作以进行根据本发明的处理,反之亦可。
[0397]
虽然已根据特定术语(诸如详细元件)以及有限实施例和附图描述了本发明,但它们仅被提供用于帮助更通俗地理解本发明,本发明不限于上述实施例。本发明所属领域的技术人员将理解,可从上述描述做出各种修改和改变。
[0398]
因此,本发明的精神不应受限于上述实施例,所附权利要求及其等同物的全部范围将落入本发明的范围和精神之内。
[0399]
工业可用性
[0400]
本发明可在用于对图像进行编码/解码的设备中被使用。

技术特征:
1.一种对图像进行解码的方法,所述方法包括:通过对第一运动矢量预测因子和第一运动矢量差进行求和来推导当前块的第一运动矢量;通过对第二运动矢量预测因子和第二运动矢量差进行求和来推导当前块的第二运动矢量;基于第一运动矢量获得针对当前块的第一预测块;基于第二运动矢量获得针对当前块的第二预测块;以及基于第一预测块和第二预测块获得针对当前块的最终预测块,其中,差信息仅针对第一运动矢量差而不针对第二运动矢量差被显式地用信号发送。2.如权利要求1所述的方法,其中,第二运动矢量差的大小被推导为与第一运动矢量差的大小相同。3.如权利要求1所述的方法,其中,最终预测块是基于第一预测块和第二预测块的加权和来获得的,其中,通过将第一权重应用于第一预测块并将第二权重应用于第二预测块来执行所述加权和,其中,第一权重和第二权重的集合是基于经由比特流显式地用信号发送的单个索引信息而确定的,其中,仅当针对当前块的帧间预测被双向执行时,经由比特流显式地用信号发送所述索引信息。4.如权利要求1所述的方法,其中,根据所述索引信息,第一权重与第二权重被不同地确定。5.如权利要求1所述的方法,其中,所述索引信息指定包括在预定义权重集合中的权重候选之一。6.如权利要求3所述的方法,其中,仅在当前块的尺寸等于或大于预定值时,从比特流解码所述索引信息。7.如权利要求1所述的方法,其中,所述索引信息是用截断莱斯二值化方法被二值化的。8.一种对图像进行编码的方法,所述方法包括:推导当前块的第一运动矢量;推导当前块的第二运动矢量;基于第一运动矢量获得针对当前块的第一预测块;基于第二运动矢量获得针对当前块的第二预测块;基于第一预测块和第二预测块获得针对当前块的最终预测块;其中,通过从第一运动矢量减去第一运动矢量预测因子来获得第一运动矢量差,其中,通过从第二运动矢量减去第二运动矢量预测因子来获得第二运动矢量差,其中,仅针对第一运动矢量差而不针对第二运动矢量差显式地对差信息进行编码。9.一种存储比特流的方法,其中,所述比特流被存储在计算机可读记录介质中,所述比特流由根据权利要求8所述的编码方法生成。

技术总结
本发明涉及一种图像编码/解码方法和用于所述方法的记录介质。为此,一种对图像进行解码的方法可包括以下步骤:根据当前块的帧间预测方向产生多个运动矢量候选的列表;通过使用所述多个运动矢量候选的列表来获得针对当前块的多个运动矢量;通过使用所述多个运动矢量来确定针对当前块的多个预测块;以及基于所述多个预测块来获得针对当前块的最终预测块。多个预测块来获得针对当前块的最终预测块。多个预测块来获得针对当前块的最终预测块。


技术研发人员:林成昶 姜晶媛 李河贤 全东山 高玄硕 李镇浩 赵承眩 金晖容 崔振秀
受保护的技术使用者:韩国电子通信研究院
技术研发日:2017.05.23
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐