基于历史的运动矢量预测

文档序号:246887 发布日期:2021-11-12 浏览:12次 >En<

阅读说明:本技术 基于历史的运动矢量预测 (History-based motion vector prediction ) 是由 全宰弘 庄孝强 张莉 王悦 于 2020-03-26 设计创作,主要内容包括:公开了基于历史的运动矢量预测。在视频处理的一个示例方法中,对于视频的第一区域和第一区域的比特流表示之间的转换,基于存储的多个HMVP表中的至少一个初始化与第一区域关联的第一历史运动矢量预测量(HMVP)表,多个HMVP表用于存储与在第一区域之前编解码的区域关联的运动信息;以及通过使用包括至少一个运动候选的初始化的第一HMVP表来执行转换。(History-based motion vector prediction is disclosed. In one example method of video processing, for a transition between a first region of video and a bitstream representation of the first region, initializing a first Historical Motion Vector Predictor (HMVP) table associated with the first region based on at least one of a plurality of HMVP tables stored for storing motion information associated with regions that were previously codec to the first region; and performing the conversion by using the initialized first HMVP table including the at least one motion candidate.)

基于历史的运动矢量预测

相关申请的交叉引用

根据适用的专利法和/或巴黎公约的规定,提出本申请是为了及时要求2019年3月27日提交的国际专利申请No.PCT/CN2019/079826的优先权和利益。通过引用将国际专利申请No.PCT/CN2019/079826的全部公开内容并入作为本申请的公开内容的一部分。

技术领域

该专利文件涉及视频编解码技术,装置和系统。

背景技术

尽管视频压缩取得了进步,但是数字视频仍占互联网和其他数字通信网络上使用的最大带宽。随着能够接收和显示视频的连接用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。

发明内容

描述了与数字视频编解码和解码有关的,具体地与使用基于历史的运动矢量预测量(HMVP)有关的装置,系统和方法。所述的方法可以应用于现有的视频编解码标准(例如,高效视频编解码(HEVC))和未来的视频编解码标准或视频编解码器。

在一个代表性方面,公开了一种视频处理的方法。该方法包括在视频区域和视频区域的比特流表示之间的转换期间,从多个存储的MVP表初始化运动矢量预测量(MVP)表。多个MVP的每一个包括先前在转换期间考虑的运动信息。使用从多个存储的MVP表选择的MVP表执行转换。

在另一个示例性方面,公开了另一种视频处理的方法。该方法包括在视频区域和视频区域的比特流表示之间的转换期间,从一个或多个存储的MVP表初始化运动矢量预测量(MVP)表的一个或多个条目,其中每个MVP表包括先前在转换期间考虑的运动信息,指示运动信息的标志从先前的MVP表继承或作为新运动信息加入当前区域中;以及使用从多个存储的MVP表选择的MVP表执行转换。

在另一个示例性方面,公开了另一种视频处理的方法。该方法包括对于视频的第一区域和第一区域的比特流表示之间的转换,基于存储的多个HMVP表中的至少一个初始化与第一区域关联的第一历史运动矢量预测量(HMVP)表,多个HMVP表用于存储与在第一区域之前编解码的区域关联的运动信息;以及通过使用包括至少一个运动候选的初始化的第一HMVP表来执行转换。

在另一个示例性方面,公开了另一种视频处理的方法。该方法包括对于视频的第一区域和第一区域的比特流表示之间的转换,基于与其他区域关联的多个HMVP表生成与第一区域关联的新历史运动矢量预测量(HMVP)表,多个HMVP表用于存储与在第一区域之前编解码的其他区域关联的运动信息;以及通过使用包括至少一个运动候选的生成的新HMVP表来执行转换。

在又一个代表性方面,上述方法以处理器可执行代码的形式体现并存储在计算机可读程序介质中。

在又一个代表性方面,公开了一种配置成或可操作以执行上述方法的装置。该装置可以包括编程为实施该方法的处理器。

在又一个代表性方面,视频解码器装置可以实施如本文所述的方法。

在附图,说明书和权利要求书中更详细地描述了公开技术的上述和其他方面以及特征。

附图说明

图1示出了构造merge候选列表的示例。

图2示出了空域候选的位置的示例。

图3示出受到空间merge候选的冗余校验的候选对的示例。

图4A和4B示出基于当前块的尺寸和形状的第二预测单元(PU)的位置的示例。

图5示出了用于时域merge候选的运动矢量缩放的示例。

图6示出了用于时域merge候选的候选位置的示例。

图7示出了生成组合的双向预测merge候选的示例。

图8示出了构造运动矢量预测候选的示例。

图9示出了用于空域运动矢量候选的运动矢量缩放的示例。

图10A-10B示出了将CU划分为两个三角预测单元(两个划分模式)的图示。

图11示出了相邻块的示例位置。

图12示出了用于TPM标志编解码中的上下文选择的相邻块(A和L)的示例。

图13A示出了4参数仿射模型的示例。

图13B示出了6参数仿射模型的示例。

图14示出了每个子块的仿射MVF的示例。

图15A和15B分别示出了简化4参数仿射模型和简化6参数仿射模型的示例。

图16示出了用于继承仿射候选的AF_INTER的运动矢量预测的示例。

图17示出了用于构造仿射候选的AF_INTER的运动矢量预测的示例。

图18A和18B示出了AF_MERGE仿射运动模式的示例候选。

图19示出了仿射merge模式的候选位置的示例。

图20示出了帧内图片块复制的示例。

图21示出了仿射merge模式的示例候选位置。

图22示出了修改的merge列表构造过程。

图23示出了merge共享节点的示例。

图24示出了不允许的三叉树TT和二叉树BT分割的示例。

图25示出了如何可以从相邻运动信息构造新运动信息的示例。

图26示出了如何可以从相邻运动信息构造运动信息的示例。

图27示出了用于视频处理的又一示例方法的流程图。

图28是用于实现本文件中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。

图29示出了用于视频处理的又一示例方法的流程图。

图30示出了用于视频处理的又一示例方法的流程图。

具体实施方式

本文件涉及数字视频编解码和解码。在本文件中使用小节标题仅是为了便于理解,而不以任何方式限制所公开的实施例的范围。此外,尽管来自H.266标准的当前工作草案的术语用作参考,但是所公开的技术同样适用于其他视频编解码器技术。

1.概述

由于对高分辨率视频的需求不断增长,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且会不断进行改进以提供更高的编解码效率。视频编解码器将未压缩的视频转换为压缩格式,反之亦然。视频质量,用于表示视频的数据量(由比特率确定),编码和解码算法的复杂性,对数据丢失和错误的敏感性,易于编辑,随机访问以及端到端延迟(延迟)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(HEVC)标准(也称为H.265或MPEG-HPart 2),待完成的通用视频编解码标准,或其他当前的和/或未来的视频编解码标准。

2.初步讨论

视频编解码标准主要是通过开发著名的ITU-T和ISO/IEC标准而发展起来的。ITU-T制作了H.261和H.263,ISO/IEC制作了MPEG-1和MPEG-4Visual,这两个组织共同制作了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。从H.262开始,视频编解码标准基于混合视频编解码结构,其中利用了时域预测和变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索团队(JVET)。此后,JVET采纳了许多新方法并将其引入到名为“联合探索模型”(JEM)的参考软件中。2018年4月,VCEG(Q6/16)与ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家团队(JVET)成立以致力于VVC标准,与HEVC相比,其比特率降低50%。

公开技术的实施例可以应用于现有视频编解码标准(例如,HEVC,H.265)和未来标准以改善压缩性能。在本文件中使用小节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)仅限于相应的小节。

2.1HEVC/H.265中的帧间预测

每个帧间预测的PU具有用于一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。两个参考图片列表之一的使用也可以使用inter_pred_idc来信令通知。运动矢量可以显式地编解码为相对于预测量的增量。

当CU以跳过模式编解码时,一个PU与CU关联,并且不存在显著残差系数,编解码运动矢量增量或参考图片索引。指定merge模式,由此从包括空域和时域候选的相邻PU获得当前PU的运动参数。merge模式可以应用于任何帧间预测的PU,不仅用于跳过模式。merge模式的替代是运动参数的显式传输,其中运动矢量(更准确地说,与运动矢量预测量相比的运动矢量差(MVD)),每个参考图片列表的对应参考图片索引以及参考图片列表使用针对每个PU显式地信令通知。在本公开中这样的模式称为高级运动矢量预测(AMVP)。

当信令指示将使用两个参考图片列表中的一个时,从一个样点块产生PU。这称为‘单向预测’。单向预测可用于P条带和B条带两者。

当信令指示将使用两个参考图片列表时,PU由两个样点块产生。这称为‘双向预测’。双向预测仅可用于B条带。

以下文字提供了HEVC中指定的帧间预测模式的详细介绍。描述将从merge模式开始。

2.1.1参考图片列表

