用于帧间预测的角度加权预测的制作方法

文档序号:32442047发布日期:2022-12-06 22:21阅读:66来源:国知局
用于帧间预测的角度加权预测的制作方法
用于帧间预测的角度加权预测
1.相关申请的交叉引用
2.本公开要求于2020年6月6日提交的、申请号为63/035,695的美国临时申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
3.本发明通常涉及视频处理,尤其涉及利用帧间预测中的角度加权预测模式来进行视频帧预测的方法和装置。


背景技术:

4.视频是一组捕捉视觉信息的静态图像(或“帧”)。为了减少内存存储空间和传输带宽,可以在存储或传输之前对视频进行压缩,然后在显示之前进行解压缩。压缩过程通常称为编码,解压缩过程通常称为解码。有各种使用标准化视频编码技术的视频编码格式,例如,基于预测、变换、量化、熵编码和/或环路滤波。视频编码标准,诸如高效视频编码(hevc/h.265)标准、通用视频编码(vvc/h.266)标准和音视频编码标准(audio video coding standard,avs)标准等,规定了具体的视频编码格式,由标准化组织制定。随着越来越多的先进视频编码技术在视频标准中被采用,提高了新的视频编码标准的编码效率。


技术实现要素:

5.本公开的实施例提供一种视频编码方法,包括接收一个或多个视频帧;通过用信号通知两项运动信息,使用用于帧间预测的角度加权预测(angular weighted prediction,awp)模式编码一个或多个视频帧,该两项运动信息包括运动矢量差值(motion vector difference,mvd)和参考索引。
6.本公开的实施例提供一种视频解码方法,包括:接收包括第一标志的比特流,该第一标志指示角度加权预测(awp)模式是否用于编码单元;以及响应于确定awp模式用于编码单元,在用于帧间预测的awp模式下解码比特流。
7.本公开的实施例提供一种用于进行视频数据处理的装置。该装置包括存储器,用于存储指令;以及一个或多个处理器,与存储器通信连接,用于执行指令以使得该装置执行:接收一个或多个视频帧;以及通过用信号通知两项运动信息,使用用于帧间预测的角度加权预测awp模式编码一个或多个视频帧,该两项运动信息包括运动矢量差值mvd和参考索引。
8.本公开的实施例提供一种用于进行视频数据处理的装置。该装置包括存储器,用于存储指令;以及一个或多个处理器,与存储器通信连接,用于执行指令以使得装置执行:接收包括第一标志的比特流,第一标志指示角度加权预测awp模式是否用于编码单元;响应于确定awp模式用于编码单元,解码两项运动信息,该两项运动信息包括运动矢量差值mvd和参考索引;以及在用于帧间预测的awp模式下解码比特流。
9.本公开的实施例提供一种非瞬时计算机可读介质,存储有指令集,指令集可被装
置的一个或多个处理器执行以使得装置启动用于进行视频数据处理的方法。该方法包括:接收一个或多个视频帧;通过用信号通知两项运动信息,使用用于帧间预测的角度加权预测(awp)模式编码一个或多个视频帧,该两项运动信息包括运动矢量差值(mvd)和参考索引。
10.本公开的实施例提供一种非瞬时计算机可读介质,存储有指令集,指令集可被装置的一个或多个处理器执行以使得装置启动用于进行视频数据处理的方法。该方法包括:接收包括第一标志的比特流,该第一标志指示角度加权预测(awp)模式是否用于编码单元;以及响应于确定该awp模式用于该编码单元,解码两项运动信息,该两项运动信息包括运动矢量差值mvd和参考索引;以及在用于帧间预测的awp模式下解码比特流。
附图说明
11.在以下详细描述和附图中示出了本公开的实施例和各个方面。图中所示的各特征没有按比例绘制。
12.图1是示出根据本公开的一些实施例的示例视频序列的结构的示意图。
13.图2a是示出与本公开实施例一致的混合视频编码系统的示例性编码过程的示意图。
14.图2b是示出与本公开实施例一致的混合视频编码系统的另一示例性编码过程的示意图。
15.图3a是示出与本公开实施例一致的混合视频编码系统的示例性解码过程的示意图。
16.图3b是示出与本公开实施例一致的混合视频编码系统的另一示例性解码过程的示意图。
17.图4是根据本公开的一些实施例的用于对视频进行编码或解码的示例性装置的框图。
18.图5示出了根据本公开一些实施例的从六个相邻块中导出的示例性空间运动矢量预测符。
19.图6示出了根据本公开一些实施例的角度加权预测(awp)模式中支持的帧内预测角度的示例。
20.图7示出了根据本公开一些实施例的awp模式中的示例性加权数组。
21.图8示出了根据本公开一些实施例的示例性角度加权预测(awp)过程。
22.图9示出了根据本公开一些实施例的运动矢量分辨率(mvr)索引和运动矢量差值(mvd)精度之间的示例关联。
23.图10示出了根据本公开一些实施例的自适应运动矢量分辨率(amvr)索引和基于历史的运动矢量预测符(hmvp)索引之间的示例关联。
24.图11示出了根据本公开一些实施例的用于使用awp模式进行视频帧编码的示例性方法的流程图。
25.图12示出了根据本公开一些实施例的用于在编码单元级将awp模式扩展到帧间预测的流程图。
26.图13a和图13b示出了根据本公开一些实施例的与图12的流程图相关联的示例性
句法结构。
27.图14示出了根据本公开一些实施例的用于在smvd标志之前用信号通知awp标志的示例性流程图。
28.图15示出了根据本公开一些实施例的用于在双向预测标志之前用信号通知awp标志的示例性流程图。
29.图16示出了根据本公开一些实施例的用于基于emvr标志用信号通知awp标志的示例性流程图。
30.图17示出了根据本公开一些实施例的用于基于扩展运动矢量分辨率(extended motion vector resolution,emvr)标志用信号通知awp标志的另一示例性流程图。
31.图18示出了根据本公开一些实施例的用于使用awp模式对视频帧进行解码的示例性方法的流程图。
具体实施方式
32.现在将详细参考示例性实施例,其示例在附图中示出。以下描述参照附图,除非另有说明,否则不同附图中的相同数字表示相同或相似的元件。在示例性实施例的以下描述中阐述的实施方式并不代表与本发明一致的所有实施方式。相反,它们仅仅是与如所附权利要求中所述的与本发明相关的方面一致的装置和方法的示例。下面更详细地描述本公开的特定方面。如果与通过引用并入的术语和/或定义相冲突,则以本文提供的术语和定义为准。
33.业界正在开发视频编码的新标准。例如,音频视频编码标准(audio video coding standard,avs)工作组正在开发第三代avs视频标准,即avs3。高性能模型(high performance model,hpm)被选作avs3的新参考软件平台。avs3标准的第一阶段能够实现与其前身avs2相比超过20%的编码性能增益,且avs3标准的第二阶段仍在开发中。
34.视频是一组按时间顺序排列以存储视觉信息的静态图像(或“帧”)。视频捕获设备(例如,相机)可用于按时间顺序捕获和存储这些图像,并且视频播放设备(例如,电视、计算机、智能手机、平板电脑、视频播放器或具有显示功能的任何最终用户终端)可用于按时间顺序显示此类图像。此外,在一些应用中,视频捕获设备可以实时地将捕获的视频传输到视频播放设备(例如,具有监视器的计算机),诸如用于监控、会议或直播等。
35.为了减少此类应用所需的存储空间和传输带宽,可以在存储和传输之前对视频进行压缩,并在显示之前进行解压缩。压缩和解压缩可以由处理器(例如,通用计算机的处理器)或专用硬件执行的软件实现。用于压缩的模块通常称为“编码器”,用于解压缩的模块通常称为“解码器”,编码器和解码器可以统称为“编解码器”。编码器和解码器可以实现为各种合适的硬件、软件或其组合中的任何一种。例如,编码器和解码器的硬件实现可以包括电路,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑或其任何组合。编码器和解码器的软件实现可以包括程序代码、计算机可执行指令、固件或固定在计算机可读介质中的任何合适的计算机实现的算法或过程。视频压缩和解压缩可以通过各种算法或标准来实现,诸如mpeg-1、mpeg-2、mpeg-4、h.26x系列等。在一些应用中,编解码器可以从第一编码标准解压缩视频,并使用第二编码标准重新压缩解压缩的视频,在这种情况下,编解码器可以称为“转码器”。
36.视频编码过程可以识别并保留可用于重构图像的有用信息,并忽略对于重构不重要的信息。如果无法完全重构被忽略的、不重要的信息,则这种编码过程可以称为“有损的”。否则,它可以被称为“无损的”。大多数编码过程都是有损的,这是为了减少所需的存储空间和传输带宽而做出的权衡。
37.正在被编码的图像(称为“当前图像”)的有用信息包括相对于参考图像(例如,先前编码和重构的图像)的变化。这种变化可以包括像素的位置变化、亮度变化或颜色变化,其中最关注的是位置变化。代表对象的一组像素的位置变化可以反映对象在参考图像和当前图像之间的运动。
38.在不参考另一个图像的情况下编码的图像(即,它是自己的参考图像)被称为“i-图像”。如果图像中的一些或所有块(例如,通常指视频图像部分的块)是采用使用一个参考图像的帧内预测或帧间预测(例如,单预测)进行预测的,则该图像被称为“p-图像”。如果图像中的至少一个块是用两个参考图像进行预测的(例如,双向预测),则该图像被称为“b-图像”。
39.avs标准(例如,avs3)所基于的混合视频编码系统与已经在现代视频压缩标准(例如,h.264/avc、h.265/hevc等)中使用的混合视频编码系统相同。图1示出了根据本公开的一些实施例的示例视频序列100的结构。视频序列100可以是实况视频或已捕获并存档的视频。视频100可以是真实视频、计算机生成的视频(例如,计算机游戏视频)或其组合(例如,具有增强现实效果的真实视频)。视频序列100可以从视频捕获设备(例如,相机)、包含先前捕获的视频的视频存档(例如,存储在存储设备中的视频文件)或用于接收来自视频内容提供商的视频的视频馈送接口(例如,视频广播收发器)输入。
40.如图1所示,视频序列100可以包括沿时间轴在时间上排列的一系列图像,包括图像102、104、106和108。图像102-106是连续的,并且在图像106和108之间有更多的图像。在图1中,图像102是i-图像,其参考图像是图像102本身。图像104是p-图像,其参考图像是图像102,如箭头所示。图像106是b-图像,其参考图像是图像104和108,如箭头所示。在一些实施例中,图像(例如,图像104)的参考图像不一定紧接在图像之前或之后。例如,图像104的参考图像可以是图像102之前的图像。应当注意,图像102-106的参考图像只是示例,本公开并不将参考图像的实施例限制为图1中所示的示例。
41.通常,由于编解码任务的计算复杂性,视频编解码器不会一次对整个图像进行编码或解码。相反,他们将图像分割成基本段,并逐段对图像进行编码或解码。这样的基本段在本公开中被称为基本处理单元(“bpu”)。例如,图1中的结构110示出了视频序列100的图像(例如,图像102-108中的任何一个)的示例结构。在结构110中,图像被划分为4
×
4个基本处理单元,其边界显示为虚线。在一些实施例中,基本处理单元可以在一些视频编码标准(例如,mpeg系列、h.261、h.263或h.264/avc)中称为“宏块”,或者在一些其他视频编码标准(例如,h.265/hevc或h.266/vvc)中称为“编码树单元”(“ctu”)。图像中的基本处理单元可以具有可变大小,诸如128
×
128、64
×
64、32
×
32、16
×
16、4
×
8、16
×
32或像素的任何任意形状和大小。可以基于编码效率和要在基本处理单元中保持的细节水平的平衡来为图像选择基本处理单元的大小和形状。
42.基本处理单元可以是逻辑单元,其可以包括存储在计算机存储器中(例如,在视频帧缓存区中)的一组不同类型的视频数据。例如,彩色图像的基本处理单元可以包括表示消
色差亮度信息的亮度分量(y)、表示颜色信息的一个或多个色度分量(例如,cb和cr)以及相关联的句法元素,其中亮度分量和色度分量可以具有相同的基本处理单元大小。在一些视频编码标准(例如h.265/hevc或h.266/vvc)中,亮度和色度分量可以称为“编码树块”(“ctb”)。对基本处理单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。
43.视频编码具有多个操作阶段,其示例在图2a-2b和图3a-3b中示出。对于每个阶段,基本处理单元的大小仍然可能太大而无法进行处理,因此可以进一步划分为本公开中称为“基本处理子单元”的段。在一些实施例中,基本处理子单元可以在一些视频编码标准(例如,mpeg系列、h.261、h.263或h.264/avc)中称为“块”,或者在一些其他视频编码标准(例如,h.265/hevc或h.266/vvc)中称为“编码单元”(“cu”)。基本处理子单元的大小可以与基本处理单元相同或更小。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓存区中)中的一组不同类型的视频数据(例如,y、cb、cr和相关句法元素)。对基本处理子单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。应当注意,这种处理单元和子单元的划分可以根据处理需要进行到进一步的级别。还应注意,不同的阶段可以使用不同的方案划分基本处理单元。
44.例如,在模式决定阶段(其示例在图2b中示出),编码器可以决定针对基本处理单元使用什么预测模式(例如,图像内预测或图像间预测),但基本处理单元可能太大而无法做出这样的决定。编码器可以将基本处理单元分割为多个基本处理子单元(例如,如h.265/hevc或h.266/vvc中的cu),并为每个单独的基本处理子单元确定预测类型。
45.对于另一个示例,在预测阶段(其示例在图2a-2b中示出),编码器可以在基本处理子单元(例如,cu)级别执行预测操作。然而,在某些情况下,基本处理子单元可能仍然太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的段(例如,在h.265/hevc或h.266/vvc中称为“预测块”或“pb”),在该段的级别上可以执行预测操作。
46.对于另一个示例,在变换阶段(其示例在图2a-2b中示出),编码器可以对残差基本处理子单元(例如,cu)执行变换操作。然而,在某些情况下,基本处理子单元可能仍然太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的段(例如,在h.265/hevc或h.266/vvc中称为“变换块”或“tb”),在该段的级别上可以执行变换操作。应当注意,相同基本处理子单元的划分方案在预测阶段和变换阶段可以不同。例如,在h.265/hevc或h.266/vvc中,相同cu的预测块和变换块可以具有不同的大小和数量。
47.在图1的结构110中,基本处理单元112进一步划分为3
×
3个基本处理子单元,其边界如虚线所示。同一图像的不同基本处理单元可以划分为不同方案中的基本处理子单元。
48.在一些实现方式中,为了提供对视频编码和解码的并行处理能力和容错能力,可以将图像划分为多个区域进行处理,使得对于图像的一个区域,编码或解码过程可以不依赖于来自图像任何其他区域的信息。换句话说,可以独立处理图像的每个区域。通过这样做,编解码器可以并行处理图像的不同区域,从而提高编码效率。此外,当一个区域的数据在处理中损坏或在网络传输中丢失时,编解码器可以正确地对同一图像的其他区域进行编码或解码,而不依赖于损坏或丢失的数据,从而提供容错能力。在一些视频编码标准中,可以将图像划分为不同类型的区域。例如,h.265/hevc和h.266/vvc提供了两种类型的区域:“条带(slice)”和“砖块(tile)”。还应注意,视频序列100的不同图像可以具有用于将图像
划分为多个区域的不同划分方案。
49.例如,在图1中,结构110划分为三个区域114、116和118,其边界在结构110内显示为实线。区域114包括四个基本处理单元。区域116和118中的每一个均包括六个基本处理单元。应当注意,图1中的结构110的基本处理单元、基本处理子单元和区域只是示例,本公开不限制其实施例。
50.图2a示出了与本公开实施例一致的示例编码过程200a的示意图。例如,编码过程200a可以由编码器执行。如图2a所示,编码器可以根据过程200a将视频序列202编码为视频比特流228。与图1中的视频序列100类似,视频序列202可以包括按时间顺序排列的一组图像(称为“原始图像”)。类似于图1中的结构110,视频序列202的每个原始图像可以由编码器划分为基本处理单元、基本处理子单元或区域进行处理。在一些实施例中,编码器可以在基本处理单元级别对视频序列202的每个原始图像执行过程200a。例如,编码器可以以迭代方式执行过程200a,其中编码器可以在过程200a的一次迭代中编码一个基本处理单元。在一些实施例中,编码器可以对视频序列202的每个原始图像的各区域(例如,区域114-118)并行执行过程200a。
51.在图2a中,编码器可以将视频序列202的原始图像的基本处理单元(称为“原始bpu”)馈送到预测阶段204,以生成预测数据206和预测的bpu 208。编码器可以从原始bpu中减去预测的bpu 208以生成残差bpu 210。编码器可以将残差bpu 210馈送到变换阶段212和量化阶段214以生成量化的变换系数216。编码器可以将预测数据206和量化的变换系数216馈送到二进制编码阶段226以生成视频比特流228。组件202、204、206、208、210、212、214、216、226和228可以称为“前向路径”。在过程200a期间,在量化阶段214之后,编码器可以将量化的变换系数216馈送到逆量化阶段218和逆变换阶段220以生成重构的残差bpu 222。编码器可以将重构的残差bpu 222添加到预测的bpu 208以生成预测参考224,该预测参考224在过程200a的下一次迭代的预测阶段204中使用。过程200a的组件218、220、222和224可以称为“重构路径”。重构路径可用于确保编码器和解码器使用相同的参考数据进行预测。
52.编码器可以迭代地执行过程200a以对原始图像的每个原始bpu进行编码(在前向路径中),并生成用于编码原始图像的下一个原始bpu的预测参考224(在重构路径中)。在对原始图像的所有原始bpu进行编码之后,编码器可以继续对视频序列202中的下一个图像进行编码。
53.参考过程200a,编码器可以接收由视频捕获设备(例如,相机)生成的视频序列202。本文中使用的术语“接收”可指接收、输入、获取、检索、获得、读取、访问或以任何方式输入数据的任何动作。
54.在预测阶段204,在当前迭代中,编码器可以接收原始bpu和预测参考224,并执行预测操作以生成预测数据206和预测的bpu 208。可以从过程200a的先前迭代的重构路径生成预测参考224。预测阶段204的目的是通过提取预测数据206来减少信息冗余,预测数据206可用于从预测数据206和预测参考224中将原始bpu重构为预测的bpu 208。
55.理想情况下,预测的bpu208可以与原始bpu相同。然而,由于非理想的预测和重构操作,预测的bpu208通常与原始bpu略有不同。为了记录这种差异,在生成预测的bpu 208之后,编码器可以将其从原始bpu中减去以生成残差bpu 210。例如,编码器可以将预测的bpu 208的像素的值(例如,灰度值或rgb值)从原始bpu的对应像素的值中减去。残差bpu 210的
每个像素可以具有残差值,该残差值是原始bpu和预测的bpu 208的对应像素之间的这种减法的结果。与原始bpu相比,预测数据206和残差bpu 210可以具有更少的比特,但它们可以用于重构原始bpu,而不会出现显著的质量劣化。因此,原始bpu被压缩。
56.为了进一步压缩残差bpu 210,在变换阶段212,编码器可以通过将残差bpu 210分解为一组二维“基本模式”来减少其空间冗余,每个基本模式与“变换系数”相关联。基本模式可以具有相同的大小(例如,残差bpu 210的大小)。每个基本模式可以表示残差bpu 210的变化频率(例如,亮度变化的频率)分量。任何基本模式都不能从任何其他基本模式的任何组合(例如,线性组合)再现。换言之,分解可以将残差bpu 210的变化分解到频域中。这种分解类似于函数的离散傅里叶变换,其中基本模式类似于离散傅里叶变换的基函数(例如,三角函数),变换系数类似于与基函数相关的系数。
57.不同的变换算法可以使用不同的基本模式。可以在变换阶段212使用各种变换算法,诸如,离散余弦变换、离散正弦变换等。在变换阶段212的变换是可逆的。也就是说,编码器可以通过变换的逆运算(称为“逆变换”)来恢复残差bpu 210。例如,为了恢复残差bpu 210的像素,逆变换可以是将基本模式的对应像素的值乘以相应的相关系数,并将乘积相加以产生加权和。对于视频编码标准,编码器和解码器都可以使用相同的变换算法(因此使用相同的基本模式)。因此,编码器只需要记录变换系数,解码器可以从这些系数重构残差bpu 210,而无需从编码器接收基本模式。与残差bpu 210相比,变换系数可以具有更少的比特,但它们可以用于重构残差bpu 210,而不会显著降低质量。因此,残差bpu 210被进一步压缩。
58.编码器可以在量化阶段214进一步压缩变换系数。在变换过程中,不同的基本模式可以表示不同的变化频率(例如,亮度变化频率)。由于人眼通常更善于识别低频变化,因此编码器可以忽略高频变化的信息,而不会导致解码质量显著下降。例如,在量化阶段214,编码器可以通过将每个变换系数除以整数值(称为“量化比例因子”)并将商舍入到其最接近的整数来生成量化的变换系数216。在这样的操作之后,高频基本模式的一些变换系数可以转换为零,低频基本模式的变换系数可以转换为较小的整数。编码器可以忽略零值的量化的变换系数216,通过该操作进一步压缩变换系数。量化过程也是可逆的,其中量化的变换系数216可以在量化的逆运算(称为“逆量化”)中重构为变换系数。
59.因为编码器在舍入操作中忽略了这种除法的余数,所以量化阶段214可能是有损的。通常,量化阶段214可以在过程200a中造成最大的信息损失。信息损失越大,量化的变换系数216可能需要的比特越少。为了获得不同程度的信息丢失,编码器可以使用量化参数的不同值或量化过程的任何其他参数。
60.在二进制编码阶段226,编码器可以使用二进制编码技术(例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码或任何其他无损或有损压缩算法)对预测数据206和量化的变换系数216进行编码。在一些实施例中,除了预测数据206和量化的变换系数216之外,编码器可以在二进制编码阶段226编码其他信息,例如,在预测阶段204使用的预测模式、预测操作的参数、在变换阶段212的变换类型,量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。编码器可以使用二进制编码阶段226的输出数据来生成视频比特流228。在一些实施例中,视频比特流228可以进一步打包用于网络传输。
61.参考过程200a的重构路径,在逆量化阶段218,编码器可以对量化的变换系数216执行逆量化以生成重构的变换系数。在逆变换阶段220,编码器可以基于重构的变换系数生成重构的残差bpu 222。编码器可以将重构的残差bpu 222添加到预测的bpu 208,以生成将在过程200a的下一次迭代中使用的预测参考224。
62.应当注意,可以使用过程200a的其他变体对视频序列202进行编码。在一些实施例中,过程200a的各个阶段可以由编码器以不同的顺序执行。在一些实施例中,过程200a的一个或多个阶段可以组合成单个阶段。在一些实施例中,过程200a的单个阶段可分为多个阶段。例如,变换阶段212和量化阶段214可以组合成单个阶段。在一些实施例中,过程200a可以包括附加阶段。在一些实施例中,过程200a可以省略图2a中的一个或多个阶段。
63.图2b示出了与本公开实施例一致的另一示例性编码过程200b的示意图。过程200b可以修改自过程200a。例如,过程200b可由符合混合视频编码标准(例如,h.26x系列)的编码器使用。与过程200a相比,过程200b的前向路径另外包括模式决定阶段230,并将预测阶段204划分为空间预测阶段2042和时间预测阶段2044。过程200b的重构路径另外包括环路滤波器阶段232和缓存区234。
64.通常,预测技术可以分为两类:空间预测和时间预测。空间预测(例如,图像内预测或“帧内预测”)可以使用来自同一图像中一个或多个已编码的相邻bpu的像素来预测当前bpu。即,空间预测中的预测参考224可以包括相邻的bpu。空间预测可以减少图像固有的空间冗余。时间预测(例如,图像间预测或“帧间预测”)可以使用来自一个或多个已编码的图像的区域来预测当前bpu。即,时间预测中的预测参考224可以包括已编码的图像。时间预测可以减少图像的固有时间冗余。
65.参考过程200b,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于正在被编码的图像的原始bpu,预测参考224可以包括在同一图像中已被编码(在前向路径中)和重构(在重构路径中)的一个或多个相邻bpu。编码器可以通过外推相邻bpu来生成预测的bpu 208。外推技术可以包括例如线性外推或内插、多项式外推或内插等。在一些实施例中,编码器可以在像素级执行外推,诸如通过为预测的bpu 208的每个像素对对应像素的值进行外推。用于外推的相邻bpu可以相对于原始bpu位于各种方向,例如在垂直方向(例如,在原始bpu的顶部)、水平方向(例如,在原始bpu的左侧)、对角方向(例如,在原始bpu的左下、右下、左上或右上),或在所使用的视频编码标准中定义的任何方向。对于帧内预测,预测数据206可以包括例如所使用的相邻bpu的位置(例如,坐标)、所使用的相邻bpu的大小、外推参数、所使用的相邻bpu相对于原始bpu的方向等。
66.对于另一示例,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图像的原始bpu,预测参考224可以包括已经编码(在前向路径中)和重构(在重构路径中)的一个或多个图像(称为“参考图像”)。在一些实施例中,可以逐个bpu地对参考图像进行编码和重构。例如,编码器可以将重构的残差bpu 222添加到预测的bpu 208以生成重构的bpu。当生成同一图像的所有重构bpu时,编码器可以生成重构图像作为参考图像。编码器可以执行“运动估计”操作,以在参考图像的范围(称为“搜索窗口”)中搜索匹配区域。参考图像中搜索窗口的位置可以基于原始bpu在当前图像中的位置来确定。例如,搜索窗口可以以参考图像中与当前图像中的原始bpu具有相同坐标的位置为中心,并且可以向外扩展预定距离。当
编码器(例如,通过使用像素递归算法、块匹配算法等)识别出搜索窗口中与原始bpu类似的区域时,编码器可以确定此类区域作为匹配区域。匹配区域可以具有与原始bpu不同的尺寸(例如,小于、等于、大于或形状不同)。由于参考图像和当前图像在时间轴上是时间分离的(例如,如图1所示),因此可以认为匹配区域随着时间的推移“移动”到原始bpu的位置。编码器可以将这种运动的方向和距离记录为“运动矢量”。当使用多个参考图像(例如,如图1中的图像106)时,编码器可以针对每个参考图像搜索匹配区域并确定其相关运动矢量。在一些实施例中,编码器可以将权重分配给各个匹配参考图像的匹配区域的像素值。
67.运动估计可用于识别各种类型的运动,例如平移、旋转、缩放等。对于帧间预测,预测数据206可以包括例如匹配区域的位置(例如,坐标)、与匹配区域相关联的运动矢量、参考图像的数量、与参考图像相关联的权重等。
68.为了生成预测的bpu208,编码器可以执行“运动补偿”的操作。运动补偿可用于基于预测数据206(例如,运动矢量)和预测参考224重构预测的bpu 208。例如,编码器可以根据运动矢量移动参考图像的匹配区域,其中编码器可以预测当前图像的原始bpu。当使用多个参考图像时(例如,如图1中的图像106),编码器可以根据匹配区域的各自的运动矢量和平均像素值来移动参考图像的匹配区域。在一些实施例中,如果编码器已将权重分配给各个匹配参考图像的匹配区域的像素值,则编码器可以将移动的匹配区域的像素值的加权和相加。
69.在一些实施例中,帧间预测可以是单向的或双向的。单向帧间预测可以使用在相对于当前图像相同的时间方向上的一个或多个参考图像。例如,图1中的图像104是单向帧间预测图像,其中参考图像(例如,图像102)在图像104之前。双向帧间预测可以在相对于当前图像的两个时间方向上使用一个或多个参考图像。例如,图1中的图像106是双向帧间预测图像,其中参考图像(例如,图像104和108)位于相对于图像104的两个时间方向。
70.仍然参考过程200b的前向路径,在空间预测2042和时间预测阶段2044之后,在模式决定阶段230,编码器可以为过程200b的当前迭代选择预测模式(例如,帧内预测或帧间预测之一)。例如,编码器可以执行率失真优化技术,其中编码器可以根据候选预测模式的比特率和候选预测模式下重构的参考图像的失真来选择预测模式,以最小化代价函数的值。根据选择的预测模式,编码器可以生成相应的预测的bpu208和预测的数据206。
71.在过程200b的重构路径中,如果在前向路径中选择了帧内预测模式,则在生成预测参考224(例如,当前图像中已编码和重构的当前bpu)之后,编码器可以直接将预测参考224馈送到空间预测阶段2042以供以后使用(例如,用于外推当前图像的下一个bpu)。编码器可以将预测参考224馈送到环路滤波器阶段232,在该阶段,编码器可以将环路滤波器应用于预测参考224,以减少或消除在预测参考224的编码期间引入的失真(例如,块伪影)。编码器可以在环路滤波器阶段232应用各种环路滤波器技术,例如去块、采样自适应偏移、自适应环路滤波器等。环路滤波的参考图像可以存储在缓存区234(或“解码图像缓存区”)中以供以后使用(例如,用作视频序列202的未来图像的帧间预测参考图像)。编码器可以将一个或多个参考图像存储在缓存区234中,以在时间预测阶段2044使用。在一些实施例中,编码器可以在二进制编码阶段226对环路滤波器的参数(例如,环路滤波器强度)以及量化的变换系数216、预测数据206和其他信息进行编码。
72.图3a示出了与本公开实施例一致的示例解码过程300a的示意图。过程300a可以是
对应于图2a中的压缩过程200a的解压缩过程。在一些实施例中,过程300a可以类似于过程200a的重构路径。解码器可以根据过程300a将视频比特流228解码为视频流304。视频流304可以与视频序列202非常类似。然而,由于压缩和解压缩过程中的信息丢失(例如,图2a和图2b中的量化阶段214),通常,视频流304与视频序列202不同。类似于图2a和图2b中的过程200a和200b,解码器可以在基本处理单元(bpu)级对视频比特流228中编码的每个图像执行过程300a。例如,解码器可以以迭代方式执行过程300a,其中解码器可以在过程300a的一次迭代中解码基本处理单元。在一些实施例中,解码器可以针对视频比特流228中编码的每个图像的区域(例如,区域114-118)并行执行过程300a。
73.在图3a中,解码器可以将与编码图像的基本处理单元(称为“编码bpu”)相关联的视频比特流228的一部分馈送到二进制解码阶段302。在二进制解码阶段302,解码器可以将该部分解码为预测数据206和量化的变换系数216。解码器可以将量化的变换系数216馈送到逆量化阶段218和逆变换阶段220以生成重构的残差bpu 222。解码器可以将预测数据206馈送到预测阶段204以生成预测的bpu 208。解码器可以将重构的残差bpu 222添加到预测的bpu 208以生成预测参考224。在一些实施例中,预测参考224可以存储在缓存区中(例如,计算机存储器中的解码图像缓存区)。解码器可以将预测参考224馈送到预测阶段204,以在过程300a的下一次迭代中执行预测操作。
74.解码器可以迭代地执行过程300a以对编码图像的每个编码bpu进行解码,并生成用于对编码图像的下一个编码bpu进行编码的预测参考224。在对编码图像的所有编码bpu进行解码之后,解码器可以将图像输出到视频流304以进行显示,并继续解码视频比特流228中的下一个编码图像。
75.在二进制解码阶段302,解码器可以执行编码器使用的二进制编码技术(例如,熵编码、可变长度编码、算术编码、哈夫曼编码、上下文自适应二进制算术编码或任何其他无损压缩算法)的逆运算。在一些实施例中,除了预测数据206和量化的变换系数216之外,解码器可以在二进制解码阶段302解码其他信息,例如,预测模式、预测操作的参数、变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。在一些实施例中,如果视频比特流228通过网络以包的形式传输,则解码器可以在将视频比特流228馈送到二进制解码阶段302之前对其进行解包。
76.图3b示出了与本公开实施例一致的另一示例性解码过程300b的示意图。过程300b可以修改自过程300a。例如,过程300b可由符合混合视频编码标准(例如,h.26x系列)的解码器使用。与过程300a相比,过程300b另外将预测阶段204分为空间预测阶段2042和时间预测阶段2044,并且另外包括环路滤波器阶段232和缓存区234。
77.在过程300b中,对于正在被解码的编码图像(称为“当前图像”)的编码基本处理单元(称为“当前bpu”),由解码器从二进制解码阶段302解码的预测数据206可以包括各种类型的数据,这取决于编码器使用什么预测模式对当前bpu进行编码。例如,如果编码器使用帧内预测对当前bpu进行编码,则预测数据206可以包括指示帧内预测的预测模式指示符(例如,标志值)、帧内预测操作的参数等。帧内预测操作的参数可以包括,例如,用作参考的一个或多个相邻bpu的位置(例如,坐标)、相邻bpu的大小、外推参数、相邻bpu相对于原始bpu的方向等。对于另一示例,如果编码器使用帧间预测对当前bpu进行编码,则预测数据206可以包括指示帧间预测的预测模式指示符(例如,标志值)、帧间预测操作的参数等。帧
间预测操作的参数可以包括,例如,与当前bpu相关联的参考图像的数量、分别与参考图像相关联的权重、各个参考图像中一个或多个匹配区域的位置(例如,坐标),分别与匹配区域相关联的一个或多个运动矢量等。
78.基于预测模式指示符,解码器可以决定是在空间预测阶段2042执行空间预测(例如,帧内预测),还是在时间预测阶段2044执行时间预测(例如,帧间预测)。参考图2b,上文描述了执行这种空间预测或时间预测的细节,下文不再重复。在执行这种空间预测或时间预测之后,解码器可以生成预测的bpu 208。参考图3a,上文描述了解码器可以将预测的bpu 208和重构的残差bpu 222相加以生成预测参考224。
79.在过程300b中,解码器可以将预测参考224馈送到空间预测阶段2042或时间预测阶段2044,以在过程300b的下一次迭代中执行预测操作。例如,如果在空间预测阶段2042使用帧内预测对当前bpu进行解码,则在生成预测参考224(例如,解码的当前bpu)之后,解码器可以直接将预测参考224馈送到空间预测阶段2042以供以后使用(例如,用于外推当前图像的下一个bpu)。如果在时间预测阶段2044使用帧间预测对当前bpu进行解码,则在生成预测参考224(例如,其中所有bpu已被解码的参考图像)之后,解码器可以将预测参考224馈送到环路滤波器阶段232以减少或消除失真(例如,块伪影)。解码器可以如上文图2b所述的方式将环路滤波器应用于预测参考224。经环路滤波的参考图像可以存储在缓存区234中(例如,计算机存储器中的解码图像缓存区以供以后使用(例如,用作视频比特流228的未来编码图像的帧间预测参考图像)。解码器可以将一个或多个参考图像存储在缓存区234中,以在时间预测阶段2044使用。在一些实施例中,预测数据还可以包括环路滤波器的参数(例如,环路滤波器强度)。在一些实施例中,当预测数据206的预测模式指示符指示帧间预测被用于编码当前bpu时,预测数据包括环路滤波器的参数。
80.图4是与本公开实施例一致的用于编码或解码视频的示例装置400的框图。如图4所示,装置400可以包括处理器402。当处理器402执行本文所述的指令时,装置400可以成为用于视频编码或解码的专用机器。处理器402可以是能够操纵或处理信息的任何类型的电路。例如,处理器402可以包括任意数量的中央处理单元(或“cpu”)、图形处理单元(或“gpu”)、神经处理单元(“npu”)、微控制器单元(“mcu”)、光学处理器、可编程逻辑控制器、微控制器、微处理器、数字信号处理器、知识产权(ip)核、可编程逻辑阵列(pla)、可编程阵列逻辑(pal)、通用阵列逻辑(gal)、复杂可编程逻辑器件(cpld)、现场可编程门阵列(fpga)、片上系统(soc)、专用集成电路(asic)等的任意组合。在一些实施例中,处理器402还可以是分组为单个逻辑组件的一组处理器。例如,如图4所示,处理器402可以包括多个处理器,包括处理器402a、处理器402b和处理器402n。
81.装置400还可以包括被配置为存储数据(例如,一组指令、计算机代码、中间数据等)的存储器404。例如,如图4所示,存储的数据可以包括程序指令(例如,用于实现过程200a、200b、300a或300b中的阶段的程序指令)和用于处理的数据(例如,视频序列202、视频比特流228或视频流304)。处理器402可以访问程序指令和用于处理的数据(例如,通过总线410),并执行程序指令以对用于处理的数据执行操作或控制。存储器404可以包括高速随机存取存储设备或非易失性存储设备。在一些实施例中,存储器404可以包括任意数量的随机存取存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘驱动器、固态驱动器、闪存驱动器、安全数字(sd)卡、记忆棒、紧凑闪存(cf)卡等的任意组合。存储器404也可以是分组为单个逻
辑组件的一组存储器(图4中未示出)。
82.总线410可以是在装置400内的组件之间传输数据的通信设备,诸如内部总线(例如,cpu-存储器总线)、外部总线(例如,通用串行总线端口、外围组件互连快速端口)等。
83.为了便于解释而不引起歧义,处理器402和其他数据处理电路在本公开中统称为“数据处理电路”。数据处理电路可以完全实现为硬件,或软件、硬件或固件的组合。此外,数据处理电路可以是单个独立模块,或者可以完全或部分组合到装置400的任何其他组件中。
84.装置400还可以包括网络接口406,以提供与网络(例如,互联网、内联网、局域网、移动通信网络等)的有线或无线通信。在一些实施例中,网络接口406可以包括任意数量的网络接口控制器(nic)、射频(rf)模块、转发器、收发器、调制解调器、路由器、网关、有线网络适配器、无线网络适配器、蓝牙适配器、红外适配器、近场通信(“nfc”)适配器、蜂窝网络芯片等的任意组合。
85.在一些实施例中,可选地,装置400还可以包括外围接口408,以提供到一个或多个外围设备的连接。如图4所示,外围设备可以包括但不限于光标控制设备410(例如,鼠标、触摸板或触摸屏)、键盘、显示器412(例如,阴极射线管显示器、液晶显示器或发光二极管显示器)、视频输入设备414(例如,相机或耦合到视频档案的输入接口)等。
86.应当注意,视频编解码器(例如,执行过程200a、200b、300a或300b的编解码器)可以实现为装置400中任何软件或硬件模块的任意组合。例如,过程200a、200b、300a或300b的一些或所有阶段可以实现为装置400的一个或多个软件模块,例如可以加载到存储器404中的程序指令。对于另一示例,过程200a、200b、300a或300b的一些或所有阶段可以实现为装置400的一个或多个硬件模块,例如专用数据处理电路(例如,fpga、asic、npu等)。
87.跳过模式和直接模式是avs3中的两种特殊的帧间模式,其中包括参考索引和运动矢量的运动信息不是在比特流中用信号通知的,而是在解码器侧以与编码器中相同的规则导出的。这两种模式共享相同的运动信息导出规则,并且它们之间的差异在于,跳过模式通过将残差bpu(例如,图3a和图3b中的222)设置为零来跳过用信号通知残差bpu。因为在跳过模式中没有用信号通知的残差,所以量化的变换系数(例如,图3a和图3b中的216)都是零并且不用信号通知。因此,跳过了逆量化(例如,图3a和3b中的218)和逆变换(例如,图3a和3b中的220)。与正常的帧间模式相比,尽管编码器遵循标准中指定的规则以导出运动矢量和参考索引以执行帧间预测,但是在跳过和直接模式中可以节省专用于运动信息的比特。因此,跳过模式和直接模式适用于当前块的运动信息接近空间或时间相邻块的运动信息的情况,因为运动信息的导出是基于空间或时间相邻块的。
88.为了导出在跳过和直接模式下的帧间预测中使用的运动信息,编码器首先导出运动候选列表,然后选择它们中的一个或多个来执行帧间预测。在比特流中用信号通知所选候选的索引。在解码器端,解码器导出与编码器相同的运动候选列表,然后使用从比特流解析的索引来获得用于帧间预测的运动,然后执行帧间预测。
89.在avs(例如,avs3)中,候选列表中有12个运动候选。第一个候选是时间运动矢量预测符(temporal motion vector predictor,tmvp),其从特定参考帧中的并置块(collocated block)的运动矢量(mv)中导出。这里的特定参考帧被指定为b帧的参考图像列表1或p帧的参考图像列表0中参考索引为0的参考帧。当并置块的mv不可用时,根据空间相邻块的mv导出的mv预测符(mv predictor,mvp)被用作tmvp。
90.第二、三、四个候选是空间运动矢量预测符(spatial motion vector predictor,“smvp”),其从六个相邻块中导出。图5示出了根据本公开一些实施例的从六个相邻块中导出的空间运动矢量预测符的示例。如图5所示,六个相邻快命名为f、g、c、a、b和d。第二候选是双向预测候选,第三候选是利用参考图像列表0中参考帧的单向预测候选,第四候选是利用参考图像列表1中参考帧的单向预测候选。这三个候选以特定的顺序设置到这六个相邻块的第一可用mv上。在导出smvp候选后,添加了运动矢量角度预测候选(motion vector angular prediction,mvap)和基于历史的运动矢量预测符候选(history-based motion vector prediction,hmvp)。
91.在avs(例如,avs3)中,跳过和直接模式支持角度加权预测(awp)模式。awp模式作为一种跳过或直接模式使用cu级别的标志用信号通知。首先,在awp模式中,通过从空间相邻块和时间运动矢量预测符导出运动矢量来构建包括五个不同的单向预测运动矢量的运动矢量候选列表。然后,从运动矢量候选列表中选择两个单向预测运动矢量来预测当前块。与对所有样本具有相同权重的双向预测帧间模式不同,以awp模式编码的每个样本可以具有不同的权重。
92.图6示出了根据本公开一些实施例的awp模式所支持的示例性帧内预测角度。如图6所示,可以有8个不同的帧内预测角度,分别对应1:1(例如,601)、2:1(例如,602)、水平(例如,603)、2:1(例如,604)、1:1(例如,605)、1:2(例如,606)、垂直(例如,607)以及1:2(例如,608)。图7示出了根据本公开一些实施例的awp模式中的示例性加权数组。如图7所示,可以有7种不同的权重数组设置来对应所描述的7行权重。例如,每个权重数组的权重值取值范围为0至8。参见图6和图7,对于每个包括8个帧内预测角度和7个不同权重数组设置的可能的编码单元(cu)尺寸w
×
h=2m×2n
(其中m,n∈{3

6}),awp模式共支持56种不同的权重。
93.图8示出了根据本公开一些实施例的在awp权重预测中使用的示例性权重数组。如图8所示,每个样本的权重根据不同的帧内预测角度从包括权重值(例如,取值从0至8)的权重数组801中预测。例如,样本8021的权重根据权重数组801的元素8011的值(例如,0)预测,其对应一个帧内预测角度(例如,如箭头a所示)。如图6所示,箭头a所示的帧内预测角度可以是比例为1:2的帧内预测角度606。最后,根据预测方法导出权重矩阵802。awp加权预测与帧内预测模式的过程相似。
94.假设所选择的两个单向预测运动矢量为mv0和mv1。两个预测块p0和p1是分别通过使用mv0和mv1来执行运动补偿而得到的。最终预测块p如下式计算:
95.p=(p0
×
w0+p1
×
(8-w0))>>3
96.其中变量w0是根据前述awp加权预测导出的权重矩阵(例如,图8的802)。p0的权重矩阵和p1的权重矩阵在权重的最大值方面是互补的。
97.在avs(例如,avs3)中,引入了cu级别的自适应运动矢量分辨率方案。自适应运动矢量分辨率(adaptive motion vector resolution,amvr)允许cu的运动矢量差值(motion vector difference,mvd)以不同的精度进行编码,包括四分之一亮度采样、半亮度采样、整数亮度采样、双亮度采样或四亮度采样。当块以常规帧间预测模式编码(例如,块的运动矢量通过将运动矢量预测符和运动矢量差值相加而形成),用信号通知运动矢量分辨率(motion vector resolution,mvr)索引以指示编码mvd时采用了哪种精度。图9示出了根据本公开一些实施例的mvr索引和mvd精度之间的示例关联。此外,当mvr索引不等于0时,运动
矢量预测符取整为与mvd相同的精度,然后将其与mvd相加以形成最终mv。
98.基于历史的运动矢量预测符(hmvp)是从先前编码或解码的块的运动信息中导出的。在编码或解码帧间编码块之后,将运动信息与hmvp表的最后一项相加,其中,例如,设置hmvp表的尺寸为8。当在表中插入新的运动候选时,使用了限制性先进先出(first-in-first-out,fifo)规则,其中采用了冗余检查以获知表中是否已经有完全相同的运动候选。如果表中有完全相同的运动候选,将该完全相同的运动候选移动至表的最后一项,而不插入新的完全相同的项。hvmp表中的候选可以用作跳过和直接模式的hmvp候选。由最后一项至第一项检查hmvp表。如果hmvp表中的候选不与跳过和直接模式的候选列表中的任一时间运动矢量预测符(tmvp)候选和空间运动矢量预测符(smvp)候选相同,则将hmvp表中的候选作为hmvp候选置于跳过和直接模式的候选列表。如果hmvp表中的候选与tmvp候选或者smvp候选中的一个相同,则不将该候选置于跳过和直接模式的候选列表中。该过程称作“修剪(pruning)”。
99.扩展运动矢量分辨率(extended motion vector resolution,emvr)是hmvp和amvr的组合。在emvr模式中,从hmvp列表中获取5个运动矢量预测符,每个运动矢量预测符与固定运动矢量差值精度绑定。图10示出了根据本公开一些实施例的amvr索引和hmvp索引之间的示例关联。对于以常规帧间预测模式编码的块,用信号通知标志以指示是否使用了emvr模式。当使用了emvr模式时,进一步用信号通知索引以指示使用了哪个hmvp关联(图10)中的运动矢量和使用了哪些mvd精度。
100.在avs(例如,avs3)中,awp模式仅受跳过和直接模式的支持。awp模式的优势未应用于常规帧间预测模式。因此,若可以将awp扩展至常规帧间预测模式,则可以提高avs的编码效率。
101.本公开实施例提供了将awp模式并入常规帧间预测模式的方法。图11示出了根据本公开一些实施例的编码方法1100的流程图。方法1100可以由编码器(例如,由图2a中的过程200a或图2b中的过程200b)或装置(例如,图4中的装置400)中的一个或多个软件或硬件组件执行。例如,处理器(例如,图4的处理器402)可以执行方法1100。在一些实施例中,方法1100可以由计算机程序产品实施,体现于计算机可读介质中,该计算机可读介质包括计算机可执行指令,例如由计算机(例如,图4的装置400)执行的程序代码。参见图11,方法1100可以包括以下步骤1102和1104。在步骤1102中,接收用于处理的一个或多个视频帧。在步骤1104中,通过用信号通知两项运动信息,使用角度加权预测(awp)模式编码一个或多个视频帧,该两项运动信息包括运动矢量差值和参考索引。awp模式可以在常规帧间预测模式中使用,例如,帧间预测模式不是跳过模式或直接模式。运动信息包括运动矢量差值和参考索引。在一些实施例中,为了应用awp模式,可以用信号通知cu级别的标志,以指示awp模式是否使用于常规帧间预测模式中。
102.图12示出了根据本公开一些实施例的用于以编码单元级别用信号通知awp标志的示例性方法1200。如图12所示,awp标志1202和awp模式1204已加粗。仅当帧间预测块使用双向预测模式(双向预测标志1206-真)编码,且帧间预测块未使用仿射模式或对称运动矢量差值(smvd)模式(smvd标志1208-假)编码时,用信号通知cu级别的awp标志。图13a和图13b示出了根据本公开一些实施例的包括用于awp标志的句法结构的示例性句法。图13b是图13a的延续。如图13a所示,与先前avs相比的变化以斜体示出。可以在未使用smvd(例如,
smvd_flag 1302为假)且未使用仿射(例如,affineflag 1303为假)时用信号通知awp标志(例如,awp_flag 1301)。当awp标志(例如,awp_flag 1301)为真时,可以使用与双向预测模式相同的方法用信号通知参考索引和运动矢量差值(例如,awp_idx 1304),例如,用于参考图像列表0(l0)的第一运动信息和用于参考图像列表1(l1)的第二运动信息。在一些实施例中,当执行预测时,可以将第一权重矩阵w0应用于使用列表l0的运动信息预测的预测块。以及,可以将第二权重矩阵(8-w0)应用于使用列表l1的运动信息预测的预测块。可以使用加权预测方法导出权重矩阵w0,其取值为0至8。
103.在一些实施例中,可以用信号在不同位置通知cu级别的awp标志,例如,可以在用信号通知以下标志的至少一个之前用信号通知awp标志:对称运动矢量差值(smvd)标志、双向预测标志、扩展运动矢量分辨率(emvr)标志或者仿射标志。图14示出了根据本公开一些实施例的包括用于在用信号通知smvd标志之前用信号通知awp标志1402的句法结构的示例性句法结构1400。如图14所示,awp标志1402和awp模式1404以粗体示出。在一些实施例中,在用信号通知smvd标志1406之前用信号通知awp标志1402,且当awp标志1402为“假”时,用信号通知smvd标志1406。
104.图15示出了根据本公开一些实施例的用于在双向预测标志1504之前用信号通知awp标志1502的示例性方法1500。如图15所示,awp标志1502和awp模式1506以粗体示出。在一些实施例中,在双向预测标志1504之前用信号通知cu级别的awp标志1502,且当awp标志1502为假时用信号通知双向预测标志1504。在一些实施例中,当使用awp模式1506时,可以推断双向预测标志1504。在一些实施例中,可以在emvr标志1508或仿射标志1510之前用信号通知cu级别的awp标志1502。
105.在awp跳过和直接模式中,包括参考索引和运动矢量的运动信息可以从相同的参考图像列表中预测。在一些实施例中,为了与跳过模式、直接模式和常规帧间预测模式一致,两项运动信息可以都来自于参考图像列表0(l0)或参考图像列表0(l1)。因此,可以对运动信息的两种形式用信号通知一个标志以指示运动信息预测自l0或l1。
106.在一些实施例中,为了允许更大的灵活性和提高编码效率,当awp标志为真时,可以用信号通知两项运动信息,其中每项运动信息包括参考索引、mvd、emvr标志和amvr索引。因此,两项运动信息可以具有不同的mvd精度。例如,一项运动信息的emvr标志为真,另一项运动信息的emvr标志为假。
107.由于将awp模式与emvr模式组合可能不具有作用,所以在一些实施例中,awp模式不与emvr模式组合。例如,当emvr模式开启时,awp模式被禁用。图16和图17分别示出了根据本公开一些实施例的两个示例性句法结构1600和1700,其包括用于awp标志1602、1702和emvr标志1604、1704的句法结构。如图16所示,awp标志1602和awp模式1606以粗体示出。只有当emvr模式被关闭时(例如,emvr标志1604为“假”),awp模式1606才被启用(例如,awp标志1602为“真”)。如图17所示,awp标志1702和awp模式1706以粗体示出。只有当awp模式1706关闭时(例如,awp标志1702为“假”),emvr模式才被启用(例如,emvr标志1704为“真”)。通过并入图16或图17中所示的句法结构,avs(例如,avs3)可通过禁止awp模式和emvr模式同时开启的情形来节省句法开销。
108.图18示出了根据本公开一些实施例的解码方法1800的流程图。方法1800可以由解码器(例如,由图3a中的过程300a或图3b中的过程300b)或装置(例如,图4中的装置400)中
的一个或多个软件或硬件组件执行。例如,处理器(例如,图4的处理器402)可以执行方法1800。在一些实施例中,方法1800可以由计算机程序产品实施,体现于计算机可读介质中,该计算机可读介质包括计算机可执行指令,例如由计算机(例如,图4的装置400)执行的程序代码。参见图18,方法1800可以包括以下步骤1802和1804。在步骤1802中,接收包括第一标志的比特流,第一标志指示角度加权预测(awp)模式是否用于编码单元。在步骤1804中,响应于确定awp模式用于编码单元,在用于帧间预测的awp模式下解码比特流。编码单元可以在常规帧间预测模式中编码,例如,帧间预测不是跳过模式或直接模式。
109.在一些实施例中,编码单元进一步以双向预测模式和扩展运动向量分辨率(emvr)模式中的一者或两者来编码。因此,解码方法可以进一步包括以双向预测模式和扩展运动矢量分辨率(emvr)模式解码比特流的步骤。此外,编码单元不以单向预测模式或仿射模式或对称运动矢量差值(smvd)模式编码。由于将awp模式与emvr模式组合可能并没有用,所以在一些实施例中,awp模式不与emvr模式组合,因此,编码单元不以emvr模式编码。
110.在一些实施例中,方法1800还包括从比特流中解析包括运动矢量差值(mvd)和参考索引的两项运动信息的步骤。当使用awp编码视频帧时,用信号通知这两项运动信息。在一些实施例中,一项运动信息包括参考图像列表0的mvd和参考索引,另一项运动信息包括参考图像列表1的mvd和参考索引。
111.在一些实施例中,为了在跳过和直接模式以及常规帧间预测模式中保持一致,这两项运动信息是从同一参考图像列表l0或l1预测的,因此,解码方法1800还包括解析从l0或l1预测的运动信息的步骤。
112.在一些实施例中,运动信息还包括emvr标志和amvr索引。因此,两项运动信息可以具有不同的mvd精度。
113.本公开的实施例还提供了当在常规帧间预测中应用awp模式时减少编码时间的方法。在一些实施例中,对每个权重矩阵执行awp运动估计过程,并且可以执行预定的编码器处理方法。
114.在一些实施例中,在当前最佳编码模式不是awp模式,且emvr模式开启时(例如,emvr标志为“真”),可以跳过awp的运动估计过程。
115.在一些实施例中,在当前最佳编码模式是跳过模式,而不是awp模式时,可以跳过awp的运动估计过程。
116.在一些实施例中,在当前最佳编码模式不是awp模式,且amvr索引大于预定义的阈值(这意味着精度较低)时,在针对awp的运动估计过程中,可以仅测试权重矩阵的子集而不是所有56个权重矩阵,从而可以减少编码时间。在一些实施例中,权重矩阵的子集可以是在awp的先前运动估计过程中具有最低成本的前七个权重矩阵。
117.在一些实施例中,也提供了包括指令的非暂时性计算机可读存储介质,并且该指令可以由设备(诸如所公开的编码器和解码器)执行,以执行上述方法。非暂时性介质的常见形式包括,例如软盘、柔性磁盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、cd-rom、任何其他光学数据存储介质、任何具有孔图案的物理介质、ram、prom和eprom、flash-eprom或任何其他闪存、nvram、高速缓存、寄存器、任何其他存储芯片或盒及其网络版本。该设备可以包括一个或多个处理器(cpu)、输入/输出接口、网络接口和/或存储器。
118.应当注意,本文中的关系术语,诸如“第一”和“第二”等,仅用于区分一个实体或操
作与另一实体或操作,并不要求或暗示这些实体或操作之间的任何实际关系或顺序。此外,词语“包括”、“具有”、“包含”和“包括”以及其他类似形式旨在具有相同的含义并且是开放式的,因为在这些词语中任何一个之后的一个或多个项目并不意味着是这一个或多个项目的详尽列表,或仅限于所列的一个或多个项目。
119.如本文所用,除非另有特别说明,否则术语“或”包括所有可能的组合,除非不可行。例如,如果声明数据库可能包括a或b,则除非另有明确说明或不可行,否则数据库可能包括a、或b,或a和b。作为第二个示例,如果声明数据库可能包括a、b或c,则除非另有明确说明或不可行,否则数据库可能包括a,或b,或c,或a和b,或a和c,或b和c,或a和b和c。
120.可以理解,上述实施例可以通过硬件或软件(程序代码)或硬件和软件的组合来实现。如果通过软件实现,则可以将其存储在上述计算机可读介质中。该软件当由处理器执行时,可以执行所公开的方法。本公开中描述的计算单元和其他功能单元可以通过硬件、软件或硬件和软件的组合来实现。本领域的普通技术人员还将理解,上述模块/单元中的多个可以组合为一个模块/单元,并且上述每个模块/单元可以进一步划分为多个子模块/子单元。
121.可以使用以下条款进一步描述实施例:
122.1.一种视频编码方法,包括:
123.接收一个或多个视频帧;以及
124.通过用信号通知两项运动信息,使用用于帧间预测的角度加权预测(awp)模式编码一个或多个视频帧,该两项运动信息包括运动矢量差值(mvd)和参考索引。
125.2.根据条款1所述的方法,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,运动信息的第二项包括参考图像列表1的mvd和第二参考索引。
126.3.根据条款2所述的方法,还包括:
127.对使用运动信息的第一项预测的预测块应用第一权重矩阵;以及
128.对使用运动信息的第二项预测的预测块应用第二权重矩阵,其中第一权重矩阵和第二权重矩阵是互补的,且第一权重矩阵由awp方法导出。
129.4.根据条款3所述的方法,其中第一权重矩阵和第二权重矩阵具有从0到8的取值范围。
130.5.根据条款1至4中任一项所述的方法,其中两项运动信息是从相同的参考图像列表中预测的,方法还包括:
131.用信号通知标志,标志指示运动信息是从参考图像列表0或参考图像列表1中预测的。
132.6.根据条款1至5中任一项所述的方法,其中运动信息还包括扩展运动矢量分辨率(emvr)标志和自适应运动矢量分辨率(amvr)标志。
133.7.根据条款1至6中任一项所述的方法,还包括:
134.确定是否对编码单元启用了仿射模式;以及
135.至少部分响应于确定没有对编码单元启用仿射模式,用信号通知第一标志,第一标志指示角度加权预测(awp)是否应用于编码单元的帧间预测。
136.8.根据条款7所述的方法,其中第一标志在确定编码单元在对称运动矢量差值(smvd)模式、双向预测模式、或扩展运动矢量分辨率(emvr)模式中的至少一种模式下编码前用信号通知。
137.9.根据条款8所述的方法,其中在使用对称运动矢量差值(smvd)模式时,禁用awp模式。
138.10.根据条款8所述的方法,其中在使用扩展运动矢量分辨率(emvr)模式时,禁用awp模式。
139.11.根据条款8所述的方法,其中在使用单向预测模式时,禁用awp模式。
140.12.根据条款1至11中任一项所述的方法,还包括:
141.当使用awp模式时,执行预定的编码器处理方法。
142.13.根据条款12所述的方法,其中预定的编码器处理方法包括:
143.在当前编码模式不是awp模式且开启了扩展运动矢量预测(emvr)模式时,跳过awp的运动估计过程。
144.14.根据条款12所述的方法,其中预定的编码器处理方法包括:
145.在当前编码模式为跳过模式且不是awp模式时,跳过awp的运动估计过程。
146.15.根据条款12所述的方法,其中预定的编码器处理方法包括:
147.在当前编码模式不是awp模式且自适应运动矢量分辨率索引大于预设阈值时,在awp的运动估计过程期间测试权重矩阵的子集。
148.16.根据条款12所述的方法,其中权重矩阵的子集包括在awp的先前运动估计过程中具有最低成本的前7个权重矩阵。
149.17.一种视频解码方法,包括:
150.接收包括第一标志的比特流,第一标志指示角度加权预测(awp)模式是否用于编码单元;以及
151.响应于确定awp模式用于编码单元,在用于帧间预测的awp模式下解码比特流。
152.18.根据条款17所述的方法,还包括:
153.响应于确定awp模式用于编码单元,解码两项运动信息,该两项运动信息包括运动矢量差值(mvd)和参考索引。
154.19.根据条款18所述的方法,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,运动信息的第二项包括参考图像列表1的mvd和第二参考索引。
155.20.根据条款19所述的方法,还包括:
156.对使用运动信息的第一项预测的预测块应用第一权重矩阵;以及
157.对使用运动信息的第二项预测的预测块应用第二权重矩阵,其中第一权重矩阵和第二权重矩阵是互补的,且第一权重矩阵由awp方法导出。
158.21.根据条款18至20中任一项所述的方法,其中两项运动信息是从相同的参考图像列表中预测的,方法还包括:
159.解码标志,标志指示运动信息是从参考图像列表0或参考图像列表1中预测的。
160.22.根据条款18至21中任一项所述的方法,其中运动信息还包括扩展运动矢量分辨率(emvr)标志和自适应运动矢量分辨率(amvr)标志。
161.23.根据条款17至22中任一项所述的方法,还包括:
162.确定是否对编码单元启用了仿射模式;以及
163.至少部分响应于确定没有对编码单元启用仿射模式,解码第一标志,第一标志指示角度加权预测(awp)是否应用于编码单元的帧间预测。
164.24.根据条款23所述的方法,其中第一标志在确定编码单元在对称运动矢量差值(smvd)模式、双向预测模式、或扩展运动矢量分辨率(emvr)模式中的至少一种模式下编码前用信号通知。
165.25.一种用于进行视频数据处理的装置,所述装置包括:
166.存储器,用于存储指令;以及
167.一个或多个处理器,与存储器通信连接,用于执行指令以使得装置执行:
168.接收一个或多个视频帧;以及
169.通过用信号通知两项运动信息,使用用于帧间预测的角度加权预测(awp)模式编码一个或多个视频帧,该两项运动信息包括运动矢量差值(mvd)和参考索引。
170.26.根据条款25所述的装置,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,运动信息的第二项包括参考图像列表1的mvd和第二参考索引,处理器还用于执行指令以使得装置执行:
171.对使用运动信息的第一项预测的预测块应用第一权重矩阵;以及
172.对使用运动信息的第二项预测的预测块应用第二权重矩阵,其中第一权重矩阵和第二权重矩阵是互补的,且第一权重矩阵由awp方法导出。
173.27.根据条款25或26所述的装置,其中两项运动信息是从相同的参考图像列表中预测的,且处理器还用于执行指令以使得装置执行:
174.用信号通知标志,标志指示运动信息是从参考图像列表0或参考图像列表1中预测的。
175.28.根据条款25至27中任一项所述的装置,其中处理器还用于执行指令以使得装置执行:
176.确定是否对编码单元启用了仿射模式;以及
177.至少部分响应于确定没有对编码单元启用仿射模式,用信号通知第一标志,第一标志指示角度加权预测(awp)是否应用于编码单元的帧间预测模式。
178.29.根据条款25至28中任一项所述的装置,其中处理器还用于执行指令以使得装置执行:
179.当使用awp模式时,执行预定的编码器处理方法。
180.30.根据条款29所述的装置,其中处理器还用于执行指令以使得装置执行:
181.在当前编码模式不是awp模式且开启了扩展运动矢量预测(emvr)模式时,跳过awp的运动估计过程。
182.31.根据条款29所述的装置,其中处理器还用于执行指令以使得装置执行:
183.在当前编码模式为跳过模式且不是awp模式时,跳过awp的运动估计过程。
184.32.根据条款29所述的装置,其中处理器还用于执行指令以使得装置执行:
185.在当前编码模式不是awp模式且自适应运动矢量分辨率索引大于预设阈值时,在awp的运动估计过程期间测试权重矩阵的子集。
186.33.一种用于进行视频数据处理的装置,所述装置包括:
187.存储器,用于存储指令;以及
188.一个或多个处理器,与存储器通信连接,用于执行指令以使得装置执行:
189.接收包括第一标志的比特流,第一标志指示角度加权预测(awp)模式是否用于编
码单元;以及
190.响应于确定awp模式用于编码单元,在用于帧间预测的awp模式下解码比特流。
191.34.根据条款33所述的装置,其中处理器还用于执行指令以使得装置执行:
192.解码两项运动信息,该两项运动信息包括来自比特流的参考索引和运动矢量差值(mvd)。
193.35.根据条款34所述的装置,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,运动信息的第二项包括参考图像列表1的mvd和第二参考索引,处理器还用于执行指令以使得装置执行:
194.对使用运动信息的第一项预测的预测块应用第一权重矩阵;以及
195.对使用运动信息的第二项预测的预测块应用第二权重矩阵,其中第一权重矩阵和第二权重矩阵是互补的,且第一权重矩阵由awp方法导出。
196.36.根据条款34所述的装置,其中处理器还用于执行指令以使得装置执行:
197.确定是否对编码单元启用了仿射模式;以及
198.至少部分响应于确定没有对编码单元启用仿射模式,解码第一标志,第一标志指示角度加权预测(awp)是否应用于编码单元的帧间预测模式。
199.37.根据条款34所述的装置,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,运动信息的第二项包括参考图像列表1的mvd和第二参考索引,以及
200.处理器还用于执行指令以使得装置执行:
201.解码运动信息,运动信息是从参考图像列表0或参考图像列表1中预测的。
202.38.一种非瞬时计算机可读介质,存储有指令集,该指令集可被装置的一个或多个处理器执行以使得装置启动用于进行视频数据处理的方法,方法包括:
203.接收一个或多个视频帧;以及
204.通过用信号通知两项运动信息,使用用于帧间预测的角度加权预测(awp)模式编码一个或多个视频帧,该两项运动信息包括运动矢量差值(mvd)和参考索引。
205.39.根据条款38所述的非瞬时计算机可读介质,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,运动信息的第二项包括参考图像列表1的mvd和第二参考索引,且方法还包括:
206.对使用运动信息的第一项预测的预测块应用第一权重矩阵;以及
207.对使用运动信息的第二项预测的预测块应用第二权重矩阵,其中第一权重矩阵和第二权重矩阵是互补的,且第一权重矩阵由awp方法导出。
208.40.根据条款38或39所述的非瞬时计算机可读介质,其中两项运动信息是从相同的参考图像列表中预测的,且方法还包括:
209.用信号通知标志,标志指示运动信息是从参考图像列表0或参考图像列表1中预测的。
210.41.根据条款38至40中任一项所述的非瞬时计算机可读介质,其中方法还包括:
211.确定是否对编码单元启用了仿射模式;以及
212.至少部分响应于确定没有对编码单元启用仿射模式,用信号通知第一标志,第一标志指示角度加权预测(awp)是否应用于编码单元的帧间预测模式。
213.42.根据条款38至41中任一项所述的非瞬时计算机可读介质,其中方法还包括:
214.当使用awp模式时,执行预定的编码器处理方法。
215.43.根据条款42所述的非瞬时计算机可读介质,其中预定的编码器处理方法还包括:
216.在当前编码模式不是awp模式且开启了扩展运动矢量预测(emvr)模式时,跳过awp的运动估计过程。
217.44.根据条款42所述的非瞬时计算机可读介质,其中预定的编码器处理方法还包括:
218.在当前编码模式为跳过模式且不是awp模式时,跳过awp的运动估计过程。
219.45.根据条款42所述的非瞬时计算机可读介质,其中预定的编码器处理方法还包括:
220.在当前编码模式不是awp模式且自适应运动矢量分辨率索引大于预设阈值时,在awp的运动估计过程期间测试权重矩阵的子集。
221.46.一种非瞬时计算机可读介质,存储有指令集,该指令集可被装置的一个或多个处理器执行以使得装置启动用于进行视频数据处理的方法,方法包括:
222.接收包括第一标志的比特流,第一标志指示角度加权预测(awp)模式是否用于编码单元;以及
223.响应于确定awp模式用于编码单元,在用于帧间预测的awp模式下解码比特流。
224.47.根据条款46所述的非瞬时计算机可读介质,其中方法还包括:
225.解析两项运动信息,该两项运动信息包括来自比特流的参考索引和运动矢量差值(mvd)。
226.48.根据条款46所述的非瞬时计算机可读介质,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,运动信息的第二项包括参考图像列表1的mvd和第二参考索引,且方法还包括:
227.对使用运动信息的第一项预测的预测块应用第一权重矩阵;以及
228.对使用运动信息的第二项预测的预测块应用第二权重矩阵,其中第一权重矩阵和第二权重矩阵是互补的,且第一权重矩阵由awp方法导出。
229.49.根据条款46所述的非瞬时计算机可读介质,其中方法还包括:
230.确定是否对编码单元启用了仿射模式;以及
231.至少部分响应于确定没有对编码单元启用仿射模式,解码第一标志,第一标志指示角度加权预测(awp)是否应用于编码单元的帧间预测模式。
232.50.根据条款46所述的非瞬时计算机可读介质,其中运动信息的第一项包括参考图像列表0的mvd和第一参考索引,第二项包括参考图像列表1的mvd和第二参考索引,且方法还包括:
233.解码运动信息,运动信息是从参考图像列表0或参考图像列表1中预测的。
234.在前述说明书中,已经参考可以随实施方式而变化的许多具体细节对实施例进行了描述。可以对所描述的实施例进行某些调整和修改。考虑到本文公开的本发明的说明书和实践,其他实施例对于本领域技术人员而言可以是显而易见的。本说明书和示例仅被视为示例性的,本发明的真正范围和精神由以下权利要求指示。图中所示的步骤顺序也仅用于说明目的,并不旨在限于任何特定的步骤顺序。因此,本领域技术人员可以理解,在实现
相同方法的同时,可以以不同的顺序执行这些步骤。
235.在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行许多变化和修改。因此,尽管使用了特定术语,但它们仅在一般和描述性意义上使用,而不是出于限制的目的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1