掌桥专利:专业的专利平台
掌桥专利
首页

解码器侧细化工具的尺寸选择性应用

文献发布时间:2024-04-18 20:02:18


解码器侧细化工具的尺寸选择性应用

相关应用的交叉引用

本申请是申请日为2020年2月14日、申请号为202080013771.8的中国发明专利申请的分案申请,其根据适用的专利法和/或规则,本申请旨在及时要求2019年2月14日提交的国际专利申请编号PCT/CN2019/075068和2019年4月13日提交的国际专利申请编号PCT/CN2019/082585的优先权和权益。上述申请的全部公开内容通过引用并入,作为本申请公开内容的一部分。

技术领域

本文档涉及视频和图像编码和解码。

背景技术

数字视频在互联网和其他数字通信网络上占据了最大的带宽使用。随着能够接收和显示视频的联网用户设备的数量的增加,预计数字视频使用的带宽需求将继续增长。

发明内容

本文档公开了视频编解码(coding)工具,在一个示例方面,该视频编解码工具提高了与最终运动矢量表达或广义双向预测相关的当前编解码工具的编解码效率。

第一示例视频处理方法包括:通过至少基于权重参数实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化运动信息,其中,在当前视频块的最终预测块的生成过程中,权重参数被应用于预测块;以及至少使用细化运动信息和权重参数来执行当前视频块和视频的比特流表示之间的转换。

第二示例视频处理方法包括:确定由于视频的当前视频块的编解码工具的使用,对于当前视频块和视频的编解码表示之间的转换禁用解码器侧运动矢量推导(DMVD)方案的使用;以及基于该确定来执行当前视频块和视频的比特流表示之间的转换,其中,该编解码工具包括将不相等的加权因子应用于当前视频块的预测块。

第三示例视频处理方法包括:基于视频的当前视频块的一个或多个参考图片的图片顺序计数(POC)值和包含当前视频块的当前图片的POC值,确定对当前视频块是启用还是禁用一个或多个解码器侧运动矢量推导(DMVD)方案;以及根据该确定来执行当前视频块和视频的比特流表示之间的转换。

第四示例视频处理方法包括:通过对视频的当前视频块实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化运动信息,其中,对当前视频块启用对称运动矢量差(SMVD)模式;以及使用细化运动信息来执行当前视频块和视频的比特流表示之间的转换。

第五示例视频处理方法包括:基于包括当前视频块的视频的比特流表示中的字段,确定对当前视频块是启用还是禁用解码器侧运动矢量推导(DMVD)方案,其中,对当前视频块启用对称运动矢量差(SMVD)模式;在确定启用DMVD方案之后,通过对当前视频块实施DMVD方案来获得当前视频块的细化运动信息;以及使用细化运动信息来执行当前视频块和视频的比特流表示之间的转换。

第六示例视频处理方法包括:基于使用视频的当前视频块的块维度的规则,确定对于当前视频块和视频的比特流表示之间的转换是启用还是禁用多个解码器侧运动矢量推导(DMVD)方案;以及基于该确定来执行转换。

第七示例视频处理方法包括:确定是在视频的当前视频块的子块级别还是块级别执行多个解码器侧运动矢量推导(DMVD)方案;在确定在子块级别执行多个DMVD方案之后,通过在当前视频块的相同子块级别实施多个DMVD方案来获得当前视频块的细化运动信息;以及使用细化运动信息来执行当前视频块和视频的比特流表示之间的转换。

第八示例视频处理方法包括:确定对视频的当前视频块的多个分量是启用还是禁用解码器侧运动矢量推导(DMVD)方案;在确定启用DMVD方案之后,通过实施DMVD方案来获得当前视频块的细化运动信息;以及在DMVD方案的实施期间,执行当前视频块和视频的比特流表示之间的转换。

第九示例视频处理方法包括:基于使用视频的当前视频块的块维度的规则,进行对对于当前视频块和视频的比特流之间的转换是启用还是禁用第一方案的第一确定;其中,第一方案用于基于列表0的至少一个参考样点和列表1的至少一个参考样点之间的代价推导细化的运动信息;基于相同的规则,进行对对于该转换是启用还是禁用第二方案的第二确定,其中,第二方案为双向光流方案;以及基于第一确定和第二确定来执行该转换。

第十示例视频处理方法包括:基于当前视频块的第一分量的信息且不使用当前视频块的第二分量的信息,确定对于视频的当前视频块是启用还是禁用视频的当前视频块的第一方案,其中,第一方案用于基于参考图片列表0的至少一个参考样点和参考图片列表1的至少一个参考样点之间的代价来推导细化的运动信息;响应于确定启用第一方案,获得第一分量的细化的运动信息和第二分量的细化的运动信息;以及基于第一分量的细化的运动信息和第二分量的细化的信息,执行当前视频块和视频的比特流之间的转换。

第十一示例视频处理方法包括:通过基于至少一个权重参数实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化的运动信息,其中权重参数在当前视频块的最终预测块的生成过程中被应用于预测块;以及至少使用细化的运动信息和权重参数来执行当前视频块和视频的比特流之间的转换。

第十二示例视频处理方法包括:通过对视频的当前视频块实施解码器侧运动矢量推导(DMVD)来获得当前视频块的细化的运动信息,其中对当前视频块启用对称运动矢量差(SMVD)模式;以及使用细化的运动信息执行当前视频块和视频的比特流之间的转换,其中,DMVD方案包括解码器侧运动矢量细化(DMVR)方案和/或双向光流(BDOF)方案。

在另一示例方面,描述了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中该指令在由处理器执行时使处理器:基于使用视频的当前视频块的块维度的规则,进行对对于当前视频块和视频的比特流之间的转换是启用还是禁用第一方案的第一确定;其中,第一方案用于基于列表0的至少一个参考样点和列表1的至少一个参考样点之间的代价推导细化的运动信息;基于相同的规则,进行对对于该转换是启用还是禁用第二方案的第二确定,其中,第二方案为双向光流方案;以及基于第一确定和第二确定来执行该转换。

在另一示例方面,描述了一种存储指令的非暂时性计算机可读存储介质,该指令使处理器:基于使用视频的当前视频块的块维度的规则,进行对对于当前视频块和视频的比特流之间的转换是启用还是禁用第一方案的第一确定;其中,第一方案用于基于列表0的至少一个参考样点和列表1的至少一个参考样点之间的代价推导细化的运动信息;基于相同的规则,进行对对于该转换是启用还是禁用第二方案的第二确定,其中,第二方案为双向光流方案;以及基于第一确定和第二确定来执行该转换。

在另一示例方面,描述了一种非暂时性计算机可读记录介质,其存储由视频处理装置执行的方法生成的视频的比特流,其中该方法包括:基于使用视频的当前视频块的块维度的规则,进行对对于生成比特流是启用还是禁用第一方案的第一确定;其中,第一方案用于基于列表0的至少一个参考样点和列表1的至少一个参考样点之间的代价推导细化的运动信息;基于相同的规则,进行对对于生成比特流是启用还是禁用第二方案的第二确定,其中,第二方案为双向光流方案;以及基于第一确定和第二确定来生成比特流。

在另一示例方面,描述了一种存储视频的比特流的方法,包括:基于使用视频的当前视频块的块维度的规则,进行对对于生成比特流是启用还是禁用第一方案的第一确定;其中,第一方案用于基于列表0的至少一个参考样点和列表1的至少一个参考样点之间的代价推导细化的运动信息;基于相同的规则,进行对对于生成比特流是启用还是禁用第二方案的第二确定,其中,第二方案为双向光流方案;基于第一确定和第二确定来生成比特流;以及将所生成的比特流存储到非暂时性计算机可读记录介质中。

在另一示例方面,描述了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中该指令在被处理器执行时使处理器:基于当前视频块的第一分量的信息且不使用当前视频块的第二分量的信息,确定对于视频的当前视频块是启用还是禁用第一方案,其中,第一方案用于基于参考图片列表0的至少一个参考样点和参考图片列表1的至少一个参考样点之间的代价来推导细化的运动信息;响应于确定启用第一方案,获得第一分量的细化的运动信息和第二分量的细化的运动信息;以及基于第一分量的细化的运动信息和第二分量的细化的运动信息,执行当前视频块和视频的比特流之间的转换。

在另一示例方面,描述了一种存储指令的非暂时性计算机可读存储介质,该指令使处理器:基于当前视频块的第一分量的信息且不使用当前视频块的第二分量的信息,确定对于视频的当前视频块是启用还是禁用第一方案,其中,第一方案用于基于参考图片列表0的至少一个参考样点和参考图片列表1的至少一个参考样点之间的代价来推导细化的运动信息;响应于确定启用第一方案,获得第一分量的细化的运动信息和第二分量的细化的运动信息;以及基于第一分量的细化的运动信息和第二分量的细化的运动信息,执行当前视频块和视频的比特流之间的转换。

在另一示例方面,描述了一种非暂时性计算机可读记录介质,其存储由视频处理装置执行的方法生成的视频的比特流,其中该方法包括:基于当前视频块的第一分量的信息且不使用当前视频块的第二分量的信息,确定对于视频的当前视频块是启用还是禁用第一方案,其中,第一方案用于基于参考图片列表0的至少一个参考样点和参考图片列表1的至少一个参考样点之间的代价来推导细化的运动信息;响应于确定启用第一方案,获得第一分量的细化的运动信息和第二分量的细化的运动信息;以及基于第一分量的细化的运动信息和第二分量的细化的运动信息,基于当前视频块生成比特流。

在另一示例方面,描述了一种存储视频的比特流的方法,包括:基于当前视频块的第一分量的信息且不使用当前视频块的第二分量的信息,确定对于视频的当前视频块是启用还是禁用第一方案,其中,第一方案用于基于参考图片列表0的至少一个参考样点和参考图片列表1的至少一个参考样点之间的代价来推导细化的运动信息;响应于确定启用第一方案,获得第一分量的细化的运动信息和第二分量的细化的运动信息;基于第一分量的细化的运动信息和第二分量的细化的运动信息,基于当前视频块生成比特流;以及将所生成的比特流存储到非暂时性计算机可读记录介质中。

在另一示例方面,描述了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中该指令使处理器:通过基于至少一个权重参数实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化的运动信息,其中权重参数在当前视频块的最终预测块的生成过程中被应用于预测块;以及至少使用细化的运动信息和权重参数来执行当前视频块和视频的比特流之间的转换。

在另一示例方面,描述了一种存储指令的非暂时性计算机可读介质,其中,该指令在由处理器执行时,使得处理器:通过基于至少一个权重参数实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化的运动信息,其中权重参数在当前视频块的最终预测块的生成过程中被应用于预测块;以及至少使用细化的运动信息和权重参数来执行当前视频块和视频的比特流之间的转换。

在另一示例方面,描述了一种非暂时性计算机可读记录介质,其存储由视频处理装置执行的方法生成的视频的比特流,其中该方法包括:通过基于至少一个权重参数实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化的运动信息,其中权重参数在当前视频块的最终预测块的生成过程中被应用于预测块;以及至少使用细化的运动信息和权重参数来生成比特流。

在另一示例方面,描述了一种存储视频的比特流的方法,包括:通过基于至少一个权重参数实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化的运动信息,其中权重参数在当前视频块的最终预测块的生成过程中被应用于预测块;至少使用细化的运动信息和权重参数来生成比特流;以及将所生成的比特流存储到非暂时性计算机可读记录介质中。

在另一示例方面,描述了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中该指令在由处理器执行时使处理器:通过对视频的当前视频块实施解码器侧运动矢量推导(DMVD)来获得当前视频块的细化的运动信息,其中对当前视频块启用对称运动矢量差(SMVD)模式;以及使用细化的运动信息执行当前视频块和视频的比特流之间的转换,其中,DMVD方案包括解码器侧运动矢量细化(DMVR)方案和/或双向光流(BDOF)方案。

