首页> 中国专利> 解码器侧运动矢量推导和其他编解码工具之间的并置

解码器侧运动矢量推导和其他编解码工具之间的并置

摘要

描述了用于数字视频编解码的设备、系统和方法,包括解码器侧运动矢量推导(DMVD)工具。一种用于视频处理的示例性方法包括:基于对视频的当前块是使用多假设预测模式而被编解码的确定,做出关于对于当前块,DMVD工具的选择性启用的决定,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行当前块和比特流表示之间的转换。

著录项

  • 公开/公告号CN112913240A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利号CN201980068715.1

  • 发明设计人 刘鸿彬;张莉;张凯;王悦;

    申请日2019-10-22

  • 分类号H04N19/159(20060101);H04N19/52(20060101);H04N19/573(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人张亮

  • 地址 100041 北京市石景山区实兴大街30号院3号楼2层B-0035房间

  • 入库时间 2023-06-19 11:14:36

说明书

相关申请的交叉引用

根据适用的专利法和/或按照巴黎公约的规则,本申请旨在及时要求2018年10月22日提交的国际专利申请PCT/CN2018/111224的优先权和利益。出于美国法律的所有目的,上述申请的全部公开内容通过引用而并入作为本申请的公开内容的一部分。

技术领域

本专利文档涉及视频编解码技术、设备和系统。

背景技术

尽管视频压缩技术有所进步,但数字视频仍然占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的联网用户设备数量的增加,预期数字视频使用的带宽需求将继续增长。

发明内容

描述了与数字视频编解码相关的设备、系统和方法,特别是与解码器侧运动矢量推导(Decoder-side Motion Vector Derivation,DMVD)工具相关的设备、系统和方法。所描述的方法可以应用于现有的视频编解码标准(例如,高效视频编解码(High EfficiencyVideo Coding,HEVC))和未来的视频编解码标准或者视频编解码器。

在一个代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于对视频的当前块是使用多假设预测模式而被编解码的确定,做出关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行当前块和比特流表示之间的转换,其中多假设预测模式被配置为通过应用至少一个中间预测值来生成当前块的最终预测。

在另一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:确定视频的当前块与不同参考块的不对称权重因子相关联;对于当前块启用解码器侧运动矢量推导(DMVD)工具,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化,并且其中DMVD过程基于不对称权重因子;以及基于该启用来执行当前块和比特流表示之间的转换。

在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:确定视频的当前块是使用高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)模式来编解码的;以及作为视频的比特流表示和当前块之间的转换的一部分,将解码器侧运动矢量推导(DMVD)工具应用于当前块,其中DMVD工具推导在比特流表示中信令通知的运动信息的细化。

在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于解码器侧运动矢量推导(DMVD)工具,执行使用双向仿射模式或者双向仿射Merge模式来编解码的视频的当前块的平移运动参数和运动矢量差的细化,运动矢量差由运动方向和运动幅度指示,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该细化来执行当前块和视频的比特流表示之间的转换。

在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于视频的当前块的特性,做出关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行当前块和比特流表示之间的转换。

在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于对视频的当前块包括多个子块的确定,做出关于在子块级别,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具为每个子块推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行当前块和比特流表示之间的转换。

在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:基于与视频的当前块相关联的至少一个参考图片,做出关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行当前块和比特流表示之间的转换。

在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:从视频的当前块的比特流表示中解析二进制值串(bin string),其中二进制值串包括表示广义双向预测(generalized bi-prediction,GBI)模式的GBI索引的多个二进制值,并且其中多个二进制值中的至少一个二进制值被旁路编解码;以及基于解析的GBI索引来执行当前块和比特流表示之间的转换。

在又一代表性方面,所公开的技术可以用于提供视频处理的方法。该方法包括:将二进制值串编码成视频的当前块的比特流表示,其中二进制值串包括表示广义双向预测(GBI)模式的GBI索引的多个二进制值,并且其中多个二进制值中的至少一个二进制值被旁路编解码;以及基于编码的二进制值串来执行当前块和比特流表示之间的转换。

在又一代表性方面,上述方法以处理器可执行代码的形式体现,并存储在计算机可读程序介质中。

在又一代表性方面,公开了一种被配置或可操作来执行上述方法的设备。该设备可以包括被编程来实施该方法的处理器。

在又一代表性方面,视频解码器设备可以实施本文描述的方法。

在附图、说明书和权利要求书中更详细地描述了所公开技术的上述和其他方面和特征。

附图说明

图1示出了构建Merge候选列表的示例。

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

图3示出了经受空域Merge候选的冗余检查的候选对(candidate pair)的示例。

图4A和图4B示出了基于当前块的尺寸和形状的第二预测单元(prediction unit,PU)的位置的示例。

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

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

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

图8示出了构建运动矢量预测候选的示例。

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

图10示出了使用用于编解码单元(Coding Unit,CU)的可选时域运动矢量预测(Alternative Temporal Motion Vector Prediction,ATMVP)算法的运动预测的示例。

图11示出了由空时运动矢量预测(Spatial-Temporal Motion VectorPrediction,STMVP)算法使用的具有子块和临近块的编解码单元(CU)的示例。

图12A和图12B示出了当使用重叠块运动补偿(Overlapped Block MotionCompensation,OBMC)算法时子块的示例瞬像(snapshot)。

图13示出了用于推导局部照明补偿(Local Illumination Compensation,LIC)算法的参数的临近样点的示例。

图14示出了简化仿射运动模型的示例。

图15示出了每一子块的仿射运动矢量场(Motion Vector Field,MVF)的示例。

图16示出了AF_INTER仿射运动模式的运动矢量预测(Motion VectorPrediction,MVP)的示例。

图17A和图17B示出了AF_MERGE仿射运动模式的示例候选。

图18示出了模式匹配的运动矢量推导(Pattern Matched Motion VectorDerivation,PMMVD)模式中的双边匹配的示例,该模式是基于帧速率上转换(Frame-RateUp Conversion,FRUC)算法的特殊Merge模式。

图19示出了FRUC算法中的模板匹配的示例。

图20示出了FRUC算法中的单边运动估计的示例。

图21示出了当前帧的最终运动矢量表达(Ultimate Motion Vector Expression,UMVE)搜索过程的示例。

图22A和图22B示出了UMVE搜索点的示例。

图23示出了距离索引和距离偏移之间的示例性映射。

图24示出了由双向光流(Bi-directional Optical flow,BIO)算法使用的光流轨迹的示例。

图25A和图25B示出了使用没有块扩展的双向光流(BIO)算法的示例瞬像。

图26示出了基于双边模板匹配的解码器侧运动矢量细化(Decoder-side MotionVector Refinement,DMVR)算法的示例。

图27A-图27I示出了视频处理的示例方法的流程图。

图28是用于实施本文档中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。

图29是可以实施所公开技术的示例视频处理系统的框图。

具体实施方式

由于对高分辨率视频的需求日益增长,视频编解码方法和技术普遍存在于现代技术中。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且正在不断改进以提供更高的编解码效率。视频编解码器将未压缩视频转换成压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、易于编辑、随机存取和端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(HEVC)标准(也称为H.265或MPEG-H第2部分)、将要定案的多功能视频编解码(Versatile Video Coding,VVC)标准或其他当前和/或未来的视频编解码标准。

所公开的技术的实施例可以应用于现有的视频编解码标准(例如,HEVC、H.265)和未来的标准,以提高压缩性能。在本文档中使用章节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)仅限制于各个章节。

1.HEVC/H.265帧间预测的示例

这些年来,视频编解码标准有了显著提高,现在部分提供了高编解码效率和对更高分辨率的支持。诸如HEVC和H.265的最近标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。

1.1预测模式的示例

每个帧间PU(prediction unit,预测单元)具有一个或两个参考图片列表的运动参数。在一些实施例中,运动参数包括运动矢量和参考图片索引。在其他实施例中,两个参考图片列表之一的使用也可以使用inter_pred_idc信令通知。在又一些实施例中,运动矢量可以被显式地编码为相对于预测值的增量。

当以跳过模式对CU进行编码时,一个PU与CU相关联,并且没有显著的残差系数,没有编码的运动矢量增量或参考图片索引。指定了Merge模式,由此从临近PU获得当前PU的运动参数,包括空域和时域候选。Merge模式不仅应用于跳过模式,还可应用于任何帧间预测PU。Merge模式的可选方案是运动参数的显式地传输,其中运动矢量、每个参考图片列表的对应参考图片索引和参考图片列表的使用按每个PU显式地信令通知。

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

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

1.1.1构建Merge模式的候选的实施例

当使用Merge模式预测PU时,从比特流中解析指向Merge候选列表中的条目的索引并将其用于检索运动信息。该列表的构建可以根据以下一系列步骤进行概述:

·步骤1:初始候选推导

ο步骤1.1:空域候选推导

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

ο步骤1.3:时域候选推导

·步骤2:附加候选插入

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

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

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

1.1.2构建空域Merge候选

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

为了降低计算复杂度,在所提到的冗余检查中不考虑所有可能的候选对。相反,只考虑与图3中的箭头链接的对,并且如果用于冗余检查的对应候选没有相同的运动信息,则候选仅被添加到列表中。重复运动信息的另一源是与不同于2N×2N的分割相关联的“第二PU”。作为示例,图4A和图4B分别描绘了N×2N和2N×N的情况下的第二PU。当当前PU被分割为N×2N时,位置A

