首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 不同视频块尺寸的仿射模式计算

不同视频尺寸的仿射模式计算

阅读:331发布:2020-05-13

专利汇可以提供不同视频尺寸的仿射模式计算专利检索,专利查询,专利分析的服务。并且描述了其中使用仿射 运动补偿 模式来生成比特流的 视频编码 和解码,涉及不同视频 块 尺寸的仿射模式计算。一个示例包括:对于当前视频单元的重构,生成仿射 运动矢量 预测候选的列表,其中该列表中的每个候选在不使用 限幅 操作的情况下被计算,其中限幅操作将候选运动矢量的幅度限制到一范围;以及使用仿射运动矢量预测候选的列表来执行当前视频单元的重构。,下面是不同视频尺寸的仿射模式计算专利的具体信息内容。

1.一种视频处理方法,包括:
在从视频单元的编码表示生成视频单元期间,使用与用于在编码表示中对仿射视频编码模式中的运动矢量差进行编码的精度相同的精度来构造仿射运动矢量预测值的列表;以及
使用仿射运动矢量预测候选的列表来执行视频单元的生成。
2.如权利要求1所述的方法,进一步包括:
在用作仿射运动矢量预测值的列表中的运动矢量预测值之前,修改相邻视频单元的运动矢量的精度。
3.如权利要求2所述的方法,其中,Prec表示用于对仿射视频编码模式中的运动矢量差进行编码的精度,其中PredPrec表示相邻视频单元的运动矢量预测值的精度,并且其中PredPrec在生成仿射运动矢量预测值的列表之前被修改。
4.如权利要求3所述的方法,其中,编码的运动矢量差具有表达为1/(2^Prec)的精度。
5.如权利要求3所述的方法,其中,相邻视频单元的运动矢量预测值具有表达为1/(2^PredPrec)的精度。
6.如权利要求3所述的方法,进一步包括:
基于Prec和PredPrec的值,对相邻视频单元的运动矢量进行缩放。
7.如权利要求3所述的方法,其中,如果PredPrec>Prec,则相邻视频单元的运动矢量预测值被表示为MVPredX、MVPredY,然后相邻视频单元的经修改的运动矢量预测值MVPred'X、MVPred'Y被计算为:
MVPred'X=round(MVPredX,PredPrec–Prec),
MVPred'Y=round(MVPredY,PredPrec–Prec),
其中round(a,b)被定义为(a+offset)>>b,其中>>是位移操作,并且offset是整数。
8.如权利要求7所述的方法,其中,offset等于(1<<(b-1))。
9.如权利要求3所述的方法,其中,如果PredPrec>Prec,则相邻视频单元的运动矢量预测值被表示为MVPredX、MVPredY,然后相邻视频单元的经修改的运动矢量预测值MVPred'X、MVPred'Y被计算为:
MVPred'X=round(MVPredX,PredPrec–Prec),
MVPred'Y=round(MVPredY,PredPrec–Prec),
其中round(MV,deltaPrec)=MV>>deltaPrec,其中>>是位移操作。
10.如权利要求3所述的方法,其中,如果PredPrecMVPred'X=MVPredX<<(PredPrec–Prec),
MVPred'Y=MVPredY<<(PredPrec–Prec)。
11.如权利要求2所述的方法,其中,修改精度包括首先以全精度推导视频单元的运动矢量预测值,然后对运动矢量预测值进行取整。
12.如权利要求1所述的方法,进一步包括:
在不改变相邻视频单元的运动矢量的精度的情况下,使用相邻视频单元的运动矢量作为运动矢量预测值;以及
将仿射视频编码模式中的运动矢量差的精度设置为在视频单元的编码表示中选择性地信令通知的精度。
13.一种视频处理的方法,包括:
对于视频的编码表示和被仿射编码的视频块之间的转换,确定对所述转换启用了对具有不同精度的多个运动矢量差(MVD)的使用;以及
基于所述确定来执行所述转换。
14.如权利要求13所述的方法,其中,对多个MVD的不同精度的使用的指示是至少基于当满足一个或多个条件时在视频块的编码表示中选择性地信令通知的。
15.如权利要求13-14中任一项所述的方法,其中,所述使用的指示是在以下中的一个或多个中隐式或显式地信令通知的:序列参数集(SPS)、序列报头、视频参数集(VPS)、图片参数集(PSP)、条带报头、图片报头、编码树单元(CTU)、编码单元(CU)、CTU行组或CU行组。
16.如权利要求13-15中任一项所述的方法,其中,一个或多个条件与以下中的至少一个相关:视频块的尺寸、视频块的形状、与视频块相关联的编码模式、与视频块相关联的仿射参数的数量、与视频块相关联的条带类型、或与视频块相关联的时域层的数量。
17.如权利要求14所述的方法,其中,当不满足一个或多个条件时,所述使用的指示被选择性地禁用。
18.如权利要求17所述的方法,其中,当视频单元的尺寸小于样本的阈值数量时,所述使用的指示被选择性地禁用。
19.如权利要求18所述的方法,其中,样本的阈值数量是16。
20.一种视频解码装置,包括:处理器,被配置为实施如权利要求1至19中的一项或多项所述的方法。
21.一种视频编码装置,包括:处理器,被配置为实施如权利要求1至19中的一项或多项所述的方法。
22.一种计算机程序产品,其上存储有计算机代码,所述代码在由处理器运行时使得所述处理器实施如权利要求1至19中的一项或多项所述的方法。
23.一种本文档中描述的方法、装置或系统。

说明书全文

不同视频尺寸的仿射模式计算

[0001] 相关申请的交叉引用
[0002] 根据适用的专利法和/或依据巴黎公约的规则,本申请是为了及时要求于2018年9月8日提交的国际专利申请No.PCT/CN2018/104723的优先权和权益。为了根据美国法律的所有目的,国际专利申请No.PCT/CN2018/104723的全部公开通过引用而并入作为本申请的公开的一部分。

技术领域

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

背景技术

[0004] 运动补偿(Motion Compensation,MC)是视频处理中的一种技术,通过考虑相机和/或视频中的对象的运动,在给定先前和/或未来的情况下预测视频中的帧。运动补偿可以用于针对视频压缩的对视频数据的编码。发明内容
[0005] 本文档公开了与在视频编码和解码中使用仿射运动补偿相关的方法、系统和设备。在一个代表性方面,公开了一种视频处理方法。该方法包括:对于当前视频单元的重构,生成仿射运动矢量预测候选的列表,其中该列表中的每个候选在不使用限幅操作的情况下被计算,其中限幅操作将候选运动矢量的幅度限制到一范围;以及使用仿射运动矢量预测候选的列表来执行当前视频单元的重构。
[0006] 在又一方面,公开了另一种视频处理方法。该方法包括:在从视频单元的编码表示生成视频单元期间,使用与用于在编码表示中对仿射视频编码模式中的运动矢量差进行编码的精度相同的精度来构造仿射运动矢量预测值的列表,以及使用仿射运动矢量预测候选的列表来执行视频单元的生成。
[0007] 在又一方面,公开了另一种视频处理方法。该方法包括:对于视频块的编码表示和被仿射编码的视频块之间的转换,确定对该转换启用了对具有不同精度的多个运动矢量差(Motion Vector Difference,MVD)的使用;以及基于该确定来执行该转换。
[0008] 在又一方面,公开了一种视频处理方法。该方法包括:将基于运动的子块编码工具应用于当前视频单元,其中该工具至少基于以第一块尺寸推导用于运动补偿的第一运动信息和以不同于第一块尺寸的第二块尺寸推导第二运动信息;以及存储用于未来视频单元的运动预测的第二运动信息。
[0009] 在又一方面,公开了一种视频处理方法。该方法包括:使用视频单元的编码表示来重构视频单元,其中编码表示包括使用以下公式对视频单元的运动矢量差信息进行取整:
[0010]
[0011] 其中dMVic[1]、dMVic[3]表示在第i次迭代中推导的、4-参数仿射模型中使用的右上方控制点的平和垂直运动矢量差,其中>>是位移操作,w是视频单元的宽度,k(w)是非负整数,并且o(w)是偏移。
[0012] 在又一方面,公开了一种视频处理方法。该方法包括:使用与仿射视频编码模式相关联的视频单元的编码表示,该仿射视频编码模式包括使用以不同精度编码的多个运动矢量差(MVD),使得第一MVD具有第一精度并且第二MVD具有与第一MVD不同的第二精度;以及使用编码表示来构造视频单元。
[0013] 在又一代表性方面,本文描述的各种技术可以体现为存储在非暂时性计算机可读介质上的计算机程序产品。该计算机程序产品包括用于执行本文描述的方法的程序代码。
[0014] 在又一代表性方面,视频编码器装置可以实施如本文所描述的方法。
[0015] 在又一代表性方面,视频解码器装置可以实施如本文所描述的方法。
[0016] 在随附的附件、附图、和以下描述中阐述了一个或多个实施方式的细节。根据描述和附图以及根据权利要求,其它特征将是显而易见的。

附图说明

[0017] 图1示出了用于Merge候选列表构造的推导过程的示例。
[0018] 图2示出了空域Merge候选的位置的示例。
[0019] 图3示出了为空域Merge候选的冗余校验而考虑的候选对的示例。
[0020] 图4A和图4B示出了N×2N分割和2N×N分割的第二PU的示例位置。
[0021] 图5是用于时域Merge候选的运动矢量缩放的图示。
[0022] 图6示出了时域Merge候选的候选位置C0和C1的示例。
[0023] 图7A和图7B示出了组合的双向预测Merge候选的示例。
[0024] 图8示出了用于运动矢量预测候选的推导过程的示例。
[0025] 图9是用于空域运动矢量候选的运动矢量缩放的图示。
[0026] 图10示出了用于CU(Coding Unit,编码单元)的ATMVP(Alternative Temporal Motion Vector Prediction,可选时域运动矢量预测)运动预测的示例。
[0027] 图11示出了具有四个子块(A-D)的一个CU及其相邻块(a-d)的示例。
[0028] 图12是其中OBMC(Overlapped Block Motion Compensation,重叠块运动补偿)可应用的子块的示例图示。
[0029] 图13示出了用于推导IC参数的相邻样本的示例。
[0030] 图14示出了简化的仿射运动模型的示例。
[0031] 图15示出了每个子块的仿射MVF(Motion Vector Field,运动矢量场)的示例。
[0032] 图16A和图16B分别示出了4-参数仿射模型和6-参数仿射模型的示例。
[0033] 图17示出了用于AF_INTER模式的MVP的示例。
[0034] 图18A和图18B示出了AF_MERGE模式的示例候选。
[0035] 图19示出了双边匹配的示例。
[0036] 图20示出了模板匹配的示例。
[0037] 图21描绘了在帧速率上转换(Frame Rate Up Conversion,FRUC)中使用单边运动估计(Motion Estimation,ME)的示例。
[0038] 图22示出了光流轨迹的示例。
[0039] 图23A和图23B示出了没有块扩展的BIO的示例。
[0040] 图24示出了基于双边模板匹配的DMVR(Decoder-Side  Motion  Vector Refinement,解码器侧运动矢量细化)的示例。
[0041] 图25A-图25E示出了推导PU/CU的内子块和边界子块的MVstore。
[0042] 图26是示出可用来实施本公开技术的各个部分的计算机系统或其他控制设备的架构的示例的框图
[0043] 图27示出了可用来实施本公开技术的各个部分的移动设备的示例实施例的框图。
[0044] 图28是视频处理的示例方法的流程图
[0045] 图29是视频编码的示例方法的流程图。
[0046] 图30是可以实施所公开技术的示例视频处理系统的框图。
[0047] 图31是视频处理的示例方法的流程图。
[0048] 图32是视频处理的示例方法的流程图。
[0049] 图33是视频处理的示例方法的流程图。
[0050] 图34是视频处理的示例方法的流程图。
[0051] 图35是视频处理的示例方法的流程图。
[0052] 图36是视频处理的示例方法的流程图。

