用于对运动信息进行编码和解码的方法和装置与流程

文档序号:18873781发布日期:2019-10-14 20:08阅读:217来源:国知局
用于对运动信息进行编码和解码的方法和装置与流程

本实施例一般地涉及用于视频编码和解码的方法和装置,并且更具体地涉及用于对运动信息进行编码和解码的方法和装置。



背景技术:

为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来影响(leverage)视频内容中的空间和时间冗余。通常,使用帧内或帧间预测来开发帧内或帧间相关,然后对原始图像与预测图像之间的差(通常称为预测误差或预测残差)进行变换、量化和熵编码。为了重建视频,通过与预测、变换、量化和熵编码相对应的逆处理对压缩数据进行解码。



技术实现要素:

根据本原理的一般方面,提出一种视频解码的方法,包括:对于图片中的双预测(bi-predictive)块,确定第一参考图片列表中的第一参考图片的第一候选;确定第二参考图片列表中的第二参考图片的第二候选;基于标准来选择第一候选和第二候选中的一个;将第一候选和第二候选中的所选择的一个包括在该块的运动矢量候选列表中,其中第一候选和第二候选中的另一个不包括在运动矢量候选列表中;基于运动矢量候选列表来确定该块的运动矢量;以及基于所确定的运动矢量对该块进行解码。

根据本原理的另一一般方面,提出一种视频编码的方法,包括:对于图片中的双预测块,确定第一参考图片列表中的第一参考图片的第一候选;确定第二参考图片列表中的第二参考图片的第二候选;基于标准来选择第一候选和第二候选中的一个;将第一候选和第二候选中的所选择的一个包括在该块的运动矢量候选列表中,其中第一候选和第二候选中的另一个不包括在运动矢量候选列表中;基于运动矢量候选列表来确定该块的运动矢量;以及基于所确定的运动矢量对该块进行编码。

根据本原理的另一一般方面,提出了一种用于视频解码的装置,包括:用于对于图片中的双预测块,确定第一参考图片列表中的第一参考图片的第一候选的部件;用于确定第二参考图片列表中的第二参考图片的第二候选的部件;用于基于标准来选择第一候选和第二候选中的一个的部件;用于将第一候选和第二候选中的所选择的一个包括在该块的运动矢量候选列表中的部件,其中第一候选和第二候选中的另一个不包括在运动矢量候选列表中;用于基于运动矢量候选列表来确定该块的运动矢量的部件;以及用于基于所确定的运动矢量对该块进行解码的部件。

根据本原理的另一一般方面,提出了一种用于视频编码的装置,包括:用于对于图片中的双预测块,确定第一参考图片列表中的第一参考图片的第一候选的部件;用于确定第二参考图片列表中的第二参考图片的第二候选的部件;用于基于标准来选择第一候选和第二候选中的一个的部件;用于将第一候选和第二候选中的所选择的一个包括在该块的运动矢量候选列表中的部件,其中第一候选和第二候选中的另一个不包括在运动矢量候选列表中;用于基于运动矢量候选列表来确定该块的运动矢量的部件;以及用于基于所确定的运动矢量对该块进行编码的部件。

在示例性实施例中,可以在帧速率上转换(fruc)推导处理的模板模式中确定第一候选和第二候选。在另一示例性实施例中,可以分别基于第一候选的匹配成本(cost)和第二候选的匹配成本来确定第一候选和第二候选。

该标准可以基于第一候选的匹配成本与第二候选的匹配成本的比率。该标准可以基于通过第一候选的模板面积归一化(normalize)的第一候选的匹配成本与通过第二候选的模板面积归一化的第二候选的匹配成本之间的差。如果第一候选的匹配成本与第二候选的匹配成本的比率超过阈值,则可以将第二候选确定为包括在运动矢量候选列表中。该块可以在例如hevc的amvp模式或合并(merge)模式中。

根据本原理的另一一般方面,提供一种被格式化为包括代表图片的块的经编码数据的视频信号,其中该经编码数据通过以下被格式化:对于图片中的双预测块,确定第一参考图片列表中的第一参考图片的第一候选;确定第二参考图片列表中的第二参考图片的第二候选;基于标准来选择第一候选和第二候选中的一个;将第一候选和第二候选中的所选择的一个包括在该块的运动矢量候选列表中,其中第一候选和第二候选中的另一个不包括在运动矢量候选列表中;基于运动矢量候选列表来确定该块的运动矢量;以及基于所确定的运动矢量对该块进行编码。

本实施例还提供一种计算机可读存储介质,其上存储有指令以用于根据上述方法对视频数据进行编码或解码。本实施例还提供一种计算机可读存储介质,其上存储有根据上述方法生成的比特流。本实施例还提供一种用于传送根据上述方法生成的比特流的装置。

附图说明

图1图示了示例性hevc(高效视频编码)视频编码器的框图。

图2a是描绘当前块的五个空间候选{a1,b1,b0,a0,b2}的位置的图示示例,以及图2b是描绘使用amvp(高级运动矢量预测)的示例性运动矢量表示的图示示例。

图3图示了示例性hevc视频解码器的框图。

图4图示了使用模板模式来推导当前块的运动信息。

图5a、图5b和图5c图示了使用双向(bilateral)模式来推导当前“合并”块的运动信息。

图6图示了实现fruc(帧速率上转换)工具或推导的示例性方法。

图7示出了用于运动搜索的菱形(diamond)图案和十字(cross)图案。

图8示出了在fruc推导工具中针对“合并”块在子块级细化(refine)运动信息的方法。

图9示出了根据本原理改进现有fruc推导工具的示例性方法。