在HEVC中,术语帧间预测用于表示从当前解码图片以外的参考图片的数据元素(例如,样点值或运动矢量)推导的预测。像在H.264/AVC中一样,可以从多个参考图片预测图片。用于帧间预测的参考图片被组织在一个或多个参考图片列表中。参考索引标识应使用列表中的哪些参考图片来产生预测信号。

单个参考图片列表列表(列表0)用于P条带,两个参考图片列表(列表0和列表1)用于B条带。应当注意,就捕获/显示顺序而言,列表0/1中包括的参考图片可以来自过去和将来的图片。

2.1.2Merge模式

2.1.2.1merge模式的候选的推导

当使用merge模式预测PU时,指向merge候选列表中的条目的索引从比特流解析并用于检索运动信息。该列表的构造在HEVC标准中指定并且可以根据以下步骤序列进行总结:

·步骤1:初始候选推导

ο步骤1.1:空域候选推导

ο步骤1.2:空域候选的冗余校验

ο步骤1.3:时域候选推导

·步骤2:附加候选插入

ο步骤2.1:创建双向预测候选

ο步骤2.2:插入零运动候选

在图1中也示意性地描绘了这些步骤。对于空域merge候选推导,在位于五个不同位置的候选中最多选择四个merge候选。对于时域merge候选推导,在两个候选中最多选择一个merge候选。由于在解码器处假定每个PU的候选数量恒定,因此当从步骤1获得的候选数量未达到条带标头中信令通知的最大merge候选数量(MaxNumMergeCand)时会生成附加候选。由于候选的数量是恒定的,因此最佳merge候选的索引使用截断一元二值化(TU)进行编解码。如果CU的尺寸等于8,则当前CU的所有PU共享单个merge候选列表,其与2N×2N预测单元的merge候选列表相同。

在下面,详细描述与前述步骤相关的操作。

2.1.2.2.空域候选推导

在空域merge候选的推导中,在位于图2中所示的位置的候选中最多选择四个merge候选。推导顺序为A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任何PU不可用(例如,由于其属于另一条带或片)或未进行帧内编解码时才考虑位置B2。在加入位置A1处的候选之后,对其余候选的加入进行冗余校验以确保将具有相同运动信息的候选从列表排除,从而提高编解码效率。为了降低计算复杂度,在提到的冗余校验中并未考虑所有可能的候选对。而是仅考虑在图3中用箭头链接的对,并且仅在用于冗余校验的对应候选不具有相同运动信息时才将候选加入列表。

2.1.2.2.1Merge估计区域(MER)

重复运动信息的另一来源是与不同于2N×2N的分区关联的“第二PU”。作为示例,图4分别描绘了在N×2N和2N×N的情况下的第二PU。当当前PU被分割为N×2N时,不考虑位置A1处的候选用于列表构造。实际上,通过加入该候选将导致具有相同运动信息的两个预测单元,这对于在编解码单元中仅具有一个PU是冗余的。类似地,当当前PU被分割为2N×N时,不考虑位置B1

图4示出了N×2N和2N×N分区的第二PU的示例位置。

2.1.2.3时域候选推导

在该步骤中,仅将一个候选加入列表。特别地,在该时域merge候选的推导中,基于属于与给定参考图片列表内的当前图片具有最小图片序数(POC)差的图片的共位PU来推导缩放运动矢量。在条带标头中显式地信令通知要用于推导共位PU的参考图片列表。如图5中的虚线所示,获得用于时域merge候选的缩放运动矢量,其使用POC距离tb和td从位于共位PU的运动矢量缩放,其中tb被定义为当前图片的参考图片和当前图片之间的POC差,并且td被定义为共位图片的参考图片和共位图片之间的POC差。将时域merge候选的参考图片索引设置为等于零。在HEVC规范中描述了缩放过程的实际实现。对于B条带,获得两个运动矢量,一个运动矢量用于参考图片列表0并且另一运动矢量用于参考图片列表1,并将其组合以产生双向预测merge候选。

在属于参考帧的共位PU(Y)中,在候选C0和C1之间选择时域候选的位置,如图6中所示。如果位置C0处的PU不可用,未进行帧内编解码或在当前编解码树单元(CTU,又称LCU,最大编解码单元)行的外部,则使用位置C1。否则,在时域merge候选的推导中使用位置C0

图6示出了用于时域merge候选C0和C1的示例候选位置。

2.1.2.4附加候选插入

除了空域和时域merge候选外,还有两种附加类型的merge候选:组合双向预测merge候选和零merge候选。通过利用空域和时域merge候选来生成组合双向预测merge候选。组合双向预测merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一个候选的第二参考图片列表运动参数组合来生成组合双向预测候选。如果这两个元组提供不同的运动假设,则它们将形成新的双向预测候选。例如,图7描绘了原始列表(左侧)中具有mvL0和refIdxL0或mvL1和refIdxL1的两个候选用于产生加入最终列表(右侧)的组合双向预测merge候选的情况。关于组合有许多规则,这些规则被认为可以生成这些附加的merge候选。

插入零运动候选以填充merge候选列表中的其余条目并因此达到Ma*NumMergeCand容量。这些候选具有零空间位移和参考图片索引,所述参考图片索引从零开始并且每当新的零运动候选加入列表时会增加。

更具体地,依次执行以下步骤,直到merge列表已满:

将变量numRef设置为与用于P条带的列表0关联的参考图片的数量,或用于B条带的两个列表中的最小参考图片的数量;

加入非重复的零运动候选:

对于变量i为0…numRef-1,加入默认运动候选,其中MV设置为(0,0)并且针对列表0(如果P条带)或两个列表(如果B条带)参考图片索引设置为i。

加入重复零运动候选,其中MV设置为(0,0),列表0的参考图片索引设置为0(如果P条带)并且两个列表的参考图片索引设置为0(如果B条带)。

最后,不对这些候选执行冗余校验。

2.1.3AMVP

AMVP利用运动矢量与相邻PU的空时相关性,其用于运动参数的显式传输。对于每个参考图片列表,通过首先校验左上时域相邻PU位置的可用性,去除冗余候选并加入零矢量以使候选列表为恒定长度,从而构造运动矢量候选列表。然后,编码器可以从候选列表选择最佳预测量并传输指示所选候选的相应索引。与merge索引信令类似,最佳运动矢量候选的索引使用截断一元码进行编码。在该情况下待编码的最大值是2(图8)。在以下小节中,提供了关于运动矢量预测候选的推导过程的细节。

2.1.3.1AMVP候选的推导

图8总结了运动矢量预测候选的推导过程。

在运动矢量预测中,考虑了两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,最终基于位于如图2中所示的五个不同位置的每个PU的运动矢量推导两个运动矢量候选。

对于时域运动矢量候选推导,从基于两个不同的共位位置推导的两个候选中选择一个运动矢量候选。在制作空时候选的第1列表之后,去除该列表中的重复运动矢量候选。如果潜在候选的数量大于二,则从列表去除其相关参考图片列表内的参考图片索引大于1的运动矢量候选。如果空时运动矢量候选的数量小于二,则将附加的零运动矢量候选加入列表。

2.1.3.2空域运动矢量候选

在空域运动矢量候选的推导中,在位于如图2中所示的位置的PU推导的五个潜在候选中考虑最多两个候选,那些位置与运动merge的位置相同。当前PU的左侧的推导顺序被定义为A0、A1以及缩放A0、缩放A1。当前PU的上侧的推导顺序被定义为B0、B1、B2、缩放B0、缩放B1、缩放B2。对于每一侧,因此存在可以用作运动矢量候选的四种情况,其中两种情况不需要使用空域缩放,而两种情况则使用空域缩放。四种不同的情况总结如下。

·无空域缩放

–(1)相同参考图片列表和相同参考图片索引(相同POC)

–(2)不同参考图片列表,但相同参考图片(相同POC)

·空域缩放

–(3)相同参考图片列表,但不同参考图片(不同POC)

–(4)不同参考图片列表和不同参考图片(不同POC)

首先校验无空域缩放的情况,然后校验空域缩放。当相邻PU的参考图片和当前PU的参考图片之间的POC不同时,不管参考图片列表如何,都考虑空域缩放。如果左候选的所有PU都不可用或未被帧内编解码,则允许对以上运动矢量进行缩放以帮助并行推导左和上MV候选。否则,不允许对以上运动矢量进行空域缩放。

图9是用于空域运动矢量候选的运动矢量缩放的图示。

在空域缩放过程中,以与时域缩放类似的方式缩放相邻PU的运动矢量,如图9中所示。主要区别在于给出了当前PU的参考图片列表和索引作为输入;实际缩放过程与时域缩放过程相同。

2.1.3.3时域运动矢量候选

除了参考图片索引推导之外,用于推导时域merge候选的所有过程与推导空域运动矢量候选的过程相同(参见图6)。向解码器信令通知参考图片索引。

2.2VVC中的帧间预测方法

有几种用于帧间预测改进的新编解码工具,例如用于信令通知MVD的自适应运动矢量差分辨率(AMVR),用于仿射块和平移运动块,仿射预测模式,三角预测模式(TPM),替代TMVP(ATMVP),广义双向预测(GBI),双向光流(BIO),帧内块复制(IBC)等。

