使用时域邻居的重叠块运动补偿转让专利

申请号 : CN201910791354.5

文献号 : CN110858901A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘鸿彬张莉张凯王悦

申请人 : 北京字节跳动网络技术有限公司字节跳动有限公司

摘要 :

描述了用于数字视频编码的设备、系统和方法,数字视频编码包括基于时域邻居的重叠块运动补偿(OBMC)处理。用于视频处理的示例方法包括:基于至少两个临时预测块的加权和,生成当前视频块的预测块,至少两个临时预测块中的第一个基于与当前视频块相关联的第一运动信息,至少两个临时预测块中的第二个基于与当前视频块的至少一个相邻块相关联的第二运动信息,并且至少一个相邻块包括时域相邻块;以及基于预测块,执行当前视频块与当前视频块的比特流表示之间的转换。

权利要求 :

1.一种用于视频处理的方法,包括:

基于至少两个临时预测块的加权和,生成当前视频块的预测块,其中所述至少两个临时预测块中的第一个基于与所述当前视频块相关联的第一运动信息,其中所述至少两个临时预测块中的第二个基于与所述当前视频块的至少一个相邻块相关联的第二运动信息,并且其中所述至少一个相邻块包括时域相邻块;以及基于所述预测块,执行所述当前视频块与所述当前视频块的比特流表示之间的转换。

2.根据权利要求1所述的方法,其中,所述当前视频块是用基于子块的编码工具编码的,并且其中所述当前视频块的当前子块的最终预测基于至少所述当前子块的时域相邻块的运动信息。

3.根据权利要求1所述的方法,其中,编码所述当前视频块而不使用基于子块的编码工具。

4.根据权利要求1所述的方法,其中,所述当前视频块的子块的子集中的每个子块的最终预测基于所述第二运动信息,并且其中所述子集不包括所述当前视频块的至少一个子块。

5.根据权利要求1所述的方法,其中,执行所述转换还基于与所述当前视频块的至少一个空间相邻块相关联的运动信息的可用性的确定、与所述至少一个空间相邻块相关联的第三运动信息。

6.根据权利要求1所述的方法,其中,所述第一运动信息和所述第二运动信息不是从相同的预测处理中推导出的。

7.根据权利要求1所述的方法,其中,所述时域相邻块位于在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)或条带报头中信令通知的共位图片中。

8.根据权利要求1所述的方法,其中,所述时域相邻块位于预定的参考图片中。

9.根据权利要求8所述的方法,其中,所述预定的参考图片在列表0或列表1中。

10.根据权利要求1所述的方法,其中,所述时域相邻块位于在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)、条带报头或片报头中信令通知的多个参考图片中的一个中。

11.根据权利要求1所述的方法,其中,所述时域相邻块是所选择的参考图片中的共位块。

12.根据权利要求1所述的方法,其中,当前预测单元(PU)或编码单元(CU)包括所述当前视频块,并且其中所述当前PU或CU的运动矢量包括所述时域相邻块的标识。

13.根据权利要求12所述的方法,其中所述运动矢量是缩放运动矢量。

14.根据权利要求1所述的方法,其中,所述当前预测单元(PU)或编码单元(CU)包括所述当前视频块,其中所述当前PU或CU的运动矢量被缩放到所述当前PU或CU的第一参考图片,并且其中所述时域相邻块的运动矢量被缩放到所述第一参考图片。

15.根据权利要求1所述的方法,其中,所述至少一个相邻块的运动矢量被缩放到预定的参考图片。

16.根据权利要求15所述的方法,其中所述预定的参考图片是列表0或列表1中的第一个参考图片。

17.根据权利要求12所述的方法,其中,所述时域相邻块的运动矢量被缩放到在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)、或条带报头中信令通知的多个参考图片中的一个。

18.一种用于视频处理的方法,包括:

基于至少两个临时预测块的加权和,生成当前视频块的预测块,其中所述至少两个临时预测块中的第一个临时预测块基于与所述当前视频块相关联的第一运动信息,并且其中所述至少两个临时预测块中的第二个临时预测块基于与所述当前视频块的至少一个相邻块相关联的第二运动信息;以及基于所述预测块,执行所述当前视频块与所述当前视频块的比特流表示之间的转换,其中,所述第二临时预测块的加权因子基于所述至少一个相邻块的位置或编码模式。

19.根据权利要求18所述的方法,其中,所述加权因子是基于所述至少一个相邻块包含所述当前视频块的空间相邻块的确定的第一加权因子。

20.根据权利要求19所述的方法,其中,所述加权因子是基于所述至少一个相邻块包含所述当前视频块的时域相邻块的确定的第二加权因子。

21.根据权利要求20所述的方法,其中,所述加权因子是基于所述当前视频块是使用帧内预测模式编码的确定的第三加权因子。

22.根据权利要求21所述的方法,其中,在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)或条带报头中信令通知所述第二和所述第三加权因子。

23.根据权利要求21所述的方法,其中,所述第一加权因子大于所述第二加权因子,并且其中所述第二加权因子大于所述第三加权因子。

24.根据权利要求21所述的方法,其中,所述第二加权因子等于所述第三加权因子。

25.根据权利要求21所述的方法,其中,所述第一、所述第二或所述第三加权因子还基于所述当前视频块的维度。

26.根据权利要求1至25中任一项所述的方法,其中,基于所述当前视频块的编码模式、所述当前视频块的尺寸或形状、或所述当前视频块的子块的尺寸来执行所述转换。

27.根据权利要求26所述的方法,其中,所述当前视频块的所述编码模式包括禁用仿射模式的传统平移运动。

28.根据权利要求26所述的方法,其中,所述当前视频块的高度和所述当前视频块的宽度的乘积大于或等于阈值。

29.根据权利要求26所述的方法,其中,所述当前视频块的高度大于或等于第一阈值,并且所述当前视频块的宽度大于或等于第二阈值。

30.根据权利要求26所述的方法,其中,还基于包括所述当前视频块的条带的条带类型、低延迟校验标志或时域层来执行所述转换。

31.根据权利要求1至25中任一项所述的方法,其中,执行所述转换包括将所述运动补偿处理应用于所述当前视频块的亮度分量。

32.根据权利要求1至25中任一项所述的方法,其中,执行所述转换包括将所述运动补偿处理应用于所述当前视频块的多个色度分量中的一个或多个。

33.根据权利要求1至25中任一项所述的方法,其中,还基于序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)、条带报头、编码树单元(CTU)、编码单元(CU)、CTU组或CU组中的信令通知来执行所述转换。

34.根据权利要求1至33中任一项所述的方法,其中,所述加权和中的一个或多个权重基于所述当前视频块内的样本的坐标。

35.根据权利要求1至33中任一项所述的方法,其中,所述加权和中的一个或多个权重基于所述当前视频块内的样本到所述当前视频块的边界的距离。

36.根据权利要求1至33中任一项所述的方法,其中,生成所述预测块是重叠块运动补偿(OBMC)处理的一部分。

37.根据权利要求1至36中任一项所述的方法,其中,执行所述转换包括从所述当前视频块生成所述比特流表示。

