掌桥专利:专业的专利平台
掌桥专利
首页

使用预测子候选列表进行视频编码和解码的方法和装置

文献发布时间:2023-06-19 10:58:46


使用预测子候选列表进行视频编码和解码的方法和装置

技术领域

本实施例中的至少一个一般涉及一种用于视频编码或解码的方法或装置,更具体地,涉及一种用于有效地修剪用于视频编码或解码的预测子(predictor)候选列表的方法或装置。

背景技术

为了实现高压缩效率,图像和视频编码方案通常采用包括运动矢量预测的预测,并进行变换以利用视频内容中的空间和时间冗余。通常,使用帧内或帧间预测来利用帧内或帧间相关性,然后对原始图像与预测图像之间的差异(通常被标示为预测误差或预测残差)进行变换、量化和熵编码。为了重构视频,通过与熵编码、量化、变换和预测相对应的逆过程来对压缩数据进行解码。

对于高压缩技术新加入了在视频图像的编码和解码中用于运动补偿的各种运动模型。通常,将预测子候选列表中的索引用于运动预测,并且增加该列表中的预测子候选的数量以提高压缩效率。至少一些实施例还涉及使用预测子候选列表的视频压缩方案中的运动补偿。

发明内容

通过本文所述的一般方面,解决并处理了现有技术的缺陷和缺点,这些方面意图有效地修剪用于视频编码或解码的预测子候选列表。

根据第一方面,提供了一种方法。所述方法包括:对于正被编码的块,确定预测子候选集合,其中,对于潜在预测子候选集合中的至少一个当前潜在预测子候选,确定当前潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选,并且作为响应,将当前潜在预测子候选添加到预测子候选集合中;以及基于来自预测子候选集合的预测子候选对块进行编码。

根据另一方面,提供了第二种方法。所述方法包括:对于图片中正被解码的块,接收用于解码模式的信息;对于正被解码的块,确定预测子候选集合,其中,对于潜在预测子候选集合中的至少一个当前潜在预测子候选,确定当前潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选,并且作为响应,将当前潜在预测子候选添加到预测子候选集合中;以及基于接收到的信息和预测子候选集合对块进行解码。

根据另一方面,提供了一种装置。所述装置包括一个或多个处理器,其中,所述一个或多个处理器被配置为:对于正被编码的块,确定预测子候选集合,其中,对于潜在预测子候选集合中的至少一个当前潜在预测子候选,当前潜在预测子候选被确定为不同于来自预测子候选集合的预测子候选子集中的任何预测子候选,并且作为响应,将当前潜在预测子候选添加到预测子候选集合中;以及基于来自预测子候选集合的预测子候选对块进行编码。

根据另一方面,提供了另一种装置。所述装置包括一个或多个处理器,其中,所述一个或多个处理器被配置为:对于图片中正被解码的块,接收用于解码模式的信息;对于正被解码的块,确定预测子候选集合,其中,对于潜在预测子候选集合中的至少一个当前潜在预测子候选,当前潜在预测子候选被确定为不同于来自预测子候选集合的预测子候选子集中的任何预测子候选,并且作为响应,将当前潜在预测子候选添加到预测子候选集合中;以及基于接收到的信息和预测子候选集合对块进行解码。

根据至少一个实施例的另一个一般方面,预测子候选集合是有序的,并且子集包括预测子候选集合中的后N个预测子候选,N是1与集合中的最大候选数量之间的整数。

根据至少一个实施例的另一个一般方面,预测子候选的次序是基于集合中的连续的潜在预测子候选之间的距离。

根据至少一个实施例的另一个一般方面,将N设定为2,并且预测子候选的次序是:与当前预测子候选具有较大距离的预测子候选,之后是与当前预测子候选具有较小距离的预测子候选。

根据至少一个实施例的另一个一般方面,预测子候选集合包括空间和时间预测子候选,并且其中,连续的预测子候选之间的距离包括空间距离和时间距离。

根据至少一个实施例的另一个一般方面,预测子候选的次序适应于块的大小。

根据至少一个实施例的另一个一般方面,基于用于确定预测子候选集合中的连续的潜在预测子候选之间的距离对预测子候选集合进行排序,并且在所述确定之后,根据另一个标准对预测子候选集合进行重新排序。

根据至少一个实施例的另一个一般方面,预测子候选集合在自适应运动矢量预测模式下使用。

根据至少一个实施例的另一个一般方面,预测子候选集合在合并模式下使用。

根据至少一个实施例的另一个一般方面,预测子候选集合包括仿射预测子候选。

根据至少一个实施例的另一个一般方面,提供了一种设备,所述设备包括:根据解码实施例中的任一项所述的装置;以及以下中的至少一个:(i)天线,所述天线被配置为接收信号,所述信号包括视频块;(ii)频带限制器,所述频带限制器被配置为将接收到的信号限制为包括视频块的频率带,或者(iii)显示器,所述显示器被配置为显示表示视频块的输出。

根据至少一个实施例的另一个一般方面,提供了一种非暂时性计算机可读介质,其包含根据所描述的编码实施例或变型中的任一个所生成的数据内容。

根据至少一个实施例的另一个一般方面,提供了一种信号,其包括根据所描述的编码实施例或变型中的任一个所生成的视频数据。

根据至少一个实施例的另一个一般方面,将比特流进行格式化以包括根据所描述的编码实施例或变型中的任一个所生成的数据内容。

根据至少一个实施例的另一个一般方面,提供了一种包括指令的计算机程序产品,所述指令在所述程序由计算机执行时使所述计算机执行所描述的解码实施例或变型中的任一个。

从下面结合附图对示例性实施例的详细描述中,这些和其它方面、一般方面的特征和优点将变得显而易见。

附图说明

图1示出了编码树单元和编码树概念以表示压缩的HEVC图片。

图2示出了将编码树单元划分为编码单元、预测单元和变换单元。

图3示出了根据本公开的实施例的编码方法。

图4示出了根据本公开的实施例的解码方法。

图5示出了根据HEVC规范的帧间预测信息的信令。

图6a示出了在HEVC中以合并模式使用的空间和时间运动矢量预测子候选的位置。

