对图像编码/解码的方法和设备及存储比特流的记录介质与流程

文档序号:18192412发布日期:2019-07-17 05:38阅读:198来源:国知局
对图像编码/解码的方法和设备及存储比特流的记录介质与流程

本发明涉及一种用于对图像进行编码/解码的方法和设备以及存储比特流的记录介质。更具体地讲,本发明涉及一种用于使用重叠块运动补偿对图像进行编码/解码的方法和设备。



背景技术:

近来,对诸如高清(hd)图像或超高清(uhd)图像的高分辨率质量图像的需求在各个应用领域已获得增长。然而,与传统的图像数据相比,更高分辨率和质量的图像数据的数据量有所增加。因此,当通过使用诸如传统的有线宽带网络或无线宽带网络的介质传输图像数据时,或者当在传统的存储介质中存储图像数据时,传输成本和存储成本增加。为了解决随着图像数据的分辨率和质量的提高而出现的这些问题,需要高效的图像编码/解码技术。

图像压缩技术包括各种技术,包括:从当前画面的先前画面或后续画面预测包括在当前画面中的像素值的帧间预测技术;通过使用当前画面中的像素信息来预测包括在当前画面中的像素值的帧内预测技术;向高出现频率的值分配短码并且向低出现频率的值分配长码的熵编码技术;等等。通过使用这样的图像压缩技术,图像数据可被有效压缩,并且压缩的图像数据被发送或存储。

传统图像编码/解码方法和设备的缺点在于:在计算针对重叠块运动补偿的加权和以及推导邻近块的运动信息期间,计算复杂度增加。



技术实现要素:

技术问题

因此,本发明已经考虑到现有技术中出现的以上问题,并且本发明的目标在于提供一种用于在计算针对重叠块运动补偿的加权和以及推导邻近块的运动信息期间降低计算复杂度的同时执行重叠块运动补偿的方法和设备。

解决方案

为了实现以上目标,本发明提供了一种用于对图像进行解码的方法,所述方法包括:使用当前块的运动信息产生当前块的第一预测块;在当前子块的至少一个邻近子块的运动信息之中确定能够用于产生第二预测块的运动信息;使用确定的运动信息产生当前子块的至少一个第二预测块;以及基于当前块的第一预测块与当前子块的所述至少一个第二预测块的加权和来产生最终预测块。

在图像解码方法中,在确定能够用于产生第二预测块的运动信息的步骤中,可基于当前子块的邻近子块的运动矢量的大小和方向中的至少一个来确定能够用于产生第二预测块的运动信息。

在图像解码方法中,在确定能够用于产生第二预测块的运动信息的步骤中,可基于所述邻近子块的参考画面的画面计数(poc)与当前块的参考画面的poc来确定能够用于产生第二预测块的运动信息。

在图像解码方法中,在确定能够用于产生第二预测块的运动信息的步骤中,仅当所述邻近子块的参考画面的poc等于当前块的参考画面的poc时,将所述邻近子块的运动信息确定为能够用于产生第二预测块的运动信息。

在图像解码方法中,当前子块可具有正方形形状和矩形形状中的至少一种。

在图像解码方法中,在产生至少一个第二预测块的步骤中,仅当当前块既不具有运动矢量推导模式也不具有仿射运动补偿模式时,可使用当前子块的至少一个邻近子块的运动信息来产生所述至少一个第二预测块。

在图像解码方法中,在产生最终预测块的步骤中,当当前子块被包括在当前块的边界区域中时,通过获得第一预测块的与边界相邻的部分行或部分列中的每一个样点以及第二预测块的与边界相邻的部分行或部分列中的每一个样点的加权和来产生最终预测块。

在图像解码方法中,第一预测块的与边界相邻的所述部分行或所述部分列中的样点以及第二预测块的与边界相邻的所述部分行或所述部分列中的样点可基于当前子块的块尺寸、当前子块的运动矢量的大小和方向、当前块的帧间预测指示符、以及当前块的参考画面的poc中的至少一个被确定。

在图像解码方法中,在产生最终预测块的步骤中,可通过根据当前子块的运动矢量的大小和方向中的至少一个将不同权重因子应用于第一预测块和第二预测块中的样点来获得第一预测块和第二预测块的加权和。

本发明提供一种用于对图像进行编码的方法,所述方法包括:使用当前块的运动信息产生当前块的第一预测块;在当前子块的至少一个邻近子块的运动信息之中确定能够用于产生第二预测块的运动信息;使用确定的运动信息来产生当前子块的至少一个第二预测块;基于当前块的第一预测块和当前子块的所述至少一个第二预测块的加权和来产生最终预测块。

在图像编码方法中,在确定能够用于产生第二预测块的运动信息的步骤中,可基于所述邻近子块的运动矢量的大小和方向中的至少一个确定能够用于产生第二预测块的运动信息。

在图像编码方法中,在确定能够用于产生第二预测块的运动信息的步骤中,可基于所述邻近子块的参考画面的poc与当前块的参考画面的poc来确定能够用于产生第二预测块的运动信息。

在图像编码方法中,在确定能够用于产生第二预测块的运动信息的步骤中,仅当所述邻近子块的参考画面的poc等于当前块的参考画面的poc时,可将所述邻近子块的运动信息确定为能够用于产生第二预测块的运动信息。

在图像编码方法中,当前子块可具有正方形形状和矩形形状中的至少一种。

在图像编码方法中,在产生至少一个第二预测块的步骤中,仅当当前块既不具有运动矢量推导模式也不具有仿射运动补偿模式时,可使用所述至少一个邻近子块的运动信息来产生所述至少一个第二预测块。

在图像编码方法中,在产生最终预测块的步骤中,当当前子块被包括在当前块的边界区域中时,可基于第一预测块的与边界相邻的部分行或部分列中的样点以及第二预测块的与边界相邻的部分行或部分列中的样点的加权和来产生最终预测块。

在图像编码方法中,第一预测块的与边界相邻的所述部分行或所述部分列中的样点以及第二预测块的与边界相邻的所述部分行或所述部分列中的样点可基于当前子块的块尺寸、当前子块的运动矢量的大小和方向、当前块的帧间预测指示符、以及当前块的参考画面的poc中的至少一个被确定。

在图像编码方法中,在产生最终预测块的步骤中,可通过根据当前子块的运动矢量的大小和方向中的至少一个将不同权重值应用于第一预测块和第二预测块中的样点来获得所述加权和。

本发明提供了一种存储通过图像编码方法所产生的比特流的记录介质,所述图像编码方法包括:使用当前块的运动信息产生当前块的第一预测块;在当前子块的至少一个邻近子块的运动信息之中确定能够用于产生第二预测块的运动信息;使用确定的运动信息来产生当前子块的至少一个第二预测块;基于当前块的第一预测块和当前子块的所述至少一个第二预测块的加权和来产生最终预测块。

有益效果

根据本发明,能够提供一种用于以改进的压缩效率对图像进行编码/解码的方法和设备。

根据本发明,能够提高图像编码/解码效率。

根据本发明,能够降低图像编码器和图像解码器的计算复杂度。

附图说明

图1是示出根据被应用了本发明的实施例的编码设备的构造的框图;

图2是示出根据被应用了本发明的实施例的解码设备的构造的框图;

图3是示意性地示出当对图像进行编码或解码时使用的图像的分区结构的示图;

图4是示出帧间预测处理的实施例的示图;

图5是示出根据本发明的一个实施例的图像编码方法的流程图;

图6是示出根据本发明的一个实施例的图像解码方法的流程图;

图7是示出根据本发明的另一实施例的图像编码方法的流程图;

图8是示出根据本发明的另一实施例的图像解码方法的流程图;

图9是示出推导当前块的空间运动矢量候选的示例的示图;

图10是示出推导当前块的时间运动矢量候选的示例的示图;

图11是示出将空间合并候选添加到合并候选列表的示例的示图;

图12是示出将时间合并候选添加到合并候选列表的示例的示图;

图13是示出逐子块地执行重叠块运动补偿的示例的示图;

图14是示出使用同位块的子块的运动信息来执行重叠块运动补偿的示例的示图;

图15是示出使用与参考块的边界相邻的块的运动信息来执行重叠块运动补偿的示例的示图;

图16是示出逐子块组地执行重叠块运动补偿的示例的示图;

图17是示出用于重叠块运动补偿的运动信息的条数的示例的示图;

图18和图19是示出推导用于产生第二预测块的运动信息的顺序的示图;

图20是示出通过将当前子块的参考画面的poc与当前子块的邻近子块的参考画面的poc进行比较来确定邻近子块的运动信息是否是可用于产生第二预测块的信息的示例的示图;

图21是示出当计算第一预测块和第二预测块的加权和时应用权重因子的实施例的示图;

图22是示出当计算第一预测块和第二预测块的加权和时根据块中的样点的位置将不同权重因子应用于所述样点的实施例的示图;

图23是示出在重叠块运动补偿期间按照预定顺序依次累积地计算第一预测块和第二预测块的加权和的实施例的示图;

图24是示出在重叠块运动补偿期间计算第一预测块和第二预测块的加权和的实施例的示图;

图25是示出根据本发明的另一实施例的图像解码方法的流程图。

具体实施方式

