用于帧间预测的改进重叠块运动补偿的制作方法

文档序号:32242396发布日期:2022-11-18 22:46阅读:36来源:国知局
用于帧间预测的改进重叠块运动补偿的制作方法
用于帧间预测的改进重叠块运动补偿
1.相关申请的交叉引用
2.本技术要求享受2021年2月22日提交的、标题为“improved overlapped block motion compensation for inter prediction”的美国临时申请序列号no.63/152,326的优先权,故以引用方式将其全部内容明确地并入本文。
技术领域
3.本公开内容涉及视频编解码和压缩。具体地说,本公开内容涉及提高编解码效率和简化重叠块运动补偿(obmc)的复杂性的方法和装置。


背景技术:

4.可以使用各种视频编解码技术对视频数据进行压缩。根据一种或多种视频编解码标准来执行视频编解码。例如,现在一些众所周知的视频编解码标准包括通用视频编解码(vvc)、高效视频编解码(hevc,也称为h.265或mpeg-h第2部分)、以及iso/iec mpeg和itu-t vecg联合开发的高级视频编解码(avc,也称为h.264或mpeg-4第10部分)。开放媒体联盟(aom)开发了aomedia video 1(av1),作为其先前标准vp9的继承者。指代数字音频和数字视频压缩标准的音视频编解码(avs),是中国音视频编解码标准工作组制定的另一个视频压缩标准系列。大多数现有的视频编解码标准都是建立在著名的混合视频编解码框架之上的,即,使用基于块的预测方法(例如,帧间预测、帧内预测)来减少视频图像或序列中存在的冗余,并使用变换编码来压缩预测误差的能量。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免视频质量的下降或者将该下降最小化。


技术实现要素:

