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

文档序号:18832707发布日期:2019-10-09 03:59阅读:176来源:国知局
用于编码和解码运动信息的方法和装置与流程

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



背景技术:

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



技术实现要素:

根据本原理的一般方面,呈现了一种用于视频解码的方法,包括:在解码器处确定用于图片中的块的运动矢量候选者列表,以便对所述块进行解码,其中,用于所述块的运动矢量候选者列表中的运动矢量候选者不被编码器显式地发信号通知,而是在解码器处推导;在解码器处基于标准重新排序所确定的用于所述块的运动矢量候选者列表;在解码器处基于重新排序的运动矢量候选者列表确定用于所述块的运动矢量;以及在解码器处基于所确定的运动矢量对所述块进行解码。

根据本原理的另一个一般方面,呈现了一种用于视频编码的方法,包括:在编码器处确定用于图片中的块的运动矢量候选者列表,以便对所述块进行编码,其中,用于所述块的运动矢量候选者列表中的运动矢量候选者不被编码器显式地发信号通知,而是将在解码器处推导;在编码器处基于标准重新排序所确定的用于所述块的运动矢量候选者列表;在编码器处基于所述重新排序的运动矢量候选者列表确定用于所述块的运动矢量;以及在编码器处基于所确定的运动矢量对所述块进行编码。

根据本原理的另一个一般方面,呈现了一种用于视频解码的装置,包括:用于确定用于图片中的块的运动矢量候选者列表以便对所述块进行解码的部件,其中,用于所述块的运动矢量候选者列表中的运动矢量候选者不被编码器显式地发信号通知,而是在解码器处推导;用于基于标准重新排序所确定的用于所述块的运动矢量候选者列表的部件;用于基于所述重新排序的运动矢量候选者列表确定用于所述块的运动矢量的部件;以及用于基于所确定的运动矢量对所述块进行解码的部件。

根据本原理的另一个一般方面,一种用于视频编码的装置,包括:用于确定用于图片中的块的运动矢量候选者列表以便对所述块进行解码部件,其中,用于所述块的运动矢量候选者列表中的运动矢量候选者不被编码器显式地发信号通知,而是将在解码器处推导;用于基于标准重新排序所确定的用于所述块的运动矢量候选者列表的部件;用于基于所述重新排序的运动矢量候选者列表确定用于所述块的运动矢量的部件;以及用于基于所确定的运动矢量对所述块进行编码的部件。

在一个示例性实施例中,标准可以基于一个或多个先前编码或解码的块的一个或多个先前确定的运动矢量候选者列表。在另一示例性实施例中,标准可以基于先前确定的运动矢量候选者的统计数据。可以基于统计数据将所确定的用于块的运动矢量候选者列表重新排序为从较小到较大运动矢量的重新排序的运动矢量候选者列表,或者例如,当统计数据指示较小或较大的运动矢量候选者不可能被选择为包含在初始列表中时,可以基于统计数据移除在所确定的用于块的运动矢量候选者列表中的所确定的运动候选者中的一个或多个。

在另一示例性实施例中,指示重新排序的模式可以由编码器发信号通知给解码器。在另一示例性实施例中,块可以是在例如hevc中的合并块,或者块可以是合并块的子块。可以在帧速率上转换(fruc)推导过程中确定用于块的运动矢量候选者列表。可以基于运动矢量的匹配成本来确定用于块的运动矢量。可以在fruc模板模式中确定用于块的运动矢量,或者可以在fruc双边模式中确定用于块的运动矢量。

根据本原理的另一个一般方面,提供了被格式化为包含表示图片块的编码数据的视频信号,其中编码数据通过以下方式而被格式化:确定用于图片中的块的运动矢量候选者列表,以便对所述块进行解码,其中,用于所述块的运动矢量候选者列表中的运动矢量候选者不被编码器显式地发信号通知给解码器,而是在解码器处推导;基于标准重新排序所确定的用于所述块的运动矢量候选者列表;基于重新排序的运动矢量候选者列表确定用于所述块的运动矢量;以及基于所确定的运动矢量对所述块进行编码

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

附图说明

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

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

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

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

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

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

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

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

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

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

具体实施方式

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

在本申请中,术语“重建”和“解码”可以互换使用,并且术语“图片”和“帧”可以互换使用。经常地但并非一定地,在编码器侧使用术语“重建”,而在解码器侧使用“解码”。

hevc规范区分“块”和“单元”,其中“块”代表样本阵列中的特定区域(例如,亮度(luma),y),并且“单元”包含与块相关联的所有编码的颜色分量(y、cb、cr或单色)、语法元素和预测数据(例如,运动矢量)的并置块。

