首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 视频编码和解码中的加权双向预测

视频编码和解码中的加权双向预测

阅读:988发布:2020-05-11

专利汇可以提供视频编码和解码中的加权双向预测专利检索,专利查询,专利分析的服务。并且本 申请 文件涉及 视频编码 和解码中的加权双向预测。公开了一种视频编码或解码方法,包括:使用基于历史的 运动矢量 预测(HMVP),在包括视频的当前 块 的多个视频块和所述多个视频块的比特流表示之间进行转换,使得对于使用单个参考图片进行 运动补偿 的单向预测块,避免更新该单向预测块的HMVP候选的查找表。所述视频编码或解码方法还包括使用所述多个视频块的查找表执行所述转换。,下面是视频编码和解码中的加权双向预测专利的具体信息内容。

1.一种视频处理方法,包括:
基于与视频的相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
使用广义双向预测(GBi)模式来执行所述视频的当前块与该当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及
仅使用当前块的参考图片信息和运动信息来更新所述一个或多个表,从而排除将当前块的权重存储在所述一个或多个表中。
2.如权利要求1所述的方法,其中所述权重基于预定值。
3.如权利要求1所述的方法,其中所述预定值是1/2。
4.如权利要求1所述的方法,其中所述权重基于在所述视频的另一个块与该另一个块的编码表示的转换期间使用的一个或多个HMVP候选。
5.一种视频处理方法,包括:
基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
使用广义双向预测(GBi)模式执行所述视频的当前块与该当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及
至少用当前块的权重来更新所述一个或多个表。
6.如权利要求5所述的方法,还包括:
用当前块的运动信息和权重来更新所述一个或多个表。
7.如权利要求6所述的方法,还包括:
通过添加当前块的运动信息和权重作为新的HMVP候选,来更新所述一个或多个表。
8.如权利要求5所述的方法,还包括:
在所述视频的另一个块与包括该另一个块的视频的编码表示之间执行转换,其中在所述转换期间使用所述一个或多个表。
9.如权利要求5所述的方法,还包括:
根据所述一个或多个表中的HMVP候选,在所述视频的另一个块和所述视频的编码表示之间执行转换。
10.一种视频处理方法,包括:
基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及
执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的N对运动信息来生成组合的双向预测Merge候选,并且其中N小于12。
11.如权利要求10所述的方法,其中N等于m*(m-1),其中m是小于4的整数。
12.如权利要求10所述的方法,其中N取决于在将所述组合的双向预测Merge候选添加到查找表之前可用Merge候选的数量。
13.一种视频处理方法,包括:
基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及
执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的多对运动信息来生成组合的双向预测Merge候选,并且其中仅使用某种类型的Merge候选来生成双向预测Merge候选。
14.如权利要求13所述的方法,其中所述某种类型的Merge候选排除HMVP候选。
15.如权利要求13所述的方法,其中所述某种类型的Merge候选排除高级时间运动矢量预测器。
16.一种视频处理方法,包括:
基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
从HMVP候选生成多个Merge候选;以及
执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所生成的Merge候选。
17.如权利要求16所述的方法,其中所述HMVP候选用作用于所述转换的Merge候选。
18.如权利要求16所述的方法,其中所述多个Merge候选使用相同的运动信息作为所述HMVP候选的运动信息,并且所述多个Merge候选还使用与所述HMVP候选的权重不同的相关联权重。
19.如权利要求16或17所述的方法,其中从所述HMVP候选生成的Merge候选的数量等于所允许的权重的数量。
20.如权利要求16或17所述的方法,其中从所述HMVP候选生成的Merge候选的数量基于所述HMVP候选的权重。
21.如权利要求20所述的方法,其中至多生成第一Merge候选和第二Merge候选,其中所述第一Merge候选的权重等于所述HMVP候选的权重,且所述第二Merge候选的权重等于所述转换中使用的一对参考图片的权重。
22.如权利要求16或17所述的方法,其中从所述HMVP候选生成的Merge候选的数量基于在将HMVP候选添加到查找表之前可用运动候选的数量。
23.一种视频编码器装置,包括处理器,该处理器被配置为实现权利要求1至22中任一项或多项所述的方法。
24.一种视频解码器装置,包括处理器,该处理器被配置为实现权利要求1至22中任一项或多项所述的方法。
25.一种计算机可读介质,其上存储有代码,该代码包括使处理器实现权利要求1至22中任一项或多项所述的方法的指令。
26.如本文所描述的方法、系统或装置。

说明书全文

视频编码和解码中的加权双向预测

[0001] 相关申请的交叉引用
[0002] 根据适用的专利法和/或巴黎公约的规定,本申请及时要求于2018年9月24日提交的国际专利申请号PCT/CN2018/107178的优先权和利益。根据美国法律,将国际专利申请号PCT/CN2018/107178的全部公开以引用方式并入本文,作为本申请公开的一部分。

技术领域

[0003] 本申请文件涉及视频编码及解码技术、设备和系统。

背景技术

[0004] 尽管视频压缩有所进步,数字视频在互联网和其它数字通信网络上使用的带宽仍然最大。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。发明内容
[0005] 本文件公开了使用运动矢量的Merge列表对数字视频编码和解码的方法、系统和设备。
[0006] 在一个示例的方面,公开了一种视频处理方法。该方法包括在包括多个的视频的视频块与所述视频的比特流表示之间的转换之后,通过用于所述转换的预测方向,确定是否满足一个或多个基于历史的运动矢量预测(HMVP)表的更新规则;以及基于所述确定来选择性地更新所述一个或多个HMVP表。
[0007] 在另一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表,其中使用第一运动信息精度来存储HMVP候选,所述第一运动信息精度低于未被存储在所述一个或多个表中的运动候选所使用的第二运动信息精度;以及在所述视频的当前块和当前块的编码表示之间执行转换,其中在所述转换期间使用所述一个或多个表。
[0008] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表,其中根据至少基于所述HMVP候选所参考的参考图片的条件的规则来存储所述一个或多个表中的HMVP候选;以及执行所述视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表。
[0009] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;在所述视频的当前块与该当前块的编码表示之间执行转换;从所述一个或多个表中的HMVP候选中选择HMVP候选;以及使用应用于所述HMVP候选以及该视频的当前块的运动信息的基于哈希表的修剪,更新所述一个或多个表。
[0010] 在又一示例的方面,公开了一种视频处理的方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;使用广义双向预测(GBi,也被称作为具有CU级别权重的双向预测BCW)模式来执行所述视频的当前块与当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及仅使用当前块的参考图片信息和运动信息来更新所述一个或多个表,从而排除将当前块的权重存储在所述一个或多个表中。
[0011] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;使用广义双向预测(GBi)模式执行所述视频的当前块与当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及至少用当前块的权重来更新所述一个或多个表。
[0012] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及执行视频的当前块与当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的N对运动信息来生成组合的双向预测Merge候选,并且其中N小于12。
[0013] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的多对运动信息来生成组合的双向预测Merge候选,并且其中仅使用某种类型的Merge候选来生成双向预测Merge候选。
[0014] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;从HMVP候选生成多个Merge候选;以及执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所生成的Merge候选。
[0015] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;至少基于当前块的HMVP候选和时空运动矢量预测来构造运动候选列表;以及执行所述视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0016] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;至少基于当前块的HMVP候选和成对平均候选(PAC)来构造运动候选列表;以及执行所述视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0017] 在又一示例的方面,公开了一种视频处理方法。该方法包括基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;至少基于当前块的HMVP候选和仿射运动候选来构造运动候选列表;以及执行所述视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0018] 在又一示例的方面,公开了一种实现本文描述的视频编码方法的视频编码器设备。
[0019] 在又一个代表性方面,本文所述的各种技术可以实施为存储在非暂时性计算机可读介质上的计算机程序产品。计算机程序产品包括用于执行本文所述方法的程序代码。
[0020] 在又一个代表性方面,视频解码器装置可以实现如本文所述的方法。
[0021] 在附件、附图和下面的描述中阐述了一个或多个实现的细节。其它特征将从说明书和附图以及权利要求书中显而易见。

附图说明

[0022] 图1是示出视频编码器实现的示例的框图
[0023] 图2图示了H.264视频编码标准中的宏块分割。
[0024] 图3图示了将编码块(CB)划分成预测块(PB)的示例。
[0025] 图4图示了将编码树块(CTB)细分成CB和转换块(TB)的示例实现。实线表示CB边界,且虚线表示TB边界,包括带分割的示例CTB和相应的四叉树。
[0026] 图5A示出了通过使用QTBT的块分割的示例。
[0027] 图5B示出了图5A的对应树表示。
[0028] 图6示出了视频块分割的示例。
[0029] 图7示出了四叉树分割的示例。
[0030] 图8示出了树型信令的示例。
[0031] 图9示出了Merge候选列表构造的推导过程的示例。
[0032] 图10示出了空间Merge候选的示例位置
[0033] 图11示出了对于空间Merge候选的冗余检查考虑的候选对的示例。
[0034] 图12(a)和图12(b)示出了Nx2N和2NxN分割的第二个PU的位置的示例。
[0035] 图13图示了时间Merge候选的示例运动矢量缩放。
[0036] 图14示出了时间Merge候选的候选位置以及它们的共位图片。
[0037] 图15A示出了与组合的双向预测Merge候选有关的原始Merge候选列表的示例。
[0038] 图15B示出了从图15A的原始列表生成的Merge候选列表的示例。
[0039] 图16示出了运动矢量预测候选的推导过程的示例。
[0040] 图17示出了空间运动矢量候选的运动矢量缩放的示例。
[0041] 图18示出了编码单元(CU)的运动预测的示例可选时间运动矢量预测(ATMVP)。
[0042] 图19图示地描绘了源块和源图片的识别的示例。
[0043] 图20示出了具有四个子块和相邻块的一个CU的示例。
[0044] 图21图示了双边匹配的示例。
[0045] 图22图示了模板匹配的示例。
[0046] 图23描绘了速率上转换(FRUC)中的单边运动估计(ME)的示例。
[0047] 图24示出了基于双边模板匹配的解码器侧运动矢量细化(DMVR)的示例。
[0048] 图25示出了用于推导空间Merge候选的空间相邻块的示例。
[0049] 图26示出了非子块STMVP(时空运动矢量预测)的示例,其中当前块的宽度和高度分别由nPbW和nPbH表示。
[0050] 图27示出了平面运动矢量预测的示例。
[0051] 图28是用于实现本文档中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。
[0052] 图29是视频比特流处理的示例方法的流程图
[0053] 图30是视频比特流处理的另一示例方法的流程图。
[0054] 图31示出了具有所提出的HMVP(基于历史的运动矢量预测)方法的解码流程图的示例。
[0055] 图32示出了使用示例的HMVP方法来更新表的示例。
[0056] 图33是用于视频处理的示例方法的流程图。
[0057] 图34是用于视频处理的示例方法的流程图。
[0058] 图35是用于视频处理的示例方法的流程图。
[0059] 图36是其中可以实现所公开的技术的示例视频处理系统的框图。
[0060] 图37是用于视频处理的示例方法的流程图。
[0061] 图38是用于视频处理的示例方法的流程图。
[0062] 图39是用于视频处理的示例方法的流程图。
[0063] 图40是用于视频处理的示例方法的流程图。
[0064] 图41是用于视频处理的示例方法的流程图。
[0065] 图42是用于视频处理的示例方法的流程图。
[0066] 图43是用于视频处理的示例方法的流程图。
[0067] 图44是用于视频处理的示例方法的流程图。
[0068] 图45是用于视频处理的示例方法的流程图。
[0069] 图46是用于视频处理的示例方法的流程图。
[0070] 图47是用于视频处理的示例方法的流程图。
[0071] 图48是用于视频处理的示例方法的流程图。

具体实施方式