图10图示了其中可以实现本原理的示例性实施例的各个方面的示例性系统的框图。

具体实施方式

图1示出了示例性hevc编码器100。为了对具有一个或多个图片的视频序列进行编码,将图片分割成一个或多个切片(slice),其中每个切片可以包括一个或多个切片片段。将切片片段组织成编码单元、预测单元和变换单元。

在本申请中,术语“重建的”和“解码的”可被互换地使用,并且术语“图片”和“帧”可被互换地使用。通常但不是必须地,在编码器侧使用术语“重建的”,而在解码器侧使用“解码的”。

hevc规范在“块”与“单元”之间进行区分,其中“块”寻址样本阵列(例如,亮度,y)中的特定区域,而“单元”包括所有经编码色彩分量(y、cb、cr或单色)的同位(collocated)块、语法元素和与块相关联的预测数据(例如,运动矢量)。

针对编码,将图片分割成具有可配置大小的方形的编码树块(ctb),并且将连续的一组编码树块分组成切片。编码树单元(ctu)包含经编码色彩分量的ctb。ctb是分割成编码块(cb)的四叉树的根,并且可以将编码块分割成一个或多个预测块(pb)并形成分割成变换块(tb)的四叉树的根。对应于编码块、预测块和变换块,编码单元(cu)包括预测单元(pu)和树形结构的变换单元(tu)集合,pu包括所有色彩分量的预测信息,并且tu包括每个色彩分量的残差编码语法结构。亮度分量的cb、pb和tb的大小适用于对应的cu、pu和tu。在本申请中,可以使用术语“块”来指代ctu、cu、pu、tu、cb、pb和tb中的任一个。另外,也可以使用“块”来指代宏块和分区,如h.264/avc或其他视频编码标准中指定的那样,并且更一般地指代各种大小的数据阵列。

在示例性编码器100中,通过编码器元件对图片进行编码,如下所述。要编码的图片以cu为单元进行处理。使用帧内或帧间模式对每个cu进行编码。在以帧内模式对cu进行编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)帧内模式或帧间模式中的哪一个用于对cu进行编码,并且通过预测模式标志来指示帧内/帧间决策。通过从原始图像块中减去(110)预测的块来计算预测残差。

根据相同切片内的重建的相邻样本来预测帧内模式中的cu。在hevc中,35个帧内预测模式的集合是可用的,其包括dc、平面和33个角度预测模式。根据邻近于当前块的行和列来重建帧内预测参考。使用来自先前重建的块的可用样本,该参考在水平和垂直方向上延伸块大小的两倍。在角度预测模式用于帧内预测时,可以沿着角度预测模式所指示的方向来复制参考样本。

可以使用两个不同选项对当前块的适用亮度帧内预测模式进行编码。如果适用模式被包括在三个最可能模式(mpm)的构建列表中,则通过mpm列表中的索引以信号通知该模式。否则,通过模式索引的固定长度二值化来以信号通知该模式。从顶部和左侧相邻块的帧内预测模式推导三个最可能模式。

对于帧间cu,将对应的编码块进一步分割成一个或多个预测块。在pb级上执行帧间预测,并且对应的pu包含关于如何执行帧间预测的信息。可以以两种方法、即“合并模式”和“高级运动矢量预测(amvp)”来以信号通知运动信息(即,运动矢量和参考图片索引)。

在合并模式中,视频编码器或解码器基于已编码块来组装候选列表,并且视频编码器以信号通知候选列表中的候选之一的索引。在解码器侧,基于以信号通知的候选来重建运动矢量(mv)和参考图片索引。

合并模式中的可能候选的集合包括空间相邻者候选、时间候选和所生成候选。图2a示出了当前块210的五个空间候选{a1,b1,b0,a0,b2}的位置,其中a0和a1在当前块的左侧,并且b1、b0、b2在当前块的顶部。对于每个候选位置,根据a1、b1、b0、a0、b2的顺序来检查可用性,并且然后移除候选中的冗余。

参考图片中的同位位置的运动矢量用于时间候选的推导。基于切片来选择适用参考图片并将其在切片首标中指示,并且时间候选的参考索引总被设置为iref=0。如果同位pu的图片和从其预测同位pu的参考图片之间的poc距离(td)与当前图片和包含同位pu的参考图片之间的距离(tb)相同,则同位运动矢量mvcol可以直接用作时间候选。否则,缩放后的运动矢量tb/td*mvcol用作时间候选。取决于当前pu定位在哪里,通过当前pu的右下或中心处的样本位置来确定同位pu。

在切片首标中指定合并候选的最大数量n。如果合并候选的数量大于n,则仅使用前n-1个空间候选和时间候选。否则,如果合并候选的数量小于n,则利用作为已存在候选的组合的所生成候选、或者空的候选,将候选集合填充直到最大数量n。在合并模式中使用的候选可以在本申请中称为“合并候选”。

如果cu指示跳过模式,则仅在合并候选列表大于1时指示合并候选的适用索引,并且不为cu编码另外的信息。在跳过模式中,应用运动矢量而没有残差更新。

在amvp中,视频编码器或解码器基于从已编码块确定的运动矢量来组装候选列表。然后,视频编码器以信号通知候选列表中的索引以识别运动矢量预测器(mvp)并以信号通知运动矢量差(mvd)。在解码器侧,将运动矢量(mv)重建为mvp+mvd。适用参考图片索引也被显式地编码在amvp的pu语法中。

在amvp中,仅选择两个空间运动候选。第一空间运动候选选自左侧位置{a0,a1},而第二空间运动候选选自上方位置{b0,b1,b2},同时保持如两个集合中指示的搜索顺序。如果运动矢量候选的数量不等于二,则可以包括时间mv候选。如果候选集合仍未完全填充,则使用零运动矢量。

