掌桥专利:专业的专利平台
掌桥专利
首页

根据基于双线性插值的解码端运动矢量修正的片相似度不执行修正的方法

文献发布时间:2023-06-19 11:11:32


根据基于双线性插值的解码端运动矢量修正的片相似度不执行修正的方法

相关申请案交叉申请

本发明要求于2018年9月19日提交的申请号为IN201831035309的印度临时专利申请案的优先权。所述印度临时专利申请案的全部内容通过引用的方式并入在本文本中。

技术领域

本发明涉及使用解码端运动矢量修正的运动补偿以进行视频译码。具体地,本发明实施例涉及用于验证运动补偿参考片之间的对齐水平以及当所述两个运动补偿参考片之间的差值小于译码单元尺寸相关阈值时不执行修正的方法和装置。

背景技术

在视频压缩中,帧间预测是通过指定相对于当前块的运动矢量来使用之前解码的参考图像的重建样本的过程。这些运动矢量可以通过使用空间或时间运动矢量预测值译码为预测残差。运动矢量具有子像素精度。为了从重建的整数位置值导出参考帧(图像)中的子像素精度的像素值,插值滤波器被使用。双向预测是指导出当前块的预测值为两个预测块的加权组合的过程,使用两个参考图像区域中的两个运动矢量导出。在这种情况下,除了运动矢量之外,还需要对导出两个预测块的参考图像的参考索引进行译码。当前块的运动矢量还可以通过合并过程导出,其中,在不对任何运动矢量残差进行译码的情况下继续使用空间相邻块的运动矢量和参考索引。除了空间相邻块之外,之前译码的参考帧的运动矢量也被存储并用作时间合并选项,对运动矢量进行适当缩放,以考虑到当前帧到之前译码的参考帧的距离,当前帧到之前译码的参考帧的距离是相对于当前帧到当前块的参考帧的距离来说的。

图1示出了基于模板匹配的解码端运动矢量导出,其中,当前块的模板与参考图像中的参考模板匹配。参考图1,通过在当前图像(表示为“Cur Pic”)中找到模板(当前CU的顶部和/或左侧邻块)与参考图像(表示为“Ref0”)中模板尺寸相同的块之间的最接近匹配,采用模板匹配来导出当前译码单元(coding unit,CU)的运动信息。

图2示出了基于双边匹配的解码端运动矢量导出,其中使用运动轨迹上的两个参考块预测当前块。参考图2,根据两个参考图像Ref0和Ref1导出当前块(表示为“Curblock”)的运动信息。通过在参考图像Ref0和Ref1中的运动轨迹上找到与运动矢量MV0和MV1关联的两个块之间的最佳匹配,导出当前块Cur block的运动信息。当运动轨迹为直线时,参考图像Ref0关联的运动矢量MV0和参考图像Ref1关联的运动矢量MV1与当前图像与相应参考图像Ref0和Ref1之间的时间距离TD0和TD1成比例。

已经提供了几种用于执行解码端运动矢量修正或导出过程的方法,从而可以进一步减少运动矢量残差译码位。一种方法为模板匹配(template matching,TM)方法,使用与已经重建的当前块相邻的L形区域(如图1所示)作为模板,并标识最佳匹配的L形区域,使用绝对差值和或均值去除的绝对差值和等代价函数,在每一个参考图像中使用多个适当缩放的空间和时间运动矢量候选。然后,以最佳匹配候选为中心,在该中心周围的一定修正距离内执行进一步修正。在编码端,计算速率失真优化代价以决定单向预测(即,使用最佳匹配参考进行预测)和双向预测(即,通过平均前两个最佳匹配参考进行预测)。

另一种方法为双相匹配(bilateral matching,BM)方法。该方法通过在两个不同的参考图像中找到沿当前译码单元(coding unit,CU)运动轨迹的两个块之间的最接近匹配来导出当前CU的运动信息。如图2所示,假设存在连续运动轨迹,指向两个参考块的运动矢量MV0和MV1应与当前图像与两个参考图像之间的时间距离(即TD0和TD1)成比例。在当前图像在时间上位于两个参考图像之间时,且当前图像到两个参考图像的时间距离相同时,双边匹配成为基于镜像的双向运动矢量(motion vector,MV)。

在双边匹配合并模式中,由于CU的运动信息是根据两个不同参考图像中沿当前CU运动轨迹的两个块之间的最接近匹配导出的,因此总是使用双向预测。

可以指示(signal)表示模板匹配合并或双边匹配合并的显式合并模式,以将这些模式和不需要任何解码端运动矢量导出的默认合并模式进行区分。

在双边匹配模式中,时间距离被忽略,并且分别与过去和未来的参考帧中的相同运动矢量和相反运动矢量进行双边匹配。