5.本公开内容的系统、方法和设备均具有一些方面,但这些方面中没有单一的一个可以单独地对其期望的属性负责。下文表述的权利要求书并不限制本公开内容的保护范围,现在将简要地讨论一些特征。在仔细思考这些讨论之后,特别是在阅读标题为“具体实施方式”的部分之后,人们将理解本公开内容的特征是如何具有优势的。
6.在一个方面,提供了一种用于视频编码的方法,该方法包括:将视频数据的帧分割成多个块;使用所述多个块中的当前块的一个或多个运动矢量,来获得所述当前块的当前预测;在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整;以及通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
7.在另一个方面,提供了一种用于视频解码的方法,该方法包括:接收来自比特流的当前块,其中,所述当前块是从编码视频数据的帧中分割的多个块之一;使用所述当前块的一个或多个运动矢量,来获得所述当前块的当前预测;在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多
个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整;以及通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
8.在另一个方面,提供了一种用于对视频数据进行编码的装置,该装置包括存储器和耦合到所述存储器的至少一个处理器,所述至少一个处理器被配置为:将视频数据的帧分割成多个块;使用所述多个块中的当前块的一个或多个运动矢量,来获得所述当前块的当前预测;在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整;以及通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
9.在另一个方面,提供了一种用于视频数据进行解码的装置,该装置包括存储器和耦合到所述存储器的至少一个处理器,所述至少一个处理器被配置为:接收来自比特流的当前块,其中,所述当前块是从编码视频数据的帧中分割的多个块之一;使用所述当前块的一个或多个运动矢量,来获得所述当前块的当前预测;在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整;以及通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
10.在另一个方面,提供了一种存储用于对视频数据进行编码的计算机代码的计算机可读介质,当所述计算机代码被处理器执行时,使得所述处理器进行以下操作:将视频数据的帧分割成多个块;使用所述多个块中的当前块的一个或多个运动矢量,来获得所述当前块的当前预测;在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整;以及通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
11.在另一个方面,提供了一种用于存储对视频数据进行解码的计算机代码的计算机可读介质,当所述计算机代码被处理器执行时,使得所述处理器进行以下操作:接收来自比特流的当前块,其中,所述当前块是从编码视频数据的帧中分割的多个块之一;使用所述当前块的一个或多个运动矢量,来获得所述当前块的当前预测;在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整;以及通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
12.在另一个方面,提供了一种存储比特流的计算机可读介质,所述比特流包括通过以下操作生成的编码的视频数据:将视频数据的帧分割成多个块;使用所述多个块中的当前块的一个或多个运动矢量,来获得所述当前块的当前预测;在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一
个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整;以及通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
13.通过考虑以下详细描述和附图,本公开内容的其它方面或变型将变得显而易见。
附图说明
14.为了详细地理解本公开内容的上面所描述特征的实现方式,本技术针对上面的简要概括参考一些方面给出了更具体的描述,这些方面中的一些在附图中给予了说明。但是,应当注意的是,由于本发明的描述准许其它等同的有效方面,因此这些附图仅仅描绘了本公开内容的某些典型方面,其不应被认为限制本发明的保护范围。
15.图1根据本公开内容的一个或多个方面,示出了用于通用视频编码(vvc)的基于块的视频编码器的一般框图。
16.图2a至2e根据本公开内容的一个或多个方面,示出了多类型树结构中的块分区的示意图:四元分区、垂直二元分区、水平二元分区、垂直三元分区和水平三元分区。
17.图3根据本公开内容的一个或多个方面,示出了用于vvc的视频解码器的一般框图。
18.图4根据本公开内容的一个或多个方面,示出了基于子块的时间运动矢量预测(sbtmvp)的子块级运动推导的示意图。
19.图5根据本公开内容的一个或多个方面,示出了4参数仿射模型的示意图。
20.图6根据本公开内容的一个或多个方面,示出了6参数仿射模型的示意图。
21.图7a至7e根据本公开内容的一个或多个方面,示出了运动矢量角度预测(mvap)模式的示意图:左下、左、左上、上、右上。
22.图8根据本公开内容的一个或多个方面,示出了在没有子块运动补偿的情况下,用于编码的cu的obmc过程的示意图。
23.图9根据本公开内容的一个或多个方面,示出了用于通过子块模式编码的cu的obmc过程的示意图。
24.图10示出了根据本公开内容的一个或多个方面的允许的gpm分割的示意图。
25.图11a和11b根据本公开内容的一个或多个方面,示出了使用顶部邻居和左侧邻居的mv的obmc方案的示意图。
26.图12根据本公开内容的一个或多个方面,示出了当针对sbtmvp和mvap的子块边界禁用obmc时的obmc过程的示例性流程图。
27.图13根据本公开内容的一个或多个方面,示出了用于视频编码的方法的示例性流程图。
28.图14根据本公开内容的一个或多个方面,示出了用于视频解码的方法的示例性流程图。
具体实施方式
29.hevc标准的第一版本于2013年10月完成,与上一代视频编解码标准h.264/mpeg avc相比,它提供了大约50%的比特率节省或等效的感知质量。尽管hevc标准比其前身提供
了显著的编解码改进,但有证据表明,使用另外的编解码工具可以实现卓越的编码效率。在此基础上,vceg和mpeg都开始了新编解码技术的探索工作以用于未来视频编解码标准化。itu-t vecg和iso/iec mpeg于2015年10月成立了一个联合视频探索小组(jvet),开始对能够显著提高编码效率的先进技术进行重大研究。jvet通过在hevc测试模型(hm)之上集成若干另外的编解码工具,来维护一种称为联合探索模型(jem)的参考软件。
30.2017年10月,itu-t和iso/iec发布了关于具有超越hevc能力的视频压缩的联合提案征集(cfp)。2018年4月,在第10次jvet会议上收到并评估了23份cfp回复,表明压缩效率比hevc提高了约40%。基于这样的评估结果,jvet启动了一个新项目来开发新一代视频编解码标准,称为通用视频编解码(vvc)。同月,建立了一个名为vvc测试模型(vtm)的参考软件代码库,用于演示vvc标准的参考实现。
31.第一代avs标准包括中国国家标准“信息技术,高级音频视频编解码第2部分:视频”(简称avs1)和“信息技术,高级音频视频编解码第16部分:广播电视视频”(简称avs+)。与mpeg-2标准相比,它可以在相同的感知质量下节省大约50%的比特率。avs1标准视频部分于2006年2月作为中国国家标准进行了颁布。第二代avs标准包括中国国家标准“信息技术,高效多媒体编解码”系列(简称avs2),主要针对于传输额外的高清电视节目。avs2的编码效率是avs+的两倍。在2016年5月,avs2作为中国国家标准进行了发布。同时,电气和电子工程师协会(ieee)将avs2标准视频部分提交为一项国际标准予以应用。avs3标准是针对超高清视频应用的新一代视频编解码标准,其旨在超越最新国际标准hevc的编码效率。2019年3月,在第68次avs会议上,完成了avs3-p2基线,与hevc标准相比,它提供了大约30%的比特率节省。目前,存在一个称为高性能模型(hpm)的参考软件,其由avs小组维护,以用于演示avs3标准的参考实现。
32.像它们之前的标准一样,vvc和avs3都建立在基于块的混合视频编解码框架之上。图1给出了通用的基于块的混合视频编码系统的框图。对输入视频信号进行逐块处理(称为编码单元(cu))。一个cu可以达到128x128像素。然而,与仅基于四叉树来划分块的hevc不同,在vvc中,将一个编码树单元(ctu)拆分为cu,以适应基于四叉树/二叉树/三叉树的不同局部特征。此外,去除了hevc中多分区单元类型的概念,即vvc中不再存在cu、预测单元(pu)和变换单元(tu)的分离;相反,每个cu始终用作预测和变换的基本单元,而无需进一步分割。在多类型树结构中,首先通过四叉树结构来划分一个ctu。然后,每个四叉树的叶节点可以通过二叉树和三叉树结构来进一步划分。如图2a至2e中所示,存在五种拆分类型,即四元分区、水平二元分区、垂直二元分区、水平三元分区和垂直三元分区。在图1中,可以执行空间预测和/或时间预测(例如,通过运动补偿101、运动估计102、帧内/帧间模式决策103、帧内预测104)。空间预测(或“帧内预测”)使用来自同一视频图片/切片中已编码相邻块的样本(称为参考样本)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也称为“帧间预测”或“运动补偿预测”)使用来自已编码视频图片的重构像素,来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。通常通过一个或多个运动矢量(mv)发出针对给定cu的时间预测信号,其中mv指示当前cu与其时间参考之间的运动量和运动方向。此外,如果支持多个参考图片,则另外发送一个参考图片索引,该索引用于识别时间预测信号来自参考图片存储(例如,存储器105、图片缓冲器106)中的哪个参考图片。在空间和/或时间预测之后,编码器中的模式决策块(例如,帧内/帧间模式决策103)
选择最佳预测模式,例如基于率失真优化方法。然后从当前视频块中减去预测块;并且使用变换和量化(例如,通过变换108、量化109)对预测残差进行去相关。对经量化的残差系数进行逆量化和逆变换以形成重构的残差(例如,通过逆量化111、逆变换112),然后将其添加回预测块以形成cu的重构信号。在重构的cu被放入参考图片存储并用于对未来的视频块进行编码之前,可以对其应用进一步的环路滤波(例如,环路滤波器107)(例如,解块滤波器、样本自适应偏移(sao)和自适应环路滤波器(alf))。为了形成输出视频比特流,将编码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都发送到熵译码单元(例如,熵编码110)以进一步压缩和打包来形成比特流。
33.图3给出了基于块的视频解码器的一般框图。首先在熵解码单元,对视频比特流进行熵解码(例如,熵解码301)。将编码模式和预测信息发送到空间预测单元(如果是帧内编码)(例如,帧内预测308)或时间预测单元(如果是帧间编码)(例如,运动补偿307)以形成预测块。将残差变换系数发送到逆量化单元(例如,逆量化302)和逆变换单元(例如,逆变换303)以重构残差块。然后,将预测块和残差块加在一起(例如,通过帧内/帧间模式选择309和/或存储在存储器304中)。在将重构的块存储在参考图片存储(例如,图片缓冲器306)中之前,可以进一步经过环路滤波。然后,将参考图片存储中的重构视频发送出去以驱动显示设备,并用于预测未来的视频块。
34.通常,在vvc和avs3中应用的基本帧间预测技术保持与hevc相同,除了进一步扩展和/或增强了若干模块之外。例如,基于块匹配的运动补偿(mc)仍然用作vvc帧间编解码框架的主干,其中当编码块是单向预测时,一个编码块只能与一个单一的mv相关联,或者当编码块是双向预测时,一个编码块与两个mv相关联。尽管基于块的mc对于处理均匀的平移运动是高效的,但由于相机的复杂运动和运动物体的不规则性,它仍然不足以捕捉时域图像之间的真实相关性。相应地,这种不准确的运动经常导致被重构视频信号的块状伪影。obmc是一种方法,已证明其是一种克服了传统的基于块的mc的缺点的高效方法。obmc的基本思想是利用相邻块的mv对当前块进行运动补偿,并利用相邻mv组合多个预测信号来生成当前块的最终预测信号。这可以大大减少预测误差,并减轻预测阶段的块状伪影。本公开内容的重点在于进一步提高现有obmc模式的编码效率。此外,还提出了一些方法来降低obmc计算复杂度,使其对实际硬件实现更加友好。为了便于以下描述,简要回顾了当前vvc和avs标准中与本公开内容中提出的技术密切相关的一些现有编解码工具的主要技术方面。
35.在hevc及其前身中,每个编码块对于一个预测方向至多具有一个mv。相比之下,vvc和avs3都采用了几种子块级别运动补偿技术,以通过增加mv推导的粒度来提高运动补偿效率。具体而言,当应用这些子块模式中的任何一种时,将一个编码块进一步分割成多个小子块,并且单独导出每个子块的运动信息(即,mv和相关联的参考图片)。然后,在运动补偿阶段,使用子块运动信息来生成每个子块(以及最终块)的预测信号。下面对vvc和avs3标准中采用的一些主要子块帧间编码模式进行概述。
36.vvc支持基于子块的时间运动矢量预测(sbtmvp)方法。与hevc中的时间运动矢量预测(tmvp)类似,sbtmvp使用同位图片中的运动场来提高当前图片中帧间cu的mv精度。
37.在图4中示出了sbtmvp模式的子块级运动推导。具体而言,sbtmvp通过两步来预测当前cu内的子块的mv。第一步,首先从当前块的空间相邻块的运动信息中,识别出用于获取子块运动的同位块。具体来说,在当前的atmvp设计中,考虑了图4中的空间邻居a1。如果a1
拥有一个mv(l0或l1),它使用同位图片(在比特流中用信号表示)作为其参考图片,则选择块a1的对应mv来识别同位图片中的同位块。通过将块a1的mv与当前块的坐标相加,来确定同位图片中同位块的位置。第二步,对于当前块中的每个子块,其运动信息来源于同位块中的其对应的小块。具体地说,在识别同位块中的每个小块的运动信息(如箭头401、411所示)之后,以与hevc中现有的时间运动矢量预测(tmvp)相同的方式(其中在hevc中,可以应用时间运动矢量缩放),将其转换为当前块中相应子块的运动信息(如箭头402、412所示)。
38.在avs3标准中,也采用了一种类似的工具,其称为增强时间运动矢量预测(etmvp),它遵循sbtmvp的相同设计精神,但在一些设计细节上有细微的差别。
39.在传统的mc技术中,在运动补偿预测中仅应用平移运动模型。而在现实世界中,存在很多种运动,例如,放大/缩小、旋转、透视运动和其它不规则运动。在vvc和avs3标准中,通过为每个帧间cu发信号通知一个标志来应用仿射运动补偿预测,以指示是将平移运动模型还是仿射运动模型应用于帧间预测。在当前的仿射设计中,一个仿射编码块支持两种仿射模式,其包括4参数仿射模式和6参数仿射模式。
40.4参数仿射模型具有以下参数:分别用于水平和垂直方向的平移运动的两个参数、一个用于缩放运动的参数和一个用于两个方向的旋转运动的参数。水平缩放参数等同于垂直缩放参数。水平旋转参数等同于垂直旋转参数。为了更好地适应运动矢量和仿射参数,将这些仿射参数转换成位于当前块的左上角和右上角的两个mv(也称为控制点运动矢量(cpmv))。如图5中所示,通过两个控制点mv(v0,v1)来描述块的仿射运动场。基于控制点运动,将一个仿射编码块的运动场(v
x
,vy)描述为:
[0041][0042]
6参数仿射模式具有以下参数:水平方向和垂直方向的平移运动分别为两个参数,水平方向的缩放运动的一个参数和旋转运动的一个参数,垂直方向的缩放运动的一个参数和旋转运动的一个参数。6参数仿射运动模型在三个cpmv上使用三个mv进行编码。如图6中所示,一个6参数仿射块的三个控制点位于块的左上角、右上角和左下角。左上控制点的运动与平移运动相关,右上控制点的运动与水平方向的旋转和缩放运动相关,左下控制点的运动与垂直方向的旋转和缩放运动相关。与4参数仿射运动模型相比,6参数水平方向的旋转和缩放运动可能与垂直方向的运动不同。假设(v0,v1,v2)是图6中当前块的左上角、右上角和左下角的mv,则使用控制点的三个mv来导出每个子块的运动矢量(v
x
,vy):
[0043][0044][0045]
为了简化仿射预测的计算复杂度,应用基于子块的mc来导出仿射模式的预测样本。具体来说,给定一个仿射cu的选定cpmv,使用子块的中心作为目标坐标(即,式(1)和式(2)中的x和y),基于式(1)和式(2)来导出cu内每个4x4子块的mv。假设子块内的所有样本共享相同的mv;相应地,将使用所计算的mv,利用现有的运动补偿插值滤波(mc-if)过程来生成子块的预测样本。
[0046]
为了进一步提高帧间预测效率,在avs3中应用了另一种称为运动矢量角度预测(mvap)的子块运动预测模式。类似于sbtmvp和仿射模式,mvap在子块级别上进行运动补偿预测,其中每个子块的mv是从当前cu的相邻重构块的相应mv生成的。如图7a至图7e中所示,根据一个特定的投影方向,从当前cu的上下边界上的相邻mv投影一个mvap cu内的子块的mv。在当前的mvap设计中,总共存在5种不同的mv预测方向,其包括左下、左、左上、上和右上。对于每个特定的预测方向,将每个子块的对应的mv计算为:
[0047]
1)左下方向:
[0048]
pmv[x][u]=refmv[-1][x+y+1]
ꢀꢀ
(3)
[0049]
2)左方向:
[0050]
pmv[x][y]=refmv[-1][y]
ꢀꢀ
(4)
[0051]
3)左上方向:
[0052][0053]
4)上方向
[0054]
pmy[x][y]=refmy[x1[-1]
ꢀꢀ
(6)
[0055]
5)右上方向:
[0056]
pmv[x][y]=refmv[x+y+1][-1]
ꢀꢀ
(7)
[0057]
其中refmv表示相邻块的mv,pmv表示当前cu内部的子块的mv;x和y表示以当前cu的左上角为原点的一个子块的坐标。
[0058]
此外,在一个相邻mv不可用的情况下(例如,相邻子块无效或通过帧内模式进行编码),通过重复与子块最近的相邻的可用mv来生成对应的mv。
[0059]
在jem中应用obmc以去除mc阶段的块状伪影。如前所述,obmc的基本思想是使用来自相邻块的mv对当前块进行运动补偿,并使用相邻mv组合多个预测信号以生成cu的最终预测信号。在jem中,对当前cu的上边界和左边界执行obmc。另外,当以一个子块模式对一个视频块进行编码时,也在每个子块的所有内边界(即,上、左、下和右边界)上执行obmc。图8说明了在没有子块级运动补偿的情况下应用于cu的obmc过程,其中b1到b7是当前cu的顶部和左侧边界上的子块,n1到n8是当前cu上方和左侧的随机相邻子块。当obmc应用于一个子块时(例如,图9中的子块a,其中使用来自所有四个相邻块(例如,阴影子cu块a、b、c、d)的mv,将obmc应用于所有子cu块(例如,子cu块a)),除了一个子块的左和上邻居之外,还使用当前子块的右和下方相邻子块的mv来导出预测信号;然后,对这四个预测块进行平均,以生成当前子块的最终预测信号。
[0060]
在obmc中使用加权平均来生成一个子块的预测信号。将使用一个相邻子块的运动矢量的预测信号表示为pn,将使用当前子块的运动矢量的预测信号表示为pc。当应用obmc时,pn的前/后四行/列中的样本与pc中相同位置的样本进行加权平均。基于对应的相邻子块的位置来确定应用加权平均的样本。具体地说,当相邻子块为顶部邻居时(例如,图9中的子块b),调整当前子块前四行中的样本;当相邻子块为底部邻居时(例如,图9中的子块d),调整当前子块最后四行中的样本;当相邻子块为左邻居时(例如,图9中的子块a),调整当前块前四列中的样本;当相邻子块为右邻居时(例如,图9中的子块c),调整当前子块的最后四列中的样本。在不以子块模式对当前块进行编码时,pn的前四行/列使用权重因子{1/4,1/
8,1/16,1/32},pc的前四行/列使用权重因子{3/4、7/8、15/16、31/32}。在以子块模式对当前块进行编码时,则仅对pn和pc的前两行/列进行平均。在这种情况下,权重因子{1/4,1/8}用于pn,权重因子{3/4,7/8}用于pc。
[0061]
在vvc中,支持几何分割模式以用于帧间预测。通过一个cu级标志,将几何分割模式作为一种特殊的合并模式来发信号通知。在当前的gpm设计中,gpm模式对每个可能的cu大小总共支持64个分区,其中宽度和高度均不小于8且不大于64,不包括8x64和64x8。
[0062]
当使用该模式时,如图10中所示,通过几何定位直线将cu分割成两部分,其中每张图片中的分割具有一个相同的分割方向。在数学上,根据特定分区的角度和偏移参数来导出分割线的位置。cu中几何分区的每个部分都使用其自身的运动进行帧间预测;每个分区只允许进行单向预测,即每个部分有一个运动矢量和一个参考索引。应用单向预测运动约束以确保与传统的双向预测一样,每个cu只需要两次运动补偿预测。如果几何分区模式用于当前cu,则进一步发信号通知用于指示几何分区的分区模式(角度和偏移)的几何分区索引和两个合并索引(每个分区一个)。按照序列级别,显式地发信号通知最大gpm候选大小的数量。在avs3中,该工具也称为角加权预测(awp),它遵循gpm模式的类似设计,但有一些细微差别(例如,不同的分割方向和偏移、生成单向预测mv的方式等)。
[0063]
为了进一步提高预测效率,在avs3标准中应用了帧间预测滤波器(interpf),它结合了一个cu的帧内预测和基于合并模式的帧间预测。具体来说,对于每个合并cu,发信号通知一个另外的标志以指示是否为当前cu启用了interpf模式。当该标志为假时,禁用interpf并应用常规帧间预测来生成当前cu的预测样本;当第一标志为真时,将interpf应用于当前cu,并且发信号通知另一个标志以进一步指示使用两种interpf模式中的哪一种。描述了这两种interpf模式,如下所示:
[0064]
interpf模式一:将组合预测样本导出为帧间预测样本和来自左、右、上、下的五个相邻重构样本的加权平均值:
[0065]
pred(x,y)=(pred_inter(x,y)*5+pred_q(x,y)*3)》》3
[0066]
pred_q(x,y)=(pred_v(x,y)+pred_h(x,y)+1)》》2
ꢀꢀ
(8)
[0067]
pred_v(x,y)=((h-1-y)*rec(x,-1)+(y+1)*rec(-1,h)+(h》》1))》》log2(h)
[0068]
pred_h(x,y)=((w-1-x)*rec(-1,y)+(x+1)*rec(w,-1)+(w》》1))》》log2(w)
[0069]
interpf模式二:将组合预测样本导出为帧间预测样本和来自左、上的三个相邻重构样本的加权平均值:
[0070]
p