如果空间候选的参考图片索引对应于当前pu的参考图片索引(即,使用相同的参考图片索引或二者都使用长期参考图片,独立于参考图片列表),则直接使用空间候选运动矢量。否则,如果两个参考图片都是短期参考图片,则根据当前图片与当前pu的参考图片之间的距离(tb)以及当前图片与空间候选的参考图片之间的距离(td)来缩放候选运动矢量。在amvp模式中使用的候选可以在本申请中称为“amvp候选”。

为了便于表示,将在编码器侧以“合并”模式测试的块或者在解码器侧以“合并”模式解码的块称为“合并”块,并且将在编码器侧以amvp模式测试的块或者在解码器侧以amvp模式解码的块称为“amvp”块。

图2b图示了使用amvp的示例性运动矢量表示。对于要编码的当前块(240),可以通过运动估计来获得运动矢量(mvcurrent)。使用来自左侧块(230)的运动矢量(mvleft)和来自上方块(220)的运动矢量(mvabove),可以从mvleft和mvabove中选择运动矢量预测器作为mvpcurrent。然后,可以将运动矢量差计算为mvdcurrent=mvcurrent-mvpcurrent。

可以使用用于预测的一个或两个参考图片来执行运动补偿预测。在p切片中,仅单个预测参考可以用于帧间预测,实现预测块的单预测(uni-prediction)。在b切片中,两个参考图片列表是可用的,并且可以使用单预测或双预测。在双预测中,使用来自每个参考图片列表的一个参考图片。

在hevc中,针对4:2:0配置,用于运动补偿的运动信息的精度(precision)对于亮度分量是四分之一样本(也称为四分之一像素(quarter-pel)或1/4像素)并且对于色度分量是八分之一样本(也称为1/8像素)。7抽头或8抽头内插滤波器用于分数样本(fractional-sample)位置的内插,即,对于亮度可以寻址水平和垂直方向二者上的全样本位置的1/4、1/2和3/4。

然后,对预测残差进行变换(125)和量化(130)。对量化的变换系数以及运动矢量和其他语法元素进行熵编码(145)以输出比特流。编码器也可以跳过变换并且在4×4tu的基础上将量化直接应用于未变换的残差信号。编码器也可以绕过变换和量化二者,即,在不应用变换或量化处理的情况下直接对残差进行编码。在直接pcm编码中,不应用预测,并且将编码单元样本直接编码到比特流中。

编码器对经编码块进行解码以提供用于进一步预测的参考。对量化的变换系数进行去量化(140)和逆变换(150)以对预测残差进行解码。将解码的预测残差和预测的块组合(155),重建图像块。将环内滤波器(165)应用于重建的图片,例如,以执行去块/sao(样本自适应偏移)滤波以减少编码伪像。将经滤波的图像存储在参考图片缓冲器(180)。

图3图示了示例性hevc视频解码器300的框图。在示例性解码器300中,通过解码器元件对比特流进行解码,如下所述。视频解码器300通常执行与如图1中描述的编码通道相对的解码通道,其执行视频解码,作为编码视频数据的一部分。

具体地,解码器的输入包括视频比特流,其可以由视频编码器100生成。首先对比特流进行熵解码(330)以获得变换系数、运动矢量和其他编码信息。对变换系数进行去量化(340)和逆变换(350)以对预测残差进行解码。将解码的预测残差和预测的块组合(355),重建图像块。预测块可以从帧内预测(360)或运动补偿预测(即,帧间预测)(375)获得(370)。如上所述,可以使用amvp和合并模式技术来推导用于运动补偿的运动矢量,其可以使用内插滤波器来计算参考块的亚整数样本的内插值。将环内滤波器(365)应用于重建的图像。将经滤波的图像存储在参考图片缓冲器(380)。

由联合视频探索小组(jvet)在参考软件jem(联合探索模型)中开发基于帧速率上转换技术的帧速率上转换(fruc)模式或推导。利用fruc模式,在解码器侧推导块的运动信息,无需mvp信息的显式语法。fruc处理是完全对称的,即,在编码器和解码器执行相同的运动推导操作。

可以在jem中的fruc模式中使用两种方法,即双向匹配和模板匹配。具体地,对于“合并”块,可以使用双向匹配和模板匹配二者,而对于“amvp”块,仅可以使用模板匹配。在hevc中,“合并”块或“amvp”块对应于应用相同预测的pb。

对于合并模式,可以通过比特流中的专用标志来以信号通知对给定块使用基于fruc的解码器侧运动矢量推导。存在指示fruc模式是否可以用于“合并”块的sps标志,以及指示fruc是否局部用于该块的fruc标志。如果局部使用fruc,则使用fruc合并模式,否则使用hevc合并模式。在fruc合并模式中,在解码器推导块的运动矢量,无需运动信息的显式语法,并且类似于hevc合并模式,不使用mvd。在使用fruc合并模式时,以信号通知附加fruc模式标志以指示使用哪个模式(用于双向匹配的双向模式,或者用于模板匹配的模板模式)来推导块的运动信息。

对于amvp模式,如果sps标志允许fruc模式,则“amvp”块试图在模板模式中推导运动矢量作为fruc候选,并且放置fruc候选作为amvp候选列表中的第一个。在解码器侧,对运动矢量差(mvd)进行解码,并且从amvp列表识别运动矢量预测器(mvp),然后将运动矢量解码为mv=mvp+mvd。