在一些情况下,不指示合并索引,而在其它情况下,为了简化执行多个运动补偿的解码器复杂度,指示显式合并索引。

在另一种解码端运动矢量修正(decoder-side motion vector refinement,DMVR)方法的双边匹配模式中,首先使用从显式指示的合并索引获取的参考列表L0和L1中的预测块创建双向平均的模板,并对该模板执行双边匹配。如果有任何移动,则更新模板。此外,在一些情况下,在一次参考中执行修正,而通过将该修正运动矢量镜像对称来获取另一次参考中的运动矢量。修正在两次参考之间交替进行,直到中心位置的误差最小或达到最大迭代次数。

在一些修正过程中,首先执行CU级修正。然后,将CU级修正MV作为候选,进行子CU级多候选评估。在其它修正过程中,每个子CU可以针对最佳匹配候选执行其自己的修正。

在隐式解码端导出或修正过程中,编码器需要以与解码器完全相同的方式执行这些步骤,以便编码端重建与解码端重建相匹配。

在解码端运动矢量修正或导出过程中,通常仅使用亮度像素点。然而,色度也是使用用于亮度运动补偿的最终修正运动矢量(适当缩放以考虑任何色度下采样)进行运动补偿的。

由于合并运动矢量具有子像素精确度,因此最初通常在与每次参考中的相应子像素精度合并运动矢量的整数距离处执行修正。由于标准运动补偿计算代价高,通常使用双线性插值方法来创建执行整数距离修正所需的插值像素点值。其它现有技术提供了在修正结束时使用在整数距离位置处评估的代价函数值和在代价最低的位置处的代价函数值,以获得用于估计子像素增量运动矢量校正的参数误差面。一旦获得每次参考中的最终整数距离加上基于子像素距离的运动矢量校正,则执行最终的标准运动补偿。

发明内容

本发明实施例涉及用于确定与预定的译码单元尺寸相关阈值相比较的运动补偿参考片之间的对齐水平的方法和装置。通过确定与预定的译码单元尺寸相关阈值相比较的运动补偿参考片之间的对齐水平,可以节省解码端运动矢量修正迭代的计算操作,从而降低视频解码器中的功耗。

本发明提供了确定运动补偿参考片之间的对齐水平以减少运动矢量修正步骤的方法和装置。根据一种方法,视频解码器通过对合并运动矢量进行取整来确定所述对齐水平;通过使用取整后的运动矢量执行简单的运动补偿,来计算两个运动补偿参考片之间的绝对差值和(sum of absolute difference,SAD);确定所述SAD是否小于CU尺寸相关阈值。当所述SAD小于所述CU尺寸相关阈值时,所述解码器不执行其余的解码端运动矢量处理步骤,使用所述未取整的合并运动矢量执行最终运动补偿。在一个实施例中,可以将所述未取整的合并运动矢量在水平方向和垂直方向上取整到最近的整数样本位置,所述最终运动补偿包括对所述整数位置的样本求平均值。在另一个实施例中,可以将所述未取整的合并运动矢量在水平方向和垂直方向上取整到最近的半像素的样本位置,得到半像素位置样本,且所述最终运动补偿包括对所述半像素位置样本求平均值。该方法的优点在于,每当所述SAD小于预定阈值时,所述视频解码器确定运动补偿参考片之间的对齐水平是可接受的,并且视频决定器可以不执行运动矢量修正过程,例如双线性插值、均值确定、修正代价函数评估,以及其它处理步骤,以节省时钟周期和降低功耗。在另一种方法中,所述视频解码器使用双线性运动补偿插值的样本子集来计算所述两个运动补偿参考片之间的SAD,所述双线性运动补偿插值采用子像素精度合并运动矢量。然后,将所述SAD与译码单元(codingunit,CU)尺寸相关阈值进行比较。可以根据插值样本的位深度调整译码单元尺寸相关阈值的位深度。由于仅使用插值样本的子集计算所述SAD,该方法可以减少所需的运算(时钟周期)。在又一种方法中,所述解码器计算位于相应运动补偿参考片的中心位置的运动补偿插值样本之间的均值减小的SAD(MR-SAD),并确定所述MR-SAD是否小于CU尺寸相关阈值。在该方法中,在修正开始时计算两个运动补偿参考片中心位置的MR-SAD。当中心位置的所述MR-SAD小于所述CU尺寸相关阈值时,所述视频解码器不执行其余的解码端运动矢量修正过程。一种帧间预测方法,包括:根据合并模式的初始运动矢量,获取第一运动补偿参考片和第二运动补偿参考片;计算所述第一运动补偿参考片与所述第二运动补偿参考片之间的片差值;在所述片差值小于阈值的情况下,根据所述初始运动矢量获取当前块的预测值,所述阈值根据所述当前块的尺寸确定;在所述片差值大于或等于所述阈值的情况下,对所述初始运动矢量进行修正,获取所述当前块的所述预测值。在一种可行的实现方式中,所述初始运动矢量从所述当前块的邻块的运动矢量中导出。在一种可行的实现方式中,所述初始运动矢量包括第一运动矢量和第二运动矢量,所述第一运动补偿参考片根据所述第一运动矢量获取,所述第二运动补偿参考片根据所述第二运动矢量获取。在一种可行的实现方式中,所述片差值为SAD值或均值减小的SAD值。在一种可行的实现方式中,计算所述第一运动补偿参考片与所述第二运动补偿参考片之间的所述片差值包括:计算所述第一运动补偿参考片的子集样本与所述第二运动补偿参考片的对应子集样本之间的片差值。在一种可行的实现方式中,在计算所述第一运动补偿参考片与所述第二运动补偿参考片之间的所述片差值之后,还包括:根据所述片差值和所述阈值进行比较。在一种可行的实现方式中,在根据所述片差值和所述阈值进行比较之前,还包括:在根据所述当前块的尺寸确定所述阈值后,调整所述阈值。在一种可行的实施方式中,在所述片差值小于所述阈值的情况下,在根据所述初始运动矢量获取所述当前块的所述预测值之前,还包括:确定不执行解码端运动矢量修正(decoder-side motion vector refinement,DMVR)。在一种可行的实施方式中,在所述片差值小于所述阈值的情况下,使用与所述初始运动矢量相同的运动矢量获取所述当前块的所述预测值。一种帧间预测装置,包括:非瞬时存储器,其中存储有处理器可执行指令;处理器,耦合至所述存储器,用于执行所述处理器可执行指令,以有助于执行如上述帧间预测方法的任一可行实现方式所述的方法。这些新颖的技术节省了运动矢量修正的大量迭代,从而减少了时钟周期的数量和降低了视频解码器的功耗。

