会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑图像 / 运动矢量 / 运动矢量精度细化

运动矢量精度细化

阅读:1185发布:2020-05-12

IPRDB可以提供运动矢量精度细化专利检索,专利查询,专利分析的服务。并且一种对包括视频的数字表示的比特流进行解码的方法,包含:从比特流解码当前视频块的运动信息,使用一个或多个模板估计当前视频块的匹配成本,其中一个或多个模板中的每个包含具有多个样本的视频块,以及基于解码条件并使用具有最小匹配成本的模板来细化当前视频块的运动矢量的精度。,下面是运动矢量精度细化专利的具体信息内容。

1.一种解码包括视频的数字表示的比特流的方法,包括:从比特流解码当前视频块的运动信息;

使用一个或多个模板估计当前视频块的匹配成本,其中所述一个或多个模板中的每个包含具有多个样本的视频块;以及基于解码条件并使用具有最小匹配成本的模板来细化所述当前视频块的运动矢量的精度。

2.如权利要求1所述的方法,其中所述解码条件包含选择低精度运动矢量。

3.如权利要求1所述的方法,其中,所述解码条件是Merge模式,并且其中所述运动矢量由当前块继承。

4.如权利要求1至3中任一项所述的方法,其中所述细化包含每次将运动矢量精度细化一个整数值。

5.如权利要求1至3中任一项所述的方法,其中所述细化包含每次以缩放因子细化运动矢量精度。

6.如权利要求5所述的方法,其中所述缩放因子是2,从而将4像素精度降低到2像素分辨率,到1像素分辨率,到1/2像素分辨率,到1/4像素分辨率。

7.如权利要求1至3中任一项所述的方法,其中所述细化包含每次以最小精度的多个单位细化运动矢量精度。

8.如权利要求7所述的方法,其中所述最小精度对应于1/4像素分辨率,并且其中所述多个单位是整数。

9.如权利要求1至3中任一项所述的方法,包含:检查起点周围最近的Np个点,其中N是整数,p是所述运动矢量的精度;以及将所述最近的Np个点中最佳的一个选择为运动细化的下一次迭代的下一起点。

10.如权利要求9所述的方法,其中基于终止条件终止所述检查,并且其中所述终止条件包含与取决于所述精度p的值N的比较。

11.如权利要求1所述的方法,还包含使用双线性插值滤波器来执行运动补偿。

12.一种视频解码装置,包括处理器,其被配置为实施如权利要求1至11中的一项或多项所述的方法。

13.一种视频编码装置,包括处理器,其被配置为实施如权利要求1至11中的一项或多项所述的方法。

14.一种计算机程序产品,其上存储有计算机代码,当所述计算机代码由处理器运行时,使所述处理器实施如权利要求1至11中的一项或多项所述的方法。

15.本文档中所描述的方法、装置或系统。

说明书全文

运动矢量精度细化

[0001] 相关申请的交叉引用
[0002] 根据适用的《专利法》和/或《巴黎公约》的规定,本申请是为了及时要求2018年6月7日提交的在先美国临时专利申请No.62/682,150的权益,其全部公开以引用方式并入本公开,作为本申请的公开的一部分。

技术领域

[0003] 本文档涉及视频编码技术。

背景技术

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

发明内容

[0005] 公开了与视频编码中的解码器侧运动矢量推导(Side  Motion VectorDerivation,DMVD)相关的技术。该技术可以应用于现有的视频编码标准,如HEVC、或最终确定的标准多功能视频编码。该技术也可以应用于未来的视频编码标准或视频编解码器。
[0006] 在另一示例方面,公开了一种在视频解码过程期间细化运动矢量的精度的方法。该方法包括从比特流解码当前视频块的运动信息,使用一个或多个模板估计当前视频块的匹配成本,其中一个或多个模板中的每个包含具有多个样本的视频块,以及基于解码条件并使用具有最小匹配成本的模板来细化当前视频块的运动矢量的精度。
[0007] 在又一示例方面,公开了一种装置,包括被配置为实施上述方法中的每一个的处理器。
[0008] 在再一示例方面,这些方法可以以计算机可运行指令的形式体现并存储在计算机可读程序介质上。
[0009] 在本文档中进一步描述了这些和其他方面。

附图说明

[0010] 图1示出了用于Merge候选列表建构的推导过程的示例。
[0011] 图2示出了空间Merge候选的示例位置。
[0012] 图3示出了考虑空间Merge候选的冗余校验的候选对的示例。
[0013] 图4A和图4B示出了N×2N和2N×N个分区的第二PU的示例位置。
[0014] 图5是用于时间Merge候选的运动矢量缩放的示例说明。
[0015] 图6示出了时间Merge候选C0和C1的候选位置的示例。
[0016] 图7示出了组合的双向预测Merge候选的示例。
[0017] 图8示出了运动矢量预测候选的示例推导过程。
[0018] 图9示出了用于空间运动矢量候选的运动矢量缩放的示例说明。
[0019] 图10示出了用于CU的ATMVP运动预测的示例。
[0020] 图11示出了简化的仿射运动模型的示例。
[0021] 图12示出了每子块仿射MVF的示例。
[0022] 图13示出了AF_INTER的MVP的示例。
[0023] 图14A-图14B示出了AF_MERGE的候选的示例。
[0024] 图15示出了基于双边模板匹配的DMVR的示例。
[0025] 图16是视频解码的示例方法的流程图。
[0026] 图17是视频解码装置的框图。
[0027] 图18示出了视频编码器的示例实施方式。