图4图示了使用模板模式来推导当前块410的运动信息。当前块可以在“合并”或“amvp”模式中。使用当前块的顶部和左侧相邻块作为模板。可以通过在当前块的模板(420,430)与参考图片中的块的模板(440,450)之间定位最佳匹配、通过在模板之间以最小匹配成本(例如,以最小sad(绝对差之和))定位块(460),来推导运动信息。除sad之外的其他成本度量也可以用于计算匹配成本。具体地,可以作为当前块的同位块与最佳匹配块之间的位移,获得运动矢量。

在hevc中,双预测(b)切片是可以以使用至多两个运动矢量和两个参考索引来预测每个块的样本值的帧间预测或帧内预测来解码的切片。该双预测(b)块概念也以另一组模板(440’,450’)在图4中示出,具有在另一参考块(460)的相反方向上的另外的参考块(460’)。而且,如图4中所示,参考块中的一个(460)出现在参考索引列表0中,而参考块中的另一个(460’)出现在另一参考索引列表1中,反之亦然。

图5a图示了使用双向模式来推导当前“合并”块510的运动信息。两个参考列表用于双向模式,并且因此双向模式仅对b帧有效。在连续运动轨迹的假设下,使用沿着当前块(510)的运动轨迹的两个块(520,530)来推导当前块的运动信息。

这里使用一对参考图片,一个来自列表0(l0),并且另一个来自列表1(l1)。根据每对参考图片,可以构建两个不同的预测器:(i)使用来自l0的运动矢量和l1中的缩放版本,或(ii)使用来自l1的运动矢量和l0中的缩放版本。为了便于表示,我们将参考图片列表称为“主要”列表,从该“主要”列表中选择运动矢量,并且将另一个列表称为“次要”列表,在该“次要”列表使用缩放版本。

在参考图片关于当前图片对称时,如图5a中所示,将缩放因子减小到-1。如果没有关于当前图片的对称图片可用,则选择第二列表中与当前图片最接近的参考图片。参考图片“ref_idxl1-x”可以移动得更接近当前图片,如图5b中所示,或者甚至到达当前图片的另一侧,如图5c中所示。

可以通过以最小匹配成本(例如,以两个块之间的最小sad)定位两个不同参考图片中的该对块,来推导运动信息。具体地,可以作为当前块的同位块(550)与多数列表中的匹配块(530)之间的位移,获得运动矢量。这里,也可以将该对块(520,530)分别视为参考图片中的同位块(540,550)的模板。

图6图示了实现fruc工具的示例性方法600。方法600可以用于“合并”块或“amvp”块。对于fruc模式中的帧间块,推导(610)运动矢量候选列表。可以将用于fruc模式的运动矢量候选称为fruc候选,并且可以将用于fruc模式的运动矢量候选列表称为fruc列表或fruc候选列表。应注意,fruc候选列表包含独特的(unique)运动矢量,即,从fruc列表中移除冗余运动矢量,并且fruc列表中的运动矢量彼此不同。在运动推导处理期间,通过取决于所使用模式(模板模式或双向模式)的匹配成本来检查(620)fruc候选列表,并且选择(630)导致最小匹配成本的第一候选,作为用于细化的起始点(mvstart)。

由于双向模式使用两个列表(具有一个主要列表和从主要列表推导的具有运动矢量的缩放版本的另一个列表),所以获得具有最小成本的最佳候选也定义要使用的最佳列表(即,主要的一个)。随后,对于双向模式中的最佳识别的列表,执行进一步操作。

在模板模式中,参考图片在编码器被选择并且在比特流中被指示。例如,对于每个参考图片列表(用于p图片的列表0,用于b图片的列表0和列表1)获得一个最佳候选。随后,如果仅存在1个列表,则对于最佳参考图片列表执行进一步操作,或者如果存在2个列表,则对于一个接一个列表(列表0后面是列表1)执行进一步操作。在解码侧,从比特流对参考图片信息进行解码。

然后,执行起始点(mvstart)周围的基于相同匹配成本函数(模板模式或双向模式)的局部搜索,并且选择得到最小匹配成本的mv,作为块的mv(mvblock)。

frucmerge模式

对于使用fruc模式的“合并”块,运动矢量候选列表包括来自以下的独特的运动矢量:

-如上面针对hevc中的合并模式所讨论的空间、时间和/或零运动矢量;

-单向(unilateral)运动矢量。对于块,在来自l0(和l1)的每个可能的参考图片中,我们可以选择同位运动矢量,并且以当前图片和当前块的参考图片(即,具有同位运动矢量的图片)之间的距离(tb)与同位图片和同位块的参考图片之间的距离(td)的比率来缩放它们中的每一个,类似于时间运动矢量候选的推导处理。缩放的运动矢量称为单向运动矢量。如果tb与td的比率为1,则可以跳过缩放。可以逐个ctu来确定同位块。对于当前块(合并或amvp),可以通过关于当前块在(0,0)、(0,h/2)、(w/2,0)和(w/2,h/2)处的样本位置来确定同位块,其中h是当前块的高度,并且w是当前块的宽度。对于子块,通过关于当前子块在(0,0)处的样本位置来确定同位子块。

使用块的最佳候选(mvstart)作为起始点的运动信息的细化在若干个步骤中执行。一个步骤试图调整(640)当前精确度(accuracy)的运动矢量,即,以1/4像素精度、利用如图7(a)中所示的菱形图案来搜索。图7(a)中的每个矢量表示以一定精度要添加到运动矢量以便细化运动矢量的小的增量(delta)值(即,细化矢量)。