附图说明

图1示出了基于模板匹配的解码端运动矢量导出,其中,当前块的模板与参考图像中的参考模板匹配。

图2示出了基于双边匹配的解码端运动矢量导出,其中使用运动轨迹中的两个参考块预测当前块。

图3示出了基于双边模板匹配的解码端运动矢量修正(decoder-side motionvector refinement,DMVR)的示例,其中,使用从由初始运动矢量MV0和MV1所参考的预测块的双向预测以及双边模板匹配来生成模板,以找到更新后的运动矢量MV0’和MV1’所参考的最佳匹配块。

图4为本发明实施例提供的确定运动补偿参考片之间的对齐水平的方法的简化流程图,其中,根据取整后整数位置的代价函数,有条件地不执行修正处理步骤。

图5示出了本发明实施例提供的利用解码端验证、检查或确定运动补偿片之间的对齐水平的方法的简化流程图,其中,根据使用运动补偿插值样本子集的两个运动补偿参考片之间的绝对差值和,有条件地不执行修正处理步骤。

图6示出了本发明实施例提供的利用解码端验证、检查或确定运动补偿片之间的对齐水平的方法的简化流程图,其中,根据位于相应运动补偿参考片的中心位置的运动补偿插值像素点之间的均值减小的绝对差值和,有条件地不执行修正处理步骤。

图7为实现内容分发业务的内容提供系统3100的示例结构的框图。

图8为终端设备的示例结构的框图。

具体实施方式

本发明涉及多功能视频译码标准,该标准是联合视频探索小组先前探索的联合探索模型(Joint Exploratory Model,JEM),联合探索模型是基于VCEG的Q16和MPEG(SC29/WG11)共同开发的。可以使用文件JVET-G1001和与解码端运动矢量修正和解码端运动矢量导出有关的华为其它现有技术来获得与本发明相关的贡献文档和专利列表。

如上所述,双边匹配过程试图提高双向预测所涉及的两次参考中的运动补偿块之间的对齐水平。为了避免对额外的标志进行译码,对于所有合并模式,优选选项是适用于解码端运动矢量修正的帧间译码后的译码单元。然而,值得注意的是,相当多的译码单元在合并模式运动矢量中已经良好对齐,并且没有太大的修正改进空间。由于修正涉及在修正范围内的多个位置执行代价函数评估,在不存在以下改进时避免这些操作。这些改进可以大大降低平均解码器复杂度,提高电池寿命或降低能耗等。在一些现有技术方法中,如果从双向预测合并模式译码单元中的合并运动矢量获取的两个标准运动补偿片之间的对齐水平小于每个译码单元尺寸的预定阈值,则不执行修正。然而,鉴于通常采用双线性插值来创建用于执行修正的像素点的事实,现有技术仍需要用于检查是否可以不执行修正的标准运动补偿和用于执行修正的双线性插值,以及使用子像素精度修正运动矢量进行最终标准运动补偿。由于标准8抽头插值滤波器的计算代价很高,所以执行两次插值滤波使最坏情况下的复杂度比不测试跳过修正更高。此外,从硬件时序的角度来看,绝对差值和的评估增加了一个依赖级,减少可用于修正的时钟。

