约束通过解码器侧运动向量推导导出的运动向量信息的制作方法

文档序号:19079993发布日期:2019-11-08 22:11阅读:134来源:国知局
约束通过解码器侧运动向量推导导出的运动向量信息的制作方法
本公开涉及视频译码。
背景技术
:数字视频能力可并入到各种装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置等等。数字视频装置实施视频译码技术,例如描述于由以下各项定义的标准中的那些技术:itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、itu-th.264/mpeg-4第10部分高级视频译码(avc)、itu-th.265/高效率视频译码(hevc),以及这些标准的扩展,例如可分级视频译码(svc)和多视图视频译码(mvc)扩展。视频装置可通过实施这些视频译码技术而更高效地传输、接收、编码、解码和/或存储数字视频信息。视频译码技术包含空间(图片内)预测和/或时间(图片间)预测来减少或移除视频序列中固有的冗余。对于基于块的视频译码来说,视频切片(例如,视频图片或视频图片的一部分)可分割成视频块,视频块也可被称作译码树单元(ctu)、译码单元(cu)及/或译码节点。使用相对于相同图片中的相邻块中的参考样本的空间预测对图片的经帧内译码(i)切片中的视频块进行编码。图片的经帧间译码(p或b)切片中的视频块可使用相对于相同图片中的相邻块中的参考样本的空间预测,或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。空间或时间预测产生待译码块的预测性块。残余数据表示待译码原始块与预测性块之间的像素差。经帧间译码块根据指向形成预测性块的参考样本块的运动向量及指示经译码块与预测性块之间的差的残余数据来编码。经帧内译码块根据帧内译码模式及残余数据来编码。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,接着可量化所述残余变换系数。可扫描最初布置成二维阵列的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码以实现更多压缩。技术实现要素:大体来说,本公开描述与解码器侧运动向量推导(dmvd)有关的技术。例如,本公开描述与向运动信息应用一或多个约束条件的技术有关,所述运动信息例如是通过dmvd导出的运动向量(mv),和/或初始mv和通过dmvd导出的mv之间的mv差。这些技术可应用于现有例如高效视频译码(hevc)的视频编解码器中的任一个,和/或可为任何未来视频译码标准中的高效译码工具。在某些实例中,在将约束条件应用到利用dmvd导出的mv和/或mv差时,只有符合约束条件的所导出运动信息被视为有效运动信息。因此,如果没有使用约束条件,mv和最终选定mv的列表可能是不同的,这可以提高译码效率和/或减小位速率。在一些实例中,约束条件包含所导出mv是不是对称的、初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的、所导出mv是不是反对称的、初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。在一些实例中,显式地传送对称/反对称mv/mv差约束条件的启用。在其它实例中,约束条件可以根据一些经译码信息隐式地确定。在其它实例中,可以在约束条件上设置条件,使得约束条件仅在某些实例中应用。在实例中,一种对来自经编码视频位流的视频数据进行解码的方法,所述方法包括:使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量;基于成本度量,根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量,包括确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件,所述关系包括:所述第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出的运动向量具有伪反对称运动向量差;以及使用双向预测,使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行解码。在另一实例中,一种对视频数据进行编码的方法,所述方法包括:使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量;基于成本度量,根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量,包括确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件,所述关系包括:第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出运动向量具有伪反对称运动向量差;以及使用双向预测,使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行编码。在另一实例中,一种经配置以对来自经编码视频位流的视频数据进行解码的设备,所述设备包括:存储器,其经配置以存储所述视频数据,以及与所述存储器通信的一或多个处理器,所述一或多个处理器经配置以:使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量;基于成本度量,根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量,包括确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件,所述关系包括:所述第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出的运动向量具有伪反对称运动向量差;以及使用双向预测,使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行解码。在另一实例中,一种经配置以对视频数据进行编码的设备,所述设备包括:存储器,其经配置以存储所述视频数据,以及与所述存储器通信的一或多个处理器,所述一或多个处理器经配置以:使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量;基于成本度量,根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量,包括确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件,所述关系包括:第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出运动向量具有伪反对称运动向量差;以及使用双向预测,使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行解码。在另一实例中,一种经配置以对来自经编码视频位流的视频数据进行解码的设备,所述设备包括:用于使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量的装置;用于基于成本度量根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量的装置,包括用于确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件的装置,所述关系包括:所述第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出的运动向量具有伪反对称运动向量差;以及用于使用双向预测使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行解码的装置。在另一实例中,一种经配置以对视频数据进行编码的设备,所述设备包括:用于使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量的装置;用于基于成本度量根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量的装置,包括用于确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件的装置,所述关系包括:所述第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出的运动向量具有伪反对称运动向量差;以及用于使用双向预测使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行编码的装置。在另一实例中,本公开描述一种存储指令的计算机可读存储媒体,所述指令在执行时使装置的一或多个处理器经配置以:使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量;基于成本度量,根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量,包括确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件,所述关系包括:所述第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出的运动向量具有伪反对称运动向量差;以及使用双向预测,使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行解码。在另一实例中,本公开描述一种存储指令的计算机可读存储媒体,所述指令在执行时使装置的一或多个处理器经配置以:使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量;基于成本度量,根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量,包括确定所述第一所导出运动向量和所述第二所导出运动向量满足关于所述第一所导出运动向量和所述第二所导出运动向量之间的关系的至少一个约束条件,所述关系包括:所述第一所导出运动向量和所述第二所导出运动向量具有对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量具有伪对称运动向量差、所述第一所导出运动向量和所述第二所导出运动向量是反对称的、所述第一所导出运动向量和所述第二所导出运动向量具有反对称运动向量差或所述第一所导出运动向量和所述第二所导出的运动向量具有伪反对称运动向量差;以及使用双向预测,使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行解码。附图及以下描述中阐述了一或多个实例的细节。其它特征、目标和优势将根据所述描述和图式并根据权利要求书而显而易见。附图说明图1是示出可利用用于执行本公开的解码器侧运动向量推导(dmvd)的技术的实例视频编码和解码系统的框图。图2是示出可实施用于执行本公开的dmvd的技术的视频编码器的实例的框图。图3是示出可实施用于执行本公开的dmvd的技术的视频解码器的实例的框图。图4a和4b是示出从相邻块导出的空间运动向量候选项的概念图。图5a和5b是示出时间运动向量预测符(tmvp)候选项的主块位置的概念图。图6是示出与用于导出当前块的运动信息的双边匹配有关的概念的概念图。图7是示出与用于导出当前块的运动信息的模板匹配有关的概念的概念图。图8是示出实例帧速率上转换(fruc)模板匹配过程的流程图。图9是示出图8的fruc模板匹配过程的实例所提议改变的流程图。图10是示出与双向光流的实例有关的概念的概念图。图11是示出8x4块的梯度计算的实例的概念图。图12是示出与基于双边模板匹配的dmvd有关的概念的概念图。图13a和13b是示出与重叠块运动补偿(obmc)有关的概念的概念图。图14a-14d是示出obmc加权的概念图。图15是示出与用于导出当前块的运动信息的双边匹配有关的概念的概念图。图16是示出根据本公开中所描述的技术对视频数据进行解码的实例方法的流程图。图17是示出根据本公开中所描述的技术对视频数据进行编码的实例方法的流程图。具体实施方式本公开描述与解码器侧运动向量推导(dmvd)有关的技术。本公开的技术可用作任何未来视频译码标准中的高效译码工具。大体来说,本公开描述用于导出用于对视频数据块进行编码的运动信息(例如,一或多个运动向量、运动向量和/或运动向量差精度和一或多个参考图片索引)和用于通过视频解码器确定与通过视频编码器确定的运动信息相同的运动信息的技术。使用供视频编码器使用的相同(或互逆)推导技术,视频解码器可在不接收任何特定标识运动信息的语法元素的情况下确定用于对视频数据进行编码的运动信息。然而,在一些译码情形中,视频编码器仍可显式地传送用于对块进行编码的运动信息。可参考视频译码器来描述本公开中的各种技术,其既定为可指代视频编码器或视频解码器的通用术语。除非另外明确陈述,否则不应假定相对于视频编码器或视频解码器描述的技术不可由视频编码器或视频解码器中的另一者来执行。例如,在许多情况下,视频解码器执行与视频编码器相同或有时互逆的译码技术,以便对经编码视频数据进行解码。在许多情况下,视频编码器还包含视频解码环路,且因此视频编码器执行视频解码作为对视频数据进行编码的一部分。因此,除非另外说明,否则本公开中相对于视频解码器描述的技术还可由视频编码器执行,且反之亦然。本公开还可使用例如当前层、当前块、当前图片、当前切片等术语。在本公开的上下文中,术语当前既定识别当前正译码的层、块、图片、切片等,例如与先前经译码层、块、图片和切片或待译码块、图片和切片相反。命名为高效视频译码(hevc)(也被称作itu-th.265)的新视频译码标准,包含其范围扩展、多视图扩展(mv-hevc)和可分级扩展(shvc),是由关于视频译码的联合合作小组(jct-vc)以及itu-t视频译码专家组(vceg)和iso/iec动画专家组(mpeg)的3d视频译码扩展建立(jct-3v)联合合作小组开发的。在下文中被称为hevcwd的hevc规范可获自phenix.int-evry.fr/jct/doc_end_user/documents/14_vienna/wg11/jctvc-n1003-v1.zip。itu-tvceg(q6/16)和iso/iecmpeg(jtc1/sc29/wg11)目前正在研究具有大大超过当前hevc标准(包含其当前扩展及屏幕内容译码和高动态范围译码的近似项扩展)的压缩能力的压缩能力的未来视频译码技术的标准化的潜在需要。这些小组通过被称为联合视频探索小组(jvet)的联合协作工作一起致力于这一探索活动以评估由他们在这个领域中的专家提出的压缩技术设计。jvet在2015年10月19日到21日期间首次会见。并且,参考软件的版本,即,联合探索模型5(jem5)可获自jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/tags/hm-16.6-jem-5.0。jem5的算法描述可获自phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=2714。图1是说明可利用用于执行本公开的dmvd的技术的实例视频编码和解码系统10的框图。如图1所示,系统10包含源装置12,所述源装置12提供在稍后时间由目的地装置14解码的经编码视频数据。具体地说,源装置12通过计算机可读媒体16将视频数据提供到目的地装置14。源装置12和目的地装置14可包括各种装置中的任一个,包含桌上型计算机、笔记本计算机(即,膝上型计算机)、平板计算机、机顶盒、手持机(例如所谓的“智能”电话、所谓的“智能”平板)、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等等。在一些情况下,源装置12和目的地装置14可经装备以用于无线通信。目的地装置14可通过计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,计算机可读媒体16可包括使得源装置12能够实时地将经编码视频数据直接传输到目的地装置14的通信媒体。经编码视频数据可根据通信标准(例如无线通信协议)调制,并传输到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(rf)频谱或一或多个物理传输线。通信媒体可形成基于包的网络的一部分,例如局域网、广域网或全球网络(例如,互联网)。通信媒体可包含路由器、交换机、基站或可适用于促进源装置12与目的地装置14之间的通信的任何其它设备。在一些实例中,经编码数据可从输出接口22输出到存储装置。类似地,经编码数据可通过输入接口从存储装置存取。存储装置可包含各种分布式或本地存取的数据存储媒体中的任一个,例如硬盘驱动器、蓝光光盘、dvd、cd-rom、快闪存储器、易失性或非易失性存储器,或任何其它合适的用于存储经编码视频数据的数字存储媒体。在另一实例中,存储装置可对应于文件服务器或另一可存储由源装置12生成的经编码视频的中间存储装置。目的地装置14可通过流式传输或下载从存储装置存取所存储视频数据。文件服务器可以是能够存储经编码视频数据并向目的地装置14传输所述经编码视频数据的任何类型的服务器。实例文件服务器包含网络服务器(例如,对于网站)、ftp服务器、网络连接存储(nas)装置或本地磁盘驱动器。目的地装置14可通过包含互联网连接的任何标准数据连接存取经编码视频数据。这可包含无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或适用于存取存储在文件服务器上的经编码视频数据的这两者的组合。经编码视频数据从存储装置的传输可为流式传输、下载传输或其组合。本公开的技术不一定限于无线应用或设置。所述技术可应用到视频译码以支持各种多媒体应用中的任一个,例如空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输,例如,通过http的动态自适应流式传输(dash)、编码到数据存储媒体上的数字视频、存储在数据存储媒体上的数字视频的解码或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输,从而支持各种应用,例如视频流式传输、视频回放、视频广播和/或视频电话。在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。目的地装置14包含输入接口28、视频解码器30和显示装置32。在其它实例中,源装置和目的地装置可包含其它组件或布置。例如,源装置12可从外部视频源18接收视频数据,例如外部相机。同样地,目的地装置14可与外部显示装置介接,而不是包含集成显示装置。根据本公开,源装置12的视频编码器20和/或目的地装置14的视频解码器30可经配置以执行本文中所描述的一或多种dmvd技术。例如,视频编码器20和/或视频解码器30可经配置以向以下各项应用一或多个约束条件:(1)通过dmvd导出的mv,和/或(2)初始mv和通过dmvd导出的mv之间的mv差。约束条件可包含关于通过dmvd过程导出的运动向量的限制。本公开的实例约束条件可包含授权mv和两个参考图片列表(例如,list0和list1)中的mvd之间的某一预定义关系的约束条件。在某些实例中,在向dmvd应用约束条件时,只有符合约束条件的所导出运动信息被视为有效运动信息。因此,如果没有使用约束条件,mv和最终选定mv的列表可能是不同的。在第一实例中,约束条件包含所导出mv是不是对称的。在第二实例中,约束条件包含初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的。在第三实例中,约束条件包含所导出mv是不是反对称的。在第四实例中,约束条件包含初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。在一些实例中,显式地传送对称/反对称mv/mv差约束条件的启用。在其它实例中,约束条件可以根据一些经译码信息隐式地确定。在其它实例中,可以在约束条件上设置条件,使得约束条件仅在某些实例中应用。条件可包含关于约束条件启用的时间的限制。例如,(1)约束条件仅在初始mv对称时启用;(2)约束条件仅在初始mv伪对称时启用;(3)约束条件仅在初始mv反对称时启用;(4)约束条件仅在初始mv伪反对称时启用;(5)约束条件仅在初始mv不对称时启用;(6)约束条件仅在初始mv非伪对称时启用;(7)约束条件仅当初始mv非反对称时启用;(8)约束条件仅在初始mv非伪反对称时启用;(9)约束条件仅在初始mv的list0和list1参考图片均在当前图片之前或均在当前图片之后时启用;(10)约束条件仅在初始mv的list0和list1参考图片并非均在当前图片之前或并非均在当前图片之后启用;(11)约束条件仅在初始mv的参考索引均为零时启用;(12)约束条件仅在初始mv的参考索引并非均为零时启用;(13)约束条件仅在list0参考图片和当前图片之间的poc距离与list1参考图片和当前图片之间的poc距离相同时启用;(14)约束条件仅在list0参考图片和当前图片之间的poc距离与list1参考图片和当前图片之间的poc距离不同时启用;(15)在初始mv不对称时应用对称mv差的约束条件;和/或(16)在初始mv对称时应用反对称mv差的约束条件。在另一实例中,可以确定性的方式指派对称约束条件的mv分辨率。在一个实例中,对于双边模板匹配的整数像素细化,应该施加无对称/伪对称/不对称约束条件,且前述约束条件仅用于半像素、四分之一像素或更高精度的运动细化。约束水平(处于哪一mv分辨率)可以通过sps/pps/切片标头传送。分辨率还可与是否启用其它运动细化工具(例如,bio、子像素帧速率上转换(fruc))一同判定。例如,在启用bio时,约束条件不应施加于四分之一像素或更高精度的运动细化。在另一实例中,根据list0(也被称作l0)和list1(也被称作l1)mv之间的绝对差、list0和list1mv之间的经缩放(基于它们的相对poc距离)绝对差或list0和list1的经内插样本(即,此实例中的p0和p1)之间的初始sad值,约束水平可以是自适应的。可替代地,(当前模板,p0)和(当前模板,p1)之间的sad值的比率可用于判定应该在哪一mv分辨率下施加约束条件。在此实例中,如果sad值的比率低于阈值,那么不应该施加任何前述对称约束条件。此外,在一些实例中,基于条件,向所导出mv应用单个约束条件(例如,对称mv、对称mv差、反对称mv或反对称mv差)。在其它实例中,基于多个条件,向所导出mv应用多个约束条件。图1示出的系统10仅仅是一个实例。用于执行本公开的dmvd的技术可由任何数字视频编码和/或解码装置执行。例如,用于约束以下各项的技术可由任何数字视频编码和/或解码装置执行:(1)通过dmvd导出的mv,和/或(2)初始mv和通过dmvd导出的mv之间的mv差。虽然本公开的技术大体上由视频编码装置执行,但是所述技术也可由视频编码器/解码器(通常被称作“编解码器(codec)”)执行。此外,本公开的技术还可由视频预处理器执行。源装置12和目的地装置14仅为此类译码装置的实例,其中源装置12生成经译码视频数据以供传输到目的地装置14。在一些实例中,装置12、14可以大体上对称的方式操作,使得装置12、14中的每一者包含视频编码和解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频传输,例如,用于视频流式传输、视频重放、视频广播或视频电话。源装置12的视频源18可包含视频俘获装置,例如摄像机、含有先前所俘获视频的视频存档和/或用于从视频内容提供者接收视频的视频馈送接口。作为另一替代方案,视频源18可生成基于计算机图形的数据作为源视频,或实时视频、存档视频与计算机生成的视频的组合。在一些情况下,如果视频源18为摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话。然而,如上文所提及,本公开中所描述的技术一般可应用于视频译码,且可应用于无线和/或有线应用。在每一情况下,俘获、预先俘获或计算机生成的视频可由视频编码器20编码。经编码视频信息可接着由输出接口22输出到计算机可读媒体16上。计算机可读媒体16可包含瞬时媒体,例如无线广播或有线网络传输,或存储媒体(即,非暂时性存储媒体),例如硬盘、快闪驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未展示)可从源装置12接收经编码视频数据,并且例如通过网络传输将经编码视频数据提供到目的地装置14。类似地,媒体生产设施(例如,光盘冲压设施)的计算装置可从源装置12接收经编码视频数据且生产含有经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体16可理解为包含一或多个各种形式的计算机可读媒体。目的地装置14的输入接口28从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由视频编码器20定义的语法信息,所述语法信息还供视频解码器30使用,包含描述块和其它经译码单元的特性和/或处理的语法元素。显示装置32将经解码视频数据显示给用户,且可包括多种显示装置中的任一个,例如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示装置。视频编码器20和视频解码器30可根据视频译码标准操作,例如高效视频译码(hevc)标准,它还被称作itu-th.265。可替代地,视频编码器20和视频解码器30可根据其它专用或行业标准操作,例如itu-th.264标准(或称为mpeg-4),第10部分,高级视频译码(avc),或此类标准的扩展。然而,本公开的技术不限于任何特定译码标准。视频译码标准的其它实例包含mpeg-2和itu-th.263。尽管在图1中未示出,但在一些方面中,视频编码器20和视频解码器30可各自与音频编码器及解码器集成,且可包含适当的mux-demux单元或其它硬件及软件,以处理公共数据流或单独数据流中的音频和视频两者的编码。若适用,mux-demux单元可符合ituh.223多路复用器协议或其它协议,例如,用户数据报协议(udp)。视频编码器20和视频解码器30各自可实施为各种合适的编码器和/或解码器电路系统中的任一个,例如一或多个微处理器、处理电路系统(包含固定功能电路系统和/或可编程处理电路系统)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当技术部分地实施为软件时,装置可在合适的非暂时性计算机可读媒体中存储用于所述软件的指令,并使用一或多个处理器执行硬件中的指令以执行本公开的技术。视频编码器20和视频解码器30中的每一个可包含在一或多个编码器或解码器中,其中的任一个可集成为相应装置中的组合编码器/解码器(编解码器)的一部分。包含视频编码器20和/或视频解码器30的装置可包括集成电路、微处理器和/或无线通信装置,例如,蜂窝式电话。一般来说,根据itu-th.265,视频图片可划分成可包含亮度和色度样本两者的一连串译码树单元(ctu)(或最大译码单元(lcu))。可替代地,ctu可包含单色数据(即,仅亮度样本)。位流内的语法数据可以定义ctu(就像素数目来说的最大译码单元)的大小。切片包含呈译码次序的数个相连ctu。视频图片可被分割成一或多个切片。每一ctu可根据四叉树而分裂成译码单元(cu)。一般来说,四叉树数据结构包含每cu一个节点,其中根节点对应于ctu。如果cu分裂成四个子cu,那么对应于cu的节点包含四个叶节点,每一叶节点对应于一个子cu。四叉树数据结构的每一节点可提供对应cu的语法数据。例如,四叉树中的节点可包含分裂标志,其指示对应于节点的cu是否分裂成子cu。cu的语法元素可以递归地定义,且可以取决于所述cu是否分裂成若干个子cu。如果cu未进一步分割,那么它被称作叶cu。在本公开中,叶cu的四个子cu也将被称作叶cu,即使原始叶cu没有明确分裂也如此。例如,如果16×16大小的cu不进一步分裂,那么尽管16×16cu从未分裂,四个8×8子cu也将被称作叶cu。cu具有与h.264标准的宏块类似的目的,但是cu不具有大小区别。例如,ctu可分裂成四个子节点(也被称作子cu),且每个子节点继而可为父节点且可分裂成另外四个子节点。最后未分裂的子节点(被称作四叉树的叶节点)包括译码节点,也被称作叶cu。与经译码位流相关联的语法数据可定义ctu可分裂的最大次数(被称作最大cu深度),且还可定义译码节点的最小大小。因此,位流还可定义最小译码单元(scu)。本公开使用术语“块”指代在hevc的上下文中的cu、预测单元(pu)或变换单元(tu)中的任一个,或在其它标准的上下文中的类似数据结构(例如,h.264/avc中的宏块和其子块)。cu包含译码节点和与所述译码节点相关联的预测单元(pu)和变换单元(tu)。cu的大小对应于译码节点的大小,且形状大体上为正方形。cu的大小范围可从8x8像素直到具有最大大小(例如,64x64像素或更大)的ctu的大小。每一cu可含有一或多个pu和一或多个tu。例如,与cu相关联的语法数据可描述cu分割成一或多个pu。分割模式在cu被跳过、经直接模式编码、经帧内预测模式编码或经帧间预测模式编码的情况下有所不同。pu可以分割成非正方形形状。例如,与cu相关联的语法数据还可描述cu根据四叉树划分成一或多个tu。tu的形状可为正方形或非正方形(例如,矩形)。hevc标准允许根据tu变换,tu对于不同cu可能是不同的。tu通常基于针对经分割ctu限定的给定cu内的pu(或cu的分割区)的大小进行大小设定,但可能并非始终如此。tu通常具有与pu(或cu的分区,例如在帧内预测的情况下)相同的大小或小于pu。在一些实例中,对应于cu的残余样本可以使用被称为“残余四叉树”(rqt)的四叉树结构细分成更小单元。rqt的叶节点可被称作变换单元(tu)。与tu相关联的像素差值可以进行变换以产生变换系数,所述变换系数可以量化。在使用帧间预测预测时,叶cu可包含一或多个预测单元(pu)。大体来说,pu表示对应于对应cu全部或一部分的空间区域,并且可包含用于撷取和/或生成pu的参考样本的数据。此外,pu包含与预测有关的数据。在cu经帧间模式编码时,cu的一或多个pu可包含定义运动信息的数据,例如一或多个运动向量,或pu可经跳过模式译码。定义pu的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考图片和/或运动向量的参考图片列表(例如,list0或list1)。叶cu还可经帧内模式预测。大体来说,帧内预测涉及使用帧内模式预测叶cu(或其分割区)。视频译码器可选择一组相邻先前经译码像素供叶cu用于预测叶cu(或其分割区)。叶cu还可包含一或多个变换单元(tu)。变换单元可以使用rqt(也被称作tu四叉树结构)来指定,如上文所论述。例如,分裂标志可指示叶cu是否分裂成四个变换单元。接着,每一tu可以进一步分裂成其它子tu。在tu未进一步分裂时,它可被称作叶tu。一般来说,对于帧内译码,所有属于叶cu的叶tu共享相同帧内预测模式。也就是说,相同帧内预测模式大体上应用于计算叶cu的所有tu的经预测值。对于帧内译码,视频编码器可使用帧内预测模式计算每一叶tu的残余值作为对应于tu的cu的部分和原始块之间的差。tu不必限于pu的大小。因此,tu可以大于或小于pu。对于帧内译码,cu的分割区或cu本身可以与cu的对应叶tu并置。在一些实例中,叶tu的最大大小可对应于对应叶cu的大小。此外,叶cu的tu还可与相应四叉树数据结构相关联,所述四叉树数据结构被称为残余四叉树(rqt)。也就是说,叶cu可包含指示叶cu如何分割成tu的四叉树。tu四叉树的根节点大体上对应于叶cu,而cu四叉树的根节点大体上对应于ctu(或lcu)。rqt中未分裂的tu被称为叶tu。大体来说,除非以其它方式标注,否则本公开分别使用术语cu和tu来指代叶cu和叶tu。视频序列通常包含一系列视频帧或图片,开始于随机存取点(rap)图片。视频序列可在表征视频序列的序列参数集(sps)中包含语法数据。图片的每一切片可包含描述相应切片的编码模式的切片语法数据。视频编码器20通常在单个视频切片内的视频块上操作,以便对视频数据进行编码。视频块可对应于cu内的译码节点。视频块可具有固定或变化的大小,且其大小可根据指定译码标准而不同。举例来说,预测可针对各种大小的pu来执行。假设特定cu的大小是2nx2n,帧内预测可在2nx2n或nxn的pu大小上执行,且帧间预测可在2nx2n、2nxn、nx2n或nxn的对称pu大小上执行。帧间预测的不对称分割也可针对2nxnu、2nxnd、nlx2n和nrx2n的pu大小执行。在不对称分割中,cu的一个方向未分割,而其它方向被分割成25%和75%。cu中对应于25%分割区的部分由后跟着“上”、“下”、“左”或“右”指示的“n”指示。因此,例如,“2nxnu”是指水平分割成具有2nx0.5npu在顶部且具有2nx1.5npu在底部的2nx2ncu。在本公开中,“nxn”和“n乘n”可互换使用,用于指代视频块在竖直和水平维度上的像素尺寸,例如,16x16像素或16乘16像素。大体来说,16x16块将在竖直方向上具有16个像素(y=16)且在水平方向上具有16个像素(x=16)。同样地,nxn块大体上在竖直方向上具有n个像素且在水平方向上具有n个像素,其中n表示非负整数值。块中的像素可成行和列布置。此外,块不需要必须在水平方向上具有和在竖直方向上相同的像素数目。例如,块可包括nxm个像素,其中m不必等于n。在使用cu的pu进行帧内预测性或帧间预测性译码之后,视频编码器20可计算cu的tu的残余数据。pu可包括描述在空间域(也被称作像素域)中生成预测性像素数据的方法或模式的语法数据,且tu可包括在向残余视频数据应用变换之后变换域中的系数,所述变换例如是离散余弦变换(dct)、整数变换、小波变换或在概念上类似的变换。残余数据可对应于未经编码图片的像素和对应于pu的预测值之间的像素差。视频编码器20可形成包含表示cu的残余数据的经量化变换系数的tu。也就是说,视频编码器20可计算残余数据(呈残余块形式),变换残余块以产生变换系数块,并且接着量化变换系数以形成经量化变换系数。视频编码器20可形成包含经量化变换系数以及其它语法信息(例如,tu的分裂信息)的tu。如上文所提到,在任何变换以产生变换系数后,视频编码器20可执行变换系数的量化。量化一般是指变换系数进行量化以可能地减少用于表示系数的数据量从而进一步压缩的过程。量化过程可减小与系数中的一些或全部相关联的位深度。例如,n位值可以在量化期间下舍入到m位值,其中n大于m。在量化之后,视频编码器可扫描变换系数,从包含经量化变换系数的二维矩阵产生一维向量。扫描可以设计成在阵列前部放置更高能量(并且因此,更低频率)系数,并在阵列后部放置更低能量(并且因此,更高频率)系数。在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化变换系数,以产生可以经熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可对一维向量进行熵编码,例如,根据上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间分割熵(pipe)译码或另一熵编码方法。视频编码器20还可对与经编码视频数据相关联的语法元素进行熵编码,以供视频解码器30在对视频数据进行解码时使用。为执行cabac,视频编码器20可向待传输符号指派上下文模型内的上下文。上下文可与(例如)符号的相邻值是不是非零有关。为执行cavlc,视频编码器20可为待传输符号选择可变长度码。vlc中的码字可以构造成使得相对较短的代码对应于更有可能的符号,而更长代码对应于不太可能的符号。通过这种方式,相对于(例如)针对每一待传输符号使用等长码字,使用vlc可实现位节省。概率确定可基于指派给符号的上下文。大体来说,视频解码器30执行与由视频编码器20执行的过程大体上类似但互逆的过程,以对经编码数据进行解码。例如,视频解码器30对经接收tu的系数进行逆量化和逆变换以重新产生残余块。视频解码器30使用经传送预测模式(帧内或帧间预测)以形成经预测块。接着,视频解码器30组合经预测块和残余块(在逐像素的基础上)以重新产生原始块。可执行额外处理,例如执行解块过程以减少沿着块边界的视觉假影。此外,视频解码器30可使用cabac以与视频编码器20的cabac编码过程大体上类似但互逆的方式对语法元素进行解码。视频编码器20可以进一步将基于块的语法数据、基于图片的语法数据和基于序列的语法数据等语法数据以图片标头、块标头、切片标头的形式或将序列参数集(sps)、图片参数集(pps)或视频参数集(vps)等其它语法数据发送到视频解码器30。图2是示出可经配置以执行本公开的一或多种dmvd技术的视频编码器20的实例的框图。例如,视频编码器20可经配置以向以下各项应用一或多个约束条件:(1)通过dmvd导出的mv,和/或(2)初始mv和通过dmvd导出的mv之间的mv差。在某些实例中,在向dmvd应用约束条件时,只有符合约束条件的所导出运动信息被视为有效运动信息。因此,如果没有使用约束条件,mv和最终选定mv的列表可能是不同的。在第一实例中,约束条件包含所导出mv是不是对称的。在第二实例中,约束条件包含初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的。在第三实例中,约束条件包含所导出mv是不是反对称的。在第四实例中,约束条件包含初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。在一些实例中,显式地传送对称/反对称mv/mv差约束条件的启用。在其它实例中,约束条件可以根据一些经译码信息隐式地确定。在其它实例中,可以在约束条件上设置条件,使得约束条件仅在一些实例中应用。具体地说,视频编码器20可在重构环路期间执行本公开的dmvd技术,其包含由逆量化单元58、逆变换单元60和求和器62执行的过程。此外,如上文所论述,视频编码器20可以传送可帮助视频解码器(例如,视频解码器30)执行dmvd的特定值。视频编码器20可在视频切片内执行视频块的帧内和帧间译码。帧内译码依赖于空间预测以减小或移除给定视频帧或图片内的视频的空间冗余。帧间译码依赖于时间预测以减小或移除视频序列的邻近帧或图片内的视频的时间冗余。帧内模式(i模式)可以指若干个基于空间的译码模式中的任一个。例如单向预测(p模式)或双向预测(b模式)的帧间模式可以指若干个基于时间的译码模式中的任一个。如图2所示,视频编码器20接收待编码视频帧内的当前视频块。在图2的实例中,视频编码器20包含视频数据存储器66、模式选择单元40、参考图片存储器64(其还可被称作经解码图片缓冲器(dpb))、求和器50、变换处理单元52、量化单元54和熵编码单元56。模式选择单元40又包含运动补偿单元44、运动估计单元42、帧内预测单元46和分割单元48。对于视频块重构,视频编码器20还包含逆量化单元58、逆变换单元60和求和器62。还可包含解块滤波器(图2中未示出),用于对块边界进行滤波以从经重构视频去除成块效应假影。如果需要,解块滤波器通常会对求和器62的输出进行滤波。除了解块滤波器之外,还可使用额外滤波器(在环路中或在环路后)。此类滤波器为简洁起见未示出,但是如果需要,可以对求和器50的输出进行滤波(作为环路内滤波器)。视频数据存储器66可经配置以存储通过视频编码器20的组件编码的视频数据。例如,可从视频源18获得存储在视频数据存储器101中的视频数据。经解码图片缓冲器116可以是存储参考视频数据以供视频编码器20对视频数据进行编码(例如,在帧内或帧间预测模式中)的参考图片存储器。视频数据存储器101可由各种存储器装置中的任一个形成,例如动态随机存取存储器(dram),包含同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其它类型的存储器装置。视频数据存储器101可由相同存储器装置或不同存储器装置提供。在各种实例中,视频数据存储器101可与视频编码器20的其它组件一起在片上,或相对于那些组件在片外。在编码过程期间,视频编码器20接收待译码视频帧或切片。帧或切片可以划分成多个视频块。运动估计单元42和运动补偿单元44相对于一或多个参考帧中的一或多个块对接收到的视频块执行帧间预测性编码以提供时间预测。帧内预测单元46可替代地相对于与待译码块相同的帧或切片中的一或多个相邻块对接收到的视频块执行帧内预测性编码以提供空间预测。视频编码器20可执行多遍译码,例如,以针对每一视频数据块选择适当的译码模式。此外,分割单元48可基于对先前译码遍次中的先前分割方案的评估而将视频数据块分割成子块。例如,分割单元48可首先将帧或切片分割成ctu,并基于速率失真分析(例如,速率失真优化)将每一个ctu分割成子cu。模式选择单元40可进一步产生指示ctu分割成子cu的四叉树数据结构。四叉树的叶节点cu可包含一或多个pu和一或多个tu。模式选择单元40可(例如)基于误差结果选择帧内或帧间预测模式中的一个,并且将所得经预测块提供到求和器50以生成残余数据,并将所得经预测块提供到求和器62以重构经编码块用作参考帧。模式选择单元40还向熵编码单元56提供语法元素,例如运动向量、帧内模式指示符、分割信息和其它此类语法信息。运动估计单元42和运动补偿单元44可高度集成,但是出于概念性目的分开说明。由运动估计单元42执行的运动估计是生成运动向量的过程,所述运动向量估计视频块的运动。例如,运动向量可指示当前视频帧或图片内的视频块的pu相对于参考帧(或其它经译码单元)内的预测性块(其相对于当前帧(或其它经译码单元)内正被译码的当前块)的位移。预测性块是被发现在像素差方面与待译码块密切匹配的块,像素差可通过绝对差总和(sad)、平方差总和(ssd)或其它差度量来确定。在一些实例中,视频编码器20可计算存储在参考图片存储器64中的参考图片的子整数像素位置的值。例如,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可相对于整数像素位置和分数像素位置执行运动搜索并以分数像素精度输出运动向量。运动估计单元42通过比较经帧间译码切片中的视频块的pu的位置与参考图片的预测性块的位置来计算pu的运动向量。参考图片可选自第一参考图片列表(list0)或第二参考图片列表(list1),其中的每一个标识存储在参考图片存储器64中的一或多个参考图片。运动估计单元42将计算出的运动向量发送到熵编码单元56和运动补偿单元44。由运动补偿单元44执行的运动补偿可涉及基于通过运动估计单元42确定的运动向量获取或生成预测性块。同样,在一些实例中,运动估计单元42和运动补偿单元44可以在功能上集成。在接收当前视频块的pu的运动向量后,运动补偿单元44可定位运动向量在一个参考图片列表中指向的预测性块。求和器50通过从正被译码的当前视频块的像素值减去预测性块的像素值形成像素差值来形成残余视频块,如下文所论述。大体来说,运动估计单元42执行相对于亮度分量的运动估计,并且运动补偿单元44针对色度分量和亮度分量两者使用基于亮度分量计算出的运动向量。模式选择单元40还可生成与视频块和视频切片相关联的语法元素,供视频解码器30在对视频切片的视频块进行解码时使用。帧内预测单元46可对当前块进行帧内预测,以作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,如上文所描述。具体来说,帧内预测单元46可确定要用来对当前块进行编码的帧内预测模式。在一些实例中,帧内预测单元46可例如在单独的编码编次期间使用各种帧内预测模式对当前块进行编码,且帧内预测单元46(或模式选择单元40,在一些实例中)可在经测试模式中选择要使用的适当帧内预测模式。例如,帧内预测单元46可针对各种经测试帧内预测模式使用速率失真分析来计算速率失真值,并且在经测试模式当中选择具有最佳速率失真特性的帧内预测模式。速率失真分析大体上确定经编码块和原始未经编码块之间的失真(或误差)量以及用于产生经编码块的位速率(即,位的数目),所述原始未经编码块先前以进行编码以产生经编码块。帧内预测单元46可针对各种经编码块根据失真和速率计算比率,以确定哪一帧内预测模式展现块的最佳速率失真值。在选择块的帧内预测模式之后,帧内预测单元46可向熵编码单元56提供指示块的选定帧内预测模式的信息。熵编码单元56可对指示选定帧内预测模式的信息进行编码。视频编码器20可在可包含多个帧内预测模式索引表和多个经修改帧内预测模式索引表(也被称作码字映射表)的经传输位流配置数据中包含各种块的编码上下文的定义以及最可能用于每一个上下文的帧内预测模式、帧内预测模式索引表和经修改帧内预测模式索引表的指示。视频编码器20通过从正被译码的原始视频块减去来自模式选择单元40的预测数据来形成残余视频块。求和器50表示执行这一减法运算的一或多个组件。变换处理单元52向残余块应用变换,例如离散余弦变换(dct)或在概念上类似的变换,以产生包括变换系数值的视频块。可以使用小波变换、整数变换、子带变换、离散正弦变换(dst)或其它类型的变换,而不是dct。在任何情况下,变换处理单元52向残余块应用变换,从而产生变换系数块。变换可将残余信息从像素域转换到变换域,例如频域。变换处理单元52可将所得变换系数发送到量化单元54。量化单元54量化变换系数以进一步减小位速率。量化过程可减小与系数中的一些或全部相关联的位深度。量化程度可通过调整量化参数来修改。在量化之后,熵编码单元56对经量化变换系数进行熵译码。例如,熵编码单元56可执行上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间分割熵(pipe)译码或另一熵译码技术。在基于上下文的熵译码的情况下,上下文可基于相邻块。在熵编码单元56进行熵译码之后,经编码位流可传输到另一装置(例如,视频解码器30),或存档以供随后传输或撷取。逆量化单元58和逆变换单元60分别应用逆量化和逆变换以在像素域中重构残余块。具体地说,求和器62将经重构建残余块与早先由运动补偿单元44或帧内预测单元46产生的运动补偿预测块相加以产生经重构建视频块,供在参考图片存储器64中存储。经重构建视频块可由运动估计单元42和运动补偿单元44用作参考块以对后续视频帧中的块进行帧间译码。图3是示出可经配置以执行本公开的一或多种dmvd技术的视频解码器30的实例的框图。例如,视频解码器30可经配置以向以下各项应用一或多个约束条件:(1)通过dmvd导出的mv,和/或(2)初始mv和通过dmvd导出的mv之间的mv差。在某些实例中,在向dmvd应用约束条件时,只有符合约束条件的所导出运动信息被视为有效运动信息。因此,如果没有使用约束条件,mv和最终选定mv的列表可能是不同的。在第一实例中,约束条件包含所导出mv是不是对称的。在第二实例中,约束条件包含初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的。在第三实例中,约束条件包含所导出mv是不是反对称的。在第四实例中,约束条件包含初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。在一些实例中,显式地传送对称/反对称mv/mv差约束条件的启用。在其它实例中,约束条件可以根据一些经译码信息隐式地确定。在其它实例中,可以在约束条件上设置条件,使得约束条件仅在一些实例中应用。在图3的实例中,视频解码器30包含视频数据存储器68、熵解码单元70、运动补偿单元72、帧内预测单元74、逆量化单元76、逆变换单元78、参考图片存储器82和求和器80。在一些实例中,视频解码器30可执行与关于视频编码器20(图2)描述的编码遍次大体上互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动向量而生成预测数据,而帧内预测单元74可基于从熵解码单元70接收的帧内预测模式指示符而生成预测数据。视频数据存储器68可存储将由视频解码器30的组件解码的经编码视频数据,例如经编码视频位流。存储在视频数据存储器68中的视频数据可例如从计算机可读媒体16(例如,从本地视频源,例如相机)通过视频数据的有线或无线网络通信或通过存取物理数据存储媒体而获得。视频数据存储器68可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(cpb)。参考图片存储器82可为存储用于供视频解码器30例如在帧内或帧间译码模式中对视频数据进行解码或用于输出的参考视频数据的存储器。视频数据存储器68和参考图片存储器82可由各种存储器装置中的任一种形成,例如dram,包含sdram、mram、rram或其它类型的存储器装置。视频数据存储器68和参考图片存储器82可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器68与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器68接收并存储位流的经编码视频数据(例如,nal单元)。熵解码单元70可从视频数据存储器68接收经编码视频数据(例如,nal单元),并且可解析nal单元以获得语法元素。熵解码单元70可对nal单元中的经熵编码语法元素进行熵解码。在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片和相关联的语法元素的视频块的经编码视频位流。视频解码器30的熵解码单元70对位流进行熵解码以生成经量化系数、运动向量或帧内预测模式指示符和其它语法元素。熵解码单元70将运动向量和其它语法元素转发到运动补偿单元72。视频解码器30可在视频切片层级和/或视频块层级处接收语法元素。当视频切片译码为经帧内译码(i)切片时,帧内预测单元74可基于从当前帧或图片的先前解码的块传送的帧内预测模式和数据来生成当前视频切片的视频块的预测数据。当视频帧译码为经帧间译码(例如,b或p)切片时,运动补偿单元72基于从熵解码单元70接收的运动向量和其它语法元素来产生当前视频切片的视频块的预测性块。预测性块可由一个参考图片列表内的一个参考图片产生。视频解码器30可基于存储在参考图片存储器82中的参考图片使用默认构建技术来构建参考帧列表,即list0和list1。运动补偿单元72通过解析运动向量和其它语法元素来确定当前视频切片的视频块的预测信息,并使用所述预测信息来产生正被解码的当前视频块的预测性块。例如,运动补偿单元72使用接收到的语法元素中的一些来确定用于对视频切片的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,b切片或p切片)、切片的参考图片列表中的一或多个的构建信息、切片的每一经帧间编码视频块的运动向量、切片的每一经帧间译码视频块的帧间预测状态,和对当前视频切片中的视频块进行解码的其它信息。运动补偿单元72还可基于内插滤波器执行内插。运动补偿单元72可使用视频编码器20在视频块的编码期间所使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元72可根据接收到的语法元素确定供视频编码器20使用的内插滤波器,并使用内插滤波器来产生预测性块。逆量化单元76对提供于位流中且经熵解码单元70解码的经量化变换系数进行逆量化,即解量化。逆量化过程可包含使用视频解码器30针对视频切片中的每一视频块计算的量化参数qpy以确定量化程度,以及同样地,应该应用的逆量化的程度。逆变换单元78向变换系数应用逆变换,例如,逆dct、逆整数变换或概念上类似的逆变换过程,以便在像素域中产生残余块。在运动补偿单元72基于运动向量和其它语法元素而生成当前视频块的预测性块之后,视频解码器30通过对来自逆变换单元78的残余块与由运动补偿单元72生成的对应预测性块进行求和来形成经解码视频块。求和器80表示执行这一求和运算的一或多个组件。如果需要,还可应用解块滤波器以对经解码块进行滤波,以便去除成块效应假影。还可使用其它环路滤波器(在译码环路中或在译码环路之后)以使像素转变平滑化,或以其它方式提高视频质量。接着,给定帧或图片中的经解码视频块存储在参考图片存储器82中,所述参考图片存储器82存储用于后续运动补偿的参考图片。参考图片存储器82还存储用于随后在显示装置上呈现的经解码视频,所述显示装置例如是图1的显示装置32。根据本公开的技术,例如视频编码器20和视频解码器30的视频译码器可执行dmvd以导出当前视频数据块的运动信息。具体地说,这些技术可包含以下技术中的任一个或全部,无论是单独的还是呈任何组合形式。本公开的一个概念是改进dmvd。如下文所论述,在若干个不同详细列举的方面中详述了所述技术。可以分别应用用于改进dmvd的以下技术。可替代地,可以一起应用本公开中描述的技术的任何组合。不管是分别应用还是呈任何组合形式应用,以下dmvd技术都可提高译码效率和/或降低位速率。例如,约束(1)通过dmvd导出的mv和/或(2)初始mv和通过dmvd导出的mv之间的mv差可以提高译码效率和/或降低位速率。在以上实例中的每一个中,可以基于某一条件来应用约束条件。在hevc中,切片中的最大译码单元被称作译码树块(ctb)或译码树单元(ctu)。ctb含有节点是译码单元的四叉树。在hevc主规范中,ctb的大小可在16x16到64x64的范围内(但是技术上,可以支持8x8ctb大小)。译码单元(cu)可为相同大小的ctb,但可以小到8x8。每一译码单元用一个模式译码。在cu经帧间译码时,它可以进一步分割成2个或4个预测单元(pu)或在没有应用进一步分割时变为一个pu。当在一个cu中存在两个pu时,这两个pu可以是一半大小的矩形或具有1/4或3/4大小的cu的两个矩形。在cu经帧间译码时,针对每一pu存在一组运动信息。此外,每一pu用唯一帧间预测模式译码以导出所述一组运动信息。在hevc标准中,存在两种帧间预测模式,分别名为预测单元(pu)的合并(跳过被视为合并的特殊情况)和高级运动向量预测(amvp)模式。在amvp或合并模式中,针对多个运动向量预测符维持运动向量(mv)候选项列表。当前pu的运动向量以及合并模式中的参考索引通过从mv候选项列表中获取一个候选项来生成。mv候选项列表对于合并模式含有最多5个候选项,对于amvp模式仅含有两个候选项。合并候选项可含有一组运动信息,例如,对应于两个参考图片列表(list0和list1)和参考索引的运动向量。如果合并候选项由合并索引标识,那么参考图片用于预测当前块,并且确定相关联的运动向量。然而,在来自list0或list1的每一潜在预测方向的amvp模式下,参考索引需要与mv预测符(mvp)索引一起显式传送到mv候选项列表,因为amvp候选项仅含有运动向量。在amvp模式中,经预测运动向量可以进一步细化。如上方可见,合并候选项对应于完整的一组运动信息,而amvp候选项仅含有特定预测方向和参考索引的一个运动向量。这两种模式的候选项以类似方式从相同空间和时间相邻块导出。dmvd技术的概念是供视频译码器(例如,视频编码器20或视频解码器30)使用先前经解码信息导出运动信息,例如运动向量和预测方向。如本文中所使用,首字母缩写“mv”表示运动向量。list0和list1是构造为经解码图片缓冲器(dpb)或参考图片存储器82(在图3中)中的图片列表的两个列表。被称作参考图片索引的索引用于标识这些列表中的一个中的特定图片。对于单向预测,图片可选自这些列表中的任一个。对于双向预测,选择两个图片,每个列表一个(例如,一个来自list0,一个来自list1)。在当前方法中,针对一些dmvd技术,例如双边模板匹配和帧速率上转换(fruc)模板匹配,独立确定通过dmvd导出的list0和list1mv。在本公开中,在基于初始mv推导双向预测mv(例如,包含list0mv和list1mv的一对mv)时,可以应用对称/反对称mv和/或对称/反对称mv差的约束条件。在一些实例中,可以应用超过一个约束条件,例如应用对称mv约束条件和对称mv差约束条件。约束条件可包含一或多个条件。在一些实例中,在向dmvd应用约束条件(例如,通过向从dmvd导出的mv和/或mv差应用约束条件)时,只有符合(例如,通过)约束条件的所导出运动信息可以被视为有效运动信息。例如,符合(例如,通过)约束条件的从dmvd导出的mv可以被视为有效mv,而不符合约束条件的从dmvd导出的mv可以被视为无效mv。作为另一实例,符合约束条件的从dmvd导出的mv差可以被视为有效mv差,而不符合约束条件的从dmvd导出的mv差可以被视为无效mv差。在一些实例中,视频译码器(例如,视频编码器20或视频解码器30)可经配置以使用有效运动向量信息对视频数据(例如,当前视频数据块)进行译码,且不使用无效运动向量信息对视频数据(例如,当前视频数据块)进行译码。在一些实例中,有效运动向量信息可接着与其它有效运动向量信息相比较,并选择确定具有最低成本度量的有效运动向量信息。对于特定pu(pu0),空间mv候选项从图4中所示的相邻块导出,但是用于从块生成候选项的方法对于合并和amvp模式来说是不同的。在合并模式中,可以图4a中所示的数字次序导出最多四个空间mv候选项,次序如下:左(0,a1)、上(1,b1)、右上(2,b0)、左下(3,a0)和左上(4,b2),如图4a所示。在avmp模式中,相邻块划分成两个群组:由块0和1组成的左群组,以及由块2、3和4组成的上群组,如图4b所示。对于每一群组,参考与由经传送参考索引指示的参考图片相同的参考图片的相邻块中的潜在候选项具有最高优先级被选中形成所述群组的最终候选项。有可能所有相邻块都不含有指向相同参考图片的运动向量。因此,如果无法找到此类候选项,那么第一可用候选项将进行缩放以形成最终候选项,由此可以经补偿时间距离差异。如果已启用且可用,那么时间运动向量预测符(tmvp)候选项在mv候选项列表中添加到空间运动向量候选项之后。tmvp候选项的运动向量推导过程对于合并和amvp模式来说是相同的,但是在合并模式中tmvp候选项的目标参考索引可始终设置为0。用于tmvp候选项推导的主块位置是在并置pu之外的右下块,如图5a中示为块“t”,以补偿用于生成空间相邻候选项的左上块的偏置。然而,如果所述块位于当前ctb行之外或者运动信息不可用,那么所述块被pu的中心块取代。tmvp候选项的运动向量从在切片级中指示的共址图片的共址pu导出。共址pu的运动向量被称作并置mv。类似于avc中的时间直接模式,为导出tmvp候选项运动向量,共址mv需要进行缩放以补偿时间距离差异,如图5中所示。下文论述合并模式和amvp模式的若干个方面。运动向量缩放:假设运动向量的值与图片的呈现时间距离成正比。运动向量使参考图片和含有运动向量的图片(即,含纳图片(containingpicture))这两个图片相关联。在一运动向量用于预测另一运动向量时,基于图片次序计数(poc)值计算含纳图片和参考图片的距离。对于待预测运动向量,它的相关联含纳图片和参考图片可以是不同的。因此,计算新距离(基于poc)。并且,运动向量基于这两个poc距离进行缩放。对于空间相邻候选项,这两个运动向量的含纳图片是相同的,而参考图片是不同的。在hevc中,运动向量缩放适用于空间和时间相邻候选项的tmvp和amvp两者。人工运动向量候选项生成:如果运动向量候选项列表是不完整的(即,小于预定最大数目的候选项),那么人工运动向量候选项生成,并插入列表末尾,直到列表具有所有的候选项为止。在合并模式中,存在两种类型的人工mv候选项:仅针对b切片导出的组合式候选项,以及在第一类型并不提供足够的人工候选项的情况下仅用于amvp的零候选项。对于已经在候选项列表中且具有必要的运动信息的每对候选项,双向组合式运动向量候选项可通过参考list0中的图片的第一候选项的运动向量与参考list1中的图片的第二候选项的运动向量的组合导出。用于候选项插入的修剪过程:来自不同块的候选项可能恰好相同,这降低了合并/amvp候选项列表的效率。可应用修剪过程来解决此问题。修剪过程比较一个候选项与当前候选项列表中的其它候选项以免插入在特定程度上相同的候选项。为减小复杂度,可以只应用有限数目的修剪过程,而不是将每一潜在候选项都与所有其它现有的候选项进行比较。在jem参考软件的一个实例中,存在若干个在解码器侧处导出或细化当前块的运动向量(mv)的帧间译码工具。这些dmvd方法详述如下。图6和7是示出模式匹配的运动向量推导(pmmvd)的概念的概念图。pmmvd模式是基于帧速率上转换(fruc)技术的特殊合并模式。通过此模式,块的运动信息在解码器侧处并不传送而是被导出。此技术包含在jem的一个实例中。在cu的合并标志为真时,传送cu的fruc标志。在fruc标志为假时,传送合并索引并使用规则合并模式。在fruc标志为真时,传送指示将使用哪一方法(双边匹配或模板匹配)来导出块的运动信息的额外fruc模式标志。在运动推导过程期间,首先基于双边匹配或模板匹配导出整个cu的初始运动向量。首先,检查还被称作pmmvd种子的cu的合并列表,并且选择产生最小匹配成本(例如,速率失真(rd)成本)的候选项作为起点。接着,执行围绕起点基于双边匹配或模板匹配的局部搜索,且产生最小匹配成本的mv被视为整个cu的mv。随后,在子块层级处进一步细化运动信息,其中所导出cu运动向量为起点。根据本公开的技术,可以基于例如通过dmvd导出的mv是对称的还是反对称的和/或(2)初始mv和通过dmvd导出的mv之间的mv差是对称还是反对称的,向所导出cu运动向量应用约束条件。在以上实例中的每一个中,可以基于例如关于初始mv或所导出mv的条件应用约束条件。如图6中所示,双边匹配用于通过在两个不同的参考图片(ref0和ref1)中沿着当前块(cur)的运动轨迹查找两个参考块(r0和r1)之间的最佳匹配来导出当前块的运动信息。运动轨迹可包含在将图像序列(例如,参考帧和当前帧)视为3维连续时空场时块中的像素穿过空间和时间所沿循的路径。假设连续运动轨迹,指向这两个参考块(r0和r1)的运动向量mv0和mv1与当前图片(cur)和这两个参考图片(ref0和ref1)之间的时间距离成正比。所导出mv600和602使用双边匹配导出,并且分别指向参考块r'0和r'1。作为特殊情况,当当前图片(cur)在时间上位于这两个参考图片(ref0和ref1)之间且从当前图片到这两个参考图片的时间距离相同时,双边匹配变成基于镜像的双向mv。导出的运动向量600和602必然以类似方式成镜像。如图7中所示,模板匹配用于通过查找当前图片中的模板(当前块的顶部和/或左侧相邻块)和参考图片(ref0和ref1)中的块(大小与模板相同)之间的最佳匹配来导出当前块(cur)的运动信息。模板可包含块的相邻像素,所述块用于通过搜索r0和r1的相邻块来比较所关注块(cur)与候选参考(具有mv0的r0和具有mv1的r1)或所导出参考(具有mv700的r'0和具有mv702的r'1)。接着,最为类似的参考用作预测。在视频编码器20处,对于针对cu是否使用fruc合并模式的判定是基于rd成本选择,如针对正常合并候选项所做的那样。也就是说,对于cu,均通过使用rd成本选择来检查这两个匹配模式(双边匹配和模板匹配)。产生最小成本的匹配模式进一步与其它cu模式相比较。如果fruc匹配模式是最高效的,那么针对cu,fruc标志设置为真,并使用相关匹配模式。在第5次jvet会议(可获自http://phenix.it-sudparis.eu/jvet/的“fruc模式中的增强模板匹配(enhancedtemplatematchinginfrucmode)”,jvet-e0035)中,提议进一步改进fruc模板匹配。示例性fruc模板匹配模式的流程图在图8中示出。在第一步骤中,发现模板t0(和其对应的运动信息mv0)匹配来自list0参考图片的当前块的当前模板tc。在第二步骤中,发现模板t1(和其对应的运动信息mv1)来自list1参考图片。使用所获得的运动信息mv0和mv1来执行双向预测以生成当前块的预测符。fruc模板匹配模式可以通过在单向预测和双向预测之间引入双向模板匹配和自适应选择来增强。在图9中对相对于图8的示例性修改加下划线。双向模板匹配可以基于单向模板匹配来实施。如图8中所示,在第一模板匹配步骤中从list0参考图片中首先发现匹配模板t0(800)。应注意,此处,list0仅用作实例。实际上,在第一步骤中使用list0还是list1对当前模板和对应参考图片中的初始模板之间的初始失真成本是自适应的。初始模板可确定具有在执行第一模板匹配之前可用的当前块的初始运动信息。对应于极小初始模板失真成本的参考图片列表将用于第一模板匹配步骤。例如,如果对应于list0的初始模板失真成本不大于对应于list1的成本,那么在第一模板匹配步骤中使用list0,且在第二步骤中使用list1,接着,当前块的当前模板tc更新如下:t'c=2*tc-t0使用经更新当前模板t'c,而不是当前模板tc,在第二模板匹配中从list1参考图片中查找另一匹配模板t1(802)。因此,通过联合使用list0和list1参考图片来查找匹配模板t1(804)。此匹配过程被称作双向模板匹配。用于运动补偿预测(mcp)的单向预测和双向预测之间的选择可基于模板匹配失真。如图9所示,在模板匹配期间,模板t0和tc(当前模板)之间的失真可以被计算为cost0(900),当前模板可以更新(902),且模板t1和t'c(经更新当前模板)之间的失真可以被计算为cost1(904)。如果cost0小于0.5*cost1(906),那么可以向fruc模板匹配模式应用基于mv0的单向预测(908);否则,应用基于mv0和mv1的双向预测(910)。应注意,cost0与0.5*cost1比较是因为cost1指示模板t1和t'c(经更新当前模板)之间的差,它是tc(当前模板)和它的预测0.5*(t0+t1)之间的差的2倍。应注意,mcp可以应用到pu层级运动细化。子pu层级运动细化可保持不变。根据本公开的技术,视频编码器20和视频解码器30可以基于以下在pu层级或子pu层级处约束从fruc模板匹配模式(单向和双向)导出的运动向量:(1)约束条件包含所导出mv是不是对称的,(2)初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的,(3)所导出mv是不是反对称的,和/或(4)初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。可以在约束条件上设置条件,使得约束条件仅基于初始mv或fruc模板应用。图10是示出在jem的一个实例中与双向光流有关的概念的概念图。双向光流(bio)是在双向预测的情况下在分块运动补偿之外执行的逐像素运动细化。因为bio补偿块内部的细微运动,所以启用bio使得用于运动补偿的块大小变大。样本级运动细化不需要穷尽性的搜索或信号传送,因为有一个明确的公式给出每一样本的精细运动向量。假设i(k)是在补偿块运动之后来自参考k(k=0、1)的亮度值,且分别是i(k)梯度的水平分量和竖直分量。假设光流有效,那么运动向量场(vx,vy)通过以下公式给出:针对每一样本的运动轨迹组合光流公式与hermite内插,得到一个独特的两端同时匹配函数值i(k)和导数的三阶多项式。在t=0时,此多项式的值是bio预测:此处,τ0和τ1表示如图10所示的到参考帧的距离。距离τ0和τ1基于ref0和ref1的poc来计算:τ0=poc(current)-poc(ref0),τ1=poc(ref1)-poc(current)。如果两个预测来自同一时间方向(均来自过去或均来自未来),那么符号不同τ0·τ1<0。在这种情况下,只有当预测不是来自同一时刻(τ0≠τ1)时才应用bio,两个参考区都具有非零运动(mvx0,mvy0,mvx1,mvy1≠0),并且块运动向量与时间距离成正比(mvx0/mvx1=mvy0/mvy1=-τ0/τ1)。运动向量场(vx,vy)通过最小化点a和b(图10上运动轨迹和参考帧平面的交点)中的值之间的差δ来确定。模型仅使用δ的局部泰勒展开式的第一个线性项:(1)中的所有值都取决于样本位置(i′,j′),所述样本位置到目前为止被省略。假设运动在局部环境中是一致的,使中心位于当前预测点(i,j)的(2m+1)×(2m+1)正方形窗口ω内部的δ最小化:对于这一优化问题,使用简化的求解,首先在竖直方向上最小化,然后在水平方向上最小化。得到:其中,为了避免被零或极小值除,在公式(2)、(3)中引入正则化参数r和m。r=500·4d-8(8)m=700·4d-8(9)此处,d是输入视频的内部位深。在一些实例中,bio的mv细化可能并不可靠,因为有噪声或运动不规则。因此,在bio中,mv细化的量值被截取为某一阈值(thbio)。基于当前图片的所有参考图片是否全都来自一个方向来确定阈值。如果当前图片的当前图片的所有参考图片都来自一个方向,那么阈值设置为12×214-d,否则,它设置为12×213-d。同时,使用与hevc运动补偿过程(2d可分离有限脉冲响应(fir))一致的操作利用运动补偿内插计算bio的梯度。此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中预测信号生成的内插滤波器。图11是示出8x4块的梯度计算的实例的概念图。对于8x4块,视频译码器获取运动经补偿预测符并计算当前块内的所有像素的水平/竖直(hor/ver)梯度,以及外面两排像素,因为求解每一像素的vx和vy需要中心位于每一像素的窗口ω内的像素的hor/ver梯度值和运动经补偿预测符,如公式(4)中所示。并且,在jem的一个实例中,这个窗口的大小设置为5x5。因此,视频译码器(例如,视频编码器20和/或视频解码器30)获取运动经补偿预测符,并且计算在点a和b周围的外面两排像素的梯度。表1:用于bio中梯度计算的滤波器分数像素位置梯度的内插滤波器(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}表2:用于bio中预测信号生成的内插滤波器分数像素位置预测信号的内插滤波器(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{1,-7,38,38,-7,1}在jem的实例中,在所述两个预测来自不同参考图片时向所有双向经预测块应用bio。在针对cu启用局部光照补偿(lic)时,停用bio。根据本公开的技术,视频编码器20和视频解码器30可以基于以下约束从bio导出的运动向量:(1)约束条件包含所导出mv是不是对称的,(2)初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的,(3)所导出mv是不是反对称的,和/或(4)初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。可以在约束条件上设置条件,使得约束条件仅基于初始mv应用。图12是示出与基于双边模板匹配的所提议解码器侧运动向量推导(dmvd)有关的概念的概念图。视频译码器可生成双边模板作为分别来自list0的初始mv0和list1的mv1的两个预测块(r0和r1)的加权组合,如图12中所示。在一个实例中,双边模板可以通过使用以下公式对list0和list1参考块(r0和r1)取平均来生成:(r0+r1)>>1或(r0+r1)/2。模板匹配操作包含计算所生成模板和参考图片中的样本区域(在初始预测块周围)之间的成本量度。对于所述两个参考图片(r0和r1)中的每一个,产生最小模板成本的mv被视为所述列表的经更新mv,以代替初始mv(来自list0的mv0或来自list1的mv1)。最后,这两个新mv,即mv0'和mv1',如图12中所示,用于使双向预测规则化。如块匹配运动估计中所常用的,绝对差总和(sad)用作成本量度。解码器侧运动向量推导(dmvd)可应用于双向预测的合并模式,其中一个来自过去的参考图片,另一个来自将来的参考图片,而无需传输额外语法元素。在jem4.0中,在针对一个cu选择lic、仿射(affine)、子cu合并候选项或fruc时,不应用dmvd。根据本公开的技术,视频编码器20和视频解码器30可以基于以下约束从基于dmvd的双边模板匹配导出的运动向量:(1)约束条件包含所导出mv是不是对称的、(2)初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的、(3)所导出mv是不是反对称的,和/或(4)初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。可以在约束条件上设置条件,使得约束条件仅基于初始mv或双边模板应用。图13a和13b是示出在jem的实例中与重叠块运动补偿(obmc)有关的概念的概念图。obmc一直用于早期版本的视频标准,例如,在h.263中。在jem的实例中,除了cu的右侧和底部边界以外,针对运动经补偿(mc)块边界执行obmc。此外,obmc应用于亮度和色度分量两者。在jem的一个实例中,mc块对应于译码块。在cu用子cu模式(包含子cu合并、仿射和fruc模式)译码时,cu的每一子块是mc块。为了以均匀方式处理cu边界,obmc对于所有mc块边界都在子块层级处执行,其中子块大小设置成等于4x4,如图13a和13b中所示。除了当前运动向量之外,视频编码器20和视频解码器30还可将obmc应用到当前子块,如果可用且不与当前运动向量相同,那么四个经连接相邻子块的运动向量也用于导出当前子块的预测块。这些基于多个运动向量的多个预测块进行组合以生成当前子块的最终预测信号。图14a-14d是示出obmc加权的概念图。图14a-14d说明基于相邻子块的运动向量的预测块表示为pn,其中n指示相邻上方(图14a)、下方(图14b)、左侧(图14c)和右侧(图14d)子块的索引,且基于当前子块的运动向量的预测块表示为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中。应注意,bio也应用于预测块pn的推导。在jem的实例中,对于大小小于或等于256个亮度样本的cu,传送指示obmc是否应用于当前cu的cu层级标志。对于大小大于256个亮度样本或者不用amvp模式译码的cu,默认应用obmc。在编码器处,在obmc应用于cu时,在运动估计阶段期间考虑它的影响。通过使用顶部相邻块和左侧相邻块的运动信息的预测信号用于补偿当前cu的原始信号的顶部和左侧边界,并且接着应用正常运动估计过程。根据本公开的技术,视频编码器20和视频解码器30可基于以下约束从obmc导出的运动向量:(1)约束条件包含所导出mv是不是对称的、(2)初始mv和通过dmvd方法导出的mv之间的mv差是不是对称的、(3)所导出mv是不是反对称的,和/或(4)初始mv和通过dmvd方法导出的mv之间的mv差是不是反对称的。可以在约束条件上设置条件,使得约束条件仅基于初始mv应用。dmvd相关方法(例如,bio、fruc双边匹配、fruc模板匹配、双边模板匹配等等)可提供有效位速率降低。本公开描述若干种可进一步改进dmvd的技术,从而可以提高译码效率和/或降低位速率。例如,约束(1)通过dmvd导出的mv和/或(2)初始mv和通过dmvd导出的mv之间的mv差可以提高译码效率和/或降低位速率。下方的表3描述下文所使用的各种术语。表3对称运动向量——在一些实例中,通过dmvd导出的mv可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得所导出mv必须对称。在一个实例中,为了对称,视频译码器(例如,视频编码器20或视频解码器30)可经配置以约束所导出mv,使得所导出mv符合以下相对于彼此的条件的一或多个(例如,所有):1.l0_mv_x_derived*(curr_poc-l1_poc_derived)=l1_mv_x_derived*(curr_poc-l0_poc_derived),和/或2.l0_mv_y_derived*(curr_poc-l1_poc_derived)=l1_mv_y_derived*(curr_poc-l0_poc_derived)。在一些实例中,上方的条件(1)和(2)可分别被视为单独的对称mv约束条件,或者在同时应用时可被视为单个对称mv约束条件。在这方面,本文中提及启用约束条件可以指启用一个用作约束条件的条件。例如,提及启用对称mv约束条件可包含:(i)启用上方的条件(1),(ii)启用上方的条件(2),或(iii)启用条件(1)和(2)。在一些实例中,为了实现进一步简化和/或译码改进,通过dmvd导出的mv可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得可能需要所导出mv符合下方条件(其可被称作伪对称条件)中的一或多个(例如,所有、在条件(1)为真时的条件(a)和/或(b),和/或在条件(2)为真时的条件(c)和/或(d)):1.当list0和list1参考图片均在当前图片之前或均在当前图片之后时(例如,(curr_poc-l0_poc_derived)*(curr_poc-l1_poc_derived)>0),a.l0_mv_x_derived=l1_mv_x_derived,和/或b.l0_mv_y_derived=l1_mv_y_derived;和/或2.当list0和list1参考图片并非均在当前图片之前或并非均在当前图片之后时(例如,(curr_poc-l0_poc_derived)*(curr_poc-l1_poc_derived)<0),c.l0_mv_x_derived=-1*l1_mv_x_derived,和/或d.l0_mv_y_derived=-1*l1_mv_y_derived。在一些实例中,视频译码器(例如,视频编码器20或视频解码器30)可经配置以通过配置成使用(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。例如,视频译码器(例如,视频编码器20或视频解码器30)可经配置以基于(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。对称运动向量差——在一些实例中,初始mv和通过dmvd导出的mv之间的mv差可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得mv差必须对称。mv差是初始mv和通过dmvd导出的mv之间的差。mv差可基于x分量和y分量来确定。在一个实例中,为了对称,视频译码器(例如,视频编码器20或视频解码器30)可经配置以需要所导出mv差符合以下条件中的一或多个(例如,所有):1.l0_mv_x_diff*(curr_poc-l1_poc_derived)=l1_mv_x_diff*(curr_poc-l0_poc_derived),和/或2.l0_mv_y_diff*(curr_poc-l1_poc_derived)=l1_mv_y_diff*(curr_poc-l0_poc_derived)。在一些实例中,为了实现进一步简化和/或译码改进,通过dmvd导出的mv差可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得可能需要所导出mv差符合以下条件(其可被称作伪对称条件)中的一或多个(例如,所有、在条件(1)为真时的条件(a)和/或(b),和/或在条件(2)为真时的条件(c)和/或(d)):1.当list0和list1参考图片均在当前图片之前或均在当前图片之后时(例如,(curr_poc-l0_poc_init)*(curr_poc-l1_poc_init)>0),a.l0_mv_x_diff=l1_mv_x_diff,和/或b.l0_mv_y_diff=l1_mv_y_diff;和/或2.当list0和list1参考图片并非均在当前图片之前或并非均在当前图片之后时(例如,(curr_poc-l0_poc_init)*(curr_poc-l1_poc_init)<0),c.l0_mv_x_diff=-1*l1_mv_x_diff,和/或d.l0_mv_y_diff=-1*l1_mv_y_diff。在一些实例中,视频译码器(例如,视频编码器20或视频解码器30)可经配置以通过配置成使用(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。例如,视频译码器(例如,视频编码器20或视频解码器30)可经配置以基于(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。反对称运动向量——在一些实例中,通过dmvd导出的mv可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得所导出mv必须反对称。在一个实例中,为了反对称,视频译码器(例如,视频编码器20或视频解码器30)可经配置以需要所导出mv符合以下条件中的一或多个(例如,所有):1.l0_mv_x_derived*(curr_poc-l1_poc_derived)=-1*l1_mv_x_derived*(curr_poc-l0_poc_derived),和/或2.l0_mv_y_derived*(curr_poc-l1_poc_derived)=-1*l1_mv_y_derived*(curr_poc-l0_poc_derived)。在一些实例中,为了实现进一步简化和/或译码改进,通过dmvd导出的mv差可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得可能需要所导出mv差符合以下条件(其可被称作伪反对称条件)中的一或多个(例如,所有、在条件(1)为真时的条件(a)和/或(b),和/或在条件(2)为真时的条件(c)和/或(d)):1.当list0和list1参考图片均在当前图片之前或均在当前图片之后时(例如,(curr_poc-l0_poc_derived)*(curr_poc-l1_poc_derived)>0),a.l0_mv_x_derived=-1*l1_mv_x_derived,和/或b.l0_mv_y_derived=-1*l1_mv_y_derived;和/或2.当list0和list1参考图片并非均在当前图片之前或并非均在当前图片之后时(例如,(curr_poc-l0_poc_derived)*(curr_poc-l1_poc_derived)<0),c.l0_mv_x_derived=l1_mv_x_derived,和/或d.l0_mv_y_derived=l1_mv_y_derived。在一些实例中,视频译码器(例如,视频编码器20或视频解码器30)可经配置以通过配置成使用(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。例如,视频译码器(例如,视频编码器20或视频解码器30)可经配置以基于(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。反对称运动向量差——在一些实例中,初始mv和通过dmvd导出的mv之间的mv差可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得mv差必须反对称。在一个实例中,为了反对称,视频译码器(例如,视频编码器20或视频解码器30)可经配置以需要所导出mv差符合以下条件中的一或多个(例如,所有):1.l0_mv_x_diff*(curr_poc-l1_poc_derived)=-1*l1_mv_x_diff*(curr_poc-l0_poc_derived),和/或2.l0_mv_y_diff*(curr_poc-l1_poc_derived)=-1*l1_mv_y_diff*(curr_poc-l0_poc_derived)。在一些实例中,为了实现进一步简化和/或译码改进,通过dmvd导出的mv差可受视频译码器(例如,视频编码器20或视频解码器30)约束,使得可能需要所导出mv差符合以下条件(其可被称作伪反对称条件)中的一或多个(例如,所有、在条件(1)为真时的条件(a)和/或(b),和/或在条件(2)为真时的条件(c)和/或(d)):1.当list0和list1参考图片均在当前图片之前或均在当前图片之后时(例如,(curr_poc-l0_poc_init)*(curr_poc-l1_poc_init)>0),a.l0_mv_x_diff=-1*l1_mv_x_diff,和/或b.l0_mv_y_diff=-1*l1_mv_y_diff;和/或2.当list0和list1参考图片并非均在当前图片之前或并非均在当前图片之后时(例如,(curr_poc-l0_poc_init)*(curr_poc-l1_poc_init)<0),c.l0_mv_x_diff=l1_mv_x_diff,和/或d.l0_mv_y_diff=l1_mv_y_diff。在一些实例中,视频译码器(例如,视频编码器20或视频解码器30)可经配置以通过配置成使用(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。例如,视频译码器(例如,视频编码器20或视频解码器30)可经配置以基于(例如)初始mv的poc信息和/或所导出mv的poc信息来检查或确定poc差。应用mv/mv差约束条件的条件——在一些实例中,关于dmvd运动信息的约束条件(例如,对称/反对称mv/mv差约束条件)的启用可显式地传送或可根据一些经译码信息隐式地确定。在一些实例中,传送约束条件的启用或确定约束条件的启用可分别描述为传送已应用或将应用约束条件或确定约束条件已应用或将应用。在一些实例中,视频编码器(例如,视频编码器20)可经配置以启用本文中所描述的mv和/或mv差约束条件中的一或多个。例如,视频编码器(例如,视频编码器20)可经配置以传送指示是否启用一或多个约束条件的一或多个值。作为一个实例,视频编码器(例如,视频编码器20)可经配置以传送位流中对应于第一语法元素的值,其中对应于第一语法元素的值指示是否启用一或多个对称mv约束条件。值可以是指示启用的真值(例如,值1)或指示停用的虚值(例如,值0),或者值可以是指示启用的虚值(例如,值0)或指示停用的真值(例如,值1)。在一些实例中,视频编码器(例如,视频编码器20)可经配置以仅在启用一或多个对称mv约束条件时传送对应于第一语法元素的值。在其它实例中,视频编码器(例如,视频编码器20)可经配置以仅在停用一或多个对称mv约束条件时传送对应于第一语法元素的值。作为另一实例,视频编码器(例如,视频编码器20)可经配置以传送位流中对应于第二语法元素的值,其中对应于第二语法元素的值指示是否启用一或多个对称mv差约束条件。值可以是指示启用的真值(例如,值1)或指示停用的虚值(例如,值0),或者值可以是指示启用的虚值(例如,值0)或指示停用的真值(例如,值1)。在一些实例中,视频编码器(例如,视频编码器20)可经配置以仅在启用一或多个对称mv差约束条件时传送对应于第二语法元素的值。在其它实例中,视频编码器(例如,视频编码器20)可经配置以仅在停用一或多个对称mv差约束条件时传送对应于第二语法元素的值。作为另一实例,视频编码器(例如,视频编码器20)可经配置以传送位流中对应于第三语法元素的值,其中对应于第三语法元素的值指示是否启用一或多个反对称mv约束条件。值可以是指示启用的真值(例如,值1)或指示停用的虚值(例如,值0),或者值可以是指示启用的虚值(例如,值0)或指示停用的真值(例如,值1)。在一些实例中,视频编码器(例如,视频编码器20)可经配置以仅在启用一或多个反对称mv约束条件时传送对应于第三语法元素的值。在其它实例中,视频编码器(例如,视频编码器20)可经配置以仅在停用一或多个反对称mv约束条件时传送对应于第三语法元素的值。作为另一实例,视频编码器(例如,视频编码器20)可经配置以传送位流中对应于第四语法元素的值,其中对应于第四语法元素的值指示是否启用一或多个反对称mv差约束条件。值可以是指示启用的真值(例如,值1)或指示停用的虚值(例如,值0),或者值可以是指示启用的虚值(例如,值0)或指示停用的真值(例如,值1)。在一些实例中,视频编码器(例如,视频编码器20)可经配置以仅在启用一或多个反对称mv差约束条件时传送对应于第四语法元素的值。在其它实例中,视频编码器(例如,视频编码器20)可经配置以仅在停用一或多个反对称mv差约束条件时传送对应于第四语法元素的值。在一些实例中,视频译码器(例如,视频解码器30)可经配置以接收位流,并基于存在于位流中且对应于一或多个语法元素(例如,本文中所描述的第一、第二、第三和第四语法元素中的一或多个)的一或多个值确定本文中所描述的mv和/或mv差约束条件中的一或多个是否启用。在其它实例中,视频译码器(例如,视频编码器20或视频解码器30)可经配置以基于其它经译码信息确定(例如,隐式地确定)本文中所描述的mv和/或mv差约束条件中的一或多个是否启用。自适应地启用本文中所描述的一或多个约束条件(例如,对称/反对称mv/mv差约束条件中的一或多个)的若干个实例条件列出如下。1.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv对称时启用。2.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv伪对称时启用。3.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv反对称时启用。4.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv伪反对称时启用。5.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv不对称时启用。6.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv非伪对称时启用。7.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv非反对称时启用。8.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv非伪反对称时启用。9.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv的list0和list1参考图片均在当前图片之前或均在当前图片之后时启用。10.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv的list0和list1参考图片并非均在当前图片之前或并非均在当前图片之后时启用。11.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv的参考索引均为零时启用。12.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在初始mv的参考索引并非均为零时启用。13.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在list0参考图片和当前图片之间的poc距离与list1参考图片和当前图片之间的poc距离相同时启用。14.在一些实例中,本文中所描述的一或多个约束条件(例如,一或多个对称/反对称mv/mv差约束条件)可仅在list0参考图片和当前图片之间的poc距离与list1参考图片和当前图片之间的poc距离不同时启用。15.在一些实例中,一或多个对称mv差约束条件可以在初始mv不对称时应用,16.在一些实例中,一或多个反对称mv差约束条件可以在初始mv对称时应用,17.在一些实例中,可以确定性的方式指派对称约束条件中的一或多个的mv分辨率。在一个实例中,对于双边模板匹配的整数像素细化,应该施加无对称/伪对称/不对称约束条件,且前述约束条件仅用于半像素、四分之一像素或更高精度的运动细化。约束水平(处于哪一mv分辨率)可以通过sps/pps/切片标头传送。分辨率还可与是否启用其它运动细化工具(例如,bio、子像素fruc)一同判定。例如,在启用bio时,约束条件不应施加于四分之一像素或更高精度的运动细化。18.在一些实例中,根据list0和list1mv之间的绝对差、list0和list1mv之间的经缩放(基于它们的相对poc距离)绝对差或list0和list1的经内插样本(即,此实例中的p0和p1)之间的初始sad值,约束水平可以是自适应的。在其它实例中,(当前模板,p0)和(当前模板,p1)之间的绝对差总和(sad)值的比率可用于判定应该在哪一mv分辨率下施加约束条件。在此实例中,如果sad值的比率低于阈值,那么不应该施加任何前述对称约束条件。表4列出基于符合以上条件而应用的条件和约束条件的实例。此实例在表4中示出为约束条件实例1,表4还包含不同约束条件的其它实例。表4:条件和约束条件的实例图15示出根据本公开的双边模板匹配的示例性用例。图15示出其中本文中所描述的一或多个伪对称mv差约束条件可以仅在初始mv不对称时应用到双边模板匹配的实例。根据此类实例,对于双边模板匹配,在初始mv不对称时,最终mv可以导出使得初始mv和最终mv之间的mv差必须是伪对称的。例如,如图15中所示,可首先使用list0(l0_mv_init,指向块r01502)和list1(l1_mv_init,指向块r11504)中的初始mv(例如,双向预测合并候选项的mv)通过对r0和r1取平均来导出双边模板1506,并且接着双边模板1506可用于搜索list0和list1中的最佳匹配块以查找最佳list0/list1mv。双边模板匹配可在预定义搜索范围(例如,-1到+1整数像素)内执行,所述预定义搜索范围的中心位于搜索块的list0/list1中的初始mv,例如,r'01508和r'11510。初始块(块r01502和块r11504)和搜索块(r'01508和r'11510)之间的差由相应的mv差(表示为l0_mv_diff和l1_mv_diff)示出。在一些实例中,list0和list1中仅具有伪对称mv差(比较l0_mv_diff和l1_mv_diff)的mv对可以被视为有效mv。接着,具有最佳匹配成本的有效mv对可以被视为通过双边模板匹配导出的最终mv。所示实例在上方示出的表4中表示为约束条件实例1。图16是示出根据本公开的技术的实例方法的流程图。图16的技术可由目的地装置14或视频解码器30(请参见图1和3)中的一或多个来实施。在本公开的一个实例中,视频解码器30可经配置以使用解码器侧运动向量推导(dmvd)生成多个所导出运动向量(100)。在一些实例中,使用dmvd生成所述多个所导出运动向量包括使用bio过程、fruc过程、双边匹配过程、fruc模板匹配过程或双边模板匹配过程中的一个。在一些实例中,视频解码器30可基于确定第一和第二初始运动向量是否符合一或多个条件来生成所述多个所导出运动向量。视频解码器30可经配置以基于成本度量并确定是否符合约束条件来确定所述多个所导出运动向量中的第一所导出运动向量和第二所导出运动向量(102)。在实例中,成本度量包含绝对差总和。约束条件可包含第一所导出运动向量和第二所导出运动向量是具有对称运动向量差,还是具有伪对称运动向量差,还是反对称的,还是具有反对称运动向量差,还是具有伪反对称运动向量差。视频解码器30可经配置以确定第一所导出运动向量和第二所导出运动向量是具有对称运动向量差,还是具有伪对称运动向量差,还是反对称的,还是具有反对称运动向量差,还是具有伪反对称运动向量差。约束条件可以通过位流传送,可以进行推导或预编程。在实例中,视频解码器30可经配置以确定第一所导出运动向量和第二所导出运动向量具有对称运动向量差包括确定:l0_mv_x_diff*(curr_poc-l1_poc_derived)=l1_mv_x_diff*(curr_poc-l0_poc_derived)或l0_mv_y_diff*(curr_poc-l1_poc_derived)=l1_mv_y_diff*(curr_poc-l0_poc_derived),其中:l0_mv_x_diff是第一初始运动向量和第一所导出运动向量之间的差的x分量,l0_mv_y_diff是第一初始运动向量和第一所导出运动向量之间的差的y分量,l1_mv_x_diff是第二初始运动向量和第二所导出运动向量之间的差的x分量,l1_mv_y_diff是第二初始运动向量和第二所导出运动向量之间的差的y分量,curr_poc是当前图片的当前poc,l0_poc_derived是第一运动向量列表的所导出poc,且l1_poc_derived是第二运动向量列表的所导出poc。在另一实例中,视频解码器30可经配置以确定第一所导出运动向量和第二所导出运动向量具有反对称运动向量差包括确定:l0_mv_x_diff*(curr_poc-l1_poc_derived)=-1*l1_mv_x_diff*(curr_poc-l0_poc_derived),或l0_mv_y_diff*(curr_poc-l1_poc_derived)=-1*l1_mv_y_diff*(curr_poc-l0_poc_derived),其中:l0_mv_x_diff是第一初始运动向量和第一所导出运动向量之间的差的x分量,l0_mv_y_diff是第一初始运动向量和第一所导出运动向量之间的差的y分量,l1_mv_x_diff是第二初始运动向量和第二所导出运动向量之间的差的x分量,l1_mv_y_diff是第二初始运动向量和第二所导出运动向量之间的差的y分量,curr_poc是当前图片的当前poc,l0_poc_derived是第一运动向量列表的所导出poc,且l1_poc_derived是第二运动向量列表的所导出poc。在另一实例中,视频解码器30可经配置以确定第一所导出运动向量和第二所导出运动向量反对称包括确定:l0_mv_x_derived*(curr_poc-l1_poc_derived)=-1*l1_mv_x_derived*(curr_poc-l0_poc_derived),或l0_mv_y_derived*(curr_poc-l1_poc_derived)=-1*l1_mv_y_derived*(curr_poc-l0_poc_derived),其中:l0_mv_x_derived是第一所导出运动向量的x分量,l0_mv_y_derived是第一所导出运动向量的y分量,l1_mv_x_derived是第二所导出运动向量的x分量,l1_mv_y_derived是第二所导出运动向量的y分量,curr_poc是当前图片的当前poc,l0_poc_derived是第一运动向量列表的所导出poc,且l1_poc_derived是第二运动向量列表的所导出poc。在另一实例中,视频解码器30可经配置以确定第一所导出运动向量和第二所导出运动向量具有伪对称运动向量差包括确定:l0_mv_x_diff=l1_mv_x_diff,l0_mv_y_diff=l1_mv_y_diff,l0_mv_x_diff=-1*l1_mv_x_diff,或l0_mv_y_diff=-1*l1_mv_y_diff;其中:l0_mv_x_diff是第一初始运动向量和第一所导出运动向量之间的差的x分量,l0_mv_y_diff是第一初始运动向量和第一所导出运动向量之间的差的y分量,l1_mv_x_diff是第二初始运动向量和第二所导出运动向量之间的差的x分量,且l1_mv_y_diff是第二初始运动向量和第二所导出运动向量之间的差的y分量。在另一实例中,视频解码器30可经配置以确定第一所导出运动向量和第二所导出运动向量具有伪反对称运动向量差包括确定:l0_mv_x_diff=l1_mv_x_diff,l0_mv_y_diff=l1_mv_y_diff,l0_mv_x_diff=-1*l1_mv_x_diff,或l0_mv_y_diff=-1*l1_mv_y_diff;其中:l0_mv_x_diff是第一初始运动向量和第一所导出运动向量之间的差的x分量,l0_mv_y_diff是第一初始运动向量和第一所导出运动向量之间的差的y分量,l1_mv_x_diff是第二初始运动向量和第二所导出运动向量之间的差的x分量,且l1_mv_y_diff是第二初始运动向量和第二所导出运动向量之间的差的y分量。在另一实例中,视频解码器30可经配置以确定运动向量候选项列表中的第一初始运动向量和运动向量候选项列表中的第二初始运动向量满足关于第一初始运动向量和第二初始运动向量之间的关系的至少一个条件,所述关系包括:第一初始运动向量和第二初始运动向量是对称的、第一初始运动向量和第二初始运动向量是伪对称的、第一初始运动向量和第二初始运动向量具有对称运动向量差、第一初始运动向量和第二初始运动向量是反对称的、第一初始运动向量和第二初始运动向量是伪反对称的,或第一初始运动向量和第二初始运动向量具有反对称运动向量差,其中生成所述多个所导出运动向量是基于第一初始运动向量和第二初始运动满足所述至少一个条件。在另一实例中,视频解码器30可经配置以确定运动向量候选项列表中的第一初始运动向量和运动向量候选项列表中的第二初始运动向量是在当前图片之前还是在当前图片之后,其中基于成本度量根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量进一步基于所述确定。在另一实例中,视频解码器30可经配置以确定与第一运动向量候选项列表相关联的第一参考图片和当前图片之间的第一图片次序计数(poc)距离是否为零且与第二运动向量候选项列表相关联的第二参考图片和当前图片之间的第二poc距离是否为零,其中基于成本度量根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量进一步基于所述确定。在另一实例中,视频解码器30可经配置以确定与第一运动向量候选项列表相关联的第一参考图片和当前图片之间的第一图片次序计数(poc)距离是否为零且与第二运动向量候选项列表相关联的第二参考图片和当前图片之间的第二poc距离是否为零,其中基于成本度量根据所述多个所导出运动向量确定第一所导出运动向量和第二所导出运动向量进一步基于以下确定:确定与第一运动向量候选项列表相关联的第一参考图片和当前图片之间的第一poc距离为零且与第二运动向量候选项列表相关联的第二参考图片和当前图片之间的第二poc距离为零。在另一实例中,视频解码器30可经配置以根据经编码视频位流确定至少一个约束条件。视频解码器30可经配置以使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行解码(104)。图17是示出根据本公开的技术的实例方法的流程图。图17的技术可由源装置12或视频编码器20(请参见图1和2)中的一或多个实施。视频编码器20可经配置以使用dmvd生成多个所导出运动向量(200)。在一些实例中,视频编码器20可基于确定第一和第二初始运动向量是否符合一或多个条件来生成所述多个所导出运动向量。视频编码器20可经配置以基于成本度量并确定是否符合约束条件来确定所述多个所导出运动向量中的第一所导出运动向量和第二所导出运动向量(202)。约束条件可包含第一所导出运动向量和第二所导出运动向量是具有对称运动向量差,还是具有伪对称运动向量差,还是反对称的,还是具有反对称运动向量差,还是具有伪反对称运动向量差。视频编码器20可经配置以使用所确定的第一所导出运动向量和第二所导出运动向量对当前块进行编码(204)。视频编码器20可经配置以对约束条件进行译码。视频编码器20可经进一步配置以通过位流发送约束条件。应认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可用不同顺序来执行,可添加、合并或全部省略所述动作或事件(例如,实践所述技术未必需要所有所描述动作或事件)。此外,在某些实例中,可(例如)通过多线程处理、中断处理或多个处理器同时而非依序地执行动作或事件。在一或多个实例中,所描述的功能可以用硬件、软件、固件或其任何组合实施。如果用软件实施,那么所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,并且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体的有形媒体,或通信媒体,所述通信媒体包含有助于例如根据通信协议将计算机程序从一处传递到另一处的任何媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或者一或多个处理器存取以撷取用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。借助于实例而非限制,此类计算机可读存储媒体可包含ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。并且,适当地将任何连接称作计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴电缆、光纤电缆、双绞线、dsl或例如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应理解,所述计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而是代替地针对非暂时性的有形存储媒体。如本文所使用的磁盘和光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘及蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。指令可由一或多个处理器执行,例如一或多个数字信号处理器(dsp)、通用微处理器、处理电路系统(包含固定功能电路系统和/或可编程处理电路系统)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它等效集成逻辑电路系统或离散逻辑电路系统。因此,如本文中所使用的术语“处理器”可指代上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一个。另外,在一些方面中,本文中所描述的功能性可设置在经配置以用于编码和解码的专用硬件和/或软件模块内,或并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。本公开的技术可实施于广泛多种装置或设备中,包括无线手持机、集成电路(ic)或一组ic(例如,芯片组)。本公开中描述各种组件、模块或单元以强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。确切地说,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。已描述各种实例。这些和其它实例在所附权利要求书的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1