2.2.1自适应运动矢量差分辨率

在HEVC中,当条带标头中的use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知运动矢量差(MVD)(在PU的运动矢量和预测运动矢量之间)。在VVC中,引入了局部自适应运动矢量分辨率(LAMVR)。

2.2.1.1用于平移运动块的AMVR

在VVC中,可以以四分之一亮度样点,整数亮度样点或四亮度样点(即1/4像素,1像素,4像素)为单位对MVD进行编解码。MVD分辨率被控制在编解码单位(CU)级别,并且对具有至少一个非零MVD分量的每个CU有条件地信令通知MVD分辨率标志。

对于具有至少一个非零MVD分量的CU,信令通知第一标志以指示在CU中是否使用四分之一亮度样点MV精度。当第一标志(等于1)指示未使用四分之一亮度样点MV精度时,信令通知另一标志以指示是使用整数亮度样点MV精度还是使用四亮度样点MV精度。

当CU的第一MVD分辨率标志为零或未针对CU编解码(意味着CU中的所有MVD都为零)时,四分之一亮度样点MV分辨率用于CU。当CU使用整数亮度样点MV精度或四亮度样点MV精度时,用于CU的AMVP候选列表中的MVP取整到相应的精度。

2.2.1.2用于仿射运动块的AMVR

类似于平移运动块的设计(又名普通AMVR模式),AMVR模式扩展到仿射编解码块(又名仿射AMVR模式)。

对于仿射AMVR模式,支持三种MV/MVD分辨率,即{1/16,1/4,1}像素。

2.2.2三角预测模式

三角预测模式(TPM)的概念是引入用于运动补偿预测的新三角分区。如图10中所示,其将CU在对角方向或反对角方向分划成两个三角预测单元。CU中的每个三角预测单元使用从单个单向预测候选列表推导的其自身的单向预测运动矢量和参考帧索引来帧间预测。在预测三角预测单元之后,对对角边缘执行自适应加权处理。然后,将变换和量化过程应用于整个CU。应当注意,该模式仅应用于merge模式(注意:跳过模式被视为特殊的merge模式)。

图10A示出了135度分区类型的示例(从左上角到右下角划分)的示例。

图10B示出了45度划分模式的示例。

图10A-10B示出了将CU划分为两个三角预测单元(两个划分模式)的图示。

2.2.2.1用于TPM的单向预测候选列表

称为TPM运动候选列表的单向预测候选列表由五个单向预测运动矢量候选组成。如图11中所示,其从包括五个空域相邻块(1至5)和两个时域共位块(6至7)的七个相邻块推导。按照单向预测运动矢量,双向预测运动矢量的L0运动矢量,双向预测运动矢量的L1运动矢量,和双向预测运动矢量的L0和L1运动矢量的平均运动矢量的顺序,收集七个相邻块的运动矢量并将其放入单向预测候选列表中。如果候选数量少于五,则将零运动矢量加入列表中。在用于TPM的该列表中加入的运动候选称为TPM候选,从空域/时域块推导的运动信息称为常规运动候选。

更具体地,涉及以下步骤:

1)当从空域相邻块加入常规运动候选时,用完全剪切操作从A1、B1、B0、A0、B2、Col和Col2(对应于图11中的块1-7)获得常规运动候选。

2)设置变量numCurrMergeCand=0

3)对于从A1、B1、B0、A0、B2、Col和Col2推导的每个常规运动候选(如果未剪切),并且numCurrMergeCand小于5,如果常规运动候选是单向预测(来自列表0或列表1),则将其作为TPM候选直接加入到merge列表,numCurrMergeCand增加1。这样的TPM候选被称‘原始单向预测候选’。

应用完全剪切。

4)对于从A1、B1、B0、A0、B2、Col和Col2推导的每个运动候选(如果未剪切),并且numCurrMergeCand小于5,如果常规运动候选是双向预测,则将来自列表0的运动信息作为新TPM候选加入到TPM merge列表(即,修改为来自列表0的单向预测)并将numCurrMergeCand增加1。这样的TPM候选称为‘截断列表0预测候选’。

应用完全剪切。

5)对于从A1、B1、B0、A0、B2、Col和Col2推导的每个运动候选(如果未剪切),并且numCurrMergeCand小于5,如果常规运动候选是双向预测,则将来自列表1的运动信息加入到TPM merge列表(即,修改为来自列表1的单向预测)并将numCurrMergeCand增加1。这样的TPM候选称为‘截断列表1预测候选’。

应用完全剪切。

6)对于从A1、B1、B0、A0、B2、Col和Col2推导的每个运动候选(如果未剪切),并且numCurrMergeCand小于5,如果常规运动候选是双向预测,

–如果列表0参考图片的条带QP小于列表1参考图片的条带QP,则首先将列表1的运动信息缩放到列表0参考图片,并且将两个MV的平均值(一个来自原始列表0,另一个是来自列表1的缩放MV)加入到TPM merge列表,这样的候选称为来自列表0运动候选的平均单向预测,并且将numCurrMergeCand增加1。

–否则,首先将列表0的运动信息缩放到列表1参考图片,并且将两个MV的平均值(一个来自原始列表1,另一个是来自列表0的缩放MV)加入到TPM merge列表,这样的TPM候选称为来自列表1运动候选的平均单向预测,并且将numCurrMergeCand增加1。

应用完全剪切。

7)如果numCurrMergeCand小于5,则加入零运动矢量候选。

图11示出了相邻块的示例位置。

当将候选插入列表时,如果必须将其与所有先前加入的候选进行比较以查看其是否与它们中的一个相同,则这样的过程称为完全剪切。

2.2.2.2加权过程

在预测每个三角预测单元之后,将以下加权过程应用于两个三角预测单元之间的对角边缘以推导整个CU的最终预测。加权因数组如下定义:

加权因数组:{7/8,6/8,5/8,4/8,3/8,2/8,1/8}和{6/8,4/8,2/8}分别用于亮度和色度样点。

应当注意混合区域取决于块的纵横比。对于正方形块,如上所述,加权像素的宽度对于亮度是7并且对于色度是3。对于矩形块,当宽度大于高度时,宽度将增加(W/H)的因数。在转到下一个因数之前,将每个因数重复(W/H)次。如果高度大于宽度,则宽度与正方形块中的宽度相同,而在向右移动一个像素位置之前它们会重复(H/W)行。

2.2.2.3三角预测模式(TPM)的信令

可以首先信令通知指示是否使用TPM的一位标志。之后,进一步信令通知两个划分模式的指示(如图10中所示),以及针对两个分区的每个分区选择的merge索引。

2.2.2.3.1TPM标志的信令

让W和H分别表示一个亮度块的宽度和高度。如果W*H<64,则禁用三角预测模式。

当以仿射模式对一个块进行编解码时,也禁用三角预测模式。

当以merge模式对一个块进行编解码时,可以信令通知一位标志以指示该块是启用还是禁用三角预测模式。

基于以下方程,用3个上下文对标志进行编解码:

Ctx index=((左块L可用&&L用TPM编解码?)1:0)

+((上块A可用&&A用TPM编解码?)1:0);

图12示出了用于TPM标志编解码中的上下文选择的相邻块(A和L)的示例。

2.2.3仿射运动补偿预测

在HEVC中,仅将平移运动模型应用于运动补偿预测(MCP)。在现实世界中,有多种运动,例如放大/缩小,旋转,透视运动和其他不规则运动。在VVC中,简化仿射变换运动补偿预测应用于4参数仿射模型和6参数仿射模型。如图13A-13B中所示,通过用于4参数仿射模型的两个控制点运动矢量(CPMV)和用于6参数仿射模型的3个CPMV来描述块的仿射运动场。

图13A示出了4参数仿射模型的示例。

图13B示出了6参数仿射模型的示例。

块的运动矢量场(MVF)由以下方程描述,其中方程(1)中的4参数仿射模型(其中4参数定义为变量a、b、e和f)和方程(2)中的6参数仿射模型(其中4参数定义为变量a、b、c、d、e和f)分别为:

其中(mvh 0,mvh 0)是左上角控制点的运动矢量,(mvh 1,mvh 1)是右上角控制点的运动矢量并且(mvh 2,mvh 2)是左下角控制点的运动矢量,所有三个运动矢量称为控制点运动矢量(CPMV),(x,y)表示代表点相对于当前块内左上样点的坐标,并且(mvh(x,y),mvv(x,y))是针对位于(x,y)处的样点推导的运动矢量。CP运动矢量可以被信令通知(例如在仿射AMVP模式下)或被即时推导(例如在仿射merge模式下)。w和h是当前块的宽度和高度。在实践中,除法是通过取整操作右移来实现的。在VTM中,代表点定义为子块的中心位置,例如,当子块的左上角相对于当前块内左上角样点的坐标为(xs,ys),代表点的坐标定义为(xs+2,ys+2)。对于每个子块(即,VTM中的4×4),代表点用于推导整个子块的运动矢量。