因此,需要协调检查的概念,以在不增加插值周期,并且不会使硬件实现的最坏情况时序限制更严格的情况下,不执行修正迭代(与使用修正运动矢量进行最终精确运动补偿的基于双线性插值的修正相比)。

运动矢量(motion vector,MV)修正是基于模式的MV搜索,以双边匹配代价或模板匹配代价为准则。在当前发展中,支持两种搜索模式:无限制中心偏置菱形搜索(unrestricted center-biased diamond search,UCBDS)和自适应交叉搜索,分别在CU级和子CU级进行MV修正。对于CU级和子CU级的MV修正,直接以四分之一亮度样本MV精确度搜索MV,然后进行八分之一亮度样本MV修正。CU和子CU步长的MV修正的搜索范围设置为8亮度样本。

在双向预测操作中,对于一个块区域的预测,将分别由列表0中的MV和列表1中的MV组成的两个预测块组合成一个预测信号。在解码端运动矢量修正(decoder-side motionvector refinement,DMVR)方法中,通过双边模板匹配过程进一步修正双向预测的两个运动矢量。在解码器中应用双边模板匹配,以在双边模板和参考图像中的重建样本之间执行基于失真的搜索,以获得修正MV,而无需发送额外运动信息。

图3示出了基于双边模板匹配的解码端运动矢量修正(decoder-side motionvector refinement,DMVR)的示例,其中,使用从由初始MV0和MV1所参考的预测块的双向预测以及双边模板匹配来生成模板,以找到更新后的MV0’和MV1’所参考的最佳匹配块。首先,将合并模式下当前块的最佳匹配MV设置为列表0中的候选MV0。同理,将(合并模式下)当前块的最佳匹配MV设置为列表1中的候选MV。然后对参考像素求平均值以形成模板。接下来,使用模板搜索第一和第二参考图像的候选MV的周边区域,并将代价最低的MV确定为最终MV。可以使用模板中的每个像素与所搜索区域中的每个像素之间的差值和来计算代价值。参见图3,在步骤1中,分别从列表0和列表1中的参考块中的初始运动矢量MV0和MV1所参考的预测块中生成双边模板。

在步骤2中,双边匹配是为了找到由更新后的运动矢量MV0’和MV1’所参考的最佳匹配块。模板匹配操作包括计算生成的模板与参考图像中的样本区域(初始预测块周围)之间的代价度量。对于两个参考图像中的每个参考图像,产生最小模板代价的MV为该列表中更新后的MV,以替换原始MV。在目前的发展中,每个列表搜索9个MV候选。9个MV候选包括所述原始MV和8个周围MV,其中有一个亮度样本在水平方向或垂直方向偏移到原始MV,或者在两个方向上都偏移。最后,使用两个新的MV,即MV0’和MV1’,生成最终的双向预测结果。绝对差值和(sum of absolute difference,SAD)用作代价度量。DMVR用于双向预测的合并模式,一个MV来自过去的参考图像,另一个来自未来的参考图像,不发送额外的语法元素。

在各种实施例中,测量两个运动补偿参考片之间的差值或与预定的译码单元尺寸相关阈值相比较,并且根据比较或测量结果不执行修正。使用预插值样本或使用双线性插值样本的子集执行两个运动补偿参考片之间的差值。此外,在一些实施例中,所述片的均值去除的绝对差值和(mean-removed sum of absolute difference,MR-SAD)可以用作修正的误差度量,所述片的简单绝对差值和可以用作进行不执行检查的度量,在平均值基础上无需进行平均计算并且也有助于满足最坏情况时序要求。预定阈值适用于在插值期间或插值之后可能采用的较低位深度,以减小缓冲器尺寸和处理要求。

鉴于解码端运动矢量修正/导出是译码系统的标准方面,编码器也需要执行相同的误差面技术,以免编码器重建和解码器重建之间有任何漂移。因此,所有实施例的各方面都适用于编码和解码系统。下面提供的实施例仅仅是理解本发明的一些示例,因此不应理解为限制性的。

