首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 视频编码/解码方法和装置以及存储比特流的记录介质

视频编码/解码方法和装置以及存储比特流的记录介质

阅读:49发布:2020-05-15

专利汇可以提供视频编码/解码方法和装置以及存储比特流的记录介质专利检索,专利查询,专利分析的服务。并且公开了一种 视频编码 方法。本 发明 的视频编码方法包括以下步骤:从空间邻近 块 的运动信息、时间邻近块的运动信息、预定义运动信息以及在参考视频中最多出现的运动信息中的至少一个运动信息中推导运动修正候选;对推导出的运动修正候选执行运动信息修正;并且通过使用已被执行运动信息修正的运动修正候选来生成当前块的预测块。,下面是视频编码/解码方法和装置以及存储比特流的记录介质专利的具体信息内容。

1.一种图像解码方法,包括:
从空间邻近的运动信息、时间邻近块的运动信息、预定义运动信息和在参考画面中最频繁出现的运动信息中推导运动修正候选;
对推导出的运动修正候选执行运动信息修正;并且
通过使用已被执行运动信息修正的运动修正候选来生成当前块的预测块。
2.如权利要求1所述的方法,其中,通过以预定顺序从空间邻近块的运动信息、时间邻近块的运动信息、定义的运动信息和在参考画面中最频繁出现的运动信息中顺序地推导运动修正候选来执行运动信息候选的推导。
3.如权利要求2所述的方法,其中,所述预定顺序表示空间邻近块的运动信息、时间邻近块的运动信息和定义的运动信息的顺序。
4.如权利要求1所述的方法,其中,执行运动信息修正的步骤包括:对在推导出的运动修正候选中存在的运动矢量应用双边模板匹配的处理。
5.如权利要求4所述的方法,其中,所述双边模板匹配包括:
通过将在推导出的运动修正候选中存在的运动矢量用作初始运动矢量来生成双边模板;并且
通过将双边模板内的样点与参考画面内的由所述初始运动矢量指示的重建样点进行比较来修正所述初始运动矢量。
6.如权利要求5所述的方法,其中,所述初始运动矢量是在推导出的运动修正候选中的作为非零矢量的双向预测运动矢量。
7.如权利要求6所述的方法,其中,当在推导出的运动修正候选中不存在作为非零矢量的双向预测运动矢量时,将所述初始运动矢量设置为零矢量。
8.如权利要求1所述的方法,其中,所述时间邻近块被包括在通过空间邻近块的参考画面索引而选择的参考画面中。
9.如权利要求4所述的方法,其中,基于整数像素和子像素执行所述双边模板匹配。
10.如权利要求5所述的方法,其中,修正所述初始运动矢量的步骤包括:
搜索指示参考画面中的区域的运动矢量,其中,所述区域相对于双边模板中的相应区域具有最小失真值;并且
将找到的运动矢量设置为所述初始运动矢量的修正值。
11.如权利要求10所述的方法,其中,搜索所述初始运动矢量的步骤包括:
在参考画面内搜索限制的搜索范围。
12.如权利要求11所述的方法,其中,将所述限制的搜索范围设置为基于整数像素划界的预定范围。
13.如权利要求12所述的方法,其中,搜索所述初始运动矢量的步骤包括:
基于子像素在所述预定范围搜索运动矢量。
14.如权利要求10所述的方法,其中,递归地执行所述初始运动矢量的修正。
15.如权利要求1所述的方法,其中,当当前块与单向预测合并候选、局部照度补偿模式和仿射运动补偿模式均不对应时,对推导出的运动修正候选执行运动信息修正。
16.如权利要求1所述的方法,还包括:
对运动修正模式利用信息进行解码;并且
基于经过解码的运动修正模式利用信息来确定运动修正模式,其中,在运动修正模式下执行运动修正候选的推导。
17.如权利要求17所述的方法,其中,对所述运动修正模式利用信息进行解码的步骤包括:
基于跳过标志或合并标志来确定是否对所述运动修正模式利用信息进行解码。
18.如权利要求1所述的方法,其中,当存在多个空间邻近块时,推导所述运动信息候选的步骤包括:从具有双向预测运动矢量的空间邻近块推导运动信息,并且随后从具有单向预测运动矢量的空间邻近块推导运动信息。
19.一种图像编码方法,包括:
从空间邻近块的运动信息、时间邻近块的运动信息、预定义运动信息和在参考画面中最频繁出现的运动信息中推导运动修正候选;
对推导出的运动修正候选执行运动信息修正;并且
通过使用已被执行运动信息修正的运动修正候选来生成当前块的预测块。
20.一种包含通过图像编码方法生成的比特流的非暂时性存储介质,所述方法包括:
从空间邻近块的运动信息、时间邻近块的运动信息、预定义运动信息和在参考画面中最频繁出现的运动信息中推导运动修正候选;
对推导出的运动修正候选执行运动信息修正;并且
通过使用已被执行运动信息修正的运动修正候选来生成当前块的预测块。

说明书全文

视频编码/解码方法和装置以及存储比特流的记录介质

技术领域

[0001] 本发明涉及一种用于对图像进行编码/解码的方法和设备。具体地,本发明涉及一种用于通过修正运动信息来执行运动补偿的方法和设备、以及存储由本发明的图像编码方法/设备所生成的比特流的记录介质。

背景技术

[0002] 近来,在各种应用领域中对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求已经增加。然而,与传统图像数据相比,更高分辨率和质量的图像数据具有增加的数据量。因此,当通过使用诸如传统有线和无线宽带网络的介质传输图像数据时,或者当通过使用传统存储介质存储图像数据时,传输和存储的成本增加。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,需要高效图像编码/解码技术以用于更高分辨率和更高质量的图像。
[0003] 图像压缩技术包括各种技术,所述各种技术包括:间预测技术,从当前画面的先前画面或后续画面预测包括在当前画面中的像素值;帧内预测技术,通过使用当前画面中的像素信息来预测包括在当前画面中的像素值;变换和量化技术,用于压缩残差信号能量熵编码技术,将短码分配给具有高出现频率的值并将长码分配给具有低出现频率的值;等等。图像数据可通过使用这样的图像压缩技术被有效地压缩,并且可被发送或存储。
[0004] 因为传统的图像编码/解码方法和装置基于与当前(即,编码/解码目标块)相邻的空间/时间邻近块的运动信息来执行运动补偿,所以传统的图像编码/解码方法和设备在提高编码效率方面具有其局限性。

发明内容

[0005] 技术问题
[0006] 本发明提供了一种能够通过修正运动信息来执行运动补偿的方法和设备。
[0007] 技术方案
[0008] 根据本发明的一种对图像进行解码的方法,所述方法可包括:从空间邻近块的运动信息、时间邻近块的运动信息、预定义运动信息和在参考画面中最频繁出现的运动信息中推导运动修正候选;对推导出的运动修正候选执行运动信息修正;并且通过使用已被执行运动信息修正的运动修正候选来生成当前块的预测块。
[0009] 在根据本发明的对图像进行解码的方法中,其中,通过以预定顺序从空间邻近块的运动信息、时间邻近块的运动信息、定义的运动信息和在参考画面中最频繁出现的运动信息中顺序地推导运动修正候选来执行运动信息候选的推导。
[0010] 在根据本发明的对图像进行解码的方法中,其中,预定顺序表示空间邻近块的运动信息、时间邻近块的运动信息和定义的运动信息的顺序。
[0011] 在根据本发明的对图像进行解码的方法中,其中,执行运动信息修正的步骤包括:对在推导出的运动修正候选中存在的运动矢量应用双边模板匹配的处理。
[0012] 在根据本发明的对图像进行解码的方法中,其中,双边模板匹配包括:通过将在推导出的运动修正候选中存在的运动矢量用作初始运动矢量来生成双边模板;并且通过将双边模板内的样点与参考画面内的由初始运动矢量指示的重建样点进行比较来修正所述初始运动矢量。
[0013] 在根据本发明的对图像进行解码的方法中,其中,初始运动矢量是在推导出的运动修正候选中的作为非零矢量的双向预测运动矢量。
[0014] 在根据本发明的对图像进行解码的方法中,其中,当在推导出的运动修正候选中不存在作为非零矢量的双向预测运动矢量时,将初始运动矢量设置为零矢量。
[0015] 在根据本发明的对图像进行解码的方法中,其中,时间邻近块被包括在通过空间邻近块的参考画面索引而选择的参考画面中。
[0016] 在根据本发明的对图像进行解码的方法中,其中,基于整数像素和子像素执行双边模板匹配。
[0017] 在根据本发明的对图像进行解码的方法中,其中,修正初始运动矢量的步骤包括:搜索指示参考画面中的区域的运动矢量,其中,所述区域相对于双边模板中的相应区域具有最小失真值;并且将找到的运动矢量设置为初始运动矢量的修正值。
[0018] 在根据本发明的对图像进行解码的方法中,其中,搜索初始运动矢量的步骤包括:在参考画面内搜索限制的搜索范围。
[0019] 在根据本发明的对图像进行解码的方法中,其中,将限制的搜索范围设置为基于整数像素划界的预定范围。
[0020] 在根据本发明的对图像进行解码的方法中,其中,搜索初始运动矢量的步骤包括:
[0021] 基于子像素在预定范围搜索运动矢量。
[0022] 在根据本发明的对图像进行解码的方法中,其中,递归地执行初始运动矢量的修正。
[0023] 在根据本发明的对图像进行解码的方法中,其中,当当前块与单向预测合并候选、局部照度补偿模式和仿射运动补偿模式均不对应时,对推导出的运动修正候选执行运动信息修正。
[0024] 在根据本发明的对图像进行解码的方法中,还包括:对运动修正模式利用信息进行解码;并且基于经过解码的运动修正模式利用信息来确定运动修正模式,其中,在运动修正模式下执行运动修正候选的推导。
[0025] 在根据本发明的对图像进行解码的方法中,其中,对运动修正模式利用信息解码的步骤包括:基于跳过标志或合并标志来确定是否对运动修正模式利用信息进行解码。
[0026] 在根据本发明的对图像进行解码的方法中,其中,当存在多个空间邻近块时,推导运动信息候选的步骤包括:从具有双向预测运动矢量的空间邻近块推导出运动信息,并且随后从具有单向预测运动矢量的空间邻近块推导出运动信息。
[0027] 根据本发明的一种对图像进行编码的方法,所述方法可包括:从空间邻近块的运动信息、时间邻近块的运动信息、预定义运动信息和在参考画面中最频繁出现的运动信息中推导运动修正候选;对推导出的运动修正候选执行运动信息修正;并且通过使用已被执行运动信息修正的运动修正候选来生成当前块的预测块。
[0028] 一种包含通过图像编码方法生成的比特流的非暂时性存储介质,所述方法包括:从空间邻近块的运动信息、时间邻近块的运动信息、预定义运动信息和在参考画面中最频繁出现的运动信息中推导运动修正候选;对推导出的运动修正候选执行运动信息修正;并且通过使用已被执行运动信息修正的运动修正候选来生成当前块的预测块。
[0029] 有益效果
[0030] 根据本发明,可提供具有提高的压缩效率的图像编码/解码方法和设备。
[0031] 根据本发明,可提高图像的编码和解码效率。
[0032] 根据本发明,可降低图像编码器和图像解码器的计算复杂度。附图说明
[0033] 图1是示出根据本发明的实施例的编码设备的配置的框图
[0034] 图2是示出根据本发明的实施例的解码设备的配置的框图;
[0035] 图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图;
[0036] 图4是示出帧间预测处理的示图;
[0037] 图5是示出根据本发明的一个实施例的图像编码方法的流程图
[0038] 图6是示出根据本发明的一个实施例的图像解码方法的流程图;
[0039] 图7是示出根据本发明的另一实施例的图像编码方法的流程图;
[0040] 图8是示出根据本发明的另一实施例的图像解码方法的流程图;
[0041] 图9是示出推导当前块的空间运动矢量候选的示例性方法的示图;
[0042] 图10是示出推导当前块的时间运动矢量候选的示例性方法的示图;
[0043] 图11是示出将空间合并候选添加到合并候选列表的示例的示图;
[0044] 图12是示出将时间合并候选添加到合并候选列表的示例的示图;
[0045] 图13是示出执行双边模板匹配的方法的示图;
[0046] 图14和图15是示出使用双边模板匹配来执行搜索修正的运动矢量的搜索范围的示图;以及
[0047] 图16是示出根据本发明的又一实施例的图像解码方法的流程图。

具体实施方式