为了编码,将图片划分为具有可配置尺寸的正方形形状的编码树块(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}中选择第二空间运动候选者,同时保持搜索顺序,如这两组中所指示的。如果运动矢量候选者的数量不等于2,则可以包含时间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个片中,仅单个预测参考可用于帧间预测,从而使能对预测块的单预测。在b个片中,两个参考图片列表是可用的,并且可以使用单预测或双预测。在双预测中,使用来自参考图片列表中的每一个的一个参考图片。

在hevc中,对于4∶2∶0配置,用于运动补偿的运动信息的精度对亮度分量而言是四分之一样本(也称为四分之一像素或1/4像素)和对色度(chroma)分量而言是八分之一样本(也称为1/8像素)。7抽头或8抽头插值滤波器用于分数采样位置的插值,即,可以针对亮度对在水平和垂直方向两者上的全采样位置的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”模式。当前块的顶部和左侧相邻块被用作模板。通过定位具有最小匹配成本的块(460),例如,在模板之间具有最小sad(绝对差之和)的块(460),可以通过定位当前块的模板(420,430)与参考图片中的块的模板(440,450)之间的最佳匹配来推导运动信息。除sad之外的其他成本度量也可用于计算匹配成本。具体地,可以获得运动矢量作为当前块的并置块与最佳匹配块之间的位移。

在hevc中,双预测(b)片是可以使用至多两个运动矢量和两个参考索引利用帧内预测或帧间预测来解码的片,以预测每个块的样本值。在图4中也图示了具有另一组模板(440′,450′)的该双预测(b)块概念,另一组模板(440′,450′)具有在其他参考块(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候选者列表包含唯一的运动矢量,也就是说,从fruc列表中移除冗余运动矢量,并且fruc列表中的运动矢量彼此不同。在运动推导过程期间,通过取决于所使用的模式(模板模式或双边模式)的匹配成本来检查(620)fruc候选者列表,并且选择导致最小匹配成本的第一候选者(630)作为用于细化的起始点(mvstart)。

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

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

然后,进行基于相同匹配成本函数(模板模式或双边模式)围绕起始点(mvstart)的局部搜索,并且选择导致最小匹配成本的mv作为用于块的mv(mvblock)。

fruc合并模式

对于使用fruc模式的“合并”块,运动矢量候选者列表包含来自下列的唯一运动矢量:

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

-单边运动矢量。对于块,在来自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)运动矢量,即,以1/4像素精度用如图7(a)所示的菱形图案搜索。图7(a)中的每个矢量表示将添加到运动矢量以便细化运动矢量的某个精度的小δ值(即,细化矢量)。

将细化矢量添加(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)。