在本实施例中,将合并运动矢量取整为最近的整数位置。使用这些取整后的整数网格运动矢量作为相对于用于双向预测的两次参考中的当前译码单元位置的偏移量,计算译码单元尺寸样本块之间的绝对差值和(sum of absolute difference,SAD)。将该绝对差值和与译码单元(coding unit,CU)尺寸相关的阈值进行比较,并且当绝对差值和小于阈值时,标准情况下不执行其余或其余的解码端运动矢量修正处理步骤。

考虑期望降低的平均计算资源或能耗与高阈值压缩增益下降之间的权衡,确定适当的预定CU尺寸相关阈值。

图4为本发明实施例提供的使用解码端验证和确定运动补偿片之间的对齐水平的方法的简化流程图,其中,根据取整后整数位置的代价函数,有条件地不执行其余的修正处理步骤。流程图中所示的步骤可以实现为在编码端或解码端的一个或多个处理器上可执行的程序代码或指令。流程图中所示的步骤可以使用电子元件、数字和/或模拟电路、逻辑元件、硬件、软件、固件或其组合来实现。所述方法包括:在步骤401中,视频解码器(在本文中视频解码器和解码器可以互换)获取两个运动补偿参考片之间的未取整并运动矢量。片具有M×N个像素的预定尺寸的当前块,M和N均为正整数。在一些实施例中,M可以等于N;在另一些实施例中,M和N可以不同。片可以是预测单元或译码单元,称为图像(帧)内的像素点块。可以使用双边匹配、模板匹配或其它技术来获取未取整的合并运动矢量。未取整的合并运动矢量可以是具有整数像素精确度或分数像素精确度的合并运动矢量。在步骤402中,解码器对未取整的合并运动矢量进行取整以获取取整后的运动矢量。取整运算可以包括将未取整的运动矢量转换为整数像素精确度的运动矢量或降低运动矢量的像素精确度。例如,分数精确度的运动矢量可以取整为整数像素精确度的运动矢量。取整运算可以包括将矢量值右移一个或多个位。在一个实施例中,视频解码器可以将未取整的合并运动矢量取整到最近的整数像素点位置。在另一个实施例中,视频解码器可以将未取整的合并运动矢量取整到最近的半像素点位置。

在步骤403中,视频解码器通过使用取整后的运动矢量执行简单的运动补偿来计算两个运动补偿参考片之间的绝对差值和(sum of absolute difference,SAD)。相应参考图像Ref0、Ref1中的差值和SAD(第一片、第二片)是用于确定相应搜索空间中的最佳模板匹配的代价函数。在步骤404中,解码器将SAD与译码单元(coding unit,CU)尺寸相关阈值进行比较,以确定SAD是否小于或不小于(即,等于或大于)CU尺寸相关阈值。当确定SAD小于CU尺寸相关阈值时(步骤405中的“是”),解码器不执行解码端运动矢量修正(decoder-sidemotion vector refinement,DMVR)处理步骤(步骤406),并使用未取整的合并运动矢量执行最终运动补偿(步骤408)。当确定SAD不小于CU尺寸相关阈值时(步骤405中的“否”),解码器执行解码端运动矢量修正(decoder-side motion vector refinement,DMVR)处理步骤(步骤407),然后执行最终运动补偿(步骤408)。解码器可以根据搜索窗口中与当前块紧密匹配的参考块来修正运动矢量候选,即,当SAD不小于CU尺寸相关阈值时,解码器可以为当前块确定新的插值运动矢量(例如,使用双线性插值),然后,解码器对当前块执行最终运动补偿。在一个实施例中,执行最终运动补偿可以包括将未取整的合并运动矢量在水平方向和垂直方向上取整到最近的整数样本位置,得到整数位置样本,并且对所述整数位置样本求平均值运算。在另一个实施例中,执行最终运动补偿可以包括将未取整的合并运动矢量在水平方向和垂直方向上取整到最近的半像素点位置,得到半像素位置样本,并且对所述半像素位置样本求平均值运算。

除了其它优点之外,本实施例还有一个优点是,当评估的度量小于阈值时,可以不执行解码端运动矢量修正的所有其它方面,例如不同位置处的双线性插值、均值确定和修正代价函数评估,并且可以执行最终的标准运动补偿。应注意,在硬件实现中,在一些实施例中,可以以推测方式与评估不执行修正的度量并行执行双线性插值,以改进时序限制(即,获得更多时间或时钟周期来执行修正任务)。

在该实施例中,解码器使用来自使用子像素精度的合并运动矢量执行的双线性运动补偿插值的样本子集,计算双向预测所涉及的两次参考中的运动补偿片之间的绝对差值和。然后,将该绝对差值和预定的译码单元尺寸相关阈值进行比较,并且当解码器确定该绝对差值和小于阈值时,标准情况下不执行其余的修正步骤。