38.根据权利要求1至36中任一项所述的方法,其中,执行所述转换包括从所述比特流表示生成所述当前视频块。

39.一种视频系统中的装置,包括处理器和其上存储了指令的非易失性存储器,其中当所述处理器执行所述指令时,使所述处理器实现权利要求1至38中的一项或多项中所述的方法。

40.一种存储在非易失性计算机可读介质上的计算机程序产品,所述计算机程序产品包括用于实现权利要求1至38中的一项或多项中所述的方法的程序代码。

说明书 :

使用时域邻居的重叠块运动补偿

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

技术领域

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

背景技术

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

发明内容

[0005] 描述了涉及数字视频编码、并且特别地涉及基于时域邻居的重叠块运动补偿(OBMC)处理的设备、系统和方法。所描述的方法可以应用于现有视频编码标准(例如,高效视频编码(HEVC))和未来视频编码标准或视频编解码器。
[0006] 在一个典型的方面,所公开的技术可用于提供用于视频处理的方法。该方法包括:基于至少两个临时预测块的加权和,生成当前视频块的预测块,至少两个临时预测块中的第一个基于与当前视频块相关联的第一运动信息,并且至少两个临时预测块中的第二个基于与当前视频块的至少一个相邻块相关联的第二运动信息;以及基于预测块,执行当前视频块与当前视频块的比特流表示之间的转换。
[0007] 在一些实施例中,该方法优选地包括:至少一个相邻块包括时域相邻块。
[0008] 在一些实施例中,该方法优选地包括:第二临时预测块的加权因子基于至少一个相邻块的位置或编码模式。
[0009] 在一些实施例中,该方法优选地包括:当前视频块是用基于子块的编码工具编码的,并且当前视频块的当前子块的最终预测基于至少当前子块的时域相邻块的运动信息。
[0010] 在一些实施例中,该方法优选地包括:编码当前视频块而不使用基于子块的编码工具编码。
[0011] 在一些实施例中,该方法优选地包括:当前视频块的子块的子集的每个子块最终预测基于第二运动信息,并且该子集不包括当前视频的至少一个子块。
[0012] 在一些实施例中,该方法优选地包括:执行转换还基于与当前视频块的至少一个空间相邻块相关联的运动信息的可用性的确定、与至少一个空间相邻块相关联的第三运动信息。
[0013] 在一些实施例中,该方法优选地包括:第一运动信息和第二运动信息不是从相同的预测处理中推导出的。
[0014] 在一些实施例中,该方法优选地包括:时域相邻块位于在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)或条带报头中信令通知的共位图片(collocated picture)中。
[0015] 在一些实施例中,该方法优选地包括:时域相邻块位于预定的参考图片中。
[0016] 在一些实施例中,该方法优选地包括:预定的参考图片在列表0或列表1中。
[0017] 在一些实施例中,该方法优选地包括:时域相邻块位于在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)、条带报头或片报头中信令通知的多个参考图片中的一个中。
[0018] 在一些实施例中,该方法优选地包括:时域相邻块是所选择的参考图片中的共位块。
[0019] 在一些实施例中,该方法优选地包括:当前预测单元(PU)或编码单元(CU)包括当前视频块,并且当前PU或CU的运动矢量包括时域相邻块的标识。
[0020] 在一些实施例中,该方法优选地包括:运动矢量是缩放运动矢量。
[0021] 在一些实施例中,该方法优选地包括:当前预测单元(PU)或编码单元(CU)包括当前视频块,当前PU或CU的运动矢量被缩放到当前PU或CU的第一参考图片,并且时域相邻块的运动矢量被缩放到第一参考图片。
[0022] 在一些实施例中,该方法优选地包括:至少相邻块的运动矢量被缩放到预定的参考图片。
[0023] 在一些实施例中,该方法优选地包括:预定的参考图片是列表0或列表1中的第一个参考图片。
[0024] 在一些实施例中,该方法优选地包括:时域相邻块的运动矢量被缩放到在序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)、或条带报头中信令通知的多个参考图片中的一个。
[0025] 在一些实施例中,该方法优选地包括:加权因子是基于至少一个相邻块包含当前视频块的空间相邻块的确定的第一加权因子。
[0026] 在一些实施例中,该方法优选地包括:加权因子是基于至少一个相邻块包含当前视频块的时域相邻块的确定的第二加权因子。
[0027] 在一些实施例中,该方法优选地包括:加权因子是基于当前视频块是使用帧内预测模式编码的确定的第三加权因子。
[0028] 在一些实施例中,该方法优选地包括:在序列参数集(SPS),图片参数集(PPS)、视频参数集(VPS)或条带报头中信令通知第二和第三加权因子。
[0029] 在一些实施例中,该方法优选地包括:第一加权因子大于第二加权因子,并且第二加权因子大于第三加权因子。
[0030] 在一些实施例中,该方法优选地包括:第二加权因子等于第三加权因子。
[0031] 在一些实施例中,该方法优选地包括:第一、第二或第三加权因子还基于当前视频块的维度(dimension)。
[0032] 在一些实施例中,该方法优选地包括:基于当前视频块的编码模式、当前视频块的尺寸或形状、或当前视频块的子块的尺寸来执行转换。
[0033] 在一些实施例中,该方法优选地包括:当前视频块的编码模式包括禁用仿射模式的传统平移运动。
[0034] 在一些实施例中,该方法优选地包括:当前视频块的高度和当前视频块的宽度的乘积大于或等于阈值。
[0035] 在一些实施例中,该方法优选地包括:当前视频块的高度大于或等于第一阈值,并且当前视频块的宽度大于或等于第二阈值。
[0036] 在一些实施例中,该方法优选地包括:还基于包括当前视频块的条带的条带类型、低延迟校验标志或时域层来执行转换。
[0037] 在一些实施例中,该方法优选地包括:执行转换包括将运动补偿处理应用于当前视频块的亮度分量。
[0038] 在一些实施例中,该方法优选地包括:执行转换包括将运动补偿处理应用于当前视频块的多个色度分量中的一个或多个。
[0039] 在一些实施例中,该方法优选地包括:还基于序列参数集(SPS)、图片参数集(PPS)、视频参数集(VPS)、条带报头、编码树单元(CTU)、编码单元(CU)、CTU组或CU组中的信令通知来执行转换。
[0040] 在一些实施例中,该方法优选地包括:加权和中的一个或多个权重基于当前视频块内的样本的坐标。
[0041] 在一些实施例中,该方法优选地包括:加权和中的一个或多个权重基于当前视频块内的样本到当前视频块的边界的距离。
[0042] 在一些实施例中,该方法优选地包括:生成预测块是重叠块运动补偿(OBMC)处理的一部分。
[0043] 在一些实施例中,该方法优选地包括:执行转换包括从当前视频块生成比特流表示。
[0044] 在一些实施例中,该方法优选地包括:执行转换包括从比特流表示生成当前视频块。
[0045] 在另一典型的方面,上述方法以处理器可执行代码的形式实施,并且存储在计算机可读的程序介质中。
[0046] 在又一典型的方面,公开了一种设备,其被配置为或可操作以执行上述方法。该设备可以包括被编程以实现该方法的处理器。
[0047] 在又一典型的方面,一种视频解码器装置,其可以实现如本文所述的方法。
[0048] 在附图、说明书和权利要求书中更详细地描述了所公开技术的上述方面、以及其他方面和特征。

