发布信息

SEI消息的时间标识符约束条件的制作方法

作者:admin      2022-08-31 13:07:47     503



计算;推算;计数设备的制造及其应用技术sei消息的时间标识符约束条件1.本技术是分案申请,原申请的申请号是202080066835.0,原申请日是2020年09月17日,原申请的全部内容通过引用结合在本技术中。2.相关申请交叉引用3.本专利申请要求王业奎(ye-kui wang)于2019年9月24日递交的申请号为62/905,236、发明名称为“视频译码改进(video coding improvements)”的美国临时专利申请的权益,其内容通过引用结合在本技术中。技术领域4.本发明一般涉及视频译码,具体涉及指示(signal)参数以支持多层码流译码的改进。背景技术:5.即使在视频较短的情况下,也需要大量的视频数据来描述,当数据要在带宽容量受限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后进行传输或存储,从而减少表示数字视频图像所需的数据量。然后,解码视频数据的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。技术实现要素:6.在一个实施例中,本发明包括一种由解码器实现的方法,其中,所述方法包括:所述解码器的接收器接收码流,所述码流包括一个或多个视频编码层(video coding layer,vcl)网络抽象层(network abstraction layer,nal)单元中的经编码图像和非vcl nal单元,其中,当所述非vcl nal的nal单元类型(nal_unit_type)等于前缀补充增强信息(supplemental enhancement information,sei)nal单元类型(prefix_sei_nut)或后缀sei nal单元类型(suffix_sei_nut)时,所述非vcl nal单元的时间标识符(temporalid)被限制等于包括所述非vcl nal单元的接入单元(access unit,au)的temporalid;所述解码器的处理器根据所述非vcl nal单元的nal单元头时间标识符加1语法元素(nuh_temporal_id_plus1),推导所述非vcl nal单元的所述temporalid;所述解码器的所述处理器从所述vcl nal单元中解码所述经编码图像,以产生经解码图像。7.视频序列可以包括许多图像。为了确保图像以正确的顺序显示,视频译码系统可以为图像分配temporalid。一些视频译码系统使用图像层,其中,每层包括不同分辨率、图像大小、帧率等的基本相同的视频。不同层中的图像可以根据解码器侧的条件交替显示。因此,位于所述视频序列中同一点的不同层中的图像共用相同的temporalid。此外,共用相同temporalid的不同层中的图像组成了au。例如,解码器可以在每个au处显示从单层中选择的单个图像,以显示视频序列。一些视频译码系统使用sei消息。sei消息包括解码过程不需要的信息,以便确定经解码图像中的样本的值。例如,所述sei消息可以包括在编码器侧操作的假设参考解码(hypothetical reference decoder,hrd)用来检查码流是否符合标准的参数。此外,所述视频译码系统可以将视频序列编码到所述码流中,作为图像层。所述sei消息可以与不同的图像和/或不同的层组合有关。因此,在复杂的多层码流中,确保正确的sei消息与正确的图像/层相关联可能变得具有挑战性。如果sei消息与正确的层/图像没有关联,所述hrd可能无法正确检查层/图像的一致性。这样可能会导致编码错误。8.本示例包括一种用于将sei消息正确关联到对应的图像/层的机制。多层码流可以将图像和相关参数组织到au中。au是一组包括在不同层中并与相同输出时间关联的经编码图像。sei消息可以与所述sei消息关联的第一图像位于相同的au中。此外,所述sei消息分配有temporalid。temporalid是表示nal单元在视频序列中的相对位置的标识符。所述sei消息的所述temporalid被限制为等于包括所述sei消息的所述au的temporalid。换句话说,所述图像包括在vcl nal单元中,参数包括在非vcl nal单元中。当所述非vcl nal单元是包括sei消息的sei nal单元时,所述非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的所述au的所述temporalid。这种方法确保所述sei消息与所述au中的对应图像正确关联。因此,可以避免各种错误。这样,编码器和解码器的功能增加。此外,可以提高编码效率,减少了编码器和解码器侧的处理器、存储器和/或网络信令资源的使用。9.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述非vcl nal的所述nal_unit_type等于所述prefix_sei_nut。10.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述非vcl nal的所述nal_unit_type等于所述suffix_sei_nut。11.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述经编码图像是根据所述非vcl nal单元的sei消息从所述vcl nal单元中解码的。12.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述方法还包括:推导所述非vcl nal单元的所述temporalid,如下所示:temporalid=nuh_temporal_id_plus1–1。13.可选地,根据上述任一方面,在所述方面的另一种实现方式中,nuh_temporal_id_plus1的值不等于0。14.可选地,根据上述任一方面,在所述方面的另一种实现方式中,对于同一au中的所有vcl nal单元,所述vcl nal单元的temporalid被限制为相同。15.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述方法还包括:所述解码器接收包括第二一个或多个vcl nal单元和第二非vcl nal单元的第二码流,其中,当所述第二非vcl nal的nal_unit_type为sei消息时,所述第二非vcl nal单元的temporalid不等于包括所述第二非vcl nal单元的第二au的temporalid;在所述接收之后,采取一些其它纠正措施,以确保在从所述第二vcl nal单元中解码所述经编码图像之前,对应于所述第二码流的一致性码流被接收。16.在一个实施例中,本发明包括一种由编码器实现的方法,其中,所述方法包括:所述编码器的处理器将一个或多个vcl nal单元中的经编码图像编码到码流中;所述处理器将非vcl nal单元编码到所述码流中,使得当所述非vcl nal的nal单元类型为sei消息时,所述非vcl nal单元的nuh_temporal_id_plus1等于包括所述非vcl nal单元的au的nuh_temporal_id_plus1;所述处理器根据所述sei消息,对所述码流执行一组码流一致性测试;与所述处理器耦合的存储器存储所述码流,以将所述码流发送到解码器。17.视频序列可以包括许多图像。为了确保图像以正确的顺序显示,视频译码系统可以为图像分配temporalid。一些视频译码系统使用图像层,其中,每层包括不同分辨率、图像大小、帧率等的基本相同的视频。不同层中的图像可以根据解码器侧的条件交替显示。因此,位于所述视频序列中同一点的不同层中的图像共用相同的temporalid。此外,共用相同temporalid的不同层中的图像组成了au。例如,解码器可以在每个au处显示从单层中选择的单个图像,以显示视频序列。一些视频译码系统使用sei消息。sei消息包括解码过程不需要的信息,以便确定经解码图像中的样本的值。例如,所述sei消息可以包括在编码器侧操作的假设参考解码(hypothetical reference decoder,hrd)用来检查码流是否符合标准的参数。此外,所述视频译码系统可以将视频序列编码到所述码流中,作为图像层。所述sei消息可以与不同的图像和/或不同的层组合有关。因此,在复杂的多层码流中,确保正确的sei消息与正确的图像/层相关联可能变得具有挑战性。如果sei消息与正确的层/图像没有关联,所述hrd可能无法正确检查层/图像的一致性。这样可能会导致编码错误。18.本示例包括一种用于将sei消息正确关联到对应的图像/层的机制。多层码流可以将图像和相关参数组织到au中。au是一组包括在不同层中并与相同输出时间关联的经编码图像。sei消息可以与所述sei消息关联的第一图像位于相同的au中。此外,所述sei消息分配有temporalid。temporalid是表示nal单元在视频序列中的相对位置的标识符。所述sei消息的所述temporalid被限制为等于包括所述sei消息的所述au的temporalid。换句话说,所述图像包括在vcl nal单元中,参数包括在非vcl nal单元中。当所述非vcl nal单元是包括sei消息的sei nal单元时,所述非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的所述au的所述temporalid。这种方法确保所述sei消息与所述au中的对应图像正确关联。因此,可以避免各种错误。这样,编码器和解码器的功能增加。此外,可以提高编码效率,减少了编码器和解码器侧的处理器、存储器和/或网络信令资源的使用。19.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述非vcl nal的所述nal_unit_type等于prefix_sei_nut。20.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述非vcl nal的所述nal_unit_type等于suffix_sei_nut。21.可选地,根据上述任一方面,在所述方面的另一种实现方式中,nuh_temporal_id_plus1的值不等于0。22.可选地,根据上述任一方面,在所述方面的另一种实现方式中,对于同一au中的所有vcl nal单元,所述vcl nal单元的nuh_temporal_id_plus1被限制为相同。23.在一个实施例中,本发明包括一种视频译码设备,包括:处理器、与所述处理器耦合的接收器和与所述处理器耦合的存储器;与所述处理器耦合的发送器,其中,所述处理器、接收器、存储器和发送器用于执行上述方面中任一方面所述的方法。24.在一个实施例中,本发明包括一种非瞬时性计算机可读介质,包括供视频译码设备使用的计算机程序产品,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,使得所述视频译码设备执行任一上述方面所述的方法。25.在一个实施例中,本发明包括一种解码器,其中,所述解码器包括:接收模块,用于接收码流,所述码流包括一个或多个vcl nal单元中的经编码图像和非vcl nal单元,其中,当所述非vcl nal的nal_unit_type为sei消息时,所述非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的au的temporalid;解码模块,用于从所述vcl nal单元中解码所述经编码图像,以产生经解码图像;转发模块,用于转发所述经解码图像,以将所述经解码图像显示为解码视频序列的一部分。26.视频序列可以包括许多图像。为了确保图像以正确的顺序显示,视频译码系统可以为图像分配temporalid。一些视频译码系统使用图像层,其中,每层包括不同分辨率、图像大小、帧率等的基本相同的视频。不同层中的图像可以根据解码器侧的条件交替显示。因此,位于所述视频序列中同一点的不同层中的图像共用相同的temporalid。此外,共用相同temporalid的不同层中的图像组成了au。例如,解码器可以在每个au处显示从单层中选择的单个图像,以显示视频序列。一些视频译码系统使用sei消息。sei消息包括解码过程不需要的信息,以便确定经解码图像中的样本的值。例如,所述sei消息可以包括在编码器侧操作的假设参考解码(hypothetical reference decoder,hrd)用来检查码流是否符合标准的参数。此外,所述视频译码系统可以将视频序列编码到所述码流中,作为图像层。所述sei消息可以与不同的图像和/或不同的层组合有关。因此,在复杂的多层码流中,确保正确的sei消息与正确的图像/层相关联可能变得具有挑战性。如果sei消息与正确的层/图像没有关联,所述hrd可能无法正确检查层/图像的一致性。这样可能会导致编码错误。27.本示例包括一种用于将sei消息正确关联到对应的图像/层的机制。多层码流可以将图像和相关参数组织到au中。au是一组包括在不同层中并与相同输出时间关联的经编码图像。sei消息可以与所述sei消息关联的第一图像位于相同的au中。此外,所述sei消息分配有temporalid。temporalid是表示nal单元在视频序列中的相对位置的标识符。所述sei消息的所述temporalid被限制为等于包括所述sei消息的所述au的temporalid。换句话说,所述图像包括在vcl nal单元中,参数包括在非vcl nal单元中。当所述非vcl nal单元是包括sei消息的sei nal单元时,所述非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的所述au的所述temporalid。这种方法确保所述sei消息与所述au中的对应图像正确关联。因此,可以避免各种错误。这样,编码器和解码器的功能增加。此外,可以提高编码效率,减少了编码器和解码器侧的处理器、存储器和/或网络信令资源的使用。28.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述解码器还用于执行上述任一方面所述的方法。29.在一个实施例中,本发明包括一种编码器,其中,所述编码器包括:编码模块,用于:将一个或多个vcl nal单元中的经编码图像编码到码流中;将非vcl nal单元编码到所述码流中,使得当所述非vcl nal单元的nal_unit_type为sei消息时,所述非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的au的temporalid;hrd模块,用于根据所述sei消息,对所述码流执行一组码流一致性测试;存储模块,用于存储所述码流,以将所述码流发送到解码器。30.视频序列可以包括许多图像。为了确保图像以正确的顺序显示,视频译码系统可以为图像分配temporalid。一些视频译码系统使用图像层,其中,每层包括不同分辨率、图像大小、帧率等的基本相同的视频。不同层中的图像可以根据解码器侧的条件交替显示。因此,位于所述视频序列中同一点的不同层中的图像共用相同的temporalid。此外,共用相同temporalid的不同层中的图像组成了au。例如,解码器可以在每个au处显示从单层中选择的单个图像,以显示视频序列。一些视频译码系统使用sei消息。sei消息包括解码过程不需要的信息,以便确定经解码图像中的样本的值。例如,所述sei消息可以包括在编码器侧操作的假设参考解码(hypothetical reference decoder,hrd)用来检查码流是否符合标准的参数。此外,所述视频译码系统可以将视频序列编码到所述码流中,作为图像层。所述sei消息可以与不同的图像和/或不同的层组合有关。因此,在复杂的多层码流中,确保正确的sei消息与正确的图像/层相关联可能变得具有挑战性。如果sei消息与正确的层/图像没有关联,所述hrd可能无法正确检查层/图像的一致性。这样可能会导致编码错误。31.本示例包括一种用于将sei消息正确关联到对应的图像/层的机制。多层码流可以将图像和相关参数组织到au中。au是一组包括在不同层中并与相同输出时间关联的经编码图像。sei消息可以与所述sei消息关联的第一图像位于相同的au中。此外,所述sei消息分配有temporalid。temporalid是表示nal单元在视频序列中的相对位置的标识符。所述sei消息的所述temporalid被限制为等于包括所述sei消息的所述au的temporalid。换句话说,所述图像包括在vcl nal单元中,参数包括在非vcl nal单元中。当所述非vcl nal单元是包括sei消息的sei nal单元时,所述非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的所述au的所述temporalid。这种方法确保所述sei消息与所述au中的对应图像正确关联。因此,可以避免各种错误。这样,编码器和解码器的功能增加。此外,可以提高编码效率,减少了编码器和解码器侧的处理器、存储器和/或网络信令资源的使用。32.可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述编码器还用于执行上述任一方面所述的方法。33.为了描述的清晰性,上述任一实施例可以与上述其它任一或多个实施例结合以创建本发明范围内的新实施例。34.这些和其它特征将结合附图和权利要求书从以下详细描述中更清楚地理解。附图说明35.为了更透彻地理解本发明,现参考结合附图和具体实施方式而描述的以下简要说明,其中的相同附图标记表示相同部件。36.图1为对视频信号进行译码的示例性方法的流程图。37.图2为用于视频译码的示例性编码和解码(编解码)系统的示意图。38.图3为示例性视频编码器的示意图。39.图4为示例性视频解码器的示意图。40.图5为示例性假设参考解码(hypothetical reference decoder,hrd)的示意图。41.图6为示例性多层视频序列的示意图。42.图7为示例性码流的示意图。43.图8为示例性视频译码设备的示意图。44.图9为通过将补充增强信息(supplemental enhancement information,sei)消息的时间标识符(temporalid)限制于码流中而将视频序列编码到所述码流中的示例性方法的流程图。45.图10为从码流中解码视频序列的示例性方法的流程图,其中,所述码流中的sei消息的temporalid被限制。46.图11为使用码流对视频序列进行译码的示例性系统的示意图,其中,所述码流中的sei消息的temporalid被限制。具体实施方式47.首先应理解,尽管下文提供一项或多项实施例的说明性实现方式,但本发明所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。48.以下术语的定义如下所述,除非在本文相反的上下文中使用。具体地,以下定义旨在更加清晰地描述本发明。但是,术语在不同的上下文中可能会有不同的描述。因此,以下定义应当视为补充信息,不应当视为对此处为这些术语提供的描述的任何其它定义进行限制。49.码流(bitstream)是包括视频数据的一系列比特,这些视频数据被压缩以在编码器和解码器之间传输。编码器(encoder)是一种用于采用编码过程将视频数据压缩到码流中的设备。解码器(decoder)是一种用于采用解码过程从码流中重建视频数据进行显示的设备。图像是创建帧或其场的亮度样本和/或色度样本组成的阵列。条带(slice)是图像中的整数个完整分块或图像中(例如,一个分块内)的整数个连续完整的编码树单元(coding tree unit,ctu)行,这些分块或ctu行只包括在单个网络抽象层(network abstraction layer,nal)单元中。为了清楚讨论,正在编码或解码的图像可以称为当前图像。经编码图像(coded picture)是图像的经译码表示,包括在接入单元(access unit,au)内具有nal单元头层标识符(nuh_layer_id)的特定值的视频编码层(video coding layer,vcl)nal单元并包括该图像的所有编码树单元(coding tree unit,ctu)。经解码图像(decoded picture)是通过将解码过程应用于经编码图像而产生的图像。50.au是一组包括在不同层中并与从解码图像缓冲区(decoded picture buffer,dpb)输出的相同时间相关联的经编码图像。nal单元是一种语法结构,包括原始字节序列载荷(raw byte sequence payload,rbsp)形式的数据,是数据类型的指示,并根据需要穿插预防混淆字节。vcl nal单元是经译码为包括视频数据的nal单元,例如图像的经译码条带。非vcl nal单元是包括非视频数据的nal单元,例如支持对视频数据进行解码、一致性检查的性能或其它操作的语法和/或参数。nal单元类型(nal_unit_type)是nal单元中包括的语法元素,表示nal单元中包括的数据类型。层是vcl nal单元和关联的非vcl nal单元的集合,所述vcl nal单元共用由层id指示的指定特征(例如,公共分辨率、帧率、图像大小等)。nal单元头层标识符(nuh_layer_id)是表示包括nal单元的层的标识符的语法元素。时间标识符(temporalid)是表示视频序列中nal单元的相对位置的推导标识符。nal单元头时间标识符加1(nuh_temporal_id_plus1)是表示nal单元在视频序列中的相对位置的指示的标识符。tree block,ctb)、编码树单元(coding tree unit,ctu)、编码单元(coding unit,cu)和/或编码节点。一个图像的帧内译码(i)条带中的视频块使用针对同一图像内的相邻块中的参考样本的空间预测进行译码。一个图像的帧间译码单向预测(p)或双向预测(b)条带中的视频块可以采用针对同一图像内的相邻块中的参考样本的空间预测,或者采用针对其它参考图像中的参考样本的时间预测进行译码。图像(picture/image)可以称为帧(frame),参考图像可以称为参考帧。空间或时间预测会产生表示图像块的预测块。残差数据表示原始图像块和预测块之间的像素差。相应地,帧间译码块根据指向构成预测块的参考样本的块的运动矢量和表示编码块与预测块之间的差值的残差数据进行编码,帧内译码块根据帧内译码模式和残差数据进行编码。为了进一步压缩,残差数据可以从像素域变换到变换域,从而产生残差变换系数,然后可以量化残差变换系数。量化变换系数最初可以排列于二维阵列中。可以扫描量化变换系数,以产生变换系数的一维矢量。可以应用熵编码来实现更大程度的压缩。下文将更详细地讨论这些视频压缩技术。55.为了保证经编码视频能够被准确解码,按照对应的视频编码标准对视频进行编码和解码。视频编码标准包括国际电信联盟标准化部门(international telecommunication union(itu)standardization sector,itu-t)h.261、国际标准化组织/国际电工委员会(international organization for standardization/international electrotechnical commission,iso/iec)运动图像专家组(motion picture experts group,mpeg)-1第2部分、itu-t h.262或iso/iec mpeg-2第2部分、itu-t h.263、iso/iec mpeg-4第2部分、高级视频编码(advanced video coding,avc)(也称为itu-t h.264或iso/iec mpeg-4第10部分),以及高效视频编码(high efficiency video coding,hevc)(也称为itu-t h.265或mpeg-h第2部分)。avc包括可分级视频编码(scalable video coding,svc)、多视点视频编码(multiview video coding,mvc)和多视点视频编码加深度(multiview video coding plus depth,mvc+d)以及三维(three dimensional,3d)avc(3d-avc)等扩展版。hevc包括可分级hevc(scalable hevc,shvc)、多视图hevc(multiview hevc,mv-hevc)以及3d hevc(3d-hevc)等扩展版。itu-t和iso/iec的联合视频专家组(joint video experts team,jvet)已开始开发一种称为通用视频编码(versatile video coding,vvc)的视频编码标准。vvc包括在工作草案(working draft,wd)中,该wd包括jvet-o2001-v14。56.视频序列可以包括许多图像。为了确保图像以正确的顺序显示,视频译码系统可以为图像分配时间标识符(temporalid)。一些视频译码系统使用图像层,其中,每层包括不同分辨率、图像大小、帧率等的基本相同的视频。不同层中的图像可以根据解码器侧的条件交替显示。因此,位于所述视频序列中同一点的不同层中的图像共用相同的temporalid。此外,共用相同temporalid的不同层中的图像组成了接入单元(access unit,au)。例如,解码器可以在每个au处显示从单层中选择的单个图像,以显示视频序列。57.一些视频译码系统使用sei消息。sei消息包括解码过程不需要的信息,以便确定经解码图像中的样本的值。例如,所述sei消息可以包括在编码器侧操作的hrd使用的用于检查码流是否符合标准的参数。此外,所述视频译码系统可以将视频序列编码到所述码流中,作为图像层。所述sei消息可以与不同的图像和/或不同的层组合有关。因此,在复杂的多层码流中,确保正确的sei消息与正确的图像/层相关联可能变得具有挑战性。如果sei消息与正确的层/图像没有关联,所述hrd可能无法正确检查层/图像的一致性。这样可能会导致编码错误。58.本文中公开了一种包括用于将sei消息正确关联到对应的图像/层的机制。多层码流可以将图像和相关参数组织到au中。au是一组包括在不同层中并与相同输出时间关联的经编码图像。sei消息可以与所述sei消息关联的第一图像位于相同的au中。此外,所述sei消息分配有temporalid。temporalid是表示网络抽象层(network abstraction layer,nal)单元在视频序列中的相对位置的标识符。所述sei消息的所述temporalid被限制为等于包括所述sei消息的所述au的temporalid。换句话说,所述图像包括在视频编码层(video coding layer,vcl)nal单元中,参数包括在非vcl nal单元中。当所述非vcl nal单元是包括sei消息的sei nal单元时,所述非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的所述au的所述temporalid。这种方法确保所述sei消息与所述au中的对应图像正确关联。因此,可以避免各种错误。这样,编码器和解码器的功能增加。此外,可以提高编码效率,减少了编码器和解码器侧的处理器、存储器和/或网络信令资源的使用。59.图1为对视频信号进行译码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过使用各种机制来压缩视频信号,从而减小视频文件。较小的文件大小有助于压缩视频文件传输给用户,同时减少相关的带宽开销。然后,解码器对压缩视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常与编码过程一样,有助于解码器以相同方式重建视频信号。60.在步骤101中,将视频信号输入编码器。例如,视频信号可以是存储在存储器中的未压缩的视频文件。又如,视频文件可以由视频捕获设备(例如,摄像机)捕获,并且进行编码以支持视频的实时流传输。视频文件可以同时包括音频分量和视频分量。视频分量包括一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包括以光表示的像素(本文称为亮度分量(或亮度样本))和颜色(称为色度分量(或颜色样本))。在一些示例中,所述帧还可以包括深度值以支持三维观看。61.在步骤103中,将视频分割成块。分割包括将每个帧中的像素细分为正方形和/或矩形块以进行压缩。例如,在高效视频编码(high efficiency video coding,hevc)(还称为h.265和mpeg-h第2部分)中,可以先将帧分成编码树单元(coding tree unit,ctu),这些ctu是预定义大小(例如64×64个像素)的块。ctu包括亮度样本和色度样本。可以使用编码树将ctu分成块,然后递归地细分这些块,直到获得支持进一步编码的配置结构。例如,可以细分帧的亮度分量,直到各个块包括相对均匀的亮度(lighting)值。此外,可以细分帧的色度分量,直到各个块包括相对均匀的颜色值。因此,视频帧的内容不同,分割机制就不同。62.在步骤105中,使用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以使用帧间预测和/或帧内预测。帧间预测旨在利用一个事实,即物体在一个公共场景中往往出现在连续的帧中。因此,无需在相邻帧中重复描述在参考帧中描绘对象的块。一个对象(例如,一张桌子)可以在多个帧中保持恒定的位置。因此,该桌子只描述一次,相邻帧可以回指参考帧。模式匹配机制可用于匹配跨多个帧的对象。此外,由于对象移动或摄像机移动等原因,移动对象可以跨多个帧表示。在特定示例中,一个视频可以跨多个帧显示在屏幕上移动的汽车。运动矢量可以用来描述这种移动。运动矢量是一个二维矢量,提供从对象在一个帧中的坐标与该对象在参考帧中的坐标之间的偏移。因此,帧间预测可将当前帧中的图像块编码为运动矢量集,表示当前帧中的图像块与参考帧中的对应块之间的偏移。63.帧内预测对公共帧中的块进行编码。帧内预测利用了以下事实:亮度分量和色度分量往往聚集在一个帧中。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测使用多种方向性预测模式(例如,hevc中的33个模式)、平面模式和直流(direct current,dc)模式。方向性模式表示当前块的样本与相邻块在对应方向上的样本相似/相同。平面模式表示可以根据行边缘的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过在变化值中使用相对恒定的斜率来表示亮度/颜色在行/列之间的平滑过渡。dc模式用于边界平滑,表示块和与所有邻块的样本相关联的平均值类似/相同,所述邻块与方向预测模式的角方向相关联。因此,帧内预测块可以将图像块表示为各种关系预测模式值而不是实际值。此外,帧间预测块可以将图像块表示为运动矢量值而不是实际值。在这两种情况下,预测块在一些情况下可以不完全表示图像块。任何差异都存储在残差块中。可以对残差块进行变换以进一步压缩文件。64.在步骤107中,可以应用各种滤波技术。在hevc中,滤波器是根据环内滤波方案应用的。以上讨论的基于块的预测可在解码器中创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建经编码块,以供以后用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和样本自适应偏移(sample adaptive offset,sao)滤波器应用到块/帧。这些滤波器减少了这些块伪影,以便可以准确地重建经编码文件。此外,这些滤波器减少了重建参考块伪影,使得伪影不太可能在基于重建参考块编码的后续块中产生其它的伪影。65.在步骤109中,一旦视频信号被分割、压缩和滤波,则将所得数据编码到码流中。码流包括上述数据以及任何期望支持解码器中适当的视频信号重建的指示数据。例如,这些数据可以包括分割数据、预测数据、残差块和向解码器提供译码指令的各种标志。码流可以存储在存储器中,所述码流用于根据请求发送到解码器。码流还可以向多个解码器广播和/或组播。码流的创建是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块上连续和/或同时发生。图1所示的顺序是为了清楚和便于描述而呈现的,并非旨在将视频译码过程限制于特定顺序。66.在步骤111中,解码器接收码流并开始解码过程。具体地,解码器使用熵解码方案将码流转换为对应的语法和视频数据。在步骤111中,解码器使用码流中的语法数据来确定帧的分割。所述分割应与步骤103中的块分割的结果匹配。现在描述在步骤111中使用的熵编码/解码。编码器在压缩过程中做出许多选择,例如根据输入图像中的值的空间定位从多个可能选项中选择块分割方案。指示确切的选项可以使用大量的二进制位。本文中使用的二进制位是当作变量的二进制值(例如,可以根据上下文变化的比特值)。熵编码有助于编码器丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配一个码字。码字的长度取决于可使用选项的数量(例如,一个二进制位对应两个选项,两个二进制位对应三个到四个选项)。然后,编码器对所选选项的码字进行编码。此方案减小了码字的大小,因为码字的大小与期望的一样大,以唯一地指示可使用选项的小子集中的一个选项,而不是唯一地指示所有可能选项的可能大集中的选项。然后,解码器通过以与编码器类似的方式确定可使用选项集对所述选项进行解码。通过确定可使用选项集,解码器可以读取码字并确定编码器做出的选择。67.在步骤113中,解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割来重建图像块。预测块可包括编码器在步骤105中生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块放置在重建视频信号的帧中。步骤113的语法还可以通过上文讨论的熵编码在码流中指示。68.在步骤115中,以类似于编码器在步骤107的方式对重建视频信号的帧执行滤波。例如,噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和sao滤波器可以应用于帧,以去除块伪影。一旦帧被滤波,可以在步骤117中将视频信号输出到显示器以供终端用户观看。69.图2是用于视频译码的示例性编码和解码(编解码)系统200的示意图。具体地,编解码系统200能够实现操作方法100。广义地,编解码器系统200用于描述编码器和解码器中使用的组件。如关于操作方法100中的步骤101和103所讨论,编解码系统200接收视频信号并对视频信号进行分割,产生分割后的视频信号201。然后,当作为编码器时,编解码系统200将分割后的视频信号201压缩到经译码码流中,如关于方法100中的步骤105、107和109所讨论。当充当解码器时,编解码系统200从码流中生成输出视频信号,如结合操作方法100中的步骤111、113、115和117所述。编解码系统200包括通用译码器控制组件211、变换缩放量化组件213、帧内估计组件215、帧内预测组件217、运动补偿组件219、运动估计组件221、缩放和逆变换组件229、滤波器控制分析组件227、环内滤波器组件225、解码图像缓冲区组件223、标头格式和上下文自适应二进制算术编码(context adaptive binary arithmetic coding,cabac)组件231。这些组件如图所示相耦合。在图2中,黑线表示待编码/解码数据的运动,而虚线表示控制其它组件操作的控制数据的运动。编解码系统200的组件都可以在编码器中使用。解码器可包括编解码系统200中组件的子集。例如,解码器可以包括帧内预测组件217、运动补偿组件219、缩放和逆变换组件229、环内滤波器组件225以及解码图像缓冲区组件223。现对这些组件加以说明。70.分割后的视频信号201是已通过编码树分割成像素块的捕获视频序列。编码树使用各种划分模式将像素块细分为更小的像素块。然后,可以将这些块进一步细分为更小的块。所述块可以称为编码树上的节点。将较大的父节点划分为较小的子节点。节点被细分的次数称为节点/编码树的深度。在一些情况下,划分的块可以包括在编码单元(coding unit,cu)中。例如,cu可以是ctu的子部分,包括亮度块、一个或多个红色差色度(cr)块和一个或多个蓝色差色度(cb)块以及cu的对应语法指令。划分模式可以包括二叉树(binary tree,bt)、三叉树(triple tree,tt)和四叉树(quad tree,qt),用于将节点分别划分为形状不同的两个、三个或四个子节点,具体取决于所使用的划分模式。将分割后的视频信号201转发到通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。71.通用译码器控制组件211用于根据应用约束条件做出与将视频序列的图像编码到码流中相关的决策。例如,通用译码器控制组件211管理码率/码流大小相对于重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出这些决策。通用译码器控制组件211还根据传输速度管理缓冲区的利用率,以减轻缓存欠载和超载问题。为了管理这些问题,通用译码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,通用译码器控制组件211可以动态增加压缩复杂度以增大分辨率和带宽利用率,或者降低压缩复杂度以降低分辨率和带宽利用率。因此,通用译码器控制组件211控制编解码系统200的其它组件来平衡视频信号重建质量与码率问题。通用译码器控制组件211创建控制数据,控制其它组件的操作。控制数据还被转发到标头格式化和cabac组件231,以编码到码流中,从而指示用于在解码器中进行解码的参数。72.分割后的视频信号201还发送到运动估计组件221和运动补偿组件219进行帧间预测。可以将分割后的视频信号201的帧或条带分为多个视频块。运动估计组件221和运动补偿组件219根据一个或多个参考帧中的一个或多个块对所接收视频块执行帧间预测译码以提供时间预测。编解码系统200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模式,等等。73.运动估计组件221和运动补偿组件219可以高度集成,但出于概念的目的单独说明。由运动估计组件221执行的运动估计是生成运动矢量的过程,运动矢量用于估计视频块的运动。例如,运动矢量可以指示编码对象相对于预测块的位移。预测块是被发现在像素差方面与待编码块紧密匹配的块。预测块也可以称为参考块。这种像素差可以通过绝对差和(sum of absolute difference,sad)、平方差和(sum of square difference,ssd)或其它差度量确定。hevc使用若干编码对象,包括ctu、编码树块(coding tree block,ctb)和cu。例如,ctu可以划分为多个ctb,然后ctb可以划分为多个cb,多个cb用于包括在cu中。cu可以编码为包括预测数据的预测单元和/或包括cu的变换残差数据的变换单元(transform unit,tu)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、预测单元和tu。例如,运动估计组件221可以为当前块/帧确定多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)和译码效率(例如,最终编码的大小)。74.在一些示例中,编解码系统200可以计算存储在解码图像缓冲区组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可对参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计组件221可执行有关于整像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过比较预测单元的位置与参考图像的预测块的位置来计算经帧间编码条带中视频块的预测单元的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出到标头格式化和cabac组件231以进行编码,并将运动输出到运动补偿组件219。75.由运动补偿组件219执行的运动补偿可涉及根据由运动估计组件221确定的运动矢量获取或生成预测块。同样,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收当前视频块的预测单元的运动矢量时,运动补偿组件219可以定位运动矢量指向的预测块。然后,通过从正在译码的当前视频块的像素值中减去预测块的像素值,产生像素差值,从而形成残差视频块。通常,运动估计组件221对亮度分量进行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发到变换缩放和量化组件213。76.分割后的视频信号201还发送到帧内估计组件215和帧内预测组件217。与运动估计组件221和运动补偿组件219一样,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念的目的单独说明。帧内估计组件215和帧内预测组件217根据当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在帧之间执行的帧间预测。具体地,帧内估计组件215确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式对当前块进行编码。然后,将所选择的帧内预测模式转发到标头格式化和cabac组件231用于进行编码。77.例如,帧内估计组件215使用各种测试的帧内预测模式的率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定经编码块和为了产生经编码块进行编码的原始未编码块之间的失真(或误差)量以及用于产生经编码块的码率(例如,比特数)。帧内估计组件215根据各种经编码块的失真和速率计算比率,确定哪种帧内预测模式得到块的最佳率失真值。另外,帧内估计组件215可用于根据率失真优化(rate-distortion optimization,rdo)使用深度建模模式(depth modeling mode,dmm)对深度图的深度块进行编码。78.当在编码器上实现时,帧内预测组件217可根据由帧内估计组件215确定的已选帧内预测模式从预测块中生成残差块,或者当在解码器上实现时,从码流中读取残差块。残差块包括预测块和原始块之间的值差,表示为矩阵。然后,将残差块转发到变换缩放和量化组件213。帧内估计组件215和帧内预测分量217可以对亮度分量和色度分量执行操作。79.变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213将离散余弦变换(discrete cosine transform,dct)、离散正弦变换(discrete sine transform,dst)等变换或概念上类似的变换应用于残差块,产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可将残差信息从像素值域变换到变换域,例如频域。变换缩放和量化组件213还用于根据频率等对变换的残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同的粒度上量化不同的频率信息,可以影响重建视频的最终视觉质量。变换缩放和量化分量213还用于量化变换系数以进一步降低码率。量化过程可以减少与部分或全部系数相关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件213随后可对包括量化变换系数的矩阵进行扫描。量化变换系数被转发到标头格式化和cabac组件231,以编码到码流中。80.缩放和逆变换组件229进行变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229进行反缩放、逆变换和/或反量化来重建像素域中的残差块,例如,后续用作参考块,该参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块与对应预测块相加来计算参考块,以用于对后续块/帧进行运动估计。将滤波器应用于重建参考块,以减少在缩放、量化和变换过程中产生的伪影。当预测后续块时,这些伪影可以产生不准确的预测(并产生其它伪影)。81.滤波器控制分析组件227和环内滤波器组件225将滤波器应用于残差块和/或重建图像块。例如,缩放和逆变换组件229中的变换残差块可以与帧内预测组件217和/或运动补偿组件219中的对应预测块组合以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,可以将滤波器应用于残差块。如同图2中的其它组件,滤波器控制分析组件227和环内滤波器组件225高度集成且可以一起实现,但出于概念的目的进行单独描述。应用于重建参考块的滤波器应用于特定空间区域,并且包括多个参数以调整如何应用这些滤波器。所述滤波器控制分析组件227分析重建参考块,以确定应在哪里应用这些滤波器并设置对应的参数。这些数据作为滤波器控制数据转发到标头格式和cabac组件231进行编码。环内滤波器组件225根据滤波器控制数据应用这些滤波器。这些滤波器可以包括去块效应滤波器、噪声抑制滤波器、sao滤波器和自适应环路滤波器。这些滤波器可以根据示例应用于空间/像素域(例如,在重建像素块上)或频域中。82.当作为编码器操作时,将滤波后的重建图像块、残差块和/或预测块存储在解码图像缓冲区组件223中,以供以后进行如上所述的运动估计。当作为解码器操作时,解码图像缓冲区组件223存储重建块和滤波块并向显示器转发重建块和滤波块,作为输出视频信号的一部分。解码图像缓冲区组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储器设备。83.标头格式化和cabac组件231从编解码系统200的各组件接收数据并将此类数据编码到经译码码流中用于向解码器发送。具体地,标头格式化和cabac组件231生成各种标头以对控制数据(如通用控制数据和滤波器控制数据)进行编码。此外,包括帧内预测和运动数据的预测数据以及量化变换系数数据形式的残差数据均编码到码流中。最终码流包括解码器想要重建原始分割后的视频信号201的所有信息。这些信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。这些数据可以通过熵编码技术进行编码。例如,可以通过使用上下文自适应可变长度编码(context adaptive variable length coding,cavlc)、cabac、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)编码或其它熵编码技术来对所述信息进行编码。在熵编码之后,经译码码流可以发送到另一设备(例如,视频解码器)或存档以供稍后发送或检索。84.图3为示例性视频编码器300的框图。视频编码器300可用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,产生和分割后的视频信号201基本相似的分割后的视频信号301。然后,通过编码器300的组件将分割后的视频信号301压缩和编码到码流中。85.具体地,将分割后的视频信号301转发给帧内预测组件317进行帧内预测。帧内预测组件317可与帧内估计组件215和帧内预测组件217基本相似。分割后的视频信号301还转发到运动补偿组件321,用于根据解码图像缓冲区323中的参考块进行帧间预测。运动补偿组件321可与运动估计组件221和运动补偿组件219基本相似。将帧内预测组件317和运动补偿组件321中的预测块和残差块转发到变换和量化组件313以对残差块进行变换和量化。变换和量化组件313可与变换缩放和量化组件213基本相似。将变换和量化残差块和对应的预测块(以及相关控制数据)转发到熵编码组件331以编码到码流中。熵编码组件331可以实质上类似于标头格式化和cabac组件231。86.变换和量化残差块和/或对应的预测块也从变换和量化组件313转发到逆变换和量化组件329以重建为参考块供运动补偿组件321使用。逆变换和量化组件329可与缩放和逆变换组件229基本相似。根据示例,也将环内滤波器组件325中的环内滤波器应用于残差块和/或重建参考块。环内滤波器组件325可与滤波器控制分析组件227和环内滤波器组件225基本相似。如关于环内滤波器组件225所讨论,环内滤波器组件325可以包括多个滤波器。然后,将滤波块存储在解码图像缓冲区组件323中,以供运动补偿组件321用作参考块。解码图像缓冲区组件323可与解码图像缓冲区组件223基本相似。87.图4为示例性视频解码器400的框图。视频解码器400可用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据所述码流生成重建输出视频信号以向终端用户显示。88.码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,例如cavlc、cabac、sbac、pipe编码或其它熵编码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解译在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,例如总体控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块的量化变换系数。将量化变换系数转发到逆变换和量化组件429以重建为残差块。逆变换和量化组件429可与逆变换和量化组件329基本相似。89.将重建残差块和/或预测块转发到帧内预测组件417以根据帧内预测操作重建为图像块。帧内预测组件417可与帧内估计组件215和帧内预测组件217相似。具体地,帧内预测组件417使用预测模式来定位帧中的参考块,并将残差块应用于结果以重建帧内预测图像块。重建帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发到解码图像缓冲区组件423,解码图像缓冲区组件423和环内滤波器组件425可以分别与解码图像缓冲区组件223和环内滤波器组件225基本相似。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且这些信息存储在解码图像缓冲区组件423中。将解码图像缓冲区组件423中的重建图像块转发到运动补偿组件421进行帧间预测。运动补偿组件421可与运动估计组件221和/或运动补偿组件219基本相似。具体地,运动补偿组件421使用参考块中的运动矢量来生成预测块,并将残差块应用于结果中以重建图像块。所得重建块还可以通过环内滤波器组件425转发到解码图像缓冲区组件423。解码图像缓冲区组件423继续存储其它重建图像块,这些图像块可以通过分割信息重建成帧。这些帧也可以按顺序排列。所述顺序作为重建输出视频信号向显示屏输出。90.图5为示例性hrd 500的示意图。hrd 500可以在编码器(例如编解码器系统200和/或编码器300)中使用。hrd 500可以检查在方法100的步骤109中产生的码流,然后,将码流转发给解码器,例如解码器400。在一些示例中,当码流进行编码时,码流可以不断地通过hrd 500转发。如果码流的一部分不符合相关约束条件,则hrd 500会向编码器指示这种不符合情况,以使得编码器使用不同的机制对码流的对应部分进行重新编码。91.hrd 500包括假设流调度方法(hypothetical stream scheduler,hss)541。hss 541是用于执行假设传送机制(hypothetical delivery mechanism)的组件。假设传送机制用于检查码流或解码器的关于输入到hrd 500中的码流551的时间和数据流的一致性。例如,hss 541可以接收从编码器输出的码流551,并管理对码流551进行的一致性测试过程。在一个特定的示例中,hss 541可以控制经编码图像在hrd 500中移动的速率,并验证码流551不包括不符合标准的数据。92.hss 541可以按预定义的速率将码流551转发给cpb 543。hrd 500可以管理解码单元(decoding unit,du)553中的数据。du 553是接入单元(access unit,au)或au和关联的非视频编码层(video coding layer,vcl)网络抽象层(network abstraction layer,nal)单元的子集。具体地,au包括与输出时间关联的一个或多个图像。例如,au可以包括单层码流中的单个图像,并且可以包括多层码流中每层的图像。au中的每个图像可以被划分为条带,每个条带都包括在对应的vcl nal单元中。因此,du 553可以包括一个或多个图像、图像的一个或多个条带或其组合。此外,用于对au、图像和/或条带进行解码的参数可以包括在非vcl nal单元中。因此,du 553包括非vcl nal单元,这些非vcl nal单元包括支持对du 553中的vcl nal单元进行解码所需的数据。cpb 543是hrd 500中的先入先出缓冲区。cpb 543包括du 553,du 553包括按解码顺序排列的视频数据。cpb 543存储这些视频数据以在码流一致性验证过程中使用。93.cpb 543将du 553转发给解码过程组件545。解码过程组件545是符合vvc标准的组件。例如,解码过程组件545可以模拟终端用户使用的解码器400。解码过程组件545按示例性终端用户解码器可以实现的速率对du 553进行解码。如果解码过程组件545不能足够快地对du 553进行解码以防止cpb 543溢出,则码流551不符合标准,需要重新编码。94.解码过程组件545对du 553进行解码,产生了经解码du 555。经解码du 555包括经解码图像。将经解码du 555转发给dpb 547。dpb 547可以基本上类似于解码图像缓冲区组件223、323和/或423。为了支持帧间预测,将从经解码du 555中获得的标识为用作参考图像556的图像返回给解码过程组件545,以支持进一步解码。dpb 547将解码视频序列输出为一系列图像557。图像557是重建图像,通常是由编码器编码到码流551中的图像的镜像。95.将图像557转发给输出裁剪组件549。输出裁剪组件549用于将一致性裁剪窗口(conformance cropping window)应用于图像557。这样得到裁剪后的输出图像559。裁剪后的输出图像559是完全重建的图像。因此,裁剪后的输出图像559模仿终端用户在对码流551进行解码时看到的内容。这样一来,编码器可以查看裁剪后的输出图像559,以确保编码令人满意。96.根据码流551中的hrd参数初始化hrd 500。例如,hrd 500可以从vps、sps和/或sei消息中读取hrd参数。然后,hrd 500可以根据这些hrd参数中的信息对码流551执行一致性测试操作。在特定示例中,hrd 500可以根据hrd参数确定一个或多个cpb传送时间表(delivery schedule)。传送时间表指定将视频数据传送到cpb和/或dpb等存储位置和/或从存储位置传送的时间。因此,cpb传送时间表指定向/从cpb 543传送au、du 553和/或图像的时间。需要说明的是,hrd 500可以针对dpb 547采用类似于cpb传送时间表的dpb传送时间表。97.视频可以被译码到不同的层和/或ols中,以供不同硬件能力级别的解码器使用以及在不同的网络条件下使用。选择cpb传送时间表以反映这些问题。因此,高层子码流被指定用于最佳硬件和网络条件,因此高层可以接收一个或多个cpb传送时间表,这些传送时间表使用cpb 543中的大量内存和向dpb 547传输du 553的短延迟。同样,低层子码流被指定用于有限的解码器硬件能力和/或恶劣的网络条件。因此,低层可以接收一个或多个cpb传送时间表,这些传送时间表使用cpb 543中的少量内存和向dpb 547传输du 553的长延迟。然后,可以根据对应的传送时间表测试ols、层、子层或其组合,以确保在子码流预期的条件下可以正确解码得到的子码流。因此,码流551中的hrd参数可以表示cpb传送时间表,并且包括足够的数据使hrd 500可以确定cpb传送时间表并将cpb传送时间表与对应的ols、层和/或子层相关联。98.图6为示例性多层视频序列600的示意图。根据方法100等,多层视频序列600可以由编码器(例如,编解码系统200和/或编码器300)编码,并由解码器(例如,编解码系统200和/或解码器400)解码。此外,多层视频序列600可以通过hrd(例如,hrd 500)检查标准一致性。包括多层视频序列600是为了描绘编码视频序列中的层的示例性应用。多层视频序列600是使用多个层的任何视频序列,例如,层n 631和层n+1 632。99.在一个示例中,多层视频序列600可以采用层间预测621。层间预测621应用于不同层中的图像611、612、613和614与图像615、616、617和618之间。在所示的示例中,图像611、612、613和614是层n+1 632的一部分,图像615、616、617和618是层n 631的一部分。层n 631和/或层n+1 632等层是一组图像,这些图像都与类似的大小、质量、分辨率、信噪比、能力等类似的特征值关联。层可以正式定义为共用相同层id的vcl nal单元和关联的非vcl nal单元的集合。vcl nal单元是经译码为包括视频数据的nal单元,例如图像的经译码条带。非vcl nal单元是包括非视频数据的nal单元,例如支持对视频数据进行解码、一致性检查的性能或其它操作的语法和/或参数。100.在所示的示例中,相比于层n 631,层n+1 632与更大的图像大小相关联。因此,在本示例中,层n+1 632中的图像611、612、613和614比层n 631中的图像615、616、617和618大(例如,高度和宽度更大,因此样本更多)。但是,这些图像可以通过其它特征划分为层n+1 632和层n 631。虽然只显示了两层:层n+1 632和层n 631,但一组图像可以根据关联的特征划分为任意数量的层。层n+1 632和层n 631也可以用层id表示。层id是与图像关联的数据项,并表示图像是所指示层的一部分。因此,图像611至618中的每个图像可以与对应的层id关联,以表示层n+1 632或层n 631中的哪个层包括对应的图像。例如,层id可以包括nal单元头层标识符(nuh_layer_id),是指表示包括nal单元(例如,包括层中图像的条带和/或参数)的层的标识符的语法元素。与较低质量/较小图像大小/较小码流大小相关联的层,例如,层n 631,通常被分配低层id,称为低层。此外,与较高质量/较大图像大小/较大码流大小相关联的层,例如,层n+1 632,通常被分配高层id,称为高层。101.不同层631和632中的图像611至618被配置为交替显示。在特定示例中,如果需要较小的图像,则解码器可以在当前显示时间解码并显示图像615,或者如果需要较大的图像,则解码器可以在当前显示时间解码并显示图像611。因此,高层n+1 632中的图像611至614与低层n 631中的对应图像615至618包括基本上相同的图像数据(尽管图像大小不同)。具体地,图像611与图像615包括基本上相同的图像数据,图像612与图像616包括基本上相同的图像数据,以此类推。102.图像611至618可以通过参考同一层n 631或n+1 632中的其它图像611至618进行译码。参考同层中的一个图像对另一个图像进行译码即为帧间预测623。帧间预测623由实线箭头表示。例如,图像613可以通过将层n+1 632中的图像611、612和/或614中的一个或两个图像作为参考的帧间预测623来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。此外,图像617可以通过将层n 631中的图像615、616和/或618中的一个或两个图像作为参考的帧间预测623来译码,其中,单向帧间预测使用一个图像作为参考,和/或双向帧间预测使用两个图像作为参考。当在执行帧间预测623时将一个图像作为同一层中另一个图像的参考时,该图像可以称为参考图像。例如,图像612可以是用于根据帧间预测623对图像613进行译码的参考图像。帧间预测623也可以称为多层上下文中的层内预测。因此,帧间预测623是通过参考与当前图像不同的参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,参考图像和当前图像位于同一层中。103.图像611至618也可以通过参考不同层中的其它图像611至618进行译码。这个过程称为层间预测621,由虚线箭头表示。层间预测621是通过参考一个参考图像中的指示样本对当前图像中的样本进行译码的机制,其中,当前图像和参考图像位于不同的层中,因此具有不同的层id。例如,低层n 631中的图像可以作为对高层n+1 632中的对应图像进行译码的参考图像。在一个特定示例中,图像611可以根据层间预测621通过参考图像615进行译码。在这种情况下,图像615被用作层间参考图像。层间参考图像是用于层间预测621的参考图像。在大多数情况下,对层间预测621进行了约束,使得当前图像(例如,图像611)只能使用同一au 627中包含的且位于低层中的一个或多个层间参考图像,例如,图像615。当多层(例如,两层以上)可用时,层间预测621可以根据层级比当前图像低的多个层间参考图像对当前图像进行编码/解码。104.视频编码器可以使用多层视频序列600来通过帧间预测623和层间预测621的许多不同组合和/或排列对图像611至618进行编码。例如,图像615可以根据帧内预测进行译码。然后,通过将图像615作为参考图像,图像616至618可以根据帧间预测623进行译码。此外,通过将图像615作为层间参考图像,图像611可以根据层间预测621进行译码。然后,通过将图像611作为参考图像,图像612至614可以根据帧间预测623进行译码。因此,参考图像可以作为不同译码机制的单层参考图像和层间参考图像。通过根据低层n 631图像对高层n+1 632图像进行译码,高层n+1 632可以避免使用帧内预测,帧内预测的译码效率比帧间预测623和层间预测621的译码效率低得多。因此,译码效率低的帧内预测可以限于最小/最低质量的图像,因此限于对最少量的视频数据进行译码。用作参考图像和/或层间参考图像的图像可以在参考图像列表结构中包括的一个或多个参考图像列表的条目中指示。105.图像611至618也可以包括在接入单元(access unit,au)627中。au 627是一组包括在不同层中并与在解码期间的相同时间相关联的经编码图像。因此,同一au 627中的经编码图像被调度同时从解码器处的dpb输出。例如,图像614和618在同一au 627中。图像613和617与图像614和618在不同的au 627中。同一au 627中的图像614和618可以交替显示。例如,当需要较小图像大小时,可以显示图像618,当需要较大图像大小时,可以显示图像614。当需要较大图像大小时,输出图像614,并且图像618仅用于层间预测621。在这种情况下,一旦层间预测621完成,图像618就被丢弃而不输出。106.au 627可以进一步划分为一个或多个图像单元(picture unit,pu)628。pu 628是包括单个经编码图像的au 627的子集。pu 628正式定义为nal单元的集合,这些nal单元根据指定的分类规则相互关联,按解码顺序连续,并且只包括一个经编码图像。需要说明的是,当从hrd和/或关联的一致性测试的角度讨论时,pu 628可以被称为解码单元(decoding unit,du)。107.需要说明的是,图像611至618,因此au 627和pu 628各自与时间标识符(temporalid)629关联。temporalid 629是表示nal单元在视频序列中的相对位置的推导标识符。同一au627中的图像和/或pu 628与相同的temporalid 629值关联。例如,序列中的第一au 627可以包括等于0的temporalid 629,后续au 627包括连续增大的temporalid 629。非vcl nal单元也可以与temporalid 629关联。例如,参数集可以包括在au 627中,并且可以与au 627中的一个或多个图像关联。在这种情况下,参数集的temporalid 629可以小于或等于au 627的temporalid 629。108.图7为示例性码流700的示意图。例如,码流700可以由编解码系统200和/或编码器300生成,以由编解码系统200和/或解码器400根据方法100进行解码。此外,码流700可以包括多层视频序列600。此外,码流700可以包括各种参数以控制hrd(例如,hrd 500)的操作。根据这些参数,hrd可以在向解码器传输码流700进行解码之前检查码流700是否符合标准。109.码流700包括vps 711、一个或多个sps 713、多个图像参数集(picture parameter set,pps)715、多个自适应参数集(adaptation parameter set,aps)716、多个图像头718、多个条带头717、图像数据720和sei消息719。vps 711包括与整个码流700相关的数据。例如,vps 711可以包括码流700中使用的数据相关的ols、层和/或子层。sps 713包括码流700中包括的编码视频序列中所有图像共用的序列数据。例如,每层可以包括一个或多个编码视频序列,每个编码视频序列可以参考sps 713获取对应的参数。sps 713中的参数可以包括图像大小、比特深度、编码工具参数、码率限制等。需要说明的是,虽然每个序列都参考sps 713,但在一些示例中,单个sps 713可以包括多个序列的数据。pps 715包括应用于整个图像的参数。因此,视频序列中的每个图像可以参考pps 715。需要说明的是,虽然每个图像都参考pps 715,但是在一些示例中,单个pps 715可以包括多个图像的数据。例如,可以根据类似的参数对多个类似的图像进行译码。在这种情况下,单个pps 715可以包括用于这些类似图像的数据。pps 715可以表示可用于对应图像中的条带的编码工具、量化参数、偏移等。110.aps 716是包括应用于一个或多个图像725中的一个或多个条带727的语法元素/参数的语法结构。这种相关性可以根据在与条带727关联的条带头717中找到的语法元素来确定。例如,aps 716可以应用于第一图像721中的至少一个但小于全部的条带727,应用于第二图像725中的至少一个但小于全部的条带727等。aps 716可以根据aps 716中包括的参数分为多种类型。这些类型可以包括自适应环路滤波器(adaptive loop filter,alf)aps、亮度映射与色度缩放(luma mapping with chroma scaling,lmcs)aps和/或缩放列表(scaling)aps。alf是一种基于块的自适应滤波器,它包括由可变参数控制的传递函数,并使用反馈环路的反馈来修正传递函数。此外,alf用于校正由于基于块的译码而发生的模糊和振铃伪影等编码伪影(例如,误差)。因此,包括在alf aps中的alf参数可以包括由编码器选择的参数,以使alf在解码器侧进行解码期间删除基于块的编码伪影。lmcs是作为解码过程的一部分应用的过程,所述过程将亮度样本映射到特定值,在一些情况下,还将缩放操作应用于色度样本的值。lmcs工具可以根据到对应的色度分量的映射来重塑亮度分量,以减少率失真。因此,lmcs aps包括编码器选择的参数,使得lmcs工具可以重塑亮度分量。缩放列表111.aps包括与指定滤波器使用的量化矩阵关联的编码工具参数。因此,aps 716可以包括用于112.在hrd的一致性测试期间和/或在解码器侧进行解码期间将各种滤波器应用于经译码条带113.727的参数。114.图像头718是一种语法结构,包括应用于经编码图像725中的所有条带727的语法元素。例如,图像头718可以包括图像顺序编号信息、参考图像数据、与帧内随机接入点(intra-random access point,irap)图像有关的数据、与图像725的滤波器应用有关的数据,pu可以包括正好一个图像头718和一个图像725。因此,码流700可以包括每个图像725正好一个图像头718。条带头717包括图像725中每个条带727特定的参数。因此,视频序列中的每个条带727可以有一个条带头717。条带头717可以包括条带类型信息、滤波信息、预测权重、分块入口点、去块效应滤波参数等。在一些情况下,对于图像725中的所有条带727,语法元素可以是相同的。为了减少冗余,图像头718和条带头717可以共用某些类型的信息。例如,当某些参数(例如,滤波参数)应用于整个图像725时,这些参数可以包括在图像头718中,或者当这些参数应用于作为整个图像725的子集的一组条带727时,可以包括在条带头717中。115.图像数据720包括根据帧间预测和/或帧内预测编码的视频数据以及对应的变换和量化残差数据。例如,图像数据720可以包括层723、图像725和/或条带727。层723是vcl nal单元745和关联的非vcl nal单元741的集合,所述vcl nal单元745共用由层id(例如,nuh_layer_id)指示的指定特征(例如,公共分辨率、帧率、图像大小等)。例如,层723可以包括共用相同nuh_layer_id的一组图像725。层723可以基本上类似于层631和/或632。nuh_layer_id是表示包括至少一个nal单元的层723的标识符的语法元素。例如,称为基本层的最低质量层723可以包括最低nuh_layer_id值,nuh_layer_id值越大,层723的质量越高。因此,低层是nuh_layer_id值较小的层723,高层是nuh_layer_id值较大的层723。116.图像725是创建帧或其场的亮度样本和/或色度样本组成的阵列。例如,图像725是经编码图像,其可以被输出用于显示或用于支持对其它图像725进行译码,然后输出。图像725包括一个或多个条带727。条带727可以被定义为图像725中的整数个完整分块或图像725中(例如,一个分块内)的整数个连续完整编码树单元(coding tree unit,ctu)行,这些分块或ctu行只包括在单个nal单元中。条带727进一步分成ctu和/或编码树块(coding tree block,ctb)。ctu是一组预定义大小的样本,可以通过编码树(coding tree)分割。ctb是ctu的子集,包括ctu的亮度分量或色度分量。根据编码树,将ctu/ctb进一步划分为编码块。然后可以根据预测机制对编码块进行编码/解码。117.sei消息719是一种具有指定语义的语法结构,该语法结构传达解码过程不需要的信息,以便确定经解码图像中的样本的值。例如,sei消息719可以包括支持hrd过程的数据或与解码器侧的码流700解码不直接相关的其它支持数据。一组sei消息719可以实现为可伸缩嵌套式sei消息。可伸缩嵌套式sei消息提供了一种将sei消息719与特定层723关联的机制。可伸缩嵌套式sei消息是包括多个可伸缩嵌套的sei消息的消息。可伸缩嵌套的sei消息是对应于一个或多个ols或一个或多个层723的sei消息719。ols是层723的集合,其中,层723中的至少一个是输出层。因此,可伸缩嵌套式sei消息可以根据上下文包括一组可伸缩嵌套的sei消息,或包括一组sei消息719。此外,可伸缩嵌套式sei消息包括一组相同类型的可伸缩嵌套的sei消息。sei消息719可以包括用于初始化hrd以管理cpb来测试对应ols和/或层723的hrd参数的bp sei消息。sei消息719还可以包括用于管理cpb和/或dpb处的au的传送信息以测试对应ols和/或层723的hrd参数的pt sei消息。sei消息719还可以包括用于管理cpb和/或dpb处的du的传送信息以测试对应ols和/或层723的hrd参数的dui sei消息。118.码流700可以译码为nal单元的序列。nal单元是视频数据和/或支持语法的容器。nal单元可以是vcl nal单元745或非vcl nal单元741。vcl nal单元745是经译码以包括视频数据的nal单元。具体地,vcl nal单元745包括条带727和关联的条带头717。非vcl nal单元741是包括非视频数据的nal单元,例如支持对视频数据进行解码、一致性检查的性能或其它操作的语法和/或参数。非vcl nal单元741可以包括vps nal单元、sps nal单元、pps nal单元、aps nal单元、图像头(picture header,ph)nal单元和sei nal单元,上述单元分别包含vps 711、sps 713、pps 715、aps 716、图像头718和sei消息719。需要说明的是,上述nal单元列表是示例性的,而不是详尽无遗的。119.每个nal单元与nal单元头时间标识符加1(nuh_temporal_id_plus1)731关联。nuh_temporal_id_plus1 731是表示对应nal单元在视频序列中的相对位置的指示的标识符。解码器和/或hrd可以根据nuh_temporal_id_plus1 731的值确定对应nal单元的temporalid。具体地,在nal单元头中指示nuh_temporal_id_plus1 731。nal单元的temporalid可以由解码器/hrd通过从nuh_temporal_id_plus1 731的值中减去1来确定。因此,nuh_temporal_id_plus1 731的值不应设置为0,因为这将产生负的temporalid值。120.此外,sei消息719可以用作前缀sei消息和/或后缀sei消息。前缀sei消息是应用于一个或多个后续nal单元的sei消息719。后缀sei消息是应用于一个或多个先前nal单元的sei消息719。前缀sei消息包括在前缀sei nal单元类型(prefix_sei_nut)742中,后缀sei消息包括在后缀sei nal单元类型(suffix_sei_nut)743中。prefix_sei_nut 742是非vcl nal单元,其类型值设置为表示非vcl nal单元包括前缀sei消息。suffix_sei_nut 743是一个非vcl nal单元,其类型值设置为表示非vcl nal单元包括后缀sei消息。121.如上所述,sei消息719可以包括在编码器侧操作的hrd使用的用于检查码流是否符合标准的参数。sei消息719可以与不同的图像725和/或不同的层723组合有关。因此,在复杂的多层码流中,确保正确的sei消息719与正确的图像725和/或层723关联可能变得具有挑战性。此外,前缀sei消息应包括在与前缀sei消息关联的第一nal单元之前的码流700中,而后缀sei消息应包括在紧跟与后缀sei关联的第一nal单元之后的码流700中。在sei消息719未正确放置在码流700中和/或未与正确的层723和/或图像725关联的情况下,hrd可能无法正确检查层723和/或图像725的一致性。这可能导致由hrd引起的编码错误和/或在解码器侧进行解码时的错误。例如,hrd可能会不正确地对图像进行滤波和/或无法检测到不符合标准的情况。此外,当不存在传输相关译码错误时,解码器可能无法检测到传输相关译码错误和/或错误地返回传输相关译码错误的指示。122.修改码流700以确保sei消息719与对应的层723、图像725、条带727和/或nal单元正确关联。如关于图6所描述,多层码流可以将图像和相关参数组织到au中。au是一组包括在不同层中并与相同输出时间关联的经编码图像。在码流700中,每个sei消息719可以与sei消息719关联的第一图像725位于相同的au中。此外,sei消息719分配有temporalid。sei消息719的temporalid被限制为等于包括sei消息719的au的temporalid。在特定示例中,au中的每个图像725共用相同的temporalid值,因此共用相同的nuh_temporal_id_plus1731值。因此,sei消息719的nuh_temporal_id_plus1 731与sei消息719所应用的对应图像725中的每个图像的nuh_temporal_id_plus1 731相同。123.换句话说,图像725包括在vcl nal单元745中,参数包括在非vcl nal单元中741。当非vcl nal单元741是包括sei消息719的prefix_sei_nut 742或suffix_sei_nut743类型的sei nal单元,非vcl nal单元741的temporalid/nuh_temporal_id_plus1 731被限制等于包括非vcl nal单元741的au的temporalid/nuh_temporal_id_plus1 731。这种方法确保sei消息719与au中的对应图像725正确关联。因此,可以避免各种错误。这样,所述编码器和所述解码器的功能增加。此外,可以提高编码效率,减少了编码器和解码器侧的处理器、存储器和/或网络信令资源的使用。124.下文更详细地描述上述信息。分层视频编码也被称为可分级视频编码或具有可分级性的视频编码。视频译码的可分级性通常可以通过使用多层译码技术来支持。多层码流包括基本层(base layer,bl)和一个或多个增强层(enhancement layer,el)。可分级性的示例包括空间可分级性、质量/信噪比(signal to noise ratio,snr)可分级性、多视图可分级性、帧率可分级性等。当使用多层译码技术时,可以在不使用参考图像的情况下对图像或图像的一部分进行译码(帧内预测),可以通过参考同一层中的参考图像对图像或图像的一部分进行译码(帧间预测),和/或可以通过参考其它层中的参考图像对图像或图像的一部分进行译码(层间预测)。用于当前图像的层间预测的参考图像称为层间参考图像(inter-layer reference picture,ilrp)。图6示出了用于空间可分级性的多层编码的示例,其中,不同层中的图像具有不同的分辨率。125.一些视频编码系列支持根据用于单层译码的一个或多个档次(profile)实现一个或多个单独档次中的可分级性。可分级视频编码(scalable video coding,svc)是高级视频编码(advanced video coding,avc)的可分级扩展,支持空间、时间和质量可分级性。对于svc,在el图像中的每个宏块(macroblock,mb)中指示了一个标志,以表示el mb是否使用低层中的并置块进行预测。基于并置块的预测可以包括纹理、运动矢量和/或译码模式。svc的实现方式不能在其设计中直接重用未经修改的avc实现方式。svc el宏块语法和解码过程与avc语法和解码过程不同。126.可分级hevc(scalable hevc,shvc)是hevc的扩展,支持空间、时间和质量可分级性。多视图hevc(multiview hevc,mv-hevc)是hevc的扩展,支持多视图可分级性。3d hevc(3d-hevc)是hevc的扩展,支持比mv-hevc更高级、更高效的3d视频译码。时间可分级性可以是单层hevc编解码器的组成部分。在hevc的多层扩展中,用于层间预测的经解码图像仅来自同一au,并被视为长期参考图像(long-term reference picture,ltrp)。这些图像分配有参考图像列表中的参考索引和当前层中的其它时间参考图像。层间预测(inter-layer prediction,ilp)是通过将参考索引的值设置为参考一个或多个参考图像列表中的一个或多个层间参考图像而在预测单元级实现的。当ilrp的空间分辨率与正在编码或解码的当前图像的空间分辨率不同时,空间可分级性对参考图像或参考图像的一部分进行重采样。参考图像重采样可以在图像级或编码块级实现。127.vvc还可以支持分层视频译码。vvc码流可以包括多个层。这些层可以相互独立。例如,每个层都可以在不使用层间预测的情况下译码。在这种情况下,这些层也称为同播层。在一些情况下,一些层使用ilp进行译码。vps中的标志可以表示这些层是否为同播层,或者一些层是否使用ilp。当一些层使用ilp时,层之间的层依赖关系也会在vps中指示(signal)。与shvc和mv-hevc不同,vvc可以不表示ols。ols包括指定的层集,其中,层集中的一个或多个层被指定为输出层。输出层是ols的输出层。在vvc的一些实现方式中,当层是同播层时,只能选择一层进行解码和输出。在vvc的一些实现方式中,当任何层使用ilp时,指定对包括所有层在内的整个码流进行解码。此外,层中的某些层被指定为输出层。输出层可以被指示为仅最高层、所有层或最高层加上一组指示的低层。128.上述方面存在一些问题。例如,sps、pps和aps nal单元的nuh_layer_id值可能没有得到适当的约束。此外,sei nal单元的temporalid值可能没有得到适当的约束。此外,当启用参考图像重采样且clvs中的图像具有不同的空间分辨率时,nooutputofpriorpicsflag的设置可能无法正确指定。此外,在一些视频译码系统中,后缀sei消息不能包括在可伸缩嵌套式sei消息中。又如,缓冲周期、图像定时和解码单元信息sei消息可以包括解析vps和/或sps的依赖关系。129.一般来说,本发明描述了视频译码改进方法。技术描述参见vvc。然而,这些技术还根据其它视频编解码规范应用于分层视频译码。130.上述一个或多个问题可以如下解决。sps、pps和aps nal单元的nuh_layer_id值在本文中得到适当的约束。sei nal单元的temporalid值在本文中得到适当的约束。当启用参考图像重采样且clvs中的图像具有不同的空间分辨率时,nooutputofpriorpicsflag的设置得到正确指定。可伸缩嵌套式sei消息中可以包括后缀sei消息。可以通过重复bp sei消息语法中的语法元素decoding_unit_hrd_params_present_flag、pt sei消息语法中的语法元素decoding_unit_hrd_params_present_flag和decoding_unit_cpb_params_in_pic_timing_sei_flag以及dui sei消息中的语法元素decoding_unit_cpb_params_in_pic_timing_sei_flag来删除解析bp、pt和dui sei消息对vps或sps的依赖关系。131.上述机制的示例性实现方式描述如下。通用nal单元语义举例如下:132.nuh_temporal_id_plus1–1表示nal单元的时间标识符。nuh_temporal_id_plus1的值不应等于0。变量temporalid推导如下:133.temporalid=nuh_temporal_id_plus1–1134.当nal_unit_type在idr_w_radl到rsv_irap_13的范围内(包括端值)时,temporalid应等于0。当nal_unit_type等于stsa_nut时,temporalid不应等于0。135.接入单元中所有vcl nal单元的temporalid值必须相同。经编码图像、层接入单元或接入单元的temporalid值可以为经编码图像、层接入单元或接入单元的vcl nal单元的temporalid值。子层表示的temporalid的值可以是子层表示中所有vcl nal单元的最大的temporalid值。136.非vcl nal单元的temporalid值的限制条件如下:如果nal_unit_type等于dps_nut、vps_nut或sps_nut,则temporalid应等于0,且包括nal单元的接入单元的temporalid应等于0。否则,如果nal_unit_type等于eos_nut或eob_nut,则temporalid应等于0。否则,如果nal_unit_type等于aud_nut、fd_nut、prefix_sei_nut或suffix_sei_nut,temporalid应等于包括nal单元的接入单元的temporalid。否则,当nal_unit_type等于pps_nut或aps_nut时,temporalid应大于或等于包括nal单元的接入单元的temporalid。当nal单元为非vcl nal单元时,temporalid值应等于该非vcl nal单元所应用的所有接入单元的最小temporalid值。当nal_unit_type等于pps_nut或aps_nut时,temporalid可以大于或等于包含接入单元的temporalid。这是因为所有pps和aps都可以包括在码流的开头。此外,第一经编码图像的temporalid等于0。137.示例性序列参数集rbsp语义如下所述。sps rbsp在被参考之前应可用于解码过程。sps可以包括在至少一个temporalid等于0的接入单元中,或者通过外部机制提供。包括sps的sps nal单元可以被限制为nuh_layer_id等于参考sps的pps nal单元的最小nuh_layer_id值。138.示例性图像参数集rbsp语义如下所述。pps rbsp在被参考之前应可用于解码过程。pps应包括在至少一个temporalid小于或等于pps nal单元的temporalid的接入单元中,或者通过外部机制提供。包括pps rbsp的pps nal单元的nuh_layer_id应等于参考pps的经译码条带nal单元的最小nuh_layer_id值。139.示例性自适应图像参数集语义如下所述。每个aps rbsp在被参考之前应可用于解码过程。aps还应包括在至少一个temporalid小于或等于参考aps的经译码条带nal单元的temporalid的接入单元中,或者通过外部机制提供。aps nal单元可以被多个层的图像/条带共用。包括aps nal单元的nuh_layer_id应等于参考aps nal单元的经译码条带nal单元的最小nuh_layer_id值。或者,aps nal单元可以不被多个层的图像/条带共用。aps nal单元的nuh_layer_id应等于参考aps的条带的nuh_layer_id。140.在一个示例中,在对当前图像进行解码之前从dpb中删除图像描述如下。在对当前图像进行解码之前(但在解析当前图像的第一条带的条带头之后)从dpb中删除图像可以发生在接入单元n(包括当前图像)的第一解码单元的cpb删除时间。过程如下。调用用于参考图像列表构建的解码过程,并调用用于参考图像标记的解码过程。141.当所述当前图像是图像索引不是0的编码层视频序列(coded layer video sequence start,clvss)图像时,可以应用以下按顺序执行的步骤。为测试解码器推导变量nooutputofpriorpicsflag,如下所示:如果从sps中推导出的pic_width_max_in_luma_samples、pic_height_max_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_luma_minus8、bit_depth_chroma_minus8或sps_max_dec_pic_buffering_minus1[htid]的值分别与从由前一图像参考的sps中推导出的pic_width_in_luma_samples、pic_height_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_luma_minus8、bit_depth_chroma_minus8或sps_max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以由测试解码器设置为1,不考虑no_output_of_prior_pics_flag的值。需要说明的是,虽然在这些条件下,可以优选将nooutputofpriorpicsflag设置为no_output_of_prior_pics_flag,但是在这种情况下,测试解码器可以将nooutputofpriorpicsflag设置为1。否则,nooutputofpriorpicsflag可以被设置为no_output_of_prior_pics_flag。[0142]为测试解码器推导出的nooutputofpriorpicsflag的值应用于hrd,使得当nooutputofpriorpicsflag的值等于1时,在不输出所有图像存储缓冲区所包含的图像的情况下,dpb中的所有图像存储缓冲区都被清空,并且dpb满度(fullness)被设置为0。当以下两个条件对于dpb中的任何图像k都为真时,dpb中的所有此类图像k都将从dpb中删除。图像k被标记为不用于参考,图像k的pictureoutputflag等于0或对应的dpb输出时间小于或等于当前图像n的第一解码单元(记为解码单元m)的cpb删除时间。当dpboutputtime[k]小于或等于ducpbremovaltime[m]时,可能会发生这种情况。对于从dpb中删除的每一个图像,dpb满度减1。[0143]在一个示例中,从dpb中输出和删除图像的示例如下所述。在对当前图像进行解码之前(但在解析当前图像的第一条带的条带头之后)从dpb中输出和删除图像可以发生在包括当前图像的接入单元的第一解码单元从cpb中删除的时候,并且如下进行。调用用于参考图像列表构建的解码过程,并调用用于参考图像标记的解码过程。[0144]如果当前图像是图像索引不是0的clvss图像,则应用以下按顺序执行的步骤。变量nooutputofpriorpicsflag可以如下所述为测试解码器推导出。如果从sps中推导出的pic_width_max_in_luma_samples、pic_height_max_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_luma_minus8、bit_depth_chroma_minus8或sps_max_dec_pic_buffering_minus1[htid]的值分别与从由前一图像参考的sps中推导出的pic_width_in_luma_samples、pic_height_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_luma_minus8、bit_depth_chroma_minus8或sps_max_dec_pic_buffering_minus1[htid]的值不同,则nooutputofpriorpicsflag可以由测试解码器设置为1,不考虑no_output_of_prior_pics_flag的值。需要说明的是,虽然在这些条件下,优选将nooutputofpriorpicsflag设置为no_output_of_prior_pics_flag,但是在这种情况下,测试解码器可以将nooutputofpriorpicsflag设置为1。否则,nooutputofpriorpicsflag可以被设置为no_output_of_prior_pics_flag。[0145]为测试解码器推导出的nooutputofpriorpicsflag的值可以如下所述应用于hrd。如果nooutputofpriorpicsflag等于1,则在不输出所包含的图像的情况下,dpb中的所有图像存储缓冲区都被清空,并且dpb满度被设置为0。否则(nooutputofpriorpicsflag等于0),包括标记为不需要输出且不用于参考的图像的所有图像存储缓冲区被清空(不输出),dpb中的所有非空图像存储缓冲区通过反复调用碰撞(bumping)过程来清空,而且dpb满度被设置为0。[0146]否则(当前图像不是clvss图像),所有包括被标记为不需要输出且不用于参考的图像的图像存储缓冲区都将清空(不输出)。对于每个空图像存储缓冲区,dpb满度减1。当以下一个或多个条件为真时,重复调用碰撞过程,同时对每个空的额外图像存储缓冲区进一步将dpb满量减1,直到以下条件都不为真。条件是dpb中标记为需要输出的图像的数量大于sps_max_num_reorder_pics[htid]。另一个条件是sps_max_latency_increase_plus1[htid]不等于0,并且dpb中至少有一个图像被标记为需要输出,其关联变量piclatencycount大于或等于spsmaxlatencypictures[htid]。另一个条件是dpb中的图像数量大于或等于subdpbsize[htid]。[0147]示例性通用sei消息语法如下所示。[0148][0149][0150][0151]示例性可伸缩嵌套式sei消息语法如下所示。[0152][0153]示例性可伸缩嵌套式sei消息语义如下所示。可伸缩嵌套式sei消息提供了一种机制,将sei消息与特定ols上下文中的特定层或与不在ols上下文中的特定层相关联。可伸缩嵌套式sei消息包括一个或多个sei消息。可伸缩嵌套式sei消息中包括的sei消息也称为可伸缩嵌套的sei消息。当sei消息包括在可伸缩嵌套式sei消息中时,码流一致性可能要求应用以下限制。[0154]payloadtype等于132(解码图像哈希)或133(可伸缩嵌套式)的sei消息不应包括在可伸缩嵌套式sei消息中。当可伸缩嵌套式sei消息包括缓冲周期、图像定时或解码单元信息sei消息时,可伸缩嵌套式sei消息不应包括任何其它payloadtype不等于0(缓冲周期)、1(图像定时)或130(解码单元信息)的sei消息。[0155]码流一致性还可以要求以下限制应用于包括可伸缩嵌套的sei消息的sei nal单元的nal_unit_type值。当可伸缩嵌套式sei消息包括的sei消息的payloadtype等于0(缓冲周期)、1(图像定时)、130(解码单元信息)、145(依赖rap指示)或168(帧字段信息)时,包括可伸缩嵌套式sei消息的sei nal单元的nal_unit_type应设置为prefix_sei_nut。当可伸缩嵌套式sei消息包括的sei消息的payloadtype等于132(解码图像哈希)时,包括可伸缩嵌套式sei消息的sei nal单元的nal_unit_type应设置为suffix_sei_nut。[0156]nesting_ols_flag可以设置为1,表示可伸缩嵌套的sei消息应用于特定ols上下文中的特定层。nesting_ols_flag可以设置为0,表示可伸缩嵌套的sei消息通常应用于特定层(例如,不在ols的上下文中)。[0157]码流一致性可以要求对nesting_ols_flag的值应用以下限制。当可伸缩嵌套式sei消息包括的sei消息的payloadtype等于0(缓冲周期)、1(图像定时)或130(解码单元信息)时,nesting_ols_flag的值应等于1。当可伸缩嵌套式sei消息包括的sei消息的payloadtype等于vclassociatedseilist中的值时,nesting_ols_flag的值应等于0。[0158]nesting_num_olss_minus1+1表示应用可伸缩嵌套的sei消息的ols数量。nesting_num_olss_minus1的取值范围可以为0到totalnumolss–1(包括端值)。nesting_ols_idx_delta_minus1[i]用于推导变量nestingolsidx[i],该变量表示可伸缩嵌套的sei消息在nesting_ols_flag等于1时应用于的第i个ols的ols索引。nesting_ols_idx_delta_minus1[i]的取值范围应该为0到totalnumolss–2(包括端值)。变量nestingolsidx[i]可以推导如下:[0159][0160]nesting_num_ols_layers_minus1[i]+1表示可伸缩嵌套的sei消息在第nestingolsidx[i]个ols上下文中应用的层数。nesting_num_ols_layers_minus1[i]的取值范围应该为0到numlayersinols[nestingolsidx[i]]–1(包括端值)。[0161]nesting_ols_layer_idx_delta_minus1[i][j]用于推导变量nestingolslayeridx[i][j],该变量表示可伸缩嵌套的sei消息在nesting_ols_flag等于1时应用于第nestingolsidx[i]个ols的上下文的第j个层的ols层索引。nesting_ols_layer_idx_delta_minus1[i]的取值范围应该为0到numlayersinols[nestingolsidx[i]]–2(包括端值)。[0162]变量nestingolslayeridx[i][j]可以推导如下:[0163][0164]0到nesting_num_olss_minus1(包括端值)范围内的i的所有layeridinols[nestingolsidx[i]][nestingolslayeridx[i][0]]值中的最小值应等于当前sei nal单元(例如,包括可伸缩嵌套式sei消息的sei nal单元)的nuh_layer_id。nesting_all_layers_flag可以设置为1,表示可伸缩嵌套的sei消息通常应用于nuh_layer_id大于或等于当前sei nal单元的nuh_layer_id的所有层。nesting_all_layers_flag可以设置为0,表示可伸缩嵌套的sei消息可以或通常不可以应用于nuh_layer_id大于或等于当前sei nal单元的nuh_layer_id的所有层。[0165]nesting_num_layers_minus1+1表示可伸缩嵌套的sei消息通常应用于的层数。nesting_num_layers_minus1的取值范围应为0到vps_max_layers_minus1–generallayeridx[nuh_layer_id](包括端值),其中,nuh_layer_id为当前sei nal单元的nuh_layer_id。nesting_layer_id[i]表示nesting_all_layers_flag等于0时可伸缩嵌套的sei消息通常应用于的第i层的nuh_layer_id值。nesting_layer_id[i]的值应大于nuh_layer_id,其中,nuh_layer_id是当前sei nal单元的nuh_layer_id。[0166]当nesting_ols_flag等于1时,变量nestingnumlayers表示可伸缩嵌套的sei消息通常应用于的层数,以及取值范围为0到nestingnumlayers–1(包括端值)的i的列表nestinglayerid[i]表示可伸缩嵌套的sei消息通常应用于的层的nuh_layer_id值列表,这些变量推导如下,其中,nuh_layer_id为当前sei nal单元的nuh_layer_id:[0167][0168]nesting_num_seis_minus1+1表示可伸缩嵌套的sei消息的数量。nesting_num_seis_minus1的取值范围应该为0到63(包括端值)。nesting_zero_bit应设置为0。[0169]图8为示例性视频译码设备800的示意图。如本文所述,视频译码设备800适合于实现所公开的示例/实施例。视频译码设备800包括下行端口820、上行端口850和/或收发单元(tx/rx)810。收发单元810包括发送器和/或接收器,用于通过网络在上行和/或下行进行数据通信。视频译码设备800还包括:处理器830,包括用于处理数据的逻辑单元和/或中央处理单元(central processing unit,cpu);和用于存储数据的存储器832。视频译码设备800还可以包括与上行端口850和/或下行端口820耦合的电组件、光电(optical-to-electrical,oe)组件、电光(electrical-to-optical,eo)组件,和/或无线通信组件,用于通过电通信网络、光通信网络或无线通信网络进行数据通信。视频译码设备800还可以包括用于与用户传送数据的输入和/或输出(i/o)设备860。i/o设备860可以包括输出设备,例如显示视频数据的显示器、输出音频数据的扬声器等。i/o设备860还可以包括键盘、鼠标、轨迹球等输入设备和/或与上述输出设备进行交互的对应接口。[0170]处理器830通过硬件和软件实现。处理器830可以实现为一个或多个cpu芯片、一个或多个核(例如,作为多核处理器)、一个或多个现场可编程门阵列(field-programmable gate array,fpga)、一个或多个专用集成电路(application specific integrated circuit,asic)以及一个或多个数字信号处理器(digital signal processor,dsp)。处理器830与下行端口820、tx/rx 810、上行端口850和存储器832通信。处理器830包括译码模块814。译码模块814实现本文描述的公开实施例,例如方法100、方法900和/或方法1000,它们可以采用多层视频序列600和/或码流700。译码模块814还可以实现本文所描述的任何其它方法/机制。此外,译码模块814可以实现编解码系统200、编码器300、解码400和/或hrd 500。例如,译码模块814可以使用信号和/或读取本文所述的各种参数。此外,译码模块可以用于根据这些参数对视频序列进行编码和/或解码。因此,本文描述的信令改变可以提高译码模块814中的效率和/或避免错误。因此,译码模块814可以用于执行解决上述一个或多个问题的机制。因此,译码模块814使视频译码设备800在译码视频数据时具备其它功能和/或更高的译码效率。因此,译码模块814改进了视频译码设备800的功能,并解决了视频译码领域特有的问题。此外,译码模块814可以将视频译码设备800变换到不同的状态。或者,译码模块814可以实现为存储在存储器832中并由处理器830执行的指令(例如,存储在非瞬时性介质中的计算机程序产品)。[0171]存储器832包括一个或多个存储器类型,如磁盘、磁带机、固态驱动器、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、闪存、三态内容寻址存储器(ternary content-addressable memory,tcam)、静态随机存取存储器(static random-access memory,sram)等。存储器832可以用作溢出数据存储设备,以在选择程序用于执行时存储此类程序,并存储程序执行期间读取的指令和数据。[0172]图9为通过将sei消息的temporalid限制于码流中而将视频序列编码到码流(例如,码流700)中的示例性方法900的流程图。方法900可以由编解码系统200、编码器300和/或视频译码设备800等编码器在执行方法100时执行。此外,方法900可以在hrd 500上操作,因此可以在多层视频序列600上执行一致性测试。[0173]方法900可以开始于:编码器接收包括视频序列,并根据用户输入等确定将所述视频序列编码到多层码流中。在步骤901中,编码器将一个或多个vcl nal单元中的经编码图像编码到码流中。例如,经编码图像可以包括在层中的au中。此外,编码器可以将包括经编码图像的一个或多个层编码到多层码流中。层可以包括具有相同层id的vcl nal单元和关联的非vcl nal单元的集合。例如,当vcl nal单元集都具有特定值nuh_layer_id时,vcl nal单元集是层的一部分。层可以包括vcl nal单元集,这些vcl nal单元包括经编码图像的视频数据,以及用于对这些图像进行译码的任何参数集。一个或多个层可以是输出层。非输出层的层被编码以支持重建输出层,但这些支持层并不打算在解码器上输出。这样,编码器可以编码层的各种组合,以便根据请求传输到解码器。该层可以根据需要传输,以允许解码器根据网络条件、硬件能力和/或用户设置获得视频序列的不同表示。[0174]在步骤903中,编码器可以将一个或多个非vcl nal单元编码到码流中。例如,层和/或层集还包括各种非vcl nal单元。非vcl nal单元与一组都具有特定nuh_layer_id值的vcl nal单元关联。具体地,对非vcl nal单元进行编码,使得当非vcl nal的nal_unit_type表示sei消息包括在非vcl nal中时,非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的au的temporalid。换句话说,sei消息可以与sei消息应用的图像包括在相同的au中。因此,包括在非vcl nal单元中的sei消息的temporalid被限制等于包括sei消息/非vcl nal单元的au的temporalid。在一些示例中,sei消息是前缀sei消息,因此非vcl nal的nal_unit_type等于prefix_sei_nut。在一些示例中,sei消息是后缀sei消息,因此非vcl nal的nal_unit_type等于suffix_sei_nut。[0175]非vcl nal单元的temporalid可以由非vcl nal单元中的语法元素nuh_temporal_id_plus1指定。同样,au的temporalid可以由包括au中经编码图像的条带的vcl nal单元中的语法元素nuh_temporal_id_plus1指定。对于同一au中的所有vcl nal单元,vcl nal单元的temporalid被限制为相同。因此,对于同一au中的所有vcl nal单元,vcl nal单元的语法元素nuh_temporal_id_plus1被限制为相同。因此,包括sei消息的非vcl nal单元中的语法元素nuh_temporal_id_plus1的值与具有相同sei消息的同一au中的任一vcl nal单元中的语法元素nuh_temporal_id_plus1的值相同。非vcl nal单元的temporalid推导如下:[0176]temporalid=nuh_temporal_id_plus1–1。[0177]此外,au中的非vcl nal单元和vcl nal单元的nuh_temporal_id_plus1的值不可以被设置为0,因为会产生负的temporalid值。上述约束条件和/或要求确保码流符合(例如)vvc或一些其它标准,如本文所示修改。然而,编码器也可以能够在其不受如此限制的其它模式下运行,例如在不同标准或同一标准的不同版本下运行时。[0178]在步骤905中,编码器可以使用hrd根据sei消息,对码流执行一组码流一致性测试。一组码流一致性测试可以包括一个或多个一致性测试。例如,hrd可以使用temporalid和/或nuh_temporal_id_plus1的值将sei消息与图像关联。因此,hrd可以使用sei消息中的参数,对具有相同sei消息的同一au中的经编码图像执行一个或多个一致性测试。在步骤907中,编码器还可以存储码流,以将所述码流发送到解码器。编码器还可以根据需要向解码器发送码流。[0179]图10为从码流(例如,码流700)中解码视频序列的示例性方法1000的流程图,其中,所述码流中的sei消息的temporalid被限制。方法1000可以由编解码系统200、解码器400和/或视频译码设备800等解码器在执行方法100时执行。此外,方法1000可以用于已经由hrd(例如hrd 500)检查一致性的多层视频序列600上。[0180]解码器开始接收表示多层视频序列的经译码数据的码流,例如作为方法900的结果或响应于解码器的请求时,开始执行方法1000。在步骤1001中,解码器接收码流,所述码流包括一个或多个vcl nal单元中的经编码图像和非vcl nal单元。例如,经编码图像可以包括在au中。此外,码流可以包括一个或多个层,所述一个或多个层包括经编码图像。层可以包括具有相同层id的vcl nal单元和关联的非vcl nal单元的集合。例如,当vcl nal单元集都具有特定值nuh_layer_id时,vcl nal单元集是层的一部分。层可以包括vcl nal单元集,这些vcl nal单元包括经编码图像的视频数据,以及用于对这些图像进行译码的任何参数集。一个或多个层可以是输出层。非输出层的层被编码以支持重建输出层,但这些支持层并不打算输出。这样,解码器可以根据网络条件、硬件能力和/或用户设置获得视频序列的不同表示。层还包括各种非vcl nal单元。非vcl nal单元与一组都具有特定nuh_layer_id值的vcl nal单元关联。[0181]具体地,将非vcl nal单元编码到码流中,使得当非vcl nal的nal_unit_type表示sei消息包括在非vcl nal中时,非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的au的temporalid。换句话说,sei消息可以与sei消息应用的图像包括在相同的au中。因此,包括在非vcl nal单元中的sei消息的temporalid被限制等于包括sei消息/非vcl nal单元的au的temporalid。在一些示例中,sei消息是前缀sei消息,因此非vcl nal的nal_unit_type等于prefix_sei_nut。在一些示例中,sei消息是后缀sei消息,因此非vcl nal的nal_unit_type等于suffix_sei_nut。[0182]非vcl nal单元的temporalid可以由非vcl nal单元中的语法元素nuh_temporal_id_plus1指定。因此,在步骤1002中,解码器可以根据非vcl nal单元中的语法元素nuh_temporal_id_plus1推导非vcl nal单元的temporalid。同样,au的temporalid可以由包括au中经编码图像的条带的vclnal单元中的语法元素nuh_temporal_id_plus1指定。对于同一au中的所有vcl nal单元,vcl nal单元的temporalid被限制为相同。因此,对于同一au中的所有vcl nal单元,vcl nal单元的语法元素nuh_temporal_id_plus1被限制为相同。因此,包括sei消息的非vcl nal单元中的语法元素nuh_temporal_id_plus1的值与具有相同sei消息的同一au中的任一vcl nal单元中的语法元素nuh_temporal_id_plus1的值相同。非vcl nal单元的temporalid推导如下:[0183]temporalid=nuh_temporal_id_plus1–1。[0184]此外,au中的非vcl nal单元和vcl nal单元的nuh_temporal_id_plus1的值不可以被设置为0,因为会产生负的temporalid值。[0185]在一个实施例中,当非vcl nal的nal_unit_type为上文所述的基于vvc或一些其它标准的sei消息时,视频解码器期望非vcl nal单元的temporalid被限制等于包括所述非vcl nal单元的au的temporalid。然而,如果解码器确定此条件不成立,则解码器可以检测到错误、发出错误信号、请求重新发送修订后的码流(或其一部分),或采取一些其它纠正措施来确保接收到一致的码流。[0186]在步骤1003中,解码器可以从vclnal单元中解码经编码图像,以产生经解码图像。例如,解码器可以使用temporalid和/或nuh_temporal_id_plus1的值将sei消息与图像关联。然后,解码器可以在对经编码图像进行解码时根据需要使用sei消息。在步骤1005中,解码器可以转发经解码图像以作为解码视频序列的一部分进行显示。[0187]图11为使用码流对视频序列进行译码的示例性系统1100的示意图,其中,所述码流中的sei消息的temporalid被限制。系统1100可以由编解码系统200、编码器300、解码器400和/或视频译码设备800等编码器和解码器实现。此外,系统1100可以采用hrd 500对多层视频序列600和/或码流700执行一致性测试。此外,系统1100可以用于实现方法100、方法900和/或方法1000。[0188]系统1100包括视频编码器1102。视频编码器1102包括编码模块1103,用于将一个或多个vcl nal单元中的经编码图像编码到码流中。编码模块1103还用于:将非vcl nal单元编码到码流中,使得当非vcl nal的nal_unit_type为sei消息时,非vcl nal单元的temporalid被限制等于包括非vcl nal单元的au的temporalid。视频编码器1102还包括hrd模块1105,用于根据sei消息对码流执行一组码流一致性测试。视频编码器1102还包括存储模块1106,用于存储码流,以将所述码流发送到解码器。视频编码器1102还包括发送模块1107,用于将码流发送到视频解码器1110。视频编码器1102还可以用于执行方法900的任一步骤。[0189]系统1100还包括视频解码器1110。视频解码器1110包括:接收模块1111,用于接收包括一个或多个vcl nal单元中的经编码图像和非vcl nal单元的码流,其中,当非vcl nal单元的nal_unit_type为sei消息时,非vcl nal单元的temporalid被限制等于包括非vcl nal单元的au的temporalid。视频解码器1110还包括:解码模块1113,用于从vcl nal单元中解码经编码图像,以生成经解码图像。视频解码器1110还包括转发模块1115,用于转发经解码图像,以显示为解码视频序列的一部分。视频解码器1110还可以用于执行方法1000的任一步骤。[0190]当第一组件和第二组件之间除了线、迹或其它介质之外没有其它中间组件时,第一组件直接与第二组件耦合。当第一组件和第二组件之间存在线、迹或其它介质之外的其它中间组件时,第一组件间接与第二组件耦合。术语“耦合”及其变体包括直接耦合和间接耦合。除非另有说明否则使用术语“约”是指以下描述的数字的±10%。[0191]还应当理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应当理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或合并。[0192]虽然本发明提供多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或组件可以在另一系统中组合或集成,或者某些特征可以省略或不实现。[0193]此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法进行组合或集成。其它改变、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离本文所公开的精神和范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部