在一个示例性实现方式中,在两个参考片上并行(同时)执行双线性运动补偿插值。在另一个实施例中,经过两次参考的插值样本的产生是交错进行的。在这两种情况下,绝对差值和计算最好在最早可能的时间进行计算,而不是等待所有插值样本产生之后。这个过程也避免了重新加载插值样本。这样降低了硬件时延,提高了执行最坏情况路径所需的其余修正计算的时间。

在一些实现方式中,尺寸(尺寸)等于译码单元尺寸的样本块用于计算绝对差值和。在这些实施例中,当确定绝对差值和小于阈值时,可以不对除中心位置之外的修正位置所需的插值样本进行计算。在其它实施例中,仅使用插值样本的子集来计算绝对差值和。在这些情况下,将预定阈值修改为用于绝对差值和的样本数量的函数。当解码器确定绝对差值和小于阈值时,也可以不执行其余的插值过程。在一个实施例中,插值样本的子集可以为一个实施例中的(coding_unit_width–2)×(coding_unit_height–2)个样本。在另一个实施例中,插值样本的子集可以为另一个实施例中的(coding_unit_width×coding_unit_height–(coding_unit_width–2)×(coding_unit_height–2))个样本,其中,coding_unit_width为译码单元的宽度,coding_unit_height为译码单元的高度。

当双线性插值限制插值样本的位深度时,还通过下移在插值样本的不受限位深度下导出的阈值,相应地调整预定阈值。

图5为本发明实施例提供的使用解码端验证,检查或确定运动补偿片之间的对齐水平的方法的简化流程图,其中,根据双线性运动补偿插值样本的子集,有条件地不执行解码端运动矢量修正处理步骤。流程图中所示的步骤可以实现为在编码端或解码端的一个或多个处理器上可执行的程序代码或指令。流程图中所示的步骤也可以使用电子元件、数字和/或模拟电路、逻辑元件、硬件、软件、固件或其组合来实现。所述方法包括:在步骤501中,视频解码器获取两个运动补偿参考片之间的未取整并运动矢量。片具有M×N个像素的预定尺寸的当前块,M和N均为正整数。在一些实施例中,M和N可以相同。在其它实施例中,M和N可以不同。可以使用双边匹配、模板匹配或其它技术来获取未取整的合并运动矢量。在步骤502中,解码器还根据子像素精度合并运动矢量,获取运动补偿插值像素点。

在步骤503中,解码器使用运动补偿插值样本的子集计算两个运动补偿参考片之间的绝对差值和(sum of absolute difference,SAD)。在一些实施例中,SAD可以与插值过程并行地或同时计算。在步骤504中,解码器将SAD与编码单元(coding unit,CU)尺寸相关阈值进行比较,以确定SAD是否小于或不小于CU尺寸相关阈值。在一个实施例中,CU尺寸相关阈值是插值样本的子集中样本数量的函数。当确定SAD小于CU尺寸相关阈值时(步骤505中的“是”),解码器不执行解码端运动矢量修正(decoder-side motion vectorrefinement,DMVR)处理步骤(步骤506),并使用未取整的合并运动矢量执行最终运动补偿(步骤508)。当确定SAD不小于(即,等于或大于)CU尺寸相关阈值时(步骤505中的“否”),解码器使用未取整的合并运动矢量执行解码端运动矢量修正(decoder-side motion vectorrefinement,DMVR)处理步骤(步骤507),然后使用未取整的合并运动矢量执行最终运动补偿(步骤508)。解码器可以根据搜索窗口中与当前块紧密匹配的参考块来修正运动矢量候选,即,当SAD不小于CU尺寸相关阈值时,解码器可以为当前块确定新的插值运动矢量(例如,使用双线性插值),然后,解码器使用未取整的合并运动矢量对当前块执行最终运动补偿。

第二实施例(实施例2)会降低译码增益,因为保守的阈值仍然允许许多译码单元不执行其余的修正处理步骤。从时序角度看,可以实质上针对双线性插值步骤隐藏绝对差值和运算,该绝对差值和运算用于确定或验证SAD与阈值之间的比较,因此不会影响最坏情况的时序限制。

在该实施例中,使用针对修正开始的中心位置计算的均值去除的绝对差值和(mean-removed sum of absolute difference,MR-SAD)来执行提前退出检查(确定)。在一些实施例中,首先评估中心位置的MR-SAD,并与译码单元尺寸相关阈值进行比较。如果中心位置的MR-SAD小于阈值,标准情况下不执行其余的修正过程。

在一些实施例中,MR-SAD评估在中心位置以外的位置(例如,在第一迭代修正点中的某些位置)可以与中心位置的MR-SAD评估一起执行。然而,当中心位置的MR-SAD小于预定阈值时,这些评估后的MR-SAD将不起作用。