将细化矢量添加(640)到候选,并且将新成本计算为运动矢量成本(初始最佳候选(mvstart)与当前测试的运动矢量之间的x和y中的绝对差之和的m倍,其中m是fruc中使用的预定义因子,例如,m=4)和关联匹配成本的总和。这里使用的运动矢量成本是为了使最终细化的运动矢量保持与具有最小匹配成本的尚未细化的所选运动矢量接近。

如果所测试的新运动矢量之一具有低于当前最佳成本的成本,则将新运动矢量定义为新的最佳候选,并且将关联的新成本存储为新的最佳成本。在测试菱形图案中的所有点之后,使用最佳候选(如果被改变)作为新的起始点,并且将使用菱形图案递归地进行调整,直到无法找到新的最佳候选(即,没有新的更低成本)。

然后,使用如图7(b)中所示的十字图案,以1/4像素精确度来执行(640)一个单个步骤。最终,如果内部精度比1/4像素精细,则以1/8像素精确度来完成也使用十字图案的最后的单个步骤(650)。这里,内部精度是运动补偿的精度,其能够对分数样本位置进行内插,直到1/16、1/32或者甚至更高。

作为示例,我们假设在步骤630选择的初始最佳候选(mvstart)为(-3.3750,1.0000),具有283的匹配成本。第一细化递归地以1/4像素精确度使用菱形图案细化,直到无法找到具有更低成本的新候选:

οx中-2,即(-3.8750,1.0000),具有275的成本(具有mv成本=0.5000*m),

οx中-2,即(-4.3750,1.0000),具有270的成本(具有mv成本=1.0000*m),

οx中-2,即(-4.8750,1.0000),具有255的成本(具有mv成本=1.5000*m),

ο(-1,+1),即(-5.1250,1.2500),具有253的成本(具有mv成本=2.0000*m)。

然后,使用十字图案,以1/4像素精确度来完成单个步骤:

οy中+1,即(-5.1250,1.5000),具有250的成本(具有mv成本=2.2500*m)。

对于比1/4像素精细的内部精度,以1/8像素精确度将使用十字图案的最后的单个步骤实现为:

οy中+1,即(-5.1250,1.6250),具有244的成本(具有mv成本=2.3750*m)。

对于“合并”块,利用块的推导的运动矢量(mvblock)作为起始点,在子块级进一步细化运动信息,如图8中作为方法800所示。对于从中选择细化运动矢量(mvblock)的参考图片,执行子块级的细化。

特别地,在双向模式中,关于所选列表中的所选参考图片执行子块级细化。在模板模式中,如果存在一个参考图片列表,则关于所选参考图片执行子块级细化,并且如果两个参考图片列表可用,则关于两个列表中的所选参考图片执行子块级细化。因此,在双向模式和模板模式二者中,所有子块使用与针对整个块获得的列表(listblock)和参考图片索引(refblock)相同的参考列表和相同的参考图片索引。注意,为了区分术语“块”与其关联子块,我们也将“块”称为“整个块”。

为了执行子块细化,将块划分成具有至少4×4像素的大小的较小块(即,子块)。对于每个子块,执行新的与对于初始块(即,整个块)类似的处理。

子块细化(800)与初始块处理(600)之间的主要差异在于fruc候选列表。对于子块级细化,fruc列表(810)包含来自以下的独特的运动矢量:

i.初始块的最佳候选(mvblock)

ii.空的运动矢量

iii.缩放的tmvp(时间mvp),作为同位运动矢量的缩放版本,以及同位子块右下处的运动矢量的缩放版本

iv.基于子块的“单向”候选的缩放版本。应注意,单向运动矢量已经通过当前图片和同位图片之间的距离与同位图片和同位图片的参考图片之间的距离的比率来缩放。这里对于子块,将参考图片固定为整个块(mvblock)的参考图片,并且通过当前图片和参考图片之间的距离(tb)与当前图片和同位图片之间的距离(td)的比率来第二次缩放单向运动矢量。第二缩放允许基于tb与td的比率得到全局缩放,因为当前参考图片不与同位图片相同。

v.顶部和左侧相邻运动矢量(b1和a1),在使用与当前子块相同(或者与初始块相同,因为所有子块使用针对初始块选择的参考图片)的参考图片的情况下。

这些候选中的每个候选的匹配成本被计算并添加(820)到运动矢量成本(初始最佳候选(mvblock)与当前测试的候选之间的x和y中的绝对差之和的m倍),以便获得(830)遇到最小成本的第一候选,作为要细化的最佳候选。

最终,以与对于整个块类似的方式来细化子块的最佳候选(mvsub,start)。以1/4像素精确度递归地使用(840)十字图案来执行细化,直到无法找到新的最佳成本(作为运动矢量成本和匹配成本的总和),后面是如果内部精度比1/4像素精细,则以1/8像素精确度使用十字图案的单个步骤(850)。方法800的输出是fruc合并模式中的子块的运动矢量(mvsub-block)。方法800在编码器和解码器侧二者执行。使用运动矢量mvsub-block作为用于对fruc合并模式中的子块进行编码或解码的运动矢量,而不需要对运动信息的显式语法进行编码或解码。

frucamvp模式

用于amvp块的fruc模式以与对于“合并”块类似的方式进行,无需子块级的细化。fruc候选也基于如上面针对hevc中的合并模式所讨论的空间、时间和/或零运动矢量,以及单向运动矢量。然而,对于fruc,处理在合并块与amvp块之间有些不同。

在hevc合并模式中,在编码器侧和解码器侧二者,使用来自任何参考图片列表的任何参考图片,仅利用矢量构建一个fruc候选列表,然后所选fruc候选还定义列表和参考图片(参考图片信息不在比特流中传送)。