可对本发明做出多种修改,并且存在本发明的多种实施例,其中,现在将参照附图提供所述实施例的示例并且将详细描述所述实施例的示例。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同形式或替换形式。相似的参考标号指在各方面相同或相似的功能。在附图中,为了清楚起见,元件的形状和大小可被夸大。在本发明的以下详细描述中,对通过图示的方式示出可对本发明进行实施的具体实施例的附图进行参照。这些实施例被足够详细地描述以使本领域技术人员能够实施本公开。应该理解,本公开的各种实施例尽管不同,但不必是相互排他的。例如,在不脱离本公开的精神和范围的情况下,这里描述的与一个实施例关联的特定特征、结构和特性可在其它实施例中被实施。此外,应该理解,在不脱离本公开的精神和范围的情况下,每个公开的实施例内的各个元件的位置或布置可被修改。因此,以下详细描述并不用以限制的含义,本公开的范围仅由所附权利要求(在合适解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。

在说明书中使用的术语“第一”、“第二”等可被用于描述各种组件,但这些组件并不被解释为限制于所述术语。所述术语仅被用于将一个组件与其它组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被称为“第二”组件,并且“第二”组件也可被类似地称为“第一”组件。术语“和/或”包括多个项的组合或者是多个项中的任意一项。

将理解的是,在本说明书中,当元件被简单称为“连接到”或“结合到”另一元件而不是“直接连接到”或“直接结合到”另一元件时,它可以“直接连接到”或“直接结合到”另一元件,或者是在其间插入其它元件的情况下连接到或结合到另一元件。相反,应该理解,当元件被称为“直接结合”或“直接连接”到另一元件时,不存在中间元件。

此外,在本发明的实施例中示出的组成部件被独立示出,以便呈现彼此不同的特性功能。因此,这并不意味着每个组成部件以单独的硬件或软件的组成单元被组成。换句话说,为了方便,每个组成部件包括枚举的组成部件中的每一个。因此,每个组成部件中的至少两个组成部件可被组合形成一个组成部件,或者一个组成部件可被划分为多个组成部件以执行每个功能。在没有脱离本发明的本质的情况下,每个组成部件被组合的实施例以及一个组成部件被划分的实施例也被包括在本发明的范围中。

在本说明书中使用的术语仅用于描述具体实施例,而不旨在限制本发明。以单数使用的表达包括复数表达,除非它在上下文中具有明显不同的含义。在本说明书中,将理解,诸如“包括...的”、“具有...的”等的术语旨在指明说明书中所公开的特征、数量、步骤、动作、元件、部件、或其组合的存在,而并不旨在排除一个或更多个其它特征、数量、步骤、动作、元件、部件、或其组合可能存在或者可能被添加的可能性。换句话说,当特定元件被称为“被包括”时,除相应元件以外的元件并不被排除,而是,另外的元件可被包括在本发明的实施例中或者是本发明的范围中。

此外,一些组成元件可能不是执行本发明的必要功能的不可缺的组成元件,而是仅提升其性能的可选组成元件。可通过仅包括用于实施本发明的实质的不可缺的组成部件而排除在提升性能时使用的组成部件来实施本发明。仅包括所述不可缺的组成部件而排除在仅提升性能时使用的可选组成部件的结构也被包括在本发明的范围中。

在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知功能或结构,这是因为它们会不必要地模糊对本发明的理解。附图中的相同的组成元件通过相同的参考标号来表示,并且对相同元件的重复描述将被省略。

此外,在下文中,图像可意为构成视频的画面,或者可意为视频本身。例如,“对图像进行编码或解码或者进行两者”可意为“对视频进行编码或解码或者进行两者”,并且可意为“对视频的多个图像之中的一个图像进行编码或解码或者进行两者”。这里,画面和图像可具有相同的含义。

术语描述

编码器:意为执行编码的设备。

解码器:意为执行解码的设备。

块:是m×n矩阵的样点。这里,m和n意为正整数,并且块可意为二维形式的样点矩阵。块可以是指单元。当前块可意为当编码时成为目标的编码目标块、或者当解码时成为目标的解码目标块。另外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。

样点:是构成块的基本单元。样点可被表示为根据比特深度(bd)而从0至2bd–1的值。在本发明中,样点可被用作像素的含义。

单元:是指编码和解码单元。在对图像进行编码和解码时,单元可以是通过对单个图像进行分区而产生的区域。此外,单元可意为在编码或解码期间当单个图像被分区为多个子划分单元时的子划分单元。在对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为尺寸比该单元的尺寸更小的子单元。依据功能,单元可意为块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种尺寸和形状,具体而言,单元的形状可以是二维几何图形,诸如矩形形状、正方形形状、梯形形状、三角形形状、五边形形状等。此外,单元信息可包括单元类型(指示编码单元、预测单元、变换单元等)、单元尺寸、单元深度、对单元进行编码和解码的顺序等中的至少一个。

编码树单元:被配置有亮度分量y的单个编码树块以及与色度分量cb和cr相关的两个编码树块。另外,编码树单元可意为包括块以及每个块的语法元素。可通过使用四叉树分区方法和二叉树分区方法中的至少一个对每个编码树单元进行分区来构造下层单元,诸如编码单元、预测单元、变换单元等。编码树单元可被用作用于指定当对作为输入图像的图像进行编码/解码时成为处理单元的像素块的术语。

编码树块:可被用作用于指定y编码树块、cb编码树块和cr编码树块中的任意一个的术语。

邻近块:意为与当前块相邻的块。与当前块相邻的块可意为与当前块的边界接触的块、或者位于距当前块预定距离内的块。邻近块可意为与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可意为与水平相邻于当前块的邻近块垂直相邻的块、或者与垂直相邻于当前块的邻近块水平相邻的块。

重建邻近块:意为与当前块相邻并且已在时间上/空间上被编码或解码的邻近块。这里,重建邻近块可意为重建邻近单元。重建空间邻近块可以是在当前画面内的已经通过编码或解码或者通过编码和解码两者被重建的块。重建时间邻近块是在参考画面内的与当前画面的当前块位于相同位置的块、或者该块的邻近块。

单元深度:意为单元的被分区程度。在树结构中,根节点可以是最高节点,叶节点可以是最低节点。另外,当单元被表示为树结构时,单元所存在的级别可意为单元深度。

比特流:意为包括编码图像信息的比特流。

参数集:对应于比特流内的结构中的头信息。视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个可被包括在参数集中。此外,参数集可包括条带头和并行块(tile)头信息。

解析:可意为通过执行熵解码确定语法元素的值,或者可意为熵解码自身。

符号:可意为编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。另外,符号可意为熵编码目标或熵解码结果。

预测单元:意为当执行诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿的预测时的基本单元。单个预测单元可被分区为具有小尺寸的多个分区,或者可被分区为下级预测单元。

预测单元分区:意为通过对预测单元进行分区所获得的形状。

参考画面列表:意为包括用于画面间预测或运动补偿的一个或更多个参考画面的列表。lc(listcombined)、l0(list0)、l1(list1)、l2(list2)、l3(list3)等是参考画面列表的类型。一个或更多个参考画面列表可被用于画面间预测。

画面间预测指示符:可意为当前块的画面间预测方向(单向预测、双向预测等)。可选地,画面间预测指示符可意为用于产生当前块的预测块的参考画面的数量。进一步可选地,画面间预测指示符可意为用于针对当前块执行画面间预测或运动补偿的预测块的数量。

参考画面索引:意为指示参考画面列表中的特定参考画面的索引。

参考画面:可意为针对画面间预测或运动补偿特定块所参考的画面。

运动矢量:是用于画面间预测或运动补偿的二维矢量,并且可意为参考画面与编码/解码目标画面之间的偏移。例如,(mvx,mvy)可表示运动矢量,mvx可表示水平分量,mvy可表示垂直分量。

运动矢量候选:可意为当对运动矢量进行预测时成为预测候选的块,或者可意为该块的运动矢量。运动矢量候选可在运动矢量候选列表中被列出。

运动矢量候选列表:可意为运动矢量候选的列表。

运动矢量候选索引:可意为指示运动矢量候选列表中的运动矢量候选的指示符。运动矢量候选索引也被称为运动矢量预测因子的索引。

运动信息:可意为包括运动矢量、参考画面索引、画面间预测指示符以及以下项中的至少任意一项的信息:参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引。

合并候选列表:意为由合并候选组成的列表。

合并候选:意为空间合并候选、时间合并候选、组合合并候选、组合双向预测合并候选、零合并候选等。合并候选可具有画面间预测指示符、用于每个列表的参考画面索引、以及诸如运动矢量的运动信息。

合并索引:意为指示合并候选列表内的合并候选的信息。合并索引可指示与当前块在空间和/或时间上相邻的重建块之中的用于推导合并候选的块。合并索引可指示由合并候选拥有的运动信息中的至少一项。

变换单元:意为当对残差信号执行编码/解码(诸如变换、逆变换、量化、反量化以及变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有小尺寸的多个变换单元。

缩放:意为将变换系数等级与因子相乘的处理。可通过对变换系数等级进行缩放来产生变换系数。缩放还可被称为反量化。

量化参数:可意为在量化期间产生变换系数的变换系数等级时使用的值。量化参数也可以意为在反量化期间通过对变换系数等级进行缩放产生变换系数时使用的值。量化参数可以是被映射在量化步长大小上的值。

变量增量(delta)量化参数:意为编码/解码目标单元的量化参数与预测出的量化参数之间的差值。

扫描:意为对块或矩阵内的系数进行排序的方法。例如,将系数的二维矩阵改变为一维矩阵的操作可被称为扫描,并且将系数的一维矩阵改变为二维矩阵的操作可被称为扫描或逆扫描。

变换系数:可意为在编码器中执行变换之后产生的系数值。变换系数可意为在解码器中执行了熵解码和反量化中的至少一个之后产生的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或量化的变换系数等级也可落在变换系数的含义内。

量化的等级:意为在编码器中通过对变换系数或残差信号进行量化而产生的值。可选地,量化的等级可意为作为在解码器中经历反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落在量化的等级的含义内。

非零变换系数:意为值不为0的变换系数,或者意为值不为0的变换系数等级。

量化矩阵:意为在执行的量化处理或反量化处理中使用以便提高主观图像质量或客观图像质量的矩阵。量化矩阵也可被称为缩放列表。

量化矩阵系数:意为量化矩阵内的每个元素。量化矩阵系数也可被称为矩阵系数。

默认矩阵:意为在编码器或解码器中被初步定义的预定量化矩阵。

非默认矩阵:意为在编码器或解码器中未被初步定义但由用户用信号发送的量化矩阵。

图1是示出根据被应用了本发明的实施例的编码设备的构造的框图。

编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对所述至少一个图像进行编码。

参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180以及参考画面缓冲器190。

编码设备100可通过使用帧内模式或帧间模式或者是帧内模式和帧间模式两者来对输入画面执行编码。此外,编码设备100可通过对输入画面进行编码来产生比特流,并可输出产生的比特流。产生的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可切换到帧内。可选地,当帧间模式被用作预测模式时,切换器115可切换到帧间模式。这里,帧内模式可意为帧内预测模式,帧间模式可意为帧间预测模式。编码设备100可产生输入图像的输入块的预测块。此外,在产生预测块之后,编码设备100可对输入块和预测块之间的残差进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为当前编码目标的当前块或者可被称为编码目标块。

当预测模式是帧内模式时,帧内预测单元120可使用与当前块相邻的已编码/解码的块的像素值作为参考像素。帧内预测单元120可通过使用参考像素来执行空间预测,或者可通过执行空间预测来产生输入块的预测样点。这里,帧内预测可意为帧之内的预测。

当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像搜索与输入块最匹配的区域,并可通过使用搜索到的区域推导运动矢量。参考图像可被存储在参考画面缓冲器190中。

运动补偿单元112可通过使用运动矢量执行运动补偿来产生预测块。这里,帧间预测可意为帧之间的预测或运动补偿。

当运动矢量的值不为整数时,运动预测单元111和运动补偿单元112可通过对参考画面的部分区域应用插值滤波器来产生预测块。为了对编码单元执行画面间预测或运动补偿,可确定跳过模式、合并模式、高级运动矢量预测(amvp)模式和当前画面参考模式之中的哪种模式被用于相应编码单元中包括的预测单元的运动预测和运动补偿。然后,可根据确定的模式不同地执行画面间预测或运动补偿。

减法器125可通过使用输入块和预测块之间的残差来产生残差块。残差块可被称为残差信号。残差信号可意为原始信号与预测信号之间的差。另外,残差信号可以是通过对原始信号和预测信号之间的差进行变换或量化、或者进行变换和量化而产生的信号。残差块可以是块单元的残差信号。

变换单元130可通过对残差块执行变换来产生变换系数,并可输出产生的变换系数。这里,变换系数可以是通过对残差块执行变换而产生的系数值。当变换跳过模式被应用时,变换单元130可跳过对残差块的变换。

可通过对变换系数或对残差信号应用量化来产生量化的等级。在下文中,在实施例中,量化的等级也可被称为变换系数。

量化单元140可通过根据参数对变换系数或残差信号进行量化来产生量化的等级,并可输出所产生的量化的等级。这里,量化单元140可通过使用量化矩阵来对变换系数进行量化。

熵编码单元150可通过根据概率分布对由量化单元140计算出的值或对在执行编码时计算出的编码参数值执行熵编码来产生比特流,并可输出产生的比特流。熵编码单元150可对图像的像素信息和用于对图像进行解码的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素。

当熵编码被应用时,可按照对具有高生成机会的符号分配较少数量的比特并对具有低生成机会的符号分配较多数量的比特方式来表示符号,从而可减小用于将被编码的符号的比特流的大小。熵编码单元150可使用诸如指数哥伦布、上下文自适应变长编码(cavlc)、上下文自适应二进制算术编码(cabac)等用于熵编码的编码方法。例如,熵编码单元150可通过使用变长编码/码(vlc)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法以及目标符号/二进制位的概率模型,并且可通过使用推导出的二值化方法和上下文模型来执行算术编码。

为了对变换系数等级进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变为一维矢量形式。

编码参数可包括在编码器中编码并用信号传送到解码器的诸如语法元素的信息(标志、索引等)以及在执行编码或解码时被推导出的信息。编码参数可意为在对图像进行编码或解码时所需的信息。例如,编码参数可包括以下项中的至少一个值或组合形式:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、帧内预测模式/方向、参考样点滤波方法、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、帧间预测模式、运动信息、运动矢量、参考画面索引、帧间预测角度、帧间预测指示符、参考画面列表、参考画面、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小、运动矢量的表示精度、变换类型、变换大小、是否使用初次(首次)变换的信息、是否使用二次变换的信息、初次变换索引、二次变换索引、残差信号是否存在的信息、编码块样式、编码块标志(cbf)、量化参数、量化矩阵、是否应用环路内滤波器、环路内滤波器系数、环路内滤波器抽头、环路内滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环内滤波器、自适应环内滤波器系数、自适应环内滤波器抽头、自适应环内滤波器形状/形式、二值化/反二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁通二进制位、变换系数、变换系数等级、变换系数等级扫描方法、图像显示/输出顺序、条带识别信息、条带类型、条带分区信息、并行块识别信息、并行块类型、并行块分区信息、画面类型、比特深度、以及亮度信号或色度信号的信息。

这里,用信号传送标志或索引可意为相应标志或索引被编码器熵编码并包括在比特流中,并且可意为相应标志或索引被解码器从比特流熵解码。

当编码设备100通过帧间预测执行编码时,编码的当前图像可被用作针对被随后处理的另一图像的参考图像。因此,编码设备100可对编码的当前图像进行重建或解码,或者可将重建或解码的图像存储为参考图像。

量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可由加法器175将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加,可产生重建块。这里,经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数可意为被执行了反量化和逆变换中的至少一个的系数,并且可意为重建残差块。

重建块可通过滤波器单元180。滤波器单元180可向重建块或重建图像应用去块滤波器、样点自适应偏移(sao)以及自适应环路滤波器(alf)中的至少一个。滤波器单元180可被称为环内滤波器。

去块滤波器可去除在块之间的边界处产生的块失真。为了确定是否应用去块滤波器,可基于在包括在块中的若干行或列中所包括的像素来确定是否对当前块应用去块滤波器。当去块滤波器被应用于块时,可根据所需的去块滤波强度来应用另一滤波器。

为了对编码误差进行补偿,可通过使用样点自适应偏移将适当偏移值添加到像素值。样点自适应偏移可根据像素单位对经过去块的图像与原始图像的偏移进行校正。可使用考虑关于每个像素的边缘信息来应用偏移的方法,或使用以下方法:将图像的像素分区为预定数量的区域,确定被应用偏移的区域,并对所确定区域应用偏移。

自适应环路滤波器可基于滤波后的重建图像与原始图像之间的比较结果执行滤波。图像中包括的像素可被分区为预定组,将被应用于每个组的滤波器可被确定,并且不同的滤波可针对每个组被执行。关于是否应用alf的信息可按照编码单元(cu)被用信号发送,并且将被应用于每个块的alf的形状和系数可变化。

经过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。图2是示出根据实施例的被应用了本发明的解码设备的构造的框图。

解码设备200可以是解码器、视频解码设备或图像解码设备。

参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器255、滤波器单元260以及参考画面缓冲器270。

解码设备200可接收从编码设备100输出的比特流。解码设备200可接收在计算机可读记录介质中存储的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可产生通过进行解码而产生的重建图像或者解码图像,并可输出重建图像或解码图像。

当在解码时使用的预测模式是帧内模式时,切换器可被切换到帧内。可选地,当在解码时使用的预测模式是帧间模式时,切换器可被切换到帧间模式。

解码设备200可通过对输入的比特流进行解码来获得重建残差块,并可产生预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来产生成为解码目标的重建块。解码目标块可被称为当前块。

熵解码单元210可通过根据概率分布对比特流进行熵解码来产生符号。产生的符号可包括量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆处理。

为了对变换系数等级进行解码,熵解码单元210可通过使用变换系数扫描方法将一维矢量形式的系数改变为二维块形式。

量化的等级可在反量化单元220中被反量化,或者可在逆变换单元230中被逆变换。量化的等级可以是进行反量化或逆变换或者进行反量化和逆变换两者的结果,并且可被产生为重建残差块。这里,反量化单元220可对量化的等级应用量化矩阵。

当帧内模式被使用时,帧内预测单元240可通过执行空间预测来产生预测块,其中,空间预测使用与解码目标块相邻的已经被解码的块的像素值。

当帧间模式被使用时,运动补偿单元250可通过执行运动补偿来产生预测块,其中,运动补偿使用存储在参考画面缓冲器270中的参考图像以及运动矢量。

加法器255可通过将重建残差块与预测块相加来产生重建块。滤波器单元260可对重建块或重建图像应用去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中,并可在执行帧间预测时被使用。

图3是示意性地示出当对图像进行编码和解码时的图像的分区结构的示图。图3示意性地示出将单个单元分区为多个下级单元的示例。

为了对图像进行有效分区,当进行编码和解码时,可使用编码单元(cu)。编码单元可被用作在对图像进行编码/解码时的基本单元。另外,编码单元可被用作在对图像进行编码/解码时用于对帧内模式和帧间模式进行区分的单元。编码单元可以是用于对变换系数进行预测、变换、量化、逆变换、反量化或编码/解码处理的基本单元。

参照图3,图像300按照最大编码单元(lcu)被顺序地分区,并且lcu单元被确定为分区结构。这里,lcu可以按照与编码树单元(ctu)相同的含义被使用。单元分区可意为对与单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或程度或者次数和程度两者。可基于树结构在与深度信息相关联的层中对单个单元进行分区。每个被分区出的下级单元可具有深度信息。深度信息可以是表示cu的尺寸的信息,并且可被存储在每个cu中。

分区结构可意为在lcu310中的编码单元(cu)的分布。可根据是否将单个cu分区为多个(等于或大于2的正整数,包括2、4、8、16等)cu来确定这样的分布。通过进行分区而产生的cu的水平尺寸和垂直尺寸可分别是cu在进行分区之前的水平尺寸和垂直尺寸的一半,或者根据进行分区的次数可分别具有比分区之前的水平尺寸和垂直尺寸小的尺寸。cu可被递归地分区为多个cu。可递归地对cu执行分区直到预定义深度或预定义尺寸为止。例如,lcu的深度可以是0,并且最小编码单元(scu)的深度可以是预定义的最大深度。这里,lcu可以是具有最大编码单元尺寸的编码单元,scu可以是具有如上所述的最小编码单元尺寸的编码单元。从lcu310开始进行分区,当cu的水平尺寸或垂直尺寸或者水平尺寸和垂直尺寸两者通过进行分区而减小时,cu深度增加1。

另外,可通过使用cu的分区信息来表示关于cu是否被分区的信息。分区信息可以是1比特信息。除了scu之外的所有cu可包括分区信息。例如,当分区信息的值是第一值时,cu可不被分区,当分区信息的值是第二值时,cu可被分区。

参照图3,具有深度0的lcu可以是64×64的块。0可以是最小深度。具有深度3的scu可以是8×8的块。3可以是最大深度。32×32的块和16×16的块的cu可分别被表示为深度1和深度2。

例如,当单个编码单元被分区为四个编码单元时,分区出的四个编码单元的水平尺寸和垂直尺寸可以是cu在被分区之前的水平尺寸和垂直尺寸的一半大小。在一个实施例中,当具有32×32尺寸的编码单元被分区为四个编码单元时,分区出的四个编码单元中的每一个可具有16×16尺寸。当单个编码单元被分区为四个编码单元时,可以称编码单元可被分区为四叉树形式。

例如,当单个编码单元被分区为两个编码单元时,所述两个编码单元的水平尺寸或垂直尺寸可以是编码单元在被分区之前的水平尺寸或垂直尺寸的一半。例如,当具有32×32尺寸的编码单元按照垂直方向被分区时,分区出的两个编码单元中的每一个可具有16×32的尺寸。当单个编码单元被分区为两个编码单元时,可以称编码单元按照二叉树形式被分区。图3的lcu320是被应用四叉树形式的分区和二叉树形式的分区两者的lcu的示例。

图4是示出画面间预测处理的实施例的示图。

在图4中,矩形可表示画面。在图4中,箭头指示预测方向。画面可根据画面的编码类型被分类为帧内画面(i画面)、预测画面(p画面)和双向预测画面(b画面)。

i画面可通过帧内预测被编码,而不需要进行画面间预测。p画面可通过使用关于当前块存在于一个方向(即,前向或后向)上的参考画面经由画面间预测而被编码。b画面可通过使用关于当前块被预设在两个方向(即,前向和后向)的参考画面经由画面间预测而被编码。当画面间预测被使用时,编码器可执行画面间预测或运动补偿,解码器可执行相应的运动补偿。

在下文中,将详细描述画面间预测的实施例。

可使用参考画面和运动信息来执行画面间预测或运动补偿。

可在画面间预测期间由编码设备100和解码设备200中的每一个推导当前块的运动信息。可通过使用重建邻近块的运动信息、同位置块(也称为col块或同位块)和/或与同位块相邻的块的运动信息来推导当前块的运动信息。同位块可意为在先前重建的同位置画面(也称为col画面或同位画面)内在空间上与当前块位于相同位置的块。同位画面可以是在参考画面列表中包括的一个或更多个参考画面之中的一个画面。

推导当前块的运动信息的方法可根据当前块的预测模式而变化。例如,作为用于画面间预测的预测模式,可存在amvp模式、合并模式、跳过模式、当前画面参考模式等。合并模式可被称为运动合并模式。

例如,当amvp被用作预测模式时,可将重建邻近块的运动矢量、同位块的运动矢量、与同位块相邻的块的运动矢量、以及运动矢量(0,0)中的至少一个确定为用于当前块的运动矢量候选,并且通过使用运动矢量候选产生运动矢量候选列表。可通过使用产生的运动矢量候选列表推导当前块的运动矢量候选。可基于推导出的运动矢量候选来确定当前块的运动信息。同位置块的运动矢量或者与同位置块相邻的块的运动矢量可被称为时间运动矢量候选,重建邻近块的运动矢量可被称为空间运动矢量候选。

编码设备100可计算当前块的运动矢量与运动矢量候选之间的运动矢量差(mvd),并且可对运动矢量差(mvd)执行熵编码。另外,编码设备100可对运动矢量候选索引执行熵编码,并产生比特流。运动矢量候选索引可指示在运动矢量候选列表中包括的运动矢量候选之中的最佳运动矢量候选。解码设备可对包括在比特流中的运动矢量候选索引执行熵解码,并且可通过使用熵解码的运动矢量候选索引在运动矢量候选列表中包括的运动矢量候选之中选择解码目标块的运动矢量候选。另外,解码设备200可将熵解码的mvd与通过熵解码提取的运动矢量候选相加,从而推导解码目标块的运动矢量。

比特流可包括指示参考画面的参考画面索引。参考画面索引可被编码设备100熵编码,然后作为比特流被用信号传送到解码设备200。解码设备200可基于推导出的运动矢量和参考画面索引信息产生解码目标块的预测块。

推导当前块的运动信息的方法的另一示例可以是合并模式。合并模式可意为合并多个块的运动的方法。合并模式可意为从邻近块的运动信息推导当前块的运动信息的模式。当合并模式被应用时,可使用重建邻近块的运动信息和/或同位置块的运动信息来产生合并候选列表。运动信息可包括运动矢量、参考画面索引和画面间预测指示符中的至少一个。预测指示符可指示单向预测(l0预测或l1预测)或双向预测(l0预测和l1预测)。

合并候选列表可以是存储的运动信息的列表。在合并候选列表中包括的运动信息可以是零合并候选和新运动信息中的至少一个,其中,所述新运动信息是与当前块相邻的一个邻近块的运动信息(空间合并候选)、当前块的包括在参考画面中的同位置块的运动信息(时间合并候选)、以及在合并候选列表中存在的运动信息的组合。

编码设备100可通过对合并标志和合并索引中的至少一个执行熵编码来产生比特流,并且可将比特流用信号传送到解码设备200。合并标志可以是指示是否针对每个块执行合并模式的信息,合并索引可以是指示当前块的邻近块之中的哪个邻近块是合并目标块的信息。例如,当前块的邻近块可包括在当前块左侧的左侧邻近块、位于当前块上方的上方邻近块、以及与当前块在时间上相邻的时间邻近块。

跳过模式可以是将邻近块的运动信息按原样应用于当前块的模式。当跳过模式被应用时,编码设备100可对哪个块的运动信息将被用作当前块的运动信息的事实的信息执行熵编码以产生比特流,并且可将该比特流用信号传送到解码设备200。编码设备100可不将关于运动矢量差信息、编码块标志和变换系数等级中的至少任意一个的语法元素用信号传送到解码设备200。

当前画面参考模式可意为在当前画面内的当前块所属于的先前重建区域被用于预测的预测模式。这里,矢量可被用于指定所述先前重建区域。可通过使用当前块的参考画面索引来对指示当前块是否将以当前画面参考模式被编码的信息进行编码。指示当前块是否是以当前画面参考模式编码的块的标志或索引可被用信号传送,并且可基于当前块的参考画面索引被推导。在当前块以当前画面参考模式被编码的情况下,当前画面可被添加到用于当前块的参考画面列表以便位于参考画面列表中的固定位置或随机位置。所述固定位置可以是例如列表中的由参考画面索引0指示的位置或者最后位置。在当前画面被添加到参考画面列表以便位于所述随机位置时,可用信号传送指示所述随机位置的参考画面索引。

基于以上描述,下面将详细描述根据本发明的实施例的图像编码方法和图像解码方法。

图5是示出根据本发明的一个实施例的图像编码方法的流程图,图6是示出根据本发明的一个实施例的图像解码方法的流程图。

参照图5,编码设备可推导运动矢量候选(步骤s501),并且可基于推导出的运动矢量候选产生运动矢量候选列表(步骤s502)。在运动矢量候选列表被产生之后,可基于产生的运动矢量候选列表确定运动矢量(步骤s503),并且可基于确定的运动矢量执行运动补偿(步骤s504)。此后,编码设备可对与运动补偿相关联的信息进行编码(步骤s505)。

参照图6,解码设备可对从编码设备接收到的与运动补偿相关联的信息执行熵解码(步骤s601),并且可推导运动矢量候选(步骤s602)。解码设备可基于推导出的运动矢量候选产生运动矢量候选列表(步骤s603),并使用产生的运动矢量候选列表确定运动矢量(步骤s604)。此后,解码设备可通过使用确定的运动矢量执行运动补偿(步骤s605)。

图7是示出根据本发明的另一实施例的图像编码方法的流程图,图8是示出根据本发明的另一实施例的图像解码方法的流程图。

参照图7,编码设备可推导合并候选(步骤s701),并基于推导出的合并候选产生合并候选列表。在合并候选列表被产生之后,编码设备可使用产生的合并候选列表确定运动信息(步骤s702),并且可使用确定的运动信息对当前块执行运动补偿(步骤s703)。此后,编码设备可对与运动补偿相关联的信息执行熵编码(步骤s704)。

参照图8,解码设备可对从编码设备接收的与运动补偿相关联的信息执行熵解码(s801),推导合并候选(s802),并基于推导出的合并候选产生合并候选列表。在合并候选列表被产生之后,解码设备可通过使用产生的合并候选列表确定当前块的运动信息(s803)。此后,解码设备可使用运动信息执行运动补偿(s804)。

图5和图6示出了图4中示出的amvp被应用的示例,图7和图8示出了图4中示出的合并模式被应用的示例。

在下文中,将描述图5和图6中的每个步骤,然后将描述图7和图8中的每个步骤。然而,将共同地描述与s504、s605、s703和s804相应的运动补偿步骤以及与s505、s601、s704和s801相应的熵编码/解码步骤。

在下文中,下面将详细描述图5和图6中的每个步骤。

首先,将详细描述推导运动矢量候选的步骤(s501、s602)。

当前块的运动矢量候选可包括空间运动矢量候选和时间运动矢量候选之一,或者包括空间运动矢量候选和时间运动矢量候选两者。

可从与当前块相邻的重建块推导当前块的空间运动矢量。例如,与当前块相邻的重建块的运动矢量可被确定为当前块的空间运动矢量候选。

图9是示出推导当前块的空间运动矢量候选的示例的示图。

参照图9,可从与当前块x相邻的邻近块推导当前块的空间运动矢量候选。与当前块x相邻的邻近块包括与当前块的上端相邻的块b1、与当前块的左端相邻的块a1、与当前块的右上角相邻的块b0、与当前块的左上角相邻的块b2、以及与当前块的左下角相邻的块a0中的至少一个。与当前块相邻的邻近块可具有正方形形状或非正方形形状。当与当前块相邻的多个邻近块中的一个邻近块具有运动矢量时,可将该邻近块的运动矢量确定为当前块的空间运动矢量候选。可基于对邻近块是否存在的确定或者对邻近块是否已通过帧间预测处理被编码的确定,来确定邻近块是否具有运动矢量或者邻近块的运动矢量是否能够被用作当前块的空间运动矢量候选。可按照预定顺序执行对特定邻近块是否具有运动矢量的确定或者对邻近块的运动矢量是否能够被用作当前块的空间运动矢量候选的确定。例如,如图9中所示,可按照块a0、a1、b0、b1和b2的顺序来执行运动矢量的可用性确定。

当当前块的参考画面和具有运动矢量的邻近块的参考画面彼此不同时,邻近块的运动矢量被缩放,然后缩放后的运动矢量可被用作当前块的空间运动矢量候选。可基于当前画面与当前块的参考画面之间的距离以及当前画面与邻近块的参考画面之间的距离中的至少任意一个距离来执行运动矢量缩放。这里,可通过根据当前画面和当前块的参考画面之间的距离与当前画面和邻近块的参考画面之间的距离的比率对邻近块的运动矢量进行缩放来推导当前块的空间运动矢量候选。

然而,当当前块的参考画面索引和具有运动矢量的邻近块的参考画面索引不同时,邻近块的缩放后的运动矢量可被确定为当前块的空间运动矢量候选。即使在这种情况下,仍可基于当前画面和当前块的参考画面之间的距离以及当前画面和邻近块的参考画面之间的距离中的至少一个来执行缩放。

关于缩放,可基于由具有预定义值的参考画面索引所指示的参考画面对邻近块的运动矢量进行缩放,并且可将缩放后的运动矢量确定为当前块的空间运动矢量候选。所述预定义值可以是零或正整数。例如,可通过基于当前画面和当前块的由具有预定义值的参考画面索引所指示的参考画面之间的距离与当前画面和邻近块的具有预定义值的参考画面之间的距离的比率对邻近块的运动矢量进行缩放来推导当前块的空间运动矢量候选。

可选地,可基于当前块的编码参数中的至少一个来推导当前块的空间运动矢量候选。

可从包括在当前画面的同位画面中的重建块推导当前块的时间运动矢量候选。同位画面是在当前画面之前编码/解码的画面,并且可在时间顺序上与当前画面不同。

图10是示出推导当前块的时间运动矢量候选的示例的示图。

参照图10,可从包括当前画面的同位画面(也称为同位置画面)内与当前块x在空间上位于相同位置的块的外部位置的块推导当前块的时间运动矢量候选,或者从包括与当前块x在空间上位于相同位置的块的内部位置的块推导当前块的时间运动矢量候选。这里,时间运动矢量候选可意为当前块的同位块的运动矢量。例如,可从与在空间上与当前块x位于相同位置的块c的左下角相邻的块h推导当前块x的时间运动矢量候选,或者从包括块c的中间位置的块c3推导当前块x的时间运动矢量候选。用于推导当前块的时间运动矢量候选的块h、块c3等被称为同位置块。

可选地,可基于编码参数中的至少一个来推导时间运动矢量候选、同位画面、同位块、预测列表利用标志、以及参考画面索引中的至少一个。

当包括当前块的当前画面与当前块的参考画面之间的距离不同于包括同位块的同位画面与同位块的参考画面之间的距离时,可通过对同位块的运动矢量进行缩放来获得当前块的时间运动矢量候选。这里,可基于当前画面与当前块的参考画面之间的距离以及同位画面与同位块的参考画面之间的距离中的至少一个来执行缩放。例如,可通过根据当前画面和当前块的参考画面之间的距离与同位画面和同位块的参考画面之间的距离的比率对同位块的运动矢量进行缩放来推导当前块的时间运动矢量候选。

下面,将描述基于推导出的运动矢量候选产生运动矢量候选列表的步骤(s502、s503)。

产生运动矢量候选列表的步骤可包括将运动矢量候选添加到运动矢量候选列表或者从运动矢量候选列表去除运动矢量候选的处理、以及将组合运动矢量候选添加到运动矢量候选列表的处理。

首先,将描述将推导出的运动矢量候选添加到运动矢量候选列表或者从运动矢量候选列表去除推导出的运动矢量候选的处理。编码设备和解码设备可按照运动矢量候选被推导的顺序将推导出的运动矢量候选添加到运动矢量候选列表。

假设运动矢量候选列表mvplistlx可意为与参考画面列表l0、l1、l2和l3相应的运动矢量候选列表。也就是说,可用mvplistl0来表示与参考画面列表l0相应的运动矢量候选列表。

除了空间运动矢量候选和时间运动矢量候选之外,还可以将具有预定值的运动矢量添加到运动矢量候选列表。例如,当运动矢量候选列表中的运动矢量候选的数量小于能够包括在运动矢量候选列表中的运动矢量候选的最大数量时,可将具有值0的运动矢量添加到运动矢量候选列表。

接下来,将描述将组合运动矢量候选添加到运动矢量候选列表的处理。

当运动矢量候选列表中的运动矢量候选的数量小于能够包括在运动矢量候选列表中的运动矢量候选的最大数量时,运动矢量候选列表中的一个或更多个运动矢量候选被组合以产生一个或更多个组合运动矢量候选,并且产生的组合运动矢量候选可被添加到运动矢量候选列表。例如,在运动矢量候选列表中包括的空间运动矢量候选、时间运动矢量候选和零运动矢量候选中的至少一个或更多个被用于产生组合运动矢量候选,并且产生的组合运动矢量候选可被添加到运动矢量候选列表。

可选地,可基于编码参数中的至少一个来产生组合运动矢量候选,并且可将基于编码参数中的至少一个所产生的组合运动矢量候选添加到运动矢量候选列表。

接下来,将在下面描述从运动矢量候选列表选择当前块的预测运动矢量的步骤(s503、s604)。

在运动矢量候选列表中包括的运动矢量候选之中,由运动矢量候选索引所指示的运动矢量候选可被确定为当前块的预测运动矢量。

编码设备可计算当前块的预测运动矢量与运动矢量之间的差,从而产生运动矢量差。解码设备可通过将预测运动矢量与运动矢量差相加来产生当前块的运动矢量。

稍后将共同描述在图5和图6中示出的执行运动补偿的步骤(s504、s605)和对与运动补偿相关联的信息进行熵编码/解码的步骤(s505、s601)、以及在图7和图8中示出的执行运动补偿的步骤(s703、s804)和熵编码/解码的步骤(s704、s801)。

下面,将详细描述图7和图8中示出的每个步骤。

首先,将描述推导合并候选的步骤(s701、s802)。

当前块的合并候选可包括空间合并候选、时间合并候选和附加合并候选中的至少一个。这里,表述“推导空间合并候选”意为推导空间合并候选以及将推导出的合并候选添加到合并候选列表的处理。

参照图9,可从与当前块x相邻的邻近块推导当前块的空间合并候选。与当前块x相邻的邻近块可包括与当前块的上端相邻的块b1、与当前块的左端相邻的块a1、与当前块的右上角相邻的块b0、与当前块的左上角相邻的块b2、以及与当前块的左下角相邻的块a0中的至少一个。

为了推导当前块的空间合并候选,确定与当前块相邻的每个邻近块是否可用于对当前块的空间合并候选的推导。可按照预定优先级顺序针对邻近块进行这样的确定。例如,在图9的示例中,可按照块a1、b1、b0、a0和b2的顺序来确定空间合并候选的可用性。基于可用性确定顺序所确定的空间合并候选可被顺序地添加到当前块的合并候选列表。

图11是示出将空间合并候选添加到合并候选列表的处理的示例的示图。

参照图11,四个空间合并候选从四个邻近块a1、b0、a0和b2被推导,并且推导出的空间合并候选可被顺序地添加到合并候选列表。

可选地,可基于编码参数中的至少一个来推导空间合并候选。

这里,空间合并候选的运动信息可包括三条或更多条运动信息,其中,所述三条或更多条运动信息除了包括l0运动信息和l1运动信息之外,还包括l2运动信息和l3运动信息。这里,可存在至少一个参考画面列表,例如包括l0、l1、l2和l3。

接下来,将描述推导当前块的时间合并候选的方法。

可从当前画面的同位画面中包括的重建块推导当前块的时间合并候选。同位画面可以是在当前画面之前编码/解码的画面,并且可在时间顺序上与当前画面不同。

表述“推导时间合并候选”意为推导时间合并候选并将推导出的时间合并候选添加到合并候选列表的处理。

参照图10,可从包括当前画面的同位画面(也称为同位置画面)中与当前块x在空间上位于相同位置的块的外部的位置的块推导当前块的时间合并候选,或者可从包括当前画面的同位画面中与当前块x在空间上位于相同位置的块内部的位置的块推导当前块的时间合并候选。术语“时间合并候选”可意为同位块的运动信息。例如,可从与在空间上与当前块x位于相同位置的块c的左下角相邻的块h推导当前块x的时间合并候选,或者从包括块c的中间位置的块c3推导当前块x的时间合并候选。用于推导当前块的时间合并候选的块h、c3等被称为同位块(也称为同位置块)。

当能够从包括位于块c外部的位置的块h推导当前块的时间合并候选时,块h被设置为当前块的同位块。在这种情况下,可基于块h的运动信息来推导当前块的时间合并候选。相反,当不能从块h推导当前块的时间合并候选时,包括位于块c内部的位置的块c3可被设置为当前块的同位块。在这种情况下,可基于块c3的运动矢量来推导当前块的时间合并候选。当既不能从块h也不能从块c3推导当前块的任何时间合并候选(例如,块h和块c3两者都是帧内编码块)时,可能完全不能推导出当前块的时间合并候选,或者可从除了块h和c3之外的块推导当前块的时间合并候选。

可选地,例如,可从同位画面内包括的多个块推导当前块的多个时间合并候选。也就是说,可从块h、c3等推导当前块的多个时间候选。

图12是示出将时间合并候选添加到合并候选列表的处理的示例的示图。

参照图12,当一个时间合并候选从位于位置h1的同位块被推导出时,推导出的时间合并候选可被添加到合并候选列表。

当包括当前块的当前画面与当前块的参考画面之间的距离不同于包括同位块的同位画面与同位块的参考画面之间的距离时,可通过对同位块的运动矢量进行缩放来获得当前块的时间合并候选的运动矢量。这里,可基于当前画面与当前块的参考画面之间的距离以及同位画面与同位块的参考画面之间的距离中的至少一个距离来执行对运动矢量的缩放。例如,可通过根据当前画面和当前块的参考画面之间的距离与同位画面和同位块的参考画面之间的距离的比率对同位块的运动矢量进行缩放来推导当前块的时间合并候选的运动矢量。

另外,可基于当前块、邻近块或同位块的编码参数中的至少一个来推导时间合并候选、同位画面、同位块、预测列表利用标志和参考画面索引中的至少一个。

可通过产生空间合并候选和时间合并候选中的至少一个合并候选并按照推导的顺序将推导出的合并候选顺序地添加到合并候选列表来产生合并候选列表。

接下来,将描述推导当前块的附加合并候选的方法。

术语“附加合并候选”可意为修改后的空间合并候选、修改后的时间合并候选、组合合并候选和具有预定运动信息值的预定合并候选中的至少一个。这里,表述“推导附加合并候选”可意为推导附加合并候选并将推导出的附加合并候选添加到合并候选列表的处理。

修改后的空间合并候选可意为通过对推导出的空间合并候选的运动信息中的至少一项进行修改而获得的合并候选。

修改后的时间合并候选可意为通过对推导出的时间合并候选的运动信息中的至少一项进行修改而获得的修改后的合并候选。

组合合并候选可意为通过对空间合并候选、时间合并候选、修改后的空间合并候选、修改后的时间合并候选、组合合并候选、以及具有预定运动信息值的预定合并候选中的至少一个的运动信息进行组合而获得的合并候选,其中,空间合并候选、时间合并候选、修改后的空间合并候选、修改后的时间合并候选、组合合并候选、以及具有预定运动信息值的预定合并候选全部包括在合并候选列表中。

可选地,组合合并候选可意为通过对以下合并候选中的至少一个的运动信息进行组合而推导出的合并候选:未包括在合并候选列表中但从能够推导出空间合并候选和时间合并候选中的至少一个的块推导出的空间合并候选和时间合并候选;基于从所述块推导出的空间合并候选和时间合并候选所推导出的修改后的空间合并候选和修改后的时间合并候选;组合合并候选;以及具有预定运动信息值的预定合并候选。

可选地,可使用通过在解码器中对比特流执行熵解码而获得的运动信息来推导组合合并候选。在这种情况下,用于推导组合合并候选的运动信息可在编码器中被熵编码为比特流。

组合合并候选可意为组合双向合并候选。组合双向合并候选是使用双向预测的合并候选,并且组合双向合并候选可以是具有l0运动信息和l1运动信息的合并候选。

具有预定运动信息值的合并候选可以是具有运动矢量(0,0)的零合并候选。具有预定运动信息值的合并候选可以被设置使得该合并候选在编码设备和解码设备中具有相同的值。

可基于当前块、邻近块或同位块的编码参数中的至少一个来推导或产生修改后的空间合并候选、修改后的时间合并候选、组合合并候选和具有预定运动信息值的合并候选中的至少一个。另外,可基于当前块、邻近块或同位块的编码参数中的至少一个将修改后的空间合并候选、修改后的时间合并候选、组合合并候选和具有预定运动信息值的合并候选中的至少一个添加到合并候选列表。

合并候选列表的大小可基于当前块、邻近块或同位块的编码参数被确定,并且可根据编码参数而变化。

接下来,将描述使用产生的合并候选列表确定当前块的运动信息的步骤(s702、s803)。

编码器可通过运动估计从合并候选列表选择将用于当前块的运动补偿的合并候选,并且可将指示确定的合并候选的合并候选索引merge_idx编码到比特流。

为了产生当前块的预测块,编码器可通过使用合并候选索引从合并候选列表选择合并候选,并确定当前块的运动信息。然后,编码器可基于确定的运动信息执行运动补偿,从而产生当前块的预测块。

解码器可对接收到的比特流中的合并候选索引进行解码,并确定包括在合并候选列表中的由合并候选索引指示的合并候选。确定的合并候选可被确定为当前块的运动信息。确定的运动信息被用于当前块的运动补偿。这里,术语“运动补偿”可与帧间预测具有相同的含义。

接下来,将描述使用运动矢量或运动信息执行运动补偿的步骤(s504、s605、s703、s804)。

编码设备和解码设备可通过使用预测运动矢量和运动矢量差来计算当前块的运动矢量。在计算出运动矢量之后,编码设备和解码设备可使用计算出的运动矢量执行帧间预测或运动补偿(s504、s605)。

编码设备和解码设备可使用确定的运动信息执行帧间预测或运动补偿(s703、s804)。这里,当前块可具有确定的合并候选的运动信息。

根据当前块的预测方向,当前块可具有一(最小值)个至n(最大值)个运动矢量。可使用所述一个至n个运动矢量来产生一(最小值)个至n(最大值)个预测块,并且可在产生的预测块之中选择最终预测块。

例如,当当前块具有一个运动矢量时,将使用该运动矢量(或运动信息)所产生的预测块确定为当前块的最终预测块。

此外,当当前块具有多个运动矢量(或多条运动信息)时,使用所述多个运动矢量(或所述多条运动信息)来产生多个预测块,并且基于所述多个预测块的加权和来确定当前块的最终预测块。分别包括由多个运动矢量(或多条运动信息)分别指示的多个预测块的多个参考画面可在不同的参考画面列表中或者在一个参考画面列表中被列出。

例如,可基于空间运动矢量候选、时间运动矢量候选、具有预定值的运动矢量、以及组合运动矢量候选中的至少一个来产生当前块的多个预测块,并且随后可基于该多个预测块的加权和来确定当前块的最终预测块。

可选地,例如,可基于由预设运动矢量候选索引所指示的运动矢量候选来产生当前块的多个预测块,然后可基于该多个预测块的加权和来确定当前块的最终预测块。另外,可基于由预定运动矢量候选索引范围内的索引所指示的运动矢量候选来产生多个预测块,然后可基于该多个预测块的加权和来确定当前块的最终预测块。

用于各个预测块的权重因子可以相等地是1/n(这里,n是产生的预测块的数量)。例如,当两个预测块被产生时,用于每个预测块的权重因子是1/2。类似地,当三个预测块被产生时,用于每个预测块的权重因子是1/3。当四个预测块被产生时,用于每个预测块的权重因子可以是1/4。可选地,可按照将不同的权重因子应用于各个预测块的方式来确定当前块的最终预测块。

用于预测块的权重因子可以不是固定的,而是可变的。用于预测块的权重因子可不相等,而是不同的。例如,当两个预测块被产生时,用于所述两个预测块的权重因子可相等,如(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-1/4,5/4)。

为了应用可变的权重因子,可通过比特流用信号传送用于当前块的一条或更多条权重因子信息。权重因子信息可逐预测块地被用信号传送,或者可逐参考画面地被用信号传送。可选地,多个预测块可共享一个权重因子。

编码设备和解码设备可基于预测块列表利用标志来确定是否使用预测运动矢量(或者预测运动信息)。例如,对于每个参考画面列表,当预测块列表利用标志具有第一值一(1)时,编码设备和解码设备可使用当前块的预测运动矢量对当前块执行帧间预测或运动补偿。然而,当预测块列表利用标志具有第二值零(0)时,编码设备和解码设备可不使用当前块的预测运动矢量对当前块执行帧间预测或运动补偿。预测块列表利用标志的第一值和第二值可相反地被分别设置为0和1。表达式3至表达式5是当当前块的帧间预测指示符是pred_bi、pred_tri或pred_quad时并且当每个参考画面列表的预测方向是单向时,产生当前块的最终预测块的方法的示例。

[表达式1]

p_bi=(wf_lo*p_lo+offset_lo+wf_l1*p_l1+offset_l1+rf)>>1

[表达式2]

p_tri=(wf_lo*p_lo+offset_lo+wf_l1*p_l1+offset_l1+wf_l2*p_l2+offset_l2+rf)/3

[表达式3]

p_quad=(wf_l0*p_l0+offset_l0+wf_l1*p_l1+offset_l1+wf_l2*p_l2+offset_l2+wf_l3*p_l3+offset_l3+rf)>>2

在表达式1至表达式3中,p_bi、p_tri和p_quad中的每一个表示当前块的最终预测块,lx(x=0,1,2,3)表示参考画面列表。wf_lx表示使用lx参考画面列表所产生的预测块的权重因子。offset_lx表示用于使用lx参考画面列表所产生的预测块的偏移值。p_lx表示当前块的使用lx参考画面列表的运动矢量(或运动信息)所产生的预测块。rf意为舍入因子,并且它可被设置为0、正整数或负整数。lx参考画面列表可包括以下参考画面中的至少一个:长期参考画面、未经过去过滤波器的参考画面、未经过样点自适应偏移的参考画面、未经过自适应环路滤波器的参考画面、仅经过去块滤波器和自适应偏移的参考画面、仅经过去块滤波器和自适应环路滤波器的参考画面、经过样点自适应偏移和自适应环路滤波器的参考画面、以及经过去块滤波器、样点自适应偏移和自适应环路滤波器全部的参考画面。在这种情况下,lx参考画面列表可以是l2参考画面列表和l3参考画面列表中的至少任意一个。

即使针对预定参考画面列表存在多个预测方向,也可基于预测块的加权和来获得当前块的最终预测块。在这种情况下,使用一个参考画面列表所推导出的多个预测块的权重因子可相等,或者可彼此不同。

多个预测块的至少权重因子wf_lx或偏移offset_lx可以是将被熵编码/解码的编码参数。可选地,例如,可从与当前块相邻的先前编码/解码的邻近块推导权重因子和偏移。这里,与当前块相邻的邻近块可包括用于推导当前块的空间运动矢量候选的块以及用于推导当前块的时间运动矢量候选的块中的至少一个。

进一步可选地,例如,可基于当前画面的显示顺序(画面顺序计数(poc))和每一个参考画面的poc来确定权重因子和偏移。在这种情况下,当当前画面与参考画面之间的距离增加时,权重因子或偏移的值可减小。也就是说,当当前画面和参考画面彼此接近时,可将更大的值设置为权重因子或偏移。例如,当当前画面的poc与l0参考画面的poc之间的距离是2时,可将应用于使用l0参考画面而产生的预测块的权重因子的值设置为1/3。同时,当当前画面的poc与l0参考画面的poc之间的差是1时,可将应用于使用l0参考画面而产生的预测块的权重因子的值设置为2/3。如上所述,权重因子或偏移可与当前画面的显示顺序(poc)和参考画面的显示顺序(poc)之间的差成反比。可选地,权重因子或偏移可与当前画面的显示顺序(poc)和参考画面的显示顺序(poc)之间的差成正比。

可选地,例如,可基于至少一个编码参数对权重因子和偏移中的至少一个进行熵编码/解码。另外,可基于至少一个编码参数计算预测块的加权和。

多个预测块的加权和可仅被应用于预测块的部分区域。所述部分区域可以是与每个预测块的边界相邻的边界区域。为了如上所述将加权和仅应用于所述部分区域,可在每个预测块中逐子块地计算加权和。

在具有由区域信息指示的块尺寸的块中,可通过使用相同的预测块或相同的最终预测块针对比所述块小的子块执行帧间预测或运动补偿。

在具有由区域信息指示的块深度的块中,可通过使用相同的预测块或相同的最终预测块针对具有比所述块的深度深的块深度的子块执行帧间预测或运动补偿。

另外,当通过运动矢量预测计算预测块的加权和时,可使用在运动矢量候选列表中包括的运动矢量候选中的至少一个来计算该加权和,并且可将计算结果用作当前块的最终预测块。

例如,可仅使用空间运动矢量候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可使用空间运动矢量候选和时间运动矢量候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可仅使用组合运动矢量候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可仅使用由特定索引指示的运动矢量候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可仅使用由预定索引范围内的索引所指示的运动矢量候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

当使用合并模式计算预测块的加权和时,可使用合并候选列表中包括的合并候选之中的至少一个合并候选来计算所述加权和,并且可将计算结果用作当前块的最终预测块。

例如,可仅使用空间合并候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可使用空间合并候选和时间合并候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可仅使用组合合并候选来产生预测块,可产生预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可仅使用由特定索引指示的合并候选来产生预测块,可产生预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

例如,可仅使用由预定索引范围内的索引所指示的合并候选来产生预测块,可计算预测块的加权和,并且可将计算出的加权和用作当前块的最终预测块。

在编码器和解码器中,可使用当前块的运动矢量或运动信息来执行运动补偿。此时,可使用至少一个预测块来确定作为运动补偿的结果的最终预测块。这里,当前块可意为当前编码块和当前预测块中的至少一个。

可通过对当前块的边界区域执行重叠块运动补偿来产生当前块的最终预测块。

当前块的边界区域可以是位于当前块内且与当前块和当前块的邻近块之间的边界相邻的区域。当前块的边界区域可包括上边界区域、左边界区域、下边界区域、右边界区域、右上角区域、右下角区域、左上角区域和左下角区域中的至少一个。当前块的边界区域可以是与当前块的预测块的部分相应的区域。

重叠块运动补偿可意为通过计算与当前块的边界区域相应的预测块和使用与当前块相邻的已编码/解码块的运动信息所产生的预测块的加权和来执行运动补偿的处理。

可通过将当前块划分为多个子块来逐子块地执行对加权和的计算。也就是说,可使用与当前块相邻的已编码/解码的子块的运动信息逐子块地执行当前块的运动补偿。子块可意为当前块的下级块。

另外,在计算加权和时,可使用利用当前块的运动信息针对当前块的各个子块产生的第一预测块、以及利用与当前块在空间上相邻的邻近子块的运动信息产生的第二预测块。在这种情况下,表述“使用运动信息”意为“推导运动信息”。第一预测块可意为通过使用当前块内的编码/解码目标子块的运动信息所产生的预测块。第二预测块可以是通过使用与当前块内的编码/解码目标子块在空间上相邻的邻近子块的运动信息所产生的预测块。

可使用第一预测块和第二预测块的加权和来产生当前块的最终预测块。也就是说,重叠块运动补偿在于使用当前块的运动信息和另一块的运动信息找到当前块的最终预测块。

另外,当高级运动矢量预测(amvp)模式、合并模式、仿射运动补偿模式、解码器侧运动矢量推导模式、自适应运动矢量分辨率模式、局部照度补偿模式、双向光流模式中的至少一个被使用时,可将当前块划分为多个子块,并且可逐子块地执行重叠块运动补偿。

当合并模式被用于运动补偿时,可对改进的时间运动矢量预测因子(atmvp)候选和空间-时间运动矢量预测因子(stmvp)候选中的至少一个执行重叠块运动补偿。

随后将参照图13至图24描述重叠块运动补偿的细节。

接下来,将描述对与运动补偿相关联的信息执行熵编码/熵解码的处理(s505、s601、s704、s801)。

编码设备可将与运动补偿相关联的信息熵编码到比特流,解码器可对比特流中包括的与运动补偿相关联的信息进行解码。作为熵编码或熵解码的目标的与运动补偿相关联的信息可包括以下项中的至少一项:帧间预测指示符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、运动矢量差、跳过模式使用/未使用信息cu_skip_flag、合并模式使用/未使用信息merge_flag、合并索引信息merge_index、权重因子wf_l0、wf_l1、wf_l2和wf_l3、以及偏移值offset_10、offset_11、offset_12和offset_13。

帧间预测指示符可意为在当前块通过帧间预测被编码/解码时的帧间预测的预测方向、预测方向的数量或者帧间预测的预测方向和预测方向的数量两者。例如,帧间预测指示符可指示单向预测或多向预测(诸如双向预测、三向预测和四向预测)。帧间预测指示符可指示用于产生当前块的预测块的参考画面的数量。可选地,一个参考画面可用于多个方向的预测。在这种情况下,m个参考画面被用于执行n个方向(其中,n>m)的预测。帧间预测指示符也可意为用于当前块的帧间预测或运动补偿的预测块的数量。

根据当前块的预测方向的数量,参考画面指示符可指示一个方向pred_lx、两个方向pred_bi、三个方向pred_tri、四个方向pred_quad、或更多个方向。

特定参考画面列表的预测列表利用标志指示是否使用参考画面列表产生预测块。

例如,当特定参考画面列表的预测列表利用标志具有第一值一(1)时,这意味着使用参考画面列表产生预测块。当预测列表利用标志具有第二值零(0)时,这意味着不使用参考画面列表产生预测块。这里,预测列表利用标志的第一值和第二值可相反地被分别设置为0和1。

也就是说,当特定参考画面列表的预测列表利用标志具有第一值时,可使用与参考画面列表相应的运动信息来产生当前块的预测块。

参考画面索引可指示存在于参考画面列表中并且被当前块参考的特定参考画面。对于每个参考画面列表,可对一个或更多个参考画面索引进行熵编码/解码。可使用一个或更多个参考画面索引对当前块进行运动补偿。

运动矢量候选索引指示在为每个参考画面列表或每个参考画面索引准备的运动矢量候选列表中包括的运动矢量候选之中的当前块的运动矢量候选。可针对每个运动矢量候选列表对至少一个或更多个运动矢量候选索引进行熵编码/熵解码。可使用至少一个或更多个运动矢量候选索引对当前块进行运动补偿。

运动矢量差表示当前运动矢量与预测运动矢量之间的差。对于针对用于当前块的每个参考画面列表或每个参考画面索引所产生的每个运动矢量候选列表,可对一个或更多个运动矢量差进行熵编码/熵解码。可使用一个或更多个运动矢量差对当前块进行运动补偿。

关于跳过模式使用/未使用信息cu_skip_flag,当跳过模式使用/未使用信息cu_skip_flag具有第一值一(1)时,可使用跳过模式。相反,当跳过模式使用/未使用信息cu_skip_flag具有第二值零(0)时,可不使用跳过模式。可根据跳过模式使用/未使用信息使用跳过模式对当前块执行运动补偿。

关于合并模式使用/未使用信息merge_flag,当合并模式使用/未使用信息merge_flag具有第一值一(1)时,可使用合并模式。相反,当合并模式使用/未使用信息merge_flag具有第二值零(0)时,可不使用合并模式。可根据合并模式使用/未使用信息使用合并模式对当前块执行运动补偿。

合并索引信息merge_index可意为指示合并候选列表内的合并候选的信息。

可选地,合并索引信息可意为关于合并索引的信息。

另外,合并索引信息可指示在与当前块在空间/时间上相邻的重建块之中的用于推导合并候选的重建块。

合并索引信息可指示合并候选具有的一条或更多条运动信息。例如,当合并索引信息具有第一值零(0)时,合并索引信息可指示合并候选列表中被列为第一条目的第一合并候选;当合并索引信息具有第二值一(1)时,合并索引信息可指示合并候选列表中被列为第二条目的第二合并候选;当合并索引信息具有第三值二(2)时,合并索引信息指示合并候选列表中被列为第三条目的第三合并候选。类似地,当合并索引信息具有从第四值至第n值的值时,合并索引信息可指示合并候选列表中在根据所述值的顺序的位置所列出的合并候选。这里,n可以是0或正整数。

可基于合并模式索引信息使用合并模式对当前块执行运动补偿。

当两个或更多个预测块在当前块的运动补偿期间被产生时,可基于预测块的加权和来确定当前块的最终预测块。当计算加权和时,可将权重因子、偏移或者权重因子和偏移两者应用于各个预测块。用于计算加权和的加权和因子(例如权重因子和偏移)可按照以下项中的至少一项的数量被熵编码/熵解码或可按照与以下项中的至少一项相应的数量被熵编码/熵解码:参考画面列表、参考画面、运动矢量候选索引、运动矢量差、运动矢量、跳过模式使用/未使用信息、合并模式使用/未使用信息、合并索引信息。另外,可基于帧间预测指示符对用于每个预测块的加权和因子进行熵编码/熵解码。加权和因子可包括权重因子和偏移中的至少一个。

可逐块地对与运动补偿相关联的信息进行熵编码/熵解码,或者可以以上级单元为单位对与运动补偿相关联的信息进行熵编码/熵解码。例如,可逐块(例如逐ctu、逐cu、或逐pu)地对与运动补偿相关联的信息进行熵编码/熵解码。可选地,可以以上级单元(诸如视频参数集、序列参数集、画面参数集、自适应参数集或条带头)为单位对与运动补偿相关联的信息进行熵编码/熵解码。

可基于运动补偿信息差对与运动补偿相关联的信息进行熵编码/熵解码,其中,运动补偿信息差指示与运动补偿相关联的信息和与运动补偿相关联的信息的预测值之间的差。

可将与相邻于当前块的已编码/解码块的运动补偿相关联的信息用作与当前块的运动补偿相关联的信息,代替对与当前块的运动补偿相关联的信息进行熵编码/熵解码。

可基于编码参数中的至少一个来推导至少一条与运动补偿相关联的信息。

可基于编码参数中的至少一个对比特流进行解码来产生至少一条与运动补偿相关联的信息。相反,可基于编码参数中的至少一个将至少一条与运动补偿相关联的信息熵编码到比特流。

至少一条与运动补偿相关联的信息可包括运动矢量、运动矢量候选、运动矢量候选索引、运动矢量差、运动矢量预测值、跳过模式使用/未使用信息skip_flag、合并模式使用/未使用信息merge_flag、合并索引信息merge_index、运动矢量分辨率信息、重叠块运动补偿信息、局部照度补偿信息、仿射运动补偿信息、解码器侧运动矢量推导信息和双向光流信息中的至少一个。这里,解码器侧运动矢量推导可意为模式匹配的运动矢量推导。

运动矢量分辨率信息可以是指示哪种特定分辨率被用于运动矢量和运动矢量差中的至少一个的信息。这里,分辨率可意为精度。所述特定分辨率可被设置为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)单元中的至少任意一个。

重叠块运动补偿信息可以是指示在当前块的运动补偿期间与当前块在空间上相邻的邻近块的运动矢量是否将被另外用于计算当前块的预测块的加权和的信息。

局部照度补偿信息可以是指示当产生当前块的预测块时是否应用权重因子和偏移中的任何一个的信息。这里,权重因子和偏移中的至少一个可以是基于参考块计算的值。

仿射运动补偿信息可以是指示仿射运动模型是否将用于对当前块的运动补偿的信息。这里,仿射运动模型可以是使用多个参数将一个块划分为多个子块并且使用代表性运动矢量计算子块的运动矢量的模型。

解码器侧运动矢量推导信息可以是指示运动补偿所需的运动矢量是否被解码器推导并随后在解码器中被使用的信息。根据解码器侧运动矢量推导信息,与运动矢量相关联的信息可不被熵编码/熵解码。当解码器侧运动矢量推导信息指示运动矢量被解码器推导并随后在解码器中被使用时,与合并模式相关联的信息可被熵编码/熵解码。也就是说,解码器侧运动矢量推导信息可指示合并模式是否在解码器中被使用。

双向光流信息可以是指示运动矢量是否被逐像素或逐子块地修改并且随后修改后的运动矢量是否被用于运动补偿的信息。根据双向光流信息,运动矢量可不被逐像素或逐子块地熵编码/熵解码。对运动矢量的修改意为将基于块的运动矢量的值转换为基于像素的运动矢量的值或基于子块的运动矢量的值。

可基于至少一条与运动补偿相关联的信息对当前块进行运动补偿,并且可对所述至少一条与运动补偿相关联的信息进行熵编码/熵解码。

当与运动补偿相关联的信息被熵编码/熵解码时,可使用二值化方法,诸如截断莱斯二值化方法、k阶指数哥伦布二值化方法、有限k阶指数哥伦布二值化方法、固定长度二值化方法、一元二值化方法和截断一元二值化方法。

当与运动补偿相关联的信息被熵编码/熵解码时,可基于以下信息中的至少一个信息来确定上下文模型:与相邻于当前块的邻近块的运动信息或邻近块的区域信息相关联的信息;先前编码/解码的与运动补偿相关联的信息或先前编码/解码的区域信息;关于当前块的深度的信息;关于当前块的尺寸的信息。

可选地,当与运动补偿相关联的信息被熵编码/熵解码时,可通过将以下信息中的至少一个信息用作与当前块的运动补偿相关联的信息的预测值来执行熵编码/熵解码:与邻近块的运动补偿相关联的信息、先前编码/解码的与运动补偿相关联的信息、关于当前块的深度的信息和关于当前块的尺寸的信息。

在下文中,可参照图13至图24描述重叠块运动补偿的细节。

图13是示出逐子块地执行重叠块运动补偿的示例的示图。

参照图13,阴影块是将被执行重叠块运动补偿的区域。阴影块可包括当前块的位于边界的子块或者当前块中的子块。由粗实线标定的区域可以是当前块。

箭头指示邻近子块的运动信息被用于当前子块的运动补偿。这里,箭头尾部所位于的区域可意为(1)与当前块相邻的邻近子块或当前块内的与当前子块邻近的邻近子块。箭头头部所位于的区域可意为当前块内的当前子块。

对于阴影块,可计算第一预测块和第二预测块的加权和。当前块内的当前子块的运动信息可被用作用于产生第一预测块的运动信息。与当前块相邻的邻近子块的运动信息和与当前子块相邻并且包括在当前块中的邻近子块的运动信息中的至少一个或两者可被用作用于产生第二预测块的运动信息。

另外,为了提高编码效率,用于产生第二预测块的运动信息可包括当前块内的当前子块的上方块、左侧块、下方块、右侧块、右上方块、右下方块、左上方块和左下方块中的至少一个的运动信息。可根据当前子块的位置来确定可用于产生第二预测块的邻近子块。例如,当当前子块位于当前块的上边界时,可使用位于当前子块的上侧、右上侧和左上侧的邻近子块之中的至少一个邻近子块。当当前子块位于当前块的左边界时,可使用位于当前子块的左侧、左上侧和左下侧的邻近子块之中的至少一个邻近子块。

这里,位于当前子块的上侧、左侧、下侧、右侧、右上侧、右下侧、左上侧和左下侧的块可分别被称为上邻近子块、左邻近子块、下邻子近块、右邻近子块、右上邻近子块、右下邻近子块、左上邻近子块和左下邻近子块。

同时,为了降低计算复杂度,用于产生第二预测块的运动信息可根据与当前块相邻的邻近子块或当前块内的与当前子块相邻的邻近子块的运动矢量的大小而变化。

例如,当邻近子块是双向预测的子块时,对运动矢量的l0方向和l1方向的大小进行比较,并且可仅将较大大小的方向的运动信息用于产生第二预测块。

可选地,例如,运动矢量的l0方向的x分量和y分量的绝对值之和以及运动矢量的l1方向的x分量和y分量的绝对值之和被计算。然后,可仅将等于或大于预定值的运动矢量用于产生第二预测块。这里,该预定值可以是0或正整数。该预定值可以是基于从编码器用信号传送到解码器的信息所确定的值。可选地,该预定值可不信号传送,而可以是在编码器和解码器中被相同设置的值。

另外,为了降低计算复杂度,用于产生第二预测块的运动信息可根据当前子块的运动矢量的大小和方向而变化。

例如,可对当前子块的运动矢量的x分量和y分量的绝对值进行比较。当x分量的绝对值较大时,当前子块的左侧子块和右侧子块中的至少一个的运动信息可被用于产生第二预测块。

可选地,例如,可对当前子块的运动矢量的x分量和y分量的绝对值进行比较。当y分量的绝对值较大时,当前子块的上方子块和下方子块中的至少一个的运动信息可被用于产生第二预测块。

可选地,例如,当当前子块的运动矢量的x分量的绝对值等于或大于预定值时,当前子块的左侧子块和右侧子块中的至少一个的运动信息可用于产生第二预测块。这里,该预定值可以是零(0)或正整数。该预定值可基于从编码器用信号传送到解码器的信息被确定,或者可在编码器和解码器中被相同设置。

进一步可选地,例如,当当前子块的运动矢量的y分量的绝对值等于或大于预定值时,当前子块的上方子块和下方子块中的至少一个的运动信息可用于产生第二预测块。这里,该预定值可以是零(0)或正整数。该预定值可基于从编码器用信号传送到解码器的信息被确定,或者可在编码器和解码器中被相同设置。

这里,子块可具有n×m的尺寸,其中,n和m是正整数。n和m可以相等或者可不相等。例如,子块的尺寸可以是4×4或8×8。子块的尺寸的信息可按照序列单元等级被熵编码/熵解码。

子块的尺寸可基于当前块的尺寸被确定。例如,当当前块的尺寸为k个样点或少于k个样点时,子块的尺寸可以是4×4。同时,当当前块的尺寸大于k个样点时,子块的尺寸可以是8×8。这里,k是正整数,例如256。

这里,子块的尺寸的信息可以以序列、画面、条带、并行块、ctu、cu和pu中的至少任意一个为单位被熵编码/熵解码。另外,子块的尺寸可以是在编码器和解码器中被预设的预定值。

子块可具有正方形形状或矩形形状。例如,当当前块具有正方形形状或矩形形状时,子块可具有正方形形状。

例如,当当前块具有矩形形状时,子块可具有矩形形状。

这里,子块的形状的信息可以以序列、画面、条带、并行块、ctu、cu和pu中的至少一个为单位被熵编码/熵解码。另外,子块的形状可以是在编码器和解码器中被预设的预定形状。

图14是示出使用同位块的子块的运动信息执行重叠块运动补偿的示例的示图。为了提高编码效率,在同位画面或参考画面中与当前块在空间上位于相同位置的同位子块的运动信息可用于产生第二预测块。

参照图14,在同位块内与当前块在时间上相邻的子块的运动信息可用于对当前子块进行重叠块运动补偿。箭头尾部所位于的区域可以是同位块内的子块。箭头头部所位于的区域可以是当前块内的当前子块。

另外,同位画面中的同位子块、与当前块在空间上相邻的邻近子块、以及当前块内与当前子块在空间上相邻的邻近子块中的至少一个的运动信息可用于产生第二预测块。

图15是示出使用与参考块的边界相邻的块的运动信息执行重叠块运动补偿的示例的示图。为了提高编码效率,可通过使用当前块的运动矢量和参考画面索引中的至少一个来识别参考画面中的参考块,并且与识别出的参考块的边界相邻的邻近块的运动信息可用于产生第二预测块。这里,邻近块可包括与参考块的位于右边界或左边界的子块相邻的已编码/解码块。

参照图15,与参考块的下边界或右边界相邻的已编码/解码块的运动信息可用于对当前子块进行重叠块运动补偿。

另外,与参考块的下边界或右边界相邻的已编码/解码块的运动信息、与当前块在空间上相邻的邻近子块的运动信息、以及当前块内与当前子块在空间上相邻的邻近子块的运动信息中的至少一个运动信息可用于产生第二预测块。

为了提高编码效率,在合并候选列表中包括的多个合并候选中的至少一个合并候选的运动信息可用于产生第二预测块。这里,合并候选列表可以是在多个帧间预测模式之中的合并模式中使用的列表。

例如,合并候选列表中的空间合并候选可被用作用于产生第二预测块的运动信息。

可选地,例如,合并候选列表中的时间合并候选可被用作用于产生第二预测块的运动信息。

进一步可选地,例如,合并候选列表中的组合合并候选可被用作用于产生第二预测块的运动信息。

可选地,为了提高编码效率,运动矢量候选列表中包括的多个运动矢量候选中的至少一个运动矢量可被用作用于产生第二预测块的运动矢量。这里,运动矢量候选列表可以是在多个帧间预测模式之中的amvp模式中使用的列表。

例如,运动矢量候选列表中的空间运动矢量候选可被用作用于产生第二预测块的运动信息。

可选地,例如,运动矢量候选列表中的时间运动矢量候选可被用作用于产生第二预测块的运动信息。

当合并候选和运动矢量候选中的至少一个被用作产生第二预测块所需的运动信息时,可不同地设置重叠块运动补偿被应用到的区域。重叠块运动补偿被应用到的区域可以是块的与边界相邻的区域(即,块的位于边界的子块)或者块的不与边界相邻的区域(即,块的不位于边界的子块)。

当重叠块运动补偿被应用于块的不与边界相邻的区域时,合并候选和运动矢量候选中的至少一个可被用作产生第二预测块所需的运动信息。

例如,可通过将空间合并候选或空间运动矢量候选用作运动信息,针对块的不与边界相邻的区域执行重叠块运动补偿。

可选地,例如,可通过将时间合并候选或时间运动矢量候选用作运动信息,针对块的不与边界相邻的区域执行重叠块运动补偿。

进一步可选地,例如,可通过将空间合并候选或空间运动矢量候选用作运动信息,针对块的与下边界或右边界相邻的区域执行重叠块运动补偿。

进一步可选地,例如,可通过将时间合并候选或时间运动矢量候选用作运动信息,针对块的与下边界或右边界相邻的区域执行重叠块运动补偿。

另外,为了提高编码效率,在合并候选列表或运动矢量候选列表内的从特定块推导出的运动信息可用于针对特定区域的重叠块运动补偿。

例如,当当前块的右上方邻近块的运动信息被包括在合并候选列表或运动矢量候选列表中时,该运动信息可用于当前块的右边界区域的重叠块运动补偿。

可选地,例如,当当前块的左下方邻近块的运动信息被包括在合并候选列表或运动矢量候选列表中时,该运动信息可用于当前块的下边界区域的重叠块运动补偿。

图16是示出逐子块组地执行重叠块运动补偿的示例的示图。为了降低计算复杂度,可以以包括一个或更多个子块的子块集为单位来执行基于子块的重叠块运动补偿。子块集的单位可意为子块组的单位。

参照图16,用线标定的阴影区域可被称为子块组。箭头意为相邻的邻近子块的运动信息可用于当前子块组的运动补偿。箭头尾部所位于的区域可以是(1)与当前块相邻的邻近子块、(2)与当前块相邻的邻近子块组、或(3)当前块内的与当前子块相邻的邻近子块组。另外,箭头头部所位于的区域可意为当前块内的当前子块组。

对于每个子块组,可计算第一预测块和第二预测块的加权和。当前块内的当前子块组的运动信息可被用作用于产生第一预测块的运动信息。这里,当前块内的当前子块组的运动信息可以是当前子块组内的每个子块的运动信息的平均值、中值、最小值、最大值和加权和中的任意一个。与当前块相邻的邻近子块的运动信息、与当前块相邻的邻近子块组的运动信息以及当前块内的与当前子块相邻的邻近子块的运动信息中的至少一个可被用作用于产生第二预测块的运动信息。这里,与当前块相邻的邻近子块组的运动信息可以是该在邻近子块组中包括的每个子块的运动信息的平均值、中值、最小值、最大值和加权和中的任意一个。

这里,当前块可包括一个或更多个子块组。一个子块组的水平尺寸可等于或小于一个当前子块的水平尺寸。另外,一个子块组的垂直尺寸可等于或小于一个当前子块的垂直尺寸。另外,可针对当前块的位于上边界和左边界的多个子块中的至少一个子块执行重叠块运动补偿。

由于与当前块内的下边界和右边界相邻的块尚未被编码/解码,因此可不针对当前块内位于下边界和右边界的多个子块中的至少一个子块执行重叠块运动补偿。可选地,由于与当前块内的下边界和右边界相邻的块尚未被编码/解码,因此可通过使用当前子块的上方块的运动信息、左侧块的运动信息、左上方块的运动信息、左下方块的运动信息以及右上方块的运动信息中的至少一个,针对当前块内位于左边界和右边界的多个子块中的至少任意一个执行重叠块运动补偿。

另外,当当前块将在合并模式下被预测并且具有改进的时间运动矢量预测候选和空间-时间运动矢量预测候选中的至少一个时,针对当前块内位于下边界和右边界的多个子块中的至少一个子块,可不执行重叠块运动补偿。

另外,当当前块将在解码器侧运动矢量推导模式或仿射运动补偿模式下被预测时,针对当前块内位于下边界和右边界的多个子块中的至少一个子块,可不执行重叠块运动补偿。

另外,可针对当前块的颜色分量中的至少一个执行重叠块运动补偿。颜色分量可包括亮度分量和色度分量中的至少一个。

可选地,可根据当前块的帧间预测指示符执行重叠块运动补偿。也就是说,当当前块将被单向预测、双向预测、三向预测和/或四向预测时,可执行重叠块运动补偿。可选地,可仅在当前块被单向预测时执行重叠块运动补偿。进一步可选地,可仅在当前块被双向预测时执行重叠块运动补偿。

图17是示出用于重叠块运动补偿的多条运动信息的示例的示图。

用于产生第二预测块的运动信息的最大条数可以是k。也就是说,最多k个第二预测块可被产生并用于重叠块运动补偿。这里,k可以是零(0)或正整数,例如,1、2、3或4。

例如,当使用与当前块相邻的邻近子块的运动信息产生第二预测块时,可从上方块和右侧块中的至少一个推导最多两条运动信息。当基于当前块内的与当前子块相邻的邻近子块的运动信息产生第二预测块时,可从当前子块的上方块、左侧块、右侧块、左上方块、右上方块、左下方块和右下方块中的至少一个推导最多四条运动信息。这里,表述“推导运动信息”可意为使用推导出的运动信息产生第二预测块然后使用产生的第二预测块执行重叠块运动补偿的处理。

参照图17,为了提高编码效率,当针对当前块内位于上边界和左边界的多个子块中的至少一个执行运动补偿时,最多三条运动信息可被推导用于产生第二预测块。也就是说,可基于3连接来推导用于产生第二预测块的运动信息。

例如,当针对当前块内位于上边界的子块执行运动补偿时,可从与当前块相邻的邻近子块之中的上方邻近块、左上方邻近块和右上方邻近块中的至少一个推导运动信息。

例如,当针对当前块内位于左边界的子块执行运动补偿时,可从与当前块相邻的邻近子块之中的左侧邻近块、左上方邻近块和左下方邻近块中的至少一个推导运动信息。

另外,当针对当前块内位于左上边界的子块执行运动补偿时,可从与当前块相邻的邻近子块之中的上方邻近块、左侧邻近块和左上方邻近块中的至少一个推导运动信息。

另外,当针对当前块内位于右上边界的子块执行运动补偿时,可从与当前块相邻的邻近子块之中的上方邻近块、左上方邻近块和右上方邻近块中的至少一个推导运动信息。

同时,当针对当前块内位于左下边界的子块执行运动补偿时,可从与当前块相邻的邻近子块之中的左侧邻近块、左上方邻近块和左下方邻近块中的至少一个推导运动信息。

可选地,为了提高编码效率,当针对当前块内的不是位于上边界和左边界的多个子块中的至少一个的子块执行运动补偿时,最多8条运动信息可被推导用于产生第二预测块。也就是说,可基于8连接来推导用于产生第二预测块的运动信息。

例如,对于当前块内的子块,可从包括在当前块内的作为与当前子块相邻的邻近子块中的上方邻近块、左侧邻近块、下方邻近块、右侧邻近块、左上方邻近块、左下方邻近块、右下方邻近块和右上方邻近块中的至少一个推导运动信息。

另外,可从同位画面内的同位子块推导用于产生第二预测块的运动信息。另外,可从参考画面内的与参考块的下边界和右边界相邻的已编码/解码块推导用于产生第二预测块的运动信息。

另外,为了提高编码效率,可根据运动矢量的大小和方向来确定用于产生第二预测块的运动信息的条数。

例如,当运动矢量的x分量和y分量的绝对值之和等于或大于j时,可使用最多l条运动信息。相反,当运动矢量的x分量和y分量的绝对值之和小于j时,可使用最多p条运动信息。在这种情况下,j、l和p是零或正整数。l和p优选为不同的值。然而,l和p可以彼此相等。

另外,当当前块将以合并模式被预测时并且当改进的时间运动矢量预测候选和空间-时间运动矢量预测候选中的至少一个被使用时,最多k条运动信息可被用于产生第二预测块。这里,k可以是零或正整数,例如4。

另外,当当前块将以解码器侧运动矢量推导模式被预测时,最多k条运动信息可被用于产生第二预测块。这里,k可以是零或正整数,例如4。

另外,当当前块将以仿射运动补偿模式被预测时,最多k条运动信息可被用于产生第二预测块。这里,k可以是零或正整数,例如4。

图18和图19是示出推导用于产生第二预测块的运动信息的顺序的示图。用于产生第二预测块的运动信息可按照在编码器和解码器中预设的预定顺序被推导。

参照图18,可按照上方块、左侧块、下方块和右侧块的顺序从当前块的邻近块推导运动信息。

参照图19,为了提高编码效率,可基于当前子块的位置来确定推导用于产生第二预测块的运动信息的顺序。

例如,当针对当前块内位于上边界的当前子块推导运动信息时,可按照作为与当前块相邻的邻近子块的(1)上方邻近块、(2)左上方邻近块和(3)右上方邻近块的顺序从邻近子块推导运动信息。

另外,当针对当前块内位于左边界的当前子块推导运动信息时,可按照作为与当前块相邻的邻近子块的(1)左侧邻近块、(2)左上方邻近块和(3)左下方邻近块的顺序从邻近子块推导运动信息。

另外,当针对当前块内位于左上边界的当前子块推导运动信息时,可按照作为与当前块相邻的邻近子块的(1)上方邻近块、(2)左侧邻近块和(3)左上方邻近块的顺序从邻近子块推导运动信息。

另外,当针对当前块内位于右上边界的当前子块推导运动信息时,可按照作为与当前块相邻的邻近子块的(1)上方邻近块、(2)左上方邻近块和(3)右上方邻近块的顺序从邻近子块推导运动信息。

另外,当针对当前块的位于右下边界的当前子块推导运动信息时,可按照作为与当前块相邻的邻近子块的(1)左侧邻近块、(2)左上方邻近块和(3)左下方邻近块的顺序从邻近子块推导运动信息。

如图19的示例中那样,可按照作为与当前子块相邻的邻近子块的(1)上方邻近块、(2)左侧邻近块、(3)下方邻近块、(4)右侧邻近块、(5)左上方邻近块、(6)左下方邻近块、(7)右下方邻近块和(8)右上方邻近块的顺序来推导当前块内的当前子块的运动信息。可选地,可按照与图19中所示出的顺序不同的顺序来推导运动信息。

另一方面,可在与当前子块在空间上相邻的邻近子块的运动信息被推导之后随后推导同位画面内的同位子块的运动信息。可选地,可在推导与当前子块在空间上相邻的邻近子块的运动信息之前推导同位画面内的同位子块的运动信息。

另外,可在与当前子块在空间上相邻的邻近子块的运动信息被推导之后随后推导参考画面内位于参考块的下边界和右边界的已编码/解码块的运动信息。可选地,可在推导与当前子块在空间上相邻的邻近子块的运动信息之前推导参考画面内位于参考块的下边界和右边界的已编码/解码块的运动信息。

仅在预定条件被满足时,与当前块相邻的邻近子块的运动信息或者与当前子块相邻的邻近子块的运动信息可被推导作为用于产生第二预测块的运动信息。

例如,当与当前块相邻的邻近子块或当前块内的与当前子块相邻的邻近子块中的至少一个存在时,存在的邻近子块的运动信息可被推导作为用于产生第二预测块的运动信息。

进一步可选地,例如,当与当前块相邻的邻近子块或当前块内的与当前子块相邻的邻近子块中的至少一个以帧间预测模式被预测时,以帧间预测被预测的邻近子块的运动信息可被推导作为用于产生第二预测块的运动信息。同时,当与当前块相邻的邻近子块或当前块内的与当前子块相邻的邻近子块中的至少一个以帧内预测模式被预测时,以帧内预测模式被预测的邻近子块的运动信息可不被推导作为用于产生第二预测块的运动信息,这是因为该邻近子块不具有运动信息。

另外,当与当前块相邻的邻近子块或当前块内的与当前子块相邻的邻近子块中的至少一个的帧间预测指示符不指示l0预测、l1预测、l2预测、l3预测、单向预测、双向预测、三向预测和四向预测中的至少一个时,可不推导用于产生第二预测块的运动信息。

另外,当用于产生第二预测块的帧间预测指示符不同于用于产生第一预测块的帧间预测指示符时,可推导用于产生第二预测块的运动信息。

另外,当用于产生第二预测块的运动矢量不同于用于产生第一预测块的运动矢量时,可推导产生第二预测块所需的运动信息。

另外,当用于产生第二预测块的参考画面索引不同于用于产生第一预测块的参考画面索引时,可推导产生第二预测块所需的运动信息。

另外,当用于产生第二预测块的运动矢量和参考画面索引中的至少一个不同于用于产生第一预测块的运动矢量和参考画面索引中的至少一个时,可推导产生第二预测块所需的运动信息。

另外,为了降低计算复杂度,在用于产生第一预测块的帧间预测指示符指示单向预测的情况下,当用于产生第二预测块的l0预测方向和l1预测方向的运动矢量和参考画面索引中的至少一个不同于用于产生第一预测块的运动矢量和参考画面索引中的至少一个时,可推导产生第二预测块所需的运动信息。

另外,为了降低计算复杂度,基于用于产生第一预测块的帧间预测指示符,在帧间预测指示符指示双向预测的情况下,当用于产生第二预测块的l0预测方向和l1预测方向的运动矢量和参考画面索引的至少一个集合不同于用于产生第一预测块的l0预测方向和l1预测方向的运动矢量和参考画面索引的至少一个集合时,可推导产生第二预测块所需的运动信息。

另外,为了降低计算复杂度,当用于产生第二预测块的至少一条运动信息不同于用于产生第一预测块的至少一条运动信息时,可推导产生第二预测块所需的运动信息。

图20是示出通过将当前子块的参考画面的poc与特定邻近子块的参考画面的poc进行比较来确定所述特定邻近子块的运动信息是否能够被用作用于产生第二预测块的运动信息的示例的示图。

参照图20,为了降低计算复杂度,当当前子块的参考画面的poc等于邻近子块的参考画面的poc时,当前子块的运动信息可被用于产生当前子块的第二预测块。

另外,为了降低计算复杂度,如图20的示例中那样,当用于产生第二预测块的参考画面的poc不同于用于产生第一预测块的参考画面的poc时,可推导产生第二预测块所需的运动信息。

具体地,当用于产生第二预测块的参考画面的poc不同于用于产生第一预测块的参考画面的poc时,可通过基于参考画面或参考画面的poc对用于产生第一预测块的运动矢量进行缩放来推导用于产生第二预测块的运动矢量。

图21是示出当计算第一预测块和第二预测块的加权和时使用权重因子的示例的示图。

当计算第一预测块和第二预测块的加权和时,可将不同的权重因子应用于根据样点在块中的位置而使用的块中的样点。另外,可计算在第一预测块和第二预测块中位于相同位置的样点的加权和。在这种情况下,当加权和被计算以产生最终预测块时,权重因子和偏移中的至少一个可用于该计算。

这里,权重因子可以是小于零的负数值或者大于零的正数值。偏移可以是零、小于零的负数值、或大于零的正数值。

当第一预测块和第二预测块的加权和被计算时,可将相同的权重因子应用于每个预测块中的所有样点。

参照图21,例如,可将权重因子{3/4,7/8,15/16和31/32}应用于第一预测块的各个行或列,并且可将权重因子{1/4,1/8,1/16和1/32}应用于第二预测块的各个行或列。在这种情况下,相同行或相同列中的样点可被应用有相同的权重因子。

权重因子的值随着距当前子块的边界的距离减小而增大。另外,权重因子可被应用于子块内的所有样点。

在图21中,(a)、(b)、(c)和(d)示出了通过分别使用上方邻近块的运动信息、下方邻近块的运动信息、左侧邻近块的运动信息和右侧邻近块的运动信息来产生第二预测块的情况。这里,上方第二预测块、下方第二预测块、左侧第二预测块和右侧第二预测块可意为分别基于上方邻近块的运动信息、下方邻近块的运动信息、左侧邻近块的运动信息和右侧邻近块的运动信息而产生的第二预测块。

图22是示出当计算第一预测块和第二预测块的加权和时根据块中的位置将不同权重因子应用于样点的实施例的示图。为了提高编码效率,当第一预测块和第二预测块的加权和被计算时,权重因子可根据样点在块中的位置而变化。也就是说,可利用根据与当前子块在空间上相邻的样点的位置而不同的权重因子来计算加权和。另外,可针对在第一预测块和第二预测块中位于相同位置的样点计算加权和。

参照图22,在第一预测块中,可根据位置将权重因子{1/2,3/4,7/8,15/16,31/32,63/64,127/128,255/256,511/512和1023/1024}应用于各个样点,并且在第二预测块中,可根据位置将权重因子{1/2,1/4,1/16,1/32,1/64,1/128,1/256,1/512和1/1024}应用于各个样点。这里,在上方第二预测块、左侧第二预测块、下方第二预测块和右侧第二预测块中的至少一个中使用的权重因子可大于在左上方第二预测块、左下方第二预测块、右下方第二预测块和右上方第二预测块中的至少一个中使用的权重因子。

另外,在上方第二预测块、左侧第二预测块、下方第二预测块和右侧第二预测块中的至少一个中使用的权重因子可等于在左上方第二预测块、左下方第二预测块、右下方第二预测块和右上方第二预测块中的至少一个中使用的权重因子。

另外,使用同位画面内的同位子块的运动信息而产生的第二预测块内的所有样点的权重因子可相等。

另外,使用同位画面内的同位子块的运动信息而产生的第二预测块内的样点的权重因子可等于第一预测块内的样点的权重因子。

另外,使用参考画面内的与参考块的下边界和右边界相邻的已编码/解码块的运动信息而产生的第二预测块内的所有样点的权重因子可相等。

另外,使用参考画面内的与参考块的下边界和右边界相邻的已编码/解码块的运动信息而产生的第二预测块内的样点的权重因子可等于第一预测块内的样点的权重因子。

为了降低计算复杂度,权重因子可根据与当前块相邻的邻近子块或当前块内的与当前子块相邻的邻近子块的运动矢量的大小而变化。

例如,当邻近子块的运动矢量的x分量和y分量的绝对值之和等于或大于预定值时,{1/2,3/4,7/8,15/16}可被用作当前子块的权重因子。相反,当邻近子块的运动矢量的x分量和y分量的绝对值之和小于该预定值时,{7/8,15/16,31/32,63/64}可被用作当前子块的权重因子。在这种情况下,该预定值可以是零或正整数。

另外,为了降低计算复杂度,权重因子可根据当前子块的运动矢量的大小或方向而变化。

例如,当当前子块的运动矢量的x分量的绝对值等于或大于预定值时,{1/2,3/4,7/8,15/16}可被用作左侧邻近子块和右侧邻近子块的权重因子。相反,当当前子块的运动矢量的x分量的绝对值小于该预定值时,{7/8,15/16,31/32,63/64}可被用作左侧邻近子块和右侧邻近子块的权重因子。在这种情况下,该预定值可以是零或正整数。

例如,当当前子块的运动矢量的y分量的绝对值等于或大于预定值时,{1/2,3/4,7/8,15/16}可被用作上方邻近子块和下方邻近子块的权重因子。相反,当当前子块的运动矢量的y分量的绝对值小于该预定值时,{7/8,15/16,31/32,63/64}可被用作上方邻近子块和下方邻近子块的权重因子。在这种情况下,该预定值可以是零或正整数。

例如,当当前子块的运动矢量的x分量和y分量的绝对值之和等于或大于预定值时,{1/2,3/4,7/8,15/16}可被用作当前子块的权重因子。相反,当当前子块的运动矢量的x分量和y分量的绝对值之和小于该预定值时,{7/8,15/16,31/32,63/64}可被用作当前子块的权重因子。在这种情况下,该预定值可以是零或正整数。

可不针对子块内的所有样点计算加权和,而仅针对与每个块边界相邻的k个行/列中的一些样点计算加权和。在这种情况下,k可以是零或正整数,例如1或2。

另外,当当前块的尺寸小于n×m时,可针对与每个块边界相邻的k个行/列中的样点计算加权和。另外,当当前块被划分为子块并且运动补偿基于子块被执行时,可针对与每个块边界相邻的k个行/列中的样点计算加权和。这里,k可以是零或正整数,例如1或2。另外,n和m可以是正整数。例如,n和m可以是4或大于4以及8或大于8。n和m可以相等或者可以不相等。

可选地,可根据当前块的颜色分量的类型针对与每个块边界相邻的k个行/列中的样点计算加权和。在这种情况下,k可以是零或正整数,例如1或2。当当前块是亮度分量块时,可针对与每个块边界相邻的两个行/列中的样点计算加权和。另一方面,当当前块是色度分量块时,可针对与每个块边界相邻的一个行/列中的样点计算加权和。

另外,当当前块将以合并模式被预测并且具有改进的时间运动矢量预测候选和空间-时间运动矢量预测候选中的至少一个时,可仅针对与每个块边界相邻的k个行/列中的样点计算加权和。

另外,当当前块将以解码器侧运动矢量推导模式被预测时,可针对与每个块边界相邻的k个行/列中的样点计算加权和。另外,当当前块将以仿射运动补偿模式被预测时,可针对与每个块边界相邻的k个行/列中的样点计算加权和。在这些情况下,k可以是零或正整数,例如1或2。

同时,为了降低计算复杂度,可根据当前块的子块的尺寸,针对与每个块边界相邻的k个行/列中的样点计算加权和。

例如,当当前块的子块具有4×4的尺寸时,可针对与每个块边界相邻的一个、两个、三个或四个行/列中的样点计算加权和。可选地,当当前块的子块具有8×8的尺寸时,可针对与每个块边界相邻的一个、两个、三个、四个、五个、六个、七个或八个行/列中的样点计算加权和。在这种情况下,k可以是零或正整数。k的最大值可对应于子块中包括的行或列的数量。

另外,为了降低计算复杂度,可针对子块内的与每个块边界相邻的一个或两个行/列中的样点计算加权和。

另外,为了降低计算复杂度,可根据用于产生第二预测块的运动信息的条数,针对与每个块边界相邻的k个行/列中的样点计算加权和。这里,k可以是零或正整数。

例如,当运动信息的条数小于预定值时,可针对与每个块边界相邻的两个行/列中的样点计算加权和。

另外,当运动信息的条数等于或大于该预定值时,可针对与每个块边界相邻的一个行/列中的样点计算加权和。

另外,为了降低计算复杂度,可根据当前块的帧间预测指示符,针对与每个块边界相邻的k个行/列中的样点计算加权和。k可以是零或正整数。

例如,当帧间预测指示符指示单向预测时,可针对与每个块边界相邻的两个行/列中的样点计算加权和。同时,当帧间预测指示符指示双向预测时,可针对与每个块边界相邻的一个行/列中的样点计算加权和。

另外,为了降低计算复杂度,可根据当前块的参考画面的poc,针对与每个块边界相邻的k个行/列中的样点计算加权和。这里,k可以是零或正整数。

例如,当当前画面的poc与参考画面的poc之间的差小于预定值时,可针对与每个块边界相邻的两个行/列中的样点计算加权和。相反,当当前画面的poc与参考画面的poc之间的差等于或大于该预定值时,可针对与每个块边界相邻的一个行/列中的样点计算加权和。

另外,为了降低计算复杂度,可根据与当前块相邻的邻近子块的运动矢量或当前块内的与当前子块相邻的邻近子块的运动矢量的大小,针对与每个块边界相邻的k个行/列中的样点计算加权和。这里,k可以是零或正整数。

例如,当邻近子块的运动矢量的x分量和y分量的绝对值之和等于或大于预定值时,可针对与每个块边界相邻的两个行/列中的样点计算加权和。相反,当邻近子块的运动矢量的x分量和y分量的绝对值之和小于该预定值时,可针对与每个块边界相邻的一个行/列中的样点计算加权和。在这种情况下,该预定值可以是零或正整数。

另外,为了降低计算复杂度,可根据当前子块的运动矢量的大小或方向,针对与每个块边界相邻的k个行/列中的样点计算加权和。这里,k可以是零或正整数。

例如,当当前子块的运动矢量的x分量的绝对值等于或大于预定值时,可针对与左边界和右边界中的每一个相邻的两个行/列中的样点计算加权和。相反,当当前子块的运动矢量的x分量的绝对值小于该预定值时,可针对与左边界和右边界中的每一个相邻的一个行/列中的样点计算加权和。在这种情况下,该预定值可以是零或正整数。

例如,当当前子块的运动矢量的y分量的绝对值等于或大于预定值时,可针对与上边界和下边界中的每一个相邻的两个行/列中的样点计算加权和。相反,当当前子块的运动矢量的y分量的绝对值小于该预定值时,可针对与上边界和下边界相邻的一个行/列中的样点计算加权和。在这种情况下,该预定值可以是零或正整数。

例如,当运动矢量的x分量和y分量的绝对值之和等于或大于预定值时,可针对与每个块边界相邻的两个行/列中的样点计算加权和。相反,当运动矢量的x分量和y分量的绝对值之和小于该预定值时,可针对与每个块边界相邻的一个行/列中的样点计算加权和。在这种情况下,该预定值可以是零或正整数。

图23是示出在重叠块运动补偿期间按照预定顺序依次累积地计算第一预测块和第二预测块的加权和的实施例的示图。第一预测块和第二预测块的加权和可按照在编码器和解码器中预设的预定顺序被相加。

参照图23,可按照与当前子块相邻的上方块、左侧块和右侧块的顺序从邻近子块推导运动信息;可按照该顺序使用推导出的运动信息来产生第二预测块;可计算第一预测块和第二预测块的加权和。当加权和按照预定顺序被计算时,可按照上述顺序累计加权和,并因此可推导当前块的最终预测块。

如图23的示例中那样,计算第一预测块与使用上方块的运动信息所产生的第二预测块的加权和,使得可产生第一加权和结果块。然后,可计算第一加权和结果块与使用左侧块的运动信息所产生的第二预测块的加权和,使得可产生第二加权和结果块。然后,可计算第二加权和结果块与使用下方块的运动信息所产生的第二预测块的加权和,使得可产生第三加权和结果块。最后,可计算第三加权和结果块与使用右侧块的运动信息所产生的第二预测块的加权和,使得可产生最终预测块。

另一方面,推导用于产生第二预测块的运动信息的顺序、以及用于计算第一预测块和第二预测块的加权和的第二预测块的顺序可不同。

图24是示出在重叠块运动补偿期间计算第一预测块和第二预测块的加权和的实施例的示图。为了提高编码效率,当加权和被计算时,不依次累积地计算加权和,而是可在不考虑第二预测块被产生的顺序的情况下计算第一预测块与使用上方块、左侧块、下方块和右侧块中的至少一个的运动信息所产生的第二预测块的加权和。

在这种情况下,用于使用上方块、左侧块、下方块和右侧块中的至少一个的运动信息所产生的第二预测块的权重因子可彼此相等。可选地,用于第二预测块的权重因子和用于第一预测块的权重因子可相等。

参照图24,准备与第一预测块和第二预测块的总数相应的多个记录空间,并且在产生最终预测块时,可在针对所有第二预测块使用相等的权重因子的同时计算第一预测块和每个第二预测块的加权和。

另外,即使对于使用同位画面内的同位子块的运动信息所产生的第二预测块,也可计算第一预测块和第二预测块的加权和。

当当前块的尺寸为k个样点或少于k个样点时,可对确定是否对当前块执行重叠块运动补偿的信息进行熵编码/熵解码。这里,k可以是正整数,例如256。

当当前块的尺寸大于k个样点时或者当当前块将以特定帧间预测模式(例如,合并模式或高级运动矢量预测模式)被预测时,可不对确定是否对当前块执行重叠块运动补偿的信息进行熵编码/熵解码,但是重叠块运动补偿可被实质执行。

编码器可在执行运动预测时从当前块的边界区域的原始信号减去第二预测块之后执行预测。在这种情况下,当从原始信号减去第二预测块时,可计算第二预测块与原始信号的加权和。

针对未被执行重叠块运动补偿的当前块,可不应用增强多重变换(emt),其中,在增强多重变换(emt)中,离散余弦变换(dct)和离散正弦变换(dst)被应用于垂直/水平变换。也就是说,可仅对被执行了重叠块运动补偿的当前块应用增强多重变换。

图25是示出根据本发明的一个实施例的图像解码方法的流程图。

参照图25,可使用当前块的运动信息来产生当前块的第一预测块(步骤s2510)。

接下来,可在当前子块的至少一个邻近子块的运动信息之中确定能够用于产生第二预测块的运动信息(步骤s2520)。

在这种情况下,可基于邻近子块的运动矢量的大小和方向中的至少一个来确定能够用于产生第二预测块的运动信息。

在确定能够用于产生第二预测块的运动信息的步骤s2520,可基于邻近子块的参考画面的画面计数(poc)和当前块的参考画面的poc来确定能够用于产生第二预测块的运动信息。具体地,仅当邻近子块的参考画面的poc等于当前块的参考画面的poc时,可将邻近子块的运动信息确定为能够用于产生第二预测块的运动信息。

当前子块具有正方形形状或非正方形形状。

可使用所确定的在步骤s2520确定的运动信息来产生至少一个第二预测块(步骤s2530)。

仅当当前块既不具有运动矢量推导模式也不具有仿射运动补偿模式时,才可使用至少一个邻近子块的运动信息来产生至少一个第二预测块。

接下来,可基于当前块的第一预测块和当前子块的所述至少一个第二预测块的加权和来产生最终预测块(步骤s2540)。

当当前子块被包括在当前块的边界区域中时,可通过获得第一预测块的与边界相邻的若干行或若干列中的样点以及第二预测块的与边界相邻的若干行或若干列中的样点的加权和来产生最终预测块。

这里,可基于当前子块的块尺寸、当前子块的运动矢量的大小和方向、当前块的帧间预测指示符、以及当前块的参考画面的poc中的至少一个来确定第一预测块的与边界相邻的若干行或若干列中的样点以及第二预测块的与边界相邻的若干行或若干列中的样点。

在最终预测块产生步骤s2540,可在根据当前子块的运动矢量的大小和方向中的至少一个将不同的权重因子应用于第一预测块和第二预测块中的样点的同时计算加权和。

图25的图像解码方法的每个步骤可被类似地应用于本发明的图像编码方法的相应步骤。

通过执行根据本发明的图像编码方法而产生的比特流可被记录在记录介质中。

可在编码器和解码器中按照相同的方法执行以上实施例。

应用于以上实施例的顺序可在编码器和解码器之间不同,或者应用于以上实施例的顺序可在编码器和解码器中相同。

可对每个亮度信号和色度信号执行以上实施例,或者可对亮度信号和色度信号相同地执行以上实施例。

本发明的以上实施例被应用到的块形状可具有正方形形状或非正方形形状。

可根据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本发明的以上实施例。这里,所述尺寸可被定义为最小尺寸或最大尺寸或者最小尺寸和最大尺寸两者,使得以上实施例被应用,或者可被定义为以上实施例被应用到的固定尺寸。另外,在以上实施例中,第一实施例可被应用于第一尺寸,第二实施例可被应用于第二尺寸。换句话说,可根据尺寸组合地应用以上实施例。另外,当尺寸等于或大于最小尺寸并且等于或小于最大尺寸时,可应用以上实施例。换句话说,当块尺寸被包括在特定范围内时,可应用以上实施例。

例如,当当前块的尺寸是8×8或者更大时,可应用以上实施例。例如,当当前块的尺寸是4×4或更大时,可应用以上实施例。例如,当当前块的尺寸是16×16或更大时,可应用以上实施例。例如,当当前块的尺寸等于或大于16×16并且等于或小于64×64时,可应用以上实施例。

可根据时间层应用本发明的以上实施例。为了识别以上实施例可被应用到时间层,可用信号传送相应标识符,并且可将以上实施例应用于由相应标识符识别的特定时间层。这里,标识符可被定义为可应用以上实施例的最低层或最高层或者最低层和最高层两者,或者可被定义为指示被应用实施例的特定层。另外,可定义被应用实施例的固定时间层。

例如,当当前图像的时间层是最低层时,可应用以上实施例。例如,当当前图像的时间层标识符是1时,可应用以上实施例。例如,当当前图像的时间层是最高层时,可应用以上实施例。

可定义被应用了本发明的以上实施例的条带类型,并且可根据相应条带类型应用以上实施例。

在上述实施例中,基于具有一系列步骤或单元的流程图描述了所述方法,但本发明不限于所述步骤的顺序,而是,一些步骤可与其它步骤被同时执行,或者可与其它步骤按照不同顺序被执行。此外,本领域普通技术人员应该理解,流程图中的步骤不彼此相斥,并且在不影响本发明的范围的情况下,其它步骤可被添加到流程图中,或者一些步骤可从流程图被删除。

实施例包括示例的各种方面。针对各个方面的所有可能组合可不被描述,但本领域技术人员将能够认识到不同组合。因此,本发明可包括权利要求范围内的所有替换形式、修改形式和改变。

本发明的实施例可按照程序指令的形式来实施,其中,所述程序指令可由各种计算机组件来执行,并被记录在计算机可读记录介质上。计算机可读记录介质可包括单独的程序指令、数据文件、数据结构等,或者是程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可被特别设计和构造用于本发明,或者对于计算机软件技术领域的普通技术人员而言是已知的。计算机可读记录介质的示例包括:磁记录介质(诸如硬盘、软盘和磁带);光学数据存储介质(诸如cd-rom或dvd-rom);磁光介质(诸如软光盘);以及被特别构造用于存储和实施程序指令的硬件装置(诸如只读存储器(rom)、随机存取存储器(ram)、闪存存储器等)。程序指令的示例不仅包括由编译器形成的机器语言代码,还包括可由计算机使用解释器实施的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作以进行根据本发明的处理,反之亦可。

虽然已根据特定术语(诸如详细元件)以及有限实施例和附图描述了本发明,但它们仅被提供用于帮助更通俗地理解本发明,本发明不限于上述实施例。本发明所属领域的技术人员将理解,可从以上描述做出各种修改和改变。

因此,本发明的精神不应受限于上述实施例,所附权利要求及其等同物的全部范围将落入本发明的范围和精神之内。

工业可用性

本发明可被应用于对图像进行编码/解码的设备。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1