[0048] 可对本发明做出各种修改,并且存在本发明的各种实施例,其中,现在将参照附图提供所述各种实施例的示例并且将详细描述所述各种实施例的示例。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同形式或替换形式也是如此。相似的参考标号指在各方面相同或相似的功能。在附图中,为了清楚起见,元件的形状和尺寸可被夸大。在本发明的以下详细描述中,对通过图示的方式示出可实施本发明的具体实施例的附图进行参照。这些实施例被足够详细地描述以使本领域技术人员能够实施本公开。应该理解,本公开的各种实施例尽管不同,但不必是相互排他的。例如,在不脱离本公开的精神和范围的情况下,这里结合一个实施例描述的特定特征、结构和特性可在其它实施例中被实施。此外,应该理解,在不脱离本公开的精神和范围的情况下,每个公开的实施例内的各个元件的位置或布置可被修改。因此,以下详细描述不应以限制的含义来理解,并且本公开的范围仅由所附权利要求(在合适的解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
[0049] 在说明书中使用的术语“第一”、“第二”等可被用于描述各种组件,但这些组件并不被解释为受限于这些术语。这些术语仅被用于将一个组件与另一组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被称为“第二”组件,并且“第二”组件也可被类似地称为“第一”组件。术语“和/或”包括多个项的组合或者是多个项中的任意一项。
[0050] 将理解的是,在本说明书中,当元件仅被称为“连接到”或“结合到”另一元件而不是“直接连接到”或“直接结合到”另一元件时,所述元件可“直接连接到”或“直接结合到”所述另一元件,或者在所述元件与所述另一元件之间具有其他元件的情况下连接到或结合到所述另一元件。相反,应该理解,当元件被称为“直接结合”或“直接连接”到另一元件时,不存在中间元件。
[0051] 此外,在本发明的实施例中示出的组成部件被独立地示出,以便呈现彼此不同的特性功能。因此,这并不意味着每个组成部件以单独的硬件软件的组成单元被组成。换句话说,为了方便,每个组成部件包括枚举的组成部件中的每一个。因此,每个组成部件中的至少两个组成部件可被组合形成一个组成部件,或者一个组成部件可被划分为用于执行每个功能的多个组成部件。在没有脱离本发明的本质的情况下,每个组成部件被组合的实施例以及一个组成部件被划分的实施例也被包括在本发明的范围中。
[0052] 在本说明书中使用的术语仅用于描述具体实施例,而不旨在限制本发明。以单数使用的表达包括复数表达,除非它在上下文中具有明显不同的含义。在本说明书中,将理解,诸如“包括……的”、“具有……的”等的术语旨在指明存在说明书中所公开的特征、数量、步骤、动作、元件、部件、或其组合,而并不旨在排除可存在或者可添加一个或更多个其它特征、数量、步骤、动作、元件、部件、或其组合的可能性。换句话说,当特定元件被称为“被包括”时,除相应元件以外的元件并不被排除,而是,附加的元件可被包括在本发明的实施例中或者是本发明的范围中。
[0053] 此外,一些组成元件可能不是执行本发明的必要功能的不可缺的组成元件,而是仅提升其性能的可选组成元件。可通过仅包括用于实施本发明的实质的不可缺的组成部件而排除在提升性能时使用的组成元件来实施本发明。仅包括所述不可缺的组成元件而排除在仅提升性能时使用的可选组成元件的结构也被包括在本发明的范围中。
[0054] 在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知功能或结构,这是因为它们会不必要地模糊对本发明的理解。附图中的相同的组成元件由相同的参考标号来表示,并且对相同元件的重复描述将被省略。
[0055] 在下文中,图像可指构成视频的画面,或者可指视频本身。例如,“对图像进行编码或解码或者进行编码和解码两者”可指“对运动画面进行编码或解码或者进行编码和解码两者”,并且可指“对运动画面的图像中的一个图像进行编码或解码或者进行编码和解码两者。”
[0056] 在下文中,术语“运动画面”和“视频”可被用作相同的含义并且可彼此替换。
[0057] 在下文中,目标图像可以是作为编码目标的编码目标图像和/或作为解码目标的解码目标图像。此外,目标图像可以是输入到编码设备的输入图像、以及输入到解码设备的输入图像。这里,目标图像可与当前图像具有相同的含义。
[0058] 在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用作相同的含义并且彼此替换。
[0059] 在下文中,目标块可以是作为编码目标的编码目标块和/或作为解码目标的解码目标块。此外,目标块可以是作为当前编码和/或解码目标的当前块。例如,术语“目标块”和“当前块”可被用作相同的含义并且彼此替换。
[0060] 在下文中,术语“块”和“单元”可被用作相同的含义并且彼此替换。或者“块”可表示特定单元。
[0061] 在下文中,术语“区域”和“片段”可彼此替换。
[0062] 在下文中,特定信号可以是表示特定块的信号。例如,原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残差块的信号。
[0063] 在实施例中,特定信息、数据、标志、索引、元素和属性等中的每一个可具有值。等于“0”的信息、数据、标志、索引、元素和属性的值可表示逻辑假或第一预定义值。换言之,值“0”、假、逻辑假和第一预定值可彼此替换。等于“1”的信息、数据、标志、索引、元素和属性的值可表示逻辑真或第二预定义值。换句话说,值“1”、真、逻辑真和第二预定义值可彼此替换。
[0064] 当变量i或j用于表示列、行或索引时,i的值可以是等于或大于0的整数、或者等于或大于1的整数。也就是说,列、行、索引等可从0开始计数,或者可从1开始计数。
[0065] 术语描述
[0066] 编码器:表示执行编码的设备。也就是说,表示编码设备。
[0067] 解码器:表示执行解码的设备。也就是说,表示解码设备。
[0068] 块:是M×N的样点阵列。这里,M和N可表示正整数,并且块可表示二维形式的样点阵列。块可指单元。当前块可表示在编码时成为目标的编码目标块,或者在解码时成为目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
[0069] 样点:是构成块的基本单元。根据比特深度(Bd),样点可被表示为从0到2Bd-1的值。在本发明中,样点可被用作像素的含义。也就是说,样点、pel、像素可具有彼此相同的含义。
[0070] 单元:可指编码和解码单元。当对图像进行编码和解码时,单元可以是通过对单个图像进行分区而生成的区域。此外,当在编码或解码期间将单个图像分区为子划分单元时,单元可表示子划分单元。也就是说,图像可被分区为多个单元。当对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为尺寸小于该单元的尺寸的子单元。依据功能,单元可表示块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种尺寸和形状,具体地,单元的形状可以是二维几何图形,诸如正方形、长方形、梯形、三形、五边形等。此外,单元信息可包括指示编码单元、预测单元、变换单元等的单元类型以及单元尺寸、单元深度、单元的编码和解码的顺序等中的至少一个。
[0071] 编码树单元:被配置有亮度分量Y的单个编码树块以及与色度分量Cb和Cr相关的两个编码树块。此外,编码树单元可表示包括块和每个块的语法元素。可通过使用四叉树分区方法、二叉树分区方法和三叉树分区方法中的至少一个对每个编码树单元进行分区,以配置诸如编码单元、预测单元、变换单元等的更低等级的单元。编码树单元可被用作用于指定在对作为输入图像的图像进行编码/解码时成为处理单元的样点块的术语。这里,四叉树可表示四元树。
[0072] 编码树块:可用作用于指定Y编码树块、Cb编码树块和Cr编码树块中的任意一个的术语。
[0073] 邻近块:可表示与当前块相邻的块。与当前块相邻的块可表示与当前块的边界接触的块、或者位于距当前块预定距离内的块。邻近块可表示与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可表示与平相邻于当前块的邻近块垂直相邻的块、或者与垂直相邻于当前块的邻近块水平相邻的块。
[0074] 重建的邻近块:可表示与当前块相邻并且已经在空间/时间上被编码或解码的邻近块。这里,重建的邻近块可表示重建的邻近单元。重建的空间邻近块可以是在当前画面内并且已经通过编码或解码或者编码和解码两者而被重建的块。重建的时间邻近块是在参考图像内的与当前画面的当前块对应的位置处的块或所述块的邻近块。
[0075] 单元深度:可表示单元的分区程度。在树结构中,最高节点(根节点)可与未被分区的第一单元对应。此外,最高节点可具有最小深度值。在这种情况下,最高节点的深度可以为等级0。深度为等级1的节点可表示通过对第一单元进行一次分区而生成的单元。深度为等级2的节点可表示通过对第一单元进行两次分区而生成的单元。深度为等级n的节点可表示通过对第一单元进行n次分区而生成的单元。叶节点可以是最低节点并且是不能被进一步分区的节点。叶节点的深度可以是最大等级。例如,最大等级的预定义值可以是3。根节点的深度可以是最低的,并且叶节点的深度可以是最深的。此外,当单元被表示为树结构时,单元存在于的等级可表示单元深度。
[0076] 比特流:可表示包括编码图像信息的比特流。
[0077] 参数集:与比特流内的配置之中的头信息对应。视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个可被包括在参数集中。此外,参数集可包括条带(slice)头和并行块(tile)头信息。
[0078] 解析:可表示通过执行熵解码来确定语法元素的值,或者可表示熵解码本身。
[0079] 符号:可表示编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。此外,符号可表示熵编码目标或熵解码结果。
[0080] 预测模式:可以是指示利用帧内预测编码/解码的模式或利用帧间预测编码/解码的模式的信息。
[0081] 预测单元:可表示当执行预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿)时的基本单元。单个预测单元可被分区为具有更小尺寸的多个分区,或者可被分区为多个更低等级的预测单元。多个分区可以是在执行预测或补偿时的基本单元。通过划分预测单元而生成的分区也可以是预测单元。
[0082] 预测单元分区:可表示通过对预测单元进行分区而获得的形状。
[0083] 参考画面列表:可指包括用于帧间预测或运动补偿的一个或更多个参考画面的列表。存在几种类型的可用参考画面列表,所述可用参考画面列表包括LC(列表组合)、L0(列表0)、L1(列表1)、L2(列表2)、L3(列表3)。
[0084] 帧间预测指示符:可指当前块的帧间预测(单向预测、双向预测等)的方向。可选择地,帧间预测指示符可指用于生成当前块的预测块的参考画面的数量。可选择地,帧间预测指示符可指在对当前块执行帧间预测或运动补偿时所使用的预测块的数量。
[0085] 预测列表利用标志:指示是否使用特定参考画面列表中的至少一个参考画面来生成预测块。可使用预测列表利用标志来推导帧间预测指示符,并且相反地,可使用帧间预测指示符来推导预测列表利用标志。例如,当预测列表利用标志具有第一值零(0)时,它表示不使用参考画面列表中的参考画面来生成预测块。另一方面,当预测列表利用标志具有第二值一(1)时,它表示使用参考画面列表来生成预测块。
[0086] 参考画面索引:可指指示参考画面列表中的特定参考画面的索引。
[0087] 参考画面:可表示由特定块参考以实现对特定块进行帧间预测或运动补偿的目的的参考画面。可选择地,参考画面可以是包括由当前块参考以进行帧间预测或运动补偿的参考块的画面。在下文中,术语“参考画面”和“参考图像”具有相同的含义并且可彼此替换。
[0088] 运动矢量:可以是用于帧间预测或运动补偿的二维矢量。运动矢量可表示编码/解码目标块与参考块之间的偏移。例如,(mvX,mvY)可表示运动矢量。这里,mvX可表示水平分量,并且mvY可表示垂直分量。
[0089] 搜索范围:可以是在帧间预测期间为了检索运动矢量而搜索的二维区域。例如,搜索范围的大小可以是M×N。这里,M和N均为整数。
[0090] 运动矢量候选:可指在对运动矢量进行预测时的预测候选块或预测候选块的运动矢量。此外,运动矢量候选可被包括在运动矢量候选列表中。
[0091] 运动矢量候选列表:可表示由一个或更多个运动矢量候选组成的列表。
[0092] 运动矢量候选索引:可表示在运动矢量候选列表中指示运动矢量候选的指示符。可选择地,运动矢量候选索引可以是运动矢量预测因子的索引。
[0093] 运动信息:可表示包括以下项中的至少一项的信息,所述项包括运动矢量、参考画面索引、帧间预测指示符、预测列表利用标志、参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引。
[0094] 合并候选列表:可表示由一个或更多个合并候选组成的列表。
[0095] 合并候选:可表示空间合并候选、时间合并候选、组合合并候选、组合双向预测合并候选或零合并候选。合并候选可包括运动信息,诸如帧间预测指示符、针对每个列表的参考画面索引、运动矢量、预测列表利用标志和帧间预测指示符。
[0096] 合并索引:可表示在合并候选列表中指示合并候选的指示符。可选择地,合并索引可指示在空间上/时间上与当前块相邻的重建块之中已经推导出合并候选的块。可选择地,合并索引可指示合并候选的至少一条运动信息。
[0097] 变换单元:可表示在对残差信号执行编码/解码(诸如变换、逆变换、量化、反量化、变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有更小尺寸的多个更低等级的变换单元。这里,变换/逆变换可包括第一变换/第一逆变换和第二变换/第二逆变换中的至少一个。
[0098] 缩放:可表示将量化的等级乘以因子的处理。可通过缩放量化的等级来生成变换系数。缩放也可被称为反量化。
[0099] 量化参数:可表示当在量化期间使用变换系数来生成量化的等级时使用的值。量化参数还可表示当在反量化期间通过缩放量化的等级来生成变换系数时使用的值。量化参数可以是被映射在量化步长上的值。
[0100] 增量量化参数:可表示预测的量化参数与编码/解码目标单元的量化参数之间的差值。
[0101] 扫描:可表示对单元、块或矩阵内的系数进行排序的方法。例如,将系数的二维矩阵改变为一维矩阵可被称为扫描,将系数的一维矩阵改变为二维矩阵可被称为扫描或逆扫描。
[0102] 变换系数:可表示在编码器中执行变换之后生成的系数值。变换系数可表示在解码器中执行熵解码和反量化中的至少一个之后生成的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或者量化的变换系数等级也可落入变换系数的含义内。
[0103] 量化的等级:可表示在编码器中通过对变换系数或残差信号进行量化而生成的值。可选择地,量化的等级可表示作为在解码器中将被执行反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落入量化的等级的含义内。
[0104] 非零变换系数:可表示具有除零之外的值的变换系数、或者具有除零之外的值的变换系数等级或量化的等级。
[0105] 量化矩阵:可表示在被执行以提高主观图像质量或客观图像质量的量化处理或反量化处理中使用的矩阵。量化矩阵也可被称为缩放列表。
[0106] 量化矩阵系数:可表示量化矩阵内的每个元素。量化矩阵系数也可被称为矩阵系数。
[0107] 默认矩阵:可表示在编码器或解码器中预先定义的预定量化矩阵。
[0108] 非默认矩阵:可表示在编码器或解码器中未被预先定义而是由用户用信号发送的量化矩阵。
[0109] 统计值:针对具有可计算的特定值的变量、编码参数、常量值等之中的至少一个的统计值可以是相应特定值的平均值、加权平均值、加权和值、最小值、最大值、最频繁出现的值、中值、内插值之中的一个或更多个。
[0110] 图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
[0111] 编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对至少一个图像进行编码。
[0112] 参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
[0113] 编码设备100可通过使用帧内模式或帧间模式或者帧内模式和帧间模式两者来对输入图像执行编码。此外,编码设备100可通过对输入图像进行编码来生成包括编码信息的比特流,并输出生成的比特流。生成的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可切换到帧内。可选择地,当帧间模式被用作预测模式时,切换器115可切换到帧间模式。这里,帧内模式可表示帧内预测模式,帧间模式可表示帧间预测模式。编码设备100可生成针对输入图像的输入块的预测块。此外,编码设备100可在生成预测块之后使用输入块和预测块的残差对残差块进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为当前编码目标的当前块,或者被称为编码目标块。
[0114] 当预测模式是帧内模式时,帧内预测单元120可使用已被编码/解码并与当前块相邻的块的样点作为参考样点。帧内预测单元120可通过使用参考样点来对当前块执行空间预测,或者通过执行空间预测来生成输入块的预测样点。这里,帧内预测可表示帧内部的预测。
[0115] 当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像检索与输入块最匹配的区域,并且通过使用检索到的区域来推导运动矢量。在这种情况下,搜索区域可被用作所述区域。参考图像可被存储在参考画面缓冲器190中。这里,当执行对参考图像的编码/解码时,参考图像可被存储在参考画面缓冲器190中。
[0116] 运动补偿单元112可通过使用运动矢量对当前块执行运动补偿来生成预测块。这里,帧间预测可表示帧之间的预测或运动补偿。
[0117] 当运动矢量的值不是整数时,运动预测单元111和运动补偿单元112可通过将插值滤波器应用于参考画面的部分区域来生成预测块。为了对编码单元执行画面间预测或运动补偿,可确定将跳过模式、合并模式、高级运动矢量预测(AMVP)模式和当前画面参考模式之中的哪个模式用于对包括在相应编码单元中的预测单元的运动预测和运动补偿。然后,依据所确定的模式,可不同地执行画面间预测或运动补偿。
[0118] 减法器125可通过使用输入块和预测块的残差来生成残差块。残差块可被称为残差信号。残差信号可表示初始信号和预测信号之间的差。此外,残差信号可以是通过对初始信号与预测信号之间的差进行变换或量化或者变换和量化而生成的信号。残差块可以是块单元的残差信号。
[0119] 变换单元130可通过对残差块执行变换来生成变换系数,并输出生成的变换系数。这里,变换系数可以是通过对残差块执行变换而生成的系数值。当变换跳过模式被应用时,变换单元130可跳过对残差块的变换。
[0120] 可通过将量化应用于变换系数或应用于残差信号来生成量化的等级。在下文中,量化的等级在实施例中也可被称为变换系数。
[0121] 量化单元140可通过根据参数对变换系数或残差信号进行量化来生成量化的等级,并输出生成的量化的等级。这里,量化单元140可通过使用量化矩阵对变换系数进行量化。
[0122] 熵编码单元150可通过根据概率分布对由量化单元140计算出的值或者对在执行编码时计算出的编码参数值执行熵编码来生成比特流,并输出生成的比特流。熵编码单元150可对图像的样点信息和用于对图像进行解码的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素。
[0123] 当熵编码被应用时,符号被表示使得较少数量的比特被分配给具有高生成可能性的符号,并且较多数量的比特被分配给具有低生成可能性的符号,因此,可减小用于将被编码的符号的比特流的大小。熵编码单元150可使用诸如指数哥伦布、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等的用于熵编码的编码方法。例如,熵编码单元150可通过使用变长编码/码(VLC)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法和目标符号/二进制位的概率模型,并且通过使用推导出的二值化方法和上下文模型来执行算术编码。
[0124] 为了对变换系数等级(量化的等级)进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式系数改变为一维矢量形式。
[0125] 编码参数可包括在编码器中被编码并且被用信号发送到解码器的诸如语法元素的信息(标志、索引等)以及在执行编码或解码时推导出的信息。编码参数可表示在对图像进行编码或解码时所需要的信息。例如,以下项中的至少一个值或组合形式可被包括在编码参数中:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块形状、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、当前编码单元是否通过三叉树分区被分区、三叉树分区的方向(水平方向或垂直方向)、三叉树分区的类型(对称类型或非对称类型)、当前编码单元是否通过多类型树分区被分区、多类型树分区的方向(水平方向或垂直方向)、多类型树分区的类型(对称类型或非对称类型)和多类型树分区的树(二叉树或三叉树)结构、预测模式(帧内预测或帧间预测)、亮度帧内预测模式/方向、色度帧内预测模式/方向、帧内分区信息、帧间分区信息、编码块分区标志、预测块分区标志、变换块分区标志、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧内预测模式、帧间预测模式、运动信息、运动矢量、运动矢量差、参考画面索引、帧间预测角度、帧间预测指示符、预测列表利用标志、参考画面列表、参考画面、运动矢量预测因子索引、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并索引、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小、运动矢量的表示精确度、变换类型、变换尺寸、初级(首次)变换是否被使用的信息、次级变换是否被使用的信息、初级变换索引、次级变换索引、残差信号是否存在的信息、编码块样式、编码块标志(CBF)、量化参数、量化参数残差、量化矩阵、是否应用帧内环路滤波器、帧内环路滤波器系数、帧内环路滤波器抽头、帧内环路滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环路滤波器、自适应环路滤波器系数、自适应环路滤波器抽头、自适应环路滤波器形状/形式、二值化/逆二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁路二进制位、有效系数标志、最后一个有效系数标志、针对系数组的单元的编码标志、最后一个有效系数的位置、关于系数的值是否大于1的标志、关于系数的值是否大于2的标志、关于系数的值是否大于3的标志、关于剩余系数值的信息、符号信息、重建的亮度样点、重建的色度样点、残差亮度样点、残差色度样点、亮度变换系数、色度变换系数、量化的亮度等级、量化的色度等级、变换系数等级扫描方法、在解码器侧的运动矢量搜索区域的尺寸、在解码器侧的运动矢量搜索区域的形状、在解码器侧的运动矢量搜索的次数、关于CTU尺寸的信息、关于最小块尺寸的信息、关于最大块尺寸的信息、关于最大块深度的信息、关于最小块深度的信息、图像显示/输出顺序、条带标识信息、条带类型、条带分区信息、并行块标识信息、并行块类型、并行块分区信息、画面类型、输入样点的比特深度、重建样点的比特深度、残差样点的比特深度、变换系数的比特深度、量化的等级的比特深度、以及关于亮度信号的信息或关于色度信号的信息。
[0126] 这里,用信号发送标志或索引可表示由编码器对相应的标志或索引进行熵编码并包括在比特流中,并且可表示由解码器从比特流对相应的标志或索引进行熵解码。
[0127] 当编码设备100通过帧间预测执行编码时,编码的当前图像可被用作用于随后被处理的另一图像的参考图像。因此,编码设备100可对编码的当前图像进行重建或解码,或者将重建或解码的图像作为参考图像存储在参考画面缓冲器190中。
[0128] 量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可由加法器175将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加,可生成重建块。这里,经过反量化或逆变换的系数或经过反量化和逆变换两者的系数可表示执行了反量化和逆变换中的至少一个的系数,并且可表示重建的残差块。
[0129] 重建块可通过滤波器单元180。滤波器单元180可将去块滤波器、样点自适应偏移(SAO)和自适应环路滤波器(ALF)中的至少一个应用于重建样点、重建块或重建图像。滤波器单元180可被称为环内滤波器。
[0130] 去块滤波器可去除在块之间的边界中生成的块失真。为了确定是否应用去块滤波器,可基于块中所包括的若干行或列中包括的样点来确定是否将去块滤波器应用于当前块。当将去块滤波器应用于块时,可根据所需的去块滤波强度来应用另一滤波器。
[0131] 为了补偿编码误差,可通过使用样点自适应偏移将合适的偏移值与样点值相加。样点自适应偏移可以以样点为单位对经过去块的图像与原始图像的偏移进行校正。可使用考虑关于每个样点的边缘信息来应用偏移的方法,或者可使用以下方法:将图像的样点分区为预定数量的区域,确定偏移被应用的区域,并对确定的区域应用偏移。
[0132] 自适应环路滤波器可基于经过滤波的重建图像和原始图像的比较结果来执行滤波。可将包括在图像中的样点分区为预定组,可确定将被应用于每个组的滤波器,并且可对每个组执行差异化滤波。是否应用ALF的信息可通过编码单元(CU)被用信号发送,并且将被应用于每个块的ALF的形式和系数可变化。
[0133] 已经通过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。由滤波器单元180处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元180处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿时被使用。
[0134] 图2是示出根据应用了本发明的实施例的解码设备的配置的框图。
[0135] 解码设备200可以是解码器、视频解码设备或图像解码设备。
[0136] 参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器225、滤波器单元260和参考画面缓冲器270。
[0137] 解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读记录介质中的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可生成通过解码而生成的重建图像或解码图像,并输出重建图像或解码图像。
[0138] 当在解码时使用的预测模式是帧内模式时,切换器可被切换到帧内。可选择地,当在解码时使用的预测模式是帧间模式时,切换器可被切换到帧间模式。
[0139] 解码设备200可通过对输入比特流进行解码来获得重建残差块,并生成预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来生成成为解码目标的重建块。解码目标块可被称为当前块。
[0140] 熵解码单元210可通过根据概率分布对比特流进行熵解码来生成符号。生成的符号可包括量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆过程。
[0141] 为了对变换系数等级(量化的等级)进行解码,熵解码单元210可通过使用变换系数扫描方法将单向矢量形式系数改变为二维块形式。
[0142] 可在反量化单元220中对量化的等级进行反量化,或者在逆变换单元230中对量化的等级进行逆变换。量化的等级可以是进行反量化或逆变换或者进行反量化和逆变换两者的结果,并且可被生成为重建的残差块。这里,反量化单元220可将量化矩阵应用于量化的等级。
[0143] 当使用帧内模式时,帧内预测单元240可通过对当前块执行空间预测来生成预测块,其中,空间预测使用与解码目标块相邻并且已经被解码的块的样点值。
[0144] 当使用帧间模式时,运动补偿单元250可通过对当前块执行运动补偿来生成预测块,其中,运动补偿使用运动矢量以及存储在参考画面缓冲器270中的参考图像。
[0145] 加法器225可通过将重建的残差块与预测块相加来生成重建块。滤波器单元260可将去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个应用于重建块或重建图像。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中并且在执行帧间预测时被使用。由滤波器单元260处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元260处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿时被使用。
[0146] 图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。图3示意性地示出将单个单元分区为多个更低等级的单元的示例。
[0147] 为了有效地对图像进行分区,当进行编码和解码时,可使用编码单元(CU)。编码单元可被用作当对图像进行编码/解码时的基本单元。此外,编码单元可被用作用于在对图像进行编码/解码时区分帧内预测模式与帧间预测模式的单元。编码单元可以是预测、变换、量化、逆变换、反量化或对变换系数的编码/解码处理的基本单元。
[0148] 参照图3,图像300按照最大编码单元(LCU)被顺序地分区,并且LCU单元被确定为分区结构。这里,LCU可以以与编码树单元(CTU)相同的含义被使用。单元分区可表示对与该单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或程度或者单元被分区的次数和程度两者。可基于树结构将单个单元分区为与深度信息分层地相关联的多个更低等级的单元。换言之,单元和通过对该单元进行分区而生成的更低等级的单元可分别与节点和该节点的子节点相应。分区出的更低等级的单元中的每个可具有深度信息。深度信息可以是表示CU的尺寸的信息,并且可被存储在每个CU中。单元深度表示与对单元进行分区相关的次数和/或程度。因此,更低等级的单元的分区信息可包括关于更低等级的单元的尺寸的信息。
[0149] 分区结构可表示LCU 310内的编码单元(CU)的分布。可根据是否将单个CU分区为多个(等于或大于2的正整数,包括2、4、8、16等)CU来确定这样的分布。通过分区生成的CU的水平尺寸和垂直尺寸可分别是分区之前的CU的水平尺寸和垂直尺寸的一半,或者可分别具有根据分区的次数而小于分区之前的水平尺寸和垂直尺寸的尺寸。CU可以被递归地分区为多个CU。通过递归分区,与分区之前的CU的高度和宽度之中的至少一个相比,分区之后的CU的高度和宽度之中的至少一个可减小。可递归地执行CU的分区,直到预定义的深度或预定义的尺寸为止。例如,LCU的深度可以是0,最小编码单元(SCU)的深度可以是预定义的最大深度。这里,如上所述,LCU可以是具有最大编码单元尺寸的编码单元,并且SCU可以是具有最小编码单元尺寸的编码单元。分区从LCU 310开始,当CU的水平尺寸或垂直尺寸或者水平尺寸和垂直尺寸两者通过分区而减小时,CU深度增加1。例如,对于每个深度,未被分区的CU的尺寸可以为2N×2N。此外,在被分区的CU的情况下,可将尺寸为2N×2N的CU分区为尺寸为N×N的四个CU。当深度增加1时,N的大小可减小一半。
[0150] 此外,可通过使用CU的分区信息来表示CU是否被分区的信息。分区信息可以是1比特信息。除SCU之外的所有CU可包括分区信息。例如,当分区信息的值为1时,可不对CU进行分区,当分区信息的值为2时,可对CU进行分区。
[0151] 参照图3,具有深度0的LCU可以是64×64块。0可以是最小深度。具有深度3的SCU可以是8×8块。3可以是最大深度。32×32块和16×16块的CU可分别被表示为深度1和深度2。
[0152] 例如,当单个编码单元被分区为四个编码单元时,分区出的四个编码单元的水平尺寸和垂直尺寸可以是CU在被划分之前的水平尺寸和垂直尺寸的一半大小。在一个实施例中,当尺寸为32×32的编码单元被分区为四个编码单元时,分区出的四个编码单元中的每个的尺寸可以为16×16。当单个编码单元被分区为四个编码单元时,可称为编码单元可被分区为四叉树形式。
[0153] 例如,当一个编码单元被分区为两个子编码单元时,两个子编码单元中的每个的水平尺寸或垂直尺寸(宽度或高度)可以是原始编码单元的水平尺寸或垂直尺寸的一半。例如,当尺寸为32×32的编码单元被垂直分区为两个子编码单元时,两个子编码单元中的每个可具有16×32的尺寸。例如,当尺寸为8×32的编码单元被水平分区为两个子编码单元时,两个子编码单元中的每个可具有8×16的尺寸。当一个编码单元被分区为两个子编码单元时,可称为编码单元被二进制分区,或者根据二叉树分区结构被分区。
[0154] 例如,当一个编码单元被分区为三个子编码单元时,可以以1:2:1的比例对编码单元的水平尺寸或垂直尺寸进行分区,从而产生水平尺寸或垂直尺寸的比例为1:2:1的三个子编码单元。例如,当尺寸为16×32的编码单元被水平分区为三个子编码单元时,三个子编码单元以从最上方子编码单元到最下方子编码单元的顺序可分别具有16×8、16×16和16×8的尺寸。例如,当尺寸为32×32的编码单元被垂直划分为三个子编码单元时,三个子编码单元以从左侧子编码单元到右侧子编码单元的顺序可分别具有8×32、16×32和8×32的尺寸。当一个编码单元被分区为三个子编码单元时,可称编码单元被三分区或者根据三叉树分区结构被分区。
[0155] 在图3中,编码树单元(CTU)320是应用了四叉树分区结构、二叉树分区结构和三叉树分区结构全都被应用的CTU的示例。
[0156] 如上所述,为了对CTU进行分区,可应用四叉树分区结构、二叉树分区结构和三叉树分区结构中的至少一个。可根据预定的优先级顺序将各种树分区结构顺序地应用于CTU。例如,可将四叉树分区结构优先应用于CTU。不能再使用四叉树分区结构进行分区的编码单元可与四叉树的叶节点对应。与四叉树的叶节点对应的编码单元可用作二叉树和/或三叉树分区结构的根节点。也就是说,与四叉树的叶节点对应的编码单元可根据二叉树分区结构或三叉树分区结构被进一步分区,或者可不被进一步分区。因此,通过防止由与四叉树的叶节点对应的编码单元的二叉树分区或三叉树分区产生的编码块再被进一步执行四叉树分区,可有效地执行块分区和/或用信号发送分区信息。
[0157] 可使用四分区信息用信号发送与四叉树的节点对应的编码单元被分区的事实。具有第一值(例如,“1”)的四分区信息可指示当前编码单元根据四叉树分区结构被分区。具有第二值(例如,“0”)的四分区信息可指示当前编码单元未根据四叉树分区结构被分区。四分区信息可以是具有预定长度(例如,一个比特)的标志。
[0158] 二叉树分区与三叉树分区之间可没有优先级。也就是说,与四叉树的叶节点对应的编码单元可被进一步执行二叉树分区和三叉树分区中的任意分区。此外,通过二叉树分区或三叉树分区生成的编码单元可被进一步执行二叉树分区或被进一步执行三叉树分区,或者可不被进一步分区。
[0159] 在二叉树分区和三叉树分区中不存在优先级的树结构被称为多类型树结构。与四叉树的叶节点对应的编码单元可用作多类型树的根节点。可使用多类型树分区指示信息、分区方向信息和分区树信息中的至少一个来用信号发送是否对与多类型树的节点对应的编码单元进行分区。为了对与多类型树的节点对应的编码单元进行分区,可顺序地用信号发送多类型树分区指示信息、分区方向和分区树信息。
[0160] 具有第一值(例如,“1”)的多类型树分区指示信息可指示当前编码单元将被执行多类型树分区。具有第二值(例如,“0”)的多类型树分区指示信息可指示当前编码单元将不被执行多类型树分区。
[0161] 当与多类型树的节点对应的编码单元根据多类型树分区结构被进一步分区时,所述编码单元可包括分区方向信息。分区方向信息可指示当前编码单元将在哪个方向上根据多类型树分区被分区。具有第一值(例如,“1”)的分区方向信息可指示当前编码单元将被垂直分区。具有第二值(例如,“0”)的分区方向信息可指示当前编码单元将被水平分区。
[0162] 当与多类型树的节点对应的编码单元根据多类型树分区结构被进一步分区时,当前编码单元可包括分区树信息。分区树信息可指示将被用于对多类型树的节点进行分区的树分区结构。具有第一值(例如,“1”)的分区树信息可指示当前编码单元将根据二叉树分区结构被分区。具有第二值(例如,“0”)的分区树信息可指示当前编码单元将根据三叉树分区结构被分区。
[0163] 分区指示信息、分区树信息和分区方向信息均可以是具有预定长度(例如,一个比特)的标志。
[0164] 四叉树分区指示信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个可被熵编码/熵解码。为了对那些类型的信息进行熵编码/熵解码,可使用关于与当前编码单元相邻的邻近编码单元的信息。例如,当前编码单元的左侧邻近编码单元和/或上方邻近编码单元的分区类型(被分区或未被分区、分区树和/或分区方向)与当前编码单元的分区类型相似的可能性很高。因此,可从关于邻近编码单元的信息推导出用于对关于当前编码单元的信息进行熵编码/解码的上下文信息。关于邻近编码单元的信息可包括四分区信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个。
[0165] 作为另一示例,在二叉树分区和三叉树分区中,可优先执行二叉树分区。也就是说,当前编码单元可优先被执行二叉树分区,并且随后可将与二叉树的叶节点对应的编码单元设置为用于三叉树分区的根节点。在这种情况下,对于与三叉树的节点对应的编码单元,可既不执行四叉树分区也不二叉树分区。
[0166] 不能根据四叉树分区结构、二叉树分区结构和/或三叉树分区结构被分区的编码单元成为用于编码、预测和/或变换的基本单元。也就是说,所述编码单元不能被进一步分区以用于预测和/或变换。因此,在比特流中可不存在用于将编码单元分区为预测单元和/或变换单元的分区结构信息和分区信息。
[0167] 然而,当编码单元(即,用于分区的基本单元)的尺寸大于最大变换块的尺寸时,可递归地对编码单元进行分区,直到将编码单元的尺寸减小到等于或小于最大变换块的尺寸。例如,当编码单元的尺寸为64×64时并且当最大变换块的尺寸为32×32时,可将编码单元分区为用于变换的四个32×32块。例如,当编码单元的尺寸为32×64并且最大变换块的尺寸为32×32时,可将编码单元分区为用于变换的两个32×32块。在这种情况下,不单独用信号发送编码单元的用于变换的分区,并且可通过编码单元的水平尺寸或垂直尺寸与最大变换块的水平尺寸或垂直尺寸之间的比较来确定编码单元的用于变换的分区。例如,当编码单元的水平尺寸(宽度)大于最大变换块的水平尺寸(宽度)时,可将编码单元垂直地一分为二。例如,当编码单元的垂直尺寸(长度)大于最大变换块的垂直尺寸(长度)时,可将编码单元水平地一分为二。
[0168] 可在编码单元的更高等级用信号发送或确定编码单元的最大尺寸和/或最小尺寸的信息以及变换块的最大尺寸和/或最小尺寸的信息。更高等级可以是例如序列级、画面级或条带级等。例如,可将编码单元的最小尺寸确定为4×4。例如,可将变换块的最大尺寸确定为64×64。例如,可将变换块的最小尺寸确定为4×4。
[0169] 可在编码单元的更高等级用信号发送或确定与四叉树的叶节点对应的编码单元的最小尺寸(四叉树最小尺寸)的信息和/或多类型树的从根节点到叶节点的最大深度(多类型树的最大树深度)的信息。例如,更高等级可以是序列级、画面级或条带级等。可针对帧内画面条带和帧间画面条带中的每个用信号发送或确定四叉树的最小尺寸的信息和/或多类型树的最大深度的信息。
[0170] 可在编码单元的更高等级用信号发送或确定CTU的尺寸与变换块的最大尺寸之间的差信息。例如,更高等级可以是序列级、画面级或条带级等。可基于编码树单元的尺寸和差信息来确定与二叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为二叉树的最大尺寸)的信息。与三叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为三叉树的最大尺寸)可依据条带的类型而变化。例如,针对画面内条带,三叉树的最大尺寸可以是32×32。例如,针对画面间条带,三叉树的最大尺寸可以是128×128。例如,可将与二叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为二叉树的最小尺寸)和/或与三叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为三叉树的最小尺寸)设置为编码块的最小尺寸。
[0171] 作为另一示例,可在条带级用信号发送或确定二叉树的最大尺寸和/或三叉树的最大尺寸。可选择地,可在条带级用信号发送或确定二叉树的最小尺寸和/或三叉树的最小尺寸。
[0172] 依据上述各种块的尺寸信息和深度信息,四分区信息、多类型树分区指示信息、分区树信息和/或分区方向信息可被包括在比特流中或可不被包括在比特流中。
[0173] 例如,当编码单元的尺寸不大于四叉树的最小尺寸时,编码单元不包含四分区信息。因此,可从第二值推导出四分区信息。
[0174] 例如,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)大于二叉树的最大尺寸(水平尺寸和垂直尺寸)和/或三叉树的最大尺寸(水平尺寸和垂直尺寸)时,编码单元可不被二分区或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。
[0175] 可选择地,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)与二叉树的最大尺寸(水平尺寸和垂直尺寸)相同,和/或与三叉树的最大尺寸(水平尺寸和垂直尺寸)的两倍一样大时,编码单元可不被进一步二分区或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。这是因为,当根据二叉树分区结构和/或三叉树分区结构对编码单元进行分区时,生成了小于二叉树的最小尺寸和/或三叉树的最小尺寸的编码单元。
[0176] 可选择地,当与多类型树的节点对应的编码单元的深度等于多类型树的最大深度时,可不对编码单元进行进一步二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。
[0177] 可选择地,只有当垂直方向二叉树分区、水平方向二叉树分区、垂直方向三叉树分区和水平方向三叉树分区中的至少一个对于与多类型树的节点对应的编码单元是可行的时,可用信号发送多类型树分区指示信息。否则,可能无法对编码单元进行二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导出多类型树分区指示信息。
[0178] 可选择地,只有当垂直方向二叉树分区和水平方向二叉树分区两者或者垂直方向三叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码单元是可行的时,可用信号发送分区方向信息。否则,可不用信号发送分区方向信息,而是可从指示可能的分区方向的值推导出分区方向信息。
[0179] 可选择地,只有当垂直方向二叉树分区和垂直方向三叉树分区两者或者水平方向二叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码树是可行的时,可用信号发送分区树信息。否则,可不用信号发送分区树信息,但是可从指示可能的分区树结构的值推导出分区树信息。
[0180] 图4是示出画面间预测处理的实施例的图。
[0181] 在图4中,矩形可表示画面。在图4中,箭头表示预测方向。根据画面的编码类型,可将画面分类为帧内画面(I画面)、预测画面(P画面)和双向预测画面(B画面)。
[0182] 在不需要画面间预测的情况下,可通过帧内预测对I画面进行编码。可通过使用在相对于当前块的一个方向(即,前向或后向)上存在的参考画面,通过画面间预测来对P画面进行编码。可通过使用在相对于当前块的两个方向(即,前向和后向)上存在的参考画面,通过画面间预测来对B画面进行编码。当使用画面间预测时,编码器可执行画面间预测或运动补偿,并且解码器可执行相应的运动补偿。
[0183] 在下文中,将详细描述画面间预测的实施例。
[0184] 可使用参考画面和运动信息来执行画面间预测或运动补偿。
[0185] 可通过编码设备100和解码设备200中的每个在画面间预测期间推导当前块的运动信息。可通过使用重建的邻近块的运动信息、同位置块(也称为col块或同位块)的运动信息和/或与同位块相邻的块的运动信息来推导当前块的运动信息。同位块可表示在先前重建的同位置画面(也称为col画面或同位画面)内的在空间上与当前块位于相同位置的块。同位画面可以是包括在参考画面列表中的一个或更多个参考画面中的一个画面。
[0186] 推导当前块的运动信息的方法可依据当前块的预测模式变化。例如,作为用于画面间预测的预测模式,可具有AMVP模式、合并模式、跳过模式、当前画面参考模式等。合并模式可被称为运动合并模式。
[0187] 例如,当AMVP被用作预测模式时,可将重建的邻近块的运动矢量、同位块的运动矢量、与同位块相邻的块的运动矢量和(0,0)运动矢量中的至少一个确定为针对当前块的运动矢量候选,并且通过使用运动矢量候选生成运动矢量候选列表。可通过使用生成的运动矢量候选列表来推导当前块的运动矢量候选。可基于推导出的运动矢量候选来确定当前块的运动信息。同位块的运动矢量或与同位块相邻的块的运动矢量可被称为时间运动矢量候选,并且重建的邻近块的运动矢量可被称为空间运动矢量候选。
[0188] 编码设备100可计算当前块的运动矢量与运动矢量候选之间的运动矢量差(MVD),并且可对运动矢量差(MVD)执行熵编码。此外,编码设备100可对运动矢量候选索引执行熵编码并生成比特流。运动矢量候选索引可指示包括在运动矢量候选列表中的运动矢量候选之中的最佳运动矢量候选。解码设备可对包括在比特流中的运动矢量候选索引执行熵解码,并且可通过使用经过熵解码的运动矢量候选索引从包括在运动矢量候选列表中的运动矢量候选中选择解码目标块的运动矢量候选。此外,解码设备200可将经过熵解码的MVD与通过熵解码而提取的运动矢量候选相加,从而推导出解码目标块的运动矢量。
[0189] 比特流可包括指示参考画面的参考画面索引。参考画面索引可通过编码设备100被熵编码,并且随后作为比特流被用信号发送到解码设备200。解码设备200可基于推导出的运动矢量和参考画面索引信息来生成解码目标块的预测块。
[0190] 推导当前块的运动信息的方法的另一示例可以是合并模式。合并模式可表示合并多个块的运动的方法。合并模式可表示从邻近块的运动信息推导当前块的运动信息的模式。当应用合并模式时,可使用重建的邻近块的运动信息和/或同位块的运动信息来生成合并候选列表。运动信息可包括运动矢量、参考画面索引和画面间预测指示符中的至少一个。预测指示符可指示单向预测(L0预测或L1预测)或双向预测(L0预测和L1预测)。
[0191] 合并候选列表可以是存储的运动信息的列表。包括在合并候选列表中的运动信息可以是零合并候选和新运动信息中的至少一个,其中,所述新运动信息是与当前块相邻的一个邻近块的运动信息(空间合并候选)、当前块的包括在参考画面内的同位块的运动信息(时间合并候选)和存在于合并候选列表中的运动信息的组合。
[0192] 编码设备100可通过对合并标志和合并索引中的至少一个执行熵编码来生成比特流,并且可将比特流用信号发送到解码设备200。合并标志可以是指示是否针对每个块执行合并模式的信息,并且合并索引可以是指示当前块的邻近块中的哪个邻近块是合并目标块的信息。例如,当前块的邻近块可包括在当前块的左侧的左侧邻近块、被布置在当前块上方的上方邻近块和在时间上与当前块相邻的时间邻近块。
[0193] 跳过模式可以是将邻近块的运动信息照原样应用于当前块的模式。当应用跳过模式时,编码设备100可对哪个块的运动信息将被用作当前块的运动信息的事实的信息执行熵编码,以生成比特流,并且可将比特流用信号发送到解码设备200。编码设备100可不将关于运动矢量差信息、编码块标志和变换系数等级中的至少任意一个的语法元素用信号发送到解码设备200。
[0194] 当前画面参考模式可表示当前块所属的当前画面内的先前重建的区域被用于预测的预测模式。这里,矢量可被用于指定先前重建的区域。可通过使用当前块的参考画面索引来对指示是否将在当前画面参考模式下对当前块进行编码的信息进行编码。可用信号发送指示当前块是否为在当前画面参考模式下编码的块的标志或索引,并且可基于当前块的参考画面索引来推导出所述标志或索引。在在当前画面参考模式下对当前块进行编码的情况下,可将当前画面添加到针对当前块的参考画面列表,以便使当前画面位于参考画面列表中的固定位置或任意位置。固定位置可以是例如由参考画面索引0指示的位置,或者是列表中的最后一个位置。当将当前画面添加到参考画面列表,以便使当前画面位于任意位置时,可用信号发送指示任意位置的参考画面索引。
[0195] 基于以上描述,下面将详细描述根据本发明的实施例的图像编码方法和图像解码方法。
[0196] 图5是示出根据本发明的一个实施例的图像编码方法的流程图。图6是示出根据本发明的一个实施例的图像解码方法的流程图。
[0197] 参照图5,编码设备可推导运动矢量候选(步骤S501),并且基于推导出的运动矢量候选生成运动矢量候选列表(步骤S502)。在生成运动矢量候选列表之后,可基于生成的运动矢量候选列表来确定运动矢量(步骤S503),并且可基于确定的运动矢量来执行运动补偿(步骤S504)。随后,编码设备可对与运动补偿相关联的信息进行编码(步骤S505)。
[0198] 参照图6,解码设备可对从编码设备接收到的与运动补偿相关联的信息执行熵解码(步骤S601),并且推导运动矢量候选(步骤S602)。解码设备可基于推导出的运动矢量候选来生成运动矢量候选列表(步骤S603),并且使用生成的运动矢量候选列表来确定运动矢量(步骤S604)。随后,解码设备可通过使用确定的运动矢量来执行运动补偿(步骤S605)。
[0199] 图7是示出根据本发明的另一实施例的图像编码方法的流程图。图8是示出根据本发明的另一实施例的图像解码方法的流程图。
[0200] 参照图7,编码设备可推导合并候选(步骤S701),并且基于推导出的合并候选来生成合并候选列表。在生成合并候选列表之后,编码设备可使用生成的合并候选列表来确定运动信息(步骤S702),并且可使用确定的运动信息来对当前块执行运动补偿(步骤S703)。随后,编码设备可对与运动补偿相关联的信息执行熵编码(步骤S704)。
[0201] 参照图8,解码设备可对从编码设备接收到的与运动补偿相关联的信息执行熵解码(S801),推导合并候选(S802),并且基于推导出的合并候选来生成合并候选列表。在生成合并候选列表之后,解码设备可通过使用生成的合并候选列表来确定当前块的运动信息(S803)。随后,解码设备可使用运动信息来执行运动补偿(S804)。
[0202] 图5和图6示出了应用在图4中示出的AMVP的示例,并且图7和图8示出了应用在图4中示出的合并模式的示例。
[0203] 在下文中,将描述图5和图6中的每个步骤,并且随后将描述图7和图8中的每个步骤。然而,将共同地描述与S504、S605、S703和S804对应的运动补偿步骤以及与S505、S601、S704和S801对应的熵编码/熵解码步骤。
[0204] 在下文中,将在下面详细描述图5和图6中的每个步骤。
[0205] 首先,将详细描述推导运动矢量候选的步骤(S501,S602)。
[0206] 当前块的运动矢量候选可包括空间运动矢量候选和时间运动矢量候选中的至少一个或空间运动矢量候选和时间运动矢量候选两者。
[0207] 可从与当前块相邻的重建块推导出当前块的时间运动矢量。例如,可将与当前块相邻的重建块的运动矢量确定为当前块的空间运动矢量候选。
[0208] 图9是示出推导当前块的空间运动矢量候选的示例的示图。
[0209] 参照图9,可从与当前块X相邻的邻近块推导出当前块的空间运动矢量候选。与当前块X相邻的邻近块包括与当前块的上端相邻的块B1、与当前块的左端相邻的块A1、与当前块的右上角相邻的块B0、与当前块的左上角相邻的块B2和与当前块的左下角相邻的块A0中的至少一个。与当前块相邻的邻近块可具有正方形形状或非正方形形状。当与当前块相邻的邻近块中的一个具有运动矢量时,可将该邻近块的运动矢量确定为当前块的空间运动矢量候选。可基于对是否存在邻近块或者邻近块是否已经通过帧间预测处理被编码的确定,来确定邻近块是否具有运动矢量或者邻近块的运动矢量是否可被用作当前块的空间运动矢量候选。可以以预定顺序对执行特定邻近块是否具有运动矢量或者邻近块的运动矢量是否可被用作当前块的空间运动矢量候选的确定。例如,如图9中所示,可以以块A0、块A1、块B0、块B1和块B2的顺序执行运动矢量的可用性确定。
[0210] 当当前块的参考画面和具有运动矢量的邻近块的参考画面彼此不同时,对邻近块的运动矢量进行缩放,并且随后可将缩放的运动矢量用作当前块的空间运动矢量候选。可基于当前画面与当前块的参考画面之间的距离和当前画面与邻近块的参考画面之间的距离中的至少任意一个来执行运动矢量缩放。这里,可通过根据当前画面和当前块的参考画面之间的距离与当前画面和邻近块的参考画面之间的距离的比率对邻近块的运动矢量进行缩放,来推导当前块的空间运动矢量候选。
[0211] 然而,当当前块的参考画面索引和具有运动矢量的邻近块的参考画面索引不同时,可将邻近块的缩放后的运动矢量确定为当前块的空间运动矢量候选。即使在这种情况下,也可基于当前画面与当前块的参考画面之间的距离和当前画面与邻近块的参考画面之间的距离中的至少一个来执行缩放。
[0212] 关于缩放,可基于由具有预定义值的参考画面索引所指示的参考画面来对邻近块的运动矢量进行缩放,并且可将缩放后的运动矢量确定为当前块的空间运动矢量候选。预定义值可以是零或正整数。例如,可通过基于当前画面和当前块的参考画面之间的距离与当前画面和邻近块的参考画面之间的距离的比率对邻近块的运动矢量进行缩放,来推导当前块的空间运动矢量候选,其中,当前块的参考画面由具有预定义值的参考画面索引所指示,邻近块的参考画面由具有预定义值的参考画面索引所指示。
[0213] 可选择地,可基于当前块的编码参数中的至少一个来推导当前块的空间运动矢量候选。
[0214] 可从包括在当前画面的同位画面中的重建块推导当前块的时间运动矢量候选。同位画面是在当前画面之前的已被编码/解码的画面,并且可在时间顺序上与当前画面不同。
[0215] 图10是示出推导当前块的时间运动矢量候选的示例的示图。
[0216] 参照图10,可从包括当前画面的同位画面(也称为同位置画面)内的在空间上与当前块X位于相同位置处的块的外部位置的块或者从包括在空间上与当前块X位于相同位置处的块的内部位置的块,推导当前块的时间运动矢量候选。这里,时间运动矢量候选可表示当前块的同位块的运动矢量。例如,可从与在空间上与当前块X位于相同位置处的块C的左下角相邻的块H或者从包括块C的中心位置的块C3推导当前块X的时间运动矢量候选。用于推导当前块的时间运动矢量候选的块H、块C3等被称为同位块。
[0217] 可选择地,可基于编码参数中的至少一个来推导出时间运动矢量候选、同位画面、同位块、预测列表利用标志和参考画面索引中的至少一个。
[0218] 当包括当前块的当前画面与当前块的参考画面之间的距离不同于包括同位块的同位画面与同位块的参考画面之间的距离时,可通过对同位块的运动矢量进行缩放来获得当前块的时间运动矢量候选。这里,可基于当前画面与当前块的参考画面之间的距离和同位画面与同位块的参考画面之间的距离中的至少一个来执行缩放。例如,可通过根据当前画面和当前块的参考画面之间的距离与同位画面和同位块的参考画面之间的距离的比率对同位块的运动矢量进行缩放,来推导出当前块的时间运动矢量候选。
[0219] 接下来,将描述基于推导出的运动矢量候选来生成运动矢量候选列表的步骤(S502,S603)。
[0220] 生成运动矢量候选列表的步骤可包括将运动矢量候选添加到运动矢量候选列表或者从运动矢量候选列表删除运动矢量候选的处理以及将组合运动矢量候选添加到运动矢量候选列表的处理。
[0221] 首先,将描述将推导出的运动矢量候选添加到运动矢量候选列表或者从运动矢量候选列表删除推导出的运动矢量候选的处理。编码设备和解码设备可以以推导出运动矢量候选的顺序将推导出的运动矢量候选添加到运动矢量候选列表。
[0222] 假设运动矢量候选列表mvpListLX可表示与参考画面列表L0、L1、L2和L3对应的运动矢量候选列表。也就是说,与参考画面列表L0对应的运动矢量候选列表可由mvpListL0表示。
[0223] 除了可将空间运动矢量候选和时间运动矢量候选添加到运动矢量候选列表之外,还可将具有预定值的运动矢量添加到运动矢量候选列表。例如,当运动矢量候选列表中的运动矢量候选的数量小于可被包括在运动矢量候选列表中的运动矢量候选的最大数量时,可将值为零的运动矢量添加到运动矢量候选列表中。
[0224] 接下来,将描述将组合运动矢量候选添加到运动矢量候选列表的处理。
[0225] 当运动矢量候选列表中的运动矢量候选的数量小于可被包括在运动矢量候选列表中的运动矢量候选的最大数量时,运动矢量候选列表中的一个或更多个运动矢量候选被组合以产生一个或更多个组合运动矢量候选,并且可将生成的组合运动矢量候选添加到运动矢量候选列表。例如,将包括在运动矢量候选列表中的空间运动矢量候选、时间运动矢量候选和零运动矢量候选中的至少一个或更多个用于生成组合运动矢量候选,并且可将生成的组合运动矢量候选添加到运动矢量候选列表。
[0226] 可选择地,可基于至少一个编码参数来生成组合运动矢量候选,并且可将基于至少一个编码参数而生成的组合运动矢量候选添加到运动矢量候选列表。
[0227] 接下来,下面将描述从运动矢量候选列表选择当前块的预测运动矢量的步骤(S503,S604)。
[0228] 在包括在运动矢量候选列表中的运动矢量候选中,可将由运动矢量候选索引指示的运动矢量候选确定为当前块的预测运动矢量。
[0229] 编码设备可计算当前块的运动矢量与当前块的预测运动矢量之间的差,从而产生运动矢量差。解码设备可通过将预测运动矢量与运动矢量差相加来生成当前块的运动矢量。
[0230] 这里,可将运动信息修正应用于包括在运动矢量候选列表中的运动矢量候选、预测运动矢量或通过将预测运动矢量与运动矢量差相加而计算出的运动矢量中的任意一个。稍后将描述运动信息修正的详细描述。
[0231] 稍后将共同描述图5和图6中示出的执行运动补偿的步骤(S504,S605)和对与运动补偿相关联的信息进行熵编码/熵解码的步骤(S505,S601)以及图7和图8中示出的执行运动补偿的步骤(S703,S804)和熵编码/熵解码的步骤(S704,S801)。
[0232] 在下文中,将详细描述图7和图8中示出的每个步骤。
[0233] 首先,将描述推导出合并候选的步骤(S701,802)。
[0234] 当前块的合并候选可包括空间合并候选、时间合并候选和附加合并候选中的至少一个。这里,表述“推导空间合并候选”表示推导空间合并候选并将推导出的合并候选添加到合并候选列表中的处理。
[0235] 参照图9,可从与当前块X相邻的邻近块推导当前块的空间合并候选。与当前块X相邻的邻近块可包括与当前块的上端相邻的块B1、与当前块的左端相邻的块A1、与当前块的右上角相邻的块B0、与当前块的左上角相邻的块B2以及与当前块的左下角相邻的块A0中的至少一个。
[0236] 为了推导当前块的空间合并候选,确定与当前块相邻的每个邻近块是否可被用于推导当前块的空间合并候选。以预定的优先级顺序针对邻近块进行这样的确定。例如,可以以图9的示例中的块A1、B1、B0、A0和B2的顺序执行空间合并候选的可用性。基于可用性确定顺序而确定的空间合并候选可被顺序地添加到当前块的合并候选列表。
[0237] 图11是示出将空间合并候选添加到合并候选列表的处理的示例的示图。
[0238] 参照图11,从四个邻近块A1、B0、A0和B2推导四个空间合并候选,并且可将推导出的空间合并候选顺序地添加到合并候选列表。
[0239] 可选择地,可基于编码参数中的至少一个来推导出空间合并候选。
[0240] 这里,空间合并候选的运动信息可包括三条或更多条运动信息,所述信息除了包括L0运动信息和L1运动信息之外,还包括L2运动信息和L3运动信息。这里,可存在至少一个参考画面列表,例如,包括L0、L1、L2和L3。
[0241] 接下来,将描述推导当前块的时间合并候选的方法。
[0242] 可从包括在当前画面的同位画面中的重建块推导当前块的时间合并候选。同位画面可以是在当前画面之前被编码/解码的画面,并且可在时间顺序上与当前画面不同。
[0243] 表述“推导时间合并候选”表示推导时间合并候选并将推导出的时间合并候选添加到合并候选列表的处理。
[0244] 参照图10,可从包括被布置在当前画面的同位画面(也称为同位置画面)中的在空间上与当前块X位于相同位置处的块外部的位置的块或者从包括被布置在当前画面的同位画面中的在空间上与当前块X位于相同位置处的块内部的位置的块,推导当前块的时间合并候选。术语“时间合并候选”可表示同位块的运动信息。例如,可从与在空间上与当前块X位于相同位置处的块C的左下角相邻的块H,或者从包括块C的中心位置的块C3推导当前块X的时间合并候选。用于推导当前块的时间合并候选的块H、C3等被称为同位块(也称为同位置块)。
[0245] 当可以从包括被布置在块C外部的位置的块H推导当前块的时间合并候选时,将块H设置为当前块的同位块。在这种情况下,可基于块H的运动信息来推导当前块的时间合并候选。相反,当不可从块H推导当前块的时间合并候选时,可将包括被布置在块C内部的位置的块C3设置为当前块的同位块。在这种情况下,可基于块C3的运动信息来推导当前块的时间合并候选。当既不可从块H也不可从块C3推导当前块的任何时间合并候选(例如,块H和块C3都是帧内编码的块)时,根本无法推导当前块的时间合并候选,或者可从除了块H和块C3之外的块推导当前块的时间合并候选。
[0246] 可选择地,例如,可从包括在同位画面内的多个块推导当前块的多个时间合并候选。也就是说,可从块H、块C3等推导当前块的多个时间候选。
[0247] 图12是示出将时间合并候选添加到合并候选列表的处理的示例的示图。
[0248] 参照图12,当从位于位置H1处的同位块推导出一个时间合并候选时,可将推导出的时间合并候选添加到合并候选列表。
[0249] 当包括当前块的当前画面与当前块的参考画面之间的距离不同于包括同位块的同位画面与同位块的参考画面之间的距离时,可通过对同位块的运动矢量进行缩放来获得当前块的时间合并候选的运动矢量。这里,可基于当前画面与当前块的参考画面之间的距离和同位画面与同位块的参考画面之间的距离中的至少一个来执行运动矢量的缩放。例如,可通过根据当前画面和当前块的参考画面之间的距离与同位画面和同位块的参考画面之间的距离的比率对同位块的运动矢量进行缩放,来推导当前块的时间合并候选的运动矢量。
[0250] 此外,可基于当前块的编码参数、邻近块或同位块中的至少一个来推导时间合并候选、同位画面、同位块、预测列表利用标志和参考画面索引中的至少一个。
[0251] 可通过生成空间合并候选和时间合并候选中的至少一个合并候选并以推导的顺序将推导出的合并候选顺序地添加到合并候选列表,来生成合并候选列表。
[0252] 接下来,将描述推导当前块的附加合并候选的方法。
[0253] 术语“附加合并候选”可表示修改的空间合并候选、修改的时间合并候选、组合合并候选和具有预定运动信息值的预定合并候选中的至少一个。这里,表述“推导附加合并候选”可表示推导附加合并候选并将推导出的附加合并候选添加到合并候选列表的处理。
[0254] 修改的空间合并候选可表示通过修改推导出的空间合并候选的运动信息中的至少一项而获得的合并候选。
[0255] 修改的时间合并候选可表示通过修改推导出的时间合并候选的运动信息中的至少一项而获得的修改的合并候选。
[0256] 组合合并候选可表示通过将全部都被包括在合并候选列表中的空间合并候选、时间合并候选、修改的空间合并候选、修改的时间合并候选、组合合并候选和具有预定运动信息值的预定合并候选中的至少一个的运动信息组合而获得的合并候选。
[0257] 可选择地,组合合并候选可表示通过将如下合并候选中的至少一个的运动信息组合而推导出的合并候选:未被包括在合并候选列表中的而是从可推导出空间合并候选和时间合并候选中的至少一个的块推导出的空间合并候选和时间合并候选;基于从可推导出空间合并候选和时间合并候选的块推导出的空间合并候选和时间合并候选而推导出的修改的空间合并候选和修改的时间合并候选;组合合并候选;以及具有预定运动信息值的预定合并候选。
[0258] 可选择地,可使用通过在解码器中对比特流执行熵解码而获得的运动信息来推导组合合并候选。在这种情况下,可在编码器中将用于推导组合合并候选的运动信息熵编码为比特流。
[0259] 组合合并候选可表示组合双向预测合并候选。组合双向预测合并候选是使用双向预测的合并候选,并且它可以是具有L0运动信息和L1运动信息的合并候选。
[0260] 具有预定运动信息值的合并候选可以是运动矢量为(0,0)的零合并候选。可按照预定运动信息值在编码设备和解码设备中具有相同的值的方式设置具有预定运动信息值的合并候选。
[0261] 可基于当前块、邻近块或同位块的编码参数中的至少一个来推导出或生成修改的空间合并候选、修改的时间合并候选、组合合并候选和具有预定运动信息值的合并候选中的至少一个。此外,可基于当前块、邻近块或同位块的编码参数中的至少一个来将修改的空间合并候选、修改的时间合并候选、组合合并候选和具有预定运动信息值的合并候选中的至少一个添加到合并候选列表中。
[0262] 可基于当前块、邻近块或同位块的编码参数来确定合并候选列表的大小,并且合并候选列表的大小可依据编码参数变化。
[0263] 接下来,将描述使用生成的合并候选列表来确定当前块的运动信息的步骤(S702,S803)。
[0264] 编码器可通过运动估计从合并候选列表选择将被用于当前块的运动补偿的合并候选,并且将指示确定的合并候选的合并候选索引merge_idx编码为比特流。
[0265] 为了生成当前块的预测块,编码器可通过使用合并候选索引从合并候选列表选择合并候选,并确定当前块的运动信息。然后,编码器可基于确定的运动信息执行运动补偿,从而生成当前块的预测块。
[0266] 解码器可对接收到的比特流中的合并候选索引进行解码,并且确定包括在合并候选列表内的并由合并候选索引指示的合并候选。可将确定的合并候选确定为当前块的运动信息。将确定的运动信息用于当前块的运动补偿。这里,术语“运动补偿”可具有与帧间预测相同的含义。
[0267] 同时,可将运动信息修正应用于基于合并候选索引或包括在合并候选列表中的合并候选而确定的运动信息中的任意一个。稍后将描述运动信息修正的详细描述。
[0268] 接下来,将描述使用运动矢量或运动信息执行运动补偿的步骤(S504,S605,S703,S804)。
[0269] 编码设备和解码设备可通过使用预测运动矢量和运动矢量差来计算当前块的运动矢量。在计算出运动矢量之后,编码设备和解码设备可使用计算出的运动矢量来执行帧间预测或运动补偿(S504,S605)。
[0270] 编码设备和解码设备可使用确定的运动信息来执行帧间预测或运动补偿(S703,S804)。这里,当前块可具有确定的合并候选的运动信息。
[0271] 当前块可根据当前块的预测方向具有一(最小)个至N(最大)个运动矢量。可使用一个至N个运动矢量来生成一(最小)个至N(最大)个预测块,并且可在生成的预测块中选择最终预测块。
[0272] 例如,当当前块具有一个运动矢量时,可将使用所述运动矢量(或运动信息)而生成的预测块确定为当前块的最终预测块。
[0273] 另外,当当前块具有多个运动矢量(或多条运动信息)时,使用多个运动矢量(或多条运动信息)来生成多个预测块,并且基于多个预测块的加权和来确定当前块的最终预测块。可在不同的参考画面列表或一个参考画面列表中列出分别包括由多个运动矢量(或多条运动信息)分别指示的多个预测块的多个参考画面。
[0274] 例如,可基于空间运动矢量候选、时间运动矢量候选、具有预定值的运动矢量和组合运动矢量候选中的至少一个来生成当前块的多个预测块,并且随后可基于多个预测块的加权和来确定当前块的最终预测块。
[0275] 可选择地,例如,可基于由预设运动矢量候选索引指示的运动矢量候选来生成当前块的多个预测块,并且随后可基于多个预测块的加权和来确定当前块的最终预测块。此外,可基于由预定运动矢量候选索引范围内的索引指示的运动矢量候选来生成多个预测块,并且随后可基于多个预测块的加权和来确定当前块的最终预测块。
[0276] 各个预测块的加权因子可以是相等的1/N(这里,N是生成的预测块的数量)。例如,当生成两个预测块时,每个预测块的加权因子为1/2。类似地,当生成三个预测块时,每个预测块的加权因子为1/3。当生成四个预测块时,每个预测块的加权因子可以是1/4。可选择地,可以以将不同的加权因子应用于各个预测块的方式来确定当前块的最终预测块。
[0277] 针对多个预测块的加权因子可以不是固定的,而是可变的。针对多个预测块的加权因子可以不相等,而可以是不同的。例如,当生成两个预测块时,针对两个预测块的加权因子可相等,如(1/2,1/2),或者可不相等,如(1/3,2/3)、(1/4,3/4)、(2/5,3/5)或(3/8,5/8)。加权因子可以是正实值或负实值。也就是说,加权因子的值可包括负实值,如(-1/2,3/
2)、(-1/3,4/3)或(-1/4,5/4)。
[0278] 为了应用可变的加权因子,可通过比特流用信号发送针对当前块的一条或更多条加权因子信息。可逐个预测块地用信号发送加权因子信息,或者逐个参考画面地用信号发送加权因子信息。可选择地,多个预测块可共享一个加权因子。
[0279] 编码设备和解码设备可基于预测块列表利用标志来确定是否使用预测运动矢量(或预测运动信息)。例如,针对每个参考画面列表,当预测块列表利用标志具有第一值一(1)时,编码设备和解码设备可使用针对当前块的预测运动矢量来执行当前块的帧间预测或运动补偿。然而,当预测块列表利用标志具有第二值零(0)时,编码设备和解码设备可不使用针对当前块的预测运动矢量来执行当前块的帧间预测或运动补偿。可将预测块列表利用标志的第一值和第二值分别相反地设置为0和1。表达式3至表达式5是当当前块的帧间预测指示符为PRED_BI、PRED_TRI或PRED_QUAD时并且当针对每个参考画面列表的预测方向为单向时生成当前块的最终预测块的方法的示例。
[0280] 【表达式1】
[0281] P_BI=(WF_LO*P_LO+OFFSET_LO+WF_L1*P_L1+OFFSET_L1+RF)>>1
[0282] 【表达式2】
[0283] P_TRI=(WF_LO*P_LO+OFFSET_LO+WF_L1*P_L1+OFFSET_L1+WF_L2*P_L2+OFFSET_L2+RF)/3
[0284] 【表达式3】
[0285] P_QUAD=(WF_LO*P_LO+OFFSET_LO+WF_L1*P_L1+OFFSET_L1+WF_L2*P_L2+OFFSET_L2+WF_L3*P_L3+OFFSET_L3+RF)>>2
[0286] 在表达式1至表达式3中,P_BI、P_TRI和P_QUAD中的每个表示当前块的最终预测块,并且LX(X=0,1,2,3)表示参考画面列表。WF_LX表示使用LX参考画面列表生成的预测块的加权因子。OFFSET_LX表示针对使用LX参考画面列表生成的预测块的偏移值。P_LX表示使用当前块的LX参考画面列表的运动矢量(或运动信息)生成的预测块。RF表示舍入因子,并且可将RF设置为0、正整数或负整数。LX参考画面列表可包括长期参考画面、未被执行去块滤波的参考画面、未被执行样点自适应偏移的参考画面、未被执行自适应环路滤波的参考画面、仅被执行了去块滤波和自适应偏移的参考画面、仅被执行了去块滤波和自适应环路滤波的参考画面、被执行了样点自适应偏移和自适应环路滤波的参考画面以及被执行了所有去块滤波、样点自适应偏移和自适应环路滤波的参考画面中的至少一个。在这种情况下,LX参考画面列表可以是L2参考画面列表和L3参考画面列表中的至少任意一个。
[0287] 即使当存在针对预定参考画面列表的多个预测方向时,也可基于多个预测块的加权和来获得当前块的最终预测块。在这种情况下,使用一个参考画面列表推导出的多个预测块的加权因子可相等或彼此不同。
[0288] 多个预测块的加权因子WF_LX或偏移OFFSET_LX中的至少一个可以是将被熵编码/熵解码的编码参数。可选择地,例如,可从与当前块相邻的先前编码/解码的邻近块推导加权因子和偏移。这里,与当前块相邻的邻近块可包括用于推导当前块的空间运动矢量候选的块和用于推导当前块的时间运动矢量候选的块中的至少一个。
[0289] 进一步可选择地,例如,可基于当前画面的显示顺序(画面顺序计数(POC))和每个参考画面的POC来确定加权因子和偏移。在这种情况下,随着当前画面与参考画面之间的距离增加,加权因子或偏移的值可以减小。也就是说,当当前画面与参考画面彼此靠近时,可将更大的值设置为加权因子或偏移。例如,当当前画面的POC与L0参考画面的POC之间的差为2时,可将应用于使用L0参考画面生成的预测块的加权因子的值设置为1/3。同时,当当前画面的POC与L0参考画面的POC之间的差为1时,可将应用于使用L0参考画面生成的预测块的加权因子的值设置为2/3。如上所述,加权因子或偏移可与当前画面的显示顺序(POC)和参考画面的显示顺序(POC)之间的差成反比。可选择地,加权因子或偏移可与当前画面的显示顺序(POC)和参考画面的显示顺序(POC)之间的差成正比。
[0290] 可选择地,例如,可基于至少一个编码参数来对权重因子和偏移中的至少一个进行熵编码/熵解码。此外,可基于至少一个编码参数来计算出预测块的加权和。
[0291] 多个预测块的加权和可仅被应用于预测块的部分区域。该部分区域可以是与每个预测块的边界相邻的边界区域。如上所述,为了仅将加权和应用于部分区域,可在每个预测块中逐个子块地计算出加权和。
[0292] 在具有由区域信息指示的块尺寸的块中,可通过使用相同的预测块或相同的最终预测块对小于该块的子块执行帧间预测或运动补偿。
[0293] 在具有由区域信息指示的块深度的块中,可通过使用相同的预测块或相同的最终预测块,对块深度比该块的块深度更深的子块执行帧间预测或运动补偿。
[0294] 此外,当通过运动矢量预测来计算预测块的加权和时,可使用包括在运动矢量候选列表中的运动矢量候选中的至少一个来计算出加权和,并且可将计算结果用作当前块的最终预测块。
[0295] 例如,可仅使用空间运动矢量候选来生成预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0296] 例如,可使用空间运动矢量候选和时间运动矢量候选来生成预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0297] 例如,可仅使用组合运动矢量候选来生成预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0298] 例如,可仅使用由特定索引指示的运动矢量候选来生成预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0299] 例如,可仅使用由预定索引范围内的索引指示的运动矢量候选来生成预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0300] 当使用合并模式来计算预测块的加权和时,可使用包括在合并候选列表中的合并候选中的至少一个合并候选来计算加权和,并且可将计算结果用作当前块的最终预测块。
[0301] 例如,可仅使用空间合并候选来生成预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0302] 例如,可使用空间合并候选和时间合并候选来生成预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0303] 例如,可仅使用组合合并候选来生成预测块,可生成预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0304] 例如,可仅使用由特定索引指示的合并候选来生成预测块,可生成预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0305] 例如,可仅使用预定索引范围内的索引指示的合并候选来生成预测块,可计算出预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。
[0306] 在编码器和解码器中,可使用当前块的运动矢量或运动信息来执行运动补偿。此时,可使用至少一个预测块来确定作为运动补偿的结果的最终预测块。这里,当前块可表示当前编码块和当前预测块中的至少一个。
[0307] 可通过对当前块的边界区域执行重叠块运动补偿来生成当前块的最终预测块。
[0308] 当前块的边界区域可以是被布置在当前块内并与当前块和当前块的邻近块之间的边界相邻的区域。当前块的边界区域可包括上方边界区域、左侧边界区域、下方边界区域、右侧边界区域、右上角区域、右下角区域、左上角区域和左下角区域中的至少一个。当前块的边界区域可以是与当前块的预测块的一部分对应的区域。
[0309] 重叠块运动补偿可表示通过计算与当前块的边界区域对应的预测块和使用与当前块相邻的编码/解码块的运动信息而生成的预测块的加权和来执行运动补偿的处理。
[0310] 可通过将当前块划分为多个子块来逐个子块地执行加权和的计算。也就是说,可使用与当前块相邻的编码/解码子块的运动信息来逐个子块地执行当前块的运动补偿。子块可表示当前块的更低等级的块。
[0311] 此外,在计算加权和时,可使用第一预测块和第二预测块,其中,使用当前块的运动信息针对当前块的各个子块来生成第一预测块,使用在空间上与当前块相邻的邻近子块的运动信息来生成第二预测块。在这种情况下,表述“使用运动信息”表示“推导运动信息”。第一预测块可表示通过使用当前块内的编码/解码目标子块的运动信息而生成的预测块。
第二预测块可以是通过使用在空间上与当前块内的编码/解码目标子块相邻的邻近子块的运动信息而生成的预测块。
[0312] 可使用第一预测块和第二预测块的加权和来生成当前块的最终预测块。也就是说,重叠块运动补偿是使用当前块的运动信息和另一块的运动信息来找到当前块的最终预测块。
[0313] 此外,当使用高级运动矢量预测(AMVP)模式、合并模式、仿射运动补偿模式、解码器侧运动矢量推导模式、自适应运动矢量分辨率模式、局部照度补偿模式、双向光流模式中的至少一种时,可将当前块划分为多个子块,并且可逐个子块地执行重叠块运动补偿。
[0314] 当合并模式被用于运动补偿时,可对高级时间运动矢量预测因子(ATMVP)候选和时空运动矢量预测因子(STMVP)候选中的至少一个执行重叠块运动补偿。
[0315] 接下来,将描述对与运动补偿相关联的信息执行熵编码/熵解码的处理(S505,S601,S704,S801)。
[0316] 编码设备可将与运动补偿相关联的信息熵编码为比特流,并且解码设备可对包括在比特流中的与运动补偿相关联的信息进行解码。作为熵编码或熵解码的目标的与运动补偿相关联的信息可包括以下项中的至少一项:帧间预测指示符inter_pred_idc、参考画面索引ref_idx_l0、ref_idx_l1、ref_idx_l2和ref_idx_l3、运动矢量候选索引mvp_l0、mvp_l1_idx、mvp_l2_idx和mvp_l3_idx、运动矢量差、跳过模式使用/不使用信息cu_skip_flag、合并模式使用/不使用信息merge_flag、合并索引信息merge_index、加权因子wf_l0、wf_l1、wf_l2和wf_l3以及偏移值offset_l0、offset_l1、offset_l2和offset_l3。
[0317] 当通过帧间预测对当前块进行编码/解码时,帧间预测指示符可表示帧间预测的预测方向、预测方向的数量或两者。例如,帧间预测指示符可指示单向预测或多向预测(诸如双向预测、三向预测和四向预测)。帧间预测指示符可指示生成当前块的预测块所使用的参考画面的数量。可选择地,一个参考画面可被用于多个方向的预测。在这种情况下,M个参考画面被用于执行N个方向的预测(其中,N>M)。帧间预测指示符还可表示对当前块进行帧间预测或运动补偿所使用的预测块的数量。
[0318] 参考画面指示符可根据当前块的预测方向的数量来指示一个方向PRED_LX、两个方向PRED_BI、三个方向PRED_TRI、四个方向PRED_QUAD或更多个方向。
[0319] 特定参考画面列表的预测列表利用标志指示是否使用参考画面列表生成预测块。
[0320] 例如,当特定参考画面列表的预测列表利用标志具有第一值一(1)时,这表示使用参考画面列表来生成预测块。当预测列表利用标志具有第二值零(0)时,这表示不使用参考画面列表来生成预测块。这里,可将预测列表利用标志的第一值和第二值分别相反地设置为0和1。
[0321] 也就是说,当特定参考画面列表的预测列表利用标志具有第一值时,可使用与参考画面列表对应的运动信息来生成当前块的预测块。
[0322] 参考画面索引可指示存在于参考画面列表中并由当前块参考的特定参考画面。针对每个参考画面列表,可对一个或更多个参考画面索引进行熵编码/熵解码。可使用一个或更多个参考画面索引来对当前块进行运动补偿。
[0323] 运动矢量候选索引指示为每个参考画面列表或每个参考画面索引准备的运动矢量候选列表中包括的运动矢量候选中的当前块的运动矢量候选。可针对每个运动矢量候选列表,对至少一个或更多个运动矢量候选索引进行熵编码/熵解码。可使用至少一个或更多个运动矢量候选索引来对当前块进行运动补偿。
[0324] 运动矢量差表示当前运动矢量与预测运动矢量之间的差。对于针对当前块的每个参考画面列表或每个参考画面索引而生成的运动矢量候选列表中的每个,可对一个或更多个运动矢量差进行熵编码/熵解码。可使用一个或更多个运动矢量差来对当前块进行运动补偿。
[0325] 关于跳过模式使用/不使用信息cu_skip_flag,当它具有第一值一(1)时,可使用跳过模式。相反地,当它具有第二值零(0)时,可不使用跳过模式。可根据跳过模式使用/不使用信息,使用跳过模式来执行对当前块的运动补偿。
[0326] 关于合并模式使用/不使用信息merge_flag,当它具有第一值一(1)时,可使用合并模式。相反,当它具有第二值零(0)时,可不使用合并模式。可根据合并模式使用/不使用信息,使用合并模式来执行对当前块的运动补偿。
[0327] 合并索引信息merge_index可表示指示合并候选列表内的合并候选的信息。
[0328] 可选择地,合并索引信息可表示关于合并索引的信息。
[0329] 此外,合并索引信息可指示在空间/时间上与当前块相邻的多个重建块中的用于推导合并候选的重建块。
[0330] 合并索引信息可指示合并候选所具有的一条或更多条运动信息。例如,当合并索引信息具有第一值零(0)时,合并索引信息可指示在合并候选列表中被列为第一项的第一合并候选;当合并索引信息具有第二值一(1)时,合并索引信息可指示在合并候选列表中被列为第二项的第二合并候选;当合并索引信息具有第三值二(2)时,合并索引信息可指示在合并候选列表中被列为第三项的第三合并候选。类似地,当合并索引信息具有从第四值到第N值的值时,合并索引信息可指示在合并候选列表中列出的根据所述值的顺序的位置处的合并候选。这里,N可以是0或正整数。
[0331] 可使用合并模式基于合并模式索引信息对当前块执行运动补偿。
[0332] 当在当前块的运动补偿期间生成两个或更多个预测块时,可基于预测块的加权和来确定当前块的最终预测块。当计算加权和时,可将加权因子、偏移或两者应用于各个预测块。用于计算加权和的加权和因子(例如,加权因子和偏移)可通过如下中的至少一个中的一些或与如下中的至少一个对应的一些而被熵编码/熵解码:参考画面列表、参考画面、运动矢量候选索引、运动矢量差、运动矢量、跳过模式使用/不使用信息、合并模式使用/不使用信息、合并索引信息。此外,可基于帧间预测指示符对针对每个预测块的加权和因子进行熵编码/熵解码。加权和因子可包括加权因子和偏移中的至少一个。
[0333] 与运动补偿相关联的信息可逐块地被熵编码/熵解码,或者可以以更高等级单元为单位被熵编码/熵解码。例如,与运动补偿相关联的信息可逐块地(例如,逐CTU地、逐CU地或逐PU地)被熵编码/熵解码。可选择地,与运动补偿相关联的信息可以以更高等级单元(诸如视频参数集、序列参数集、画面参数集、自适应参数集或条带头)为单位被熵编码/熵解码。
[0334] 可基于运动补偿信息差来对与运动补偿相关联的信息进行熵编码/熵解码,其中,所述运动补偿信息差指示与运动补偿相关联的信息和与运动补偿相关联的信息的预测值之间的差。
[0335] 可将与相邻于当前块的编码/解码块的运动补偿相关联的信息用作与当前块的运动补偿相关联的信息,而不对与当前块的运动补偿相关联的信息进行熵编码/熵解码。
[0336] 可基于至少一个编码参数来推导与运动补偿相关联的至少一条信息。
[0337] 可基于至少一个编码参数来对比特流进行解码,以生成与运动补偿相关联的至少一条信息。相反,可基于至少一个编码参数将与运动补偿相关联的至少一条信息熵编码为比特流。
[0338] 与运动补偿相关联的至少一条信息可包括运动矢量、运动矢量候选、运动矢量候选索引、运动矢量差、运动矢量预测值、跳过模式使用/不使用信息skip_flag、合并模式使用/不使用信息merge_flag、合并索引信息merge_index、运动矢量分辨率信息、重叠块运动补偿信息、局部照度补偿信息、仿射运动补偿信息、解码器侧运动矢量推导信息和双向光流信息中的至少一个。这里,解码器侧运动矢量推导可表示模式匹配运动矢量推导。
[0339] 运动矢量分辨率信息可以是指示将哪个特定分辨率用于运动矢量和运动矢量差中的至少一个的信息。这里,分辨率可表示精度。可将特定分辨率设置为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)单位中的至少任意一个。
[0340] 重叠块运动补偿信息可以是指示在当前块的运动补偿期间是否额外将在空间上与当前块相邻的邻近块的运动矢量用于计算当前块的预测块的加权和的信息。
[0341] 局部照度补偿信息可以是指示当生成当前块的预测块时是否应用加权因子和偏移中的一个的信息。这里,加权因子和偏移中的至少一个可以是基于参考块计算出的值。
[0342] 仿射运动补偿信息可以是指示是否将仿射运动模型用于当前块的运动补偿的信息。这里,仿射运动模型可以是使用多个参数将一个块划分为多个子块并使用代表性运动矢量来计算这些子块的运动矢量的模型。
[0343] 解码器侧运动矢量推导信息可以是指示运动补偿所需的运动矢量是否由解码器推导并随后在解码器中使用的信息。根据解码器侧运动矢量推导信息,可不对与运动矢量相关联的信息进行熵编码/熵解码。当解码器侧运动矢量推导信息指示运动矢量由解码器推导并随后在解码器中使用时,可对与合并模式相关联的信息进行熵编码/熵解码。也就是说,解码器侧运动矢量推导信息可指示是否在解码器中使用合并模式。
[0344] 双向光流信息可以是指示是否逐个像素地或逐个子块地修改运动矢量并随后将修改的运动矢量用于运动补偿的信息。依据双向光流信息,可不逐个像素地或逐个子块地对运动矢量进行熵编码/熵解码。修改运动矢量表示将基于块的运动矢量的值转换为基于像素的运动矢量的值或基于子块的运动矢量的值。
[0345] 可基于与运动补偿相关联的至少一条信息来对当前块进行运动补偿,并且可对与运动补偿相关联的至少一条信息进行熵编码/熵解码。
[0346] 当对与运动补偿相关联的信息进行熵编码/熵解码时,可使用二值化方法,诸如,截断Rice二值化方法、K阶指数Golomb二值化方法、有限K阶指数Golomb二值化方法、定长二值化方法、一元二值化方法和截断一元二值化方法。
[0347] 当对与运动补偿相关联的信息进行熵编码/熵解码时,可基于如下项中的至少一项来确定上下文模型:与相邻于当前块的邻近块的运动信息或该邻近块的区域信息相关联的信息;先前编码/解码的与运动补偿相关联的信息或先前编码/解码的区域信息;关于当前块的深度的信息;以及关于当前块的尺寸的信息。
[0348] 可选择地,当对与运动补偿相关联的信息进行熵编码/熵解码时,可通过将与邻近块的运动补偿相关联的信息、先前编码/解码的与运动补偿相关联的信息、关于当前块的深度的信息以及关于当前块的尺寸的信息中的至少一个用作与当前块的运动补偿相关联的信息的预测值来执行熵编码/熵解码。
[0349] 在下文中,将参照图13至图15详细描述运动信息修正方法。这里,运动信息修正可表示对至少一条运动信息进行修正的处理。也就是说,将被执行运动信息修正的信息可以是包括如下项的运动信息中的至少一条:运动矢量、参考画面索引、参考画面、画面间预测指示符、预测列表利用标志、加权因子、偏移等。运动信息修正表示对运动矢量、参考画面索引、参考画面、画面间预测指示符、预测列表利用标志、加权因子和偏移中的至少一个的值进行修正。
[0350] 将被执行运动信息修正的信息可以是诸如各种编码参数中的至少一个参数的信息。在这种情况下,运动信息修正表示对诸如编码参数中的至少一个参数的信息的值进行修正。
[0351] 通过运动信息修正,产生了修正的运动信息。可将由运动信息修正得到的修正的运动信息用于将被编码/解码的当前块(在下文中也称为编码/解码目标块)的运动补偿(图5中的S504、图6中的S605、图7中的S703、图8中的S804)。
[0352] 关于用于执行运动信息修正的时序,可在执行运动补偿之前执行运动信息修正。也就是说,在对编码/解码目标块执行运动补偿之前,首先执行运动信息修正以产生修正的运动信息,并且随后将使用产生的修正的运动信息来执行运动补偿。
[0353] 例如,针对AMVP模式,可在确定运动矢量的步骤(图5中的S503和图6中的S604)中执行运动信息修正。在这种情况下,可将运动信息修正应用于如下项中的任意一种信息类型:包括在运动矢量候选列表中的运动矢量候选、预测运动矢量以及通过将预测运动矢量与运动矢量差相加而计算出的运动矢量。
[0354] 例如,针对合并模式,可在确定运动信息的步骤(图7中的S702和图8中的S803)中执行运动信息修正。在这种情况下,可将运动信息修正应用于包括在合并候选列表中的合并候选或基于合并候选索引从合并候选列表提取的运动信息。
[0355] 另一方面,即使针对跳过模式,也可执行运动信息修正。在这种情况下,可将运动信息修正应用于包括在跳过候选列表中的跳过候选或基于跳过索引从跳过候选列表提取的运动信息。
[0356] 关于用于执行运动信息修正的时序,可在执行运动补偿(图5中的S504、图6中的S605、图7中的S703、图8中的S804)期间执行运动信息修正。也就是说,在对编码/解码目标块执行运动补偿时,执行运动信息修正以产生修正的运动信息,并且使用修正的运动信息来执行运动补偿。
[0357] 例如,编码器/解码器可基于在运动矢量确定步骤或运动信息确定步骤(图5中的S503、图6中的604、图7中的702和图8中的S803)中确定的运动信息来生成预测块,并且可通过使用生成的预测块执行运动信息修正来生成修正的运动信息。这里,编码器/解码器可使用修正的运动信息来生成最终预测块。
[0358] 可根据相同的规则在编码器侧和解码器侧对运动信息进行修正。由于根据相同的规则在编码器侧和解码器侧对运动信息进行了修正,因此可不对“关于运动信息修正的使用的信息”(在下文中,称为运动信息修正利用信息)进行熵编码/熵解码。
[0359] 在下文中,将参照图13至图15描述作为示例性运动信息修正方法的双边模板匹配,作为根据一个实施例的图像解码方法。
[0360] 双边模板匹配是一种在多条运动信息中对运动矢量进行修正的方法。通过双边模板匹配,可对用于双向预测的两个运动矢量中的至少一个进行修正。这里,双边模板表示通过计算在双向预测处理中使用两个运动矢量生成的多个预测块的加权和而获得的预测块。术语“双向预测”表示在向前和向后两个方向上的预测。
[0361] 具体地,当对双向预测块执行双边模板匹配时,可对与参考画面列表0对应的第一运动矢量以及与参考画面列表1对应的第二运动矢量中的至少一个进行修正。此时,修正的运动矢量可具有与初始运动矢量不同的运动矢量值。
[0362] 图13是用于描述双边模板匹配的图。
[0363] 参照图13,双边模板匹配包括:(1)使用初始运动矢量生成双边模板;(2)将双边模板的样点与参考画面的重建样点进行比较以对运动矢量进行修正。
[0364] (1)双边模板的生成
[0365] 编码器/解码器可利用使用与参考画面列表0对应的第一运动矢量生成的预测块以及使用与参考画面列表1对应的第二运动矢量生成的预测块来生成双边模板。编码器/解码器可利用使用与参考画面列表0对应的第一运动矢量生成的预测块以及使用与参考画面列表0对应的第二运动矢量生成的预测块来生成双边模板。编码器/解码器可利用使用与参考画面列表1对应的第一运动矢量生成的预测块以及使用与参考画面列表1对应的第二运动矢量生成的预测块来生成双边模板。这里,可通过计算预测块的加权和来生成双边模板,并且用于计算加权和的加权因子可以是0.5:0.5。
[0366] 在生成双边模板的过程中使用的运动矢量被称为初始运动矢量。初始运动矢量可表示通过使用至少一种运动信息推导方法(诸如合并模式、AMVP模式和跳过模式)而计算出的运动矢量。
[0367] (2)运动矢量的修正
[0368] 编码器/解码器可通过将双边模板中的样点的值与参考画面中的重建样点的值进行比较来对与各个参考画面列表对应的运动矢量进行修正。
[0369] 可将指示参考画面列表0的内部参考位置(即,参考画面内的位置)的运动矢量确定为修正的第一运动矢量,其中,所述运动矢量具有相对于双边模板中的对应位置的值的最小失真值的值。可将指示参考画面列表1的内部参考位置的运动矢量确定为修正的第二运动矢量,其中,所述运动矢量具有相对于双边模板中的对应位置的最小失真的值。
[0370] 具体地,当由初始第一运动矢量指示的参考画面中的区域的值与双边模板中的相应区域的值之间的失真值(差)比由修正的第一运动矢量指示的参考画面中的区域的值与双边模板中的相应区域的值之间的失真值大时,可对第一运动矢量进行修正。类似地,当由初始第二运动矢量指示的参考画面中的区域的值与双边模板中的相应区域的值之间的失真值比由修正的第二运动矢量指示的参考画面中的区域的值与双边模板中的相应区域的值之间的失真值大时,可对第二运动矢量进行修正。
[0371] 当将双边模板中的样点(目标样点)的值与参考画面中的重建样点(参考样点)的值进行比较时,编码器/解码器通过使用诸如如下的失真计算方法来计算样点间失真值:绝对差和(SAD)、绝对变换差和(SATD)、平方误差和(SSE)、方误差均值(MSE)或去均值SAD(MR-SAD)。以这样的方式,编码器/解码器将指示相对于相应目标样点位置呈现最小失真值的参考样点位置的运动矢量确定为修正的运动矢量。在这种情况下,可针对亮度分量和色度分量中的至少一个来计算失真值。
[0372] 当由初始第一运动矢量指示的内部参考区域和由初始第二运动矢量指示的内部参考区域的SAD值大于预定值时,可执行双边模板匹配以对初始第一运动矢量和初始第二运动矢量进行修正。相反,当由初始第一运动矢量指示的内部参考区域和由初始第二运动矢量指示的内部参考区域的SAD值小于预定值时,可不执行双边模板匹配。
[0373] 在执行双向预测的情况下,当与第一预测方向(例如,L0预测方向)对应的初始第一运动矢量的值等于由运动信息修正得到的修正的第一运动矢量的值时,可不对与第二方向(例如,L1预测方向)对应的初始第二运动矢量执行运动信息修正。
[0374] 另一方面,可递归地执行双边模板匹配。
[0375] 具体地,在使用修正的第一运动矢量和修正的第二运动矢量生成第二双边模板之后,可使用第二双边模板执行另一双边模板匹配,以对先前修正的的第一运动矢量和先前修正的第二运动矢量进行二次修正。在这种情况下,基于双边模板匹配的二次修正可被迭代执行直到M次。这里,M是正整数(例如,2),并且它可以是在编码器/解码器中预设的固定值或由编码器编码并用信号发送的可变值。可选择地,可基于编码/解码目标块的尺寸来确定M。
[0376] 例如,当编码/解码目标块的高度或宽度小于8时,可将M设置为2。
[0377] 例如,当编码/解码目标块的高度或宽度为8时,可将M设置为2。
[0378] 例如,当编码/解码目标块的宽度的尺寸为8且高度的尺寸为16时(反之亦可),可将M设置为4。
[0379] 除上述情况外,可将M设置为8。在这种情况下,可针对第一参考画面(例如,L0参考画面)执行四次双边模板匹配,并且可针对第二参考画面(例如,L1参考画面)执行四次双边模板匹配。
[0380] 另一方面,在基于子像素递归地执行双边模板匹配的情况下,也可基于整数像素递归地执行双边模板匹配。
[0381] 通过双边模板匹配生成的修正的运动矢量可代替初始运动矢量用于编码/解码目标块的运动补偿。可根据相同的规则在编码器侧和解码器侧执行双边模板匹配。
[0382] 在双边模板匹配中,只有参考画面内的限制的区域可被搜索以找到修正的运动矢量。
[0383] 图14和图15是示出在双边模板匹配期间为找到修正的运动矢量而搜索的区域(在下文中称为搜索范围)的示图。
[0384] 参照图14,可基于整数像素来确定搜索范围,例如,在水平方向和垂直方向上的-M至+N像素的范围。这里,M和N为正整数。
[0385] 可选择地,可基于子像素来确定搜索范围,例如,在水平方向和垂直方向上的-O至+P子像素的范围。这里,O和P可以是分数。例如,子像素的单位可表示1/2像素、1/4像素、1/8像素、1/16像素、1/32像素等。此外,表示子像素的O和P可具有正整数值。
[0386] 当编码器/解码器基于子像素来搜索修正的运动矢量时,包括在空间上与由整数像素运动矢量指示的特定整数像素相邻的邻近子像素的区域可以是搜索范围。图14示出子像素的单位为1/2像素的示例。
[0387] 此外,可限制基于子像素的搜索范围以减小存储器访问带宽。例如,可将基于子像素的搜索范围限制为只有被布置在基于整数像素的搜索区域内的子像素。
[0388] 图15是示出将子像素的搜索范围限制在基于整数像素的搜索范围内的方法的示图。
[0389] 参照图15,由阴影线圆表示的子像素未被包括在基于整数像素的搜索范围内,其中,在所述搜索范围内基于整数像素执行搜索修正的运动矢量。在这种情况下,可限制基于子像素的搜索范围,使得当寻找修正的运动矢量时不搜索基于整数像素的搜索范围外的子像素。也就是说,可对基于子像素的搜索范围施加限制,使得仅搜索由无阴影线圆表示的子像素以找到修正的运动矢量。在这种情况下,不需要获取整数像素的用于生成阴影线子像素的信息,从而减小了存储器访问带宽。
[0390] 另一方面,基于整数像素的搜索范围可包括中心点、上方点,下方点、左侧点和右侧点中的至少一个。
[0391] 这里,基于上方点、下方点、左侧点和右侧点的失真值,可进一步搜索至少一个点。这里,所述至少一个点可以是左上方点、左下方点、右上方点和右下方点中的至少一个。在这种情况下,可将基于子像素的搜索范围设置为中心点、上方点、下方点、左侧点、右侧点、左上方点、左下方点、右上方点和右下方点中的至少一个。例如,可将基于子像素的搜索范围设置为中心点、上方点、下方点、左侧点和右侧点。
[0392] 由初始运动矢量指示的像素周围的搜索范围的形状可以是二维图(诸如正方形、矩形、菱形(斜方形)或十字形)。搜索范围可具有在编码器/解码器中预定义的固定形状或由编码器编码并用信号发送的信息所指定的可变形状。
[0393] 此外,可针对初始运动矢量和修正的运动矢量中的至少一个来限制运动矢量值范围,使得搜索范围将不延伸到画面的边界外的特定距离或更大距离。可通过剪裁来实现运动矢量值的范围限制。
[0394] 在这种情况下,可将运动矢量值的范围确定为落入到在编码器和解码器中预设的预定范围内。这里,预定范围可表示限制运动矢量值的临界值,并且可由最小值和最大值中的至少一个来确定临界值。同时,运动矢量值范围可以是由编码器编码并用信号发送的可变范围。
[0395] 另一方面,可将基于整数像素的搜索范围和基于子像素的搜索范围中的至少一个限制为不延伸到画面的边界外的特定距离或更大距离。
[0396] 另一方面,只有在基于整数像素执行了运动信息修正之后,才可允许基于子像素的运动信息修正。
[0397] 当使用双边模板匹配时,可在不发送附加语法元素的情况下改善解码器侧的运动矢量。另一方面,可将双边模板匹配用于双向预测合并模式或解码器运动矢量推导模式。
[0398] 根据一个实施例,当当前块不与单向预测合并候选、局部照度补偿模式、仿射运动补偿模式和子CU合并模式中的至少一个对应时,可执行双边模板匹配。
[0399] 在下文中,将描述与运动信息修正相关的运动修正模式。这里,运动修正模式可表示用于推导出用于画面间预测的运动信息的预测模式。例如,运动修正模式可以是基于上述使用双边模板匹配的运动信息修正来执行的一种合并模式。
[0400] 使用运动修正模式,可有效地对在画面中具有零运动或微小运动的区域进行编码。
[0401] 运动修正模式是基于上述运动信息修正的运动信息推导方案,并且可将上述运动信息修正方法应用于运动修正模式。
[0402] 另一方面,可基于通过比特流用信号发送的信息来确定运动修正模式是否可用或运动修正模式是否适用。可逐个单元地用信号发送该信息,其中,单元可以是视频、序列、画面、条带、并行块、编码树单元(CTU)、编码单元(CU)、预测单元(PU)、变换单位(TU)或块。运动修正模式是否可用可表示运动修正模式对于上述相应单元是否可用。运动修正模式是否适用可表示运动修正模式是否适用于该相应单元。
[0403] 运动修正模式可包括如下步骤:(1)推导运动信息,并且(2)通过对推导出的运动信息执行运动信息修正来生成修正的运动信息。这里,运动信息修正方法可包括上述双边模板匹配。可将由执行运动修正模式得到的修正的运动信息用于将被编码/解码的当前块(也称为编码/解码目标块)的运动补偿。
[0404] 同时,可通过运动修正模式修正的运动信息可包括运动矢量、参考画面、画面间指示符、参考画面索引、预测列表利用标志、加权因子和偏移中的至少一个。
[0405] (1)运动信息的推导
[0406] 在运动修正模式下,可从在空间上相邻的邻近块的运动信息、在时间上相邻的邻近块的运动信息、预定义运动信息和在参考画面内最频繁出现的运动信息中的至少一种信息类型来推导运动信息。这里,可将推导出的运动信息作为运动修正候选记录在运动修正模式的列表(运动修正模式列表)中。从在空间上相邻的邻近块的运动信息推导出的运动信息被称为空间运动修正候选,并且从在时间上相邻的邻近块的运动信息推导出的运动信息被称为时间运动修正候选。
[0407] 在下文中,将详细描述推导作为一条运动信息的运动矢量的方法。
[0408] 在运动修正模式下,可从在空间上相邻的邻近块的运动矢量、在时间上相邻的邻近块的运动矢量、预定义运动矢量以及在参考画面中最频繁出现的运动矢量中推导运动矢量。
[0409] A、在空间上相邻的邻近块
[0410] 在运动修正模式下,可从在空间上相邻的邻近块中的至少一个的运动矢量推导运动矢量。这里,在空间上相邻的邻近块可包括图9中示出的邻近块。
[0411] 在运动修正模式下,可从在空间上相邻的邻近块中满足如下条件中的至少一个的邻近块的多个运动矢量中推导运动矢量:
[0412] -编码块标志为0的块(即,没有残差信号的块),
[0413] -与合并跳过模式对应的块,
[0414] -在空间上与当前块相邻的邻近块中的运动矢量差值为零(例如,MVD=(0,0))的块,
[0415] -与合并模式对应的块,
[0416] -画面间预测指示符是PRED_LX(X是包括零的整数中的一个数)的块,以及[0417] -画面间预测指示符是PRED_BI、PRED_TRI和PRED_QUAD中的任意一个的块。
[0418] 在运动修正模式下,可从空间跳过/合并候选中的至少一个的多个运动矢量推导运动矢量。
[0419] 例如,当空间跳过/合并候选的参考画面与编码/解码目标块的参考画面不同时(即,当空间跳过/合并候选的参考画面的画面顺序计数(POC)与编码/解码目标块的的参考画面的画面顺序计数(POC)不同时),可基于画面的POC值,通过对从在空间上相邻的邻近块的多个运动矢量中推导出的运动矢量进行缩放来推导运动矢量。
[0420] B、在时间上相邻的邻近块
[0421] 在运动修正模式下,可从在时间上相邻的邻近块中的至少一个的多个运动矢量推导运动矢量。这里,在时间上相邻的邻近块可包括参考画面内的同位块和同位画面内的同位块。
[0422] 这里,参考画面中的同位块可以是如下块中的至少一个:
[0423] -参考画面中的与编码/解码目标块的左上侧位置(0,0)对应的同位块(在下文中,称为同位参考块),
[0424] -参考画面中的同位块(图10中的C3),
[0425] -参考画面中的同位块(图10中的C1),以及
[0426] -参考画面中的同位块(图10中的H)。
[0427] 这里,同位画面中的同位块可以是如下块中的至少一个:
[0428] -同位画面中的与编码/解码目标块的左上方位置(0,0)对应的同位块,
[0429] -同位画面中的同位块(图10中的C3),
[0430] -同位画面中的同位块(图10中的C1),以及
[0431] -同位画面中的同位块(图10中的H)。
[0432] 在运动修正模式下,可从在时间上相邻的邻近块之中满足如下条件中的至少一个条件的邻近块的多个运动矢量推导运动矢量:
[0433] -被布置在同位块内和同位块外的块中的编码块标志为0的块(即,没有残差信号的块),
[0434] -被布置在同位块内和同位块外的块中的与合并跳过模式对应的块,
[0435] -被布置在同位块内和同位块外的块中的运动矢量差值为零(例如,MVD=(0,0))的块,
[0436] -被布置在同位块内和同位块外的块中的与合并模式对应的块,
[0437] -画面间预测指示符为PRED_LX(X是包括零的整数中的一个数)的块,以及[0438] -被布置在同位块内和同位块外的块中的画面间预测指示符为PRED_BI、PRED_TRI和PRED_QUAD中的任意一个的块。
[0439] 在运动修正模式下,可从时间跳过/合并候选中的至少一个的多个运动矢量推导运动矢量。
[0440] 例如,当时间跳过/合并候选的参考画面或同位画面与编码/解码目标块的参考画面不同时(即,当时间跳过/合并候选和编码/解码目标块的参考画面的画面顺序计数(POC)彼此不同时),可基于画面的POC值,通过对从在时间上相邻的邻近块的多个运动矢量中推导出的运动矢量进行缩放来推导运动矢量。
[0441] 另外,可从在空间上相邻的邻近块的参考画面索引中推导指示包括在时间上相邻的邻近块的参考画面和同位画面的参考画面索引。
[0442] C、预定义运动矢量
[0443] 在运动修正模式下,可将值为(0,0)的零运动矢量推导为运动矢量。
[0444] D、在参考画面中最频繁出现的运动矢量
[0445] 在运动修正模式下,可推导在参考画面中最频繁出现的运动矢量。
[0446] 在这种情况下,以在参考画面中运动矢量出现的频率的顺序来排列运动矢量,并且可根据该频率顺序推导出最多的L个运动矢量。其中,L为正整数。在这种情况下,L可以是在编码器/解码器中预设的固定值,或者可以是由编码器编码并用信号发送的可变值。
[0447] 另一方面,在运动修正模式下,可以以项A、B、C和D的顺序推导运动矢量。在这种情况下,可重复地执行运动矢量的推导,直到推导出总共M个运动矢量。此外,可以以上述顺序顺序地推导运动矢量。当在先前推导出的运动矢量中已经存在新推导出的运动矢量时,停止推导运动矢量,并且因此最多M个运动矢量可被推导出并被用于运动修正模式。这里,M为正整数,并且它可以是在编码器/解码器中预设的固定值或由编码器编码并用信号发送的可变值。这里,当存在多个在空间上相邻的邻近块时,可优先推导出双向预测的运动矢量并将该双向预测的运动矢量插入到运动修正模式列表中,并且随后可推导出单向预测的运动矢量并将该单向预测的运动矢量插入到运动修正模式列表中。
[0448] 可根据以下描述的处理来执行上述运动修正模式下的运动矢量推导。
[0449] 例如,可以以在空间上相邻的邻近块的运动矢量、在时间上相邻的邻近块的运动矢量和零运动矢量(0,0)的顺序来推导运动矢量。
[0450] 作为另一示例,可以以在时间上相邻的邻近块的运动矢量、在空间上相邻的邻近块的运动矢量和零运动矢量(0,0)的顺序来推导运动矢量。
[0451] 这里,可以以推导空间跳过/合并候选的顺序来推导在空间相邻的邻近块的运动矢量,并且可以以推导时间跳过/合并候选的顺序来推导出在时间上相邻的邻近块的运动矢量。
[0452] 在运动修正模式下,只有当通过上述方法推导出的运动矢量的值不为(0,0)时,才可使用推导出的运动矢量。
[0453] 例如,当在运动修正模式下使用双向预测时,只有当推导出的第一运动矢量和第二运动矢量的值都不是(0,0)时,才可使用推导出的运动矢量。
[0454] 当在运动修正模式下使用N方向预测(N为2或更大的整数)时,只有当推导出的N个运动矢量的值都不是(0,0)时,才可使用推导出的运动矢量。
[0455] 在N方向预测中(N为2或更大的整数),在推导出的运动矢量中,仅可将值不为(0,0)的一些运动矢量用于运动修正模式下的运动矢量。
[0456] 另外,当在运动修正模式下使用双向预测时,当推导出的第一运动矢量和推导出的第二运动矢量彼此不相等时,可在运动修正模式下使用推导出的第一运动矢量和推导出的第二运动矢量中的一个或两者。
[0457] 另一方面,当在空间上相邻的邻近块或在时间上相邻的邻近块的画面间预测指示符指示双向预测、三向预测和四向预测中的至少一个时,可在运动修正模式下使用推导出的运动矢量。也就是说,当在空间上相邻的邻近块或在时间上相邻的邻近块的画面间预测指示符不指示单向预测时,可在运动修正模式下使用推导出的运动矢量。
[0458] 当在空间上相邻的邻近块或在时间上相邻的邻近块的画面间预测指示符指示单向预测时,将画面间预测指示符改变为指示双向预测,并且将单向预测的运动矢量的符号相反地改变。因此,用于具有与先前的(原始的)单向预测的方向相反的方向的单向预测的运动矢量被推导出,并被用作运动修正模式下的运动矢量。
[0459] 例如,当在空间上相邻的邻近块或在时间上相邻的邻近块的画面间预测指示符指示L0单向预测并且在空间上相邻的邻近块或在时间上相邻的邻近块的运动矢量为(-4,6)时,将画面间预测指示符改变为指示双向预测,并且针对L1方向预测推导出运动矢量(4,-6)。因此,可将两个运动矢量(-4,6)和(4,-6)用作运动修正模式下的运动矢量。在这种情况下,,可将位于与当前画面相距第一距离处的参考画面确定为用于L1单向预测的参考画面,其中,所述第一距离与作为当前画面与用于L0单向预测的参考画面之间的距离的第二距离相同或成正比。
[0460] 在使用N方向预测(N为2或更大的整数)的运动修正模式下,当推导出的运动矢量的数量不是N时,可从一个或更多个先前推导出的运动矢量进一步推导出一个或更多个运动矢量,以获得总共N个运动矢量。具体地,可通过对基于当前画面和/或参考画面的画面顺序计数而生成的先前推导出的(多个)运动矢量进行缩放来生成(多个)运动矢量。
[0461] 例如,当在运动修正模式下使用双向预测并且仅存在先前推导出的第一运动矢量时,基于参考画面列表1中的参考画面对第一运动矢量进行缩放以生成第二运动矢量。因此,可将先前推导出的第一运动矢量和新生成的第二运动矢量用作运动修正模式下的运动矢量。
[0462] 可选择地,当在运动修正模式下使用双向预测并且仅存在先前推导出的第二运动矢量时,基于参考画面列表0中的参考画面对第二运动矢量进行缩放以生成第一运动矢量。因此,可将先前推导出的第二运动矢量和新生成的第一运动矢量用作运动修正模式下的运动矢量。
[0463] 在下文中,将详细描述推导也作为一条运动信息的参考画面的方法。
[0464] 在运动修正模式下,可使用下述方法中的至少一种来推导参考画面。
[0465] 例如,可从包括在参考画面列表0中的参考画面和包括在参考画面列表1中的参考画面中推导出参考画面索引为0的参考画面,作为将在运动修正模式下使用的参考画面。在包括在参考画面列表0和参考画面列表1内的参考画面中,可能存在分别在参考画面列表0和参考画面列表1中的参考画面索引为0的参考画面可彼此相同的情况。在这种情况下,在包括在参考画面列表1内的参考画面中,可将与包括在参考画面列表0内且参考画面索引为0的参考画面不同的参考画面推导为将在运动修正模式下使用的参考画面。在包括在参考画面列表0和参考画面列表1中的参考画面中,可能存在分别在参考画面列表0和参考画面列表1中的参考画面索引为0的参考画面彼此相同的情况。在这种情况下,在包括在参考画面列表0内的参考画面中,可将与包括在参考画面列表1内且参考画面索引为0的参考画面不同的参考画面推导为将在运动修正模式下使用的参考画面。
[0466] 为了推导出如上所述的将在运动修正模式下使用的参考画面,可使用参考画面索引0。然而,本发明不限于此,可使用值为非零的参考画面索引来推导出将在运动修正模式下使用的参考画面。
[0467] 下面将描述通过使用非零的参考画面索引来推导将在运动修正模式下使用的参考画面的方法。
[0468] 可将针对分别在空间上与编码/解码目标块相邻的位置A1、B1、B0、A0和B2中的至少一个位置处的参考画面索引的中值用作将使用的参考画面索引。这里,代替中值,可使用各种统计值,诸如最小值、最大值、平均值、加权平均值和众数。可将由确定的参考画面索引指示的参考画面推导为将在运动修正模式下使用的参考画面。此时,可使用上述方法针对每个参考画面列表确定参考画面索引。
[0469] 当仅在位置A1处存在块并且该块具有画面间预测模式时,可仅通过位置A1的参考画面索引来确定该块的参考画面。
[0470] 当仅在位置B1处存在块并且该块具有画面间预测模式时,可仅通过位置B1的参考画面索引来确定该块的参考画面。
[0471] 当仅在位置B0处存在块并且该块具有画面间预测模式时,可仅通过位置B0的参考画面索引来确定该块的参考画面。
[0472] 当仅在位置A0处存在块并且该块具有画面间预测模式时,可仅通过位置A0的参考画面索引来确定该块的参考画面。
[0473] 当仅在位置B2处存在块并且该块具有画面间预测模式时,可仅通过位置B2的参考画面索引来确定该块的参考画面。
[0474] 可通过将运动信息修正方法应用于通过使用上述方法推导出的参考画面来产生修正的参考画面,并且可将修正的参考画面用作运动修正模式的参考画面。
[0475] 在上述实施例中,假定将使用两个参考画面列表。然而,参考画面列表的数量不限于此。可能存在N个参考画面列表。在这种情况下,N可以是2或更大的整数。当存在N个参考画面列表时,可以以与上述方法类似的方式(即,基于对于N个参考画面列表中的参考画面一致性的确定)来执行参考画面的推导。也就是说,可推导出N个彼此不同的参考画面。
[0476] 在另一实施例中,在包括在参考画面列表i(i=0、……、或N,其中,N为0或更大的整数)中的参考画面中,可将与编码/解码目标画面具有最小的画面顺序计数(POC)的差的参考画面推导为运动修正模式的参考画面。
[0477] 可选择地,在包括在参考画面列表i(i=0、……、或N,其中,N为1或更大的整数)中的参考画面中,可将与编码/解码目标画面具有最小的画面顺序计数(POC)的差和/或具有最小时间层标识符值的参考画面推导为运动修正模式的参考画面。
[0478] 进一步可选择地,可将在空间上相邻的邻近块的参考画面推导为运动修正模式的参考画面。
[0479] 进一步可选择地,可将在时间上相邻的邻近块的参考画面推导为运动修正模式的参考画面。
[0480] 进一步可选择地,可将从跳过/合并候选中选择的一个或更多个参考画面推导为运动修正模式的参考画面。
[0481] 进一步可选择地,对包括在参考画面列表中的所有或部分参考画面进行运动信息修正处理,并且随后将在修正处理之后呈现最小失真值的参考画面推导为运动修正模式的参考画面。
[0482] 在下文中,将详细描述推导作为一条运动信息的画面间预测指示符的方法。
[0483] 在运动修正模式下,可使用下述方法中的至少一种方法来推导出画面间预测指示符。
[0484] 例如,在运动修正模式下,可将画面间预测指示符固定为单向预测、双向预测、三向预测、四向预测和N向预测中的一个。
[0485] 作为另一示例,可将在空间上相邻的邻近块的画面间预测指示符推导为将在运动修正模式下使用的画面间预测指示符。
[0486] 作为另一示例,可将在时间上相邻的邻近块的画面间预测指示符推导为将在运动修正模式下使用的画面间预测指示符。
[0487] 作为另一示例,可将跳过/合并候选中的一个或更多个画面间预测指示符推导为将在运动修正模式下使用的画面间预测指示符。
[0488] 作为又一示例,可根据通过上述方法推导出的参考画面中的可用参考画面的数量来推导出画面间预测指示符,作为将在运动补偿模式下使用的画面间预测指示符。具体地说,当仅存在一个可用参考画面时,可通过使用单向预测来推导出画面间预测指示符。具体地说,当存在两个可用参考画面时,可通过使用双向预测来推导出画面间预测指示符。
[0489] 通过将运动信息修正方法应用于先前推导出的画面间预测指示符来产生修正的画面间预测指示符,并且可将修正的画面间预测指示符用作当前块的运动修正模式下的画面间预测指示符。
[0490] (2)运动信息的修正
[0491] 编码器/解码器通过对通过使用上述方法而推导出的参考画面执行运动信息修正来产生修正的参考画面,并且将修正的运动信息用作运动修正模式下的运动信息。具体地,可通过使用修正的运动矢量、修正参考画面和修正的画面间预测指示符中的至少一个生成预测块来执行运动补偿。类似地,编码器/解码器通过将运动信息修正方法应用于先前推导出的参考画面索引、先前推导出的预测列表利用标志、先前推导出的加权因子和先前推导出的偏移中的至少一个来产生修正的参考画面索引、修正的预测列表利用标志、修正的加权因子和修正的偏移中的至少一个,通过使用修正的参考画面索引、修正的预测列表利用标志、修正的加权因子和修正的偏移中的至少一个来创建预测块。这里,运动信息修正方法可包括上述的双边模板匹配。在这种情况下,通过基于编码/解码目标画面与每个参考画面之间的画面顺序计数来计算预测块的加权和,以获得最终预测块,并且因此可执行运动补偿。
[0492] 另一方面,当将运动信息修正处理应用于先前推导出的运动矢量时,可将先前推导出的运动矢量用于确定初始运动搜索位置。可基于初始运动搜索位置来确定修正的运动矢量。
[0493] 编码器/解码器可对最多M条推导出的运动信息执行运动信息修正。在这种情况下,M可以是在编码器/解码器中预设的固定值,或者可以是由编码器编码并用信号发送的可变值。例如,可修正第一条运动信息、第二条运动信息、……、和第N条运动信息中的至少一条运动信息。在这种情况下,M为等于或大于4的整数。
[0494] 此外,在不将运动信息修正应用于所有或部分先前推导出的运动信息的情况下,可将先前推导出的运动信息用作运动修正模式的运动信息。具体地,可通过使用推导出的运动矢量、推导出的参考画面和推导出的画面间预测指示符中的至少一个来生成预测块,以执行运动补偿。
[0495] 同时,可在运动修正模式下选择性地使用运动信息修正(例如,双边模板匹配)。
[0496] 根据一个实施例,当当前块与单向预测合并候选、局部照度补偿模式、仿射运动补偿模式和子CU合并模式中的至少一个不相关时,执行运动信息修正。
[0497] 当第一差值和第二差值中的仅一个是负整数值时,可执行运动信息修正,其中,第一差值是对应于第一预测方向(例如,L0预测方向)的第一参考画面与编码/解码目标画面之间的POC差(POCref0-POCcurr),并且第二差值是对应于第二预测方向(例如,L1预测方向)的第二参考画面与编码/解码目标画面之间的POC差(POCref1-POCcurr)。
[0498] 此外,当第一预测方向与第二预测方向彼此不同时,可执行运动信息修正。
[0499] 编码器/解码器可对通过上述方法得到的至少一条推导出的运动信息执行双边模板匹配,使用具有最小失真的一条运动信息生成预测块,并且执行运动补偿。此时,至少一条运动信息可包括L0运动信息和L1运动信息中的至少一条。
[0500] 编码器/解码器可对存在于跳过候选列表或合并候选列表中的一个或更多个候选执行双边模板匹配,使用具有最小失真的一个候选生成预测块,并且执行运动补偿。
[0501] 编码器/解码器可对通过上述方法得到的至少一条推导出的运动信息执行双边模板匹配,通过使用皆具有最小失真的M条运动信息生成M个预测块,计算M个预测块的加权和,并且将加权和用作编码/解码目标块的最终预测块。这里,M可以是正整数,并且可等于或大于2。
[0502] 编码器/解码器可对包括在跳过候选列表或合并候选列表中的一个或更多个候选执行双边模板匹配,使用皆具有最小失真的M个候选生成M个预测块,计算M个预测块的加权和,并且将加权和用作编码/解码目标块的最终预测块。这里,M可以是正整数,并且可等于或大于2。
[0503] 编码器/解码器可对针对存在于跳过候选列表或合并候选列表中的单向预测候选的跳过索引或合并索引执行熵编码/熵解码,并且可通过使用M个或更多个双向预测候选中的具有最小失真的至少一个候选来产生预测块,从而执行运动补偿。在这种情况下,对一个标志或一个索引进行熵编码/熵解码以指示M个或更多个双向预测候选。也就是说,向每个单向预测候选分配跳过索引或合并索引,而向M个或更多个双向预测候选共同分配一个跳过索引或一个合并索引。对于M个或更多个双向预测候选,因为可通过使用双边模板匹配来确定表示最小失真的至少一个候选,所以可不向每个双向预测候选分配跳过索引或合并索引。
[0504] 可根据运动修正模式利用信息来确定是否使用运动修正模式。这里,可使用标志信息和索引信息中的至少一个对运动修正模式利用信息进行熵编码/熵解码。
[0505] 可基于跳过标志的值来对运动修正模式利用信息执行编码/解码。可基于跳过标志的编码/解码时序来确定运动修正模式利用信息的编码/解码时序。例如,当跳过标志为1时(即,当使用跳过模式时),可对运动修正模式利用信息进行熵编码/熵解码。在这种情况下,可在对跳过标志进行熵编码/熵解码之后,对运动修正模式利用信息进行熵编码/熵解码。
[0506] 相反,可基于运动修正模式利用信息的值来对跳过标志执行编码/解码。例如,当运动修正模式利用信息为1时(即,当使用运动修正模式时),可对跳过标志进行熵解码/熵解码。在这种情况下,可在对跳过标志进行熵编码/熵解码之前,对运动修正模式利用信息进行熵编码/熵解码。
[0507] 可基于合并标志的值来对运动修正模式利用信息执行编码/解码。可以基于合并标志的编码/解码时序来确定运动修正模式利用信息的编码/解码时序。例如,当合并标志为1时(即,当使用合并模式时),可对运动修正模式利用信息进行熵编码/熵解码。在这种情况下,可在对合并标志进行熵编码/熵解码之后,对运动修正模式利用信息进行熵编码/熵解码。
[0508] 相反,可基于运动修正模式利用信息的值来对合并标志执行编码/解码。例如,当运动修正模式利用信息为1时(即,当使用运动修正模式时),可对合并标志进行熵编码/熵解码。在这种情况下,可在对合并标志进行熵编码/熵解码之前,对运动修正模式利用信息进行熵编码/熵解码。
[0509] 可基于特定的运动补偿模式来对运动修正模式利用信息执行编码/解码。例如,当不使用仿射运动补偿模式时,可对运动修正模式利用信息进行熵编码/熵解码。
[0510] 可基于运动修正模式利用信息的值来对解码器运动矢量推导模式标志进行编码/解码。也就是说,当运动修正模式利用信息为0时(即,当不使用运动修正模式时),可对解码器侧运动矢量推导模式标志进行熵编码/熵解码。
[0511] 此外,可基于编码/解码目标块的一个或更多个邻近块的运动修正模式利用信息来对运动修正模式利用信息进行编码/解码。例如,编码/解码目标块的一个或更多个邻近块可包括一个或更多个在空间上相邻的块和/或在时间上相邻的块。一个或更多个在空间上相邻的块可包括位于编码/解码目标块左侧的块和/或位于编码/解码目标块上方的块。
[0512] 此外,当运动修正模式利用信息未被用信号发送时,可基于编码/解码目标块的一个或更多个邻近块的运动修正模式利用信息来推导运动修正模式利用信息。编码/解码目标块的一个或更多个邻近块可包括一个或更多个在空间上相邻的邻近块和/或在时间上相邻的邻近块。一个或更多个在空间上相邻的块可包括位于编码/解码目标块左侧的块和/或位于编码/解码目标块上方的块。
[0513] 当在空间上与编码/解码目标块相邻的块中的至少一个使用跳过模式时,可对运动修正模式利用信息进行熵编码/熵解码。
[0514] 当在空间上与编码/解码目标块相邻的块中的至少一个使用合并模式时,可对运动修正模式利用信息进行熵编码/熵解码。
[0515] 当在空间上与编码/解码目标块相邻的块中的至少一个使用画面间模式时,可对运动修正模式利用信息进行熵编码/熵解码。
[0516] 可使用旁路模式对运动修正模式利用信息进行熵编码/熵解码。
[0517] 当一起使用运动修正模式和跳过模式时,可不对残差信号进行熵编码/熵解码。
[0518] 当一起使用运动修正模式和合并模式时,可对残差信号进行熵编码/熵解码。
[0519] 在运动修正模式下,仅可对残差信号的一部分进行熵编码/熵解码以供使用。在这种情况下,残差信号的该部分可以是DC量化电平(DC变换系数)。
[0520] 当使用运动修正模式时,可不对除了运动修正模式利用信息之外的信息进行熵编码/熵解码。这里,除了运动修正模式利用信息之外的信息可以是关于运动补偿的至少一条信息。
[0521] 在上文中,已经描述与运动信息修正相关的运动修正模式。在下文中,将描述在运动修正模式下推导出的运动修正候选。
[0522] 运动修正候选可以是包括以下信息中的至少一个的运动信息:通过运动修正模式推导出的推导出的运动矢量、推导出的参考画面和推导出的画面间预测指示符。编码器/解码器可在跳过模式或合并模式下将运动修正候选作为跳过候选添加到跳过候选列表或将运动修正候选作为合并候选添加到合并候选列表。
[0523] 下面将描述将运动修正候选添加到跳过/合并候选列表的实施例。
[0524] 当在跳过/合并候选列表中存在与运动修正候选相同的跳过/合并候选时,可不将运动修正候选添加到跳过/合并候选列表。当在跳过/合并候选列表中存在与跳过/合并候选相同的运动修正候选时,可不将跳过/合并候选添加到跳过/合并候选列表。
[0525] 可比空间跳过/合并候选更早地推导出运动修正候选,并且可将运动修正候选添加到跳过/合并候选列表。
[0526] 可比从特定位置推导出的空间跳过/合并候选更早地推导出运动修正候选,并且随后可将运动修正候选添加到跳过/合并候选列表中。这里,特定位置可以是图10中的位置A1、B1、B0、A0和B2中的至少一个。
[0527] 此外,可比时间跳过/合并候选、组合合并候选和具有预定运动信息值的合并候选中的至少一个更早地推导出运动修正候选,并且可将运动修正候选添加到跳过/合并候选列表。
[0528] 编码器/解码器可将包括通过运动修正模式的运动信息修正而获得的修正的运动矢量、修正的参考画面和修正的画面间预测指示符中的至少一个的运动信息确定为运动修正候选。编码器/解码器可在跳过模式下将运动修正候选作为跳过候选添加到跳过候选列表或在合并模式下将运动修正候选作为合并候选添加到合并候选列表。
[0529] 可使用运动修正模式来代替跳过模式。也就是说,可通过使用运动修正模式而不是跳过模式来对画面进行编码/解码。可使用运动修正模式来代替合并模式。也就是说,可通过使用运动修正模式而不是合并模式来对画面进行编码/解码。
[0530] 可将重叠块运动补偿模式、局部照度补偿模式和双向光流模式中的至少一个应用于使用运动修正模式而生成的最终预测块。
[0531] 此外,在运动修正模式下,可将运动信息修正方法仅应用于一条运动信息或运动信息的一部分,而不生成运动信息候选的列表。
[0532] 在下文中,将描述用于在运动修正模式(MRM)下执行运动信息修正的条件。
[0533] 可基于运动矢量的参考画面的画面顺序计数(POC)来确定是否执行运动信息修正。
[0534] 例如,当存在以下两个运动矢量时,可执行运动信息修正方法:第一运动矢量,指示画面顺序计数比编码/解码目标画面的画面顺序计数小的参考画面;以及第二运动矢量,指示画面顺序计数比编码/解码目标画面的画面顺序计数大的参考画面。
[0535] 可选择地,当存在指示画面顺序计数比编码/解码目标画面的画面顺序计数小的参考画面的两个运动矢量时,可执行运动信息修正方法。
[0536] 进一步可选择地,当存在指示画面顺序计数比编码/解码目标画面的画面顺序计数大的参考画面的两个运动矢量时,可执行运动信息修正方法。
[0537] 当不使用仿射运动补偿模式、解码器运动矢量推导模式和局部照度补偿模式中的至少一种时,可对编码/解码目标块执行运动信息修正。
[0538] 当编码/解码目标画面的画面顺序计数与第一参考画面的画面顺序计数之间的差值或编码/解码目标画面的画面顺序计数与第二参考画面的画面顺序计数之间的差值小于N(N为大于或等于0的整数)时,可执行运动信息修正。在这种情况下,第一参考画面可指由第一运动矢量指示的参考画面,并且第二参考画面可指由第二运动矢量指示的参考画面。
[0539] 可基于作为运动信息修正的目标的第一运动矢量和第二运动矢量来执行运动信息修正。
[0540] 例如,当第一运动矢量与第二运动矢量相同时且当由第一运动矢量指示的参考画面与由第二运动矢量指示的参考画面相同时,可不执行运动信息修正。也就是说,只有当第一运动信息与第二运动信息彼此不同时和/或当由第一运动信息和第二运动信息指示的参考画面彼此不同时,才可执行运动信息修正。此外,当第一运动矢量与第二运动矢量相同时,可不执行运动信息修正。也就是说,只有当第一运动矢量与第二运动矢量彼此不同时,才可执行运动信息修正。
[0541] 可选择地,只有当由第一运动矢量指示的参考画面与由第二运动矢量指示的参考画面相同时,才可执行运动信息修正。相反,只有当由第一运动矢量指示的参考画面与由第二运动矢量指示的参考画面不同时,才可执行运动信息修正。
[0542] 作为另一示例,可对运动矢量值不是(0,0)的运动矢量执行运动信息修正。这里,当画面间预测指示符指示双向时且当第一运动矢量和第二运动矢量的值皆不是(0,0)时,可执行运动信息修正。此外,当画面间预测指示符指示N方向(N为等于或大于2的整数)时且当所有或预定数量的N个运动矢量的值不是(0,0)时,可不执行运动信息修正。
[0543] 只有当画面间预测指示符指示特定数量的方向时,才可执行运动信息修正。例如,只有当跳过/合并候选的画面间预测指示符指示双向时,才可执行运动信息修正。
[0544] 只有当由第一运动矢量指示的参考画面的参考画面索引为0且由第二运动矢量指示的参考画面的参考画面索引为0时,才可执行运动信息修正。可选择地,只有当由各个运动矢量指示的参考画面的参考画面索引具有特定值时,才执行运动信息修正。
[0545] 可仅对空间跳过/合并候选、时间跳过/合并候选、组合跳过/合并候选和具有预定运动信息值的跳过/合并候选中的至少一个执行运动信息修正。
[0546] 可将编码/解码目标块划分为子块,并且可基于每个子块执行运动信息修正。
[0547] 另一方面,当编码/解码目标块具有针对每个子块的运动信息或运动矢量时,可基于每个子块执行运动信息修正以提高编码效率。可能存在编码/解码目标块的所有子块具有不同的运动信息或运动矢量或者相同的运动信息或运动矢量的情况。因此,只有当编码/解码目标块的所有子块具有不同的运动信息或运动矢量或具有相同的运动信息或运动矢量时,才可执行运动信息修正。
[0548] 当编码/解码目标块具有基于每个子块的运动信息或运动矢量时,可不对基于每个子块的运动信息或运动矢量执行运动信息修正,以便降低计算复杂度。只有当编码/解码目标块的所有子块具有相同的运动信息或运动矢量时,才可执行运动信息修正,以降低计算复杂度。
[0549] 可基于每个样点或基于每个块来执行运动信息修正。
[0550] 在将使用N向预测(诸如三向预测和四向预测)来对编码/解码目标块进行编码的情况下,可通过使用N个运动矢量(诸如三个运动矢量和四个运动矢量)计算模板来执行运动信息修正。在这种情况下,M是等于或大于3的整数。
[0551] 当将双边模板匹配用作运动信息修正方法时,可通过对先前推导出的运动信息进行缩放来生成新的运动信息。
[0552] 例如,当在空间上相邻的邻近块或在时间上相邻的邻近块中仅存在一条运动信息(即,第一运动信息)或仅存在第一运动矢量时,基于第一运动信息或第一运动矢量来执行缩放,以产生第二运动信息或第二运动矢量,并且随后可执行运动信息修正。
[0553] 类似地,当在空间上相邻的邻近块或在时间上相邻的邻近块中仅存在一条运动信息(即,第二运动信息)或仅存在第二运动矢量时,基于第二运动信息或第二运动矢量来执行缩放,以产生第一运动信息或第一运动矢量,并且随后可执行运动信息修正。
[0554] 作为另一示例,当由初始运动矢量指示的参考画面与由修正的运动矢量候选指示的参考画面不同时,基于各个参考画面的画面顺序计数(POC)值对初始运动矢量进行缩放,以获得修正的运动矢量候选。这里,修正的运动矢量候选表示指示执行搜索以找到修正的运动矢量的区域的运动矢量。为了获得修正的运动矢量,可通过将由修正的运动矢量指示的位置的失真值与由初始运动矢量指示的位置的失真值进行比较来执行双边模板匹配。
[0555] 另一方面,可通过将运动信息修正应用于亮度分量的一个运动矢量和色度分量的两个运动矢量中的至少一个运动矢量来计算修正的运动矢量。
[0556] 另一方面,对包括在参考画面列表中的所有或部分参考画面进行运动信息修正,并且随后可将在修正处理之后呈现最小失真值的参考画面推导为修正的参考画面。
[0557] 可将执行运动信息修正的相同条件应用于针对解码器侧运动矢量推导模式的运动信息修正。
[0558] 图16是示出根据本发明的又一实施例的图像解码方法的流程图。
[0559] 参照图16,解码器可从在空间上相邻的邻近块的运动信息、在时间上相邻的邻近块的运动信息、预定义运动信息以及在参考画面中最频繁出现的运动信息中的至少一条信息推导运动修正候选(S1601)。
[0560] 在这种情况下,可以以预定顺序推导运动修正候选:在空间上相邻的邻近块的运动信息、在时间上相邻的邻近块的运动信息、预定义运动信息以及在参考画面内以最高概率出现的运动信息的顺序。预定顺序可表示在空间上相邻的邻近块的运动信息、在时间上相邻的邻近块的运动信息以及预定义运动信息的顺序。这里,预定义运动信息可包括零矢量。
[0561] 在时间上相邻的邻近块可被包括在基于在空间上相邻的邻近块的参考画面索引而选择的参考画面中。
[0562] 接下来,可对先前推导出的运动修正候选执行运动信息修正(S1602)。
[0563] 在这种情况下,可通过将双边模板匹配应用于推导出的运动修正候选中存在的运动矢量来执行运动信息修正。
[0564] 这里,双边模板匹配可包括如下步骤:通过将从推导出的运动修正候选中选择的运动矢量用作初始运动矢量来生成双边模板;并且通过将双边模板中的样点的值与参考画面中的由初始运动矢量指示的重建参考样点的值进行比较来修正初始运动矢量。
[0565] 这里,可递归地执行修正初始运动矢量的步骤。
[0566] 初始运动矢量可以是作为非零运动矢量的双向预测运动矢量,并且是从推导出的运动修正候选中选择的。这里,当在推导出的运动修正候选中不存在作为非零矢量的双向预测运动矢量时,可将初始运动矢量设置为零矢量。
[0567] 另一方面,修正初始运动矢量的步骤包括如下步骤:搜索指示参考画面中的与双边模板中的相应区域相比的最小失真区域的运动矢量;并且将找到的运动矢量设置为初始运动矢量的修正值。
[0568] 这里,可在参考画面中的有限搜索范围内执行搜索运动矢量的步骤。
[0569] 在这种情况下,可将有限搜索范围设置为基于整数像素划界的预定区域,并且可在基于整数像素划界的预定搜索范围内基于子像素来执行搜索运动矢量的步骤。
[0570] 一方面,可基于整数像素和子像素来执行双边模板匹配。在这种情况下,可执行搜索运动矢量的步骤,以在基于整数像素划界的预定搜索范围内基于子像素来搜索运动矢量。
[0571] 同时,当块不与单向预测合并候选、局部照度补偿模式和仿射运动补偿模式中的任意一个对应时,可执行对推导出的运动修正候选执行运动信息修正的步骤。
[0572] 接下来,通过使用由运动信息修正得到的运动修正候选来生成编码/解码目标块(即,当前块)的预测块(S1603)。
[0573] 图像解码方法还可包括如下步骤:在步骤S1601之前执行的对运动修正模式利用信息进行解码;并且基于解码的运动修正模式利用信息确定运动修正模式。只有当作为确定步骤的结果,将当前块确定为与运动修正模式对应时,才可执行步骤S1601。
[0574] 这里,可基于跳过标志或合并标志来确定是否执行对运动修正模式利用信息进行解码的步骤。
[0575] 在存在多个在空间上相邻的邻近块的情况下,可执行推导运动修正候选的步骤,使得首先从具有双向预测运动矢量的在空间上相邻的邻近块推导出运动信息,其次从具有单向预测运动矢量的在空间上相邻的邻近块推导出运动信息。
[0576] 上面已经描述了根据本发明的图像解码方法。可以以与图像编码方法相同的方式执行上述图像解码方法的每个步骤。
[0577] 可在编码器和解码器中以相同的方法执行以上实施例。
[0578] 应用以上实施例的顺序在编码器与解码器之间可不同,或者应用以上实施例的顺序在编码器和解码器中可相同。
[0579] 可对每个亮度信号和色度信号执行以上实施例,或者可对亮度信号和色度信号相同地执行以上实施例。
[0580] 应用本发明的以上实施例的块形状可具有正方形形状或非正方形形状。
[0581] 可根据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本发明的以上实施例。这里,尺寸可被定义为使得以上实施例被应用的最小尺寸或最大尺寸或者最小尺寸和最大尺寸两者,或者可被定义为以上实施例被应用于的固定尺寸。此外,在以上实施例中,可将第一实施例应用于第一尺寸,并且可将第二实施例应用于第二尺寸。换句话说,可根据尺寸组合地应用以上实施例。此外,当尺寸等于或大于最小尺寸且等于或小于最大尺寸时,可应用以上实施例。换句话说,当块尺寸被包括在特定范围内时,可应用以上实施例。
[0582] 例如,当当前块的尺寸是8×8或更大时,可应用以上实施例。例如,当当前块的尺寸是4×4或更大时,可应用以上实施例。例如,当当前块的尺寸是16×16或更大时,可应用以上实施例。例如,当当前块的尺寸等于或大于16×16且等于或小于64×64时,可应用以上实施例。
[0583] 可根据时间层来应用本发明的以上实施例。为了识别以上实施例可被应用于的时间层,可将以上实施例应用于由相应标识符标识的指定时间层。这里,标识符可被定义为以上实施例可被应用于的最低层或最高层或最低层和最高层两者,或者可被定义为指示该实施例被应用于的特定层。此外,可定义实施例被应用于的固定时间层。
[0584] 例如,当当前图像的时间层是最低层时,可应用以上实施例。例如,当当前图像的时间层标识符是1时,可应用以上实施例。例如,当当前图像的时间层是最高层时,可应用以上实施例。
[0585] 可定义本发明的以上实施例被应用于的条带类型,并且可根据对应的条带类型来应用以上实施例。
[0586] 当运动矢量具有16pel单位、8pel单位、4pel单位、整数pel单位、1/8pel单位、1/16pel单位、1/32pel单位和1/64pel单位中的至少一个时,也可应用本发明的上述实施例。
运动矢量可被选择性地用于每个像素单元。
[0587] 在上述实施例中,基于具有一系列步骤或单元的流程图描述了方法,但是本发明不限于这些步骤的顺序,而是一些步骤可与其他步骤同时执行或以不同的顺序执行。此外,本领域的普通技术人员应该理解,流程图中的步骤并不互相排斥,并且在不影响本发明的范围的情况下,可将其他步骤添加到流程图或者可将步骤中的一些步骤从流程图删除。
[0588] 实施例包括示例的各个方面。可不描述各个方面的所有可能的组合,但是本领域技术人员将能够认识到不同的组合。因此,本发明可包括权利要求范围内的所有替换、修改和改变。
[0589] 本发明的实施例可以以程序指令的形式实现,其中,该程序指令可由各种计算机组件执行并且被记录在计算机可读记录介质中。计算机可读记录介质可单独地包括程序指令、数据文件、数据结构等,或者可包括程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可以是为本发明专设计和构建的,或者对于计算机软件技术领域的普通技术人员是公知的。计算机可读记录介质的示例包括磁记录介质(诸如,硬盘软盘和磁带)、光学数据存储介质(诸如,CD-ROM或DVD-ROM)、磁光介质(诸如软光盘)以及被专门构造为存储和实现程序指令的硬件装置(诸如,只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。程序指令的示例不仅包括由编译器格式化的机械语言代码,而且包括可由计算机使用解释器来实现的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作或者反之亦然,以实施根据本发明的处理。
[0590] 尽管已经在特定项目(诸如,详细元件)以及有限的实施例和附图方面描述了本发明,但是它们仅被提供以帮助更全面地理解本发明,并且本发明不限于以上实施例。本发明所属领域的技术人员将理解,可对以上描述进行各种修改和改变。
[0591] 因此,本发明的精神将不应限于上述实施例,并且所附权利要求及其等同物的整个范围将落入本发明的范围和精神内。
[0592] 工业适用性
[0593] 本发明可被应用于用于对图像进行编码/解码的设备。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