基于多运动模型的视频编码和解码转让专利

申请号 : CN201910792030.3

文献号 : CN110858904A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

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

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

摘要 :

描述了基于多运动模型的视频编码和解码的方法、系统和设备。用于视频处理的示例性方法包含,对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块确定解码的候选,以及使用候选进行视频块的进一步处理。

权利要求 :

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

对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块确定解码的候选;以及使用所述候选进行所述视频块的进一步处理。

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

对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块确定编码的候选;以及使用所述候选进行所述视频块的进一步处理。

3.如权利要求1或2所述的方法,其中检查所述一个或多个运动候选,其包含来自对应的非相邻空域或时域块或从所述先前编码块推导的所述运动信息的那些运动候选,以便识别具有与所述一个或多个目标运动模型之一相同的运动模型的至少一个运动候选。

4.如权利要求3所述的方法,其中,识别并使用所述至少一个运动候选作为在从包括空间相邻块的人工搜索过程识别的运动候选之前的候选。

5.如权利要求3所述的方法,其中识别并使用所述至少一个运动候选作为来自默认运动矢量(MV)构建过程的运动候选之前的候选。

6.如权利要求3所述的方法,其中在检查来自对应的相邻邻近块的所述一个或多个运动候选之后,在人工搜索过程期间检查所述一个或多个运动候选。

7.如权利要求1至6中任一项所述的方法,其中所述若干运动模型包括双向模式、对称模式、后向模式和前向模式。

8.如权利要求1至6中任一项所述的方法,其中所述一个或多个运动候选中的每一个属于与所述一个或多个目标运动模型不同的给定运动模型,并且其中所述若干运动模型还包括所述给定运动模型。

9.如权利要求1或2所述的方法,其中所述一个或多个运动候选中的每一个属于相同的运动模型,并且其中以信令通知所述相同的运动模型的指示,并且之后是指示对应于所述非相邻块之一的所述运动候选的索引。

10.如权利要求1至9中任一项所述的方法,其中从所述先前编码块推导的所述运动信息包括基于历史的运动矢量预测(HMVP)候选。

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

对于来自若干运动模型的一个或多个运动模型,使用与其他视频块相关的运动候选,为视频块确定解码的候选,其中所述运动候选包含来自所述一个或多个运动模型中的相同运动模型的两个或更多个运动候选;以及使用所述候选进行所述视频块的进一步处理。

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

对于来自若干运动模型的一个或多个运动模型,使用与其他视频块相关的运动候选,为视频块确定编码的候选,其中所述运动候选包含来自所述一个或多个运动模型中的相同运动模型的两个或更多个运动候选;以及使用所述候选进行所述视频块的进一步处理。

13.如权利要求11或12所述的方法,其中以第一语法元素和第二语法元素来信令通知所述运动候选,第一语法元素指示所述若干运动模型中的给定运动模型,第二语法元素指示与所述给定运动模型相关联的所述运动候选的候选索引。

14.如权利要求11或12所述的方法,其中选择所述运动候选之一作为为解码器侧的候选,并且其中所述视频块的比特流表示排除对应于所述运动候选的信令通知。

15.如权利要求11或12所述的方法,其中以所述运动候选的单个索引信令通知所述候选。

16.如权利要求11或12所述的方法,其中基于与相同运动模型相关联的空间相邻块确定所述运动候选。

17.如权利要求11或12所述的方法,其中基于与相同运动模型相关联的空间非相邻块确定所述运动候选。

18.如权利要求11或12所述的方法,其中所述运动候选包括具有相同运动模型的基于历史的运动矢量预测(HMVP)候选。

19.如权利要求11或12所述的方法,其中所述运动候选是基于不同块或与一个或多个基于历史的运动矢量预测(HMVP)候选相关联的查找表(LUT)的运动模型匹配的搜索、或者不同块或LUT的人工搜索,或者一个或多个默认运动矢量。

20.如权利要求11或12所述的方法,其中来自所述一个或多个运动模型中的每一个的允许的多个候选的对应大小是相等的。

21.如权利要求11或12所述的方法,其中来自所述一个或多个运动模型的允许的多个候选的对应大小包括不同的大小。

22.如权利要求11或12所述的方法,其中所述运动候选的对应的大小是预定的或在序列参数集(SPS)、图片参数集(PPS)或条带报头中信令通知。

23.如权利要求11或12所述的方法,其中所述运动候选的大小是基于所述视频块的大小,所述视频块的形状,所述视频块的编码模式,包括所述视频块的图片的图片类型,包括所述视频块的条带的条带类型或低延迟检查标志。

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

对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块进行解码的候选的搜索;以及使用所述候选进行所述视频块的进一步处理,

其中所述搜索的搜索顺序是基于所述一个或多个目标运动模型中的至少一个运动模型。

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

对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块进行编码的候选的搜索;以及使用所述候选进行所述视频块的进一步处理,

其中所述搜索的搜索顺序是基于所述一个或多个目标运动模型中的至少一个运动模型。

26.如权利要求24或25的所述的方法,其中所述搜索顺序对于不同运动模型是不同的。

27.如权利要求24或25所述的方法,其中所述搜索顺序是预定的。

28.如权利要求24或25所述的方法,其中所述搜索顺序被配置为对于不同视频块改变。

29.如权利要求24或25所述的方法,其中所述搜索顺序是基于与所述一个或多个运动模型不同的运动模型相关联的搜索顺序结果。

30.如权利要求24或25所述的方法,其中所述搜索顺序是基于所述视频块的大小、所述视频块的形状或所述视频块的编码模式中至少一个。

31.如权利要求1至30中任一项所述的方法,其中所述一个或多个运动模型中的每一个与对应的历史运动矢量(MV)列表相关联,并且其中所述历史MV列表提供所述运动候选。

32.如权利要求31所述的方法,其中所述一个或多个运动模型的第一子集与对应的历史MV列表相关联,其中所述一个或多个运动模型的第二子集不与对应的历史MV列表相关联,其中所述第一子集包括双向预测和对称模型,并且其中所述第二子集包括前向预测和后向预测模型。

33.如权利要求31所述的方法,其中在确定包括与所述一个或多个运动模型相关联的MV的帧间编码视频块被编码或解码时,更新所述历史MV列表。

34.如权利要求1至33中任一项所述的方法,其中扩展由cu_subtype_index指代的运动模型索引的编码,以允许除所述一个或多个运动模型中的五个运动模型之外还包含多个候选。

35.如权利要求34所述的方法,其中所述编码是基于截断一元二值化方法。

36.如权利要求34所述的方法,其中以至少一个上下文编码cu_subtype_index的编码中的每个bin。

37.如权利要求34所述的方法,其中以至少一个上下文编码cu_subtype_index的编码中的第一组bin,并且其中以旁路模式编码cu_subtype_index的编码中的第二组bin。

38.一种视频系统中的装置,包括处理器和其上具有指令的非瞬态存储器,其中由所述处理器执行所述指令时,使所述处理器实现权利要求1至37中的一个或多个中所列举的方法。

39.一种计算机程序产品,储存在非瞬态计算机可读介质上,所述计算机程序产品包含用于进行权利要求1至37中的一个或多个中所列举的方法的程序代码。

说明书 :

基于多运动模型的视频编码和解码

[0001] 相关申请的交叉引用
[0002] 根据适用的专利法和/或根据巴黎公约的规则,本申请及时要求2018年8月26日作为国际专利申请No.PCT/CN2018/102370提交的在先中国专利申请的优先权和权益。出于所有目的,国际专利申请No.PCT/CN2018/102370的全部公开通过引用整合为本申请公开的一部分。

技术领域

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

背景技术

[0004] 数字视频考虑互联网和其他数字通信网络上的最大带宽使用。随着连接的能够接收和显示视频的用户装置的数目增加,期望对于数字视频使用的带宽要求将继续增长。