对于“合并”块,如作为方法800的图8所示,利用用于块的推导的运动矢量(mvblock)作为起始点在子块级别进一步细化运动信息。对从中选择细化的运动矢量(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工具中,存在用于寻找潜在的运动矢量候选者的两种不同的过程,例如,一个用于整个合并块,如图6所示,以及一个用于合并块的子块,如图8所示。如先前描述的,这些过程类似。基本上,构造了运动矢量预测器候选者的初始列表(或双预测(b)图片的两个列表)。然后,计算每个候选者的匹配成本,以便隔离最佳候选者作为具有最低匹配成本的第一确定候选者。再次如先前结合图6和图8示出和描述的,最后朝向最小可达成本细化该最佳候选者。

同样,如先前已经描述的,图6和图8中的两个不同过程之间的一个主要差异是在与两个不同过程对应的唯一运动矢量候选者的各个预定义或预定列表中的差异:

·对于如图6所示的整个合并块的过程,所确定的运动矢量候选者的初始列表的顺序如下:(i)合并块的所有唯一运动矢量候选者,以及(ii)所有唯一“单边”运动矢量。

·对于用于如图8所示的合并块的子块的过程,所确定的运动矢量候选者的初始列表的顺序如下:(i)在例如图6的过程中确定的整体合并块的最佳细化运动矢量候选者,(ii)空运动矢量,(iii)与子块相关联的并置块和右下方并置块的缩放运动矢量,(iv)缩放的“单边”运动矢量,以及(v)如果使用相同参考图片,则顶部和左侧相邻运动矢量。

再者,如前面已经提到的,在fruc中,在用于块或子块的运动矢量候选者列表中的运动矢量候选者未被编码器显式地发信号通知,而是如上面所描述的基于各个预定顺序在解码器处推导。因此,本原理认识到可以通过重新排序初始预定候选者和/或通过在任何计算之前从预定fruc列表中移除一个或多个候选者来改进现有fruc推导过程并且降低其复杂性。因此,目标是基于可以全局或本地预定义的某些标准来从有序候选者列表中移动和/或移除某些候选者以生成自适应列表。为了便于标记,我们有时也可以将候选者列表中候选者的移动或移除称为运动矢量候选者的“重新排序”。根据本原理的示例性实施例,可以在编码器和解码器两者处生成自适应列表,也不需要编码器显式地发信号通知来指示解码器在自适应列表中的修改的运动矢量候选者。

根据本原理,呈现了允许重新排序运动矢量候选者的不同的可能标准。例如,标准可以基于统计数据,诸如,在编码或解码过程期间自适应地确定的列表中分别将要被选择或将要被呈现的、先前确定的候选者中的每一个的概率。它可以基于某些测量,诸如,例如,以下中的一个或多个:fruc中的相应匹配成本、预测的能量(例如,预测块的绝对亮度值的总和,或在预测块上进行的另一测量)、运动矢量的范数。因而,fruc候选者列表变得适应视频序列。

在一个示例性实施例中,可以由编码器发信号通知该自适应模式,使得可以在编码器和解码器二者中同时开始先前确定的运动候选者列表的自适应,以便同步编码和解码过程。在根据本原理的基于收集的统计数据的一个示例性实施例中,这还将允许要被开启和关闭示例性自适应模式。例如,编码器可以测试开/关模式两者,然后向解码器发信号通知开或关的选择。在另一个示例中,可以推断开或关模式,例如,如果相邻mv之间的差异小,则以开使用它(即,使用自适应模式),否则以关使用它。

此外,可以在视频图片的不同级别(例如,在整个块级别或在子块级别)评估示例性标准。也就是说,示例性标准可以基于针对一大组视频序列(例如帧或片)获得的统计数据,以便对在先前确定的列表中的先前定义的候选者顺序重新排序。可以在移除一个或多个先前确定的候选者之前或之后重新排序。在根据本原理的另一示例性方面中,示例性标准可以基于仅特定于块或子块的统计数据。

在另一示例性实施例中,重新排序标准可以基于例如关于一个或若干先前编码/解码的子块、块、cu、ctu和/或图片的测量或统计数据,其中测量或统计数据基于先前编码/解码的邻居,而不是当前正被编码/解码的这些。因此,根据本原理,可能对预定列表中的候选者进行重新排序,以基于统计数据来提高现有fruc推导过程的效率,例如,通过对先前编码/解码的块中先前确定的运动矢量候选者列表进行排列。

此外,在根据本原理的示例性实施例中,在一大组视频序列上收集的统计数据可以示出,例如,先前确定的顶部相邻候选者比左侧相邻候选者更常被选择,并且往往不会在一大组视频序列中选择左上方相邻候选者。因此,将顶部候选者移动到在其他候选者之前的列表的开头、从列表中移除左上方候选者、和/或将左上方候选者移动到列表的底部将是有利且更有效的。在根据本原理的另一非限制示例性实施例中,对于先前编码/解码的、与当前块相邻的块或帧,如果最常选择的候选者已成为右下方的共同定位的候选者,则调整用于当前块或帧的预定列表可能是有利的,以便转而从右下方的共同定位的候选者开始。此外,对于特定cu,如果相邻的先前编码/解码的cu中没有一个使用子pu时间候选者,则从该cu的合并列表中本地移除这些候选者可能是有利的。

在根据本原理的另一示例性实施例中,在一大组序列上收集的统计数据可以示出经常选择的运动矢量候选者是具有更小运动矢量的那些,和/或从不选择大于值s的运动矢量。对于那些视频序列,有利的是按照从较小到较大的运动矢量的顺序对预定列表重新排序,和/或移除具有大于s的运动矢量的候选者。在根据本原理的另一示例性实施例中,对于先前编码/解码的、与当前帧相邻的帧,如果最常选择的候选者已成为具有接近特定值t的范数的运动矢量的那个,则可以对用于当前帧的列表重新排序,以便从范数接近t的候选者开始。在另一示例性实施例中,对于特定cu,如果所有相邻的先前编码/解码的cu使用具有更大范数的候选者,则可以对候选者列表重新排序,使得这样的候选者是在用于此cu的重新排序列表的开头处。

在另一示例性实施例中,可以对如图6所示的用于整个块的fruc过程进行修改,以便可以交换单边和合并候选者的顺序,和/或可以从列表中移除4个单边候选者中的最后一个。对于子块,可以将子块的空间候选者移动到列表的第二位置,然后是零运动矢量、单边候选者。当使用子pu时间运动矢量预测器(称为atmvp)时,可以从用于子块的初始fruc列表中移除若干atmvp候选者。由于现有fruc工具选择第一个遇到的具有最低成本的候选者作为用于进一步细化的最佳候选者,因此这些候选者在初始fruc列表中的顺序影响哪个候选者可以被选择为最佳候选者。与列表的最后候选者相比,第一候选者略有优势。

因此,在一个示例性实施例中,根据本原理,可以将用于整个合并块和子块的预定fruc列表重新排序为以下示例性顺序:

对于整个块:

-(在4个amvp运动矢量中)前3个“单边”运动矢量,

-就像块是合并块那样获得的合并候选者。

对于子块:

-整体块中的最佳细化的运动矢量候选者,

-如果使用相同的参考帧,则顶部和左侧相邻运动矢量,

-与子块相关联的并置块和右下方并置块的缩放运动矢量。

在根据本原理的另一个非限制示例性实施例中,可以将附加的子pu时间运动矢量候选者添加到用于子块的列表的底部。在一个示例性实施例中,可以添加多达8个附加的子pu时间运动矢量预测器候选者。

因此,根据本原理,由于这些候选中的某些不被选择或很少被选择,因此可以减少或消除评估这些候选的机会,并因此降低现有推导过程的计算复杂性。因此,对于块和/或子块可以考虑独立地移除或移位从初始fruc列表中选择的一个或多个候选者,以便提高fruc推导过程的效率。

根据本原理的另一方面,仅重新排序和/或移除这些候选者中的某些,以便与复杂性降低相比限制编码效率的减小。在一个实施例中,例如,对于amvp和合并块,除了顶部和左侧相邻候选者之外,可以将新空间候选者的数量限制为2。在另一示例性实施例中,如果使用与当前块相同的参考帧,则合并块的子块可以已经使用顶部和左侧空间相邻运动矢量。这些候选者相当经常地被选择用于子块,但是被设置在fruc列表的末尾。因此,将两个新的空间邻居候选者添加到fruc列表(左上方和右上方的)并且将它们全部移动到fruc列表的第二位置是令人感兴趣的。

本原理认识到现有fruc工具的更复杂部分位于子块处理中,因为这样的子块的数量远大于整个合并块。因此,可以通过移除用于子块处理的初始fruc列表的某些候选者(诸如零运动矢量、单边运动矢量和/或某些子pu时间候选者)来降低复杂性。

因此,在根据本原理的一个示例性实施例中,唯一运动矢量候选者的列表被重新排序以包括以下内容:

对于整个块:

-仅对于amvp块,就像块是amvp块那样获得的amvp运动矢量候选者,

-就像块是合并块那样获得的合并候选者,

-单边运动矢量,

-如果使用相同的参考图片,则顶部和左侧相邻运动矢量。

对于子块:

-整个块的最佳细化的运动矢量候选者,

-如果使用相同的参考图片,则顶部、左侧、左上方和右上方相邻运动矢量,

-与子块相关联的并置块的缩放运动矢量,

-多达8个子pu时间运动矢量预测器(amvp)。

表1示出了根据本原理的重新排序预定候选者的一个示例性实施例的速率降低量的结果。如表1所示,总体上对于不同类别的输入样本,y、u、v样本的速率降低分别为0.24%、0.33%和0.29%bd(bjφntegaard-delta)速率降低,而几乎没有增加编码和解码运行时间(即分别为100%和99%)。因此,本原理可以在保持计算复杂性成本的同时提高压缩效率。

表1

图9图示了根据本原理的实施例的用于改进现有fruc推导工具的示例性方法900。示例性方法900可以用于编码或解码块,例如,以hevc的amvp模式和合并模式二者、以fruc推导过程的模板模式和双边模式两者,和/或用于整个块或整个块的子块。在910处,方法900确定用于图片中的块的运动矢量候选者的初始列表,以便对块进行编码或解码,其中,用于块的运动矢量候选者列表中的运动矢量候选者未被编码器显示地发信号通知,而是将在解码器侧推导。在920处,方法900基于标准对所确定的用于块的运动矢量候选者列表重新排序。在重新排序期间,也可以从列表中移除某些运动矢量候选者。在930处,方法900基于重新排序的运动矢量候选者列表确定用于块的运动矢量。在940处,方法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候选者列表中。

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

在某些实施例中,基于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