1.1.3构建时域Merge候选

在该步骤中,仅一个候选被添加到列表。具体地,在该时域Merge候选的推导中,基于属于与给定参考图片列表内的当前图片具有最小POC(Picture Order Count,图片顺序计数)差的图片的并置(co-located)PU来推导缩放运动矢量。在条带头中显式地信令通知要用于推导并置PU的参考图片列表。

图5示出了用于时域Merge候选的缩放运动矢量(如虚线)的推导的示例,该缩放运动矢量是使用POC距离tb和td从并置PU的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为并置图片的参考图片与并置图片之间的POC差。时域Merge候选的参考图片索引被设置为等于零。对于B条带,两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1)被获得并组合,以生成双向预测Merge候选。

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

1.1.4构建附加类型的Merge候选

除了空时Merge候选之外,还存在两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空时Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,则它们将形成新的双向预测候选。

图7示出了该过程的示例,其中,原始列表(710,在左边)中的两个候选(其具有mvL0和refIdxL0或mvL1和refIdxL1)用于创建被添加到最终列表(720,在右边)的组合的双向预测Merge候选。

插入零运动候选以填充Merge候选列表中的剩余条目,并因此达到MaxNumMergeCand容量。这些候选具有零空域位移和参考图片索引,该索引从零开始并且每次向列表中添加新的零运动候选时增加。这些候选使用的参考帧的数量对于单向预测和双向预测分别是1和2。在一些实施例中,不对这些候选执行冗余检查。

1.1.5用于并行处理的运动估计区域的示例

为了加速编码过程,可以并行执行运动估计,由此同时推导给定区域内部的所有预测单元的运动矢量。从空域邻域推导Merge候选可能干扰并行处理,因为一个预测单元不能从邻近PU推导运动参数,直到其相关联的运动估计完成。为了缓和编解码效率和处理时延之间的折衷(trade-off),可以定义运动估计区域(Motion Estimation Region,MER)。使用“log2_parallel_merge_level_minus2”语法元素在图片参数集(Picture ParameterSet,PPS)中信令通知MER的尺寸。当定义MER时,落入相同区域的Merge候选被标记为不可用,并且因此在列表构建中不被考虑。

1.2高级运动矢量预测(AMVP)的实施例

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

1.2.1构建运动矢量预测候选的示例

图8概述了运动矢量预测候选的推导过程,并且可以用refidx作为输入针对每个参考图片列表来实施。

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

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

1.2.2构建空域运动矢量候选

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

·没有空域缩放

(1)相同的参考图片列表,以及相同的参考图片索引(相同的POC)

(2)不同的参考图片列表,但是相同的参考图片(相同的POC)

·空域缩放

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

(4)不同的参考图片列表,以及不同的参考图片(不同的POC)

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

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

1.2.3构建时域运动矢量候选

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

2.联合探索模型(JEM)中的帧间预测方法的示例

在一些实施例中,使用称为联合探索模型(Joint Exploration Model,JEM)的参考软件来探索未来的视频编解码技术。在JEM中,基于子块的预测被采用在几个编解码工具中,诸如仿射预测、可选时域运动矢量预测(ATMVP)、时空运动矢量预测(STMVP)、双向光流(BIO)、帧速率上转换(FRUC)、局部自适应运动矢量分辨率(Locally Adaptive MotionVector Resolution,LAMVR)、重叠块运动补偿(OBMC)、局部照明补偿(LIC)和解码器侧运动矢量细化(DMVR)。

2.1基于子CU的运动矢量预测示例

在具有四叉树加二叉树(quadtrees plus binary trees,QTBT)的JEM中,每个CU对于每个预测方向最多可以有一个运动参数集。在一些实施例中,通过将大CU划分成子CU并且推导大CU的所有子CU的运动信息,在编码器中考虑两个子CU级别运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从比并置参考图片中的当前CU小的多个块中提取运动信息的多个集合。在时空运动矢量预测(Spatial-Temporal MotionVectorPrediction,STMVP)方法中,通过使用时域运动矢量预测量和空域临近运动矢量来递归地推导子CU的运动矢量。在一些实施例中,并且为了保持对于子CU运动预测的更准确的运动场,可以禁用参考帧的运动压缩。

2.1.1可选时域运动矢量预测(ATMVP)的示例

在ATMVP方法中,通过从比当前CU小的块提取多个运动信息(包括运动矢量和参考索引)集来修改时域运动矢量预测(Temporal Motion Vector Prediction,TMVP)方法。

图10示出了对于CU 1000的ATMVP运动预测过程的示例。ATMVP方法分两个步骤来预测CU 1000内的子CU 1001的运动矢量。第一步骤是用时域矢量来识别参考图片1050中的对应块1051。参考图片1050也称为运动源图片。第二步骤是将当前CU 1000划分成子CU1001,并从与每个子CU相对应的块中获得运动矢量以及每个子CU的参考索引。

在第一步骤中,参考图片1050和对应块由当前CU 1000的空域临近块的运动信息确定。为了避免临近块的反复的扫描过程,使用当前CU 1000的Merge候选列表中的第一Merge候选。第一可用运动矢量以及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,与TMVP相比,可以更准确地识别对应块,其中对应块(有时称为并置块)总是相对于当前CU处于右下或中心位置。

在第二步骤中,通过向当前CU的坐标添加时域矢量,通过运动源图片1050中的时域矢量来识别子CU 1051的对应块。对于每个子CU,其对应块的运动信息(例如,覆盖中心样点的最小运动网格)用于推导子CU的运动信息。在识别对应的N×N块的运动信息之后,以与HEVC的TMVP相同的方式将其转换成当前子CU的运动矢量和参考索引,其中运动缩放和其它过程适用。例如,解码器检查是否满足低延迟条件(例如,当前图片的所有参考图片的POC小于当前图片的POC),并且可能使用运动矢量MVx(例如,与参考图片列表X相对应的运动矢量)来预测每个子CU的运动矢量MV

2.1.2时空运动矢量预测(STMVP)的示例

在STMVP方法中,按照光栅扫描顺序递归地推导子CU的运动矢量。图11示出了具有4个子块的一个CU和临近块。考虑8×8的CU 1100,它包括4个4×4的子CU:A(1101)、B(1102)、C(1103)和D(1104)。当前帧中的临近的4×4块被标记为a(1111)、b(1112)、c(1113)和d(1114)。

子CU A的运动推导通过识别其两个空域邻居(neighbour)开始。第一邻居是子CUA 1101上边的N×N块(块c 1113)。如果这个块c 1113不可用或是帧内编解码的,则检查子CU A 1101上边的其它N×N块(从左到右,从块c 1113开始)。第二邻居是子CU A 1101左边的块(块b 1112)。如果块b 1112不可用或是帧内编解码的,则检查子CU A 1101左边的其它块(从上到下,从块b 1112开始)。从每个列表的临近块中获得的运动信息被缩放到给定列表的第一参考帧。接下来,通过遵循如HEVC规定的TMVP推导的相同过程来推导子块A 1101的时域运动矢量预测量(TMVP)。在块D 1104处的并置块的运动信息被相应地提取和缩放。最后,在检索和缩放运动信息之后,对每个参考列表单独地平均所有可用的运动矢量。平均运动矢量被分配为当前子CU的运动矢量。

2.1.3子CU运动预测模式信令的示例

在一些实施例中,子CU模式被启用作为附加Merge候选,并且不需要附加语法元素来信令通知这些模式。两个附加Merge候选被添加到每个CU的Merge候选列表以表示ATMVP模式和STMVP模式。在其他实施例中,如果序列参数集指示启用了ATMVP和STMVP,则可以使用多达七个Merge候选。附加Merge候选的编码逻辑与HM中的Merge候选的编码逻辑相同,这意味着,对于P条带或B条带中的每个CU,针对两个附加Merge候选可能可能还需要两次RD检查。在一些实施例中,例如,JEM,Merge索引的所有二进制值都通过CABAC(Context-basedAdaptive Binary Arithmetic Coding,基于上下文的自适应二进制算术编解码)进行上下文编解码。在其他实施例中,例如,HEVC,只有第一二进制值是上下文编解码的,其余二进制值是上下文旁路编解码的。

2.2自适应运动矢量差分辨率的示例

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

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

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

在编码器中,CU级别的RD检查用于确定哪个MVD分辨率要用于CU。也就是说,对于每个MVD分辨率,执行三次CU级别的RD检查。为了加快编码器速度,在JEM中应用以下编码方案:

--在具有正常四分之一亮度样点MVD分辨率的CU的RD检查期间,存储当前CU(整数亮度样点准度)的运动信息。存储的运动信息(取整之后)被用作在针对具有整数亮度样点和4亮度样点MVD分辨率的相同CU的RD检查期间的进一步的小范围运动矢量细化的起点,使得耗时的运动估计过程不会重复三次。

--有条件地调用具有4亮度样点MVD分辨率的CU的RD检查。对于CU,当整数亮度样点MVD分辨率的RD代价远大于四分之一亮度样点MVD分辨率的RD代价时,跳过对于CU的4亮度样点MVD分辨率的RD检查。

2.3更高的运动矢量存储精度的示例

在HEVC中,运动矢量精度是四分之一像素(对于4∶2∶0视频是四分之一亮度样点和八分之一色度样点)。在JEM中,内部运动矢量存储和Merge候选的精度增加到1/16像素。更高的运动矢量精度(1/16像素)用于以跳跃/Merge模式编解码的CU的运动补偿帧间预测。对于用正常AMVP模式编码的CU,使用整数像素或四分之一像素运动。