发明内容

[0005] 本公开技术可以由视频解码器或编码器实施例使用,其中进行基于多运动模型的视频编码和/或解码。
[0006] 一个示例性方面中,公开了一种视频处理的方法。该方法包含:对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块确定解码的候选;以及使用候选进行视频块的进一步处理。
[0007] 在另一示例性方面中,公开了一种视频处理的方法。该方法包含:对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块确定编码的候选;以及使用候选进行视频块的进一步处理。
[0008] 在又一示例性方面中,公开了一种视频处理的方法。该方法包含:对于来自若干运动模型的一个或多个运动模型,使用与其他视频块相关的运动候选,为视频块确定解码的候选,其中运动候选包含来自一个或多个运动模型中的相同运动模型的两个或更多个运动候选;以及使用候选进行视频块的进一步处理。
[0009] 在又一示例性方面中,公开了一种视频处理的方法。该方法包含:对于来自若干运动模型的一个或多个运动模型,使用与其他视频块相关的运动候选,为视频块确定编码的候选,其中运动候选包含来自一个或多个运动模型中的相同运动模型的两个或更多个运动候选;以及使用候选进行视频块的进一步处理。
[0010] 在又一示例性方面中,公开了一种视频处理的方法。该方法包含:对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块进行解码的候选的搜索;以及使用候选进行视频块的进一步处理,其中搜索的搜索顺序是基于一个或多个目标运动模型中的至少一个运动模型。
[0011] 在又一示例性方面中,公开了一种视频处理的方法。该方法包含:对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块进行编码的候选的搜索;以及使用候选进行视频块的进一步处理,其中搜索的搜索顺序是基于一个或多个目标运动模型中的至少一个运动模型。
[0012] 在一些实施例中,方法可以优选地包含一个或多个运动候选,包含检查那些来自对应的非相邻空域或时域块或从先前编码块推导的运动信息,以便识别具有与一个或多个目标运动模型之一相同的运动模型的至少一个运动候选。
[0013] 在一些实施例中,方法可以优选地包含,在从包括空间相邻块的人工搜索过程识别的运动候选之前,至少一个运动候选被识别和使用为候选。
[0014] 在一些实施例中,方法可以优选地包含,在来自默认运动矢量(MV)构建过程的运动候选之前,至少一个运动候选被识别和使用为候选。
[0015] 在一些实施例中,方法可以优选地包含,在检查来自对应的相邻邻近块的一个或多个运动候选之后,在人工搜索过程期间检查一个或多个运动候选。
[0016] 在一些实施例中,方法可以优选地包含,若干运动模型包括双向模式、对称模式、后向模式和前向模式。
[0017] 在一些实施例中,方法可以优选地包含,一个或多个运动候选中的每一个属于与一个或多个目标运动模型不同的给定运动模型,并且其中若干运动模型还包括给定运动模型。
[0018] 在一些实施例中,方法可以优选地包含,一个或多个运动候选中的每一个属于相同的运动模型,并且其中相同的运动模型的指示被信令通知,并且之后是指示对应于非相邻块之一的运动候选的索引。
[0019] 在一些实施例中,方法可以优选地包含,从先前编码块推导的运动信息包括基于历史的运动矢量预测(HMVP)候选。
[0020] 在一些实施例中,方法可以优选地包含,运动候选被以第一语法元素和第二语法元素信令通知,第一语法元素指示若干运动模型中的给定运动模型,第二语法元素指示与给定运动模型相关联的运动候选的候选索引。
[0021] 在一些实施例中,方法可以优选地包含,运动候选之一选择为解码器侧的候选,并且其中视频块的比特流表示排除对应于运动候选的信令通知。
[0022] 在一些实施例中,方法可以优选地包含,候选以运动候选的单个索引信令通知。
[0023] 在一些实施例中,方法可以优选地包含,基于与相同运动模型相关联的空间相邻块确定运动候选。
[0024] 在一些实施例中,方法可以优选地包含,基于与相同运动模型相关联的空间非相邻块确定运动候选。
[0025] 在一些实施例中,方法可以优选地包含,运动候选包括具有相同运动模型的基于历史的运动矢量预测(HMVP)候选。
[0026] 在一些实施例中,方法可以优选地包含,运动候选是基于不同块或与一个或多个基于历史的运动矢量预测(HMVP)候选相关联的查找表(LUT)的运动模型匹配的搜索,或者不同块或LUT的人工搜索,或者一个或多个默认运动矢量。
[0027] 在一些实施例中,方法可以优选地包含,来自一个或多个运动模型中的每一个的允许的多个候选的对应的大小是相等的。
[0028] 在一些实施例中,方法可以优选地包含,来自一个或多个运动模型的允许的多个候选的对应的大小包括不同的大小。
[0029] 在一些实施例中,方法可以优选地包含,运动候选的对应的大小被预定或在序列参数集(SPS)、图片参数集(PPS)或条带报头中信令通知。
[0030] 在一些实施例中,方法可以优选地包含,运动候选的大小是基于视频块的大小,视频块的形状,视频块的编码模式,包括视频块的图片的图片类型,包括视频块的条带的条带类型或低延迟检查标志。
[0031] 在一些实施例中,方法可以优选地包含,搜索顺序对于不同运动模型是不同的。
[0032] 在一些实施例中,方法可以优选地包含,搜索顺序是预定的。
[0033] 在一些实施例中,方法可以优选地包含,搜索顺序配置为对于不同视频块改变。
[0034] 在一些实施例中,方法可以优选地包含,搜索顺序是基于与一个或多个运动模型不同的运动模型相关联的搜索顺序结果。
[0035] 在一些实施例中,方法可以优选地包含,搜索顺序是基于视频块的大小、视频块的形状或视频块的编码模式中至少一个。
[0036] 在一些实施例中,方法可以优选地包含,一个或多个运动模型中的每一个与对应的历史运动矢量(MV)列表相关联,并且其中历史MV列表提供运动候选。
[0037] 在一些实施例中,方法可以优选地包含,一个或多个运动模型的第一子集与对应的历史MV列表相关联,其中一个或多个运动模型的第二子集不与对应的历史MV列表相关联,其中第一子集包括双向预测和对称模型,其中第二子集包括前向预测和后向预测模型。
[0038] 在一些实施例中,方法可以优选地包含,在确定包括与一个或多个运动模型相关联的MV的帧间编码视频块被编码或解码时,历史MV列表被更新。
[0039] 在一些实施例中,方法可以优选地包含,由cu_subtype_index指代的运动模型索引的编码被扩展,以允许除一个或多个运动模型中的五个运动模型之外还包含多个候选。
[0040] 在一些实施例中,方法可以优选地包含,编码是基于截断一元二值化方法。
[0041] 在一些实施例中,方法可以优选地包含,cu_subtype_index的编码中的每个bin以至少一个上下文编码。
[0042] 在一些实施例中,方法可以优选地包含,cu_subtype_index的编码中的第一组bin以至少一个上下文编码,并且其中cu_subtype_index的编码中的第二组bin以旁路模式编码。
[0043] 在又一示例性方面中,上述方法可以由包括处理器的视频解码器装置实现。
[0044] 在又一示例性方面中,上述方法可以由包括处理器的视频编码器装置实现。
[0045] 在又一示例性方面中,这些方法可以体现为处理器可执行指令的形式,并储存在计算机可读程序介质中。
[0046] 本文档中进一步描述了这些和其他的方面。

附图说明