在hevcamvp模式中,例如通过测试每个可用参考图片和每个参考列表,在编码器侧选择参考图片(以及在b图片中的情况下的参考图片列表)。在一个示例中,对于b图片,当在l0中存在5个参考图片并且在l1中存在2个参考图片时,构建7个fruc列表,并且获得7个最佳矢量,然后选择7个最佳矢量之中的最佳。对于amvp模式,参考图片信息在比特流中被指示给解码器。在解码器侧,针对所选参考图片构建一个fruc候选列表。

当在amvp块中实现fruc工具时,fruc候选可被添加并插入作为第一候选。初始fruc列表与对于合并块(合并+单向)相同,但仅保留与所选参考图片相对应的运动矢量候选。具有最小成本的初始fruc列表中的第一个(mvstart)定义用于细化的最佳候选。在细化之后,将fruc候选(mvblock)添加到amvp候选列表。

特别地,利用菱形图案以1/4像素精确度递归地细化(640)最佳候选(mvstart)。然后,执行利用十字图案的1/4像素精确度的单个细化步骤(640),后面是如果内部精度比1/4像素精细,则利用十字图案的1/8像素精确度的最终单个步骤(650)。使用来自细化的输出(mvblock)作为amvp列表中的第一候选。如果针对块选择第一候选(即,fruc候选),则在编码器侧,对关联mvd和参考图片索引进行编码。在解码器侧,与编码器对称地推导fruc候选(mvblock),并且基于关联mvd和经解码的参考图片索引来获得用于对块进行解码的运动矢量。

如之前指出的,现有fruc推导处理工具使用两个不同种类的图案匹配模式,即模板匹配模式和双向匹配模式。在模板模式中,首先独立地处理两个参考图片列表(用于双预测切片)中的每个参考图片列表,然后进一步细化来自两个参考图片列表中的每个参考图片列表的最佳候选。来自两个参考图片列表的最佳候选在本申请中也称为“双预测对”。本原理认识到,为了提高当前fruc工具的性能,可以初始丢弃双预测对的一些候选,这会节省大量处理时间。根据本原理的示例性方面,丢弃决策可以取决于各种标准,诸如例如,两个竞争参考图片的匹配成本之间的比率,通过其相应的模板面积归一化的其匹配成本之间的差,等等。

根据本原理的另一示例性方面,所提出的应用于双预测切片的强制单预测可以仅用于使用模板模式和两个参考图片列表的fruc处理中,并且可以应用于例如hevc中的合并块或amvp块。

如之前指出的,在现有fruc工具中,存在两个不同的处理用于找到可能的运动矢量候选,一个用于初始块,如图6中所示,一个用于子块,如图8中所示。这些处理是类似的,如先前描述的那样。基本地,构建运动矢量预测器候选的初始列表。然后,计算每个候选的匹配成本,以便分离出最佳候选作为首先确定的候选,其具有最低匹配成本。该最佳候选最终朝向最小可达成本被细化,再次如先前结合图6和图8示出和描述的那样。

此外,当对于每个参考帧列表存在至少一个候选时,现有fruc工具中的模板模式使用双预测。根据本原理,可以通过丢弃双预测对中的一些最佳候选中的一个或多个来改进该工具中的模板模式,从而替代地使用单预测。在该示例性实施例中,通过决策标准来修改现有fruc工具,该决策标准允许通过在模板模式中丢弃双预测对的一些候选来强加单预测。

此外,对于现有fruc工具,通过对amvp块使用模板模式,针对特定参考图片列表的特定参考图片调用一次fruc工具。对于合并块和子块,现有fruc工具独立地为每个参考图片列表确定最佳运动矢量预测器及其关联参考帧。一旦对于每个参考图片列表存在至少一个要检查的候选,现有fruc工具就通过使用来自每个列表的两个最佳候选来提供双预测对。

根据本原理,可以通过丢弃双预测对的一些最佳候选来改进上述现有fruc工具中的模板模式,从而替代地创建单预测。在该示例性实施例中,通过决策标准来修改fruc工具,该决策标准允许通过在模板模式中丢弃双预测对的一些候选来强加单预测。例如,如果双预测对的两个可能的候选的成本之间的比率大于8、4或2(或另一值),则丢弃具有较大成本的候选(即,仅选择具有较小成本的候选),并且通过仅使用具有较小成本的候选及其相关联的来自特定参考图片列表的参考图片来形成单预测。

根据本原理的其他方面,还可以通过相应的模板面积对成本进行归一化。当针对模板模式的匹配成本是模板之间的sad时,通过模板面积(例如,像素的数量)进行的归一化将生成每个像素的平均sad。然后,可以使用一些阈值来调整取决于每个像素的该平均sad值的决策标准。在一个示例性实施例中,例如,如果较小归一化成本小于或等于5并且成本之间的比率大于4,或者如果较小归一化成本大于5并且成本之间的比率大于2,则丢弃具有较大归一化成本的候选,并且通过仅使用具有较小成本的候选及其相关联的来自特定参考图片列表的参考图片来形成单预测。

根据本原理的另一方面,还可以考虑会允许丢弃双预测对的一些候选的其他标准。此外,该决策标准可以应用在如图6和图8中所示的细化处理或决策的不同阶段。例如,它可以发生在处理结束时,细化(650,850)之后,恰在保存最佳候选预测器(关于mvblock,mvsub-block)之前。在另一非限制性的示例性实施例中,它可以刚好发生在最佳候选选择之后和细化之前(630,830)(关于mvstart,mvsub-start),从而允许节省处理的该复杂部分,但是具有低的精度(细化之前具有大的成本的候选可能在细化之后具有可接受的成本)。