(x,y)=f(x)
·
p(-1,y)+f0)
·
p(x,-1)+(1-f(x)-f0))
·
p(x,y)
ꢀꢀ
(9)
[0071]
在式(9)中,将权重参数f(x)和f(y)预定义为一个查找表(lut),其基于当前cu的大小和帧内预测方向进行确定。
[0072]
虽然现有的obmc可以高效地减少运动补偿阶段的块状伪影,但其性能仍有待提高。特别是,在当前设计方案中,应用周围块的mv来修改当前cu的预测样本的重叠区域是固定的。这种设计方案不适用于vvc/avs3的高级块分区结构,其中可以通过不同的qt/bt/tt组合来实现可变块大小。另一方面,当前的obmc设计方案也给编码器和解码器的设计带来了很大的复杂性。特别是,当obmc应用在基于子块的mc之上时,这种复杂性问题可能变得很严重,这是因为需要重复多次相同的obmc(每次针对一个单独的子块)来修改一个cu内的所有子块的预测信号。这不仅会导致计算复杂性和存储器带宽的显著增加,而且还可能使硬
件编码器/解码器的流水线设计和并行处理复杂化。
[0073]
在本公开内容中,提出了提高obmc的编码效率并简化现有的obmc设计,以促进其用于硬件编解码器的实现的方法。特别是,为了最大化obmc的编码增益,特别注意使obmc更好地适应vvc和avs3标准的当前可变块分区结构。一般而言,本公开内容中提出的技术的主要方面可以总结如下。
[0074]
为了提高编码效率,提出了一种适应性obmc方案。与现有的obmc固定应用于4乘4单元的方法相比,所提出的算法适应性地调整obmc所应用的区域。此外,为了适应相邻mv之间变化的相关性,用于组合当前cu及其空间邻居的运动补偿预测的权重也可以适应性地改变。
[0075]
为了降低obmc的最坏情况复杂性,针对需要多个假设以生成当前cu的预测样本的编码模式,提出了禁用obmc的约束。首先,提出了一种基于单预测的obmc约束,其中仅允许将obmc应用于从一个单一预测方向预测的帧间块(即,单向预测)。其次,建议禁用gpm/awp和ciip/interpf的obmc,其中引入了额外的帧内/混合操作以生成最终预测样本。
[0076]
为了简化obmc的计算复杂性,建议仅使obmc能够针对于一个cu与其临时邻居之间的边界(即,顶部和左侧)上的预测样本。对于以任何子块模式编码的cu,其内部子块边界上的obmc始终处于禁用状态。
[0077]
如先前所述,在现有的obmc设计中,无论块大小和编码模式如何,一个当前cu的预测样本与其空间邻居的预测样本混合的重叠区域保持不变。然而,在现代视频编解码标准(如,vvc和avs3)中,应用可变块大小的分区结构来适应不同视频的局部统计/相关性。相应地,就obmc方案的编码效率和编码/解码复杂度而言,始终使用固定大小的样本混合可能不是最佳的。首先,选择大的混合大小的缺点是使用相邻mv生成的预测样本往往远离相应的相邻块。因此,使用当前mv和相邻mv生成的预测样本之间的相关性可能不足。此外,考虑到在obmc过程中需要生成更多预测样本,大混合区域也会导致计算复杂度的增加。另一方面,大的混合大小也可能是有利的,因为它可以在存在噪声(即,视频捕获噪声和编码过程引起的噪声)的情况下产生更可靠的预测信号。因此,为不同的块大小和编码模式选择最佳混合区域非常重要,其中最佳混合区域能够最大化由不同mv生成的多个预测之间的相关性,同时提供足够的编码噪声抵抗力。
[0078]
基于以上考虑,本节提出了一种改进的obmc方案。与现有的obmc相比,本文提出的算法主要有两点不同:1)基于当前cu的块大小和编码模式,适应性调整一个cu/子块的每个边界上的obmc混合区域;2)基于预测样本之间的相关性,适应性确定用于组合多个obmc预测样本的最优权重因子。另外,为了避免复杂的二维(2-d)混合操作,类似于现有设计,将所提出的obmc分为具有1d混合的多个步骤:在第一步中,只使用当前cu/子块上方的相邻块的mv与接近当前cu/子块的上边界的预测样本进行组合;在第二步,仅将当前cu/子块左侧的相邻块的mv与当前cu/子块左边界附近的预测样本进行组合;此外,在通过一种子块分区模式(例如,仿射、sbtmvp和mvap)对当前cu进行编码时,将第三步和第四步应用于每个子块,其中使用当前子块下方和右侧的相邻子块的mv,来修改接近子块底部和右侧边界的预测样本。
[0079]
为了便于说明起见,在下文中,以在不进行子块划分的常规帧间预测为例来说明所提出的算法。具体地说,令p
obmc
(x,y)表示将当前cu的预测信号与基于其空间邻居的mv的
多个预测信号组合后,在坐标(x,y)处的混合预测样本;p
cur
(x,y)表示当前cu的坐标(x,y)处使用其对应mv的预测样本;p
top
(x,y)和p
left
(x,y)表示分别使用cu左右邻居的mv,在当前cu的相同位置的预测样本。
[0080]
基于上述符号,使用当前cu顶部和左侧因果邻居的mv,逐步更新当前cu的边界预测样本。如图11a和11b可所示,首先检查当前块的顶部的块a。如果块a是一个帧间块,则它的mv将被分配给当前块以产生当前块的同位位置处的预测信号p
top
(x,y)。之后,将p
cur
和p
top
中当前块的顶部边界(如图11a中的阴影区域所示)下的行数进行混合,以产生对应的obmc预测信号p
obmc
。根据一个预定义函数来计算用于对两个预测信号进行组合的加权参数,其中k是应用混合的行数,l=0,1,