具有与HEVC运动补偿插值滤波器相同的滤波器长度和归一化因子的SHVC上采样插值滤波器被用作附加分数像素位置的运动补偿插值滤波器。在JEM中色度分量运动矢量精度为1/32样点,通过使用两个临近的1/16像素分数位置的滤波器的平均值来推导1/32像素分数位置的附加插值滤波器。

2.4重叠块运动补偿(OBMC)的示例

在JEM中,重叠块运动补偿(OBMC)先前在H.263中使用过。在JEM中,与H.263不同,可以使用CU级别的语法来打开和关闭OBMC。当在JEM中使用OBMC时,除了CU的右边界和下边界之外,对于所有运动补偿(Motion Compensation,MC)块边界都执行OBMC。此外,它被应用于亮度和色度分量。在JEM中,MC块对应于编解码块。当用子CU模式(包括子CU Merge、仿射和FRUC(Frame Rate Up Conversion,帧速率上转换)模式)对CU进行编解码时,CU的每个子块是MC块。为了以统一的方式处理CU边界,在子块级别对于所有MC块边界执行OBMC,其中子块尺寸被设置为等于4×4,如图12A-图12B所示。

图12A示出了在CU/PU边界的子块,并且阴影子块是应用OBMC的地方。类似地,图12B示出了ATMVP模式下的子PU。

当OBMC应用于当前子块时,除了当前运动矢量之外,四个相连的临近子块的运动矢量(如果可用并且与当前运动矢量不相同)还用于推导当前子块的预测块。基于多个运动矢量的这些多个预测块被组合以生成当前子块的最终预测信号。

基于临近子块的运动矢量的预测块被表示为PN,其中N表示用于临近的上边、下边、左边和右边的子块的索引,并且基于当前子块的运动矢量的预测块被表示为PC。当PN基于包含临近子块的与当前子块相同的运动信息的运动信息时,OBMC不是从PN执行的。否则,将PN的每个样点添加到PC中的相同样点中,即PN的四行/列被添加到PC中。权重因子{1/4,1/8,1/16,1/32}用于PN,并且权重因子{3/4,7/8,15/16,31/32}用于PC。例外情况是小的MC块(即当编解码块的高度或宽度等于4或者CU用子CU模式进行编解码时),对于这样的块,只有PN的两行/列被添加到PC中。在这种情况下,权重因子{1/4,1/8}用于PN,并且权重因子{3/4,7/8}用于PC。对于基于垂直(水平)临近子块的运动矢量生成的PN,将PN的相同的行(列)中的样点以相同的权重因子添加到PC。

在JEM中,对于尺寸小于或等于256个亮度样点的CU,信令通知CU级别标志,以指示对于当前CU是否应用了OBMC。对于尺寸大于256个亮度样点或未用AMVP模式编解码的CU,默认应用OBMC。在编码器处,当OBMC应用于CU时,其影响在运动估计阶段期间被考虑在内。使用上临近块和左临近块的运动信息由OBMC形成的预测信号用于补偿当前CU的原始信号的上边界和左边界,然后应用正常运动估计过程。

2.5局部照明补偿(LIC)的示例

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

当LIC应用于CU时,采用最小平方误差法以通过使用当前CU的临近样点及其对应的参考样点来推导参数a和b。图13示出了用于推导IC算法参数的临近样点的示例。具体地,如图13所示,使用参考图片中的CU的子采样(2:1子采样)临近样点和对应的样点(由当前CU或子CU的运动信息识别)。IC参数被单独地推导并应用于每个预测方向。

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

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

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

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

2.6仿射运动补偿预测的示例

在HEVC中,只有平移运动模型被应用于运动补偿预测(Motion CompensationPrediction,MCP)。然而,相机和对象可以具有许多种运动,例如,放大/缩小、旋转、透视运动和/或其它不规则运动。另一方面,JEM应用了简化的仿射变换运动补偿预测。图14示出了由两个控制点运动矢量V