[0047] 图1是H.264/高级视频编码(AVC)中的MB分割的图示。
[0048] 图2示出了将编码块(CB)划分为预测块(PBs)的模式的示例。
[0049] 图3示出了将编码树块(CTB)细分为CBs的示例。
[0050] 图4示出了merge候选列表构建的推导过程的示例。
[0051] 图5示出了空域merge候选的位置的示例。
[0052] 图6示出了为空域merge候选的冗余检查考虑的候选对的示例。
[0053] 图7示出了Nx2N和2NxN分割的第二预测单元(PU)的位置的示例。
[0054] 图8示出了时域merge候选的运动矢量缩放的示例。
[0055] 图9示出了共位(co-located)图片中的时域merge候选的候选位置的示例。
[0056] 图10示出了组合的双向预测merge候选的示例。
[0057] 图11示出了运动矢量预测候选的推导过程的示例。
[0058] 图12示出了空域运动矢量候选的运动矢量缩放的示例。
[0059] 图13A和图13B示出了可能的递归CU/PU结构的示例。
[0060] 图14示出了AVS3中使用的当前块及其邻近块的示例。
[0061] 图15是视频处理装置的示例的框图。
[0062] 图16示出了视频编码器的示例性实现方式的框图。
[0063] 图17是其中可以实现本公开技术的示例性视频处理系统的框图。
[0064] 图18A-18F是视频处理方法的示例的流程图。

具体实施方式