为了进一步简化运动补偿预测,应用基于子块的仿射变换预测。为了推导每个M×N(在当前VVC中M和N都设置为4)子块的运动矢量,如图14中所示,每个子块的中心样点的运动矢量根据方程(1)和(2)计算,并取整到1/16分数精度。然后应用用于1/16像素的运动补偿插值滤波器以用推导运动矢量生成每个子块的预测。由仿射模式引入用于1/16像素的插值滤波器。

图14示出了每个子块的仿射MVF的示例。

在MCP之后,对每个子块的高精度运动矢量进行取整并保存为与普通运动矢量相同的精度。

2.2.3.1仿射预测的信令

与平移运动模型相似,由于仿射预测,还存在用于信令通知辅助信息化的两个模式。它们是AFFINE_INTER和AFFINE_MERGE模式。

2.2.3.2AF_INTER模式

对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在比特流中信令通知CU级别的仿射标志以指示是否使用AF_INTER模式。

在该模式下,对于每个参考图片列表(列表0或列表1),仿射AMVP候选列表按以下顺序构造有三种类型的仿射运动预测量,其中每个候选包括当前块的估计CPMV。信令通知在编码器侧找到的最佳CPMV(例如,图17中的mv0mv1mv2)和估计CPMV的差。另外,进一步信令通知从其推导估计CPMV的仿射AMVP候选的索引。

1)继承仿射运动预测量

校验顺序类似于HEVC AMVP列表结构中的空域MVP。首先,从{A1,A0}中的第一块推导左继承仿射运动预测量,所述第一块进行仿射编解码并且具有与当前块相同的参考图片。其次,从{B1,B0,B2}中的第一块推导以上继承仿射运动预测量,所述第一块进行仿射编解码并且具有与当前块相同的参考图片。在图16中示出了五个块A1、A0、B1、B0、B2。

一旦发现相邻块以仿射模式编解码,则覆盖相邻块的编解码单元的CPMV用于推导当前块的CPMV的预测量。例如,如果A1用非仿射模式编解码并且A0用4参数仿射模式编解码,则左继承仿射MV预测量将从A0推导。在该情况下,覆盖A0的CU的CPMV,由图18B中的用于左上CPMV的和用于右上CPMV的用于推导当前块的估计CPMV,由用于当前块的左上(坐标(x0,y0)),右上(坐标(x1,y1))和右下位置(坐标(x2,y2))的表示。

2)构造仿射运动预测量

构造仿射运动预测量由从具有相同参考图片的相邻帧间编解码块推导的控制点运动矢量(CPMV)组成,如图17中所示。如果当前仿射运动模型是4参数仿射,则CPMV的数量为2,否则,如果当前仿射运动模型是6参数仿射,则CPMV的数量为3。通过组{A,B,C}中的第一块处的MV推导左上CPMV所述第一块进行帧间编解码并且具有与当前块相同的参考图片。通过组{D,E}中的第一块处的MV推导右上CPMV所述第一块进行帧间编解码并且具有与当前块相同的参考图片。通过组{F,G}中的第一块推导左下CPMV所述第一块进行帧间编解码并且具有与当前块相同的参考图片。

–如果当前仿射运动模型是4参数仿射,则只有找到两者,即用作当前块的左上(坐标为(x0,y0)),右上(坐标为(x1,y1))位置的估计CPMV时,才将构造仿射运动预测量插入候选列表中。

–如果当前仿射运动模型是6参数仿射,则只有全部找到用作当前块的左上(坐标为(x0,y0)),右上(坐标为(x1,y1))和右下(坐标为(x2,y2))位置的估计CPMV时,才将构造仿射运动预测量插入候选列表中。

当将构造仿射运动预测量插入候选列表中时不应用剪切过程。

3)普通AMVP运动预测量

直到仿射运动预测量的数量达到最大值为止,以下适用。

1)通过将所有CPMV设置为等于(如果可用)来推导仿射运动预测量。

2)通过将所有CPMV设置为等于(如果可用)来推导仿射运动预测量。

3)通过将所有CPMV设置为等于(如果可用)来推导仿射运动预测量。

4)通过将所有CPMV设置为等于HEVC TMVP(如果可用)来推导仿射运动预测量。

5)通过将所有CPMV设置为零MV来推导仿射运动预测量。

应当注意,已经在构造仿射运动预测量中被推导。

图15A示出了4参数仿射模型。

图15B示出了6参数仿射模型。

图16示出了用于继承仿射候选的AF_INTER的MVP。

图17示出了用于构造仿射候选的AF_INTER的MVP。

在AF_INTER模式下,当使用4/6参数仿射模式时,需要2/3控制点,因此,需要针对这些控制点编解码2/3MVD,如图15中所示。建议如下推导MV,即,从mvd0预测mvd1和mvd2

其中mvdi和mvd1分别是左上像素(i=0),右上像素(i=1)或左下像素(i=2)的预测运动矢量,运动矢量差和运动矢量,如图15B中所示。请注意,两个运动矢量(例如mvA(xA,yA)和mvB(xB,yB))的相加分别等于两个分量的总和,即newMV=mvA+mvB,而newMV的两个分量分别设置为(xA+xB)和(yA+yB)。

2.2.3.3AF_MERGE模式

当在AF_MERGE模式下应用CU时,其从有效相邻重建块获得以仿射模式编解码的第一块。并且候选块的选择顺序是从左,上,右上,左下到左上,如图18A中所示(依次由A、B、C、D、E表示)。例如,如果相邻左下块在仿射模式下被编解码,如图18B中的A0所示,则获取包含块A的相邻CU/PU的左上角,右上角和左下角的控制点(CP)运动矢量mv0 N,mv1 N和mv2 N。并且基于mv0 N,mv1 N和mv2 N计算当前CU/PU上的左上角/右上/左下的运动矢量mv0 C,mv1 C和mv2 C(仅用于6参数仿射模型)。应当注意在VTM-2.0中,位于左上角的子块(例如VTM中的4×4块)存储mv0,如果当前块被仿射编解码,则位于右上角的子块存储mv1。如果当前块用6参数仿射模型进行编解码,则位于左下角的子块将存储mv2;否则(用4参数仿射模型),LB存储mv2’。其他子块存储用于MC的MV。

在推导当前CU的CPMV mv0 C,mv1 C和mv2 C之后,根据简化仿射运动模型方程(1)和(2),生成当前CU的MVF。为了识别当前CU是否用AF_MERGE模式编解码,则当至少一个相邻块在仿射模式下编解码时,在比特流中信令通知仿射标志。

图18A-18B示出了用于AF_MERGE的候选示例(18A-五个相邻块,18B-CPMV预测量推导)。

通过以下步骤构造仿射merge候选列表:

1)插入继承仿射候选

继承仿射候选表示候选从其有效相邻仿射编解码块的仿射运动模型推导。最多两个继承仿射候选从相邻块的仿射运动模型推导并插入候选列表中。对于左预测量,扫描顺序为{A0,A1};对于上预测量,扫描顺序为{B0,B1,B2}。

2)插入构造仿射候选

如果仿射merge候选列表中的候选数量小于MaxNumAffineCand(例如5),则将构造仿射候选插入候选列表中。构造仿射候选表示通过组合每个控制点的相邻运动信息来构造候选。

a)首先从图19中所示的指定空间邻域和时间邻域推导控制点的运动信息。CPk(k=1、2、3、4)表示第k个控制点。A0、A1、A2、B0、B1、B2和B3是用于预测CPk的空间位置(k=1、2、3);T是用于预测CP4的时间位置。CP1、CP2、CP3和CP4的坐标分别是(0,0)、(W,0)、(H,0)和(W,H),其中W和H是当前块的宽度和高度。

图19示出了用于仿射merge模式的候选位置的示例。

根据以下优先级顺序获得每个控制点的运动信息:

–对于CP1,校验优先级为B2->B3->A2。如果可用,则使用B2。否则,如果B2可用,则使用B3。如果B2和B3都不可用,则使用A2。如果三个候选都不可用,则无法获得CP1的运动信息。

–对于CP2,校验优先级为B1->B0。

–对于CP3,校验优先级为A1->A0。

–对于CP4,使用T。

b)其次,使用控制点的组合来构造仿射merge候选。

I.需要三个控制点的运动信息来构建6参数仿射候选。可以从以下四个组合({CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4})中的一个选择三个控制点。{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}的组合将转换为由左上,右上和左下控制点表示的6参数运动模型。

II.需要两个控制点的运动信息来构建4参数仿射候选。可以从两个组合({CP1,CP2},{CP1,CP3})中的一个选择两个控制点。这两个组合将转换为由左上和右上控制点表示的4参数运动模型。

III.构造仿射候选的组合按以下顺序插入候选列表中:{CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3}

i.对于每个组合,校验每个CP的列表X的参考索引,如果它们都相同,则该组合具有用于列表X的有效CPMV。如果组合不用于用于两个列表0和列表1的有效CPMV,则该组合被标记为无效。否则,它是有效的,并将CPMV放入子块merge列表中。

3)零运动矢量填充

