仿射模式与其他帧间编解码工具之间的协调的制作方法

文档序号:25543525发布日期:2021-06-18 20:40
仿射模式与其他帧间编解码工具之间的协调的制作方法
相关申请的交叉引用根据适用专利法和/或适用于巴黎公约的规则,本申请及时要求2019年11月15日提交的国际专利申请no.pct/cn2018/115633号的优先权和权益。通过引用将上述申请的全部公开并入,作为本申请公开的一部分。本专利文档涉及视频编解码和解码技术、设备和系统。
背景技术
:尽管视频压缩有所进步,数字视频在互联网和其他数字通信网络上仍占最大的带宽使用量。随着能够接收和显示视频的连接用户设备的数量增加,预计数字视频使用所需的带宽将继续增长。技术实现要素:描述了与数字视频编解码有关的设备、系统和方法,并且具体地,描述了与仿射预测与其他编解码工具的协调有关的设备、系统和方法。所描述的方法可以应用于现有视频编解码标准(例如,高效视频编解码(hevc))和未来视频编解码标准或视频编解码器。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括基于当前视频块的比特流表示中的用信令通知的参数,通过修改merge仿射模型来生成修改的merge仿射模型,以及基于修改的merge仿射模型重构当前视频块。在另一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括确定当前视频块是用子块编解码工具进行编解码的,以及基于确定,使用帧间-帧内预测来重构当前视频块。在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括为当前视频块生成第一预测,为当前视频块生成第二预测,以及基于第一预测和第二预测的加权和,重构当前视频块。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:确定当前块;以及通过使用帧间-帧内预测、以及子块编解码技术和运动矢量差merge模式(mmvd)技术中的至少一种,执行当前块和当前块的比特流表示之间的转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:根据当前块的划分,确定所述当前块对应位置的多个加权值,其中,从所述当前块划分的至少一个分割是非矩形和非正方形分割;通过至少使用至少一个子块merge候选来确定所述至少一个分割的预测结果;以及通过使用所述预测结果执行所述当前块和所述当前块的比特流表示之间的转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:确定当前块的多个分割,其中,多个分割中的至少一个分割是非矩形和非正方形分割;通过使用帧内预测来确定第一预测;通过使用帧间预测来确定第二预测;根据第一预测和第二预测确定预测结果;以及通过使用预测结果执行当前块和当前块的比特流表示之间的转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:在当前块和当前块的比特流表示之间的转换期间,获取当前块的指示,其中,该指示指示是否应当修改当前块的merge仿射模型;以及至少基于指示,执行当前块与当前块的比特流表示之间的转换。在又一代表性方面,上述方法以处理器可执行代码的形式体现并存储在计算机可读程序介质中。在又一代表性方面,公开了一种配置或可操作以执行上述方法的设备。该设备可以包括被编程为实现该方法的处理器。在又一代表性方面,视频解码器装置可实现如本文中所描述的方法。在附图、说明书和权利要求中更详细地描述了所公开技术的上述和其他方面和特征。附图说明图1示出了基于子块的预测的示例。图2a和2b分别示出了简化的4参数仿射模型和简化的6参数仿射模型的示例。图3示出了每个子块的仿射运动矢量场(mvf)的示例。图4a和图4b示出了af_merge仿射运动模式的示例候选。图5示出了仿射merge模式的候选位置的示例。图6a和图6b示出了将编解码单元(cu)划分为两个三角预测单元(pu)的示例。图7示出了临近块的位置的示例。图8示出了应用第一加权因子组的cu的示例。图9示出了运动矢量存储的示例。图10示出了用于示例基于历史的运动矢量预测(hmvp)方法的解码流程图。图11示出了在hmvp方法中更新表的示例。图12示出了当前帧的最终运动矢量表达(umve)搜索过程的示例。图13a和13b示出了umve搜索点的示例。图14示出了距离索引和距离偏移之间的示例性映射。图15示出了根据所公开的技术的用于视频处理的示例方法的流程图。图16示出了根据所公开的技术的用于视频处理的另一示例方法的流程图。图17示出了根据所公开的技术的用于视频处理的又一示例方法的流程图。图18是用于实现本文档中描述的视频解码或视频编码技术的硬件平台的示例的框图。图19示出了根据所公开的技术的用于视频处理的示例方法的流程图。图20示出了根据所公开的技术的用于视频处理的示例方法的流程图。图21示出了根据所公开的技术的用于视频处理的示例方法的流程图。图22示出了根据所公开的技术的用于视频处理的示例方法的流程图。具体实施方式由于对更高分辨率视频的需求的增加,在现代技术中普遍存在视频编解码方法和技术。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断改进以提供更高的编解码效率。视频编解码器将未压缩视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂度、对数据丢失和错误的敏感性、编辑的简易性、随机访问和端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(hevc)标准(也称为h.265或mpeg-h第2部分)、待定的通用视频编解码标准、或其他当前和/或未来的视频编解码标准。首先,通过高效视频编解码(hevc)标准将基于子块的预测引入视频编解码标准。利用基于子块的预测,将诸如编解码单元(cu)或预测单元(pu)之类的块划分为几个非重叠的子块。可以为不同的子块分配不同的运动信息,诸如参考索引或运动矢量(mv),并且针对每个子块分别执行运动补偿(mc)。图1示出了基于子块的预测的示例。所公开的技术的实施例可以应用于现有视频编解码标准(例如,hevc、h.265)和未来标准以改进运行性能。在本文档中使用章节标题以提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实现)限制于仅相应的部分。1.联合探索模型(jem)的示例在一些实施例中,使用称为联合探索模型(jem)的参考软件来探索未来的视频编解码技术。在jem中,在几种编解码工具中采用基于子块的预测,诸如仿射预测、可选时域运动矢量预测(atmvp)、空时运动矢量预测(stmvp)、双向光流(bio)、帧速率上转换(fruc)。仿射预测也已被用于vvc。1.1仿射预测的示例在hevc中,仅将平移运动模型应用于运动补偿预测(mcp)。而在现实世界中,有多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在vvc中,应用了简化的仿射变换运动补偿预测。如图2a和2b所示,分别通过两个(在4参数仿射模型中)或三个(在6参数仿射模型中)控制点运动矢量来描述块的仿射运动场。块的运动矢量场(mvf)分别通过以下等式分别由4参数仿射模型和6参数仿射模型来描述:这里,(mvh0,mvh0)是左上角控制点(cp)的运动矢量,(mvh1,mvh1)是右上角控制点的运动矢量,(mvh2,mvh2)是左下角控制点的运动矢量,(x,y)表示代表点相对于当前块内左上样点的坐标。cp运动矢量可以被用信令通知(如在仿射amvp模式中)或被即时导出(如在仿射merge模式中)。w和h是当前块的宽度和高度。在实践中,除法是通过取整运算和右移来实现的。在vtm中,代表点定义为子块的中心位置,例如,当子块的左上角相对于当前块内左上角样点的坐标为(xs,ys)时,代表点的坐标定义为(xs+2,ys+2)。在免于除法的设计中,等式(1)和(2)被实现为:对于等式(1)中所示的4参数仿射模型:对于等式(2)中所示的6参数仿射模型:因此,运动矢量可以推导为:这里,s表示计算精度。例如,在vvc中,s=7。在vvc中,用等式(6)在x=xs+2和y=ys+2的情况下,计算mc中用于左上角样点为(xs,ys)的子块的mv。如图3所示,为了导出每个4×4子块的运动矢量,根据等式(1)或(2)计算每个子块的中心样点的运动矢量,并取整至1/16分数精度。然后,将运动补偿插值滤波器应用于生成具有导出运动矢量的每个子块的预测。仿射模型可以从空间临近的仿射编码块继承,诸如图4a所示的左、上方、右上、左下和左上的邻近块。例如,如果图4a中的临近左下块a以仿射模式编码,如图4b中的a0所示,则获取包含块a的临近cu/pu的左上角、右上角和左下角的控制点(cp)运动矢量mv0n、mv1n和mv2n。并且基于mv0n、mv1n和mv2n计算当前cu/pu左上角/右上/左下的运动矢量mv0c、mv1c和mv2c(仅用于6参数仿射模型)。在一些实施例中,如果当前块是仿射编码的,则子块(例如,vtm中的4×4块)lt存储mv0,rt存储mv1。如果当前块使用6参数仿射模型进行编码,则lb存储mv2;否则(使用4参数仿射模型进行编码),lb存储mv2’。其他子块存储用于mc的mv。在一些实施例中,当cu以仿射merge模式编码时,例如在af_merge模式下,它从有效的临近重构块中获得以仿射模式编码的第一块。并且如图4a所示,候选块的选择顺序是从左、上、右上、左下到左上。在仿射merge模式下,当前块的导出的cpmvmv0c、mv1c和mv2c可以用作cpmv。或者,它们可以用作vvc中仿射帧间模式的mvp。应当注意,对于merge模式,如果当前块以仿射模式编码,则在导出当前块的cpmv之后,可以将当前块进一步划分为多个子块,并且每个块将基于当前块的导出的cpmv来导出其运动信息。2.示例性实施例与vtm不同,在vtm中,仅一个仿射空域临近块可用于导出块的仿射运动,在一些示例性实施例中,它提出构造针对af_merge模式的仿射候选的单独列表。(1)将继承的仿射候选插入候选列表中在示例中,继承的仿射候选是指候选是从以仿射模式编码的有效邻居重构块中导出的。如图5所示,候选块的扫描顺序是a1、b1、b0、a0和b2。当选择了块(例如a1)时,将执行两步过程:(a)首先,使用覆盖块的cu的三个角运动矢量来导出当前块的两个/三个控制点;和(b)基于当前块的控制点来导出当前块内的每个子块的子块运动。(2)插入构造的仿射候选在一些实施例中,如果仿射merge候选列表中的候选的数量小于maxnumaffinecand,则将构造的仿射候选插入到候选列表中。构造的仿射候选是指通过组合每个控制点的邻居运动信息来构造候选。首先,从图5所示的指定的空域邻居和时域邻居导出控制点的运动信息。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。其次,使用控制点的组合来构造运动模型。需要三个控制点的运动矢量来计算6参数仿射模型中的变换参数。可以从以下四个组合({cp1,cp2,cp4},{cp1,cp2,cp3},{cp2,cp3,cp4}、{cp1,cp3,cp4})中的一个中选择三个控制点。例如,使用cp1,cp2和cp3控制点来构造6参数仿射运动模型,表示为仿射(cp1,cp2,cp3)。需要两个控制点的运动矢量来计算4参数仿射模型中的变换参数。可以从以下六个组合({cp1,cp4},{cp2,cp3},{cp1,cp2},{cp2,cp4},{cp1,cp3},{cp3,cp4})中的一个中选择两个控制点。例如,使用cp1和cp2控制点来构造4参数仿射运动模型,表示为仿射(cp1,cp2)。按照以下顺序将构造的仿射候选的组合插入到候选列表中:{cp1,cp2,cp3},{cp1,cp2,cp4},{cp1,cp3,cp4},{cp2,cp3,cp4},{cp1,cp2},{cp1,cp3},{cp2,cp3},{cp1,cp4},{cp2,cp4},{cp3,cp4}(3)插入零运动矢量如果仿射merge候选列表中的候选数量小于maxnumaffinecand,则将零运动矢量插入候选列表中,直到列表已满。3.仿射merge候选列表的示例性实施例3.1实施例在仿射merge模式中,仅第一可用仿射邻居可以用于导出仿射merge模式的运动信息。在一些实施例中,通过搜索有效的仿射邻居并组合每个控制点的邻居运动信息来构造仿射merge模式的候选列表。仿射merge候选列表被构造为以下步骤:(1)插入继承的仿射候选继承的仿射候选是指从其有效的邻居仿射编码块的仿射运动模型中导出的候选。如图5所示,在共同的基础上,候选位置的扫描顺序是:a1,b1,b0,a0和b2。在导出候选之后,执行完整修剪过程以检查是否已将相同候选插入到列表中。如果存在相同的候选,则丢弃导出的候选。(2)插入构造的仿射候选如果仿射merge候选列表中的候选数量小于maxnumaffinecand(在此示例中设置为5),则将构造的仿射候选插入到候选列表中。构造仿射候选是指通过组合每个控制点的邻居运动信息来构造的候选。首先,从图5所示的指定的空域邻居和时域邻居导出控制点的运动信息。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。其次,使用控制点的组合来构造运动模型。需要三个控制点的运动信息来构造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,cp4},{cp2,cp3},{cp1,cp2},{cp2,cp4},{cp1,cp3},{cp3,cp4})中的一个中选择两个控制点。组合{cp1,cp4},{cp2,cp3},{cp2,cp4},{cp1,cp3},{cp3,cp4}将转换为由左上和右上控制点表示的4参数运动模型点。按照以下顺序将构造的仿射候选的组合插入到候选列表中:{cp1,cp2,cp3},{cp1,cp2,cp4},{cp1,cp3,cp4},{cp2,cp3,cp4},{cp1,cp2},{cp1,cp3},{cp2,cp3},{cp1,cp4},{cp2,cp4},{cp3,cp4}对于组合的参考列表x(x为0或1),选择控制点中使用率最高的参考索引作为列表x的参考索引,并且将缩放指向差异参考图片的运动矢量。在导出候选之后,执行完整修剪过程以检查是否已将相同候选插入到列表中。如果存在相同的候选,则丢弃导出的候选。(3)填充零运动矢量如果仿射merge候选列表中的候选数量小于5,则将具有零参考索引的零运动矢量插入候选列表中,直到列表已满。3.2仿射merge模式的实施例在现有的实现中,建议仿射merge模式的以下简化:(1)通过比较覆盖临近位置的编解码单元而不是比较导出的仿射候选,简化了对继承的仿射候选的修剪过程。最多将2个继承的仿射候选插入到仿射merge列表中。构造的仿射候选的修剪过程被完全移除。(2)移除在构造的仿射候选中的mv缩放操作。如果控制点的参考索引不同,则将构造的运动模型丢弃。(3)构造的仿射候选的数量从10减少到6。(4)还提出将具有子块预测的其他merge候选(诸如atmvp)也放入仿射merge候选列表中。在那种情况下,仿射merge候选列表可以用诸如子块merge候选列表的一些其他名称重命名。4.控制点运动矢量(cpmv)偏移的示例基于第一仿射merge候选的cpmv偏移生成新的仿射merge候选。如果第一仿射merge候选启用4参数仿射模型,则通过偏移第一仿射merge候选的2个cpmv,可以为每个新的仿射merge候选导出2个cpmv。否则(启用6参数仿射模型),然后通过偏移第一仿射merge候选的3个cpmv,为每个新的仿射merge候选导出3个cpmv。在单向预测中,将cpmv偏移应用于第一个候选的cpmv。在具有相同方向的列表0和列表1的双向预测中,将cpmv偏移应用于第一候选,如下所示:mvnew(l0),i=mvold(l0)+mvoffset(i)mvnew(l1),i=mvold(l1)+mvoffset(i)在具有相反方向的列表0和列表1的双向预测中,将cpmv偏移应用于第一候选,如下所示:mvnew(l0),i=mvold(l0)+mvoffset(i)mvnew(l1),i=mvold(l1)-mvoffset(i)在该实施例中,具有各种偏移的各种偏移方向被用于生成新的仿射merge候选。测试了两种实现:(1)生成具有8个不同偏移方向、具有2个不同偏移的16个新的仿射merge候选,如以下偏移集所示:偏移集={(4,0),(0,4),(-4,0),(0,-4),(-4,-4),(4,-4),(4,4),(-4,4),(8,0),(0,8),(-8,0),(0,-8),(-8,-8),(8,-8),(8,8),(-8,8)}。对于该设计,仿射merge列表增加到20。潜在的仿射merge候选总数为31。(2)生成具有4个不同偏移方向、具有1个偏移量的4个新的仿射merge候选,如以下偏移集所示:偏移集={(4,0),(0,4),(-4,0),(0,-4)}。仿射merge列表保持为5。移除四个时域构造的仿射merge候选,以保持潜在的仿射merge候选的数量不变,即总数为15。假设cpmv1、cpmv2、cpmv3和cpmv4的坐标为(0,0),(w,0),(h,0)和(w,h)。注意,如图5所示,从时域mv导出cpmv4。移除的候选是以下四个时域相关的构造的仿射merge候选:{cp2,cp3,cp4},{cp1,cp4},{cp2,cp4},{cp3,cp4}。5.广义双向预测改进(gbi)的示例在一些实施例中采用了提出的广义双向预测改进(gbi)。在一些实施例中提出了gbi。gbi的增益复杂度折衷得到改善,并且在一些实施例中被采用。在一些实施例中,gbi在双向预测模式中将不相等的权重应用于来自l0和l1的预测器。在帧间预测模式中,基于速率失真优化(rdo)评估包括相等权重对(1/2,1/2)的多个权重对,并将选择的权重对的gbi索引用信令通知给解码器。在merge模式下,从临近的cu继承gbi索引。在一些实施例中,下面示出了双向预测模式下的预测器生成。pgbi=(w0*pl0+w1*pl1+roundingoffsetgbi)>>shiftnumgbi,这里,pgbi是gbi的最终预测器。w0和w1是选择的gbi权重对,并被分别应用于列表0(l0)和列表1(l1)的预测器。roundingoffsetgbi和shiftnumgbi被用于归一化gbi中的最终预测器。支持的w1权重集为{-1/4,3/8,1/2,5/8,5/4},其中五个权重分别对应一个相等的权重对和四个不相等的权重对。混合增益,即w1和w0之和,固定为1.0。因此,相应的w0权重集为{5/4,5/8,1/2,3/8,-1/4}。权重对选择处于cu级。对于非低延迟图片,权重设置尺寸从五减小为三,其中w1权重设置为{3/8,1/2,5/8},而w0权重设置为{5/8,1/2,3/8}。在该贡献中,非低延迟图片的权重设置尺寸减小适用于bms2.1gbi和所有gbi测试。在该实施例中,提出了一种组合解决方案以进一步提高gbi性能。具体地,在现有gbi设计的基础上进行以下修改。gbi编码器错误修复。为了减少gbi编码时间,在当前的编码器设计中,编码器将存储根据等于4/8的gbi权重估算的单向预测运动矢量,并将其重新用于其他gbi权重的单向预测搜索。这种快速编码方法同时应用于平移运动模型和仿射运动模型。在一些实施例中,将6参数仿射模型与4参数仿射模型一起采用。当gbi权重等于4/8、bms2.1编码器存储单向预测仿射mv时,bms2.1编码器不区分4参数仿射模型和6参数仿射模型。因此,在用gbi权重4/8进行编码之后,可以用6参数仿射mv覆盖4参数仿射mv。对于其他gbi权重,所存储的6参数仿射mv可以用于4参数仿射me,或者所存储的4参数仿射mv可以用于6参数仿射me。所提出的gbi编码器错误修复是将4参数仿射和6参数仿射mv分开存储。当gbi权重等于4/8时,编码器将基于仿射模型类型存储这些仿射mv,并基于仿射模型类型将对应的仿射mv重用于其他gbi权重。gbi的cu尺寸约束。在这种方法中,对于小型cu,禁用gbi。在帧间预测模式下,如果使用双向预测并且cu区域小于128个亮度样点,则在没有用信令通知的情况下禁用gbi。merge模式和gbi。在merge模式下,没有用信令通知gbi索引。相反,它是从合并到的临近块继承的。当选择tmvp候选时,在此块中将关闭gbi。仿射预测和gbi。当使用仿射预测对当前块进行编码时,可以使用gbi。对于仿射帧间模式,将用信令通知gbi索引。对于仿射merge模式,gbi索引从合并到的临近块继承。如果选择了构造的仿射模型,则在此块中将关闭gbi。6.三角预测模式的示例三角预测单元模式的概念是引入用于运动补偿预测的新三角分割。如图6a和6b所示,三角预测单元模式沿对角线方向或对角线反方向将cu划分为两个三角预测单元。cu中的每个三角预测单元使用从单向预测候选列表中导出的参考帧索引和其自己的单向预测运动矢量来进行帧间预测。在预测三角预测单元之后,对对角线边缘执行自适应加权处理。然后,将变换和量化过程应用于整个cu。注意,该模式仅应用于跳过和merge模式。6.1单向预测候选列表单向预测候选列表由五个单向预测运动矢量候选组成。如图7所示,它是从包括五个空域临近块(1到5)和两个时域上并置的块(6到7)的七个临近块导出的。根据单向预测运动矢量、双预测运动矢量的l0运动矢量、双预测运动的l1运动矢量、双向预测运动矢量的l0和l1运动矢量的平均运动矢量的顺序,收集七个临近块的运动矢量并将其放入单向预测候选列表中。如果候选数量少于五个,则将零运动矢量添加到列表中。6.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个像素时,使用第二加权因子组。否则,使用第一加权因子组。图8示出了该自适应加权处理的示例。6.3运动矢量存储三角预测单元的运动矢量(图9中的mv1和mv2)存储在4×4网格中。对于每个4×4网格,基于4×4网格在cu中的位置,存储单向预测或双预测运动矢量两者。如图9所示,针对位于非加权区域中的4×4网格存储单向预测运动矢量mv1或mv2。另一方面,针对位于加权区域中的4×4网格存储双向预测运动矢量。根据以下规则,从mv1和mv2中导出双向预测运动矢量:1)在mv1和mv2具有来自不同方向(l0或l1)的运动矢量的情况下,简单地将mv1和mv2组合以形成双向预测运动矢量。2)在mv1和mv2都来自相同的l0(或l1)方向的情况下:2a)如果mv2的参考图片与l1(或l0)参考图片列表中的图片相同,则将mv2缩放到该图片。mv1和缩放的mv2组合以形成双向预测运动矢量。2b)如果mv1的参考图片与l1(或l0)参考图片列表中的图片相同,则将mv1缩放到该图片。缩放的mv1和mv2组合以形成双向预测运动矢量。2c)否则,针对加权区域仅存储mv1。7.基于历史的运动矢量预测(hmvp)的示例提出了基于历史的mvp(hmvp)方法,其中将hmvp候选定义为先前编码的块的运动信息。在编码/解码过程中维护具有多个hmvp候选的表。遇到新的条带时,将清空该表。每当存在帧间编码的非仿射块时,相关联的运动信息就会作为新的hmvp候选被添加到表的最后一个条目。总体编码流程在图10中示出。在此示例中,表尺寸s设置为6,这表示最多可以将6个hmvp候选添加到表中。当将新的运动候选插入到表中时(如图11所示),利用约束的fifo规则,其中首先应用冗余检查以发现表中是否存在相同的hmvp。如果找到,则从表中移除相同的hmvp,然后将所有hmvp候选向前移动,即索引减少1。hmvp候选可以在merge候选列表构造过程中使用。按顺序检查表中最新的几个hmvp候选,并将其插入到tmvp候选之后的候选列表中。对排除子块运动候选(例如,atmvp)的空域或时域merge候选的hmvp候选进行修剪。为了减少修剪操作的数量,引入了三个简化:由l表示的待检查的hmpv候选的数量设置如下:l=(n<=4)?m:(8-n)这里,n表示表中的可用非子块merge候选的数量,m表示表中的可用hmvp候选的数量。另外,一旦可用merge候选的总数达到用信令通知的最大允许merge候选减去1,就终止来自hmvp列表的merge候选列表构造过程。此外,用于组合的双向预测merge候选推导的对的数量从12减少到6。类似地,hmvp候选也可以在amvp候选列表构造过程中使用。将表中最后k个hmvp候选的运动矢量插入到tmvp候选之后。仅将具有与amvp目标参考图片相同的参考图片的hmvp候选用于构造amvp候选列表。修剪应用于hmvp候选。在此贡献中,将k设置为4,同时amvp列表尺寸保持不变,即等于2。8.最终运动矢量表达(umve)的示例在一些实施例中,提出了最终运动矢量表达(umve)。umve可通过提出的运动矢量表达方法用于跳过或merge模式。umve重复使用merge候选,与在vvc中使用的相同。在merge候选中,可以选择候选,并通过提出的运动矢量表达方法进一步扩展候选。umve也称为具有合并运动矢量差的merge(mmvd)。umve提供具有简化信令的新运动矢量表达。表达方法包括起点、运动幅度和运动方向。所提出的技术按原样使用merge候选列表。但是,只有默认合并类型(mrg_type_default_n)的候选才会考虑umve的扩展。基本候选索引(idx)定义起点。基本候选索引表示列表中候选的最佳候选,如下所示。如果基本候选的数量等于1,则不用信令通知基本候选索引的信号。距离索引是运动幅度信息。距离索引表示距起点信息的预定义距离。预定义的距离如下:方向索引表示mvd相对于起点的方向。方向索引可以代表四个方向,如下所示:方向索引00011011x轴+-n/an/ay轴n/an/a+-图12示出了针对当前帧的umve搜索过程的示例。图13a和图13b分别示出了参考列表0和参考列表1中参考图片的umve搜索点的示例。在用信令通知跳过标志和merge标志之后立即用信令通知umve标志。如果跳过和merge标志为真(true),则解析umve标志。如果umve标志等于1,则解析umve语法。但是,如果不是1,则解析affine标志。如果affine标志等于1,则为affine模式;但是,如果不等于1,则为vtm的跳过/merge模式解析跳过/merge索引。由于umve候选,不需要额外的行缓冲器。因为软件的跳过/merge候选直接用作基本候选。使用输入的umve索引,在运动补偿之前立即确定mv的补充。无需为此保留长行缓冲区。9.帧间-帧内模式的示例在帧间-帧内模式下,多假设预测结合了一个帧内预测和一个merge索引预测。在mergecu中,当标志为真时,用信令通知一个标志用于merge模式,以从帧内候选列表中选择帧内模式。对于亮度分量,帧内候选列表是从包括dc、平面、水平和垂直模式的4种帧内预测模式导出的,基于块形状,帧内候选列表的尺寸可以为3或4。当cu宽度大于cu高度的两倍时,水平模式不包括帧内模式列表,并且当cu高度大于cu宽度的两倍时,垂直模式将从帧内模式列表中移除。使用加权平均将通过帧内模式索引选择的一种帧内预测模式和通过merge索引选择的一种merge索引预测进行组合。对于色度分量,始终应用dm,而无需额外的信令。组合预测的权重描述如下。当选择dc或平面模式、或cb宽度或高度小于4时,将应用相等的权重。对于cb宽度和高度大于或等于4的cb,当选择水平/垂直模式时,首先将一个cb垂直/水平划分为四个等面积区域。每个权重集,表示为(w_intrai,w_interi),其中i从1到4并且(w_intra1,w_inter1)=(6,2),(w_intra2,w_inter2)=(5,3),(w_intra3,w_inter3)=(3,5)和(w_intra4,w_inter4)=(2,6)将应用于相应区域。(w_intra1,w_inter1)用于最接近参考样点的区域,并且(w_intra4,w_inter4)用于最远离参考样点的区域。然后,可以通过将两个加权预测相加并右移3位来计算组合的预测。此外,可以保存用于预测器的帧内假设的帧内预测模式,以供随后的临近cu参考。10.仿射merge模式与预测偏移的示例在一些实施例中,umve被扩展到仿射merge模式,此后我们将其称为umve仿射模式。所提出的方法选择第一可用的仿射merge候选作为基础预测器。然后,它将运动矢量偏移从基础预测器应用于每个控制点的运动矢量值。如果没有可用的仿射merge候选,则不会使用所提出的方法。所选择的基础预测器的帧间预测方向以及每个方向的参考索引均保持不变。在当前实现中,假设当前块的仿射模型是4参数模型,仅需要导出2个控制点。因此,仅基础预测器的前两个控制点将用作控制点预测器。对于每个控制点,zero_mvd标志用于指示当前块的控制点是否具有与对应的控制点预测器相同的mv值。如果zero_mvd标志为真,则该控制点不需要其他信令。否则,为控制点用信令通知距离索引和偏移方向索引。使用尺寸为5的距离偏移表,如下表所示。用信令通知距离索引以指示使用哪个距离偏移。距离索引和距离偏移值的映射在图14中示出。方向索引可以表示四个方向,如下所示,其中只有x或y方向可能具有mv差,但在两个方向上却没有mv差。如果帧间预测是单向的,则将信令通知的距离偏移应用于每个控制点预测器的偏移方向。结果将是每个控制点的mv值。例如,当基础预测器是单向时,控制点的运动矢量值为mvp(vpx,vpy)时。当用信令通知距离偏移和方向索引后,将按以下方式计算当前块对应控制点的运动矢量。mv(vx,vy)=mvp(vpx,vpy)+mv(x-dir-factor*distance-offset,y-dir-factor*distance-offset)如果帧间预测是双向的,则对控制点预测器的l0运动矢量在用信令通知的偏移方向上应用用信令通知的距离偏移;并且将相反方向的相同距离偏移应用于控制点预测器的l1运动矢量。结果将是每个帧间预测方向上每个控制点的mv值。例如,当基础预测器是单向时,l0上的控制点的运动矢量值为mvpl0(v0px,v0py),而l1上的控制点的运动矢量为mvpl1(v1px,v1py)。用信令通知距离偏移和方向索引后,将按以下方式计算当前块对应控制点的运动矢量。mvl0(v0x,v0y)=mvpl0(v0px,v0py)+mv(x-dir-factor*distance-offset,y-dir-factor*distance-offset)mvl1(v0x,v0y)=mvpl1(v0px,v0py)+mv(x-dir-factor*distance-offset,y-dir-factor*distance-offset)提出了一种简化的方法,以通过用信令通知每个块的距离偏移索引和偏移方向索引来减少信令开销。相同的偏移将以相同的方式应用于所有可用的控制点。在这种方法中,控制点的数量由基础预测器的仿射类型、6参数类型的3个控制点和4参数类型的2个控制点确定。由于对块的所有控制点一次完成了信令通知,因此在该方法中不使用zero_mvd标志。11.仿射运动数据的表示的示例建议存储仿射参数而不是cpmv,以预测后续编码块的仿射模型。12.merge列表设计的示例vvc支持三种不同的merge列表构造过程:(1)子块merge候选列表:其包括atmvp和仿射merge候选。仿射模式和atmvp模式连两者共享一个merge列表构造过程。在此,可以按顺序添加atmvp和仿射merge候选。子块merge列表的尺寸在条带头中用信令通知,并且最大值为5。(2)单向预测tpmmerge列表:对于三角预测模式,即使两个分割可以选择它们自己的merge候选索引,也共享两个分割的一个merge列表构造过程。当构造该merge列表时,检查该块的空域临近块和两个时域块。从空域邻居和时域块导出的运动信息在我们的idf中称为常规运动候选。这些常规运动候选进一步被用来导出多个tpm候选。请注意,变换是在整个块级执行的,即使两个分割可能使用不同的运动矢量来生成自己的预测块。在一些实施例中,单向预测tpmmerge列表尺寸被固定为5。(3)常规merge列表:对于剩余的编码块,共享一个merge列表构造过程。在此,可以按顺序插入空域/时域/hmvp、成对组合的双向预测merge候选和零运动候选。在条带标头中用信令通知常规merge列表的尺寸,并且常规merge列表尺寸的最大值为6。子块merge候选列表建议将除了用于非子块merge候选的常规merge列表之外的所有与子块相关运动候选放入单独的merge列表中。将被放入单独的merge列表中的与子块相关的运动候选命名为“子块merge候选列表”。在一个示例中,子块merge候选列表包括仿射merge候选、atmvp候选和/或基于子块的stmvp候选。12.1实施例在一些实施例中,将正常merge列表中的atmvpmerge候选移动到仿射merge列表的第一位置。这样,新列表中的所有merge候选(即,基于子块的merge候选列表)都基于子块编解码工具。通过以下步骤构造仿射merge候选列表:(1)插入继承的仿射候选继承的仿射候选是指从其有效的邻居仿射编码块的仿射运动模型中导出的候选。从临近块的仿射运动模型中导出最多两个继承的仿射候选,并将其插入到候选列表中。对于左预测器,扫描顺序为{a0,a1};对于上述预测器,扫描顺序为{b0,b1,b2}。(2)插入构造的仿射候选如果仿射merge候选列表中的候选数量小于maxnumaffinecand(设置为5),则将构造的仿射候选插入到候选列表中。构造仿射候选是指通过组合每个控制点的邻居运动信息来构造的候选。首先,从图7所示的指定的空域邻居和时域邻居中导出控制点的运动信息。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,则将具有零参考索引的零运动矢量插入候选列表中,直到列表已满。13.组合仿射merge候选的现有方法的缺点在一些现有的实现中,如何将仿射预测与诸如帧间-帧内预测、三角预测模式和umve(或mmvd)之类的其他新的编解码工具协调起来仍然不清楚。14.仿射预测与其他编解码工具协调的示例性方法在以下针对各种实现描述的示例中阐明了使得仿射预测与其他编解码工具能够协调、可以以更灵活的方式控制仿射预测所需的带宽、并且可以进一步提高视频编解码效率并增强现有和未来的视频编解码标准的所公开技术的实施例,不应将其解释为限制性的。尽管以下示例是在“仿射merge候选列表”的上下文中描述的,但是它们同样适用于其他merge候选列表,例如,“子块merge候选列表”,并且适用于当诸如atmvp候选的其他种类的子块merge候选也被放入merge候选列表时。umve和仿射预测的的示例示例1.为仿射merge编码块信令通知标志,以指示是否应进一步修改merge仿射模型。仿射模型可以通过cpmv或仿射参数定义。(a)在一个示例中,是否用信令通知标志取决于当前块的宽度(w)和高度(h)。(i)如果w>tw且h>th,则不用信令通知标志。例如tw=th=32;(ii)如果w>tw或h>th,则不用信令通知标志。例如tw=th=32;(iii)如果w*h>ts,则不用信令通知标志。例如ts=1024;(iv)如果w<tw且h<th,则不用信令通知标志。例如tw=th=16;(v)如果w<tw或h<th,则不用信令通知标志。例如tw=th=16;(vi)如果w*h<ts,则不用信令通知标志。例如ts=256;(b)在一个示例中,用旁路编码对标志进行编码;(c)在一个示例中,用(一个或多个)上下文模型对标志进行编码。(i)在一个示例中,临近块的标志可以用于导出使用哪个上下文模型。(1)例如,假设上临近块的标志是flaga,左临近块的标志是flagb,则使用flaga+flagb来指示使用哪个上下文模型。(2)如果临近块不可用或未进行仿射merge编码,则该标志被视为零。(d)在一个示例中,用于常规merge模式的umve标志被重新使用。可替换地,可以基于仿射标志使用上下文模型对标志进行编码。示例2.如果指示对仿射merge编码块修改merge仿射模型,则用信令通知一个或多个修改索引。(a)可替换地,如果指示对仿射merge编码块修改merge仿射模型,则用信令通知一个或多个方向索引和一个或多个距离索引。(b)在一个示例中,修改索引(或方向索引或距离索引)被二值化为固定长度代码。(i)例如,用(一个或多个)上下文模型对固定长度代码的前k个(例如,k=0或1或2)二进制位进行编码,而对其他二进制位进行旁路编码。(c)在一个示例中,修改索引(或方向索引或距离索引)被二值化为一元代码。(i)例如,用(一个或多个)上下文模型对一元代码的前k个(例如,k=0或1或2)二进制位进行编码,而对其他二进制位进行旁路编码。(d)在一个示例中,修改索引(或方向索引或距离索引)被二值化为截断的一元代码。(i)例如,用(一个或多个)上下文模型对被截断的一元代码的前k个(例如,k=0或1或2)二进制位进行编码,而对其他二进制位进行旁路编码。(e)在一个示例中,修改索引(或方向索引或距离索引)被二值化为x阶指数哥伦布(exp-golomb,egx)代码。例如x=0或1。(i)例如,用(一个或多个)上下文模型对egx代码的前k个(例如k=0或1或2)二进制位进行编码,而对其他二进制位进行旁路编码。(f)在一个示例中,修改索引(或方向索引或距离索引)被二值化为截断的x阶指数哥伦布(egx)代码。例如x=0或1。(i)例如,用(一个或多个)上下文模型对被截断的egx代码的前k个(例如,k=0或1或2)二进制位进行编码,而对其他二进制位进行旁路编码。(g)在一个示例中,修改索引(或方向索引或距离索引)被二值化为莱斯(rice)代码。(i)例如,用(一个或多个)上下文模型对莱斯代码的前k个(例如,k=0或1或2)二进制位进行编码,而对其他二进制位进行旁路编码。(h)在一个示例中,修改索引(或方向索引或距离索引)被二值化为截断的莱斯代码。(i)例如,用(一个或多个)上下文模型对被截断的莱斯代码的前k个(例如,k=0或1或2)二进制位进行编码,而对其他二进制位进行旁路编码。示例3.如果指示对仿射merge编码块修改merge仿射模型,则cpmv(即,对于4参数仿射模型为mv0、mv1,对于6参数仿射模型为mv0、mv1、mv2)可以添加偏移(对于mv0,表示为off0=(off0x,off0y);对于mv1,off1=(off1x,off1y);以及对于mv2,off2=(off2x,off2y)),该偏移是从用信令通知的修改索引、或一个多个方向索引和一个或多个距离索引中导出的。(a)在一个示例中,off0,off1和off2可以不相同。(i)在一个示例中,用信令通知m个修改索引(或m个方向索引和m个距离索引)以分别表示m个cpmv的m个偏移。(ii)在一个示例中,可以将off1+off0用作mv1的偏移,并且将off2+off0用作mv2的偏移。(iii)可替换地,用信令通知一个修改索引(或一个方向索引和一个距离索引),并且从中导出cpmv的偏移。在一个示例中,使用查找表来导出偏移。(b)在一个示例中,off1和off2始终等于零。off0是从修改索引(或方向索引和距离索引)导出的。(c)在一个示例中,off0和off2始终等于零。off1是从修改索引(或方向索引和距离索引)导出的。(d)在一个示例中,off0和off1始终等于零。对于6参数仿射模型,off2是从修改索引(或方向索引和距离索引)中导出的。(e)偏移的推导可取决于当前块的宽度和高度。(f)在一个示例中,可以用信令通知索引以指示哪些cpmv被修改。(g)在一个示例中,可以为每个cu/pu/块用信令通知索引,以指示如果允许多于一个的修改索引时将如何用信令通知修改索引。(h)在一个示例中,仅允许一个修改索引,但是,可以用信令通知索引以指示哪个控制点使用这种修改索引。(i)在一个示例中,用信令通知多少修改索引可取决于块尺寸或仿射类型。(1)在一个示例中,对于小于mxn的块尺寸,例如m=n=16,仅允许一个修改索引。(2)在一个示例中,对于4参数仿射模型,仅允许一个修改索引。(3)在一个示例中,对于6参数仿射模型,仅允许一个或两个修改索引。示例4.如果指示对仿射merge编码块修改merge仿射模型,则参数(例如,对于4参数仿射模型为a,b,e,f,对于6参数仿射模型为a,b,c,d,e,f)被添加偏移(对于a表示为offa,对于b表示为offb,对于c表示为offc,对于d表示为offd,对于e表示为offe,以及对于f表示为offf),该偏移是从用信令通知的修改索引、或一个或多个符号标志和一个或多个距离索引中导出的。(a)在一个示例中,offa、offb、offc、offd、offe和offf可以相同或可以不同。(i)在一个示例中,用信令通知m个修改索引(或m个符号标志和m个距离索引)以分别表示m个参数的m个偏移。(ii)可替换地,用信令通知一个修改索引(或一个符号标志和一个距离索引),并从中导出参数的偏移。在一个示例中,使用查找表来导出偏移。(b)在一个示例中,offe和offf始终等于零。offa和offb是从4参数仿射模型的修改索引(或符号标志和距离索引)中导出的。(c)在一个示例中,offe和offf始终等于零。offa、offb、offc和offd是从6参数仿射模型的修改索引(或符号标志和距离索引)中导出的。示例5.如果指示对仿射merge编码块修改merge仿射模型,则参数(即,对于4参数仿射模型为a,b,对于6参数仿射模型为a,b,c,d)可以被添加偏移(对于a表示为offa,对于b表示为offb,对于c表示为offc,对于d表示为offd),该偏移是从用信令通知的修改索引、或一个或多个符号标志和一个或多个距离索引中导出的。并且对cpmv(即,对于4参数仿射模型为mv0、mv1,对于6参数仿射模型为mv0、mv1、mv2)添加偏移(对于mv0,表示为off0=(off0x,off0y);对于mv1,off1=(off1x,off1y);以及对于mv2,off2=(off2x,off2y)),该偏移是从用信令通知的修改索引、或一个或多个方向索引和一个或多个距离索引中导出的。(a)在一个示例中,从4参数仿射模型的修改索引(或符号标志、方向索引和距离索引)中导出off0、offa和offb。(b)在一个示例中,从6参数仿射模型的修改索引(或符号标志、方向索引和距离索引)中导出off0、offa、offb、offc和offd。帧间-帧内预测与仿射预测的示例示例6.提出了帧间-帧内预测可以应用于用子块技术编码的块。(a)在一个示例中,子块merge技术可以是仿射、atmvp、平面merge模式或stmvp。(b)在一个示例中,当当前块是仿射merge编码的时,用信令通知帧间-帧内预测标志。(i)可替换地,当当前块是仿射merge编码的且子块merge索引大于t(例如,t=3)时,用信令通知帧间-帧内预测标志。(ii)可替换地,当当前块是仿射merge编码的且所选择的子块merge索引小于t时(例如,t=3),用信令通知帧间帧内预测标志。(c)当帧间-帧内预测应用于以子块技术编码的块时,帧内预测和基于子块的帧间预测均被应用到当前块,并且对这两个预测加权求和以获得当前块的最终预测。示例7.提出了帧间-帧内预测可以应用于mmvd或umve编码的块。三角预测模式与仿射预测的示例示例8.提出了可以对至少一个子块merge候选应用三角预测。(a)在一个示例中,通过基于子块的帧间预测从子块merge候选(诸如仿射merge候选)中生成一个预测。通过正常帧间预测从常规merge候选中生成其他预测。然后,对这两个预测进行加权求和,如图15所示。(b)在一个示例中,通过基于子块的帧间预测从一个或两个子块merge候选(诸如仿射merge候选)中生成两个预测。然后,对这两个预测进行加权求和,如图15所示。三角形预测模式与帧间-帧内预测的示例示例9.提出了帧间-帧内预测可以与三角预测模式组合。(a)在一个示例中,生成三角预测,并且生成帧内预测,并且对两个预测进行加权求和以获得最终预测。可以将上述示例并入下面描述的方法(例如方法1500、1600和1700),上述方法可以在视频解码器和/或视频编解码器处实现。图15示出了用于视频编解码的示例性方法的流程图。方法1500包括,在步骤1510,基于当前视频块的比特流表示中的用信令通知的参数,通过修改merge仿射模型来生成修改的merge仿射模型。在一些实施例中,修改merge仿射模型包括修改当前视频块的仿射模型的至少一个控制点运动矢量(cpmv),或改变仿射模型的一个或多个控制点,或在四个参数和六个参数之间切换仿射模型。方法1500包括,在步骤1520,基于修改的merge仿射模型重构当前视频块。在一些实施例中,并且在示例1的上下文中,用信令通知的参数包括标志。在一个示例中,该标志基于当前视频块的高度(h)或宽度(w)。例如,h≤th和/或w≤tw,其中th和tw是整数,th=tw且th=16或32。在另一示例中,w×h<ts,其中ts是等于1024或256的整数。在又一示例中,用旁路编码对标志进行编码。在又一示例中,用一个或多个上下文模型对标志进行编码。例如,一个或多个上下文模型基于当前视频块的一个或多个临近块的标志,或者该标志对应于用于常规merge模式的最终运动矢量表达(umve)标志。在一些实施例中,并且在示例2的上下文中,用信令通知的参数包括修改索引、方向索引或距离索引中的至少一个。在示例中,用信令通知的参数被二值化为代码。在另一示例中,该代码是固定长度代码、一元代码、截断的一元代码、x阶指数哥伦布(egx)代码、截断的x阶指数哥伦布(egx)代码、莱斯代码或截断的莱斯代码。在又一示例中,用上下文模型对代码的第一数量二进制位进行编码,而对代码的剩余数量的二进制位进行旁路编码。在一些实施例中,并且在示例3的上下文中,控制点运动矢量(cpmv)的一个或多个偏移的推导是基于用信令通知的参数,并且其中修改merge仿射模型是基于cpmv或一个或多个偏移。在示例中,用信令通知的参数包括一个或多个修改索引、一个或多个方向索引或一个或多个距离索引,其表示一个或多个偏移中的对应偏移。在另一示例中,一个或多个偏移的推导是基于单个修改索引、单个方向索引或单个距离索引。在又一示例中,一个或多个偏移的推导还基于当前视频块的高度或宽度。在一些实施例中,并且在示例3的上下文中,修改索引、方向索引或距离索引中的至少一个的数量是基于当前视频块的尺寸或仿射模型类型。在示例中,当前视频块的尺寸小于m×n,其中至少一个修改索引的数量为1,并且其中m=n=16。在另一示例中,仿射模型类型为4参数仿射模型,并且其中至少一个修改索引的数量是1。在又一示例中,仿射模型类型是6参数仿射模型,并且其中至少一个修改索引的数量是1或2。图16示出了用于视频编解码的示例性方法的流程图。方法1600包括,在步骤1610,确定当前视频块是用子块编解码工具进行编码的。在一些实施例中,并且在示例6的上下文中,子块编解码工具包括仿射预测模式、可选时域运动矢量预测(atmvp)模式、平面merge模式或空时运动矢量预测(stmvp)模式。方法1600包括,在步骤1620中,基于确定,使用帧间-帧内预测来重构当前视频块。在一些实施例中,并且在示例6的上下文中,重构还基于在当前视频块的比特流表示中用信令通知的帧间-帧内预测标志。在示例中,当前视频块是仿射merge编码的。在另一示例中,重构还基于当前视频块的最终预测,并且最终预测是帧内-帧间预测和基于子块编解码工具的预测的加权和。在一些实施例中,并且在示例7的上下文中,当前视频块是使用umve进行编码的。图17示出了用于视频编解码的示例性方法的流程图。方法1700包括,在步骤1710,为当前视频块生成第一预测。方法1700包括,在步骤1720,为当前视频块生成第二预测。在一些实施例中,并且在示例8的上下文中,第一预测是基于来自子块merge候选的基于子块的帧间预测,并且其中第二预测是基于来自常规merge候选的常规帧间预测。在示例中,第一预测是仿射merge预测。在一些实施例中,并且在示例8的上下文中,第一预测根据基于第一子块的帧间预测,并且其中,第二预测根据基于第二子块的帧间预测。在示例中,第一预测或第二预测是仿射merge预测。在一些实施例中,并且在示例9的上下文中,第一预测是三角预测,并且其中第二预测是帧间-帧内预测。方法1700包括,在步骤1730中,基于第一预测和第二预测的加权和,重构当前视频块。在一些实施例中,方法1500、1600和1700可以进一步包括以下步骤:在与当前视频块相同的图片中重构或解码其他视频块。15.所公开技术的示例实现图18是视频处理装置1800的框图。设备1800可以用于实现本文描述的一种或多种方法。装置1800可以体现在智能手机,平板电脑,计算机,物联网(iot)接收器等中。装置1800可以包括一个或多个处理器1802、一个或多个存储器1804和视频处理硬件1806。(一个或多个)处理器1802可以被配置为实现在本文档中描述的一种或多种方法(包括但不限于方法1500、1600和1700)。(一个或多个)存储器1804可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件1806可以用于在硬件电路中实现本文档中描述的一些技术。图19示出了用于视频编解码的示例性方法的流程图。方法1900包括,在步骤1910,确定当前块;在步骤1920,通过使用帧间-帧内预测、以及子块编解码技术和运动矢量差merge模式(mmvd)技术中的至少一种,执行当前块和当前块的比特流表示之间的转换。图20示出了用于视频编解码的示范性方法的流程图。方法2000包括,在步骤2010,根据当前块的划分,确定当前块的对应位置的多个加权值,其中,从当前块划分的至少一个分割是非矩形和非正方形的分割;在步骤2020,通过至少使用至少一个子块merge候选来确定所述至少一个分割的预测结果;在步骤2030,通过使用预测结果执行当前块和当前块的比特流表示之间的转换。图21示出了用于视频编解码的示例性方法的流程图。方法2000包括,在步骤2110,确定当前块的多个分割,其中,多个分割中的至少一个分割是非矩形和非正方形分割;在步骤2120,通过使用帧内预测来确定第一预测;在步骤2130,通过使用帧间预测来确定第二预测;在步骤2140,根据第一预测和第二预测确定预测结果;在步骤2150,通过使用预测结果执行当前块和当前块的比特流表示之间的转换。图22示出了用于视频编解码的示例性方法的流程图。方法2200包括,在步骤2210,在当前块和当前块的比特流表示之间的转换期间,获取当前块的指示,其中,该指示指示是否应当修改当前块的merge仿射模型;在步骤2220,至少基于指示,执行当前块与当前块的比特流表示之间的转换。现在以基于条款的格式公开优选地由一些实施例实现的一些特征。1.一种视频处理方法,包括:确定当前块;以及通过使用帧间-帧内预测、以及子块编解码技术和运动矢量差merge模式(mmvd)技术中的至少一种,来执行当前块和当前块的比特流表示之间的转换。2.根据条款1的方法,其中,子块编解码技术包括仿射预测模式、基于子块的可选时域运动矢量预测(atmvp)模式、平面merge模式和空时运动矢量预测(stmvp)模式中的至少一种。3.根据条款1或2的方法,其中,响应于确定用仿射merge预测模式对当前块进行编码,用信令通知帧间-帧内预测标志。4.根据条款1-3中的任一项的方法,其中,响应于确定用仿射merge预测模式对当前块进行编码并且当前块的子块merge索引大于第一阈值,用信令通知帧间-帧内预测标志。5.根据条款1-3中的任一项的方法,其中,响应于确定用仿射merge预测模式对当前块进行编码并且当前块的所选子块merge索引小于第二阈值,用信令通知帧间-帧内预测标志。6.根据条款4或5的方法,其中,第一阈值和第二阈值为3。7.根据条款1-6中的任一项的方法,其中,通过使用帧间-帧内预测、以及子块编解码技术和运动矢量差merge模式(mmvd)技术中的至少一种,执行当前块和当前块的比特流表示之间的转换包括:通过使用帧内预测对当前块执行第一预测,得到第一预测结果;通过使用基于子块的帧间预测对当前块执行第二预测,得到第二预测结果;对第一预测结果和第二预测结果执行加权求和,得到最终预测结果;基于最终预测结果,执行当前块与当前块的比特流表示之间的转换。8.一种用于视频处理的方法,包括:根据当前块的划分,确定当前块对应位置的多个加权值,其中,从当前块划分的至少一个分割是非矩形和非正方形分割;通过至少使用至少一个子块merge候选来确定至少一个分割的预测结果;以及通过使用预测结果执行当前块和当前块的比特流表示之间的转换。9.根据条款8的方法,其中,通过至少使用至少一个子块merge候选来确定至少一个分割的预测结果包括:通过使用基于子块的帧间预测对当前块执行第一预测,以从子块merge候选中得到第一预测结果;通过使用帧间预测对当前块执行第二预测,以从merge候选中得到第二预测结果;根据多个加权值对第一预测结果和第二预测结果执行加权求和,以得到预测结果。10.根据条款8的方法,其中,通过至少使用至少一个子块merge候选来确定至少一个分割的预测结果包括:通过使用基于子块的帧间预测对当前块执行第一预测,以从一个或两个子块merge候选中得到两个第一预测结果;根据多个加权值对两个第一预测结果执行加权求和,以得到预测结果。11.根据条款9或10的方法,其中,当前块被划分成两个三角形。12.一种用于视频处理的方法,包括:确定当前块的多个分割,其中,多个分割中的至少一个分割是非矩形和非正方形分割;通过使用帧内预测来确定第一预测;通过使用帧间预测来确定第二预测;根据第一预测和第二预测确定预测结果,以及通过使用预测结果执行当前块和当前块的比特流表示之间的转换。13.根据条款12的方法,其中通过使用帧内预测对当前块执行第一预测,以得到第一预测结果;通过使用帧间预测对当前块进行第二预测,以根据分区从merge候选中得到第二预测结果;对第一预测结果和第二预测结果执行加权和以得到预测结果。14.根据条款12或13中任一项的方法,其中,当前块被划分为两个三角形。15.一种视频处理装置,包括被配置为实现条款1至14中的任何一项的方法的处理器。16.根据条款15的装置,其中装置是视频编解码器。17.根据条款15的装置,其中装置是视频解码器。18.一种计算机可读记录介质,其上记录有包括代码的程序,程序用于处理器进行条款1至17中任一项的方法。现在以基于条款的格式公开优选地由一些实施例实现的一些特征。1.一种视频处理方法,包括:在当前块与当前块的比特流表示之间的转换期间,获取当前块的指示,其中指示指示是否应当修改当前块的合并仿射模型;以及至少基于指示,执行当前块与当前块的比特流表示之间的转换。2.根据条款1的方法,其中修改合并仿射模型包括以下的至少一个:修改当前块的仿射模型的至少一个控制点运动矢量(cpmv),更改当前块的仿射模型的一个或多个控制点,修改当前块的仿射模型的至少一个仿射参数,以及在四个仿射参数和六个仿射参数之间切换当前块的仿射模型。3.根据条款1或2的方法,其中,是否用信令通知指示基于当前块的高度(h)和/或宽度(w)。4.根据条款3的方法,其中,响应于h≤th1且w≤tw1,用信令通知指示,其中,th1和tw1是整数。5.根据条款3的方法,其中,响应于h≤th1或w≤tw1,用信令通知指示,其中,th1和tw1是整数。6.根据条款4或5的方法,其中,th1=tw1=32。7.根据条款3的方法,其中,响应于w×h≤ts1,用信令通知指示,其中,ts1是整数。8.根据条款7的方法,其中,ts1=1024。9.根据条款3的方法,其中,响应于h≥th2且w≥tw2,用信令通知指示,其中,th2和tw2是整数。10.根据条款3的方法,其中,响应于h≥th2或w≥tw2,用信令通知指示,其中,th2和tw2是整数。11.根据条款9或10的方法,其中,th2=tw2=16。12.根据条款3的方法,其中,响应于w×h≥ts2,用信令通知指示,其中,ts2是整数。13.根据条款12的方法,其中,ts2=256。14.根据条款1至13中的任一项的方法,其中,指示用旁路编码进行编码。15.根据条款1至13中任一项的方法,其中,指示用一个或多个上下文模型进行编码。16.根据条款15的方法,其中一个或多个上下文模型基于当前块的一个或多个临近块的临近指示而推导。17.根据条款16的方法,其中,基于左临近块的第一临近指示与上临近块的第二临近指示之和推导一个或多个上下文模型。18.根据条款1至17中的任一项的方法,其中,将用于常规merge模式的运动矢量差merge模式(mmvd)标志用作指示。19.根据条款18的方法,其中,基于仿射标志用上下文模型对mmvd标志进行编码。20.根据条款1至19中的任一项的方法,其中,响应于指示应当修改当前块的合并仿射模型的指示,用信令通知至少一个索引。21.根据条款20的方法,其中,至少一个索引包括一个或多个修改索引。22.根据条款20的方法,其中,索引包括方向索引和距离索引中的至少一个。23.根据条款20-22中的任一项的方法,其中,索引是方向索引和距离索引的组合。24.根据条款20-23中的任一项的方法,其中,至少一个索引的部分或全部被二进制化为代码。25.根据条款24的方法,其中,代码是固定长度代码、一元代码、截断的一元代码、x阶exp-golomb(egx)代码、截断的x阶exp-golomb(egx)代码、莱斯代码或截断的莱斯代码中的任何一个。26.根据条款24或25的方法,其中,用上下文模型对代码的第一数量的二进制位进行编码,并且对代码的剩余数量的二进制位进行旁路编码。27.根据条款1-26中任一项的方法,其中,对当前块的控制点运动矢量(cpmv)添加偏移。28.如条款27的方法,其中,响应于指示应当修改当前块的合并仿射模型的指示,在比特流表示中用信令通知用于推导偏移的至少一个第一索引。29.根据条款28的方法,其中,不同cpmv的偏移彼此不同。30.根据条款28或29的方法,其中,将至少一个第一索引中的一个或多个第一索引分别用于推导对应的一个或多个cpmv的一个或多个偏移。31.根据条款28-30中的任一项的方法,其中,与右上cpmv对应的偏移是与左上cpmv对应的偏移与由第一索引用信令通知的差的和。32.根据条款28-30中的任一项的方法,其中,与左下cpmv对应的偏移是与左上cpmv对应的偏移与由第一索引用信令通知的差的和。33.根据条款28或29的方法,其中,将至少一个第一索引中的一个或多个第一索引用于推导对应的一个或多个cpmv的一个或多个偏移,并且将一个或多个偏移进一步用于推导其他cmvp的其他偏移。34.根据条款28-33中的任一项的方法,其中,用信令通知第三指示以指示要用信令通知的第一索引的数量。35.根据条款28-34中任一项的方法,其中,用信令通知第四指示以指示使用第一索引的控制点(cp)。36.根据条款28-35中的任一项的方法,其中,要用信令通知的第一索引的数量基于当前块的尺寸或仿射模式。37.根据条款27-36中的任一项的方法,其中,用表来推导对应的一个或多个cpmv的一个或多个偏移。38.根据条款27-37中的任一项的方法,其中,两个cpmv的两个偏移是零,并且从至少一个索引推导第三cpmv的偏移。39.根据条款27-38中任一项的方法,其中,一个或多个偏移基于当前块的高度和/或宽度。40.根据条款27-39中的任一项的方法,其中,用信令通知第二指示以指示要被修改的一个或多个cpmv。41.根据条款40的方法,其中,当当前块的尺寸小于m×n时,将用信令通知一个第一索引。42.根据条款41的方法,其中,m=n=16。43.根据条款40-42中任一项的方法,其中,当当前块的仿射模型是4参数仿射模式时,将用信令通知一个第一索引。44.根据条款40-43中任一项的方法,其中,当当前块的仿射模型是6参数仿射模式时,将用信令通知一个或两个修改索引。45.根据条款1-44中任一项的方法,其中,对当前块的仿射参数添加偏移。46.根据条款45的方法,其中,不同仿射参数的偏移彼此不同。47.根据条款45的方法,其中至少两个仿射参数的偏移是相同的。48.根据条款45-47中的任一项的方法,其中,响应于指示应当修改当前块的合并仿射模型的指示,在比特流表示中用信令通知用于推导偏移的至少一个第二索引。49.根据条款48的方法,其中,至少一个第二索引包括一个或多个修改索引。50.根据条款48的方法,其中,至少一个索引包括符号标志和距离索引中的至少一个。51.根据条款48的方法,其中,第二索引是符号标志和距离索引的组合。52.根据条款48-51中的任一项的方法,其中,将至少一个第二索引的一个或多个第二索引分别用于推导对应的一个或多个仿射参数的一个或多个偏移。53.根据条款48-52中的任一项的方法,其中,将至少一个第二索引的一个或多个第二索引用于推导对应的一个或多个仿射参数的一个或多个偏移,并且将一个或多个偏移进一步用于推导其他仿射参数的其他偏移。54.根据条款45-53中的任一项的方法,其中,从查找表推导对应的一个或多个仿射参数的一个或多个偏移。55.根据条款45-54中的任一项的方法,其中,仿射参数e和f的两个偏移为零,并且将至少一个第二索引用于推导其他仿射参数的一个或多个偏移。56.根据条款1-55中任一项的方法,其中,响应于指示应当修改当前块的合并仿射模型的指示,对当前块的cpmv添加偏移,偏移量由修改索引、方向索引和距离索引中的一个或多个指示,并且对当前块的仿射参数添加偏移,偏移由修改索引、符号标志和距离索引中的一个或多个指示。57.根据条款56的方法,其中,对左上cpmv添加从修改索引、方向索引和距离索引中的一个或多个推导出的偏移。58.根据条款56或57的方法,其中,对仿射参数a、b、c和d中的至少一个添加从修改索引、符号标志和距离索引中的一个或多个推导出的偏移。59.一种视频处理装置,包括被配置为实现条款1至58中的任何一项的方法的处理器。60.根据条款59的装置,其中装置是视频编解码器。61.根据条款59的装置,其中装置是视频解码器。62.一种计算机可读记录介质,其上记录有包括代码的程序,程序用于处理器进行条款1至58中任一项的方法。从前述内容可以理解,本文已经出于说明的目的描述了当前所公开的技术的具体实施例,但是在不脱离本发明的范围的情况下可以做出各种修改。因此,除了所附权利要求之外,当前所公开的技术不受限制。本专利文档中描述的主题的实现方式和功能性操作可以在各种系统、数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者以他们的一个或多个的组合实施。本说明书中描述的主题的视线方式可以被实施为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个暂时性和非暂时性计算机程序指令模块,用于由数据处理装置运行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的合成、或者它们中的一个或多个的组合。术语“数据处理单元”和“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,装置可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统及其一个或多个的组合的代码。计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点或分布在多个站点并通过通信网络互连。本说明书中描述的处理和逻辑流可以由一个或多个可编程处理器执行,该一个或多个处理器运行一个或多个计算机程序,通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。例如,适用于运行计算机程序的处理器包括通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或可操作地耦合到一个或多个大容量存储设备,以从其接收数据或向其传送数据,或两者兼有。然而,计算机不一定需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。旨在将说明书与附图一起仅视为示例性的,其中示例性意味着示例。另外,除非上下文另有明确说明,否则“或”的使用旨在包括“和/或”。虽然本专利文档包含许多细节,但不应将其解释为对任何发明或要求保护的范围的限制,而应解释为特定于特定发明的特定实施例的特征的描述。本专利文档在分离的实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独地实施,或在任何合适的子组合中实施。此外,虽然特征可以被描述为在某些组合中起作用,甚至最初这样要求保护,但在某些情况下,可以从要求保护的组合中移除组合中的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变体。同样,尽管在附图中以特定顺序描述了操作,但这不应理解为要获得期望的结果必须按照所示的特定顺序或次序顺序来执行这些操作,或执行所有示出的操作。此外,本专利文档所述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。仅描述了一些实施方式和示例,其他实施方式、增强和变体可以基于本专利文档中描述和说明的内容做出。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1