附图说明

[0049] 图1示出了构建Merge候选列表的示例。
[0050] 图2示出了空间候选的位置的示例。
[0051] 图3示出了接受空间Merge候选的冗余检查的候选对的示例。
[0052] 图4A和图4B示出了基于当前块的尺寸和形状的第二预测单元(PU)的位置示例。
[0053] 图5示出了时域Merge候选的运动矢量缩放示例。
[0054] 图6示出了时域Merge候选的候选位置示例。
[0055] 图7示出了生成组合的双向预测Merge候选的示例。
[0056] 图8示出了构建运动矢量预测候选的示例。
[0057] 图9示出了空间运动矢量候选的运动矢量缩放示例。
[0058] 图10示出了使用编码单元(CU)的可选时域运动矢量预测(ATMVP)算法的运动预测示例。
[0059] 图11示出了空时运动矢量预测(STMVP)算法使用的带有子块和相邻块的编码单元(CU)的示例。
[0060] 图12A和12B示出了当使用重叠块运动补偿(OBMC)算法时子块的示例快照。
[0061] 图13示出了简化的仿射运动模型的示例。
[0062] 图14示出了每个子块的仿射运动矢量场(MVF)的示例。
[0063] 图15示出了AF_INTER仿射运动模式的运动矢量预测(MVP)的示例。
[0064] 图16A和16B分别示出了4参数和6参数的仿射模型的示例。
[0065] 图17A和17B示出了AF_Merge仿射运动模式的示例候选。
[0066] 图18示出了当前块的时域相邻块的示例。
[0067] 图19A和19B是来自用于预测单元(PU)或编码单元(CU)的OBMC的空间和时域相邻块的运动信息的示例。
[0068] 图20示出了视频编码的示例方法的流程图。
[0069] 图21是用于实现本文所述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。
[0070] 图22是可以实现所公开的技术的示例视频处理系统的框图。

具体实施方式