在根据本原理的另一方面中,虽然针对jem3中的现有fruc工具及其模板模式来描述和采用以上修改后的fruc工具,但是本原理不限于此,而是可以应用于例如该工具的从来自两个或更多个参考图片列表的每个参考列表的最佳候选构建双预测的所有其他(新的)模式、或者从每个参考图片列表的独立候选构建双预测而不考虑单预测情况的所有其他(新的)工具。

此外,根据本原理,可以通过丢弃具有大的匹配成本(无论是否归一化)的所有候选来管理fruc工具的复杂性。实际上,非常大的匹配成本意味着该候选块的模板之间的距离远离当前块的模板之间的距离。因此,这样的候选似乎不是当前块的良好预测器,并且可以在不影响整体编码效率的情况下被丢弃。丢弃这些候选可以降低该工具的复杂性。

该类型的删除可以引入单预测预测器,其可以完全丢弃一些候选。例如,如果每个像素的平均sad变得大于128(在1024个可能值[-512,511]上的±128每个像素的平均亮度值),则丢弃对应的候选。

因此,引入用于丢弃来自双预测对的候选的决策标准,以便生成一些单预测。此外,还利用归一化成本限制来管理fruc工具的整体复杂性。在根据本原理的示例性实施例中使用的决策标准可以基于模板模式中的匹配成本之间的比率,取决于归一化成本之间的差。也就是说,它可以描述为:如果较小归一化成本小于或等于归一化阈值并且成本之间的比率大于下因子(lowerfactor),或者如果较小归一化成本大于归一化阈值并且成本之间的比率大于上因子(upperfactor),则丢弃具有较大归一化成本的候选,并且通过仅使用具有较小成本的候选及其相关联的来自特定参考图片列表的参考图片来形成单预测。

对于合并块和对于合并子块,可以将归一化阈值设置为不同的值。下因子和上因子也可以对于合并块和子块设置为不同的值。在该示例性实施例中,可以将两个归一化阈值设置为例如5,并且可以将两个下因子设置为4,以及可以将两个上因子设置为2。表1示出了根据本原理的该特定示例性实施例的速率降低量的结果。如表1中所示,整体对于不同类别的输入样本,y、u、v样本的速率降低分别为0.15%、0.19%和0.22%bd(-delta)速率降低,几乎没有增加编码和解码运行时间(即,分别为100%和101%)。因此,本示例性实施例可以在保持计算复杂性成本的同时提高压缩效率。

表1

根据另一示例性实施例,为了限制所提出工具的复杂性,可以刚好在最佳候选选择之后、即细化之前检查决策标准,以避免复杂的细化部分,如之前已经指出的。此外,在根据本原理的示例性实施例中,可以添加归一化成本限制,为其将每个像素的最大平均sad阈值设置为128。

图9图示了根据本原理的实施例的改进现有fruc推导工具的示例性方法900。如上所述,示例性方法900可以用于例如hevc的amvp模式和合并模式中、以及fruc推导处理的模板模式中的块。在910,方法900对于图片中的双预测(b)块,确定第一参考图片列表中的第一参考图片的第一候选。在920,方法900确定第二参考图片列表中的第二参考图片的第二候选。来自910和920的第一候选和第二候选对应于如前所述的双预测对。在930,方法900基于标准(例如,之前描述的那些标准)来选择第一候选和第二候选中的一个。在940,方法900将第一候选和第二候选中的所选择的一个包括在块的运动矢量候选列表中,而在运动矢量候选列表中跳过(即,不包括)第一候选和第二候选中的另一个。在950,方法900基于运动矢量候选列表来确定块的运动矢量。在960,方法900基于所确定的运动矢量对块进行解码或编码。

关于hevc标准或正在开发的jem软件描述各种实施例。然而,如之前已经指出的,本原理不限于hevc或jem,并且可以应用于其他标准、推荐及其扩展。上述各种实施例可以单独使用或组合使用。

在以上讨论中,首先在对应于pb的整个块测试fruc模式,并且然后可以针对合并模式将fruc模式应用于整个块的子块。在jem3.0中,qtbt(四叉树加二叉树)结构移除hevc中多个分区类型的概念,即,移除cu、pu和tu概念的分离。在qtbt块结构中,cu可以具有方形或矩形形状。首先通过四叉树结构分割编码树单元(ctu)。通过二叉树结构进一步分割四叉树叶片节点。将二叉树叶片节点命名为编码单元(cu),其用于预测和变换,无需任何进一步的分割。这意味着cu、pu和tu在新的编码qtbt块结构中具有相同的块大小。在jem中,cu包括不同色彩分量的编码块(cb)。

因此,对于jem3.0,可以首先在对应于cb的整个块测试fruc模式,并且然后可以针对合并模式将fruc模式应用于整个块的子块。更一般地,用于fruc模式的整个块可以是cb,并且与整个块相关联的子块是整个块的子分区。可以在cb级执行变换,并且可以在子块级执行运动补偿。

在jem3.0中,合并模式中存在若干个新的时间候选。这些时间候选可以包括在fruc候选列表中。

以上使用模板匹配和双向匹配来描述运动矢量推导的方法,其中对于合并模式,块的运动信息未以信号通知但是在解码器侧推导,以及其中对于amvp模式,块的mvp信息未以信号通知但是在解码器侧推导。在各种实施例中,用于模板匹配和双向匹配的模板可以与之前示出的不同,并且还可以使用其他运动推导方法。

在一些实施例中,将不同方法用于基于hevc的“amvp”块和“合并”块。更一般地,可以将“amvp”块视为对与mvp相关联的mvd进行编码或解码的块(即,“具有mvd”的块),并且可以将“合并”块视为在没有mvd的情况下对运动信息进行编码或解码的块(即“,没有mvd”的块)。