在另一示例方面,描述了一种存储指令的非暂时性计算机可读介质,其中,该指令在由处理器执行时,使得处理器:通过对视频的当前视频块实施解码器侧运动矢量推导(DMVD)来获得当前视频块的细化的运动信息,其中对当前视频块启用对称运动矢量差(SMVD)模式;以及使用细化的运动信息执行当前视频块和视频的比特流之间的转换,其中,DMVD方案包括解码器侧运动矢量细化(DMVR)方案和/或双向光流(BDOF)方案。

在另一示例方面,描述了一种非暂时性计算机可读记录介质,其存储由视频处理装置执行的方法生成的视频的比特流,其中该方法包括:通过对视频的当前视频块实施解码器侧运动矢量推导(DMVD)来获得当前视频块的细化的运动信息,其中对当前视频块启用对称运动矢量差(SMVD)模式;以及使用细化的运动信息生成比特流,其中,DMVD方案包括解码器侧运动矢量细化(DMVR)方案和/或双向光流(BDOF)方案。

在另一示例方面,描述了一种存储视频的比特流的方法,包括:通过对视频的当前视频块实施解码器侧运动矢量推导(DMVD)来获得当前视频块的细化的运动信息,其中对当前视频块启用对称运动矢量差(SMVD)模式;使用细化的运动信息生成比特流;以及将所生成的比特流存储到非暂时性计算机可读记录介质中,其中,DMVD方案包括解码器侧运动矢量细化(DMVR)方案和/或双向光流(BDOF)方案。

在另一示例方面,上述方法和在本专利文档中描述的方法可以由包括处理器的视频编码器装置或视频解码器装置来实施。

在另一示例方面,上述方法和在本专利文档中描述的方法可以以处理器可执行指令的形式存储在非暂时性计算机可读程序介质上。

这些以及其他方面将在本文档中进一步描述。

附图说明

图1示出了Merge候选列表构建的示例推导过程。

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

图3示出了考虑用于空域Merge候选的冗余检查的候选对的示例。

图4A-图4B示出了N×2N和2N×N分割的第二PU的示例位置。

图5是时域Merge候选的运动矢量缩放的图示。

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

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

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

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

图10示出了用于推导照明补偿(illumination compensation,IC)参数的临近样点的示例。

图11A-图11B分别示出了4参数仿射和6参数仿射模式的简化仿射运动模型。

图12示出了每一子块的仿射运动矢量场(motion vector field,MVF)的示例。

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

图14示出了继承仿射候选的AF INTER的运动矢量预测值(motion vectorpredictor,MVP)。

图15示出了构建的仿射候选的AF_INTER的MVP。

图16A-图16B示出了AF_MERGE的候选的示例。

图17示出了仿射Merge模式的候选位置的示例。

图18示出了最终运动矢量表达(ultimate motion vector expression,UMVE)搜索过程的示例。

图19示出了UMVE搜索点的示例。

图20示出了基于双边模板匹配的解码器侧运动矢量细化(decoder side motionvector refinement,DMVR)的示例。

图21示出了在DMVR中列表0和列表1之间镜像的运动矢量差MVD(0,1)的示例。

图22示出了可以在一次迭代中检查的MV的示例。

图23示出了用于实施本文档中所描述的技术的硬件平台的示例。

图24A-图24H是视频处理的示例方法的八个示例流程图。

图25示出了解码器侧运动矢量推导的对称模式的示例。

图26是示出其中可以实施本文公开的各种技术的示例视频处理系统的框图。

图27是示出根据本公开的一些实施例的视频编解码系统的框图。

图28是示出根据本公开的一些实施例的编码器的框图。

图29是示出根据本公开的一些实施例的解码器的框图。

具体实施方式

本文档提供了视频比特流的解码器可以使用的各种技术,以提高解压缩或解码的数字视频的质量。此外,视频编码器还可以在编码的过程期间实施这些技术,以便重构用于进一步编码的解码帧。

为了便于理解,在本文档中使用了章节标题,并且不将实施例和技术限制于对应的章节。如此以来,来自一个章节的实施例可以与来自其它章节的实施例组合。

1.概述

本发明涉及视频编解码技术。具体地,它涉及在视频编解码中应用于预测块的不相等权重和运动矢量细化的交互。它可以应用于现有的视频编解码标准,如高效视频编解码HEVC,或即将要定案的标准(例如,多功能视频编解码(VVC))。它也可以应用于未来的视频编解码标准或视频编解码器。

2.浅谈

视频编解码标准主要是通过熟知的ITU-T和ISO/IEC标准的发展而演变的。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4可视化,并且这两个组织联合制定了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(Advanced Video Coding,AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中使用时域预测加变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索组(Joint Video Exploration Team,JVET)。此后,JVET采用了许多新方法,并将其放入名为联合探索模型(Joint Exploration Model,JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家组(JVET)成立,以致力于VVC标准,目标是与HEVC相比比特率降低50%。

VVC草案的最新版本,即多功能视频编解码(草案2),可在以下网址找到:

http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zip。

VVC的最新参考软件名为VTM,可在以下网址找到:

https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1。

2.1HEVC/H.265的帧间预测

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

当用跳过模式对CU进行编解码时,一个PU与该CU相关联,并且不存在显著的残差系数、没有编解码的运动矢量增量或参考图片索引。规定Merge模式,由此从包括空域和时域候选的临近PU获得当前PU的运动参数。Merge模式可以应用于任何帧间预测的PU,而不仅仅对于跳跃模式。Merge模式的可选方案是运动参数的显式传输,其中每一PU显式地信令通知运动矢量(更准确地,与运动矢量预测值相比的运动矢量差(Motion VectorDifference,MVD))、每个参考图片列表的对应参考图片索引和参考图片列表的使用。在本公开中,这种模式被称为高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)。

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

当信令指示要使用两个参考图片列表两者时,从两个样点块中产生PU。这被称为“双向预测”。双向预测仅可用于B条带。

以下文本提供了关于HEVC中规定的帧间预测模式的详细信息。描述将从Merge模式开始。

2.1.1参考图片列表

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

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

2.1.2Merge模式

2.1.2.1Merge模式的候选的推导

当使用Merge模式预测PU时,从比特流中解析指向Merge候选列表中的条目的索引并将其用于检索运动信息。在HEVC标准中规定了该列表的构建,并且可以按照以下步骤的序列进行概述:

·步骤1:初始候选推导

○步骤1.1:空域候选推导

○步骤1.2:空域候选的冗余检查

○步骤1.3:时域候选推导

·步骤2:附加候选插入

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

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

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

在下文中,将详细描述与上述步骤相关联的操作。

图1示出了Merge候选列表构建的示例推导过程。

2.1.2.2空域候选推导

在空域Merge候选的推导中,在位于图2中描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A

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

图3示出了考虑用于空域Merge候选的冗余检查的候选对的示例。

图4A-图4B示出了N×2N和2N×N分割的第二PU的示例位置。

2.1.2.3时域候选推导

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

图5是时域Merge候选的运动矢量缩放的图示。

在属于参考帧的并置PU(Y)中,在候选C

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

2.1.2.4附加候选插入

除了空域和时域的Merge候选之外,存在两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空域和时域的Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,则它们将形成新的双向预测候选。作为示例,图7示出了当原始列表(在左边)中的两个候选(其具有mvL0和refIdxL0或mvL1和refIdxL1)用于创建被添加到最终列表(在右边)的组合的双向预测Merge候选。存在许多关于组合的规则,这些规则被考虑以生成这些附加Merge候选。

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

插入零运动候选以填充Merge候选列表中的剩余条目,并因此达到MaxNumMergeCand容量。这些候选具有零空域位移和参考图片索引,该索引从零开始并且每次向列表中添加新的零运动候选时增加。最后,不对这些候选执行冗余检查。

2.1.3AMVP

AMVP利用运动矢量与临近PU的时空相关性,该时空相关性用于运动参数的显式传输。对于每个参考图片列表,通过首先检查左边、上边的时域临近的PU位置的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度,来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测值,并发送指示所选候选的对应索引。与Merge索引信令类似,使用截断一元对最佳运动矢量候选的索引进行编码。在这种情况下,要编码的最大值是2(见图8)。在接下来的章节中,将提供关于运动矢量预测候选的推导过程的细节。

2.1.3.1AMVP候选的推导

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

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

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

2.1.3.2空域运动矢量候选

在空域运动矢量候选的推导中,在从位于如图2所描绘的位置的PU中推导的五个潜在候选当中考虑最多两个候选,那些位置与运动Merge的位置相同。当前PU的左侧的推导顺序被定义为A

·没有空域缩放

-(1)相同的参考图片列表,以及相同的参考图片索引(相同的POC)-(2)不同的参考图片列表,但是相同的参考图片(相同的POC)

·空域缩放

-(3)相同的参考图片列表,但是不同的参考图片(不同的POC)-(4)不同的参考图片列表,以及不同的参考图片(不同的POC)

首先检查非空域缩放情况,然后是空域缩放。当不管参考图片列表如何POC在临近PU的参考图片与当前PU的参考图片之间都不同时,考虑空域缩放。如果左边候选的所有PU都不可用或者都是帧内编解码的,则允许针对上边运动矢量的缩放以帮助对左边和上边MV候选的并行推导。否则,针对上边运动矢量不允许空域缩放。

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

如图9所描绘的,在空域缩放过程中,以与时域缩放类似的方式来缩放临近PU的运动矢量。主要差异在于参考图片列表和当前PU的索引被给定作为输入;实际缩放过程与时域缩放的过程相同。

2.1.3.3时域运动矢量候选

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

2.2JEM中的局部照明补偿

局部照明补偿(Local Illumination Compensation,LIC)基于照明变化的线性模型,使用缩放因子a和偏移b。并且对于每个帧间模式编解码的编解码单元(CU)自适应地启用或禁用它。

图10示出了用于推导IC参数的临近样点的示例。

当LIC应用于CU时,采用最小平方误差法以通过使用当前CU的临近样点及其对应的参考样点来推导参数a和b。更具体地,如图12所示,使用参考图片中的CU的子采样(2:1子采样)临近样点和对应的样点(由当前CU或子CU的运动信息识别)。

2.2.1预测块的推导

分别对于每个预测方向推导和应用IC参数。对于每个预测方向,用解码的运动信息来生成第一预测块,然后经由应用LIC模型获得时域预测块。之后,利用两个时域预测块来推导最终预测块。

当用Merge模式对CU进行编解码时,以类似于Merge模式下的运动信息复制的方式,从临近块复制LIC标志;否则,为CU信令通知LIC标志以指示LIC是否适用。

当对图片启用LIC时,需要附加的CU级别RD检查来确定是否将LIC应用于CU。当对CU启用LIC时,绝对差的均值移除和(Mean-Removed Sum of Absolute Difference,MR-SAD)和绝对哈达玛(Hadamard)变换差的均值移除和(Mean-Removed Sum of AbsoluteHadamard-Transformed Difference,MR-SATD)(而不是SAD和SATD)分别用于整数像素运动搜索和分数像素运动搜索。

为了降低编码复杂度,在JEM中应用以下编码方案。

当当前图片及其参考图片之间没有明显的照明变化时,对整个图片禁用LIC。为了识别这种情况,在编码器处计算当前图片和当前图片的每个参考图片的直方图。如果当前图片和当前图片的每个参考图片之间的直方图差小于给定阈值,则对当前图片禁用LIC;否则,对当前图片启用LIC。

2.3 VVC中的帧间预测方法

有几种用于帧间预测改进的新编解码工具,诸如用于信令通知MVD的自适应运动矢量差分辨率(Adaptive Motion Vector difference Resolution,AMVR)、仿射预测模式、三角预测模式(Triangular Prediction Mode,TPM)、高级TMVP(Advanced TMVP,ATMVP,又称SbTMVP)、广义双向预测(Generalized Bi-Prediction,GBI)、双向光流(Bi-directionalOptical flow,BIO或BDOF)。

2.3.1 VVC中的编解码块结构

在VVC中,采用四叉树/二叉树/多叉树(QT/BT/TT)结构将图片划分成正方形块或矩形块。

除了QT/BT/TT之外,在VVC中对于I帧还采用分开的树(separate tree)(又名双重编解码树)。对于分开的树,编解码块结构是对于亮度分量和色度分量单独地信令通知的。

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

在HEVC中,当条带头中use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知(PU的运动矢量和预测运动矢量之间的)运动矢量差(MVD)。在VVC中,引入了局部自适应运动矢量分辨率(Locally Adaptive Motion Vector Resolution,AMVR)。在VVC中,可以以四分之一亮度样点、整数亮度样点或四亮度样点(即1/4像素、1像素、4像素)为单位对MVD进行编解码。在编解码单元(CU)级别控制MVD分辨率,并且对于具有至少一个非零MVD分量的每个CU,有条件地信令通知MVD分辨率标志。

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

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

2.3.3仿射运动补偿预测

在HEVC中,只有平移运动模型被应用于运动补偿预测(Motion CompensationPrediction,MCP)。而在现实世界中,有许多种运动,例如,放大/缩小、旋转、透视运动和其他不规则运动。在VVC中,用4参数仿射模型和6参数仿射模型应用简化的仿射变换运动补偿预测。如图13所示,对于4参数仿射模型,块的仿射运动场由两个控制点运动矢量(ControlPoint Motion Vector,CPMV)描述,而对于6参数仿射模型,由3个CPMV描述。

图11A-图11B分别示出了4参数仿射模式和6参数仿射模式的简化仿射运动模型。

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

/>

其中,(mv

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

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

在MCP之后,每个子块的高精度运动矢量被取整并保存为与正常运动矢量相同的精度。

2.3.3.1仿射预测的信令

类似于平移运动模型,也有两种模式用于信令通知由于仿射预测而产生的边信息。它们是AFFINE_INTER和AFFINE_MERGE模式。

2.3.3.2AF_INTER模式

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

在这种模式下,对于每个参考图片列表(列表0或列表1),仿射AMVP候选列表按以下顺序用三种类型的仿射运动预测值构建,其中每个候选包括当前块的估计CPMV。在编码器侧(诸如图17中的mv

1)继承仿射运动预测值

检查顺序类似于HEVC AMVP列表构建中的空域MVP。首先,从{A1,A0}中的、被仿射编解码并且具有与当前块中相同的参考图片的第一块中推导左边继承的仿射运动预测值。第二,从{B1,B0,B2}中的、被仿射编解码并且具有与当前块中相同的参考图片的第一块推导上边继承的仿射运动预测值。图16中描绘了五个块A1、A0、B1、B0、B2。

一旦发现临近块是用仿射模式进行编解码的,则覆盖临近块的编解码单元的CPMV被用于推导当前块的CPMV的预测值。例如,如果A1是用非仿射模式进行编解码的,并且A0是用4参数仿射模式进行编解码的,则左边继承的仿射MV预测值将从A0推导出。在这种情况下,覆盖A0的CU的CPMV(如图17所示,对于左上方的CPMV表示为

2)构建的仿射运动预测值

如图17所示,构建的仿射运动预测值包括从具有相同参考图片的临近帧间编解码块推导出的控制点运动矢量(CPMV)。如果当前仿射运动模型是4参数仿射,则CPMV的数量是2,否则如果当前仿射运动模型是6参数仿射,则CPMV的数量是3。左上方的CPMV

如果当前仿射运动模型是4参数仿射,则只有当

如果当前仿射运动模型是6参数仿射,则只有当

当将构建的仿射运动预测值插入候选列表时,不应用修剪过程。

3)正常AMVP运动预测值

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

1)通过将所有CPMV设置为等于