图6b示出了在HEVC中以合并模式使用的时间运动矢量预测子候选的位置。

图7示出了根据本公开的实施例的用于利用N=2的部分列表比较来创建候选列表的方法。

图8示出了根据本公开的实施例的用于创建重新排序的候选列表的示例性过程。

图9示出了根据本公开的实施例的候选之间的空间距离的示例性量度。

图10、11、12和13示出了根据本公开的其它实施例的候选之间的空间距离的其它示例性度量以及重新排序。

图14示出了根据本公开的另一实施例的用于仿射角(affine corner)的编号。

图15示出了根据本公开的实施例的针对重新排序的候选列表计算仿射模型之间的距离的示例性过程。

图16示出了根据本公开的另一个实施例的仿射模型之间的距离的另一个示例性量度。

图17示出了视频编码器的实施例的框图。

图18示出了视频解码器的实施例的框图。

图19示出了可以在其中实施本实施例的各方面的系统的框图。

具体实施方式

应当理解,已经简化了附图和描述以示出与清楚理解本原理有关的元素,同时为了清楚起见,省去了在典型的编码和/或解码设备中发现的许多其它元素。应当理解,尽管可以在本文中使用术语第一和第二以描述各种元素,但是这些元素不应受这些术语限制。这些术语仅用于区分一个元素与另一个元素。

关于对图片的编码/解码描述了各个实施例。它们可以应用于对图片的一部分(诸如切片(slice)或图块(tile)或整个图片序列)进行编码/解码。

上面描述了各种方法,并且这些方法中的每一个包括用于实现所描述的方法的一个或多个步骤或动作。除非对于方法的正确操作来说需要特定次序的步骤或动作,否则可以修改或组合特定步骤和/或动作的次序和/或使用。

在HEVC视频压缩标准(H.265/HEVC高效视频编码,ITU的ITU-T H.265电信标准化部门,“H系列:视听和多媒体系统、视听服务的基础设施——运动视频编码、高效视频编码”)中,采用运动补偿时间预测来利用视频的连续图片之间存在的冗余。为此,将运动矢量与现在介绍的每个预测单元(PU)相关联。每个CTU(编码树单元)由压缩域中的编码树来表示。这是CTU的四叉树划分,其中每个叶子被称为编码单元(CU),如图1所示。

然后,为每个CU给出一些帧内或帧间预测参数(预测信息)。为此,将其在空间上分割为一个或多个预测单元(PU),每个PU均被指派有一些预测信息。在CU级别上指派帧内或帧间编码模式,如图2所示。

在HEVC中,为每个PU指派正好一个运动矢量(图1中的箭头)。该运动矢量用于对所考虑的PU的运动补偿时间预测。因此,在HEVC中,链接预测块及其参考块的运动模型仅在于平移(translation)。因此,通常将其称为平移或传统运动预测模型。

而且,在HEVC中采用两种模式来对运动数据进行编码。它们分别被称为AMVP(自适应运动矢量预测)和合并(Merge)。

AMVP主要在于发信号通知用于预测当前PU的(多个)参考图片、运动矢量预测子索引(取自2个预测子的列表)和运动矢量差。

合并模式包括发信号通知在运动数据预测子的列表中收集的一些运动数据的索引并对其进行解码。该列表由5个候选组成,并在解码器和编码侧以相同的方式构造。因此,合并模式意图导出取自合并列表的一些运动信息。合并列表通常包含与一些空间和时间围绕的块相关联的运动信息,当处理当前PU时,该运动信息在其解码状态下是可用的。

在由JVET(联合视频探索小组)组开发的联合探索模型(JEM)和后续VTM(通用视频编码(VVC)测试模型)中,支持了一些更丰富的运动模型以改善时间预测。为此,可以在空间上将PU划分为子PU,并且可以使用更丰富的模型为每个子PU指派专用运动矢量。在JEM中引入的新运动模型中的一个是仿射模型,它基本上在于使用仿射模型来表示CU中的运动矢量。对于AMVP和合并两种模式,VVC中的PU可以是平移的或仿射的。

本原理有利地与生成运动数据预测子候选列表的任何模式相关,并且将在本申请的以下内容中进行讨论。在所有情况下,都需要构造候选列表。给出了最大列表大小M(但是对于合并、合并仿射等的每种模式,最大候选数量可以是不同的)。要推送到列表中的最大候选数量是P。在编码器处,将索引发送到解码器以发信号通知预测子(即,运动矢量)用作用于解码的预测子。

用于提高压缩效率的方法提出增加要添加到列表中以用于运动预测的潜在候选的数量。然而,期望避免在候选列表中出现冗余。因此,在将潜在候选添加到列表之前进行附加验证以检查该候选是否已经存在。因此,增加列表中的候选的数量使解码器/编码器的设计复杂化。实际上,在现有技术方法中,列表创建包括以固定次序循环处理所有潜在候选,并且如果它通过了某个标准,则将其放入列表中。为了提高压缩性能,用于对潜在候选进行滤波的标准是检查它是否已在列表中(基于唯一性(unicity)进行修剪(prune))。这增加了列表创建复杂性,因为它需要将给出的候选与列表中已经存在的所有候选进行比较。最坏情况的比较复杂度由C=(M-1)(M-2)/2+(M-1)(P-N+1)给出,其中整数M和P在上面进行了定义,并且N是要添加到列表中已经存在的候选中的给出候选的数量。

用于限制比较复杂度的一种解决方案是跳过唯一性修剪。然而,这种解决方案降低了压缩性能,因为该列表可以用相同的候选填充。

因此期望一种生成候选列表(用于合并、合并仿射、AMVP、或AMVP仿射)的编码/解码方法,该编码/解码方法(通过提出许多潜在候选)在压缩效率方面是有效的,并且(通过限制列表创建的计算)在复杂度方面也是有效的。

本原理的至少一个实施例涉及一种编码/解码方法,其包括:

-通过将当前候选与列表中的后N个候选(0

-对诸如上述标准之类的列表创建进行排序得到缓解,并且不会影响压缩性能。

描述了几个实施例:

-将用于修剪的比较限制为列表的一部分,而不是列表中的所有元素;

-更具体地,限制为后N个元素;

-对列表创建进行动态地重新排序以将可能类似的候选一起紧密地放置在列表中;

-更具体地,将在空间上紧密的候选紧密地放置在列表中;

-更具体地,考虑块大小以选择空间上紧密的候选;

-更具体地,对于仿射候选,考虑角位置以确定紧密的候选。

根据本公开的至少一个方面,公开了一种用于对视频进行编码的方法。此方法包括访问310正被编码的块。对于帧间编码,在步骤320处为正被编码的块确定预测子候选集合。根据至少一个一般实施例,测试潜在预测子候选集合中的至少一个当前潜在预测子候选,以在子步骤323处确定当前潜在预测子候选是否不同于来自预测子候选集合的预测子候选子集中的任何预测子候选。在当前潜在预测子候选不同于子集中的候选的情况下(是),将当前潜在预测子候选添加到预测子候选集合中。并且如果有的话,测试潜在预测子候选集合中的另一个当前潜在预测子候选。在跳过当前潜在预测子候选的情况下(否)并且如果有的话,测试潜在预测子候选集合中的另一个当前潜在预测子候选。一旦创建了预测子候选集合(或列表),就在330处基于来自预测子候选集合的预测子候选对块进行编码,如例如针对合并模式、仿射合并模式、AMVP或仿射AMVP所描述的。

根据在示例性第二实施例中讨论的特定特征,在322处对潜在预测子候选集合进行排序,并且预测子候选的次序是基于潜在预测子候选集合中的连续的潜在预测子候选之间的距离。因此,对预测子候选集合相应地进行排序,因为在修剪之后,潜在候选被逐一地添加在预测子候选集合中。有利的是,使用不同的距离变型:欧几里得距离、曼哈顿距离、棋盘距离。

根据本公开的至少一个方面,公开了一种用于对视频进行解码的方法。此方法包括访问410正被解码的块以及对于正被解码的块接收用于解码模式的信息。对于帧间解码,在步骤420处为当前块确定预测子候选集合,如对编码方法所进行的那样,以获得相同的预测子候选集合。根据至少一个一般实施例,测试潜在预测子候选集合中的至少一个当前潜在预测子候选,以在子步骤423处确定当前潜在预测子候选是否不同于来自预测子候选集合的预测子候选子集中的任何预测子候选。然后,在424处,在当前潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选的情况下,将当前潜在预测子候选添加到预测子候选集合中,或者在当前潜在预测子候选尚未在该子集中的情况下,跳过该当前潜在预测子候选。在430处,基于接收到的信息和预测子候选集合对块进行解码。

根据在第二示例性实施例中讨论的特定特征,在422中对潜在预测子候选集合以及相应地对预测子候选集合进行排序。预测子候选的次序是基于潜在预测子候选集合中的连续的潜在预测子候选之间的距离。

在本节中,作为其中可以应用本原理的示例性实施例,描述了在HEVC中为合并模式创建预测子候选列表(或集合)的原理。相同原理适用于仿射合并或AMVP列表创建。

在HEVC标准中,合并模式包括从选定的运动信息预测子候选导出给出的预测元素PU(在应用中也被称为块)的帧间预测信息(以下也称为运动信息)。此处考虑的运动信息包括PU的所有帧间预测参数,即:

-单向或双向时间预测类型

-每个参考图片列表内的参考图片索引

-(多个)运动矢量

图5概述了在HEVC中对帧间预测信息的编码和解码。可以看出,根据合并模式的运动信息编码/解码采用两种模式:跳过模式和合并模式。在这两种模式下,发信号通知单个字段来使解码器能够检索PU的运动信息:所谓的合并索引。合并索引指示合并运动信息预测子的列表中的哪个运动矢量预测子用于导出当前PU的运动信息。在下文中,运动信息预测子的列表被称为合并列表或合并候选列表。此外,候选运动信息预测子被称为合并候选。在下文中,术语“预测子候选”还独立于运动预测模式用作合并候选的通用名称。

在HEVC中,合并候选列表系统地由5个合并候选组成。本节下文描述了如何在编码器侧和解码器侧构造合并列表。可以看出,最多考虑5个空间位置来检索一些潜在候选。根据以下次序(称为潜在预测子候选集合的次序)对它们进行访问:

1-左侧(A1)

2-上方(B1)

3-右上方(B0)

4-左下方(A0)

5-左上方(B2)

6-时间H

7-时间中心C

8-组合

9-零

其中符号A0、A1、B0、B1、B2标示图6所示的空间位置。选择彼此不同的5个空间候选。然后选择被记为TMVP的时间预测子,首先考虑位于位置H处的时间运动信息,并且如果位置H处的候选不可用,则将其“居中”。然后进行最后的修剪过程以确保选定的空间和时间候选的集合不包含冗余候选。

接下来,在B切片的情况下,如果合并列表未满,则将另一种类型的候选推送到合并列表中:所谓的合并候选。这在于形成候选,该候选由与来自列表中已经存在的一个候选的一个参考图片列表(L0)相关联的运动信息以及与来自合并列表中已经存在的另一个候选的另一参考图片列表(L1)相关联的运动组成。

最后,如果合并列表仍未满(5个元素),则将零运动矢量推送到合并列表的后面,直到合并列表满了为止。

根据至少一个实施例,在潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选的情况下,将此潜在预测子候选添加到预测子候选集合。该子集与预测子候选集合不同。有利的是,该实施例执行部分列表比较,因此降低了复杂度。根据用于便于读者更好地理解的非限制性示例,该子集包括预测子候选集合中的后N个预测子候选,N是1与集合中的最大候选数量之间的整数。

换句话说,当将候选添加到列表中时,将该候选与列表中后N=2个候选进行比较,而不是修剪所有候选。图7示出了根据本公开的实施例的用于利用N=2的部分列表比较来确定候选列表的方法。M是最大列表大小,P是要推送到列表中的最大候选数量,并且N是要测试以便修剪的子集的大小。标识在列表V中添加的候选的变量i被初始化为零。然后,由于列表为空(i

为了提高效率并修剪最大数量的相同候选,提出使用上述过程以及对潜在预测子候选列表的重新排序。相应地,列表排序不同于先前提出的用于HEVC合并模式的列表排序({A1,B1,B0,A0,B2,H,C})。

该列表使用某个次序来遵循以下约束:

-(C0)尽可能快地将可能不同的候选放入列表中,以便以低的索引编码成本(索引越低,编码成本就越低)提出最大数量的候选多样性

-(C1)尽可能多地将可能类似的候选分隔开最多N个,以便能够消除可能的重复:如果距离小于或等于N,则将删除相同的候选,从而留出更多空间来放置其它潜在候选。

例如,对于从A1开始的5个潜在候选的集合,得到图8中用虚线点表示的以下次序:{A1,B0,A0,B1,B2}。在图9中,示出了候选之间的对应空间距离。有利的是,使用曼哈顿距离,其中,曼哈顿距离是沿X的距离与沿Y的距离之和(即,竖直距离和水平距离之和)。

从A1开始,对于N=2,算法如下:

-添加A1。当前列表现在是{A1}。

-进一步远离A1:B0。当前列表现在是{A1,B0}

-进一步远离当前列表中的且靠近A1的候选(即,列表中之前的2个索引):A0。当前列表现在是{A1,B0,A0}

-进一步远离当前列表中的且靠近B0的候选(即,列表中之前的2个索引):A1。当前列表现在是{A1,B0,A0,B1}

-进一步远离当前列表中的且靠近B0的候选(即,列表中之前的2个索引):B2。当前列表现在是{A1,B0,A0,B1,B2}

可见,对于N=2,它遵循(C0)和(C1)。

根据又一实施例,列表排序是动态的,并且取决于块的大小。有利的是,该实施例允许改善基于距离的次序,因为该实施例动态地考虑候选之间的空间距离。

图10示出了适于厚块(fat block)的第三实施例的第一变型。例如,对于5个潜在候选的集合,对于厚块(大于高),在图10的右部分示出候选之间的距离。

从B2开始,得到以下次序:

-添加B2。列表现在是{B2}。

-进一步远离B2:B0。当前列表现在是{B2,B0}。

-进一步远离当前列表中的且靠近B2的候选(即,列表中之前的2个索引):A1。当前列表现在是{B2,B0,A1}

-进一步远离当前列表中的且靠近B0的候选(即,列表中之前的2个索引):A1。当前列表现在是{B2,B0,A1,B1}

-进一步远离当前列表中的且靠近A1的候选(即,列表中之前的2个索引):A0。当前列表现在是{B2,B0,A1,B1,A0}

图11示出了适于薄块(thin block)的第三实施例的第二变型。从B2开始,得到以下次序:

-添加B2。列表现在是{B2}。

-进一步远离B2:A0。当前列表现在是{B2,A0}

-进一步远离当前列表中的且靠近B2的候选(即,列表中之前的2个索引):B1。当前列表现在是{B2,A0,B1}

-进一步远离当前列表中的且靠近A0的候选(即,列表中之前的2个索引):A1。当前列表现在是{B2,A0,B1,A1}

-进一步远离当前列表中的且靠近B1的候选(即,列表中之前的2个索引):B0。当前列表现在是{B2,A0,B1,A1,B0}

有利的是,预先为每个块大小确定次序。

图12示出了适于非相邻候选的第三实施例的第三变型。在最新的新编码标准(诸如通用视频编码)的开发中,还提出了与当前块不相邻的候选,如图12所示。通过在计算距离时应用与上述相同的过程,有利地易于调整本原理,并且还计算最佳次序。

图13进一步示出了适于时间候选的第三实施例的第四变型。由于在其它参考系中采用了时间候选(请参见图13中的候选T),因此空间候选与时间候选之间的距离可以任意偏移。例如,在图13中,如果B2与B0之间的距离为d,则将A0与T之间的距离设定为d+k,其中k足够大(例如,k=2*d或取决于POC距离)。时间候选自身之间的距离可以像针对空间候选一样进行计算,如果它们源自同一参考图片的话。

根据第三实施例的又一变型,关于时间候选距离调整,可以在候选之间设定任意偏移,如果它们不共享用于运动矢量的相同参考图片索引的话。

在最新的新编码标准(诸如通用视频编码)的开发中,考虑仿射构造的候选用于合并模式。对于仿射构造的候选,角之间的距离变得很重要。通过使用2个或更多个候选矢量(通常在PU的角处)来计算构造的仿射模型。

为了改善此次序,提出考虑用于构建模型的角。例如,合并仿射过程添加了以下构造的仿射候选,其中图14示出了用于仿射候选的编号:

{0,1,2},//1:LT,RT,LB

{0,1,3},//2:LT,RT,RB

{0,2,3},//3:LT,LB,RB

{1,2,3},//4:RT,LB,RB

{0,1},//5:LT,RT

{0,2},//6:LT,LB

{1,2},//7:RT,LB

{0,3},//8:LT,RB

{1,3},//9:RT,RB

{2,3},//10:LB,RB

在构造模型的情况下,通过考虑用于构造模型的角之间的距离来获得模型之间的距离。

在图15中,示出了用于计算2个模型M0和M1之间的距离的过程。将M0的每个角C与模型M1之间的距离S进行累加,并且互易地将M1的每个角C与模型M0之间的距离S进行累加。根据特定变型,角C与模型M之间的距离是小于角C与模型M的任何角之间的距离的距离。

例如,模型M0{0,1,2}与M1{0,1,3}之间的距离由这些距离之和给出:

-S=0

-0与{0,1,3}中最近的角之间的距离。S+=0

-1与{0,1,3}中最近的角之间的距离。S+=0

-2与{0,1,3}中最近的角之间的距离。S+=距离(2,3)

-0与{0,1,2}中最近的角之间的距离。S+=0

-1与{0,1,2}中最近的角之间的距离。S+=0

-3与{0,1,2}中最近的角之间的距离。S+=距离(2,3)

则最终距离为S=2*距离(2,3)。

假设角0与1之间的距离为1并且角2与1之间的距离为2,则如上所述获得模型之间距离的表。由于角3是时间候选,因此将其距离设定为:距离(2,3)=距离(1,3)=3,距离(0,3)=4。使用与之前相同的过程,找到最佳次序来对仿射模型候选进行排序。在又一变型中,还应用相同的动态过程来考虑块大小(对于厚块或薄块)。

在上述所有情况下,两个列表(修剪之前的潜在候选和修剪后的候选)次序都是固定的,并且根据距离标准进行重新排序。在第五实施例中,仅修剪过程将遵循根据距离的最佳列表重新排序,所确定的预测子候选列表遵循原始创建次序。换句话说,在确定/修剪之后对所确定的候选列表进行重新排序,使得输出的候选列表次序与原始列表相比没有被修改。在这种情况下,候选索引编码是相同的,并且比较的次数被保持得很低。

本申请描述了包括工具、特征、实施例、模型、方法等的各个方面。这些方面中的许多方面是专门描述的,并且至少为了示出单独的特性,通常以可能听起来限制性的方式来描述。然而,这是为了描述清楚起见,并且不限制那些方面的应用或范围。实际上,所有不同方面都可以组合和互换以提供进一步的方面。此外,这些方面也可以与先前申请中所述的方面进行组合和互换。

本申请中描述和预期的方面可以以许多不同的形式来实施。下面的图17、18和19提供了一些实施例,但是可以预期其它实施例,并且图17、18和19的讨论不限制实施方式的广度。这些方面中的至少一个方面一般涉及视频编码和解码,并且至少一个其它方面一般涉及发送所生成或编码的比特流。这些和其它方面可以被实施为一种方法、一种装置、一种其上存储有用于根据所描述的任何方法对视频数据进行编码或解码的指令的计算机可读存储介质,和/或一种其上存储有根据所描述的任何方法生成的比特流的计算机可读存储介质。

在本申请中,术语“重构的”和“解码的”可以互换使用,术语“像素”和“样点”可以互换使用,术语“图像”、“图片”和“帧”可以互换使用。通常但并非必须,术语“重构的”在编码器侧使用,而“解码的”在解码器侧使用。

本文描述了各种方法,并且该方法中的每一个包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定次序的步骤或动作,否则可以修改或组合特定步骤和/或动作的次序和/或使用。

本申请中描述的各种方法和其它方面可以用于修改如图17和图18所示的视频编码器100和解码器200的模块,例如,运动估计模块(175)和运动补偿模块(170、275)。此外,本方面不限于VVC或HEVC,并且可以应用于例如其它标准和建议,无论是先前存在的还是未来开发的,以及任何这样的标准和建议的扩展(包括VVC和HEVC)。除非另外指出或在技术上被排除,否则本申请中描述的方面可以单独或组合使用。

在本申请中使用了各种数值,例如,在唯一性修剪中使用的子集中的预测子候选的数量N。特定值是出于示例目的,并且所描述的方面不限于这些特定值。

图17示出了编码器100。可以预期该编码器100的变型,但是为了清楚起见,下面描述了编码器100而没有描述所有预期的变型。

在被编码之前,视频序列可以经过预编码处理(101),例如,对输入色彩图片应用色彩变换(例如,从RGB 4:4:4转换到YCbCr 4:2:0),或对输入的图片成分执行重新映射以便获得对压缩更具弹性的信号分布(例如,使用色彩成分中的一个的直方图均衡化)。元数据可以与预处理相关联并附加到比特流。

在编码器100中,如下所述,通过编码器元件对图片进行编码。以例如CU为单位对要编码的图片进行分割(102)和处理。使用例如帧内或帧间模式对每个元素进行编码。当单元以帧内模式编码时,其执行帧内预测(160)。在帧间模式下,执行运动估计(175)和补偿(170)。编码器决定(105)帧内模式或帧间模式中的哪一个模式用于对单元进行编码,并且通过例如预测模式标志来指示帧内/帧间决定。例如通过从原始图像块减去(110)预测块来计算预测残差。

然后对预测残差进行变换(125)和量化(130)。对量化的变换系数以及运动矢量和其它语法元素进行熵编码(145)以输出比特流。编码器可以跳过变换并将量化直接应用于未变换的残差信号。编码器可以绕过变换和量化两者,即,在不应用变换或量化过程的情况下直接对残差进行编码。

编码器对编码的块进行解码,以为进一步的预测提供参考。对量化的变换系数进行逆量化(140)和逆变换(150)以对预测残差进行解码。结合(155)解码的预测残差和预测块,重构图像块。环路滤波器(165)被应用于重构的图片以执行例如去方块/SAO(样点自适应偏移)滤波以减少编码伪像。将滤波后的图像存储在参考图片缓冲器(180)中。

图18示出了视频解码器200的框图。在解码器200中,如下所述,由解码器元件对比特流进行解码。视频解码器200通常执行与如图18所述的编码遍历互易的解码遍历。编码器100通常还执行视频解码,作为对视频数据进行编码的一部分。

具体地,解码器的输入包括视频比特流,其可以由视频编码器100生成。首先对比特流进行熵解码(230)以获得变换系数、运动矢量和其它编码信息。图片分割信息指示图片如何分割。因此,解码器可以根据解码的图片分割信息来划分(235)图片。对变换系数进行逆量化(240)和逆变换(250)以对预测残差进行解码。结合(255)解码的预测残差和预测块,重构图像块。可以从帧内预测(260)或运动补偿预测(即,帧间预测)(275)获得(270)预测块。将环路滤波器(265)应用于重构的图像。将滤波后的图像存储在参考图片缓冲器(280)中。

解码的图片可以进一步经历解码后处理(285),例如,逆色彩变换(例如,从YCbCr4:2:0转换到RGB 4:4:4)或逆重新映射,该逆重新映射执行在预编码处理(101)中执行的重新映射过程的逆过程。解码后处理可以使用在预编码处理中导出并在比特流中发信号通知的元数据。

图19示出了在其中实施各个方面和实施例的系统的示例的框图。系统1000可以被体现为包括以下描述的各种组件的设备,并且被配置为执行本文档中描述的一个或多个方面。此类设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录系统、联网家用电器和服务器。系统1000的元件可以单独或组合地体现在单个集成电路(IC)、多个IC和/或分立组件中。例如,在至少一个实施例中,系统1000的处理和编码器/解码器元件分布在多个IC和/或分立组件上。在各个实施例中,系统1000经由例如通信总线或通过专用输入和/或输出端口通信地耦合到一个或多个其它系统或其它电子设备。在各个实施例中,系统1000被配置为实施本文档中描述的一个或多个方面。

系统1000包括至少一个处理器1010,该至少一个处理器被配置为执行在其中加载的指令,以用于实施例如本文档中描述的各个方面。处理器1010可以包括嵌入式存储器、输入输出接口以及本领域已知的各种其它电路。系统1000包括至少一个存储器1020(例如,易失性存储器设备和/或非易失性存储器设备)。系统1000包括存储设备1040,其可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可以包括内部存储设备、附接的存储设备(包括可拆卸和不可拆卸的存储设备)和/或网络可访问存储设备。

系统1000包括编码器/解码器模块1030,其被配置为例如处理数据以提供编码的视频或解码的视频,并且编码器/解码器模块1030可以包括其自己的处理器和存储器。编码器/解码器模块1030表示可以被包括在设备中以执行编码和/或解码功能的(多个)模块。众所周知,设备可以包括编码和解码模块之一或两者。另外,编码器/解码器模块1030可以被实施为系统1000的单独元件,或者可以作为本领域技术人员已知的硬件和软件的组合被并入处理器1010内。

可以将要加载到处理器1010或编码器/解码器1030上以执行本文档中描述的各个方面的程序代码存储在存储设备1040中,然后将其加载到存储器1020上以由处理器1010执行。根据各个实施例,在执行本文档中描述的过程期间,处理器1010、存储器1020、存储设备1040和编码器/解码器模块1030中的一个或多个可以存储各个项目中的一个或多个。此类存储的项目可以包括但不限于输入的视频、解码的视频或解码的视频的一部分、比特流、矩阵、变量,以及对等式、公式、操作和运算逻辑的处理的中间或最终结果。

在一些实施例中,处理器1010和/或编码器/解码器模块1030内部的存储器用于存储指令并为编码或解码期间所需的处理提供工作存储器。然而,在其它实施例中,处理设备外部的存储器(例如,处理设备可以是处理器1010或编码器/解码器模块1030)用于这些功能中的一个或多个。外部存储器可以是存储器1020和/或存储设备1040,例如,动态易失性存储器和/或非易失性闪存。在几个实施例中,外部非易失性闪存用于存储例如电视机的操作系统。在至少一个实施例中,诸如RAM之类的快速外部动态易失性存储器用作用于诸如MPEG-2(MPEG是指运动图像专家组,MPEG-2也被称为ISO/IEC13818,并且13818-1也被称为H.222,并且13818-2也被称为H.262)、HEVC(HEVC是指高效视频编码,也被称为H.265和MPEG-H第2部分)或VVC(通用视频编码,即,由JVET联合视频专家小组开发的新标准)之类的视频编码和解码操作的工作存储器。

如框1130所指示,可以通过各种输入设备来提供对系统1000的元件的输入。此类输入设备包括但不限于:(i)射频(RF)部分,其接收例如广播公司通过空中发送的RF信号;(ii)分量(COMP)输入端子(或COMP输入端子的集合);(iii)通用串行总线(USB)输入端子;和/或(iv)高清晰度多媒体接口(HDMI)输入端子。在图19中未示出的其它示例包括复合视频。

在各个实施例中,框1130的输入设备具有相关联的相应输入处理元件,如本领域中已知的。例如,RF部分可以与适合于以下各项的元件相关联:(i)选择期望频率(也被称为选择信号,或将信号的频带限制为频率带);(ii)对选定信号进行下变频;(iii)再次将频带限制为较窄的频率带以选择(例如)在某些实施例中可以被称为信道的信号频率带;(iv)对经下变频的并经频带限制的信号进行下解调;(v)执行纠错;以及(vi)进行解复用以选择期望的数据分组流。各个实施例的RF部分包括用于执行这些功能的一个或多个元件,例如,频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。RF部分可以包括执行这些功能中的各种功能的调谐器,这些功能包括例如将接收到的信号下变频为较低频率(例如,中频或近基带频率)或基带。在一个机顶盒实施例中,RF部分及其相关联的输入处理元件接收在有线(例如,电缆)介质上发送的RF信号,并通过滤波、下变频和再次滤波到期望频率带来执行频率选择。各个实施例重新布置上述(和其它)元件的次序,移除这些元件中的一些元件,和/或添加执行类似或不同功能的其它元件。添加元件可以包括在现有元件之间插入元件,诸如例如,插入放大器和模数转换器。在各个实施例中,RF部分包括天线。

另外,USB和/或HDMI端子可以包括相应的接口处理器以通过USB和/或HDMI连接将系统1000连接到其它电子设备。应当理解,输入处理的各个方面(例如,里德-所罗门纠错)可以根据需要例如在单独的输入处理IC内或在处理器1010内实施。类似地,USB或HDMI接口处理的各方面可以根据需要在单独的接口IC内或在处理器1010内实施。经解调、经纠错和经解复用的流被提供给各种处理元件,包括例如处理器1010以及与存储器和存储元件结合操作以根据需要处理数据流以在输出设备上呈现的编码器/解码器1030。

可以在集成壳体内提供系统1000的各个元件。在集成壳体内,可以使用合适的连接布置(例如,本领域中公知的内部总线,包括Inter-IC(I2C)总线、布线和印刷电路板)互连各个元件并在各个元件之间发送数据。

系统1000包括通信接口1050,该通信接口使得能够经由通信信道1060与其它设备进行通信。通信接口1050可以包括但不限于被配置为在通信信道1060上发送和接收数据的收发器。通信接口1050可以包括但不限于调制解调器或网卡,并且通信信道1060可以例如在有线和/或无线介质内实施。

在各个实施例中,使用诸如Wi-Fi网络之类的无线网络(例如IEEE 802.11(IEEE是指电气和电子工程师协会))将数据流式发送或以其它方式提供给系统1000。这些实施例的Wi-Fi信号在适于Wi-Fi通信的通信信道1060和通信接口1050上被接收。这些实施例的通信信道1060通常连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的接入,以允许流应用和其它云上通信。其它实施例使用机顶盒向系统1000提供流式数据,该机顶盒通过输入块1130的HDMI连接来传递数据。另外的其它实施例使用输入块1130的RF连接将流式数据提供给系统1000。如上文所指示的,各个实施例以非流式发送的方式提供数据。另外,各个实施例使用除Wi-Fi之外的无线网络,例如蜂窝网络或蓝牙网络。

系统1000可以向包括显示器1100、扬声器1110和其它外围设备1120的各种输出设备提供输出信号。各个实施例的显示器1100包括例如触摸屏显示器、有机发光二极管(OLED)显示器、弯曲显示器和/或可折叠显示器中的一个或多个。显示器1100可以用于电视机、平板计算机、膝上型计算机、手机(移动电话)或其它设备。显示器1100还可以与其它组件集成(例如,集成在智能电话中)或者是单独的(例如,膝上型计算机的外部监视器)。在实施例的各个示例中,其它外围设备1120包括独立数字视频光盘(或数字多功能光盘)(对于两个术语都是DVR)、磁盘播放器、立体声系统和/或照明系统。各个实施例使用基于系统1000的输出来提供功能的一个或多个外围设备1120。例如,磁盘播放器执行播放系统1000的输出的功能。

在各个实施例中,控制信号使用诸如AV.Link、消费者电子控件(CEC)或在有或没有用户干预的情况下启用设备对设备控制的其它通信协议之类的信令,而在系统1000与显示器1100、扬声器1110或其它外围设备1120之间通信。输出设备可以通过相应的接口1070、1080和1090经由专用连接通信耦合到系统1000。替代地,可以经由通信接口1050使用通信信道1060将输出设备连接到系统1000。显示器1100和扬声器1110可以与诸如例如电视机之类的电子设备中的系统1000的其它组件集成在单个单元中。在各个实施例中,显示接口1070包括显示驱动器,诸如例如时序控制器(T Con)芯片。

例如,如果输入1130的RF部分是单独的机顶盒的一部分,则显示器1100和扬声器1110可以替代地与一个或多个其它组件分离。在显示器1100和扬声器1110是外部组件的各个实施例中,可以经由专用输出连接来提供输出信号,该专用输出连接包括例如HDMI端口、USB端口或COMP输出。

可以通过由处理器1010实施的计算机软件或通过硬件或通过硬件与软件的组合来实施该实施例。作为非限制性示例,实施例可以由一个或多个集成电路来实施。存储器1020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实施,作为非限制性示例,该数据存储技术诸如光学存储器设备、磁性存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。作为非限制性示例,处理器1010可以是适合于技术环境的任何类型,并且可以包括微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。

各种实施方式涉及解码。如本申请中所使用的,“解码”可以涵盖例如对接收到的编码序列执行的全部或部分过程,以便产生适合于显示的最终输出。在各个实施例中,此类过程包括通常由解码器执行的过程中的一个或多个,例如,熵解码、逆量化、逆变换和差分解码。在各个实施例中,此类过程还或者替代地包括由本申请中描述的各种实施方式的解码器执行的过程,例如:对于图片中正被解码的块,接收用于解码模式的信息;对于正被解码的块,确定预测子候选集合,其中,对于潜在预测子候选集合中的至少一个当前潜在预测子候选,在当前潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选的情况下,将当前潜在预测子候选添加到预测子候选集合中;以及基于接收到的信息和预测子候选集合对块进行解码。

作为进一步示例,在一个实施例中,“解码”仅是指熵解码,在另一个实施例中,“解码”仅是指差分解码,并且在另一个实施例中,“解码”是指熵解码与差分解码的组合。基于特定描述的上下文,短语“解码过程”是意图专门指代操作的子集还是广义上指代更广泛的解码过程将是显而易见的,并且相信本领域技术人员会很好地理解。

各种实施方式涉及编码。以与上文关于“解码”的讨论类似的方式,如在本申请中使用的“编码”可以涵盖例如对输入视频序列执行的全部或部分过程以便产生编码的比特流。在各个实施例中,此类过程包括通常由编码器执行的过程中的一个或多个,例如分割、差分编码、变换、量化和熵编码。在各个实施例中,此类过程还或者替代地包括由本申请中描述的各种实施方式的编码器执行的过程,例如:对于正被解码的块,确定预测子候选集合,其中,对于潜在预测子候选集合中的至少一个当前潜在预测子候选,在当前潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选的情况下,将当前潜在预测子候选添加到预测子候选集合中;以及基于来自预测子候选集合的预测子候选对块进行编码。

作为进一步示例,在一个实施例中,“编码”仅是指熵编码,在另一个实施例中,“编码”仅是指差分编码,并且在另一个实施例中,“编码”是指差分编码与熵编码的组合。基于特定描述的上下文,短语“编码过程”是意图专门指代操作的子集还是广义上指代更广泛的编码过程将是显而易见的,并且相信本领域技术人员会很好地理解。

注意,本文所使用的语法元素(例如,Merge_idx、Merge_flag、Inter)是描述性术语。因而,它们不排除使用其它语法元素名称。

当将附图作为流程图呈现时,应当理解,其还提供了对应装置的框图。类似地,当将附图作为框图呈现时,应当理解,其还提供了对应方法/过程的流程图。

本文描述的实施方式和各方面可以例如以方法或过程、装置、软件程序、数据流或信号来实施。即使仅在单一形式的实施方式中进行讨论(例如,仅作为一种方法讨论),所讨论的特征的实施方式也可以以其它形式(例如,装置或程序)来实施。装置可以例如以适当的硬件、软件和固件来实施。该方法可以在例如处理器中实施,该处理器通常是指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、手机、便携式/个人数字助理(“PDA”)以及促进最终用户之间信息通信的其它设备。

对“一个实施例”或“实施例”或“一种实施方式”或“实施方式”以及它们的其它变型的提及表示在至少一个实施例中包括结合该实施例描述的特定特征、结构、特性等等。因此,在本申请中各处出现的短语“在一个实施例中”或“在实施例中”或“在一种实施方式中”或“在实施方式中”以及任何其它变型的出现不一定全部是指同一实施例。

另外,本申请可以涉及“确定”各种信息片段。确定信息可以包括例如估计信息、计算信息、预测信息或从存储器中检索信息中的一个或多个。

此外,本申请可以涉及“访问”各种信息片段。访问信息可以包括例如以下中的一个或多个:接收信息、(例如,从存储器中)检索信息、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息。

另外,本申请可以涉及“接收”各种信息片段。接收与“访问”一样意图作为广义术语。接收信息可以包括例如以下中的一个或多个:访问信息或(例如,从存储器中)检索信息。此外,在诸如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息之类的操作期间,通常以某种方式涉及“接收”。

应当理解,例如在“A/B”、“A和/或B”以及“A和B中的至少一个”的情况下,使用以下“/”、“和/或”和“……中的至少一个”中的任一个意图涵盖仅选择第一个列出的选项(A),或仅选择第二个列出的选项(B),或选择两个选项(A和B)。作为进一步的示例,在“A、B和/或C”和“A、B和C中的至少一个”的情况下,这种短语意图涵盖仅选择第一个列出的选项(A)或仅选择第二个列出的选项(B),或仅选择第三个列出的选项(C),或仅选择第一个和第二个列出的选项(A和B),或仅选择第一个和第三个列出的选项(A和C),或仅选择第二个和第三个列出的选项(B和C),或选择所有三个选项(A和B和C)。如对于本领域和相关领域的普通技术人员显而易见的那样,对于列出的尽可能多的项目,这可以被扩展。

另外,如本文所使用的,词语“信号”尤其是指向对应解码器指示某些内容等。例如,在某些实施例中,编码器发信号通知候选列表的多种构造中的特定构造,或者发信号通知子集中的用于比较的N个候选。这样,在实施例中,在编码器侧和解码器侧都使用相同的参数。因此,例如,编码器可以将特定参数发送(显式信令)到解码器,使得解码器可以使用相同的特定参数。相反,如果解码器已经具有特定参数以及其它参数,则可以使用信令而无需发送(隐式信令)以仅允许解码器知道并选择特定参数。通过避免发送任何实际功能,在各个实施例中实现了比特的节省。应当理解,可以以多种方式来实现信令。例如,在各个实施例中,一个或多个语法元素、标志等等用于向对应的解码器发信号通知信息。尽管前面涉及单词“信号”的动词形式,但是单词“信号”在本文中也可以用作名词。

对于本领域的普通技术人员将显而易见的是,实施方式可以产生各种信号,这些信号被格式化以携带例如可以被存储或发送的信息。该信息可以包括例如用于执行方法的指令或由所描述的实施方式中的一个产生的数据。例如,信号可以被格式化以携带所描述的实施例的比特流。可以将这种信号格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流来调制载波。信号所携带的信息可以是例如模拟或数字信息。众所周知,该信号可以通过各种不同的有线或无线链路来发送。信号可以存储在处理器可读介质上。

描述了许多实施例。这些实施例的特征可以单独提供或以任何组合提供。此外,实施例可以单独或以任意组合包括跨各种权利要求类别和类型的以下特征、设备或方面中的一个或多个:

·通过在候选列表创建过程期间仅将当前候选与列表中的后N个候选进行比较来限制唯一性修剪,以用于解码器和/或编码器中所应用的运动补偿。

·在候选列表创建过程中对候选进行重新排序以用于解码器和/或编码器中的运动补偿。

·将用于修剪的比较限制为列表的子集,而不是列表中的所有元素。

·限制为候选列表/集合中的后N个元素。

·对列表创建进行动态地重新排序以将可能类似的候选一起紧密地放置在列表中。

·将在空间上紧密的候选紧密地设定在列表中。

·考虑块大小以选择空间上紧密的候选。

·对于仿射候选,考虑角位置

·在编码方法中,对于正被编码的块,确定预测子候选集合,该确定包括对于潜在预测子候选集合中的至少一个当前潜在预测子候选,在当前潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选的情况下,将当前潜在预测子候选添加到预测子候选集合中;以及

基于来自预测子候选集合的预测子候选对块进行编码。

·在解码方法中,对于图片中正被解码的块,接收用于解码模式的信息;对于正被解码的块,确定预测子候选集合,该确定包括对于潜在预测子候选集合中的至少一个当前潜在预测子候选,在当前潜在预测子候选不同于来自预测子候选集合的预测子候选子集中的任何预测子候选的情况下,将当前潜在预测子候选添加到预测子候选集合中;以及基于接收到的信息和预测子候选集合对块进行解码。

·在信令中插入使得解码器能够标识要使用的列表创建过程方法的语法元素。

·基于这些语法元素,选择要在解码器处应用的方法。

·应用候选创建列表方法以在解码器处导出运动信息。

·包括所描述的语法元素中的一个或多个或其变型的比特流或信号。

·创建和/或发送和/或接收和/或解码包括所描述的语法元素中的一个或多个或其变型的比特流或信号。

·执行根据所描述的任何实施例的解码方法中的运动补偿的电视、机顶盒、手机、平板计算机或其它电子设备。

·执行根据所描述的任何实施例的解码方法中的运动补偿并且显示(例如,使用监视器、屏幕或其它类型的显示器)所得图像的TV、机顶盒、手机、平板计算机或其它电子设备。

·调谐(例如,使用调谐器)信道以接收包括编码的图像的信号并且在执行根据所描述的任何实施例的解码方法中的运动补偿的TV、机顶盒、手机、平板计算机或其它电子设备。

·通过在空中(例如,使用天线)接收包括编码的图像的信号并且执行根据所描述的任何实施例的解码方法中的运动补偿的TV、机顶盒、手机、平板计算机或其它电子设备。

相关技术
  • 使用预测子候选列表进行视频编码和解码的方法和装置
  • 通过选择一组预测候选运动向量来对运动向量进行编码/解码的方法和装置以及使用所述方法和装置进行图像编码/解码的方法和装置
技术分类

06120112752669