具体实施方式
考虑到本公开中的功能,本说明书中使用的术语可以是当前广泛使用的通用术语,但是可以根据本领域的技术人员的意图、习俗或新技术的出现而改变。另外,在某些情况下,可能存在申请人任意选择的术语,并且在这种情况下,其含义在本公开的相应描述部分中进行了描述。因此,应基于整个说明书中的术语和内容的实质含义来解释本说明书中使用的术语。
在本说明书中,一些术语可以解释如下。在一些情况下,编码可以解释为编码或解码。在本说明书中,通过执行视频信号的编码(编码)来生成视频信号比特流的装置被称为编码装置或编码器,并且执行视频信号比特流的解码(解码)以重构视频信号的装置被称为解码装置或解码器。另外,在本说明书中,视频信号处理装置被用作包括编码器和解码器两者的概念的术语。信息是包括所有值、参数、系数、元素等的术语。在一些情况下,含义被不同地解释,因此本公开不限于此。“单元”被用作指代图像处理的基本单位或图片的特定位置的含义,并且指代包括亮度分量和色度分量两者的图像区域。另外,“块”指代包括亮度分量和色度分量(即,Cb和Cr)当中的特定分量的图像区域。然而,取决于实施例,诸如“单元”、“块”、“分区(partition)”和“区域”的术语可以互换使用。另外,在本说明书中,单元可以用作包括编译单元、预测单元和变换单元的全部的概念。图片指示场或帧,并且根据实施例,这些术语可以互换使用。
图1是根据本公开的实施例的视频信号编码装置的示意性框图。参考图1,本公开的编码装置100包括变换单元110、量化单元115、逆量化单元120、逆变换单元125、滤波单元130、预测单元150和熵编译单元160。
变换单元110通过对残差信号进行变换来获得变换系数的值,该残差信号是输入的视频信号与由预测单元150生成的预测信号之间的差。例如,可以使用离散余弦变换(DCT)、离散正弦变换(DST)或小波变换。DCT和DST通过将输入图像信号分割成多个块来执行变换。在变换中,编码效率可以根据变换区域中的值的分布和特性而变化。量化单元115对从变换单元110输出的变换系数值的值进行量化。
为了改进编码效率,代替照原样对图像信号进行编码的方法,使用一种方法,其使用通过预测单元150已经编码的区域来预测图片,并通过将在原始图片和预测的图片之间的残差值添加到预测的图片来获得重构图像。为了防止编码器和解码器中的不匹配,当在编码器中执行预测时,应该使用可以在解码器中使用的信息。为此,编码器再次执行重构编码的当前块的处理。逆量化单元120对变换系数的值进行逆量化,并且逆变换单元125使用逆量化的变换系数值来重构残差值。同时,滤波单元130执行滤波操作以改善重构图片的质量并改善编码效率。例如,可以包括去块滤波器、样本自适应偏移(SAO)和自适应环路滤波器。滤波后的图片被输出或存储在解码图片缓冲器(DPB)156中,以用作参考图片。
为了提高编译效率,不原样编译图片信号,而是使用通过使用已编译的区域并且将原始图片和预测图片之间的残差值与预测图片相加来经由预测单元150预测图片,从而获得重构图片的方法。帧内预测单元152在当前图片内执行帧内预测,并且帧间预测单元154通过使用存储在解码图片缓冲器156中的参考图片来预测当前图片。帧内预测单元152从当前图片中的重构区域执行帧内预测,并且将帧内编译信息传送到熵编译单元160。帧间预测单元154可以包括运动估计单元154a和运动补偿单元154b。运动估计单元154a通过参考特定的重构区域来获得当前区域的运动矢量值。运动估计单元154a将参考区域的位置信息(参考帧、运动矢量等)传递到熵编译单元160,以使得将该位置信息包括在比特流中。运动补偿单元154b通过使用从运动估计单元154a传递的运动矢量值来执行帧间运动补偿。
预测单元150包括帧内预测单元152和帧间预测单元154。帧内预测单元152在当前图片内执行帧内预测,并且帧间预测单元154执行帧间预测以通过使用存储在DBP 156中的参考图片来预测当前图片。帧内预测单元152从当前图片中的重构样本执行帧内预测,并且将帧内编码信息传送到熵编译单元160。帧内编码信息可以包括帧内预测模式、最可能模式(MPM)标志和MPM索引中的至少一个。帧内编码信息可以包括关于参考样本的信息。帧间预测单元154可以包括运动估计单元154a和运动补偿单元154b。运动估计单元154a通过参考重构参考图片的特定区域来获得当前区域的运动矢量值。运动估计单元154a将用于参考区域的运动信息集(参考图片索引、运动矢量信息等)传递到熵编译单元160。运动补偿单元154b通过使用从运动估计单元154a传递的运动矢量值来执行运动补偿。帧间预测单元154将包括关于参考区域的运动信息的帧间编码信息传递到熵编译单元160。
根据另一实施例,预测单元150可以包括帧内块复制(BC)预测单元(未示出)。帧内BC预测单元基于当前图片中的重构样本来执行帧内BC预测,并将帧内BC编码信息传送到熵编译单元160。帧内BC预测单元获得参考当前图片中的特定区域,指示用于预测当前区域的参考区域的块矢量值。帧内BC预测单元可以使用所获得的块矢量值来执行帧内BC预测。帧内BC预测单元将帧内BC编码信息传送到熵编译单元160。帧内BC编码信息可以包括块矢量信息。
当执行上述图片预测时,变换单元110变换在原始图片和预测图片之间的残差值以获得变换系数值。在这种情况下,可以以图片内的特定块为单位执行变换,并且可以在预设范围内改变特定块的大小。量化单元115对在变换单元110中生成的变换系数值进行量化,并将其发送到熵编译单元160。
熵编译单元160对指示量化的变换系数的信息、帧内编码信息、帧间编码信息等进行熵编译,以生成视频信号比特流。在熵编译单元160中,可以使用可变长度编译(VLC)方案、算术编译方案等。可变长度编译(VLC)方案包括将输入符号变换成连续的码字,并且码字的长度可以是可变的。例如,频繁出现的符号由短码字表示,而很少出现的符号由长码字表示。基于上下文的自适应可变长度编译(CAVLC)方案可以被用作可变长度编译方案。算术编译可以将连续数据符号变换成单个质数,其中,算术编译可以获得表示每个符号所需的最佳比特。基于上下文的自适应二进制算术编译(CABAC)可以被用作算术编译。例如,熵编译单元160可以二值化指示量化的变换系数的信息。熵编译单元160可以通过算术编译二进制信息来生成比特流。
使用网络抽象层(NAL)单元作为基本单位来封装所生成的比特流。NAL单元包括整数个编译的编译树单元。为了在视频解码器中对比特流进行解码,首先,必须将比特流分离成NAL单元,并且然后必须对每个分离的NAL单元进行解码。同时,可以通过诸如图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)等等的高层集合的原始字节序列有效载荷(RBSP)来发送对视频信号比特流进行解码所需的信息。
同时,图1的框图示出根据本发明的实施例的编码装置100,并且分开显示的块在逻辑上区分并示出编码装置100的元件。因此,取决于设备的设计上述编码装置100的元件可以被安装为一个芯片或多个芯片。根据实施例,上述编码装置100的每个元件的操作可以由处理器(未示出)执行。
图2是根据本发明的实施例的视频信号解码装置200的示意性框图。参考图2,本发明的解码装置200包括熵解码单元210、逆量化单元220、逆变换单元225、滤波单元230和预测单元250。
熵解码单元210对视频信号比特流进行熵解码,以提取每个区域的变换系数信息、帧内编码信息、帧间编码信息等。例如,熵解码单元210可以从视频信号比特流中获得用于特定区域的变换系数信息的二值化代码。熵解码单元210通过对二进制码进行逆二值化来获得量化的变换系数。逆量化单元220对量化的变换系数进行逆量化,并且逆变换单元225通过使用逆量化的变换系数来重构残差值。视频信号处理设备200通过将由逆变换单元225获得的残差值与由预测单元250获得的预测值相加来重构原始像素值。
同时,滤波单元230对图片执行滤波以改善图像质量。这可以包括用于减少块失真的去块滤波器和/或用于去除整个图片的失真的自适应环路滤波器。滤波后的图片被输出或存储在DPB 256中,以用作下一个图片的参考图片。
预测单元250包括帧内预测单元252和帧间预测单元254。预测单元250通过使用通过上述熵解码单元210解码的编码类型、每个区域的变换系数和帧内/帧间编码信息来生成预测图片。为了重构其中执行解码的当前块,可以使用当前图片或包括当前块的其他图片的解码区域。在重构中,仅将当前图片,即,仅执行帧内预测或者帧内BC预测的图片(或贴片(tile)/切片(slice))称为帧内图片或I图片(或贴片/切片),并且将能够执行所有帧内预测、帧间预测以及帧内BC预测的图片(或贴片/切片)称为帧间图片(或贴片/切片)。为了预测帧间图片(或贴片/切片)当中的每个块的样本值,使用最多一个运动矢量和参考图片索引的图片(或者贴片/切片)被称为预测图片或P图片(或贴片/切片),并且使用最多两个运动矢量和参考图片索引的图片(或贴片/切片)称为双向预测图片或B图片(或贴片/切片)。换句话说,P图片(或贴片/切片)使用最多一个运动信息集来预测每个块,并且B图片(或贴片/切片)使用最多两个运动信息集来预测每个块。这里,运动信息集包括一个或多个运动矢量和一个参考图片索引。
帧内预测单元252使用帧内编码信息和当前图片中的重构的样本来生成预测块。如上所述,帧内编码信息可以包括帧内预测模式、最可能模式(MPM)标志和MPM索引中的至少一种。帧内预测单元252通过使用位于当前块的左边和/或上边的重构的样本作为参考样本来预测当前块的样本值。在本公开中,重构的样本、参考样本和当前块的样本可以表示像素。而且,样本值可以表示像素值。
根据实施例,参考样本可以是当前块的邻近块中包括的样本。例如,参考样本可以是与当前块的左边界相邻的样本和/或样本可以是与上边界相邻的样本。而且,参考样本可以是当前块的邻近块的样本当中的位于距当前块的左边界预定距离内的线上的样本和/或位于距当前块的上边界预定距离内的线上的样本。在这种情况下,当前块的邻近块可以包括左(L)块、上(A)块、左下(BL)块、右上(AR)块或左上(AL)块。
帧间预测单元254使用存储在DPB 256中的参考图片和帧间编码信息来生成预测块。帧间编译信息可以包括用于参考块的当前块的运动信息集(参考图片索引、运动矢量信息等)。帧间预测可以包括L0预测、L1预测和双向预测。L0预测意指使用L0图片列表中包括的一个参考图片进行预测,而L1预测意指使用L1图片列表中包括的一个参考图片进行预测。为此,可能需要一个运动信息集合(例如,运动矢量和参考图片索引)。在双向预测方法中,可以使用最多两个参考区域,并且两个参考区域可以存在于同一参考图片中或可以存在于不同图片中。即,在双向预测方法中,可以使用最多两个的运动信息集合(例如,运动矢量和参考图片索引),并且两个运动矢量可以对应于相同的参考图片索引或不同的参考图片索引。在这种情况下,在时间方面,可以在当前图片之前和之后显示(或输出)参考图片。根据实施例,在双向预测方案中使用的两个参考区域可以是分别从图片列表L0和图片列表L1中选择的区域。
帧间预测单元254可以使用运动矢量和参考图片索引来获得当前块的参考块。参考块在与参考图片索引相对应的参考图片中。而且,由运动矢量指定的块的样本值或其内插值可以用作当前块的预测器。对于具有子像素(sub-pel)单位像素准确度的运动预测,例如,可以使用用于亮度信号的8抽头内插滤波器和用于色度信号的4抽头内插滤波器。然而,以子像素为单位的用于运动预测的内插滤波器不限于此。以这种方式,帧间预测单元254执行运动补偿以根据先前使用运动信息重构的运动图片来预测当前单元的纹理。在这样的情况下,帧间预测单元可以使用运动信息集。
根据另一实施例,预测单元250可以包括帧内BC预测单元(未示出)。帧内BC预测单元可以通过参考包括当前图片内的重构样本的特定区域来重构当前区域。帧内BC预测单元从熵解码单元210获得当前区域的帧内BC编码信息。帧内BC预测单元获得指示当前图片中的特定区域的当前区域的块矢量值。帧内BC预测单元可以通过使用所获得的块矢量值来执行帧内BC预测。帧内BC编码信息可以包括块矢量信息。
通过将从帧内预测单元252或帧间预测单元254输出的预测值与从逆变换单元225输出的残差值相加生成重构的视频图片。即,视频信号解码装置200使用由预测单元250生成的预测块和从逆变换单元225获得的残差来重构当前块。
同时,图2的框图示出根据本公开的实施例的解码装置200,并且分开显示的块在逻辑上区分并示出解码装置200的元件。因此,取决于设备的设计上述解码装置200的元件可以被安装为一个芯片或多个芯片。根据实施例,上述解码装置200的每个元件的操作可以由处理器(未示出)执行。
图3图示其中在图片中编译树单元(CTU)被分割成编译单元(CU)的实施例。在视频信号的编码过程中,可以将图片分割成一系列编译树单元(CTU)。编译树单元由亮度样本的NXN块和与其相对应的色度样本的两个块组成。编译树单元可以被分割成多个编译单元。编译树单元可以不被分割,并且可以是叶节点。在这种情况下,编译树单元本身可以是编译单元。编译单元指代在上述视频信号的处理过程中,即,帧内/帧间预测、变换、量化和/或熵编译中用于处理图片的基本单元。一个图片中编译单元的大小和形状可能不恒定。编译单元可以具有正方形或矩形形状。矩形编译单元(或矩形块)包括垂直编译单元(或垂直块)和水平编译单元(或水平块)。在本说明书中,垂直块是其高度大于宽度的块,并且水平块是其宽度大于高度的块。此外,在本说明书中,非正方形块可以指代矩形块,但是本公开不限于此。
参考图3,首先将编译树单元分割成四叉树(QT)结构。即,在四叉树结构中具有2NX2N大小的一个节点可以被分割成具有NXN大小的四个节点。在本说明书中,四叉树也可以称为四元树。可以递归地执行四叉树分割,并非所有节点都需要以相同的深度分割。
同时,上述四叉树的叶节点可以进一步被分割成多类型树(MTT)结构。根据本公开的实施例,在多类型树结构中,一个节点可以被分割成水平或垂直划分的二叉或三叉树结构。即,在多类型树结构中,存在四个分割结构,诸如垂直二元分割、水平二元分割、垂直三元分割和水平三元分割。根据本公开的实施例,在每个树结构中,节点的宽度和高度都可以具有2的幂。例如,在二叉树(BT)结构中,2NX2N大小的节点可以通过垂直二元分割被分割成两个NX2N节点,并通过水平二元分割将其分割成两个2NXN节点。另外,在三叉树(TT)结构中,将2NX2N大小的节点通过垂直三元分割被分割成(N/2)X2N、NX2N和(N/2)X2N节点,并通过水平三元分割被分割成2NX(N/2)、2NXN和2NX(N/2)节点。可以递归地执行此多类型树分割。
多类型树的叶节点可以是编译单元。如果未指示用于编译单元的分割或针对最大变换长度该编译单元不大,则无需进一步划分就将编译单元用作预测和变换的单元。另一方面,可以通过诸如PPS、SPS、VPS等的高层集合的RBSP来预定义或发送上述四叉树和多类型树中的以下参数中的至少一个。1)CTU大小:四叉树的根节点大小,2)最小QT大小MinQtSize:允许的最小QT叶节点大小,3)最大BT大小MaxBtSize:允许的最大BT根节点大小,4)最大TT大小MaxTtSize:允许的最大TT根节点大小,5)最大MTT深度MaxMttDepth:从QT的叶节点分割而来的MTT的最大允许深度,6)最小BT大小MinBtSize:允许的最小BT叶节点大小,7)最小TT大小MinTtSize:允许的最小TT叶节点大小。
图4示出用于用信号发送四叉树和多类型树的分割的方法的实施例。可以使用预设标志来用信号发送上述四叉树和多类型树的分割。参考图4,指示是否分割四叉树节点的标志“qt_split_flag”、指示是否分割多类型树节点的标志“mtt_split_flag”、指示多类型树节点的分割方向的标志“mtt_split_vertical_flag”或者指示多类型树节点的分割类型的标志“mtt_split_binary_flag”中的至少一个可以被使用。
根据本公开的实施例,编译树单元是四叉树的根节点,并且可以首先被分割成四叉树结构。在四叉树结构中,为每个节点“QT_node”用信号发送“qt_split_flag”。如果“qt_split_flag”的值为1,则将该节点分割成4个正方形节点,并且如果“qt_split_flag”的值为0,则相应的节点成为四叉树的叶节点“QT_leaf_node”。
每个四叉树叶节点“QT_leaf_node”可以进一步被分割成多类型树结构。在多类型树结构中,为每个节点“MTT_node”用信号发送“mtt_split_flag”。当“mtt_split_flag”的值是1时,相应的节点被分割成多个矩形节点,并且当“mtt_split_flag”的值是0时,相应的节点是多类型树的叶节点“MTT_leaf_node”。当将多类型树节点“MTT_node”分割成多个矩形节点时(即,当“mtt_split_flag”的值是1时),可以附加地用信号发送节点“MTT_node”的“mtt_split_vertical_flag”和“mtt_split_binary_flag”。当“mtt_split_vertical_flag”的值是1时,指示节点“MTT_node”的垂直分割,并且当“mtt_split_vertical_flag”的值是0时,指示节点“MTT_node”的水平分割。另外,当“mtt_split_binary_flag”的值为1时,节点“MTT_node”被分割成2个矩形节点,并且当“mtt_split_binary_flag”的值为0时,节点“MTT_node”被分割成3个矩形节点。
对不再被划分的编译单元(即,编译单元树的叶节点)上执行用于编码的图片预测(运动补偿)。在下文中,用于执行预测的基本单元将被称为“预测单元”或“预测块”。
在下文中,在此使用的术语“单元”可以代替预测单元,该预测单元是用于执行预测的基本单元。然而,本公开不限于此,并且“单元”可以被理解为广泛地涵盖编译单元的概念。
图5图示根据本发明的实施例的帧间预测。如上所述,解码器可以参考另一个解码的图片的恢复样本来预测当前块。参考图5,解码器基于当前块32的运动信息获取参考图片内的参考块42。在这种情况下,运动信息可以包括参考图片索引和运动矢量50。参考图片索引指示参考图片列表中的当前块的参考图片。此外,运动矢量50指示当前图片内的当前块32的坐标值与参考图片内的参考块42的坐标值之间的偏移。解码器基于参考块42的采样值来获取当前块32的预测器,并且使用该预测器来恢复当前块32。
同时,根据本发明的实施例,可以使用基于子块的运动补偿。即,当前块32可以被划分为多个子块,并且独立的运动矢量可以被用于每个子块。因此,在当前块32内可以使用不同参考块来预测各个子块。根据实施例,子块可以具有诸如4X4或8X8的预设大小。解码器通过每个子块的运动矢量来获取当前块32的每个子块的预测器。通过各个子块的预测器的组合,可以获取当前块32的预测器,并且解码器可以使用所获取的当前块32的预测器来恢复当前块32。
根据本发明的实施例,可以执行通过各种方法的基于子块的运动补偿。基于子块的运动补偿可以包括基于仿射模型的运动补偿(在下文中,称为仿射运动补偿或仿射运动预测)和基于子块的时间运动矢量预测(SbTMVP)。在下文中,参考附图描述了仿射运动补偿和SbTMVP的各种实施例。
图6图示根据本发明的实施例的发信号告知运动矢量的方法。根据本发明的实施例,可以基于运动矢量预测(或预测器)(MVP)来生成运动矢量(MV)。例如,可以通过MVP来确定MV,如下文的[等式1]中所示。换句话说,可以将MV确定(配置或推导)为与MVP相同的值。
[等式1]
MV=MVP
在另一个示例中,可以基于MVP和运动矢量差(MVD)来确定MV,如下文的[等式2]所示。编码器可以向解码器发信号告知MVD信息以便更准确地指示MV,并且解码器可以通过将所获取的MVD添加到MVP来推导MV。
[等式2]
MV=MVP+MVD
根据本发明的实施例,编码器可以将所确定的运动信息传送到解码器,并且解码器可以由所接收的运动信息来生成MV,并且基于其来生成(或推导)预测块。例如,运动信息可以包括MVP信息和MVD信息。在这种情况下,运动信息的元素可以取决于帧间预测模式而改变。例如,在合并模式下,运动信息可以包括或可以不包括MVP信息。在另一示例中,在高级运动矢量预测(AMVP)模式下,运动信息可以包括MVP信息和MVD信息。
为了确定、发送和接收关于MVP的信息,编码器和解码器可以以相同的方式来生成MVP候选(或MVP候选列表)。例如,编码器和解码器可以以相同的顺序来生成相同的MVP候选。此外,编码器可以向解码器发送指示(或表示)从生成的MVP候选当中确定的(或选择的)MVP的索引,并且解码器可以基于接收的索引来推导所确定的MVP和/或MV。
根据本发明的实施例,MVP候选可以包括空间候选、时间候选等。当应用合并模式时,MVP候选可以被称为合并候选,并且当应用AMVP模式时,MVP候选可以被称为AMVP候选。空间候选可以是针对位于距当前块的特定位置处的块的MV(或运动信息)。例如,空间候选可以是与当前块相邻或不相邻的块的MV。时间候选可以是与不同于当前图片的图片内的块相对应的MV。此外,例如,MVP候选可以包括仿射MV、ATMVP、STMVP、MV(或候选)的组合、MV(或候选)的平均MV、零MV等。
根据实施例,编码器可以将指示参考图片的信息发信号告知解码器。作为实施例,当MVP候选的参考图片不同于当前块(或当前处理的块)的参考图片时,编码器/解码器可以缩放MVP候选的MV(运动矢量缩放)。在这种情况下,可以基于当前图片的图片顺序号(POC)、当前块的参考图片的POC以及MVP候选的参考图片的POC来执行MV缩放。
在下文中,描述了MVD信令方法的详细实施例。下文的[表1]示出用于MVD信令的语法结构。
[表1]
参考[表1],根据本发明的实施例,可以分别编译MVD的符号和绝对值。即,MVD的符号和绝对值可以具有不同的语法(或语法元素)。此外,如表1所示,可以直接编译或基于指示绝对值是否大于N的标志来逐步编译MVD的绝对值。如果绝对值大于N,则也可以发信号告知(绝对值–N)的值。具体地,在[表1]的示例中,可以发送指示绝对值是否大于0的abs_mvd_greater0_flag。如果abs_mvd_greater0_flag指示(表示)绝对值不大于0,则可以将MVD的绝对值确定为0。此外,如果abs_mvd_greater0_flag指示绝对值大于0,则可能存在附加语法(或语法元素)。
例如,可以发送指示绝对值大于1的abs_mvd_greater1_flag。如果abs_mvd_greater1_flag指示(表示)绝对值不大于1,则MVD的绝对值可以被确定为1。如果abs_mvd_greater1_flag指示绝对值大于1,则可能存在附加语法。例如,可能存在abs_mvd_minus2。abs_mvd_minus2可以是(绝对值–2)的值。由于根据abs_mvd_greater0_flag和abs_mvd_greater1_flag的值确定了绝对值大于1(即大于或等于2),因此可以发信号告知(绝对值–2)的值。与二值化和发信号告知绝对值相比,对关于绝对值的信息分层级地执行语法信令,可以使用更少比特数。
根据实施例,可以通过应用可变长度的二进制化方法(诸如指数Golomb、截短一元码、截短莱斯码等)来编译与绝对值有关的语法。此外,可以通过mvd_sign_flag来发信号告知指示MVD的符号的标志。
尽管在上述实施例中已经描述了编译MVD的方法,但是也可以将除了MVD以外的信息的符号和绝对值单独地发信号告知。可以将绝对值编译为指示绝对值是否大于预定的特定值的标志或者编译为通过从绝对值中减去特定值而获得的值。在[表1]中,[0]和[1]可以指示分量索引。例如,[0]和[1]可以是x分量(即,水平分量)和y分量(即,垂直分量)。
图7图示根据本发明的实施例的发信号告知自适应运动矢量分辨率信息的方法。根据本发明的实施例,指示MV或MVD的分辨率可以改变。例如,可以基于像素(或画素(pel))来表达分辨率。例如,可以以1/4(四分之一)、1/2(一半)、1(整数)、2或4个像素为单位发信号告知MV或MVD。编码器可以将MV或MVD的分辨率信息发信号告知解码器。此外,例如,16可以以1/4为单位编译为64(1/4*64=16),以1为单位编译为16(1*16=16),以及以4为单位编译为4(4*4=16)。即,可以使用下文的[等式3]来确定MV或MVD值。
[等式3]
valueDetermined=resolution*valuePerResolution
在[等式3]中,valueDetermined指示MV或MVD值。另外,valuePerResolution是基于所确定的分辨率而发信号告知的值。在这种情况下,当由MV或MVD发信号告知的值不能除以所确定的分辨率时,可以应用舍入处理等。当使用高分辨率时,精度可以增加,但是编译值较大,因此可能使用更多比特数。当使用低分辨率时,精度可能减小,但是编译值较小,因此可以使用较少的比特数。根据实施例,可以以序列、图片、切片、编译树单元(CTU)、编译单元(CU)等为单位来不同地配置分辨率。即,编码器/解码器可以根据上述单位中的预定单位来自适应地确定/应用分辨率。
根据说明书的实施例,可以从编码器向解码器发信号告知分辨率信息。在这种情况下,可以基于可变长度二值化并发信号告知分辨率信息。在这种情况下,当基于与最小值(即,最前值)相对应的索引来执行信令时,可以减少信令开销。作为实施例,可以按照从高分辨率到低分辨率的顺序将分辨率映射到信令索引。
根据本说明书的实施例,图7图示当假设在各种分辨率中使用三种分辨率时的信令方法。在这种情况下,三个信令比特可以是0、10和11,并且三个信令索引可以被称为第一分辨率、第二分辨率和第三分辨率。由于需要1比特来发信号告知第一分辨率并且需要2比特来发信号告知其余的分辨率,所以当发信号告知第一分辨率时,可以相对减少信令开销。在图7的示例中,可以将第一分辨率、第二分辨率和第三分辨率分别定义为1/4、1和4个像素分辨率。在以下实施例中,MV分辨率可以是MVD的分辨率。
图8图示根据本发明的实施例的仿射运动补偿。根据传统的帧间预测方法,对于当前块的L0预测和L1预测中的每一个仅使用一个运动矢量来执行帧间预测,并因此对于平移运动的预测进行了优化。然而,需要使用各种形状和大小的参考块44,以便有效地执行用于放大/缩小、旋转和其他不规则运动的运动补偿。
参考图8,在仿射运动补偿中,可以使用具有与当前块34的大小、形状和/或方向不同的大小、形状和/或方向的参考块44来预测当前块34。也就是说,参考块44可以具有非矩形形状,并且可以大于或小于当前块34。可以通过对当前块34进行仿射变换来获取参考块44。仿射变换可以包括使用三个控制点运动矢量(CPMV)的6参数仿射变换和使用两个控制点运动矢量的4参数仿射变换。在下文中,将描述其详细实施例。
图9图示4参数仿射运动补偿方法的实施例。为了减少仿射变换的计算量和信令开销,可以使用预设数量的控制点运动矢量(CPMV)来执行仿射运动补偿。控制点运动矢量(CPMV)是与当前块的特定控制点(或样本位置)相对应的运动矢量。特定控制点可以包括当前块的角中的至少一个。在本发明的实施例中,将与当前块的左上角相对应的CPMV称为v0(或第一CPMV),将与当前块的右上角相对应的CPMV称为v1(或第二CPMV),以及将与当前块的左下角相对应的CPMV称为v2(或第三CPMV)。包括至少两个CPMV的CPMV集可以用于仿射运动预测。
根据图9的实施例,可以使用v0和v1来执行4参数仿射运动预测。实线表示的当前块36可以使用位于由虚线表示的位置处的参考块46来预测。可以将当前块36的样本通过仿射变换映射到不同的参考样本。更具体地,可以从下文的[等式4]导出当前块36的样本位置(x,y)处的运动矢量(Vx,Vy)。
[等式4]
在此,(v0x,v0y)指示与当前块36的左上角相对应的第一CPMV,而(v1x,v1y)指示与当前块的右上角相对应的第二CPMV。此外,w是当前块36的宽度。
图10图示根据本发明的实施例的仿射运动预测方法。根据本发明的实施例,可以使用多个CPMV或多个参数来指示仿射运动。
参考图10,编码器/解码器可以使用v0、v1和v2的CPMV来执行仿射运动预测。当使用六个参数时,可以将v0、v1和v2的三个控制点运动矢量(CPMV)用于仿射运动预测。可以基于三个矢量v0、v1和v2或六个参数来指示由其预测当前块36的参考块的形状。参考图10,可以由参考图片中的图10的虚线表示的参考块46来预测由直线表示的当前块36。即,可以通过仿射变换将当前块36的每个控制点(或对应位置处的像素)映射到另一点(或像素)。下文的等式(5)示出根据本发明的实施例的运动矢量场。
[等式5]
在[等式5]中,指示图10中的左上角控制点的运动矢量的v0的CPMV可以由(mv_0^x,mv_0^y)表示。指示右上角控制点的运动矢量的v1的CPMV可以由(mv_1^x,mv_1^y)表示。指示左下角控制点的运动矢量的v2的CPMV可以由(mv_2^x,mv_2^y)表示。在这种情况下,可以使用[等式5]来推导(或计算)在位置(x,y)处的运动矢量(mv^x,mv^y)。因此,可以基于控制点运动矢量v0、v1和v2,根据[等式5]来推导每个像素的位置或特定位置处的运动矢量。
此外,在[等式5]中,(x,y)可以是块中的相对坐标。例如,当块的左上位置是(0,0)时,(x,y)可能是基于左上位置的位置。因此,当假设v0的位置是(x0,y0)时,v1的位置是(x1,y1),而v2的位置是(x2,y2),并且当与v0、v1和v2的位置相同的坐标被用于(x,y)时,在[等式5]中,x和y分别被表示为(x-x0)和(y-y0)。此外,在这种情况下,指示块的宽度的w可以是(x1-x0),而指示块的高度的h可以是(y2-y0)。
图11图示基于子块的仿射运动补偿方法的实施例。如上所述,可以使用仿射运动变换来推导当前块的每个样本位置处的运动矢量(即,运动矢量场)。然而,为了减少计算量,可以根据本发明的实施例来执行基于子块的仿射运动补偿。如图8所示,当前块可以包括多个子块,并且基于CPMV集来获取每个子块的代表性运动矢量。根据实施例,每个子块的代表性运动矢量可以是与相应子块的中间样本的位置相对应的运动矢量。根据附加实施例,作为子块的运动矢量,可以使用具有比一般运动矢量更高的精度的运动矢量。为此,可以应用运动补偿内插滤波器。
可以通过各种方法来配置经过仿射运动补偿的子块的大小。根据本发明的实施例,子块可以具有诸如4X4或8X8的预设大小。根据本发明的实施例,可以通过下面的[等式6]来确定子块的大小MXN。
[等式6]
在此,w表示当前块的宽度,MvPre表示运动矢量的分数单位精度。(v2x,v2y)是与当前块的左下角相对应的第三CPMV,并且可以根据实施例通过[等式5]来计算。Max(a,b)是返回a和b之间的较大值的函数,而abs(x)是返回x绝对值的函数。此外,clip3(x,y,z)是在z<x的情况下返回x,在z>y的情况下返回y,以及在其他情况下返回z的函数。
解码器通过CPMV集中的CPMV来获取当前块的每个子块的运动矢量。此外,解码器基于每个子块的运动矢量来获取每个子块的预测器,并且通过组合各个子块的预测器来获取当前块的预测器。解码器可以使用所获取的当前块的预测器来恢复当前块。
图12和13图示获取用于预测当前块的控制点运动矢量集的本发明的实施例。根据本发明的实施例,可以通过各种方法来获取用于预测当前块的CPMV集。更具体地,可以参考一个或多个相邻块的运动矢量信息集来获取用于预测当前块的CPMV集。根据本发明的实施例,运动矢量信息可以指示相应块的运动矢量或相应块的CPMV。此外,运动矢量信息集指示一个或多个块的运动矢量信息的集合。相邻块可以是包括当前块的预设相邻位置的块。在这种情况下,相邻块可以是包括预设相邻位置的编译单元,或者是包括相邻位置的预设单元(例如4X4或8X8)中的区域。
可以存在多个候选,其可以被参考以推导当前块的CPMV。因此,可以单独地发信号告知关于要被参考以推导当前块的CPMV的相邻块的信息。根据本发明的实施例,可以发信号告知指示要被参考以推导当前块的每个子块的运动矢量的运动矢量信息集的指示符。指示符可以指示要被参考以推导当前块的每个子块的运动矢量的相邻块的运动矢量信息集。解码器可以获取指示符,并且参考由指示符指示的相邻块的运动矢量信息集来获取用于当前块的CPMV集的每个CPMV。根据更详细的实施例,解码器可以生成包括一个或多个运动矢量信息集候选的候选列表。候选列表中包括的每个运动矢量信息集候选是可用于推导当前块的运动矢量信息的相邻块的运动矢量集。在这种情况下,指示符可以是指示候选列表中的一个运动矢量信息集的索引。可以参考基于指示符(即,索引)从候选列表中选择的运动矢量信息集来获取当前块的CPMV。在下文中,将描述运动矢量信息集候选的各种实施例,该运动矢量信息集候选可以被包括用于推导当前块的运动矢量信息(或CPMV集)的候选列表中。
图12图示获取当前块的CPMV集的实施例。在图12的实施例中,假设当前块的CPMV集包括两个CPMV,即v0和v1。根据本发明的实施例,可以从与对应点相邻的相邻块的运动矢量推导当前块的CPMV。参考图12,可以从与对应点相邻的相邻块A、B和C当中的一个运动矢量推导v0,以及可以从与对应点相邻的相邻块D和E当中的一个运动矢量推导v1。当相邻块A、B、C、D和E的运动矢量是vA、vB、vC、vD和vE时,可以如下文的[等式7]所示导出可以包括在候选列表中的运动矢量信息集。
[等式7]
{(v0,v1)|v0={vA,vB,vC},v1={vD,vE}}
即,可以获取包括从vA、vB和vC中选择的v0以及从vD和vE中选择的v1的(v0,v1)对。在这种情况下,可以从与当前块的左上角相邻的块的运动矢量推导v0,以及可以从与当前块的右上角相邻的块的运动矢量推导v1。根据附加实施例,可以基于当前块的图片顺序号(POC)、相邻块的参考图片的POC以及当前块的参考图片的POC来执行运动矢量缩放。
如上所述,可以生成包括所获取的运动矢量信息集候选的候选列表,并且可以发信号告知指示在候选列表中的一个运动矢量信息集的指示符。根据本发明的附加实施例,候选列表可以包括用于另一种类型的帧间预测的运动矢量信息集候选。例如,候选列表可以包括用于基于子块的时间运动矢量预测(SbTMVP)的运动矢量信息集候选。
解码器可以基于从候选列表获取的运动矢量信息集来导出当前块的CPMV。根据实施例,解码器可以通过将从候选列表获取的运动矢量信息集的运动矢量在无需任何单独的运动矢量差分值的情况下用作当前块的CPMV来执行仿射合并预测。根据另一个实施例,解码器可以获取用于当前块的CPMV的单独的运动矢量差分值。解码器可以通过将从候选列表获取的运动矢量信息集的运动矢量与运动矢量差分值相加来获取当前块的CPMV。解码器可以单独地发信号告知标志或索引,该标志或索引指示是否将单独的运动矢量差分值用于当前块的仿射运动补偿。
图13图示获取当前块的CPMV集的另一实施例。根据本发明的另一实施例,可以从已经对其执行了仿射运动补偿的相邻块的运动矢量信息,即,相邻块的CPMV或运动矢量来推导当前块的CPMV。在这种情况下,相邻块可以包括当前块的左相邻块和当前块的上相邻块。参考图13的(a),左相邻块可以包括与当前块的左下角相邻的块,即,左块A和左下块D。此外,上相邻块包括与当前块的左上角相邻的块,即左上块E,以及与当前块的右上角相邻的块,即,上块B和右上块C。解码器按预设的顺序识别是否已经对相邻块执行了仿射运动补偿。当找到已经对其执行了仿射运动补偿的相邻块时,解码器使用相应的相邻块的CPMV集(或运动矢量)来获取当前块的CPMV集。参考图13的(b),左块A的CPMV集可以被用来推导当前块的CPMV集。即,可以基于左块A的CPMV集(v2,v3,v4)来获取当前块的CPMV集(v0,v1)。
根据本发明的实施例,可以单独地发信号告知有关将被参考的相邻块的信息以推导当前块的CPMV。在这种情况下,当前块的相邻块的CPMV集可以根据预设顺序变为候选列表中包括的运动矢量信息集候选。更具体地,运动矢量信息集候选可以包括从当前块的左相邻块的CPMV(或运动矢量)推导的第一候选和从当前块的上相邻块的CPMV(或运动矢量)推导的第二候选。在这种情况下,左相邻块是与当前块的左下角相邻的块,而上相邻块是与当前块的左上角相邻的块或与当前块的右上角相邻的块。如上所述,可以生成包括所获取的运动矢量信息集候选的候选列表,并且可以发信号告知指示候选列表中的的一个运动矢量信息集的指示符。根据实施例,该指示符可以指示被参考用于推导当前块的每个子块的运动矢量的相邻块的位置信息。解码器可以参考由指示符指示的相邻块的CPMV集合(或运动矢量)来获取当前块的CPMV集。
根据本发明的附加实施例,可以基于接近相应点的相邻块的CPMV来推导当前块的CPMV。例如,可以参考左相邻块的CPMV来获取v0,并且可以参考上相邻块的CPMV来获取v1。可替代地,可以参考相邻块A、D或E的CPMV来获取v0,以及可以参考相邻块B或C的CPMV来获取v1。
图14图示根据本发明的实施例的仿射运动补偿方法。根据本发明的实施例,可能需要CPMV用于仿射运动预测,并且可以基于CPMV来计算运动矢量场,即子块或任何位置(或像素)处的运动矢量。在本说明书中,CPMV可以被称为种子矢量。在这种情况下,可以基于预测器来推导CPMV。例如,预测器可以被确定为CPMV。在另一个示例中,可以基于预测器和差来计算CPMV。具体地,可以通过将预测器与差相加或从预测器中减去该差来计算CPMV。
根据本发明的实施例,可以由相邻仿射运动补偿(MC)块(即,以仿射模式编译的相邻块)的CPMV或MV来推导CPMV的预测器。例如,当预设位置处的块被进行仿射运动预测时,编码器/解码器可以由相应块的CPMV或MV来推导用于当前块的仿射运动补偿的预测器。根据实施例,预设位置可以是图14所示的A0、A1、B0、B1或B2的位置。可替代地,预设位置可以包括与当前块相邻的位置和/或与当前块不相邻的位置。此外,编码器/解码器可以参考预设位置处的空间相邻的CPMV或MV,或者预设位置处的时间相邻的CPMV或MV。在本说明书中,基于仿射MC块的候选可以被称为继承候选。可替代地,基于仿射MC块的候选可以被称为合并候选。此外,根据实施例,当参考预设位置时,编码器/解码器可以根据被预设的顺序来参考预设位置。
图15图示根据本发明的实施例的仿射运动补偿方法。可能需要CPMV用于仿射运动预测,并且可以基于CPMV来计算运动矢量场,即,子块或任意位置处的运动矢量。在本说明书中,CPMV可以被称为种子矢量。在这种情况下,可以基于预测器来推导CPMV。例如,预测器可以被确定为CPMV。在另一个示例中,可以基于预测器和差来计算CPMV。具体地,可以通过将预测器与差相加或从预测器中减去该差来计算CPMV。
根据本发明的实施例,编码器/解码器可以使用相邻块的MV来推导CPMV的预测器。在这种情况下,相邻块的MV可以包括不是仿射运动补偿的块的MV的MV。例如,当推导当前块的每个CPMV时,编码器/解码器可以将用于每个CPMV的预设位置处的MV用作CPMV的预测器。例如,预设位置可以是包括在与其相邻的块中的一部分。
参考图15,编码器/解码器可以确定mv0、mv1和mv2的CPMV。在此,mv0指示左上CPMV,mv1指示右上CPMV,以及mv2指示左下CPMV。根据本发明的实施例,编码器/解码器可以将与预设位置A、B或C相对应的MV用作mv0的预测器。此外,编码器/解码器可以将与预设位置D或E相对应的MV用作mv1的预测器。另外,编码器/解码器可以将与预设位置F或G相对应的MV用作mv2的预测器。
当根据图15的实施例确定mv0、mv1或mv2的CPMV的每个预测器时,可以预定义参考每个控制点的预设位置的顺序。例如,对于每个控制点位置,CPMV的预测器所参考的预设位置的数量可以是多个,并且可以预定义可用预设位置的组合。根据图15的实施例中所示的方法,可以推导用于仿射MC的候选(或预测器),以及该候选可以被称为构造的候选。可替代地,候选可以被称为帧间候选或虚拟候选。此外,在图15的方法中,当参考预设位置时,编码器/解码器可以根据预设的顺序来参考预设位置。
根据本发明的实施例,编码器/解码器可以通过图12至15的实施例或其组合来生成仿射MC的候选列表或仿射MC的CPMV候选列表。[等式8]示出根据本发明的实施例,推导仿射运动预测器的方法。
[等式8]
如上所述,可以由仿射运动预测的相邻块推导用于当前块的仿射运动预测的CPMV。在这种情况下,可以使用[等式8]。在[等式8]中,仿射运动预测的相邻块的左上、右上和左下控制点的MV可以被分别表示为(v_E0x,v_E0y)、(v_E1x,v_E1y)和(v_E2x,v_E2y)。此外,仿射运动预测的相邻块的左上、右上和左下控制点的坐标可以被分别表示为(x_E0,y_E0)、(x_E1,y_E1)和(x_E2,y_E2)。在这种情况下,编码器/解码器可以根据[等式8]来计算当前块的CPMV的预测器或与(v_0x,v_0y)和(v_1x,v_1y)相对应的CPMV。下文的[等式9]和[等式10]示出了根据本发明的实施例,推导仿射运动预测器的方法。
[等式9]
[等式10]
如上所述,多个CPMV或多个CPMV预测器可以被用于仿射运动补偿。在这种情况下,编码器/解码器可以由另一个CPMV或CPMV预测器推导CPMV或CPMV预测器。例如,编码器/解码器可以通过上述方法来推导(或生成)两个CPMV或两个CPMV预测器,并且基于其来推导另一个CPMV或另一个CPMV预测器。
根据本发明的实施例,编码器/解码器可以使用[等式9]和[等式10]来推导(或生成)作为左上、右上和左下CPMV预测器或CPMV的mv0、mv1和mv2。在[等式9]和[等式10]中,x和y分别指示x分量和y分量,并且当前块的大小可以是w*h。编码器/解码器可以为CPMV制成预测器,以便对当前块进行仿射运动补偿,并且通过使差和预测器相加来确定CPMV。根据实施例,可以通过图14至15中描述的方法来生成CPMV的预测器,以及可以将CPMV的差从编码器发信号告知解码器。
根据实施例,可能存在对于每个CPMV的差。此外,可以发信号告知对于每个CPMV的每个差。在4参数模型中可以使用两个CPMV,并且可以通过将每个CPMV的预测器与mvd0和mvd1中的每个相加来推导每个CPMV的MV。在6参数模型中可以使用三个CPMV,并且可以通过将每个CPMV的预测器与mvd0、mvd1和mvd2中的每个相加来推导每个CPMV的MV。
根据本发明的实施例,编码器/解码器可以基于下文的[等式11]来确定运动矢量差。
[等式11]
IMvd[compIdx]=abs_mvd_greater0_flag[compIdx}*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx])
在[等式11]中,当参考列表为0时,MvdL0[x0][y0][compIdx]可以被配置为lMvd[compIdx]。在这种情况下,compIdx指示分量索引,并且可以具有0或1的值。当参考列表为1时,MvdLl[x0][y0][compIdx]可以被配置为lMvd[compIdx]。
根据实施例,运动矢量差可以通过[表1]中描述的方法来发信号告知,并且可以是[等式11]中的lMvd。如上所述,编码器/解码器可以确定发信号告知的mvd是用于CPMV的预测器的差,并且所确定的差可以是在[等式11]中的MvdL0和MvdL1。在[等式11]中,L0可以指示参考列表0,而L1可以指示参考列表1。
根据本发明的实施例,为了对当前块执行仿射MC,编码器/解码器可以推导CPMV的预测器并且通过将差和预测器相加来确定CPMV。作为实施例,编码器/解码器可以通过图14至15中描述的方法来生成CPMV的预测器。可以将CPMV的差从编码器发信号告知解码器。根据实施例,编码器/解码器可以基于下文的[等式12]和[等式13]来推导CPMV。
[等式12]
[等式13]
参考[等式12]和[等式13],可能存在用于每个CPMV的差的预测器。根据实施例,可以基于另一CPMV的差来确定CPMV的差。这是基于CPMV的差之间的相似性。即,如果确定了一个CPMV的预测器,则由于CPMV的差相似,因此可以使用少量信息来确定另一个CPMV的预测器。例如,可以发信号告知CPMV的差预测器,并且可以将与CPMV的差预测器的差从编码器发信号告知解码器。[等式12]假设使用4参数模型的情况,而[等式13]假设使用6参数模型的情况。
参考[等式12]和[等式13],编码器/解码器可以基于与CPMV 0相对应的mv0的差(mvd0)来确定每个CPMV的差和CPMV。可以将[等式12]和[等式13]的mvd0、mvd1和mvd2从编码器发信号告知解码器。与上文参考图15描述的方法相比,即使使用与图15的方法相同的预测器,[等式12]和[等式13]的方法也可以具有不同的发信号告知的mvd1和mvd2值。如果与CPMV mv0、mv1和mv2的预测器的差相似,则[等式12]和[等式13]的方法中的mvd1和mvd2的绝对值可能小于图15的方法中的绝对值,因此,通过[等式12]和[等式13]的方法,可以有效地减少mvd1和mvd2的信令开销。编码器/解码器可以确定与mv1的预测器的差为(mvd1+mvd0),并且与mv2的预测器的差为(mvd2+mvd0)。在[等式12]和[等式13]中,具有上横线的元素可以指示CMVP的预测器。
根据本发明的实施例,编码器/解码器可以基于下文的[等式14]来确定运动矢量差。在这种情况下,可以应用上述的[等式12]和[等式13]。
[等式14]
lMvd[cpIdx][compIdx]=abs_mvd_greater0_flag[cpIdx][compIdx]*(abs_mvd_minus2[cpIdx][compIdx]+2)*(1-2*mvd_sign_flag[cpIdx][compIdc])
根据实施例,可以根据上述[表1]或下述[表2]来发信号告知运动矢量差。发信号告知的运动矢量差可以是[等式14]中的lMvd。此外,[等式12]和[等式13]中发信号告知的mvds,即,mvd0、mvd1和mvd2可以是[等式14]中的lMvd。在[等式14]中,MvdLX可以指示与每个CPMV的预测器的差。也就是说,MvdLX可以是(mv-mvp)。在这种情况下,如[等式12]和[等式13]中所述,对于CPMV 0,可以将发信号告知的运动矢量差直接用作CPMV的差(MvdLX)。对于其他CPMV,可以基于发信号告知的运动矢量差([等式12]和[等式13]中的mvd1和mvd2)和用于CPMV 0的发信号告知的运动矢量差([等式12]和[等式13]中的mvd0),将发信号告知的运动矢量差用作与CPMV差相对应的MvdLX。
在[等式14]中,LX可以指示参考列表X。compIdx指示分量索引,并且可以指示x和y分量。cpIdx表示控制点索引。cpIdx在[等式12]或[等式13]中可以是0或1,也可以是0、1或2。根据实施例,编码器/解码器可以考虑[表1]、[等式14]和[表2]中的运动矢量差的分辨率。例如,当分辨率为R时,lMvd*R的值可以用于在[等式14]中的lMvd。下文的[表2]示出根据本发明的实施例的运动矢量差语法结构。
[表2]
参考[表2],可以通过基本上与[表1]中描述的方法相同的方法来对运动矢量差进行编译。在这种情况下,可以根据cpIdx和/或控制点索引对运动矢量差进行单独编译。
图16图示根据本发明的实施例的基于子块的时间MVP(SbTMVP)。根据本发明的实施例,编码器/解码器可以以子块为单位提取(或推导)时间相邻块的运动矢量。例如,编码器/解码器可以从另一图片提取与当前块的子块相对应的运动矢量。在此,块可以是CU,并且子块可以是子CU。此外,另一图片可以是并置图片(collocated picture)。在本发明中,SbTMVP可以被称为基于子块的时间合并候选或替代时间运动矢量预测器(ATMVP)。
根据本发明的实施例,当SbTMVP模式被应用时,编码器/解码器可以在另一图片中搜索与当前块相对应的块(被称为相应块或参考块)。在这种情况下,相应块可以被称为并置块。根据实施例,并置块可以被确定为与预设位置(诸如当前块的右下位置或中心位置)相对应的另一图片的块。在SbTMVP中,并置块可以是运动补偿块。例如,编码器/解码器可以参考当前块周围的运动矢量来找到并置块。
参考图16,并置块可以被确定(或推导为)为在另一图片内,从当前块的位置移动当前块的相邻块当中的位置A1处的运动矢量的块。可以基于通过根据预设顺序扫描当前块周围的预设位置而找到的候选的运动矢量来推导指示(面向)并置块的运动矢量。作为另一实施例,可以基于合并候选列表中的一些来确定指示并置块的运动矢量。例如,编码器/解码器可以基于合并候选列表中的第一合并候选来确定并置块。
此外,根据本发明的实施例,编码器/解码器可以由并置块的子块的运动信息确定(或推导)当前块的子块的运动信息。在本说明书中,运动矢量可以是运动信息,该运动信息包括关于是否使用运动矢量、参考索引和参考列表的信息,不管表达式如何。作为当前块的子块的运动信息的基础的并置块的子块可以在块(CU)内具有相同的相对位置。即,两个子块在该块内可以具有相同的相对位置。
此外,根据本发明的实施例,当SbTMVP被使用时,子块大小可以被固定为预定大小。例如,子块大小可以被固定为8×8。根据另一实施例,子块大小可以是可变的。在这种情况下,为了确定可变的子块大小,可能存在以序列、图片、切片、CTU或CU为单位的信令。例如,子块大小可以可变地确定为4×4或8×8。
图17图示根据本发明的实施例的平面MVP。根据本发明的实施例,编码器/解码器可以通过平面MVP方法,以当前块的子块为单位生成运动矢量场。此外,编码器/解码器可以通过平面MVP方法来参考相邻运动矢量。另外,编码器/解码器可以在平面MVP方法中,基于一个或多个相邻运动矢量的线性加权求和来确定子块运动矢量。在这种情况下,相邻运动矢量可以包括从相邻块的运动矢量外插的运动信息。例如,编码器/解码器可以使用相邻块的运动矢量,对当前块的下侧或右侧中的运动矢量执行外插处理。
参考图17,可以基于P_h(x,y)或P_v(x,y)来确定与当前块的子块相对应的运动矢量P(x,y)。在图17中,W和H分别指示当前块的宽度和高度。在这种情况下,可以基于L(-1,y)或R(W,y)来确定P_h(x,y)。L(-1,y)可以是与当前子块的左侧中的与当前块相邻的子块相对应的运动矢量。R(W,y)可以是基于与当前块的右上侧相对应的运动矢量和与当前块的右下侧相对应的时间运动矢量的值。可以基于A(x,-1)或B(x,H)来确定P_v(x,y)。A(x,-1)可以是与当前子块的上侧中的与当前块相邻的子块相对应的运动矢量。B(x,H)可以是基于与当前块的左下侧相对应的运动矢量和与当前块的右下侧相对应的右上运动矢量,通过加权求和获得的值。
[表3]示出根据本发明的实施例的与帧间预测有关的语法结构。
[表3]
根据本发明的实施例,帧间预测方法可以包括跳过模式、合并模式、帧间模式等。作为实施例,在跳过模式下可以不发送残差信号。此外,可以在跳过模式中应用诸如合并模式的MV确定方法。例如,可以根据跳过标志(或语法元素)来确定是否使用跳过模式。参考[表3],可以根据cu_skip_flag的值来确定是否使用跳过模式。cu_skip_flag指示是否跳过模式被应用于当前CU。
在实施例中,当应用合并模式时,可以不使用运动矢量差。在这种情况下,编码器/解码器可以基于运动候选索引来确定运动矢量。例如,可以根据合并标志(或语法元素)来确定是否使用合并模式。参考[表3],可以根据合并标志(即,merge_flag)的值来确定是否应用合并模式。当跳过模式不被使用时,可以使用合并模式。
根据本发明的实施例,编码器/解码器可以在跳过模式或合并模式中选择性地使用一个或多个候选列表集中的候选列表集。例如,候选列表集可以包括使用合并候选的候选列表和/或使用基于子块的合并候选的候选列表。此外,合并候选可以包括空间相邻候选、时间相邻候选等。合并候选可以包括将运动矢量用于整个当前块(CU)的候选。即,属于当前块的各个子块的运动矢量可以包括相同的候选。此外,子块合并候选可以包括基于子块的时间运动矢量(MV)、仿射合并候选等。根据实施例,子块合并候选可以包括将差运动矢量用于当前块(CU)的每个子块的候选。在实施例中,仿射合并候选可以指示在没有任何运动矢量差的情况下用于确定仿射运动预测的CPMV的合并候选。此外,子块合并候选可以包括以当前块中的子块为单位确定运动矢量的方法。例如,子块合并候选可以包括平面MV、基于回归的MV、STMVP等,以及基于子块的时间MV和仿射合并候选。
根据本发明的实施例,编码器/解码器可以在帧间模式下使用运动矢量差。可以基于运动候选索引来确定运动矢量预测器,并且可以基于运动矢量预测器和运动矢量差来确定运动矢量。可以根据关于是否其他模式被使用的信息来确定是否使用帧间模式。作为另一实施例,可以通过标志(或语法元素)来确定是否使用帧间模式。在[表3]中,假设当不使用其他模式(即,跳过模式和合并模式)时,使用帧间模式。在实施例中,帧间模式可以包括AMVP模式、仿射帧间模式等。帧间模式可以是用于基于运动矢量预测器和运动矢量差来确定运动矢量的模式。在仿射帧间模式中,当确定仿射运动预测的CPMV时,编码器/解码器可以使用运动矢量差。
参考[表3],在确定跳过模式或合并模式之后,编码器/解码器可以确定是使用子块合并候选还是合并候选。例如,当满足特定条件时,解码器可以解析指示是否子块合并候选被使用的merge_subblock_flag。在这种情况下,特定条件可以是与块大小有关的条件。例如,该条件可以是与宽度、高度、面积等有关的条件,或者可以是包括其组合的条件。
参考[表3],例如,特定条件可以指示当前块(CU)的宽度和高度是否大于或等于特定值。当merge_subblock_flag不被解析时,编码器/解码器可以推断该值为0。如果merge_subblock_flag为1,则编码器/解码器可以使用子块合并候选,而如果merge_subblock_flag为0,则可以使用合并候选。当使用子块合并候选时,可以解析表示指示候选列表(子块合并候选列表)内的特定候选的索引(或语法元素)的merge_subblock_idx。当使用合并候选时,可以解析表示指示候选列表(合并候选列表)内的特定候选的索引的合并索引。当候选列表的最大数量为1时,编码器/解码器可以不执行解析。也就是说,在候选列表的最大数量大于1的情况下,编码器/解码器可以解析索引。当merge_subblock_idx或合并索引不被解析时,编码器/解码器可以推断该值为0。
[表3]图示编译单元功能,并且在此省略与帧内预测有关的内容。[表3]是在确定应用帧间预测的情况下的示例。
在下文中,描述了根据本发明的实施例的配置子块合并候选列表的方法。[表3]已经描述了子块合并候选,并且在下文中,描述配置子块合并候选列表的方法。根据本发明的实施例,编码器/解码器可以考虑当前块大小或子块大小来确定是否将候选添加到候选列表。可以基于子块的宽度、高度、面积等来定义大小。
在实施例中,当存在可以属于子块合并候选的多个候选时,如果多个候选的子块的大小不同,则可以考虑当前块的大小来确定是否将候选添加到候选列表中。此外,考虑关于任何候选的当前块的大小的条件可以基于候选的子块的大小。候选(在被添加到候选列表之前)可以是指MVP方法或模式,或者可以包括制作MVP或MV的所有方法。添加到候选列表的候选可以是指可用于当前块的候选、MVP方法、模式等。
根据本发明的实施例,编码器/解码器可以根据当前块的块大小条件确定要添加到候选列表的候选。例如,编码器/解码器可以根据当前块的大小是否大于或等于任何块的大小的阈值来确定是否将候选添加到候选列表。此外,可以根据任何候选的子块大小来确定块大小条件或阈值。这是因为在大于子块的块或比子块足够大的块中,可以通过基于子块的预测来提高压缩效率。例如,在块等于或小于子块的情况下,可能无法以子块为单位获取运动信息,即使应用了基于子块的预测,这也可能对压缩效率没有贡献。
在实施例中,在当前块的大小等于或小于预设大小时,编码器/解码器可以配置第一候选列表,并且在当前块的大小大于或等于预设大小时,配置第二候选列表。此外,属于第二候选列表的候选的类型可以包括属于第一候选列表的候选的类型。例如,当第一模式的子块大小被配置为第一子块大小并且第二模式的子块大小被配置为第二子块大小时,如果当前块等于预设大小,则编码器/解码器可以仅将第二模式添加到候选列表,以及如果当前块大于预设大小,则将第一模式和第二模式两者都添加到候选列表中。例如,第一子块大小可以是8×8,并且第二子块大小可以是4×4。此外,预设大小可以是8×8。可替代地,预设大小可以具有8的宽度(或高度)。例如,第一模式可以是SbTMVP,第二模式可以是仿射合并模式。
在实施例中,可以通过以下方法来配置(或生成)基于子块的合并候选列表。在下文中,首先,将i配置为0(i=0)。
-如果(availableFlagSbCol&&blockSizeCondition)的值为真,则将subblockMergeCandList[i++]配置为SbCol。即,可以将SbCol添加到候选列表。subblockMergeCandList[i++]指示子块合并候选列表中的第i++个子块合并候选,而SbCol指示基于子块的时间合并候选(或SbTMVP)。
-如果(availableFlagA&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为A。即,可以将候选A(或位置A处的候选)添加为下一个候选。
-如果(availableFlagB&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为B。即,可以将候选B添加为下一个候选。
-如果(availableFlagConst1&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为Const1。即,可以将候选Const1添加为下一个候选。Const1指示所配置的候选当中的第一候选。
-如果(availableFlagConst2&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为Const2。即,可以将候选Const2添加为下一个候选。Const2指示所配置的候选当中的第二候选。
-如果(availableFlagConst3&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为Const3。即,可以将候选Const3添加为下一个候选。Const3指示所配置的候选当中的第三候选。
-如果(availableFlagConst4&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为Const4。即,可以将候选Const4添加为下一个候选。Const4指示所配置的候选当中的第四候选。
-如果(availableFlagConst5&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为Const5。即,可以将候选Const5添加为下一个候选。Const5指示所配置的候选当中的第五候选。
-如果(availableFlagConst6&&i<MaxNumSubblockMergeCand)的值为真,则将subblockMergeCandList[i++]配置为Const6。即,可以将候选Const1添加为下一个候选。Const6指示所配置的候选当中的第六候选。
根据本发明的实施例,仅当满足预定块大小条件时,编码器/解码器才将候选SbCol添加到候选列表subblockMergeCandList。在实施例中,可以根据SbTMVP的子块大小来确定用于确定是否将SbTMVP添加到候选列表的块大小条件。例如,具体地说,块大小条件可以是(cbWidth>=16&&cbHeight>=16)。在此,cbWidth表示当前编译块的宽度,cbHeight表示当前编译块的高度。此外,A、B、Const1、Const2、Const3、Const4、Const5和Const6可以是仿射合并候选。A和B可以是仿射继承的候选,而ConstX(X是1到6之一)可以是仿射配置的候选。
在另一个实施例中,编码器/解码器可以根据当前块的块大小条件确定是否解析候选索引。例如,当存在多个候选时,如果根据块大小条件和另一条件未将除了多个候选之一之外的所有候选都添加到候选列表,则编码器/解码器可以不解析候选索引。例如,当可以被添加到候选列表的候选的数量为2时,编码器/解码器可以根据块大小条件来确定是否解析候选索引。例如,当可以添加到候选列表的两个候选之一不满足块大小条件时,编码器/解码器可以不解析候选索引。
下文的[表4]示出根据本发明的实施例的与帧间预测相关的语法。
[表4]
根据本发明的实施例,当当前块的大小大于子块大小时,可以使用子块模式。例如,当存在可以添加到子块合并候选列表的多个候选并且多个候选的子块大小彼此相同时,如果当前块的大小大于子块大小,则可以使用子块合并模式。在详细的示例中,当子块大小为8x8并且当前块的大小大于或等于16x16(或者宽度或高度大于或等于16)时,可以使用子块模式。子块模式的使用可以指示是否指示是否使用与子块模式相对应的模式的标志被解析。此外,指示是否使用与子块模式相对应的模式的标志可以是merge_subblock_flag、inter_affine_flag等。在[表4]中,省略了与[表3]中重复的描述。
根据本发明的实施例,参考[表4],仅当cbWidth>=16且cbHeight>=16时,解码器才可以解析merge_subblock_flag和inter_affine_flag。作为另一实施例,即使当当前块的大小等于子块大小,以及当前块的大小大于子块大小的情况时,编码器/解码器才可以使用子块模式。这是因为子块模式的运动补偿方法可能不同于除子块模式以外的模式。在本说明书中,基于子块的合并模式可以被称为子块模式。
下文的[表5]示出根据本发明的实施例的与帧间预测相关的语法。
[表5]
根据本发明的实施例,当当前块的宽度满足特定条件或当前块的高度满足特定条件时,可以使用子块模式。例如,这是因为,如果宽度或高度大于子块大小的一侧的大小(或另一侧的大小),即使当当前块的宽度或高度等于子块的一侧的大小,当前块内也可能存在多个子块。因此,当当前块的宽度大于子块的宽度时,或者当当前块的高度大于子块的高度时,可以使用子块模式。可替代地,当当前块的宽度大于或等于子块的宽度时,或者当当前块的高度大于或等于子块的高度时,可以使用子块模式。在[表5]中,省略了与[表3]和[表4]重复的描述。参考[表5],当当前块的宽度大于或等于8或者当前块的高度大于或等于8时,编码器/解码器可以使用子块合并模式。当当前块的宽度大于或等于16或者当前块的高度大于或等于16时,解码器可以使用仿射帧间模式。
下文的[表6]和[表7]示出根据本发明的实施例的与子块合并相关的语法。
[表6]
[表7]
根据本发明的实施例,可以发信号告知在第一单元中特定模式是否可用。当通过信令指示可用性时,编码器可以将关于在属于第一单元的第二单元中实际使用哪种模式的信息发送到解码器。在这种情况下,可以根据在第一单元中的发信号告知的值来确定是否在第二单元中解析语法元素。例如,第一单元可以是序列、图片、切片、贴片(tile)等,而第二单元可以是CUT、CU等。在实施例中,特定模式可以是子块模式。第一单元可以被称为较高单元,第二单元可以被称为较低单元。
[表6]示出信令解析处理,该信令解析处理指示在属于子块模式的模式的子块大小全部相同或未考虑子块大小之间的差异的情况下是否使用子块模式。根据本发明的实施例,当属于子块模式的模式的数量为多个并且指示与子块模式相对应的模式的较高单元是否可用的信令的数量为多个时,如果指示多个较高单元是否可用的信令的至少一个指示可用性,则可以在较低单元中使用子块模式。此外,指示较高单元是否可用的信令可以对应于多个模式。例如,当根据所参考的相邻块的位置存在不同的模式时,可以发信号告知指示用于这些模式的较高单元是否可用的信息。在这种情况下,这可以与诸如块大小条件之类的条件组合并一起应用。在本说明书中,子块模式的可用性可以是指解析指示子块模式是否可用的信令,并且对此可以参考上述实施例。
参考[表6],仅当指示属于子块合并模式的仿射合并模式和SbTMVP是否可用的sps_affine_enabled_flag和sps_SbTMVP_enabled_flag中的至少一个为1时,解码器才可以解析merge_subblock_flag。
参考[表7],当属于子块模式的模式的子块大小不同时,解码器可以考虑到此来解析指示是否使用子块模式的语法元素。根据本发明的实施例,指示属于子块模式的任何模式的较高单元是否可用的信令和该模式的块大小条件都被满足,编码器/解码器可以使用子块模式。例如,当存在属于子块模式的第一模式和第二模式时,使用指示与第一模式相对应的较高单元是否可用的第一信令和指示与第二模式相对应的较高单元是否可用的第二信令,并且存在第一模式的第一块大小条件和第二模式的第二块大小条件,如果指示较高单元是否可用的第一信令指示较高单元可用并且满足第一块大小条件,编码器/解码器可以使用子块模式。当指示较高单元是否可用的第二信令指示较高单元可用并且满足第二块大小条件时,编码器/解码器可以使用子块模式。
作为实施例,参考[表7],可以将指示属于子块合并模式的仿射合并模式和SbTMVP是否可用的语法元素sps_affine_enabled_flag和sps_SbTMVP_enabled_flag从编码器发信号告知解码器。在这种情况下,当满足以下[等式15]的条件时,解码器可以解析merge_subblock_flag。类似地,当满足下文的[等式15]时,编码器可以对merge_subblock_flag执行语法信令。
[等式15]
((sps_affine_enabled_flag&&仿射合并块大小条件)||(sps_SbTMVP_enabled_flag&&SbTMVP块大小条件))
[表7]示出其中仿射合并模式的块大小条件为(cbWidth>=8&&cbHeight>=8)且SbTMVP的块大小条件为(cbWidth>=16&&cbHeight>=16)的情况。
下文的[表8]示出指示使用[表7]的条件的另一示例的语法。
[表8]
当存在属于子块模式的第一模式和第二模式时,存在指示与第一模式相对应的较高单元是否可用的第一信令和指示与第二模式相对应的较高单元是否可用的第二信令,以及存在第一模式的第一块大小条件和第二模式的第二块大小条件,如果第一块大小条件属于第二块大小条件(即满足第一块大小条件且满足第二块大小条件),编码器/解码器可以使用子块模式,如下文的[等式16]中所示。
[等式16]
如果((指示较高单元是否可用的第一信令||指示较高单元是否可用的第二信令)&&(第一块大小条件))
子块模式可用
否则,如果((指示较高单元是否可用的第二信令)&&(第二块大小条件))
子块模式可用
在另一实施例中,可以存在指示与所有子块模式相对应的较高单元是否可用的信令。可替代地,可以存在指示与所有子块合并模式相对应的较高单元是否可用的信令。在这种情况下,仅当指示较高单元可用时,解码器才可以解析较低单元信令。根据本发明的实施例,编码器/解码器可以根据子块大小,使用子块模式来配置块大小条件。在这种情况下,当子块大小可变时,编码器/解码器可以基于可用子块大小当中的较大大小来配置块大小条件。
下文的[表9]和[表10]示出根据本发明的实施例的与子块合并相关的语法。
[表9]
[表10]
根据本发明的实施例,可以发信号告知在中特定模式是否可用。当通过信令指示可用性时,编码器可以将关于在属于第一单元的第二单元中实际使用哪种模式的信息发信号告知解码器。在这种情况下,可以根据第一单元中的发信号告知的值来确定是否在第二单元中解析语法元素。例如,第一单元可以是序列、图片、切片、贴片等,而第二单元可以是CUT、CU等。在实施例中,特定模式可以是子块模式。第一单元可以被称为较高单元,第二单元可以被称为较低单元。此外,指示较高单元可用的信令可以对应于多个模式。例如,当根据要参考的相邻块的位置存在不同的模式时,可以存在指示用于多个模式的较高单元是否可用的信令。
根据本发明的实施例,可以参考指示较高单元是否可用的信令来确定是否解析候选索引。例如,当指示多个较高单元是否可用的信令中的一个或多个指示可用时,可以解析候选索引。根据实施例,可以存在指示与多个模式相对应的较高单元(在这种情况下,模式可以指示作为候选包括在候选列表中的单元)是否可用的信令。在本说明书中,可以通过第一标志、第二标志、第三标志...等来指示用于指示与多个模式相对应的较高单元是否可用的信令。此外,可以存在指示与一种模式相对应的较高单元(候选;在候选列表中保持位置的单元)是否可用的信令。在本说明书中,将指示与一种模式相对应的较高单元是否可用的信令称为标志A、标志B或标志C。
根据本发明的实施例,如果指示与多个模式相对应的较高单元是否可用的信令中的至少一个指示可用性,则编码器/解码器可以解析候选索引。即,在(第一标志||第二标志||第三标志,...)的情况下(即,标志值1指示可用性),编码器/解码器可以解析候选索引。
当指示与一种模式相对应的较高单元的信令的数量为0或1时,或者不具有指示较高单元是否可用的信令的模式的数量为0或1时,如果指示与多个模式相对应的较高单元是否可用的信令的至少一个指示可用,则编码器/解码器可以解析候选索引。即,在(第一标志||第二标志||第三标志,...)的情况下(标志值1指示可用),编码器/解码器可以解析候选索引。
当指示与一种模式相对应的较高单元是否可用的信令的数量为1并且不具有指示较高单元是否可用的信令的模式的数量为1时,如果指示与一种模式相对应的较高单元的信令指示可用,编码器/解码器可以解析候选索引。在这种情况下,这可以与指示与多个模式相对应的较高单元是否可用的信令的值无关。因此,在这种情况下,当指示与多个模式相对应的较高单元是否可用的多个信令以及指示与一种模式相对应的较高单元是否可用的信令中的至少一个指示可用时,编码器/解码器可以解析候选索引。即,在(第一标志||第二标志||第三标志,...)的情况下(标志值1指示可用),编码器/解码器可以解析候选索引。
当没有解析候选索引时,编码器/解码器可以使用候选列表中的唯一候选。可替代地,当未解析候选索引时,编码器/解码器可以推断候选索引为0。
参考[表9],仿射合并模式和SbTMVP可以对应于子块合并模式,并且仿射合并模式可以通过该方法被配置为多个候选。可以通过sps_affine_enabled_flag的语法元素来发信号告知与仿射合并模式相对应的较高单元是否可用。在这种情况下,当sps_affine_enabled_flag指示较高单元可用时,编码器/解码器可以解析与候选索引相对应的merge_subblock_idx。
根据本发明的实施例,如果指示与一种模式相对应的较高单元是否可用的信令的数量是两个或更多,并且指示与一种模式相对应的较高单元是否可用的多个信令中的至少两个指示较高单元可用,则编码器/解码器可以解析候选索引。即,在(标志A+标志B+标志C+....>=2)的情况下(标志值1指示可用),编码器/解码器可以解析候选索引。在这种情况下,可能存在不具有指示是否可以使用较高单元的信令的模式。
在指示与一种模式相对应的较高单元是否可用的信令的数量为2或更多并且存在指示与多种模式相对应的较高单元是否可用的信令的情况下,如果指示与一种模式相对应的较高单元是否可用的多个信令中的至少两个指示较高单元可用或指示与多种模式相对应的较高单元是否可用的多个信令中的至少一个指示较高单元可用,则编码器/解码器可以解析候选索引。即,在(((第一标志||第二标志||第三标志,...)||(标志A+标志B+标志C+....>=2))的情况下(标志值1指示可用),编码器/解码器可以解析候选索引。在这种情况下,可以存在不具有指示是否可以使用较高单元的信令的模式。
在不具有指示较高单元是否可用的信令的模式的数量为1的情况下,当指示与一种模式相对应的较高单元是否可用的多个信令中的至少一个指示较高单元可用时,而不是当指示与一种模式相对应的较高单元是否可用的多个信令中的至少两个指示较高单元可用时,可以解析候选索引。即,在(标志A||标志B||标志C+...)的情况下,而不是在(标志A+标志B+标志C+...>=2)的情况下,编码器/解码器可以解析候选索引。
参考表10,子块合并模式可以包括仿射合并模式、SbTMVP和平面MVP。仿射合并模式可以被配置为多个候选。SbTMVP可以被配置为一个候选。平面MVP可以被配置为一个候选。可以使用sps_affine_enabled_flag、sps_SbTMVP_enabled_flag和sps_planar_enabled_flag的语法元素来发信号告知与仿射合并模式、SbTMVP和平面MVP相对应的较高单元是否可用。在这种情况下,当sps_affine_enabled_flag指示较高单元可用时,或者当sps_SbTMVP_enabled_flag和sps_planar_enabled_flag两者都指示较高单元可用(或sps_SbTMVP_enabled_flag和sps_planar_enabled_flag中的两个或多个指示较高单元可用)时,编码器/解码器可以解析与候选索引相对应的merge_subblock_idx。在本发明中,当sps_SbTMVP_enabled_flag和sps_planar_enabled_flag两者都指示较高单元可用时,可以表示(sps_SbTMVP_enabled_flag+sps_planar_enabled_flag>=2)。
可以通过下述方法来推导根据本发明的实施例的SbTMVP可用性条件。在下文中,availableFlagSbCol指示表示SbTMVP是否可用的参数(或标志)。
-如果下述条件中的一个或多个为真,则可以将availableFlagSbCol配置为0。
1)tile_group_temporal_mvp_enable_flag为0
2)sps_SbTMVP_flag为0
3)cbWidth小于8
4)cbHeight小于8
根据本发明的实施例,可以通过可用性标志来表示SbTMVP是否可用。指示SbTMVP是否可用的可用性标志可以是availableFlagSbCol。此外,SbTMVP也可以被称为SbCol。此外,值为1的可用性标志指示SbTMVP可用,而值为0的可用性标志指示SbTMVP不可用。
根据本发明的实施例,可以存在不使用SbTMVP的条件。作为实施例,基于上述较高单元信令,SbTMVP不可用。用于当前块、CU或PU的较高单元可以是切片、贴片、贴片组、序列、图片、CTU等。较高单元信令可以包括tile_group_temporal_mvp_enable_flag。例如,tile_group_temporal_mvp_enable_flag指示表示时间运动矢量(或时间运动矢量预测)是否可用的标志。由于SbTMVP可以是使用时间运动矢量的技术,因此如果时间MV未被配置为可用,则可以不使用SbTMVP。此外,较高单元信令可以包括sps_SbTMVP_flag。例如,sps_SbTMVP_flag可以是指示SbTMVP是否可用的标志。
在另一个实施例中,基于块大小可以不使用SbTMVP。块大小可以包括块宽度、块高度、基于块宽度或高度的值等。此外,基于块宽度或高度的值可以包括块的面积。当块宽度或高度小于阈值时,可以不使用SbTMVP。作为实施例,阈值可以是子块宽度或高度。例如,阈值可以被配置为8。
当满足不能使用SbTMVP的条件时,编码器/解码器可以将与SbTMVP相对应的可用性标志配置为0。否则,可以通过附加操作来确定可用性标志。
图18图示根据本发明的实施例的确定临时运动矢量的方法。在本说明书中,指示并置块的运动矢量被称为临时运动矢量。临时运动矢量不限于其名称,并且可以被称为初始运动矢量、时间运动矢量、基于子块的合并基本运动矢量(基于子块的时间合并基本MV)或基本运动矢量。即,编码器/解码器可以基于初始运动矢量、时间运动矢量、基于子块的合并基本运动矢量或基本运动矢量来确定指定并置块的运动矢量。
根据本发明的实施例,编码器/解码器可以基于当前块周围的位置的运动信息来确定临时运动矢量。此外,当前块周围的位置可以是预设位置。当前块周围的位置可以包括合并候选的空间候选位置。可替代地,当前块周围的位置可以包括AMVP候选的空间候选位置。
参考图18,可以预设与A0、A1、B0、B1和B2相对应的位置。此外,这些位置可以是亮度位置。当当前块的左上位置是(xCb,yCb)时,A0,A1、B0、B1和B2可以分别是(xCb-1,yCb+cbHeight)、(xCb-1,yCb+cbHeight-1)、(xCb+cbWidth,yCb-1)、(xCb+cbWidth-1,yCb-1)和(xCb-1,yCb-1)。在这种情况下、cbWidth和cbHeight可以分别是当前块的宽度和高度。(xCb,yCb)可以是共享合并列表区域中的左上位置。当多个块使用相同的合并候选列表时,多个块的区域可以是共享的合并列表区域。此外,可以存在与预设位置相对应的预设参考顺序。[表11]示出了预设参考顺序。
[表11]
参考[表11],预设位置可以是predefinedPosition1,predefinedPosition2,...,predefinedPositionN等。可以将参考顺序预设为predefinedPosition1,predefinedPosition2,...,和predefinedPositionN。参考顺序可以是合并候选列表构造的参考顺序的正向或反向。可替代地,参考顺序可以是AMVP候选列表构造的参考顺序的正向或反向。例如,参考位置和参考顺序可以是A1、B1、B0和A0。可替代地,predefinedPosition1,predefinedPosition2,...,和predefinedPositionN可以指示与预设位置相对应的运动信息。
在[表11]中,临时运动矢量可以被配置为零运动矢量。如果预设位置的运动信息不可用,则编码器/解码器可以将临时运动矢量配置为零运动矢量。当预设位置的运动信息可用时,预设位置的运动信息可以被配置为临时运动矢量。可用性的含义可以包括相应位置不是帧内预测的情况。可替代地,可用性的含义可以包括相应位置是帧间预测的情况。可替代地,可用性的含义可以包括相应位置的运动信息的参考图片与对应于当前块的并置图片相同的情况。可替代地,可用性的含义可以包括相应位置的运动信息的参考图片与对应于当前块的参考图片相同的情况。
在[表11]中,可以识别预设位置中满足第一可用性条件的第一相应位置的运动信息是否满足第二可用性条件。当满足第二可用性条件时,编码器/解码器可以将相应位置的运动信息配置为临时运动矢量。在其他情况下,编码器/解码器可以将临时运动矢量配置为零运动矢量。这可以由伪代码表示,如下文的[表12]所示。
[表12]
在该实施例中,为了仅允许将满足第一可用性条件的预设位置中的第一位置用作临时运动矢量,可以使用在[表12]中的else if语句。此外,第一可用性条件和第二可用性条件可以是上述可用性。例如,第一可用性条件可以是指相应位置使用帧间预测。第二可用性条件可以是指相应位置的运动信息的参考图片与对应于当前块的并置图片相同。在实施例中,当任何位置满足第一可用性条件但不满足第二可用性条件时,可以不识别在该位置之后参考的位置。
在另一实施例中,编码器/解码器可以将预设位置当中,既满足第一可用性条件又满足第二可用性条件的第一相应位置的运动信息配置为临时运动矢量。在其他情况下,编码器/解码器可以将临时运动矢量配置为零运动矢量。如下文的[表13]所示,这可以用伪代码表示。
[表13]
在[表13]中,如果任何位置都满足第一可用性条件但不满足第二可用性条件,则编码器/解码器也可以识别在该位置之后参考的位置。
根据本发明的实施例,预设位置的数量可以仅为1。如下文的[表14]所示,这可以用伪代码表示。
[表14]
即,当对应于一个预设位置的运动信息可用时,编码器/解码器可以将临时运动矢量配置为相应的运动信息。否则,编码器/解码器可以将临时运动矢量配置为零运动矢量。作为实施例,一个预设位置可以是当前块的左位置。即,一个预设位置的x坐标可以小于当前块内的左坐标。例如,一个预设位置可以是位置A1。
尽管在实施例中已经描述了使用第一可用性条件和第二可用性条件两者的示例,但是本发明不限于此,并且可以包括存在更多可用性条件的情况。运动信息可以包括运动矢量(mvLX)、参考索引(refIdxLX)、预测利用标志(predFlagLX)等。
在实施例中,可以如下执行识别第二可用性条件并配置临时运动矢量的过程。即,如果availableFlagN为真,则可以应用以下处理。
A.如果以下所有条件都为真,则临时运动矢量可以被配置为mvL1N。
a.predFlagL1N为1的情况
b.DiffPicOrderCnt(ColPic,RefPcList1[refIdxL1N])为0的情况
C.DiffPicOrderCnt(aPic,currPic)等于或小于0的情况,aPic指示切片(或贴片组)的所有参考图片列表中的所有图片
d.tile_group_type为B的情况
e.collocated_from_10_flag为0的情况
B.否则,如果所有下述条件均为真,则可以将临时运动矢量配置为mvL0N。
a.predFlagL0N为1
b.DiffPicOrderCnt(ColPic,RefPicList0[refIdxL0N])为0的情况
当availableFlagN为真时,可能是指满足第一可用性条件。在仅使用一个预设位置的实施例中,可以是availableFlagN的参数可以是与该预设位置相对应的availableFlag。例如,当仅使用位置A1时,availableFlagN可以是availableFlagA1,其可以是指示位置A1的运动信息是否可用的值。
图19图示根据本发明的实施例的是否使用SbTMVP。根据本发明的实施例,编码器/解码器可以基于当前块1901的位置来确定是否使用特定模式。根据本发明的另一实施例,编码器/解码器可以基于当前块1901所属的合并列表共享区域的位置来确定是否使用特定模式。
根据本发明的实施例,编码器/解码器可以基于当前块1901的位置来确定是否使用了SbTMVP。根据本发明的另一实施例,可以基于当前块1901所属的合并列表共享区域的位置来确定是否使用SbTMVP。作为实施例,当前块1901的位置或当前块所属的合并列表共享区域的位置可以是左上坐标或可以由左上坐标表示。此外,当前块1901的位置或当前块1901所属的合并列表共享区域的位置可以是较高组内的相对位置。较高组可以包括图片、贴片、贴片组、CTU、切片等。此外,较高组可以是当前块所属的组。即,例如,编码器/解码器可以基于当前块1901的图片1902内的位置来确定是否使用SbTMVP。在本说明书中,当前块或当前块的合并列表共享区域可以被称为当前区域。
根据本发明的实施例,编码器/解码器可以基于当前区域是否与较高组的边界毗邻来确定是否使用SbTMVP。例如,当当前区域与较高组的边界毗邻时,可以确定或判定未使用SbTMVP。可替代地,可以基于为确定与在图19中所述的当前区域相对应的临时运动矢量而参考的预设位置是否在较高组之外来确定是否使用SbTMVP。例如,当为确定与当前区域相对应的临时运动矢量而参考的所有预设位置均在较高组之外时,编码器/解码器可以确定或判定不使用SbTMVP。此外,可以基于当前区域的坐标来确定为确定与当前区域相对应的临时运动矢量而参考的所有预设位置是否均在较高组之外。这是因为,当为确定与当前区域相对应的临时运动矢量而参考的所有预设位置均在较高组之外时,可以将零运动矢量用作临时运动矢量,因此SbTMVP的预测性能可能恶化。在实施例中,在这种情况下,通过确定SbTMVP不可用,可以使用较少比特数来发信号告知通过与SbTMVP相同的语法元素发信号告知的另一种模式。例如,如上所述,SbTMVP和仿射合并模式可以被包括在子块合并模式中,并且当确定SbTMVP不可用时,可以使用较少数量的索引来发信号告知仿射合并模式。因此,在这种情况下,索引0可以总是指示仿射合并模式。
参考图19,如上所述,可以仅参考位置A1 1903来确定当前区域的临时运动矢量。当位置A1 1903的运动信息不可用时,零运动矢量可以用作临时运动矢量。如果当前区域与图片1902的左边界毗邻,则临时运动矢量可以总是零运动矢量。因此,当当前区域与图片1902的左边界毗邻时,不使用SbTMVP。此外,当当前区域不仅与图片1902的左边界毗邻,而且与可以进行并行处理的单元的左边界毗邻时,不使用SbTMVP。可以并行处理的单元可以是贴片、贴片组、切片等。因此,当当前区域的左上坐标是(xCb,yCb)并且xCb是0时,编码器/解码器可以与图片1902的左边界毗邻,并且在这种情况下,确定不使用SbTMVP。可替代地,当(xCb-(可以进行并行处理的单元的左坐标))为0时,不使用SbTMVP。
在实施例中,如果仅参考当前区域的上侧来确定当前区域的临时运动矢量,则编码器/解码器可以配置为如果当前区域与图片1902或可以并行处理的单元的上边界毗邻则不使用SbTMVP。
在另一个附加实施例中,尽管已经描述了判定或确定不使用SbTMVP的条件,但是除了该条件之外,仅当满足与块大小有关的条件时才不使用SbTMVP。即,例如,当当前区域的坐标满足预设条件以及与块大小有关的条件时,不使用SbTMVP。作为实施例,与块大小有关的条件可以对应于当前块的块大小等于或小于子块大小的情况。当当前块大小等于或小于子块大小时,当前块的子块的数量仅为1,并且在这种情况下,SbTMVP的优点和性能可能降低。例如,子块大小可以是8×8。因此,以下实施例可以应用于上述实施例。如果当前区域与图片的左边界毗邻,并且当前块等于或小于8x8,则编码器/解码器可以判定或确定不使用SbTMVP。然而,可能存在仅可以在大于或等于8×8的块中使用子块合并模式的实施例。在这种情况下,当当前区域与图片1902的左边界毗邻并且当前块1901为8×8时,可以判定并确定不使用SbTMVP。
此外,在本发明的另一实施例中,指示SbTMVP可用性条件的可用性标志可以包括xCb是否为0以及当前块的宽度和高度是否为8以及上述条件。也就是说,当xCb为0且当前块的宽度和高度均为8时,可用性标志可以被配置为0。当该条件或所有条件均满足时,或者当其中的一个或多个条件满足时,编码器/解码器可以将可用性标志配置为0。如上所述,可以通过可用性标志来指示SbTMVP是否可用。此外,当满足任何条件时,可以将SbTMVP指示为不可用。即,当满足任何条件时,编码器/解码器可以将avilableFlagSbCol配置为0。因此,在参考图9所示的实施例中,编码器/解码器可以基于当前区域的位置来配置availableFlagSbCol。即,编码器/解码器可以基于指示当前区域的坐标(xCb,yCb)来配置availableFlagSbCol。例如,(xCb,yCb)可以是当前区域的左上坐标。
如在图19中所述,当当前区域或当前块与图片的左边界毗邻时,SbTMVP可能不可用。因此,如果xCb为0,则编码器/解码器可以将avilableFlagSbCol配置为0。例如,如果当前区域或当前块与图片的左边界毗邻并且当前块为8x8,则SbTMVP可能不可用。因此,如果xCb为0并且当前块的宽度和高度均为8,则编码器/解码器可以将avilableFlagSbCol配置为0。
下文的[表15]示出根据本发明的实施例的子块合并模式语法结构。
[表15]
如上所述,子块合并模式(或基于子块的合并模式)可以包括SbTMVP和/或仿射合并模式。可以通过更高级别的语法,从编码器向解码器发信号告知与指示仿射模式是否可用的语法元素(或标志)相对应的sps_affine_enabled_flag。作为实施例,较高级别可以是序列、图片、切片或CTU级别中的至少一个。此外,在实施例中,可以如图19中所述,预定义SbTMVP不可用(或不适用)条件。
根据本发明的实施例,当满足SbTMVP不可用条件并且仿射模式不可用时,编码器/解码器可以不解析merge_subblock_flag。例如,merge_subblock_flag可以是指示使用子块合并模式的信令。如果不存在merge_subblock_flag,则编码器/解码器可以推断该值为0。仿射模式不可用的情况可以是sps_affine_enabled_flag为0的情况。因此,当SbTMVP可用或仿射模式可用时,可以解析merge_subblock_flag。解析merge_subblock_flag的条件可以包括附加条件以及上述条件。例如,参考[表15],为了确定merge_subblock_flag的解析,还可以考虑与指示子块合并候选的最大数量的MaxNumSubblockMergeCand有关的条件以及与块大小有关的条件。
参考[表15],当作为当前块的左上坐标的x值的x0为0并且当指示仿射模式是否可用的sps_affine_enabled_flag为0时,可以不解析merge_subblock_flag。当x0不为0或sps_affine_enabled_flag为1时,可以解析merge_subblock_flag。
在上述实施例中,已经基于在子块合并模式中包括SbTMVP和仿射合并模式的假设进行了描述,但是本发明不限于此,并且在子块合并模式中可以包括另一模式。例如,除了SbTMVP之外,子块合并模式还可以包括第一模式和第二模式。此外,可以发信号告知指示第一模式和第二模式是否可用的语法元素sps_mode1_enabled_flag和sps_mode2_enabled_flag。在这种情况下,当满足SbTMVP不可用条件并且第一模式和第二模式两者均不可用时,编码器/解码器可以不解析merge_subblock_flag。在这种情况下,编码器/码器可以推断merge_subblock_flag为0。作为实施例,如果不满足SbTMVP不可用条件、第一模式可用或者第二模式可用,则编码器/解码器可以解析merge_subblock_flag。解析merge_subblock_flag的条件可以包括附加条件以及上述条件。参考[表15],为了确定merge_subblock_flag的解析,还可以考虑与指示子块合并候选的最大数量的MaxNumSubblockMergeCand有关的条件以及与块大小有关的条件。
根据本发明的实施例,当仿射模式未被配置为可用时,编码器/解码器可以将MaxNumSubblockMergeCand配置为1。可替代地,当仿射模式未被配置为可用并且SbTMVP被配置为可用时,编码器/解码器可以将MaxNumSubblockMergeCand配置为1。此外,当仿射模式未被配置为可用且SbTMVP未被配置为可用时,编码器/解码器可以将MaxNumSubblockMergeCand配置为0。
图20图示根据本发明的实施例的推导SbTMVP的方法。根据本发明的实施例,为确定临时运动矢量而参考的预设位置可以是可变的。可替代地,可以将为确定特定块的临时运动矢量而参考的预设位置的数量配置为1,并且这些位置可以是可变的。
在实施例中,可以将用于基于当前块2001或当前区域的位置来确定临时运动矢量的参考位置确定为可变的。当前区域指示图19中描述的区域。例如,当当前区域与图片2002的边界或可以并行处理的单元的边界毗邻时,特定位置的运动信息总是不可用。因此,编码器/解码器可以将不是总是不可用的位置的位置配置为用于确定临时运动矢量而参考的预设位置。即,可以将为确定临时运动矢量而参考的预设位置配置为基于当前区域的位置的并非总是不可用的位置。总是不可用的位置可以是脱离图片2002或可以并行处理的范围的位置。
根据图18所述的实施例,可以将为确定临时运动矢量而参考的预设位置定义为当前块2001或当前区域的左位置。在这种情况下,如图19中所述,当当前块2001或当前区域位于特定位置时,预设位置的运动信息不可用,因此预设位置可以被配置(或确定)为不是左位置的位置。例如,预设位置可以被配置为当前块2001或当前区域的上位置2003。例如,预设位置可以是图18的(a)的位置B1。
此外,在实施例中,参考图20,当当前块2001或当前区域与图片2002的左边界毗邻或与可以进行并行处理的单元的左边界毗邻时,可以将为确定临时运动矢量而参考的预设位置确定为当前块2001或当前区域的上位置。当前区域的上位置可以是具有小于当前区域的y坐标(即,垂直方向坐标)的y坐标的位置。例如,当当前块2001或当前区域与图片2002的左边界毗邻或与可以进行并行处理的单元的左边界毗邻时,为确定临时运动矢量而参考的预设位置可以是图18的(a)的位置B1。
可替代地,在实施例中,当当前块2001或当前区域与图片2002的上边界毗邻或与可以进行并行处理的单元的上边界毗邻时,为确定临时运动矢量而参考的预设位置可以被确定为当前块2001或当前区域的左位置。当前区域的左位置可以是具有小于当前区域的x坐标(即,水平方向坐标)的x坐标的位置。例如,当当前块2001或当前区域与图片2002的上边界毗邻或与可以进行并行处理的单元的上边界毗邻时,为确定临时运动矢量而参考的预设位置可以是图18的(a)的位置A1。
已经描述了基于子块的运动补偿方法。在下文中,描述了应用基于使用运动矢量差的合并模式(利用MVD的合并模式(MMVD))(或合并MVD)的运动补偿方法和基于子块的运动补偿的实施例的组合的方法。
图21图示根据本发明的实施例的MMVD应用方法。根据本发明的实施例,编码器/解码器可以基于运动矢量预测器(MVP)和运动矢量差(MVD)来确定运动矢量(MV)。在本说明书中,MVP可以被称为基本运动矢量(baseMV)。即,编码器/解码器可以通过将基本运动矢量和运动矢量差相加来推导运动矢量(即,最终运动矢量)。然而,本发明不限于这些名称,并且MVP可以被称为基本运动矢量、临时运动矢量、初始运动矢量、MMVD候选运动矢量等。MVD可以由用于细化MVP的值来表示,并且可以被称为细化运动矢量(refineMV)或合并运动矢量差。
根据本发明的实施例,当应用MMVD时,即,在MMVD模式下,可以基于基本运动矢量、距离参数(或变量)或方向参数(或变量)来确定MV。此外,根据本发明的实施例,可以从候选列表中确定基本运动矢量。例如,可以从合并候选列表中确定基本运动矢量。编码器/解码器可以从另一个候选列表中的一些中确定基本运动矢量。候选列表中的一些可以是候选列表的前部(具有较小索引的部分)。例如,编码器/解码器可以使用合并候选列表的候选当中的第一候选和第二候选来确定基本运动矢量。为此,可以将指示两个候选之中的特定候选的候选索引从编码器发信号告知解码器。参考图21,可以定义基本候选索引,该基本候选索引是用于发信号告知基本运动矢量的索引。编码器/解码器可以根据基本候选索引,确定在候选列表的候选当中应用于当前块的候选,并且将所确定的候选的运动矢量确定为基本运动矢量。在本发明中,基本候选索引不限于该名称,并且可以被称为基本候选索引、候选索引、候选标志、MMVD索引、MMVD候选索引、MMVD候选标志等。
根据本发明的实施例,可以存在与图6和7中描述的MVD不同的MVD。例如,MMVD中的MVD可以与图6和7中描述的MVD不同地定义。在本说明书中,MMVD可以指示使用运动矢量差的合并模式(即,运动补偿模式或方法),或者在应用MMVD的情况下指示运动矢量差。例如,编码器/解码器可以确定是否应用(或使用)MMVD。如果应用了MMVD,则编码器/解码器可以从合并候选列表中推导用于当前块的帧间预测的合并候选,并且通过推导MMVD并将MMVD应用于合并候选的运动矢量(或相加)来确定当前块的运动矢量。
在实施例中,不同的MVD可以是简化的MVD、具有不同(或较小)分辨率的MVD、具有较少可用数量的MVD、具有不同信令方法的MVD等。例如,尽管用在图6和7中描述的常规AMVP、仿射帧间模式等中使用的MVD对于特定信令单元(例如,x-pel)可以在x和y轴(即,水平和垂直方向)上以均匀间隔指示所有区域,例如,基于图片的区域(例如,图片区域或包括图片或周围区域的区域),但MMVD可以具有相对有限的特定信令的单元。此外,用于发信号告知MMVD的区域(或单元)可以不具有均匀的间隔。MMVD可以仅指示用于特定信令单元的特定方向。
根据本发明的实施例,可以基于距离和方向来确定MMVD。参考图21,可以预设根据指示MMVD的距离的距离索引和指示MMVD的方向的方向索引的MMVD的距离和方向。在实施例中,距离可以指示以特定像素为单位的MMVD大小(例如,绝对值),而方向可以指示MMVD的方向。编码器/解码器可以通过相对小的索引来发信号告知相对小的距离。也就是说,如果该信令不是通过固定长度二值化的信令,则编码器/解码器可以通过相对较小的比特来发信号告知相对较短的距离。
根据本发明的实施例,MVD可以使用发信号告知的MV或基于发信号告知的MV的MV。例如,基于发信号告知的MV的MV可以具有与发信号告知的MV的符号相反的符号。例如,可以基于与任何参考列表相对应的值来执行MVD信令,并且与不同于参考列表的另一个参考列表相对应的值可以与对应于参考列表的值(即,发信号告知的MVD)相同或具有相反的符号。参考列表与该值相同还是具有相反的符号可以由当前图片和参考列表的参考图片之间的图片顺序号(POC)关系以及当前图片和不同于该参考列表的另一参考列表的参考图片之间的POC关系来确定。更具体地,即使使用参考列表L0和参考列表L1两者,也可以发信号告知仅一个MVD。例如,可以发信号告知与L0相对应的MVD。此外,可以基于与L0相对应的MVD来确定与L1相对应的MVD。
例如,对应于L1的MVD可以是与对应于L0的MVD相同的值,或者具有从对应于L0的MVD的符号改变的符号。此外,这可以通过当前图片和L0参考图片之间的POC关系以及当前图片和L1参考图片之间的POC关系来确定。例如,可以根据(RefPicList0[refIdxLN0],currPic)*DiffPicOrderCnt(currPic,RefPicList1[refIdxLN1])的值是大于0还是小于0来确定是使用与对应于L1的MVD相同的、与L0相对应的MVD还是具有改变的符号的与L0相对应的MVD。DiffPicOrderCnt(RefPicList0[refIdxLN0],currPic)*DiffPicOrderCnt(currPic,RefPicList1[refIdxLN1])的值大于0可以是指L0参考图片和L1参考图片两者在时间上均在当前图片之前或在时间上均在当前图片之后。
因此,在这种情况下,L0 MVD和L1 MVD可以具有相同的符号。此外,DiffPicOrderCnt(RefPicList0[refIdxLN0],currPic)*DiffPicOrderCnt(currPic,RefPicList1[refIdxLN1])的值小于0可以是指L0参考图片和L1参考图片之一在时间上可以在当前图片之前,而另一个在时间上可以在当前图片之后。因此,在这种情况下,L0 MVD和L1 MVD可以具有不同的符号。在时间上在前的位置可以是指小的POC,而在时间上在后的位置可以是指大的POC。在上述实施例中,可以添加MV缩放过程。即,可以添加缩放发信号告知的MV或从发信号告知的MV修改的MV(例如,具有相反符号的MV)的过程。
下文的[表16]示出根据本发明的实施例的MMVD语法结构。
[表16]
根据本发明的实施例,可以存在指示是否使用(或应用)在图21中所述的MMVD的信令。参考[表16],MMVD标志(即,mmvd_flag)指示语法元素,该语法元素指示是否使用MMVD。例如,可以将MMVD应用于跳过模式或合并模式。在实施例中,当使用MMVD时,解码器可以解析与MMVD有关的语法。当使用MMVD时,可以在MMVD索引编译(即mmvd_idx_coding)语法中附加地解析与MMVD相关的信息。
作为实施例,当不使用MMVD时,解码器可以解析合并索引。参考[表16],合并索引(即,merge_idx)指示语法元素,该语法元素指示合并候选列表中的特定合并候选。此外,在不是跳过模式的合并模式的情况下,当在解析合并标志(即,合并标志)之后合并标志为1时,可以解析MMVD标志。合并标志可以指示是使用(或应用)合并模式还是子块合并模式。合并标志可以指示不使用AMVP、帧间模式、仿射帧间模式等。在该实施例中,合并索引可以是与图21中描述的基本候选索引不同的索引。
根据本发明的实施例,可以存在指示合并候选的最大数量的信令。可以以大于CU或预测单元的单位来执行指示合并候选的最大数量的信令。例如,可以以切片或贴片为单位执行指示合并候选的最大数量的信令。当满足基于指示合并候选的最大数量的信令的条件时,解码器可以解析合并索引。作为实施例,当指示合并候选的最大数量的语法元素的值指示合并候选的最大数量是1时,编码器/解码器可以推断合并索引是0。即,当指示合并候选的最大数量的信令指示合并候选的最大数量为1时,可以在不对合并索引进行任何解析的情况下确定候选。
参考[表16],可以定义与基于指示合并候选的最大数量的信令的值(变量或参数)相对应的MaxNumMergeCand。MaxNumMergeCand可以是指合并候选的最大数量。MaxNumMergeCand可以具有大于或等于1的值。可以基于可支持的合并候选的最大数量和指示合并候选的最大数量的信令来确定用于指示合并候选的最大数量的信令单元的合并候选的最大数量。例如,编码器/解码器可以通过从可支持的合并候选的最大数量中减去指示合并候选的最大数量的信令值,来确定用于指示合并候选的最大数量的信令单元的合并候选的最大数量。尽管仅描述了合并候选的最大数量,但是子块合并候选的最大数量和最大数量信令可以基本相同地存在。
在实施例中,当使用跳过模式或合并模式时,可以解析合并索引。当满足使用跳过模式或合并模式的条件时,解码器可以解析合并索引。例如,当不使用子块合并模式时,编码器/解码器可以使用跳过模式或合并模式。在上文的[表16]中,可以在解析MMVD标志之后解析合并索引。这可以优先于常规跳过模式或合并模式考虑MMVD。此外,可以发信号告知指示是否使用子块合并模式的子块合并标志(即,subblock_merge_flag)或合并子块标志(即,merge_subblock_flag)语法元素。
图22图示根据本发明的实施例的与MMVD有关的语法结构。上文[表16]中描述的实施例可以等同地应用于图22,并且省略了与之相关的重复说明。与[表16]相比,图22中图示的语法附加地包括与子块合并有关的过程。在图22和随后的附图(即,图23至31)中,可以省略与帧内预测处理、帧间预测的帧间模式、AMVP模式、仿射帧间模式等有关的描述。尽管为了便于描述,主要在图22中描述了解码器,但是可以通过基本上相同的方法,将根据本实施例的编译过程应用于编码器。
根据本发明的实施例,解码器可以比MMVD标志和/或合并索引更早地解析子块合并标志。这是为了优先于跳过模式、合并模式和/或MMVD中的至少一者来考虑子块合并模式。当不使用子块合并模式时,解码器可以解析MMVD标志和/或合并索引。例如,解码器可以比MMVD标志先解析子块合并标志,并且可以在子块合并模式不被应用时解析MMVD标志。由于以在子块合并模式中的相对较小尺寸的子块为单位执行运动补偿,因此,由于基于子块的运动补偿的特性,运动预测的准确性可能很高,并且使用一个MVD改进MV可能没有效果。根据本发明的实施例,可以通过识别是否MMVD被应用于子块合并模式不被应用的情况来提高压缩效率,并且可以通过配置语法(或语法元素)的解析顺序(即,比MMVD标志先解析子块合并标志)来实现这一目的。
图23图示根据本发明的实施例的与MMVD有关的语法结构。图23中所示的语法(或函数)可以指示用于解析在[表16]、图22和下文所述的与MMVD有关的语法中指示的MMVD信息的语法。如参考图21所述,可以基于基本运动矢量、距离和方向来确定MMVD。可以定义用于发信号告知信息的索引(或语法元素)。参考图23,可以将用于发信号告知基本运动矢量、距离和方向的语法元素定义为base_mv_idx、distance_idx和direction_idx。当如在[表16]和图22中所述,确定使用MMVD时,可以将指示在图23中图示的详细MMVD值的语法元素从编码器发信号告知解码器。尽管为了便于描述,主要在图23中描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。
图24图示根据本发明的实施例的与MMVD有关的语法结构。图24中所示的语法(或函数)可以指示用于解析在[表16]、图22和与下文所述的MMVD有关的语法中指示的MMVD信息的语法。根据本发明的实施例,当满足预定义的特定条件时,可以解析一些与MMVD有关的语法。例如,当在确定使用MMVD之后满足预定义的特定条件时,解码器可以解析一些与MMVD有关的语法。在实施例中,一些与MMVD有关的语法可以是与基本运动矢量有关的信令。使用MMVD的确定可以基于MMVD标志值。当解析MMVD标志或推断MMVD标志并指示特定值(例如1)时,可以确定使用MMVD。尽管为了便于描述,主要在图24中描述了解码器,可以通过基本上相同的方法,将根据本实施例的编译过程应用于编码器。
根据本发明的实施例,特定条件可以与可用基本运动矢量候选的最大数量有关。例如,当可用基本运动矢量候选的最大数量大于或等于2时,解码器可以解析与基本运动矢量相关的语法,而当可用基本运动矢量候选的最大数量为1时,解码器可以不解析与基本运动矢量有关的语法。当不存在与基本运动矢量有关的语法时,解码器可以推断该值。在这种情况下,可以推断与基本运动矢量有关的语法是0。当基本运动矢量候选是合并候选时,解码器可以使用基于可用合并候选的最大数量的条件来确定是否解析与基本运动矢量有关的语法。
如上所述,可用基本运动矢量候选的最大数量可以是通过指示在[表16]中所述的合并候选的最大数量的信令所指示的值,并且该值可以被表示为MaxNumMergeCand。
参考图24,仅当指示合并候选的最大数量的MaxNumMergeCand大于1时,解码器才可以解析基本运动矢量索引。如果不存在基本运动矢量索引,例如,当尚未解析基本运动矢量索引因此不存在时,则解码器可以推断该值为0。这是因为即使在可用候选的最大数量为1时不执行信令,也可以执行该确定。
图25图示根据本发明的实施例的MMVD语法。在图22所示的语法结构的情况下,即使在不使用MMVD的情况下使用跳过模式或合并模式时,也总是解析MMVD标志。此外,在使用和不使用MMVD的两种情况下,都对基本运动矢量索引或合并索引进行解析。同时,在图25的实施例中,当在不使用MMVD的情况下使用跳过模式或合并模式时,可以不解析MMVD标志。尽管为了便于描述,主要在图25中描述了解码器,但是可以通过基本相同的方法将根据本实施例的编译过程应用于编码器。
根据本发明的实施例,可以将与基本运动矢量有关的语法和合并索引定义为彼此相同。例如,基本运动矢量索引和合并索引可以彼此相同。即,可以执行用于通过一个语法元素指示相应候选的信令。此外,根据本发明的实施例,解码器可以根据条件,解析与基本运动矢量有关的语法并且解析MMVD标志。当MMVD标志指示使用MMVD时,可以解析与MMVD有关的语法以及与基本运动矢量有关的语法。
例如,在解析合并索引之后,可以识别相应候选是否是可以用于MMVD的候选。当候选可以用于MMVD时,可以解析MMVD标志,而当候选不能用于MMVD时,可以不解析MMVD标志。当不存在MMVD标志时,可以推断不使用MMVD。例如,当MMVD的基本运动矢量的数量可以是在合并候选列表的前面(在小索引的方向上)的num_mmvd_baseCand个时,如果解析的索引小于num_mmvd_baseCand,则可以解析MMVD标志。否则,可以在不解析MMVD标志的情况下,确定不使用MMVD。在这种情况下,如果使用num_mmvd_baseCand个或更多个候选索引,则具有减少MMVD标志比特的优点。
参考图25,在解析合并索引之后,当合并索引小于num_mmvd_baseCand时,解析MMVD标志。num_mmvd_baseCand可以是可用于MMVD的基本运动矢量的候选的数量。此外,可以基于合并索引来确定MMVD的基本运动矢量索引。
图26图示根据本发明的实施例的MMVD语法。参考图26,MMVD标志可以被定位在比合并标志更高的位置。例如,解码器可以基于MMVD标志来确定是否解析合并标志。例如,这可以应用于不是跳过模式的情况。尽管为了便于描述,在图26中主要描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。
根据本发明的实施例,当MMVD标志指示使用了MMVD时,可以不解析合并标志。例如,可以从合并候选中确定MMVD的基本运动矢量候选,并且当MMVD标志指示使用MMVD时,解码器可以不解析合并标志。当使用MMVD时(MMVD标志为1),可以从合并标志推断使用了合并模式。参考图26,当使用跳过模式时,即,当cu_skip_flag为1时,解码器可以推断合并标志为1,而与MMVD的使用无关。此外,当合并标志不存在并且不使用跳过模式时,可以推断如果使用MMVD,则合并标志为1,而如果未使用MMVD,则合并标志为0。可替代地,在实施例中,当合并标志不存在并且不使用跳过模式时,解码器可以推断合并标志为1。此外,参考图26,在不是跳过模式的情况下,如果MMVD标志为1,则解码器可以解析与MMVD有关的语法,而如果MMVD标志为0,则解析合并标志。
根据本发明的实施例,当子块合并标志被定位为高于合并标志并且子块合并标志为1时,可以不解析合并标志并且可以推断合并标志为1。当子块合并标志被定位在高于MMVD标志并且子块合并标志为1,则可以不解析MMVD标志,并且可以推断MMVD标志为0。在本说明书中,为1的modeX_flag可以是指使用了modeX,而为0的modeX_flag可以是指不使用modeX。
图27图示根据本发明的实施例的MMVD语法。根据本发明的实施例,MMVD可以总是用于用作MMVD的基本运动矢量候选的候选列表中的一些候选。例如,当从合并候选列表中确定MMVD的基本运动矢量候选时,MMVD可以始终用于合并候选列表中的一些。例如,MMVD可以总是用于预定的候选索引。例如,当候选索引小于预设值时,可以总是使用MMVD。在这种情况下,可以根据候选索引确定是否使用MMVD。此外,可能不存在MMVD标志解析。
例如,在解析合并索引之后,当合并索引对应于指示使用MMVD的值时,可以确定使用MMVD。此外,在这种情况下,可以解析与MMVD有关的语法(例如,距离、方向、信令等)。尽管为了便于描述,在图27中主要描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。参考图27,可以总是使用MMVD,直到在合并候选列表的前面的num_mmvd_baseCand个候选为止。在这种情况下,当候选索引小于num_mmvd_baseCand时,可以确定使用MMVD,并且可以解析与MMVD有关的语法。
图28图示根据本发明的实施例的MMVD语法。根据本发明的实施例,解码器可以总是将MMVD用于用作MMVD的基本运动矢量候选的候选列表中的一些候选。例如,当从合并候选列表中确定了MMVD的基本运动矢量候选时,解码器可以总是将MMVD用于合并候选列表中的一些候选。例如,解码器可以总是将MMVD用于预定的候选索引。例如,当候选索引小于预设值时,可以总是使用MMVD。尽管为了便于描述,在图27中主要描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。
根据本发明的实施例,MMVD标志可以在语法结构中(或按语法解析顺序)被定位为高于合并标志。在这种情况下,当MMVD标志为1时,解码器可以解析与MMVD有关的语法。此外,当MMVD标志为1时,可以推断合并标志为1。当MMVD标志为0时,解码器可以解析合并标志。当合并标志为1时,解码器可以解析合并索引。在这种情况下,可能存在用于解析合并索引的其他条件。作为实施例,解码器可以在基于解析的合并索引修改合并索引后确定要实际使用的合并索引。例如,可以将要实际使用的合并索引确定为通过将解析的合并索引与小于解析的合并索引的值之中,总是使用MMVD的候选的数量相加而获得的值。例如,当确定总是将MMVD用于在候选列表前面的num_mmvd_baseCand个候选时,可以将通过将解析的合并索引和num_mmvd_baseCand相加而获得的值用作合并索引。当MMVD标志在合并标志之前并且MMVD标志为0时,可以从候选列表中排除使用MMVD的候选。
参考图27,MMVD标志位于合并标志前。此外,当MMVD标志为1时,解码器可以解析与MMVD有关的语法。当MMVD标志为0时,解码器可以解析合并标志。当MMVD标志为0并且合并标志为1时,解码器可以解析合并索引。在这种情况下,可能存在用于解析索引的附加条件。可以通过将解析的合并索引和num_mmvd_baseCand相加来确定要实际使用的合并索引,该num_mmvd_baseCand对应于可以用作MMVD的基本运动矢量的候选的数量。
图28图示根据本发明的实施例的MMVD语法。根据本发明的实施例,候选索引可以存在于指示候选索引是否使用模式的标志之前。例如,候选索引可以存在于MMVD标志或合并标志之前。在这种情况下,在解析候选索引之后,可以根据解析的索引是否是可以使用MMVD的候选来确定是否解析MMVD标志。例如,当解析的候选索引是可以使用MMVD的候选时,解析MMVD标志,而当所解析的候选索引是不能使用MMVD的候选时,不解析MMVD标志,并且可以推断MMVD标志为0。此外,当MMVD标志为0时,可以解析合并标志。通过该合并标志,可以确定是使用合并模式、子块合并模式、帧间模式、AMVP模式还是仿射帧间模式。尽管为了便于描述,在图28中主要描述了解码器,但可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。
例如,当可用于第一模式的候选数量为numb1且可用于第二模式的候选数量为num2,并且num1<num2时,如果解析了候选并且解析的索引大于或等于num1,则可以不解析用于确定第一模式和第二模式中的一个的语法(例如,指示是否使用第一模式的语法),并且可以推断不使用第一模式。当解析的索引小于num1时,可以解析用于确定第一模式和第二模式中的一个的语法。
参考图28,在解析合并索引之后,当合并索引小于对应于可以使用MMVD的候选数量的num_mmvd_baseCand时,可以解析MMVD标志。当合并索引大于或等于num_mmvd_baseCand时,可以不解析MMVD标志,并且在这种情况下,可以推断MMVD标志为0。当MMVD标志为1时,可以解析指示与MMVD有关的语法元素的距离索引(distance_idx)和方向索引(direction_idx)。当MMVD标志为0时,解析合并标志,因此,可以识别合并模式、子块合并模式、帧间模式、AMVP模式或仿射模式。
图29图示根据本发明的实施例的编译单元语法结构。如图29所示,当合并标志为1时,可以执行合并数据(即,merge_data)解析过程。尽管为了便于描述,在图29中主要描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。在实施例中,合并数据可以包括与合并有关的语法的一部分。此外,合并数据可以被称为合并数据语法。例如,合并数据可以包括当在上文所述的图21至28中,合并标志为1时执行的语法解析过程。此外,合并标志为1可以是指使用了合并模式。合并标志为1可以是指使用了不使用图6和[表1]指示的mvd_coding的帧间预测。
图30图示根据本发明的实施例的合并数据语法结构。如图29所述,当合并标志为1时,解码器可以解析(或调用)合并数据语法。尽管为了便于描述,在图30中主要描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。此外,如上所述,当使用合并模式或跳过模式时,合并标志被配置为1。
参考图30,在合并数据语法中,在语法元素之中,可以首先解析MMVD标志。MMVD标志可以是在识别出合并标志为1之后首先解析的语法。可以早于指示是否使用合并标志被配置为1的另一预测模式的信令来解析MMVD标志。MMVD标志可以是指示是否使用MMVD的信令。可以应用与[表16],以及图22至29中所述的实施例相同的方法。如图30所示,合并数据语法可以包括用于子块合并模式、多假设预测(或帧内和帧间组合预测)、三角形预测等的解码处理。
根据本发明的实施例,当生成预测块时,多假设预测可以是生成和组合两个或更多个预测块的方法。可替代地,当生成预测块时,多假设预测可以是使用帧间预测和帧内预测两者的方法。此外,当执行预测时,帧间预测和帧内预测可以是使用与当前块中包括的图片不同或相同的图片的方法。参考图30,多假设预测标志指示表明是否使用多假设预测的语法元素。
根据本发明的实施例,当预测当前块(例如,编译单元或预测单元)时,子块合并模式可以是以子块为单位执行运动补偿(即,以子块为单位确定运动矢量)的方法。根据实施例,子块合并模式可以包括诸如基于子块的时间MVP、仿射运动预测等的方法。参考图30,合并子块标志指示表明是否使用子块合并模式的语法元素。
此外,根据本发明的实施例,三角形预测是对当前块内不是矩形的区域执行运动补偿的方法。即,在三角形预测中,当前块内具有相同运动矢量的单元可以不是矩形。参考图30,三角形预测标志(即,merge_triangle_flag)指示表明是否使用三角形预测的语法元素。
根据本发明的实施例,可以在指示使用除MMVD之外的另一合并的信令(或语法元素)之前解析MMVD标志。指示使用除MMVD之外的另一合并的信令可以包括多假设预测标志、合并子块标志、合并三角形标志等。
参考图30,MMVD合并索引(即,mmvd_merge_idx)(或MMVD索引)指示语法元素,该语法元素指示哪个被用作MMVD的基本运动矢量。如果使用了MMVD,则可以推断合并索引是MMVD合并标志(即mmvd_merge_flag)(或MMVD标志)。
图31图示根据本发明的实施例的合并数据语法结构。图31的实施例可以是当合并标志为1时执行的合并数据语法的一部分。在图29中,尽管,在图31中主要描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。根据本发明的实施例,可以比合并索引更晚地解析MMVD标志。例如,可以在合并索引之后立即解析MMVD标志。例如,在不是合并数据语法前面的位置处可以不解析MMVD标志。即,在识别出合并标志为1之后,可以在解析不是MMVD标志的其他语法之后解析MMVD标志。
此外,根据本发明的实施例,如图21所示,可以从另一候选列表确定MMVD的基本运动矢量。作为实施例,可以从另一候选列表的一部分确定基本运动矢量。因此,如图25所示,根据实施例,可以基于与另一候选列表有关的索引来确定是否解析MMVD标志,该另一候选列表可以被用作MMVD的基本运动矢量。例如,可以比MMVD标志更早地解析与可以被用作MMVD的基本运动矢量的另一候选列表有关的索引。当与另一候选列表有关的索引指示可以将另一候选列表用作MMVD的基本运动矢量时,解析MMVD标志。否则,可以不解析MMVD标志。
参考图31,可以从合并候选确定MMVD的基本运动矢量。因此,作为实施例,当合并索引指示作为MMVD的基本运动矢量的可用性时,解析MMVD标志。否则,可以不解析MMVD标志。可替代地,当可以从合并候选列表的前面的n个候选中选择MMVD的基本运动矢量时,如果合并索引小于n(合并索引可以从0开始),则可以解析MMVD标志,而如果合并索引不小于n,则可以不解析MMVD标志。更具体地说,MMVD的基本运动矢量可以是合并候选列表的第一或第二候选。参考图31,当合并索引小于2,即0或1时,可以解析MMVD标志。合并索引可以指示合并候选索引。因此,与合并模式无关地,当合并索引指示MMVD不可用时,可以不解析MMVD标志,因此可以提高编译效率。
此外,可以从任何模式的候选列表中确定MMVD的基本运动矢量。根据本发明的实施例,当存在指示是否使用每种模式的多个信令时,可以在确定使用该模式之后解析MMVD标志。例如,当假设存在第一模式、第二模式和第三模式,并且基于第三模式确定MMVD,或者从第三模式的候选中确定MMVD的基本运动矢量时,在确定使用第三模式之后,可以解析MMVD标志。例如,可以通过指示是否使用第三模式的信令来确定使用第三模式。可替代地,例如,当确定不使用除了第三模式之外的可用模式,例如第一模式和第二模式,可以确定使用第三模式。例如,当存在子块合并模式、多假设预测、三角形预测、常规合并模式等,并且可以将MMVD应用于常规合并模式时,可以在确定使用上述列出的模式中的常规合并模式和MMVD之后解析MMVD标志。常规合并模式是用于使用相邻帧内编译块的运动信息执行帧间预测的模式,并且可以是常规视频压缩技术(例如,高效视频编译(HEVC))的合并模式。
此外,当基于与可以用作MMVD的基本运动矢量的另一候选列表有关的索引来解析MMVD标志时,不需要单独存在指示MMVD的基本运动矢量的信令。例如,在图23或图24中,诸如基本运动矢量索引的信令独立于合并索引存在。此外,参考图30,MMVD合并标志可以是指示MMVD的基本运动矢量的信令。根据本发明的实施例,MMVD合并标志可以不像图31中那样存在。例如,与MMVD有关的语法可以仅包括MMVD标志、指示MMVD距离的信令(图30至31中的mmvd_distance_idx),以及指示MMVD方向的信令(图30至31中的mmvd_direction_idx)。此外,可以通过合并索引来确定MMVD的基本运动矢量。因此,在图31的实施例中,可以不存在指示图30的MMVD的基本运动矢量的信令及其上下文模型。
根据本发明的实施例,可以在指示是否使用除了MMVD之外的任何合并模式的信令之后解析MMVD标志。参考图31,可以在合并子块标志、多假设预测标志(即,mh_intra_flag)和合并三角形标志(即,merge_triangle_flag)之后解析MMVD标志。此外,可以不与MMVD一起使用特定的合并模式。在这种情况下,当指示是否使用任何合并模式的标志指示不使用合并模式时,可以解析MMVD标志。参考图31,可以不与三角形预测一起使用MMVD,并且当合并三角形标志为0时可以解析MMVD标志。可替代地,可以不与MH帧内一起使用MMVD,以及当mh_intra_flag为0时,可以解析MMVD标志。可替代地,可以不与子块合并模式一起使用MMVD,并且当合并子块标志为0时,可以解析MMVD标志。
图32图示根据本发明的实施例的合并数据语法结构。图32的实施例可以是当图29中的合并标志为1时执行的合并数据语法的一部分。尽管为了便于描述,在图32中主要描述了解码器,但是可以通过基本相同的方法,将根据本实施例的编译过程应用于编码器。
根据本发明的实施例,可以在指示是否使用另一种模式的信令之后解析MMVD标志。可替代地,可以在指示是否使用不是合并标志被配置为1的MMVD的另一模式的信令之后解析MMVD标志。例如,可以在合并子块标志、多假设预测标志(即,mh_intra_flag)和合并三角形标志(即,merge_triangle_flag)之后解析MMVD标志。
此外,在实施例中,当不使用除MMVD之外的模式时,可以解析MMVD标志。例如,当合并子块标志为0时,可以解析MMVD标志。当多假设预测标志为0时,可以解析MMVD标志。当合并三角形标志为0时,可以解析MMVD标志。指示使用哪种模式的标志的值为0可以是指不使用该模式。当可以将MMVD应用于常规合并模式时,可以在确定使用常规合并模式或MMVD之后解析MMVD标志。
此外,在实施例中,当使用MMVD时,可以解析与MMVD有关的语法,而当不使用MMVD时,可以解析合并索引。可替代地,当使用MMVD时,解码器可以解析MMVD合并标志(即,mmvd_merge_flag)、MMVD距离索引(mmvd_distance_idx)和MMVD方向索引(mmvd_direction_idx),并且可以在不使用MMVD时解析合并索引。此外,当如图32所示,在指示是否使用另一种模式的标志之后解析MMVD标志时,指示MMVD的基本运动矢量的信令可以作为与合并索引分离的语法元素而存在。参考图32,指示MMVD的基本运动矢量的信令可以是MMVD合并标志。例如,可以在确定使用常规合并模式或MMVD之后解析MMVD标志。
根据本发明的实施例,可以从任何候选列表中确定MMVD的基本运动矢量,并且候选列表中的最大候选数量可以是可变的。例如,可以从较高级别语法中确定最大候选数量。较高级别语法可以是高于当前编译单元的级别的语法。例如,较高级别语法可以是序列、图片、切片或贴片级别的语法。根据实施例,在这种情况下,MMVD的基本运动矢量的最大候选数量可以遵循候选列表中,可以成为MMVD的基本运动矢量的最大候选数量。因此,当候选列表中可以成为MMVD的基本运动矢量的最大候选数量减少时,可以成为MMVD的基本运动矢量的候选的最大候选数量也会减小。
在实施例中,可以从合并候选列表中确定MMVD的基本运动矢量,并且合并候选的最大数量可以是MaxNumMergeCand。此外,可以从较高级别语法中确定MaxNumMergeCand。在这种情况下,可以成为MMVD的基本运动矢量的合并候选的最大数量可以等于或小于MaxNumMergeCand。相应地,如图32所示,可以根据MaxNumMergeCand来确定是否解析指示MMVD的基本运动矢量的信令。例如,当MaxNumMergeCand为1时,可以不解析指示MMVD的基本运动矢量的信令。当不存在指示MMVD的基本运动矢量的信令时,可以推断MaxNumMergeCand为0。
在另一个实施例中,当MaxNumMergeCand为1时,可以不使用MMVD。这是为了减少与MMVD有关的语法的信令开销。因此,当MaxNumMergeCand为1时,可以不解析MMVD标志。此外,当不存在MMVD标志时,可以推断MaxNumMergeCand为0。参考图32,仅当不使用多假设帧内预测时才可以解析合并三角形标志。如果合并三角形标志不存在,则可以推断MaxNumMergeCand为0。
根据本发明的实施例,可以存在不能一起使用的多个模式。例如,可能无法一起使用子块合并模式、三角形预测、多假设帧内预测和MMVD。可以根据预设顺序来解析指示是否使用了不能一起使用的多个模式中的每一个的信令。在这种情况下,仅当确定使用指示之前解析的多个模式中的其他模式的信令均指示不使用其他模式时,才可以解析指示是否使用多个模式中的任何模式的信令。
图33图示根据应用了本发明的实施例的处理视频信号的方法。参考图33,尽管为了便于描述主要描述了解码器,但是本发明不限于此,并且可以通过基本上相同的方法,将根据本实施例的基于多假设预测的视频信号处理方法应用于编码器。
在S3301中,解码器获取指示是否基于子块的合并模式被应用于当前块的第一语法元素。如上所述,作为实施例,第一语法元素可以是子块合并标志(或合并子块标志)。
在S3302中,当第一语法元素指示基于子块的合并模式不被应用于当前块时,解码器获取第二语法元素,该第二语法元素指示是否使用运动矢量差的合并模式被应用于当前块。如上所述,作为实施例,第二语法元素可以是MMVD标志(或MMVD合并标志)。
在S3303中,当第二语法元素指示使用运动矢量差的合并模式被应用于当前块时,解码器获取第三语法元素,该第三语法元素指示在当前块的合并候选列表中包括的候选当中的被用于当前块的帧间预测的候选。如上所述,作为实施例,第三语法元素可以是MMVD索引(或MMVD候选索引或MMVD候选标志)。
在S3304中,解码器获取与运动矢量差有关的信息。如上所述,作为实施例,获取与运动矢量差有关的信息的步骤可以包括获取指示运动矢量差的距离的第四语法元素的步骤和获取指示运动矢量差的方向的第五语法元素的步骤。如上所述,作为实施例,第四语法元素可以是距离索引(或MMVD距离索引),而第五语法元素可以是方向索引(或MMVD方向索引)。
在S3305中,解码器可以通过将由第三语法元素指示的候选的运动矢量与运动矢量差相加来推导当前块的运动矢量。
在S3306中,解码器使用当前块的运动矢量来生成当前块的预测块。
如上所述,作为实施例,第三语法元素可以指示在当前块的合并候选列表中的第一候选和第二候选当中被用于当前块的帧间预测的候选。
如上所述,作为实施例,当合并候选的最大数量大于1时,可以从比特流中解析第三语法元素,而当合并候选的最大数量不大于1时,可以将第三语法元素推断为0。
如上所述,作为实施例,当第一语法元素指示基于子块的合并模式被应用于当前块时,可以进一步包括获取第六语法元素的步骤,第六语法元素指示在当前块的子块合并候选列表中包括的候选当中被用于当前块的帧间预测的候选,并且可以基于当第一语法元素指示基于子块的合并模式被应用于当前块时,由第六语法元素指示的候选的运动矢量,以当前块中包括的至少一个子块为单位来推导当前块的运动矢量。如上所述,作为一个实施例,第六语法元素可以是子块合并索引(或合并子块索引)。
如上所述,作为实施例,当第一语法元素指示基于子块的合并模式被应用于当前块时,可以推断第二语法元素为0。
如上所述,作为实施例,当子块合并候选的最大数量大于1时,可以从比特流中解析第六语法元素,而当子块合并候选的最大数量不大于1时,可以推断第六语法元素为0。
本发明的实施例可以通过各种方式来实现。例如,本发明的实施例可以通过硬件、固件、软件或其组合来实现。
在通过硬件实现时,本发明的实施例可以通过一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程设备门阵列(FPGA)、处理器、控制器、微控制器、微处理器等来实现。
在通过固件或软件的实现中,根据本发明的实施例的方法可以以用于执行上述功能或操作的模块、过程、函数等的形式来实现。软件代码可以被存储在存储器中并由处理器执行。存储器可以位于处理器内部或外部,并且可以通过已知的各种方式与处理器交换数据。
一些实施例可以以包括由计算机可执行的指令(诸如由计算机执行的程序模块)的记录介质的形式来实现。计算机可读介质可以是可由计算机访问的随机可用介质,并且包括所有易失性和非易失性介质以及可分离和不可分离的介质。此外,计算机可读介质可以包括所有计算机存储介质和通信介质。计算机存储介质包括通过用于存储信息(诸如计算机可读指令、数据结构,程序模块或其他数据)的随机方法或技术实现的所有易失性、非易失性、可分离和不可分离的介质。通信介质包括计算机可读指令、数据结构、诸如程序模块的所调制的数据信号的其他数据或其他传输机制,并且包括随机信息传输介质。
根据本发明的描述仅是示例性的,并且本领域技术人员可以理解到,在不脱离本发明的技术思想或必要特征的情况下,可以容易地将本发明的实施例改变为其他详细形式。因此,上述实施例在所有方面均应被解释为示例,而不是限制性的。例如,以单数形式提及的每个元素可以以分布式方式实现,并且以分布式形式提及的元素也可以以组合形式实现。
本发明的范围由所附权利要求而不是详细描述限定。权利要求的含义和范围以及从其等同物的概念得出的所有改进或改进形式应被解释为包括在本发明的范围内。