具体实施方式

[0028] 本文档提供了可由视频比特流的解码器使用的各种技术,以改善解压缩或解码的数字视频的质量。此外,视频编码器还可在编码处理期间实施这些技术,以便重建用于进一步编码的经解码的帧。
[0029] 为了便于理解,在本文档中使用章节标题,并且不将实施例和技术限制于对应部分。这样,来自一个部分的实施例可以与来自其他部分的实施例组合。此外,虽然一些实施例详细描述了视频编码步骤,但是应该理解,将由解码器实施解码撤消(undo)编码的对应步骤。此外,术语视频处理包括视频编码或压缩、视频解码或解压缩以及视频转码,其中视频像素从一种压缩格式表示为另一压缩格式或以不同的压缩比特率表示。
[0030] 1.技术框架
[0031] 视频编码标准主要通过开发众所周知的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%的比特率。
[0032] 2.HEVC/H.265中的帧间预测
[0033] 每个帧间预测的预测单元(Prediction Unit,PU)具有用于一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc来信号通知两个参考图片列表中的一个的使用。可以将运动矢量明确地编码为相对于预测器的增量。
[0034] 当用跳过模式对编码单元(Coding Unit,CU)进行编码时,一个PU与CU相关联,并且不存在显著的残差系数、没有编码的运动矢量增量或参考图片索引。指定Merge模式,从而从相邻PU获得当前PU的运动参数,包括空间和时间候选。Merge模式可以应用于任何帧间预测的PU,而不仅应用于跳过模式。Merge模式的替代是运动参数的显式传输,其中,对于每个PU,明确地用信号通知运动矢量(更准确地说,与运动矢量预测器相比的运动矢量差)、每个参考图片列表的对应参考图片索引和参考图片列表使用。在本文档中,这种模式被称为高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)。
[0035] 当信令指示将使用两个参考图片列表中的一个时,从一个样本块产生PU。这被称为“单向预测(uni-prediction)”。单向预测可用于P条带和B条带两者。
[0036] 当信令指示将使用两个参考图片列表时,从两个样本块产生PU。这被称为“双向预测(bi-prediction)”。双向预测仅适用于B条带。
[0037] 以下文本提供了HEVC中指定的帧间预测模式的详细信息。描述将从Merge模式开始。
[0038] 2.1.1Merge模式
[0039] 2.1.1.1Merge模式的候选推导
[0040] 当使用Merge模式预测PU时,从比特流解析指向Merge候选列表中的条目的索引并将其用于检索运动信息。该列表的建构(construction)在HEVC标准中指定,并且可以根据以下步骤顺序进行总结:
[0041] ·步骤1:初始候选推导
[0042] ο步骤1.1:空间候选推导
[0043] ο步骤1.2:空间候选的冗余校验
[0044] ο步骤1.3:时间候选推导
[0045] ·步骤2:插入额外的候选
[0046] ο步骤2.1:创建双向预测候选
[0047] ο步骤2.2:插入零运动候选
[0048] 这些步骤也在图1中示意性地描绘。对于空间Merge候选推导,在位于五个不同位置的候选当中选择最多四个Merge候选。对于时间Merge候选推导,在两个候选当中选择最多一个Merge候选。由于在解码器处假设恒定数量的候选用于每个PU,因此当从步骤1获得的候选的数量未达到在条带报头中用信号通知的最大Merge候选数量(MaxNumMergeCand)时,生成额外的候选。由于候选的数量是恒定的,因此使用截断的一元二值化(Truncated Unary binarization,TU)来编码最佳Merge候选的索引。如果CU的尺寸等于8,则当前CU的所有PU共享单个Merge候选列表,其与2N×2N预测单元的Merge候选列表相同。
[0049] 在下文中,详细描述了与上述步骤相关的操作。
[0050] 2.1.1.2空间候选推导
[0051] 在空间Merge候选的推导中,在位于图2描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任何PU不可用(例如,因为它属于另一条带或区块)或者是帧内编码时,才考虑位置B2。在添加位置A1处的候选之后,对剩余候选的添加进行冗余校验,其确保具有相同运动信息的候选被排除在列表之外,使得编码效率提高。为了降低计算复杂度,在所提到的冗余校验中并未考虑所有可能的候选对。相反,仅考虑图3中用箭头连接的对,并且仅在用于冗余校验的对应候选具有不一样的运动信息时,才将候选添加到列表。重复运动信息的另一来源是与不同于2N×2N的分区相关联的“第二PU”。作为示例,图4A和图4B描绘了分别针对N×2N和2N×N的情况的第二PU。当当前PU被分区为N×2N时,位置A1处的候选不被考虑用于列表建构。实际上,通过添加该候选将导致具有相同运动信息的两个预测单元,这对于在编码单元中仅具有一个PU是多余的。类似地,当当前PU被分区为2N×N时,不考虑位置B1。
[0052] 2.1.1.3时间候选推导
[0053] 在该步骤中,只有一个候选被添加到列表中。具体地,在该时间Merge候选的推导中,基于共同定位的PU来推导缩放的运动矢量,该共同定位的PU属于给定参考图片列表内与当前图片具有最小POC差的图片。在条带报头中明确地用信号通知要用于推导共同定位的PU的参考图片列表。如图5中的虚线所示获得用于时间Merge候选的缩放的运动矢量,其是使用POC距离tb和td从共同定位的PU的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,td被定义为是共同定位的图片的参考图片与共同定位的图片之间的POC差。时间Merge候选的参考图片索引被设置为等于零。HEVC规范中描述了缩放过程的实际实现。对于B条带,获得两个运动矢量,一个用于参考图片列表0,另一用于参考图片列表1,并且结合该两个运动矢量以获得双向预测Merge候选。
[0054] 在属于参考帧的共同定位的PU(Y)中,在候选C0和C1之间选择时间候选的位置,如图6所示。如果位置C0处的PU不可用、是帧内编码的、或者在当前CTU行之外,则使用位置C1。否则,位置C0用于时间Merge候选的推导。
[0055] 2.1.1.4插入额外的候选
[0056] 除了空间和时间Merge候选之外,还存在两种额外类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空间和时间Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,它们将形成一个新的双向预测候选。作为示例,图7描绘了当原始列表(左侧)中具有mvL0和refIdxL0或mvL1和refIdxL1的两个候选被用于创建添加到最终列表(右侧)的组合的双向预测Merge候选的情况。关于被认为生成这些额外的Merge候选的组合有许多规则。
[0057] 插入零运动候选以填充Merge候选列表中的剩余条目,从而达到MaxNumMergeCand容量。这些候选具有零空间位移和参考图片索引,该参考图片索引从零开始并且每当新的零运动候选被添加到列表时增加。这些候选使用的参考帧的数量是1和2,分别用于单向和双向预测。最后,不对这些候选执行冗余校验。
[0058] 2.1.1.5用于并行处理的运动估计区域
[0059] 为了加速编码处理,可以并行执行运动估计,从而同时推导给定区域内的所有预测单元的运动矢量。从空间邻域推导Merge候选可能干扰并行处理,因为一个预测单元直到其相关联的运动估计完成时才能从相邻PU推导运动参数。为了减轻编码效率和处理等待时间之间的折衷,HEVC定义运动估计区域(Motion Estimation Region,MER),其尺寸在图片参数集中使用“log2_parallel_merge_level_minus2”语法元素信号通知。当定义MER时,落入同一区域的Merge候选被标记为不可用,因此在列表建构中不予考虑。
[0060] 2.1.2 AMVP
[0061] AMVP利用运动矢量与相邻PU的时空相关性,其用于运动参数的显式传输。对于每个参考图片列表,通过首先校验在时间上相邻的PU位置的上方,左侧的可用性,移除冗余候选并添加零矢量以使候选列表为恒定长度来建构运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测器,并发送指示所选候选的对应索引。与Merge索引信令类似,使用截断的一元来编码最佳运动矢量候选的索引。在这种情况下要编码的最大值是2(参见图8)。在以下部分中,提供了关于运动矢量预测候选的推导过程的细节。
[0062] 2.1.2.1 AMVP候选的推导
[0063] 图8总结了运动矢量预测候选的推导过程。
[0064] 在运动矢量预测中,考虑两种类型的运动矢量候选:空间运动矢量候选和时间运动矢量候选。对于空间运动矢量候选推导,最终基于位于图2所示的五个不同位置的每个PU的运动矢量推导两个运动矢量候选。
[0065] 对于时间运动矢量候选推导,从两个候选中选择一个运动矢量候选,其是基于两个不同的共同定位的位置推导的。在产生时空候选的第一列表之后,移除列表中的重复的运动矢量候选。如果潜在候选的数量大于2,则从列表中移除相关联的参考图片列表内的其参考图片索引大于1的运动矢量候选。如果时空运动矢量候选的数量小于2,则将额外的零运动矢量候选添加到列表中。
[0066] 2.1.2.2空间运动矢量候选
[0067] 在空间运动矢量候选的推导中,在五个潜在候选当中考虑最多两个候选,其从位于如图2所示的位置的PU中推导,那些位置与运动Merge的位置相同。将当前PU的左侧的推导顺序定义为A0、A1,以及缩放的A0、缩放的A1。将当前PU的上侧的推导顺序定义为B0、B1、B2,缩放的B0、缩放的B1、缩放的B2。因此,对于每一侧,存在可以用作运动矢量候选的四种情况,其中两种情况不需要使用空间缩放,两种情况使用空间缩放。四种不同的情况总结如下:
[0068] ·没有空间缩放
[0069] -(1)相同的参考图片列表,以及相同的参考图片索引(相同的POC)
[0070] -(2)不同的参考图片列表,但相同的参考图片(相同的POC)
[0071] ·空间缩放
[0072] -(3)相同的参考图片列表,但不同的参考图片(不同的POC)
[0073] -(4)不同的参考图片列表,以及不同的参考图片(不同的POC)
[0074] 首先校验无空间缩放的情况,然后校验空间缩放。当POC在相邻PU的参考图片与当前PU的参考图片之间不同而不管参考图片列表时,考虑空间缩放。如果左候选的所有PU都不可用或者是帧内编码的,则允许对上述运动矢量进行缩放以帮助左和上MV候选的并行推导。否则,不允许对上述运动矢量进行空间缩放。
[0075] 在空间缩放过程中,以与时间缩放类似的方式缩放相邻PU的运动矢量,如图9所示。主要区别是将参考图片列表和当前PU的索引作为输入给出;实际缩放过程与时间缩放过程相同。
[0076] 2.1.2.3时间运动矢量候选
[0077] 除了参考图片索引推导之外,用于推导时间Merge候选的所有过程与用于推导空间运动矢量候选的过程相同(参见图6)。将参考图片索引用信号通知给解码器。
[0078] 2.2JEM中的新的帧间预测方法
[0079] 2.2.1模式匹配的运动矢量推导
[0080] 模式匹配的运动矢量推导(Pattern matched motion vector derivation PMMVD)模式是基于帧速率上转换(FRUC)技术的特殊Merge模式。利用该模式,在解码器侧推导块的运动信息,而不是信号通知块的运动信息。
[0081] 当CU的Merge标志为真时,向CU信号通知FRUC标志。当FRUC标志为假时,信号通知Merge索引并使用常规Merge模式。当FRUC标志为真时,信号通知额外的FRUC模式标志以指示将使用哪种方法(双边匹配或模板匹配)来推导块的运动信息。
[0082] 在编码器侧,关于是否对CU使用FRUC Merge模式的决定是基于对正常Merge候选所做的RD成本选择。即,通过使用RD成本选择来校验CU的两种匹配模式(双边匹配和模板匹配)两者。引起最小成本的那个匹配模式与其他CU模式进一步比较。如果FRUC匹配模式是最有效的模式,则对于CU将FRUC标志设置为真,并且使用相关的匹配模式。
[0083] FRUC Merge模式中的运动推导过程有两个步骤:首先执行CU级运动搜索,然后进行子CU级运动细化。在CU级,基于双边匹配或模板匹配,推导整个CU的初始运动矢量。首先,生成MV候选列表,并且将引起最小匹配成本的候选选择为进一步CU级细化的起点。然后,执行起点附近的基于双边匹配或模板匹配的局部搜索,并且将引起最小匹配成本的MV作为整个CU的MV。随后,以推导的CU运动矢量作为起点,在子CU级进一步细化运动信息。
[0084] 例如,对于W×HCU运动信息推导执行以下推导过程。在第一阶段,推导出了整个W×HCU的MV。在第二阶段,该CU进一步被划分为M×M子CU。M值的计算方法如(1)所示,D是预定义的划分深度,在JEM中默认设置为3。然后推导每个子CU的MV。
[0085]
[0086] 2.2.2可选时间运动矢量预测
[0087] 在可选时间运动矢量预测(ATMVP)方法中,通过从小于当前CU的块中提取多组运动信息(包括运动矢量和参考索引)来修改运动矢量时间运动矢量预测(TMVP)。如图10所示,子CU是方形N×N块(默认地将N设置为4)。
[0088] ATMVP以两个步骤预测CU内的子CU的运动矢量。第一步是利用所谓的时间矢量识别参考图片中的对应块。参考图片被称为运动源图片。第二步是将当前CU划分成子CU,并从对应于每个子CU的块中获得运动矢量以及每个子CU的参考索引,如图10所示。
[0089] 在第一步骤中,由当前CU的空间相邻块的运动信息确定参考图片和对应块。为了避免相邻块的重复扫描过程,使用当前CU的Merge候选列表中的第一Merge候选。第一可用运动矢量及其相关联的参考索引被设置为时间矢量和运动源图片的索引。这样,在ATMVP中,与TMVP相比,可以更准确地识别对应块,其中对应块(有时称为并置块)总是相对于当前CU位于右下或中心位置。
[0090] 在第二步骤中,通过向当前CU的坐标添加时间矢量,通过运动源图片中的时间矢量来识别子CU的对应块。对于每个子CU,其对应块(覆盖中心样本的最小运动网格)的运动信息用于推导子CU的运动信息。在识别出对应的N×N块的运动信息之后,以与HEVC的TMVP相同的方式将其转换为当前子CU的参考索引和运动矢量,其中运动缩放和其他过程也适用。例如,解码器校验是否满足低延迟条件(即,当前图片的所有参考图片的POC小于当前图片的POC)并且可能使用运动矢量MVx(对应于参考图片列表X的运动矢量)来预测每个子CU的运动矢量MVy(其中X等于0或1并且Y等于1-X)。
[0091] 2.2.3仿射运动补偿预测
[0092] 在HEVC中,仅将平移运动模型应用于运动补偿预测(MotionCompensation Prediction,MCP)。在现实世界中,存在多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在JEM中,应用简化的仿射变换运动补偿预测。如图11所示,块的仿射运动场由两个控制点运动矢量描述。
[0093] 块的运动矢量场(Motion Vector Field,MVF)由以下等式描述:
[0094]
[0095] 其中(v0x,v0y)是左上角控制点的运动矢量,(v1x,v1y)是右上角控制点的运动矢量。
[0096] 为了进一步简化运动补偿预测,应用基于子块的仿射变换预测。子块尺寸M×N如等式3中推导,其中MvPre是运动矢量分数准确度(在JEM中是1/16),(v2x,v2y)是根据等式2计算的左下控制点的运动矢量。
[0097]
[0098] 在通过等式3推导之后,如果需要,应该向下调整M和N,以使其分别为w和h的除数。
[0099] 为了推导每个M×N子块的运动矢量,根据等式2计算每个子块的中心样本的运动矢量,如图12所示,并取整到1/16分数准确度。然后,应用2.2.3节中提到的运动补偿插值滤波器,以利用所推导的运动矢量生成每个子块的预测。
[0100] 在MCP之后,对每个子块的高准确度运动矢量进行取整,并将其以与正常运动矢量相同的准确度保存。
[0101] 在JEM中,存在两种仿射运动模式:AF_INTER模式和AF_MERGE模式。对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在比特流中用信号通知CU级的仿射标志以指示是否使用AF_INTER模式。在该模式中,使用相邻块构造具有运动矢量对{(v0,v1)|v0={vA,vB,vc},v1={vD,vE}}的候选列表。如图13所示,从块A、B或C的运动矢量中选择v0。根据参考列表以及用于相邻块的参考的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的差。
[0102] 当在AF_MERGE模式中应用CU时,它从有效的相邻重建块获得用仿射模式编码的第一个块。并且候选块的选择顺序是从左、上、右上、左下到左上,如图14A所示。如果相邻左下块A以仿射模式进行编码,如图14B所示,推导包含块A的CU的左上角、右上角和左下角的运动矢量v2、v3和v4。并且根据v2、v3和v4计算当前CU左上角的运动矢量v0。其次,计算当前CU的右上方的运动矢量。
[0103] 在推导出当前CU的CPMV v0和v1之后,根据简化的仿射运动模型等式2生成当前CU的MVF。为了识别当前CU是否以AF_MERGE模式进行编码,当至少有一个相邻块以仿射模式进行编码时,在比特流中用信号通知仿射标志。
[0104] 2.2.4MV细化
[0105] MV细化是基于模式的MV搜索,以双边匹配成本或模板匹配成本为标准。在JEM中,支持两种搜索模式—无限制中心偏置菱形搜索(Unrestricted Center-Biased Diamond Search,UCBDS)和自适应交叉搜索,分别在CU级和子CU级进行MV细化。对于CU和子CU级MV细化两者,以四分之一亮度样本MV精度直接搜索MV,并且接着是八分之一亮度样本MV细化。将用于CU和子CU步骤的MV细化的搜索范围设置为等于8个亮度样本。
[0106] 2.2.5模板匹配FRUC Merge模式中预测方向的选择
[0107] 在双边匹配Merge模式中,始终应用双向预测,因为CU的运动信息是基于在两个不同的参考图片中沿当前CU的运动轨迹的两个块之间的最近匹配推导的。对于模板匹配Merge模式没有这样的限制。在模板匹配Merge模式中,编码器可以从列表0中的单向预测、列表1中的单向预测或双向预测当中为CU选择。选择基于如下的模板匹配成本:
[0108] 如果costBi<=factor*min(cost0,cost1)
[0109] 则使用双向预测;
[0110] 否则,如果cost0<=cost1
[0111] 则使用列表0中的单向预测;
[0112] 否则,
[0113] 使用列表1中的单向预测;
[0114] 其中cost0是列表0模板匹配的SAD,cost1是列表1模板匹配的SAD,costBi是双向预测模板匹配的SAD。factor的值等于1.25,这意味着选择过程偏向于双向预测。
[0115] 帧间预测方向选择仅应用于CU级模板匹配过程。
[0116] 2.2.6解码器侧运动矢量细化
[0117] 在双向预测操作中,对于一个块区域的预测,将分别使用list0的运动矢量(MV)和list1的MV形成的两个预测块进行组合以形成单个预测信号。在解码器侧运动矢量细化(Decoder-Side Motion Vector Refinement,DMVR)方法中,通过双边模板匹配过程进一步细化双向预测的两个运动矢量。双边模板匹配应用在解码器中,以在双边模板和参考图片中的重建样本之间执行基于失真的搜索,以便获得细化的MV而无需传输附加的运动信息。
[0118] 在DMVR中,分别从列表0的初始MV0和列表1的MV1,将双边模板生成为两个预测块的加权组合(即平均),如图15所示。模板匹配操作包括计算所生成的模板与参考图片中的(在初始预测块周围的)样本区域之间的成本度量。对于两个参考图片中的每个,将产生最小模板成本的MV考虑为该列表的更新MV以替换原始MV。在JEM中,对每个列表搜索九个MV候选。该九个MV候选包括原始MV和8个与原始MV在水平或垂直方向上或两个方向上具有一个亮度样本偏移的环绕的MV。最后,将两个新的MV,即如图15中所示的MV0'和MV1',用于生成最终的双向预测结果。将绝对差之和(SAD)用作成本度量。请注意,当计算由一个环绕的MV生成的预测块的成本时,实际上使用取整的MV(到整数像素)而不是真实MV来获得预测块。
[0119] 将DMVR应用于双向预测的Merge模式,其中一个MV来自过去的参考图片,另一MV来自未来的参考图片,而无需传输额外的语法元素。在JEM中,当对CU启用LIC、仿射运动、FRUC或子CU Merge候选时,不应用DMVR。
[0120] 2.2.7问题的示例
[0121] 如DMVR和FRUC的DMVD方法执行运动估计以推导或细化运动信息,这对于解码器来说非常复杂。在运动估计期间,它们都有一个共同的问题:对于块中的所有像素计算模板和候选块之间的差(绝对差、平方差等)并将其相加,然后将其用于选择最佳匹配块。这不是必需的,因为部分像素的差可能足以选择最佳候选块或MV。同时,通常仅在运动矢量的推导或细化中使用亮度分量,并且不考虑色度分量。
[0122] 对于DMVR,其具有另一个复杂性问题:它执行两次运动补偿,一次用于生成模板,一次用于生成最终预测块。结果,对于每个参考图片列表(即,预测方向),在初始MV和细化的MV仅具有分数分量的情况下,它执行两次水平插值和垂直插值两者。这极大地增加了最坏情况的复杂性。同时,DMVR仅在Merge模式下工作,而不能在AMVP模式下工作。在MV细化中,它将信号通知的MV(来自Merge候选的推导MV)作为起始MV,并校验其环绕的MV。然而,不考虑信号通知的MV的MV精度。在AMVR中,可能选择低精度MV。例如,假设最高可允许MV精度是1/4像素,在AMVR中,可能使用4像素或1像素MV。在这种情况下,DMVR可用于细化MV精度。与可以在子块级应用的FRUC不同,除了ATMVP和STMVP情况之外,DMVR在块级执行,这可能导致编码性能损失。
[0123] 对于FURC,当执行双边匹配时,考虑起始MV和候选MV之间的MV差以抑制不可靠的运动矢量。将MV差乘以固定的加权因子,这可能不合理。对于较大的块,SAD起主导作用并且MV差是可忽略的,并且对于较小的块,MV差可能太大。
[0124] 2.2.8示例实施例
[0125] 我们提议了来降低DMVD方法的复杂度并提高编码性能的几个方面。所公开的方法可以应用于现有的DMVD方法,但也可以应用于解码器侧的运动/模式推导的未来方法。
[0126] 第一,仅针对解码器侧运动估计中的部分像素,即,在运动信息推导或细化过程中,计算模板和候选块之间的成本(例如,考虑失真和MV的差、失真或成本)。第二,对于DMVR,插值次数减少。第三,使用所公开的技术的一些实施例将DMVR应用于AMVP模式。第四,对于不同的块尺寸,MV差的权重因子可以不同。
[0127] 以下列举的示例提供了一些方式,通过这些方式,可以将所公开的技术体现到视频解码过程中。
[0128] 1.将prec表示为运动矢量精度,当prec等于N时,它表示运动矢量具有1/2^N像素精度。N可以是正整数、零或负整数。DMVR可用于细化MV精度。
[0129] a.在具有或不具有AMVR的AMVP模式中,如果选择低精度MV,则可以使用DMVR来细化MV精度。信号通知的MV可以用作解码器侧搜索的起点。
[0130] b.在Merge模式下,如果当前块继承了低精度MV,则DMVR也可用于细化MV精度。继承的MV被设置为起点。
[0131] c.MV从精度prec或prec+1逐渐细化到其更高精度(即,prec+K,其中K是正整数值)或者到条带/图片/序列允许的最高精度。
[0132] i.对于MV精度p,校验起点周围最近的Np个点(精度为p),并将最佳的一个选择为下一个MV精度的起点。将以最高MV精度选择的最佳的一个用作最终MV。
[0133] ii.可替代地,这种渐进式MV精度细化过程可仅应用于若干MV精度。例如,如果当前块的MV精度是4像素,则仅校验整数MV精度和1/4MV精度。
[0134] iii.可替代地,这种渐进式MV精度细化过程可以在校验给定MV精度之后终止。
[0135] iv.可替代地,如果在细化循环结束之后未改变起点,即MV精度未被真正被细化,则这种渐进式MV精度细化过程可以终止。
[0136] d.在一个示例中,校验起点周围的几个固定点,并将最佳的一个选择为最终MV。
[0137] i.这些固定点可以取决于MV精度,使得包括所有或几个更高的MV精度(高于prec或prec–1)。
[0138] ii.可替代地,这些固定点与MV精度无关。仅选择距起点固定距离的点。
[0139] 2.当CU/PU采用一个或多个低精度MV(或MV分量)时,DMVR细化可以隐式地应用或者由CU/PU级DMVR标志显示地控制。
[0140] a.在一个示例中,仅针对采用AMVR模式(即,采用低精度MV)的CU/PU信号通知DMVR标志。在这种情况下,在AMVR索引之后信号通知DMVR标志。
[0141] 在一个示例中,仅信号通知一个DMVR标志。在双预测的情况下,这种DMVR标志被应用于两个预测方向。
[0142] i.在一个示例中,如果针对每个预测方向分别控制AMVR,则信号通知一个DMVR标志,并将其应用于采用低精度MV的预测方向(或多个预测方向)。
[0143] 1.可替代地,针对采用低精度MV的每个预测方向信号通知单独的DMVR标志。
[0144] b.在一个示例中,在非AMVR情况下,针对以AMVP模式编码且具有低精度MV的PU或包含该PU的CU,信号通知DMVR标志。在这种情况下,在PU的运动信息或CU中的所有PU的运动信息之后信号通知DMVR标志。
[0145] c.在一个示例中,在非AMVR情况下,针对具有低精度MV的PU或包含该PU的CU,信号通知DMVR标志,而不管PU/CU是否以AMVP模式或Merge模式编码。在这种情况下,在PU的运动信息或CU中的所有PU的运动信息之后信号通知DMVR标志。
[0146] d.可以在PU/CU中的最低MV精度上有条件地信号通知DMVR标志。例如,如果最低MV精度高于给定值,则始终禁用DMVR并且不信号通知DMVR标志。
[0147] i.可替代地,如果最低MV精度小于给定值,则始终启用DMVR并且不信号通知DMVR标志。
[0148] e.可以在块尺寸/块形状/编码模式等上有条件地信号通知DMVR标志。
[0149] 3.在现有的DMVD方法中,仅考虑亮度分量来推导或细化运动矢量。提议还考虑色度分量。用Ci表示给定运动矢量的三个颜色分量的成本(其中i指示颜色分量索引)。
[0150] a.最终成本被定义为Wi*Ci,其中Wi指示第i个颜色分量的权重。
[0151] b.可替代地,最终成本定义为(W0*C0+W1*(C1+C2))。在一些示例中,W0或W1等于1。
[0152] c.在一个示例中,当将DMVR应用于色度分量时,可以应用运动矢量的取整,使得可以利用整数运动矢量,并且不需要对色度分量应用插值。
[0153] d.在一个示例中,当将DMVR应用于色度分量时,如果需要插值,则可以应用较短抽头的插值滤波器(诸如双线性滤波器)。
[0154] 4.上述方法可以应用于某些颜色分量或所有颜色分量。
[0155] a.可以将不同的规则应用于不同的颜色分量,或者亮度和色度分量可以利用不同的规则。
[0156] b.可替代地,可以在序列参数集、图片参数集、条带报头等中进一步信号通知如何以及是否应用上述方法。
[0157] 图16是在视频解码的示例方法1600的流程图。方法1600包括从比特流解码(1602)当前视频块的运动信息;使用一个或多个模板估计(1604)当前视频块的匹配成本,其中一个或多个模板中的每个包含具有多个样本的视频块;以及基于解码条件并使用具有最小匹配成本的模板来细化(1606)当前视频块的运动矢量的精度。
[0158] 2.2.8节提供了可以通过方法1600实施的额外的示例实施例和变型。可以使用以下条款来描述一些示例。
[0159] 1.方法1600,如上所述。
[0160] 2.如条款1所述的方法,其中解码条件包括选择低精度运动矢量。这里,低精度可以意味着,例如,与用于解码其他运动矢量的其他精度相比较。可替代地,低精度可以意味着像素分辨率是整数像素的倍数。
[0161] 3.如条款1所述的方法,其中解码条件是Merge模式,并且其中运动矢量由当前块继承。
[0162] 4.如条款1至3中任一项所述的方法,其中所述细化包括每次将运动矢量精度细化一个整数值。
[0163] 5.如条款1至3中任一项所述的方法,其中所述细化包括每次通过比例因子细化运动矢量精度。
[0164] 6.如条款5所述的方法,其中比例因子是2,从而将4像素精度降低到2像素分辨率到1像素分辨率到1/2像素分辨率到1/4像素分辨率。
[0165] 7.如条款1至3中任一项所述的方法,其中所述细化包括每次以最小精度的多个单位细化运动矢量精度。
[0166] 8.如条款7所述的方法,其中最小精度对应于1/4像素分辨率,并且其中多个单位是整数。
[0167] 9.如条款1至3中任一项所述的方法,包括:检查起始点周围的最近Np点,其中N是整数,并且p是运动矢量的精度;并选择最近的Np点中最好的一个作为运动细化的下一次迭代的下一个起始点。
[0168] 10.如条款9所述的方法,其中基于终止条件终止所述检查,并且其中所述终止条件包括与取决于精度p的N值的比较。
[0169] 11.如条款1所述的方法,还包括使用双线性插值滤波器执行运动补偿。
[0170] 12.一种视频解码装置,包括:处理器,被配置为实施条款1至11中的一个或多个所述的方法。
[0171] 13.一种视频编码装置,包括:处理器,被配置为实施条款1至11中的一个或多个所述的方法。
[0172] 14.一种计算机程序产品,其上存储有计算机代码,该代码在由处理器运行时使处理器实施条款1至11中的一个或多个所述的方法。
[0173] 图17示出了可用以实施本发明所公开的技术的各个部分的硬件设备1700的示例实施例的框图。硬件设备1700可以是笔记本电脑、智能手机、平板电脑、摄像机或能够处理视频的其他类型的设备。设备1700包括处理数据的处理器或控制器1702,以及与处理器1702通信、存储和/或缓冲数据的存储器1704。例如,处理器1702可以包括中央处理单元(Central Processing Unit,CPU)或微控制器单元(Microcontroller Unit,MCU)。在一些实施方式中,处理器1702可包含现场可编程门阵列(Field-Programmable Gate-Array,FPGA)。在一些实施方式中,设备1700包括或与图形处理单元(Graphics Processing Unit,GPU)、视频处理单元(Video Processing Unit,VPU)和/或无线通信单元通信,以实现智能手机设备的各种视觉和/或通信数据处理功能。例如,存储器1704可以包括并存储处理器可运行代码,该代码在由处理器1702运行时,将设备1700配置为执行各种操作,例如诸如接收信息、命令和/或数据,处理信息和数据,以及将处理过的信息/数据发送或提供给另一设备,诸如执行器或外部显示器。为了支持设备1700的各种功能,存储器1704可以存储信息和数据,诸如指令、软件、值、图像以及处理器1702处理或引用的其他数据。例如,可以使用各种类型的随机存取存储器(Random Access Memory,RAM)设备、只读存储器(Read Only Memory,ROM)设备、闪存设备和其他合适的存储介质来实施存储器1704的存储功能。设备
1700还可以包括专用视频处理电路1706,用于执行重复计算功能,诸如变换和解码。
[0174] 图18是示出视频编码器的示例实施方式的框图。视频编码器对使用诸如变换、运动估计和残差误差编码的编码工具编码的视频图片进行操作。在编码器处对编码的视频帧进行重构(运动补偿),并将其用作用于其他视频图片的帧间编码的参考图片。本文档中描述的技术可以由视频编码器或视频解码器使用诸如关于图17所描述的硬件平台来实施。
[0175] 从前述内容可以理解,本文已经出于说明的目的描述了当前所公开的技术的具体实施例,但是在不脱离本发明的范围的情况下可以做出各种修改。因此,除了所附权利要求之外,当前所公开的技术不受限制。
[0176] 本文档中描述的公开的和其他实施例、模块和功能性操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者以他们的一个或多个的组合实施。所公开的和其他实施例可以被实施为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置运行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的合成、或者它们中的一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,装置可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统及其一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电信号、光信号或电磁信号,其被生成以对信息进行编码以便传输到合适的接收器装置。
[0177] 计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点或分布在多个站点并通过通信网络互连。
[0178] 本文档中描述的处理和逻辑流可以由一个或多个可编程处理器执行,该一个或多个处理器运行一个或多个计算机程序,通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
[0179] 例如,适用于运行计算机程序的处理器包括通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或可操作地耦合到一个或多个大容量存储设备,以从其接收数据或向其传送数据,或两者兼有。然而,计算机不一定需要具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM光盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0180] 虽然本专利文档包含许多细节,但不应将其解释为对任何发明或要求保护的范围的限制,而应解释为特定于特定发明的特定实施例的特征的描述。本专利文档在分离的实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独地实施,或在任何合适的子组合中实施。此外,虽然特征可以被描述为在某些组合中起作用,甚至最初这样要求保护,但在某些情况下,可以从要求保护的组合中删除组合中的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变体。
[0181] 同样,尽管在附图中以特定顺序描述了操作,但这不应理解为要获得期望的结果必须按照所示的特定顺序或次序顺序来执行这些操作,或执行所有示出的操作。此外,本专利文档所述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0182] 仅描述了一些实施方式和示例,其他实施方式、增强和变体可以基于本专利文档中描述和说明的内容做出。
高效检索全球专利

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

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

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用