具体实施方式

[0053] 本文档提供了几种可以体现到数字视频编码器和解码器中的技术。为了清楚理解,在本文档中使用章节标题,并且不将每个章节中公开的技术和实施例的范围仅限于该章节。
[0054] 1.概述
[0055] 所公开的技术涉及视频编码技术。具体地,所公开的技术涉及后重构滤波器(post-reconstruction filter),例如,图像/视频编码中的双边滤波器。它可以应用于像HEVC的现有视频编码标准、或要最终确定的标准(多功能视频编码)。它也可以应用于未来视频编码标准或视频编解码器。
[0056] 2.介绍
[0057] 视频编码标准已经主要地通过众所周知的ITU-T和ISO/IEC标准的发展而演进。ITU-T产生了H.261和H.263,ISO/IEC产生了MPEG-1和MPEG-4Visual,并且两个组织联合地产生了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 JTC1SC29/WG11(MPEG)之间的联合视频专家组(Joint Video Expert Team,JVET)被创建以研究VVC标准,目标是与HEVC相比降低50%的比特率。
[0058] 2.1 HEVC/H.265中的帧间预测
[0059] 每个帧间预测的PU具有用于一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc来信令通知对两个参考图片列表中的一个的使用。可以将运动矢量显式地编码为相对于预测值的增量。
[0060] 当用跳过模式对CU进行编码时,一个PU与CU相关联,并且不存在显著的残差系数、没有编码的运动矢量增量、或参考图片索引。指定Merge模式,从而从相邻PU获得当前PU的运动参数,包括空域和时域候选。Merge模式可以应用于任何帧间预测的PU,而不仅应用于跳过模式。Merge模式的替代是运动参数的显式传输,其中,对于每个PU,显式地信令通知运动矢量(更准确地说,与运动矢量预测值相比的运动矢量差)、每个参考图片列表的对应参考图片索引、以及参考图片列表使用。在本公开中,这样的模式名为高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)。
[0061] 当信令指示将使用两个参考图片列表中的一个时,从一个样本块产生PU。这被称为“单向预测(uni-prediction)”。单向预测可用于P条带和B条带两者。
[0062] 当信令指示将使用两个参考图片列表时,从两个样本块产生PU。这被称为“双向预测(bi-prediction)”。双向预测仅可用于B条带。
[0063] 以下文本提供了HEVC中指定的帧间预测模式的详细信息。描述将从Merge模式开始。
[0064] 2.1.1 Merge模式
[0065] 2.1.1.1 Merge模式的候选的推导
[0066] 当使用Merge模式预测PU时,从比特流解析指向Merge候选列表中的条目的索引并将其用于检索运动信息。该列表的构造在HEVC标准中指定,并且可以根据以下步骤序列总结:
[0067] ·步骤1:初始候选推导
[0068] ο步骤1.1:空域候选推导
[0069] ο步骤1.2:空域候选的冗余校验
[0070] ο步骤1.3:时域候选推导
[0071] ·步骤2:附加候选插入
[0072] ο步骤2.1:创建双向预测候选
[0073] ο步骤2.2:插入零运动候选
[0074] 这些步骤也在图1中示意性地描绘。对于空域Merge候选推导,在位于五个不同位置的候选当中选择最多四个Merge候选。对于时域Merge候选推导,在两个候选当中选择最多一个Merge候选。由于在解码器处假设每个PU的恒定数量的候选,因此当从步骤1获得的候选的数量未达到在条带报头中信令通知的Merge候选的最大数量(MaxNumMergeCand)时,生成附加候选。由于候选的数量是恒定的,因此使用截断的一元二值化(Truncated Unary binarization,TU)来编码最佳Merge候选的索引。如果CU的尺寸等于8,则当前CU的所有PU共享单个Merge候选列表,其与2N×2N预测单元的Merge候选列表相同。
[0075] 在下文中,详细描述了与前述步骤相关联的操作。
[0076] 图1示出了用于Merge候选列表构造的推导过程的示例。
[0077] 2.1.1.2空域候选推导
[0078] 在空域Merge候选的推导中,在位于图2描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任何PU不可用(例如,因为它属于另一条带或片(tile))或者被帧内编码时,才考虑位置B2。在添加位置A1处的候选之后,对剩余候选的添加进行冗余校验,其确保具有相同运动信息的候选被排除在列表之外,使得编码效率提高。为了降低计算复杂度,在所提到的冗余校验中并不考虑所有可能的候选对。相反,仅考虑与图3中的箭头链接的对,并且仅在用于冗余校验的对应候选具有不一样的运动信息时,才将候选添加到列表。重复运动信息的另一来源是与不同于2N×2N的分割相关联的“第二PU”。作为示例,图4A和图4B分别描绘了针对情况N×2N和2N×N的第二PU。当当前PU被分割为N×2N时,位置A1处的候选不被考虑用于列表构造。实际上,添加该候选将导致具有相同运动信息的两个预测单元,这对于在编码单元中仅具有一个PU是冗余的。类似地,当当前PU被分割为2N×N时,不考虑位置B1。
[0079] 图2示出了空域Merge候选的位置的示例。
[0080] 图3示出了为空域Merge候选的冗余校验而考虑的候选对的示例。
[0081] 图4A和图4B示出了N×2N分割和2N×N分割的第二PU的示例位置。
[0082] 2.1.1.3时域候选推导
[0083] 在该步骤中,只有一个候选被添加到列表。具体地,在该时域Merge候选的推导中,基于共位的PU来推导缩放的运动矢量,该共位的PU属于给定参考图片列表内与当前图片具有最小POC差的图片。在条带报头中显式地信令通知要用于共位的PU的推导的参考图片列表。如图5中的虚线所示获得时域Merge候选的缩放的运动矢量,其是使用POC距离tb和td从共位的PU的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为是共位的图片的参考图片与共位的图片之间的POC差。时域Merge候选的参考图片索引被设置为等于零。HEVC规范中描述了缩放过程的实际实现。对于B条带,获得两个运动矢量,一个用于参考图片列表0,另一个用于参考图片列表1,并且组合该两个运动矢量以得到双向预测Merge候选。
[0084] 图5是用于时域Merge候选的运动矢量缩放的图示。
[0085] 在属于参考帧的共位的PU(Y)中,在候选C0和C1之间选择时域候选的位置,如图6所描绘的。如果位置C0处的PU不可用、被帧内编码、或者在当前CTU行外部,则使用位置C1。否则,位置C0用于时域Merge候选的推导。
[0086] 图6示出了时域Merge候选的候选位置C0和C1的示例。
[0087] 2.1.1.4附加候选插入
[0088] 除了空域和时域Merge候选之外,还存在两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空域和时域Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。作为示例,图7A和图7B描绘了当原始列表(左侧)中具有mvL0和refIdxL0或mvL1和refIdxL1的两个候选被用于创建添加到最终列表(右侧)的组合的双向预测Merge候选的情况。有关于被考虑来生成这些附加Merge候选的组合的许多规则。
[0089] 图7A和图7B示出了组合的双向预测Merge候选的示例。
[0090] 插入零运动候选以填充Merge候选列表中的剩余条目,从而达到MaxNumMergeCand容量。这些候选具有零空域位移和从零开始并且每当新的零运动候选被添加到列表时增加的参考图片索引。对于单向和双向预测,由这些候选使用的参考帧的数量分别是一和二。最后,不对这些候选执行冗余校验。
[0091] 2.1.1.5用于并行处理的运动估计区域
[0092] 为了加速编码处理,可以并行执行运动估计,从而同时推导给定区域内部的所有预测单元的运动矢量。从空域邻域推导Merge候选可能干扰并行处理,因为一个预测单元直到其相关联的运动估计完成时才能从邻近PU推导运动参数。为了减轻编码效率和处理等待时间之间的折衷,HEVC定义运动估计区域(Motion Estimation Region,MER),其尺寸在图片参数集中使用“log2_parallel_merge_level_minus2”语法元素信令通知。当定义MER时,落入相同区域的Merge候选被标记为不可用,并且因此在列表构造中不予考虑。
[0093] 2.1.2 AMVP
[0094] AMVP利用运动矢量与相邻PU的空时相关性,其用于运动参数的显式传输。对于每个参考图片列表,通过首先校验时域上相邻PU位置的上侧、左侧的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度来构造运动矢量候选列表。然后,编码器可以从候选列表选择最佳预测值,并且发送指示所选候选的对应索引。与Merge索引信令类似,使用截断的一元来编码最佳运动矢量候选的索引。在这种情况下要编码的最大值是2(参见图8)。在以下章节中,提供了关于运动矢量预测候选的推导过程的细节。
[0095] 2.1.2.1 AMVP候选的推导
[0096] 图8示出了用于运动矢量预测候选的推导过程的示例。
[0097] 在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,最终基于位于图2所描绘的五个不同位置的每个PU的运动矢量推导两个运动矢量候选。
[0098] 对于时域运动矢量候选推导,从两个候选选择一个运动矢量候选,其是基于两个不同的共位的位置而推导的。在产生空时候选的第一列表之后,移除列表中的重复的运动矢量候选。如果潜在候选的数量大于二,则从列表移除相关联的参考图片列表内的其参考图片索引大于1的运动矢量候选。如果空时运动矢量候选的数量小于二,则将附加零运动矢量候选添加到列表中。
[0099] 2.1.2.2空域运动矢量候选
[0100] 在空域运动矢量候选的推导中,在五个潜在候选当中考虑最多两个候选,其从位于如图2所描绘的位置的PU推导,那些位置与运动Merge的位置相同。将当前PU的左侧的推导顺序定义为A0、A1、以及缩放的A0、缩放的A1。将当前PU的上侧的推导顺序定义为B0、B1、B2、缩放的B0、缩放的B1、缩放的B2。因此,对于每一侧,存在可以用作运动矢量候选的四种情况,其中两种情况不需要使用空域缩放,并且两种情况使用空域缩放。四种不同的情况总结如下:
[0101] ·无空域缩放
[0102] -(1)相同的参考图片列表,以及相同的参考图片索引(相同的POC)
[0103] -(2)不同的参考图片列表,但相同的参考图片(相同的POC)
[0104] ·空域缩放
[0105] -(3)相同的参考图片列表,但不同的参考图片(不同的POC)
[0106] -(4)不同的参考图片列表,以及不同的参考图片(不同的POC)
[0107] 首先校验无空域缩放的情况,然后校验有空域缩放的情况。当POC在相邻PU的参考图片与当前PU的参考图片之间不同时,考虑空域缩放,而不管参考图片列表。如果左侧候选的所有PU都不可用或者是帧内编码的,则允许对上侧运动矢量进行缩放以帮助左侧和上侧MV候选的并行推导。否则,不允许对上侧运动矢量进行空域缩放。
[0108] 图9是用于空域运动矢量候选的运动矢量缩放的图示。
[0109] 在空域缩放过程中,以与时域缩放类似的方式缩放相邻PU的运动矢量,如图9所描绘的。主要区别是给定参考图片列表和当前PU的索引作为输入;实际缩放过程与时域缩放过程相同。
[0110] 2.1.2.3时域运动矢量候选
[0111] 除了参考图片索引推导之外,用于推导时域Merge候选的所有过程与用于推导空域运动矢量候选的过程相同(参见图6)。参考图片索引被信令通知到解码器。
[0112] 2.2 JEM中的新帧间预测方法
[0113] 2.2.1基于子CU的运动矢量预测
[0114] 在具有QTBT(Quad Tree Binary Tree,四叉树二叉树)的JEM中,每个CU可以具有用于每个预测方向的至多一个运动参数集。通过将大CU划分为子CU并且推导用于大CU的所有子CU的运动信息,在编码器中考虑两个子CU级别运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从小于共位的参考图片中的当前CU的多个块提取运动信息的多个集合。在空时运动矢量预测(Spatial-Temporal Motion Vector Prediction,STMVP)方法中,通过使用时域运动矢量预测值和空域相邻运动矢量来递归地推导子CU的运动矢量。
[0115] 为了保留子CU运动预测的更准确的运动场,当前禁用对参考帧的运动压缩。
[0116] 图10示出了用于CU的ATMVP运动预测的示例。
[0117] 2.2.1.1可选时域运动矢量预测
[0118] 在可选时域运动矢量预测(ATMVP)方法中,通过从小于当前CU的块提取运动信息(包括运动矢量和参考索引)的多个集合来修改运动矢量时域运动矢量预测(Temporal Motion Vector Prediction,TMVP)。子CU例如可以是方形N×N块(默认将N设置为4)。
[0119] ATMVP以两个步骤预测CU内的子CU的运动矢量。第一步骤是利用所谓的时域矢量识别参考图片中的对应块。参考图片被称为运动源图片。第二步骤是将当前CU划分为子CU并且从对应于每个子CU的块获得运动矢量以及每个子CU的参考索引,如图10所示。
[0120] 在第一步骤中,参考图片和对应块由当前CU的空域相邻块的运动信息确定。为了避免相邻块的重复扫描过程,使用当前CU的Merge候选列表中的第一Merge候选。第一可用运动矢量以及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,在ATMVP中,与TMVP相比,可以更准确地识别对应块,其中对应块(有时被称为共位的块)总是在相对于当前CU的右下方或中心位置。
[0121] 在第二步骤中,通过向当前CU的坐标添加时域矢量,运动源图片中的时域矢量识别子CU的对应块。对于每个子CU,其对应块(覆盖中心样本的最小运动网格)的运动信息用于推导该子CU的运动信息。在识别了对应N×N块的运动信息之后,以与HEVC的TMVP相同的方式将其转换为当前子CU的运动矢量和参考索引,其中运动缩放和其它过程适用。例如,解码器校验是否满足低延迟条件(即,当前图片的所有参考图片的POC小于当前图片的POC)并且可能使用运动矢量MVx(对应于参考图片列表X的运动矢量)来预测每个子CU的运动矢量MVy(X等于0或1,Y等于1-X)。
[0122] 2.2.1.2空时运动矢量预测
[0123] 在此方法中,遵循光栅扫描顺序递归地推导子CU的运动矢量。图11示出了此概念。让我们考虑包含四个4×4子CU A、B、C和D的8×8CU。当前帧中的相邻4×4块被标记为a、b、c和d。
[0124] 子CU A的运动推导通过识别其两个空域邻居(neighbour)开始。第一邻居是子CU A的上侧的N×N块(块c)。如果该块c不可用或是帧内编码的,则校验子CU A的上侧的其它N×N块(从左到右,从块c处开始)。第二邻居是子CU A的左侧的块(块b)。如果块b不可用或是帧内编码的,则校验子CU A的左侧的其它块(从上到下,从块b处开始)。从每个列表的相邻块获得的运动信息缩放到给定列表的第一参考帧。接下来,通过遵循与HEVC中指定的TMVP推导的过程相同的过程来推导子块A的时域运动矢量预测值(Temporal Motion Vector Predictor,TMVP)。提取位置D处的共位的块的运动信息并且对应地缩放。最后,在检索和缩放运动信息之后,分别针对每个参考列表平均所有可用的运动矢量(多达3个)。指派平均的运动矢量为当前子CU的运动矢量。
[0125] 图11示出了具有四个子块(A-D)的一个CU及其相邻块(a-d)的示例。
[0126] 2.2.1.3子CU运动预测模式信令
[0127] 启用子CU模式作为附加Merge候选,并且不要求附加语法元素来信令通知该模式。将两个附加Merge候选添加到每个CU的Merge候选列表以表示ATMVP模式和STMVP模式。如果序列参数集指示启用了ATMVP和STMVP,则使用多达七个Merge候选。附加Merge候选的编码逻辑与HM中的Merge候选相同,这意味着,对于P条带或B条带中的每个CU,对于两个附加Merge候选还需要两个RD校验。
[0128] 在JEM中,Merge索引的所有二进制位都由CABAC(Context Adaptive Binary Arithmetic Coding,上下文自适应二进制算术编码)进行上下文编码。而在HEVC中,仅第一个二进制位是上下文编码的并且剩余的二进制位是上下文旁路编码的。
[0129] 2.2.2自适应运动矢量差分辨率
[0130] 在HEVC中,当条带头中的use_integer_mv_flag等于0时,以四分之一亮度样本为单位信令通知(在PU的运动矢量与预测的运动矢量之间的)运动矢量差(MVD)。在JEM中,引入了局部自适应运动矢量分辨率(Locally Adaptive Motion Vector Resolution,LAMVR)。在JEM中,MVD可以以四分之一亮度样本、整数亮度样本或四个亮度样本为单位而编码。在编码单元(CU)级别处控制MVD分辨率,并且对于具有至少一个非零MVD分量的每个CU有条件地信令通知MVD分辨率标志。
[0131] 对于具有至少一个非零MVD分量的CU,信令通知第一标志以指示在CU中是否使用四分之一亮度样本MV精度。当第一标志(等于1)指示不使用四分之一亮度样本MV精度时,信令通知另一标志以指示是使用整数亮度样本MV精度还是使用四亮度样本MV精度。
[0132] 当CU的第一MVD分辨率标志是零、或者对于CU不被编码(意味着CU中的所有MVD是零)时,四分之一亮度样本MV分辨率用于CU。当CU使用整数亮度样本MV精度或四亮度样本MV精度时,用于CU的AMVP候选列表中的MVP被取整到对应精度。
[0133] 在编码器中,CU级别RD校验用于确定哪个MVD分辨率要用于CU。也就是说,对于每个MVD分辨率执行三次CU级别RD校验。为了加快编码器速度,在JEM中应用以下编码方案。
[0134] 在具有常规四分之一亮度样本MVD分辨率的CU的RD校验期间,存储当前CU的运动信息(整数亮度样本精度)。存储的(取整之后的)运动信息在具有整数亮度样本和4亮度样本MVD分辨率的相同CU的RD校验期间用作进一步小范围运动矢量细化的开始点,使得耗时的运动估计过程不重复三次。
[0135] 有条件地调用具有4亮度样本MVD分辨率的CU的RD校验。对于CU,当整数亮度样本MVD分辨率的RD成本比四分之一亮度样本MVD分辨率的RD成本大得多时,跳过CU的4亮度样本MVD分辨率的RD校验。
[0136] 2.2.3更高的运动矢量存储精度
[0137] 在HEVC中,运动矢量精度是四分之一像素(对于4:2:0视频,四分之一亮度样本和八分之一色度样本)。在JEM中,内部运动矢量存储和Merge候选的精度增加到1/16像素。更高的运动矢量精度(1/16像素)用于以跳过/Merge模式编码的CU的运动补偿帧间预测。对于用常规AMVP模式编码的CU,使用整数像素或四分之一像素运动,如章节2.2.2所述。
[0138] 具有与HEVC运动补偿插值滤波器相同的滤波器长度和归一化因子的SHVC(Scalable High Efficiency Video Coding,可伸缩高效视频编码)上采样插值滤波器被用作附加分数像素位置的运动补偿插值滤波器。在JEM中色度分量运动矢量精度是1/32样本,通过使用两个相邻的1/16像素分数位置的滤波器的平均来推导1/32像素分数位置的附加插值滤波器。
[0139] 2.2.4重叠块运动补偿
[0140] 重叠块运动补偿(OBMC)先前已在H.263中使用。与H.263不同,在JEM中,可以使用CU级别的语法来打开和关闭OBMC。当在JEM中使用OBMC时,除了CU的右侧边界和底部边界之外,对所有运动补偿(MC)块边界执行OBMC。此外,它还应用于亮度和色度分量两者。在JEM中,MC块对应于编码块。当用子CU模式(包括子CU Merge、仿射和FRUC、帧速率上转换模式)编码CU时,CU的每个子块是MC块。为了以统一的方式处理CU边界,对于所有MC块边界以子块级别执行OBMC,其中子块尺寸被设置为等于4×4,如图12所示。
[0141] 图12是其中OBMC可应用的子块的图示。
[0142] 当OBMC应用于当前子块时,除了当前运动矢量之外,四个连接的相邻子块的运动矢量(如果可用且与当前运动矢量不同)也用于推导当前子块的预测块。组合基于多个运动矢量的这些多个预测块以生成当前子块的最终预测信号
[0143] 将基于相邻子块的运动矢量的预测块表示为PN,其中N指示相邻的上侧、下侧、左侧和右侧子块的索引,并且将基于当前子块的运动矢量的预测块表示为PC。当PN是基于包含与当前子块相同的运动信息的相邻子块的运动信息时,不从PN执行OBMC。否则,将PN的每个样本添加到PC中的相同样本,即将PN的四行/列添加到PC。加权因子{1/4,1/8,1/16,1/32}用于PN,并且加权因子{3/4,7/8,15/16,31/32}用于PC。例外是小MC块(即,当编码块的高度或宽度等于4或CU是用子CU模式编码的时),对其仅将PN的两行/列添加到PC。在这种情况下,加权因子{1/4,1/8}用于PN,并且加权因子{3/4,7/8}用于PC。对于基于垂直(水平)相邻子块的运动矢量生成的PN,将PN的相同行(列)中的样本添加到具有相同加权因子的PC。
[0144] 在JEM中,对于尺寸小于或等于256个亮度样本的CU,信令通知CU级别标志以指示是否对当前CU应用OBMC。对于尺寸超过256个亮度样本或未使用AMVP模式进行编码的CU,默认应用OBMC。在编码器处,当将OBMC应用于CU时,在运动估计阶段期间考虑其影响。由OBMC使用顶部相邻块和左侧相邻块的运动信息形成的预测信号用于补偿当前CU的原始信号的顶部边界和左侧边界,然后应用常规运动估计处理。
[0145] 2.2.5局部光照补偿
[0146] 局部光照补偿(Local Illumination Compensation,LIC)是基于使用缩放因子a和偏移b的、用于光照变化的线性模型。并且针对每个帧间模式编码的编码单元(CU)自适应地启用或禁用它。
[0147] 图13示出了用于推导IC参数的相邻样本的示例。
[0148] 当LIC应用于CU时,采用最小平方误差方法来通过使用当前CU的相邻样本及其对应参考样本来推导参数a和b。更具体地,如图13所示,使用CU的子采样(2:1子采样)相邻样本和参考图片中的(由当前CU或子CU的运动信息识别的)对应样本。推导IC参数并将其分别应用于每个预测方向。
[0149] 当用Merge模式编码CU时,以类似于Merge模式中的运动信息复制的方式从相邻块复制LIC标志;否则,向CU信令通知LIC标志以指示是否应用LIC。
[0150] 当针对图片启用LIC时,需要附加CU级别RD校验以确定是否将LIC应用于CU。当为CU启用LIC时,分别针对整数像素运动搜索和分数像素运动搜索,使用去均值绝对差之和(Mean-Removed Sum of Absolute Difference,MR-SAD)和去均值绝对哈达玛变换差之和(Mean-Removed Sum of Absolute Hadamard-Transformed Difference,MR-SATD),而不是SAD和SATD。
[0151] 为了降低编码复杂度,在JEM中应用以下编码方案。
[0152] 当当前图片与其参考图片之间没有明显的光照变化时,对于整个图片禁用LIC。为了识别这种情形,在编码器处计算当前图片和当前图片的每个参考图片的直方图。如果当前图片与当前图片的每个参考图片之间的直方图差小于给定阈值,则对当前图片禁用LIC;否则,对当前图片启用LIC。
[0153] 2.2.6仿射运动补偿预测
[0154] 在HEVC中,仅将平移运动模型应用于运动补偿预测(Motion Compensation Prediction,MCP)。然而在真实世界中,存在多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在JEM中,应用简化的仿射变换运动补偿预测。如图14所示,块的仿射运动场由两个控制点运动矢量描述。
[0155] 图14示出了简化的仿射运动模型的示例。
[0156] 块的运动矢量场(Motion Vector Field,MVF)由以下等式描述:
[0157]
[0158] 其中(v0x,v0y)是左上控制点的运动矢量,(v1x,v1y)是右上角控制点的运动矢量。
[0159] 为了进一步简化运动补偿预测,应用基于子块的仿射变换预测。子块尺寸M×N如等式2推导,其中MvPre是运动矢量分数精度(在JEM中是1/16),(v2x,v2y)是根据等式1计算的左下方控制点的运动矢量。
[0160]
[0161] 在通过等式2推导之后,如果需要,应该向下调整M和N,以使其分别为w和h的除数。
[0162] 为了推导每个M×N子块的运动矢量,根据等式1计算如图15所示的每个子块的中心样本的运动矢量,并取整到1/16分数精度。然后,应用章节2.2.3中提到的运动补偿插值滤波器,以用推导的运动矢量生成每个子块的预测。
[0163] 图15示出了每个子块的仿射MVF的示例。
[0164] 在MCP之后,对每个子块的高精度运动矢量进行取整,并将其以与常规运动矢量相同的精度保存。
[0165] 2.2.6.1 AF_INTER模式
[0166] 在JEM中,存在两种仿射运动模式:AF_INTER模式和AF_MERGE模式。对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在比特流中信令通知CU级别中的仿射标志以指示是否使用AF_INTER模式。在该模式中,使用相邻块构造具有运动矢量对{(v0,v1)|v0={vA,vB,vc},v1={vD,vE}}的候选列表。如图17所示,从块A、B或C的运动矢量中选择v0。根据参考列表以及用于相邻块的参考的图片顺序计数(Picture Order Count,POC)、用于当前CU的参考的POC和当前CU的POC之间的关系来缩放来自相邻块的运动矢量。从相邻块D和E选择v1的方法是类似的。如果候选列表的数量小于2,则由通过复制每个AMVP候选而组成的运动矢量对来填充列表。当候选列表大于2时,首先根据相邻运动矢量的一致性(候选对中的两个运动矢量的相似性)对候选进行排序,并且仅保留前两个候选。用RD成本校验来确定将哪个运动矢量对候选选择为当前CU的控制点运动矢量预测(Control Point Motion Vector Prediction,CPMVP)。并且在比特流中信令通知指示候选列表中的CPMVP的位置的索引。在确定当前仿射CU的CPMVP之后,应用仿射运动估计并找到控制点运动矢量(Control Point Motion Vector,CPMV)。然后在比特流中信令通知CPMV和CPMVP的差。
[0167] 图16A和图16B分别示出了4-参数仿射模型和6-参数仿射模型的示例。
[0168] 图17示出了用于AF_INTER模式的MVP的示例。
[0169] 在AF_INTER模式中,当使用4/6参数仿射模式时,需要2/3个控制点,因此对于这些控制点需要编码2/3个MVD,如图16A和图16B所示。在JVET-K0337中,提出如下推导MV,即从mvd0预测mvd1和mvd2。
[0170]
[0171]
[0172]
[0173] 其中 mvdi和mv1是预测的运动矢量,左上方像素(i=0)、右上方像素(i=1)或左下方像素(i=2)的运动矢量差和运动矢量分别如图16B所示。请注意,添加两个运动矢量(例如,mvA(xA,yA)和mvB(xB,yB))等于两个分量各自地的和,即newMV=mvA+mvB,并且newMV的两个分量被分别设置为(xA+xB)和(yA+yB)。
[0174] 2.2.6.2 AF_INTER模式中的快速仿射ME算法
[0175] 在仿射模式中,需要联合确定2个或3个控制点的MV。直接联合搜索多个MV是计算复杂的。提出一种快速仿射ME算法,并将其纳入VTM/BMS。
[0176] 针对4-参数仿射模型描述了快速仿射ME算法,并且该思想可以扩展到6-参数仿射模型。
[0177]
[0178]
[0179] 将(a–1)替换为a’,然后运动矢量可以重写为:
[0180]
[0181] 假设两个控制点(0,0)和(0,w)的运动矢量是已知的,从等式(5)我们可以推导仿射参数,
[0182]
[0183] 运动矢量可以以矢量形式重写为:
[0184]
[0185] 其中,
[0186]
[0187]
[0188] P=(x,y)是像素位置。
[0189] 在编码器处,迭代地推导AF_INTER的MVD。将MVi(P)表示为在位置P的第i次迭代中推导的MV,并且将dMVCi表示为第i次迭代中针对MVC更新的delta。然后在第(i+1)次迭代中,[0190]
[0191] 将Picref表示为参考图片并且将Piccur表示为当前图片,并且表示Q=P+MVi(P)。假设我们使用MSE作为匹配标准,则我们需要最小化:
[0192]
[0193] 假设 足够小 ,我们可以 用1阶泰勒展开近似地如下重写
[0194]
[0195] 其中 表示Ei+1(P)=Piccur(P)-Picref(Q),
[0196]
[0197] 我们可以通过将误差函数的导数设置为零来推导 然后可以根据计算控制点(0,0)和(0,w)的delta MV,
[0198]
[0199]
[0200]
[0201]
[0202] 假设这样的MVD推导过程重复n次,则最终的MVD计算如下,
[0203]
[0204]
[0205]
[0206]
[0207] 使用JVET-K0337,即从mvd0表示的控制点(0,0)的delta MV预测mvd1表示的控制点(0,w)的delta MV,对于mvd1,现在实际上只有被编码。
[0208] 2.2.6.3 AF_MERGE模式
[0209] 当在AF_MERGE模式中应用CU时,它从有效的相邻重构块得到用仿射模式编码的第一个块。并且候选块的选择顺序是从左侧、上侧、右上角、左下方到左上角,如图18A所示。如果相邻左下方块A以仿射模式进行编码,如图18B所示,则推导包含块A的CU的左上角、右上角和左下角的运动矢量v2、v3和v4。并且根据v2、v3和v4计算当前CU的左上角的运动矢量v0。其次,计算当前CU的右上角的运动矢量v1。
[0210] 在推导当前CU的CPMV v0和v1之后,根据简化的仿射运动模型等式1生成当前CU的MVF。为了识别当前CU是否以AF_MERGE模式进行编码,当至少有一个相邻块以仿射模式进行编码时,在比特流中信令通知仿射标志。
[0211] 图18A和图18B示出了AF_MERGE模式的示例候选。
[0212] 2.2.7模式匹配的运动矢量推导
[0213] 模式匹配的运动矢量推导(Pattern Matched Motion Vector Derivation,PMMVD)模式是基于帧速率上转换(FRUC)技术的特殊Merge模式。利用该模式,在解码器侧推导块的运动信息,而不是信令通知块的运动信息。
[0214] 当CU的Merge标志为真时,向CU信令通知FRUC标志。当FRUC标志为假时,信令通知Merge索引并使用常规Merge模式。当FRUC标志为真时,信令通知附加FRUC模式标志以指示将使用哪种方法(双边匹配或模板匹配)来推导该块的运动信息。
[0215] 在编码器侧,关于是否对CU使用FRUC Merge模式的决定是基于对常规Merge候选所做的RD成本选择。即,通过使用RD成本选择来为CU校验两种匹配模式(双边匹配和模板匹配)。引起最小成本的匹配模式与其他CU模式进一步比较。如果FRUC匹配模式是最有效的模式,则对于CU将FRUC标志设置为真,并且使用相关的匹配模式。
[0216] FRUC Merge模式中的运动推导过程具有两个步骤:首先执行CU级别运动搜索,然后进行子CU级别运动细化。在CU级别处,基于双边匹配或模板匹配,为整个CU推导初始运动矢量。首先,生成MV候选的列表,并且选择引起最小匹配成本的候选作为进一步CU级别细化的起点。然后,在起点附近执行基于的双边匹配或模板匹配的局部搜索,并且将最小匹配成本的MV结果作为整个CU的MV。随后,以推导的CU运动矢量作为起点,在子CU级别处进一步细化运动信息。
[0217] 例如,对于W×HCU运动信息推导执行以下推导过程。在第一阶段,推导整个W×HCU的MV。在第二阶段,该CU进一步被划分为M×M个子CU。M的值的计算方法如(16)所示,D是预定义的划分深度,在JEM中默认设置为3。然后推导每个子CU的MV。
[0218]
[0219] 如图19所示,通过在两个不同参考图片中沿当前CU的运动轨迹找到两个块之间的最接近匹配,使用双边匹配来推导当前CU的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0和MV1应当与当前图片和两个参考图片之间的时域距离(即TD0和TD1)成比例。作为特殊情况,当当前图片在时域上在两个参考图片之间并且从当前图片到两个参考图片的时域距离相同时,双边匹配成为基于镜像的双向MV。
[0220] 如图20所示,模板匹配用来通过找到当前图片中的模板(当前CU的顶部和/或左侧相邻块)与参考图片中的块(与模板的尺寸相同)之间的最接近匹配来推导当前CU的运动信息。除了前述FRUC Merge模式之外,模板匹配也应用于AMVP模式。在JEM中,正如在HEVC中所做的那样,AMVP具有两个候选。利用模板匹配方法,新的候选被推导。如果模板匹配新推导的候选与第一现有AMVP候选不同,则将其插入AMVP候选列表的最开始处,然后将列表尺寸设置为2(意味着移除第二现有AMVP候选)。当应用于AMVP模式时,仅应用CU级别搜索。
[0221] 2.2.7.1 CU级别MV候选集
[0222] CU级别处的MV候选集有以下组成:
[0223] (i)如果当前CU处于AMVP模式,则为原始AMVP候选
[0224] (ii)所有Merge候选,
[0225] (iii)在章节2.2.7.3中介绍的插值MV场中的几个MV。
[0226] (iv)顶部和左侧相邻运动矢量
[0227] 当使用双边匹配时,将Merge候选的每个有效MV用作输入,以生成假设双边匹配的情况下的MV对。例如,在参考列表A处,Merge候选的一个有效MV是(MVa,refa)。然后,在其他参考列表B中找到其配对的双边MV的参考图片refb,使得refa和refb在时域上位于当前图片的不同侧。如果这样的refb在参考列表B中不可用,则refb被确定为与refa不同的参考,并且其到当前图片的时域距离是列表B中的最小值。在确定refb之后,通过基于当前图片与refa、refb之间的时域距离来缩放MVa来推导MVb。
[0228] 来自插值MV场的四个MV也被添加到CU级别候选列表。更具体地,添加当前CU的位置(0,0)、(W/2,0)、(0,H/2)和(W/2,H/2)处的插值MV。
[0229] 当FRUC应用于AMVP模式时,原始AMVP候选也被添加到CU级别MV候选集。
[0230] 在CU级别处,AMVP CU的多达15个MV和Merge CU的多达13个MV被添加到候选列表。
[0231] 2.2.7.2子CU级别MV候选集
[0232] 子CU级别处的MV候选集包括:
[0233] (i)从CU级别搜索确定的MV,
[0234] (ii)顶部、左侧、左上方和右上方相邻MV,
[0235] (iii)来自参考图片的共位的MV的缩放版本,
[0236] (iv)多达4个ATMVP候选,
[0237] (v)多达4个STMVP候选
[0238] 来自参考图片的缩放MV如下推导。遍历两个列表中的所有参考图片。参考图片中的子CU的共位的位置处的MV被缩放到起始CU级别MV的参考。
[0239] ATMVP和STMVP候选限制为前四个。
[0240] 在子CU级别处,多达17个MV被添加到候选列表。
[0241] 2.2.7.3插值MV场的生成
[0242] 在对帧进行编码之前,基于单边ME为整个图片生成插值运动场。然后,运动场可以稍后用作CU级别或子CU级别MV候选。
[0243] 首先,两个参考列表中的每个参考图片的运动场以4×4块级别遍历。对于每个4×4块,如果与块相关联的运动通过当前图片中的4×4块(如图21所示)并且块未被分配任何插值运动,则参考块的运动根据时域距离TD0和TD1(以与HEVC中的TMVP的MV缩放的方式相同的方式)被缩放到当前图片,并且缩放的运动被分配给当前帧中的块。如果没有缩放的MV被分配给4×4块,则在插值运动场中将块的运动标记为不可用。
[0244] 图21示出了在FRUC中使用单边运动估计ME的示例。
[0245] 2.2.7.4插值和匹配成本
[0246] 当运动矢量指向分数样本位置时,需要运动补偿插值。为了降低复杂度,将双线性插值而不是常规8抽头HEVC插值用于双边匹配和模板匹配。
[0247] 匹配成本的计算在不同步骤处有点不同。当从CU级别的候选集中选择候选时,匹配成本是双边匹配或模板匹配的绝对和差(Absolute Sum Difference,SAD)。在确定起始MV之后,子CU级别搜索的双边匹配的匹配成本C计算如下:
[0248]
[0249] 其中w是根据经验设置为4的加权因子,MV和MVs分别指示当前MV和起始MV。SAD仍用作子CU级别搜索处的模板匹配的匹配成本。
[0250] 在FRUC模式中,仅通过使用亮度样本来推导MV。推导的运动将用于MC帧间预测的亮度和色度两者。在决定MV之后,使用用于亮度的8抽头插值滤波器和用于色度的4抽头插值滤波器来执行最终MC。
[0251] 2.2.7.5 MV细化
[0252] MV细化是基于模式的MV搜索,具有双边匹配成本或模板匹配成本的标准。在JEM中,对于CU级别处和子CU级别处的MV细化,分别支持两种搜索模式—无限制中心偏置菱形搜索(Unrestricted Center-Biased Diamond Search,UCBDS)和自适应交叉搜索。对于CU和子CU级别MV细化两者,以四分之一亮度样本MV精度直接搜索MV,并且接着是八分之一亮度样本MV细化。将用于CU和子CU步骤的MV细化的搜索范围设置为等于8亮度样本。
[0253] 2.2.7.6模板匹配FRUC Merge模式中预测方向的选择
[0254] 在双边匹配Merge模式中,始终应用双向预测,因为CU的运动信息是基于两个不同的参考图片中沿当前CU的运动轨迹的两个块之间的最接近匹配推导的。对于模板匹配Merge模式没有这样的限制。在模板匹配Merge模式中,编码器可以从来自列表0的单向预测、来自列表1的单向预测、或双向预测当中为CU选择。选择如下基于模板匹配成本:
[0255]
[0256]
[0257] 其中cost0是列表0模板匹配的SAD,cost1是列表1模板匹配的SAD,并且costBi是双向预测模板匹配的SAD。factor的值等于1.25,这意味着选择过程偏向于双向预测。
[0258] 帧间预测方向选择仅应用于CU级别模板匹配过程。
[0259] 2.2.8双向光流
[0260] 双向光流(Bi-directional Optical flow,BIO)是样本方式的运动细化,其在用于双向预测的块方式运动补偿的顶部执行。样本级别运动细化不使用信令。
[0261] 图22示出了光流轨迹的示例。
[0262] 假定I(k)是来自块运动补偿之后的参考k(k=0,1)的亮度值,并且(k)
分别为I 梯度的水平分量和垂直分量。假设光流是有效的,则运动矢量场(vx,vy)由以下等式给出:
[0263]
[0264] 将此光流等式与每个样本运动轨迹的埃尔米特插值相结合,得到唯一的三阶多项式,该三阶多项式最后匹配函数值I(k)和其导数 该三阶多项式在t=0处的值是BIO预测:
[0265]
[0266] 这里,τ0和τ1表示到参考帧的距离,如图22所示。基于Ref0和Ref1的POC计算距离τ0和τ1:τ0=POC(当前)-POC(Ref0),τ1=POC(Ref1)-POC(当前)。如果两个预测都来自相同的时域方向(两者都来自过去或都来自未来),则sign是不同的(即,τ0·τ1<0)。在这种情况下,只有预测不是来自相同的时刻(即,τ0≠τ1)才应用BIO,两个参考区域都具有非零运动(MVx0,MVy0,MVx1,MVy1≠0)并且块运动矢量与时域距离成比例(MVx0/MVx1=MVy0/MVy1=-τ0/τ1)。
[0267] 通过最小化点A和B(图9中的运动轨迹和参考帧平面的交叉)中的值之间的差Δ来确定运动矢量场(vx,vy)。模型仅使用Δ的局部泰勒展开的第一线性项:
[0268]
[0269] 等式26中的所有值都取决于样本位置(i′,j′),到目前为止,其从符号中省略。假设运动在局部周围区域是一致的,我们在以当前预测点(i,j)为中心的(2M+1)×(2M+1)的方形窗口Ω内部最小化Δ,其中M等于2:
[0270]
[0271] 对于该优化问题,JEM使用简化的方法,首先在垂直方向上进行最小化,然后在水平方向上进行最小化。由此产生:
[0272]
[0273]
[0274] 其中,
[0275]
[0276] 为了避免除以零或非常小的值,在等式28和29中引入正则化参数r和m。
[0277] r=500·4d-8   (31)
[0278] m=700·4d-8   (32)
[0279] 这里d是视频样本的比特深度。
[0280] 为了使BIO的存储器访问与常规双向预测运动补偿保持相同,仅针对当前块内部的位置计算所有预测和梯度值I(k0、 在等式30中,以在预测块的边界上的当前预测点为中心的(2M+1)×(2M+1)方形窗口Ω需要访问块的外部的位置(如图
23A所示)。在JEM中,将块的外部的I(k)、 的值设置为等于块内部最
近的可用值。例如,这可以实施为填充,如图23B所示。
[0281] 图23A-图23B示出了BIO w/o块扩展。图23A示出了块的外部的访问位置。在图23B中,使用填充以避免额外的存储器访问和计算。
[0282] 利用BIO,可以针对每个样本细化运动场。为了降低计算复杂度,在JEM中使用基于块的BIO设计。基于4×4块计算运动细化。在基于块的BIO中,聚合4×4块中的所有样本的等式30中的sn的值,然后将sn的聚合值用于推导4×4块的BIO运动矢量偏移。更具体地,以下公式用于基于块的BIO推导:
[0283]
[0284] 其中bk表示属于预测块的第k个4×4块的样本集。将等式28和29中的sn替换为((sn,bk)>>4),以推导相关联的运动矢量偏移。
[0285] 在一些情况下,由于噪音或不规则运动,BIO的MV群(MV regiment)可能不可靠。因此,在BIO中,MV群的幅度被限幅到阈值BIO。阈值是基于当前图片的参考图片是否都来自一个方向而确定的。如果当前图片的所有参考图片都来自一个方向,则将阈值的值设置为12×214-d;否则,将其设置为12×213-d。
[0286] 利用使用与HEVC运动补偿过程(2D可分离FIR)一致的操作的运动补偿插值来同时计算BIO的梯度。该2D可分离FIR的输入是与运动补偿过程和根据块运动矢量的分数部分的分数位置(fracX,fracY)相同的参考帧样本。在水平梯度 的情况下,首先使用与具有去缩放偏移d-8的分数位置fracY相对应的BIOfilterS垂直插值信号,然后在水平方向上应用梯度滤波器BIOfilterG,该BIOfilterG与具有去缩放偏移18-d的分数位置fracX相对应。在垂直梯度 的情况下,首先使用与具有去缩放偏移d-8的分数位置fracY相对应的BIOfilterG垂直应用梯度滤波器,然后在水平方向上使用BIOfilterS执行信号位移,该BIOfilterS与具有去缩放偏移18-d的分数位置fracX相对应。为了保持合理的复杂度,用于梯度计算的插值滤波器BIOfilterG和用于信号位移的插值滤波器BIOfilterS的长度更短(6抽头)。表1示出了用于BIO中块运动矢量的不同分数位置的梯度计算的滤波器。表2示出了用于BIO中预测信号生成的插值滤波器。
[0287] 表1:用于BIO中梯度计算的滤波器
[0288] 分数像素位置 梯度的插值滤波器(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}
[0289] 表2:用于BIO中预测信号生成的插值滤波器
[0290]分数像素位置 预测信号的插值滤波器(BIOfilterS)
0 {0,0,64,0,0,0}
1/16 {1,-3,64,4,-2,0}
1/8 {1,-6,62,9,-3,1}
3/16 {2,-8,60,14,-5,1}
1/4 {2,-9,57,19,-7,2}
5/16 {3,-10,53,24,-8,2}
3/8 {3,-11,50,29,-9,2}
7/16 {3,-11,44,35,-10,3}
1/2 {3,-10,35,44,-11,3}
[0291] 在JEM中,当两个预测来自不同的参考图片时,BIO应用于所有双预测块。当为CU启用LIC时,禁用BIO。
[0292] 在JEM中,OBMC在常规MC过程之后应用于块。为了降低计算复杂性,在OBMC过程期间不应用BIO。这意味着BIO仅在使用其自身的MV时才应用于块的MC过程,并且当在OBMC过程期间使用相邻块的MV时不应用于MC过程。
[0293] 2.2.9解码器侧运动矢量细化
[0294] 在双向预测操作中,对于一个块区域的预测,将分别使用列表0的运动矢量(MV)和列表1的MV形成的两个预测块进行组合以形成单个预测信号。在解码器侧运动矢量细化(Decoder-Side Motion Vector Refinement,DMVR)方法中,通过双边模板匹配过程进一步细化双向预测的两个运动矢量。双边模板匹配应用在解码器中,以在双边模板和参考图片中的重构样本之间执行基于失真的搜索,以便获得细化的MV而无需发送附加运动信息。
[0295] 在DMVR中,双边模板被生成为两个预测块的加权组合(即,平均),该两个预测块分别来自列表0的初始MV0和列表1的MV1,如图24所示。模板匹配操作包括计算生成的模板与参考图片中的(在初始预测块周围的)样本区域之间的成本计量(cost measure)。对于两个参考图片中的每一个,将产生最小模板成本的MV考虑为该列表的更新MV以替换原始MV。在JEM中,针对每个列表搜索九个MV候选。该九个MV候选包括原始MV和8个与原始MV在水平或垂直方向上或两个方向上具有一个亮度样本偏移的环绕的MV。最后,将两个新的MV,即如图24中所示的MV0'和MV1',用于生成最终的双向预测结果。将绝对差之和(SAD)用作成本计量。请注意,当计算由一个环绕的MV生成的预测块的成本时,实际上使用取整(到整数像素)的MV而不是真实MV来获得预测块。
[0296] 将DMVR应用于双向预测的Merge模式,其中一个MV来自过去的参考图片,另一MV来自未来的参考图片,而无需发送附加语法元素。在JEM中,当对CU启用LIC、仿射运动、FRUC或子CU Merge候选时,不应用DMVR。
[0297] 图24示出了基于双边模板匹配的DMVR的示例。
[0298] 3.当前实施方式的局限性
[0299] 在AF_INTER模式中,当生成仿射MVP候选列表时,取决于当前PU的位置、图片尺寸和最大编码单元(Largest Coding Unit,LCU)尺寸等,候选被限幅在一定范围内。这不是必需的,因为这样的限幅操作将在运动补偿过程中执行。同时,在仿射模式或ATMVP模式下,运动补偿以4×4块级别执行,与4×8、8×4或8×8块相比,这增加了带宽。
[0300] 在AF_INTER模式中,当编码mvd1时, 被编码。它取决于PU/CU的宽度,并且对于不同的PU/CU宽度可以具有不同的缩放。对于大PU/CU,可能没有必要编码太大的
[0301] 在其他相关技术描述中,针对AF_INTER模式提出了自适应MVD精度。
[0302] 来自列表0和列表1的当前图片的参考图片分别表示为Ref0和Ref1。表示τ0=POC(当前)-POC(Ref0),τ1=POC(Ref1)-POC(当前),并将来自Ref0和Ref1的当前块的参考块分别表示为refblk0和refblk1。对于当前块中的子块,refblk0中指向refblk1的其对应子块的原始MV表示为(vx,vy)。Ref0和Ref1中的子块的MV分别由(mvL0x,mvL0y)和(mvL1x,mvL1y)表示。由(vx,vy)表示BIO中从原始MV推导的推导的MV。如本专利文档中所述,可以将用于运动预测的基于更新的运动矢量的方法扩展到现有和未来的视频编码标准。
[0303] MV(vx,vy)和MV(mvLXx,mvLXy),其中X=0或1,应在加法操作之前缩放到相同的精度,诸如在执行示例1(e)和/或示例2中的技术之前。
[0304] 代替于考虑POC距离(例如,在如上所述的τ0和τ1的计算中),可以简化在BIO过程中调用的MV的缩放方法。
[0305] 当τ0>0且τ1>0时,(vx,vy)的推导和(mvLXx,mvLXy)的更新可以一起完成以保持高精度。
[0306] 裁剪操作可以进一步应用于BIO和/或DMVR中采用的更新的MV或可能需要更新MV的其他种类的编码方法。
[0307] 可以约束在BIO和/或可能需要更新MV的其他种类的编码方法中调用的更新的MV的使用。
[0308] 在一个示例中,提出了两步帧间预测过程,其中执行第一步骤以基于与当前块相关联的用信令通知/推导的运动信息来生成一些中间预测(第一预测),并且执行第二步骤以基于可能依赖于中间预测的更新的运动信息来推导当前块的最终预测(第二预测)。
[0309] 在一个示例中,可以诸如在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、条带、CTU或CU中从编码器向解码器发信令通知是否更新用于BIO编码块的MV和/或使用更新的MV用于未来运动预测和/或如何将更新的MV用于未来运动预测。
[0310] 在一个示例中,提出对BIO过程中利用的运动矢量添加约束。
[0311] 提出对于BIO、DMVR、FRUC、模板匹配或需要从比特流中推导的内容更新MV(或包括MV和/或参考图片的运动信息)的其他方法,更新的运动信息的使用可能受到约束。
[0312] 在一个示例中,提出可以在AF_INTER模式中使用不同的MVD精度,并且可以用信令通知语法元素以指示每个块/CU/PU的MVD精度。
[0313] 提出如果对块(例如PU)执行多于一个DMVD方法,则如BIO、DMVR、FRUC和模板匹配等的不同的解码器侧运动矢量推导(DMVD)方法独立地工作,即DMVD方法的输入不取决于另一DMVD方法的输出。
[0314] 4.示例实施例
[0315] 为了解决这些问题,除了其他解决方案之外,我们提出移除仿射MVP候选列表构造过程中所需的限幅操作,同时,以更大的块尺寸执行运动补偿,但是针对右侧/底部PU/CU边界以4×4块级别存储运动信息。
[0316] 以下详细实施例应该被视为解释一般概念的示例。不应该以狭义的方式解释这些实施例。此外,这些实施例可以以提供视频编码中的改进的方式彼此组合。
[0317] 4.1仿射模式的改进
[0318] 1.提出移除仿射MVP候选列表构造过程中所需的限幅操作。
[0319] a.此外,在一个示例中,仅在运动补偿阶段中调用限幅操作。
[0320] 2.提出在仿射模式、ATMVP模式或任何子块编码工具中,用于运动补偿的运动信息(由MVmc表示)和用于未来PU/CU/块的运动预测的存储的运动信息(由MVstore表示)可以以不同的块尺寸而推导。
[0321] a.在一个示例中,MVmc以M1xN1块尺寸而推导,而MVstore以M2xN2块尺寸而推导,其中M1、M2、N1和N2是正整数,并且不允许M1等于M2并且N1等于N2。例如,M1和N1被设置为等于8,M2和N2被设置为等于4。
[0322] b.在一个示例中,MVmc以M1xN1块尺寸而推导;并且对于内子块,MVstore以M2xN2块尺寸而推导,而对于边界子块,MVstore以M3xN3块尺寸而推导。内子块和边界子块如图25A所示。例如,M1和N1被设置为等于8,M2和N2被设置为等于8,并且M3和N3被设置为等于4。
[0323] c.可替代地,当推导MVstore时,矩形块形状MxN用于边界子块。对于右侧边界,使用M>N的块尺寸,而对于底部边界,使用M
[0324] i.可替代地,如图25D和图25E所示,右下方边界以比右侧边界或底部边界小的块尺寸而推导。
[0325] d.在一个示例中,从MVstore推导MVmc;可替代地,从MVmc推导MVstore。
[0326] 3.提出当编码mvd1,不编码 而使用由给定的取
整操作,其中k(w)是非负整数并且对于不同的PU/CU宽度是不同的,并且o(w)是偏移(例如,等于1<<(k(w)–1)),其中dMVic[1]、dMVic[3]表示在第i次迭代中推导的、4-参数仿射模型的右上方控制点的水平和垂直运动矢量差。类似的思想可以扩展到6参数仿射模式。
[0327] a.在一个示例中,k(w)是w的非递减函数。例如,
[0328]
[0329] 4.提出当精度Prec(即,MV具有1/(2^Prec)精度)用于在AF_INTER模式中编码MVD时,在构造仿射MVP列表时使用相同的精度,即,在与相邻块相关联的MV(由MVPred(MVPredX,MVPredY)表示相邻块的MV并且由PredPrec表示其精度)被用作MV预测值之前,需要首先对其进行修改。
[0330] a.在一个示例中,可以调用基于选择的Prec和与相邻块相关联的MV的精度的缩放。
[0331] b.在一个示例中,如果PredPrec>Prec,则MVPred'X=round(MVPredX,PredPrec–Prec),MVPred'Y=round(MVPredY,PredPrec–Prec)。函数round(a,b)可以被定义为:(a+offset)>>b,在一个示例中,offset被设置为(1<<(b-1))。
[0332] c.在一个示例中,如果PredPrec>Prec,则MVPred'X=round(MVPredX,PredPrec–Prec),MVPred'Y=round(MVPredY,PredPrec–Prec),其中,round(MV,deltaPrec)=MV>>deltaPrec。
[0333] d.在一个示例中,如果PredPrec
[0334] e.在一个示例中,相邻仿射编码块的MV在其被用于推导当前块的MVP之前被取整。
[0335] f.可替代地,从没有取整的相邻仿射编码块的MV推导当前块的MVP,然后对MVP进行取整。
[0336] g.可替代地,不改变相邻MV的精度,并且仅将MVD精度与Prec对齐。
[0337] 5.当有超过1个MVD(诸如4/6-参数仿射)需要被编码时,不同的精度可以应用于不同的MVD。
[0338] a.在一个示例中,对于4-参数仿射模型,如果从第一MVD(左上方像素的MVD)预测第二MVD(右上方像素的MVD),则用比第一MVD高的精度来编码第二MVD。
[0339] b.在一个示例中,对于6-参数仿射模型,如果从第一MVD(左上方像素的MVD)预测第二MVD(右上方像素的MVD)和/或第三MVD(左下方像素的MVD),则用比第一MVD高的精度来编码第二MVD和/或第三MVD。
[0340] 6.可以在SPS/序列报头/VPS/PPS/条带报头/图片报头/CTU/CU/CTU组/CTU行中信令通知对在AF_INTER模式中使用的不同的MVD精度的使用的指示。
[0341] a.信令通知MVD精度可以取决于编码模式信息,诸如块尺寸/块形状/条带类型/仿射参数的数量(4-参数或6-参数)/时域层。
[0342] b.可替代地,可以针对某些条件自动禁用该使用,诸如块包含少于16个样本。在这种情况下,总是跳过信令通知MVD精度。
[0343] 图26是示出可用来实施本公开技术的各个部分的计算机系统或其他控制设备2600的架构的示例的框图。在图26中,计算机系统2600包括经由互连2625连接的一个或多个处理器2605和存储器2610。互连2605可以表示通过适当的网桥、适配器或控制器连接的任何一个或多个单独的物理总线、点对点连接或两者。因此,互连2625可以包括例如系统总线、外围组件互连(Peripheral Component Interconnect,PCI)总线、HyperTransport或工业标准架构(Industry Standard Architecture,ISA)总线、小型计算机系统接口(Small Computer System Interface,SCSI)总线、通用串行总线(Universal Serial Bus,USB)、IIC(I2C)总线、或者电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)标准674总线(有时也被称为“火线”)。
[0344] (多个)处理器2605可以包括中央处理单元(Central Processing Unit,CPU)以控制例如主计算机的整体操作。在某些实施例中,(多个)处理器2605通过运行存储在存储器2610中的软件或固件来实现这一点。(多个)处理器2605可以是或可以包括一个或多个可编程通用或专用微处理器数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)等、或这样的设备的组合。
[0345] 存储器2610可以是或可以包括计算机系统的主存储器。存储器2610表示任何合适形式的随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存等、或这样的设备的组合。在使用中,除了其他事物之外,存储器2610可以包含机器指令集,其中该机器指令集在由处理器2605运行时使得处理器2605执行操作以实施本公开技术的实施例。
[0346] 通过互连2625还连接到(多个)处理器2605的是(可选的)网络适配器2615。网络适配器2615向计算机系统2600提供与诸如存储客户端和/或其他存储服务器的远程设备通信的能,并且可以是例如以太网适配器或光纤通道适配器。
[0347] 图27示出了可用来实施本公开技术的各个部分的移动设备2700的示例实施例的框图。移动设备2700可以是笔记本电脑、智能电话、平板电脑、摄像机、或能够处理视频的其他类型的设备。移动设备2700包括处理器或控制器2701以处理数据,以及与处理器2701通信的存储器2702以存储和/或缓冲数据。例如,处理器2701可以包括中央处理单元(CPU)或微控制器单元(Microcontroller Unit,MCU)。在一些实施方式中,处理器2701可以包括现场可编程阵列(Field-Programmable Gate-Array,FPGA)。在一些实施方式中,移动设备2700包括用于智能电话设备的各种视觉和/或通信数据处理功能的图形处理单元(Graphics Processing Unit,GPU)、视频处理单元(Video Processing Unit,VPU)、和/或无线通信单元,或与其通信。例如,存储器2702可以包括并存储处理器可运行代码,其中该代码在由处理器2701运行时将移动设备2700配置为执行各种操作,例如,诸如接收信息、命令和/或数据,处理信息和数据,以及将经处理的信息/数据发送或提供给诸如执行器或外部显示器的另一设备。为了支持移动设备2700的各种功能,存储器2702可以存储信息和数据,诸如指令、软件、值、图像、以及由处理器2701处理或引用的其他数据。例如,可以使用各种类型的随机存取存储器(RAM)设备、只读存储器(ROM)设备、闪存设备和其他合适的存储介质来实施存储器2702的存储功能。在一些实施方式中,移动设备2700包括输入/输出(Input/Output,I/O)单元2703,以将处理器2701和/或存储器2702接口连接到其他模块、单元或设备。例如,I/O单元2703可以与处理器2701和存储器2702接口连接,以利用与典型数据通信标准兼容的、例如诸如在中的一个或多个计算机与用户设备之间的各种类型的无线接口。在一些实施方式中,移动设备2700可以经由I/O单元2703使用有线连接与其他设备接口连接。移动设备2700还可以与诸如数据存储装置、和/或视觉或音频显示设备2704的其他外部接口进行接口连接,以检索和传输可由处理器处理、存储在存储器中、或在显示设备
2704或外部设备的输出单元上展示的数据和信息。例如,显示设备2704可以显示基于根据所公开技术的MVP而修改的视频帧
[0348] 图28是处理视频的示例方法2800的流程图。方法2800包括在视频块的重构期间使用仿射运动预测方案来生成(2802)运动矢量预测候选的列表,使得运动矢量预测候选的值在没有将该值限制到阈值的限幅操作的情况下被计算。例如,与在仿射运动矢量的计算期间执行限幅的现有技术不同,方法2800可以使用基于非限幅的计算,如本文档中所描述的。
[0349] 在一些实施例中,方法2800可以包括使用限幅操作来执行视频块的运动补偿。限幅操作的示例在章节4.1的示例1中描述。
[0350] 图29是视频编码的示例方法2900的流程图。方法2900包括:使用基于运动的编码工具,通过以第一块尺寸推导(2902)用于运动补偿的第一运动信息以及以不同于第一块尺寸的第二块尺寸存储用于视频图片的未来部分的运动预测的第二运动信息来处理(2906)视频图片的部分。例如,视频的该部分可以是视频块或编码单元。处理操作可以包括在将视频图片编码为其比特流表示期间执行的解压缩或块重构或压缩或比特流生成。
[0351] 在一些实施例中,基于运动的编码工具包括仿射运动补偿。在一些实施例中,基于运动的编码工具包括ATMVP。章节4.1的示例2提供了方法2900的附加实施例示例。
[0352] 在一些实施例中,可以使用包括使用视频块的比特流表示重构视频块的方法来执行视频处理。比特流表示包括使用以下公式的、视频块的编码的运动矢量差信息:
[0353]
[0354] 其中k(w)是非负整数并且对于不同的PU/CU宽度是不同的,并且o(w)是偏移(例如,等于1<<(k(w)–1))。在章节4.1的示例3中提供了该方法的实施例的附加示例。
[0355] 在又一方面,公开了一种视频处理方法。该方法包括:在从视频块的比特流表示生成视频块期间,使用与用于在比特流表示中对AF_INTER模式中的运动矢量差进行编码的精度相同的精度来构造仿射运动矢量预测值的列表。在章节4.1的示例4中描述了该方法的附加实施例示例。
[0356] 在又一方面,所公开的视频编码或解码的方法使用视频块的比特流表示,其中在该比特流表示中针对视频块对仿射模式中的多于一个运动矢量差进行了编码,并且该多于一个运动矢量差中的至少两个运动矢量差的精度不同。在一些实施方式中,运动矢量差中的每一个可以具有其自身的比特精度,其由预定规则关联或基于在比特流表示中隐式或显式地指示的决定。在章节4.1的示例5和6中描述了该方法的实施例的附加示例。
[0357] 在一些实施例中,视频解码方法可以使用解码装置而实施,其中该解码装置在如关于图26和图27所描述的硬件平台上被实施。
[0358] 图30是示出可以在其中实施本文公开的各种技术的示例视频处理系统3000的框图。各种实施方式可以包括系统3000的一些或所有组件。系统3000可以包括用于接收视频内容的输入3002。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入3002可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(Passive Optical Network,PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
[0359] 系统3000可以包括可以实施本文档中描述的各种编码方法的编码组件3004。编码组件3004可以将视频的平均比特率从输入3002减小到编码组件3004的输出,以产生视频的编码表示。因此,编码技术有时被称为视频压缩或视频转码技术。编码组件3004的输出可以存储,或者经由如组件3006所表示的连接的通信而发送。在输入3002处接收的视频的存储或通信传送的比特流(或编码)表示可以由组件3008用来生成传送到显示接口3010的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应该理解,编码工具或操作在编码器处使用,并且反转编码结果的对应的解码工具或操作将由解码器执行。
[0360] 外围总线接口或显示器接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)或Displayport等。存储接口的示例包括SATA(Serial Advanced Technology Attachment,串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
[0361] 图31是视频处理的示例方法3100的流程图。该流程图的步骤一般针对本专利文档的章节4.1中的示例1。方法3100包括:对于当前视频单元的重构,生成(3102)仿射运动矢量预测候选的列表,其中该列表中的每个候选在不使用限幅操作的情况下被计算,其中限幅操作将候选运动矢量的幅度限制到一范围。方法3100还包括:使用仿射运动矢量预测候选的列表来执行(3104)当前视频单元的重构。
[0362] 图32是视频处理的示例方法的流程图。该流程图的步骤一般针对本专利文档的章节4.1中的示例4。方法3200包括:在从视频单元的编码表示生成视频单元期间,使用与用于在编码表示中对仿射视频编码模式中的运动矢量差进行编码的精度相同的精度来构造(3202)仿射运动矢量预测值的列表。方法3200还包括:使用仿射运动矢量预测候选的列表来执行(3204)视频单元的生成。
[0363] 图33是视频处理的示例方法的流程图。该流程图的步骤一般针对本专利文档的章节4.1中的示例6。方法3300包括:对于视频块的编码表示和被仿射编码的视频块之间的转换,确定(3302)对于该转换启用了对具有不同精度的多个运动矢量差(MVD)的使用。方法3300还包括:基于该确定来执行(3304)该转换。
[0364] 图34是视频处理的示例方法的流程图。该流程图的步骤一般针对本专利文档的章节4.1中的示例2。方法3400包括:将基于运动的子块编码工具应用(3402)于当前视频单元,其中该工具至少基于以第一块尺寸推导用于运动补偿的第一运动信息和以不同于第一块尺寸的第二块尺寸推导第二运动信息。方法3400还包括:存储(3404)用于未来视频单元的运动预测的第二运动信息。
[0365] 图35是视频处理的示例方法的流程图。该流程图的步骤一般针对本专利文档的章节4.1中的示例3。方法3500包括:使用视频单元的编码表示来重构(3502)视频单元,其中编码表示包括使用以下公式对视频单元的运动矢量差信息进行取整:
[0366]其中dMVic[1]、dMVic[3]表示在第i次迭代中推导的、4-参数仿射模型中使用的右上方控制点的水平和垂直运动矢量差,其中>>是位移操作,w是视频单元的宽度,k(w)是非负整数,并且o(w)是偏移。
[0367] 图36是视频处理的示例方法的流程图。该流程图的步骤一般针对本专利文档的章节4.1中的示例5。方法3600包括:使用(3602)与仿射视频编码模式相关联的视频单元的编码表示,该仿射视频编码模式包括使用以不同精度编码的多个运动矢量差(MVD),使得第一MVD具有第一精度并且第二MVD具有与第一MVD不同的第二精度。方法3600还包括:使用编码表示来构造(3604)视频单元。
[0368] 现在以基于条款的格式描述所公开技术的一些实施例。
[0369] 1.一种视频处理的方法,包括:对于当前视频单元的重构,生成仿射运动矢量预测候选的列表,其中该列表中的每个候选在不使用限幅操作的情况下被计算,其中限幅操作将候选运动矢量的幅度限制到一范围;以及使用仿射运动矢量预测候选的列表来执行当前视频单元的重构。
[0370] 2.如条款1所述的方法,其中,范围由最小值和/或最大值定义。
[0371] 3.如条款1所述的方法,进一步包括:
[0372] 将限幅操作应用于用于执行当前视频单元的运动补偿的运动矢量。
[0373] 4.如条款1所述的方法,其中,仿射运动矢量预测候选与4-参数或6-参数仿射模型相关联。
[0374] 5.一种视频处理方法,包括:
[0375] 在从视频单元的编码表示生成视频单元期间,使用与用于在编码表示中对仿射视频编码模式中的运动矢量差进行编码的精度相同的精度来构造仿射运动矢量预测值的列表;以及
[0376] 使用仿射运动矢量预测候选的列表来执行视频单元的生成。
[0377] 6.如条款5所述的方法,进一步包括:
[0378] 在用作仿射运动矢量预测值的列表中的运动矢量预测值之前,修改相邻视频单元的运动矢量的精度。
[0379] 7.如条款6所述的方法,其中,Prec表示用于对仿射视频编码模式中的运动矢量差进行编码的精度,其中PredPrec表示相邻视频单元的运动矢量预测值的精度,并且其中PredPrec在生成仿射运动矢量预测值的列表之前被修改。
[0380] 8.如条款7所述的方法,其中,编码的运动矢量差具有表达为1/(2^Prec)的精度。
[0381] 9.如条款7所述的方法,其中,相邻视频单元的运动矢量预测值具有表达为1/(2^PredPrec)的精度。
[0382] 10.如条款7所述的方法,进一步包括:
[0383] 基于Prec和PredPrec的值,对相邻视频单元的运动矢量进行缩放。
[0384] 11.如条款7所述的方法,其中,如果PredPrec>Prec,则相邻视频单元的运动矢量预测值被表示为MVPredX、MVPredY,然后相邻视频单元的经修改的运动矢量预测值MVPred'X、MVPred'y被计算为:
[0385] MVPred'X=round(MVPredX,PredPrec–Prec),
[0386] MVPred'Y=round(MVPredY,PredPrec–Prec),
[0387] 其中round(a,b)被定义为(a+offset)>>b,其中>>是位移操作,并且offset是整数。
[0388] 12.如条款11所述的方法,其中,offset等于(1<<(b-1))。
[0389] 13.如条款7所述的方法,其中,如果PredPrec>Prec,则相邻视频单元的运动矢量预测值被表示为MVPredX、MVPredY,然后相邻视频单元的经修改的运动矢量预测值MVPred'X、MVPred'y被计算为:
[0390] MVPred'X=round(MVPredX,PredPrec–Prec),
[0391] MVPred'Y=round(MVPredY,PredPrec–Prec),
[0392] 其中round(MV,deltaPrec)=MV>>deltaPrec,其中>>是位移操作。
[0393] 14.如条款7所述的方法,其中,如果PredPrec
[0394] MVPred'X=MVPredX<<(PredPrec–Prec),
[0395] MVPred'Y=MVPredY<<(PredPrec–Prec)。
[0396] 15.如条款6所述的方法,其中,修改精度包括首先以全精度推导视频单元的运动矢量预测值,然后对运动矢量预测值进行取整。
[0397] 16.如条款5所述的方法,进一步包括:
[0398] 在不改变相邻视频单元的运动矢量的精度的情况下,使用相邻视频单元的运动矢量作为运动矢量预测值;以及
[0399] 将仿射视频编码模式中的运动矢量差的精度设置为在视频单元的编码表示中选择性地信令通知的精度。
[0400] 17.一种视频处理的方法,包括:
[0401] 对于视频块的编码表示和被仿射编码的视频块之间的转换,确定对该转换启用了对具有不同精度的多个运动矢量差(MVD)的使用;以及
[0402] 基于该确定来执行该转换。
[0403] 18.如条款17所述的方法,其中,对多个MVD的不同精度的使用的指示是至少基于当满足一个或多个条件时在视频块的编码表示中选择性地信令通知的。
[0404] 19.如权利要求17-18中任一项所述的方法,其中,该使用的指示是在以下中的一个或多个中隐式或显式地信令通知的:序列参数集(SPS)、序列报头、视频参数集(VPS)、图片参数集(PSP)、条带报头、图片报头、编码树单元(CTU)、编码单元(CU)、CTU行组或CU行组。
[0405] 20.如权利要求17-19中任一项所述的方法,其中,一个或多个条件与以下中的至少一个相关:视频块的尺寸、视频块的形状、与视频块相关联的编码模式、与视频块相关联的仿射参数的数量、与视频块相关联的条带类型、或与视频块相关联的时域层的数量。
[0406] 21.如条款18所述的方法,其中,当不满足一个或多个条件时,该使用的指示被选择性地禁用。
[0407] 22.如条款21所述的方法,其中,当视频单元的尺寸小于样本的阈值数量时,该使用的指示被选择性地禁用。
[0408] 23.如条款22所述的方法,其中,样本的阈值数量是16。
[0409] 24.一种视频处理的方法,包括:
[0410] 将基于运动的子块编码工具应用于当前视频单元,其中该工具至少基于以第一块尺寸推导用于运动补偿的第一运动信息和以不同于第一块尺寸的第二块尺寸推导第二运动信息;以及
[0411] 存储用于未来视频单元的运动预测的第二运动信息。
[0412] 25.如条款24所述的方法,其中,基于运动的子块编码工具是仿射模式运动补偿。
[0413] 26.如条款24所述的方法,其中,基于运动的子块编码工具是可选时域运动矢量预测模式(ATMVP)。
[0414] 27.如权利要求24至26中任一项所述的方法,其中,第一运动信息以M1xN1块尺寸而推导,并且第二运动信息以M2xN2块尺寸而推导,其中M1、M2、N1和N2是正整数,并且其中M1不等于M2且N1不等于N2。
[0415] 28.如权利要求24至26中任一项所述的方法,其中,M1和N1被设置为等于8,并且M2和N2被设置为等于4。
[0416] 29.如权利要求24至26中任一项所述的方法,其中,处理当前视频单元包括处理当前视频单元的子块,其中当前视频单元包括第一类型的子块和/或第二类型的子块,第一类型的子块位于当前视频单元的、与当前视频单元没有共同边界的最内(innermost)区域,并且第二类型的子块与当前视频单元共享共同的边界。
[0417] 30.如条款29所述的方法,其中,第一运动信息以M1xN1块尺寸而推导,并且第二运动信息基于该处理是关于第一类型的子块还是第二类型的子块分别以M2xN2块尺寸或M3xN3块尺寸而推导,其中M1、M2、M3、N1、N2和N3是正整数。
[0418] 31.如条款30所述的方法,其中,当前视频单元是当前视频块,第一类型的子块是当前视频块的内子块,并且第二类型的子块是当前视频块的边界子块。
[0419] 32.如条款31所述的方法,其中,M1和N1被设置为等于8,M2和N2被设置为等于8,并且M3和N3被设置为等于4。
[0420] 33.如条款30-32中任一项所述的方法,其中,对于第二运动信息的推导,矩形块形状MxN被用于第二类型的子块。
[0421] 34.如条款33所述的方法,其中,对于右侧边界,M>N的块尺寸被使用,并且对于底部边界,M
[0422] 35.如条款34所述的方法,其中,底部边界包括右下方边界或左下方边界,并且其中,对于右下方边界,M>N的块尺寸被使用,并且对于左下方边界,M
[0423] 36.如条款34所述的方法,其中,底部边界包括右下方边界,并且其中,对于右下方边界,使用的块尺寸小于在右侧边界处使用的块尺寸。
[0424] 37.如条款34所述的方法,其中,底部边界包括右下方边界,并且其中,对于右下方边界,使用的块尺寸小于在底部边界处使用的块尺寸。
[0425] 38.如条款24至37中任一项所述的方法,其中,未来视频单元的第一运动信息是从当前视频单元的第二运动信息推导的。
[0426] 39.如条款24至37中任一项所述的方法,其中,第二运动信息是从第一运动信息推导的。
[0427] 40.一种视频处理方法,包括:
[0428] 使用视频单元的编码表示来重构视频单元,其中编码表示包括使用以下公式对视频单元的运动矢量差信息进行取整:
[0429]其中dMVic[1]、dMVic[3]表示在第i次迭代中推导的、4-参数仿射模型中使用的右上方控制点的水平和垂直运动矢量差,其中>>是位移操作,w是视频单元的宽度,k(w)是非负整数,并且o(w)是偏移。
[0430] 41.如条款40所述的方法,其中,o(w)被表达为o(w)=(1<<(k(w)–1))。
[0431] 42.如条款40至41中任一项所述的方法,其中,k(w)是w的非递减函数。
[0432] 43.如条款40所述的方法,其中,该重构包括使用针对视频单元的第一宽度的、k(w)的第一值,以及针对视频单元的不同于第一宽度的第二宽度的、k(w)的第二值。
[0433] 44.如条款40-43中任一项所述的方法,其中
[0434]
[0435] 45.一种视频处理的方法,包括:
[0436] 使用与仿射视频编码模式相关联的视频单元的编码表示,该仿射视频编码模式包括使用以不同精度编码的多个运动矢量差(MVD),使得第一MVD具有第一精度并且第二MVD具有与第一MVD不同的第二精度;以及
[0437] 使用编码表示来构造视频单元。
[0438] 46.如条款45所述的方法,其中,4-参数仿射模型被用在仿射视频编码模式中,进一步包括:
[0439] 如果第二MVD是从第一MVD预测的,那么第二精度大于第一精度。
[0440] 47.如条款46所述的方法,其中,第一MVD是视频单元中的左上方像素的MVD,并且第二MVD是视频单元中的右上方像素的MVD。
[0441] 48.如条款45所述的方法,其中,6-参数仿射模型被用在仿射视频编码模式中,并且其中第三MVD具有第三精度,进一步包括:
[0442] 如果第二MVD和/或第三MVD是从第一MVD预测的,那么第二精度和/或第三精度大于第一精度。
[0443] 49.如条款48所述的方法,其中,第一MVD是视频单元中的左上方像素的MVD,第二MVD是视频单元中的右上方像素的MVD,并且第三MVD是视频单元中的左下方像素的MVD。
[0444] 50.如条款45-49中任一项所述的方法,进一步包括:
[0445] 基于一个或多个条件,选择性地启用或禁用在视频单元的编码表示中信令通知对多个MVD的不同精度的使用的指示。
[0446] 51.如条款50所述的方法,其中,第一精度和/或第二精度是在视频单元的编码表示中信令通知的。
[0447] 52.如条款50-51中任一项所述的方法,其中,该使用的指示是在以下中的一个或多个中隐式或显式地信令通知的:序列参数集(SPS)、序列报头、视频参数集(VPS)、图片参数集(PSP)、条带报头、图片报头、编码树单元(CTU)、编码单元(CU)、CTU行组或CU行组。
[0448] 53.如条款50-52中任一项所述的方法,其中,一个或多个条件与以下中的至少一个相关:视频单元的尺寸、视频单元的形状、与视频单元相关联的编码模式、与视频单元相关联的仿射参数的数量、与视频单元相关联的条带类型、或与视频单元相关联的时域层的数量。
[0449] 54.如条款50所述的方法,其中,当不满足一个或多个条件时,该使用的指示被选择性地禁用。
[0450] 55.如条款54所述的方法,其中,当视频单元的尺寸小于样本的阈值数量时,该使用的指示被选择性地禁用。
[0451] 56.如条款55所述的方法,其中,样本的阈值数量是16。
[0452] 57.一种视频解码装置,包括:处理器,被配置为实施如权利要求1至56中的一项或多项所述的方法。
[0453] 58.一种视频编码装置,包括:处理器,被配置为实施如权利要求1至56中的一项或多项所述的方法。
[0454] 59.一种计算机程序产品,其上存储有计算机代码,该代码在由处理器运行时使得处理器实施如权利要求1至56中任一项所述的方法。
[0455] 60.一种本文档中描述的方法、装置或系统。
[0456] 参考上述解决方案,在一些实施例中,视频单元是包括一个或多个分量(例如,亮度和/或色度)的视频块。在一些实施例中,视频单元对应于编码单元(CU)。在一些实施例中,视频单元可以是预测单元(PU)或变换单元(TU)。
[0457] 本文档中描述的所公开的和其他实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中实施,或者在它们中的一个或多个的组合中实施。所公开的和其他实施例可以实施为一个或多个计算机程序产品,即,在计算机可读介质上编码的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置运行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组合、或者它们中的一个或多个的组合。术语“数据处理装置”囊括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。
[0458] 计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上运行。
[0459] 本文档中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
[0460] 适合于运行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可换式磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0461] 虽然本专利文档包含许多细节,但这些细节不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
[0462] 类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
[0463] 仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