2)通过将所有CPMV设置为等于

3)通过将所有CPMV设置为等于

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

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

注意,

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

图14示出了继承的仿射候选的AF_INTER的MVP。

图15示出了构建的仿射候选的AF_INTER的MVP。

图16A-图16B示出了AF_Merge的候选的示例。

在AF_INTER模式下,当使用4/6参数仿射模式时,需要2/3个控制点,并且因此需要为这些控制点编解码2/3个MVD,如图15所示。在JVET-K0337中,提出按如下方式来推导MV,即从mvd

其中,

2.3.3.3 AF_Merge模式

当在AF_MERGE模式下应用CU时,它从有效的临近重构块中获得用仿射模式编解码的第一块。并且候选块的选择顺序是从左、上、右上、左下到左上,如图17所示(依次由A、B、C、D、E表示)。例如,如果临近的左下块以仿射模式进行编解码,如图17中A0所表示,则提取元素B、包含块A的临近的CU/PU的左上角、右上角和左下角的控制点(CP)运动矢量mv

在根据等式(1)和(2)中的简化仿射运动模型推导出当前CU的CPMV mv

在JVET-L0142和JVET-L0632中,仿射Merge候选列表由以下步骤构建:

1)插入继承的仿射候选

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

2)插入构建的仿射候选

如果仿射Merge候选列表中的候选数量小于MaxNumAffineCand(例如,被设置为5),则将构建的仿射候选插入候选列表。构建的仿射候选是指通过组合每个控制点的临近运动信息来构建候选。

a)控制点的运动信息首先从图19所示的指定空域邻居和时域邻居推导。CPk(k=1,2,3,4)代表第k个控制点。A0、A1、A2、B0、B1、B2和B3是用于预测CPk(k=1,2,3)的空域位置;T是用于预测CP4的时域位置。

CP1、CP2、CP3和CP4的坐标分别是(0,0)、(W,0)、(H,0)和(W,H),其中W和H是当前块的宽度和高度。

图17示出了仿射Merge模式的候选位置的示例。

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

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

-对于CP2,检查优先级为B1->B0。

-对于CP3,检查优先级为A1->A0。

-对于CP4,使用T。

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

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

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

III.按以下顺序将构建的仿射候选的组合插入候选列表:

{CP1,CP2,CP3}、{CP1,CP2,CP4}、{CP1,CP3,CP4}、{CP2,CP3,CP4}、{CP1,CP2}、{CP1,CP3}

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

3)用零运动矢量进行填充

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

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

2.3.4具有运动矢量差的Merge(Merge with Motion Vector Difference,MMVD)

在JVET-L0054中,提出了最终运动矢量表达(UMVE,也称为MMVD)。UMVE通过所提出的运动矢量表达方法而用于跳过模式或Merge模式。

UMVE重用与VVC中的规则Merge候选列表中相同的Merge候选。在Merge候选当中,可以选择基本候选(base candidate),并通过所提出的运动矢量表达方法将其进一步扩展。

UMVE提供了一种新的运动矢量差(MVD)表示方法,该方法使用起点、运动幅度和运动方向来表示MVD。

图18示出了UMVE搜索过程的示例。

图19示出了UMVE搜索点的示例。

这种所提出的技术按原样使用Merge候选列表。但是对于UMVE的扩展,仅考虑默认Merge类型(MRG_TYPE_DEFAULT_N)的候选。

基本候选索引(IDX)定义了起点。基本候选索引指示列表中的候选当中的最佳候选,如下所示。

表1.基本候选IDX

如果基本候选的数量等于1,则不信令通知基本候选IDX。

距离索引是运动幅度信息。距离索引指示距起点信息的预定义距离。预定义距离如下所示:

表2.距离IDX

方向索引表示MVD相对于起点的方向。方向索引可以表示如下所示的四个方向。

表3.方向IDX

在发送跳过标志或Merge标志之后立即信令通知UMVE标志。如果跳过标志或Merge标志为真,则解析UMVE标志。如果UMVE标志等于1,则解析UMVE语法。但是,如果不是1,则解析AFFINE标志。如果AFFINE标志等于1,即为AFFINE模式,但是如果不是1,则解析跳过/Merge索引以用于VTM的跳过/Merge模式。

不需要由于UMVE候选的附加行缓冲区(line buffer)。因为软件的跳过/Merge候选被直接用作基本候选。使用输入的UMVE索引,在运动补偿之前决定MV的补充。没有必要为此保留长的行缓冲区。

在当前通用测试条件下,可以选择Merge候选列表中的第一个或第二个Merge候选作为基本候选。

UMVE也被称为具有MV差的Merge(MMVD)。

2.3.5解码器侧运动矢量细化(DMVR)

在双向预测操作中,对于一个块区域的预测,分别使用列表0的运动矢量(MV)和列表1的MV所形成的两个预测块被组合以形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,双向预测的两个运动矢量被进一步细化。

2.3.5.1JEM中的DMVR

在JEM设计中,通过双边模板匹配过程来细化运动矢量。双边模板匹配应用于解码器中,以在双边模板和参考图片中的重构样点之间执行基于失真的搜索,以便在不发送附加运动信息的情况下获得细化的MV。图22中描述了示例。从初始的列表0的MV0和列表1的MV1分别生成双边模板作为两个预测块的加权组合(即平均值),如图22所示。模板匹配操作包括计算生成的模板和参考图片中的(初始预测块周围的)样点区域之间的代价度量。对于两个参考图片中的每一个,产生最小模板代价的MV被认为是该列表中用以替换原始MV的更新后的MV。在JEM中,对于每个列表搜索9个MV候选。9个MV候选包括原始MV和8个周围MV,其中8个周围MV在水平或垂直方向或两个方向上相对于原始MV偏移一个亮度样点。最后,两个新的MV(即如图22所示的MV0′和MV1′)用于生成最终的双向预测结果。绝对差和(sum ofabsolute differences,SAD)被用作代价度量。请注意,当计算由一个周围MV生成的预测块的代价时,取整后的MV(取整到整数像素)实际上用于获得预测块,而不是实际的MV。

图20示出了基于双边模板匹配的DMVR的示例。

2.3.5.2VVC中的DMVR

对于VVC中的DMVR,如图21所示,假设列表0和列表1之间的MVD镜像,并且执行双边匹配以细化MV,即在几个MVD候选当中找到最佳MVD。由MVL0(L0X,L0Y)和MVL1(L1X,L1Y)表示两个参考图片列表的MV。对于列表0,由(MvdX,MvdY)表示的能够最小化代价函数(例如,SAD)的MVD被定义为最佳MVD。对于SAD函数,它被定义为列表0的参考块和列表1的参考块之间的SAD,其中,列表0的参考块是用列表0参考图片中的运动矢量(L0X+MvdX,L0Y+MvdY)推导出的,并且列表1的参考块是用列表1参考图片中的运动矢量(L1X-MvdX,L1Y-MvdY)推导出的。

运动矢量细化过程可以迭代两次。如图22所示,在每次迭代中,可以分两个步骤检查最多6个MVD(具有整数像素精度)。在第一步骤中,检查MVD(0,0)、(-1,0)、(1,0)、(0,-1)、(0,1)。在第二步骤中,可以选择并进一步检查MVD(-1,-1)、(-1,1)、(1,-1)或(1,1)之一。假设函数Sad(x,y)返回MVD(x,y)的SAD值。在第二步骤中检查的由(MvdX,MvdY)表示的MVD被如下决定:

MvdX=-1;

MvdY=-1;