[0071] 由于对更高分辨率视频的需求的增加,视频编码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断被改进以提供更高的编码效率。视频编解码器将未压缩视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂度、对数据丢失和错误的敏感性、编辑的简易性、随机访问、以及端到端延迟(时延)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编码(HEVC)标准(也称为H.265或MPEG-H第2部分)、待定案的多功能视频编码标准、或其他当前和/或未来的视频编码标准。
[0072] 所公开的技术的实施例可以应用于现有视频编码标准(例如,HEVC,H.265)和未来标准以提高压缩性能。在本文中使用章节标题以提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实现)仅限制于相应的章节。
[0073] 1.HEVC/H.265中的帧间预测的示例
[0074] 多年来,视频编码标准有了显著的改进,并且现在在某种程度上提供了高编码效率和对更高分辨率的支持。最新标准诸如HEVC和H.265等是基于混合视频编码结构,其中采用了时域预测加变换编码。
[0075] 1.1预测模式的示例
[0076] 每个帧间预测的PU(预测单元)都有一个或两个参考图片列表的运动参数。在一些实施例中,运动参数包括运动矢量和参考图片索引。在其他实施例中,两个参考图片列表之一的使用也可以使用inter_pred_idc发信令。在又一实施例中,运动矢量可显式地编码为相对于预测器的增量。
[0077] 当CU采用跳跃模式(skip mode)编码时,PU与CU相关联,并且没有显著的残差系数,没有编码运动矢量增量或参考图片索引。指定了一种Merge模式,通过该模式,可以从相邻的PU(包括空间和时域候选)中获取当前PU的运动参数。Merge模式可以应用于任何帧间预测的PU,而不仅仅是跳跃模式。Merge模式的另一种选择是运动参数的显式传输,其中每个参考图片列表的运动矢量、对应的参考图片索引以及参考图片列表的使用都会根据每个PU显式地发信令。
[0078] 当信令指示要使用两个参考图片列表中的一个时,从一个样本块中生成PU。这被称为“单向预测”。单向预测对P条带(slice)和B条带都可用。
[0079] 当信令指示要使用两个参考图片列表时,从两个样本块中生成PU。这被称为“双向预测”。双向预测仅对B条带可用。
[0080] 1.1.1构建Merge模式的候选的实施例
[0081] 当使用Merge模式预测PU时,从比特流中解析指向Merge候选列表中条目的索引,并且使用该索引检索运动信息。此列表的构建可按以下步骤顺序进行概括:
[0082] 步骤1:初始候选推导
[0083] 步骤1.1:空间候选推导
[0084] 步骤1.2:空间候选冗余检查
[0085] 步骤1.3:时域候选推导
[0086] 步骤2:附加候选插入
[0087] 步骤2.1:创建双向预测候选
[0088] 步骤2.2:插入零运动候选
[0089] 图1示出了基于上面概括的步骤序列构建Merge候选列表的示例。对于空间Merge候选推导,在位于五个不同位置的候选中最多选择四个Merge候选。对于时域Merge候选推导,在两个候选中最多选择一个Merge候选。由于在解码器处假定每个PU的候选数为常量,因此当候选数未达到片报头中发信令的最大Merge候选数(maxNumMergeCand)时,生成附加的候选。由于候选数是恒定的,所以最佳Merge候选的索引使用截断的一元二值化(TU)进行编码。如果CU的尺寸等于8,则当前CU的所有PU都共享一个Merge候选列表,这与2N×2N预测单元的Merge候选列表相同。
[0090] 1.1.2构建空间Merge候选
[0091] 在空间Merge候选的推导中,在位于图2所示位置的候选中最多选择四个Merge候选。推导顺序为A1,B1,B0,A0和B2。只有当位置A1,B1,B0,A0的任何PU不可用(例如,因为它属于另一个条带或片(tile))或是内部编码时,才考虑位置B2。在增加A1位置的候选后,对剩余候选的增加进行冗余检查,其确保具有相同运动信息的候选被排除在列表之外,从而提高编码效率。
[0092] 为了降低计算的复杂度,在所提到的冗余检查中并不考虑所有可能的候选对。相反,只有与图3中的箭头链接的对才会被考虑,并且只有当用于冗余检查的对应候选没有相同的运动信息时,才将候选添加到列表中。复制运动信息的另一个来源是与2Nx2N不同的分区相关的“第二PU”。例如,图4A和4B分别描述了N×2N和2N×N情况下的第二PU。当当前的PU被划分为N×2N时,对于列表构建不考虑A1位置的候选。在一些实施例中,添加此候选可能导致两个具有相同运动信息的预测单元,这对于在编码单元中仅具有一个PU是冗余的。同样地,当当前PU被划分为2N×N时,不考虑位置B1。
[0093] 1.1.3构建时域Merge候选
[0094] 在此步骤中,只有一个候选添加到列表中。特别地,在这个时域Merge候选的推导中,基于与给定参考图片列表中当前图片具有最小POC差异的共位PU导出了缩放运动矢量。用于推导共位PU的参考图片列表在条带报头中显式地发信令。
[0095] 图5示出了时域Merge候选(如虚线所示)的缩放运动矢量的推导示例,其使用POC距离tb和td从共位PU的运动矢量进行缩放,其中tb定义为当前图片的参考图片和当前图片之间的POC差异,并且td定义为共位图片的参考图片与共位图片之间的POC差异。时域Merge候选的参考图片索引设置为零。对于B条带,得到两个运动矢量(一个是对于参考图片列表0,另一个是对于参考图片列表1)并将其组合使其成为双向预测Merge候选。
[0096] 在属于参考帧的共位PU(Y)中,在候选C0和C1之间选择时域候选的位置,如图6所示。如果位置C0处的PU不可用、内部编码或在当前CTU之外,则使用位置C1。否则,位置C0被用于时域Merge候选的推导。
[0097] 1.1.4构建附加类型的Merge候选
[0098] 除了空时Merge候选,还有两种附加类型的Merge候选:组合双向预测Merge候选和零Merge候选。组合双向预测Merge候选是利用空时Merge候选生成的。组合双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一候选的第二参考图片列表运动参数相结合,生成组合双向预测候选。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。
[0099] 图7示出了此过程的一个示例,其中原始列表(710,在左侧)中具有MVL0和refIdxL0或MVL1和refIdxL1的两个候选被用于创建添加到最终列表(720,在右侧)中的组合双向预测Merge候选。
[0100] 插入零运动候选以填充Merge候选列表中的其余条目,从而达到MaxNumMergeCand的容量。这些候选具有零空间位移和从零开始并且每次将新的零运动候选添加到列表中时都会增加的参考图片索引。这些候选使用的参考帧的数目对于单向预测和双向预测分别是1帧和2帧。在一些实施例中,对这些候选不执行冗余检查。
[0101] 1.1.5并行处理的运动估计区域的示例
[0102] 为了加快编码处理,可以并行执行运动估计,从而同时推导给定区域内所有预测单元的运动矢量。从空间邻域推导Merge候选可能会干扰并行处理,因为一个预测单元在完成相关运动估计之前无法从相邻的PU推导运动参数。为了缓和编码效率和处理延迟之间的平衡,可以定义运动估计区域(MER)。可使用语法元素“log2_parallel_merge_level_minus2”在图片参数集(PPS)中对MER的尺寸中发信令。当定义MER时,落入同一区域的Merge候选标记为不可用,并且因此在列表构建中不考虑。
[0103] 1.2高级运动矢量预测(AMVP)的实施例
[0104] AMVP利用运动矢量与相邻的PU的空时相关性,其用于运动参数的显式传输。首先通过检查左上方的时域相邻的PU位置的可用性、去掉多余的候选位置并且加上零矢量以使候选列表长度恒定来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳的预测器,并发送指示所选候选的对应索引。与Merge索引信令类似,最佳运动矢量候选的索引使用截断的一元进行编码。在这种情况下要编码的最大值是2(参见图8)。在下面的章节中,将详细介绍运动矢量预测候选的推导过程。
[0105] 1.2.1构建运动矢量预测候选的示例
[0106] 图8概括了运动矢量预测候选的推导过程,并且以refidx为输入对每个参考图片列表进行实现。
[0107] 在运动矢量预测中,考虑了两种类型的运动矢量候选:空间运动矢量候选和时域运动矢量候选。对于空间运动矢量候选的推导,基于位于如先前在图2中所示的五个不同位置的每个PU的运动矢量最终推推导两个运动矢量候选。
[0108] 对于时域运动矢量候选的推导,从两个候选中选择一个运动矢量候选,这两个候选是基于两个不同的共位位置推推导的。在作出第一个空时候选列表后,移除列表中重复的运动矢量候选。如果潜在候选的数量大于二,则从列表中移除相关联的参考图片列表中参考图片索引大于1的运动矢量候选。如果空时运动矢量候选数小于二,则会在列表中添加附加的零运动矢量候选。
[0109] 1.2.2构建空间运动矢量候选
[0110] 在推导空间运动矢量候选时,在五个潜在候选中最多考虑两个候选,这五个候选是从先前在图2中所示的位置上的PU推导出的,这些位置与运动Merge的位置相同。当前PU左侧的推导顺序定义为A0、A1、以及缩放的A0、缩放的A1。当前PU上面的推导顺序定义为B0、B1,B2、缩放的B0、缩放的B1、缩放的B2。因此,每侧有四种情况可以用作运动矢量候选,其中两种情况不需要使用空间缩放,并且两种情况使用空间缩放。四种不同的情况概括如下:
[0111] --无空间缩放
[0112] (1)相同的参考图片列表,并且相同的参考图片索引(相同的POC)
[0113] (2)不同的参考图片列表,但是相同的参考图片(相同的POC)
[0114] --空间缩放
[0115] (3)相同的参考图片列表,但是不同的参考图片(不同的POC)
[0116] (4)不同的参考图片列表,并且不同的参考图片(不同的POC)
[0117] 首先检查无空间缩放的情况,然后检查允许空间缩放的情况。当POC在相邻PU的参考图片与当前PU的参考图片之间不同时,都会考虑空间缩放,而不考虑参考图片列表。如果左侧候选的所有PU都不可用或是内部编码,则允许对上述运动矢量进行缩放,以帮助左侧和上方MV候选的平行推导。否则,不允许对上述运动矢量进行空间缩放。
[0118] 如图9中的示例所示,对于空间缩放情况,相邻PU的运动矢量以与时域缩放相似的方式缩放。一个区别在于,给出了当前PU的参考图片列表和索引作为输入,实际缩放处理与时域缩放处理相同。
[0119] 1.2.3构建时域运动矢量候选
[0120] 除了参考图片索引的推导外,时域Merge候选的所有推导过程与空间运动矢量候选的推导过程相同(如图6中的示例所示)。在一些实施例中,向解码器信令通知参考图片索引。
[0121] 2联合探索模型(JEM)中帧间预测方法的示例
[0122] 在一些实施例中,使用名为联合探索模型(JEM)的参考软件探索未来的视频编码技术。在JEM中,基于子块的预测被用于多种编码工具中,如仿射预测、可选时域运动矢量预测(ATMVP)、空时运动矢量预测(STMVP)、双向光流(BIO)、帧速率上转换(FRUC)、局部自适应运动矢量分辨率(LAMVR)、重叠块运动补偿(OBMC)、局部照明补偿(LIC)和解码器侧运动矢量细化(DMVR)。
[0123] 2.1基于子CU的运动矢量预测的示例
[0124] 在具有四叉树加二叉树(QTBT)的JEM中,每个CU对于每个预测方向最多可以具有一组运动参数。在一些实施例中,通过将大的CU分割成子CU并推导该大CU的所有子CU的运动信息,编码器中考虑了两种子CU级的运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从多个小于共位参考图片中当前CU的块中获取多组运动信息。在空时运动矢量预测(STMVP)方法中,通过利用时域运动矢量预测器和空间邻接运动矢量递归地推导子CU的运动矢量。在一些实施例中,为了为子CU运动预测的保持更精确的运动场,可能禁用参考帧的运动压缩。
[0125] 2.1.1可选时域运动矢量预测(ATMVP)的示例
[0126] 在ATMVP方法中,时域运动矢量预测(TMVP)方法是通过从小于当前CU的块中提取多组运动信息(包括运动矢量和参考索引)来修改的。
[0127] 图10示出了CU 1000的ATMVP运动预测处理的示例。ATMVP方法分两步预测CU 1000内的子CU 1001的运动矢量。第一步是用时域矢量识别参考图片1050中的对应块1051。参考图片1050也被称为运动源图片。第二步是将当前CU 1000划分成子CU 1001,并从每个子CU对应的块中获取运动矢量以及每个子CU的参考索引。
[0128] 在第一步中,参考图片1050和对应的块由当前CU 1000的空间相邻块的运动信息确定。为了避免相邻块的重复扫描处理,使用当前CU 1000的Merge候选列表中的第一个Merge候选。第一个可用的运动矢量及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,与TMVP相比,可以更准确地识别对应的块,其中对应的块(有时称为共位块)始终位于相对于当前CU的右下角或中心位置。
[0129] 在第二步中,通过将时域矢量添加到当前CU的坐标中,通过运动源图片1050中的时域矢量识别子CU 1051的对应块。对于每个子CU,使用其对应块的运动信息(例如,覆盖中心样本的最小运动网格)来推导子CU的运动信息。在识别出对应N×N块的运动信息后,将其转换为当前子CU的运动矢量和参考索引,与HEVC的TMVP方法相同,其中应用运动缩放和其它处理。例如,解码器检查是否满足低延迟条件(例如,当前图片的所有参考图片的POC都小于当前图片的POC),并可能使用运动矢量MVx(例如,与参考图片列表X对应的运动矢量)来为每个子CU预测运动矢量MVy(例如,X等于0或1且Y等于1-X)。
[0130] 2.1.2空时运动矢量预测(STMVP)的示例
[0131] 在STMVP方法中,子CU的运动矢量是按照光栅扫描顺序递归推导的。图11示出了一个具有四个子块及相邻块的CU的示例。考虑一个8×8的CU 1100,它包含四个4×4的子CU A(1101)、B(1102)、C(1103)和D(1104)。当前帧中相邻的4×4的块标记为a(1111)、b(1112)、c(1113)和d(1114)。
[0132] 子CU A的运动推导由识别其两个空间邻居开始。第一个邻居是子CU A 1101上方的N×N块(块c 1113)。如果该块c(1113)不可用或帧内编码,则检查子CU A(1101)上方的其它N×N块(从左到右,从块c 1113处开始)。第二个邻居是子CU A 1101左侧的一个块(块b 1112)。如果块b(1112)不可用或是帧间编码,则检查子CU A 1101左侧的其它块(从上到下,从块b1112处开始)。每个列表从相邻块获得的运动信息被缩放到给定列表的第一个参考帧。接下来,按照HEVC中规定的与TMVP相同的程序,推导子块A1101的时域运动矢量预测(TMVP)。提取块D1104处的共位块的运动信息并进行相应的缩放。最后,在检索和缩放运动信息后,对每个参考列表分别平均所有可用的运动矢量。将平均运动矢量指定为当前子CU的运动矢量。
[0133] 2.1.3子CU运动预测模式信令通知的示例
[0134] 在一些实施例中,子CU模式作为附加的Merge候选模式启用,并且不需要附加的语法元素来对该模式发信令通知。将另外两个Merge候选添加到每个CU的Merge候选列表中,以表示ATMVP模式和STMVP模式。在其他实施例中,如果序列参数集指示启用了ATMVP和STMVP,则可能最多使用七个Merge候选。附加Merge候选的编码逻辑与HM中的Merge候选的编码逻辑相同,这意味着对于P条带或B条带中的每个CU,可能需要对两个附加Merge候选进行两次额外的RD检查。在一些实施例中,例如JEM,Merge索引的所有bin都由CABAC(基于上下文的自适应二进制算术编码)进行上下文编码。在其他实施例中,例如HEVC,只有第一个bin是上下文编码的,其余的bin是上下文旁路编码的。
[0135] 2.2自适应运动矢量差分辨率的示例
[0136] 在一些实施例中,当在条带报头中use_integer_mv_flag等于0时,运动矢量差(MVD)(在PU的运动矢量和预测运动矢量之间)以四分之一亮度样本为单位发信令。在JEM中,引入了局部自适应运动矢量分辨率(LAMVR)。在JEM中,MVD可以用四分之一亮度样本、整数亮度样本或四亮度样本的单位进行编码。MVD分辨率控制在编码单元(CU)级别,并且MVD分辨率标志有条件地为每个至少有一个非零MVD分量的CU发信令。
[0137] 对于具有至少一个非零MVD分量的CU,第一个标志将发信令以指示CU中是否使用四分之一亮度样本MV精度。当第一个标志(等于1)指示不使用四分之一亮度样本MV精度时,另一个标志发信令以指示是使用整数亮度样本MV精度还是使用四亮度样本MV精度。
[0138] 当CU的第一个MVD分辨率标志为零或没有为CU编码(意味着CU中的所有MVD都为零)时,CU使用四分之一亮度样本MV分辨率。当一个CU使用整数亮度样本MV精度或四亮度样本MV精度时,该CU的AMVP候选列表中的MVP将取整到对应的精度。
[0139] 在编码器中,CU级别的RD检查用于确定哪个MVD分辨率将用于CU。也就是说,对每个MVD分辨率执行三次CU级别的RD检查。为了加快编码器速度,在JEM中应用以下编码方案。
[0140] --在对具有正常四分之一亮度采样MVD分辨率的CU进行RD检查期间,存储当前CU(整数亮度采样精度)的运动信息。在对具有整数亮度样本和4亮度样本MVD分辨率的同一个CU进行RD检查时,将存储的运动信息(取整后)用作进一步小范围运动矢量细化的起始点,从而使耗时的运动估计处理不会重复三次。
[0141] --有条件地调用具有4亮度样本MVD分辨率的CU的RD检查。对于CU,当整数亮度样本MVD分辨率的RD检查成本远大于四分之一亮度样本MVD分辨率的RD检查成本时,将跳过对CU的4亮度样本MVD分辨率的RD检查。
[0142] 2.3更高运动矢量存储精度的示例
[0143] 在HEVC中,运动矢量精度是四分之一像素(4:2:0视频的四分之一亮度样本和八分之一色度样本)。在JEM中,内部运动矢量存储和Merge候选的精度增加到1/16像素。较高运动矢量精度(1/16像素)用于以跳跃/Merge模式编码的CU的运动补偿帧间预测。对于正常AMVP模式编码的CU,使用整数像素或四分之一像素运动。
[0144] 具有与HEVC运动补偿内插滤波器相同的滤波器长度和归一化因子的SHVC上采样内插滤波器被用作附加分数像素位置的运动补偿内插滤波器。在JEM中色度分量运动矢量精度是1/32样本,通过使用两个相邻1/16像素分数位置的滤波器的平均推导出1/32像素分数位置的附加插值滤波器。
[0145] 2.4重叠块运动补偿(OBMC)的示例
[0146] 在JEM中,可以使用CU级别的语法打开和关闭OBMC。当OBMC用于JEM时,OBMC用于所有运动补偿(MC)块边界,但CU的右边界和底边界除外。此外,它还适用于亮度和色度分量。在JEM中,MC块对应于编码块。当CU用子CU模式(包括子CU MERGE、仿射和FRUC模式)编码时,CU的每个子块都是MC块。为了用统一的方式处理CU边界,在所有MC块边界的子块级别执行OBMC,其中子块尺寸设置为等于4×4,如图12A和12B所示。
[0147] 图12A示出了在CU/PU边界处的子块,并且阴影线的子块是应用OBMC的地方,同样地,图12B示出了在ATMVP模式下的子PU。
[0148] 当OBMC应用于当前子块时,除了当前运动矢量外,四个相连的相邻子块的运动矢量(如果可用且与当前运动矢量不同)也可用于推导当前子块的预测块。将这些基于多个运动矢量的多个预测块组合起来,以生成当前子块的最终预测信号。
[0149] 基于相邻子块运动矢量的预测块表示为PN,其中N表示相邻上、下、左右子块的索引,并且基于当前子块运动矢量的预测块表示为PC。当PN基于包含与当前子块相同的运动信息的相邻子块的运动信息时,OBMC不从PN处执行的。否则,每个PN的样本都添加到PC中的相同样本中,即将PN的四行/列添加到PC。PN使用权重因子{1/4,1/8,1/16,1/32},PC使用权重因子{3/4,7/8,15/16,31/32}。例外情况是小MC块(即编码块的高度或宽度等于4或CU是用子CU模式编码的),对此在PC中只添加PN的两行/列。在这种情况下,PN使用权重因子{1/4,1/8},PC使用权重因子{3/4,7/8}。对于基于垂直(水平)相邻子块的运动矢量生成的PN,将PN的同一行(列)中的样本以相同的权重因子添加到PC中。
[0150] 在JEM中,对于尺寸小于或等于256亮度样本的CU,会对CU级别标志发信令,以指示当前CU是否应用OBMC。对于尺寸大于256亮度样本或未使用AMVP模式编码的CU,默认情况下应用OBMC。在编码器处,当OBMC应用于CU时,在运动估计阶段会考虑其影响。使用上邻块和左邻块的运动信息通过OBMC形成的预测信号被用来补偿当前CU的原始信号的上边界和左边界,并且然后应用正常的运动估计处理。
[0151] 2.5仿射运动补偿预测的示例
[0152] 在HEVC中,运动补偿预测(MCP)仅应用平移运动模型。然而,相机和对象可能具有多种运动,例如放大/缩小、旋转、透视运动和/或其他不规则运动。另一方面,JEM应用了简化的仿射变换运动补偿预测。图13示出了由两个控制点运动矢量V0和V1描述的块1300的仿射运动场的例子。块1300的运动矢量场(MVF)可以由以下等式描述:
[0153]
[0154] 如图13所示,(v0x,v0y)是左上角控制点的运动矢量,并且(v1x,v1y)是右上角控制点的运动矢量。为了简化运动补偿预测,可以应用基于子块的仿射变换预测。子块尺寸M×N推导如下:
[0155]
[0156] 这里,MVPre是运动矢量分数精度(例如,JEM中的1/16)。(v2x,v2y)是左下控制点的运动矢量,其根据等式(1)计算。如果需要,M和N可以被向下调节使其分别作为w和h的除数。
[0157] 图14示出了块1400的每个子块的仿射运动矢量场(MVF)的例子。为了推导出每个M×N子块的运动矢量,可以根据等式(1)计算每个子块的中心样本的运动矢量,并且四舍五入到运动矢量分数精度(例如,JEM中的1/16)。然后可以应用运动补偿插值滤波器,利用推导出的运动矢量生成各子块的预测。在MCP之后,对每个子块的高精度运动矢量进行取整,并将其保存为与正常运动矢量相同的精度。
[0158] 在JEM中,有两个仿射运动模式:AF_INTER模式和AF_Merge模式。对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在位流中,CU级别的仿射标志被发信令,以指示是否使用AF_INTER模式。在AF_INTER模式中,使用相邻的块构建具有运动矢量对{(v0,v1)|v0={vA,vB,vc},v1={vD,vE}}的候选列表。
[0159] 图15示出了在AF_INTER模式中块1500的运动矢量预测(MVP)的例子。如图15所示,v0从子块A、B或C的运动矢量中选择。可以根据参考列表对相邻块的运动矢量进行缩放。也可以根据相邻块参考的图片顺序计数(POC)、当前CU参考的POC和当前CU的POC之间的关系对运动矢量进行缩放。从相邻的子块D和E中选择v1的方法类似。当候选列表的数目小于2时,该列表由复制每个AMVP候选组成的运动矢量对来填充。当候选列表大于2时,可以首先根据相邻的运动矢量对候选进行排序(例如,基于一对候选中两个运动矢量的相似性)。在一些实现中,保留前两个候选。在一些实施例中,使用速率失真(RD)成本检查来确定选择哪个运动矢量对候选作为当前CU的控制点运动矢量预测(CPMVP)。可以在位流中发出指示CPMVP在候选列表中的位置的索引。在确定了当前仿射CU的CPMVP后,应用仿射运动估计,并且找到控制点运动矢量(CPMV)。然后,在比特流中对CPMV和CPMVP的差异发信令。
[0160] 在AF_INTER模式中,当使用4/6参数仿射模式时,需要2/3个控制点,因此需要为这些控制点编码2/3个MVD,分别如图16A和16B所示。在现有实现中,MV可以如下导出,例如,它从mvd0预测mvd1和mvd2。
[0161]
[0162]
[0163]
[0164] 在一些实施例中,并且在编码器处,迭代地导出AF_INTER的MVD。如果假设MVD推导过程被迭代n次,那么最终的MVD如下计算,其中ai和bi是估计的仿射参数,并且mvd[k]h和mvd[k]v是在第i次迭代中导出的mvdk(k=0,1)的水平和垂直分量。
[0165]
[0166]
[0167] 因此,在该实现中,从mvd0预测mvd1,对于mvd1仅编码
[0168] 当在AF_Merge模式下应用CU时,它从有效的相邻重构块中获取用仿射模式编码的第一个块。图17A示出了当前编码单元CU 1700的候选块的选择顺序的例子。如图17A所示,选择顺序可以是从当前CU 1700的左(1701)、上(1702)、右上(1703)、左下(1704)到左上(17017)。图17B示出了在AF_Merge模式中当前CU 1700候选块的另一个例子。如果相邻的左下块1701以仿射模式编码,如图17B所示,则导出包含子块1701的CU左上角、右上角和左下角的运动矢量v2、v3和v4。当前CU 1700左上角的运动矢量v0是基于v2、v3和v4计算的。可以相应地计算当前CU右上方的运动矢量v1。
[0169] 根据等式(1)中的仿射运动模型计算当前CU的CPMV v0和v1后,可以生成当前CU的MVF。为了确定当前CU是否使用AF_Merge模式编码,当至少有一个相邻的块以仿射模式编码时,可以在比特流中发出仿射标志。
[0170] 3.现有实现的缺点
[0171] 在OBMC的一个现有实现中,在生成最终预测时,固定加权因子用于生成预测样本PN(通过使用相邻MV生成的预测)和PC(通过使用当前MV生成的预测)。如果PN和PC不相似(例如,在屏幕内容编码中),这可能是有问题的,因为大的差异可能导致伪影像。
[0172] 在另一现有实现中,并且对于未用子块模式编码的PU/CU,例如,PU/CU内的所有子块具有相同的运动信息,则不能对不在PU/CU边界的左侧或上方的子块执行OBMC。当以帧内模式编码相邻块时,即使在PU/CU边界的左侧或上方的子块也不能执行OBMC。
[0173] 4.基于时域邻居的OBMC的示例方法
[0174] 当前公开的技术的实施例克服了现有实现的缺点,从而提供具有更高编码效率的视频编码。基于所公开的技术,基于时域相邻块的OBMC处理可以增强现有和未来的视频编码标准,在以下针对各种实现所描述的示例中阐明。以下提供的所公开技术的示例解释了一般概念,并不意图被解释为限制。在示例中,除非明确地相反指示,否则可以组合这些示例中描述的各种特征。
[0175] 示例1.在一个示例中,除了与当前块相关联的运动信息之外,一个块的预测块的生成还取决于时域相邻块的运动信息。
[0176] 提出的方法的示例使用
[0177] (a)在一个示例中,在OBMC处理中使用时域相邻块的运动信息(简称为时域运动信息)来生成PN。
[0178] (b)在一个示例中,对于利用基于子块的编码工具(例如,ATMVP)编码的块,除了取决于其自身的运动信息、来自其周围子块的运动信息之外,子块的最终预测块的生成还可以取决于时域相邻块的运动信息。
[0179] (c)可替代地,时域运动信息的使用仅可以应用于不使用子块编码工具编码的块,例如,PU/CU内的所有子块具有相同的运动信息。
[0180] (d)在一个示例中,时域相邻块的运动信息(如图18中所示)可用于生成当前块的部分的最终预测块。在另一个示例中,对于如图19A和图19B中所示的PU/CU的右下区域,可以使用时域运动信息。
[0181] (e)在一个示例中,OBMC处理中的时域运动信息的使用还可以取决于空间相邻块的运动信息的可用性。在一个示例中,如果PU/CU的左和/或上方相邻块/子块是帧内编码的,则可使用时域相邻块的运动信息来生成PU的左/上边界的PN。
[0182] (f)在一个示例中,如果当前块的运动信息是从相同的时域相邻块导出的,则可以自动禁用所提出的方法,例如,当前块用Merge模式编码、其运动信息来自TMVP处理、并且在所提出的方法中定义的时域相邻块是用于TMVP处理的共位图片中的共位时域相邻块。
[0183] 时域相邻块的示例实施例
[0184] (g)在一个示例中,时域相邻块位于在SPS/PPS/VPS或条带报头中信令通知的共位图片中。
[0185] (i)可替代地,时域相邻块位于预定义的参考图片中。例如,列表0或列表1中的第一个参考图片。
[0186] (ii)可替代地,时域相邻块位于一个或多个参考图片中,并且在SPS/PPS/VPS或条带报头中信令通知这些图片的指示。
[0187] (h)在一个示例中,时域相邻块是所选参考图片中的共位块。可替代地,时域相邻块由当前PU/CU的MV或缩放的MV识别。
[0188] (i)在一个示例中,如果用于识别时域相邻块的所选参考图片在当前图片的参考图片列表X中,则列表X的MV(如果需要,则缩放)被用于识别时域相邻块。如果列表X的MV不可用,则列表1-X的MV(如果需要,则缩放)被用于识别时域相邻块。
[0189] (ii)在一个示例中,如果用于识别时域相邻块的所选参考图片在当前图片的参考图片列表0和列表1中,则首先检查列表0(1)的MV,然后检查列表1(0)的MV。第一个可用的MV(如果需要,则缩放)被用于识别时域相邻块。
[0190] (iii)在一个示例中,如果用于识别时域相邻块的所选参考图片与当前PU的参考图片相同,则指向该参考图片的MV被用于识别时域相邻块。
[0191] (i)在一个示例中,时域相邻块的运动矢量被缩放到当前PU/CU的相同参考图片,并随后被用于OBMC。
[0192] (i)可替代地,时域相邻块的运动矢量被缩放到一些预定义的参考图片,例如列表0或列表1中的第一参考图片。
[0193] (ii)可替代地,时域相邻块的运动矢量被缩放到在SPS/PPS/VPS或条带报头中信令通知的一个或多个参考图片。
[0194] 示例2.在一个示例中,一个块的预测块的生成可以依赖于当前块的运动信息和相邻块的帧内预测模式。
[0195] (a)在一个示例中,在OBMC处理中,如果当前PU/CU用帧间模式编码,并且其相邻块/子块用帧内模式编码,则相邻块/子块的帧内模式和重构样本被用于为对应的上/左PU边界块/子块(或整个PU)生成PN。然后,执行OBMC。
[0196] 示例3.在一个示例中,一个块的预测块的生成可以依赖于相邻块的运动信息和当前块的帧内预测模式。
[0197] (a)可替代地,如果当前PU/CU用帧内模式编码,并且其相邻块/子块用帧间模式编码,则相邻块/子块的运动信息被用于为对应的上/左PU/CU边界块/子块(或整个PU)生成PN。
[0198] (i)可替代地,另外,空间相邻块/子块的运动信息被用于为上/左PU/CU边界子块生成PN,而时域相邻块/子块的运动信息被用于为其他子块生成PN。
[0199] (b)可替代地,如果当前PU/CU用帧内模式编码,并且其相邻块/子块也用帧内模式编码,则相邻块/子块的帧内模式和重构样本被用于为对应的上/左PU/CU边界块/子块(或整个PU)生成PN。
[0200] (i)可替代地,另外,时域相邻块/子块的运动信息被用于为不在上/左PU/CU边界的所有子块生成PN。
[0201] (ii)可替代地,时域相邻块的运动信息被用于为整个PU/CU生成PN。
[0202] 示例4.当由空间相邻块的MV(加权因子由W1表示)、或如第一示例所请求的时域MV(加权因子由W2表示)、或如第2/3示例中所请求的帧内预测(加权因子由W3表示)生成PN时,建议OBMC中的PN的加权因子不相同。
[0203] (a)在一个示例中,W1>W2>W3。
[0204] (b)可替代地,W2=W3。
[0205] (c)可替代地,权重还可以取决于其他信息,例如行/列到块边界的距离、块尺寸/块形状/编码模式等。
[0206] (d)用于由时域运动信息或帧内模式生成的预测块的权重可以在VPS/SPS/PPS/条带报头中信令通知或预定义。
[0207] 示例5.建议OBMC中PN的加权因子取决于PN和PC之间的差异(由Pdiff表示)。
[0208] (a)在一个示例中,可以从预定义的加权因子集(例如{1/32,1/16,1/8,1/4,1/2})中自适应地选择加权因子。
[0209] (b)在一个示例中,将单独的权重分配给每个像素,将较大的权重(即,更接近1/2)WN分配给更小的|Pdiff|的PN,反之亦然(由WC表示的PC的权重等于1-WN)。
[0210] (c)在一个示例中,将一个相同的权重分配给一组像素。
[0211] (i)在一个示例中,一列/排是一组。
[0212] (ii)在一个实例中,若干列/排是一组。
[0213] (iii)在一个示例中,尺寸为M×N的子块是一组,其中M和N是正整数。
[0214] (iv)在一个示例中,具有相似值的像素被分组在一起。例如,具有[Vmaxi Vmini]范围内的PC(或PN)值的像素形成第i组。
[0215] (v)在一个示例中,具有相似Pdiff的像素被分组在一起。例如,具有[Vmaxi Vmini]范围内的|Pdiff|值的像素形成第i组。
[0216] (vi)在一个示例中,权重取决于组内所有像素的平均|Pdiff|,并且将较大的权重分配给较小平均|Pdiff|的PN。
[0217] (vii)在一个示例中,当PN与PC完全不同时,例如,|Pdiff|的平均值大于阈值T,其中T>0,OBMC被禁用。
[0218] (viii)可替代地,加权因子不是从预定义的集合中选择的,而是根据像素位置和|Pdiff|的函数来计算。
[0219] (d)在一个示例中,对于从一个相同的相邻运动信息预测的所有PN,权重是相同的,并且它取决于相邻运动信息和当前运动信息之间的差异。
[0220] (i)在一个示例中,如果相邻运动和当前运动使用不同的参考图片,则将较大/较小的权重分配给PN。
[0221] (ii)在一个示例中,如果相邻运动和当前运动使用相同的参考图片,但运动矢量完全不同,则将较大/较小的权重分配给PN。
[0222] 示例6.所提出的方法可以应用于某些模式、块尺寸/形状和/或某些子块尺寸。
[0223] (a)所提出的方法可以应用于某些模式,例如传统的平移运动(例如,禁用仿射模式)。
[0224] (b)所提出的方法可以应用于某些块尺寸。
[0225] (i)在一个示例中,其仅应用于具有w×h≥T的块,其中w和h是当前块的宽度和高度。
[0226] (ii)在另一个示例中,它仅应用于w≥T且h≥T的块。
[0227] (c)可以在进一步的条件下调用所提出的方法的使用,例如,基于块尺寸/块形状/编码模式/条带类型/低延迟校验标记/时域层等。
[0228] 示例7.在一个示例中,所提出的方法可以应用于所有颜色(或色度)分量。可替代地,它们可以仅应用于某些颜色分量。例如,它们可能仅应用于亮度分量。
[0229] 示例8.在一个示例中,可以在VPS/SPS/PPS/条带报头/CTU/CU/CTU组/CU组中从编码器向解码器信令通知是否以及如何应用所提出的方法。
[0230] 以上描述的示例可以并入下面描述的方法的上下文中,例如方法2000,其可以在视频解码器或视频编码器处实现。
[0231] 图20示出了用于视频解码的示例性方法的流程图。方法2000包括:在步骤2010中,基于至少两个临时预测块(temporary prediction block)的加权和,生成当前视频块的预测块。在一些实施例中,至少两个临时预测块中的第一个基于与当前视频块相关联的第一运动信息,并且至少两个临时预测块中的第二个基于与当前视频块的至少一个相邻块相关联的第二运动信息。
[0232] 方法2000包括:在步骤2020中,基于预测块执行当前视频块与当前视频块的比特流表示之间的转换。
[0233] 在一些实施例中,至少一个相邻块包括时域相邻块。
[0234] 在一些实施例中,第二临时预测块的加权因子基于至少一个相邻块的位置或编码模式。
[0235] 在本文描述的方法中,在一些实施例中,转换可以包括对视频块和视频进行编码以生成编码表示或比特流。在一些实施例中,转换可以包括对编码表示或比特流进行解码以生成视频块的像素值。在一些实施例中,转换可以是转码操作,其中视频表示的比特率或格式被改变。
[0236] 5.所公开技术的示例实现
[0237] 图21是视频处理设备2100的框图。设备2100可用于实现本文描述的一个或多个方法。装置2100可以实施在智能手机,平板电脑,计算机,物联网(IoT)接收器等中。装置2100可以包括一个或多个处理器2102,一个或多个存储器2104和视频处理硬件2106.处理器2102可以被配置为实现在以下描述的一个或多个方法(包括但不限于,方法2000)。本文件。
存储器(存储器)2104可以用于存储用于实现这里描述的方法和技术的数据和代码。视频处理硬件2106可用于在硬件电路中实现本文档中描述的一些技术。
[0238] 图22是示出示例视频处理系统2200的框图,其中可以实施本文公开的各种技术。各种实现可能包括系统2200的部分或全部组件。系统2200可包括用于接收视频内容的输入
2202。视频内容可以原始或未压缩格式接收,例如8位或10位多分量像素值,或者可以压缩或编码格式接收。输入2202可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口,以及诸如Wi-Fi或蜂窝接口的无线接口。
[0239] 系统2200可包括编码组件2204,其可实现本文中所描述的各种编码或编码方法。编码组件2204可以降低从输入2202到编码组件2204的输出的视频的平均比特率,以产生视频的编码表示。因此,编码技术有时被称为视频压缩或视频转码技术。编码组件2204的输出可以被存储,也可以通过连接的通信进行传输,如组件2206所示。输入2202处接收的视频的存储或通信比特流(或编码)表示可由组件2208用于生成像素值或发送到显示接口2210的可显示视频。从比特流表示生成用户可观看视频的处理有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编码”操作或工具,但应当理解的是,编码工具或操作被用于编码器处,并且逆向编码结果的相应的解码工具或操作将由解码器执行。
[0240] 外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文中所述的技术可实施在各种电子设备中,例如移动电话、笔记本电脑、智能手机或其他能够执行数字数据处理和/或视频显示的设备。
[0241] 在一些实施例中,可以使用如关于图21所描述的在硬件平台上实现的装置来实现该视频编码方法。
[0242] 从上述来看,应当理解的是,为了便于说明,本发明公开的技术的具体实施例已经在本文中进行了描述,但是可以在不偏离本发明范围的情况下进行各种修改。因此,除了的之外,本发明公开的技术不限于权利要求的限定。
[0243] 本专利文件中描述的主题的实现和功能操作可以在各种系统、数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。本说明说中描述的主题的实现可以实现为一个或多个计算机程序产品,即一个或多个编码在有形的且非易失的计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。
[0244] 计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
[0245] 本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
[0246] 例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
[0247] 意图在于本说明书和附图仅被视为示例性的,其中示例性意味着示例。如本文所用,“或”的使用旨在包括“和/或”,除非上下文另有明确说明。
[0248] 虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
[0249] 同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
[0250] 仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。