[0065] 本文档提供各种技术,其可以由视频比特流的解码器使用,以改善解压缩的或解码的数字视频的质量。此外,视频编码器还可以在处理编码期间实现这些技术,以便重构用于进一步编码的解码的帧。
[0066] 本文档中使用了章节标题以便于理解,并且不将实施例和技术限制到对应的章节。因此,来自一个章节的实施例可以与来自其他章节的实施例组合。
[0067] 1、概述
[0068] 本专利文档涉及视频编码技术。具体地,其涉及图像/视频编码中的运动矢量编码。其可以应用于现有视频编码标准,比如HEVC,或待定的标准(多功能视频编码)、第三代中国音频和视频编码标准(AVS3)。其还可以应用于未来视频编码标准或视频编解码器。
[0069] 2、背景
[0070] 视频编码标准已经主要通过熟知的ITU-T和ISO/IEC标准的发展而演化。ITU-T产生H.261和H.263,ISO/IEC产生MPEG-1和MPEG-4Visual,并且两个组织联合产生了H.262/MPEG-2Video和H.264/MPEG-4Advanced Video Coding(AVC)和H.265/HEVC标准。自从H.262,视频编码标准是基于混合视频编码结构,其中采用时域预测加变换编码。
[0071] 分割结构
[0072] H.264/AVC中的分割树结构
[0073] 之前的标准中的编码层的核心是宏块,含有亮度样本的16×16块,并且,在4:2:0颜色取样的通常情况下,两个对应的色度样本的8×8块。
[0074] 帧内编码块使用空域预测来利用像素之间的空域相关性。定义了两种分割:16x16和4x4。
[0075] 帧间编码块通过估计图片之间的运动使用时域预测,而非空域预测。可以对于16x16宏块或其任意子宏块分割独立地估计运动,子宏块分割为:16x8、8x16、8x8、8x4、4x8、
4x4(见图2)。每个子宏块分割仅允许一个运动矢量(MV)。
[0076] 图1是H.264/Advanced Video Coding(AVC)中的MB分割的图示。
[0077] 2.1.2 HEVC中的分割树结构
[0078] 在HEVC中,通过使用指代为编码树的四叉树结构将CTU划分为CU,以适应于各种局部特性。在CU级进行使用帧间图片(时域)还是帧内图片(空域)预测来编码图片区域的决定。每个CU可以根据PU划分类型进一步划分为一个、两个或四个PU。在一个PU内,应用相同预测过程,并且在PU的基础上将相关信息传输到解码器。在通过基于PU划分类型应用预测过程获取残差块之后,CU可以根据相似于用于CU的编码树的另一四叉树结构被分割为变换单元(TU)。HEVC结构的一个关键特征是,其具有多个分割概念,包含CU、PU,以及TU。
[0079] 以下,使用HEVC的混合视频编码中涉及的各种特征被如下强调。
[0080] 1)编码树单元和编码树块(CTB)结构:HEVC中的类同的结构是编码树单元(CTU),其具有由编码器选择的大小,并且可以大于传统宏块。CTU由亮度CTB和对应的色度CTB以及语法元素构成。亮度CTB的大小L×L可以选择为L=16、32,或64样本,较大的大小典型地允许更好的压缩。然后,HEVC支持使用树结构和四叉树状信令通知将CTB分割为更小的块。
[0081] 2)编码单元(CU)和编码块(CB):CTU的四叉树语法指定其亮度和色度CB的大小和位置。四叉树的根与CTU相关联。因此,亮度CTB的大小是亮度CB的最大支持大小。CTU到亮度和色度CB的划分被联合地信令通知。一个亮度CB和通常两个色度CB,连同相关联的语法,形成编码单元(CU)。CTB可以含有仅一个CU或可以被划分以形成多个CU,并且每个CU具有到预测单元(PU)的相关联的分割和变换单元(TU)的树。
[0082] 3)预测单元和预测块(PB):在CU级进行使用帧间图片或帧内图片预测来编码图片区域的决定。PU分割结构具有在CU级的根。根据基本预测类型决定,然后亮度和色度CB可以被进一步划分大小,并且被从亮度和色度预测块(PB)预测。HEVC支持从64×64到4×4样本的可变PB大小。图2示出了MxM CU的允许的PB的示例。
[0083] 图2示出了将编码块(CB)划分为预测块(PB)的模式的示例。将CB划分为PB的模式,受到某些大小约束。对于帧内图片预测的CB,仅支持M x M和M/2x M/2。
[0084] 4)TU和变换块:使用块变换编码预测残差。TU树结构具有其在CU级的根。亮度CB残差可以与亮度变换块(TB)相同,或可以被进一步划分为更小的亮度TB。相同的适用于色度TB。对正方形TB大小4×4、8×8、16×16和32×32,定义类似于离散余弦变换(DCT)的整数基函数。对于亮度帧内图片预测残差的4×4变换,替换地指定从离散正弦变换(DST)的形式推导的整数变换。
[0085] 图3示出了编码树块(CTB)细分为CB的示例。CTB细分为CB[和变换块(TB)]。实线指示CB界线,并且点线指示TB界线。(a)具有其分割的CTB。(b)对应的四叉树。
[0086] 2.1.2.1 到变换块和单元的树结构分割
[0087] 对于残差编码,CB可以被递归分割为变换块(TB)。分割被残差四叉树信令通知。仅指定正方形CB和TB分割,其中块可以被递归四分划分,如图3中所示。对于大小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内或外)被用作帧内图片预测的参考数据。
[0088] 与之前的标准不同,HEVC设计允许TB跨帧间图片预测的CU的多个PB,以最大化四叉树结构TB分割的潜在编码效率收益。
[0089] 2.1.2.2 父和子节点
[0090] CTB被根据四叉树结构划分,四叉树结构的节点为编码单元。四叉树结构中的多个节点包含叶节点和非叶节点。叶节点在树结构中不具有子节点(即,叶节点不进一步划分)。非叶节点包含树结构的根节点。根节点对应于视频数据的初始视频块(例如,CTB)。对于多个节点中的每个相应的非根节点,相应的非根节点对应于作为对应于相应的非根节点的树结构中的父节点的视频块子块的视频块。多个非叶节点中的每个相应的非叶节点具有树结构中的一个或多个子节点。
[0091] 2.2 HEVC/H.265中的帧间预测
[0092] 每个帧间预测PU具有一个或两个参考图片列表的运动参数。运动参数包含运动矢量和参考图片索引。两个参考图片列表之一的使用还可以被使用inter_pred_idc信令通知。运动矢量可以显式地编码为相对于预测符的差量(delta),这样的编码模式称为AMVP模式。
[0093] 当以跳过模式编码CU时,一个PU与CU相关联,并且不存在显著残差系数,不存在编码运动矢量差量(delta)或参考图片索引。merge模式被指定,借此从邻近PU获取当前PU的运动参数,包含空域和时域候选。merge模式可以应用于任意帧间预测PU,不仅是跳过模式。merge模式的替代是运动参数的显式传输,其中每个PU显式地信令通知运动矢量、每个参考图片列表的对应的参考图片索引,以及参考图片列表使用。
[0094] 当信令通知指示要使用两个参考图片列表之一时,从样本的一个块产生PU。这称为‘单向预测’。单向预测对于P-条带和B-条带两者都可用。
[0095] 当信令通知指示两个参考图片列表都要使用时,从样本的两个块产生PU。这称为‘双向预测’。双向预测仅对于B-条带可用。
[0096] 以下文本提供现有HEVC实现方式中指定的帧间预测模式的细节。
[0097] 2.2.1 merge模式
[0098] 2.2.1.1 merge模式的候选的推导
[0099] 当使用merge模式预测PU时,指向merge候选列表中的条目的索引被从比特流解析,并且用于取回运动信息。此列表的构建在HEVC标准中指定,并且可以根据以下步骤的序列概括:
[0100] 步骤1:初始候选推导
[0101] 步骤1.1:空域候选推导
[0102] 步骤1.2:空域候选的冗余检查
[0103] 步骤1.3:时域候选推导
[0104] 步骤2:附加候选插入
[0105] 步骤2.1:双向预测候选的创建
[0106] 步骤2.2:零运动候选的插入
[0107] 这些步骤也示意性地在图4中绘示。对于空域merge候选推导,四个merge候选中的最大者在位于五个不同位置中的候选之中选择。对于时域merge候选推导,一个merge候选中的最大者在两个候选之中选择。因为对于每个PU在解码器处假设不变数目的候选,当候选的数目未达到条带报头中信令通知的merge候选的最大数目(MaxNumMergeCand)时,生成附加候选。由于候选的数目是不变的,使用截断一元二值化(TU)编码最佳merge候选的索引。如果CU的大小等于8,当前CU的全部PU共用单个merge候选列表,其与2N×2N预测单元的merge候选列表相同。
[0108] 以下,详述与前述步骤相关联的操作。
[0109] 2.2.1.2 空域候选推导
[0110] 在空域merge候选的推导中,四个merge候选中的最大者在位于图5中绘示的位置的候选之中选择。推导的顺序是A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任何PU都不可用(例如,因为其属于另一条带或片)或是帧内编码时,考虑位置B2。在位置A1添加候选之后,添加其余的候选经受冗余检查,冗余检查确保具有相同运动信息的候选被从列表排除,从而改善编码效率。为降低计算复杂度,不是全部可能的候选对都在提到的冗余检查中被考虑。反之,仅以图6中的箭头联接的对被考虑,并且仅如果用于冗余检查的对应的候选不具有相同的运动信息,才将候选添加到列表。重复运动信息的另一个来源是与2Nx2N不同的分割相关联的“第二PU”。作为示例,图7绘示了分别对于N×2N和2N×N的情况的第二PU。当当前PU被分割为N×2N时,位置A1处的候选对列表构建不被考虑。实际上,通过添加此候选将导致具有相同的运动信息的两个预测单元,其对于在编码单元中仅具有一个PU是冗余的。相似地,当当前PU被分割为2N×N时,位置B1不被考虑。
[0111] 2.2.1.3 时域候选推导
[0112] 在此步骤中,仅将一个候选添加到列表。特别地,在此时域merge候选的推导中,基于属于给定参考图片列表内的与当前图片具有最小POC差的图片的共位PU来推导缩放的运动矢量。在条带报头中显式地信令通知要用于推导共位PU的参考图片列表。获取用于时域merge候选的缩放运动矢量,如13中的点线所示,其使用POC距离tb和td从共位PU的运动矢量缩放,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为共位图片的参考图片与共位图片之间的POC差。时域merge候选的参考图片索引被设定为等于零。在HEVC规范中描述了缩放过程的实际实现。对于B-条带,获取并组合两个运动矢量,一个用于参考图片列表0,另一个用于参考图片列表1,以进行双向预测merge候选。
[0113] 图8示出了时域merge候选的运动矢量缩放的示例。
[0114] 在属于参考帧的共位PU(Y)中,时域候选的位置被选择在候选C0与C1之间,如图9中所绘示的。如果位置C0处的PU不可用、是帧内编码的,或在当前CTU之外,则使用位置C1。否则,在时域merge候选的推导中使用位置C0。
[0115] 2.2.1.4 附加的候选插入
[0116] 除空时(spatio-temporal)merge候选之外,存在两个附加类型的merge候选:组合双向预测merge候选和零merge候选。组合双向预测merge候选通过利用空时merge候选而生成。组合双向预测merge候选仅用于B-条带。组合双向预测候选通过将初始候选的第一参考图片列表运动参数与另一候选的第二参考图片列表运动参数组合而生成。如果两个元组(tuple)提供不同运动假说,则它们将形成新的双向预测候选。作为示例,图10绘示了当原始列表(左侧)中的两个候选(其具有mvL0和refIdxL0,或者mvL1和refIdxL1)被用于创建添加到最终列表(右侧)的组合双向预测merge候选时的情况。现有实现方式提供关于被考虑以生成这些附加merge候选的组合的许多规则。
[0117] 插入零运动候选以填充merge候选列表中的其余条目,并且因此达到MaxNumMergeCand容量。这些候选具有零空域位移(displacement)和参考图片索引,其从零开始并且每当新的零运动候选被添加到列表时增加。这些候选使用的参考帧的数目对于单向和双向预测分别是1和2。最后,不对这些候选进行冗余检查。
[0118] 2.2.1.5 并行处理运动估计区域
[0119] 为了加速编码过程,可以并行地进行运动估计,从而同时推导给定区域内的全部预测单元的运动矢量。从空域附近推导的merge候选可能会干扰并行处理,因为一个预测单元无法从相邻PU推导运动参数,直到其相关联的运动估计完成。为了减轻编码效率和处理延迟之间的权衡,HEVC定义了运动估计区域(MER),使用“log2_parallel_merge_level_minus2”语法元素在图片参数集中信令通知运动估计区域(MER)的大小。当定义了MER时,落入同一区域的merge候选被标记为不可用,并且因此在列表构建中不予考虑。
[0120] 7.3.2.3 图片参数集RBSP语法
[0121] 7.3.2.3.1 总体图片参数集RBSP语法
[0122]
[0123] 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的范围内,包含。
[0124] 变量Log2ParMrgLevel如下推导:
[0125] Log2ParMrgLevel=log2_parallel_merge_level_minus2+2     (7-37)[0126] 注释3–Log2ParMrgLevel的值指示merge候选列表的并行推导的内置容量。例如,当Log2ParMrgLevel等于6时,64x64块中含有的全部预测单元(PU)和编码单元(CU)的merge候选列表可以并行地推导。
[0127] 2.2.2 AMVP模式中的运动矢量预测
[0128] 运动矢量预测利用运动矢量与邻近PU的空时相关性,其用于运动参数的显式传输。其通过首先检查左、上时间上邻近PU位置的可用性,删除冗余候选并添加零矢量以使候选列表为不变长度,从而构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测符,并传输指示所选择的候选的对应的索引。与merge索引信令通知相似地,最佳运动矢量候选的索引是使用截断一元编码的。在这种情况下要编码的最大值是2(见图6)。在以下的章节中,提供了关于运动矢量预测候选的推导过程的细节。
[0129] 2.2.2.1 运动矢量预测候选的推导
[0130] 图11概括了运动矢量预测候选的推导过程。
[0131] 在运动矢量预测中,考虑了两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,基于位于五个不同位置中的每个PU的运动矢量,最终推导两个运动矢量候选,如图5中所绘示的。
[0132] 对于时域运动矢量候选推导,从两个候选中选择一个运动矢量候选,其被基于两个不同共位位置推导。在构成空时候选的第一列表之后,移除列表中的重复运动矢量候选。如果潜在候选的数目大于二,则相关联的参考图片列表内的参考图片索引大于1的运动矢量候选被从列表移除。如果空时运动矢量候选的数目小于二,则附加零运动矢量候选被添加到列表。
[0133] 2.2.2.2 空域运动矢量候选
[0134] 在空域运动矢量候选的推导中,在五个潜在候选之中考虑两个候选中的最大者,其从位于如图5中所绘示的位置中的PU推导,这些位置与运动merge的位置相同。当前PU的左侧的推导的顺序定义为A0、A1,以及缩放的A0、缩放的A1。当前PU的上侧的推导的顺序定义为B0、B1、B2、缩放的B0、缩放的B1、缩放的B2。因此对于每侧存在可以用作运动矢量候选的四种情况,两种情况不需要使用空域缩放,并且两种情况使用空域缩放。四种不同的情况概括如下。
[0135] 没有空域缩放
[0136] (1)相同的参考图片列表,并且相同的参考图片索引(相同POC)
[0137] (2)不同参考图片列表,但相同的参考图片(相同POC)
[0138] 空域缩放
[0139] (3)相同的参考图片列表,但不同参考图片(不同POC)
[0140] (4)不同参考图片列表,并且不同参考图片(不同POC)
[0141] 首先检查非空域缩放情况,然后检查空域缩放。当POC在邻近PU的参考图片与当前PU的参考图片之间不同时,考虑空域缩放,而无论参考图片列表如何。如果左侧候选的全部PU都不可用或者是帧内编码的,则允许对上运动矢量进行缩放,以帮助左和上MV候选的并行推导。否则,上运动矢量不允许空域缩放。
[0142] 图14示出了空域运动矢量候选的运动矢量缩放的示例。
[0143] 在空域缩放过程中,邻近PU的运动矢量以与时域缩放相似的方式缩放,如图12所绘示的。主要差异是,参考图片列表和当前PU的索引作为输入给定;实际缩放过程与时域缩放的过程相同。
[0144] 2.2.2.3 时域运动矢量候选
[0145] 除参考图片索引推导之外,时域merge候选的推导的全部过程与空域运动矢量候选的推导相同(见图4)。参考图片索引被信令通知到解码器。
[0146] 2.2.2.4 Merge/AMVP信息的信令通知
[0147] 对于AMVP模式,四部分被在比特流中信令通知,即,预测方向、参考索引、MVD和mv预测符候选索引(在以下语法表中强调)。而对于merge模式,仅merge索引可能需要被信令通知。
[0148] 语法表:
[0149] 7.3.6.1通常条带分段报头语法
[0150]
[0151] 7.3.8.6预测单元语法
[0152]
[0153] 7.3.8.9运动矢量差语法
[0154]
[0155] 语义
[0156] five_minus_max_num_merge_cand指定5减去条带中支持的mergeMVP候选的最大数目。mergeing MVP候选的最大数目,MaxNumMergeCand如下推导:
[0157] MaxNumMergeCand=5-five_minus_max_num_merge_cand    (7-53)
[0158] MaxNumMergeCand的值应在1至5的范围内,包含。
[0159] merge_flag[x0][y0]指定是否从邻近帧间预测的分割推断当前预测单元的帧间预测参数。阵列索引x0、y0指定所考虑的预测块的左上亮度样本相对于图片的左上亮度样本的的位置(x0,y0)。
[0160] 当merge_flag[x0][y0]不存在时,其如下推断:
[0161] 如果CuPredMode[x0][y0]等于MODE_SKIP,则merge_flag[x0][y0]被推断为等于1。
[0162] 否则,merge_flag[x0][y0]被推断为等于0。
[0163] merge_idx[x0][y0]指定merging候选列表的merging候选索引,其中x0、y0指定考虑的预测块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。
[0164] 2.3 AVS2中的编码结构
[0165] 相似于HEVC,AVS2也采用基于CU、PU和TU的编码/预测/变换结构的概念。首先,图片被分割为最大编码单元(LCU),其由2Nx2N样本构成。一个LCU可以为单个CU或可以被以四叉树分割结构划分为四个更小的CU;CU可以被递归划分,直到其达到最小CU大小限制,如图13A中所示。一旦Cu层级树的划分完成,叶节点CU可以被进一步划分为PU。PU是帧内和帧间预测的基本单元,并且允许多种不同形状以编码不规则图像样式,如图13B所示。在图13A中,示出了AVS2中的最大可能递归CU结构,例如LCU大小=64,最大层级深度=4;图13B示出了AVS2中的跳过、帧内模式,以及帧间模式的可能的PU划分,包含对称和非对称预测(对于帧内预测,d=1,2;并且,对于帧间预测d=0,1,2)。
[0166] 2.4 AVS2/AVS3中的帧间预测
[0167] 相似于HEVC,存在两个帧间编码帧类型,P帧和B帧。P帧是使用单个参考图片前向预测帧,而B帧是由使用两个参考帧的前向、后向,双向预测和对称预测构成的双向预测帧。在B帧中,除常规前向、后向、双向和跳过/直接预测模式之外,对称预测定义为特别双向预测模式,其中仅一个前向运动矢量(MV)被编码,并且基于图片顺序计数器(POC)距离从前向MV推导后向MV。对称模式可以高效地表示对象的线性运动模型。
[0168] 2.4.1编码单元的语法和语义
[0169]
[0170]
[0171] 以B帧作为示例,基于CuTypeIndex和ShapeOfPartitionIndex和以下表81推导CU类型(CuType),预测分割类型和PU预测模式(PuPredMode)。
[0172] 表81.CU类型和B帧的相关信息
[0173]
[0174]
[0175] 表82.subCU类型和B帧的相关信息
[0176]
[0177] 2.4.2 基于多运动模型的SKIP/DIRECT模式
[0178] 当前块的SKIP模式的运动信息被从先前解码的块推导,并且不编码残差信息。相似于SKIP模式,DIRECT模式不具有要传输的运动信息,而预测残差和模式信息被传输。
[0179] 作为传统SKIP和DIRECT模式的扩展,其中仅利用来自一个时域预测块(CuSubtypeIdx等于0)的运动信息,在AVS2和AVS3中引入四个基于附加运动模型的SKIP和DIRECT模式,即双向DIRECT/SKIP模式(CuSubtypeIdx等于1),对称DIRECT/SKIP模式(CuSubtypeIdx等于2)、后向DIRECT/SKIP模式(CuSubtypeIdx等于3)和前向DIRECT/SKIP模式(CuSubtypeIdx等于4)。
[0180] 设计基于优先级的运动信息推导方法,其考虑块的运动模型(预测方向)。将较高优先级分配给具有与当前块相同的运动模型的邻近块的运动信息。
[0181] 对于基于附加运动模型的四个跳过/直接模式中的每一个,运动信息推导过程可以被划分为按顺序进行的三个步骤。
[0182] 运动模型匹配搜索:如图14所示,以该顺序进行在位置F,G,C,A,B,D处找到具有与当前块相同的运动模型的邻近块的初始处理。一旦找到与当前块共用相同运动模型的第一块,则将该块的运动信息分配给当前块。
[0183] 人工搜索:在不存在与当前块共享相同运动模型的邻近块的情况下(即,没有从步骤1找到结果),进行人工构建当前块的运动信息的第二过程。此过程因运动模型而异。
[0184] 对于双向DIRECT/SKIP模式,计数以前向方向编码多少空域邻近者,用Nfw指代,以及以后向方向编码多少空域邻近者,用Nbw表示。如果Nfw和Nbw都等于或大于1,则将第一前向和第一后向预测块的运动信息的组合分配给当前块。搜索顺序与第一步相同,即从位置F,G,C,A,B和D。
[0185] 对于对称DIRECT/SKIP模式,按顺序执行以下步骤:
[0186] 计算用双向编码多少空域邻近者,用Nbi指代。
[0187] 如果Nbi等于或大于2,则以F,G,C,A,B和D的扫描顺序将最后一个块的邻近双向预测块的运动信息的运动信息(其等于D,B,A,C,G和F的扫描顺序中的第一块)分配给当前块。
[0188] 否则(如果Nbi小于2)如果Nbw等于或大于1(其中Nbw指代用后向方向编码了多少空域邻近者),则第一后向预测块的运动信息的后向运动矢量(由MvE1指代)被分配给当前块,并且前向运动矢量MvE0被设定为等于Clip3(-32768,32767,-MvE1)。搜索顺序与第一步骤相同,即从位置F,G,C,A,B和D。
[0189] 否则(如果Nbi小于2且Nbw小于1),如果Nfw等于或大于1(其中Nfw指代用前向方向编码多少空域邻近者),则第一前向预测块的运动信息的前向运动矢量(由MvE0指代)被分配给当前块,并后向运动矢量MvE1被设定为等于Clip3(-32768,32767,-MvE0)。搜索顺序与第一步骤相同,即从位置F,G,C,A,B和D。
[0190] 对于后向DIRECT/SKIP模式,计数用双向编码多少空域邻近者,用Nbi指代。将最后邻近双向预测块的后向运动信息分配给当前块。搜索顺序与第一步骤相同,即从位置F,G,C,A,B和D。
[0191] 对于前向DIRECT/SKIP模式,计数用双向编码多少空域邻近者,由Nbi指代。将最后邻近双向预测块的前向运动信息分配给当前块。搜索顺序与第一步骤相同,即从位置F,G,C,A,B和D。
[0192] 默认MV构建:仅当步骤1)和步骤2)都未能找到可用运动矢量时才调用该步骤。在AVS2/AVS3中,以下适用:
[0193] 对于双向/对称跳过/直接模式,对前向和后向方向两者设定零运动矢量。
[0194] 对于后向DIRECT/SKIP模式,后向运动矢量被设定为零MV,即(0,0)
[0195] 对于前向DIRECT/SKIP模式,前向运动矢量被设定为零MV,即(0,0)。
[0196] 由于存在多种SKIP和DIRECT模式,因此需要在信令通知SKIP和DIRECT模式的运动模型中携带一些辅助信息(side information)。在AVS2参考软件RD3.0中,速率-失真优化方法用于选择模式以编码块。在计算新SKIP和DIRECT模式的RD成本时,考虑辅助信息以产生更准确的成本值。
[0197] 3.由实施例解决的问题的示例
[0198] 基于AVS2/AVS3多运动模型的跳过/直接模式采用当前块与其相邻的邻近块之间的运动模型的相关性。然而,它不能利用当前块和非相邻块之间的相似性。可以使用历史中先前编码的运动信息,以用于更好的运动矢量预测。类似的想法也可以应用于多方向跳过/直接模式,其中一些细节将被开发以适应AVS2/AVS3中的设计。
[0199] 另外,对于每个运动模型,仅允许一个候选,这可能限制运动预测的编码增益。
[0200] 4.本公开技术的示例实施例
[0201] 为了解决该问题,若干方法包括使用一个或多个查找表(LUT,以存储历史中的运动信息)来预测块的运动信息。可以在各种实施例中实现使用存储有至少一个运动候选的一个或多个查找表的基于LUT的运动矢量预测技术,以预测块的运动信息,从而提供具有更高编码效率的视频编码。每个LUT可以包括一个或多个运动候选,每个运动候选与相应的运动信息相关联。运动候选的运动信息可包含预测方向、参考索引/图片、运动矢量、LIC标志、仿射标志、运动矢量推导(MVD)精度,和/或MVD值中的部分或全部。运动信息还可以包含块位置信息,以指示运动信息来自哪里。
[0202] 在以下针对各种实现所描述的示例中阐明了基于本公开的技术的基于LUT的运动矢量预测(其可以增强现有和未来的视频编码标准)。因为LUT允许基于历史数据(例如,已经处理的块)执行编码/解码过程,所以基于LUT的运动矢量预测也可以被称为基于历史的运动矢量预测(HMVP)方法。在基于LUT的运动矢量预测方法中,在编码/解码过程期间保持具有从先前编码块推导的运动信息的一个或多个表。在一个块的编码/解码期间,可以将LUT中的相关联的运动信息添加到运动候选列表(例如,AMVP/merge列表),并且在编码/解码一个块之后,可以更新LUT。然后使用更新的LUT来编码随后的块。也就是说,LUT中的运动候选的更新是基于块的编码/解码顺序。以下示例应被视为解释总体概念的示例。不应以狭隘的方式解释这些示例。此外,这些示例可以以任何方式组合。
[0203] LUT的条目是运动候选。请注意,使用HMVP(基于历史的运动矢量预测符)候选来指示存储在查找表中的一组运动信息。
[0204] 以下详细的实施例示例应被视为解释总体概念的示例。不应以狭义的方式解释这些实施例。此外,这些实施例可以以任何方式组合。
[0205] 1.对于给定运动模型,来自属于相同运动模型的HMVP候选或非相邻空域块或时域块的运动候选可以用作基于多运动模型的方法(例如,AVS2中的SKIP/DIRECT模式设计)的候选。
[0206] a.在一个示例中,在进行人工搜索过程之前,HMVP候选或来自非相邻空域块或时域块的运动候选可以被按顺序检查。如果存在来自属于相同运动模型的一个HMVP候选或非相邻空域块或时域块的一个运动候选,其被标记为最终运动候选,并且搜索过程终止。
[0207] b.在一个示例中,在进行默认MV构建过程之前,HMVP候选或来自非相邻空域块或时域块的运动候选可以被按顺序检查。如果存在来自属于相同运动模型的一个HMVP候选或非相邻空域块或时域块的一个运动候选,其被标记为最终运动候选,并且搜索过程终止。
[0208] c.在一个示例中,可以在人工搜索过程中考虑HMVP候选或来自非相邻空域块或时域块的运动候选。例如,可以在位置F,G,C,A,B和D之后搜索HMVP候选。在此情况下,一个HMVP候选或来自非相邻空域块或时域块的运动候选可以被视为来自相对位置的一个候选,如来自相邻空域块的那些候选。
[0209] 2.基于多运动模型的方法中定义的运动模型(例如,AVS2中的SKIP/DIRECT模式设计)可以被进一步扩展,以覆盖HMVP的使用。也就是说,HMVP候选可以被视为新的运动模型,并且被添加到基于多运动模型的方法的候选列表中。
[0210] a.在一个示例中,储存HMVP候选的LUT的每个条目被视为新的运动模型。
[0211] b.替代地,全部HMVP候选被视为一个新的运动模型。如果运动模型的指示表示其属于HMVP类别,该指示可以首先被信令通知,之后是HMVP候选的索引。
[0212] 3.基于多运动模型的方法中定义的运动模型(例如,AVS2中的SKIP/DIRECT模式)可以被进一步扩展,以覆盖来自非相邻块的运动信息的使用。也就是说,来自非相邻块的运动信息可以被视为新的运动模型,并且被添加到基于多运动模型的方法中的候选列表中。
[0213] a.在一个示例中,非相邻块的每个运动候选被视为新的运动模型。
[0214] b.替代地,来自非相邻块的全部运动候选被视为一个新的运动模型,命名为非相邻运动类别。如果运动模型的指示表示其属于非相邻运动类别,则该指示可以首先被信令通知,之后是来自非相邻块的运动候选的索引。
[0215] 4.可以在AVS2/AVS3中的现有运动模型之前/之后插入新的运动模型。
[0216] a.在一个示例中,在全部现有运动模型之后插入全部HMVP候选。
[0217] b.替代地,在AVS2/AVS3中的一些现有运动模型之前插入一些HMVP候选,而在AVS2/AVS3中的全部现有运动模型之后插入其他HMVP候选。
[0218] c.候选的整个列表(时域、双向、对称、后向和前向、HMVP和/或非相邻块的运动模型)可以在每个模型找到其相关候选之后被重新排序。
[0219] i.在一个示例中,如双向、对称、后向和前向的全部或多个运动模型中的零运动候选可以被来自其他运动模型的运动候选替代。
[0220] 5.相似于PCT/CN2018/093663和PCT/CN2018/093987中的HMVP的设计,来自先前编码块的编码运动信息可以被用作编码当前块的预测符。然而,基于运动模型,编码运动信息被分类并插入到多个查找表。
[0221] a.在一个示例中,HMVP过程中使用的运动模型的类别与基于多运动模型的方法(例如,AVS2中的SKIP/DIRECT模式)中使用的那些相同,即,双向、对称方向、后向、前向。
[0222] b.替代地,SKIP/DIRECT模式中定义的运动模型的仅一部分在HMVP过程中使用,以降低储存运动模型的全部类型的HMPV候选所需的存储器。
[0223] 6.并非如在基于多运动模型的方法(例如,AVS2的SKIP/DIRECT模式)中对于每个运动模型仅允许一个候选,对于一个运动模型允许多个候选。也就是说,对于每个运动模型可以构建候选列表。
[0224] a.在一个示例中,多个候选的索引可以被进一步信令通知。在此情况下,涉及两个语法元素(第一个指示运动模型,并且第二个指示对应于选择的运动模型的候选列表的候选索引)。
[0225] b.替代地,可以在解码器侧选择多个候选之一,而不信令通知。
[0226] c.替代地,仅构建一个候选列表,然而,可以添加具有相同运动模型的多个候选。在此情况下,可以仅信令通知一个索引。
[0227] d.在一个示例中,可从从具有相同运动模型的相邻空域邻近块推导多个候选。
[0228] e.在一个示例中,可从具有相同运动模型的非相邻空域邻近块推导多个候选。
[0229] f.在一个示例中,可从具有相同运动模型的HMVP候选推导多个候选。
[0230] g.在一个示例中,可从SKIP/DIRECT模式中使用的三个步骤(运动模型匹配的搜索、人工搜索、默认MV)任一个推导多个候选。
[0231] h.全部运动模型的允许的多个候选的大小可以是相同的。
[0232] i.替代地,不同运动模型的允许的多个候选的大小可以是不同的。
[0233] j.允许的多个候选的(多个)大小可以是预定的或在序列参数集/图片参数集/条带报头等中信令通知的。
[0234] k.允许的多个候选的(多个)大小可以进一步取决于块大小/块形状/编码模式(跳过或直接)/图片或条带类型/低延迟检查标志。
[0235] 7.基于多运动模型的方案中的搜索顺序和/或搜索点(空域/时域邻近块)可以取决于运动模型。
[0236] a.在一个示例中,对于不同运动模型可以使用不同搜索顺序。顺序可以是预定的。
[0237] b.在一个示例中,搜索顺序可以依块而异以适应性地改变。
[0238] c.在一个示例中,搜索顺序可以基于另一运动模型的搜索结果适应性地改变。
[0239] d.在一个示例中,基于多运动模型的方案中的搜索顺序和/或搜索点(空域/时域邻近块)可以取决于块形状/块大小/编码模式等。
[0240] 8.可以在HMVP候选与来自非相邻空域块或时域块的候选之间应用修剪。
[0241] a.如果两个候选是相同的或运动矢量差小于(多个)阈值,可以将两者中的仅一个添加到候选列表。
[0242] 9.可以在HMVP候选与从现有基于多模型运动的SKIP/DIRECT模式设计推导的候选之间应用修剪。
[0243] a.相似地,可以在来自非相邻空域块或时域块的候选与从现有SKIP/DIRECT模式设计推导的候选之间之间应用修剪。
[0244] b.在一个示例中,从现有SKIP/DIRECT模式设计推导的候选指示在章节2.4.2中的‘运动模型匹配的搜索’过程中找到的候选。
[0245] c.在一个示例中,从现有SKIP/DIRECT模式设计推导的候选指示在章节2.4.2中的‘默认MV构建’过程之后找到的候选。
[0246] d.在一个示例中,如果从现有基于多模型运动的SKIP/DIRECT模式设计推导的候选是来自‘人工搜索过程’或‘默认MV构建过程’,则修剪过程被跳过。
[0247] 10.在一个示例中,仅在相同运动模型的MV候选之间进行修剪操作。
[0248] 11.在一个示例中,存在每个运动模型的单独历史MV列表。当搜索运动模型时,该模型的历史MV列表中的MV候选可以被添加到merge候选列表。
[0249] a.在一个实施例中,仅对诸如双向预测模型和对称预测模型的一些运动模型建立历史MV列表,而不对诸如前向预测模型和后向预测模型的其他一些模型建立。
[0250] b.在一个实施例中,运动模型的历史MV列表仅在用该运动模型的MV编码/解码帧间编码块之后更新。
[0251] 12.cu_subtype_index的编码可以被扩展,以允许其包含除五个现有运动模型之外的多个候选。
[0252] a.在一个示例中,可以利用截断二值化方法。
[0253] b.在一个示例中,可以以上下文编码每个bin。
[0254] c.在一个示例中,可以以上下文编码部分bin,并且可以以旁路模式编码其余bin。
[0255] 13.允许的运动模型的总数可以是预定的。
[0256] a.替代地,允许的运动模型的总数可以在序列报头、图片报头、条带报头中信令通知。
[0257] b.在一个示例中,每个HMVP候选就允许的运动模型的信令通知而言可以被视为一个运动模型。
[0258] 14.提出了当以HMVP候选(即,来自储存来自先前编码块的运动信息的查找表)编码块时,这样的候选不用于更新LUT。
[0259] 图15是一种视频处理装置1500的框图。装置1500可用于实现本文描述的一个或多个方法。装置1500可以实现为智能手机、平板电脑、计算机、物联网(IoT)接收器等。装置1500可以包含一个或多个处理器1502、一个或多个存储器1504和视频处理硬件1506。(多个)处理器1502可以被配置为实现本文档中描述的一种或多种方法。存储器(多个存储器)
1504可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件1506可用于以硬件电路实现本文档中描述的一些技术。
[0260] 图16是视频编码器的示例实现方式的框图。图16示出编码器实现方式具有内置的反馈路径,其中视频编码器还进行视频解码功能(重构视频数据的压缩表示,以用于下一视频数据的编码)。
[0261] 图17是示出可以实现本文公开的各种技术的示例视频处理系统1700的框图。各种实现方式可以包含系统1700的一些或所有组件。系统1700可以包含用于接收视频内容的输入1702。视频内容可以以原始或未压缩格式接收,例如8或10比特多分量像素值,或者可以是压缩或编码格式。输入1702可以表示网络接口、外围总线接口或存储接口。网络接口的示例包含诸如以太网、无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
[0262] 系统1700可以包含编码组件1704,其可以实现本文档中描述的各种编码或编码方法。编码组件1704可以减少从输入1702到编码组件1704的输出的视频的平均比特率,以产生视频的编码表示。因此,编码技术有时被称为视频压缩或视频转码技术。编码组件1704的输出可以被存储,或者经由连接的通信传输,如组件1706所表示的。在输入1702处接收的视频的存储或通信的比特流(或编码)表示可以由组件1708使用,以生成发送到显示接口1710的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应当理解,编码工具或操作在编码器处使用,并且逆转编码结果的对应的解码工具或操作将由解码器进行。
[0263] 外围总线接口或显示接口的示例可以包含通用串行总线(USB)或高清晰度多媒体接口(HDMI)或Displayport等。存储接口的示例包含SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现为各种电子装置,诸如移动电话、膝上型电脑、智能电话或能够执行数字数据处理和/或视频显示的其他装置。
[0264] 图18A是用于视频处理的示例性方法1800的流程图。方法1800包含,在步骤1802,对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块确定解码的候选。
[0265] 方法1800包含,在步骤1804,使用候选进行视频块的进一步处理。
[0266] 图18B是视频处理的示例性方法1810的流程图。方法1810包含,在步骤1812,对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块确定编码的候选。
[0267] 方法1810包含,在步骤1814,使用候选进行视频块的进一步处理。
[0268] 图18C是视频处理的示例性方法1820的流程图。方法1820包含,在步骤1822,对于来自若干运动模型的一个或多个运动模型,使用与其他视频块相关的运动候选,为视频块确定解码的候选,运动候选包含来自一个或多个运动模型的相同运动模型的两个或更多个运动候选。
[0269] 方法1820包含,在步骤1824,使用候选进行视频块的进一步处理。
[0270] 图18D是视频处理的示例性方法1830的流程图。方法1830包含,在步骤1832,对于来自若干运动模型的一个或多个运动模型,使用与其他视频块相关的运动候选,为视频块确定编码的候选,运动候选包含来自一个或多个运动模型的相同运动模型的两个或更多个运动候选。
[0271] 方法1830包含,在步骤1834,使用候选进行视频块的进一步处理。
[0272] 图18E是视频处理示例性方法1840的流程图。方法1840包含,在步骤1842,对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块进行解码的候选的搜索。
[0273] 方法1840包含,在步骤1844,使用候选进行视频块的进一步处理。在一些实施例中,搜索的搜索顺序是基于一个或多个目标运动模型中的至少一个运动模型。
[0274] 图18F是视频处理的示例性方法1850的流程图。方法1850包含,在步骤1852,对于来自若干运动模型的一个或多个目标运动模型,使用来自对应的非相邻空域或时域块或从先前编码块推导的运动信息的一个或多个运动候选,并基于它们的相关联的运动模型,为视频块进行编码的候选的搜索。
[0275] 方法1850包含,在步骤1854,使用候选进行视频块的进一步处理。在一些实施例中,搜索的搜索顺序是基于一个或多个目标运动模型中的至少一个运动模型。
[0276] 上述进行视频块的进一步处理包括执行所述视频块与视频块的比特流表示之间的转换。
[0277] 通过将所公开的技术的实施例整合到HEVC参考软件中而实现的改进在下面的实验结果中示出。
[0278] 下表示出了所提出的方案的 差量(delta)比特率(或BD率)增益和处理时间影响。遵循参考软件TAVS3-1.0上的常见的测试条件,对RA和LDP配置进行不同组的仿真(具有不同的编码器复杂度)。例如,“RA”表示对应于被设计为在编码视频数据中使能相对频繁的随机访问点而不太强调延迟的最小化的一组编码条件的随机访问。相反,“LDP”表示使用P帧的低延迟条件,其被设计为使能交互式实时通信,而不太强调随机访问的易用性。在全部测试中,表大小S设定为8,并应用约束FIFO规则(删除并向候选表添加条目)。
[0279] 表1.在Nrdo=3的RA之下的HMVP的性能
[0280]Seq BDR-YBDR-UBDR-V Enc Dec
720p -1.67%-0.44%-0.77% 97.80% 103.32%
1080p -1.16%-0.89%-1.01% 97.84% 104.17%
4K -2.81%-1.13%-0.66% 96.32% 100.87%
All -1.88%-0.82%-0.81% 97.32% 102.78%
[0281] 表2.在Nrdo=4的RA之下的HMVP的性能
[0282]Seq BDR-YBDR-UBDR-V Enc Dec
720p -1.86%-0.41%-0.85% 104.06% 100.67%
1080p -1.44%-1.28%-1.22% 102.40% 103.63%
4K -3.13%-1.45%-1.02% 101.44% 100.70%
All -2.14%-1.04%-1.03% 102.63% 101.67%
[0283] 表3.在Nrdo=5的RA之下的HMVP的性能
[0284]Seq BDR-YBDR-UBDR-V Enc Dec
720p -1.86%-0.62%-0.75% 109.19% 102.19%
1080p -1.78%-1.57%-1.34% 107.96% 104.60%
4K -2.27%-1.20%-0.86% 106.36% 101.60%
All -1.97%-1.13%-0.99% 107.83% 102.80%
[0285] 表4.在Nrdo=2的LDP之下的HMVP的性能
[0286]Seq BDR-YBDR-UBDR-V Enc Dec
720p -1.83%-0.64%-0.86% 97.01% 103.70%
1080p -2.21%-1.77%-1.72% 98.57% 103.77%
4K -2.14%-2.34%-2.08% 95.50% 103.63%
All -2.06%-1.58%-1.55% 97.03% 103.70%
[0287] 表5.在Nrdo=3的LDP之下的HMVP的性能
[0288]Seq BDR-YBDR-UBDR-V Enc Dec
720p -2.40%-0.74%-0.63% 101.87% 104.28%
1080p -2.85%-2.34%-2.33% 103.21% 105.12%
4K -2.17%-2.83%-2.52% 100.42% 105.40%
All -2.48%-1.97%-1.83% 101.83% 104.93%
[0289] 当存在多达8个HMVP候选时,与TAVS3-1.0参考软件模型相比,上述仿真结果表明,本文档中描述的一些实施例以3、4或5全速率失真优化(RDO)过程分别实现了随机访问(RA)的BD率降低1.88%、2.14%、1.94%。对于LDP情况,提出的HMVP以2或3完整RDO过程分别实现了2.06%和2.48%的BD率降低。注意到较小的编码和解码时间影响,并且在某些情况下,与TAVS2-1.0相比,编码器运行时间甚至可以减少。
[0290] 本文档中描述的所公开的和其他方案、示例、实施例、模块和功能操作可以实现为数字电子电路,或者计算机软件、固件或硬件,包含本文档中公开的结构及其结构等同,或它们中的一个或多个的组合。所公开的和其他实施例可以实现为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储器件、机器可读存储基板、存储器器件,影响机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的全部装置、设备和机器,包含例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,装置还可以包含为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统,或者它们的一个或多个的组合。传播信号是人工生成的信号,例如机器生成的电信号、光信号或电磁信号,其被生成以编码信息,从而传输到合适的接收器装置。
[0291] 计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包含编译或解释语言,并且可以以任何形式部署,包含如独立程序或适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码各部分的文件)。计算机程序可以部署为在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
[0292] 本文档中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
[0293] 作为示例,适合于执行计算机程序的处理器包含通用和专用微处理器,以及任何类型的数字计算机的任意一个或多个处理器。总体上,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。总体上,计算机还将包含或可操作地耦合至存储数据的一个或多个大容量存储装置,以从之接收数据或向其传输数据,例如磁盘、磁光盘或光盘。然而,计算机不一定需要这样的装置。适用于存储计算机程序指令和数据的计算机可读介质包含所有形式的非易失性存储器、介质和存储器装置,包含例如半导体存储器装置,例如EPROM、EEPROM和闪存装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0294] 虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为特定技术的特定实施例特有的特征的描述。在本专利文件中单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在某些情况下可以从组合中去除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。
[0295] 类似地,尽管在附图中以特定顺序描绘了操作,但是这不应该被理解为实现期望的结果要求以所示的特定顺序或按序列顺序执行这样的操作,或者执行所有示出的操作。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
[0296] 仅描述了几个实现方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实现方式、增强和变体。