如果(Sad(1,0)

则MvdX=1;

如果(Sad(0,1)

则MvdY=1;

在第一次迭代中,起点是信令通知的MV,并且在第二次迭代中,起点是信令通知的MV加上在第一次迭代中选择的最佳MVD。DMVR仅适用于一个参考图片是前一图片而另一参考图片是后一图片并且两个参考图片具有距当前图片相同的图片顺序计数距离的情况。

图21示出了在DMVR中列表0和列表1之间镜像的MVD(0,1)的示例。

图22示出了可以在一次迭代中检查的MV的示例。

为了进一步简化DMVR的过程,JVET-M0147对JEM中的设计提出了若干改变。更具体地,对VTM-4.0(即将发布)采用的DMVR设计具有以下主要特征:

·当列表0和列表1之间的(0,0)位置SAD小于阈值时,提前终止。

·当列表0和列表1之间的SAD对于某一位置为零时,提前终止。

·DMVR的块尺寸:W*H>=64&&H>=8,其中W和H是块的宽度和高度。

·对于尺寸>16*16的CU的DMVR,将CU划分成多个16×16子块。如果仅CU的宽度或高度大于16,则仅在垂直或水平方向上进行划分。

·参考块尺寸(W+7)*(H+7)(对于亮度)。

·基于25点SAD的整数像素搜索(即(+-)2细化搜索范围,单级(single stage))

·基于双线性插值的DMVR。

·基于“参数误差曲面方程”的子像素细化。仅当最小SAD代价不等于零并且在最后一次MV细化迭代中最佳MVD为(0,0)时,才执行此过程。

·具有参考块填充(如果需要的话)的亮度/色度MC。

·仅用于MCV和TMVP的细化MV。

2.3.5.2.1 DMVR的使用

当以下条件全部为真时,DMVR可以被启用:

-SPS中的DMVR启用标志(即sps_dmvr_enabled_flag)等于1

-TPM标志、帧间仿射标志和子块Merge标志(ATMVP或仿射Merge)、MMVD标志都等于0

-Merge标志等于1

-当前块是双向预测的,并且列表1中的当前图片和参考图片之间的POC距离等于列表0中的参考图片和当前图片之间的POC距离

-当前CU高度大于或等于8

-亮度样点的数量(CU宽度*高度)大于或等于64

2.3.5.2.2基于“参数误差曲面方程”的子像素细化

该方法概述如下:

1.仅当中心位置是给定迭代中的最佳代价位置时,才计算参数误差曲面拟合。

2.中心位置代价和距离中心的(-1,0)、(0,-1)、(1,0)和(0,1)位置处的代价被用于拟合以下形式的2-D抛物线误差曲面方程:

E(x,y)=A(x-x

其中(x

x

y

可以通过调整执行除法的精度(即计算多少比特的商)来将(x

3.将计算出的(x

2.3.6组合的帧内和帧间预测

在JVET-L0100中,提出了多假设预测,其中组合的帧内和帧间预测是生成多个假设的一种方式。

当应用多假设预测来改进帧内模式时,多假设预测将一个帧内预测和一个Merge索引预测进行组合。在Merge CU中,当标志为真时,对于Merge模式信令通知一个标志,以从帧内候选列表中选择帧内模式。对于亮度分量,帧内候选列表是从包括DC、平面、水平和垂直模式的4种帧内预测模式推导出的,并且取决于块形状,帧内候选列表的尺寸可以是3或4。当CU宽度大于CU高度的两倍时,水平模式不包括在帧内模式列表内,并且当CU高度大于CU宽度的两倍时,从帧内模式列表中移除垂直模式。使用加权平均来组合由帧内模式索引选择的一个帧内预测模式和由Merge索引选择的一个Merge索引预测。对于色度分量,DM总是在没有额外信令的情况下应用。组合预测的权重描述如下。当选择DC或平面模式,或者CB宽度或高度小于4时,应用相等的权重。对于CB宽度和高度大于或等于4的那些CB,当选择水平/垂直模式时,首先将一个CB垂直/水平划分成四个等面积区域。表示为(w_intra

2.3.7.JVET-M0481中的对称运动矢量差

在JVET-M0481中,提出对称运动矢量差(Symmetric Motion Vector Difference,SMVD)以用于双向预测中的运动信息编解码。

首先,在条带级别,变量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。最终运动矢量如下式所示。

图25示出了对称模式的示例图示。

编解码单元语法的修改如表4所示(以粗体斜体)

表4-编解码单元语法的修改

/>

/>

3.当下视频编解码技术的问题

当前解码器侧运动矢量推导(DMVD)可能存在以下问题:

1.即使当对当前图片启用加权预测时,也启用DMVR。

2.当两个参考图片具有距当前图片的不同的POC距离时,禁用DMVR。

3.对于不同的块尺寸,启用DMVR和BIO。

a.当W*H>=64&&H>=8时,启用DMVR

b.当H>=8&&!(W==4&&H==8)时,启用BIO

4.在不同的子块级别执行DMVR和BIO。

a.可以在子块级别执行DMVR。当CU的宽度和高度都大于16时,将其划分成16×16子块。否则,当CU的宽度大于16时,在垂直方向上将其划分成16×H子块,并且当CU的高度大于16时,在水平方向上将其划分成W×16子块。

b.在块级别执行BIO。

4.示例技术和实施例

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

在该文档中,DMVD包括执行运动估计以推导或细化块/子块运动信息的方法(如DMVR和FRUC)以及执行样点式运动细化的BIO。

应用于预测块的不相等的权重可以指在编解码工具的GBI过程、LIC过程、加权预测过程或其他编码/解码过程中使用的权重,这些过程需要对预测块应用附加的操作,而不是对两个预测块进行平均等。

假设列表0和列表1中的参考图片分别为Ref0和Ref1,当前图片和Ref0之间的POC距离为PocDist0(即当前图片的POC减去Ref0的POC),并且Ref1和当前图片之间的POC距离为PocDist1(即Ref1的POC减去当前图片的POC)。在本专利文档中,PocDist1与PocDis1相同,并且PocDist0与PocDis0相同。分别将块的宽度和高度表示为W和H。假设函数abs(x)返回x的绝对值。

1.在最终预测块生成过程中应用于预测块的参数(例如,权重信息)可以在DMVD过程中使用。

a.可以向解码器信令通知这些参数,诸如用GBi或加权预测。GBi也被称为具有编解码单元(CU)权重的双向预测(bi-prediction CU Weight,BCW)。

b.可以在解码器处推导这些参数,诸如用LIC。

c.这些参数可以用于将样点值集合映射到另一样点值集合的整形过程。d.在一个示例中,应用于预测块的参数可以应用于DMVD。

i.在一个示例中,当计算代价函数(例如,SAD、MR-SAD、梯度)

时,首先将根据GBI索引的加权因子应用于预测块,然后计算代价。

ii.在一个示例中,当计算代价函数(例如,SAD、MR-SAD、梯度)

时,首先将根据加权预测的加权因子和/或偏移应用于预测块,然后计算代价。

iii.在一个示例中,当计算代价函数(例如,SAD、MR-SAD、梯度)

时,首先将根据LIC参数的加权因子和/或偏移应用于预测块,

然后计算代价。

iv.在一个示例中,当计算BIO中的时域梯度和空域梯度时,首先将根据GBI索引的加权因子应用于预测块,然后计算这些梯度。

v.在一个示例中,当计算BIO中的时域梯度和空域梯度时,首先将根据加权预测的加权因子和/或偏移应用于预测块,然后计算这些梯度。

vi.在一个示例中,当计算BIO中的时域梯度和空域梯度时,首先将根据LIC参数的加权因子和/或偏移应用于预测块,然后计算这些梯度。

vii.可替换地,此外,代价计算(例如,SAD、MR-SAD)/梯度计算在整形域(reshapeddomain)中执行。

viii.可替换地,此外,在运动信息被细化之后,对用细化运动信息生成的预测块禁用整形过程。

e.在一个示例中,可以在GBI模式或/和LIC模式或/和加权预测或/和多假设预测中禁用DMVD。

f.在一个示例中,当两个参考图片的加权因子和/或偏移不同时,可以在加权预测中禁用DMVD。

g.在一个示例中,当两个参考块的加权因子和/或偏移不同时,可以在LIC中禁用DMVD。

2.即使当第一图片顺序计数距离(PocDis0)不等于第二图片顺序计数距离(PocDis1)时,DMVD过程(例如,DMVR或BIO)也可以适用于双向预测块。

a.在一个示例中,可以根据关于PocDis0和PocDis1的相同规则来启用或禁用所有DMVD过程。

i.例如,当PocDis0等于PocDis1时,可以启用所有DMVD过程。ii.例如,当PocDis0不等于PocDis1时,可以启用所有DMVD过程。

1.可替换地,此外,当PocDis0*PocDist1小于0时,可以禁用所有DMVD过程。

iii.例如,当PocDis0不等于PocDis1时,可以禁用所有DMVD过程。

iv.例如,当PocDis0*PocDist1小于0时,可以禁用所有DMVD过程。

b.在一个示例中,对于PocDis0等于PocDis1的情况,启用当前设计。i.在一个示例中,列表0的MVD可以被镜像到列表1。也就是说,如果(MvdX,MvdY)被用于列表0,则(-MvdX,-MvdY)被用于列表1以识别两个参考块。

ii.可替换地,列表1的MVD可以镜像到列表0。也就是说,如果(MvdX,MvdY)被用于列表1,则(-MvdX,-MvdY)被用于列表0以识别两个参考块。

c.可替换地,代替对列表0和列表1使用镜像MVD(即(MvdX,MvdY)被用于列表0,然后(-MvdX,-MvdY)可以被用于列表1),可以改为使用非镜像MVD来识别两个参考块。

i.在一个示例中,可以根据PocDist0和PocDist1将列表0的MVD缩放到列表1。

1.由(MvdX,MvdY)表示列表0的所选择的MVD,然后选择(-MvdX*PocDist1/PocDist0,-MvdY*PocDist1/PocDist0)作为应用于列表1的MVD。

ii.在一个示例中,可以根据PocDist0和PocDist1将列表1的MVD缩放到列表0。

1.由(MvdX,MvdY)表示列表1的所选择的MVD,然后选择(-MvdX*PocDist0/PocDist1,-MvdY*PocDist0/PocDist1)作为应用于列表0的MVD。

iii.缩放中的除法运算可以通过查找表、多重运算和向右右运算(right-rightoperation)来实施。

d.如何定义两个参考图片的MVD(例如,是否使用镜像或通过MVD的缩放)可以取决于参考图片。

i.在一个示例中,如果abs(PocDist0)小于或等于abs(PocDist1),则可以根据PocDist0和PocDist1将列表0的MVD缩放到列表1。

ii.在一个示例中,如果abs(PocDist0)大于或等于abs(PocDist1),则可以根据PocDist0和PocDist1将列表0的MVD缩放到列表1。

iii.在一个示例中,如果abs(PocDist1)小于或等于abs(PocDist0),则可以根据PocDist0和PocDist1将列表1的MVD缩放到列表0。

iv.在一个示例中,如果abs(PocDist1)大于或等于abs(PocDist0),则可以根据PocDist0和PocDist1将列表1的MVD缩放到列表0。

v.在一个示例中,如果一个参考图片是当前图片的前一图片,并且另一参考图片是当前图片的后一图片,则可以将列表0的MVD镜像到列表1,并且不执行MVD缩放。

e.是否以及如何应用一种DMVD可以取决于PocDist0的符号和PocDist1的符号。

i.在一个示例中,只能在PocDist0*PocDist1<0时进行一种DMVD。

ii.在一个示例中,只能在PocDist0*PocDist1>0时进行一种DMVD。

f.可替换地,当PocDist0不等于PocDist1时,可以禁用DMVD过程(例如,DMVR或BIO)。

3.可以在SMVD模式下启用DMVR或/和其他DMVD方法。

a.在一个示例中,根据SMVD模式的从比特流的解码的MVD/MV可以在被用于解码一个块之前被进一步细化。

b.在一个示例中,在SMVD模式下,如果MV/MVD精度为N像素,则可以使用DMVR或/和其他DMVD方法来通过mvdDmvr细化MVD。mvdDmvr具有M像素精度。N、M=1/16、1/8、1/4、1/2、1、2、4、8、16等。

i.在一个示例中,M可以小于或等于N。

c.在一个示例中,在SMVD模式下可以不信令通知MVD,而是可以应用DMVR或/和其他DMVD方法来生成MVD。

i.可替换地,此外,可以不信令通知AMVR信息,并且可以推导具有预定值的MV/MVD精度(例如,MVD具有1/4像素精度)。

1.在一个示例中,预定义值的指示可以在序列/图片/片组/条带/片

/视频数据单元级别被信令通知。

2.在一个示例中,预定义值可以取决于模式/运动信息,诸如仿射或非仿射运动。

d.在一个示例中,对于SMVD编解码的块,可以信令通知是否应用

DMVR或/和其他DMVD方法的指示。

i.如果应用DMVR或/和其他DMVD方法,则可以不信令通知MVD。ii.在一个示例中,对于某些MV/MVD精度,可以信令通知这种指示。例如,对于1像素或/和4像素的MV/MVD精度,可以信令通知这种指示。

iii.在一个示例中,仅当PocDist0等于PocDist1并且在显示顺序中Ref0是当前图片的前一图片并且Ref1是当前图片的后一图片时,

可以信令通知这种指示。

iv.在一个示例中,仅当PocDist0等于PocDist1并且在显示顺序中Ref0是当前图片的后一图片并且Ref1是当前图片的前一图片时,

可以信令通知这种指示。

e.在一个示例中,DMVR或/和其他DMVD方法是否应用于SMVD编解码的块取决于当前块和/或临近块的编解码信息。

i.例如,DMVR或/和其它DMVD方法是否应用于SMVD编解码的块可以取决于当前的块维度。

ii.例如,DMVR或/和其它DMVD方法是否应用于SMVD编解码的块可以取决于参考图片的信息,诸如POC。

iii.例如,DMVR或/和其他DMVD方法是否应用于SMVD编解码的块可以取决于信令通知的MVD信息。

4.可以根据关于块维度的相同规则来启用DMVR或/和BIO或/和所有DMVD方法。

a.在一个示例中,当W*H>=T1&&H>=T2时,可以启用DMVR和BIO或/和所有DMVD方法和/或所提出的方法。例如,T1=64且T2=8。

b.在一个示例中,H>=T1&&!(W==T2&&H==T1),可以启用DMVR和BIO或/和所有DMVD方法。例如,T1=8且T2=4。

c.在一个示例中,当块尺寸包含少于M*H个样点时,例如,16或32或64个亮度样点,不允许DMVR和BIO或/和所有DMVD方法。

d.在一个示例中,当块尺寸包含多于M*H个样点时,例如,16或32或64个亮度样点,不允许DMVR和BIO或/和所有DMVD方法。

e.可替换地,当块的宽度或/和高度的最小尺寸小于或不大于X时,不允许DMVR和BIO或/和所有DMVD方法。在一个示例中,X被设置为8。

f.可替换地,当块的宽度>th1或>=th1和/或块的高度>th2或>=th2时,不允许DMVR和BIO或/和所有DMVD方法。在一个示例中,th1和/或th2被设置为64。

i.例如,对M×M(例如,128×128)块禁用DMVR和BIO或/和所有DMVD方法。

ii.例如,对N×M/M×N块禁用DMVR和BIO或/和所有DMVD方法,例如,其中N>=64,M=128。

iii.例如,对N×M/M×N块禁用DMVR和BIO或/和所有DMVD方法,例如,其中N>=4,M=128。

g.可替换地,当块的宽度

5.可以在相同的子块级别执行DMVR和BIO或/和所有DMVD方法。

a.可以在子块级别执行运动矢量细化过程,诸如DMVR。

i.可以在子块级别而不是整个块级别进行双边匹配。

b.可以在子块级别执行BIO。

i.在一个示例中,可以在子块级别进行对启用/禁用BIO的确定。

ii.在一个示例中,可以在子块级别进行BIO中的样点式运动细化。iii.在一个示例中,可以在子块级别进行对启用/禁用BIO的确定和BIO中的样点式运动细化。

c.在一个示例中,当块的宽度>=LW或高度>=LH或者宽度>=LW且高度>=LH时,该块可以被划分成多个子块。每个子块以与尺寸等于子块尺寸的正常编解码块相同的方式对待。

i.在一个示例中,L为64,64×128/128×64块被划分成两个64×64子块,并且128×128块被划分成四个64×64子块。然而,N×128/128×N块(其中N<64)没有被划分成子块。L值可以指LH和/或LW。

ii.在一个示例中,L为64,64×128/128×64块被划分成两个64×64子块,并且128×128块被划分成四个64×64子块。同时,N×128/128×N块(其中N<64)被划分成两个N×64/64×N子块。

L值可以指LH和/或LW。

iii.在一个示例中,当宽度(或高度)大于L时,将其垂直(或水平)

划分,并且子块的宽度或/和高度不大于L。L值可以指LH和/

或LW。

d.在一个示例中,当块的尺寸(即,宽度*高度)大于阈值L1时,可以将其划分成多个子块。每个子块以与尺寸等于子块尺寸的正常编解码块相同的方式对待。

i.在一个示例中,块被划分成尺寸相同且不大于L1的子块。

ii.在一个示例中,如果块的宽度(或高度)不大于阈值L2,则不将其垂直(或水平)划分。

iii.在一个示例中,L1为1024,并且L2为32。例如,16×128块被划分成两个16×64子块。

e.阈值L可以是预定义的或者以SPS/PPS/图片/条带/片组/片级别信令通知。

f.可替换地,阈值可以取决于某些编解码信息,诸如块尺寸、图片类型、时域层索引等。

6.是否以及如何应用一种DMVD的决定可以一次做出并且被所有颜色分量共享,或者可以对于不同颜色分量多次做出。

a.在一个示例中,基于Y(或G)分量的信息做出对于DMVD的决定,并且随后是其他颜色分量。

b.在一个示例中,基于Y(或G)分量的信息做出对Y(或G)分量应用的DMVD的决定。并且基于Cb(或Cb或B或R)分量的信息做出对Cb(或Cb或B或R)分量应用的DMVD的决定。

图23是视频处理装置2300的框图。装置2300可以用于实施本文描述的一种或多种方法。装置2300可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2300可以包括一个或多个处理器2302、一个或多个存储器2304和视频处理硬件2306。(多个)处理器2302可以被配置为实施本文档中描述的一种或多种方法。(多个)存储器2304可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2306可以被用于以硬件电路来实施本文档中描述的一些技术,并且可以部分或完全是处理器2302(例如,图形处理器核心GPU或其他信号处理电路)的一部分。

在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示到对应的比特流表示的转换期间应用,反之亦然。当前视频块的比特流表示可以例如对应于比特流内并置或分布在不同地点的比特,如语法所定义的。例如,宏块可以根据变换和编解码的误差残差值来编码,并且还可以使用比特流中的头和其他字段中的比特来编码。

应当理解,已经公开了几种技术,通过允许使用本文档中公开的技术,这几种技术将有益于结合在诸如智能手机、膝上型电脑、台式电脑和类似设备的视频处理设备中的视频编码器和解码器实施例。

图24A是视频处理的示例方法2400的流程图。方法2400包括,在2402,通过至少基于权重参数实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化运动信息,其中,在当前视频块的最终预测块的生成过程中,权重参数被应用于预测块。方法2400包括,在2404,至少使用细化运动信息和权重参数来执行当前视频块和视频的比特流表示之间的转换。

在方法2400的一些实施例中,比特流表示中的字段指示权重参数。在方法2400的一些实施例中,使用具有编解码单元权重的双向预测(BCW)技术来信令通知权重参数的指示。在方法2400的一些实施例中,使用加权预测技术来信令通知权重参数的指示。在方法2400的一些实施例中,权重参数被推导出。在方法2400的一些实施例中,使用局部照明补偿(LIC)技术来推导权重参数。在方法2400的一些实施例中,权重参数与将样点值集合映射到另一样点值集合的整形过程相关联。在方法2400的一些实施例中,通过将权重参数应用于当前视频块的预测块来实施DMVD方案。在方法2400的一些实施例中,转换包括通过首先将根据具有编解码单元权重的双向预测(BCW)索引的权重参数应用于预测块,然后计算预测代价函数,来计算当前视频块的预测代价函数。

在方法2400的一些实施例中,转换包括通过首先将根据加权预测方案的权重参数应用于预测块,然后计算预测代价函数,来计算当前视频块的预测代价函数。在方法2400的一些实施例中,转换包括通过首先将根据局部照明补偿(LIC)方案的权重参数应用于预测块,然后计算预测代价函数,来计算当前视频块的预测代价函数。在方法2400的一些实施例中,预测代价函数是梯度函数。在方法2400的一些实施例中,预测代价函数是绝对差和(SAD)代价函数。在方法2400的一些实施例中,预测代价函数是绝对差的均值移除和(MR-SAD)代价函数。

在方法2400的一些实施例中,转换包括通过首先将根据具有编解码单元权重的双向预测(BCW)索引的权重参数应用于预测块,然后计算时域梯度和空域梯度,来为当前视频块计算双向光流(BIO)方案的时域梯度和空域梯度。在方法2400的一些实施例中,转换包括通过首先将根据加权预测方案的权重参数应用于预测块,然后计算时域梯度和空域梯度,来为当前视频块计算双向光流(BIO)方案的时域梯度和空域梯度。

在方法2400的一些实施例中,转换包括通过首先将根据局部照明补偿(LIC)方案的权重参数应用于预测块,然后计算时域梯度和空域梯度,来为当前视频块计算双向光流(BIO)方案的时域梯度和空域梯度。在方法2400的一些实施例中,预测代价函数或时域梯度或空域梯度的计算在整形域中执行。在方法2400的一些实施例中,对利用当前视频块的细化运动信息生成的预测块禁用整形过程。

图24B是视频处理的示例方法2410的流程图。方法2410包括,在2412,确定由于视频的当前视频块的编解码工具的使用,对于视频的当前视频块和视频的编解码表示之间的转换禁用解码器侧运动矢量推导(DMVD)方案的使用。方法2410包括,在2414,基于该确定来执行当前视频块和视频的比特流表示之间的转换,其中,编解码工具包括将不相等的加权因子应用于当前视频块的预测块。在方法2410的一些实施例中,编解码工具被配置为在样点预测过程中使用加权因子。

在方法2410的一些实施例中,编解码工具包括具有编解码单元权重的双向预测(BCW)模式。在方法2410的一些实施例中,用于BCW模式下的两个预测块的两个加权因子是不相等的。在方法2410的一些实施例中,加权因子是在当前视频块的比特流表示中的字段中指示的。在一些实施例中,DMVD方案包括解码器侧运动矢量细化(DMVR)编解码模式,该DMVD编解码模式基于预测代价函数来推导细化运动信息。在一些实施例中,DMVD方案包括双向光流(BDOF)编解码模式编解码工具,该编解码工具基于梯度计算来推导细化预测。在方法2410的一些实施例中,由当前视频块使用的BCW模式包括使用表示BCW索引和加权因子的索引的字段,并且BCW索引不等于0。

在方法2410的一些实施例中,编解码工具包括加权预测模式。在方法2410的一些实施例中,由当前视频块使用的加权预测模式包括将加权预测应用于当前视频块的至少一个预测块。在方法2410的一些实施例中,编解码工具包括局部照明补偿(LIC)模式。在方法2410的一些实施例中,编解码工具包括多假设预测模式。在方法2410的一些实施例中,第一参考图片的第一权重参数和第二参考图片的第二权重参数与当前视频块的加权预测模式相关联,并且响应于第一权重参数不同于第二权重参数,确定对当前视频块禁用DMVD方案。

在方法2410的一些实施例中,第一权重参数和/或第二权重参数是在包括当前视频块的视频单元的比特流表示中的字段中指示的,该视频单元包括图片或条带中的至少一个。在方法2410的一些实施例中,第一线性模型参数用于当前视频块的第一参考图片,并且第二线性模型参数用于当前视频块的第二参考图片,并且响应于第一线性模型参数不同于第二线性模型参数,确定对当前视频块禁用DMVD方案。

图24C是视频处理的示例方法2420的流程图。方法2420包括,在2422,基于视频的当前视频块的一个或多个参考图片的图片顺序计数(POC)值和包含当前视频块的当前图片的POC值,确定对当前视频块是启用还是禁用一个或多个解码器侧运动矢量推导(DMVD)方案。方法2420包括,在2424,根据该确定来执行当前视频块和视频的比特流表示之间的转换。

在方法2420的一些实施例中,确定是启用还是禁用一个或多个DMVD方案是基于表示从当前视频块的第一参考图片到当前图片的第一距离的第一POC距离(PocDis0)和表示从当前图片到当前视频块的第二参考图片的第二距离的第二POC距离(PocDis1)之间的关系的。在方法2420的一些实施例中,第一参考图片是当前视频块的参考图片列表0,并且第二参考图片是当前视频块的参考图片列表1,

在方法2420的一些实施例中,PocDist0被设置为当前图片的第一POC值减去第一参考图片的第二POC值,并且PocDist1被设置为第二参考图片的第三POC值减去当前图片的第一POC值。在方法2420的一些实施例中,响应于PocDis0不等于PocDis1,启用一个或多个DMVD方案。在方法2420的一些实施例中,确定是启用还是禁用一个或多个DMVD方案当中的一个以上DMVD方案是基于针对PocDis0和PocDis1应用相同规则的。在方法2420的一些实施例中,响应于PocDis0等于PocDis1,启用一个或多个DMVD方案。

在方法2420的一些实施例中,响应于PocDis0乘以PocDis1小于零,禁用一个或多个DMVD方案。在方法2420的一些实施例中,响应于PocDis0不等于PocDis1,禁用一个或多个DMVD方案。在方法2420的一些实施例中,在转换期间,一个或多个DMVD方案使用第一参考图片列表的第一运动矢量差(MVD)集合和第二参考图片列表的第二MVD集合来识别两个参考块,第一MVD集合是第二MVD集合的镜像版本。在方法2420的一些实施例中,在转换期间,一个或多个DMVD方案使用第一参考图片列表的第一运动矢量差(MVD)集合和第二参考图片列表的第二MVD集合来识别两个参考块,第二MVD集合是第一MVD集合的镜像版本。

在方法2420的一些实施例中,在转换期间,一个或多个DMVD方案使用第一参考图片列表的第一运动矢量差(MVD)集合和第二参考图片列表的第二MVD集合来识别两个参考块,第一MVD集合是第二MVD集合的非镜像版本。在方法2420的一些实施例中,根据PocDis0和PocDis1,将第一MVD集合缩放到第二MVD集合。在方法2420的一些实施例中,将包括(MvdX,MvdY)的第一MVD集合缩放到如下计算的第二MVD集合:(-MvdX*PocDis1/PocDis0,-MvdY*PocDis1/PocDis0)。在方法2420的一些实施例中,根据PocDis0和PocDis1,将第二MVD集合缩放到第一MVD集合。在方法2420的一些实施例中,将包括(MvdX,MvdY)的第二MVD集合缩放到如下计算的第一MVD集合:(-MvdX*PocDis0/PocDis1,-MvdY*PocDis0/PocDis1)。

在方法2420的一些实施例中,使用查找表、多重运算或向右右运算来实施缩放操作的除法运算。在方法2420的一些实施例中,基于当前视频块的参考图片的POC值和包含当前视频块的当前图片的POC值,在DMVD过程期间,一个或多个DMVD方案确定视频的当前视频块的第一参考图片列表的第一运动矢量差(MVD)集合和第二参考图片列表的第二MVD集合。在方法2420的一些实施例中,响应于PocDis0的第一绝对值小于或等于PocDis1的第二绝对值,根据PocDis0和PocDis1,对第一MVD集合进行缩放以生成第二MVD集合。在方法2420的一些实施例中,响应于PocDis0的第一绝对值大于或等于PocDis1的第二绝对值,根据PocDis0和PocDis1,对第一MVD集合进行缩放以生成第二MVD集合。

在方法2420的一些实施例中,响应于PocDis1的第二绝对值小于或等于PocDis0的第一绝对值,根据PocDis0和PocDis1,对第二MVD集合进行缩放以生成第一MVD集合。在方法2420的一些实施例中,响应于PocDis1的第二绝对值大于或等于PocDis0的第一绝对值,根据PocDis0和PocDis1,对第二MVD集合进行缩放以生成第一MVD集合。在方法2420的一些实施例中,响应于两个参考图片包括在当前图片之前的第一参考图片和在当前图片之后的第二参考图片,将第一MVD集合镜像以生成第二MVD集合,并且不执行缩放以获得第一MVD集合或第二MVD集合。在方法2420的一些实施例中,确定是启用还是禁用一个或多个DMVD方案是基于表示从当前视频块的第一参考图片到当前图片的第一距离的第一图片顺序计数距离(PocDis0)的第一符号和表示从当前图片到当前视频块的第二参考图片的第二距离的第二图片顺序计数距离(PocDis1)的第二符号的。

在方法2420的一些实施例中,响应于具有第一符号的PocDis0乘以具有第二符号的PocDis1的结果小于零,启用一个或多个DMVD方案。在方法2420的一些实施例中,响应于具有第一符号的PocDis0乘以具有第二符号的PocDis1的结果大于零,启用一个或多个DMVD方案。在方法2420的一些实施例中,响应于表示从当前视频块的第一参考图片到当前图片的第一距离的第一图片顺序计数距离(PocDis0)不等于表示从当前图片到当前视频块的第二参考图片的第二距离的第二图片顺序计数距离(PocDis1),禁用一个或多个DMVD方案。

在方法2420的一些实施例中,使用第一MVD集合来细化第一参考图片列表的运动信息,并且使用第二MVD集合来细化第二参考图片列表的运动信息。在方法2420的一些实施例中,第一参考图片列表是参考图片列表0,并且第二参考图片列表是参考图片列表1。

图24D是视频处理的示例方法2430的流程图。方法2430包括,在2432,通过对视频的当前视频块实施解码器侧运动矢量推导(DMVD)方案来获得视频的当前视频块的细化运动信息,其中,对当前视频块启用对称运动矢量差(SMVD)模式。方法2430包括,在2434,使用细化运动信息来执行当前视频块和视频的比特流表示之间的转换。

在方法2430的一些实施例中,比特流表示包括细化运动信息的运动矢量差(MVD),并且根据SMVD模式对MVD进行解码,并且在被用于对当前视频块进行解码之前将其进一步细化。在方法2430的一些实施例中,其中,在SMVD模式下,通过将运动矢量(MV)精度或MVD精度从N像素精度改变为M像素精度,将DMVD方案用于对细化运动信息的运动矢量差(MVD)进行细化,N和M等于1/16、1/8、1/4、1/2、1、2、4、8或16。在方法2430的一些实施例中,M小于或等于N。在方法2430的一些实施例中,比特流表示不包括SMVD模式下的细化运动信息的运动矢量差(MVD)的信令,并且MVD是使用DMVD方案生成的。

在方法2430的一些实施例中,不在以SMVD模式编解码的视频块的比特流表示中信令通知自适应运动矢量差分辨率(AMVR)信息,并且细化运动信息的运动矢量(MV)精度或运动矢量差(MVD)精度是根据预定义值推导出的。在方法2430的一些实施例中,MV精度或MVD精度是1/4像素精度。在方法2430的一些实施例中,预定义值是在比特流表示中以序列、图片、片组、条带、片、视频数据单元级别被信令通知的。在方法2430的一些实施例中,预定义值取决于模式信息或运动信息。在方法2430的一些实施例中,模式信息或运动信息包括仿射运动信息或非仿射运动信息。

图24E是视频处理的示例方法2440的流程图。方法2440包括,在2442,基于包括当前视频块的视频的比特流表示中的字段,确定对当前视频块是启用还是禁用解码器侧运动矢量推导(DMVD)方案,对当前视频块启用对称运动矢量差(SMVD)模式。方法2440包括,在2444,在确定启用DMVD方案之后,通过对当前视频块实施DMVD方案来获得当前视频块的细化运动信息。方法2440包括,在2446,使用细化运动信息来执行当前视频块和视频的比特流表示之间的转换。

在方法2440的一些实施例中,响应于DMVD方案被启用,不在比特流表示中信令通知运动矢量差(MVD)。在方法2440的一些实施例中,对于一个或多个运动矢量(MV)精度或运动矢量差(MVD)精度,在比特流表示中存在指示是启用还是禁用DMVD方案的字段。在方法2440的一些实施例中,一个或多个MV精度或MVD精度包括1像素精度和/或4像素精度。

在方法2440的一些实施例中,响应于表示从当前视频块的第一参考图片(Ref0)到当前图片的第一距离的第一图片顺序计数距离(PocDis0)等于表示从当前图片到当前视频块的第二参考图片(Ref1)的第二距离的第二图片顺序计数距离(PocDis1),在比特流表示中存在指示是启用还是禁用DMVD方案的字段,并且在显示顺序中第一参考图片(Ref0)在当前图片之前,并且第二参考图片(Ref1)在当前图片之后。

在方法2440的一些实施例中,响应于表示从当前视频块的第一参考图片(Ref0)到当前图片的第一距离的第一图片顺序计数距离(PocDis0)等于表示从当前图片到当前视频块的第二参考图片(Ref1)的第二距离的第二图片顺序计数距离(PocDis1),在比特流表示中存在指示是启用还是被禁用DMVD方案的字段,并且在显示顺序中第二参考图片(Ref1)在当前图片之前,并且第一参考图片(Ref0)在当前图片之后。

在方法2440的一些实施例中,基于当前视频块和/或一个或多个临近块的编解码信息,在SMVD模式下启用DMVD方案。在方法2440的一些实施例中,基于当前视频块的块维度,在SMVD模式下启用DMVD方案。在方法2440的一些实施例中,基于与当前视频块的参考图片相关的信息,在SMVD模式下启用DMVD方案。在方法2440的一些实施例中,与参考图片相关的信息包括图片顺序计数(POC)信息。在方法2440的一些实施例中,基于比特流表示中的运动矢量差(MVD)信息的信令,在SMVD模式下启用DMVD方案。在方法2420的一些实施例中,一个或多个DMVD方案包括解码器侧运动矢量细化(DMVR)方案。在方法2430和2440的一些实施例中,DMVD方案包括解码器侧运动矢量细化(DMVR)方案。在方法2430的一些实施例中,一个或多个DMVD方案包括双向光流(BDOF)方案。在方法2430和2440的一些实施例中,DMVD方案包括双向光流(BDOF)方案。

图24F是视频处理的示例方法2450的流程图。方法2450包括,在2452,基于使用视频的当前视频块的块维度的规则,确定对于当前视频块和视频的比特流表示之间的转换是启用还是禁用多个解码器侧运动矢量推导(DMVD)方案。方法2450包括,在2454,基于该确定来执行转换。

在方法2450的一些实施例中,响应于(W*H)>=T1且H>=T2,确定启用多个DMVD方案,其中,W和H分别是当前视频块的宽度和高度,并且T1和T2是有理数。在方法2450的一些实施例中,T1为64且T2为8。在方法2450的一些实施例中,响应于H>=T1且W不等于T2或者H不等于T1,确定启用多个DMVD方案,其中,W和H分别是当前视频块的宽度和高度,并且T1和T2是有理数。在方法2450的一些实施例中,T1为8且T2为4。

在方法2450的一些实施例中,响应于当前视频块的第一样点数量小于第二样点数量,确定禁用多个DMVD方案。在方法2450的一些实施例中,响应于当前视频块的第一样点数量大于第二样点数量,确定禁用多个DMVD方案。在方法2450的一些实施例中,第二样点数量是16个亮度样点或32个亮度样点或64个亮度样点或128个亮度样点。在方法2450的一些实施例中,响应于当前视频块的宽度小于一个值,确定禁用多个DMVD方案。

在方法2450的一些实施例中,响应于当前视频块的高度小于一个值,确定禁用多个DMVD方案。在方法2450的一些实施例中,该值为8。在方法2450的一些实施例中,响应于当前视频块的宽度大于或等于第一阈值和/或响应于当前视频块的高度大于或等于第二阈值,确定禁用多个DMVD方案。在方法2450的一些实施例中,宽度为128且高度为128。在方法2450的一些实施例中,宽度大于或等于64且高度为128,或者宽度为128且高度大于或等于64。在方法2450的一些实施例中,宽度大于或等于4且高度为128,或者宽度为128且高度大于或等于4。在方法2450的一些实施例中,第一阈值和第二阈值为64。

在方法2450的一些实施例中,响应于当前视频块的宽度小于或等于第一阈值和/或响应于当前视频块的高度小于或等于第二阈值,确定禁用多个DMVD方案。在方法2450的一些实施例中,第一阈值和第二阈值为8。在一些实施例中,多个DMVD方案包括基于代价函数推导细化运动信息的解码器侧运动矢量细化(DMVR)方案。在一些实施例中,多个DMVD方案包括基于梯度计算推导细化运动信息的双向光流(BDOF)方案。

图24G是视频处理的示例方法2460的流程图。方法2460包括,在2462,确定是在视频的当前视频块的子块级别还是块级别执行多个解码器侧运动矢量推导(DMVD)方案。方法2460包括,在2464,在确定在子块级别执行多个DMVD方案之后,通过在当前视频块的相同子块级别实施多个DMVD方案来获得当前视频块的细化运动信息。方法2460包括,在2466,使用细化运动信息来执行当前视频块和视频的比特流表示之间的转换。

在方法2460的一些实施例中,多个DMVD方案包括解码器侧运动矢量细化(DMVR)方案。在方法2460的一些实施例中,通过在当前视频块的子块级别应用DMVR方案中的双边匹配来获得细化运动信息。在方法2460的一些实施例中,多个DMVD方案包括双向光流(BDOF)编解码方案。在方法2460的一些实施例中,确定在当前视频块的子块级别启用或禁用BDOF编解码方案。在方法2460的一些实施例中,确定启用BDOF编解码方案,并且通过执行BDOF编解码方案中的在当前视频块的子块级别执行的运动信息的样点式细化来获得细化运动信息。

在方法2460的一些实施例中,确定在当前视频块的子块级别启用或禁用BDOF编解码方案,并且确定在当前视频块的子块级别执行BDOF编解码方案中的样点式运动信息细化过程。在方法2460的一些实施例中,子块的宽度和高度都等于16。在方法2460的一些实施例中,响应于以下情况,将当前视频块划分成多个子块:当前视频块的第一宽度大于或等于一个值,或者当前视频块的第一高度大于或等于该值,或者第一宽度大于或等于该值并且第一高度大于或等于该值。

在方法2460的一些实施例中,以与尺寸等于子块尺寸的编解码块相同的方式通过一个或多个DMVD方案来处理多个子块中的每一个。在方法2460的一些实施例中,该值为64,并且响应于当前视频块具有为64的第一宽度和为128的第一高度或者具有为128的第一宽度和为64的第一高度,将当前视频块划分成两个子块,其中,两个子块中的每一个都具有为64的第二宽度和第二高度。在方法2460的一些实施例中,该值为64,并且响应于当前视频块具有为128的第一宽度和第一高度,将当前视频块划分成四个子块,其中,两个子块中的每一个具有为64的第二宽度和第二高度。

在方法2460的一些实施例中,响应于当前视频块具有为N的第一宽度和为128的第一高度或者具有为128的第一宽度和为N的第一高度,不将当前视频块划分成子块,其中,N小于64。在方法2460的一些实施例中,该值为64,并且响应于当前视频块具有为N的第一宽度和为128的第一高度或者具有为128的第一宽度和为N的第一高度,其中,N小于64,将当前视频块划分成两个子块,其中,两个子块中的每一个具有为N的第二宽度和为64的第二高度或者具有为64的第二宽度和为N的第二高度。

在方法2460的一些实施例中,响应于当前视频块的第一宽度大于一个值,将当前视频块垂直划分,并且当前视频块的子块的第二宽度小于或等于该值。在方法2460的一些实施例中,响应于当前视频块的第一高度大于一个值,将当前视频块水平划分,并且当前视频块的子块的第二高度小于或等于该值。在方法2460的一些实施例中,该值为16。在方法2460的一些实施例中,当前视频块的子块的第二宽度为16。在方法2460的一些实施例中,当前视频块的子块的第二高度为16。在方法2460的一些实施例中,响应于当前视频块的第一尺寸大于第一阈值,将当前视频块划分成多个子块。在方法2460的一些实施例中,以与第二尺寸等于子块尺寸的编解码块相同的方式通过一个或多个DMVD方案来处理多个子块中的每一个。

在方法2460的一些实施例中,多个子块中的每一个具有小于或等于第一阈值的相同尺寸。在方法2450和2460的一些实施例中,当前视频块是亮度视频块。在方法2450的一些实施例中,对亮度视频块执行对是启用还是禁用多个DMVD方案的确定,并且被相关联的色度视频块共享该确定。在方法2460的一些实施例中,对亮度视频块执行对是否在子块级别执行多个DMVD方案的确定,并且被相关联的色度视频块共享该确定。在方法2460的一些实施例中,响应于当前视频块的高度或宽度小于或等于第二阈值,确定不将当前视频块水平或垂直划分成多个子块。在方法2460的一些实施例中,第一阈值为1024且第二阈值为32。

在方法2460的一些实施例中,该值被预定义或以当前视频块的序列参数集(SPS)、图片参数集(PPS)、图片、条带、片组或片级别被信令通知。在方法2460的一些实施例中,该值或第一阈值或第二阈值取决于当前视频块的编解码信息。在方法2460的一些实施例中,子块尺寸的确定对于多个DMVD方案是相同的。在方法2460的一些实施例中,当前视频块的编解码信息包括当前视频块的块尺寸或图片类型或时域层索引。在方法2450和2460的一些实施例中,当前视频块的多个DMVD包括当前视频块的所有DMVD方案。

图24H是视频处理的示例方法2470的流程图。方法2470包括,在2472,确定对视频的当前视频块的多个分量是启用还是禁用解码器侧运动矢量推导(DMVD)方案。方法2470包括,在2474,在确定启用DMVD方案之后,通过实施DMVD方案来获得当前视频块的细化运动信息。方法2470包括,在2476,在DMVD方案的实施期间,执行当前视频块和视频的比特流表示之间的转换。

在方法2470的一些实施例中,执行一次对是启用还是禁用DMVD方案的确定,并且被多个分量共享该确定。在方法2470的一些实施例中,对多个分量执行多次对是启用还是禁用DMVD的确定。在方法2470的一些实施例中,首先对多个分量中的一个分量执行对是启用还是禁用DMVD的确定,然后对多个分量中的一个或多个剩余分量执行或与其共享该确定。在方法2470的一些实施例中,一个分量是亮度分量或绿色分量。在方法2470的一些实施例中,基于多个分量中的一个分量一个分量的信息,对该一个分量执行对是启用还是禁用DMVD的确定。在方法2470的一些实施例中,一个分量是亮度分量、色度分量、绿色分量、蓝色分量或红色分量。

可以使用以下基于条款的格式来描述一些实施例。

条款1.一种视频处理方法,包括:由处理器实施解码器侧运动矢量推导(DMVD)方案,以用于在当前视频块和当前视频块的比特流表示之间的转换期间,通过基于推导规则推导参数来进行运动矢量细化。

条款2.根据条款1所述的技术,其中,该参数是从应用于当前视频块的最终预测块的参数中推导出的。

条款3.根据条款1所述的技术,其中,该参数在比特流表示中被信令通知。

条款4.根据条款1所述的技术,其中,该参数是由处理器推导出的。

条款5.根据条款1-4中任一项所述的技术,其中,推导规则指定使用用于推导DMVD方案的最终预测块的参数。

条款6.根据条款5所述的技术,其中,转换包括通过首先应用广义双向编解码权重或加权预测方案的权重或局部照明补偿方案的权重、双向光流方案的时域或空域梯度中的一个来计算当前视频块的预测代价函数,然后计算预测代价函数。

条款7.根据条款6所述的技术,其中,预测代价函数是梯度函数或绝对差和(SAD)代价函数。

条款8.根据条款2所述的技术,其中,该参数是最终预测块的局部照明补偿的参数。

条款9.一种视频处理方法,包括:基于启用规则,在当前视频块和当前视频块的比特流表示之间的转换期间,选择性地将解码器侧运动矢量推导(DMVD)方案用于运动矢量细化。

条款10.根据条款9所述的技术,其中,该启用规则指定在转换使用广义双向编解码模式或局部照明补偿模式或加权预测模式或多假设预测模式的情况下禁用DMVD方案。

条款11.根据条款9所述的技术,其中,该启用规则指定对当前视频块使用DMVD方案,该当前视频块是使用不相等的图片顺序计数距离的双向预测块。

条款12.根据条款9所述的技术,其中,该启用规则指定基于表示当前视频块的双向预测的两个方向的图片顺序计数距离PocDis0和PocDis1之间的关系来使用DMVD方案。

条款13.根据条款12所述的技术,其中,该启用规则指定在PocDis0=PocDis1的情况下使用DMVD方案。

条款14.根据条款12所述的技术,其中,该启用规则指定在PocDis0不等于PocDis1的情况下使用DMVD方案。

条款15.根据条款12所述的技术,其中,该启用规则指定在PocDis0乘以PocDis1小于零的情况下使用DMVD方案。

条款16.根据条款9-14中任一项所述的技术,其中,在转换期间,DMVD方案使用列表0和列表1作为两个参考图片列表,并且其中,列表0是列表1的镜像版本。

条款17.根据条款15所述的技术,其中,DMVD方案包括根据基于PocDis0和PocDis1距离的缩放来使用列表0和列表1的运动矢量差。

条款18.根据条款17所述的技术,其中,DMVD方案包括使用列表0的运动矢量差,该运动矢量差被缩放到列表1的运动矢量差。

条款19.根据条款17所述的技术,其中,DMVD方案包括使用列表1的运动矢量差,该运动矢量差被缩放到列表0的运动矢量差。

条款20.根据条款9-14中任一项所述的技术,其中,DMVD方案包括根据参考图片的图片顺序计数来使用参考图片。

条款21.根据条款9所述的技术,其中,该启用规则基于当前视频块的维度。

条款22.根据条款21所述的技术,其中,DMVD方案包括在W*H>=T1&&H>=T2的情况下启用的解码器侧运动矢量细化(DMVR),其中,W和H是当前视频块的宽度和高度,并且T1和T2是有理数。

条款23.根据条款21所述的技术,其中,DMVD方案包括在W*H>=T1&&H>=T2的情况下启用的双向光流(BIO)编解码方法,其中,W和H是当前视频块的宽度和高度,并且T1和T2是有理数。

条款24.根据条款21所述的技术,其中,DMVD方案包括在H>=T1&&!(W==T2&&H==T1)的情况下启用的解码器侧运动矢量细化(DMVR),其中,W和H是当前视频块的宽度和高度,并且T1和T2是有理数。

条款25.根据条款21所述的技术,其中,DMVD方案包括在H>=T1&&!(W==T2&&H==T1)的情况下启用的双向光流(BIO)编解码方案,其中,W和H是当前视频块的宽度和高度,并且T1和T2是有理数。

条款26.根据条款9至21中任一项所述的技术,其中,DMVD方案是解码器侧运动矢量细化(DMVR)方案或双向光流(BIO)编解码方案,并且其中,在当前视频块的宽度>th1或高度>th2的情况下禁用DMVD方案。

条款27.一种视频处理技术,包括:基于规则,通过在子块级别应用解码器侧运动矢量推导(DMVD)方案,在当前视频块和当前视频块的比特流表示之间的转换期间,选择性地将解码器侧运动矢量推导(DMVD)方案用于运动矢量细化。

条款28.根据条款27所述的技术,其中,DMVD方案是解码器侧运动矢量细化(DMVR)方案或双向光流(BIO)方案。

条款29.根据条款28所述的技术,其中,DMVD方案是BIO方案,并且其中,该规则指定DMVD方案基于逐个子块的适用性。

条款30.根据条款29所述的技术,其中,当前视频块的宽度>=LW或高度>=LH,或者宽度*高度大于阈值L1,其中,L1、L、W和H是整数,并且其中,通过将当前视频块划分成多个子块来执行转换,该多个子块使用DMVD方案来进一步处理。

条款31.根据条款30所述的技术,其中,划分包括水平划分当前视频块。

条款32.根据条款30所述的技术,其中,划分包括垂直划分当前视频块。

条款33.根据条款30-32中任一项所述的技术,其中,L是在比特流表示中以序列参数集级别、图片参数集级别、图片级别、条带级别、片组级别或片级别信令通知的,或者其中,L是基于当前视频块的尺寸或包含当前视频块的图片的类型或当前视频块的时域层索引被隐式地信令通知的。

条款34.根据条款1-33中任一项所述的技术,其中,取决于当前视频块的亮度或色度类型,将DMVD应用于当前视频块。

条款35.根据条款1-34中任一项所述的技术,其中,转换使用基于对块使用DMVD的决定或与当前视频块相对应的不同亮度或色度类型而决定的DMVD方案。

条款36.根据条款1-35中任一项所述的技术,其中,DMVD方案包括解码器侧运动矢量细化方案或双向光流方案。

条款37.一种视频处理技术,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,其中,当前视频块使用对称运动矢量差编解码器技术,使用解码器侧运动矢量推导技术,通过该技术在转换期间细化当前视频块的运动矢量,其中,对称运动矢量差编解码器技术使用对称运动矢量差推导;以及使用解码器侧运动矢量推导技术来执行转换。

条款38.根据条款37所述的技术,其中,解码器侧运动矢量推导技术包括解码器侧运动矢量细化。

条款39.根据条款37-38中任一项所述的技术,其中,解码器侧运动矢量推导技术将运动矢量精度从用于对称运动矢量差编解码器技术的N像素改变为M像素精度,其中,N和M是分数或整数,并且其中,N和M等于1/16、1/8、1/4、1/2、1、2、4、8或16。

条款40.根据条款39所述的技术,其中,M小于或等于N。

条款41.根据条款37-41中任一项所述的技术,其中,比特流表示不包括当前视频块的运动矢量差指示,并且其中,解码器侧运动矢量推导技术被用于推导运动矢量差。

条款42.根据条款37-42中任一项所述的技术,其中,比特流表示指示解码器侧运动矢量推导技术和对称运动矢量推导技术是否用于当前视频块的转换。

条款43.根据条款1-42中任一项所述的技术,其中,转换包括从当前视频块生成比特流表示或者从比特流表示生成当前视频块。

条款44.一种视频编码装置,包括被配置为实施根据条款1至43中的一项或多项所述的方法的处理器。

条款45.一种视频解码装置,包括被配置为实施根据条款1至43中的一项或多项所述的方法的处理器。

条款46.一种其上存储有代码的计算机可读介质,该代码在被执行时使得处理器实施根据条款1至43中任一项或多项所述的方法。

图26是示出示例视频处理系统2100的框图,在该系统中可以实施本文公开的各种技术。各种实施方式可以包括系统2100的一些或全部组件。系统2100可以包括用于接收视频内容的输入2102。视频内容可以以原始或未压缩的格式(例如,8或10比特多分量像素值)被接收,或者可以以压缩或编码的格式被接收。输入2102可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(passive opticalnetwork,PON)等)和无线接口(诸如Wi-Fi或蜂窝接口)。

系统2100可以包括编解码组件2104,该编解码组件2104可以实施本文档中描述的各种编解码或编码方法。编解码组件2104可以降低从输入2102到编解码组件2104的输出以产生视频的编解码表示的视频的平均比特率。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件2104的输出可以或者被存储,或者经由连接的通信被传输,如组件2106所示。组件2108可以使用在输入端2102处接收的所存储或传送的视频的比特流(或编解码)表示,以生成发送到显示接口2110的像素值或可显示视频。从比特流表示生成用户可观看的视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且将由解码器执行与编码的结果相反的对应的解码工具或操作。

外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。

所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在一个示例中,当启用视频处理工具或模式时,编码器将在视频的块的处理中使用或实施该工具或模式,但是不一定基于该工具或模式的使用来修改所得的比特流。也就是说,当基于决定或确定启用视频处理工具或模式时,从视频的块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频的块的转换。

所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在一个示例中,当禁用视频处理工具或模式时,编码器将不会在视频的块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将在知道比特流没有被使用基于决定或确定而被禁用的视频处理工具或模式修改的情况下处理比特流。

图27是示出可以利用本公开的技术的示例视频编解码系统100的框图。如图27所示,视频编解码系统100可以包括源设备110和目的地设备120。生成编码视频数据的源设备110可以被称为视频编码设备。可以对由源设备110生成的编码视频数据进行解码的目的地设备120可以被称为视频解码设备。源设备110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。

视频源112可以包括诸如视频捕获设备、从视频内容提供商接收视频数据的接口、和/或用于生成视频数据的计算机图形系统的源,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码,以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码的图片和相关联的数据。编解码的图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口116可以包括调制器/解调器(调制解调器)和/或发送器。编码视频数据可以通过网络130a经由I/O接口116直接传输到目的地设备120。编码视频数据也可以存储在存储介质/服务器130b上,以供目的地设备120访问。

目的地设备120可以包括I/O接口126、视频解码器124和显示设备122。

I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或存储介质/服务器130b获取编码视频数据。视频解码器124可以对编码视频数据进行解码。显示设备122可以向用户显示解码视频数据。显示设备122可以与目的地设备120集成,或者可以在目的地设备120的外部,目的地设备120被配置为与外部显示设备接合。

视频编码器114和视频解码器124可以根据视频压缩标准(诸如高效视频编解码(HEVC)标准、多功能视频编解码(VVM)标准和其他当前和/或进一步的标准)而进行操作。

图28是示出视频编码器200的示例的框图,该视频编码器200可以是图27所示的系统100中的视频编码器114。

视频编码器200可以被配置为执行本公开的任何或所有技术。在图28的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。

视频编码器200的功能组件可以包括分割单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214,该预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。

在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(Intra Block Copy,IBC)单元。IBC单元可以在IBC模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。

此外,诸如运动估计单元204和运动补偿单元205的一些组件可以是高度集成的,但是为了解释的目的,在图28的示例中单独表示。

分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。

模式选择单元203可以例如基于误差结果来选择帧内或帧间编解码模式之一,并将所得的帧内或帧间编解码块提供给残差生成单元207以生成残差块数据,以及提供给重构单元212以重构编码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间组合预测(Combination of Intra and Inter Predication,CIIP)模式,在该模式下,预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块的运动矢量选择分辨率(例如,子像素或整数像素精度)。

为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于运动信息和来自缓冲器213的除了与当前视频块相关联的图片之外的图片的解码样点来确定当前视频块的预测视频块。

运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带还是B条带中。

在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元204然后可以生成指示列表0或列表1中包含参考视频块的参考图片的参考索引以及指示当前视频块和参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息所指示的参考视频块来生成当前块的预测视频块。

在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。运动估计单元204然后可以生成指示列表0和列表1中包含参考视频块的参考图片的参考索引以及指示参考视频块和当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息所指示的参考视频块来生成当前视频块的预测视频块。

在一些示例中,运动估计单元204可以输出完整的运动信息集,以用于解码器的解码处理。

在一些示例中,运动估计单元204可能不输出当前视频的完整运动信息集。相反,运动估计单元204可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与临近视频块的运动信息足够相似。

在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示一个值,该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。

在另一示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量和所指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。

如上所述,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实施的预测信令技术的两个示例包括高级运动矢量预测(Advanced Motion VectorPredication,AMVP)和Merge模式信令。

帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。

残差生成单元207可以通过从当前视频块中减去(例如,由减号指示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括与当前视频块中样点的不同样点分量相对应的残差视频块。

在其他示例中,例如,在跳过模式下,对于当前视频块可能不存在当前视频块的残差数据,并且残差生成单元207可能不执行减法运算。

变换处理单元208可以通过将一次或多次变换应用于与当前视频块相关联的残差视频块来生成当前视频块的一个或多个变换系数视频块。

在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(Quantization Parameter,QP)值来量化与当前视频块相关联的变换系数视频块。

逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应的样点,以产生与当前块相关联的重构视频块,以存储在缓冲器213中。

在重构单元212重构视频块之后,可以执行环路滤波操作来减少视频块中的视频块伪影。

熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收到数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据,并且输出包括熵编码数据的比特流。

图29是示出视频解码器300的示例的框图,视频解码器300可以是图27所示的系统100中的视频解码器124。

视频解码器300可以被配置为执行本公开的任何或所有技术。在图29的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。

在图29的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与针对视频编码器200(图28)所描述的编码过程相反的解码过程。

熵解码单元301可以检索编码比特流。编码比特流可以包括熵编码的视频数据(例如,视频数据的编码块)。熵解码单元301可以对熵编码的视频数据进行解码,并且根据熵解码的视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引的运动信息以及其他运动信息。运动补偿单元302可以例如通过执行AMVP和Merge模式来确定这些信息。

运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。将以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。

运动补偿单元302可以使用由视频编码器20在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的内插的值。运动补偿单元302可以根据接收到的语法信息来确定由视频编码器200所使用的插值滤波器,并使用插值滤波器来产生预测块。

运动补偿单元302可以使用一些语法信息来确定用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述编码视频序列的图片的每个宏块是如何被分割的分割信息、指示每种分割是如何被编码的模式、每个帧间编码块的一个或多个参考帧(和参考帧列表)以及对编码视频序列进行解码的其他信息。

帧内预测单元303可以使用例如在比特流中接收到的帧内预测模式,以从空域相邻的块形成预测块。逆量化单元304对在比特流中提供并由熵解码单元301解码的量化视频块系数进行逆量化,即解量化。逆变换单元305应用逆变换。

重构单元306可以将残差块与由运动补偿单元302或帧内预测单元303生成的对应的预测块求和,以形成解码块。如果需要,还可以应用去块滤波器对解码的块进行滤波,以便移除块伪影。解码的视频块然后被存储在缓冲器307中,该缓冲器307为随后的运动补偿/帧内预测提供参考块,并且还产生解码的视频以在显示设备上呈现。

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

本文档中描述的所公开的和其它方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。所公开的和其它实施例可以实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息以传输到合适的接收器装置。

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

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

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

虽然本专利文档包含许多细节,但这些不应被解释为对任何主题或所要求保护的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,甚至最初被要求这样来保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。

类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或顺序地执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应该理解为在所有实施例中都需要这种分离。

仅描述了几个实施方式和示例,并且可以基于本专利文件中描述和图示的内容进行其它实施、增强和变化。

技术分类

06120116576808