,k-1。具体来说,在应用obmc之后,将当前块的顶部边界上的更新预测样本计算为:
[0081][0082]
接下来,通过遵循相同的过程,所提出的方案通过以下方式,继续对当前块的左边界上的预测样本进行更新:1)使用左空间邻居的mv来生成当前块的同位预测样本p
left
(x,y)(即,块b和c);将p
left
(x,y)与式(10)中的现有预测信号进行混合以生成最终的obmc预测信号:
[0083][0084]
为了适应使用当前块及其相邻块的mv生成的预测样本之间的不同相关性,可以使用不同的函数来生成用于obmc混合的加权因子。在本公开内容的一个或多个实施例中,建议使用以下余弦函数将相关函数公式化为:
[0085][0086]
其中,ω
*
是控制参数,用于控制所应用的权重值的整体范围。对于现代视频编解码技术的技术人员而言,也可以应用其它公式函数(如,升余弦/正弦、指数函数、高阶多项式函数等)来生成权重。在实践中,可以根据编码视频的具体特性应用不同的ω
*
值。在一个或多个实施例中,建议使用一个固定的权重值(例如,0.5);相应地,通过这种方法,不需要从编码器向解码器发送权重值。在另一个实施例中,建议确定一组预定义的权重值(例如,0.125和0.875),并允许它不时改变,并将选定的权重值发信号通知解码器。在另一个实施例中,提出给予编码器自由以动态导出任意权重值,并将其在比特流中用信号通知。在这种情况下,可以完全灵活地选择允许的权重值,即最大限度地提高编码器的灵活性。同时,当应用上述任何基于信令的方案时,可以在各种编码级别(例如,序列参数集(sps)、图片参数集(pps)、图片/切片级别甚至ctu/cu级别)上,用信号发送相应的权重值。
[0087]
在图11a和图11b中,当应用垂直/水平obmc时,对预测样本的总行/列的一半进行混合。如上所述,不同的混合大小会导致实际编解码器实现的不同编码性能/复杂性权衡。在一个或多个实施例中,建议对所有帧间块使用一种固定混合大小(例如,沿一个cu/子块的顶部/左侧边界的4行/列)。在另一个实施例中,提出了基于当前cu的具体大小和划分方法,来适应性调整混合区域。例如,对于常规cu(即,没有子块划分的cu),建议基于cu的大小来确定混合区域。具体来说,对于启用垂直obmc(即,来自顶部邻居的obmc),仅将混合应用于靠近cu顶部边界的m%行的预测样本;否则,当启用水平obmc(即,来自左邻居的obmc)时,
仅将混合应用于靠近cu左边界的m%列的预测样本。另一方面,在通过一个子块划分模式(例如,仿射、sbtmvp和mvap)对当前cu进行编码时,基于对应的子块大小而不是cu大小来确定对应的混合大小(例如,m%的行/列)。在一个具体示例中,建议将m设置为50,即一半的行/列适用于obmc(如图11a和11b中所示)。在另一个实施例中,建议让编码器决定在应用obmc时的混合大小,并将该值发信号通知给解码器。
[0088]
如“问题陈述”部分中所分析的,当为一个帧间cu启用obmc时,需要执行多个运动补偿以沿cu和子块边界来生成预测样本。由于额外的插值运算,增加的运动补偿不仅增加了计算复杂性,而且还引入了不可忽略的存储器带宽消耗的增加。为了解决上述复杂性问题,在本节中,提出了一种受约束的obmc方案,其中,仅允许将obmc应用于从一个单一预测方向(即,单向预测)预测的帧间块。同时,在对用于生成当前块的obmc预测样本的一个相邻块进行双向预测时,仅选择来自一个方向的mv。具体地说,如果一个相邻块是单向预测的,则将直接应用相应的mv以便为obmc生成预测样本。否则(即,相邻块是双向预测的),obmc使用的帧间预测样本是基于来自一个预测列表(l0或l1)的单向预测生成的。为了选择预测列表,可以应用不同的方法。在第一种方法中,针对通过两个参考图片预测的任何相邻块,建议总是选择第一预测(即,列表l0)。在第二种方法中,针对通过两个参考图片预测的任何相邻块,建议总是选择第二预测(即,列表l1)。在第三种方法中,应用一种适应性方法,其中,选择与距当前图片具有较小图片顺序计数(poc)距离的一个参考图片相关联的预测列表。如果两个参考图片与当前图片的poc距离相等,则选择具有更好质量的更小图片。为了确定哪个参考图片具有更好的重构质量,可以应用两种方法。在第一种方法中,可以将应用于对相应参考图片/块进行编码的qp参数作为标准,并且具有较小qp的参数将用于obmc。在另一种方法中,可以将层id用作另一个标准,并且可以选择当前预测结构(例如,分层b结构)中具有较小层id的参考图片/块。
[0089]
另外,如先前所提及的,gpm/awp模式需要两个单独的运动补偿和一个加权平均操作,其计算复杂度已经大于常规双向预测。因此,如果将obmc进一步应用于gpm/awp模式,将有可能超过现有的最坏情况下的帧间预测复杂度。基于这样的考虑,在一个或多个实施例中,建议对通过gpm/awp模式编码的cu禁用obmc。
[0090]
与gpm/awp类似,ciip/interpf模式也引入了多个预测操作来生成最终的预测信号,包括一个运动补偿(在当前cu进行双向预测时,其可以是双向预测)、一个帧内预测和一个加权平均。因此,为了控制obmc的整体复杂度,作为本公开内容的一个实施例,提出了在当前cu采用ciip/interpf模式进行编码时,禁用obmc。
[0091]
如前所述,一个cu的子块的内部边界之间的obmc的运动(其通过一种子块模式进行编码)是为了减少存在于子块边界处的块伪影。这是通过将使用相邻mv的多个预测信号与一个子块的预测信号进行组合来完成的。如前所述,由于需要为obmc执行大量的运动补偿,这可能会给实际的硬件/软件编解码器设计带来严重的复杂性问题。这不仅会导致复杂性显著增加,而且还可能使编码器和解码器的流水线设计和并行处理复杂化。另一方面,现有子块模式的运动参数来源于其空间/时间相邻运动。例如,sbtmvp的运动场源自时间邻居,仿射模式的运动场源自基于线性模式的关键空间相邻运动。因此,这导致大多数子块模式的运动场相对稳定/一致。这意味着,通过将内部obmc过程用于子块边界实现的额外性能改进应该非常有限。基于这样的分析,对于应用了子块划分的cu(例如,仿射、sbtmvp和
mvap),建议对于沿不同子块之间的边界的所有预测样本都禁用obmc,而沿cu边界的obmc仍然适用。在一些实施例中,建议针对仿射模式的子块边界启用obmc,但针对sbtmvp和mvap模式的子块边界则进行禁用。在其它实施例中,建议针对仿射模式的子块边界禁用obmc,但针对sbtmvp和mvap模式的子块边界则进行启用。图12显示了用于示出在应用上述方法时的obmc过程的一个流程图。在框1201处,该方法以当前cu开始。在框1202处,可以对当前cu执行运动补偿。在框1203处,可以沿着当前cu的顶部和/或左侧边界执行obmc。在框1204处,可以做出决定以判断当前cu是否通过仿射模式进行编码。如果是,则该过程可以转到框1205,其中可以沿着子块边界执行obmc。否则,该过程可以转到在框1206处结束。
[0092]
图13根据本公开内容的一个或多个方面,示出了用于视频编码的方法的示例性流程图。在框1301处,可以将视频数据的帧分割成多个块。在框1302处,可以使用所述多个块中的当前块的一个或多个运动矢量,来获得所述当前块的当前预测。在框1303处,可以在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整。在框1304处,可以通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
[0093]
图14根据本公开内容的一个或多个方面,示出了用于视频解码的方法的示例性流程图。在框1401处,可以接收来自比特流的当前块,其中,所述当前块是从编码视频数据的帧中分割的多个块之一。在框1402处,可以使用所述当前块的一个或多个运动矢量,来获得所述当前块的当前预测。在框1403处,可以在相应的一个或多个混合区域中使用所述当前块的一个或多个相邻块的一个或多个运动矢量来获得所述当前块的一个或多个同位预测,其中,所述一个或多个混合区域中的每一混合区域是所述当前块的至少一部分并且至少基于所述分割能够进行调整。在框1404处,可以通过将所述当前预测和所述一个或多个同位预测进行组合,来获得所述当前块的组合预测。
[0094]
本公开内容描述了根据本公开内容的一个或多个方面的装置的硬件实现。用于编码视频数据或解码视频数据的装置可以包括存储器和至少一个处理器。处理器可以耦合到存储器并且被配置为执行上面参考图4至图12所描述的上述处理。该处理器可以是通用处理器,也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合,或者任何其它此种结构。存储器可以存储输入数据、输出数据、处理器生成的数据、和/或处理器执行的指令。
[0095]
结合本文公开内容所描述的各种操作、方法和系统可以利用硬件、由处理器执行的软件、固件或它们的任意组合来实现。根据本公开内容的一个或多个方面,一种用于对视频数据进行编码或者对视频数据进行解码的计算机程序产品可以包括用于执行上文参考图4至图12所描述的上述处理的处理器可执行计算机代码。根据本公开内容的一个或多个方面,一种计算机可读介质可以存储用于对视频数据进行编码或者对视频数据进行解码的计算机代码,当该计算机代码被处理器执行时,可以使处理器执行上文参考图4至图12所描述的上述处理。计算机可读介质包括非临时性计算机存储介质和通信介质,其中通信介质包括有助于将计算机程序从一个地方传输到另一个地方的任何介质。任何连接可以适当地称作计算机可读介质。其它实施例和实施方式也落入本公开内容的保护范围内。
[0096]
为使本领域任何普通技术人员能够实现或者使用根据本公开内容的一个或多个方面的各种实施例,上面围绕本公开内容进行了描述。对于本领域普通技术人员来说,对这些实施例的各种修改是显而易见的,并且,本文定义的总体原理也可以在不脱离各个实施例的保护范围的基础上适用于其它实施例。因此,本发明并不限于本技术所示出的实施例,而是与所附权利要求和本文公开的原理和新颖性特征的最广范围相一致。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1