本公开涉及视频编码和解码。
背景技术:
1、1.hevc和vvc
2、高效率视频编码(hevc),又名h.265,是由itu-t和mpeg标准化的基于块的视频编解码器,利用了时间预测和空间预测二者。使用来自当前图片内的帧内(i)预测来实现空间预测。在块级别上使用帧间(p)或双向帧间(b)预测根据先前解码的参考图片来实现时间预测。原始像素数据与预测像素数据之间的差(称为残差)在与必要的预测参数(例如预测模式和运动矢量,它们也被熵编码)一起发送之前被变换到频域并被量化,然后被熵编码。通过对经变换的残差进行量化,可以控制视频的比特率和质量之间的折衷。量化级别由量化参数(qp)确定。解码器执行熵解码、逆量化和逆变换以获得残差,然后将残差与帧内预测或帧间预测相加以重构图片。
3、mpeg和itu-t正在联合视频专家组(jvet)内研究hevc的后继者。正在开发的该视频编解码器的名称为多功能视频编码(vcc)。在本说明书中引用vvc的最新草案时,考虑的是jvet-l1001的vvc草案的第5版本。
4、1.1片
5、hevc中的片的概念将图片分为独立编码的片,其中按照光栅扫描顺序以ctu为单位读取每个片。可以将不同的编码类型用于同一图片的片,即片可以是i片、p片或b片。片的主要目的是在数据丢失的情况下实现重新同步。
6、1.2图块
7、hevc视频编码标准包括被称为图块的工具,其将图片分为空间上独立的矩形区域。使用图块,在hevc中可以将图片划分为多行样本和多列样本,其中图块是行和列的交集。hevc中的图块始终与ctu边界对齐。
8、预计vvc不会像hevc中那样使用传统的片。相反,由于视频服务(包括vr流传输)对空间随机访问的需求增加,因此预计图块将在vvc中发挥更大的作用。
9、在上次jvet会议上,认同将图块组的概念包括在当前的vvc草案中。图块组用于对多个图块进行分组以减少每个图块的开销。
10、1.3参数集
11、hevc指定了三种类型的参数集,图片参数集(pps)、序列参数集(sps)和视频参数集(vps)。pps包含整个图片通用的数据,sps包含编码视频序列(cvs)通用的数据,vps包含多个cvs通用的数据。
12、1.4帧内随机访问点(irap)图片
13、hevc中的irap图片在其解码过程中不参考除其自身以外的任何图片进行预测,并且可以是比特流中按照解码顺序的第一个图片或者可以在比特流中稍后出现。比特流中按照解码顺序的第一个图片必须是irap图片。如果必要的参数集在需要它们被激活时可用,则可以对irap图片和所有后续的非随机访问跳过前导(non-rasl)图片正确地进行解码,而无需执行对按照解码顺序在irap图片之前的任何图片的解码过程。比特流中可能存在在其解码过程中不参考除自身以外的任何图片进行预测的图片,这些图片不是irap图片。
14、hevc指定了三种类型的irap图片,断链访问(bla)图片、瞬时解码器刷新(idr)图片和纯净随机访问(cra)图片。
15、每个idr图片是cvs中按照解码顺序的第一个图片。idr图片可以具有相关联的随机访问可解码前导(radl)图片。idr图片不具有相关联的rasl图片。
16、每个bla图片开始新的cvs并且对解码过程具有与idr图片相同的效果。然而,bla图片包含指定非空参考图片集(rps)的语法元素。bla图片可以具有相关联的rasl图片,rasl图片不被解码器输出并且可能无法解码,因为它们可以包含对比特流中不存在的图片的参考。bla图片也可以具有相关联的radl图片,radl图片被指定为要解码。
17、cra图片可以具有相关联的radl或rasl图片。与bla图片一样,cra图片可以包含指定非空rps的语法元素。对于cra图片,可以设置标志以指定相关联的rasl图片不被解码器输出,因为这些rasl图片可能无法解码,原因在于这些rasl图片可以包含对比特流中不存在的图片的参考。
18、1.5图片顺序计数
19、在hevc中,图片顺序计数(poc)被定义为与每个图片相关联的变量,唯一地标识cvs中所有图片中的相关联的图片,并且当要从解码图片缓冲器输出相关联的图片时,指示该相关联的图片相对于同一cvs中要从解码图片缓冲器输出的其他图片的输出顺序位置的按照输出顺序的位置。
20、1.6nal单元和图片类型
21、在高级视频编码(avc)标准中引入网络抽象层(nal)的概念,并且也将其用于hevc。nal的主要目标是为各种视频应用提供网络友好的视频表示,包括使用不同传输协议的广播、物理存储、视频点播和视频流传输。
22、所有视频数据都被封装到nal单元中,其中每个nal单元包含整数个字节。hevc中的nal单元具有首部,指定了nal单元的nal单元类型、nal单元所属的层id和时间id。在nal单元首部中的nal_unit_type码字中发送nal单元类型,该类型指示和定义应当如何解析和解码nal单元。nal单元的其余字节是由nal单元类型指示的类型的有效载荷。比特流由一系列级联的nal单元组成。暂时同意也将nal单元用于vvc。
23、nal单元可以包含视频编码层(vcl)或非vcl数据。vcl nal单元包含表示视频图片中样本的值的数据。非vcl nal单元包含任何附加的关联数据,包括参数集和补充增强信息(sei)消息,见下文。编码器产生的一系列nal单元被称为nal单元流。下表(表1)取自hevc规范,定义了hevc nal单元类型码及其对应的nal单元类型类别。这里还可以看到hevc中的不同图片类型。nal单元类型介于0和9之间的图片类型是帧间编码的,即拖尾图片(trail)、时间子层访问(tsa)、渐进时间子层访问(stsa)、随机访问可解码前导(radl)和随机访问跳过前导(rasl)。nal单元类型介于16和21之间的图片类型是帧内编码的帧内随机访问点(irap)图片,即断链访问(bla)、瞬时解码器刷新(idr)和纯净随机访问(cra)图片。
24、对于hevc中的单层编码,访问单元(au)是图片的编码表示,其可以由若干视频编码层(vcl)nal单元以及非vcl nal单元组成。hevc和vvc草案中的编码视频序列(cvs)是一系列访问单元,从帧内随机访问点(irap)访问单元开始,直到(但不包括)按照解码顺序的下一irap访问单元。解码顺序是应对nal单元进行解码的顺序,与nal单元在比特流内的顺序相同。解码顺序可以与输出顺序不同,输出顺序是解码器要输出解码图片(例如用于显示)的顺序。
25、表1
26、
27、
28、在最新的vvc草案中,表(见表2)相当短并且尚未包含非常具体的vcl nal单元类型。预计vvc的最终草案将指定更多的nal单元类型。
29、表2
30、
31、
32、2.恢复点
33、恢复点用于仅使用时间预测图片在比特流中执行随机访问操作。恢复点也可用于在视频数据丢失的情况下刷新视频。
34、执行比特流中的随机访问操作的解码器对恢复点周期中的所有图片进行解码而不输出它们。当到达恢复点周期的最后图片(恢复点图片)时,视频已被完全刷新,并且可以输出恢复点图片和后续图片。恢复点机制有时被称为逐步解码刷新(gdr),因为该机制逐个图片地逐步刷新视频。
35、实际上,通过使用帧内编码块(例如,ctu)逐步刷新视频来创建gdr。对于恢复点周期中的每个图片,都会刷新视频的较大部分,直到视频已被完全刷新为止。
36、图1a和图1b示出了用于在五个图片上逐步解码刷新视频的两种不同示例图案。白色块是非刷新块(或“脏”块),深灰色块是帧内编码块,深灰色和中灰色块是刷新块(或“干净”块)。图1a示出了使用垂直线的帧内编码块的逐步刷新。图1b示出了使用伪随机图案的逐步刷新。还存在其他常见图案,包括水平线和按照光栅扫描顺序的逐个块。示例中的块可以是ctu。
37、刷新块可以被配置为仅从当前图片(空间帧内预测)和先前图片(时间预测)中的其他刷新块进行预测。这可以防止伪像扩散到图片之间的刷新区域。
38、片或图块可用于以有效的方式限制非刷新块和刷新块之间的预测,这是因为片和图块边界可以关闭跨边界的预测但是允许其他地方的预测。在第一示例中,可以将图片分为两个图块,其中一个图块包括刷新块而另一图块包括非刷新块。这在图1c中示出,图1c示出了针对gdr使用图块中的限制的示例。图块边框用粗线示出。一个图块用于干净区域,一个图块用于脏区域。注意,随着时间的推移,图块分布和图块大小不是恒定的。备选地,通过不限制或仅部分限制对刷新区域的时间预测和空间预测,也可以允许一定程度的伪像。
39、2.1hevc中的恢复点sei消息
40、在avc和hevc中使用的用于在比特流中发送并非解码过程严格需要但可以以各种方式帮助解码器的消息的机制是补充增强信息(sei)消息。在sei nal单元中以信号通知sei消息,但不是规范的--即,不强制要求符合hevc的解码器支持sei消息。如hevc规范中所指出的:“sei消息有助于与解码、显示或其他目的有关的过程。然而,解码过程不需要sei消息来构建亮度或色度样本。符合本规范的解码器不需要以符合本规范的输出顺序处理该信息(对于规范的一致性,参见附录c和条款f.13)。需要一些sei消息信息来检查比特流一致性和输出定时解码器一致性。”
41、hevc和avc定义的一种sei消息是恢复点sei消息。在比特流中恢复周期开始的位置(在图片处)发送恢复点sei消息。当解码器调谐到比特流时,它可以从这个位置开始按照解码顺序对所有图片进行解码而不输出它们,直到它到达恢复点图片为止,从恢复点图片所有图片应当被完全刷新并且可以输出。
42、hevc中恢复点sei的语法如下表3所示。
43、表3
44、
45、2.2jvet中恢复点的工作
46、在卢布尔雅那举行的第11次jvet会议上,成立了一个特设小组(ahg14)来研究vvc的恢复点。在接下来的中国澳门会议上,讨论了以下两项提议:
47、在jvet-l0079中,首先讨论了需要对编码器侧的编码工具进行哪些非规范改变以使用hevc中的恢复点sei消息实现精确匹配。所讨论的编码工具是高级时间mv预测(atmvp)、帧内预测、帧内块复制、帧间预测和环路滤波器(包括样本自适应偏移(sao)滤波器、去块滤波器和自适应环路滤波器(alf))。该文档还讨论了可以应用于编码工具以提高压缩效率的一些规范改变。
48、jvet-l0161提出以信号通知关于sps、pps和片级别中的帧内刷新的信息。sps/pps中以信号通知的帧内刷新信息包括用于启用帧内刷新工具的标志、帧内刷新模式(列、行、伪)、帧内刷新图案的大小(例如列的宽度或行的长度)和帧内刷新增量qp。在片级别以信号通知的帧内刷新信息包括要用于确定运动矢量约束的帧内刷新方向(从右到左/从左到右/从上到下/从下到上),以及指定由帧内刷新图案的大小给出的帧内刷新块的位置的帧内刷新位置。如果cu属于帧内刷新区域,则根据帧内刷新位置值,在图片级别导出帧内刷新图案。
技术实现思路
1、存在某些挑战。例如,hevc中的当前解决方案在sei消息中发送恢复点的一个问题在于编码器可能不知道未知的解码器是否支持恢复点sei消息,因此编码器需要发送周期性的irap图片以确保解码器能够调谐到比特流。这在带宽方面是次优的,并且可以构成低延迟应用的瓶颈。
2、在外部规范中,可能不以一致的方式支持恢复点sei消息,例如在数字视频广播(dvb)规范和iso/iec 1449-15规范中,这可以引起互操作性问题。
3、允许cvs从恢复点开始似乎是有用的,例如在拆分使用恢复点编码的低延迟比特流(例如用于记录或存档目的)之后。然而,从非irap图片和恢复点sei消息开始的比特流在avc、hevc和vvc草案中都不是合规的比特流,因为sei消息没有被规范地指定。
4、jvet-l0079和jvet-l0161关注对编码工具支持gdr的限制,这无论如何可以通过使用图块的边框限制来修复。除了hevc中的恢复点sei消息之外,jvet-l0079没有提到用于指示恢复点开始和结束的任何其他解决方案。如果在vvc中规范地指定了编码工具中对恢复点的支持,则在sei消息中以非规范方式指示恢复点的存在可能引起问题。
5、本公开的某些方面及其实施例可以提供对这些或其他挑战的解决方案。一方面,上述问题是通过以规范方式信号通知恢复点的指示(也被称为“恢复点指示”)来解决的。本文描述了以信号通知规范恢复点指示的各种方式。
6、在第一实施例中,描述了用于以规范方式信号通知恢复点指示的通用解决方案。
7、在第二优选实施例中,在非vcl nal单元中以信号通知恢复点指示。
8、在第三实施例中,由vcl nal单元使用新的恢复点指示vcl nal单元类型以信号通知恢复周期的开始和结束。
9、在第四实施例中,定义了vcl nal单元和非vcl图片类型nal单元,其中在非vcl图片类型nal单元中以信号通知随机访问点指示。
10、在第五实施例中,在pps中以信号通知恢复点指示。
11、在第六实施例中,在图片首部中以信号通知恢复点指示。
12、在第七实施例中,恢复点的范围不是整个图片而是图片的分段。
13、在第八实施例中,在sps中以信号通知比特流是否支持恢复点。
14、某些实施例可以提供以下技术优点中的一个或多个。例如,规范地指定恢复点的指示具有以下优点:
15、(1)编码器将知道所有解码器都支持规范的恢复点指示。因此,当解码器实现未知时,不需要对附加的irap图片进行编码来确保随机访问。
16、(2)确保外部规范之间的一致。通过vvc规范中恢复点指示的规范信令,不需要外部规范强制要求sei消息。因此,恢复点的使用将在外部规范之间一致。
17、(3)启用比特流在恢复点上的拆分。使用规范的恢复点编码的比特流可以在恢复点处划分为合规的cvs。因此,cvs可以从恢复点访问单元开始。
18、(4)特定的编码级工具可用于恢复点。可以为vvc定义用于渐进式帧内刷新的规范编码级工具。规范地指示恢复点的存在使得规范的渐进式帧内编码工具能够以直接的方式用于随机访问。由于sei消息不是规范的,因此不强制要求解码器对其进行解码。引入基于sei消息的强制性语法、语义或过程是不可能的,但是基于规范恢复点信息的sei消息不会有任何此类问题。
19、此外,根据第二实施例的将恢复点的指示指定为非vcl nal单元类型具有以下优点:
20、(1)容易从系统层访问恢复点指示;
21、(2)解码器仅需要解析nal单元首部就可以知道比特流中可能的恢复点调谐到的点的位置;以及
22、(3)仅当存在恢复点指示时,使用非vcl nal单元类型才会在比特流中增加信令开销,即不需要以信号通知指示没有恢复点的任何数据。
23、在一个方面,提供了一种用于对视频比特流进行解码的方法。视频比特流包括图片序列,图片序列包括图片a和图片b,其中,图片a开始恢复点周期并且图片b结束恢复点周期。该方法包括:获得视频比特流并从视频比特流中解码恢复点周期的规范指示,其中。恢复点周期的规范指示指示图片a开始恢复点周期和/或指示图片b结束恢复点周期。
24、在另一实施例中,用于对比特流进行解码的方法包括以下步骤:从比特流中获得规范的恢复点周期指示(rpi),以及根据规范的rpi的一个或多个语法元素确定值,其中,该值指定恢复点图片。
25、在另一实施例中,用于对比特流进行解码的方法包括以下步骤:接收包含在比特流中的网络抽象层nal单元,nal单元包含类型值;确定类型值是否指定nal单元包括标识恢复点图片的恢复点图片信息;以及基于恢复点图片信息来确定恢复点图片。
26、在一个方面,提供了一种用于对比特流进行编码的方法。该方法包括以下步骤:确定特定图片是否是恢复点周期的开始,其中,恢复点图片是恢复点周期中按照解码顺序的最后编码图片,以及作为确定特定图片是恢复点周期的开始的结果,执行以下步骤:a)将特定图片定义为逐步解码刷新gdr图片;b)确定恢复点图片;以及c)将规范的恢复点周期指示编码在比特流中,其中,规范的恢复点周期指示包括指示恢复点图片在比特流中的位置的信息和/或指示特定图片在比特流中的位置的信息。
27、在另一实施例中,用于对比特流进行编码的方法包括以下步骤:确定特定图片是否是恢复点周期的开始,并且作为确定特定图片是恢复点周期的开始的结果,然后执行步骤:确定恢复点周期的恢复点图片的位置;以及将恢复点周期指示网络抽象层,即rpi nal单元编码到比特流。
28、在另一方面,提供了一种计算机程序。该计算机程序包括指令,该指令在由处理电路执行时使该处理电路执行本文描述的任何方法。在另一方面,提供了一种载体,其中该载体包含计算机程序并且该载体是电信号、光信号、无线电信号和计算机可读存储介质中的一种。
29、在另一方面,提供了一种用于对视频比特流进行解码的解码装置。视频比特流包括图片a和图片b,其中,图片a开始恢复点周期并且图片b结束恢复点周期。该解码装置适于:获得视频比特流;以及从视频比特流中解码恢复点周期的规范指示,其中,恢复点周期的规范指示指示图片a开始恢复点周期和/或指示图片b结束恢复点周期。在一个实施例中,解码装置包括计算机可读存储介质;以及耦接到计算机可读存储介质的处理电路,其中处理电路被配置为使解码装置执行本文公开的方法中的任何一个。
30、在另一方面,提供了一种用于对视频比特流进行编码的编码装置。该编码装置适于:确定特定图片是否是恢复点周期的开始,其中,恢复点图片是恢复点周期中按照解码顺序的最后编码图片;以及作为确定特定图片是恢复点周期的开始的结果,然后执行以下步骤:a)将特定图片定义为逐步解码刷新gdr图片;b)确定恢复点图片;以及c)将规范的恢复点周期指示编码在比特流中,其中,规范的恢复点周期指示包括指示恢复点图片在比特流中的位置的信息和/或指示特定图片在比特流中的位置的信息。
1.一种用于对视频比特流进行解码的方法(400),所述视频比特流包括图片序列,所述图片序列包括逐步解码刷新gdr图片和恢复点图片,其中,所述gdr图片开始恢复点周期并且所述恢复点图片结束所述恢复点周期,所述方法包括:
2.根据权利要求1所述的方法,包括:
3.根据权利要求1或权利要求2所述的方法,其中,所述图片序列是编码视频序列cvs,并且所述cvs从所述gdr图片开始。
4.根据权利要求1至3中任一项所述的方法,包括:
5.根据权利要求1至4中任一项所述的方法,其中,所述gdr图片和所述恢复点图片是相同的图片。
6.根据权利要求1至5中任一项所述的方法,其中,所述恢复点周期的规范指示指示所述gdr图片在图片序列中的时间位置。
7.根据权利要求1至6中任一项所述的方法,其中,
8.根据权利要求1至7中任一项所述的方法,包括:
9.根据前述权利要求中任一项所述的方法,包括:
10.根据前述权利要求中任一项所述的方法,包括:
11.根据权利要求1至7和权利要求9中任一项所述的方法,还包括:
12.根据权利要求1至11中任一项所述的方法,包括:
13.根据权利要求1至12中任一项所述的方法,其中,从所述视频比特流中解码所述恢复点周期的规范指示包括:
14.根据权利要求1至13中任一项所述的方法,其中,解码所述恢复点周期的规范指示包括:
15.根据权利要求1至14中任一项所述的方法,其中,
16.根据前述权利要求中任一项所述的方法,其中,所述比特流包含在序列参数集sps、视频参数集vps和解码参数集dps中的至少一个中的语法元素,所述语法元素指示恢复点周期在所述比特流中是否可用。
17.根据前述权利要求中任一项所述的方法,其中,所述恢复点周期的规范指示和所述gdr图片属于相同的访问单元。
18.根据前述权利要求中任一项所述的方法,其中,如果所述gdr图片没有开始cvs并且如果在所述gdr图片处没有执行随机访问操作,则忽略所述恢复点周期的规范指示。
19.根据权利要求1至18中任一项所述的方法(600),包括:
20.根据权利要求1至19中任一项所述的方法,还包括在所述恢复点周期的开始处执行随机访问操作。
21.一种用于对比特流进行编码的方法(450),所述方法包括:
22.根据权利要求21所述的方法,其中,对所述恢复点周期的规范指示进行编码包括指定:开始所述恢复点周期的gdr图片在图片序列中的位置。
23.根据权利要求22所述的方法,包括:将所述gdr图片的位置指定为所述gdr图片在图片序列中的时间位置。
24.根据权利要求21至23中任一项所述的方法,包括:
25.根据权利要求21至24中任一项所述的方法,包括:
26.根据权利要求21至25中任一项所述的方法,其中,所述恢复点周期的规范指示包括所述特定图片的时间位置和/或所述恢复点图片的时间位置。
27.根据权利要求21至26中任一项所述的方法,包括:
28.根据权利要求21至27中任一项所述的方法,包括:将指定所述gdr图片的位置的信息和/或用于在图片序列中识别所述恢复点图片的信息包括在图片首部的一个或多个语法元素中。
29.根据权利要求21至28中任一项所述的方法(500),包括:
30.根据权利要求29所述的方法,其中,所述rpinal单元包括指示所述特定图片是恢复点周期的开始的信息和/或指示所述恢复点图片的位置的信息。
31.根据权利要求21至30中任一项所述的方法,还包括:如果所述特定图片位于所述恢复点周期的开始,则执行以下步骤:
32.根据权利要求21至31中任一项所述的方法,还包括:
33.一种计算机程序(743),包括指令(744),所述指令(744)在由处理电路(702)执行时,使所述处理电路(702)执行根据权利要求1至20中任一项所述的方法。
34.一种包含计算机程序的载体,所述计算机程序包括指令(744),所述指令(744)在由处理电路(702)执行时,使所述处理电路(702)执行根据权利要求1至20中任一项所述的方法,其中,所述载体是电信号、光信号、无线电信号和计算机可读存储介质(742)中的一种。
35.一种用于对视频比特流进行解码的解码装置(700),所述视频比特流包括图片序列,所述图片序列包括逐步解码刷新gdr图片和恢复点图片,其中,所述gdr图片开始恢复点周期并且所述恢复点图片结束所述恢复点周期,所述解码装置被配置为:
36.根据权利要求35所述的解码装置(700),被配置为执行根据权利要求2至20中任一项所述的方法。
37.一种用于对比特流进行编码的编码装置(700),所述编码装置被配置为:
38.根据权利要求37所述的编码装置(700),被配置为执行根据权利要求21至32中任一项所述的方法。