当插值限制插值样本的位深度时,还通过下移在插值样本的不受限位深度下导出的阈值,相应地调整预定阈值。

图6为本发明实施例提供的使用解码端验证,检查或确定运动补偿片之间的对齐水平的方法的简化流程图,其中,根据修正开始位置的均值去除的绝对差值和,有条件地不执行解码端运动矢量修正处理步骤。流程图中所示的步骤可以实现为在编码端或解码端的一个或多个处理器上可执行的程序代码或指令。流程图中所示的步骤也可以使用电子元件、数字和/或模拟电路、逻辑元件、硬件、软件、固件或其组合来实现。所述方法可以从步骤602开始:视频解码器根据两个运动补偿参考片之间的子像素精度合并运动矢量,获取运动补偿插值像素点。在步骤603中,解码器在开始修正的中心位置计算每个片的平均值。解码器还针对中心位置计算(在603中)均值去除的绝对差值和(mean-removed sum ofabsolute difference,MR-SAD)。

在步骤604中,解码器将MR-SAD与译码单元(coding unit,CU)尺寸相关阈值进行比较,以确定MR-SAD是否小于或不小于(等于或大于)CU尺寸相关阈值。在一个实施例中,CU尺寸相关阈值是子像素精度的合并运动矢量的位深度的函数。当确定MR-SAD小于CU尺寸相关阈值时(步骤605中的“是”),解码器不执行解码端运动矢量修正(decoder-side motionvector refinement,DMVR)处理步骤(步骤606),并使用合并运动矢量执行最终运动补偿(步骤608)。当确定MR-SAD不小于CU尺寸相关阈值时(步骤605中的“否”),解码器使用合并运动矢量执行解码端运动矢量修正(decoder-side motion vector refinement,DMVR)处理步骤(步骤607),然后使用合并运动矢量执行最终运动补偿(步骤608)。解码器可以根据搜索窗口中与当前块紧密匹配的参考块来修正运动矢量候选,即,当MR-SAD不小于CU尺寸相关阈值时,解码器可以为当前块确定新的插值运动矢量(例如,使用双线性插值),然后,解码器使用合并运动矢量对当前块执行最终运动补偿。

在一些实施例中,计算片的平均值可以包括对对应参考片内的所有像素的亮度强度求平均值。可以使用以下表达式计算均值去除的绝对差值和(mean-removed sum ofabsolute difference,MR-SAD):

MR-SAD=SAD(first_sample–mean(first_patch),second_sample–mean(second_patch))

其中,first_sample表示位于第一运动补偿参考片的中心的第一运动补偿插值样本,second_sample表示位于第二运动补偿参考片的中心的第二运动补偿插值样本,mean(first_block)表示first_block的样本值的求平均值运算,mean(second_block)表示second_block的样本值的求平均值运算,就像素点而言,(第一、第二)片可以具有(第一、第二)块的宽度和高度,SAD是第一片的样本值和第二片的样本值的绝对差值的求和运算。

本实施例可以确保在没有这种检查的情况下,不会对需要的内容执行有条件地不执行修正检查进行其它计算。从统计上看,节省修正迭代的计算,从而节省了软件的功耗和平均周期。

上述示出和描述的流程图旨在说明本发明提供的运动补偿片之间的对齐的确定、检查或验证的示例性实施例。如本领域技术人员所知,在不脱离本发明的范围的情况下,可以重新安排、修改或组合本文中描述的对齐检查和确定步骤以实现本发明。

根据本发明的实施例可以在硬件电路、软件程序代码、由一个或多个处理器或CPU执行的计算机指令或其组合中实现。例如,本发明实施例可以是执行本文所描述的步骤的一个或多个集成电路或设备。程序代码可以在数字信号处理器(digital signalprocessor,DSP)上执行。实施例也可以由一个或多个微处理器、一个或多个现场可编程门阵列(field programmable gate array,FPGA)实现。

根据本发明的实施例提供了一种用于确定与预定的CU尺寸相关阈值相比较的运动补偿参考片(译码单元、块)之间的对齐水平的装置。所述装置可以包括:电路,用于:获取两个运动补偿参考片之间的未取整的合并运动矢量;将所述未取整的合并运动矢量取整到最近的整数像素点位置以获得取整后的运动矢量;使用所述取整后的运动矢量计算所述两个运动补偿参考片之间的绝对差值和(sum of absolute difference,SAD);确定所述SAD是否小于CU尺寸相关阈值。在SAD小于CU尺寸相关阈值的情况下,所述装置的电路不执行其余的解码端运动矢量处理步骤,使用未取整的合并运动矢量执行最终运动补偿。在SAD小于CU尺寸相关阈值时,所述装置的电路执行其余的解码端运动矢量处理步骤,然后使用未取整的合并运动矢量执行最终运动补偿。