[0072] 为了提高视频的压缩比,研究人员不断寻找新的技术来编码视频。本文档提供了视频比特流的解码器可以使用的各种技术,以改善解压缩或解码的数字视频的质量。此外,视频编码器还可以在编码过程期间实现这些技术,以便重构解码帧用于进一步的编码。
[0073] 在本文档中使用章节标题来提高可读性,并且不将每个章节中描述的技术和实施例的范围仅限于该章节。此外,尽管使用了来自各种现有视频编解码器标准的某些术语,但是所公开的技术不仅限于这些视频标准或其继任者,而是可应用于其他视频编解码器标准。此外,在某些情况下,使用相应的编码步骤公开了技术,并且将理解的是,在解码器处,将以相反的顺序执行相应的解码步骤。另外,编码还可用于执行转码,其中将视频从一个编码表示(例如,一种比特率)表示为另一种编码表示(例如,不同的比特率)。
[0074] 1.介绍
[0075] 本文件与视频编码技术相关。具体地,与视频编码中的运动信息编码(例如Merge模式、AMVP模式)相关。其可应用于现有的视频编码标准HEVC,或待最终确定的标准多功能视频编码(VVC)。也可能适用于未来的视频编码标准或视频编解码器。
[0076] 简要讨论
[0077] 视频编码标准主要是通过开发公知的ITU-T和ISO/IEC标准而发展起来的。ITU-T开发了H.261和H.263,ISO/IEC开发了MPEG-1和MPEG-4视觉,并且两个组织联合开发了H.262/MPEG-2视频、H.264/MPEG-4高级视频编码(AVC)和H.265/HEVC标准。自H.262以来,视频编码标准基于混合视频编码结构,其中采用了时间预测加变换编码。典型HEVC编码器框架的示例如图1所示。
[0078] 2.1分割结构
[0079] 2.1.1H.264/AVC中的分割树结构
[0080] 先前标准中编码层的核心是宏块,包含16×16的亮度样本块,并且在常规的4:2:0颜色采样情况下,包含两个对应的8×8的色度样本块。
[0081] 内部编码块使用空间预测来探索像素之间的空间相关性。定义了两种分割:16x16和4x4。
[0082] 帧间编码块通过估计图片之间的运动来使用时间预测,而不是空间预测。可以单独估计16x16宏块或其任何子宏块分割的运动:16x8、8x16、8x8、8x4、4x8、4x4(见图2)。每个子宏块分割只允许一个运动矢量(MV)。
[0083] 2.1.2HEVC中的分割树结构
[0084] 在HEVC中,通过使用表示为编码树的四叉树结构将CTU划分成CU来适应各种局部特性。在CU级别决定是使用帧间(时间)预测还是帧内(空间)预测对图片区域进行编码。根据PU的分割类型,每个CU可以进一步划分成一个、两个或四个PU。在一个PU中,应用相同的预测处理,并且相关信息以PU为基础传输到解码器。在基于PU分割类型通过应用预测处理获得残差块后,可以根据与CU的编码树相似的另一个四叉树结构将CU分割成变换单元(TU)。HEVC结构的一个重要特征是它具有多个分割概念,包括CU、PU以及TU。
[0085] 在下文中,使用HEVC的混合视频编码中涉及的各种特征突出显示如下。
[0086] 1)编码树单元和编码树块(CTB)结构:HEVC中的类似结构是编码树单元(CTU),其具有由编码器选择并且可以大于传统的宏块的尺寸。CTU由亮度CTB和相应的色度CTB以及语法元素组成。亮度CTB的尺寸L×L可以选择为L=16、32或64个样本,较大的尺寸通常能够实现更好的压缩。然后,HEVC支持使用树结构和四叉树式信令将CTB分割为更小的块。
[0087] 2)编码单元(CU)和编码块(CB):CTU的四叉树语法规定了其亮度和色度CB的尺寸和位置。四叉树的根与CTU相关联。因此,亮度CTB的尺寸是亮度CB支持的最大尺寸。CTU的亮度和色度CB的划分是联合发信令的。一个亮度CB和通常两个色度CB以及相关的语法一起形成编码单元(CU)。CTB可以只包含一个CU,也可以划分形成多个CU,并且每个CU都有一个相关的分割,分割成预测单元(PU)和转换单元树(TU)。
[0088] 3)预测单元(PU)和预测块(PB):在CU级别决定是使用帧间预测还是帧内预测对图片区域进行编码。PU分割结构的根位于CU级。取决于基本的预测类型决定,可以在尺寸上进一步划分亮度和色度CB,并从亮度和色度预测块(PB)中预测亮度和色度CB。HEVC支持从64×64到4×4个样本的可变PB尺寸。图3示出了MxM CU的允许PB示例。
[0089] 4)变换单元(TU)和变换块(TB):使用块变换对预测残差进行编码。TU树结构的根位于CU级。亮度CB残差可能与亮度TB相同,或者也可能进一步划分成更小的亮度变换块TB。同样适用于色度TB。对于4×4、8×8、16×16和32×32的方形TB定义了与离散余弦变换(DCT)相似的整数基函数。对于亮度帧内预测残差的4×4变换,也可以指定从离散正弦变换(DST)形式推导的整数变换。
[0090] 图4示出了将CTB细分成CB(和转换块(TB))的示例。实线指示CB边界,并且虚线指示TB边界。(a)带分割的CTB。(b)对应的四叉树。
[0091] 2.1.2.1分割成变换块和单元的树形结构分割
[0092] 对于残差编码,CB可以递归地分割为转换块(TB)。分割由残差四叉树发信令。只指定了方形CB和TB分割,其中块可以递归地划分为四象限,如图4所示。对于尺寸为M×M的给定的亮度CB,标志指示它是否被划分成四个尺寸为M/2×M/2的块。如果可以进一步划分,如序列参数集(SPS)中指示的残差四叉树的最大深度所指示的那样,每个象限都会分配一个标志,指示是否将其划分为四个象限。由残差四叉树生成的叶节点块是由变换编码进一步处理的变换块。编码器指示它将使用的最大和最小亮度TB尺寸。当CB尺寸大于最大TB尺寸时,则暗示划分。当划分将导致比指示的最小值更小的亮度TB尺寸时,则暗示不划分。色度TB尺寸在每个维度上是亮度TB尺寸的一半,但当亮度TB尺寸为4×4时除外,在这种情况下,被四个4×4亮度TB覆盖的区域使用单个4×4色度TB。在帧内预测的CU的情况下,最近相邻TB(CB内或CB外)的解码样本用作帧内预测的参考数据。
[0093] 与以前的标准不同,对于帧间预测的CU,HEVC设计允许TB跨越多个PB,以最大化得益于四叉树结构的TB分割的潜在编码效率。
[0094] 2.1.2.2父节点子节点
[0095] 根据四叉树结构对CTB进行划分,其节点为编码单元。四叉树结构中的多个节点包括叶节点和非叶节点。叶节点在树结构中没有子节点(即,叶节点不会进一步划分)。非叶节点包括树结构的根节点。根节点对应于视频数据的初始视频块(例如,CTB)。对于多个节点的每个各自的非根节点,各自的非根节点对应于视频块,该视频块是对应于各自非根节点的树结构中的父节点的视频块的子块。多个非叶节点的每个各自的非叶节点在树结构中具有一个或多个子节点。
[0096] 2.1.3联合探索模型(JEM)中具有较大CTU的四叉树加二叉树块结构
[0097] 为探索HEVC之外的未来视频编码技术,VCEG和MPEG于2015年共同成立了联合视频探索团队(JVET)。从那时起,JVET采用了许多新的方法,并将其应用到了名为联合探索模型(JEM)的参考软件中。
[0098] 2.1.3.1QTBT块分割结构
[0099] 与HEVC不同,QTBT结构消除了多个分割类型的概念,即,其消除了CU、PU和TU概念的分离,并支持CU分割形状的更多灵活性。在QTBT块结构中,CU可以是方形或矩形。如图5A和5B所示,首先用四叉树结构对编码树单元(CTU)进行分割。四叉树叶节点进一步被二叉树结构分割。在二叉树划分中有两种分割类型:对称的平划分和对称的垂直划分。二叉树叶节点被称为编码单元(CU),该划分用于预测和转换处理,而无需进一步分割。这意味着在QTBT编码块结构中CU、PU和TU具有相同的块尺寸。在JEM中,CU有时由不同颜色分量的编码块(CB)组成,例如,在4:2:0色度格式的P条带和B条带中,一个CU包含一个亮度CB和两个色度CB,并且CU有时由单个分量的CB组成,例如,在I条带的情况下,一个CU仅包含一个亮度CB或仅包含两个色度CB。
[0100] 为QTBT分割方案定义了以下参数。
[0101] –CTU尺寸:四叉树的根节点尺寸,与HEVC中的概念相同。
[0102] –MiNQTSize:最小允许的四叉树叶节点尺寸
[0103] –MaxBTSize:最大允许的二叉树根节点尺寸
[0104] –MaxBTDePTh:最大允许的二叉树深度
[0105] –MiNBTSize:最小允许的二叉树叶节点尺寸
[0106] 在QTBT分割结构的一个示例中,CTU尺寸被设置为具有两个对应的64×64色度样本块的128×128个亮度样本,MiNQTSize被设置为16×16,MaxBTSize被设置为64×64,MiNBTSize(宽度和高度)被设置为4×4,MaxBTSize被设置为4。四叉树分割首先应用于CTU,以生成四叉树叶节点。四叉树叶节点的尺寸可以具有从16×16(即,MiNQTSize)到128×128(即,CTU尺寸)的尺寸。如果叶四叉树节点是128×128,则其不会被二叉树进一步划分,因为其尺寸超过了MaxBTSize(即,64×64)。否则,叶四叉树节点可以被二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。当二叉树深度达到MaxBTDePTh(即,4)时,不考虑进一步划分。当二叉树节点的宽度等于MiNBTSize(即,4)时,不考虑进一步的水平划分。同样,当二叉树节点的高度等于MiNBTSize时,不考虑进一步的垂直划分。通过预测和变换处理进一步处理二叉树的叶节点,而不需要进一步的分割。在JEM中,最大CTU尺寸为256×256个亮度样本。
[0107] 图5A图示了通过使用QTBT进行块分割的示例,图5B图示了相应的树表示。实线表示四叉树分割,并且虚线表示二叉树分割。在二叉树的每个划分(即,非叶)节点中,会对一个标志发信令来指示使用哪种分割类型(即,水平或垂直),其中0表示水平划分,1表示垂直划分。对于四叉树分割,不需要指明分割类型,因为四叉树分割总是水平和垂直划分一个块,以生成尺寸相同的4个子块。
[0108] 此外,QTBT方案支持亮度和色度具有单独的QTBT结构的能。目前,对于P条带和B条带,一个CTU中的亮度和色度CTB共享相同的QTBT结构。然而,对于I条带,用QTBT结构将亮度CTB分割为CU,用另一个QTBT结构将色度CTB分割为色度CU。这意味着I条带中的CU由亮度分量的编码块或两个色度分量的编码块组成,P条带或B条带中的CU由所有三种颜色分量的编码块组成。
[0109] 在HEVC中,为了减少运动补偿的内存访问,限制小块的帧间预测,使得4×8和8×4块不支持双向预测,并且4×4块不支持帧间预测。在JEM的QTBT中,这些限制被移除。
[0110] 2.1.4多功能视频编码(VVC)的三叉树
[0111] 在一些实现中,也支持四叉树和二叉树以外的树类型。在实现中,引入了两个额外的三叉树(TT)划分,即,水平和垂直中心侧三叉树,如图6(d)和(e)所示。
[0112] 图6示出了:(a)四叉树分割,(b)垂直二叉树分割(c)水平二叉树分割(d)垂直中心侧三叉树分割,和(e)水平中心侧三叉树分割。
[0113] 例如,可以有两个层次的树:区域树(四叉树)和预测树(二叉树或三叉树)。首先用区域树(RT)对CTU进行划分。可以进一步用预测树(PT)划分RT叶。也可以用PT进一步划分PT叶,直到达到最大PT深度。PT叶是基本的编码单元。为了方便起见,它仍然被称为CU。CU不能进一步划分。预测和变换都以与JEM相同的方式应用于CU。整个分割结构被称为“多类型树”。
[0114] 2.1.5分割结构
[0115] 被称为多树型(MTT)的树结构是QTBT的广义化。在QTBT中,如图7所示,首先用四叉树结构对编码树单元(CTU)进行划分。然后用二叉树结构对四叉树叶节点进行进一步划分。
[0116] MTT的基本结构由两种类型的树节点组成:区域树(RT)和预测树(PT),支持九种类型的划分,如图7所示。
[0117] 图8图示了:(a)四叉树分割,(b)垂直二叉树分割,(c)水平二叉树分割,(d)垂直三叉树分割,(e)水平三叉树分割,(f)水平向上非对称二叉树分割,(g)水平向下非对称二叉树分割,(h)垂直的左非对称二叉树分割,和(i)垂直的右非对称二叉树分割。
[0118] 区域树可以递归地将CTU划分为方形块,直至4x4尺寸的区域树叶节点。在区域树的每个节点上,可以从三种树类型中的一种形成预测树:二叉树(BT)、三叉树(TT)和非对称二叉树(ABT)。在PT划分中,禁止在预测树的分支中进行四叉树分割。和JEM一样,亮度树和色度树在I条带中被分开。RT和PT的信令方法如图8所示。
[0119] 2.2HEVC/H.265中的帧间预测
[0120] 每个帧间预测的PU具有一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。对两个参考图片列表中的一个的使用也可以使用inter_pred_idc来信令通知。运动矢量可以相对于预测显式地编码为增量,这种编码模式称为高级运动矢量预测(AMVP)模式。
[0121] 当CU采用跳跃模式编码时,一个PU与CU相关联,并且没有显著的残差系数、没有编码的运动矢量增量或参考图片索引。指定了一种Merge模式,通过该模式,可以从相邻的PU(包括空间和时间候选)中获取当前PU的运动参数。Merge模式可以应用于任何帧间预测的PU,而不仅仅是跳跃模式。Merge模式的另一种选择是运动参数的显式传输,其中运动矢量、每个参考图片列表对应的参考图片索引和参考图片列表的使用都会在每个PU中显式地用信令通知。
[0122] 当信令指示要使用两个参考图片列表中的一个时,从一个样本块中生成PU。这被称为“单向预测”。单向预测对P条带和B条带都可用。
[0123] 当信令指示要使用两个参考图片列表时,从两个样本块中生成PU。这被称为“双向预测”。双向预测仅对B条带可用。
[0124] 下文提供HEVC中规定的帧间预测模式的细节。描述将从Merge模式开始。
[0125] 2.2.1Merge模式
[0126] 2.2.1.1Merge模式的候选的推导
[0127] 当使用Merge模式预测PU时,从比特流分析指向Merge候选列表中条目的索引,并用于检索运动信息。该列表的结构在HEVC标准中有规定,并且可以按照以下步骤顺序进行概括:
[0128] 步骤1:初始候选推导
[0129] 步骤1.1:空间候选推导
[0130] 步骤1.2:空间候选的冗余检查
[0131] 步骤1.3:时间候选推导
[0132] 步骤2:附加候选插入
[0133] 步骤2.1:双向预测候选的创建
[0134] 步骤2.2:零运动候选的插入
[0135] 在图9中也示意性描述了这些步骤。对于空间Merge候选推导,在位于五个不同位置的候选中最多选择四个Merge候选。对于时间Merge候选推导,在两个候选中最多选择一个Merge候选。由于在解码器处假定每个PU的候选数为常量,因此当候选数未达到条带报头中发信令的最大Merge候选数(MaxNumMergeCand)时,生成附加的候选。由于候选数是恒定的,所以最佳Merge候选的索引使用截断的一元二值化(TU)进行编码。如果CU的大小等于8,则当前CU的所有PU都共享一个Merge候选列表,这与2N×2N预测单元的Merge候选列表相同。
[0136] 下面详细介绍与上述步骤相关的操作。
[0137] 2.2.1.2空间候选推导
[0138] 在空间Merge候选的推导中,在位于图10所示位置的候选中最多选择四个Merge候选。推导顺序为A1、B1、B0、A0和B2。只有当位置A1、B1、B0、A0的任何PU不可用(例如,因为它属于另一个条带或片)或是内部编码时,才考虑位置B2。在增加A1位置的候选后,对其余候选的增加进行冗余检查,其确保具有相同运动信息的候选被排除在列表之外,从而提高编码效率。为了降低计算的复杂度,在所提到的冗余检查中并不考虑所有可能的候选对。相反,只有与图11中的箭头链接的对才会被考虑,并且只有当用于冗余检查的对应候选没有相同的运动信息时,才将候选添加到列表中。复制运动信息的另一个来源是与2N×2N不同的分区相关的“第二PU”。例如,图12(a)和12(b)分别描述了N×2N和2N×N情况下的第二PU。当当前的PU被划分为N×2N时,对于列表构建不考虑A1位置的候选。在一些实施例中,添加此候选可能导致两个具有相同运动信息的预测单元,这对于在编码单元中仅具有一个PU是冗余的。同样地,当当前PU被划分为2N×N时,不考虑位置B1。
[0139] 2.2.1.3时间候选推导
[0140] 在此步骤中,只有一个候选添加到列表中。特别地,在这个时间Merge候选的推导中,基于与给定参考图片列表中当前图片具有最小图片顺序计数POC差异的共位PU推导了缩放运动矢量。用于推导共位PU的参考图片列表在条带报头中显式地发信令。图13中的虚线示出了时间Merge候选的缩放运动矢量的获得,其使用POC距离tb和td从共位PU的运动矢量进行缩放,其中tb定义为当前图片的参考图片和当前图片之间的POC差异,并且td定义为共位图片的参考图片与共位图片之间的POC差异。时间Merge候选的参考图片索引设置为零。缩放处理的实际处理在HEVC规范中描述。对于B条带,得到两个运动矢量(一个是对于参考图片列表0,另一个是对于参考图片列表1)并将其组合使其成为双向预测Merge候选。图示用于时间Merge候选的运动矢量缩放。
[0141] 在属于参考帧的共位PU(Y)中,在候选C0和C1之间选择时间候选的位置,如图14所示。如果位置C0处的PU不可用、内部编码或在当前CTU之外,则使用位置C1。否则,位置C0被用于时间Merge候选的推导。
[0142] 2.2.1.4附加候选插入
[0143] 除了空时Merge候选,还有两种附加类型的Merge候选:组合双向预测Merge候选和零Merge候选。组合双向预测Merge候选是利用空时Merge候选生成的。组合双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一候选的第二参考图片列表运动参数相结合,生成组合双向预测候选。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。例如,图15A和15B示出了在左侧的原始列表以及在右侧的Merge候选列表。图15A和15B示出了原始列表中(在左侧)的两个候选被用于创建添加到最终列表(在右侧)中的组合双向预测Merge候选的情况,其具有MvL0和refIdxL0或MvL1和refIdxL1的两个候选。有许多关于组合的规则需要考虑以生成这些附加Merge候选。
[0144] 插入零运动候选以填充Merge候选列表中的其余条目,从而达到MaxNumMergeCand的容量。这些候选具有零空间位移和从零开始并且每次将新的零运动候选添加到列表中时都会增加的参考图片索引。这些候选使用的参考帧的数目对于单向预测和双向预测分别是1帧和2帧。最后,对这些候选不执行冗余检查。
[0145] 2.2.1.5并行处理的运动估计区域
[0146] 为了加快编码处理,可以并行执行运动估计,从而同时推导给定区域内所有预测单元的运动矢量。从空间邻域推导Merge候选可能会干扰并行处理,因为一个预测单元在完成相关运动估计之前无法从相邻的PU推导运动参数。为了缓和编码效率和处理延迟之间的平衡,HEVC定义了运动估计区域(MER),可使用例如语法元素“log2_parallel_merge_level_minus2”在图片参数集中对MER的尺寸中进行信令通知。当定义MER时,落入同一区域的Merge候选标记为不可用,并且因此在列表构建中不考虑。
[0147] 7.3.2.3图片参数设置原始字节序列有效载荷(RBSP)语法
[0148] 7.3.2.3.1通用图片参数集RBSP语法
[0149]pic_paraMeter_set_rbsp(){ 描述符
pps_pic_paraMeter_set_id ue(v)
pps_seq_paraMeter_set_id ue(v)
depeNdeNt_slice_segMeNts_eNabled_flag u(1)
…  
pps_scaliNg_list_data_preseNt_flag u(1)
if(pps_scaliNg_list_data_preseNt_flag)  
scaliNg_list_data()  
lists_ModificatioN_preseNt_flag u(1)
log2_parallel_Merge_level_MiNus2 ue(v)
slice_segMeNt_header_exteNsioN_preseNt_flag u(1)
pps_exteNsioN_preseNt_flag u(1)
…  
rbsp_trailiNg_bits()  
}  
[0150] log2_parallel_Merge_level_MiNus2加2指定变量Log2ParMrgLevel的值,该变量用于第8.5.3.2.2条中规定的Merge模式亮度运动矢量的推导过程,以及第8.5.3.2.3条中规定的空间Merge候选的推导过程。log2_parallel_Merge_level_MiNus2的值应在0到CtbLog2SizeY-2的范围内,包括0和CtbLog2SizeY-2。
[0151] 变量Log2ParMrgLevel推导如下:
[0152] Log2ParMrgLevel=log2_parallel_Merge_level_MiNus2+2(7-37)
[0153] 注释3–Log2ParMrgLevel的值表示Merge候选列表并行推导的内置功能。例如,当Log2ParMrgLevel等于6时,可以并行推导64x64块中包含的所有预测单元(PU)和编码单元(CU)的Merge候选列表。
[0154] 2.2.2AMVP模式中的运动矢量预测
[0155] 运动矢量预测利用运动矢量与相邻的PU的空时相关性,其用于运动参数的显式传输。首先通过检查左上方的时间相邻的PU位置的可用性、去掉多余的候选位置并且加上零矢量以使候选列表长度恒定来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳的预测,并发送指示所选候选的对应索引。与Merge索引信令类似,最佳运动矢量候选的索引使用截断的一元进行编码。在这种情况下要编码的最大值是2(例如,图2至图8)。在下面的章节中,将详细介绍运动矢量预测候选的推导过程。
[0156] 2.2.2.1运动矢量预测候选的推导
[0157] 图16概括了运动矢量预测候选的推导过程。
[0158] 在运动矢量预测中,考虑了两种类型的运动矢量候选:空间运动矢量候选和时间运动矢量候选。对于空间运动矢量候选的推导,基于位于图11所示的五个不同位置的每个PU的运动矢量最终推导两个运动矢量候选。
[0159] 对于时间运动矢量候选的推导,从两个候选中选择一个运动矢量候选,这两个候选是基于两个不同的共位位置推导的。在作出第一个空时候选列表后,移除列表中重复的运动矢量候选。如果潜在候选的数量大于二,则从列表中移除相关联的参考图片列表中参考图片索引大于1的运动矢量候选。如果空时运动矢量候选数小于二,则会在列表中添加附加的零运动矢量候选。
[0160] 2.2.2.2空间运动矢量候选
[0161] 在推导空间运动矢量候选时,在五个潜在候选中最多考虑两个候选,这五个候选来自图11所描绘位置上的PU,这些位置与运动Merge的位置相同。当前PU左侧的推导顺序定义为A0、A1、以及缩放的A0、缩放的A1。当前PU上面的推导顺序定义为B0、B1,B2、缩放的B0、缩放的B1、缩放的B2。因此,每侧有四种情况可以用作运动矢量候选,其中两种情况不需要使用空间缩放,并且两种情况使用空间缩放。四种不同的情况概括如下:
[0162] --无空间缩放
[0163] (1)相同的参考图片列表,并且相同的参考图片索引(相同的POC)
[0164] (2)不同的参考图片列表,但是相同的参考图片(相同的POC)
[0165] --空间缩放
[0166] (3)相同的参考图片列表,但是不同的参考图片(不同的POC)
[0167] (4)不同的参考图片列表,并且不同的参考图片(不同的POC)
[0168] 首先检查无空间缩放的情况,然后检查空间缩放。当POC在相邻PU的参考图片与当前PU的参考图片之间不同时,都会考虑空间缩放,而不考虑参考图片列表。如果左侧候选的所有PU都不可用或是内部编码,则允许对上述运动矢量进行缩放,以帮助左侧和上方MV候选的并行推导。否则,不允许对上述运动矢量进行空间缩放。
[0169] 在空间缩放处理中,相邻PU的运动矢量以与时间缩放相似的方式缩放,如图17所示。主要区别在于,给出了当前PU的参考图片列表和索引作为输入,实际缩放处理与时间缩放处理相同。
[0170] 2.2.2.3时间运动矢量候选
[0171] 除了参考图片索引的推导外,时间Merge候选的所有推导过程与空间运动矢量候选的推导过程相同(参见例如图6)。向解码器信令通知参考图片索引。
[0172] 2.2.2.4AMVP信息的信令
[0173] 对于AMVP模式,可以在比特流对四个部分发信令,包括预测方向、参考索引、MVD和MV预测候选索引。
[0174] 语法表:
[0175]
[0176] 7.3.8.9运动矢量差语法
[0177]Mvd_codiNg(x0,y0,refList){ 描述符
abs_Mvd_greater0_flag[0] ae(v)
abs_Mvd_greater0_flag[1] ae(v)
if(abs_Mvd_greater0_flag[0])  
abs_Mvd_greater1_flag[0] ae(v)
if(abs_Mvd_greater0_flag[1])  
abs_Mvd_greater1_flag[1] ae(v)
if(abs_Mvd_greater0_flag[0]){  
if(abs_Mvd_greater1_flag[0])  
abs_Mvd_MiNus2[0] ae(v)
Mvd_sigN_flag[0] ae(v)
}  
if(abs_Mvd_greater0_flag[1]){  
if(abs_Mvd_greater1_flag[1])  
abs_Mvd_MiNus2[1] ae(v)
Mvd_sigN_flag[1] ae(v)
}  
}  
[0178] 2.3联合探索模型(JEM)中新的帧间预测方法
[0179] 2.3.1基于子CU的运动矢量预测
[0180] 在具有QTBT的JEM中,每个CU对于每个预测方向最多可以具有一组运动参数。通过将大的CU分割成子CU并推导该大CU的所有子CU的运动信息,编码器中考虑了两种子CU级的运动矢量预测方法。可选时间运动矢量预测(ATMVP)方法允许每个CU从多个小于共位参考图片中当前CU的块中获取多组运动信息。在空时运动矢量预测(STMVP)方法中,通过利用时间运动矢量预测和空间邻接运动矢量递归地推导子CU的运动矢量。
[0181] 为了为子CU运动预测的保持更精确的运动场,当前禁用参考帧的运动压缩。
[0182] 2.3.1.1可选时间运动矢量预测
[0183] 在可选时间运动矢量预测(ATMVP)方法中,运动矢量时间运动矢量预测(TMVP)是通过从小于当前CU的块中提取多组运动信息(包括运动矢量和参考索引)来修改的。如图18所示,子CU为方形N×N块(默认N设置为4)。
[0184] ATMVP分两步预测CU内的子CU的运动矢量。第一步是用所谓的时间矢量识别参考图中的对应块。参考图片称为运动源图片。第二步是将当前CU划分成子CU,并从每个子CU对应的块中获取运动矢量以及每个子CU的参考索引,如图18所示。
[0185] 在第一步中,参考图片和对应的块由当前CU的空间相邻块的运动信息确定。为了避免相邻块的重复扫描处理,使用当前CU的Merge候选列表中的第一个Merge候选。第一个可用的运动矢量及其相关联的参考索引被设置为时间矢量和运动源图片的索引。这样,在ATMVP中,与TMVP相比,可以更准确地识别对应的块,其中对应的块(有时称为共位块)始终位于相对于当前CU的右下或中心位置。在一个示例中,如果第一个Merge候选来自左相邻块(即,图19中的A1),则使用相关的MV和参考图片来识别源块和源图片。
[0186] 图19示出了源块和源图片的识别的示例。
[0187] 在第二步中,通过将时间矢量添加到当前CU的坐标中,通过运动源图片中的时间矢量识别子CU的对应块。对于每个子CU,使用其对应块的运动信息(覆盖中心样本的最小运动网格)来推导子CU的运动信息。在识别出对应N×N块的运动信息后,将其转换为当前子CU的运动矢量和参考索引,与HEVC的TMVP方法相同,其中应用运动缩放和其它处理。例如,解码器检查是否满足低延迟条件(即,当前图片的所有参考图片的POC都小于当前图片的POC),并可能使用运动矢量MVx(与参考图片列表X对应的运动矢量)来为每个子CU预测运动矢量MVy(X等于0或1且Y等于1-X)。
[0188] 2.3.1.2空时运动矢量预测
[0189] 在这种方法中,子CU的运动矢量是按照光栅扫描顺序递归推导的。图20图示了这一概念。考虑一个8×8的CU,它包含四个4×4的子CU A、B、C和D。当前帧中相邻的4×4的块标记为a、b、c和d。
[0190] 子CU A的运动推导由识别其两个空间邻居开始。第一个邻居是子CU A上方的N×N块(块c)。如果该块c不可用或内部编码,则检查子CU A上方的其它N×N块(从左到右,从块c处开始)。第二个邻居是子CU A左侧的一个块(块b)。如果块b不可用或是内部编码,则检查子CU A左侧的其它块(从上到下,从块b处开始)。每个列表从相邻块获得的运动信息被缩放到给定列表的第一个参考帧。接下来,按照HEVC中规定的与TMVP相同的程序,推导子块A的时间运动矢量预测(TMVP)。提取位置D处的共位块的运动信息并进行相应的缩放。最后,在检索和缩放运动信息后,对每个参考列表分别平均所有可用的运动矢量(最多3个)。将平均运动矢量指定为当前子CU的运动矢量。
[0191] 图20示出了具有四个子块(A-D)及其相邻块(a-d)的一个CU的示例。
[0192] 2.3.1.3子CU运动预测模式信令通知
[0193] 子CU模式作为附加的Merge候选模式启用,并且不需要附加的语法元素来对该模式发信令。将另外两个Merge候选添加到每个CU的Merge候选列表中,以表示ATMVP模式和STMVP模式。如果序列参数集指示启用了ATMVP和STMVP,则最多使用七个Merge候选。附加Merge候选的编码逻辑与HM中的Merge候选的编码逻辑相同,这意味着对于P条带或B条带中的每个CU,需要对两个附加Merge候选进行两次额外的RD检查。
[0194] 在JEM中,Merge索引的所有bin文件都由CABAC进行上下文编码。然而在HEVC中,只有第一个bin文件是上下文编码的,并且其余的bin文件是上下文旁路编码的。
[0195] 2.3.2自适应运动矢量差分辨率
[0196] 在HEVC中,当在条带报头中use_integer_mv_flag等于0时,运动矢量差(MVD)(在PU的运动矢量和预测运动矢量之间)以四分之一亮度样本为单位发信令。在JEM中,引入了局部自适应运动矢量分辨率(LAMVR)。在JEM中,MVD可以用四分之一亮度样本、整数亮度样本或四亮度样本的单位进行编码。MVD分辨率控制在编码单元(CU)级别,并且MVD分辨率标志有条件地为每个至少有一个非零MVD分量的CU发信令。
[0197] 对于具有至少一个非零MVD分量的CU,第一个标志将发信令以指示CU中是否使用四分之一亮度样本MV精度。当第一个标志(等于1)指示不使用四分之一亮度样本MV精度时,另一个标志发信令以指示是使用整数亮度样本MV精度还是使用四亮度样本MV精度。
[0198] 当CU的第一个MVD分辨率标志为零或没有为CU编码(意味着CU中的所有MVD都为零)时,CU使用四分之一亮度样本MV分辨率。当一个CU使用整数亮度样本MV精度或四亮度样本MV精度时,该CU的AMVP候选列表中的MVP将取整到对应的精度。
[0199] 在编码器中,CU级别的RD检查用于确定哪个MVD分辨率将用于CU。也就是说,对每个MVD分辨率执行三次CU级别的RD检查。为了加快编码器速度,在JEM中应用以下编码方案。
[0200] 在对具有正常四分之一亮度采样MVD分辨率的CU进行RD检查期间,存储当前CU(整数亮度采样精度)的运动信息。在对具有整数亮度样本和4亮度样本MVD分辨率的同一个CU进行RD检查时,将存储的运动信息(取整后)用作进一步小范围运动矢量细化的起始点,从而使耗时的运动估计处理不会重复三次。
[0201] 有条件地调用具有4亮度样本MVD分辨率的CU的RD检查。对于CU,当整数亮度样本MVD分辨率的RD检查成本远大于四分之一亮度样本MVD分辨率的RD检查成本时,将跳过对CU的4亮度样本MVD分辨率的RD检查。
[0202] 2.3.3模式匹配运动矢量推导
[0203] 模式匹配运动矢量推导(PMMVD)模式是基于帧速率上转换(FRUC)技术的特殊Merge模式。在这种模式下,块的运动信息不会被发信令,而是在解码器侧推导。
[0204] 对于CU,当其Merge标志为真时,对FRUC标志发信令。当FRUC标志为假时,对Merge索引发信令并且使用常规Merge模式。当FRUC标志为真时,对另一个FRUC模式标志发信令来指示将使用哪种模式(双边匹配或模板匹配)来推导该块的运动信息。
[0205] 在编码器侧,基于对正常Merge候选所做的RD成本选择决定是否对CU使用FRUC Merge模式。即通过使用RD成本选择来检查CU的两个匹配模式(双边匹配和模板匹配)。导致最低成本的模式进一步与其它CU模式相比较。如果FRUC匹配模式是最有效的模式,那么对于CU,FRUC标志设置为真,并且使用相关的匹配模式。
[0206] FRUC Merge模式中的运动推导过程有两个步骤:首先执行CU级运动搜索,然后执行子CU级运动优化。在CU级,基于双边匹配或模板匹配,推导整个CU的初始运动矢量。首先,生成一个MV候选列表,并且选择导致最低匹配成本的候选作为进一步优化CU级的起点。然后在起始点附近执行基于双边匹配或模板匹配的局部搜索,并且将最小匹配成本的MV结果作为整个CU的MV值。接着,以推导的CU运动矢量为起点,进一步在子CU级细化运动信息。
[0207] 例如,对于W×H CU运动信息推导执行以下推导过程。在第一阶段,推导了整个W×H CU的MV。在第二阶段,该CU进一步被分成M×M子CU。M的值按照(16)计算,D是预先定义的划分深度,在JEM中默认设置为3。然后推导每个子CU的MV值。
[0208]
[0209] 如图21所示,通过沿当前CU的运动轨迹在两个不同的参考图片中找到两个块之间最接近的匹配,使用双边匹配来推导当前CU的运动信息。在连续运动轨迹假设下,指向两个参考块的运动矢量MV0和MV1应与当前图片和两个参考图片之间的时间距离(即,TD0和TD1)成正比。作为特殊情况,当当前图片暂时位于两个参考图片之间并且当前图片到两个参考图片的时间距离相同时,双边匹配成为基于镜像的双向MV。
[0210] 如图22所示,通过在当前图片中的模板(当前CU的顶部和/或左侧相邻块)和参考图片中的块(与模板尺寸相同)之间找到最接近的匹配,使用模板匹配来推导当前CU的运动信息。除了上述的FRUC Merge模式外,模板匹配也应用于AMVP模式。在JEM中,正如在HEVC中一样,AMVP有两个候选。利用模板匹配方法,推导了新的候选。如果由模板匹配新推导的候选与第一个现有AMVP候选不同,则将其插入AMVP候选列表的最开始处,并且然后将列表尺寸设置为2(即移除第二个现有AMVP候选)。当应用于AMVP模式时,仅应用CU级搜索。
[0211] 2.3.3.1CU级MV候选集
[0212] CU级的MV候选集包括:
[0213] (i)原始AMVP候选,如果当前CU处于AMVP模式,
[0214] (ii)所有Merge候选,
[0215] (iii)插值MV场中的几个MV。
[0216] (iv)顶部和左侧相邻运动矢量
[0217] 当使用双边匹配时,Merge候选的每个有效MV用作输入,以生成假设为双边匹配的MV对。例如,Merge候选在参考列表A处的一个有效MV为(MVa,refa)。然后在另一个参考列表B中找到其配对的双边MV的参考图片refb,以便refa和refb在时间上位于当前图片的不同侧。如果参考列表B中的参考refb不可用,则将参考refb确定为与参考refa不同的参考,并且其到当前图片的时间距离是列表B中的最小距离。确定参考refb后,通过基于当前图片和参考refa、参考refb之间的时间距离缩放MVa推导MVb。
[0218] 还将来自插值MV场中的四个MV添加到CU级候选列表中。更具体地,添加当前CU的位置(0,0),(W/2,0),(0,H/2)和(W/2,H/2)处插值的MV。
[0219] 当在AMVP模式下应用FRUC时,原始的AMVP候选也添加到CU级的MV候选集。
[0220] 在CU级,可以将AMVP CU的最多15个MV和Merge CU的最多13个MV添加到候选列表中。
[0221] 2.3.3.2子CU级MV候选集
[0222] 在子CU级设置的MV候选包括:
[0223] (i)从CU级搜索确定的MV,
[0224] (ii)顶部、左侧、左上方和右上方相邻的MV,
[0225] (iii)来自参考图片的共位MV的缩放版本,
[0226] (iv)最多4个ATMVP候选,
[0227] (v)最多4个STMVP候选。
[0228] 来自参考图片的缩放MV推导如下。两个列表中的所有参考图片都被遍历。参考图片中子CU的共位位置处的MV被缩放为起始CU级MV的参考。
[0229] ATMVP和STMVP候选被限制为前四个。
[0230] 在子CU级,最多17个MV被添加到候选列表中。
[0231] 2.3.3.3插值MV场的生成
[0232] 在对帧进行编码之前,基于单向ME生成整个图片的内插运动场。然后,该运动场可以随后用作CU级或子CU级的MV候选。
[0233] 首先,两个参考列表中每个参考图片的运动场在4×4的块级别上被遍历。对于每个4×4块,如果与块相关联的运动通过当前图片中的4×4块(如图23所示),并且该块没有被分配任何内插运动,则根据时间距离TD0和TD1将参考块的运动缩放到当前图片(与HEVC中TMVP的MV缩放相同),并且在当前帧中将该缩放运动指定给该块。如果没有缩放的MV指定给4×4块,则在插值运动场中将块的运动标记为不可用。
[0234] 2.3.3.4插补匹配成本
[0235] 当运动矢量指向分数采样位置时,需要运动补偿插值。为了降低复杂度,对双边匹配和模板匹配都使用双线性插值而不是常规的8抽头HEVC插值。
[0236] 匹配成本的计算在不同的步骤处有点不同。当从CU级的候选集中选择候选时,匹配成本是双边匹配或模板匹配的绝对和差(SAD)。在确定起始MV后,双边匹配在子CU级搜索的匹配成本C计算如下:
[0237]
[0238] 这里,w是权重系数,被经验地设置为4。MV和MVs分别指示当前MV和起始MV。仍然将SAD用作模式匹配在子CU级搜索的匹配成本。
[0239] 在FRUC模式下,MV通过仅使用亮度样本推导。推导的运动将用于亮度和色度的MC帧间预测。确定MV后,对亮度使用8抽头(8-taps)插值滤波器并且对色度使用4抽头(4-taps)插值滤波器执行最终MC。
[0240] 2.3.3.5MV细化
[0241] MV细化是基于模式的MV搜索,以双边成本或模板匹配成本为标准。在JEM中,支持两种搜索模式—无限制中心偏置菱形搜索(UCBDS)和自适应交叉搜索,分别在CU级别和子CU级别进行MV细化。对于CU级和子CU级的MV细化,都在四分之一亮度样本精度下直接搜索MV,接着是八分之一亮度样本MV细化。将CU和子CU步骤的MV细化的搜索范围设置为8个亮度样本。
[0242] 2.3.3.6模板匹配FRUC Merge模式下预测方向的选择
[0243] 在双边Merge模式下,总是应用双向预测,因为CU的运动信息是在两个不同的参考图片中基于当前CU运动轨迹上两个块之间的最近匹配得出的。模板匹配Merge模式没有这种限定。在模板匹配Merge模式下,编码器可以从列表0的单向预测、列表1的单向预测或者双向预测中为CU做出选择。该选择基于如下的模板匹配成本:
[0244] 如果costBi<=factor*min(cost0,cost1)
[0245] 则使用双向预测;
[0246] 否则,如果cost0<=cost1
[0247] 则使用列表0中的单向预测;
[0248] 否则,
[0249] 使用列表1中的单向预测;
[0250] 其中cost0是列表0模板匹配的SAD,cost1是列表2模板匹配的SAD,并且costBi是双向预测模板匹配的SAD。factor的值等于1.25,意味着选择处理朝双向预测偏移。帧间预测方向选择可以仅应用于CU级模板匹配处理。
[0251] 2.3.4解码器侧运动矢量细化
[0252] 在双向预测操作中,对于一个块区域的预测,将两个分别由列表0的运动矢量(MV)和列表1的MV形成的预测块组合形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,通过双边模板匹配处理进一步细化双向预测的两个运动矢量。解码器中应用的双边模板匹配用于在双边模板和参考图片中的重建样本之间执行基于失真的搜索,以便在不传输附加运动信息的情况下获得细化的MV。
[0253] 在DMVR中,双边模板被生成为两个预测块的加权组合(即平均),其中两个预测块分别来自列表0的初始MV0和列表1的MV1。模板匹配操作包括计算生成的模板与参考图片中的样本区域(在初始预测块周围)之间的成本度量。对于两个参考图片中的每一个,产生最小模板成本的MV被视为该列表的更新MV,以替换原始MV。在JEM中,为每个列表搜索九个MV候选。九个MV候选包括原始MV和8个周边MV,这八个周边MV在水平或垂直方向上或两者与原始MV具有一个亮度样本的偏移。最后,使用图24所示的两个新的MV(即MV0′和MV1′)生成最终的双向预测结果。绝对差异之和(SAD)被用作成本度量。
[0254] 在不传输附加语法元素的情况下,将DMVR应用于双向预测的Merge模式,其中一个MV来自过去的参考图片,并且另一个MV来自未来的参考图片。在JEM中,当为CU启用LIC、仿射运动、FRUC或子CU Merge候选时,不应用DMVR。
[0255] 2.3.5具有双向匹配细化的Merge/跳过模式
[0256] 首先通过利用冗余检查将空间相邻和时间相邻块的运动矢量和参考索引插入候选列表中来构造Merge候选列表,直到可用候选的数量达到最大候选尺寸19。通过根据预定义的插入顺序,在插入空间候选(图11)、时间候选、仿射候选、高级时间MVP(Advanced Temporal MVP,ATMVP)候选、时空MVP(Spatial Temporal,STMVP)候选和HEVC中使用的附加候选(组合候选和零候选)来构造Merge/跳过模式的Merge候选列表:
[0257] -块1-4的空间候选
[0258] -块1-4的外推(extrapolated)仿射候选
[0259] -ATMVP
[0260] -STMVP
[0261] -虚拟仿射候选
[0262] -空间候选(块5)(仅当可用候选的数量小于6时使用)
[0263] -外推仿射候选(块5)
[0264] -时间候选(如在HEVC中推导的)
[0265] -非邻近空间候选,其后是外推仿射候选(块6至49,如图25所示)
[0266] -组合候选
[0267] -零候选
[0268] 注意到,除了STMVP和仿射之外,IC标志也从Merge候选继承。而且,对于前四个空间候选,在具有单向预测的候选之前插入双向预测候选。
[0269] 在一些实现方案中,可以访问未与当前块连接的块。如果以非帧内模式对非邻近块编码,则可以添加相关联的运动信息作为附加Merge候选。
[0270] 2.3.6用于运动矢量预测的查找表
[0271] 在基于历史的MVP(HMVP)(例如,如JVET-K0104中所提出)方法中,HMVP候选可以用作先前编码的块的运动信息。在编码/解码过程期间,保持具有多个HMVP候选的表。
[0272] 如上文提到的IDF中所描述的,HMVP可以以若干方式用于运动预测。
[0273] 2.3.7JVET-K0248中的广义双向预测(GBI)
[0274] 在此提案(contribution)中,提出GBi以允许将不同的权重应用于来自L0和L1的预测器。预测器生成如下所示。
[0275] PGBi=((1-w1)*PL0+w1*PL1+RoundingOffsetGBi)>>shiftNumGBi,
[0276] 随机访问(RA)条件下的真实双向预测情况的权重。
[0277]GBi索引 w1的权重值 GBi索引的二进制化
0 3/8 00
1 1/2 1
2 5/8 01
[0278] 广义双向预测中的权重
[0279]GBi素引 W1的权重值 GBi素引的二进制化
  -1/4 0000
  3/8 001
  1/2  
  5/8 01
  5/4 0001