如果仿射merge候选列表中的候选数量小于5,则将具有零参考索引的零运动矢量插入候选列表中,直到列表已满。

更具体地,对于子块merge候选列表,将MV设置为(0,0)并且将预测方向设置为来自列表0的单向预测(对于P条带)和双向预测(用于B条带)的4参数merge候选。

2.2.4当前图片参考

在HEVC屏幕内容编解码扩展(SCC)中采用帧内块复制(也称为IBC或帧内图片块补偿),也称为当前图片参考(CPR)。该工具对于屏幕内容视频的编解码非常有效,因为文本和图形丰富内容的重复模式经常出现在相同图片中。将具有相同或相似模式的先前重建的块用作预测量可以有效地减少预测误差并因此提高编解码效率。帧内块补偿的示例在图20中示出。

图20示出了帧内图片块复制的示例。

类似于HEVC SCC中的CRP设计,在VVC中,在序列和图片级都信令通知IBC模式的使用。在序列参数集(SPS)处启用IBC模式时,可以在图片级启用它。当在图片级启用IBC模式时,当前重建的图片将被视为参考图片。因此,在现有的VVC帧间模式之上不需要在块级进行语法更改即可信令通知IBC模式的使用。

主要特征:

–其被视为特殊帧间模式。因此,merge和跳过模式也可用于IBC模式merge候选列表结构是统一的,包含来自相邻位置的merge候选,其在IBC模式或HEVC帧间模式下进行编解码。取决于所选的merge索引,merge或跳过模式下的当前块可以以不同图片作为参考图片merge为IBC模式编解码邻域或普通帧间模式编解码邻域。

–用于IBC模式的运动矢量(也称为块矢量)以整数像素精度进行编解码,但由于在插值和去块阶段需要四分之一像素精度,因此在解码后以1/16像素精度存储在存储器中。当用于IBC模式的运动矢量预测时,存储的矢量预测量将右移4。

–搜索范围:其被限制在当前CTU内。

–当启用仿射模式/三角模式/GBI/加权预测时不允许CPR。

2.2.5VVC中的merge列表设计

在VVC中支持四种不同的merge列表构造过程:

1)子块merge候选列表:其包括ATMVP和仿射merge候选。仿射模式和ATMVP模式共享一个merge列表构造过程。这里,可以按顺序加入ATMVP和仿射merge候选。子块merge列表尺寸在条带标头中信令通知,并且最大值为5。

2)Uni-Prediction TPM merge列表:对于三角预测模式,即使两个分区可以选择其自身的merge候选索引,也共享两个分区的一个merge列表构造过程。当构造该merge列表时,校验该块的空域相邻块和两个时域块。从空间邻域和时域块推导的运动信息在我们的IDF中称为常规运动候选。这些常规运动候选进一步用于推导多个TPM候选。请注意,变换是在整个块级执行,即使两个分区可能使用不同的运动矢量来生成其自身的预测块。单向预测TPM merge列表尺寸固定为5。

3)常规merge列表:对于其余的编解码块,共享一个merge列表构造过程。这里,可以按顺序插入空域/时域/HMVP,成对组合的双向预测merge候选和零运动候选。在条带merge标头信令通知常规merge列表尺寸,并且最大值为6。MMVD,

4)IBC merge列表:其以与常规merge列表类似的方式完成。

2.2.5.1子块merge候选列表

建议除了用于非子块merge候选的常规merge列表之外,将所有子块相关运动候选放入独立的merge列表中。

将子块相关的运动候选放入称为‘子块merge候选列表’的单独merge列表中。

在一个示例中,子块merge候选列表包括仿射merge候选和ATMVP候选,和/或基于子块的STMVP候选。

子块merge候选列表按以下顺序填充有候选:

a.ATMVP候选(可能可用或不可用);

b.仿射merge列表(包括继承仿射候选和构造仿射候选)

c.填充为零MV 4参数仿射模型

2.2.5.1.1ATMVP(又名子块时域运动矢量预测量,SbTMVP)

ATMVP的基本思想是为一个块推导多组时域运动矢量预测量。每个子块分配有一组预测量。当生成ATMVP merge候选时,应用以下过程:

a.如图2中所示,依次校验相邻块A1以找到第一帧间编解码但未CPR编解码的块,表示为块X;

b.初始化TMV=(0,0)。如果存在块X的MV(表示为MV’),指示共位参考图片(在条带标头中信令通知),则将TMV设置为等于MV’。

c.假设当前块的中心点是(x0,y0),则在共位图片中将(x0,y0)的对应位置定位为M=(x0+MV’x,y0+MV’y)。找到覆盖M的块Z。

i.如果Z进行帧内编解码,则ATMVP不可用;

ii.如果Z进行帧间编解码,则将块Z的两个列表的MVZ_0和MVZ_1缩放到(Reflist0索引0)和(Reflist 1索引0)作为MVdefault0,MVdefault1,并存储。

d.对于每个8x8子块,假设其中心点为(x0S,y0S),则在共位图片中将(x0S,y0S)的对应位置定位为MS=(x0S+MV’x,y0S+MV’y)。找到覆盖MS的块ZS。

i.如果ZS进行帧内编解码,则将MVdefault0,MVdefault1分配给子块;

ii.如果ZS进行帧间编解码,则将块ZS的两个列表的MVZS_0和MVZS_1缩放到(Reflist 0索引0)和(Reflist 1索引0)并分配给子块;

2.2.5.2常规merge列表

与merge列表设计不同,在VVC中,采用基于历史的运动矢量预测(HMVP)方法。

在HMVP中,存储先前编解码的运动信息。将先前编解码块的运动信息定义为HMVP候选。多个HMVP候选存储在称为HMVP表的表中,并且该表在编码/解码过程期间即时得到维护。当开始编码/解码新片/LCU行/条带时清空HMVP表。每当存在帧间编解码块和非子块,非TPM模式时,关联的运动信息就作为新HMVP候选加入表的最后条目。总体编解码流程在图21中示出。

HMVP候选可以在AMVP和merge候选列表构造过程中使用。图22示出了修改的merge候选列表构造过程(以蓝色突出显示)。当在插入TMVP候选之后merge候选列表未满时,可以利用存储在HMVP表中的HMVP候选来填充merge候选列表。考虑到在运动信息方面通常一个块与最近的相邻块具有较高的相关性,因此按照索引的降序插入表中的HMVP候选。首先将表中的最后条目加入列表,最后加入第一条目。类似地,将冗余消除应用于HMVP候选。一旦可用merge候选的总数量达到允许信令通知的merge候选的最大数量,则merge候选列表构造过程终止。

应当注意,所有的空域/时域/HMVP候选应当以非IBC模式进行编解码。否则,不允许将其加入到常规merge候选列表。

HMVP表包含多达5个常规运动候选,并且每个候选都是唯一的。

2.2.5.3IBC merge列表

当加入IBC时,HMVP候选也适用于IBC merge列表。

更具体地,可以存储另外5个IBC候选。在当前的实现中,常规候选和IBC候选存储在相同HMVP表中。然而,它们独立使用和更新。前M个(M<=5)候选用于常规merge/AMVP列表;其余N个候选(N<=5)用于IBC模式。维护两个计数器以指示HMVP表中有多少常规运动候选和有多少IBC运动候选。因此,等于使用2个HMVP表,一个用于常规merge模式,另一个用于IBC模式。

与常规MV merge共享相同的过程,但是不允许TMVP,零矢量意味着不可用,因为它是无效的。应当注意,对于空域相邻块,仅当其以IBC模式编解码时,关联的运动信息可以加入到IBCmerge列表。同时,对于HMVP部分,可以在IBC merge列表中仅考虑最后几个HMVP候选(其是存储的IBC运动候选)。

2.2.6共享merge列表

为了降低解码器复杂度并支持并行编码,建议CU划分树中的一个祖先节点的所有叶编解码单元(CU)共享相同的merge候选列表以实现小跳过/merge编解码CU的并行处理。祖先节点称为merge共享节点。在merge共享节点是叶CU的情况下,在merge共享节点处生成共享merge候选列表。

更具体地,以下可能适用:

-如果块具有不大于32的亮度样点,并划分为2个4x4子块,则使用非常小的块(例如,两个相邻的4x4块)之间的共享merge列表。

-如果块的亮度样点大于32,但是在划分之后,至少一个子块小于阈值(32),该划分的所有子块共享相同的merge列表(例如三次划分的16x4或4x16或四次划分的8x8)。

这样的限制仅应用于常规merge模式。

2.2.6.1HMVP表更新和使用

分配临时HMVP表。在此之前,当输入一个共享区域的第一CU时,必须将原始HMVP表复制到临时HMVP表。

在图23所示的示例中,将一个8x8 QT分割为4个4x4 CU。在执行第一CU(例如,左上4x4 CU)之前,必须将历史列表复制到临时HMVP表(HmvpCandListShared[])中,并且在共享父节点中(图中的merge共享节点)内部的每个4x4需要用于merge模式的历史列表时,它将使用临时HMVP表中的运动候选。