如图14所示,(v

这里,MvPre是运动矢量分数精度(例如,在JEM中为1/16),(v

图15示出了块1500的每一子块的仿射MVF的示例。为了推导每个M×N子块的运动矢量,可以根据等式(1)计算每个子块的中心样点的运动矢量,并取整到运动矢量分数精度(例如,在JEM中为1/16)。然后,可以应用运动补偿插值滤波器来用推导出的运动矢量生成每个子块的预测。在MCP之后,每个子块的高精度运动矢量被取整并保存为与正常运动矢量相同的精度。

2.6.1 AF_INTER模式的实施例

在JEM中,有两种仿射运动模式:AF_INTER模式和AF_MERGE模式。对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在比特流中信令通知CU级别的仿射标志,以指示是否使用AF_INTER模式。在AF_INTER模式下,使用临近块构建具有运动矢量对{(v

图16示出了在AF_INTER模式下块1600的运动矢量预测(MVP)的示例。如图16所示,从子块A、B或C的运动矢量中选择v

2.6.3 AF_MERGE模式的实施例

当在AF_MERGE模式下应用CU时,它从有效的临近重建块中得到用仿射模式编解码的第一块。图17A示出了当前CU 1700的候选块的选择顺序的示例。如图17A所示,选择顺序可以是从当前CU 1700的左边(1701)、上边(1702)、右上(1703)、左下(1704)到左上(1705)。图17B示出了在AF_MERGE模式下当前CU 1700的候选块的另一示例。如果临近的左下块1801以仿射模式编解码,如图17B所示,则推导包含子块1701的CU的左上角、右上角和左下角的运动矢量v

在根据等式(1)中的仿射运动模型计算当前CU的CPMV v

2.7模式匹配的运动矢量推导(PMMVD)的示例

PMMVD模式是基于帧速率上转换(FRUC)方法的特殊Merge模式。利用这种模式,块的运动信息不是被信令通知的,而是在解码器侧推导的。

当Merge标志为真时,可以为CU信令通知FRUC标志。当FRUC标志为假时,可以信令通知Merge索引,并使用规则Merge模式。当FRUC标志为真时,可以信令通知附加的FRUC模式标志,以指示将使用哪种方法(例如,双边匹配或模板匹配)来推导块的运动信息。

在编码器侧,关于是否对CU使用FRUC Merge模式的决定是基于对正常Merge候选所做的RD代价选择。例如,通过使用RD代价选择来检查CU的多个匹配模式(例如,双边匹配和模板匹配)。导致最小成本的匹配模式与其他CU模式进行了进一步的比较。如果FRUC匹配模式是最有效的模式,则针对CU将FRUC标志设置为真,并使用相关的匹配模式。

通常,FRUC Merge模式中的运动推导过程有两个步骤:首先执行CU级别的运动搜索,然后执行子CU级别的运动细化。在CU级别,基于双边匹配或模板匹配推导整个CU的初始运动矢量。首先,生成MV候选列表,并选择导致最小匹配成本的候选作为进一步CU细化的起点。然后执行基于起点周围的双边匹配或模板匹配的局部搜索。产生最小匹配成本的MV被视作整个CU的MV。随后,以推导出的CU运动矢量为起点,在子CU级别进一步细化运动信息。

例如,对W×H CU运动信息推导执行以下推导过程。在第一阶段,推导整个W×H CU的MV。在第二阶段,CU被进一步划分为M×M子CU。M的值如等式(3)计算,D是预定义的划分深度,在JEM中D默认设置为3。然后推导每个子CU的MV。

图18示出了在帧率上转换(FRUC)方法中使用的双边匹配的示例。双边匹配用于通过在两个不同的参考图片(1810,1811)中沿着当前CU(1800)的运动轨迹找到两个块之间的最接近匹配来推导当前CU的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0(1801)和MV1(1802)与当前图片和两个参考图片之间的时域距离(例如,TD0(1803)和TD1(1804))成比例。在一些实施例中,当当前图片1800在时域上位于两个参考图片(1810,1811)之间并且从当前图片到两个参考图片的时域距离相同时,双边匹配变成基于镜像的双边MV。

图19示出了在帧速率上转换(FRUC)方法中使用的模板匹配的示例。模板匹配可以用于通过找到当前图片中的模板(例如,当前CU的顶部和/或左边的临近块)和参考图片1910中的块(例如,与模板尺寸相同)之间的最接近匹配来推导当前CU 1900的运动信息。除了上述FRUC Merge模式,模板匹配也可以应用于AMVP模式。在JEM和HEVC中,AMVP具有两个候选。利用模板匹配方法,可以推导新的候选。如果通过模板匹配新推导的候选不同于第一现有AMVP候选,则将其插入AMVP候选列表的最开始处,然后列表尺寸被设置为2(例如,通过移除第二现有AMVP候选)。当应用于AMVP模式时,仅应用CU级别搜索。

在CU级别的MV候选集可以包括以下内容:(1)如果当前CU处于AMVP模式,则为原始AMVP候选,(2)所有Merge候选,(3)插值MV场中的几个MV(稍后描述),以及顶部和左边的临近运动矢量。

当使用双边匹配时,Merge候选的每个有效MV可以被用作输入,以生成假设双边匹配的情况下的MV对。例如,在参考列表A处,Merge候选的一个有效MV是(MVa,ref

在一些实施方式中,来自插值MV场的四个MV也可以被添加到CU级别候选列表中。更具体地,在当前CU的位置(0,0)、(W/2,0)、(0,H/2)和(W/2,H/2)处的插值MV被添加。当FRUC应用于AMVP模式时,原始AMVP候选也被添加到CU级别MV候选集中。在一些实施方式中,在CU级别,可以将AMVP CU的15个MV和Merge CU的13个MV添加到候选列表中。

子CU级别的MV候选集包括:从CU级别搜索中确定的MV,(2)顶部、左边、左上和右上的临近MV,(3)来自参考图片的并置MV的缩放版本,(4)一个或多个ATMVP候选(例如,最多四个),以及(5)一个或多个STMVP候选(例如,最多四个)。来自参考图片的缩放MV如下推导。遍历两个列表中的参考图片。参考图片中子CU的并置位置处的MV被缩放到起始CU级别MV的参考。ATMVP和STMVP候选可以是前四个。在子CU级别,一个或多个MV(例如,最多17个)被添加到候选列表中。

在一些实施例中,两个参考列表中的每个参考图片的运动场以4×4块级别遍历。图20示出了FRUC方法中的单边运动估计(ME)2000的示例。对于每个4×4块,如果与块相关联的运动通过当前图片中的4×4块并且该块没有被分配任何插值运动,则参考块的运动根据时域距离TD0和TD1(与HEVC中的TMVP的MV缩放的方式相同)被缩放到当前图片,并且缩放的运动被分配到当前帧中的块。如果没有为4×4块分配缩放MV,则块的运动在插值运动场中被标记为不可用。

匹配成本的计算在不同的步骤有所不同。当从CU级别的候选集中选择候选时,匹配成本可以是双边匹配或模板匹配的绝对和差(Absolute Sum Difference,SAD)。在确定起始MV后,子CU级别搜索的双边匹配的匹配成本C计算如下:

这里,w是权重因子。在一些实施例中,w可以根据经验设置为4。MV和MVs分别指示当前MV和起始MV。SAD仍然可以用作子CU级别搜索的模板匹配的匹配成本。

在FRUC模式下,仅通过使用亮度样点来推导MV。推导出的运动将用于MC帧间预测的亮度和色度两者。在确定MV之后,使用用于亮度的8抽头插值滤波器和用于色度的4抽头插值滤波器来执行最终MV。

MV细化是以双边匹配成本或模板匹配成本为标准的基于模式的MV搜索。在JEM中,支持两种搜索模式-无限制中心偏置菱形搜索(Unrestricted Center-Biased DiamondSearch,UCBDS)和自适应交叉搜索,分别在CU级别和子CU级别进行MV细化。对于CU和子CU级别的MV细化两者,以四分之一亮度样点MV精度直接搜索MV,然后是八分之一亮度样点MV细化。将用于CU和子CU步骤的MV细化的搜索范围被设置为等于8个亮度样点。

在双边匹配Merge模式中,应用双向预测,因为CU的运动信息是基于在两个不同参考图片中沿着当前CU的运动轨迹的两个块之间的最接近匹配而推导的。在模板匹配Merge模式下,编码器可以从来自列表0的单向预测、来自列表1的单向预测或双向预测当中为CU选择。选择可以基于如下模板匹配成本:

这里,cost0是列表0模板匹配的SAD,costl是列表1模板匹配的SAD,costBi是双向预测模板匹配的SAD。例如,当因子的值等于1.25时,这意味着选择过程偏向双向预测。帧间预测方向选择可以应用于CU级别模板匹配过程。

2.8广义双向预测(GBI)的示例

在传统的双向预测中,对来自L0和L1的预测值求平均,以使用相等的权重0.5生成最终预测值。预测值生成公式如等式(5)所示。

P

在等式(5)中,P

广义双向预测(GBI)提出允许对来自L0和L1的预测值施加不同的权重。GBI也被称为具有CU权重的双向预测(bi-prediction with CU weights,BCW)。预测值生成如等式(6)所示。

P

在等式(6)中,P

支持的权重w

对于高级运动矢量预测(AMVP)模式,如果通过双向预测对该CU进行编解码,则GBI中的权重选择在CU级别被显式地信令通知。对于Merge模式,权重选择是从Merge候选继承。在该方案中,GBI支持DMVR生成模板的加权平均值以及BMS-1.0的最终预测值。

2.9多假设帧间预测的示例

在多假设帧间预测模式下,除了传统的单/双向预测信号之外,还信令通知一个或多个附加的预测信号。产生的整体预测信号通过样点加权叠加获得。通过单/双向预测信号p

p

预测单元语法结构的变化如下所示:

权重因子α由语法元素add_hyp_weight_idx根据以下映射而指定:

在一些实施例中,对于附加预测信号,预测列表0/列表1的概念被废除,转而使用一个组合列表。该组合列表通过以增加的参考索引交替插入来自列表0和列表1的参考帧、省略已经插入的参考帧而生成,从而避免了双重条目。

在一些实施例中,并且类似于上述,可以使用一个以上的附加预测信号。产生的整体预测信号与每个附加预测信号迭代累积。

p

获得产生的整体预测信号作为最后一个p

注意,同样对于使用Merge模式(而不是跳过模式)的帧间预测块,可以指定附加帧间预测信号。另外还注意,在Merge的情况下,不仅单/双向预测参数,而且所选择的Merge候选的附加预测参数都可以用于当前块。

2.10 AMVP模式的单向预测的多假设预测的示例

在一些实施例中,当多假设预测被应用于改进的AMVP模式的单向预测时,信令通知一个标志来启用或禁用对于inter_dir等于1或2的多假设预测,其中1、2和3分别表示列表0、列表1和双向预测。此外,当标志为真时,信令通知一个Merge索引。这样,多假设预测将单向预测变为双向预测,其中一个运动是使用AMVP模式下的原始语法元素获取的,而另一个运动是使用Merge方案获取的。最终预测使用1∶1权重将这两个预测组合为双向预测。首先从Merge模式推导Merge候选列表,不包括子CU候选(例如,仿射、可选时域运动矢量预测(ATMVP))。接下来,它被分离成两个单独的列表,一个用于包含来自候选的所有L0动议的列表0(L0),另一个用于包含所有L1运动的列表1(L1)。在移除冗余和填补空缺之后,分别为L0和L1生成两个Merge列表。在应用多假设预测来改进AMVP模式时,有两个约束。第一,对于亮度编解码块(CB)面积大于或等于64的那些CU,启用该多假设预测。第二,该多假设预测仅适用于在低延迟B图片中时的L1。

2.11跳过/Merge模式的多假设预测示例

在一些实施例中,当多假设预测被应用于跳过或Merge模式时,是否启用多假设预测被显式地信令通知。除了原始预测之外,还会选择额外的Merge索引预测。因此,多假设预测的每个候选隐含Merge候选对,其中一个用于第一Merge索引预测,另一个用于第二Merge索引预测。然而,在每个对中,第二Merge索引预测的Merge候选被隐式推导为后续Merge候选(即已经信令号通知的Merge索引加1),而不信令通知任何附加Merge索引。在通过排除包含相似Merge候选和填充空缺的那些对来移除冗余之后,形成用于多假设预测的候选列表。然后,获取来自两个Merge候选的对的运动以生成最终预测,其中5∶3权重分别施加于第一Merge索引预测和第二Merge索引预测。此外,启用多假设预测的Merge或跳过CU可以保存除了现有假设的运动信息之外的附加假设的运动信息,以供后面的临近CU的参考。

注意,从候选列表中排除子CU候选(例如,仿射、ATMVP),并且对于低延迟的B图片,多假设预测不适用于跳过模式。此外,当多假设预测被应用于Merge或跳过模式时,对于那些CU宽度或CU高度小于16的CU,或者那些CU宽度和CU高度都等于16的CU,双线性插值滤波器被用于多假设的运动补偿。因此,启用多假设预测的每个Merge或跳过CU的最坏情况带宽(每一样点所需的访问样点)小于禁用多假设预测的每个4×4CU的最坏情况带宽的一半。

2.12最终运动矢量表达(UMVE)的示例

在一些实施例中,提出了最终运动矢量表达(UMVE)。UMVE利用提出的运动矢量表达式方法而被用于跳过或Merge模式。

UMVE重用与VVC中相同的Merge候选。在Merge候选当中,可以选择候选,并通过所提出的运动矢量表达方法进一步扩展。

UMVE提供了具有简化信令的新的运动矢量表达。表达方法包括起点、运动幅度和运动方向。这种提出的技术按原样使用Merge候选列表。但是对于UMVE的扩展,仅考虑默认Merge类型(MRG_TYPE_DEFAULT_N)的候选。

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

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

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

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

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

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

2.13具有预测偏移的仿射Merge模式的示例

在一些实施例中,UMVE被扩展到仿射Merge模式,此后我们将其称为UMVE仿射模式。所提出的方法选择第一可用的仿射Merge候选作为基本预测值。然后,它将运动矢量偏移应用于来自基本预测值的每个控制点的运动矢量值。如果没有可用的仿射Merge候选,则不使用该提出的方法。

所选择的基本预测值的帧间预测方向和每个方向的参考索引被不加改变地使用。

在当前实施方式中,当前块的仿射模型被假设为4参数模型,只需要推导2个控制点。因此,只有基本预测值的前2个控制点将被用作控制点预测值。

对于每个控制点,zero_MVD标志用于指示当前块的控制点是否具有与对应控制点预测值相同的MV值。如果zero_MVD标志为真,则控制点不需要其他信令。否则,为控制点信令通知距离索引和偏移方向索引。

使用尺寸为5的距离偏移表,如下表所示。

信令通知距离索引,以指示使用哪个距离偏移。距离索引和距离偏移值的映射如图23所示。

方向索引可以表示如下所示的四个方向,其中只有x或y方向可能有MV差,但不是两个方向都有。

如果帧间预测是单向的,则信号距离偏移被应用于每个控制点预测值的偏移方向。结果将是每个控制点的MV值。

例如,当基本预测值是单向的时,并且控制点的运动矢量值是MVP(v

MV(v

如果帧间预测是双向的,则信令通知的距离偏移被应用在控制点预测值的L0运动矢量的所信令通知的偏移方向上;并且具有相反方向的相同距离偏移被应用于控制点预测值的L1运动矢量。结果将是每个控制点在每个帧间预测方向上的MV值。

例如,当基本预测值为单向的时,并且L0上的控制点的运动矢量值是MVP

MV

MV

2.14双向光流(BIO)的示例

双向光流(BIO)方法是按样点的运动细化,其在用于双向预测的按块的运动补偿的基础上进行。在一些实施方式中,样点级别运动细化不使用信令。

设I

将该光流等式与Hermite插值相结合以获得每个样点的运动轨迹,最终得到与函数值I

图24示出了双向光流(BIO)方法中的示例光流轨迹。这里,τ

通过最小化点A和点B的值之间的差Δ来确定运动矢量场(v

上式中的所有值都取决于样点位置,表示为(i′,j′)。假设运动在局部周围区域中是一致的,可以最小化以当前预测点(i,j)为中心的(2M+1)×(2M+1)正方形窗口Ω内的Δ,其中M等于2:

对于这个优化问题,JEM使用简化的方法,首先在垂直方向最小化,然后在水平方向最小化。这得到以下等式:

其中,

为了避免除以零或非常小的值,正则化参数r和m可以被引入等式9和10中,其中:

r=500·4

m=700·4

这里,d是视频样点的比特深度。

为了保持BIO的存储器访问与规则双向预测运动补偿的相同,所有预测和梯度值

利用BIO,有可能针对每个样点细化运动场。为了降低计算复杂度,在JEM中使用基于块的BIO设计。可以基于4×4块来计算运动细化。在基于块的BIO中,可以聚合4×4块中所有样点的等式(9)中的s

这里,bk表示属于预测块的第k个4×4块的样点集。等式(9)和等式(10)中的s

在某些场景况下,由于噪音或不规则的运动,BIO的MV细化可能不可靠。因此,在BIO中,MV细化的幅度被限幅到阈值。阈值基于当前图片的参考图片是否都来自一个方向来确定。例如,如果当前图片的所有参考图片都来自一个方向,则阈值被设置为12×2

可以使用与HEVC运动补偿过程(例如,2D可分离FIR(Finite Impulse Response,有限脉冲响应))一致的操作,与运动补偿插值同时计算BIO的梯度。在一些实施例中,2D可分离FIR的输入是与运动补偿过程和根据块运动矢量的分数部分的分数位置(fracX,fracY)相同的参考帧样点。对于水平梯度

表1:用于BIO中梯度计算的示例性过滤器

表2:用于BIO中预测信号生成的示例性插值滤波器

在JEM中,当两个预测来自不同的参考图片时,BIO可以应用于所有双向预测块。当对于CU启用局部照明补偿(LIC)时,BIO可以被禁用。

在一些实施例中,OBMC应用于正常MC过程之后的块。为了降低计算复杂性,BIO可能不会在OBMC过程期间被应用。这意味着当使用自己的MV时,BIO被应用于块的MC过程,而当在OBMC过程期间使用临近块的MV时,BIO不应用于MC过程。

2.15解码器侧运动矢量细化(DMVR)的示例

在双向预测操作中,对于一个块区域的预测,分别使用列表0的运动矢量(MV)和列表1的MV形成的两个预测块被组合以形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,双向预测的两个运动矢量通过双边模板匹配过程进一步细化。双边模板匹配应用于解码器中,以在双边模板和参考图片中的重构样点之间执行基于失真的搜索,以便在不发送附加运动信息的情况下获得细化的MV。

在DMVR中,从列表0的初始MV0和列表1的MV1分别生成双边模板作为两个预测块的加权组合(即平均值),如图26所示。模板匹配操作包括计算生成的模板和参考图片中的(初始预测块周围的)样点区域之间的成本度量。对于两个参考图片中的每一个,产生最小模板成本的MV被认为是该列表中用以替换原始MV的更新后的MV。在JEM中,对于每个列表搜索9个MV候选。9个候选MV包括原始MV和8个周围MV,其中一个亮度样点在水平或垂直方向或两者上相对于原始MV偏移的亮度样点。最后,两个新的MV(即如图26所示的MV0′和MVl′)用于生成最终的双向预测结果。绝对差之和(sum of absolute differences,SAD)被用作成本度量。

DMVR应用于双向预测的Merge模式,其中一个MV来自过去的参考图片,并且另一个来自未来的参考图片,而无需传输附加语法元素。在JEM中,当对于CU启用LIC、仿射运动、FRUC或子CU Merge候选时,不应用DMVR。

3.与公开的技术相关的示例性实施例

例如,一些实施例包括MV更新方法和两步帧间预测方法。BIO中参考块0和参考块1之间的推导出的MV被缩放并添加到列表0和列表1的原始运动矢量中。同时,更新的MV用于执行运动补偿,并且第二帧间预测被生成作为最终预测。其他实施例包括通过移除参考块0和参考块1之间的平均差来修改时域梯度。在又一些实施例中,MV更新方法和两步帧间预测方法被扩展为执行多次。

4.现有实施方式的缺点

在一些现有的实施方式中,还没有很好地定义如何将BIO或/和DMVR或任何其他解码器侧运动矢量推导/细化工具应用于用多假设预测模式或GBI模式编解码的CU。

在使用广义双向预测(GBI)的其他现有实施方式中,当编码权重因子索引(例如,GBI索引)时,所有二进制值都用上下文进行编解码,这在计算上是复杂的。

5.DMVD工具与其他工具并置的示例方法

当前公开的技术的实施例克服了现有实施方式的缺点,从而提供了具有更高编解码效率的视频编解码。基于所公开的技术,DMVD工具与其他视频编解码工具的并置可以增强现有和未来的视频编解码标准,在针对各种实施方式描述的以下示例中进行了阐述。下面提供的公开技术的示例解释了一般概念,并且不意味着被解释为限制。在一个示例中,除非明确被指示为相反,否则这些示例中描述的各种特征可以被组合。

所公开的技术描述了如何将BIO或/和DMVR或任何其他解码器侧运动矢量推导/细化工具应用于用多假设预测模式或GBI模式编解码的块。在下文中,DMVD(解码器侧运动矢量推导)用于表示BIO或/和DMVR或/和FRUC或/和任何其他解码器侧运动矢量推导/细化技术。另外,本文档中还提出了DMVD技术向其他编解码方法的扩展。

(a)在一个示例中,对于用多假设和单向预测AMVP编解码的块,如果用来自不同预测方向的两个参考块来预测,则可以执行DMVD。

(b)在一个示例中,如果用三个参考块来预测块,则可以通过选择两个参考块来执行DMVD。将三个参考块表示为ref0、ref1和ref2,假设ref0来自预测方向X,并且ref1和ref2来自预测方向1-X,可以对参考块对(ref0,ref1)或/和(ref0,ref2)执行DMVD。

(i)在一个示例中,可以仅执行一次DMVD。在这种情况下,可以在DMVD过程中利用(ref0,ref1)或(ref0,ref2)。

(ii)可替换地,可以执行两次DMVD。在这种情况下,可以分别在第一DMVD过程和第二DMVD过程中利用(ref0,ref1)和(ref0,ref2)。可替换地,可以分别在第一DMVD过程和第二DMVD过程中利用(ref0,ref2)和(ref0,ref1)。

(1)在一个示例中,一个DMVD过程(例如,第一DMVD)的细化信息(例如,由于BIO或DMVR而产生的细化运动信息)可以用作另一DMVD过程(例如,第二DMVD)的输入。也就是说,可以应用两个DMVD过程的顺序过程(顺序模式)。

(2)可替换地,可以用相同的输入调用多个DMVD进程,使得多个进程可以并行完成(并行模式)。

(iii)在一个示例中,如果通过BIO对ref0细化两次,表示为ref0_r1和ref0_r2,则ref0_r1和ref0_r2可以被联合使用(例如,求平均或求加权平均)以生成ref0的最终细化值。例如,ref0’=(ref0_r1+ref0_r2+1)>>1被用作细化的ref0。可替换地,ref0_r1或ref0_r2被用作细化的ref0。

(iv)在一个示例中,如果通过BIO或DMVR对ref0的运动信息(表示为MV0)细化两次,表示为MV0_r1和MV0_r2,则MV0_r1和MV0_r2可以被联合使用(例如,求平均或求加权平均)以生成MV0的最终细化值。例如,MV0’=(MV0_r1+MV0_r2+1)>>1被用作细化的MV0。可替换地,MV0_r1或MV0_r2被用作细化的MV0。

(c)在一个示例中,如果用N个参考块来预测块,并且M个参考块来自预测方向X,并且N-M个参考块来自预测方向1-X,则可以对两个参考块中的任何一个/一些执行DMVD,其中一个来自预测方向X,而另一个来自预测方向1-X。

(i)与(b)(ii)类似,可以在并行模式或顺序模式下调用多次DMVD过程。

(ii)在一个示例中,如果通过BIO对参考块细化T次,则这些经过T次细化的值的部分或全部可以被联合使用(例如,使用平均值或加权平均值)来推导参考块的最终细化值。

(iii)可替换地,如果通过BIO对参考块细化T次,则经过PT次细化的值的部分或全部可以被联合使用(例如,使用平均值或加权平均值)来推导参考块的最终细化值。例如,PT等于1,2,3,4,...,T-1。

(iv)在一个示例中,如果通过例如BIO或DMVR对参考块的运动信息细化T次,则这些经过T次细化的MV的部分或全部可以被联合使用(例如,使用平均值或加权平均值)来推导参考块的最终细化MV。

(v)可替换地,如果通过例如BIO或DMVR对参考块的运动信息细化T次,则经过PT次细化的MV的部分或全部可以被联合使用(例如,使用平均值或加权平均值)来推导参考块的最终细化值。例如,PT等于1,2,3,4,...,T-1。

(d)在一个示例中,如果用多个运动信息集来预测块(例如,一个运动信息集来自AMVP模式,而另一运动信息集来自Merge候选(例如,如2.10章节中所述),或者两个运动信息集都来自Merge候选(例如,如2.11章节中所述)),则可以对每个/某个运动信息集执行DMVD。

(i)在一个示例中,当运动信息是双向运动信息时,调用DMVD。

(ii)在一个示例中,在多假设帧间预测模式中(如2.9章节所述),仅针对非附加运动信息执行DMVD。

(e)在一个示例中,最多可以执行一次DMVD。

(i)例如,如果用多假设Merge/跳过模式对块进行编解码(例如,如2.11章节中所述),则仅对第一选择的Merge候选执行DMVD。

(1)可替换地,仅对第二选择的Merge候选执行DMVD。

(2)可替换地,按顺序检查2/N个选择的Merge候选,并且仅对第一可用的双向Merge候选执行DMVD。

(ii)例如,如果用多假设AMVP模式对块进行编解码(如2.10章节所述),则仅对Merge候选执行DMVD。

(iii)例如,如果用多假设帧间预测模式对块进行编解码(例如,如2.9章节所述),则根据对应语法元素的信令顺序来识别来自列表0和列表1的第一可用的参考块(如果有的话),并且仅对这两个参考块执行DMVD。

(a)在一个示例中,在计算BIO中的时域梯度或/和空域梯度之前,每个参考块可以通过其对应的权重因子来缩放。

(b)在一个示例中,当在DMVR中执行双边匹配或模板匹配时,每个参考块可以通过其对应的权重因子来缩放。

(c)在一个示例中,如果在DMVR中使用模板匹配,则在生成模板时可以使用这种权重因子。

(a)可替换地,在双向仿射帧间模式中,仅当平移运动参数的MVD都为零时,才使用DMVD来细化平移运动参数。

(b)可替换地,在UMVE仿射模式中,仅当平移运动参数的MVD都为零时,才使用DMVD来细化平移运动参数。

(a)可替换地,当在UMVE模式中有非零MVD分量时,禁用DMVD。

(b)可替换地,在UMVE模式下禁用DMVD。

(a)在一个示例中,当块尺寸包含少于M×H个样点(例如,16或32或64个亮度样点)时,不允许DMVD。

(b)在一个示例中,当块尺寸包含多于M×H个样点(例如,16或32或64个亮度样点)时,不允许DMVD。

(c)可替换地,当块的宽度或高度的最小尺寸小于或不大于X时,不允许DMVD。在一个示例中,X被设置为8。

(d)可替换地,当块的宽度>th1或≥th1和/或块的高度>th2或≥th2时,不允许DMVD。在一个示例中,X被设置为64。

(i)例如,对于128×128块,禁用DMVD。

(ii)例如,对于N×128/128×N块(对于N≥64),禁用DMVD。

(iii)例如,对于N×128/128×N块(对于N≥4),禁用DMVD。

(e)可替换地,当块的宽度<th1或≤th1和/或块的高度<th2或≤th2时,不允许DMVD。在一个示例中,th1或th2被设置为8。

(f)在一个示例中,对于以AMVP模式编解码的块,禁用DMVD。

(g)在一个示例中,对于以跳过模式编解码的块,禁用DMVD。

(h)在一个示例中,对于使用了GBI的块,禁用DMVD。

(i)在一个示例中,对于使用了多假设帧间预测(如2.9、2.10和2.11章节中所述)的块,例如,从多于2个参考块预测CU的情况,禁用DMVD。

(j)在一个示例中,对于当两个参考块/子块的绝对平均差大于阈值时的块/子块,禁用DMVD。

(a)在一个示例中,可以为每个子块调用DMVD。

(b)在一个示例中,当块的宽度或高度大于(或等于)阈值L或者宽度和高度都大于(或等于)阈值L时,该块可以被划分成多个子块。每个子块以与尺寸等于子块尺寸的普通编解码块相同的方式处理。

(i)在一个示例中,L是64,64×128/128×64块被划分成两个64×64子块,并且128×128块被划分成四个64×64子块。然而,N×128/128×N块(其中N<64)不被划分成子块。

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

(c)阈值L可以预先定义或在SPS/PPS/图片/条带/片组/片级别中信令通知。

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

(a)在一个示例中,如果参考图片是当前编解码图片,则不应用运动细化方法。

(b)在一个示例中,如果参考图片是当前编解码图片,则不应用先前项目符号中要求的多次(multi-time)运动细化方法。

(a)可替换地,此外,当两个参考块来自相同的参考图片列表时,要求这两个参考图片跨越覆盖当前块的当前图片。也就是说,与当前图片的POC相比,一个参考图片具有较小的POC值,而另一参考图片具有较大的POC值。

(b)在一个示例中,预测方向对于启用/禁用BIO是双向预测的条件检查被移除。也就是说,BIO或DMVD是否启用与预测方向值无关。

(c)当当前图片与其两个参考图片(来自相同参考图片列表或不同参考图片列表)之间的POC差的乘积小于0时,可以启用BIO或DMVD。

(d)当当前图片与其两个参考图片(来自相同参考图片列表或不同参考图片列表)之间的POC差的乘积小于或等于0(例如,一个或两个参考图片是当前图片)时,可以启用BIO或DMVD。

(a)在一个示例中,仅第一二进制值用上下文编解码,而所有其他二进制值都被旁路编解码。

(i)在一个示例中,一个上下文用于对第一二进制值进行编码。

(ii)在一个示例中,多于1个上下文用于对第一二进制值进行编码。例如,使用如下3种上下文:

(1)ctxIdx=aboveBlockIsGBIMode+leftBlockIsGBIMode;

(2)如果上述临近块以GBI模式编解码,则aboveBlockIsGBIMode等于1,否则等于0;和

(3)如果左边的临近块以GBI模式编解码,则leftBlockIsGBIMode等于1,否则等于0。

(b)在一个示例中,只有前K个二进制值用上下文来编解码,而所有其他二进制值都被旁路编解码,其中0=<K<=maxGBIIdxLen。

(i)在一个示例中,除了第一二进制值之外,所有上下文编解码的二进制值共享一个上下文。

(ii)在一个示例中,除了第一二进制值之外,每个上下文编解码的二进制值使用一个上下文。

上述示例可以结合到下面描述的方法的上下文中,例如,方法2700、2710、2720、2730、2740、2750、2760和2770,这些方法可以在视频解码器或视频编码器处实施。

图27A示出了用于视频解码的示例性方法的流程图。方法2700包括,在操作2702,基于对视频的当前块是使用多假设预测模式而被编解码的确定,做出关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化。在一些实施例中,多假设预测模式被配置为通过应用至少一个中间预测值来生成当前块的最终预测。

方法2700包括,在操作2704,基于该决定来执行当前块和比特流表示之间的转换。

图27B示出了用于视频解码的示例性方法的流程图。方法2710包括,在操作2712,确定视频的当前块与不同参考块的不对称权重因子相关联。

方法2710包括,在操作2714,对于当前块启用解码器侧运动矢量推导(DMVD)工具,DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化,并且DMVD过程基于不对称加权因。

方法2710包括,在操作2716,基于该启用来执行当前块和比特流表示之间的转换。

图27C示出了用于视频解码的示例性方法的流程图。方法2720包括,在操作2722,确定视频的当前块是使用高级运动矢量预测(AMVP)模式来编解码的。

方法2720包括,在操作2724,作为视频的比特流表示和当前块之间的转换的一部分,将解码器侧运动矢量推导(DMVD)工具应用于当前块,DMVD工具推导在比特流表示中信令通知的运动信息的细化。

图27D示出了用于视频解码的示例性方法的流程图。方法2730包括,在操作2732,基于解码器侧运动矢量推导(DMVD)工具,执行使用双向仿射模式或者双向仿射Merge模式编解码的视频的当前块的平移运动参数和运动矢量差的细化,运动矢量差由运动方向和运动幅度指示,DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化。

方法2730包括,在操作2734,基于该细化来执行当前块和视频的比特流表示之间的转换。

图27E示出了用于视频解码的示例性方法的流程图。方法2740包括,在操作2742,基于视频的当前块的特性,做出关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化。

方法2740包括,在操作2744,基于该决定来执行当前块和比特流表示之间的转换。

图27F示出了用于视频解码的示例性方法的流程图。方法2750包括,在操作2752,基于对视频的当前块包括多个子块的确定,做出关于在子块级别,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,DMVD工具为每个子块推导在视频的比特流表示中信令通知的运动信息的细化。

方法2750包括,在操作2754,基于该决定来执行当前块和比特流表示之间的转换。

图27G示出了用于视频解码的示例性方法的流程图。方法2760包括,在操作2762,基于与视频的当前块相关联的至少一个参考图片,做出关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化。

方法2760包括,在操作2764,基于该决定来执行当前块和比特流表示之间的转换。

图27H示出了用于视频解码的示例性方法的流程图。方法2770包括,在操作2772,从视频的当前块的比特流表示中解析二进制值串,二进制值串包括表示GBI模式的GBI索引的多个二进制值,多个二进制值中的至少一个二进制值被旁路编解码。

方法2770包括,在操作2774,基于解析的GBI索引来执行当前块和比特流表示之间的转换。

图27I示出了用于视频解码的示例性方法的流程图。方法2780包括,在操作2782,将二进制值串编码成视频的当前块的比特流表示,二进制值串包括表示广义双向预测(GBI)模式的GBI索引的多个二进制值,并且其中多个二进制值中的至少一个二进制值被旁路编解码。

方法2780包括,在操作2784,基于编码的二进制值串来执行当前块和比特流表示之间的转换。

在一些实施例中,可以实施以下技术方案:

A1.一种用于视频处理的方法(例如,图27A中的方法2700),包括:基于对视频的当前块是使用多假设预测模式而被编解码的确定,做出(2702)关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行(2704)当前块和比特流表示之间的转换,其中多假设预测模式被配置为通过应用至少一个中间预测值来生成当前块的最终预测。

A2.根据方案A1所述的方法,其中,在确定利用来自不同预测方向的两个参考块,利用高级运动矢量预测(AMVP)模式和多假设预测模式的单向预测来预测当前块时,启用DMVD工具。

A3.根据方案A1所述的方法,其中,执行转换还基于N个参考块,并且其中N是正整数。

A4.根据方案A3所述的方法,其中,N个参考块包括来自第一预测方向的M个参考块和来自不同于第一预测方向的第二预测方向的(N-M)个参考块,其中M是正整数,并且其中N>M。

A5.根据方案A4所述的方法,其中,执行转换包括将DMVD工具应用于N个参考块之一和(N-M)个参考块之一。

A6.根据方案A4所述的方法,其中,执行转换包括多次应用DMVD工具,并且其中对于多次中的每一次,DMVD工具被应用于N个参考块中的两个。

A7.根据方案A6所述的方法,其中,DMVD工具被多次应用于M个参考块的第一块和(N-M)个参考块的连续块。

A8.根据方案A6所述的方法,其中,DMVD工具被并行应用多次。

A9.根据方案A6所述的方法,其中,DMVD工具被顺序应用多次。

A10.根据方案A4所述的方法,还包括:基于第一双向光流细化来生成第(N+1)个参考块,其中来自M个参考块的第一参考块和来自(N-M)个参考块的第二参考块作为输入;基于使用第二双向光流细化来生成第(N+2)个参考块,其中第一参考块和来自(N-M)个参考块的第三参考块作为输入;以及将第一参考块重新计算为第(N+1)个参考块和第(N+2)个参考块的加权平均。

A11.根据方案A1所述的方法,其中,多假设预测模式是多假设Merge或跳过模式,并且其中,启用DMVD工具还基于第一选择的Merge候选。

A12.根据方案A1所述的方法,其中,多假设预测模式是多假设Merge或跳过模式,并且其中,启用DMVD工具还基于第二选择的Merge候选。

A13.根据方案A1所述的方法,其中,多假设预测模式是多假设Merge或跳过模式,并且其中,启用DMVD工具还基于第一可用的双向Merge候选。

A14.根据方案A1所述的方法,其中,多假设预测模式是多假设高级运动图片预测(AMVP)模式,并且其中,启用DMVD工具还基于Merge候选。

A15.根据方案A4至A10中任一项所述的方法,其中,N=3且M=2。

A16.一种用于视频处理的方法(例如,图27B中的方法2710),包括:确定(2712)视频的当前块与不同参考块的不对称权重因子相关联;对于当前块启用(2714)解码器侧运动矢量推导(DMVD)工具,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化,并且其中,DMVD过程基于不对称权重因子;以及基于该启用来执行(2716)当前块和比特流表示之间的转换。

A17.根据方案A16所述的方法,其中,当前块利用使用一个或多个不对称权重因子的双向预测模式或多假设预测模式进行编解码。

A18.根据方案A16所述的方法,其中,启用DMVD工具还基于用来自一个或多个不对称权重因子的对应权重因子缩放N个参考块中的两个或多个。

A19.根据方案A16所述的方法,其中,使用DMVD工具包括使用双边匹配或模板匹配。

A20.一种用于视频处理的方法(例如,图27C中的方法2720),包括:确定(2722)视频的当前块是使用高级运动矢量预测(AMVP)模式来编解码的;以及作为视频的比特流表示和当前块之间的转换的一部分,将解码器侧运动矢量推导(DMVD)工具应用(2724)于当前块,其中DMVD工具推导在比特流表示中信令通知的运动信息的细化。

A21.根据方案A20所述的方法,还包括:确定当前块的多个运动矢量差(MVD)分量中的至少一个为零。

A22.根据方案A20所述的方法,其中,多个MVD分量中的每一个为零。

A23.根据方案A20所述的方法,其中,多个MVD分量中的第一MVD分量在第一预测方向上为零,其中多个MVD分量中的第二MVD分量在第二预测方向上为非零,并且其中,应用DMVD工具包括细化第一预测方向上的运动矢量。

A24.根据方案A23所述的方法,其中,第一预测方向上的预测信号用于推导第二预测方向上的运动矢量。

A25.一种用于视频处理的方法(例如,图27D中的方法2730),包括:基于解码器侧运动矢量推导(DMVD)工具,执行(2732)使用双向仿射模式或者双向仿射Merge模式来编解码的视频的当前块的平移运动参数和运动矢量差的细化,运动矢量差由运动方向和运动幅度指示,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该细化来执行(2734)当前块和视频的比特流表示之间的转换。

A26.根据方案A25所述的方法,其中,双向仿射Merge模式还包括由Merge索引指示的运动信息的起点,并且其中,当前块的最终运动信息基于运动矢量差和起点。

A27.根据方案A25或A26所述的方法,其中,平移运动参数的每个运动矢量差为零。

A28.根据方案A1至A27中任一项所述的方法,其中,DMVD工具包括解码器侧运动矢量细化(DMVR)工具、或者双向光流(BDOF)工具、或者帧率上转换(FRUC)工具。

A29.根据方案A1至A28中任一项所述的方法,其中,该转换从比特流表示生成当前块。

A30.根据方案A1至A28中任一项所述的方法,其中,该转换从当前块生成比特流表示。

A31.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案A1至A30中任一项所述的方法。

A32.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案A1至A30中任一项所述的方法的程序代码。

在一些实施例中,可以实施以下技术方案:

B1.一种用于视频处理的方法,包括:基于视频的当前块的特性,做出关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行当前块和比特流表示之间的转换。

B2.根据方案B1所述的方法,其中,当前块的特性包括当前块的尺寸或编解码模式、与当前块相关联的运动信息、条带类型、图片类型或片类型。

B3.根据方案B1所述的方法,其中,在确定当前块中的亮度样点的数量小于K时,禁用DMVD工具,其中K是正整数。

B4.根据方案B1所述的方法,其中,在确定当前块中的亮度样点的数量大于K时,禁用DMVD工具,其中K是正整数。

B5.根据方案B1所述的方法,其中,在确定当前块中的亮度样点的数量大于K时,启用DMVD工具,其中K是正整数。

B6.根据方案B3至B5中任一项所述的方法,其中,K=16、32、64或128。

B7.根据方案B1所述的方法,其中,在确定当前块的高度或宽度的最小尺寸小于或等于K时,禁用DMVD工具

B8.根据方案B7所述的方法,其中,K=8。

B9.根据方案B1所述的方法,其中,在确定当前块的高度大于或等于tH或者当前块的宽度大于或等于tW时,禁用DMVD工具,并且其中tH和tW是正整数。

B10.根据方案B1所述的方法,其中,在确定当前块的高度大于或等于tH并且当前块的宽度大于或等于tW时,禁用DMVD工具,并且其中tH和tW是正整数。

B11.根据方案B9或B10所述的方法,其中,tH=64,tW=64。

B12.根据方案B9或B10所述的方法,其中,tH=128,tW=128。

B13.根据方案B9或B10所述的方法,其中tH=128,并且其中tW≥64或tW≥4。

B14.根据方案B9或B10所述的方法,其中tH≥64或tH≥4,并且其中tW=128。

B15.根据方案B1所述的方法,其中,在确定当前块的高度小于tH或当前块的宽度小于tW时,禁用DMVD工具,并且其中tH和tW是正整数。

B16.根据方案B1所述的方法,其中,在确定当前块的高度不小于tH或者当前块的宽度不小于tW时,禁用DMVD工具,并且其中tH和tW是正整数。

B17.根据方案B1所述的方法,其中,在确定当前块的高度小于或等于tH并且当前块的宽度小于或等于tW时,禁用DMVD工具,并且其中tH和tW是正整数。

B18.根据方案B15至B17中任一项所述的方法,其中,tH=8和tW=8。

B19.根据方案B1所述的方法,其中,在确定当前块的编解码模式是广义双向预测(GBI)模式时,禁用DMVD工具,并且其中不对称权重因子被应用于两个参考块。

B20.根据方案B1所述的方法,其中,在确定当前块的编解码模式是高级运动矢量预测(AMVP)模式时,禁用DMVD工具。

B21.根据方案B1所述的方法,其中,在确定当前块的编解码模式是跳过模式或多假设帧间预测模式时,禁用DMVD工具。

B22.根据方案B1所述的方法,其中,当前块包括至少一个子块。

B23.根据方案B22所述的方法,其中,在确定与当前子块相关联的两个参考块的绝对平均差大于阈值时,对于子块禁用DMVD工具。

B24.根据方案B1所述的方法,其中,在确定与当前块相关联的两个参考块的绝对平均差大于阈值时,禁用DMVD工具。

B25.根据方案B1至B24中任一项所述的方法,其中,DMVD工具包括解码器侧运动矢量细化(DMVR)工具、或者双向光流(BDOF)工具、或者帧率上转换(FRUC)工具。

B26.根据方案B1至B25中任一项所述的方法,其中,该转换从比特流表示生成当前块。

B27.根据方案B1至B25中任一项所述的方法,其中,该转换从当前块生成比特流表示。

B28.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案B1至B27中任一项所述方法。

B29.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案B1至B27中任一项所述的方法的程序代码。

在一些实施例中,可以实施以下技术方案:

C1.一种用于视频处理的方法(例如,图27F中的方法2750),包括:基于对视频的当前块包括多个子块的确定,做出(2752)关于在子块级别,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具为每个子块推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行(2754)当前块和比特流表示之间的转换。

C2.根据方案C1所述的方法,其中,对于当前块的多个子块中的每个子块启用DMVD工具。

C3.根据方案C2所述的方法,其中,子块被视为块,并且对子块执行DMVD工具中所需的所有操作。

C4.根据方案C1或C2所述的方法,其中,在确定当前块的高度和宽度不大于阈值(L)时,在块级别启用DMVD工具,并且其中L是正整数。

C5.根据方案C1或C2所述的方法,其中,当前块的高度(H)或宽度(W)大于阈值(L),并且其中L是正整数。

C6.根据方案C5所述的方法,其中,子块的宽度是min(L,W)。

C7.根据方案C5所述的方法,其中,子块的高度是min(L,H)。

C8.根据方案C5所述的方法,其中L=64,其中当前块的尺寸是64×128、128×64或128×128,并且其中多个子块中的每个子块的尺寸是64×64。

C9.根据方案C5所述的方法,其中,L=16。

C10.根据方案C5所述的方法,其中L=64,其中当前块的尺寸是N×128或128×N,并且其中多个子块中的两个子块的尺寸分别是N×64或64×N。

C11.根据方案C5所述的方法,其中,L是预先确定的。

C12.根据方案C5所述的方法,其中,在序列参数集(SPS)、图片参数集(PPS)、图片头、条带头、片组头或片头中的比特流表示中信令通知L。

C13.根据方案C5所述的方法,其中,L基于当前块的尺寸或编解码模式、图片类型或时域层索引中的至少一个。

C14.根据方案C1至C13中任一项所述的方法,其中,该转换从比特流表示生成当前块。

C15.根据方案C1至C13中任一项所述的方法,其中,该转换从当前块生成比特流表示。

C16.根据方案C1至C15中任一项所述的方法,其中,DMVD工具包括解码器侧运动矢量细化(DMVR)工具、或者双向光流(BDOF)工具、或者帧率上转换(FRUC)工具。

C17.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案C1至C16中任一项所述的方法。

C18.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案C1至C16中任一项所述的方法的程序代码。

在一些实施例中,可以实施以下技术方案:

D1.一种用于视频处理的方法(例如,图27G中的方法2760),包括:基于与视频的当前块相关联的至少一个参考图片,做出(2762)关于对于当前块,解码器侧运动矢量推导(DMVD)工具的选择性启用的决定,其中DMVD工具推导在视频的比特流表示中信令通知的运动信息的细化;以及基于该决定来执行(2764)当前块和比特流表示之间的转换。

D2.根据方案D1所述的方法,其中,在确定至少一个参考图片包括当前编解码图片时,不启用DMVD工具。

D3.根据方案D1所述的方法,其中,在确定至少一个参考图片包括来自第一参考图片列表的第一参考图片和来自第一参考图片列表的第二参考图片时,启用DMVD工具。

D4.根据方案D3所述的方法,其中,第一参考图片的图片顺序计数(POC)值小于包括当前块的当前图片的POC值,并且其中第二参考图片的POC值大于当前图片的POC值。

D5.根据方案D3所述的方法,其中,包括当前块的当前图片的图片顺序计数(POC)值与第一参考图片的POC值和与第二参考图片的POC值之间的POC差的乘积小于或等于零。

D6.根据方案D1至D5中任一项所述的方法,其中,DMVD工具包括解码器侧运动矢量细化(DMVR)工具、或者双向光流(BDOF)工具、或者帧率上转换(FRUC)工具。

D7.根据方案D1至D6中任一项所述的方法,其中,该转换从比特流表示生成当前块。

D8.根据方案D1至D6中任一项所述的方法,其中,该转换从当前块生成比特流表示。

D9.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案D1至D8中任一项所述的方法。

D10.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案D1至D8中任一项所述的方法的程序代码。

在一些实施例中,可以实施以下技术方案:

1.一种用于视频处理的方法,包括:从视频的当前块的比特流表示中解析二进制值串,其中,二进制值串包括表示广义双向预测(GBI)模式的GBI索引的多个二进制值,并且其中,多个二进制值中的至少一个被旁路编解码;以及基于解析的GBI索引来执行当前块和比特流表示之间的转换。

2.一种用于视频处理的方法,包括:将二进制值串编码成视频的当前块的比特流表示,其中,二进制值串包括表示广义双向预测(GBI)模式的GBI索引的多个二进制值,并且其中,多个二进制值中的至少一个被旁路编解码;以及基于编码的二进制值串来执行当前块和比特流表示之间的转换。

3.根据方案E1或E2所述的方法,其中,GBI模式被配置为从权重集中选择权重,以生成当前块的双向预测信号,并且其中,权重集包括不同于1/2的多个权重。

4.根据方案E1至E3中任一项所述的方法,其中,多个二进制值中的第一二进制值用至少一个上下文来编解码,并且其中,多个二进制值中的所有其他二进制值被旁路编解码。

5.根据方案E4所述的方法,其中,至少一个上下文包括一个上下文。

6.根据方案E4所述的方法,其中,至少一个上下文包括三个上下文。

7.根据方案E6所述的方法,其中,三个上下文被定义为:ctxIdx=aboveBlockIsGBIMode+leftBlockIsGBIMode,如果使用GBI模式对当前块的上边的临近块进行编解码,则aboveBlockIsGBIMode=1,否则等于0,其中如果使用GBI模式对当前块的左边的临近块进行编解码,则leftBlockIsGBIMode=1,否则等于0,并且其中,使用GBI模式包括对于双向预测的块的两个参考块使用不等权重。

8.根据方案E1至E3中任一项所述的方法,其中,多个二进制值中的前K个二进制值中的每一个用至少一个上下文来编解码,其中多个二进制值中的所有其他二进制值被旁路编解码,其中K是非负整数,其中0≤K≤maxGBIIdxLen,并且其中,maxGBIIdxLen是多个二进制值的最大长度。

9.根据方案E8所述的方法,其中,除了前K个二进制值中的第一二进制值之外,对于前K个二进制值中的其余二进制值共享一个上下文。

10.根据方案E8所述的方法,其中,除了前K个二进制值中的第一二进制值之外,对于前K个二进制值中的其余二进制值中的每一个使用一个上下文。

11.根据方案E1至E10中任一项所述的方法,其中,该转换从比特流表示生成当前块。

12.根据方案E1至E10中任一项所述的方法,其中,该转换从当前块生成比特流表示。

13.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案E1至E12中任一项所述的方法。

14.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案E1至E12中任一项所述的方法的程序代码。

6.所公开技术的示例实施方式

图28是视频处理装置2800的框图。装置2800可以用于实施本文描述的一个或多个方法。装置2800可以包含在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2800可以包括一个或多个处理器2802、一个或多个存储器2804和视频处理硬件2806。(多个)处理器2802可以被配置为实施本文档中描述的一个或多个方法(包括但不限于方法2700、2710、2720、2730、2740、2750、2760和2770)。存储器(多个存储器)2804可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2806可以用于在硬件电路中实施本文档中描述的一些技术。

在一些实施例中,视频编解码方法可以使用如参考图28所述的在硬件平台上实施的装置来实施。

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

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

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

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

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

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

本专利文档中描述的主题和功能操作的实施方式可以在各种系统、数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施方式可以实施为一个或多个计算机程序产品,即编码在有形且非暂时性的计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

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

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

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

本说明书以及附图仅被认为是示例性的,其中示例性意味着示例。

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

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

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号