以上描述各种方法,并且每个方法包括用于实现所描述方法的一个或多个步骤或动作。除非为了方法的正确操作需要特定顺序的步骤或动作,否则可以对特定步骤和/或动作的顺序和/或使用进行修改或组合。

在本申请中使用各种数值,例如,不同的阈值、细化的迭代数量、最小子块的大小、或运动成本计算中使用的常数m。应注意,特定值用于示例性目的,并且本原理不限于这些特定值。

图10图示了示例性系统的框图,其中可以实现本原理的示例性实施例的各个方面。系统1200可以实施为包括下面描述的各种组件并且被配置为执行上述处理的设备。这样的设备的示例包括但不限于个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录系统、连接的家用电器和服务器。系统1200可以经由如图12中所示并且如本领域技术人员已知的通信信道通信地耦接到其他类似系统以及显示器,以实现上述示例性视频系统。

系统1200可以包括至少一个处理器1210,其被配置为执行加载在其中的指令,以用于实现如上所述的各种处理。处理器1210可以包括嵌入式存储器、输入输出接口和本领域中已知的各种其他电路。系统1200还可以包括至少一个存储器1220(例如,易失性存储器设备,非易失性存储器设备)。系统1200可以另外包括储存设备1240,其可以包括非易失性存储器,包括但不限于eeprom、rom、prom、ram、dram、sram、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,储存设备1240可以包括内部储存设备、附接储存设备和/或网络可访问的储存设备。系统1200还可以包括编码器/解码器模块1230,其被配置为处理数据以提供经编码视频或经解码视频。

编码器/解码器模块1230表示可以包括在设备中以执行编码和/或解码功能的模块。如已知的那样,设备可以包括编码和解码模块中的一个或二者。另外,编码器/解码器模块1230可以实现为系统1200的单独元件,或者可以作为硬件和软件的组合并入处理器1210内,如本领域技术人员已知的那样。

要加载到处理器1210上以执行上文描述的各种处理的程序代码可以存储在储存设备1240中,并且随后加载到存储器1220上以供处理器1210执行。根据本原理的示例性实施例,处理器1210、存储器1220、储存设备1240和编码器/解码器模块1230中的一个或多个可以在执行上文讨论的处理期间存储各种项中的一个或多个,包括但不限于输入视频、解码视频、比特流、等式、公式、矩阵、变量、运算和运算逻辑。

系统1200还可以包括通信接口1250,其使得能够经由通信信道1260与其他设备进行通信。通信接口1250可以包括但不限于被配置为传送和接收来自通信信道1260的数据的收发器。通信接口可以包括但不限于调制解调器或网卡,并且通信信道可以实现在有线和/或无线介质中。系统1200的各种组件可以使用各种合适的连接(包括但不限于内部总线、布线和印刷电路板)而连接或通信地耦接在一起。

可以通过由处理器1210实现的计算机软件、通过硬件或者通过硬件和软件的组合来执行根据本原理的示例性实施例。作为非限制性示例,可以通过一个或多个集成电路来实现根据本原理的示例性实施例。存储器1220可以是适合于技术环境的任何类型,并且可以使用任何适当的数据储存技术来实现,诸如作为非限制性示例的光存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。处理器1210可以是适合于技术环境的任何类型,并且可以涵盖作为非限制性示例的微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。

在此描述的实现方式可以例如以方法或处理、装置、软件程序、数据流或信号来实现。即使仅在单一形式的实现方式的背景下进行讨论(例如,仅作为方法进行讨论),但是所讨论的特征的实现方式也可以以其他形式(例如,装置或程序)来实现。装置例如可以实现在适当的硬件、软件和固件中。方法例如可以实现在诸如例如处理器(其通常涉及处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑器件)之类的装置中。处理器还包括通信设备,诸如例如计算机、蜂窝电话、便携式/个人数字助理(“pda”),以及便于最终用户之间的信息通信的其他设备。

对本原理的“一个实施例”或“实施例”或“一个实现方式”或“实现方式”的引用以及其其他变型意指结合实施例描述的特定特征、结构、特性等包括在本原理的至少一个实施例中。因此,在整个说明书中出现在各处的短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”以及任何其他变型的出现不一定都指代相同的实施例。

另外,本申请或其权利要求可以涉及“确定”各种信息。确定信息可以包括例如估计信息、计算信息、预测信息或从存储器取回信息中的一个或多个。

此外,本申请或其权利要求可以涉及“访问”各种信息。访问信息可以包括例如接收信息、(例如,从存储器)取回信息、存储信息、处理信息、传送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息中的一个或多个。

另外,本申请或其权利要求可以涉及“接收”各种信息。与“访问”一样,接收旨在为广义术语。接收信息可以包括例如访问信息或(例如,从存储器)取回信息中的一个或多个。此外,在诸如例如存储信息、处理信息、传送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,典型地以一种方式或另一种方式涉及“接收”。

如对于本领域技术人员将明显的那样,实现方式可以产生被格式化为携带例如可以被存储或传送的信息的各种信号。信息可以包括例如用于执行方法的指令或者由所描述的实现方式之一产生的数据。例如,可以将信号格式化为携带所描述的实施例的比特流。可以将这样的信号格式化为例如电磁波(例如,使用频谱的射频部分)或者基带信号。格式化可以包括例如对数据流进行编码以及以经编码数据流调制载波。信号携带的信息例如可以是模拟或数字信息。如已知的那样,可以通过各种不同的有线或无线链路来传送信号。可以将信号存储在处理器可读介质上。

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