然而,在解码一个4x4 CU之后,相应地更新原始HMVP表。

图23示出了merge共享节点的示例。

2.2.6.2虚拟管线数据单元(VPDU)

虚拟管线数据单元(VPDU)定义为图片中的非重叠单元。在硬件解码器中,连续的VPDU由多个管线级同时处理。在大多数管线级中,VPDU尺寸大致与缓冲区尺寸成正比,因此保持小的VPDU尺寸很重要。在大多数硬件解码器中,可以将VPDU尺寸设置为最大变换块(TB)尺寸。然而,在VVC中,三叉树(TT)和二叉树(BT)分区可能导致VPDU尺寸的增加。

为了将VPDU尺寸保持为64x64亮度样点,应用以下规范性分区限制(带有语法信令修改),如下所示:

–对于宽度或高度或宽度和高度等于128的CU,不允许TT划分。

–对于N≤64(即,宽度等于128且高度小于128)的128xN CU,不允许水平BT。

–对于N≤64(即,高度等于128且宽度小于128)的Nx128 CU,不允许竖直BT。

图24示出了不允许的TT和BT分割的示例。

3.通过本文件中描述的实施例解决的问题的示例

具有HMVP的merge列表的当前设计具有以下问题:

1)用于编解码当前CTU的HMVP表仅包含相同CTU中先前CTU中的运动信息,因为它在新CTU new的开始处重置。因此,它无法利用来自上CTU的运动信息。

2)由于并行性,始终在每个CTU行的开始处重置HMVP表。

3)HMVP表中的某些运动信息可能与已经加入到merge列表中的空域运动信息相同。

4)HMVP表当前在常规merge列表或IBC merge列表中使用。基于历史的运动信息可以在不同的merge列表中更广泛地使用。

4.示例技术和实施例

以下详述的技术应被认为是解释一般概念的示例。这些技术不应狭义地解释。此外,可以以任何适当的方式组合这些技术。

1.在编码/解码过程中可以存储多个HMVP表,并且在对一个块进行编码/解码之前,可以根据所选择的HMVP表来初始化HMVP表。

a.在一个示例中,在对第一区域(例如,一个CTU或VPDU)进行编码/解码之后,关联的HMVP表(例如,在对第二区域进行编码/解码之前)可以与第一区域关联地存储。

b.在一个示例中,可以基于相邻区域的多个HMVP表来初始化用于对当前区域进行编码/解码的HMVP表。

c.在一个示例中,可以基于相邻区域的一个HMVP表来初始化用于对当前区域进行编码/解码的HMVP表。

d.在一个示例中,相邻区域的HMVP表(不限于仅左)可以是与当前区域的左,上,左上或右上区域关联的表。

e.替代地,相邻区域的HMVP表(不限于仅左)可以是与当前区域的上或右上区域关联的HMVP表。

2.可以根据与其他区域关联的多个HMVP表来生成用于对一个区域进行编码/解码的新HMVP表。

a.来自多个表的继承运动信息可以组合到新HMVP表中。

b.在一个示例中,一个组合顺序是加入来自第一表的所有运动信息,然后加入来自第二表的所有运动信息,加入来自第三表的所有运动信息,依此类推。

i.在一个示例中,一个组合顺序是加入来自第一表的所有运动信息,然后加入来自第二表的所有运动信息,依此类推。

ii.替代地,组合顺序是加入来自第一表的一个并取来自第二表的下一个,取来自第三表的下一个,重复依此类推(在第一,第二和第三表之间交错)。

iii.替代地,组合顺序是加入来自第一表的一个并取来自第二表的下一个,仅以有限的表重复(在第一和第二表之间交错)。

c.在一个示例中,一个新HMVP表将组合左和右上区域的HMVP表。

d.在一个示例中,一个新HMVP表将组合左,上,左上和右上区域的HMVP表。

3.在将运动信息加入到新HMVP表中之前,可以可选地首先剪掉其他区域的HMVP表中的运动信息。

a.当在左HMVP表中存在当前CTU(即左列缓冲区)旁边的运动信息时,可以将其剪掉。当CU位于CTU的左边界处时,可以跳过HMVP merge/AMVP候选的剪切。

i.在一个示例中,当存储在HMVP表的任何条目中的运动信息与来自左列的任何一个运动信息匹配时,将其从HMVP表移除。

ii.在一个示例中,当存储在HMVP表的任何条目中的运动信息与来自左列的任何一个运动信息相距一定距离时,将其从HMVP表移除。距离度量可以包括但不限于L1范数和L2范数。另外,可以基于阈值(例如,块尺寸或距离)来确定用于确定是否进行这种剪切的阈值。在另一示例中,可以在SPS/PPS/片组标头中信令通知这样的阈值。

b.当上HMVP表中存在当前CTU上方的运动信息(即上行缓冲区)时,可以将剪掉。当CU位于CTU的上边界处时,可以跳过HMVP merge/AMVP候选的剪切。

4.可以将来自两个不同表的构造运动信息加入到新HMVP表。

a.HMVP表中的每个运动信息具有位置信息,例如从当前CTU的左上角的x和y偏移,以及指示它是否是当前CTU的运动信息的标志。替代地,有一个CTU级语法元素,其指示应使用来自上或左CTU的运动信息。

b.使用HMVP表中可用的来自左CTU的一个运动信息和来自上CTU的另一个运动信息生成新运动信息。

i.可以基于HMVP表的两个运动信息的距离来推导考虑左上角的新运动信息。一个示例如下。假设左和上CTU中的蓝色CU的运动信息在HMVP表中,如下。

图25示出了如何可以从相邻运动信息构造新运动信息的示例。

DiffMVx=TopMVx-LeftMVx

DiffMVy=TopMVy-LeftMVy

5.考虑到其位置,可以将用于构造运动信息的一个变型认为是每个CU中的merge列表的候选。

a.可以用包括当前HMVP表的不同相邻HMVP表的任何组合来选择两个运动信息。以下是一些示例,并且不仅限于那些组合。

i.第一示例是来自左HMVP表的一个,另一个来自上HMVP表。

ii.第二示例是来自左HMVP表的一个,另一个来自当前HMVP表。

iii.第三示例是来自上HMVP表的一个,另一个来自当前HMVP表。

iv.第四示例均来自当前HMVP表。

b.CU中的构造运动信息可以用作当前未使用的各种merge列表的候选。一个示例是三角merge列表。

c.下面是一个示例以用来自左和上HMVP表的两个运动信息构造新运动信息。距离度量可以包括但不限于L1范数和L2范数。DiffMVx和DiffMVy在5.b中相同。

图26示出了如何可以从相邻运动信息构造运动信息的示例。

Xdistance=CTUSIZE-xl+xc

Ydistance=CTUSIZE-yt+yc

6.当子CTU级并行处理可用时,例如VPDU或并行处理尺寸(即SPS/PPS/片组标头中定义的预定义区域或任何尺寸),上述技术可以应用于每个子CTU行或并行处理尺寸。

a.在一个示例中,在片组内的每个子CTU行的开始处重置HMVP表。

b.在一个示例中,来自左上,上和右上子CTU的继承HMVP表应当可用于为当前子CTU构造新HMVP表。

c.在一个示例中,仅仅来自左上和上子CTU区域的继承HMVP表才可用于为当前子CTU区域构造新HMVP表。

d.在一个示例中,来自左,左上,上和右上子CTU区域的HMVP表的任何组合可用于为当前子CTU区域构造新HMVP表。

7.为了改善每个VPDU中的并行处理或并行处理尺寸(SPS/PPS/片组标头中定义的预定义区域或尺寸),可以用上述任何方法生成HMVP表,并且将其用于当前并行处理尺寸而无需更新。

8.与区域(例如左CTU,左CTU,子CTU或子CTU或并行处理大小)关联的HMVP表可以使用存储器压缩(例如尾数+指数)来保存从DDR存储器读取的带宽。

5公开技术的示例实施方式

图27是示出视频处理的示例方法2700的流程图。该方法包括在视频区域和视频区域的比特流表示之间的转换期间,从多个存储的MVP表初始化(2702)运动矢量预测量(MVP)表,其中多个MVP的每一个包括先前在转换期间考虑的运动信息;以及使用从多个存储的MVP表选择的MVP表执行(2704)转换。

图28是视频处理装置2800的框图。装置2800可以用于实现本文描述的一种或多种方法。装置2800可以体现在智能手机,平板电脑,计算机,物联网(IoT)接收器等中。装置2800可以包括一个或多个处理器2802,一个或多个存储器2804和视频处理硬件2806。(一个或多个)处理器2802可以配置成实现本文件中描述的一种或多种方法。存储器(多个存储器)2804可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件2806可以用于在硬件电路中实现本文件中描述的一些技术

以下基于条款的描述提供了附加实施例。

1.一种用于视频处理的方法,其包括:在视频区域和所述视频区域的比特流表示之间的转换期间,从多个存储的MVP表初始化运动矢量预测量(MVP)表,其中所述多个MVP的每一个包括先前在转换期间考虑的运动信息;以及使用从多个存储的MVP表选择的MVP表执行转换。