[0280] 对于高级运动矢量预测(AMVP)模式,如果通过双向预测对CU进行编码,则在CU级显式地信令通知GBi中的权重选择。对于Merge模式,权重选择从Merge候选继承。在此提议中,GBi支持DMVR以生成模板的加权平均值以及BMS-1.0的最终预测。
[0281] 2.3.8JVET-K0532中的非子块STMVP
[0282] 在本提议中,没有提出子块STMVP作为空间-时间Merge模式。所提出的方法使用共位块,其与HEVC/JEM(仅1个图片,此处没有时间矢量)相同。所提出的方法还检查上部和左侧空间位置,该位置在该提议中被调节。具体地,为了检查相邻的帧间预测信息,对于每个上方和左侧检查最多两个位置。来自上方行的Amid、Afar和来自左侧列的Lfar和Lmid(如图26中所描绘的)的确切的位置如下所示。
[0283] Afar:(nPbW*5/2,-1),Amid(nPbW/2,-1)
[0284] Lfar:(-1,nPbH*5/2),Lmid(-1,nPbH/2)
[0285] 上方块、左侧块和时间块的运动矢量的平均值的计算与BMS软件实现方式相同。如果3个参考帧间预测块可用,分别用(mvLX_A[0],mvLX_A[1]),(mvLX_L[0],mvLX_L[1])和(mvLX_C[0],mvLX_C[1])表示相关联的MV,用(mvLX[0],mvLX[1])表示最终预测。
[0286] mvLX[0]=((mvLX_A[0]+mvLX_L[0]+mvLX_C[0])*43)/128
[0287] mvLX[1]=((mvLX_A[1]+mvLX_L[1]+mvLX_C[1])*43)/128
[0288] 如果仅有两个或一个帧间预测块可用,则使用两个的平均值或者仅使用一个mv。
[0289] mvLX[0]=(mvLX_D[0]+mvLX_E[0])/2
[0290] mvLX[1]=(mvLX_D[1]+mvLX_E[1])/2
[0291] 2.3.9JVET-K0135中的MV平面
[0292] 为了生成平滑的细粒度运动场,图27给出了平面运动矢量预测过程的简要描述。
[0293] 通过如下在4×4块的基础上对水平和垂直线性插值求平均,来实现平面运动矢量预测。
[0294] P(x,y)=(H×Ph(x,y)+W×Pv(x,y)+H×W)/(2×H×W)
[0295] W和H表示块的宽度和高度。(x,y)是当前子块相对于左上角子块的坐标。所有距离由像素距离除以4表示。P(x,y)是当前子块的运动矢量。
[0296] 位置(x,y)的水平预测Ph(x,y)和垂直预测Ph(x,y)计算如下:
[0297] Ph(x,y)=(W-1-x)×L(-1,y)+(x+1)×R(W,y)
[0298] Pv(x,y)=(H-1-y)×A(x,-1)+(y+1)×B(x,H)
[0299] 其中L(-1,y)和R(W,y)是当前块左侧和右侧的4x4块的运动矢量。A(x,-1)和B(x,H)是当前块上方和底部的4x4块的运动矢量。
[0300] 从当前块的空间相邻块推导出左侧列和上方行相邻块的参考运动信息。
[0301] 右侧列和底部行相邻块的参考运动信息如下推导出。
[0302] -推导右下方时间相邻4×4块的运动信息
[0303] -使用推导出的右下方相邻4×4块的运动信息以及右上方相邻4×4块的运动信息,来计算右侧列相邻4×4块的运动矢量,如以下公式中所描述。
[0304] R(W,y)=((H-y-1)×AR+(y+1)×BR)/H
[0305] -使用推导出的右下方相邻4×4块的运动信息以及左下方相邻4×4块的运动信息,来计算底部行相邻4×4块的运动矢量,如以下公式中所描述。
[0306] B(x,H)=((W-x-1)×BL+(x+1)×BR)/W
[0307] 其中AR是右上方空间相邻4×4块的运动矢量,BR是右下方时间相邻4×4块的运动矢量,并且BL是左下方空间相邻4×4块的运动矢量。
[0308] 对于每个列表从相邻块获得的运动信息被缩放到给定列表的第一参考图片。
[0309] 2.3.10JVET-K0245中的成对平均候选
[0310] 通过对当前Merge候选列表中的预定候选对进行平均,来生成成对平均候选,并且将预定的对定义为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中数字表示Merge候选列表的Merge索引。对每个参考列表分别计算平均运动矢量;如果两个MV在一个列表中均可用,则具有较大Merge索引的MV被缩放到具有较小Merge索引的Merge候选的参考图片;如果只有一个MV可用,则直接使用MV;如果没有可用的MV,则保持此列表无效。成对平均候选替换来自HEVC的组合候选。
[0311] 3.通过本文公开的实施例解决的问题的示例
[0312] HMVP的设计可以带来显著的编码增益。然而,由于以下修剪阶段,复杂性有所增加:
[0313] 阶段1:当将HMVP候选插入查找表时,可以应用修剪以在查找表中移除相同的候选。
[0314] 阶段2:当将HMVP候选插入AMVP或Merge候选列表时,可能需要将运动矢量与AMVP候选列表中的可用MV进行比较,或者需要将运动信息与Merge列表中的可用Merge候选进行比较。
[0315] 在又一示例中,在HEVC或当前VVC设计中,在检查来自空间或时间相邻块的运动信息之后,Merge列表大小未满的可能性很高。也就是说,在插入空间Merge候选、ATMVP(VVC中)和时间Merge候选之后,插入组合的双向预测Merge候选和零运动矢量候选的可能性仍然很高。在使用HMVP候选之后,可以改变这种情况。
[0316] 有越来越多的Merge候选(非子块STMVP、mv平面)出现。如何将它们与HMVP组合是值得研究的问题。
[0317] 当启用广义双向预测时,如何与HMVP候选协作是未知的。
[0318] 4.一些示例
[0319] 以下示例应被视为解释一般概念的示例。不应以狭窄的方式解释这些示例。此外,这些实例可以以任何方式组合。
[0320] 技术1:HMVP的复杂性降低
[0321] 1.提出当用单向预测来对块编码(code)时,不需要更新HMVP候选的查找表。
[0322] a.当使用双向预测对块编码时,可以将相关联的运动信息添加到查找表中,作为附加的HMVP候选。
[0323] b.或者,即使用单向预测对一个块编码,如果用多个假设(例如,多于一个参考图片被用于运动补偿)对其编码,则这种运动信息也可用于更新查找表。
[0324] 2.提出当用广义双向预测模式对块编码时,只有运动信息(参考图片信息、运动矢量)可以存储在查找表中。
[0325] a.在一个示例中,不存储相关联的权重(即,w1)并且将其推断为1/2。
[0326] b.在一个示例中,不存储相关联的权重(即,w1)并且将其推断为(1<<(shiftNumGBi-1))。
[0327] c.或者,相关联的权重也可以存储在查找表中。在这种情况下,对于HMVP候选,它还将包括权重信息。
[0328] 3.提出减少为生成组合的双向预测Merge候选而要检查的对的数目。
[0329] a.要检查的对的数目从12减少到N,其中N是整数值。
[0330] b.在一个示例中,要检查的对的数目被设置为等于(m*(m-1)),其中m小于4。
[0331] c.在一个示例中,要检查的对的数目取决于在添加组合的双向预测Merge候选之前有多少Merge候选可用。
[0332] 4.提出存储在查找表中的HMVP候选与较低的运动矢量精度相关联。
[0333] a.如果我们用K比特(例如,HEVC中的16比特)表示解码器图片缓存器中的MV存储精度,则将查找表中存储的MV的精度设置为L,其中L小于K(例如,L是8,10,12,14)。
[0334] b.在这种情况下,当将HMVP候选的运动信息与其他运动候选进行比较时,可能首先需要对准运动矢量精度。
[0335] i.在一个示例中,HMVP候选的MV可以被缩放(1<<(K-L))。
[0336] 5.提出仅将参考某些参考图片(例如每个参考列表的参考索引等于0的参考图片)的运动矢量添加到查找表中。在这种情况下,不需要存储参考图片信息(例如,不存储参考图片索引)
[0337] a.可选的,在放入查找表之前,将不参考某些参考图片的运动矢量缩放到参考图片。
[0338] b.可以预定义“某些参考图片”。可选的,可以信令通知“某些参考图片”的索引。
[0339] 6.在一个示例中,使用一个或多个哈希表在候选之间进行修剪。
[0340] 技术2:HMVP的进一步编码性能
[0341] 7.可以从某些类型的Merge候选生成组合的双向预测Merge候选。对于其他类型的Merge候选,不允许将其用于生成组合的双向预测Merge候选。
[0342] a.在一个示例中,不允许将HMVP候选用于组合的双向预测Merge候选生成。
[0343] b.在一个示例中,不允许将子块运动候选(例如,ATMVP)用于组合的双向预测Merge候选生成。
[0344] 8.当HMVP与权重信息相关联(例如,启用GBI)时,可以从一个HMVP候选生成多个Merge候选。
[0345] a.在一个示例中,可以在潜在的修剪操作之后,直接将HMVP候选添加为Merge候选。
[0346] b.在一个示例中,可以使用HMVP候选的相同运动信息,并且可以分配不同的权重。
[0347] c.从一个HMVP候选生成多少Merge候选(例如,具有不同权重)可以取决于允许的权重的数量。
[0348] d.从一个HMVP候选生成多少Merge候选(例如,具有不同权重)可以取决于与HMVP候选相关联的权重。
[0349] i.在一个示例中,可以生成多至两个候选,一个具有与HMVP候选相关联的精确权重,而另一个候选具有对于两个参考图片列表的相等权重。
[0350] e.从一个HMVP候选生成多少Merge候选(例如,具有不同的权重)可以取决于在添加HMVP之前的可用运动候选的数量。
[0351] 9.当启用STMVP(基于子块或基于非子块)时,可以在STMVP之后添加HMVP候选。
[0352] a.可选的,可以在STMVP之前添加HMVP候选。
[0353] b.可选的,可以以与STMVP交织的方式添加HMVP候选,例如,可以在STMVP之前添加部分HMVP候选,并且可以在STMVP之后添加部分HMVP候选。
[0354] 10.当启用成对平均候选(PAC)时,可以在PAC之前添加HMVP候选。
[0355] a.可选的,可以在PAC之前添加HMVP候选。
[0356] b.可选的,可以以与PAC交织的方式添加HMVP候选,例如,可以在PAC之前添加部分HMVP候选,并且可以在PAC之后添加部分HMVP,或一个HMVP和一个PAC,等等;或一个PAC和一个HMVP,依此类推。
[0357] c.在一个示例中,可以不允许HMVP候选推导PAC。
[0358] 11.当将仿射运动候选放入不同的候选列表(不同于传统的Merge候选列表)时,可以在与相邻块直接相关联的仿射运动候选之后添加HMVP候选。
[0359] a.可选的,可以在从相邻块生成的仿射运动候选之后添加HMVP候选。
[0360] b.可选的,可以恰好在默认仿射运动候选(例如,零运动候选)之前添加HMVP候选。
[0361] c.可选的,可以以交织的方式添加HMVP候选,例如,一些在仿射运动候选之前,一些在仿射运动候选之后。
[0362] d.可以以灵活的方式将HMVP候选添加到仿射运动候选列表,即,块到块是不同的。
[0363] 5.实施例的附加示例
[0364] 实施例#1
[0365] 提出了基于历史的MVP(HMVP)方法,其中HMVP候选被定义为先前编码的块的运动信息。在编码/解码过程期间,保持具有多个HMVP候选的表。当遇到新的条带时,该表被清空。每当存在帧间编码的非仿射块时,将相关联的运动信息添加到表的最后一个条目,作为新的HMVP候选。整个编码流程在图31中描绘。
[0366] 图32示出了HMVP表更新的示例实现方式。表尺寸S被设置为6,这表示可以向表中添加多至6个HMVP候选。当向表中插入新的运动候选时,使用约束FIFO规则,其中首先应用冗余检查以查找表中是否存在相同的HMVP。如果找到,则从表中移除相同的HMVP,然后移动之后所有的HMVP候选,即,索引减少1。
[0367] HMVP候选可以用在Merge候选列表构建过程中。按顺序对表中的最新几个HMVP候选检查,并在TMVP候选之后将其插入候选列表。对HMVP候选应用与除了子块运动候选(即,ATMVP)之外的空间或时间Merge候选的修剪。
[0368] 为了减少修剪操作的数量,引入了三种简化:
[0369] 1)由L表示的要检查的HMPV候选的数量设置如下:
[0370] L=(N<=4)?M:(8-N)
[0371] 其中N表示可用的非子块Merge候选的数量,且M表示表中的可用HMVP候选的数量。
[0372] 2)另外,一旦可用Merge候选的总数量达到信令通知的最大允许Merge候选减1,则Merge候选列表构建过程终止。
[0373] 3)此外,组合的双向预测Merge候选推导的对的数量从12减少到6。
[0374] 类似地,HMVP候选也可以用在AMVP候选列表构建过程中。在TMVP候选之后,插入表中的最后K个HMVP候选的运动矢量。仅使用具有与AMVP目标参考图片相同的参考图片的HMVP候选,来构建AMVP候选列表。将修剪应用于HMVP候选。在此提案中,K设置为4。
[0375] 实施例#2
[0376] Merge列表推导过程的一些示例如下给出:
[0377] 1)空间Merge候选+ATMVP(ATMVP可以与空间Merge候选交织插入)->TMVP->HMVP->其他(例如,组合的双向预测Merge候选、零运动矢量候选)
[0378] 2)空间Merge候选+ATMVP+STMVP(ATMVP和STMVP可以与空间Merge候选交织插入,STMVP可以在TMVP恰好之前或之后插入)->TMVP->HMVP->其他(例如,组合的双向预测Merge候选、零运动矢量候选)
[0379] 3)空间Merge候选+ATMVP(ATMVP可以与空间Merge候选交织插入)->TMVP->HMVP->成对平均候选->其他(例如,组合的双向预测Merge候选、零运动矢量候选)
[0380] 4)空间Merge候选+ATMVP(ATMVP可以与空间Merge候选交织插入)->TMVP->成对平均候选->HMVP->其他(例如,组合的双向预测Merge候选、零运动矢量候选)
[0381] 5)空间Merge候选+ATMVP+STMVP(ATMVP和STMVP可以与空间Merge候选交织插入,STMVP可以在TMVP恰好之前或之后插入)->TMVP->HMVP->成对平均候选->其他(例如,组合双向预测Merge候选、零运动矢量候选)
[0382] 图28是视频处理装置2800的框图。装置2800可用于实现本文描述的一个或多个方法。装置2800可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2800可以包括一个或多个处理器2802、一个或多个存储器2804和视频处理硬件2806。处理器(多个处理器)2802可以被配置为实现本文档中描述的一个或多个方法。存储器(多个存储器)2804可以用于存储用于实现这里描述的方法和技术的数据和代码。视频处理硬件2806可用于在硬件电路中实现本文档中描述的一些技术。
[0383] 图29示出了视频处理的示例方法2900的流程图。方法2900包括使用(2902)基于历史的运动矢量预测(HMVP),在包括视频的当前块的多个视频块与所述多个视频块的比特流表示之间进行转换,使得对于使用单个参考图片进行运动补偿的单向预测块,避免(2904)更新该单向预测块的HMVP候选的查找表,以及使用查找表执行(2906)所述多个视频块的转换。
[0384] 图30示出了视频处理的示例方法3000的流程图。方法3000包括使用广义双向预测模式,使用查找表执行(3002)视频的当前块与该当前块的比特流表示之间的转换,并且仅使用当前块的参考图片信息和运动矢量来更新(3004)查找表。
[0385] 图33是视频处理的示例方法3300的流程图。方法3300包括使用广义双向预测模式,使用查找表执行(3302)视频的当前块与该当前块的比特流表示之间的转换,以及使用当前块的参考图片信息、相关联的权重和运动矢量来更新(3304)查找表。这里,当前块的基于历史的运动矢量预测候选也使用相关联的权重。
[0386] 另一示例视频处理方法包括使用基于历史的运动矢量预测查找表来执行视频的当前块与当前块的比特流表示之间的转换,在该表中,通过比较N对运动矢量来生成组合的双向预测Merge候选,其中N小于12。
[0387] 图34是视频处理的示例方法3400的流程图。方法3400包括使用(3402)基于历史的运动矢量预测(HMVP)在包括视频的当前块的多个视频块和所述多个视频块的比特流表示之间进行转换,使用比查找表中的其他候选的精度低的精度来将HMVP候选存储(3404)在查找表中,以及使用HMVP候选执行(3406)转换。
[0388] 图35示出了视频处理的示例方法3500的流程图。方法3500包括使用(3502)基于历史的运动矢量预测(HMVP)在视频的当前块与该当前块的比特流表示之间进行转换,基于HMVP候选所参考的参考图片的条件将HMVP候选存储(3504)在查找表中,以及使用存储在查找表中的HMVP候选执行(3506)转换。
[0389] 可以使用以下基于条款的描述来描述上述和其他技术。
[0390] 1.一种视频处理方法,包括:使用基于历史的运动矢量预测(HMVP),在包括视频的当前块的多个视频块和所述多个视频块的比特流表示之间进行转换,使得:对于使用单个参考图片进行运动补偿的单向预测块,避免更新该单向预测块的HMVP候选的查找表;以及使用查找表执行所述多个视频块的所述转换。例如,可以使用基于单个预测方向的预测来压缩单向预测块。
[0391] 2.如条款1所述的方法,还包括:对于双向预测块,将对应的运动信息添加到该双向预测块的查找表,作为附加的HMVP候选。例如,可以使用在两个时间方向上(之前和之后)的参考图片来预测双向预测块。
[0392] 3.如条款1或2所述的方法,还包括:对于使用多个参考图片进行运动补偿的单向预测块,用其运动信息更新对应的查找表。
[0393] 4.一种视频处理方法,包括:使用广义双向预测模式,使用查找表执行视频的当前块与当前块的比特流表示之间的转换;以及仅使用当前块的参考图片信息和运动矢量来更新查找表。
[0394] 5.如条款4所述的方法,还包括对于与参考图片信息中参考的参考图片相对应的权重,使用1/2的预定值。
[0395] 6.如条款4所述的方法,还包括使用从比特流表示中的其他块的编码继承的权重。
[0396] 7.一种视频处理方法,包括:使用广义双向预测模式,使用查找表执行视频的当前块与该当前块的比特流表示之间的转换;以及使用当前块的参考图片信息、相关联的权重和运动矢量来更新查找表;其中,当前块的基于历史的运动矢量预测候选也使用相关联的权重。
[0397] 8.一种视频处理方法,包括:使用基于历史的运动矢量预测查找表,执行视频的当前块与该当前块的比特流表示之间的转换,在所述基于历史的运动矢量预测查找表中,通过比较N对运动矢量来生成组合的双向预测Merge候选,其中N小于12。
[0398] 9.如条款8所述的方法,其中N等于m*(m-1),其中m是小于4的整数。
[0399] 10.如条款8所述的方法,其中,N取决于在将所述组合的双向预测Merge候选添加到查找表之前可用Merge候选的数量。
[0400] 11.一种视频处理方法,包括:使用基于历史的运动矢量预测(HMVP),在包括视频的当前块的多个视频块和所述多个视频块的比特流表示之间进行转换;使用比查找表中的其他候选的精度低的精度,将HMVP候选存储在查找表中;以及使用HMVP候选执行所述转换。
[0401] 12.如条款11所述的方法,还包括:通过在比较之前缩放HMVP候选来将HMVP候选与其他候选比较。
[0402] 13.一种视频处理方法,包括:使用基于历史的运动矢量预测(HMVP),在视频的当前块和该当前块的比特流表示之间进行转换;基于HMVP候选所参考的参考图片的条件,将HMVP候选存储在查找表中;以及使用存储在查找表中的HMVP候选进行所述转换。
[0403] 14.如条款13所述的方法,其中,仅将参考某些参考图片的HMVP候选存储在查找表中,从而避免需要将参考图片索引信息存储在查找表中。
[0404] 15.如条款14所述的方法,其中,在比特流表示中预先定义或信令通知所述某些参考图片。
[0405] 16.如条款13所述的方法,还包括:在存储在查找表中之前缩放HMVP候选。
[0406] 17.如条款1至16中任一项所述的方法,其中,候选的修剪使用基于哈希表的修剪。
[0407] 18.如条款1至17中任一项所述的方法,其中,所述转换还使用组合的双向预测Merge候选,所述组合的双向预测Merge候选仅使用某种类型的Merge候选生成。
[0408] 19.如条款18所述的方法,其中,所述某种类型的Merge候选排除HMVP候选。
[0409] 20.如条款18所述的方法,其中,所述某种类型的Merge候选排除高级时间运动矢量预测。
[0410] 21.如条款18所述的方法,其中,具有相关联的权重信息的HMVP候选用于生成多个Merge候选。
[0411] 22.如条款21所述的方法,其中,所述HMVP候选被用作用于所述转换的Merge候选。
[0412] 23.如条款21或22所述的方法,其中从HMVP候选生成的Merge候选的数量等于允许的权重的数量。
[0413] 24.如条款1至23所述的方法,其中在将当前块的时空运动矢量预测添加到列表之后,将HMVP候选添加到Merge列表。
[0414] 25.如条款1至23所述的方法,其中通过在当前块的时空运动矢量预测之间交织,将HMVP候选添加到Merge列表。
[0415] 26.如条款1至23所述的方法,其中在将当前块的成对平均候选添加到列表之前,将HMVP候选添加到Merge列表。
[0416] 27.如条款1至23所述的方法,其中通过在当前块的成对平均候选之间交织,将HMVP候选添加到Merge列表。
[0417] 28.如条款1至23所述的方法,其中,所述转换还使用仿射运动候选的候选列表,并且其中,在仿射运动候选的候选列表的仿射运动候选之后添加HMVP候选。
[0418] 29.如条款1至23所述的方法,其中,所述转换还使用仿射运动候选的候选列表,并且其中,在从当前块的相邻块生成的仿射运动候选之后添加HMVP候选。
[0419] 30.如条款1至23所述的方法,其中,所述转换还使用仿射运动候选的候选列表,并且其中,所述HMVP候选与从当前块的相邻块生成的仿射运动候选交织。
[0420] 31.如条款1至30中任一项所述的方法,其中,所述转换包括将当前块压缩为比特流表示。
[0421] 32.如条款1至30中任一项所述的方法,其中,所述转换包括将比特流表示解压缩为当前块。
[0422] 33.一种视频编码器装置,包括处理器,该处理器被配置为实现条款1至32中任一项或多项所述的方法。
[0423] 34.一种视频解码器装置,包括处理器,该处理器被配置为实现条款1至32中任一项或多项所述的方法。
[0424] 35.一种计算机可读介质,其上存储有代码,该代码包括使处理器实现条款1至32中任一项或多项所述的方法的指令。
[0425] 图36是示出示例视频处理系统3600的框图,其中可以实现本文公开的各种技术。各种实现方式可以包括系统3600的一些或所有部件。系统3600可以包括用于接收视频内容的输入3602。视频内容可以以原始或未压缩格式接收,例如8或10比特多分量像素值,或者可以以压缩或编码格式接收。输入3602可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
[0426] 系统3600可以包括编码部件3604,其可以实现本文档中描述的各种编码方法。编码部件3604可以减小从输入3602到编码部件3604的输出的视频的平均比特率,以产生视频的编码表示。因此,编码技术有时被称为视频压缩或视频转码技术。编码部件3604的输出可以存储,或者经由如部件3606所表示的已连接的通信来发送。在输入3602处接收的视频的经存储或传送的比特流(或编码)表示可以由部件3608使用,以生成发送到显示接口3610的像素值或可显示视频。从比特流表示生成用户可观看视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编码(coding)”操作或工具,但是应当理解,编码工具或操作在编码器处使用,并且相应的反转编码的结果的解码工具或操作将由解码器执行。
[0427] 外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或Displayport等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话或能够执行数字数据处理和/或视频显示的其他设备。
[0428] 图37是视频处理的示例方法3700的流程图。该流程图的步骤可以与本文档第4节中描述的示例1相关联。方法3700包括在包括多个块的视频的视频块与该视频的比特流表示之间的转换之后,通过用于该转换的预测方向,确定(3702)是否满足一个或多个基于历史的运动矢量预测(HMVP)表的更新规则;以及基于该确定来选择性地更新(3704)所述一个或多个HMVP表。
[0429] 图38是视频处理的示例方法3800的流程图。该流程图的步骤可以与本文档第4节中描述的示例4相关联。方法3800包括基于与视频的块相关联的运动信息,保持(3802)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表,其中使用第一运动信息精度来存储HMVP候选,所述第一运动信息精度低于未被存储在所述一个或多个表中的运动候选所使用的第二运动信息精度,以及在该视频的当前块和该当前块的编码表示之间执行(3804)转换,其中在所述转换期间使用所述一个或多个表。
[0430] 图39是视频处理的示例方法3900的流程图。该流程图的步骤可以与本文档第4节中描述的示例5相关联。方法3900包括基于与视频的块相关联的运动信息,保持(3902)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表,其中根据至少基于所述HMVP候选所参考的参考图片的条件的规则来存储所述一个或多个表中的HMVP候选;以及执行(3904)该视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表。
[0431] 图40是视频处理的示例方法4000的流程图。该流程图的步骤可以与本文档第4节中描述的示例6相关联。方法3700包括基于与视频的块相关联的运动信息,保持(4002)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;在该视频的当前块与该当前块的编码表示之间执行(4004)转换;从所述一个或多个表中的HMVP候选中选择(4006)HMVP候选;使用应用于所述HMVP候选以及该视频的当前块的运动信息的基于哈希表的修剪,更新(4008)所述一个或多个表。
[0432] 图41是视频处理的示例方法4100的流程图。该流程图的步骤可以与本文档第4节中描述的示例2相关联。方法4100包括基于与视频的块相关联的运动信息,保持(4102)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及使用广义双向预测(GBi)模式来执行(4104)该视频的当前块与该当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及仅使用当前块的参考图片信息和运动信息来更新(4106)所述一个或多个表,从而排除将当前块的权重存储在所述一个或多个表中。
[0433] 图42是视频处理的示例方法4200的流程图。该流程图的步骤可以与本文档第4节中描述的示例2c相关联。方法4200包括基于与视频的块相关联的运动信息,保持(4202)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;使用广义双向预测(GBi)模式执行(4204)该视频的当前块与该当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及至少用当前块的权重来更新(4206)所述一个或多个表。
[0434] 图43是视频处理的示例方法4300的流程图。该流程图的步骤可以与本文档第4节中描述的示例3相关联。方法4300包括基于与视频的块相关联的运动信息,保持(4302)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及执行(4304)视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的N对运动信息来生成组合的双向预测Merge候选,并且其中N小于12。
[0435] 图44是视频处理的示例方法4400的流程图。该流程图的步骤可以与本文档第4节中描述的示例7相关联。方法4400包括基于与视频的块相关联的运动信息,保持(4402)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及执行(4404)视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的多对运动信息来生成组合的双向预测Merge候选,并且其中仅使用某种类型的Merge候选来生成双向预测Merge候选。
[0436] 图45是视频处理的示例方法4500的流程图。该流程图的步骤可以与本文档第4节中描述的示例8相关联。方法4500包括基于与视频的块相关联的运动信息,保持(4502)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;从HMVP候选生成(4504)多个Merge候选;以及执行(4506)视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所生成的Merge候选。
[0437] 图46是用于视频处理的示例方法4600的流程图。该流程图的步骤可以与本文档第4节中描述的示例9相关联。方法4600包括基于与视频的块相关联的运动信息,保持(4602)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及至少基于当前块的HMVP候选和时空运动矢量预测来构造(4604)运动候选列表;以及执行(4606)视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0438] 图47是视频处理的示例方法4700的流程图。该流程图的步骤可以与本文档第4节中描述的示例10相关联。方法4700包括基于与视频的块相关联的运动信息,保持(4702)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;至少基于当前块的HMVP候选和成对平均候选(PAC)来构造(4704)运动候选列表;以及执行(4706)视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0439] 图48是用于视频处理的示例方法4800的流程图。该流程图的步骤可以与本文档第4节中描述的示例11相关联。方法4800包括基于与视频的块相关联的运动信息,保持(4802)一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;至少基于当前块的HMVP候选和仿射运动候选来构造(4804)运动候选列表;以及执行(4806)视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0440] 现在将以基于条款的格式描述所公开技术的一些实施例。
[0441] 1.一种视频处理方法,包括:在包括多个块的视频的视频块与所述视频的比特流表示之间的转换之后,通过用于所述转换的预测方向,确定是否满足一个或多个基于历史的运动矢量预测(HMVP)表的更新规则;以及
[0442] 基于所述确定来选择性地更新所述一个或多个HMVP表。
[0443] 2.如条款1所述的方法,其中由于所述预测方向是单向,所述更新规则规定跳过对所述一个或多个HMVP表的更新。
[0444] 3.如条款1所述的方法,其中由于所述预测方向是双向预测,所述更新规则规定更新所述一个或多个HMVP表。
[0445] 4.如条款1所述的方法,其中由于所述预测方向是单向并且由于在所述转换期间使用多个参考图片,所述更新规则规定更新所述一个或多个HMVP表。
[0446] 5.如条款4所述的方法,其中所述选择性地更新包括使用所述视频块的多假设运动信息来更新所述一个或多个表。
[0447] 6.一种视频处理方法,包括:
[0448] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表,其中使用第一运动信息精度来存储HMVP候选,所述第一运动信息精度低于未被存储在所述一个或多个表中的运动候选所使用的第二运动信息精度;以及[0449] 在所述视频的当前块和该当前块的编码表示之间执行转换,其中在所述转换期间使用所述一个或多个表。
[0450] 7.如条款6所述的方法,其中,第一运动信息精度是8、10、12或14,并且第二运动信息精度是16。
[0451] 8.如条款6所述的方法,还包括:
[0452] 从HMVP候选中选择HMVP候选;以及
[0453] 根据第二运动信息精度,执行该HMVP候选与存储在运动候选列表中的运动候选的比较。
[0454] 9.如条款8所述的方法,其中,所述比较包括应用比特移位操作。
[0455] 10.如条款9所述的方法,其中所述比特移位操作表示为(1<<(K-L)),其中,K表示第二运动信息精度,且L表示第一运动信息精度。
[0456] 11.如条款8所述的方法,还包括:
[0457] 在确定HMVP候选不同于运动候选时,将HMVP候选添加到运动候选列表。
[0458] 12.一种视频处理方法,包括:
[0459] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表,其中根据至少基于所述HMVP候选所参考的参考图片的条件的规则来存储所述一个或多个表中的HMVP候选;以及
[0460] 执行所述视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表。
[0461] 13.如条款11所述的方法,其中仅将参考某些参考图片的HMVP候选存储在所述一个或多个表中,从而避免需要在所述一个或多个表中存储参考图片索引信息。
[0462] 14.如条款13所述的方法,其中,在所述视频的编码表示中预先定义或信令通知所述某些参考图片。
[0463] 15.如条款14所述的方法,还包括:
[0464] 若确定当前块的运动信息未参考所述某些参考图片,则在将当前块的运动信息存储在所述一个或多个表中之前,将当前块的运动信息缩放到所述某些参考图片中的至少一个。
[0465] 16.一种视频处理方法,包括:
[0466] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
[0467] 在所述视频的当前块与当前块的编码表示之间执行转换;
[0468] 从所述一个或多个表中的HMVP候选中选择HMVP候选;以及
[0469] 使用应用于所述HMVP候选以及该视频的当前块的运动信息的基于哈希表的修剪,更新所述一个或多个表。
[0470] 17.如条款16所述的方法,其中基于哈希表的修剪包括执行所述HMVP候选的哈希值与所述视频的当前块的运动信息的哈希值的比较。
[0471] 18.如条款17所述的方法,还包括:
[0472] 在确定所述HMVP候选的哈希值与所述视频的当前块的运动信息的哈希值相同时,从所述一个或多个表中移除所述HMVP候选。
[0473] 19.一种视频处理的方法,包括:
[0474] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
[0475] 使用广义双向预测(GBi)模式来执行所述视频的当前块与该当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及
[0476] 仅使用当前块的参考图片信息和运动信息来更新所述一个或多个表,从而排除将当前块的权重存储在所述一个或多个表中。
[0477] 20.如条款19所述的方法,其中所述权重基于预定值。
[0478] 21.如条款19所述的方法,其中所述预定值是1/2。
[0479] 22.如条款19所述的方法,其中所述权重基于在所述视频的另一个块与该另一个块的编码表示的转换期间使用的一个或多个HMVP候选。
[0480] 23.一种视频处理方法,包括:
[0481] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
[0482] 使用广义双向预测(GBi)模式执行所述视频的当前块与该当前块的编码表示之间的转换,其中,在GBi模式下,使用双向预测步骤对当前块编码,并且其中,将编码单元(CU)级权重分配给从双向预测步骤生成的预测块;以及
[0483] 至少用当前块的权重来更新所述一个或多个表。
[0484] 24.如条款23所述的方法,还包括:
[0485] 用当前块的运动信息和权重来更新所述一个或多个表。
[0486] 25.如条款24所述的方法,还包括:
[0487] 通过添加当前块的运动信息和权重作为新的HMVP候选,来更新所述一个或多个表。
[0488] 26.如条款23所述的方法,还包括:
[0489] 在所述视频的另一个块与包括该另一个块的视频的编码表示之间执行转换,其中在所述转换期间使用所述一个或多个表。
[0490] 27.如条款23所述的方法,还包括:
[0491] 根据所述一个或多个表中的HMVP候选,在所述视频的另一个块和所述视频的编码表示之间执行转换。
[0492] 28.一种视频处理方法,包括:
[0493] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及
[0494] 执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的N对运动信息来生成组合的双向预测Merge候选,并且其中N小于12。
[0495] 29.如条款28所述的方法,其中N等于m*(m-1),其中m是小于4的整数。
[0496] 30.如条款28所述的方法,其中N取决于在将所述组合的双向预测Merge候选添加到查找表之前可用Merge候选的数量。
[0497] 31.一种视频处理方法,包括:
[0498] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;以及
[0499] 执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述一个或多个表,其中通过比较当前块的多对运动信息来生成组合的双向预测Merge候选,并且其中仅使用某种类型的Merge候选来生成双向预测Merge候选。
[0500] 32.如条款31所述的方法,其中所述某种类型的Merge候选排除HMVP候选。
[0501] 33.如条款31所述的方法,其中所述某种类型的Merge候选排除高级时间运动矢量预测。
[0502] 34.一种视频处理的方法,包括:
[0503] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
[0504] 从HMVP候选生成多个Merge候选;以及
[0505] 执行视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所生成的Merge候选。
[0506] 35.如条款34所述的方法,其中所述HMVP候选用作用于所述转换的Merge候选。
[0507] 36.如条款34所述的方法,其中所述多个Merge候选使用相同的运动信息作为所述HMVP候选的运动信息,并且所述多个Merge候选还使用与所述HMVP候选的权重不同的相关联权重。
[0508] 37.如条款34或35所述的方法,其中从所述HMVP候选生成的Merge候选的数量等于所允许的权重的数量。
[0509] 38.如条款34或35所述的方法,其中从所述HMVP候选生成的Merge候选的数量基于所述HMVP候选的权重。
[0510] 39.如条款38所述的方法,其中至多生成第一Merge候选和第二Merge候选,其中所述第一Merge候选的权重等于所述HMVP候选的权重,且所述第二Merge候选的权重等于所述转换中使用的一对参考图片的权重。
[0511] 40.如条款34或35所述的方法,其中从所述HMVP候选生成的Merge候选的数量基于在将HMVP候选添加到查找表之前可用运动候选的数量。
[0512] 41.一种视频处理的方法,包括:
[0513] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
[0514] 至少基于当前块的HMVP候选和时空运动矢量预测来构造运动候选列表;以及[0515] 执行所述视频的当前块与当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0516] 42.如条款41所述的方法,其中所述运动候选列表是Merge候选列表。
[0517] 43.如条款42所述的方法,还包括:
[0518] 根据规则将HMVP候选添加到Merge候选列表。
[0519] 44.如条款41所述的方法,其中所述规则规定,在当前块的时空运动矢量预测之后添加HMVP候选。
[0520] 45.如条款41所述的方法,其中所述规则规定,在当前块的时空运动矢量预测之前添加HMVP候选。
[0521] 46.如条款41所述的方法,其中所述规则规定,将HMVP候选与当前块的时空运动矢量预测交织,使得一部分HMVP候选在时空运动矢量预测之前添加且另一部分HMVP候选在时空运动矢量预测之后添加。
[0522] 47.如条款41-46中的一项或多项所述的方法,其中,当前块的时空运动矢量预测与当前块的子块相关。
[0523] 48.一种视频处理的方法,包括:
[0524] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
[0525] 至少基于当前块的HMVP候选和成对平均候选(PAC)来构造运动候选列表;以及[0526] 执行所述视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0527] 49.如条款48所述的方法,其中所述运动候选列表是Merge候选列表。
[0528] 50.如条款49所述的方法,还包括:
[0529] 根据规则将HMVP候选添加到Merge候选列表。
[0530] 51.如条款48所述的方法,其中所述规则规定,在当前块的PAC之后添加HMVP候选。
[0531] 52.如条款48所述的方法,其中所述规则规定,在当前块的PAC之前添加HMVP候选。
[0532] 53.如条款48所述的方法,其中所述规则规定,将HMVP候选与当前块的PAC交织,使得一部分HMVP候选在PAC之前添加且另一部分HMVP候选在PAC之后添加。
[0533] 54.如条款48所述的方法,还包括:
[0534] 通过不允许从HMVP候选推导PAC,来执行当前块的转换。
[0535] 55.一种视频处理的方法,包括:
[0536] 基于与视频的块相关联的运动信息,保持一个或多个具有基于历史的运动矢量预测(HMVP)候选的表;
[0537] 至少基于当前块的HMVP候选和仿射运动候选来构造运动候选列表;以及[0538] 执行所述视频的当前块与该当前块的编码表示之间的转换,其中在所述转换期间使用所述运动候选列表。
[0539] 56.如条款55所述的方法,其中所述运动候选列表是Merge候选列表。
[0540] 57.如条款56所述的方法,还包括:
[0541] 根据规则将HMVP候选添加到Merge候选列表。
[0542] 58.如条款55所述的方法,其中所述规则规定,在当前块的仿射运动候选之后添加HMVP候选。
[0543] 59.如条款55所述的方法,其中所述规则规定,在当前块的默认仿射运动候选之前添加HMVP候选。
[0544] 60.如条款55所述的方法,其中所述规则规定,将HMVP候选与当前块的PAC交织,使得一部分HMVP候选在PAC之前添加且另一部分HMVP候选在仿射运动候选之后添加。
[0545] 61.如条款55至条款60中的任一项的方法,其中所述HMVP候选从当前块的相邻块生成。
[0546] 62.如条款55至条款61中的任一项的方法,其中将HMVP候选添加到Merge列表从一个块到另一个块动态地变化。
[0547] 63.一种视频编码器装置,包括处理器,该处理器被配置为实现条款1至62中任一项或多项所述的方法。
[0548] 64.一种视频解码器装置,包括处理器,该处理器被配置为实现条款1至62中任一项或多项所述的方法。
[0549] 65.一种计算机可读介质,其上存储有代码,该代码包括使处理器实现条款1至62中任一项或多项所述的方法的指令。
[0550] 66.如本文所描述的方法、系统或装置。
[0551] 从上述来看,应当理解的是,为了便于说明,本发明公开的技术的具体实施例已经在本文中进行了描述,但是可以在不偏离本发明范围的情况下进行各种修改。因此,除了的之外,本发明公开的技术不限于权利要求的限定。
[0552] 本文中公开的和其他描述的实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文中所公开的结构及其结构等效体,或其中一个或多个的组合。公开的实施例和其他实施例可以实现为一个或多个计算机程序产品,即一个或多个编码在计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播信号是人为产生的信号,例如机器产生的电信号、光学信号或电磁信号,生成这些信号以对信息进行编码,以便传输到适当的接收装置。
[0553] 计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0554] 本文中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程阵列)或ASIC(专用集成电路)。
[0555] 例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光磁盘;以及CDROM和DVD-ROM光盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0556] 虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中删除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0557] 同样,尽管图纸中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0558] 仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