仿射预测模式的改进的制作方法

文档序号:25543555发布日期:2021-06-18 20:40阅读:82来源:国知局
仿射预测模式的改进的制作方法
相关申请的交叉引用根据适用的专利法和/或巴黎公约的规则,本申请及时要求2018年11月14日提交的国际专利申请pct/cn2018/115354的优先权和利益。上述申请的全部公开内容通过引用而并入,作为本专利公开内容的一部分。该专利文档涉及图像和视频编码和解码。
背景技术
:数字视频在互联网和其他数字通信网络中占据了最大的带宽使用。随着能够接收和显示视频的联网用户设备数量的增加,预计对于数字视频使用的带宽需求将继续增长。技术实现要素:所公开的技术可以由视频解码器或编码器实施例在使用仿射运动预测或补偿工具进行视频解码或编码期间使用。在一个示例方面,公开了一种用于视频处理的方法。该方法包括:通过基于插入顺序将仿射候选插入仿射候选列表,来生成当前块的仿射候选列表,所述插入顺序取决于仿射候选列表中的至少一个仿射候选的仿射模型类型;以及基于所生成的仿射候选列表,对当前块执行视频处理。在另一示例方面,公开了一种用于视频处理的方法。该方法包括:生成对于当前块的仿射候选列表,其中,在生成仿射候选列表期间,对仿射候选列表中的至少一个仿射候选重新排序;基于所生成的仿射候选列表,对当前块执行视频处理。在另一示例方面,公开了一种视频处理装置。该视频处理装置包括被配置为实施本文描述的方法的处理器。在另一示例方面,公开了一种存储在非暂时性计算机可读介质上的计算机程序产品。计算机程序产品包括用于执行在此描述的方法的程序代码。在又一示例方面,公开了一种视频编码器装置。视频编码器装置包括处理器,该处理器被配置为实施在此描述的方法。在又一示例方面,公开了一种视频解码器装置。视频解码器装置包括处理器,该处理器被配置为实施在此描述的方法。在又一方面,公开了一种其上存储有代码的计算机可读介质。当由处理器执行时,该代码使处理器实现本文中描述的方法。本文描述了这些和其他方面。附图说明图1是用于merge候选列表构建的推导过程的示例。图2示出了空域merge候选的示例位置。图3示出了考虑用于空域merge候选的冗余检查的候选对的示例。图4a-图4b示出了n×2n和2n×n分割的第二pu(predictionunit,预测单元)的示例位置。图5是时域merge候选的运动矢量缩放的示例图示。图6示出了时域merge候选c0和c1的示例候选位置。图7示出了组合的双向预测merge候选的示例。图8示出了运动矢量预测候选的示例推导过程。图9是空域运动矢量候选的运动矢量缩放的示例图示。图10示出了用于cu(codingunit,编码单元)的可选时域运动矢量预测(alternativetemporalmotionvectorprediction,atmvp)运动预测的示例。图11示出了具有四个子块(a-d)及其临近块(a-d)的一个cu的示例。图12是用不同mv(motionvector,运动矢量)精度进行编码的示例的流程图。图13a-图13b示出了135度分割类型(从左上角向右下角划分)和45度划分模式。将cu划分成两个三角形预测单元(两种划分模式)的图示。图14示出了临近块的位置的示例。图15示出了上侧的块和左侧的块的示例。图16a-图16b示出了2个控制点运动矢量(controlpointmotionvector,cpmv)和3个cpmv的示例。图17示出了两个cpmv的示例。图18a-图18b示出了4参数和6参数仿射模型示例。图19示出了继承的仿射候选的af_inter的mvp(motionvectorpredictor,运动矢量预测量)。图20示出了在af_inter中构建仿射运动预测量的示例。图21a-图21b示出了在af_merge下仿射编码时的控制点运动矢量的示例。图22示出仿射merge模式的候选位置的示例。图23示出了帧内图片块复制操作的示例。图24示出仿射merge模式的候选位置。图25示出了修改的merge列表构建过程。图26是视频处理装置的示例的框图。图27是视频处理方法的示例的流程图。图28是视频处理方法的另一示例的流程图。具体实施方式本文档提供了视频比特流的解码器可以使用的各种技术,以提高解压缩或解码的数字视频的质量。此外,视频编码器也可以在编码的过程期间实施这些技术,以便重构用于进一步编码的解码帧。为了便于理解,在本文档中使用了章节标题,并且不将实施例和技术限制于对应的章节。如此以来,来自一个章节的实施例可以与来自其它章节的实施例组合。1.概述本文档涉及视频编码技术。具体地,它涉及视频编码中仿射预测模式。它可以应用于现有的视频编码标准,如hevc,或即将要定案的标准(例如,多功能视频编码)。它也可以应用于未来的视频编码标准或视频编解码器。在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到对应的比特流表示的转换期间应用视频压缩算法,反之亦然。2.介绍性注解视频编码标准主要是通过熟知的itu-t和iso/iec标准的发展而演变的。itu-t制定了h.261和h.263,iso/iec制定了mpeg-1和mpeg-4可视化,并且这两个组织联合制定了h.262/mpeg-2视频和h.264/mpeg-4高级视频编码(advancedvideocoding,avc)和h.265/hevc标准。自h.262以来,视频编码标准基于混合视频编码结构,其中使用时域预测加变换编码。为了探索hevc以外的未来视频编码技术,vceg和mpeg于2015年联合成立了联合视频探索组(jointvideoexplorationteam,jvet)。此后,jvet采用了许多新方法,并将其放入名为联合探索模型(jointexplorationmodel,jem)的参考软件中。2018年4月,vceg(q6/16)和iso/iecjtc1sc29/wg11(mpeg)之间的联合视频专家组(jvet)成立,以致力于多功能视频编码(vvc)标准,目标是与hevc相比比特率降低50%。2.1hevc/h.265的帧间预测每个帧间预测的pu具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc信令通知对两个参考图片列表之一的使用。运动矢量可以被显式地编码为相对于预测量的增量。当用跳过模式对cu进行编码时,一个pu与该cu相关联,并且不存在显著的残差系数、编码的运动矢量增量或参考图片索引。规定merge模式,由此从包括空域和时域候选的临近pu获得当前pu的运动参数。merge模式可以应用于任何帧间预测的pu,而不仅仅对于跳跃模式。merge模式的可替代方案是运动参数的显式传输,其中每一pu显式地信令通知运动矢量(更准确地,与运动矢量预测量相比的运动矢量差(motionvectordifference,mvd))、每个参考图片列表的对应参考图片索引和参考图片列表的使用。在本公开中,这种模式被称为高级运动矢量预测(advancedmotionvectorprediction,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:初始候选推导o步骤1.1:空域候选推导o步骤1.2:空域候选的冗余检查o步骤1.3:时域候选推导·步骤2:附加候选插入o步骤2.1:创建双向预测候选o步骤2.2:插入零运动候选这些步骤也示意性地描绘在图1中。对于空域merge候选推导,在位于五个不同位置的候选当中选择最多四个merge候选。对于时域merge候选推导,在两个候选当中选择最多一个merge候选。由于在解码器处假设每个pu的恒定数量的候选,因此当从步骤1获得的候选的数量未达到在条带头中信令通知的merge候选的最大数量(maxnummergecand)时,生成附加候选。由于候选的数量是恒定的,因此使用截断一元二值化(truncatedunarybinarization,tu)对最佳merge候选的索引进行编码。如果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中的箭头链接的对,并且仅当用于冗余检查的对应候选没有相同的运动信息时,候选才被添加到列表中。重复运动信息的另一来源是与不同于2n×2n的分割相关联的“第二pu”。作为示例,图4a和图4b分别描绘了n×2n和2n×n的情况下的第二pu。在当前pu被分割为n×2n时,位置a1处的候选不被考虑用于列表构建。事实上,添加该候选将导致两个预测单元具有相同的运动信息,这对于在编码单元中只具有一个pu是冗余的。类似地,在当前pu被分割为2n×n时,不考虑位置b1。2.1.2.3时域候选推导在该步骤中,仅一个候选被添加到列表。具体地,在该时域merge候选的推导中,基于共位(co-located)pu来推导缩放运动矢量,共位pu属于在给定参考图片列表内与当前图片具有最小poc(pictureordercount,图片顺序计数)差的图片。在条带头中显式地信令通知要用于推导共位pu的参考图片列表。如在图5中由虚线所示的,获得了对时域merge候选的缩放运动矢量,其是使用poc距离tb和td从共位pu的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的poc差,并且td被定义为共位图片的参考图片与共位图片之间的poc差。时域merge候选的参考图片索引被设置为等于零。hevc规范中描述了缩放过程的实际实现。对于b条带,两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1)被获得并组合,以生成双向预测merge候选。在属于参考帧的共位pu(y)中,在候选c0和c1之间选择时域候选的位置,如图6所描绘的。如果位置c0处的pu不可用、是帧内编码的、或者在当前编码数单元(codingtreeunit,ctu,又称lcu,最大编码单元)行(row)的外部,则使用位置c1。否则,在时域merge候选的推导中使用位置c0。2.1.2.4附加候选插入除了空域和时域的merge候选之外,存在两种附加类型的merge候选:组合的双向预测merge候选和零merge候选。通过利用空域和时域的merge候选来生成组合的双向预测merge候选。组合的双向预测merge候选仅用于b条带。通过将初始候选的第一参考图片列表运动参数与另一初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,则它们将形成新的双向预测候选。作为示例,图7示出了当原始列表(在左侧)中的两个候选(其具有mvl0和refidxl0或mvl1和refidxl1)用于创建被添加到最终列表(在右侧)的组合的双向预测merge候选。存在许多关于组合的规则,这些规则被考虑以生成这些附加merge候选。插入零运动候选以填充merge候选列表中的剩余条目,并因此达到maxnummergecand容量。这些候选具有零空域位移和从零开始并且每次向列表中添加新的零运动候选时增加的参考图片索引。这些候选使用的参考帧的数量对于单向预测和双向预测分别是1和2。最后,不对这些候选执行冗余检查。2.1.3amvpamvp利用运动矢量与临近pu的时空相关性,用于运动参数的显式传输。对于每个参考图片列表,通过首先检查左侧、上侧的时域临近的pu位置的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度,来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测量,并发送指示所选候选的对应索引。与merge索引信令类似,使用截断一元对最佳运动矢量候选的索引进行编码。在这种情况下,要编码的最大值是2(见图8)。在接下来的章节中,将提供关于运动矢量预测候选的推导过程的细节。2.1.3.1amvp候选的推导图8概述了运动矢量预测候选的推导过程。在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,最终基于位于如图2所示描绘五个不同位置的每个pu的运动矢量来推导两个运动矢量候选。对于时域运动矢量候选推导,从基于两个不同共位位置而推导的两个候选中选择一个运动矢量候选。在产生第一时空候选列表之后,移除列表中的重复运动矢量候选。如果潜在候选的数量大于二,则从列表中移除相关联的参考图片列表内其参考图片索引大于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)首先检查非空域缩放情况,然后是空域缩放。当poc在临近pu的参考图片与当前pu的参考图片之间不同时,考虑空域缩放,无论参考图片列表如何。如果左侧候选的所有pu都不可用或者都是帧内编码的,则允许针对上侧运动矢量的缩放以帮助对左侧和上侧mv候选的并行推导。否则,针对上侧运动矢量不允许空域缩放。如图9所描绘的,在空域缩放过程中,以与时域缩放类似的方式来缩放临近pu的运动矢量。主要差异在于参考图片列表和当前pu的索引作为输入给出;实际缩放过程与时域缩放的过程相同。2.1.3.3时域运动矢量候选除了参考图片索引推导之外,用于推导时域merge候选的所有过程与用于推导空域运动矢量候选的过程相同(参见图6)。参考图片索引被信令通知给解码器。2.2jem中的基于子cu的运动矢量预测方法在具有qtbt(quadtreesplusbinarytrees,四叉树加二叉树)的jem中,每个cu对于每个预测方向最多可以有一组运动参数。通过将大cu划分成子cu并且推导大cu的所有子cu的运动信息,在编码器中考虑两个子cu级别运动矢量预测方法。可选时域运动矢量预测(atmvp)方法允许每个cu从共位参考图片中比当前cu更小的多个块中提取多组运动信息。在时空运动矢量预测(spatial-temporalmotionvectorprediction,stmvp)方法中,通过使用时域运动矢量预测量和空域临近运动矢量来递归地推导子cu的运动矢量。为了保持对于子cu运动预测的更准确的运动场,当前禁用参考帧的运动压缩。2.2.1可选时域运动矢量预测在可选时域运动矢量预测(atmvp)方法中,通过从比当前cu小的块提取多组运动信息(包括运动矢量和参考索引)来修改运动矢量时域运动矢量预测(temporalmotionvectorprediction,tmvp)。作为示例,子cu是正方形的n×n块(n默认被设置为4)。图10示出了对于cu的atmvp运动预测的示例。atmvp分两个步骤来预测cu内的子cu的运动矢量。第一步骤是用所谓的时域矢量来识别参考图片中的对应块。参考图片也称为运动源图片。第二步骤是将当前cu划分成子cu,并从与每个子cu相对应的块中获得每个子cu的运动矢量以及参考索引,作为示例。在第一步骤中,参考图片和对应块由当前cu的空域临近块的运动信息确定。为了避免临近块的反复的扫描过程,使用当前cu的merge候选列表中的第一merge候选。第一可用运动矢量以及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,在atmvp中,与tmvp相比,可以更准确地识别对应块,其中对应块(有时称为共位块)总是相对于当前cu处于右下或中心位置。在第二步骤中,通过向当前cu的坐标添加时域矢量,通过运动源图片中的时域矢量来识别子cu的对应块。对于每个子cu,其对应块的运动信息(覆盖中心样点的最小运动网格)用于推导子cu的运动信息。在识别对应的n×n块的运动信息之后,以与hevc的tmvp相同的方式将其转换成当前子cu的运动矢量和参考索引,其中运动缩放和其它过程适用。例如,解码器检查是否满足低延迟条件(即当前图片的所有参考图片的poc小于当前图片的poc),并且可能使用运动矢量mvx(与参考图片列表x相对应的运动矢量)来预测每个子cu的运动矢量mvy(其中x等于0或1,并且y等于1-x)。2.2.2时空运动矢量预测(stmvp)在该方法中,按照光栅扫描顺序递归地推导子cu的运动矢量。图11示出了这个概念。考虑8×8的cu,它包含4个4×4的子cu:a、b、c和d。当前帧中的临近的4×4块被标记为a、b、c和d。子cua的运动推导通过识别其两个空域邻居(neighbour)开始。第一邻居是子cua上侧的n×n块(块c)。如果这个块c不可用或是帧内编码的,则检查子cua上侧的其它n×n块(从左到右,从块c开始)。第二邻居是子cua左侧的块(块b)。如果块b不可用或是帧内编码的,则检查子cua左侧的其它块(从上到下,从块b开始)。从每个列表的临近块中获得的运动信息被缩放到给定列表的第一参考帧。接下来,通过遵循如hevc规定的tmvp推导的相同过程来推导子块a的时域运动矢量预测量(tmvp)。在位置d处的共位块的运动信息被相应地提取和缩放。最后,在检索和缩放运动信息之后,对每个参考列表单独地平均所有可用的运动矢量(最多3个)。平均后的运动矢量被分配为当前子cu的运动矢量。2.2.3子cu运动预测模式信令子cu模式被启用作为附加merge候选,并且不需要附加语法元素来信令通知这些模式。两个附加merge候选被添加到每个cu的merge候选列表以表示atmvp模式和stmvp模式。如果序列参数集指示启用了atmvp和stmvp,则可以使用多达七个merge候选。附加merge候选的编码逻辑与hm中的merge候选的编码逻辑相同,这意味着,对于p条带或b条带中的每个cu,针对两个附加merge候选还需要两次rd检查。在jem中,merge索引的所有位元(bin)都由cabac进行上下文编码。而在hevc中,仅对第一位元进行上下文编码,并且对其余位元进行上下文旁路编码。2.3vvc中的帧间预测方法有几种用于帧间预测改进的新的编码工具,诸如用于信令通知mvd的自适应运动矢量差分辨率(adaptivemotionvectordifferenceresolution,amvr)、仿射预测模式、三角形预测模式(triangularpredictionmode,tpm)、atmvp、广义双向预测(generalizedbi-prediction,gbi)、双向光流(bi-directionalopticalflow,bio)。2.3.1自适应运动矢量差分辨率在hevc中,当条带头中的use_integer_mv_flag等于0时,以四分之一(quarter)亮度样点为单位来信令通知(pu的运动矢量和预测运动矢量之间的)运动矢量差(mvd)。在vvc中,引入了局部自适应运动矢量分辨率(locallyadaptivemotionvectorresolution,lamvr)。在vvc中,可以以四分之一亮度样点、整数亮度样点或四亮度样点(即1/4像素、1像素、4像素)为单位对mvd进行编码。以编码单元(cu)级别控制mvd分辨率,并且对于具有至少一个非零mvd分量的每个cu,有条件地信令通知mvd分辨率标志。对于具有至少一个非零mvd分量的cu,信令通知第一标志以指示在cu中是否使用四分之一亮度样点mv精度。当第一标志(等于1)指示未使用四分之一亮度样点mv精度时,信令通知另一个标志以指示是使用整数亮度样点mv精度还是四亮度样点mv精度。当cu的第一mvd分辨率标志为零或未针对cu进行编码(意味着cu中的所有mvd均为零)时,四分之一亮度样点mv分辨率用于cu。当cu使用整数亮度样点mv精度或四亮度样点mv精度时,cu的amvp候选列表中的mvp被取整到对应精度。在编码器中,cu级别的rd检查用于确定哪个mvd分辨率要用于cu。也就是说,对于每个mvd分辨率,执行三次cu级别的rd检查。为了加快编码器速度,在jem中应用以下编码方案:·在具有正常四分之一亮度样点mvd分辨率的cu的rd检查期间,存储当前cu(整数亮度样点准度)的运动信息。存储的运动信息(取整之后)被用作在针对具有整数亮度样点和4亮度样点mvd分辨率的相同cu的rd检查期间的进一步的小范围运动矢量细化的起始点,使得耗时的运动估计过程不会重复三次。·有条件地调用具有4亮度样点mvd分辨率的cu的rd检查。对于cu,当整数亮度样点mvd分辨率的rd成本远大于四分之一亮度样点mvd分辨率的rd成本时,跳过对于cu的4亮度样点mvd分辨率的rd检查。编码过程如图12所示。首先,测试1/4像素mv,计算rd成本并表示为rdcost0,然后测试整数mv,并且rd成本表示为rdcost1。如果rdcost1<th*rdcost0(其中th为正值),则测试4像素mv;否则,跳过4像素mv。基本上,在检查整数或4像素mv时已知对于1/4像素mv的运动信息和rd成本等,其可重复使用以加速整数或4像素mv的编码过程。2.3.2三角形预测模式三角形预测模式(tpm)的概念是为运动补偿预测引入一种新的三角形分割。如图13a-图13b所示,它沿对角线或相反的对角线方向将cu划分成两个三角形预测单元。cu中的每个三角形预测单元使用其自己的从单个单向预测候选列表中推导的单向预测运动矢量和参考帧索引而被帧间预测。在预测三角形预测单元之后,对对角线边缘执行自适应加权过程。然后,将变换和量化过程应用于整个cu。注意,该模式仅适用于merge模式(注意:跳过模式被视为特殊merge模式)。图13a-图13b是将cu划分成两个三角形预测单元(两个分割模式)的图示;图13a:135度分割类型(从左上角到右下角划分),以及图13b:45度划分模式。2.3.2.1tpm的单向预测候选列表单向预测候选列表,称为tpm运动候选列表,包括五个单向预测运动矢量候选。如图14所示,它是从包括五个空域临近块(1到5)和两个时域共位块(6到7)的七个临近块推导的。收集七个临近块的运动矢量并按照单向预测运动矢量、双向预测运动矢量的l0运动矢量、双向预测运动矢量的l1运动矢量以及双向预测运动矢量的l0运动矢量和l1运动矢量的平均运动矢量的顺序,将其放入单向预测候选列表。如果候选的数量少于五个,则零运动矢量被添加到列表中。添加到tpm列表中的运动候选被称为tpm候选,从空域/时域块推导的运动信息被称为规则运动候选(regularmotioncandidate)。更具体地,涉及以下步骤:1)从a1、b1、b0、a0、b2、col和col2(对应于图14中的块1-7)中获得规则运动候选,无需任何修剪操作。2)设置变量numcurrmergecand=0。3)对于从a1、b1、b0、a0、b2、col和col2推导的每个规则运动候选以及numcurrmergecand小于5,如果规则运动候选是单向预测(来自列表0或列表1),则将其作为tpm候选直接添加到merge列表中,numcurrmergecand增加1。这种tpm候选被称为“原始单向预测候选(originallyuni-predictedcandidate)”。应用完全修剪(fullpruning)。4)对于从a1、b1、b0、a0、b2、col和col2推导的每个运动候选以及numcurrmergecand小于5,如果规则运动候选是双向预测,则来自列表0的运动信息作为新的tpm候选被添加到tpmmerge列表(即被修改为来自列表0的单向预测),并且numcurrmergecand增加1。这种tpm候选被称为“截断列表0预测候选(truncatedlist0-predictedcandidate)”。应用完全修剪。5)对于从a1、b1、b0、a0、b2、col和col2推导的每个运动候选以及numcurrmergecand小于5,如果规则运动候选是双向预测,则来自列表1的运动信息被添加到tpmmerge列表(即被修改为来自列表1的单向预测),并且numcurrmergecand增加1。这种tpm候选被称为“截断列表1预测候选(truncatedlist1-predictedcandidate)”。应用完全修剪。6)对于从a1、b1、b0、a0、b2、col和col2推导的每个运动候选以及numcurrmergecand小于5,如果规则运动候选是双向预测,–如果列表0参考图片的条带qp小于列表1参考图片的条带qp,则首先将列表1的运动信息缩放到列表0参考图片,并将两个mv(一个来自原始列表0,并且另一个是来自列表1的缩放的mv)的平均量添加到tpmmerge列表中,这样的候选称为来自列表0的平均单向预测运动候选(averageduni-predictionfromlist0motioncandidate),并且numcurrmergecand增加1。–否则,首先将列表0的运动信息缩放到列表1参考图片,并将两个mv(一个来自原始列表1,并且另一个是来自列表0的缩放的mv)的平均量添加到tpmmerge列表中,这样的tpm候选被称为来自列表1的平均单向预测运动候选(averageduni-predictionfromlist1motioncandidate),并且numcurrmergecand增加1。应用完全修剪。7)如果numcurrmergecand小于5,则添加零运动矢量候选。将候选插入列表时,如果必须与先前添加的所有候选进行比较,以查看其是否与其中一个相同,这种过程称为完全修剪。2.3.2.2自适应加权过程在预测每个三角形预测单元之后,将自适应加权过程应用于两个三角形预测单元之间的对角线边缘,以推导整个cu的最终预测。两个加权因子组定义如下:·第一加权因子组:{7/8,6/8,4/8,2/8,1/8}和{7/8,4/8,1/8}分别用于亮度和色度样点;·第二加权因子组:{7/8,6/8,5/8,4/8,3/8,2/8,1/8}和{6/8,4/8,2/8}分别用于亮度和色度样点。基于两个三角形预测单元的运动矢量的比较来选择加权因子组。当两个三角形预测单元的参考图片彼此不同或者它们的运动矢量差大于16像素时,使用第二加权因子组。否则,使用第一加权因子组。示例如图15所示。2.3.2.3三角形预测模式(tpm)的信令可以首先信令通知指示是否使用tpm的一个比特标志。此后,进一步信令通知两种划分模式(如图13所描绘的)的指示,以及为两个分区中的每一个选择的merge索引。2.3.2.3.1tpm标志的信令让我们分别用w和h来表示一个亮度块的宽度和高度。如果w*h<64,则禁用三角形预测模式。当一个块用仿射模式进行编码时,也禁用三角形预测模式。当一个块用merge模式进行编码时,可以信令通知一个比特标志来指示对于该块是启用还是禁用三角形预测模式。基于以下等式,该标志用3个上下文进行编码。ctx索引=((左侧的块l可用&&l是用tpm进行编码的?)1:0)+((上侧的块a可用&&a是用tpm进行编码的?)1:0);2.3.2.3.2信令通知两种划分模式(如图13所描绘的)的指示以及为两个分区中的每个分区选择的merge索引注意,划分模式、两个分区的merge索引是联合编码的。作为示例,限制两个分区不能使用相同的参考索引。因此,存在2(划分模式)*n(最大merge候选数量)*(n-1)种可能性,其中n被设置为5。一个指示被编码,并且划分模式、两个merge索引和编码指示之间的映射从下面定义的数组中推导:constuint8_tg_trianglecombination[triangle_max_num_cands][3]={{0,1,0},{1,0,1},{1,0,2},{0,0,1},{0,2,0},{1,0,3},{1,0,4},{1,1,0},{0,3,0},{0,4,0},{0,0,2},{0,1,2},{1,1,2},{0,0,4},{0,0,3},{0,1,3},{0,1,4},{1,1,4},{1,1,3},{1,2,1},{1,2,0},{0,2,1},{0,4,3},{1,3,0},{1,3,2},{1,3,4},{1,4,0},{1,3,1},{1,2,3},{1,4,1},{0,4,1},{0,2,3},{1,4,2},{0,3,2},{1,4,3},{0,3,1},{0,2,4},{1,2,4},{0,4,2},{0,3,4}};划分模式(45度或135度)=g_trianglecombination[信令通知的指示][0];候选a的merge索引=g_trianglecombination[信令通知的指示][1];候选b的merge索引=g_trianglecombination[信令通知的指示][2];一旦推导出了两个运动候选a和b,就可以根据a或b设置两个分区(pu1和pu2)的运动信息。pu1是否使用merge候选a或b的运动信息取决于两个运动候选的预测方向。表1示出了两个推导出的运动候选a和b与两个分区之间的关系。表1:从推导出的两个merge候选(a、b)中推导分区的运动信息a的预测方向b的预测方向pu1的运动信息pu2的运动信息l0l0a(l0)b(l0)l1l1b(l1)a(l1)l0l1a(l0)b(l1)l1l0b(l0)a(l1)2.3.2.3.3指示的熵编码(由merge_triangle_idx表示)merge_triangle_idx在[0,39](含端点)的范围内。k阶指数哥伦布(exponentialgolomb,eg)码用于merge_triangle_idx的二值化,其中k被设置为1。k阶eg为了用更少的比特来编码更大的数字(以用更多的比特来编码更小的数字为代价),这可以使用非负整数参数k来概括。为了用k阶指数哥伦布码对非负整数x进行编码:1.使用上述0阶指数哥伦布码对进行编码,然后2.用二进制对xmod2k进行编码表2:指数哥伦布-k编码示例2.3.3仿射运动补偿预测在hevc中,只有平移运动模型被应用于运动补偿预测(motioncompensationprediction,mcp)。而在现实世界中,存在许多种运动,例如,放大/缩小、旋转、透视运动和其它不规则运动。在vvc中,用4参数仿射模型和6参数仿射模型应用简化的仿射变换运动补偿预测。如图16a-图16b所示,块的仿射运动场由4参数仿射模型(图16a)的两个控制点运动矢量(cpmv)和6参数仿射模型(图16b)的3个cpmv来描述。块的运动矢量场(motionvectorfield,mvf)由以下等式分别通过等式(1)中的4参数仿射模型(其中4参数被定义为变量a、b、e和f)和等式(2)中的6参数仿射模型(其中6参数被分别定义变量a、b、c、d、e和f)来描述:其中(mvh0,mvh0)是左上角控制点的运动矢量,并且(mvh1,mvh1)是右上角控制点的运动矢量,并且(mvh2,mvh2)是左下角控制点的运动矢量,所有三个运动矢量都被称为控制点运动矢量(cpmv),(x,y)表示当前块内代表点(representativepoint)相对于左上样点的坐标,并且(mvh(x,y),mvv(x,y))是对于位于(x,y)处的样点推导的运动矢量。cp运动矢量可以被信令通知(像在仿射amvp模式下)或者实时(on-the-fly)推导(像在仿射merge模式下)。w和h是当前块的宽度和高度。实际上,除法是通过右移和取整操作来实施的。在vtm中,代表点被定义为子块的中心位置,例如,当子块的左上角相对于当前块内的左上角样点的坐标是(xs,ys)时,代表点的坐标被定义为(xs+2,ys+2)。对于每个子块(即vtm中的4×4),利用代表点来推导整个子块的运动矢量。为了进一步简化运动补偿预测,应用了基于子块的仿射变换预测。为了推导每个m×n(在当前vvc中,m和n都被设置为4)子块的运动矢量,如图17所示,根据等式(1)和(2)计算每个子块的中心样点的运动矢量,并取整到1/16的分数精度。然后,应用1/16像素的运动补偿插值滤波器来生成具有推导出的运动矢量的每个子块的预测。仿射模式引入了1/16像素的插值滤波器。在mcp之后,每个子块的高精度运动矢量被取整并保存为与正常运动矢量相同的精度。2.3.3.1仿射预测的信令通知类似于平移运动模型,也有两种模式用于信令通知由于仿射预测的边信息。它们是affine_inter和affine_merge模式。2.3.3.2af_inter模式对于宽度和高度都大于8的cu,可以应用af_inter模式。在比特流中信令通知cu级别的仿射标志,以指示是否使用af_inter模式。在这种模式下,对于每个参考图片列表(列表0或列表1),仿射amvp候选列表以以下顺序用三种类型的仿射运动预测量构建,其中每个候选包括当前块的估计的cpmv。在编码器侧发现的最佳cpmv(诸如图20中的mv0mv1mv2)和估计的cpmv的差被信令通知。另外,进一步信令通知从其中推导估计的cpmv的仿射amvp候选的索引。1)继承的仿射运动预测量检查顺序类似于hevcamvp列表构建中的空域mvp的顺序。首先,从{a1,a0}中的被仿射编码并且具有与当前块中相同的参考图片的第一块中推导左侧继承的仿射运动预测量。第二,从{b1,b0,b2}中的被仿射编码并且具有与当前块中相同的参考图片的第一块推导上侧继承的仿射运动预测量。图19中描绘了五个块a1、a0、b1、b0、b2。一旦发现临近块被用仿射模式编码,则覆盖临近块的编码单元的cpmv被用于推导当前块的cpmv的预测量。例如,如果a1用非仿射模式编码,而a0用4参数仿射模式编码,则左侧继承的仿射mv预测量将从a0中推导出。在这种情况下,覆盖a0的cu的cpmv,如图21b中的左上角cpmv和右上角cpmv所表示的,被用于推导当前块的估计的cpmv,由当前块的左上方(具有坐标(x0,y0))、右上方(具有坐标(x1,y1))和右下方位置(具有坐标(x2,y2))的表示。2)构建的仿射运动预测量如图20所示,构建的仿射运动预测量包括从具有相同参考图片的临近帧间编码块中推导的控制点运动矢量(cpmv)。如果当前仿射运动模型是4参数仿射,则cpmv的数量是2,否则如果当前仿射运动模型是6参数仿射,则cpmv的数量是3。左上方的cpmv是由组{a,b,c}中的被帧间编码并且具有与当前块中相同的参考图片的第一块处的mv推导的。右上方的cpmv是由组{d,e}中的被帧间编码并且具有与当前块中相同的参考图片的第一块处的mv推导的。左下方的cpmv是由组{f,g}中的被帧间编码并且具有与当前块中相同的参考图片的第一块处的mv推导。-如果当前仿射运动模型是4参数仿射,则只有当和两者都被建立时,即和被用作当前块的左上方(具有坐标(x0,y0))、右上方(具有坐标(x1,y1))位置的估计的cpmv,构建的仿射运动预测量才被插入候选列表。-如果当前仿射运动模型是6参数仿射,则只有当和都被建立时,即和被用作当前块的左上方(具有坐标(x0,y0))、右上方(具有坐标(x1,y1))和右下方(具有坐标(x2,y2))位置的估计的cpmv,构建的仿射运动预测量才被插入候选列表。当将构建的仿射运动预测量插入候选列表时,不应用修剪过程。3)正常amvp运动预测量以下条件适用,直到仿射运动预测量的数量达到最大值为止。1)通过将所有cpmv设置为等于(如果可用的话),推导仿射运动预测量。2)通过将所有cpmv设置为等于(如果可用的话),推导仿射运动预测量。3)通过将所有cpmv设置为等于(如果可用的话),推导仿射运动预测量。4)通过将所有cpmv设置为等于hevctmvp(如果可用的话),推导仿射运动预测量。5)通过将所有cpmv设置为零mv,推导仿射运动预测量。注意,已经在构建的仿射运动预测量中推导出。图18a-图18b分别示出了4参数仿射模型和6参数仿射模型。图19示出了继承的仿射候选的af_inter的mvp的示例。图20示出了构建的仿射候选的af_inter的mvp的示例。在af_inter模式下,当使用4/6参数仿射模式时,需要2/3个控制点,并且因此需要为这些控制点编码2/3个mvd,如图18a-图18b所示。在示例中,提出按如下方式来推导mv,即从mvd0中预测mvd1和mvd2。其中,mvdi和mv1分别是左上方像素(i=0)、右上方像素(i=1)或左下方像素(i=2)的预测运动矢量、运动矢量差和运动矢量,如图18b所示。请注意,两个运动矢量(例如,mva(xa,ya)和mvb(xb,yb))的相加等于两个分量的单独求和,即newmv=mva+mvb,newmv的两个分量分别设置为(xa+xb)和(ya+yb)。2.3.3.3af_merge模式当在af_merge模式下应用cu时,它从有效的临近重建块中获得用仿射模式编码的第一块。并且候选块的选择顺序是从左、上、右上、左下到左上,如图21a所示(依次由a、b、c、d、e表示)。例如,如果临近的左下块以仿射模式编码,如图21b中的a0所表示,则提取包含块a的临近cu/pu的左上角、右上角和左下角的控制点(cp)运动矢量mv0n、mv1n和mv2n。并且基于mv0n、mv1n和mv2n来计算当前cu/pu上的左上角/右上/左下的运动矢量mv0c、mv1c和mv2c(其仅用于6参数仿射模式)。应该注意的是,在vtm-2.0中,如果当前块被仿射编码,位于左上角的子块(例如,vtm中的4×4块)存储mv0,则位于右上角的子块存储mv1。如果当前块用6参数仿射模型来编码,则位于左下角的子块将存储mv2;否则(用4参数仿射模型),lb存储mv2’。其他子块存储用于mc的mv。在推导出当前cu的cpmvmv0c、mv1c和mv2c之后,根据简化的仿射运动模型等式(1)和(2),生成当前cu的mvf。为了识别当前cu是否用af_merge模式编码,当存在至少一个临近块以仿射模式编码时,在比特流中信令通知仿射标志。图21a-图21b分别示出了具有五个临近块的af_merge的候选和cpmv预测量推导。在示例中,仿射merge候选列表由以下步骤构建:1)插入继承的仿射候选继承的仿射候选是指候选是从其有效临近仿射编码块的仿射运动模型中推导的。从临近块的仿射运动模型中推导最多两个继承的仿射候选,并将其插入到候选列表中。对于左侧预测量,扫描顺序为{a0,a1};对于上侧预测量,扫描顺序为{b0,b1,b2}。2)插入构建的仿射候选如果仿射merge候选列表中的候选的数量小于maxnumaffinecand(设置为5),则将构建的仿射候选插入候选列表中。构建的仿射候选是指通过组合每个控制点的临近运动信息来构建候选。控制点的运动信息首先从图22所示的指定的空域邻居和时域邻居中推导。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是当前块的宽度和高度。根据以下优先级顺序获得每个控制点的运动信息:对于cp1,检查优先级是b2->b3->a2。如果b2可用,则使用b2。否则,如果b2不可用,则使用b3。如果b2和b3都不可用,则使用a2。如果三个候选全部都不可用,则无法获得cp1的运动信息。对于cp2,检查优先级是b1->b0。对于cp3,检查优先级是a1->a0。对于cp4,使用t。其次,使用控制点的组合来构建仿射merge候选。构建6参数仿射候选需要三个控制点的运动信息。三个控制点可以从以下四个组合中选择一个({cp1,cp2,cp4}、{cp1,cp2,cp3}、{cp2,cp3,cp4}、{cp1,cp3,cp4})。组合{cp1,cp2,cp3}、{cp2,cp3,cp4}、{cp1,cp3,cp4}将转换为由左上、右上和左下控制点表示的6参数运动模型。构建4参数仿射候选需要两个控制点的运动信息。这两个控制点可以从以下两个组合中选择一个({cp1,cp2}、{cp1,cp3})。这两个组合将被转换为由左上和右上控制点表示的4参数运动模型。构建的仿射候选的组合按以下顺序插入候选列表:{cp1,cp2,cp3}、{cp1,cp2,cp4}、{cp1,cp3,cp4}、{cp2,cp3,cp4}、{cp1,cp2}、{cp1,cp3}。仅当cp具有相同的参考索引时,才将cp的运动信息的可用组合添加到仿射merge列表中。3)用零运动矢量进行填充如果仿射merge候选列表中的候选的数量少于5,则具有零参考索引的零运动矢量被插入到候选列表中,直到列表满为止。2.3.4当前图片参考在hevc屏幕内容编码扩展(screencontentcoding,scc)中采用了帧内块复制(ibc(intrablockcopy),或帧内图片块补偿),也称为当前图片参考(currentpicturereferencing,cpr)。该工具对于屏幕内容视频的编码非常有效,因为文本和图形丰富的内容中的重复模式经常出现在同一图片中。将先前重建的具有相同或类似模式的块作为预测量可以有效地减少预测误差,从而提高编码效率。图23示出了帧内块补偿的示例。类似于hevcscc中的crp设计,在vvc中,ibc模式的使用在序列和图片级别上都被信令通知。当在序列参数集(sequenceparameterset,sps)下启用ibc模式时,它可以在图片级别下启用。当在图片级别下启用ibc模式时,当前重建的图片被视为参考图片。因此,在现有的vvc帧间模式的基础上,不需要在块级别上进行语法改变来信令通知ibc模式的使用。主要特点:-它被视为正常帧间模式。因此,merge和跳过模式也可用于ibc模式。merge候选列表构建是统一的,包含来自临近位置的、以ibc模式编码或以hevc帧间模式编码的merge候选。根据选择的merge索引,merge或跳过模式下的当前块可以合并到ibc模式编码的邻居中,或者以其它方式合并到用不同图片作为参考图片的正常帧间模式编码的邻居中。-用于ibc模式的块矢量预测和编码方案重用用于hevc帧间模式(amvp和mvd编码)下的运动矢量预测和编码的方案。-对于ibc模式的运动矢量,也称为块矢量,以整数像素精度编码,但解码后以1/16像素精度存储在存储器中,因为插值和去块阶段需要四分之一像素精度。当用于ibc模式的运动矢量预测时,存储的矢量预测量将右移4。-搜索范围:限于当前ctu内。-启用仿射模式/三角形模式/gbi/加权预测时,不允许cpr。2.3.5vvc中的merge列表设计vvc中支持三种不同的merge列表构建过程:1)子块merge候选列表:它包括atmvp和仿射merge候选。仿射模式和atmvp模式共享一个merge列表构建过程。这里,atmvp和仿射merge候选可以按顺序添加。子块merge列表尺寸在条带头中信令通知,并且最大值为5。2)单向预测tpmmerge列表:对于三角形预测模式,两个分区共享一个merge列表构建过程,即使两个分区可以选择它们自己的merge候选索引。当构建该merge列表时,检查块的空域临近块和两个时域块。从空域临近块和时域块中推导出的运动信息在本文中被称为规则运动候选。这些规则运动候选被进一步用于推导多个tpm候选。请注意,变换在整个块级别下执行,即使两个分区也可以使用不同的运动矢量来生成它们自己的预测块。单向预测tpmmerge列表尺寸被固定为5。3)规则merge列表:对于剩余的编码块,共享一个merge列表构建过程。这里,可以按顺序插入空域/时域/hmvp、成对组合的双向预测merge候选和零运动候选。规则merge列表尺寸在条带头中信令通知,并且最大值为6。2.3.5.1子块merge候选列表建议将除了用于非子块merge候选的规则merge列表之外的所有子块相关的运动候选放入单独的merge列表中。子块相关的运动候选被放入单独的merge列表中,该列表被命名为“子块merge候选列表”。在一个示例中,子块merge候选列表包括仿射merge候选、和atmvp候选和/或基于子块的stmvp候选。在示例中,正常merge列表中的atmvpmerge候选被移动到仿射merge列表的第一位置。使得新列表(即基于子块的merge候选列表)中的所有merge候选都基于子块编码工具。2.3.5.2规则merge列表与merge列表设计不同,在vvc中,采用基于历史的运动矢量预测(history-basedmotionvectorprediction,hmvp)方法。在hmvp中,存储先前编码的运动信息。先前编码块的运动信息被定义为hmvp候选。多个hmvp候选被存储在名为hmvp表的表中,并且该表在编码/解码过程中实时维护。当开始编码/解码新条带时,hmvp表被清空。每当有帧间编码块时,相关联的运动信息被添加到表的最后一个条目中作为新的hmvp候选。整个编码流程如图24所示。hmvp候选可以用于amvp和merge候选列表构建过程。图25描绘了修改的merge候选列表构建过程(以灰色突出显示)。当merge候选列表在tmvp候选插入后未满时,存储在hmvp表中的hmvp候选可以用来填充merge候选列表。考虑到一个块通常与最近的临近块在运动信息方面具有更高的相关性,表中的hmvp候选以索引的降序插入。表中的最后一个条目首先被添加到列表中,而第一个条目被最后添加。类似地,冗余消除也适用于hmvp候选。一旦可用的merge候选的总数达到信令通知的所允许的merge候选的最大数量,merge候选列表构建过程就终止。3.通过公开的实施例解决的技术示例在当前vvc设计中,仿射预测模式可以实现对于具有仿射运动的序列的显著编码增益。但是,它可能有以下问题:1)对于双向预测仿射模式,不考虑两个参考图片列表之间的仿射运动信息的相关性。2)对于仿射merge候选推导过程,仿射模型(4参数或6参数)类型直接从临近块继承,这需要附加的行缓冲区尺寸来存储仿射模型类型。4.各种技术的描述下面的详细发明应该被认为是解释一般概念的示例。这些发明不应该被狭义地解释。此外,这些发明可以以任何方式组合。1.提出了添加到一个参考图片列表的候选可以被用于预测另一参考图片的cpmv。a.在一个示例中,一个参考图片的cpmv可以被用于预测另一参考图片的cpmv。b.在一个示例中,一个参考图片的编码的mvd可以被(如果需要的话被缩放)用于预测另一参考图片的mvd。2.提出了对称仿射编码模式,其中一个参考图片列表(列表x)的运动信息被信令通知,而另一参考图片列表(列表y,其中y不等于x)的运动信息总是被跳过。a.在一个示例中,没有信令通知的参考图片列表(列表y)的运动信息(诸如cpmv)可以从参考图片列表(列表x)的运动信息中推导。b.在一个示例中,该模式的预测方向也被设置为双向预测。c.在一个示例中,它被添加作为新的编码模式。可替代地,它可以被用来代替单向仿射编码模式。3.提出了仿射模型类型(例如,4参数或6参数)可以用于在构建仿射候选列表(例如,仿射amvp/merge候选列表、子块merge候选列表)时决定仿射候选的插入顺序。a.对于仿射amvp候选列表,具有相同仿射模型类型的临近块可以被赋予更高的优先级。例如,具有相同仿射模型类型的临近块的运动信息可以在具有不同仿射模型类型的第二临近块的运动信息之前被添加到amvp列表中。b.在一个示例中,可以为仿射merge模式进一步信令通知仿射类型。c.对于仿射merge候选列表和/或子块merge候选列表,具有相同仿射模型类型的临近块可以被赋予更高的优先级。i.在一个示例中,具有与第一仿射候选相同仿射模型类型的临近块的运动信息可以在具有不同仿射模型类型的第二临近块的运动信息之前添加到merge列表中。ii.在一个示例中,构建的仿射候选的组合可以用添加在6参数仿射候选之前的4参数仿射候选(2个cpmv)来重新排序。d.对于仿射merge候选列表和/或子块merge候选列表,可以构建具有与选择的merge候选的仿射模型类型相同的仿射模型类型的更多构建的仿射候选。i.在一个示例中,所选择的merge候选是第一个可用仿射merge候选。ii.在一个示例中,所选择的merge候选是与空域临近块的特定位置相关联的仿射merge候选。e.对于仿射merge候选列表和/或子块merge候选列表,构建的仿射候选的顺序可以取决于选择的仿射merge候选的仿射模型类型。i.在一个示例中,所选择的merge候选是第一个可用仿射merge候选。ii.在一个示例中,所选择的merge候选是与空域临近块的特定位置相关联的仿射merge候选。4.提出了不存储与块相关联的仿射模型类型并不将其用于编码随后的块。a.可替代地,这样的信息可以被存储,但仅用于编码当前ctu内或相同m×n区域或当前ctu行内的随后的块。在一个示例中,一个图片/片/条带可以被划分成尺寸等于m×n(例如,64×64)的非重叠区域。b.在一个示例中,在对具有4参数仿射模型的amvp仿射编码块进行解码之后,不是存储2个cpmv(来自左上方和右上方位置),而是可以存储3个cpmv(来自左上方、右上方和左下方位置)。i.在一个示例中,可以利用左上方和右上方的cpmv来推导左下方的cpmv。c.在一个示例中,对于每个仿射merge候选,利用6参数仿射模型。可替代地,对于每个仿射merge候选,利用4参数仿射模型。5.提出了仿射候选可以被重新排序,而不是使用固定的插入顺序。a.在一个示例中,重新排序取决于相对于当前块的代表性临近位置的推导出的mv。每个仿射候选被用于推导若干代表性临近位置的运动矢量,然后计算推导出的mv和与那些代表性临近位置相关联的所解码的mv的差。最后,仿射候选按差的升序重新排序。b.在一个示例中,差度量是mse(meansquarederror,均方误差)。c.可替代地,此外,在计算差之前,如果仿射候选具有与代表性临近块不同的参考图片,则可以进一步缩放推导出的mv。d.可替代地,此外,在计算差之前,可以将推导出的mv和代表性临近mv都缩放到一些选择的参考图片。e.在一个示例中,只有一些仿射候选被重新排序。例如,只有临近仿射候选被重新排序。它们可以总是在构建的仿射候选之前被插入。f.在一个示例中,只有构建的仿射候选被重新排序。它们可能总是在临近仿射候选之后被插入。g.在一个示例中,只有前n个仿射候选被重新排序。h.在一个示例中,只有重新排序的仿射merge候选的前n个被插入子块merge列表。i.在一个示例中,如果执行这种重新排序,则子块merge列表的最大长度减少了k。例如,k=2。6.提出了将上述4中描述的重新排序方法应用于仿射amvp列表构建。a.在一个示例中,没有仿射amvp索引被信令通知,并且只有重新排序的仿射amvp候选中的第一个被用作预测量。7.提出了可以对多个(例如,2个)仿射候选进行平均,以生成新的仿射候选。a.在一个示例中,只有具有相同参考图片的仿射候选被用于生成平均仿射候选。b.在一个示例中,具有不同参考图片的仿射候选可以用于生成平均仿射候选,并且所有仿射候选被缩放到相同的参考图片。i.在一个示例中,这些仿射候选中的任何一个的参考图片可以被用作平均仿射候选的参考图片。ii.在一个示例中,可以针对每个cu/片/条带/图片/视频/片定义平均仿射候选的参考图片,并且可以在片头/条带头/pps/vps/sps中信令通知。iii.在一个示例中,参考图片在编码器和解码器处都被隐式预定义。iv.在一个示例中,不执行缩放。图26是视频处理装置2600的框图。装置2600可以用于实施本文描述的一种或多种方法。装置2600可以体现在智能手机、平板电脑、计算机、物联网(internetofthings,iot)接收器等中。装置2600可以包括一个或多个处理器2602、一个或多个存储器2604和视频处理硬件2606。(多个)处理器2602可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)2604可以被用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2606可以被用于在硬件电路中实施本文档中描述的一些技术。图27是视频处理的示例方法2700的流程图。该方法可以由视频编码器在其解码环路中,或由视频解码器来执行。方法2700包括:通过基于插入顺序,将仿射候选插入仿射候选列表来生成(2702)当前块的仿射候选列表,所述插入顺序取决于仿射候选列表中的至少一个仿射候选的仿射模型类型;以及基于所生成的仿射候选列表,对当前块执行(2704)视频处理。图28是视频处理的示例方法2800的流程图。该方法可以由视频编码器在其解码环路中,或由视频解码器来执行。方法2800包括:生成(2802)对于当前块的仿射候选列表,其中,在生成仿射候选列表期间,对仿射候选列表中的至少一个仿射候选重新排序;基于所生成的仿射候选列表,对当前块执行(2804)视频处理。应当理解,已经公开了若干技术,这些技术通过允许在如本文档中的许多技术和实施例所描述的视频压缩和解压缩中使用仿射模型,而有益于结合在诸如智能手机、膝上型电脑、台式电脑和类似设备的视频处理设备中的视频编码器和解码器实施例。一些实施例可以使用以下示例来描述。1.一种用于视频处理的方法,包括:基于插入顺序通过将仿射候选插入仿射候选列表来生成当前块的仿射候选列表,所述插入顺序取决于仿射候选列表中的至少一个仿射候选的仿射模型类型;以及基于所生成的仿射候选列表,对所述当前块执行视频处理。2.根据示例1所述的方法,其中,所述仿射候选列表包括仿射高级运动矢量预测amvp候选列表、仿射merge候选列表和子块merge候选列表中的至少一个。3.根据示例1或2所述的方法,其中,所述仿射模型类型对应于4参数仿射模型或6参数仿射模型。4.根据示例1-3中的任一项所述的方法,其中,来自具有相同仿射模型类型的临近块的仿射候选在插入顺序上被赋予比具有不同仿射模型类型的仿射候选更高的优先级。5.根据示例1-4中的任一项所述的方法,其中,来自于以4参数仿射模型编码的临近块的仿射候选在以6参数仿射模型编码的仿射候选之前被插入所述仿射候选列表。6.根据示例1-4中的任一项所述的方法,其中,为所述仿射merge模式信令通知仿射模型类型。7.根据示例2所述的方法,对于所述仿射merge候选列表和/或所述子块merge候选列表,所述方法还包括:构建与选择的merge候选具有的相同的仿射模型类型的至少一个仿射候选。8.根据示例2或7所述的方法,其中,构建的至少一个仿射候选的插入顺序取决于选择的merge候选的仿射模型类型。9.根据示例7或8所述的方法,其中,所选择的merge候选是所述merge候选列表中的第一可用仿射merge候选或与空域临近块的某一位置相关联的仿射merge候选。10.根据示例1-9中任一项所述的方法,其中,所述插入顺序是固定的。11.一种视频处理方法,包括:对于当前块生成仿射候选列表,其中,在生成所述仿射候选列表期间,对所述仿射候选列表中的至少一个仿射候选重新排序;基于所生成的仿射候选列表,对所述当前块执行视频处理。12.根据示例11所述的方法,其中,基于推导出的相对于所述当前块的代表性临近位置的运动矢量mv,对所述至少一个仿射候选重新排序,其中,所推导出的mv是基于所述仿射候选列表中的仿射候选而推导的。13.根据示例11所述的方法,还包括:基于所述仿射候选列表中的仿射候选,推导代表性临近块的mv;计算所推导出的mv和与所述代表性临近块相关联的解码的mv之间的差;以及基于所述差的特定顺序对所述仿射候选列表中的至少一个仿射候选重新排序。14.根据示例13所述的方法,其中,所述特定顺序是所述差的升序。15.根据示例13或14所述的方法,其中,所述差基于均方误差mse。16.根据示例13-15中的任一项所述的方法,还包括:在计算所述差之前,如果所述仿射候选具有与代表性临近位置不同的参考图片,则对所推导出的mv进行缩放。17.根据示例13-16中的任一项所述的方法,还包括:在计算所述差之前,将推导出的mv和与作为代表性临近块相关联的解码的mv缩放到至少一个选择的参考图片。18.根据示例11-17中的任一项所述的方法,其中,所述仿射候选列表中只有一些仿射候选被重新排序。19.根据示例18所述的方法,其中,只有从临近块推导出的仿射候选被重新排序,并且重新排序的仿射候选在构建的仿射候选之前被插入所述仿射候选列表。20.根据示例18所述的方法,其中,只有构建的仿射候选被重新排序,并且重新排序的仿射候选在从临近块推导出的仿射候选之后被插入所述仿射候选列表。21.根据示例18所述的方法,其中,只有所述仿射候选列表中的前n个仿射候选被重新排序,n代表正整数。22.根据示例18所述的方法,其中,将重新排序的仿射merge候选中的前n个插入所述子块merge候选列表,n代表正整数。23.根据示例11至22中任一项所述的方法,其中,在执行重新排序之后,将所述子块merge候选列表的最大长度减小k,k代表正整数。24.根据示例23所述的方法,其中,k=2。25.根据示例11-24中任一项所述的方法,其中,所述仿射候选列表是amvp候选列表。26.根据示例25所述的方法,其中,在不对仿射amvp索引进行信令通知的情况下,将重新排序的仿射amvp候选中的第一候选用作所述当前块的预测量。27.根据示例1-26中任一项所述的方法,其中,所述视频处理包括以下中的至少一个:将所述视频块编码成所述视频块的比特流表示,以及从所述视频块的比特流表示中解码所述视频块。28.一种视频处理装置,包括被配置为实施示例1至27中任一项的方法的处理器。29.一种存储在非暂时性计算机可读介质上的计算机程序产品,所述计算机程序产品包括用于执行示例1至27中任一项的方法的程序代码。本文档中描述的所公开的和其它解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。所公开的和其它实施例可以实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息以传输到合适的接收器装置。计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一个或多个计算机上执行。本文中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或者被可操作地耦合以从一个或多个大容量存储设备接收数据或向其传送数据或两者兼有。然而,计算机不一定需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。虽然本专利文档包含许多细节,但这些不应被解释为对任何主题或所要求保护的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,甚至最初被要求这样来保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或顺序地执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应该理解为在所有实施例中都需要这种分离。仅描述了几个实施方式和示例,并且可以基于本专利文件中描述和图示的内容进行其它实施、增强和变化。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1