2.根据条款1所述的方法,其还包括:将所述MVP表与所述视频区域关联;以及存储所述MVP表以便随后在转换期间使用。

3.根据条款1-2中的任一项所述的方法,其中初始化所述MVP表包括使用相邻视频区域的一个或多个MVP表来初始化所述MVP表。

4.根据条款3所述的方法,其中所述相邻视频区域包括所述视频区域的左区域。

5.根据条款3所述的方法,其中所述相邻视频区域包括所述视频区域的左上区域。

6.根据条款3所述的方法,其中所述相邻视频区域包括所述视频区域的右上区域。

7.根据条款3所述的方法,其中所述相邻视频区域包括所述视频区域的上区域。

8.根据条款1至7中的任一项所述的方法,其中将所述MVP表初始化为所述多个MVP表中的一些的组合。

9.根据条款8所述的方法,其中使用来自所述多个MVP表中的一些的继承运动信息来初始化所述MVP表。

10.根据条款8或9中的任一项所述的方法,其中通过按照预定顺序从所述多个MVP表中的一些加入来生成所述MVP表。

11.根据条款10所述的方法,其中所述预定顺序指定加入第一MVP表的所有运动信息,然后加入第二表的所有运动信息,直到加入来自所述多个表中的一些的所有MVP信息。

12.根据条款10所述的方法,其中所述预定顺序指定加入来自所述多个MVP表中的一些的全部的第一运动信息,然后加入来自所述多个MVP表中的一些的全部的第二运动信息,直到加入来自所述多个MVP表中的一些的所有运动信息。

13.根据条款1所述的方法,其中所述初始化包括基于剪切标准选择性剪切来自所述多个MVP表的运动信息。

14.根据条款13所述的方法,其中所述剪切标准指定剪掉所述视频区域的下一编解码树单元的运动信息。

15.根据条款13所述的方法,其中所述剪切标准指定跳过在所述视频的译码树单元的左边界或上边界处满足跳过标准的所述视频区域的merge和替代MVP候选的剪切。

16.根据条款15所述的方法,其中所述跳过标准指定距离以指示与当前视频区域相距多远。

17.根据条款13-16中的任一项所述的方法,其中所述剪切标准指定在新运动信息与来自所述视频区域的左列的条目的运动信息匹配的情况下跳过将新运动信息加入到所述MVP表。

18.根据条款13-17中的任一项所述的方法,其中所述剪切标准指定在与所述视频区域的当前编解码树单元上方的运动信息对应的上MVP表中剪掉运动信息。

19.一种用于视频处理的方法,其包括:在视频区域和所述视频区域的比特流表示之间的转换期间,从一个或多个存储的MVP表初始化运动矢量预测量(MVP)表的一个或多个条目,其中每个MVP表包括先前在转换期间考虑的运动信息,指示运动信息的标志从先前的MVP表继承或作为新运动信息加入当前区域中;以及使用从多个存储的MVP表选择的MVP表执行转换。

20.根据条款19所述的方法,其还包括,在所述转换之后,通过将所述MVP表与所述视频区域关联来存储所述MVP表的一个或多个条目,其中,所述存储包括存储所述MVP表中的每个运动信息的位置信息。

21.根据条款20所述的方法,其中所述位置信息包括所述视频区域的编解码树单元的左上角的(x,y)位置。

22.根据条款19所述的方法,其中所述构造包括使用来自所述视频区域的左侧的左编解码树单元的第一运动信息和来自所述视频区域的上方的上编解码树单元的第二运动信息来推导所述MVP表的一个条目的新运动信息。

23.根据条款19所述的方法,其中所述构造包括使用来自所述视频区域的左侧的左编解码树单元的第一运动信息和来自所述视频区域的MVP表的条目来推导所述MVP表的一个条目的新运动信息。

24.根据条款19-23中的任一项所述的方法,其中推导新运动信息用于在所述视频区域的编解码树单元处构造MVP表。

25.根据条款19-23中的任一项所述的方法,其中推导新运动信息用于在所述视频区域的子编解码树单元处构造MVP表。

26.根据条款1至25中的任一项所述的方法,其中所述视频区域对应于子编解码树单元区域,并且其中所述转换包括与所述视频区域的编解码树单元中的其他视频区域的其他MVP表并行地初始化所述MVP表。

27.根据条款1或19中的任一项所述的方法,其中在所述视频的片组中的每个子编解码树单元行的开始处重置所述MVP表。

28.根据条款1至27中的任一项所述的方法,其还包括:在所述转换之后,更新所述MVP表。

29.根据条款1至27中的任一项所述的方法,其中由于所述视频区域是子编解码单元级区域,因此使用所述MVP表并在虚拟数据管线单元中使用而不更新所述MVP表。

30.根据条款1至29中的任一项所述的方法,其中所述视频区域包括视频块。

31.根据条款1至30中的任一项所述的方法,其中所述转换包括从所述视频区域生成所述比特流表示或从所述比特流表示生成所述视频区域。

32.一种装置,其包括处理器,所述处理器配置成实施条款1至31中的任一项所述的方法。

33.一种计算机可读介质,其上存储有处理器可执行的程序代码,用于实施条款1至31中的任一项所述的方法。

根据前述内容,将理解的是,出于说明的目的,本文已描述了当前公开的技术的特定实施例,但是在不脱离本发明的范围的情况下可以进行各种修改。因此,除了所附的权利要求书外,当前公开的技术不受限制。

图29是用于视频处理的示例方法2900的流程图。方法2900包括对于视频的第一区域和第一区域的比特流表示之间的转换,基于存储的多个HMVP表中的至少一个初始化(2902)与第一区域关联的第一历史运动矢量预测量(HMVP)表,多个HMVP表用于存储与在第一区域之前编解码的区域关联的运动信息;以及通过使用包括至少一个运动候选的初始化的第一HMVP表来执行(2904)转换。

在一些示例中,多个HMVP表包括与第一区域的相邻区域关联的一个或多个HMVP表。

在一些示例中,基于与第一区域的相邻区域关联的多个HMVP表来初始化第一HMVP表。

在一些示例中,基于与第一区域的相邻区域关联的一个HMVP表来初始化第一HMVP表。

在一些示例中,与第一区域的相邻区域关联的多个HMVP表包括与左区域关联的HMVP表,与上区域关联的HMVP表,与左上区域关联的HMVP表,以及与第一区域的右上区域关联的HMVP表中的至少一个。

在一些示例中,与第一区域的相邻区域关联的多个HMVP表包括与上区域关联的HMVP表和/或与第一区域的右上区域关联的HMVP表。

在一些示例中,该方法还包括:将第一HMVP表与第一区域关联;以及存储第一HMVP表以便随后在第一区域的转换之后使用。

在一些示例中,区域是编解码树单元(CTU)或虚拟管线数据单元(VPDU)。

图30是用于视频处理的示例方法3000的流程图。方法3000包括对于视频的第一区域和第一区域的比特流表示之间的转换,基于与其他区域关联的多个HMVP表生成(3002)与第一区域关联的新历史运动矢量预测量(HMVP)表,多个HMVP表用于存储与在第一区域之前编解码的其他区域关联的运动信息;以及通过使用包括至少一个运动候选的生成的新HMVP表来执行(3004)转换。

在一些示例中,区域是编解码树单元(CTU)或虚拟管线数据单元(VPDU)。

在一些示例中,来自多个HMVP表的继承运动信息组合到新HMVP表中。

在一些示例中,通过按照预定顺序加入来自多个HMVP表中的预定数量的HMVP表的所有运动信息来生成新HMVP表。

在一些示例中,预定顺序是加入来自第一HMVP表的所有运动信息,然后加入来自第二HMVP表的所有运动信息,直到依次加入来自预定数量的HMVP表的所有运动信息。

在一些示例中,预定数量是3。

在一些示例中,预定顺序是加入来自所有预定数量的HMVP表的第一运动信息,然后加入来自所有预定数量的HMVP表的第二运动信息,直到交错并加入来自预定数量的HMVP表的所有运动信息。

在一些示例中,预定数量是2或3。

在一些示例中,通过组合与第一区域的相邻区域关联的多个HMVP表来生成第一HMVP表。

在一些示例中,与第一区域的相邻区域关联的多个HMVP表包括与左区域关联的HMVP表,与上区域关联的HMVP表,与左上区域关联的HMVP表,以及与第一区域的右上区域关联的HMVP表。

在一些示例中,与第一区域的相邻区域关联的多个HMVP表包括与上区域关联的HMVP表和与第一区域的右上区域关联的HMVP表。

在一些示例中,在将多个HMVP表中的运动信息加入到新HMVP表之前,基于剪切标准剪掉与其他区域关联的多个HMVP表中的运动信息。

在一些示例中,当区域是CTU并且来自第一CTU的左列缓冲区的运动信息存在于与第一CTU的左侧上的CTU关联的左HMVP表中时,从左HMVP表剪掉运动信息,其中第一CTU的左列缓冲区是第一CTU的左CTU的最右列。

