仿射模式中自适应运动矢量分辨率的快速算法的制作方法

文档序号:20204589发布日期:2020-03-27 21:03阅读:148来源:国知局
相关申请的交叉引用根据适用的专利法和/或依据巴黎公约的规则,本申请要求于2018年9月19日提交的国际专利申请第pct/cn2018/106513号和于2019年2月1日提交的国际专利申请第pct/cn2019/074433号的优先权和权益。出于所有目的,上述申请的所有公开内容通过引用并入作为本申请的公开内容的一部分。本专利文件涉及视频处理技术、设备和系统。
背景技术
::尽管视频压缩有所进步,但数字视频仍占因特网和其它数字通信网络上最大的带宽使用。随着能够接收和显示视频的所连接的用户设备的数量增加,预计数字视频使用的带宽需求将继续增长。技术实现要素:描述了与数字视频编码有关的设备、系统和方法,并且具体地,描述了具有自适应运动矢量分辨率(amvr)的仿射模式的运动矢量预测(mvp)推导和信令。所描述的方法可以应用于现有视频编码标准(例如,高效视频编码(hevc))和未来视频编码标准或视频编解码器。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:对于视频的当前块的编码表示与当前块之间的转换,从适用于含有该当前视频块的视频区域的允许的多个运动矢量差异(mvd)精度的集合中确定用于该转换的运动矢量差异(mvd)精度;并且基于该mvd精度执行转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:对于包括视频的一个或多个视频块的视频区域和视频的编码表示,确定多个运动矢量差异(mvd)精度的使用以用于视频区域中的一个或多个视频块的转换;并且基于该确定执行转换。在另一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:对于包括视频的一个或多个视频块的视频区域和视频的编码表示,确定是否将自适应运动矢量分辨率(amvr)过程应用于当前视频块以用于当前视频块与视频的编码表示之间的转换;并且基于该确定执行转换。在另一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:对于包括视频的一个或多个视频块的视频区域和视频的编码表示,确定如何将自适应运动矢量分辨率(amvr)过程应用于当前视频块以用于当前视频块与视频的编码表示之间的转换;并且基于该确定执行转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于使用仿射编码模式的当前编码单元的父代编码单元的编码模式或该仿射编码模式的速率失真(rd)成本,确定自适应运动矢量分辨率(amvr)的使用以用于视频当前块的编码表示与当前块之间的转换;并且根据该确定的结果执行转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:确定自适应运动矢量分辨率(amvr)的使用以用于视频的当前块的编码表示与使用高级运动矢量预测(amvp)编码模式的当前块之间的转换,该确定基于amvp编码模式的速率失真(rd)成本;并且根据该确定的结果执行转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:使用4参数仿射模型或6参数仿射模型生成运动矢量(mv)精度的集合以用于视频的当前块的编码表示与当前块之间的转换;并且基于该mv精度的集合执行转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于使用仿射编码模式的当前块的父代块的编码模式,确定自适应运动矢量分辨率(amvr)工具是否用于转换,其中amvr工具用于在解码期间细化运动矢量分辨率;并且根据该确定的结果执行转换。在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于先前已经使用仿射编码模式编码的先前块的mv精度的使用,确定使用该仿射编码模式的当前块的mv精度的速率失真(rd)计算的终止以用于当前块的编码表示与当前块之间的转换;并且根据该确定的结果执行转换。在另一个代表性方面,上述方法以处理器可执行代码的形式实施并存储在计算机可读程序介质中。在又一个代表性方面,公开了一种被配置或可操作以执行上述方法的设备。该设备可以包括被编程为实现该方法的处理器。在又一个代表性方面,视频解码器装置可以实现如本文中所描述的方法。在附图、说明书和权利要求中更详细地描述了所公开技术的上述方面和特征以及其它方面和特征。附图说明图1示出了构建merge候选列表的示例。图2示出了空域候选的位置的示例。图3示出了经受空域merge候选的冗余校验的候选对的示例。图4a和图4b示出了基于当前块的尺寸和形状的第二预测单元pu的位置的示例。图5示出了用于时域merge候选的运动矢量缩放的示例。图6示出了用于时域merge候选的候选位置的示例。图7示出了生成组合的双向预测merge候选的示例。图8示出了构建运动矢量预测候选的示例。图9示出了用于空域运动矢量候选的运动矢量缩放的示例。图10示出了使用用于编码单元(cu)的替代时域运动矢量预测(atmvp)算法的运动预测的示例。图11示出了具有由空域-时域运动矢量预测(stmvp)算法使用的子块和相邻块的编码单元(cu)的示例。图12示出了用于使用不同的mv精度进行编码的示例流程图。图13a和图13b示出了当使用重叠块的运动补偿(obmc)算法时子块的示例快照。图14示出了用于导出局部亮度补偿(lic)算法的参数的相邻样本的示例。图15示出了简化的仿射运动模型的示例。图16示出了每个子块的仿射运动矢量场(mvf)的示例。图17示出了用于af_inter仿射运动模式的运动矢量预测(mvp)的示例。图18a和18b分别示出了4参数仿射模型和6参数仿射模型的示例。图19a和19b示出了用于af_merge仿射运动模式的示例候选。图20示出了在模式匹配运动矢量推导(pmmvd)模式中的双边匹配的示例,模式匹配运动矢量推导(pmmvd)模式是基于帧速率上转换(fruc)算法的特殊merge模式。图21示出了在fruc算法中的模板匹配的示例。图22示出了在fruc算法中的单向运动估计的示例。图23示出了由双向光流(bio)算法使用的光流轨迹的示例。图24a和24b示出了使用不具有块扩展的双向光流(bio)算法的示例快照。图25示出了基于双边模板匹配的解码器侧运动矢量细化(dmvr)算法的示例。图26a-26i示出了基于所公开的技术的实现方式的用于视频处理的示例方法的流程图。图27是用于实现本文件中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。图28示出了对称模式的示例。图29示出了用于实现本文件中描述的视频处理系统的硬件平台的示例的另一个框图。具体实施方式由于对更高分辨率视频的需求的增加,视频编码方法和技术在现代技术中普遍存在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且被不断改进以提供更高的编码效率。视频编解码器将未压缩视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂度、对数据丢失和错误的敏感性、编辑的简易性,随机访问和端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编码(hevc)标准(也称为h.265或mpeg-h第2部分)、待最终确定的通用视频编码标准、或其它当前和/或未来的视频编码标准。所公开的技术的实施例可以应用于现有视频编码标准(例如,hevc,h.265)和未来的标准以改进压缩性能。在本文件中使用节标题以改进描述的可读性,并且不以任何方式将讨论或实施例(和/或实现方式)限制于仅相应的节。1.在hevc/h.265中的帧间预测的示例多年来,视频编码标准已经显着改进,并且现在部分地提供高编码效率和对更高分辨率的支持。诸如hevc和h.265的最新标准基于混合视频编码结构,其中使用时域预测加变换编码。1.1帧间预测模式的示例每个帧间预测的预测单元(pu)具有对于一个或两个参考图片列表的运动参数。在一些实施例中,运动参数包括运动矢量和参考图片索引。在其它实施例中,也可以使用inter_pred_idc来信令通知对两个参考图片列表中一个的使用。在另外的其它实施例中,运动矢量可以明确地被编码为相对于预测器的增量(delta)。当使用跳过(skip)模式来编码编码单元(cu)时,一个pu与该cu相关联,并且不存在显著的残差系数,不存在编码的运动矢量增量或参考图片索引。指定merge模式,由此从相邻pu——包括空域和时域候选——获得用于当前pu的运动参数。merge模式可以应用于任何帧间预测的pu,而不仅适用于跳过模式。merge模式的替代方案是运动参数的显式传输(explicittransmission),其中运动矢量、每个参考图片列表的对应参考图片索引、参考图片列表使用对每个pu被显式信令通知。当信令指示要使用两个参考图片列表中的一个时,pu从一个样本块产生。这被称为“单向预测”。单向预测可用于p条带和b条带。当信令指示要使用两个参考图片列表时,pu从两个样本块产生。这被称为“双向预测”。双向预测仅可用于b条带。1.1.1构建merge模式的候选的实施例当使用merge模式预测pu时,从比特流解析出指向merge候选列表(mergecandidateslist)中的条目的索引,并且该索引被用于检索运动信息。该列表的构建可以根据以下步骤顺序进行总结:步骤1:初始候选推导步骤1.1:空域候选推导步骤1.2:空域候选的冗余校验步骤1.3:时域候选推导步骤2:附加候选插入步骤2.1:创建双向预测候选步骤2.2:插入零运动候选图1示出了基于上面总结的步骤顺序构建merge候选列表的示例。对于空域merge候选推导,在位于五个不同位置的候选中选择最多四个merge候选。对于时域merge候选推导,在两个候选中选择最多一个merge候选。由于在解码器处假设每个pu的候选的数量为常数,因此当候选的数量未达到在条带报头中信令通知的最大merge候选数量(maxnummergecand)时,生成附加的候选。由于候选的数量是恒定的,因此使用二进制一元截断(tu)来编码最佳merge候选的索引。如果cu的尺寸等于8,则当前cu的所有pu共享单个merge候选列表,该单个merge候选列表与2n×2n预测单元的merge候选列表相同。1.1.2构建空域merge候选在空域merge候选的推导中,在位于图2中描绘的位置中的候选中选择最多四个merge候选。推导的顺序是a1、b1、b0、a0和b2。仅当位置a1、b1、b0、a0的任何pu不可用时(例如,因为该pu属于另一个条带(slice)或片(tile))或者是帧内编码时,才考虑位置b2。在添加位置a1处的候选之后,对剩余候选的添加进行冗余校验,该冗余校验确保具有相同运动信息的候选被排除在列表之外,从而改进编码效率。为了降低计算复杂度,在所提到的冗余校验中并未考虑所有可能的候选对。相反,仅考虑与图3中的箭头链接的对,并且仅当如果用于冗余校验的对应候选具有不同的运动信息时,则该候选才被添加到列表中。重复的运动信息的另一个来源是与不同于2nx2n的分割相关联的“第二pu”。作为示例,图4a和4b分别描绘了针对n×2n和2n×n的情况的第二pu。当当前pu被分割为n×2n时,位置a1处的候选不被考虑用于列表构建。在一些实施例中,添加该候选可以导致具有相同运动信息的两个预测单元,这对于在编码单元中仅具有一个pu是冗余的。类似地,当当前pu被分割为2n×n时,不考虑位置b1。1.1.3构建时域merge候选在此步骤中,只有一个候选被添加到列表中。特别地,在该时域merge候选的推导中,基于共位(co-located)的pu来导出缩放的运动矢量,该共位的pu属于相对于给定参考图片列表内的当前图片具有最小图片顺序计数(poc)差异的图片。在条带报头中明确地信令通知用于共位的pu的推导的参考图片列表。图5示出了用于时域merge候选(如虚线)的缩放的运动矢量的推导的示例,该用于时域merge候选(如虚线)的缩放的运动矢量使用poc距离tb和td而从共位的pu的运动矢量被缩放,其中tb被定义为当前图片的参考图片与该当前图片之间的poc差异,并且td被定义为共位图片的参考图片与该共位图片之间的poc差异。时域merge候选的参考图片索引被设置为等于零。对于b条带,获得两个运动矢量并将其组合以产生双向预测merge候选,该两个运动矢量中的一个用于参考图片列表0(list0)而另一个用于参考图片列表1(list1)。如图6所示,在属于参考帧的共位的pu(y)中,在候选c0和c1之间选择用于时域候选的位置。如果位置c0处的pu不可用、被帧内编码的或在当前ctu之外,则使用位置c1。否则,在时域merge候选的推导中使用位置c0。1.1.4构建附加类型的merge候选除了空域-时域merge候选之外,还存在两种附加类型的merge候选:组合的双向预测merge候选和零merge候选。通过利用空域-时域merge候选来生成组合的双向预测merge候选。组合的双向预测merge候选仅用于b条带。通过将初始候选的第一参考图片列表运动参数与另一个候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组(tuple)提供不同的运动假设,则它们将形成一个新的双向预测候选。图7示出了该过程的示例,在该过程中原始列表(710,在左方)中具有mvl0和refidxl0或mvl1和refidxl1的两个候选被用于创建组合的双向预测merge候选,该组合的双向预测merge候选被添加到最终列表(720,在右方)。零运动候选被插入以填充merge候选列表中的剩余条目,并且因此达到maxnummergecand容量。这些候选具有零空域位移和参考图片索引,该参考图片索引从零开始并且每当新的零运动候选被添加到列表时则增加。这些候选使用的参考帧的数量是分别用于单向和双向预测的1和2。在一些实施例中,不对这些候选执行冗余校验。1.1.5用于并行处理的运动估计区域的示例为了加速编码过程,可以并行执行运动估计,由此同时导出给定区域内的所有预测单元的运动矢量。来自空域相邻的merge候选的推导可能干扰并行处理,因为一个预测单元直到其相关联的运动估计完成才能从相邻pu导出运动参数。为了减轻编码效率和处理等待时域之间的折衷,可以定义运动估计区域(mer)。mer的尺寸可以在图片参数集(pps)中使用“log2_parallel_merge_level_minus2”语法元素来信令通知。当mer被定义时,落入同一区域的merge候选被标记为不可用,并且因此在列表构建中也不被考虑。1.2高级运动矢量预测(amvp)的实施例amvp利用运动矢量与相邻pu的空域-时域相关性,该空域-时域相关性用于运动参数的显式传输。通过下述操作来构建运动矢量候选列表:首先校验左方、上方在时域上相邻pu位置的可用性,移除冗余候选,并添加零矢量,以使候选列表为恒定长度。然后,编码器可以从候选列表中选择最佳预测器,并传输指示所选候选的对应索引。与merge索引信令类似,使用一元截断来编码最佳运动矢量候选的索引。在这种情况下要编码的最大值是2(参见图8)。在以下的节中,提供了关于运动矢量预测候选的推导过程的细节。1.2.1构建运动矢量预测候选的示例图8总结了用于运动矢量预测候选的推导过程,并且可以针对具有refidx作为输入的每个参考图片列表来实现。在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。如图2先前示出的,对于空域运动矢量候选推导,最终基于位于五个不同位置的每个pu的运动矢量来导出两个运动矢量候选。对于时域运动矢量候选推导,从基于两个不同的共位位置导出的两个候选中选择一个运动矢量候选。在制作空域-时域候选的第一列表之后,移除列表中的重复的运动矢量候选。如果潜在候选的数量大于2,则从列表中移除其在相关联的参考图片列表内的参考图片索引大于1的运动矢量候选。如果空域-时域运动矢量候选的数量小于2,则将附加的零运动矢量候选添加到列表中。1.2.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的参考图片列表和索引被给定为作为输入;实际缩放过程与时域缩放过程相同。1.2.3构建时域运动矢量候选除了参考图片索引推导之外,用于时域merge候选的推导的所有过程与用于空域运动矢量候选的推导的过程相同(如图6中的示例所示)。在一些实施例中,将参考图片索引信令通知给解码器。2.在联合探索模型(jem)中的帧间预测方法的示例在一些实施例中,使用称为联合探索模型(jem)的参考软件来探索未来的视频编码技术。在jem中,在数个编码工具中采用基于子块的预测,诸如仿射预测、可选时域运动矢量预测(atmvp)、空域-时域运动矢量预测(stmvp)、双向光流(bio)、帧速率上转换(fruc)、局部自适应运动矢量分辨率(lamvr)、重叠块的运动补偿(obmc)、局部亮度补偿(lic)和解码器侧运动矢量细化(dmvr)。2.1基于子cu的运动矢量预测的示例在具有四叉树加二叉树(qtbt)的jem中,每个cu可以具有针对每个预测方向的至多一个运动参数的集合。在一些实施例中,通过将大cu划分为子cu并且导出大cu的所有子cu的运动信息,在编码器中考虑两个子cu级别运动矢量预测方法。可选时域运动矢量预测(atmvp)方法允许每个cu从比共位参考图片中的当前cu小的多个块中获取运动信息的多个集合。在空域-时域运动矢量预测(stmvp)方法中,通过使用时域运动矢量预测和空域相邻运动矢量来递归地导出子cu的运动矢量。在一些实施例中,并且为了保留用于子cu运动预测的更准确的运动场,可以禁用参考帧的运动压缩。2.1.1可选时域运动矢量预测(atmvp)的示例在atmvp方法中,通过从小于当前cu的块中取回运动信息(包括运动矢量和参考索引)的多个集合来修改时域运动矢量预测(tmvp)方法。图10示出了cu1000的atmvp运动预测过程的示例。atmvp方法以两个步骤预测cu1000内的子cu1001的运动矢量。第一步骤是使用时域矢量识别参考图片1050中的对应块1051。参考图片1050也称为运动源图片。第二步骤是将当前cu1000划分为子cu1001,并从对应于每个子cu的块中获得运动矢量以及每个子cu的参考索引。在第一步骤中,参考图片1050和对应块由当前cu1000的空域相邻块的运动信息确定。为了避免相邻块的重复扫描过程,使用当前cu1000的merge候选列表中的第一merge候选。第一可用运动矢量及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,与tmvp相比,可以更准确地识别对应块,其中对应块(有时称为共位块)总是相对于当前cu处于右下或中心位置。在第二步骤中,通过向当前cu的坐标添加时域矢量,由运动源图片1050中的时域矢量识别子cu1051的对应块。对于每个子cu,其对应块的运动信息(例如,覆盖中心样本的最小运动网格)用于导出子cu的运动信息。在识别出对应的n×n块的运动信息之后,以与hevc的tmvp相同的方式将其转换为当前子cu的运动矢量和参考索引,在该方式中应用运动缩放和其它过程。例如,解码器校验是否满足低延迟条件(例如,当前图片的所有参考图片的poc小于当前图片的poc)并且可能使用运动矢量mvx(例如,对应于参考图片列表x的运动矢量)用于预测每个子cu的运动矢量mvy(例如,其中x等于0或1并且y等于1-x)。2.1.2空域-时域运动矢量预测(stmvp)的示例在stmvp方法中,按照光栅扫描顺序递归地导出子cu的运动矢量。图11示出了具有四个子块和相邻块的一个cu的示例。考虑包括四个4×4子cua(1101)、b(1102)、c(1103)和d(1104)的8×8cu1100。当前帧中的相邻4×4块标记为(1111)、b(1112)、c(1113)和d(1114)。子cua的运动推导通过识别其两个空域邻域(neighbor)开始。第一邻域是子cua1101上方的n×n块(块c1113)。如果该块c(1113)不可用或者是帧内编码,则校验(从左到右,从块c1113开始)子cua(1101)上方的其它n×n块。第二邻域是子cua1101左侧的块(块b1112)。如果块b(1112)不可用或者是帧内编码,则校验子cua1101左侧的其它块(从上到下,从块b1112开始)。对每个列表从相邻块获得的运动信息被缩放到给定列表的第一参考帧。接下来,通过遵循与hevc中指定的tmvp推导相同的过程来导出子块a1101的时域运动矢量预测(tmvp)。在块d1104处的共位块的运动信息被相应地取回和缩放。最后,在提取和缩放运动信息之后,对每个参考列表分开平均所有可用运动矢量。平均运动矢量被指定为当前子cu的运动矢量。2.1.3子cu运动预测模式信令通知的示例在一些实施例中,子cu模式被启用作为附加的merge候选,并且不需要附加的语法元素来信令通知模式。添加两个附加的merge候选以合并每个cu的候选列表以表示atmvp模式和stmvp模式。在其它实施例中,如果序列参数集指示启用了atmvp和stmvp,则可以使用多达七个merge候选。附加merge候选的编码逻辑与hm中的merge候选的编码逻辑相同,这意味着,对于p或b条带中的每个cu,两个附加merge候选可能需要再进行两次rd校验。在一些实施例中,例如jem,merge索引的所有二进制位由cabac(基于上下文的自适应二进制算术编码)进行上下文编码。在其它实施例中,例如,hevc,仅对第一个二进制数(bin)进行上下文编码,并且对剩余的二进制数进行上下文旁路编码。2.2自适应运动矢量差异分辨率的示例在一些实施例中,当条带报头中的use_integer_mv_flag等于0时,以四分之一亮度样本为单位,信令通知(pu的运动矢量与预测的运动矢量之间的)运动矢量差异(mvd)。在jem中,引入了局部自适应运动矢量分辨率(lamvr)。在jem中,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成本并将rd成本表示为rdcost0,然后测试整数mv并将rd成本表示为rdcost1。如果rdcost1<th*rdcost0(其中th是正值阈值),则测试4像素mv;否则,跳过4像素mv。基本上,当校验整数或4像素mv时,已知1/4像素mv的运动信息和rd成本等,其可以重复使用来加速整数或4像素mv的编码过程。2.3较高的运动矢量存储精度的示例在hevc中,运动矢量精度是四分之一像素(pel)(用于4:2:0视频的四分之一亮度样本和八分之一色度样本)。在jem中,内部运动矢量存储和merge候选的精度增加到1/16像素。较高的运动矢量精度(1/16像素)用于以跳过模式/merge模式编码的cu的运动补偿帧间预测。对于使用正常amvp模式编码的cu,使用整数像素或四分之一像素运动。具有与hevc运动补偿插值滤波器相同的滤波器长度和归一化因子的shvc上采样插值滤波器,被用作附加分数像素位置的运动补偿插值滤波器。在jem中色度分量运动矢量精度是1/32样本,通过使用两个相邻1/16像素分数位置的滤波器的平均值,来导出1/32像素分数位置的附加插值滤波器。2.4重叠块的运动补偿(obmc)的示例在jem中,obmc可以在cu级别使用语法元素进行开关。当jem中使用obmc时,对除去cu的右侧边界和底部边界的所有运动补偿(mc)块边界执行obmc。此外,它应用于亮度和色度分量。jem中,mc块对应于编码块。当使用子cu模式(包括子cumerge、仿射以及fruc模式)对cu进行编码时,cu的每个子块是mc块。为了统一处理cu的边界,在子块的尺寸设置为4x4的情况下,对所有mc块边界以子块级别执行obmc,如图13a和图13b所示。图13a示出了cu/pu边界处的子块,并且阴影子块是应用obmc的位置。类似地,图13b示出了atmvp模式中的子pu。当obmc应用于当前子块时,除了当前mv之外,四个相邻子块的矢量(如果可用且与当前运动矢量不完全相同)也会被用于导出当前子块的预测块。组合这些基于多个运动矢量的多个预测块以生成当前子块的最终预测信号。基于相邻子块的运动矢量的预测块被表示为pn,其中n指示相邻上方、下方、左侧和右侧的子块的索引,并且基于当前子块的运动矢量的预测块被表示为pc。当pn基于相邻子块的运动信息且该运动信息与当前子块的运动信息相同时,不从pn执行obmc。否则,将pn的每个样本添加到pc中的相同样本中,即将四行/列pn添加到pc。加权因子{1/4,1/8,1/16,1/32}用于pn,并且加权因子{3/4,7/8,15/16,31/32}用于pc。例外是对于小mc块(即,当编码块的高度或宽度等于4或cu使用子cu模式编码时)仅将pn的两行/列添加到pc。在这种情况下,加权因子{1/4,1/8}用于pn,并且加权因子{3/4,7/8}用于pc。对于基于垂直(水平)相邻子块的运动矢量生成的pn,将pn的相同行(列)中的样本添加到具有相同加权因子的pc。在jem中,对于尺寸小于或等于256个亮度样本的cu,信令通知cu级别标志以指示是否对当前cu应用obmc。对于尺寸大于256个亮度样本或未使用amvp模式编码的cu,默认情况下应用obmc。在编码器处,当obmc应用于cu时,在运动估计阶段期间考虑其影响。由obmc使用顶部相邻块和左相邻块的运动信息形成的预测信号用于补偿当前cu的原始信号的顶部边界和左侧边界,并且然后应用正常运动估计过程。2.5局部亮度补偿(lic)的示例lic基于用于亮度变化的线性模型,使用缩放因子a和偏移b。并且,针对每个帧间模式编码的编码单元(cu)自适应地启用或禁用lic。当lic应用于cu时,采用最小平方误差方法,通过使用当前cu的相邻样本及其对应的参考样本来导出参数a和b。图14示出了用于导出ic算法的参数的相邻样本的示例。具体地,并且如图14所示,使用了该cu的子采样(2:1子采样)的相邻样本和参考图片中的对应样本(其由当前cu或子cu的运动信息识别)。ic参数被导出并被分别应用于每个预测方向。当使用merge模式对cu进行编码时,以类似于merge模式中的运动信息复制的方式从相邻块复制lic标志;否则,向该cu信令通知lic标志以指示lic是否适用。当对图片启用lic时,需要附加的cu级别rd校验以确定是否对cu应用lic。当对cu启用lic时,分别对整数像素运动搜索和分数像素运动搜索,使用均值移除的绝对差和(mean-removedsumofabsolutediffefference,mr-sad)以及均值移除的绝对哈达玛变换差和(mean-removedsumofabsolutehadamard-transformeddifference,mr-satd),而不是sad和satd。为了降低编码复杂度,在jem中应用以下编码方案。当当前图片与其参考图片之间不存在明显的亮度变化时,对整个图片禁用lic。为了识别这种情况,在编码器处,计算当前图片与该当前图片的每个参考图片的直方图。如果当前图片与该当前图片的每个参考图片之间的直方图差异小于给定阈值,则对当前图片禁用lic;否则,对当前图片启用lic。2.6仿射运动补偿预测的示例在hevc中,仅将平移运动模型应用于运动补偿预测(mcp)。然而,相机和对象可以具有多种运动,例如放大/缩小、旋转、透视运动和其它不规则的运动。在另一方面,jem应用简化的仿射变换运动补偿预测。图15示出了由两个控制点运动矢量v0和v1描述的块1400的仿射运动场的示例。块1400的运动矢量场(mvf)可以由以下等式描述:如图15所示,(v0x,v0y)是左顶角控制点的运动矢量,并且(v1x,v1y)是右顶角控制点的运动矢量。为了简化运动补偿预测,可以应用基于子块的仿射变换预测。子块尺寸m×n如下导出:其中mvpre是运动矢量分数精度(例如,在jem中为1/16)。(v2x,v2y)是左下控制点的运动矢量,根据等式(1)计算。如果需要,可以向下调整m和n,以使其分别为w和h的除数。图16示出了块1500的每个子块的仿射mvf的示例。为了导出每个m×n子块的运动矢量,可以根据等式(1)计算每个子块的中心样本的运动矢量,并将其取整到运动矢量分数精度(例如,在jem中为1/16)。然后,可以应用运动补偿插值滤波器,以利用导出的运动矢量生成每个子块的预测。在mcp之后,每个子块的高精度运动矢量以与正常运动矢量相同的精度被取整并保存。2.6.1af_inter模式的实施例在jem中,存在两种仿射运动模式:af_inter模式和af_merge模式。对于宽度和高度均大于8的cu,可以应用af_inter模式。在比特流中信令通知cu级别中的仿射标志,以指示是否使用af_inter模式。在af_inter模式中,使用相邻块构建具有运动矢量对{(v0,v1)|v0={va,vb,vc},v1={vd,ve}}的候选列表。图17示出了用于在af_inter模式中的块1600的运动矢量预测(mvp)的示例。如图17所示,从子块a、b或c的运动矢量中选择v0。来自相邻块的运动矢量可以根据参考列表来缩放。运动矢量还可以根据相邻块的参考的图片顺序计数(poc)、当前cu的参考的poc和当前cu的poc之间的关系来缩放。从相邻子块d和e中选择v1的方法是类似的。如果候选列表的数量小于2,则由通过重复每个amvp候选而构建的运动矢量对来填充该列表。当候选列表大于2时,首先可以根据相邻运动矢量(例如,基于候选对中的两个运动矢量的相似性)对候选进行分类。在一些实现方式中,保留前两个候选。在一些实现方式中,使用速率失真(rd)成本校验来确定选择哪个运动矢量对候选作为当前cu的控制点运动矢量预测(cpmvp)。可以在比特流中信令通知指示候选列表中的cpmvp的位置的索引。在确定当前仿射cu的cpmvp之后,应用仿射运动估计,并找到控制点运动矢量(cpmv)。然后在比特流中信令通知cpmv与cpmvp的差异。在af_inter模式中,当使用4/6参数仿射模式时,需要2/3控制点,并且因此需要为这些控制点编码2/3mvd,如图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.6.2af_inter模式中的快速仿射me算法的示例在仿射模式的一些实施例中,需要联合确定2个或3个控制点的mv。直接联合搜索多个mv在计算上是复杂的。在示例中,快速仿射me算法被提出并被采用到vtm/bms中。例如,针对4参数仿射模型描述快速仿射me算法,并且该想法可以扩展到6参数仿射模型:使用a’替换(a-1)使得运动矢量能够被重写为:如果假设两个控制点(0,0)和(0,w)的运动矢量是已知的,则根据等式(5),仿射参数可以被导出为:可以以矢量形式将运动矢量重写为:在本文中,p=(x,y)是像素位置,并且在一些实施例中,并且在编码器处,可以迭代地导出af_inter的mvd。将mvi(p)表示为在位置p的第i次迭代中导出的mv,并且将dmvci表示为在第i次迭代中针对mvc更新的增量。然后在第(i+1)次迭代中,将picref表示为参考图片并将piccur表示为当前图片并表示q=p+mvi(p)。如果mse用作匹配准则,则需要最小化的函数可以写为:在本文中,如果采用记号法ei+1(p)=piccur(p)-picref(q),则术语可以通过将误差函数的导数设置为零,并且然后根据计算控制点(0,0)和(0,w)的增量mv而导出,如下:在一些实施例中,该mvd推导过程可以迭代n次,并且最终mvd可以如下计算:在上述实现方式[5]中,从由mvd0表示的控制点(0,0)的增量mv预测由mvd1表示的预测控制点(0,w)的增量mv导致仅针对mvd1而被编码。2.6.3af_merge模式的实施例当在af_merge模式中应用cu时,它从有效的相邻重建块获得使用仿射模式编码的第一块。图19a示出了当前cu1800的候选块的选择顺序的示例。如图19a所示,选择顺序可以是从当前cu1800的左方(1801)、上方(1802)、右上方(1803)、左底方(1804)到左上方(1805)。图19b示出了在af_merge模式中的当前cu1800的候选块的另一示例。如图19b所示,如果相邻左下块1801以仿射模式编码,则导出包含子块1801的cu的左顶角、右上角和左底角的运动矢量v2、v3和v4。基于v2、v3和v4来计算当前cu1800的左顶角的运动矢量v0。可以相应地计算当前cu的右上方的运动矢量v1。在根据等式(1)中的仿射运动模型计算当前cuv0和v1的cpmv之后,可以生成该当前cu的mvf。为了识别当前cu是否使用af_merge模式编码,当存在至少一个相邻块以仿射模式编码时,可以在比特流中信令通知仿射标志。2.7模式匹配的运动矢量推导(pmmvd)的示例pmmvd模式是一种基于帧速率上转换(fruc)方法的特殊merge模式。使用该模式,块的运动信息不被信令通知,而是在解码器侧导出。当cu的merge标志为真时,可以向该cu信令通知fruc标志。当fruc标志为假时,可以信令通知merge索引,并使用常规merge模式。当fruc标志为真时,可以信令通知附加的fruc模式标志以指示将使用哪种方法(例如,双边匹配或模板匹配)来导出该块的运动信息。在编码器侧,关于是否对cu使用frucmerge模式的决定是基于如对正常merge候选那样所做的rd成本选择。例如,通过使用rd成本选择来校验cu的多种匹配模式(例如,双边匹配和模板匹配)。导致最小成本的匹配模式与其它cu模式进一步比较。如果fruc匹配模式是最有效的模式,则对于cu将fruc标志设置为真,并且使用有关匹配模式。通常,frucmerge模式中的运动推导过程有两个步骤。首先执行cu级别运动搜索,接下来执行子cu级别运动细化。在cu级别,基于双边匹配或模板匹配为整个cu导出初始运动矢量。首先,生成mv候选列表,并且选择导致最小匹配成本的候选作为进一步cu级别细化的起点。然后,围绕起始点执行基于双边匹配或模板匹配的局部搜索。将导致最小匹配成本的mv作为整个cu的mv。随后,运动信息在子cu级别进一步细化,其中导出的cu运动矢量作为起点。例如,针对w×hcu运动信息推导执行以下推导处理。在第一阶段,导出整体w×hcu的mv。在第二阶段,cu进一步划分为m×m子cu。如等式(22)中计算m的值,d是预定义的划分深度,其在jem中默认设置为3。然后导出每个子cu的mv。图20示出了帧速率上转换(fruc)方法中使用的双边匹配的示例。双边匹配用于通过在两个不同参考图片(1910,1911)中沿当前cu(1900)的运动轨迹找到两个块之间的最接近匹配,来导出当前cu的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量mv0(1901)和mv1(1902)与在当前图片和两个参考图片之间的时域距离——例如td0(1903)和td1(1904)——成比例。在一些实施例中,当当前图片(1900)在时域上在两个参考图片(1910,1911)之间并且从当前图片到两个参考图片的时域距离相同时,双边匹配变为基于镜像的双向mv。图21示出了帧速率上转换(fruc)方法中使用的模板匹配的示例。模板匹配可以用于通过找到在当前图片中的模板(例如,当前cu的顶部相邻块和/或左方相邻块)与参考图片2010中的块(例如,具有与模板相同的尺寸)之间的最接近匹配,来导出当前cu2000的运动信息。除了上述frucmerge模式之外,模板匹配也可以适用于amvp模式。在jem和hevc两者中,amvp有两个候选。使用模板匹配方法,可以导出新的候选。如果由模板匹配的新导出的候选与第一现有amvp候选不同,则将其插入amvp候选列表的最开始,并且然后将列表尺寸设置为2(例如,通过移除第二现有amvp候选)。当应用于amvp模式时,仅应用cu级别搜索。cu级别的mv候选集合可以包括:(1)如果当前cu处于amvp模式,则为原始amvp候选,(2)所有merge候选,(3)插值mv场(稍后描述)中的数个mv,以及顶部和左方相邻的运动矢量。当使用双边匹配时,merge候选的每个有效mv可以被用作输入,以在假设双边匹配的情况下生成mv对。例如,merge候选的一个有效mv是在参考列表a中的(mva,refa)。然后,在其它参考列表b中找到其配对双边mv的参考图片refb,使得refa和refb在时域上位于当前图片的不同侧。如果参考列表b中这样的refb不可用,则refb被确定为与refa不同的参考,并且refb到当前图片的时域距离是列表b中的最小的一个。在确定refb之后,基于当前图片与refa、refb之间的时域距离,通过缩放mva来导出mvb。在一些实现方式中,来自插值mv场的四个mv也可以被添加到cu级别候选列表。更具体地,添加当前cu的位置(0,0)、(w/2,0)、(0,h/2)和(w/2,h/2)处的插值mv。当fruc应用于amvp模式时,原始amvp候选也被添加到cu级别mv候选集合。在一些实现方式中,在cu级别,用于amvpcu的15个mv、用于mergecu的13个mv可以被添加到候选列表。子cu级别的mv候选集合包括:(1)从cu级别搜索确定的mv,(2)顶部、左方、左顶和右顶的相邻mv,(3)来自参考图片的并列mv的缩放版本,(4)一个或多个atmvp候选(例如,最多四个),以及(5)一个或多个stmvp候选(例如,最多四个)。来自参考图片的缩放mv如下导出。遍历两个列表中的参考图片。参考图片中的子cu的并列位置处的mv被缩放到起始cu级别mv的参考。atmvp和stmvp候选可以是前四个候选。在子cu级别,一个或多个mv(例如,最多十七个)被添加到候选列表中。插值mv场的生成在对帧进行编码之前,基于单边me为整个图片生成插值运动场。然后,运动场可以稍后用作cu级别或子cu级别mv候选。在一些实施例中,两个参考列表中的每个参考图片的运动场以4×4块级别遍历。图22示出了在fruc方法中的单向运动估计(me)2100的示例。对于每个4×4块,如果与块相关联的运动通过当前图片中的4×4块并且该块尚未被分配任何插值运动,则参考块的运动根据时域距离td0和td1(与hevc中的tmvp的mv缩放的方式相同的方式)缩放到当前图片,并且将缩放的运动分配给当前帧中的块。如果无缩放的mv被分配到4×4块,则在插值的运动场中将块的运动标记为不可用。插值和匹配成本当运动矢量指向分数样本位置时,需要运动补偿插值。为了降低复杂度,双边匹配和模板匹配两者可以使用双线性插值而不是常规的8抽头hevc插值。匹配成本的计算在不同的步骤略有不同。当从cu级别的候选集合中选择候选时,匹配成本可以是双边匹配或模板匹配的绝对差之和(sad)。在确定起始mv之后,如下计算子cu级别搜索的双边匹配的匹配成本c:其中w是一个加权因子。在一些实施例中,w根据经验设置为4,mv和mvs分别指示当前mv和起始mv。sad可以仍用作子cu级别搜索的模板匹配的匹配成本。在fruc模式中,仅通过使用亮度样本来导出mv。导出的运动将用于mc帧间预测的亮度和色度两者。在确定mv之后,使用用于亮度的8抽头插值滤波器和用于色度的4抽头插值滤波器来执行最终mc。mv细化是以双边匹配成本或模板匹配成本为准则的基于模式的mv搜索。在jem中,支持两种搜索模式——分别用于cu级别和子cu级别的mv细化的无限制的中心偏置菱形搜索(unrestrictedcenter-biaseddiamondsearch,ucbds)和自适应交叉搜索(adaptivecrosssearch)。对于cu级别和子cu级别mv细化,以四分之一亮度样本mv精度直接搜索mv,并且接下来以八分之一亮度样本mv细化。对于cu步骤和子cu步骤的mv细化的搜索范围被设置为等于8个亮度样本。在双边匹配merge模式中,应用双向预测,因为基于在两个不同参考图片中沿当前cu的运动轨迹的两个块之间的最接近匹配来导出cu的运动信息。在模板匹配merge模式中,编码器可以在针对cu的来自列表0的单向预测、来自列表1的单向预测或者双向预测之中进行选择。选择可以基于模板匹配成本,如下:如果costbi<=factor*min(cost0,cost1)使用双向预测;否则,如果cost0<=cost1使用来自列表0的单向预测;否则,使用来自列表1的单向预测;其中cost0是列表0模板匹配的sad,cost1是列表1模板匹配的sad,并且costbi是双向预测模板匹配的sad。例如,当factor的值等于1.25时,这意味着选择过程偏向于双向预测。帧间预测方向选择可以应用于cu级别模板匹配过程。2.8双向光流(bio)的示例双向光流(bio)方法是在用于双向预测的逐块运动补偿之上执行的逐样本运动细化。在一些实现方式中,样本级别运动细化不使用信令通知。让i(k)是在块运动补偿之后的参考k(k=0,1)的亮度值,并且将分别表示为i(k)梯度的水平分量和垂直分量。假设光流有效,则运动矢量场(vx,vy)由以下等式给定。将此光流等式与用于每个样本的运动轨迹的埃尔米特(hermite)插值组合,其结果是在末端匹配函数值i(k)和导数的唯一的三阶多项式。在t=0时此多项式的值是bio预测:图23示出了双向光流(bio)方法中的光流轨迹的示例。其中,τ0和τ1表示到参考帧的距离。距离τ0和τ1基于ref0和ref1的poc来计算:τ0=poc(当前)-poc(ref0),τ1=poc(ref1)-poc(当前)。如果两个预测都来自相同的时域方向(既可以是来自过去的,也可以是来自未来的),则符号是不同的(例如,τ0·τ1<0)。在这种情况下,如果预测不是来自相同的时刻(例如,τ0≠τ1),则应用bio。两个参考区域都具有非零运动(例如,mvx0,mvy0,mvx1,mvy1≠0)并且块运动矢量与时域距离(例如,mvx0/mvx1=mvy0/mvy1=-τ0/τ1)成比例。通过最小化点a和点b中的值之间的差异δ来确定运动矢量场(vx,vy)。图23示出了运动轨迹和参考帧平面的交点的示例。模型仅使用对于δ的局部泰勒展开的第一线性项:上述等式中的所有值都取决于表示为(i′,j′)的样本位置。假设运动在局部周围区域是一致的,可以在以当前预测点(i,j)为中心的(2m+1)×(2m+1)方形窗口ω内最小化δ,其中m等于2:对于此优化问题,jem使用简化方法,首先在垂直方向上进行最小化,并且然后在水平方向上进行最小化。这导致其中,为了避免除以零或非常小的值,在等式(28)和等式(29)中引入正则化参数r和m。r=500·4d-8(31)m=700·4d-8(32)其中d是视频样本的位深度。为了保持bio的存储器访问与常规双向预测运动补偿相同,针对当前块内的位置计算所有预测和梯度值i(k)、图24a示出了块2300外部的访问位置的示例。如图24a所示,在等式(28)中,以预测块的边界上的当前预测点为中心的(2m+1)×(2m+1)方形窗口ω需要访问块外的位置。在jem中,块外的i(k)、的值被设置为等于块内最近的可用值。例如,这可以实现为填充区域2301,如图24b所示。使用bio,可以针对每个样品来细化运动场是可能的。为了降低计算复杂度,可以在jem中使用基于块的bio设计。可以基于4×4块来计算运动细化。在基于块的bio中,可以聚合4×4块中的所有样本在等式(28)中的sn值,并且然后将聚合的sn值用于4×4块的导出的bio运动矢量偏移。更具体地,以下公式可以用于基于块的bio推导:其中bk表示属于预测块的第k个4×4块的样品的集合。由((sn,bk)>>4)替换等式(28)和等式(29)中的sn以导出相关联的运动矢量偏移。在一些情况下,bio的mv团(regiment)可能由于噪声或不规则运动而不可靠。因此,在bio中,mv团的量级被修剪为阈值。基于当前图片的参考图片是否都来自一个方向来确定阈值。例如,如果当前图片的所有参考图片都来自一个方向,则阈值被设置为12×214-d;否则,它被设置为12×213-d。可以同时计算bio的梯度与运动补偿插值,该运动补偿插值使用与hevc运动补偿过程一致的操作(例如,2d可分离有限脉冲响应(fir))。在一些实施例中,2d可分离fir的输入是与根据块运动矢量的分数部分的分数位置(fracx,fracy)和运动补偿过程相同的参考帧样本。对于水平梯度首先对应于具有去缩放偏移d-8的分数位置fracy,使用biofilters对信号进行垂直地插值。然后对应于具有去缩放偏移18-d的分数位置fracx,在水平方向上应用梯度滤波器biofilterg。对于垂直梯度首先对应于具有去缩放偏移d-8的分数位置fracy,使用biofilterg垂直应用梯度滤波器。然后对应于具有去缩放偏移18-d的分数位置fracx,在水平方向上使用biofilters来执行信号位移。用于梯度计算biofilterg和信号位移biofilterf的插值滤波器的长度可以较短(例如,6抽头)以维持合理的复杂度。表格1示出了可以用于bio中块运动矢量的不同分数位置的梯度计算的示例滤波器。表格2示出了可以用于bio中预测信号生成的示例插值滤波器。表格1bio中梯度计算的示例性滤波器分数像素位置梯度插值滤波器(biofilterg)0{8,-39,-3,46,-17,5}1/16{8,-32,-13,50,-18,5}1/8{7,-27,-20,54,-19,5}3/16{6,-21,-29,57,-18,5}1/4{4,-17,-36,60,-15,4}5/16{3,-9,-44,61,-15,4}3/8{1,-4,-48,61,-13,3}7/16{0,1,-54,60,-9,2}1/2{-1,4,-57,57,-4,1}表格2bio中预测信号生成的示例性插值滤波器分数像素位置预测信号的插值滤波器(biofilters)0{0,0,64,0,0,0}1/16{1,-3,64,4,-2,0}1/8{1,-6,62,9,-3,1}3/16{2,-8,60,14,-5,1}1/4{2,-9,57,19,-7,2}5/16{3,-10,53,24,-8,2}3/8{3,-11,50,29,-9,2}7/16{3,-11,44,35,-10,3}1/2{3,-10,35,44,-11,3}在jem中,当两个预测来自不同的参考图片时,bio可以应用于所有双向预测的块。当对cu启用局部亮度补偿(lic)时,可以禁用bio。在一些实施例中,在普通mc过程之后,对块应用obmc。为了降低计算复杂度,在obmc过程期间不可以应用bio。这意味着当使用其自己的mv时bio应用于块的mc过程,当在obmc过程中使用相邻块的mv时bio不应用于mc过程。2.9解码器侧运动矢量细化(dmvr)的示例在双向预测操作中,为了预测一个块区域,分别使用列表0的运动矢量(mv)和列表1的mv形成的两个预测块被组合以形成单个预测信号。在解码器侧运动矢量细化(dmvr)方法中,双向预测的两个运动矢量通过双边模板匹配过程进一步细化。双边模板匹配应用于解码器中,以在双边模板和参考图片中的重建样本之间执行基于失真的搜索,以便在不传输附加的运动信息的情况下获得细化的mv。如图25所示,在dmvr中,双边模板分别从列表0的初始mv0和列表1的mv1生成为两个预测块的加权组合(即平均)。模板匹配操作包括计算生成的模板与参考图片中的样本区域(在初始预测块周围)之间的成本度量。对于两个参考图片中的每一个,产生最小模板成本的mv被视为该列表的更新mv以替换原始模板。在jem中,对于每个列表,搜索九个mv候选。该九个mv候选包括原始mv和8个周围mv,该周围的mv具有相对于原始mv的在水平方向上或垂直方向上或两者上的一个亮度样本的偏移。最后,如图25所示,两个新的mv,即mv0'和mv1',被用于生成最终的双向预测结果。绝对差之和(sad)用作成本度量。dmvr被应用于双向预测的merge模式,在不传输附加的语法元素的情况下使用来自过去的参考图片中的一个mv和来自将来的参考图片中的另一个mv。在jem中,当为cu启用lic、仿射运动、fruc或子cumerge候选时,不应用dmvr。2.10对称运动矢量差异的示例提出对称运动向量差异(smvd)以将mvd更有效地编码。首先,在条带级别中,变量bidirpredflag、refidxsyml0和refidxsyml1如下导出:搜索参考图片列表0中最接近当前图片的前向参考图片。如果找到,则将refidxsyml0设置为等于前向图片的参考索引。搜索参考图片列表1中最接近当前图片的后向参考图片。如果找到,则将refidxsyml1设置为等于后向图片的参考索引。如果前向和后向图片两者均被找到,则将bidirpredflag设置为等于1。否则,以下适用:搜索参考图片列表0中最接近当前参考图片的后向参考图片。如果找到,则将refidxsyml0设置为等于后向图片的参考索引。搜索参考图片列表1中最接近当前参考图片的前向参考图片。如果找到,则将refidxsyml1设置为等于前向图片的参考索引。如果前向和后向图片两者均被找到,则将bidirpredflag设置为等于1。否则,将bidirpredflag设置为等于0。其次,在cu级别,如果cu的预测方向是双向预测并且bidirpredflag等于1,则明确地信令通知对称模式标志,该对称模式标志指示是否使用对称模式。当该标志为真时,仅明确地信令通知mvp_l0_flag、mvp_l1_flag和mvd0。对于列表0和列表1,将参考索引分别设置为等于refidxsyml0、refidxsyml1。将mvd1设置为等于-mvd0。最终的运动矢量如下式所示。图28示出了对称模式的示例。编码单元语法的修改在表格3中示出。表格3:在编码单元语法的修改2.10.1仿射双向预测编码的对称mvd提议了仿射模式的smvd,将对称mvd模式扩展到了仿射双向预测。当对仿射双向预测编码应用对称mvd模式时,控制点的mvd不是信令发送,而是推导的。基于线性运动的假设,从list0中推导出list1的左上控制点的mvd。list0的其他控制点的mvd设置为02.11基于上下文的自适应二进制算术编码(cabac)2.11.1hevc中的cabac设计2.11.1.1hevc中的上下文表示和初始化过程在hevc中,对于每个上下文变量,初始化两个变量pstateidx和valmps。从8比特表格条目initvalue,两个4比特变量slopeidx和offsetidx如下导出:在上下文变量的初始化中使用的变量m和n从slopeidx和offsetidx如下导出:分配给pstateidx和valmps用于初始化的两个值从由sliceqpy表示的条带的亮度的量化参数导出。给定变量m和n,初始化指定如下:2.11.1.2hevc中的状态转变过程该过程的输入是与ctxtable和ctxidx相关联的上下文变量的当前pstateidx、解码值binval和valmps值。该过程的输出是与ctxidx相关联的上下文变量的更新pstateidx和更新valmps。取决于解码值binval,与ctxidx相关联的两个变量pstateidx和valmps的更新如在(37)中导出:2.11.2vvc中的cabac设计vvc中的基于上下文的自适应二进制算术编码器(bac)已经在vvc中改变,其在上下文更新过程和算术编码器方面与hevc中的不同。以下是最近采用的提议(jvet-m0473,ce测试5.1.13)的概述。表格4:vvc中cabac修改的概述2.11.2.1vvc中的上下文初始化过程在vvc中,分配给pstateidx0和pstateidx1用于初始化的两个值从sliceqpy导出。给定变量m和n,初始化指定如下:2.11.2.2vvc中的状态转变过程该过程的输入是当前pstateidx0和当前pstateidx1以及解码值binval。该过程的输出是与的ctxidx相关联的上下文变量的更新pstateidx0和更新pstateidx1。变量shift0(对应于vvc表格4中的cabac修改的概述中的变量a)和shift1(对应于vvc表格4中的cabac修改的概述中的变量b)是从与ctxtable和ctxinc相关联的shiftidx值导出的。取决于解码值binval,与ctxidx相关联的两个变量pstateidx0和pstateidx1的更新如下导出:3.现有实现方式的缺点在一些现有的实现方式中,当可以从用于仿射编码块的多个mv/mvd精度的集合中选择mv/mv差异(mvd)时,仍然无法确定如何获得更准确的运动矢量。在其它现有的实现方式中,mv/mvd精度信息在确定应用于仿射模式的amvr的整体编码增益方面也起着重要作用,但实现该目标仍然无法确定。4.具有amvr的仿射模式的mv预测(mvp)的示例方法当前公开的技术的实施例克服了现有实现方式的缺点,从而提供具有更高编码效率的视频编码。基于所公开的技术,用于具有自适应运动矢量分辨率(amvr)的仿射模式的运动矢量预测的推导和信令可以增强现有和未来的视频编码标准,在以下针对各种实现方式所描述的示例中阐明。以下提供的所公开技术的示例解释了一般概念,并不意味着被解释为限制性的。在示例中,除非明确地相反指示,否则可以组合这些示例中描述的各种特征。在一些实施例中,当应用amvr时,以下示例可以应用于仿射模式或正常模式。这些示例假设精度prec(即,mv具有1/(2^prec)精度)用于在af_inter模式中编码mvd或用于在正常帧间模式中编码mvd。运动矢量预测(例如,从相邻块mv继承)及其精度分别由mvpred(mvpredx,mvpredy)和predprec表示。支持amvr的仿射模式的改进1.允许的mvd精度的集合可能随图片而不同、随条带而不同或随块而不同。a.在一个示例中,该允许的mvd精度的集合可以取决于编码信息,例如块尺寸、块形状等。b.可以预定义允许的mv精度的集合,诸如{1/16,1/4,1}。c.可以在sps/pps/vps/序列报头/图片报头/条带报头/ctu组等中信令通知允许的mv精度的指示。d.来自允许的mv精度的集合的所选mv精度的信令进一步取决于块的允许mv精度的数量。2.向解码器信令通知语法元素以指示仿射帧间模式中使用的mvd精度。a.在一个示例中,仅使用一个单个语法元素来指示应用于仿射模式和amvr模式的mvd精度。i.在一个示例中,使用相同的语义,即,对于amvr和仿射模式,将语法元素的相同值映射到相同mvd精度。ii.替代地,单个语法元素的语义对于amvr模式和仿射模式是不同的。换言之,对于amvr和仿射模式,可以将语法元素的相同值映射到不同mvd精度。b.在一个示例中,当仿射模式使用与amvr相同的mvd精度的集合(例如,mvd精度设置为{1,1/4,4}像素)时,在仿射模式中重用amvr中的mvd精度语法元素,即,仅使用一个单个语法元素。i.替代地,此外,当在cabac编码器/解码器中对该语法元素进行编码/解码时,相同或不同的上下文模型可以用于amvr和仿射模式。ii.替代地,此外,该语法元素在amvr和仿射模式中可以具有不同的语义。例如,等于0、1和2的语法元素在amvr中分别指示1/4像素、1像素和4像素mv精度,而在仿射模式中,等于0、1和2的语法元素分别指示1/4像素、1/16像素和1像素mv精度。c.在一个示例中,当仿射模式使用与amvr相同的数目的mvd精度但是不同的mvd精度的集合(例如,对于amvr的mvd精度设置为{1,1/4,4}像素,而对于仿射的mvd精度设置为{1/16,1/4,1}像素)时,在仿射模式中重用amvr中的mvd精度语法元素,即,仅使用一个单个语法元素。i.替代地,此外,当在cabac编码器/解码器中对该语法元素进行编码/解码时,相同或不同的上下文模型可以用于amvr和仿射模式。ii.替代地,此外,该语法元素在amvr和仿射模式中可以具有不同的语义。d.在一个示例中,仿射模式使用比amvr更少的mvd精度,在仿射模式中重用amvr中的mvd精度语法元素。然而,仅语法元素值的子集对仿射模式有效。i.替代地,此外,当在cabac编码器/解码器中对该语法元素进行编码/解码时,相同或不同的上下文模型可以用于amvr和仿射模式。ii.替代地,此外,该语法元素在amvr和仿射模式中可以具有不同的语义。e.在一个示例中,仿射模式使用比amvr更多的mvd精度,在仿射模式中重用amvr中的mvd精度语法元素。然而,扩展这样的语法元素以允许仿射模式中的更多值。i.替代地,此外,当在cabac编码器/解码器中对该语法元素进行编码/解码时,相同或不同的上下文模型可以用于amvr和仿射模式。ii.替代地,此外,该语法元素在amvr和仿射模式中可以具有不同的语义。f.在一个示例中,新语法元素用于编码仿射模式的mvd精度,即,两个不同的语法元素用于编码amvr和仿射模式的mvd精度。g.用于指示仿射模式的mvd精度的语法可以在以下一个或所有条件下信令通知:i.所有控制点的mvd均非零。ii.至少一个控制点的mvd非零。iii.一个控制点(例如,第一cpmv)的mvd非零在这种情况下,当上述条件中的任何一个或它们所有都失败时,不需要信令通知mvd精度。h.用于指示仿射模式或amvr模式的mvd精度的语法元素可以使用上下文编码,并且上下文取决于编码信息。i.在一个示例中,当仅存在一个单个语法元素时,上下文可以取决于当前块是否使用仿射模式编码。i.在一个示例中,上下文可以取决于块尺寸/块形状/相邻块的mvd精度/时域层索引/预测方向等。j.可以在sps/pps/vps/序列报头/图片报头/条带报头/ctu组等中信令通知是否启用或禁用仿射模式的多个mvd精度的使用。i.在一个示例中,是否信令通知启用或禁用仿射模式的多个mvd精度的使用的信息可以取决于其它语法元素。例如,当启用仿射模式时,信令通知启用或禁用仿射模式的多个mv和/或mvp和/或mvd精度的使用的信息;当禁用仿射模式时,不信令通知启用或禁用仿射模式的多个mv和/或mvp和/或mvd精度的使用的信息并将其推断为0。k.替代地,可以信令通知多个语法元素以指示在仿射帧间模式中使用的mv和/或mvp和/或mvd精度(在下面的讨论中,它们都被称为“mvd精度”)。i.在一个示例中,用于指示在仿射帧间模式和正常帧间模式中使用的mvd精度的语法元素可以是不同的。1.指示在仿射帧间模式和正常帧间模式中使用的mvd精度的语法元素的数目可以是不同的。2.指示在仿射帧间模式和正常帧间模式中使用的mvd精度的语法元素的语义可以是不同的。3.在算术编码中用于编码一个语法元素以指示在仿射帧间模式和正常帧间模式中使用的mvd精度的上下文模型可以是不同的。4.在算术编码中导出上下文模型以编码一个语法元素以指示在仿射帧间模式和正常帧间模式中使用的mvd精度的方法可以是不同的。ii.在一个实例中,可以信令通知第一语法元素(例如,amvr_flag)以指示是否在仿射编码块中应用amvr。1.有条件地信令通知第一语法元素。a.在一个示例中,当使用某一模式(例如,cpr/ibc模式)编码当前块时,跳过第一语法元素(amvr_flag)的信令通知。b.在一个示例中,当所有cpmv的mvd(包括水平和垂直分量)都为零时,跳过第一语法元素(amvr_flag)的信令通知。c.在一个示例中,当一个所选择的cpmv的mvd(包括水平和垂直分量)都为零时,跳过第一语法元素(amvr_flag)的信令通知。i.在一个示例中,所选择的cpmv的mvd是要被编码/解码的第一cpmv的mvd。d.在一个示例中,当启用仿射编码块的多个mvd精度的使用为假时,跳过第一语法元素(amvr_flag)的信令通知。e.在一个示例中,可以在以下条件下信令通知第一语法元素:i.启用仿射编码块的多个mvd精度的使用为真,并且当前块使用仿射模式编码;ii.替代地,启用仿射编码块的多个mvd精度的使用为真,当前块使用仿射模式编码,并且cpmv的mvd的至少一个分量不等于0。iii.替代地,启用仿射编码块的多个mvd精度的使用为真,当前块使用仿射模式编码,并且所选择的cpmv的mvd的至少一个分量不等于0。1.在一个示例中,所选择的cpmv的mvd是要被编码/解码的第一cpmv的mvd。2.当amvr未应用于仿射编码块或者不存在第一语法元素时,采用默认mv和/或mvd精度。a.在一个示例中,默认精度是1/4像素(1/4-pel)。b.替代地,默认精度设置为仿射编码块的运动补偿中使用的精度。3.例如,如果amvr_flag等于0,则仿射模式的mvd精度为1/4像素;否则仿射模式的mvd精度可以是其它值。a.替代地,此外,可以经由第二语法元素进一步信令通知附加mvd精度。iii.在一个实例中,可以信令通知第二语法元素(例如amvr_coarse_precision_flag)以指示仿射模式的mvd精度。1.在一个示例中,是否信令通知第二语法元素可以取决于第一语法元素。例如,仅当第一语法元素是1时信令通知第二语法元素。2.在一个示例中,如果第二语法元素是0,则仿射模式的mvd精度是1像素;否则,仿射模式的mvd精度是1/16像素。3.在一个示例中,如果第二语法元素是0,则仿射模式的mvd精度是1/16像素;否则,仿射模式的mvd精度为全像素。iv.在一个示例中,用于指示在仿射帧间模式中使用的mvd精度的语法元素与具有相同名称但用于指示在正常帧间模式中使用的mvd精度的语法元素共享相同的上下文模型。1.替代地,用于指示在仿射帧间模式中使用的mvd精度的语法元素与具有相同名称但用于指示在正常帧间模式中使用的mvd精度的语法元素使用不同的上下文模型。3.在仿射编码块上是否应用或如何应用amvr可以取决于当前块的参考图片。i.在一个示例中,如果参考图片是当前图片,则不应用amvr,即,在当前块中应用帧内块复制。编码器仿射模式中的avmr的快速算法将仿射模式和amvp模式的rd成本(实际rd成本,或satd/sse/sad成本加粗比特成本)表示为imv=i的affinecosti和amvpcosti,其中i=0,1或2。在本文中,imv=0意味着1/4像素mv,并且imv=1意味着amvp模式的整数mv和仿射模式的1/16像素mv,并且imv=2意味着amvp模式的4像素mv和仿射模式的整数mv。将merge模式的rd成本表示为mergecost。4.如果其父代cu的最佳模式不是af_inter模式或af_merge模式,则提议对当前cu的仿射模式禁用amvr。a.替代地,如果其父代cu的最佳模式不是af_inter模式,则对当前cu的仿射模式禁用amvr。5.如果affinecost0>th1*amvpcost0,其中th1是正阈值,则提议对仿射模式禁用amvr。a.替代地,另外,如果min(affinecost0,amvpcost0)>th2*mergecost,其中th2是正阈值,则对仿射模式禁用amvr。b.替代地,另外,如果affinecost0>th3*affinecost1,其中th3是正阈值,则对仿射模式禁用整数mv。6.如果amvpcost0>th4*affinecost0,其中th4正阈值,则建议对amvp模式禁用amvr。a.替代地,如果min(affinecost0,amvpcost0)>th5*mergecost,其中th5是正阈值,则对amvp模式禁用amvr。7.提议在一个mv精度中获得的4/6参数仿射模型可以用作其它mv精度的候选开始搜索点。a.在一个示例中,在1/16mv中获得的4/6参数仿射模型可以用作其它mv精度的候选开始搜索点。b.在一个示例中,在1/4mv中获得的4/6参数仿射模型可以用作其它mv精度的候选开搜索点。8.如果当前块的父代块未选择仿射模式,则对当前块不在编码器处校验用于仿射模式的amvr。9.可以利用先前编码的帧/条带/片/ctu行中的仿射编码块的不同mv精度的使用的统计来提前终止当前条带/片/ctu行中的仿射编码块的mv精度的速率失真计算。a.在一个示例中,记录具有某一mv精度的仿射编码块的百分比。如果百分比太低,则跳过校验对应的mv精度。b.在一个示例中,利用具有相同时域层的先前编码帧来决定是否跳过某一mv精度。10.可以在某些条件下应用上面提议的方法,诸如块尺寸、条带/图片/片类型或运动信息。a.在一个示例中,当块尺寸包含小于m*h个样本(例如,16或32或64个亮度样本)时,不允许提议的方法。b.替代地,当块的宽度或/和高度的最小尺寸小于或不大于x时,不允许提议的方法。在一个示例中,x设置为8。c.替代地,当块的宽度或/和高度的最小尺寸不小于x时,不允许提议的方法。在一个示例中,x设置为8。d.替代地,当块的宽度>th1或>=th1和/或块的高度>th2或>=th2时,不允许提议的方法。在一个示例中,th1和/或th2设置为8。e.替代地,当块的宽度<th1或<=th1和/或块的高度<th2或<=th2时,不允许提议的方法。在一个示例中,th1和/或th2设置为8。f.替代地,是否启用或禁用上述方法和/或应用哪种方法可以取决于块尺寸、视频处理数据单元(vpdu)、图片类型、低延迟校验标志、当前块的编码信息(诸如参考图片、单向或双向预测)或先前编码的块。11.当应用或不应用帧内块复制(ibc,也称为当前图片参考(cpr))时,可以以不同方式执行用于仿射模式的amvr方法。a.在一个示例中,如果块由ibc编码,则不可以使用用于仿射模式的amvr。b.在一个示例中,如果块由ibc编码,则可以使用用于仿射模式的amvr,但是候选mv/mvd/mvp精度可以与用于非ibc编码的仿射编码块的精度不同。12.文件中的所有术语“条带”可以由“片组”或“片”代替。13.在vps/sps/pps/条带报头/片组报头中,等于1的语法元素(例如,no_amvr_constraint_flag)指定对比特流一致性的要求是,指示是否启用amvr的语法元素(例如,sps_amvr_enabled_flag)和指示是否启用仿射amvr的语法元素(例如,sps_affine_avmr_enabled_flag)两者应该等于0。语法元素(例如,no_amvr_constraint_flag)等于0不施加约束。14.在vps/sps/pps/条带报头/片组报头或其它视频数据单元中,可以信令通知语法元素(例如,no_affine_amvr_constraint_flag)。a.在一个示例中,no_affine_amvr_constraint_flag等于1指定对比特流一致性的要求是,指示是否启用仿射amvr的语法元素(例如,sps_affine_avmr_enabled_flag)应当等于0。语法元素(例如,no_affine_amvr_constraint_flag)等于0不施加约束。5.实施例5.1实施例1:仿射amvr模式的使用的指示可以在sps/pps/vps/aps/序列报头/图片报头/片组报头等中信令通知该指示。本节介绍sps中的信令。5.1.1sps语法表格给定替代sps语法表格如下:语义:sps_affine_amvr_enabled_flag等于1指定在仿射帧间模式的运动矢量编码中使用自适应运动矢量差异分辨率。amvr_enabled_flag等于0指定在仿射帧间模式的运动矢量编码中不使用自适应运动矢量差异分辨率。5.2amvr模式信息的解析过程仿射amvr模式信息的语法可以将其重用于amvr模式信息(应用于正常帧间模式)。替代地,可以使用不同的语法元素。可以有条件地信令通知仿射amvr模式信息。下面的不同实施例示出了条件的一些示例。5.2.1实施例#1:cu语法表格5.2.2实施例2:替代的cu语法表格设计5.2.3实施例3:第三cu语法表格设计5.2.4实施例4:具有amvr和仿射amvr模式的不同语法的语法表格设计·在一个示例中,conditionsa定义如下:(sps_affine_amvr_enabled_flag&&inter_affine_flag==1&&(mvdcpl0[x0][y0][0][0]!=0||mvdcpl0[x0][y0][0][1]!=0||mvdcpl1[x0][y0][0][0]!=0||mvdcpl1[x0][y0][0][1]!=0||mvdcpl0[x0][y0][1][0]!=0||mvdcpl0[x0][y0][1][1]!=0||mvdcpl1[x0][y0][1][0]!=0||mvdcpl1[x0][y0][1][1]!=0||mvdcpl0[x0][y0][2][0]!=0||mvdcpl0[x0][y0][2][1]!=0||mvdcpl1[x0][y0][2][0]!=0||mvdcpl1[x0][y0][2][1]!=0))替代地,conditionsa定义如下:(sps_affine_amvr_enabled_flag&&inter_affine_flag==1&&(mvdcpl0[x0][y0][0][0]!=0||mvdcpl0[x0][y0][0][1]!=0||mvdcpl1[x0][y0][0][0]!=0||mvdcpl1[x0][y0][0][1]!=0)替代地,conditionsa定义如下:(sps_affine_amvr_enabled_flag&&inter_affine_flag==1&&(mvdcplx[x0][y0][0][0]!=0||mvdcplx[x0][y0][0][1]!=0)其中x是0或1。替代地,conditionsa定义如下:(sps_affine_amvr_enabled_flag&&inter_affine_flag==1)·在一个示例中,conditionsb定义如下:!sps_cpr_enabled_flag||!(inter_pred_idc[x0][y0]==pred_l0&&ref_idx_l0[x0][y0]==num_ref_idx_l0_active_minus1)替代地,conditionsb定义如下:!sps_cpr_enabled_flag||!(pred_mode[x0][y0]==cpr)替代地,conditionsb定义如下:!sps_ibc_enabled_flag||!(pred_mode[x0][y0]==ibc)当利用不同的语法元素来编码amvr或仿射amvr时,可以相应地应用用于5.5中的实施例的应用于仿射amvr的上下文建模和/或上下文。5.2.5语义amvr_flag[x0][y0]指定运动矢量差异的分辨率。数组索引x0、y0指定所考虑的编码块的左顶亮度样本相对于图片的左顶亮度样本的位置(x0,y0)。amvr_flag[x0][y0]等于0指定运动矢量差异的分辨率是亮度样本的1/4。amvr_flag[x0][y0]等于1指定运动矢量差异的分辨率由amvr_coarse_precisoin_flag[x0][y0]进一步指定。当amvr_flag[x0][y0]不存在时,推断如下:——如果sps_cpr_enabled_flag等于1,则推断amvr_flag[x0][y0]等于1。——否则(sps_cpr_enabled_flag等于0),则推断amvr_flag[x0][y0]等于0。amvr_coarse_precisoin_flag[x0][y0]等于1指定当inter_affine_flag等于0时运动矢量差异的分辨率是4个亮度样本,并且当inter_affine_flag等于1时运动矢量差异的分辨率是1个亮度样本。数组索引x0、y0指定所考虑的编码块的左顶亮度样本相对于图片的左顶亮度样本的位置(x0,y0)。当amvr_coarse_precisoin_flag[x0][y0]不存在时,推断其等于0。如果inter_affine_flag[x0][y0]等于0,则变量mvshift设置为等于(amvr_flag[x0][y0]+amvr_coarse_precisoin_flag[x0][y0])<<1,并且变量mvdl0[x0][y0][0]、mvdl0[x0][y0][1]、mvdl1[x0][y0][0]、mvdl1[x0][y0][1]修改如下:mvdl0[x0][y0][0]=mvdl0[x0][y0][0]<<(mvshift+2)(7-70)mvdl0[x0][y0][1]=mvdl0[x0][y0][1]<<(mvshift+2)(7-71)mvdl1[x0][y0][0]=mvdl1[x0][y0][0]<<(mvshift+2)(7-72)mvdl1[x0][y0][1]=mvdl1[x0][y0][1]<<(mvshift+2)(7-73)如果inter_affine_flag[x0][y0]等于1,变量mvshift设置为等于(amvr_coarse_precisoin_flag?(amvr_coarse_precisoin_flag<<1):(-(amvr_flag<<1))),并且变量mvdcpl0[x0][y0][0][0]、mvdcpl0[x0][y0][0][1]、mvdcpl0[x0][y0][1][0]、mvdcpl0[x0][y0][1][1]、mvdcpl0[x0][y0][2][0]、mvdcpl0[x0][y0][2][1]修改如下:mvdcpl0[x0][y0][0][0]=mvdcpl0[x0][y0][0][0]<<(mvshift+2)(7-73)mvdcpl1[x0][y0][0][1]=mvdcpl1[x0][y0][0][1]<<(mvshift+2)(7-67)mvdcpl0[x0][y0][1][0]=mvdcpl0[x0][y0][1][0]<<(mvshift+2)(7-66)mvdcpl1[x0][y0][1][1]=mvdcpl1[x0][y0][1][1]<<(mvshift+2)(7-67)mvdcpl0[x0][y0][2][0]=mvdcpl0[x0][y0][2][0]<<(mvshift+2)(7-66)mvdcpl1[x0][y0][2][1]=mvdcpl1[x0][y0][2][1]<<(mvshift+2)(7-67)替代地,如果inter_affine_flag[x0][y0]等于1,则变量mvshift设为等于(affine_amvr_coarse_precisoin_flag?(affine_amvr_coarse_precisoin_flag<<1):(-(affine_amvr_flag<<1)))。5.3运动矢量的取整过程修改取整过程,当给定的rightshift值等于0(发生于1/16像素精度)时,取整偏移设置为0而不是(1<<(rightshift-1))。例如,mv的取整过程的子条款修改如下:该过程的输入是:–运动矢量mvx,–用于取整的右移位参数rightshift,–用于分辨率增加的左移位参数leftshift。该过程的输出是取整的运动矢量mvx。对于mvx的取整,以下适用:offset=(rightshift==0)?0:(1<<(rightshift-1))(8-371)mvx[0]=(mvx[0]>=0?(mvx[0]+offset)>>rightshift:-((-mvx[0]+offset)>>rightshift))<<leftshift(8-372)mvx[1]=(mvx[1]>=0?(mvx[1]+offset)>>rightshift:-((-mvx[1]+offset)>>rightshift))<<leftshift(8-373)5.4解码过程在仿射运动矢量推导过程中调用的取整过程是使用(mvshift+2)而不是固定为2的输入来执行的。亮度仿射控制点运动矢量预测的推导过程该过程的输入是:–当前亮度编码块的左顶样本相对于当前图片的左顶亮度样本的亮度位置(xcb,ycb),–指定当前亮度编码块的宽度和高度的两个变量cbwidth和cbheight,–当前编码单元refidxlx的参考索引,其中x为0或1,–控制点运动矢量的数目numcpmv。该过程的输出是亮度仿射控制点运动矢量预测mvpcplx[cpidx],其中x为0或1,并且cpidx=0..numcpmv-1。为了推导控制点运动矢量预测候选列表、cpmvplistlx,其中x为0或1,应用以下有序步骤:列表numcpmvpcandlx中的控制点运动矢量预测候选的数目设置为等于0。变量availableflaga和availableflagb两者设置为false。……调用8.4.2.14条款中指定的运动矢量的取整过程,其中mvx设置为等于cpmvplx[cpidx]、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的cpmvplx[cpidx](其中cpidx=0..numcpmv–1)作为输出。……变量availableflaga设置为等于true调用8.4.4.5条款中指定的来自相邻块的亮度仿射控制点运动矢量的推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度和高度(cbwidth,cbheight)、相邻亮度编码块位置(xnb,ynb)、相邻亮度编码块宽度和高度(nbw,nbh)、以及控制点运动矢量的数目numcpmv作为输入,控制点运动矢量预测候选cpmvply[cpidx](其中cpidx=0..numcpmv-1)作为输出。调用8.4.2.14条款中指定的运动矢量的取整过程,其中mvx设置为等于cpmvply[cpidx]、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的cpmvply[cpidx](其中cpidx=0..numcpmv-1)作为输出。……调用8.4.4.5条款中规定的来自相邻块的亮度仿射控制点运动矢量的推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度和高度(cbwidth,cbheight)、相邻亮度编码块位置(xnb,ynb)、相邻亮度编码块宽度和高度(nbw,nbh)、以及控制点运动矢量的数目numcpmv作为输入,控制点运动矢量预测候选cpmvplx[cpidx](其中cpidx=0..numcpmv-1)作为输出。调用8.4.2.14条款中指定的运动矢量的取整过程,其中mvx设置为等于cpmvplx[cpidx]、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的cpmvplx[cpidx](其中cpidx=0..numcpmv-1)作为输出。做出以下分配:cpmvplistlx[numcpmvpcandlx][0]=cpmvplx[0](8-618)cpmvplistlx[numcpmvpcandlx][1]=cpmvplx[1](8-619)cpmvplistlx[numcpmvpcandlx][2]=cpmvplx[2](8-620)numcpmvpcandlx=numcpmvpcandlx+1(8-621)否则,如果predflagly[xnbbk][ynbbk](withy=!x)等于1且diffpicordercnt(refpiclisty[refidxly[xnbbk][ynbbk]],refpiclistx[refidxlx])等于0,则应用以下:变量availableflagb设置为true调用8.4.4.5条款中指定的来自相邻块的亮度仿射控制点运动矢量的推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度和高度(cbwidth,cbheight)、相邻亮度编码块位置(xnb,ynb)、相邻亮度编码块宽度和高度(nbw,nbh)、以及控制点运动矢量的数目numcpmv作为输入,控制点运动矢量预测候选cpmvply[cpidx](其中cpidx=0..numcpmv-1)作为输出。调用8.4.2.14条款中指定的运动矢量的取整过程,其中mvx设置为等于cpmvply[cpidx]、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的cpmvply[cpidx](其中cpidx=0..numcpmv-1)作为输出。做出以下分配:cpmvplistlx[numcpmvpcandlx][0]=cpmvply[0](8-622)cpmvplistlx[numcpmvpcandlx][1]=cpmvply[1](8-623)cpmvplistlx[numcpmvpcandlx][2]=cpmvply[2](8-624)numcpmvpcandlx=numcpmvpcandlx+1(8-625)当numcpmvpcandlx小于2时,应用以下:调用8.4.4.8条款中指定的用于构建的仿射控制点运动矢量预测候选的推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度cbwidth、亮度编码块高度cbheight、以及当前编码单元的参考索引refidxlx作为输入,并且可用性标志availableconsflaglx和cpmvplx[cpidx](其中cpidx=0..numcpmv-1)作为输出。当availableconsflaglx等于1且numcpmvpcandlx等于0时,做出以下分配:cpmvplistlx[numcpmvpcandlx][0]=cpmvplx[0](8-626)cpmvplistlx[numcpmvpcandlx][1]=cpmvplx[1](8-627)cpmvplistlx[numcpmvpcandlx][2]=cpmvplx[2](8-628)numcpmvpcandlx=numcpmvpcandlx+1(8-629)对于cpidx=0..numcpmv–1应用以下:当numcpmvpcandlx小于2且availableflaglx[cpidx]等于1时,做出以下分配:cpmvplistlx[numcpmvpcandlx][0]=cpmvplx[cpidx](8-630)cpmvplistlx[numcpmvpcandlx][1]=cpmvplx[cpidx](8-631)cpmvplistlx[numcpmvpcandlx][2]=cpmvplx[cpidx](8-632)numcpmvpcandlx=numcpmvpcandlx+1(8-633)当numcpmvpcandlx小于2,应用以下:调用8.4.2.11条款中指定的时域亮度运动矢量预测的推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度cbwidth、亮度编码块高度cbheight以及refidxlx作为输入,并且其中输出为可用性标志availableflaglxcol和时域运动矢量预测mvlxcol。当availableflaglxcol等于1时,应用以下:调用8.4.2.14条款中指定的运动矢量的取整过程,其中mvx设置为等于mvlxcol、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的mvlxcol作为输出。做出以下分配:cpmvplistlx[numcpmvpcandlx][0]=mvlxcol(8-634)cpmvplistlx[numcpmvpcandlx][1]=mvlxcol(8-635)cpmvplistlx[numcpmvpcandlx][2]=mvlxcol(8-636)numcpmvpcandlx=numcpmvpcandlx+1(8-637)当numcpmvpcandlx小于2时,重复以下步骤直到numcpmvpcandlx等于2,其中mvzero[0]和mvzero[1]两者等于0:cpmvplistlx[numcpmvpcandlx][0]=mvzero(8-638)cpmvplistlx[numcpmvpcandlx][1]=mvzero(8-639)cpmvplistlx[numcpmvpcandlx][2]=mvzero(8-640)numcpmvpcandlx=numcpmvpcandlx+1(8-641)仿射控制点运动矢量预测cpmvplx(其中x为0或1)如下导出:cpmvplx=cpmvplistlx[mvp_lx_flag[xcb][ycb]](8-642)构建的仿射控制点运动矢量预测候选的推导过程该过程的输入是:–指定相对于当前图片的左顶亮度样本的当前亮度编码块的左顶样本的亮度位置(xcb,ycb),–指定当前亮度编码块的宽度和高度的两个变量cbwidth和cbheight,–当前预测单元分区的参考索引refidxlx,其中x为0或1,该过程的输出是:–构建的仿射控制点运动矢量预测候选的可用性标志availableconsflaglx,其中x为0或1,–可用性标志availableflaglx[cpidx],其中cpidx=0..2并且x为0或1,–构建的仿射控制点运动矢量预测候选cpmvlx[cpidx],其中cpidx=0..numcpmv-1并且x为0或1。第一(左顶)控制点运动矢量cpmvlx[0]和可用性标志availableflaglx[0]在以下有序步骤中导出:分别将样本位置(xnbb2,ynbb2)、(xnbb3,ynbb3)和(xnba2,ynba2)设置为等于(xcb-1,ycb-1)、(xcb,ycb-1)和(xcb-1,ycb)。将可用性标志availableflaglx[0]设置为等于0,并且将cpmvlx[0]的两个分量都设置为等于0。对于(xnbtl,ynbtl)应用以下步骤,其中tl由b2、b3和a2替换:调用条款中指定的编码块的可用性推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度cbwidth、亮度编码块高度cbheight、亮度位置(xnby,ynby)设置为等于(xnbtl,ynbtl)作为输入,并且输出被分配给编码块可用性标志availabletl。当availabletl等于true且availableflaglx[0]等于0时,应用以下步骤:如果predflaglx[xnbtl][ynbtl]等于1,并且diffpicordercnt(refpiclistx[refidxlx[xnbtl][ynbtl]]、refpiclistx[refidxlx])等于0,并且对应于refidxlx[xnbtl][ynbtl]的参考图片不是当前图片,则将availableflaglx[0]设置为等于1并做出以下分配:cpmvlx[0]=mvlx[xnbtl][ynbtl](8-643)否则,当predflagly[xnbtl][ynbtl](withy=!x)等于1,并且diffpicordercnt(refpiclisty[refidxly[xnbtl][ynbtl]]、refpiclistx[refidxlx])等于0,并且对应于refidxly[xnbtl][ynbtl]的参考图片不是当前图片时,则将availableflaglx[0]设置为等于1并做出以下分配:cpmvlx[0]=mvly[xnbtl][ynbtl](8-644)当availableflaglx[0]等于1时,调用条款8.4.2.14中指定的运动矢量的取整过程,其中mvx设置为等于cpmvlx[0]、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的cpmvlx[0]作为输出。第二(右顶)控制点运动矢量cpmvlx[1]和可用性标志availableflaglx[1]在以下有序步骤中导出:分别将样本位置(xnbb1,ynbb1)和(xnbb0,ynbb0)设置为等于(xcb+cbwidth-1,ycb-1)和(xcb+cbwidth,ycb-1)。将可用性标志availableflaglx[1]设置为等于0,并且将cpmvlx[1]的两个分量都设置为等于0。对于(xnbtr,ynbtr)应用以下步骤,其中tr由b1和b0替换:调用条款6.4.x中指定的编码块的可用性推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度cbwidth、亮度编码块高度cbheight、亮度位置(xnby,ynby)设置为等于(xnbtr,ynbtr)作为输入,并且输出被分配给编码块可用性标志availabletr。当availabletr等于true且availableflaglx[1]等于0时,应用以下步骤:如果predflaglx[xnbtr][ynbtr]等于1,并且diffpicordercnt(refpiclistx[refidxlx[xnbtr][ynbtr]]、refpiclistx[refidxlx])等于0,并且对应于refidxlx[xnbtr][ynbtr]的参考图片不是当前图片,则将availableflaglx[1]设置为等于1并做出以下分配:cpmvlx[1]=mvlx[xnbtr][ynbtr](8-645)否则,当predflagly[xnbtr][ynbtr](withy=!x)等于1,并且diffpicordercnt(refpiclisty[refidxly[xnbtr][ynbtr]]、refpiclistx[refidxlx])等于0,并且对应于refidxly[xnbtr][ynbtr]的参考图片不是当前图片时,则将availableflaglx[1]设置为等于1并做出以下分配:cpmvlx[1]=mvly[xnbtr][ynbtr](8-646)当availableflaglx[1]等于1时,调用条款8.4.2.14中指定的运动矢量的取整过程,其中mvx设置为等于cpmvlx[1]、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的cpmvlx[1]作为输出。第三(左底)控制点运动矢量cpmvlx[2]和可用性标志availableflaglx[2]在以下有序步骤中导出:分别将样本位置(xnba1,ynba1)和(xnba0,ynba0)设置为等于(xcb-1,ycb+cbheight-1)和(xcb-1,ycb+cbheight)。将可用性标志availableflaglx[2]设置为等于0,并且将cpmvlx[2]的两个分量都设置为等于0。对于(xnbbl,ynbbl)应用以下步骤,其中bl由a1和a0替换:调用条款6.4.x中指定的编码块的可用性推导过程,其中亮度编码块位置(xcb,ycb)、亮度编码块宽度cbwidth、亮度编码块高度cbheight、亮度位置(xnby,ynby)设置为等于(xnbbl,ynbbl)作为输入,并且输出被分配给编码块可用性标志availablebl。当availablebl等于true且availableflaglx[2]等于0时,应用以下步骤:如果predflaglx[xnbbl][ynbbl]等于1,并且diffpicordercnt(refpiclistx[refidxlx[xnbbl][ynbbl]]、refpiclistx[refidxlx])等于0,并且对应于refidxly[xnbbl][ynbbl]的参考图片不是当前图片,则将availableflaglx[2]设置为等于1并做出以下分配:cpmvlx[2]=mvlx[xnbbl][ynbbl](8-647)否则,当predflagly[xnbbl][ynbbl](withy=!x)等于1,并且diffpicordercnt(refpiclisty[refidxly[xnbbl][ynbbl]]、refpiclistx[refidxlx])等于0,并且对应于refidxly[xnbbl][ynbbl]的参考图片不是当前图片时,则将availableflaglx[2]设置为等于1并做出以下分配:cpmvlx[2]=mvly[xnbbl][ynbbl](8-648)当availableflaglx[2]等于1时,调用条款8.4.2.14中指定的运动矢量的取整过程,其中mvx设置为等于cpmvlx[2]、rightshift设置为等于(mvshift+2)、以及leftshift设置为等于(mvshift+2)作为输入,并且取整的cpmvlx[2]作为输出。5.5上下文建模使用上下文编码的二进制数将ctxinc分配给语法元素:使用左方和上方的语法元素指定ctxinc:在一个示例中,上下文增加偏移ctxinc=(condl&&availablel)+(conda&&availablea)+ctxsetidx*3。替代地,ctxinc=((condl&&availablel)||(conda&&availablea))+ctxsetidx*3。ctxinc=(condl&&availablel)+m*(conda&&availablea)+ctxsetidx*3.(例如,m=2)ctxinc=m*(condl&&availablel)+(conda&&availablea)+ctxsetidx*3.(例如,m=2)amvr_flag的ctxidx的initvalue值:当当前块为仿射或非仿射时使用不同的上下文。amvr_coarse_precisoin_flag的ctxidx的initvalue值:当当前块为仿射或非仿射时使用不同的上下文。上述示例可以并入在下面描述的方法的上下文中,例如,方法2600至2680,其可以在视频解码器或视频编码器处实现。图26a示出了用于视频处理的示例性方法的流程图。方法2600包括,在步骤2602处,对于视频的当前块的编码表示与当前块之间的转换,从适用于含有该当前视频块的视频区域的允许的多个mvd精度的集合中确定运动矢量差异(mvd)精度以用于该转换。方法2600包括,在步骤2604处,基于该mvd精度执行转换。图26b图示了用于视频处理的示例性方法的流程图。如图26b所示的方法2610包括,在步骤2612处,对于包括视频的一个或多个视频块的视频区域和视频的编码表示,确定多个运动矢量差异(mvd)精度的使用以用于视频区域中的一个或多个视频块的转换。方法2610包括,在步骤2614处,基于该确定执行转换。图26c示出了用于视频处理的示例性方法的流程图。如图26c所示的方法2620包括,在步骤2622处,对于包括视频的一个或多个视频块的视频区域和视频的编码表示,确定是否将自适应运动矢量分辨率(amvr)过程应用于当前视频块以用于当前视频块与视频的编码表示之间的转换。方法2620包括,在步骤2624处,基于该确定执行转换。图26d示出了用于视频处理的示例性方法的流程图。如图26d所示的方法2630包括,在步骤2632处,对于包括视频的一个或多个视频块的视频区域和视频的编码表示,确定如何将自适应运动矢量分辨率(amvr)过程应用于当前视频块以用于当前视频块与视频的编码表示之间的转换。方法2630包括,在步骤2634处,基于该确定执行转换。图26e图示了用于视频处理的示例性方法的流程图。如图26e所示的方法2640包括,在步骤2642处,基于使用仿射编码模式的当前编码单元的父代编码单元的编码模式或该仿射编码模式的速率失真(rd)成本,确定自适应运动矢量分辨率(amvr)的使用以用于视频当前块的编码表示与当前块之间的转换。方法2640包括,在步骤2644处,根据该确定的结果执行转换。图26f示出了用于视频处理的示例性方法的流程图。如图26f所示的方法2650包括,在步骤2652处,确定自适应运动矢量分辨率(amvr)的使用以用于视频的当前块的编码表示与使用高级运动矢量预测(amvp)编码模式的当前块之间的转换,该确定基于amvp编码模式的速率失真(rd)成本。方法2650包括,在步骤2654,根据该确定的结果执行转换。图26g图示了用于视频处理的示例性方法的流程图。如图26g所示的方法2660包括,在步骤2662处,使用4参数仿射模型或6参数仿射模型生成运动矢量(mv)精度的集合以用于视频的当前块的编码表示与当前块之间的转换。方法2660包括,在步骤2664处,基于该mv精度的集合执行转换。图26h图示了用于视频处理的示例性方法的流程图。如图26h所示的方法2670包括,在步骤2672处,基于使用仿射编码模式的当前块的父代块的编码模式,确定自适应运动矢量分辨率(amvr)工具是否用于转换,其中amvr工具用于在解码期间细化运动矢量分辨率。方法2670包括,在步骤2674处,根据该确定的结果执行转换。图26i图示了用于视频处理的示例性方法的流程图。如图26i所示的方法2680包括,在步骤2682处,基于先前已经使用仿射编码模式编码的先前块的mv精度的使用,确定使用该仿射编码模式的当前块的mv精度的速率失真(rd)计算的终止以用于当前块的编码表示与当前块之间的转换。方法2680包括,在步骤2684处,根据该确定的结果执行转换。5.所公开的技术的示例实现方式图27是视频处理装置2700的框图的示例。装置2700可以用于实现本文描述的一种或多种方法。装置2700可以实施在智能手机、平板计算机、计算机、物联网(iot)接收器等中。装置2700可以包括一个或多个处理器2702、一个或多个存储器2704和视频处理硬件2706。(一个或多个)处理器2702可以被配置为实现本文件中描述的一种或多种方法(包括但不限于方法2610至2680)。(一个或多个)存储器2704可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件2706可以用于在硬件电路中实现本文件中描述的一些技术。图29是可以实现所公开的技术的视频处理系统的框图的另一个示例。图29是示出可以实现本文公开的各种技术的示例视频处理系统2900的框图。各种实现可以包括系统2900的一些或所有组件。系统2900可以包括用于接收视频内容的输入2902。可以以例如8或10比特多分量像素值的原始或未压缩格式接收视频内容,或者可以以压缩或编码格式接收视频内容。输入2902可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(pon)等的有线接口和诸如wi-fi或蜂窝接口的无线接口。系统2900可以包括编码组件2904,其可以实现本文件中描述的各种编码(coding)或字符编码(encoding)方法。编码组件2904可以降低从输入2902到编码组件2904的输出的视频的平均比特率以生成视频的编码表示。因此,编码技术有时被称为视频压缩或视频转码技术。编码组件2904的输出可以被存储,或者经由连接的通信被传输,如组件2906所示。在输入2902处接收的视频的存储或传送的比特流(或编码)表示可以由组件2908使用,以用于生成发送到显示接口2910的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应当理解,编码工具或操作在编码器处使用,并且对应的解码工具或反转编码结果的操作将由解码器执行。外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或displayport等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文件中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能手机或能够执行数字数据处理和/或视频显示的其它设备。在一些实施例中,视频处理方法可以使用在如关于图27或29所描述的硬件平台上实现的装置来实现。可以使用以下基于条款的格式来描述各种技术和实施例。这些条款可以实现为一些实施例的优选特征。条款的第一集合使用先前节中描述的一些技术,包括例如先前节中的项目1、2和13-15。1.一种视频处理方法,包括:对于视频的当前块的编码表示与当前块之间的转换,从适用于含有当前视频块的视频区域的允许的多个运动矢量差异(mvd)精度的集合中确定运动矢量差异(mvd)精度以用于转换;并且基于mvd精度执行转换。2.根据条款1的方法,其中允许的多个mvd精度的集合取决于视频数据的图片、条带或块。3.根据条款1的方法,其中允许的多个mvd精度的集合取决于当前块的编码信息。4.根据条款1的方法,其中,允许的多个mvd精度的集合是预定义的。5.根据条款1的方法,其中在序列参数集(sps)、图片参数集(pps)、视频参数集(vps)、序列报头、图片报头、条带报头、编码树单元(ctu)组中信令通知允许的多个mvd精度的集合。6.根据条款1的方法,进一步包括基于当前块的允许的mv精度的数目,信令通知从允许的多个mvd精度的集合中确定的mvd精度。7.根据条款1的方法,其中确定mvd精度是基于一个或多个语法元素,并且其中使用仿射模式对当前块进行编码。8.根据条款3或7的方法,其中相同的语法元素用于指示应用于仿射模式和非仿射模式的从允许的多个mvd精度的集合中确定的mvd精度。9.根据条款3、7或8的方法,其中仿射模式和非仿射模式使用允许的多个mvd精度的相同的集合。10.根据条款3、7或8的方法,其中仿射编码块使用与在非仿射模式中使用的允许的多个mvd精度的集合不同的允许的多个mvd精度的集合。11.根据条款10的方法,其中不同的集合具有与在非仿射模式中使用的允许的多个mvd精度相同数目的允许的多个mvd精度,在仿射模式中重用非仿射模式中使用的语法元素。12.根据条款10的方法,其中不同的集合具有至少一个与在非仿射模式中使用的mvd精度不同的mvd精度。13.根据条款3、7或8的方法,其中在非仿射模式和仿射模式中使用的语法元素的语义是不同的,并且语法元素具有被解释为不同mvd精度的相同解码值。14.根据条款3、7或8的方法,其中在仿射模式中使用的允许的多个mvd精度的数目小于在非仿射模式中使用的允许的多个mvd精度的数目。15.根据条款8的方法,其中非仿射模式的语法元素值的一个或多个子集在仿射模式下无效。16.根据条款8或14的方法,其中在非仿射模式和仿射模式中使用的语法元素的语义是不同的,并且具有相同值的语法元素被解释为不同的mvd精度。17.根据条款3或7的方法,其中在仿射模式中使用的允许的多个mvd精度的数目多于在非仿射模式中使用的允许的多个mvd精度的数目。18.根据条款17的方法,其中扩展非仿射模式中的一个或多个语法元素以允许更多的用于仿射模式的值。19.根据条款7的方法,其中附加语法元素被用于处理仿射模式的mvd精度,附加语法元素与用于处理非仿射模式的mvd精度的语法元素不同。20.根据条款7的方法,其中选择性地信令通知仿射模式的mvd精度的指示。21.根据条款20的方法,其中当所有控制点运动矢量(cpmv)的mvd非零时,信令通知仿射模式的mvd精度的指示。22.根据条款20的方法,其中当至少一个cpmv的mvd非零时,信令通知仿射模式的mvd精度的指示。23.根据条款20的方法,其中当一个所选择的cpmv的mvd非零时,信令通知仿射模式的mvd精度的指示。24.根据条款20的方法,其中当第一cpmv的mvd非零时,信令通知仿射模式的mvd精度的指示。25.根据条款20的方法,其中当一个或多个预定条件不满足时,不信令通知仿射模式的mvd精度的指示。26.根据条款7的方法,其中使用取决于当前块的编码信息的上下文,对与仿射模式或非仿射模式中任一者相关联的mvd精度指示的语法元素进行编码。27.根据条款7的方法,其中与仿射模式或非仿射模式相关联的mvd精度指示的语法元素的上下文选择取决于当前块是否使用仿射模式编码。28.根据条款7的方法,其中一个上下文用于仿射编码块的mvd精度指示的语法元素,并且另一个上下文用于非仿射编码块。29.根据条款7的方法,其中基于相邻块的尺寸、形状或mvd精度、时域层索引或预测方向来确定用于mvd精度指示的上下文。30.根据条款7的方法,其中在序列参数集(sps)、图片参数集(pps)、视频参数集(vps)、序列报头、图片报头、条带报头或编码树单元(ctu)组中信令通知是否启用或禁用仿射模式的允许的多个mvd精度的使用。31.根据条款7的方法,其中对于仿射模式是否启用或禁用允许的多个mvd精度的使用取决于一个或多个语法元素。32.根据条款7的方法,其中当启用仿射模式时,信令通知是否启用或禁用允许的多个mvd精度的信息;并且当禁用仿射模式时,不信令通知是否启用或禁用允许的多个mvd精度的信息。33.根据条款7至32中任一项的方法,其中一个或多个语法元素被包括在条带级别、图片级别或序列级别。34.根据条款5、30或33的方法,其中条带使用片组或片替换。35.根据条款1至34中任一项的方法,其中在vps、sps、pps、条带报头或片组报头中,等于1的语法元素指定符合编码表示的要求,要求要求第一语法元素和第二语法元素两者为0,第一语法元素指示对于非仿射模式是否启用多个mvd精度的第一集合,第二语法元素指示对于仿射模式是否启用多个mvd精度的第二集合。36.根据条款1至34中任一项的方法,其中在vps、sps、pps、条带报头、片组报头或其它视频数据单元中信令通知语法元素。37.根据条款36的方法,其中等于1的语法元素指定符合编码表示的要求,要求要求指示对于仿射模式是否启用多个mvd精度的语法元素等于0。38.根据条款7至37中任一项的方法,其中对于仿射编码块,以与mvd精度相同的精度使用运动矢量预测。39.根据条款7至37中任一项的方法,其中对于仿射编码块,以与mvd精度相同的精度使用当前块的最终的运动矢量。40.根据条款1至39中任一项的方法,其中执行转换包括从当前块生成编码表示。41.根据条款1至39中任一项的方法,其中执行转换包括从编码表示生成当前块。42.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器执行时使处理器实现条款1至41中的一项或多项的方法。43.一种非暂时性计算机可读介质,其上储存有的计算机程序代码,当执行所述计算机程序代码时,实施条款1至41中的一项或多项的方法的程序代码。条款的第二集合使用先前节中描述的一些技术,包括例如先前节中的项目3、4和12。1.一种视频处理方法,包括:对于包括视频的一个或多个视频块的视频区域和所述视频的编码表示,确定多个运动矢量差异(mvd)精度的使用以用于所述视频区域中的一个或多个视频块的转换;并且基于所述确定执行所述转换。2.根据条款1所述的方法,其中所述一个或多个视频块中的至少一些视频块的所述转换基于仿射模式编码。3.根据条款1或2所述的方法,其中在所述编码表示中指示所述使用,所述编码表示包括序列参数集(sps)、图片参数集(pps)、视频参数集(vps)、序列报头、图片报头、条带报头或编码树单元(ctu)组。4.根据条款3所述的方法,其中取决于用于指示所述mvd精度的语法元素来指示所述使用。5.一种视频处理方法,包括:对于包括视频的一个或多个视频块的视频区域和所述视频的编码表示,确定是否将自适应运动矢量分辨率(amvr)过程应用于当前视频块以用于所述当前视频块与所述视频的编码表示之间的转换;并且基于所述确定执行所述转换。6.一种视频处理方法,包括:对于包括视频的一个或多个视频块的视频区域和所述视频的编码表示,确定如何将自适应运动矢量分辨率(amvr)过程应用于当前视频块以用于所述当前视频块与所述视频的编码表示之间的转换;并且基于所述确定执行所述转换。7.根据条款5或6所述的方法,其中所述当前视频块的转换基于仿射模式编码。8.根据条款7所述的方法,其中所述确定取决于所述当前视频块的参考图片。9.根据条款8所述的方法,其中在所述参考图片是当前图片的情况下,所述确定确定不应用所述amvr过程。10.根据条款5或6所述的方法,其中所述确定取决于所述当前块是否应用帧内块复制(ibc)。11.根据条款10所述的方法,其中所述确定确定将所述amvr过程应用于由所述ibc编码的所述当前块。12.根据条款11所述的方法,其中用于ibc编码块的候选运动矢量(mv)、mvd或运动矢量预测(mvp)精度与用于未由所述ibc编码的另一个视频块的候选运动矢量(mv)、mvd或运动矢量预测(mvp)精度不同。13.根据条款11所述的方法,其中用于ibc编码块的候选运动矢量(mv)、mvd或运动矢量预测(mvp)精度与用于使用仿射模式编码的另一个视频块的候选运动矢量(mv)、mvd或运动矢量预测(mvp)精度不同。14.根据条款1至13中任一项所述的方法,其中执行所述转换包括从所述当前块生成所述编码表示。15.根据条款1至13中任一项所述的方法,其中执行所述转换包括从所述编码表示生成所述当前块。16.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使所述处理器实现条款1至15中的一项或多项所述的方法。17.一种非暂时性计算机可读介质,其上储存有的计算机程序代码,当执行所述计算机程序代码时,实施条款1至15中的一项或多项所述的方法的程序代码。条款的第三集合使用先前节中描述的一些技术,包括例如先前节中的项目5-10和13。1.一种视频处理方法,包括:基于使用仿射编码模式的当前编码单元的父代编码单元的编码模式或仿射编码模式的速率失真(rd)成本,确定自适应运动矢量分辨率(amvr)的使用以用于视频当前块的编码表示与当前块之间的转换;并且根据确定的结果执行转换。2.根据条款1的方法,其中在父代编码单元的编码模式不是af_inter模式或af_merge模式的情况下,则确定对当前编码单元禁用amvr的使用。3.根据条款1的方法,其中在父代编码单元的编码模式不是af_inter模式的情况下,则确定对当前编码单元禁用amvr的使用。4.根据条款1的方法,其中在仿射编码模式的rd大于正阈值和高级运动矢量预测(amvp)模式的rd成本的乘积的情况下,则确定对当前编码单元禁用amvr的使用。5.根据条款4的方法,其中确定应用于1/4像素mv精度。6.根据条款1的方法,其中在最小rd成本大于正阈值和merge模式的rd成本的乘积的情况下,则确定对当前编码单元禁用amvr的使用,其中最小rd成本是仿射编码模式的rd成本和高级运动矢量预测(amvp)模式的rd成本的最小值。7.根据条款6的方法,其中确定应用于1/4像素mv精度。8.一种视频处理方法,包括:确定自适应运动矢量分辨率(amvr)的使用以用于视频的当前块的编码表示与使用高级运动矢量预测(amvp)编码模式的当前块之间的转换,确定基于amvp编码模式的速率失真(rd)成本;并且根据确定的结果执行转换。9.根据条款8的方法,其中在amvp编码模式的rd成本大于正阈值和仿射模式的rd成本的乘积的情况下,确定禁用amvr的使用。10.根据条款8的方法,其中确定应用于1/4像素mv精度。11.根据条款8的方法,其中在最小rd成本大于正阈值和merge模式的rd成本的乘积的情况下,确定禁用amvr的使用,并且其中最小rd成本是仿射模式的rd成本和amvp编码模式的rd成本的最小值。12.根据条款11的方法,其中确定应用于1/4像素mv精度。13.一种视频处理方法,包括:使用4参数仿射模型或6参数仿射模型生成运动矢量(mv)精度的集合以用于视频的当前块的编码表示与当前块之间的转换;并且基于mv精度的集合执行转换。14.根据条款13的方法,其中在单个mv精度中获得的4参数仿射模型或6参数仿射模型被用作其它mv精度的候选开始搜索点。15.根据条款14的方法,其中单个mv精度包括1/16mv精度。16.根据条款14的方法,其中单个mv精度包括1/4mv精度。17.一种视频处理方法,包括:基于使用仿射编码模式的当前块的父代块的编码模式,确定自适应运动矢量分辨率(amvr)工具是否用于转换,其中amvr工具用于在解码期间细化运动矢量分辨率;以及根据确定的结果执行转换。18.根据条款17的方法,其中在当前块的父代块不是仿射编码模式的情况下,确定使得对当前块不校验amvr。19.一种视频处理方法,包括:基于先前已经使用仿射编码模式编码的先前块的mv精度的使用,确定使用仿射编码模式的当前块的mv精度的速率失真(rd)计算的终止以用于当前块的编码表示与当前块之间的转换;并且根据确定的结果执行转换。20.根据条款19的方法,其中当前块和先前块分别包括在当前图像片段和先前图像片段中,并且当前图像片段和先前图像片段是图片、条带、片或编码树单元(ctu)行。21.根据条款1至20中任一项的方法,其中执行转换包括从当前块生成编码表示。22.根据条款1至20中任一项的方法,其中执行转换包括从编码表示生成当前块。23.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器执行时使处理器实现条款1至22中的一项或多项的方法。24.一种非暂时性计算机可读介质,其上储存有的计算机程序代码,当执行所述计算机程序代码时,实施条款1至22中的一项或多项的方法的程序代码。从前述内容可以理解,本文已经出于说明的目的描述了本公开技术的具体实施例,但是在不脱离本发明的范围的情况下可以进行各种修改。因此,除了所附权利要求之外,本发明所公开的技术不受限制。本专利文件描述的主题和功能操作的实现方式可以以各种系统实现,以数字电子电路实现,或者以计算机软件、固件或硬件实现,包括本说明书中公开的结构及其结构等同物,或者以它们中的一个或多个的组合实现。本说明书所描述的主题的实现方式可以实现为一个或多个计算机程序产品,即,在有形和非暂时性计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组合、或者它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文件中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并由通信网络互连的多个计算机上执行。本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,以从该一个或多个大容量存储设备接收数据,或将数据传递到该一个或多个大容量存储设备,或者既接收又传递数据。然而,计算机不需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说,包括半导体存储器设备,例如eprom、eeprom和闪存设备。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。旨在将说明书与附图一起仅视为示例性的,其中示例性意味着示例。如本文所使用的,除非上下文另有明确指示,否则“或”的使用旨在包括“和/或”。虽然本专利文件包含许多细节,但这些细节不应被解释为对任何发明或可要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文件中,在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分开地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从所要求保护的组合中去除来自该组合的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变型。类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都要求这样的分离。仅描述了几个实现方式和示例,并且可以基于本专利文件中描述和示出的内容来做出其它实现方式、增强和变型。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1