在一个实施例中,所述装置的电路使用运动补偿插值样本的子集而不是使用取整后的运动矢量来导出SAD。

在一个实施例中,所述装置的电路计算整数像素运动搜索的绝对差值和(mean-removed sum of absolute difference,MR-SAD),并将MR-SAD与CU尺寸相关阈值进行比较。

在一些实施例中,所述装置的电路可以包括集成半导体器件或芯片。在其它实施例中,电路可包括硬件组件或设备或硬件和软件的组合,例如,一个或多个处理器、可编程设备或可利用指令或程序代码操作的DSP。

下面解释上述实施例中所示的编码方法和解码方法以及使用这些方法的系统的应用。

图7为用于实现内容分发业务的内容提供系统3100的框图。该内容提供系统3100包括捕获设备3102、终端设备3106和(可选)显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。所述通信链路可以包括上文所述的通信信道13。通信链路3104包括但不限于WiFi、以太网、有线、无线(3G/4G/5G)、USB或其任意类型组合等。

捕获设备3102生成数据,并可使用上述实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),该服务器对数据进行编码,并将编码数据发送到终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备或其任意组合等。例如,捕获设备3102可以包括上文所述的源设备12。当数据包括视频时,捕获设备3102中的视频编码器20实际上可执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中的音频编码器实际上可执行音频编码处理。在一些实际场景中,捕获设备3102通过将编码视频数据和编码音频数据复用在一起来分发编码视频数据和编码音频数据。在其它实际场景中,例如在视频会议系统中,不复用编码音频数据和编码视频数据。捕获设备3102将编码音频数据和编码视频数据分别分发到终端设备3106。

内容提供系统3100中的终端设备310接收并再生成编码数据。终端设备3106可以为具有数据接收和恢复能力的设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital videorecorder,DVR)3112、TV 3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任意组合,或能够对上述编码数据进行解码的此类设备。例如,终端设备3106可以包括上文所述的目标设备14。当编码数据包括视频时,终端设备中的视频解码器30优先执行视频解码。当编码数据包括音频时,终端设备中的音频解码器优先执行音频解码处理。

对于带显示器的终端设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digital videorecorder,DVR)3112、TV 3114、人数字助理(personal digital assistant,PDA)3122或车载设备3124,终端设备可以将解码数据发送到其显示器。对于不带显示器的终端设备,如STB 3116、视频会议系统3118或视频监控系统3120,使外接显示器3126与终端设备连接,以接收并显示解码数据。

本系统中的各个设备执行编码或解码时,可以使用上述实施例所示的图像编码设备或图像解码设备。

图8为终端设备3106的示例结构图。在终端设备3106从捕获设备3102接收码流后,协议进行单元3202分析该码流的发送协议。所述协议包括但不限于实时流协议(Real TimeStreaming Protocol,RTSP)、超文本发送协议(Hyper Text Transfer Protocol,HTTP)、HTTP直播流协议(HTTP Live streaming protocol,HLS)、MPEG-DASH、实时发送协议(Real-time Transport protocol,RTP)、实时消息协议(Real Time Messaging Protocol,RTMP)或其任意组合。

在协议进行单元3202对码流进行处理之后,生成流文件。文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为编码音频数据和编码视频数据。如上文所述,对于一些实际场景,例如,在视频会议系统中,不复用编码音频数据和编码视频数据。在这种情况下,编码数据不通过解复用单元3204发送到视频解码器3206和音频解码器3208。

通过解复用处理,生成视频基本码流(elementary stream,ES)、音频ES和(可选)字幕。视频解码器3206,包括如上述实施例所解释的视频解码器30,通过如上述实施例所示的解码方法对视频ES进行解码以生成视频帧,并将该数据发送到同步单元3212。音频解码器3208,对音频ES进行解码以生成音频帧,并将该数据发送至同步单元3212。或者,可以在将视频帧发送至同步单元3212之前存储在缓冲器中(图Y中未示出)。同理,可以在将音频帧发送至同步单元3212之前存储在缓冲器中(图Y中未示出)。

同步单元3212使视频帧和音频帧同步,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。可以使用与译码音频和可视数据呈现相关的时间戳和与数据流发送相关的时间戳,在语法中对信息进行译码。

如果码流中包括字幕,则字幕解码器3210对字幕进行解码,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。

本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以在汽车系统等其它系统中使用。

相关技术
  • 根据基于双线性插值的解码端运动矢量修正的片相似度不执行修正的方法
  • 用于基于解码器侧双向预测光流对双向预测运动补偿进行逐像素校正的解码器侧运动矢量修正的硬件和软件友好系统和方法
技术分类

06120112830955