在一些示例中,当CU位于CTU的左边界处时,跳过HMVP merge和/或AMVP候选的剪切。

在一些示例中,当存储在左HMVP表的任何条目中的运动信息与来自第一CTU的左列缓冲区的运动信息中的任何一个匹配时,从左HMVP表移除运动信息。

在一些示例中,当存储在左HMVP表的任何条目中的运动信息与来自第一CTU的左列缓冲区的运动信息中的任何一个处于一定距离内时,从左HMVP表移除运动信息。

在一些示例中,距离度量包括L1范数和L2范数中的至少一个,其中L1范数计算为矢量的绝对值的和,L2范数计算为平方矢量值的和的平方根。

在一些示例中,基于阈值确定是否发生剪切,阈值与第一区域的尺寸或距离关联。

在一些示例中,在序列参数集(SPS),图片参数集(PPS)和片组标头中的至少一个中信令通知阈值。

在一些示例中,当区域是CTU并且来自第一CTU的上行缓冲区的运动信息存在于与第一CTU上方的CTU关联的上HMVP表中时,从上HMVP表剪掉运动信息,其中第一CTU的上行缓冲区是第一CTU的上CTU的最下行。

在一些示例中,当CU位于CTU的上边界处时,跳过HMVP merge和/或AMVP候选的剪切。

在一些示例中,将从来自多个HMVP表的两个不同HMVP表的两个运动信息构造的构造运动信息加入到新HMVP表。

在一些示例中,HMVP表中的每个运动信息包括位置信息,所述位置信息包括相对于当前CTU的左上角的水平偏移和竖直偏移,以及指示其是否是当前CTU的运动信息的标记。

在一些示例中,提供CTU级语法元素以指示将使用来自上或左CTU的运动信息。

在一些示例中,从来自与第一区域的上区域关联的上HMVP表的运动信息和来自与第一区域的左区域关联的左HMVP表的运动信息构造构造运动信息。

在一些示例中,基于来自上HMVP表的运动信息(TopMV)和来自左HMVP表的运动信息(LefMV)之间的差(DiffMV)来构造构造运动信息。

在一些示例中,差(DiffMV)如下计算:

DiffMVx=TopMVx-LeftMVx

DiffMVy=TopMVy-LeftMVy

其中DiffMVx是差DiffMV的水平分量,TopMVx是来自上HMVP表的运动信息TopMV的水平分量,并且LefMVx是来自左HMVP表的运动信息LefMV的水平分量,

DiffMVy是差DiffMV的竖直分量,TopMVy是来自上HMVP表的运动信息TopMV的竖直分量,并且fMVy是来自左HMVP表的运动信息LefMV的竖直分量。

在一些示例中,构造运动信息MV如下计算:

其中MVx是MV的水平分量,TopXOffset是运动信息TopMV的水平偏移,并且LeftXOffset是运动信息LefMV的水平偏移,MVy是MV的水平分量,TopYOffset是运动信息TopMV的竖直偏移,并且LeftYOffset是运动信息LefMV的竖直偏移,CTUSIZE是当前CTU的宽度和/或高度。

在一些示例中,将从来自多个HMVP表中的一个或多个HMVP表的两个运动信息构造的构造运动信息用作第一区域的编解码单元(CU)中的merge列表的候选。

在一些示例中,从包括当前HMVP表的相邻HMVP表的任何组合选择两个运动信息。

在一些示例中,一个运动信息来自左HMVP表并且另一运动信息来自上HMVP表。

在一些示例中,一个运动信息来自左HMVP表并且另一运动信息来自当前HMVP表。

在一些示例中,一个运动信息来自上HMVP表并且另一运动信息来自当前HMVP表。

在一些示例中,两个运动信息都来自当前HMVP表。

在一些示例中,CU中的构造运动信息用作当前未使用的各种merge列表的候选。

在一些示例中,各种merge列表包括三角merge列表。

在一些示例中,基于来自上HMVP表的运动信息(TopMV)和来自左HMVP表的运动信息(LefMV)之间的差(DiffMV)以及两个运动信息和当前CU之间的距离来构造构造运动信息。

在一些示例中,差(DiffMV)如下计算:

DiffMVx=TopMVx-LeftMVx

DiffMVy=TopMVy-LeftMVy

其中DiffMVx是差DiffMV的水平分量,TopMVx是来自上HMVP表的运动信息TopMV的水平分量,并且fMVx是来自左HMVP表的运动信息LefMV的水平分量,

DiffMVy是差DiffMV的竖直分量,TopMVy是来自上HMVP表的运动信息TopMV的竖直分量,并且fMVy是来自左HMVP表的运动信息LefMV的竖直分量,并且距离如下计算:

Xdistance=CTUSIZE-xl+xc

Ydistance=CTUSIZE-yt+yc

其中Xdistance是来自左HMVP表的运动信息LeftMV和当前CU之间的距离,xl是与LeftMV关联的CU和当前CU中的运动信息之间的水平距离,xc是当前CU中的动信息的水平偏移,Ydistance是来自上HMVP表的运动信息TopMV和当前CU之间的距离,yt是与TopMV关联的CU和当前CU中的运动信息之间的竖直距离,yc是当前CU中的运动信息的竖直偏移,TUSIZE是当前CTU的宽度和/或高度。

在一些示例中,构造运动信息MV如下计算:

其中MVx是MV的水平分量,TopXOffset是运动信息TopMV的水平偏移,并且LeftXOffset是运动信息LefMV的水平偏移,MVy是MV的水平分量,TopYOffset是运动信息TopMV的竖直偏移,并且LeftYOffset是运动信息LefMV的竖直偏移,CTUSIZE是当前CTU的宽度和/或高度。

在一些示例中,当启用子CTU级并行处理时,区域包括在SPS,PPS和片组标头中的至少一个中定义的虚拟管线数据单元(VPDU)或并行处理尺寸。

在一些示例中,在片组内的每个子CTU行的开始处重置HMVP表。

在一些示例中,来自左上子CTU,上子CTU和右上子CTU中的一个或多个的继承HMVP表可用于构造用于当前子CTU的新HMVP表。

在一些示例中,仅来自左上子CTU和上子CTU的继承HMVP表可用于构造用于当前子CTU的新HMVP表。

在一些示例中,来自左子CTU,左上子CTU,上子CTU和右上子CTU的HMVP表的任何组合都可用于构造用于当前子CTU的新HMVP表。

在一些示例中,在SPS,PPS和片组标头中的至少一个中定义的虚拟管线数据单元(VPDU)或并行处理尺寸在并行处理中使用生成的HMVP表而无需更新。

在一些示例中,与区域关联的HMVP表使用存储器压缩来保存从DDR存储器读取的带宽。

在一些示例中,存储器压缩包括尾数和指数。

在一些示例中,转换从比特流表示生成视频的第一区域。

在一些示例中,转换从视频的第一区域生成比特流表示。

本专利文件中描述的主题和功能操作的实现方式可以在各种系统,数字电子电路或计算机软件,固件或硬件中实现,包括本说明书中公开的结构及其结构等效物,或其中一个或多个的组合。本说明书中描述的主题的实现方式可以实现为一个或多个计算机程序产品,即在有形和非暂时性计算机可读介质上编解码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备,机器可读存储基板,存储设备,影响机器可读传播信号的物质组成或其中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”涵盖用于处理数据的所有装置,设备和机器,例如包括可编程处理器,计算机或多个处理器或计算机。除硬件外,装置还可以包括为所述计算机程序创建执行环境的代码,例如,构成处理器固件的代码,协议栈,数据库管理系统,操作系统或其中的一个或多个的组合。

计算机程序(也称为程序,软件,软件应用,脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块,组件,子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分(例如,存储在标记语言文档中的一个或多个脚本)中,专用于所述程序的单个文件中,或多个协调文件(例如,存储一个或多个模块,子程序或部分代码的文件)中。计算机程序可以部署成在一个或多个计算机上执行,所述计算机位于一个站点上或分布在多个站点上并通过通信网络互连。

本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,所述处理器执行一个或多个计算机程序以通过对输入数据操作并生成输出来执行功能。处理和逻辑流也可以通过专用逻辑电路来执行,并且装置也可以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作联接到一个或多个大容量存储设备来从其接收数据或向其传送数据,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储器设备,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。

旨在将说明书与附图一起仅视为示例性的,其中示例性表示示例。如本文所使用的,“或”的使用旨在包括“和/或”,除非上下文另外明确指出。

尽管本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求的范围的限制,而应解释为针对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文中描述的一些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实施,或在任何合适的子组合中实施。而且,尽管特征可以在上面描述为在一些组合中起作用,甚至最初要求是这样,但在一些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以涉及子组合或子组合的变型。

类似地,尽管图纸中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。

仅描述了一些实现方式和示例,并且基于该专利文件中描述和示出的内容可以做出其他实现方式,增强和变型。

58页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:帧内块复制(IBC)模式和非IBC帧间模式的运动候选列表构建

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类