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

经解码图片缓冲器(DPB)操作和接入单元定界符(AUD)

文献发布时间:2023-06-19 18:32:25


经解码图片缓冲器(DPB)操作和接入单元定界符(AUD)

技术领域

本申请整体涉及视频编码和解码,并且更具体地,涉及改进与经解码图片缓冲器(DPB)和接入单元定界符(AUD)相关的视频译码技术。

背景技术

数字视频功能可以被结合到范围广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能手机”、视频电话会议设备、视频流传输设备等。此类设备允许处理和输出视频数据以供消费。数字视频数据包含大量数据以满足消费者和视频提供者的需求。例如,视频数据的消费者希望具有高保真度、分辨率、帧速率等的最高质量的视频。因此,满足这些需求所需的大量视频数据给通信网络以及处理和存储视频数据的设备带来了负担。

数字视频设备可以实现视频译码技术来压缩视频数据。视频译码根据一种或多种视频译码标准或格式执行。例如,视频译码标准或格式包括多功能视频译码(VVC)、高效视频译码(HEVC)、高级视频译码(AVC)、MPEG-2第2部分译码(MPEG代表运动图像专家组)等,以及专有视频编解码器/格式,诸如由开放媒体联盟开发的AOMedia video 1(AV1)。视频译码通常使用利用视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测等)。视频译码技术的一个目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的劣化。随着不断发展的视频服务变得可用,需要具有更好译码效率的译码技术。

发明内容

公开了用于经解码图片缓冲器(DPB)操作和在比特流提取之后重写接入单元定界符(AUD)的系统、方法和计算机可读介质。根据至少一个示例,提供了一种用于处理视频的方法,诸如执行经解码图片缓冲器(DPB)操作和在比特流提取之后重写接入单元定界符(AUD)。一种示例方法可以包括:将与接入单元(AU)相关联的一个或多个图片存储在经解码图片缓冲器(DPB)中,该AU包括第一多个图片,该第一多个图片对应于多个视频译码层;在从经译码图片缓冲器(CPB)中移除与AU相关联的第二多个图片中的每个图片之后,从DPB中移除与AU相关联的该一个或多个图片中的至少一个图片;以及将从CPB中移除的第二多个图片中的每个图片存储在DPB中。

根据至少一个示例,提供了一种非暂时性计算机可读介质,其包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器:将与接入单元(AU)相关联的一个或多个图片存储在经解码图片缓冲器(DPB)中,该AU包括图片的第一多个图片,该图片的第一多个图片对应于多个视频译码层;在从经译码图片缓冲器(CPB)中移除第二多个图片中的每个图片之后,从DPB中移除与AU相关联的该一个或多个图片中的至少一个图片;以及将从CPB中移除的第二多个图片中的每个图片存储在DPB中。

根据至少一个示例,提供了一种用于处理视频的装置,诸如执行经解码图片缓冲器(DPB)操作和在比特流提取之后重写接入单元定界符(AUD)。一种示例装置可以包括至少一个存储器和耦接到存储器的一个或多个处理器(例如,在电路中实现)。该一个或多个处理器被配置为:将与接入单元(AU)相关联的一个或多个图片存储在经解码图片缓冲器(DPB)中,该AU包括第一多个图片,该第一多个图片对应于多个视频译码层;在从经译码图片缓冲器(CPB)中移除第二多个图片中的每个图片之后,从DPB中移除与AU相关联的该一个或多个图片中的至少一个图片;以及将从CPB中移除的第二多个图片中的每个图片存储在DPB中。

根据至少一个示例,提供了另一种用于处理视频的装置,诸如执行经解码图片缓冲器(DPB)操作和在比特流提取之后重写接入单元定界符(AUD)。该装置的示例可以包括:用于将与接入单元(AU)相关联的一个或多个图片存储在经解码图片缓冲器(DPB)中的部件,该AU包括第一多个图片,该第一多个图片对应于多个视频译码层;用于在从经译码图片缓冲器(CPB)移除第二多个图片中的每个图片之后,从DPB中移除与AU相关联的该一个或多个图片中的至少一个图片的部件;以及用于将从CPB移除的第二多个图片中的每个图片存储在DPB中的部件。

在一些方面,上述方法、非暂时性计算机可读介质和装置可以在从CPB中移除每个图片的最后一个解码单元(DU)之后,从DPB中移除该一个或多个图片中的该至少一个图片。

在一些方面,上述方法、非暂时性计算机可读介质和装置可以标记用于从DPB中移除的DPB中的该一个或多个图片中的该至少一个图片;以及基于DPB中的该一个或多个图片中的该至少一个图片的标记,从DPB中移除该一个或多个图片中的该至少一个图片。

在一些方面,上述方法、非暂时性计算机可读介质和装置可以设置与该一个或多个图片中的该至少一个图片相关联的相应标志,该相应标志指示该一个或多个图片中的该至少一个图片被设置为用于从DPB输出。

在一些示例中,DPB具有大小限制,该大小限制经由定义DPB的大小限制的语法元素来信令通知。在一些情况下,大小限制小于与AU相关联的第一多个图片的至少一部分。

在一些示例中,从DPB中移除一个或多个图片中的至少一个图片,并且在DPB的使用存储量达到DPB的大小限制之前,将第二多个图片中的每个图片存储在DPB中。

在一些情况下,存储在DPB中的该一个或多个图片可以包括参考图片和/或经解码图片。在一些情况下,从DPB中移除的该一个或多个图片中的该至少一个图片可以包括来自多个视频译码层中的同一层的不同图片。在一些情况下,从DPB中移除的该一个或多个图片中的该至少一个图片可以包括来自多个视频译码层中的不同层的不同图片。

在一些示例中,多个视频译码层中的每个视频译码层与来自DPB的相同输出时间相关联。

在一些方面,上述方法、非暂时性计算机可读介质和装置可以:从比特流的至少一部分中提取第二AU;确定第二AU仅包括一个或多个帧内随机接入点(IRAP)图片或仅包括一或多个逐步解码器刷新(GDR)图片;以及基于确定第二AU仅包括一个或多个IRAP图片或者仅包括一个或多个GDR图片,将与第二AU相关联的AU定界符(AUD)的标志的值设置为1。在一些示例中,当标志的值设置为1时指示第二AU仅包含一个或多个IRAP图片或仅包含一个或多个GDR图片。

在一些示例中,该标志包括AUD IRAP或GDR标志,并且第二AU包括单个视频译码层和/或单个经译码图片。在一些情况下,单个视频译码层和/或单个经译码图片可以仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

在一些情况下,将AUD的标志的值设置为1可以包括基于在提取第二AU之后确定第二AU是IRAP AU或GDR AU而将标志的值从0改变为1。

在一些方面,上述任何装置可以包括具有用于捕获一个或多个图片的相机的移动设备。在一些方面,上述任何装置可以包括用于显示一个或多个图片的显示器。

根据至少一个示例,提供了一种用于处理视频的方法。该方法可以包括:获得视频数据的比特流;从比特流的至少一部分中提取接入单元(AU);确定AU仅包括一个或多个帧内随机接入点图片或仅包括一或多个逐步解码器刷新图片;以及基于确定AU仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片,将与AU相关联的AU定界符的标志的值设置为1,其中具有值被设置为1的标志指示AU仅包含一个或多个IRAP图片或者仅包含一个或多个GDR图片。

根据至少一个示例,提供了一种非暂时性计算机可读介质,其包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器:获得视频数据的比特流;从比特流的至少一部分中提取接入单元(AU);确定AU仅包括一个或多个帧内随机接入点图片或仅包括一或多个逐步解码器刷新图片;以及基于确定AU仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片,将与AU相关联的AU定界符的标志的值设置为1,其中具有值被设置为1的标志指示AU仅包含一个或多个IRAP图片或者仅包含一个或多个GDR图片。

根据至少一个示例,提供了一种用于处理视频数据的装置。该装置可以包括至少一个存储器和耦接到存储器的一个或多个处理器(例如,在电路中实现)。该一个或多个处理器被配置为:获得视频数据的比特流;从比特流的至少一部分中提取接入单元(AU);确定AU仅包括一个或多个帧内随机接入点图片或仅包括一或多个逐步解码器刷新图片;以及基于确定AU仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片,将与AU相关联的AU定界符的标志的值设置为1,其中具有值被设置为1的标志指示AU仅包含一个或多个IRAP图片或者仅包含一个或多个GDR图片。

根据至少一个示例,提供了另一种用于处理视频数据的装置。该装置可以包括:用于获得视频数据的比特流的部件;用于从比特流的至少一部分中提取接入单元(AU)的部件;用于确定AU仅包括一个或多个帧内随机接入点图片或仅包括一或多个逐步解码器刷新图片的部件;以及用于基于确定所述AU仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片而将与AU相关联的AU定界符的标志的值设置为1的部件,其中具有值被设置为1的标志指示AU仅包含一个或多个IRAP图片或者仅包含一个或多个GDR图片。

在一些方面,标志包括AUD IRAP或GDR标志。

在一些方面,AU包括单个视频译码层和单个经译码图片中的至少一个。在一些情况下,单个视频译码层和单个经译码图片中的至少一个仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

在一些方面,上述方法、非暂时性计算机可读介质和装置可以:在提取AU之后,确定AU是IRAP AU或GDR AU;以及基于在提取AU之后确定AU是IRAP AU或GDR AU,将标志的值从0改变为1。

本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在孤立于确定所要求保护的主题的范围来使用。通过参考本专利的整个说明书的适当部分、任何或全部附图以及每个权利要求,应当能够理解本主题。

通过参考以下说明书、权利要求书和附图,前述以及其他特征和实施例将变得更加显而易见。

附图说明

为了描述可以获得本公开的各种优点和特征的方式,将通过参考本发明的具有实施例来呈现对上述原理的更特定的描述,且具体实施例在附图中示出。应理解这些附图仅描绘了本公开的示例实施例,而不应被认为限制其范围,将通过使用附图以附加的特征和细节来描述和解释本文的原理,其中:

图1是示出根据本公开的一些示例的编码设备和解码设备的示例的框图;

图2A是示出根据本公开的一些示例的用于merge模式的示例空间相邻运动向量候选的概念图;

图2B是示出根据本公开的一些示例的用于高级运动向量预测(AMVP)模式的示例空间相邻运动向量候选的概念图;

图3A是示出根据本公开的一些示例的示例时间运动向量预测子(TMVP)候选的概念图;

图3B是示出根据本公开的一些示例的运动向量缩放的示例的概念图;

图4A是示出根据本公开的一些示例的用于估计当前译码单元的运动补偿参数的当前译码单元的相邻样本的示例的概念图;

图4B是示出根据本公开的一些示例的用于估计当前译码单元的运动补偿参数的参考块的相邻样本的示例的概念图;

图5是示出根据本公开的一些示例的用于解码器图片缓冲器操作的示例过程的流程图;

图6是示出根据本公开的一些示例的用于在比特流提取之后重写接入单元定界符的示例过程的流程图;

图7是示出根据本公开的一些示例的示例视频编码设备的框图;以及

图8是示出根据本公开的一些示例的示例视频解码设备的框图。

具体实施方式

下面提供本公开的某些方面和实施例。对于本领域技术人员将显而易见的是,这些方面和实施例中的一些可以独立地应用,且它们中的一些可以相结合地应用。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本申请的实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述并非旨在作为限制性的。

随后的描述仅提供示例性实施例,并且并不旨在限制本公开的范围、适用性或配置。相反,对示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的有用描述。应当理解的是,在不脱离所附权利要求书所阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。

视频译码设备实施视频压缩技术以有效地对视频数据进行编码和解码。视频压缩技术可以包括应用不同的预测模式,包括空间预测(例如,帧之内的预测(intra-frameprediction)或帧内预测(intra-prediction))、时间预测(例如,帧之间的预测(inter-frame prediction)或帧间预测(inter-prediction))、层间预测(跨视频数据的不同层)和/或其他预测技术,以减少或消除视频序列中固有的冗余。视频编码器可以将原始视频序列的每个图片分割成被称为视频块或译码单元(在下文更详细描述)的矩形区域。这些视频块可以使用特定的预测模式进行编码。

可以以一种或多种方式将视频块划分为一组或多组更小的块。块可以包括译码树块、预测块、变换块或其他合适的块。除非另有说明,否则一般对“块”的引用可以指这样的视频块(例如,译码树块、译码块、预测块、变换块或其他适当的块或子块,如普通技术人员所理解的)。此外,这些块中的每一种在本文中还可互换地称为“单元”(例如,译码树单元(CTU)、译码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可以指示在比特流中被编码的译码逻辑单元,而块可以指示过程所针对的视频帧缓冲器的一部分。

对于帧间预测模式,视频编码器可以在位于另一个时间位置的帧(或图片)中搜索与正被编码的块相似的块,该帧(或图片)被称为参考帧或参考图片。视频编码器可以将搜索限制在距要被编码的块的特定空间位移。可以使用包括水平位移分量和垂直位移分量的二维(2D)运动向量来定位最佳匹配。对于帧内预测模式,视频编码器可以使用空间预测技术基于来自同一图片内先前编码的相邻块的数据来形成预测块。

视频编码器可以确定预测误差。例如,预测可以被确定为正在被编码的块与预测块中的像素值之间的差。预测误差也可以称为残差。视频编码器还可以对预测误差应用变换(例如,离散余弦变换(DCT)或其他合适的变换)来生成变换系数。在变换之后,视频编码器可以量化该变换系数。经量化的变换系数和运动向量可以使用语法元素来表示,并且与控制信息一起形成视频序列的经译码表示。在一些情况下,视频编码器可以对语法元素进行熵译码,从而进一步减少表示它们所需要的比特数。

视频解码器可以使用上面讨论的语法元素和控制信息来构造预测数据(例如,预测块)以用于对当前帧进行解码。例如,视频解码器可以将经预测的块和经压缩的预测误差相加。视频解码器可以通过使用经量化系数对变换基函数进行加权来确定经压缩的预测误差。重构帧与原始帧之间的差被称为重构误差。

在一些方面,本文描述了用于经解码图片缓冲器(DPB)操作和在比特流提取之后重写接入单元定界符(AUD)的系统、装置、过程(也称为方法)和计算机可读介质(本文统称为“系统和技术”)。DPB是用于存储用于在译码过程中预测当前图片的重构参考图片的缓冲器。DPB最多可以存储一定数量的图片,其中可以包括参考图片,在一些情况下,还可以包括当前图片。在一些情况下,可以经由定义DPB最大大小的语法元素来信令通知DPB的大小。在一些示例中,由于DPB的大小有限,可以使用一个称为“调出(bumping)”的过程从DPB中移除或“调出(bump)”图片。

为了指示DPB中的图片应该从DPB中移除还是保留在DPB中以供将来使用/参考,可以对DPB中图片进行标记(例如,加标志、加标签等)。图片标记可以指定DPB中的特定图片是否可以被移除或被保留在DPB中。在一些示例中,图片标记可以指定是否要输出某图片,这可能会触发将该图片调出DPB。如果不需要参考DPB中的某图片来预测当前图片,则可以将该图片标记为从DPB中移除。另一方面,如果该图片要用作参考图片来预测一个或多个其他图片,则可以将该图片标记为保留在DPB中。在一些情况下,如果DPB中的某图片仍需要由解码器输出和/或由于图片呈现顺序尚未准备好显示,则该图片也可以被标记为保留在DPB中。

还可以实施附加的调出以从DPB中移除图片,以便为其他图片释放DPB中的空间。例如,如果DPB已满,并且需要将当前图片存储在DPB中以进行解码,则可以使用附加调出来移除DPB中的一个或多个图片,以将当前图片存储在DPB中。因此,附加的调出过程可以确保DPB中的至少一个图片被移除,以为一个或多个其他图片释放DPB中的空间。然而,视频译码标准并没有为AU中的每个图片调用或实现附加的调出。相反,视频译码标准可以在对AU中的最后一个图片进行译码之后调用或实现附加的调出。在许多情况下,在对AU中的最后一个图片进行处理和/或将其存储在DPB中之前,DPB可能已变满。因此,DPB将不能存储任何新的当前图片和/或参考图片,这可能导致译码过程中的错误和/或失败。

例如,VVC可以实现多层译码,其中DPB在不同的图片层之间是公共的或共享的。AU可以包括属于不同层的图片集合,并且包含与用于从DPB输出的相同时间相关联的经译码图片。此外,仅当AU的最后一个图片或解码单元(DU)从经译码图片缓冲器(CPB)中移除时,才执行附加的调出。然而,在处理AU中的所有层之前,DPB可能会变满。由于当从CPB中移除AU的最后一个图片或DU时执行附加的调出过程,因此附加的调出过程不会防止在处理AU的所有图片之前DPB变满。因此,DPB将没有空间来存储与AU中的任何剩余层相关联的当前图片。这可能导致AU译码过程中的错误和/或失败。

本文描述的系统和技术允许在AU的每个图片之后或每个图片的最后一个DU之后调用附加的调出过程。例如,当从CPB中移除当前图片的最后一个DU时,可以为AU调用附加的调出。在一些示例中,在从CPB中移除每个当前图片或每个图片的最后一个DU之后,可以将DPB中的一个或多个图片标记为从DPB中输出/移除。在从CPB中移除每个当前图片或每个图片的最后一个DU之后,对一个或多个图片的标记可以触发附加的调出以从DPB中移除一个或多个图片。这可以确保DPB每次需要存储AU的图片时都有空间,并且可以防止由于在将最后一个图片存储在DPB中进行处理之前DPB变满而导致的上述错误和失败。

本文描述的系统和技术可以应用于任何现有的视频编解码器(例如,高效视频译码(HEVC)、高级视频译码(AVC)或其他合适的现有视频编解码器),和/或可以是针对正在开发的任何视频译码标准和/或未来的视频译码标准的有效译码工具,例如多功能视频译码(VVC)、联合探索模型(JEM)、VP9、AV1格式/编解码器和/或其他正在开发或将要开发的视频译码标准。

图1是示出包括编码设备104和解码设备112的示例系统100的框图。编码设备104可以是源设备的一部分,而解码设备112可以是接收设备的一部分。源设备和/或接收设备可以包括电子设备,诸如移动或固定电话手持机(例如,智能手机、蜂窝电话等)、台式计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流传输设备、互联网协议(IP)相机或任何其他合适的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的一个或多个无线收发器。本文描述的译码技术适用于各种多媒体应用中的视频译码,包括流传输视频传输(例如,通过互联网)、电视广播或传输、对数字视频进行编码以用于存储在数据存储介质上、对存储在数据存储介质上的数字视频进行解码和/或其他应用。如本文所使用的,术语译码可以指编码和/或解码。在一些示例中,系统100可以支持单向或双向视频传输以支持诸如视频会议、视频流传输、视频回放、视频广播、游戏和/或视频电话之类的应用。

编码设备104(或编码器)可用于使用视频译码标准、格式、编解码器或协议对视频数据进行编码,以生成经编码视频比特流。视频译码标准和格式/编解码器的示例包括ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-TH.262或ISO/IEC MPEG-2 Visual、ITU-TH.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(也称为ISO/IEC MPEG-4 AVC)(包括其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展)、高效视频译码(HEVC)或ITU-T H.265以及多功能视频译码(VVC)或ITU-T H.266。存在处理多层视频译码的各种HEVC扩展,包括范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)以及可缩放扩展(SHVC)。HEVC及其扩展已经由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频译码联合协作团队(JCT-VC)和3D视频译码扩展开发联合协作团队(JCT-3V)开发。VP9、由开放媒体联盟(AOMedia)开发的AOMedia Video 1(AV1)和基本视频译码(EVC)是可应用本文所述技术的其他视频译码标准。

本文描述的技术可以应用于任何现有的视频编解码器(例如,高效视频译码(HEVC)、高级视频译码(AVC)或其他合适的现有视频编解码器),和/或可以是针对正在开发的任何视频译码标准和/或未来的视频译码标准(例如VVC和/或正在开发或将要开发的其他视频译码标准)的有效译码工具。例如,可以使用诸如VVC、HEVC、AVC和/或其扩展的视频编解码器来执行本文描述的示例。然而,本文描述的技术和系统也可以适用于其他译码标准、编解码器或格式,诸如MPEG、JPEG(或其他用于静止图像的译码标准)、VP9、AV1、其扩展,或其他已经可用或尚未可用或已开发的合适译码标准。例如,在一些示例中,编码设备104和/或解码设备112可以根据专有视频编解码器/格式(诸如AV1、AVI的扩展和/或AV1的后续版本(例如AV2))或其他专有格式或行业标准来操作。因此,虽然本文描述的技术和系统可以参考特定视频译码标准进行描述,但是本领域普通技术人员将理解,该描述不应被解释为仅适用于该特定标准。

参考图1,视频源102可以将视频数据提供给编码设备104。视频源102可以是源设备的一部分,或者可以是除源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,摄像机、相机手机、视频手机等)、包含存储的视频的视频档案、提供视频数据的视频服务器或内容提供者、从视频服务器或内容提供者接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、此类源的组合或任何其他合适的视频源。

来自视频源102的视频数据可以包括一个或多个输入图片或帧。图片或帧是静止图像,在一些情况下,其为视频的一部分。在一些示例中,来自视频源102的数据可以是并非视频的一部分的静止图像。在HEVC、VVC和其他视频译码规范中,视频序列可以包括一系列图片。图片可以包括三个样本阵列,表示为SL、SCb和SCr。SL是亮度样本的二维阵列,SCb是Cb色度样本的二维阵列,并且SCr是Cr色度样本的二维阵列。色度样本在本文中也可以称为“色度(chroma)”样本。像素可以指图片阵列中给定位置的所有三个分量(亮度和色度样本)。在其他情况下,图片可以是单色的,并且可以仅包括亮度样本阵列,在这种情况下,术语像素和样本可以互换使用。关于本文所描述的出于说明目的而涉及各个样本的示例技术,相同的技术可以应用于多个像素(例如,图片阵列中给定位置的所有三个样本分量)。关于本文描述的出于说明目的而涉及像素(例如,图片阵列中给定位置的所有三个样本分量)的示例技术,相同的技术可以应用于单独的样本。

编码设备104的编码器引擎106(或编码器)对视频数据进行编码以生成经编码的视频比特流。在一些示例中,经编码的视频比特流(或“视频比特流”或“比特流”)是一系列一个或多个经译码视频序列。经译码视频序列(CVS)包括一系列接入单元(AU),从在基础层中具有随机接入点图片且具有特定属性的AU开始,一直到并且不包括在基础层中具有随机接入点图片且具有特定属性的下一个AU。例如,启动CVS的随机接入点图片的特定属性可以包括等于1的RASL图片标志(例如,NoRaslOutputFlag)。否则,随机接入点图片(RASL标志等于0)不会启动CVS。接入单元(AU)包括一个或多个经译码图片和对应于共享相同输出时间的经译码图片的控制信息。图片的经译码切片在比特流级别被封装成称为网络抽象层(NAL)单元的数据单元。例如,HEVC视频比特流可以包括一个或多个CVS,CVS包括NAL单元。每个NAL单元都具有NAL单元标头。在一个示例中,标头对于H.264/AVC(多层扩展除外)是一字节,对于HEVC是两字节。NAL单元标头中的语法元素采用指定比特,因此对各种系统和传输层都是可见的,诸如传输流、实时传输(RTP)协议、文件格式等。

HEVC标准中存在两类NAL单元,包括视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括形成经译码视频比特流的经译码图片数据。例如,形成经译码视频比特流的比特序列存在于VCL NAL单元中。VCL NAL单元可以包括经译码图片数据的一个切片或切片段(如下所述),而非VCL NAL单元包括与一个或多个经译码图片相关的控制信息。在一些情况下,NAL单元可以称为分组。HEVC AU包括含有经译码图片数据的VCL NAL单元和对应于经译码图片数据的非VCL NAL单元(如果有的话)。除其他信息外,非VCL NAL单元可以包含具有与经编码视频比特流相关的高级信息的参数集合。例如,参数集合可以包括视频参数集合(VPS)、序列参数集合(SPS)和图片参数集合(PPS)。在一些情况下,比特流的每个切片或其他部分可以参考单个活动PPS、SPS和/或VPS,以允许解码设备112接入可用于对比特流的切片或其他部分进行解码的信息。

NAL单元可以包含形成视频数据的经译码表示(例如,经编码视频比特流、比特流的CVS等)的比特序列,诸如视频中图片的经译码表示。编码器引擎106通过将每个图片分分割成多个切片来生成图片的经译码表示。一个切片独立于其他切片,使得该切片中的信息在无需依赖于来自同一图片内的其他切片的数据的情况下进行译码。一个切片包括一个或多个切片段,该一个或多个切片段包括独立切片段,并且如果存在的话,包括一个或多个依赖于先前切片段的从属切片段。

在HEVC中,切片随后被分割为亮度样本和色度样本的译码树块(CTB)。亮度样本的CTB和色度样本的一个或多个CTB以及样本的语法被称为译码树单元(CTU)。CTU也可以被称为“树块”或“最大译码单元”(LCU)。CTU是用于HEVC编码的基本处理单元。CTU可以被拆分为多个不同大小的译码单元(CU)。CU包含被称为译码块(CB)的亮度和色度样本阵列。

亮度和色度CB可以进一步被拆分为预测块(PB)。PB是亮度分量或色度分量的样本块,其使用相同的运动参数进行帧间预测或帧内块复制(IBC)预测(当可用或启用时)。亮度PB和一个或多个色度PB与相关联的语法一起形成预测单元(PU)。对于帧间预测,运动参数集(例如,一个或多个运动向量、参考索引等)在每个PU的比特流中被信令通知,并用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可以称为运动信息。CB也可以被分割为一个或多个变换块(TB)。TB表示颜色分量的正方形样本块,在其上应用残差变换(在一些情况下为相同的二维变换)以对预测残差信号进行译码。变换单元(TU)表示亮度和色度样本的TB,以及相应的语法元素。下面将对变换译码进行更详细的描述。

CU的大小对应于译码模式的大小,并且可以是正方形的。例如,CU的大小可以包括8×8样本、16×16样本、32×32样本、64×64样本或相对于对应的CTU的大小的任何其他合适的大小。短语“N×N”在本文中用于指代视频块在垂直和水平维度方面的像素维度(例如,8像素×8像素)。块中的像素可以按行和列布置。在一些具体实施中,块在水平方向上可能与在垂直方向上具有不相同数量的像素。与CU相关联的语法数据可以描述例如CU到一个或多个PU的分割。在CU是由帧内预测模式编码还是帧间预测模式编码之间,分割模式可以不同。PU可以被分割为非正方形的形状。与CU相关联的语法数据还可以描述例如根据CTU将CU分割为一个或多个TU。TU的形状可以是正方形或非正方形。

根据HEVC标准,可以使用变换单元(TU)执行变换。TU可以针对不同的CU而异。TU的大小可以基于给定CU内的PU大小来设定。TU可以与PU大小相同或更小。在一些示例中,可以使用称为残差四叉树(RQT)的四叉树结构将对应于CU的残差样本细分为更小的单元。RQT的叶节点可以与TU相对应。可以变换与TU相关联的像素差值以产生变换系数。然后可以由编码器引擎106对变换系数进行量化。

一旦视频数据的图片被分割成CU,编码器引擎106就使用预测模式来预测每个PU。然后从原始视频数据中减去预测单元或预测块以获得残差(如下所述)。对于每个CU,可以使用语法数据在比特流内信令通知预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用图片内空间相邻样本之间的相关性。例如,通过使用帧内预测,从同一图片中的相邻图像数据预测每个PU,例如使用DC预测以找到PU的平均值、使用平面预测以将平面表面拟合到PU、使用方向预测以从相邻数据外推或使用任何其他合适类型的预测。帧间预测使用图片之间的时间相关性以便导出针对图像样本块的运动补偿预测。例如,通过使用帧间预测,使用运动补偿预测从一个或多个参考图片中的图像数据(按输出顺序在当前图片之前或之后)预测每个PU。例如,可以在CU级别做出是使用图片间预测还是图片内预测来对图片区域进行译码的决策。

编码器引擎106和解码器引擎116(下面更详细地描述)可以被配置为根据VVC进行操作。根据VVC,视频译码器(诸如编码器引擎106和/或解码器引擎116)将图片分割为多个译码树单元(CTU)(其中亮度样本的CTB和色度样本的一个或多个CTB以及样本的语法被称为CTU)。视频译码器可以根据树结构(诸如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)分割CTU。QTBT结构消除了多个分割类型的概念,诸如HEVC的CU、PU和TU之间的分离。QTBT结构包括两级,包括根据四叉树分割进行分割的第一级,以及根据二叉树分割进行分割的第二级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。

在MTT分割结构中,可以使用四叉树分割、二叉树分割以及一种或多种类型的三叉树分割来对块进行分割。三叉树分割是将一个块分为三个子块的分割。在一些示例中,三叉树分割将一个块分割为三个子块,而无需通过中心分割原始块。MTT中的分割类型(例如四叉树、二叉树和三叉树)可以是对称的或非对称的。

当根据AV1编解码器操作时,视频编码器200和视频解码器300可以被配置为以块的形式对视频数据进行译码。在AV1中,可以处理的最大译码块称为超级块。在AV1中,超级块可以是128×128亮度样本或64×64亮度样本。然而,在后续视频译码格式(例如,AV2)中,超级块可以由不同(例如,更大)的亮度样本大小来定义。在一些示例中,超级块是块四叉树的顶层。视频编码器200还可以将超级块分割成更小的译码块。视频编码器200可以使用正方形或非正方形分割将超级块和其他译码块分割成更小的块。非正方形块可以包括N/2×N、N×N/2、N/4×N和N×N/4块。视频编码器200和视频解码器300可以对每个译码块执行单独的预测和变换处理。

AV1还定义视频数据的图块。图块是可以独立于其他图块进行译码的超级块的矩形阵列。也就是说,视频编码器200和视频解码器300可以分别对图块内的译码块进行编码和解码,而无需使用来自其他图块的视频数据。然而,视频编码器200和视频解码器300可以跨图块边界执行滤波。图块的大小可以是一致的,也可以是不一致的。基于图块的译码可以实现编码器和解码器具体实施的并行处理和/或多线程。

在一些示例中,视频译码器可以使用单个QTBT或MTT结构来表示亮度和色度分量中的每一者,而在其他示例中,视频译码器可以使用两个或更多个QTBT或MTT结构,诸如一个QTBT/MTT结构用于亮度分量且另一个QTBT或MTT结构用于两个色度分量(或者两个QTBT和/或MTT结构用于相应的色度分量)。

视频译码器可以被配置为使用四叉树分割、、QTBT分割、MTT分割超级块分割或其他分割结构。

在一些示例中,图片的一个或多个切片被分配切片类型。切片类型包括帧间译码的切片(I切片)、帧间译码的P切片和/或帧间译码的B切片。I切片(例如,帧内译码的帧、可独立解码)是仅通过帧内预测进行译码的图片切片,因此是可独立解码的,因为I切片仅需要帧内的数据来预测切片的任何预测单元或预测块。P切片(单向预测帧)是可以用帧内预测和用单向帧间预测进行译码的图片切片。P切片内的每个预测单元或预测块都使用帧内预测或帧间预测进行译码。当应用帧间预测时,预测单元或预测块仅通过一个参考图片预测,因此参考样本仅来自一个帧的一个参考区域。B切片(双向预测帧)是可以用帧内预测和帧间预测(例如,双向预测或单向预测)进行译码的图片切片。B切片的预测单元或预测块可以根据两个参考图片进行双向预测,其中每个图片贡献一个参考区域并且两个参考区域的样本集合被加权(例如,具有相等的权重或具有不同的权重)以产生双向预测块的预测信号。如上所述,一个图片的各切片是独立译码的。在一些情况下,一个图片可以仅作为一个切片进行译码。

如上所述,图片的图片内预测利用图片内空间相邻样本之间的相关性。存在多个帧内预测模式(也称为“帧内模式”)。在一些示例中,亮度块的帧内预测包括35种模式,包括平面模式、DC模式和33种角度模式(例如,对角帧内预测模式和与对角帧内预测模式相邻的角度模式)。帧内预测的35种模式的索引如下表1所示。在其他示例中,可以定义更多帧内模式,包括可能尚未由33个角度模式表示的预测角度。在其他示例中,与角度模式相关联的预测角度可以不同于在HEVC中使用的那些。

表1–帧内预测模式和关联名称的规范

图片间预测使用图片之间的时间相关性以便导出针对图像样本块的运动补偿预测。通过使用平移运动模型,块在先前解码的图片(参考图片)中的位置由运动向量(Δx,Δy)指示,其中Δx指定参考块相对于当前块的位置的水平位移,而Δy指定参考块相对于当前块的位置的垂直位移。在一些情况下,运动向量(Δx,Δy)可以是整数样本精度(也称为整数精度),在这种情况下,运动向量指向参考帧的整数像素网格(或整数像素采样网格)。在一些情况下,运动向量(Δx,Δy)可以具有分数样本精度(也称为分数像素精度或非整数精度),以更准确地捕获底层对象的运动,而不受限于参考帧的整数像素网格。运动向量的精度可以通过运动向量的量化水平来表示。例如,量化水平可以是整数精度(例如,1像素)或分数像素精度(例如,1/4像素、1/2像素或其他子像素值)。当对应的运动向量具有分数样本精度时,对参考图片应用内插以导出预测信号。例如,可以对整数位置处可用的样本进行滤波(例如,使用一个或多个插值滤波器)以估计分数位置处的值。先前解码的参考图片由参考图片列表的参考索引(refIdx)指示。运动向量和参考索引可以称为运动参数。可以执行两种图片间预测,包括单向预测和双向预测。

通过使用双向预测的帧间预测(也称为双向帧间预测),两个运动参数集合(Δx

对于使用单向预测的帧间预测(也称为单向帧间预测),一个运动参数集合(Δx

PU可以包括与预测过程有关的数据(例如,运动参数或其他合适的数据)。例如,当使用帧内预测对PU进行编码时,PU可以包括描述PU的帧内预测模式的数据。作为另一示例,当使用帧间预测对PU进行编码时,PU可以包括定义PU的运动向量的数据。定义PU的运动向量的数据可以描述例如运动向量的水平分量(Δx)、运动向量的垂直分量(Δy)、运动向量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动向量指向的参考图片、参考索引、运动向量的参考图片列表(例如,列表0、列表1或列表C),或其任何组合。

Av1包括用于对视频数据的译码块进行编码和解码的两种通用技术。两种通用技术是帧内预测(例如,帧之内的预测或空间预测)和帧间预测(例如帧之间的预测或时间预测)。在AV1的上下文中,当使用帧内预测模式预测视频数据的当前帧的块时,视频编码器200和视频解码器300不使用来自视频数据的其他帧的视频数据。对于大多数帧内预测模式,视频编码设备104基于当前块中的样本值与从同一帧中的参考样本生成的预测值之间的差来对当前帧的块进行编码。视频编码设备104基于帧内预测模式确定从参考样本生成的预测值。

在使用帧内预测和/或帧间预测执行预测之后,编码设备104可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算对应于PU的残差值。残差值可以包括正被译码的当前像素块(PU)和用于预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,使用帧间预测或帧内预测)之后,编码器引擎106可以通过从当前块中减去由预测单元产生的预测块来生成残差块。残差块包括量化当前块的像素值和预测块的像素值之间的差的像素差值集合。在一些示例中,可以以二维块格式(例如,像素值的二维矩阵或阵列)来表示残差块。在这样的示例中,残差块是像素值的二维表示。

在执行预测之后可能剩余的任何残差数据都使用块变换进行变换,该块变换可以基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数或其任何组合。在一些情况下,可以将一个或多个块变换(例如,大小32×32、16×16、8×8、4×4或其他合适的大小)应用于每个CU中的残差数据。在一些实施例中,TU可以用于由编码器引擎106实现的变换和量化过程。具有一个或多个PU的给定CU还可以包括一个或多个TU。如下文进一步详细描述的,可以使用块变换将残差值变换成变换系数,并且随后可以使用TU来量化和扫描以产生用于熵译码的序列化变换系数。

在一些实施例中,在使用CU的PU进行帧内预测或帧间预测译码之后,编码器引擎106可以计算CU的TU的残差数据。PU可以包括空间域(或像素域)中的像素数据。TU可以包括在应用块变换之后的变换域中的系数。如前所述,残差数据可以对应于未经编码图片的像素和对应于PU的预测值之间的像素差值。编码器引擎106可以形成包括CU的残差数据的TU,然后可以变换TU以产生CU的变换系数。

编码器引擎106可以执行对变换系数的量化。量化通过对变换系数进行量化来提供进一步的压缩,以减少用于表示系数的数据量。例如,量化可以减少与一些或所有系数相关联的比特深度。在一个示例中,具有n比特值的系数可以在量化期间向下舍入为m比特值,其中n大于m。

一旦执行了量化,则经译码视频比特流就包括经量化的变换系数、预测信息(例如,预测模式、运动向量、块向量等)、分割信息和任何其他合适的数据,诸如其他语法数据。然后可以由编码器引擎106对经译码视频比特流的不同元素进行熵编码。在一些示例中,编码器引擎106可以利用预定义的扫描顺序来扫描经量化的变换系数以产生可以进行熵编码的序列化向量。在一些示例中,编码器引擎106可以执行自适应扫描。在扫描经量化的变换系数以形成向量(例如,一维向量)之后,编码器引擎106可以对向量进行熵编码。例如,编码器引擎106可以使用上下文自适应可变长度译码、上下文自适应二进制算术译码、基于语法的上下文自适应二进制算术译码、概率区间分割熵译码或另一种合适的熵编码技术。

编码设备104的输出110可以通过通信链路120将组成经编码视频比特流数据的NAL单元发送到接收设备的解码设备112。解码设备112的输入114可以接收NAL单元。通信链路120可以包括由无线网络、有线网络或有线和无线网络的组合提供的信道。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何合适的无线网络(例如,互联网或其他广域网、基于分组的网络、WiFi

在一些示例中,编码设备104可以将经编码视频比特流数据存储在存储108中。输出110可以从编码器引擎106或从存储108中检索经编码视频比特流数据。存储108可以包括多种分布式或本地接入的数据存储介质中的任何一种。例如,存储108可以包括硬盘驱动器、存储盘、闪存、易失性或非易失性存储器或用于存储经编码视频数据的任何其他合适的数字存储介质。存储器108还可以包括用于存储用于帧间预测的参考图片的经解码图片缓冲器(DPB)。在另一个示例中,存储108可以对应于文件服务器或可以存储由源设备生成的经编码视频的另一种中间存储设备。在这种情况下,包括解码设备112的接收设备可以通过流传输或下载从存储设备接入存储的视频数据。文件服务器可以是能够存储经编码视频数据并将该经编码视频数据发送到接收设备的任何类型的服务器。示例文件服务器包括Web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。接收设备可以通过任何标准数据连接(包括互联网连接)接入经编码视频数据。这可以包括适合接入存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储108的经编码视频数据的传输可以是流传输传输、下载传输或其组合。

解码设备112的输入114接收经编码视频比特流数据并且可以将视频比特流数据提供给解码器引擎116,或者提供给存储118以供解码器引擎116以后使用。例如,存储118可以包括用于存储用于帧间预测的参考图片的DPB。包括解码设备112的接收设备可以经由存储108接收要解码的经编码视频数据。可以根据诸如无线通信协议之类的通信标准来调制经编码视频数据,并且将其发送到接收设备。用于发送经编码视频数据的通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站或可用于促进从源设备到接收设备的通信的任何其他装备。

解码器引擎116可以通过熵解码(例如,使用熵解码器)和提取构成经编码视频数据的一个或多个经译码视频序列的元素来对经编码视频比特流数据进行解码。解码器引擎116随后可以对经编码视频比特流数据重新缩放和执行逆变换。残差数据随后被传递到解码器引擎116的预测阶段。解码器引擎116随后预测像素块(例如,PU)。在一些示例中,预测被添加到逆变换的输出(残差数据)。

视频解码设备112可以将经解码视频输出到视频目的地设备122,该视频目的地设备可以包括用于向内容消费者显示经解码视频数据的显示器或其他输出设备。在一些方面,视频目的地设备122可以是包括解码设备112的接收设备的一部分。在一些方面,视频目的地设备122可以是与接收设备不同的单独设备的一部分。

在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112还可以包括实现本文描述的译码技术所必需的其他硬件或软件,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC))、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可以集成为相应设备中的组合编码器/解码器(编解码器)的一部分。

图1中所示的示例系统是可以在本文中使用的一个说明性示例。用于使用本文描述的技术处理视频数据的技术可以由任何数字视频编码和/或解码设备执行。尽管本公开的技术通常由视频编码设备或视频解码设备执行,但这些技术还可由组合的视频编码器-解码器执行,通常称为“CODEC(编解码器)”。此外,本公开的技术还可由视频预处理器执行。源设备和接收设备仅仅是这样的译码设备的示例,其中源设备生成经译码视频数据以传输到接收设备。在一些示例中,源设备和接收设备可以以基本对称的方式操作,使得设备中的每一个都包括视频编码和解码组件。因此,示例系统可以支持视频设备之间的单向或双向视频传输,例如,用于视频流传输、视频回放、视频广播或视频电话。

HEVC标准的扩展包括多视图视频译码扩展,称为MV-HEVC,以及可缩放视频编码扩展,称为SHVC。MV-HEVC和SHVC扩展共享分层译码的概念,其中经编码视频比特流中包含不同的层。经译码视频序列中的每一层都通过唯一的层标识符(ID)寻址。层ID可以存在于NAL单元的标头中,以标识与NAL单元相关联的层。在MV-HEVC中,不同的层通常表示视频比特流中同一场景的不同视图。在SHVC中,提供了不同的可缩放层,它们以不同的空间分辨率(或图片分辨率)或不同的重构保真度表示视频比特流。可缩放层可以包括基础层(层ID=0)和一个或多个增强层(层ID=1,2,…,n)。基础层可以符合HEVC的第一版本的简档,并且表示比特流中的最低可用层。与基础层相比,增强层具有增加的空间分辨率、时间分辨率或帧速率和/或重构保真度(或质量)。增强层是分层次组织的,并可以(或可以不)依赖于较低层。在一些示例中,可以使用单个标准编解码器对不同层进行译码(例如,使用HEVC、SHVC或其他编码标准对所有层进行编码)。在一些示例中,可以使用多标准编解码器对不同层进行译码。例如,可以使用AVC对基础层进行译码,而可以使用对HEVC标准的SHVC和/或MV-HEVC扩展来对一个或多个增强层进行译码。

通常,一个层包括VCLNAL单元集合和相应的非VCLNAL单元集合。NAL单元被分配特定的层ID值。在层可以依赖于较低层的意义上,层可以是分层次的。层集合是指在比特流中表示的自包括的一组层,这意味着层集合中的层在解码过程中可以依赖于层集合中的其他层,但不依赖于任何其他层进行解码。因此,层集合中的层可以形成可以表示视频内容的独立比特流。可以通过子比特流提取过程的操作从另一个比特流中获得层集合中的该组层。当解码器想要根据特定参数进行操作时,层集合可以对应于要被解码的该组层。

如前所述,HEVC比特流包括一组NAL单元,包括VCL NAL单元和非VCL NAL单元。VCLNAL单元包括形成经译码视频比特流的经译码图片数据。例如,形成经译码视频比特流的比特序列存在于VCL NAL单元中。除其他信息外,非VCL NAL单元可以包含具有与经编码视频比特流相关的高级信息的参数集合。例如,参数集合可以包括视频参数集合(VPS)、序列参数集合(SPS)和图片参数集合(PPS)。参数集合的目标示例包括比特率效率、误差复原能力和提供系统层接口。每个切片参考单个活动PPS、SPS和VPS以接入解码设备112可用于对切片进行解码的信息。可以针对每个参数集合对标识符(ID)进行译码,包括VPS ID、SPS ID和PPS ID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每个切片标头包括PPS ID。通过使用ID,可以针对给定切片标识活动参数集合。

PPS包括适用于给定图片中所有切片的信息。因此,图片中的所有切片都参考同一个PPS。不同图片中的切片也可以参考相同的PPS。SPS包括适用于同一经译码视频序列(CVS)或比特流中的所有图片的信息。如前所述,经译码视频序列是一系列接入单元(AU),从在基础层中具有随机接入点图片(例如,瞬时解码参考(IDR)图片或断开链接接入(BLA)图片,或其他适当的随机接入点图片)开始且具有(上述)特定属性,一直到并且不包括在基础层中具有随机接入点图片且具有特定属性(或比特流的结尾)的下一个AU。SPS中的信息可以在经译码视频序列内的图片之间不改变。经译码视频序列中的图片可以使用相同的SPS。VPS包括适用于经译码视频序列或比特流中所有层的信息。VPS包括具有适用于整个经译码视频序列的语法元素的语法结构。在一些实施例中,VPS、SPS或PPS可以与经编码比特流一起在带内传输。在一些实施例中,VPS、SPS或PPS可以在与包含经译码视频数据的NAL单元不同的传输中带外传输。

本公开一般可提到“信令通知”某些信息,诸如语法元素。术语“信令通知”通常可以指对用于对经编码视频数据进行解码的语法元素和/或其他数据的值的传送。例如,视频编码设备104可以在比特流中信令通知语法元素的值。通常,信令通知是指在比特流中生成值。如上所述,视频源102可以基本上实时地或非实时地(诸如可能在将语法元素存储到存储108以供视频目的地设备122稍后检索时发生)将比特流传输到视频目的地设备122。

视频比特流还可以包括补充增强信息(SEI)消息。例如,SEI NAL单元可以是视频比特流的一部分。在一些情况下,SEI消息可以包含解码过程不需要的信息。例如,SEI消息中的信息对于解码器来对比特流的视频图片进行解码可能不是必需的,但解码器可以使用该信息来改进图片(例如,经解码的输出)的显示或处理。SEI消息中的信息可以是嵌入的元数据。在一个说明性示例中,解码器侧实体可以使用SEI消息中的信息来改善内容的可视性。在一些情况下,某些应用标准可能要求在比特流中存在此类SEI消息,以便可以为所有符合应用标准的设备带来质量改进(例如,帧兼容平面立体3DTV视频格式的帧封装SEI消息的携带,其中SEI消息针对视频的每一帧被携带,恢复点SEI消息的处理,在DVB中使用全萤幕扫描矩形SEI消息,以及许多其他示例)。

如上所述,对于每个块,运动信息集合(这里也称为运动参数)是可用的。运动信息集合包含前向和后向预测方向的运动信息。前向和后向预测方向是双向预测模式的两个预测方向,在这种情况下,术语“前向”和“后向”不一定具有几何意义。相反,“前向”和“后向”对应于当前图片的参考图片列表0(RefPicList0或L0)和参考图片列表1(RefPickList1或L1)。在一些示例中,当对于图片或切片只有一个参考图片列表可用时,只有RefPicList0可用,并且切片的每个块的运动信息总是前向的。

在一些情况下,运动向量及其参考索引被用于译码过程(例如,运动补偿)。这种具有相关联的参考索引的运动向量被表示为运动信息的单预测集合。对于每个预测方向,运动信息可以包含参考索引和运动向量。在一些情况下,为了简单起见,运动向量本身可以以假定其具有关联参考索引的方式来参考。参考索引用于标识当前参考图片列表(RefPicList0或RefPicList1)中的参考图片。运动向量具有水平分量和垂直分量,其提供从当前图片中的坐标位置到由参考索引所标识的参考图片中坐标的偏移。例如,参考索引可以指示应该用于当前图片中的块的特定参考图片,并且运动向量可以指示最佳匹配块(与当前块最佳匹配的块)在参考图片中处于参考图片中何处。

可以在视频译码标准中使用图片顺序计数(POC)来标识图片的显示顺序。尽管存在一个经译码视频序列内的两个图片可能具有相同POC值的情况,但这通常不会发生在经译码视频序列内。当比特流中存在多个经译码视频序列时,具有相同POC值的图片在解码顺序方面可能彼此更接近。图片的POC值可用于参考图片列表的构建、如HEVC中的参考图片集的导出以及运动向量缩放。

在H.264/AVC中,每个帧间宏块(MB)可以四种不同的方式进行分割,包括:一个16×16的MB分割;两个16×8的MB分割;两个8×16的MB分割;以及四个8×8的MB分割。一个MB中的不同MB分割对于每个方向(RefPicList0或RefPicList1)可能具有不同的参考索引值。在一些情况下,当一个MB未被分割为四个8×8的MB分割时,每个方向上每个MB分割只能有一个运动向量。在一些情况下,当一个MB被分割为四个8×8的MB分割时,每个8×8的MB分割可以进一步被分割为子块,在这种情况下,每个子块可以在每个方向上具有不同的运动向量。在一些示例中,有四种不同的方法可以由8×8的MB分割获得子块,包括:一个8×8子块;两个8×4子块;两个4×8子块;以及四个4×4子块。每个子块可以在每个方向上具有不同的运动向量。因此,运动向量存在于等于高于子块的级别中。

在AVC中,针对B切片中的跳过和/或直接模式,可以在MB级别或MB分割级别启用时间直接模式。对于每个MB分割,使用与当前块的RefPicList1[0]中的当前MB分割同位(co-located)的块的运动向量来导出运动向量。基于POC距离缩放同位块中的每个运动向量。

也可以在AVC中执行空间直接模式。例如,在AVC中,直接模式还可以预测来自空间邻居的运动信息。

如上所述,在HEVC中,切片中最大的译码单元被称为译码树块(CTB)。CTB包含四叉树,其节点是译码单元。在HEVC主简档中,CTB的大小的范围为16×16至64×64。在一些情况下,可以支持8×8的CTB大小。译码单元(CU)可以与CTB大小相同,并且小到8×8。在一些情况下,每个译码单元用一种模式进行译码。当CU被帧间译码时,CU可以被进一步分割为2个或4个预测单元(PU),或者当进一步的分割不适用时,可以仅成为一个PU。当一个CU中存在两个PU时,它们可以是CU一半大小的矩形或者是是1/4或3/4的CU大小的两个矩形。

当CU被帧间译码时,对于每个PU存在一个运动信息集合。此外,使用唯一的帧间预测模式对每个PU进行译码,以导出运动信息集合。

例如,对于HEVC中的运动预测,存在两种帧间预测模式,包括用于预测单元(PU)的merge模式和高级运动向量预测(AMVP)模式。跳过被认为是merge的一种特殊情况。在AMVP或merge模式中,为多个运动向量预测子保持运动向量(MV)候选列表。通过从MV候选列表中提取一个候选来生成当前PU的(一个或多个)运动向量以及merge模式中的参考索引。在一些示例中,可以将一个或多个缩放窗口偏移与存储的运动向量一起包括在MV候选列表中。

在将MV候选列表用于块的运动预测的示例中,可以由编码设备和解码设备分别构造MV候选列表。例如,MV候选列表可以在对块进行编码时由编码设备生成,并且可以在对块进行解码时由解码设备生成。与MV候选列表中的运动信息候选有关的信息(例如,与一个或多个运动向量有关的信息、与在一些情况下可以存储在MV候选列表中的一个或多个LIC标志有关的信息和/或其他信息)可以在编码设备和解码设备之间信令通知。例如,在merge模式中,可以将存储的运动信息候选的索引值从编码设备信令通知给解码设备(例如,以语法结构,诸如图片参数集合(PPS)、序列参数集合(SPS)、视频参数集合(VPS)、切片标头、在视频比特流中或与视频比特流分开发送的补充增强信息(SEI)消息和/或其他信令)。解码设备可以构造MV候选列表,并使用信令通知的参考或索引来从所构造的MV候选列表中获得一个或多个运动信息候选以用于运动补偿预测。例如,解码设备112可以构造MV候选列表,并使用来自索引位置的运动向量(以及在一些情况下的LIC标志)来进行块的运动预测。在AMVP模式的情况下,除了参考或索引之外,差值或残值也可以作为增量来信令通知。例如,对于AMVP模式,解码设备可以构造一个或多个MV候选列表,并将增量值应用于在执行对块的运动补偿预测时使用信令通知的索引值获得的一个或多个运动信息候选。

在一些示例中,MV候选列表最多包含五个用于merge模式的候选和两个用于AMVP模式的候选。在其他示例中,可以在用于merge模式和/或AMVP模式的MV候选列表中包括不同数量的候选。merge候选可以包含运动信息集合。例如,运动信息集合可以包括与参考图片列表(列表0和列表1)和参考索引两者相对应的运动向量。如果通过merge索引识别了merge候选,则将参考图片用于当前块的预测,以及确定相关联的运动向量。然而,在AMVP模式下,对于来自列表0或列表1的每个潜在预测方向,由于AMVP候选仅包括运动向量,因此需要明确地信令通知参考索引以及MV候选列表的MVP索引。在AMVP模式下,可以进一步细化预测的运动向量。

如上所述,merge候选对应于一个完整的运动信息集合,而AMVP候选仅包括针对特定预测方向和参考索引的一个运动向量。两种模式的候选类似地从相同的空间和时间相邻块导出。

在一些示例中,merge模式允许帧间预测的PU从包括从一组空间上相邻的运动数据位置中选择的运动数据位置和两个时间上同位的运动数据中的一个运动数据位置的帧间预测的PU继承相同的一个或多个运动向量、预测方向和一个或多个参考图片索引。对于AMVP模式,可以相对于来自由编码器和/或解码器构建的AMVP候选列表中的一个或多个运动向量预测子(MVP)对PU的一个或多个运动向量进行预测性译码。在一些情况下,对于PU的单向帧间预测,编码器和/或解码器可以生成单个AMVP候选列表。在一些情况下,对于PU的双向预测,编码器和/或解码器可以生成两个AMVP候选列表,一个使用来自前向预测方向的空间和时间相邻PU的运动数据,另一个使用来自后向预测方向的空间和时间相邻PU的运动数据。

用于两种模式的候选可以从空间和/或时间相邻的块导出。例如,图2A和图2B包括示出空间相邻候选的概念图。图2A示出了用于merge模式的空间相邻运动向量(MV)候选。图2B示出了用于AMVP模式的空间相邻运动向量(MV)候选。空间MV候选是从特定PU(PU0)的相邻块导出的,尽管从块生成候选的方法对于merge模式和AMVP模式不同。

在merge模式中,编码器和/或解码器可以通过考虑合并来自各种运动数据位置的候选来形成merge候选列表。例如,如图2A所示,可以针对图2A中的数字0-4所示的空间相邻运动数据位置导出多达四个空间MV候选。MV候选可以按照数字0-4所示的顺序在merge候选列表中排序。例如,位置和顺序可以包括:左侧位置(0)、上方位置(1)、右上位置(2)、左下位置(3)和左上位置(4)。

在图2B所示的AVMP模式中,相邻块被分成两组:包括块0和1的左侧组,以及包括块2、3和4的上方组。对于每个组,参考与由信令通知的参考索引指示的参考图片相同的参考图片的相邻块中的潜在候选具有被选择以形成该组的最终候选的最高优先级。可能所有相邻块都不包含指向同一参考图片的运动向量。因此,如果找不到这样的候选,则将缩放第一个可用候选以形成最终候选,由此可以补偿时间距离差。

图3A和图3B包括示出时间运动向量预测的概念图。如果时间运动向量预测子(TMVP)候选已启用且可用,则在空间运动向量候选之后将其添加到MV候选列表中。对于merge模式和AMVP模式,TMVP候选的运动向量推导过程是相同的。然而,在一些情况下,merge模式中TMVP候选的目标参考索引可以被设置为零,或者可以由相邻块的目标参考索引导出。

用于TMVP候选导出的主要块位置是同位PU外部的右下块,如图3A所示为块“T”,以补偿用于生成空间相邻候选的左上块的偏差。然而,如果该块位于当前CTB(或LCU)行之外,或者运动信息不可用,则该块将被PU的中心块替换。用于TMVP候选的运动向量是从同位图片的同位PU导出的,如切片级别所指示的。类似于AVC中的时间直接模式,TMVP候选的运动向量可以经受运动向量缩放,运动向量缩放被执行以补偿距离差。

HEVC标准和/或其他标准、格式或编解码器中涵盖了运动预测的其他方面。例如,还涵盖了merge模式和AMVP模式的其他几个方面。一个方面包括运动向量缩放。关于运动向量缩放,可以假设运动向量的值与呈现时间中图片的距离成比例。运动向量将两个图片关联起来——参考图片和包含运动向量的图片(即包含图片)。当利用运动向量预测另一运动向量时,基于图片顺序计数(POC)值计算包含图片和参考图片的距离。

对于要预测的运动向量,其相关联的包含图片和参考图片可能都不同。因此,计算新的距离(基于POC)。并且,基于这两个POC距离缩放运动向量。对于空间相邻候选,两个运动向量的包含图片相同,而参考图片不同。在HEVC中,运动向量缩放适用于空间和时间相邻候选的TMVP和AMVP两者。

运动预测的另一方面包括人工运动向量候选生成。例如,如果运动向量候选列表不完整,则生成人工运动向量候选并将其插入列表末尾,直到获得所有候选。在merge模式中,有两种类型的人工MV候选:仅为B切片导出的组合候选;并且如果第一类型没有提供足够的人工候选,则零候选仅用于AMVP。对于已经在候选列表中并且具有必要运动信息的每对候选,双向组合运动向量候选是通过参考列表0中的图片的第一候选的运动向量和参考列表1中图片的第二候选的运动向量的组合来导出的。

在一些具体实施中,当向MV候选列表中添加或插入新的候选时,可以执行修剪过程。例如,在一些情况下,来自不同块的MV候选可能包括相同的信息。在这种情况下,在MV候选列表中存储多个MV候选的重复运动信息会导致冗余和MV候选列表的效率降低。在一些示例中,修剪过程可以消除或最小化MV候选列表中的冗余。例如,修剪过程可以包括将要添加到MV候选列表的潜在MV候选与已经存储在MV候选列表中的MV候选进行比较。在一个例示性示例中,可以将存储的运动向量的水平位移(Δx)和垂直位移(Δy)(指示参考块相对于当前块的位置的位置)与潜在候选的运动向量的水平位移(Δx)和垂直位移(Δy)进行比较。如果比较揭示潜在候选的运动向量与一个或多个存储的运动向量中的任何一个都不匹配,则不将潜在候选视为要修剪的候选,并且可以将其添加到MV候选列表中。如果基于该比较找到匹配,则不将潜在MV候选添加到MV候选列表中,从而避免插入相同的候选。在一些情况下,为了降低复杂性,在修剪过程中仅执行有限数量的比较,而不是将每个潜在MV候选与所有现有候选进行比较。

在诸如HEVC的某些译码方案中,支持加权预测(WP),在这种情况下,在运动补偿中使用缩放因子(由a表示)、移位数(由s表示)和偏移(由b表示)。假设参考图片的位置(x,y)中的像素值是p(x,y),则将p’(x,y)=((a*p(x,y)+(1<<(s-1)))>>s)+b而不是p(x,y)用作运动补偿中的预测值。

当启用WP时,对于当前切片的每个参考图片,信令通知标志以指示WP是否适用于参考图片。如果WP适用于一个参考图片,则将WP参数集合(即a、s和b)发到解码器,并用于来自参考图片的运动补偿。在一些示例中,为了灵活地打开/关闭亮度和色度分量的WP,单独地针对亮度和色度分量信令通知WP标志和WP参数。在WP中,将相同的一个WP参数集合用于一个参考图片中的所有像素。

图4A是示出用于单向帧间预测的当前块402的邻居重构样本和参考块404的邻居样本的示例的图。可以针对当前块402对运动向量MV进行译码,其中MV可以包括对参考图片列表的参考索引和/或用于标识参考块404的其他运动信息。例如,MV可以包括水平分量和垂直分量,其提供从当前图片中的坐标位置到由参考索引所标识的参考图片中坐标的偏移。图4B是示出用于双向帧间预测的当前块422的邻居重构样本以及第一参考块424和第二参考块426的邻居样本的示例的图。在这种情况下,可以针对当前块422对两个运动向量MV0和MV1进行译码,以分别标识第一参考块424和第二参考块426。

如前所述,在一些方面,提供了用于DPB操作和在比特流提取之后重写AUD的系统和技术。某些视频译码标准(诸如VVC)可以实现多层译码,其中DPB在不同的层之间是公共的或共享的。可以在语法元素中信令通知层数。例如,在VVC中,可以在VPS中信令通知层数,如下所示:

表2–信令通知层数

在表2中,vps_max_layers_minus1指定了vps所指定的层数,其是参考VPS的每个经译码视频序列(CVS)中的最大层数。在一些示例中,DPB操作可以包括用于在调用对当前图片的解码之前从DPB输出和移除图片的调出过程、对用于标记和存储当前经解码图片的过程的调用以及对如本文所述的附加调出的调用。

当前经解码图片可以存储在DPB中的空图片存储缓冲器中。DPB填充度可以递增一,并且当前图片可以标记为“用于短期参考”。除非比级别限制所需的更多的存储器可用于存储解码图片,否则当对对第一个切片进行解码时,解码器可以开始将当前图片的经解码部分存储到DPB中,并随着解码过程的进行继续存储更多的经解码样本。

为了避免DPB在将AU中的最后一个图片存储到DPB中进行处理之前就已经满了,本文所描述的系统和技术可以在AU的每个图片之后或每个图片的最后一个解码单元(DU)之后调用附加的调出过程,这可以包括标记DPB中的一个或多个图片用于输出/移除,并从DPB中移除这样的一个或多个图片。一个或多个图片可以包括来自与AU相关联的任何层的(一个或多个)图片。

在一些示例中,当从CPB中移除包含当前图片的AU的最后一个DU时,可以为AU调用附加的调出过程。在一些示例中,当应用附加的调出过程时,可以从条件中移除AU。例如,一旦为AU应用了附加的调出过程,就可以条件中移除AU以应用附加的调出过程。在一个例示性示例中,VVC标准第C.5.2.3节中可以反映出从条件中移除AU的情况,如下所示(删除的语言以划线文本显示,例如,

C.5.2.3附加的调出

当从CPB中移除

在一些情况下,输入比特流或子比特流可以包括一个或多个AU,该一个或多个AU不是包含帧内随机接入点(IRAP)图片或逐步解码器刷新(GDR)图片的IRAP AU(例如,非IRAP AU)或GDR AU(例如,非GDR AU)。在这种情况下,输出比特流或子比特流中提取的AU可以变成IRAP或GDR AU。在一些情况下,可以将AU写入添加到成为IRAP AU或GDR AU的AU的提取过程中,或者可以将AU放置在包含IRAP或GDR图片的所有AU中,并且可以将aud_irap_or_gdr_au_flag的重写添加到提取过程中。

可以为在用于子比特流提取过程的任何输出层集合(OLS)中包含IRAP或GDR图片的AU实现AU定界符(AUD)重写过程。此外,如本文进一步描述的,在与AU相关联的AUD包含单个图片的情况下,也可以重写相关联的AUD(如果存在)中的aud_irap_or_gdr_au_flag的值。在一些方面,本文描述的系统和技术可以提供用于在提取子比特流之后重写AUD的过程。AUD可以用于指示AU的开始、AU是IRAP还是GDR AU和/或包含AU定界符NAL单元的AU中经译码图片中存在的切片类型。在一些情况下,如果满足特定条件时AU中没有AUD NAL单元,则可以实施约束。AUD NAL可以被添加到比特流,例如类型I和/或类型II比特流。

在一些示例中,上述特定条件可以包括AU包含多于一个经译码图片的条件,和/或AU中只有一个经译码图片是IRAP图片或GDR图片且相关联的ph_recovery_poc_cnt不等于0的条件。在一些示例中,ph_recovery_poc_cnt语法元素按输出顺序指定经解码图片的恢复点。在一些情况下,在POC之后,可以认为图片是空闲(clear)的,并且可以显示。在一些示例中,恢复点包括比特流中的一个点,在该点处,在随机接入或断开链接之后,实现由比特流表示的经解码图片的精确或近似表示的恢复。在一些示例中,恢复点补充增强信息(SEI)消息被发送(例如,由编码器,诸如编码设备104)到解码器(例如,解码设备112),并且可以帮助解码器确定解码过程何时将产生可接受的图片(例如,具有特定质量和/或其他特性的图片等)以供解码器启动随机接入之后或在编码器指示经译码视频序列(CVS)中的断开链接之后显示。当以解码顺序中与恢复点SEI消息相关联的接入单元开始解码过程时,以SEI消息中指定的输出顺序在恢复点处或之后的解码图片被指示为内容正确或近似正确。在一些情况下,在与恢复点SEI消息相关联的图片处或之前通过随机接入产生的经解码图片在内容上不需要正确,直到指示的恢复点,并且从与恢复点SE消息相关联的图片开始的解码过程的操作可以包含对经解码图片缓冲器中不可用图片的参考。

在一些情况下,输入比特流中的AU可以包含一个IRAP图片或GDR图片,其中相关联的ph_recovery_poc_cnt不等于0,以及其他VCL NAL单元类型。此外,AU可以具有aud_irap_or_gdr_au_flag等于0的相关联AUD。在比特流提取(或子比特流提取)之后,输出比特流中的AU可以仅包含一个IRAP或GDR图片,其中相关联的ph_recovery_poc_cnt不等于0。因此,相关联的AUD的aud_rap_or_gdr_au_flag可以被设置为1,因此相关联的AUD不会被丢弃。关于图6所示的过程600描述了这种解决方案的一个示例具体实施。

在一些示例中,当AU仅包含nal_unit_type等于IDR_NUT、CRA_NUT或GDR_NUT的单个类型且与AUD相关联的VCL-NAL单元时,相关联AUD的aud_irap_or_gdr_au_flag可以被设置为1。在一些情况下,如果AU仅包含一个经译码图片,则可以移除相关联的AUD(如果存在)或将其设置为1。AUD的这种重写可以针对单层和/或多层进行。此外,如果在执行比特流提取(或子比特流提取)之后存在单层,则AUD标志被设置为1或被移除,以避免具有设置为0的标志的不正确AUD。

图5是示出用于DPB操作的示例过程500的流程图。在框502处,过程500可以包括将与接入单元(AU)相关联的一个或多个图片存储在经解码图片缓冲器(DPB)中。在一些示例中,AU可以包括第一多个图片,并且第一多个图片可以对应于多个视频译码层。在一些示例中,DPB具有大小限制,该大小限制经由定义DPB的大小限制的语法元素来信令通知。在一些情况下,大小限制小于与AU相关联的第一多个图片的至少一部分。在一些情况下,存储在DPB中的一个或多个图片可以包括参考图片和/或经解码图片。例如,DPB可以包括(一个或多个)参考图片和/或先前解码的图片。

在框504处,过程500可以包括,在从经译码图片缓冲器(CPB)中移除第二多个图片中的每个图片之后,从DPB中移除与AU相关联的一个或多个图片中的至少一个图片。在一些示例中,可以从DPB中移除该一个或多个图片中的该至少一个图片,以为第二多个图片中的每个图片、用于对当前图片进行解码的(一个或多个)参考图片和/或一个或多个附加图片释放DPB中的空间。在一些情况下,从DPB中移除该一个或多个图片中的该至少一个图片,以防止DPB在当前图片和/或一个或多个相关联的参考图片被存储在DPB中之前填满。

在一些示例中,从DPB中移除该一个或多个图片中的该至少一个图片,并且在DPB的使用存储量达到DPB的大小限制之前,将第二多个图片中的每个图片存储在DPB中。

在一些示例中,从DPB中移除的该一个或多个图片中的该至少一个图片可以包括来自多个视频译码层中的同一层的不同图片。在其他示例中,从DPB中移除的该一个或多个图片中的该至少一个图片可以包括来自多个视频译码层中的不同层的不同图片。在一些情况下,来自多个视频译码层中的每个视频译码层与来自DPB的相同输出时间相关联。

在框506处,过程500可以包括将从CPB中移除的第二多个图片中的每个图片存储在DPB中。在一些情况下,过程500可以包括对CPB中的图片进行解码。在一些示例中,过程500可以包括从DPB中输出经解码的图片以用于显示和/或存储。在一些示例中,过程500可以包括输出DPB中的一个或多个图片以在显示设备处显示。

在一些方面,过程500可以包括在从CPB中移除每个图片的最后一个解码单元(DU)之后,从DPB中移除该一个或多个图片中的该至少一个图片。

在一些方面,过程500可以包括:标记用于从DPB中移除的DPB中的该一个或多个图片中的该至少一个图片;以及基于DPB中的该一个或多个图片中的该至少一个图片的标记,从DPB中移除该一个或多个图片中的该至少一个图片。在一些方面,过程500可以包括设置与该一个或多个图片中的该至少一个图片相关联的相应标志。在一些情况下,相应的标志可以指示该一个或多个图片中的该至少一个图片被设置为从DPB输出。

在一些方面,过程500可以包括从比特流的至少一部分中提取第二AU。比特流的该部分可以包括整个比特流或子比特流。在一些方面,过程500可包括:确定第二AU仅包括一个或多个帧内随机接入点(IRAP)图片或仅包括一或多个逐步解码器刷新(GDR)图片;以及基于确定第二AU仅包括一个或多个IRAP图片或者仅包括一个或多个GDR图片,将与第二AU相关联的AU定界符(AUD)的标志(例如,aud_irap_or_gdr_au_flag)的值设置为1。在一些示例中,当标志的值被设置为1时指示第二AU仅包含一个或多个IRAP图片或仅包含一个或多个GDR图片。例如,标志的值被设置为1可以指示第二AU仅包含IRAP图片或仅包含GDR图片(而不包含其他类型的(一个或多个)图片)。

在一些情况下,该标志可以包括AUD IRAP或GDR标志(例如,aud_irap_or_gdr_au_flag)。在一些示例中,第二AU可以包括单个视频译码层和/或单个经译码图片,并且单个视频译码层和/或单个经译码图片可以仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

在一些方面,将AUD的标志的值设置为1可以包括基于在提取第二AU之后确定第二AU是(或者已变为)IRAP AU或GDR AU而将标志的值从0改变为1。

图6是示出用于在比特流提取之后重写AUD的示例过程600的流程图。在框602处,过程600可以包括获得视频数据的比特流。在一些示例中,比特流可以包括从接收的比特流中提取的整个比特流或从接收的比特流中提取的子比特流。

在框604处,过程600可以包括从比特流的至少一部分中提取接入单元(AU)。在框606处,过程600可以包括确定AU仅包括一个或多个帧内随机接入点(IRAP)图片或一个或多个逐步解码器刷新(GDR)图片。例如,过程600可以包括确定AU仅包括(一个或多个)IRAP图片或(一个或多个)GDR图片而不包括其他类型的(一个或多个)图片。

在框608处,过程600可以包括,基于确定AU仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片,将与AU相关联的AU定界符(AUD)的标志的值设置为1。在一些示例中,标志的值被设置为1指示AU仅包含一个或多个IRAP图片或一个或多个GDR图片。

在一些示例中,该标志可以包括AUD IRAP或GDR标志(例如,aud_irap_or_gdr_au_flag)。

在一些情况下,AU可以包括单个视频译码层和/或单个经译码图片。在一些示例中,单个视频译码层和/或单个经译码图片可以仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

在一些方面,过程600可以包括在提取AU之后确定AU是IRAP AU还或GDR AU。在一些示例中,将AUD的标志的值设置为1可以包括基于在提取AU之后确定AU是IRAP AU或GDRAU而将标志的值从0改变为1。

在一些具体实施中,本文描述的过程(或方法)(包括过程500和过程600)可以由计算设备或装置执行,诸如图1中所示的系统100。例如,过程可以由图1和图7所示的编码设备104、另一个视频源侧设备或视频传输设备、图1和图8所示的解码设备112和/或另一个客户端侧设备(诸如播放器设备、显示器或任何其他客户端侧设备)来执行。在一些情况下,计算设备或装置可以包括一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或被配置为执行过程500和/或过程600的步骤的其他(一个或多个)组件。

在一些示例中,计算设备可以包括移动设备、台式计算机、服务器计算机和/或服务器系统或其他类型的计算设备。计算设备的组件(例如,一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其他组件)可以在电路中实现。例如,组件可以包括和/或可以使用电子电路或其他电子硬件来实现,这些电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路),和/或可以包括和/或使用计算机软件、固件或它们的任何组合来实现,以执行本文描述的各种操作。在一些示例中,计算设备或装置可以包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的相机。在一些示例中,捕获视频数据的相机或其他捕获设备与计算设备分离,在这种情况下,计算设备接收或获得所捕获的视频数据。计算设备可以包括被配置为传送视频数据的网络接口。网络接口可以被配置为传送基于互联网协议(IP)的数据或其他类型的数据。在一些示例中,计算设备或装置可以包括用于显示输出的视频内容的显示器,诸如视频比特流的图片样本。

过程可以关于逻辑流程图来描述,其操作表示可以在硬件、计算机指令或它们的组合中实现的操作序列。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的所述操作可以以任何顺序和/或并行组合以实现过程。

此外,过程可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)、由硬件实现或它们的组合。如上所述,代码可以存储在计算机可读或机器可读存储介质上,例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读或机器可读存储介质可以是非暂时性的。

本文讨论的译码技术可以在示例视频编码和解码系统(例如,系统100)中实现。在一些示例中,系统包括源设备,其提供将在稍后时间由目的地设备解码的编码视频数据。特别地,源设备经由计算机可读介质将视频数据提供给目的地设备。源设备和目的地设备可以包括各种设备中的任何一种,包括台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机(诸如所谓的“智能”电话、所谓的“智能”平板)、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流媒体设备等。在一些情况下,源设备和目的地设备可以配备用于无线通信。

目的地设备可以经由计算机可读介质接收要解码的经编码视频数据。计算机可读介质可以包括能够将经编码视频数据从源设备移动到目的地设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以包括使源设备能够实时地将经编码视频数据直接传输到目的地设备的通信介质。经编码视频数据可以根据诸如无线通信协议之类的通信标准进行调制,并且传输到目的地设备。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站或可用于促进从源设备到目的地设备的通信的任何其他装备。

在一些示例中,经编码数据可以从输出接口输出到存储设备。类似地,可以通过输入接口从存储设备接入经编码数据。存储设备可以包括多种分布式或本地接入的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储经编码视频数据的任何其他合适的数字存储介质。在另一个示例中,存储设备可以对应于文件服务器或可以存储由源设备生成的经编码视频的另一种中间存储设备。目的地设备可以经由流传输或下载从存储设备接入存储的视频数据。文件服务器可以是能够存储经编码视频数据并将该经编码视频数据传输到目的地设备的任何类型的服务器。示例文件服务器包括Web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的地设备可以通过任何标准数据连接(包括互联网连接)接入经编码视频数据。这可以包括适合接入存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储设备的经编码视频数据的传输可以是流传输传输、下载传输或其组合。

本公开的技术不一定限于无线应用或设置。这些技术可以应用于支持多种多媒体应用中的任一种的视频译码,诸如空中电视广播、有线电视传输、卫星电视传输、互联网流传输视频传输(诸如通过HTTP的动态自适应流媒体(DASH))、编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码,或其他应用。在一些示例中,系统可以被配置为支持单向或双向视频传输以支持诸如视频流传输、视频回放、视频广播和/或视频电话之类的应用。

在一个示例中,源设备包括视频源、视频编码器和输出接口。目的地设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文所公开的技术。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备可以从诸如外部相机的外部视频源接收视频数据。类似地,目的地设备可以与外部显示设备交接,而不是包括集成显示设备。

上面的示例系统只是一个示例。用于并行处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管本公开的技术通常由视频编码设备执行,但这些技术也可由通常称为“CODEC”的视频编码器/解码器执行。此外,本公开的技术还可由视频预处理器执行。源设备和目的地设备仅仅是这样的译码设备的示例,其中源设备生成经译码视频数据以传输到目的地设备。在一些示例中,源设备和目的地设备可以以基本对称的方式操作,使得设备中的每一个都包括视频编码和解码组件。因此,示例系统可以支持视频设备之间的单向或双向视频传输,例如,用于视频流传输、视频回放、视频广播或视频电话。

视频源可以包括视频捕获设备,诸如摄像机、包含先前捕获的视频的视频档案、和/或用于从视频内容提供者接收视频的视频馈送接口。作为另外的替代,视频源可以生成基于计算机图形的数据作为源视频,或者实况视频、存档视频和计算机生成视频的组合。在一些情况下,如果视频源是摄像机,则源设备和目的地设备可以形成所谓的相机手机或视频手机。然而,如上文所提及,本公开中所描述的技术通常可应用于视频译码,并且可应用于无线和/或有线应用。在每种情况下,捕获的、预先捕获的或计算机生成的视频可以由视频编码器进行编码。然后经编码视频信息可以通过输出接口输出到计算机可读介质上。

如所指出的,计算机可读介质可以包括诸如无线广播或有线网络传输的瞬态介质,或诸如硬盘、闪存驱动器、光盘、数字视频光盘、蓝光光盘或其他计算机可读媒体的存储介质(即,非暂时性存储介质)。在一些示例中,网络服务器(未示出)可以从源设备接收经编码视频数据并将经编码视频数据提供给目的地设备(例如,经由网络传输)。类似地,诸如盘冲压设施之类的介质生产设施的计算设备可以从源设备接收经编码视频数据并且生产包含经编码视频数据的盘。因此,在各种示例中,计算机可读介质可以被理解为包括各种形式的一种或多种计算机可读介质。

目的地设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息,该语法信息也由视频解码器使用,其包括描述块和其他经译码单元(例如图片组(GOP))的特性和/或处理的语法元素。显示设备将经解码视频数据显示给用户,并且可以包括多种显示设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或其他类型的显示设备。已经描述了本申请的各种实施例。

编码设备104和解码设备112的具体细节分别如图7和图8中所示。图7是示出可以实现本公开中描述的技术中的一种或多种技术的示例编码设备104的框图。例如,编码设备104可以生成本文描述的语法结构(例如,VPS、SPS、PPS或其他语法元素的语法结构)。编码设备104可以执行视频切片内的视频块的帧内预测和帧间预测译码。如前所述,帧内译码至少部分依赖于空间预测来减少或去除给定视频帧或图片内的空间冗余。帧间编码至少部分依赖于时间预测来减少或去除视频序列的相邻或周围帧内的时间冗余。帧内模式(I模式)可以指几种基于空间的压缩模式中的任何一种。诸如单向预测(P模式)或双向预测(B模式)之类的帧间模式可以指几种基于时间的压缩模式中的任何一种。

编码设备104包括分割单元35、预测处理单元41、滤波器单元63、图片存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重构,编码设备104还包括逆量化单元58、逆变换处理单元60和求和器62。滤波器单元63旨在表示一个或多个环路滤波器,诸如去块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管滤波器单元63在图7中被示为环路内滤波器,但在其他配置中,滤波器单元63可以实现为环路后滤波器。后处理设备57可以对由编码设备104生成的经编码视频数据执行附加处理。本发明的技术在一些实例中可以由编码设备104实施。然而,在其他实例中,本公开的技术中的一种或多种技术可以由后处理设备57实施。

如图7所示,编码设备104接收视频数据,并且分割单元35将数据分割成视频块。分割还可以包括分割成切片、切片段、图块或其他更大的单元,以及视频块分割,例如,根据LCU和CU的四叉树结构。编码设备104大体示出了对要编码的视频切片内的视频块进行编码的组件。切片可以被分割为多个视频块(并且可能被分割为称为图块的视频块集合)。预测处理单元41可以基于误差结果(例如,译码速率和失真程度等)针对当前视频块选择多个可能的译码模式中的一种译码模式,诸如多个帧内预测译码模式中的一种或多个帧间预测译码模式中的一种。预测处理单元41可将所得到的帧内或帧间译码块提供给求和器50以生成残差块数据并且提供给求和器62以重构经编码块以用作参考图片。

预测处理单元41内的帧内预测处理单元46可以相对于与待译码的当前块相同的帧或切片中的一个或多个相邻块执行对当前视频块的帧内预测译码以提供空间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考图片中的一个或多个预测块执行对当前视频块的帧间预测译码以提供时间压缩。

运动估计单元42可以被配置为根据视频序列的预定图案(pattern)来确定用于视频切片的帧间预测模式。预定图案可以将序列中的视频切片指定为P切片、B切片或GPB切片。运动估计单元42和运动补偿单元44可以是高度集成的,但出于概念目的而分开示出。由运动估计单元42执行的运动估计是生成运动向量的过程,其估计视频块的运动。例如,运动向量可以指示当前视频帧或图片内的视频块的预测单元(PU)相对于参考图片内的预测块的位移。

预测块是被发现在像素差方面与要译码的视频块的PU紧密匹配的块,其可以通过绝对差之和(SAD)、平方差之和(SSD)或其他差量度来确定。在一些示例中,编码设备104可以计算存储在图片存储器64中的参考图片的子整数像素位置的值。例如,编码设备104可以插值参考图片的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并输出具有分数像素精度的运动向量。

运动估计单元42通过将PU的位置与参考图片的预测块的位置进行比较来计算帧间译码切片中的视频块的PU的运动向量。参考图片可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择,每个列表标识存储在图片存储器64中的一个或多个参考图片。运动估计单元42将计算的运动向量发送到熵编码单元56和运动补偿单元44。

由运动补偿单元44执行的运动补偿可以涉及基于由运动估计确定的运动向量来获取或生成预测块,可能执行对子像素精度的插值。在接收到当前视频块的PU的运动向量后,运动补偿单元44可以在参考图片列表中定位运动向量所指向的预测块。编码设备104通过从正被译码的当前视频块的像素值中减去预测块的像素值来形成残差视频块,从而形成像素差值。像素差值形成块的残差数据,并且可以同时包括亮度差分量和色度差分量两者。求和器50表示执行这种减法操作的一个或多个组件。运动补偿单元44还可以生成与视频块和视频切片相关联的语法元素以供解码设备112在对视频切片的视频块进行解码时使用。

帧内预测处理单元46可以对当前块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代,如上所述。具体地,帧内预测处理单元46可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测处理单元46可以使用各种帧内预测模式对当前块进行编码,例如在单独的编码编次期间,并且帧内预测处理单元46可以从测试的模式中选择适当的帧内预测模式来使用。例如,帧内预测处理单元46可以针对各种测试的帧内预测模式使用速率失真分析来计算速率失真值,并且可以在测试的模式中选择具有最佳速率失真特性的帧内预测模式。速率失真分析通常确定经编码块和被编码以产生经编码块的原始未编码块之间的失真(或误差)量,以及用于产生经编码块的比特率(即,比特数)。帧内预测处理单元46可以根据各种经编码块的失真和速率计算比率以确定对于块而言哪个帧内预测模式表现最佳速率-失真值。

在任何情况下,在针对块选择帧内预测模式之后,帧内预测处理单元46可以向熵编码单元56提供指示针对块选择的帧内预测模式的信息。熵编码单元56可对指示选择的帧内预测模式的信息进行编码。编码设备104可以在传输的比特流配置数据中包括各种块的编码上下文的定义以及对用于每个上下文的最可能的帧内预测模式、帧内预测模式索引表和修改的帧内预测模式索引表的指示。比特流配置数据可以包括多个帧内预测模式索引表和多个修改的帧内预测模式索引表(也称为码字映射表)。

在预测处理单元41经由帧间预测或帧内预测生成当前视频块的预测块之后,编码设备104通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以包括在一个或多个TU中并应用于变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)或概念上类似的变换的变换将残差视频数据变换成残差变换系数。变换处理单元52可以将残差视频数据从像素域转换到变换域,诸如频域。

变换处理单元52可将所得到的变换系数发送至量化单元54。量化单元54量化变换系数以进一步降低比特率。量化过程可以减少与一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54随后可以执行对包括经量化的变换系数的矩阵的扫描。另选地,熵编码单元56可以执行该扫描。

在量化之后,熵编码单元56对经量化的变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或其他熵编码技术。在熵编码单元56进行熵编码之后,经编码比特流可以被传输到解码设备112,或者被存档以供稍后传输或由解码设备112检索。熵编码单元56还可以对正被译码的当前视频切片的运动向量和其他语法元素进行熵编码。

逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以重构像素域中的残差块以供稍后用作参考图片的参考块。运动补偿单元44可以通过将残差块添加到参考图片列表内的参考图片中的一个参考图片的预测块来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重构残差块以计算用于运动估计的子整数像素值。求和器62将重构残差块添加到由运动补偿单元44产生的运动补偿预测块,以产生参考块用于存储在图片存储器64中。参考块可以由运动估计单元42和运动补偿单元44用作参考块以对后续视频帧或图片中的块进行帧间预测。

以此方式,图7的编码设备104表示视频编码器的示例,该视频编码器被配置为执行本文所述的任何技术,包括上文关于图5描述的过程和上文关于图6描述的过程。在一些情况下,本公开的一些技术也可由后处理设备57实施。

图8是示出示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可以执行通常与关于图7中的编码设备104所描述的编码编次相反的解码编次。

在解码过程期间,解码设备112接收经编码视频比特流,该经编码视频比特流表示由编码设备104发送的经编码视频切片的视频块和相关联的语法元素。在一些实施例中,解码设备112可以从编码设备104接收经编码视频比特流。在一些实施例中,解码设备112可以从网络实体79接收经编码视频比特流,网络实体为诸如服务器、媒体感知网络元件(MANE)、视频编辑器/拼接器、或被配置为实现上述技术中的一种或多种技术的其他此类设备。网络实体79可以包括也可以不包括编码设备104。本公开中描述的一些技术可以在网络实体79将编码视频比特流传输至解码设备112之前由网络实体79实施。在一些视频解码系统中,网络实体79和解码设备112可以是单独设备的一部分,而在其他情况下,关于网络实体79描述的功能可以由包括解码设备112的同一设备执行。

解码设备112的熵解码单元80对比特流进行熵解码以生成经量化系数、运动向量和其他语法元素。熵解码单元80将运动向量和其他语法元素转发到预测处理单元81。解码设备112可以在视频切片级别和/或视频块级别接收语法元素。熵解码单元80可处理和解析在一个或多个参数集中(诸如VPS、SPS和PPS)中的固定长度语法元素和可变长度语法元素两者。

当视频切片作为帧内译码(I)切片译码时,预测处理单元81的帧内预测处理单元84可以基于信令通知的帧内预测模式和来自当前帧或图片的先前解码的块的数据生成当前视频切片的视频块的预测数据。当视频帧作为帧间译码(即B、P或GPB)切片译码时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动向量和其他语法元素产生当前视频切片的视频块的预测块。可以从参考图片列表内的参考图片中的一个参考图片产生预测块。解码设备112可以基于存储在图片存储器92中的参考图片使用默认构建技术来构建参考帧列表,列表0和列表1。

运动补偿单元82通过解析运动向量和其他语法元素来确定当前视频切片的视频块的预测信息,并且使用预测信息来产生正被解码的当前视频块的预测块。例如,运动补偿单元82可使用参数集中的一个或多个语法元素来确定用于对视频切片的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、切片的一个或多个参考图片列表的构建信息、切片的每个帧间编码视频块的运动向量、切片的每个帧间译码视频块的帧间预测状态,以及用于对当前视频切片中的视频块进行解码的其他信息。

运动补偿单元82还可以基于插值滤波器执行插值。运动补偿单元82可以使用由编码设备104在对视频块进行编码期间使用的插值滤波器来计算参考块的子整数像素的插值。在这种情况下,运动补偿单元82可以根据所接收的语法元素确定编码设备104所使用的插值滤波器,且可使用该插值滤波器来产生预测块。

逆量化单元86对在比特流中提供且由熵解码单元80解码的经量化变换系数进行逆量化或去量化。逆量化过程可以包括使用由编码设备104针对视频切片中的每个视频块计算的量化参数来确定量化程度,并且类似地确定应该应用的逆量化程度。逆变换处理单元88将逆变换(例如,逆变换DCT或其他合适的逆变换)、逆变换整数变换或概念上类似的逆变换过程应用于变换系数,以便在像素域中产生残差块。

在运动补偿单元82基于运动向量和其他语法元素生成当前视频块的预测块之后,解码设备112通过将来自逆变换处理单元88的残差块与由运动补偿单元82生成的对应预测块相加来形成经解码视频块。求和器90表示执行这种求和操作的一个或多个组件。如果需要,也可以使用环路滤波器(在译码环路中或在译码环路之后)来平滑像素过渡,或以其他方式提高视频质量。滤波器单元91旨在表示一个或多个环路滤波器,诸如去块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管滤波器单元91在图8中被示为环路内滤波器,但在其他配置中,滤波器单元91可以实现为环路后滤波器。然后将给定帧或图片中的经解码视频块存储在图片存储器92中,图片存储器存储用于后续运动补偿的参考图片。图片存储器92还存储经解码视频以供稍后呈现在显示设备上,诸如图1中所示的视频目的地设备122。

以此方式,图8的解码设备112表示视频解码器的示例,该视频解码器被配置为执行本文所述的任何技术,包括上文关于图5描述的过程和上文关于图6描述的过程。

如本文所用,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或携带指令和/或数据的各种其他介质。计算机可读介质可以包括其中可以存储数据的非暂时性介质,并且不包括无线或通过有线连接传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如压缩光盘(CD)或数字多功能光盘(DVD)之类的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可以在其上存储代码和/或机器可执行指令,代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或者指令、数据结构或者程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、命令行参数、参数或存储器内容耦接至另一代码段或硬件电路。信息、命令行参数、参数、数据等可以通过任何合适的手段传递、转发或传输,包括存储器共享、消息传递、令牌传递、网络传输等。

在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身之类的介质。

在上面的描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员应当理解,可以在没有这些具体细节的情况下实践实施例。为了解释的清楚起见,在一些情况下,本技术可以被呈现为包括单独的功能块,其包括的功能块包括设备、设备组件、以软件或硬件和软件的组合体现的方法中的步骤或例程。可以使用除了图中所示和/或本文描述的那些之外的附加组件。例如,电路、系统、网络、过程和其他组件可以以框图的形式显示为组件,以免在不必要的细节上模糊实施例。在其他情况下,可以在没有不必要细节的情况下显示公知的电路、过程、算法、结构和技术,以避免模糊实施例。

各个实施例可以在以上被描述为被描绘为流程表、流程图、数据流程图、结构图或框图的过程。尽管流程表可以将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。此外,可以重新布置操作的次序。过程的操作在完成时会终止,但可能会有图中未包括的附加步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。

根据上述示例的过程和方法可以使用被存储或以其他方式从计算机可读介质获得的计算机可执行指令来实现。这样的指令可以包括例如促使或以其他方式配置通用计算机、专用计算机或处理设备来执行特定功能或功能组的指令和数据。所使用的部分计算机资源可以通过网络接入。计算机可执行指令可以是例如二进制、中间格式指令,诸如汇编语言、固件、源代码等。可用于存储指令、使用的信息和/或在根据所述示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的USB设备、联网存储设备等。

实现根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用多种形状因数中的任何一种。当以软件、固件、中间件或微码实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。(一个或多个)处理器可以执行必要的任务。形状因数的典型示例包括膝上型电脑、智能电话、移动电话、平板设备或其他小形状因数个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以体现在外围设备或附加卡中。作为进一步的示例,此类功能还可以在不同芯片或在单个设备中执行的不同过程之间在电路板上实现。

指令、用于传送此类指令的介质、用于执行它们的计算资源、以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例部件。

在上述描述中,结合本申请的具体实施例对本申请的各个方面进行了描述,但是本领域的技术人员将认识到本申请不限于此。因此,虽然本文已经详细描述了本申请的说明性实施例,但是应当理解,本发明概念可以以其他方式不同地体现和采用,并且所附权利要求旨在被解释为包括这样的变化,除非受到现有技术限制。上述应用的各种特征和方面可以单独或联合使用。此外,实施例可以在不脱离本说明书的更广泛的精神和范围的情况下用于本文所述之外的任何数量的环境和应用中。因此,说明书和附图被认为是说明性的而不是限制性的。出于说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行这些方法。

普通技术人员将理解,本文使用的小于(“<”)和大于(“>”)符号或术语可以分别用小于或等于(“≤”)和大于或等于(“≥”)符号来替代而并不脱离本描述的范围。

在组件被描述为“配置为”执行某些操作的情况下,这种配置可以通过例如设计电子电路或其他硬件来执行操作、通过对可编程电子电路(例如微处理器或其他合适的电子电路)进行编程来实执行该操作或其任何组合来实现。

短语“耦接到”是指任何组件直接或间接物理连接到另一个组件,和/或任何组件与另一个组件直接或间接进行通信(例如,通过有线或无线连接和/或其他合适的通信接口连接到另一个组件)。

本公开中引用集合“……中的至少一个”和/或集合“……中的一个或多个”的权利要求语言或其他语言表示该集合的一个成员或该集合的多个成员(以任何组合)满足该权利要求。例如,引用“A和B中的至少一个”的权利要求语言是指A、B或A和B。在另一个示例中,引用“A、B和C中的至少一个”的权利要求语言是指A、B、C,或A和B,或A和C,或B和C,或A和B和C。语言集合“……中的至少一个”和/或集合“……中的一个或多个”不将集合限制为集合中列出的项目。例如,引用“A和B中的至少一个”的权利要求语言可以表示A、B或A和B,并且可以另外包括未在A和B的集合中列出的项目。

结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件、固件或它们的组合。为了清楚地说明硬件和软件的这种可互换性,以上已经大体上根据它们的功能描述了各种例示性组件、块、模块、电路以及步骤。此类功能是被实现为硬件还是软件取决于特定应用以及施加在整体系统上的设计约束。技术人员可以针对每种特定应用按照不同方式实现所述功能,但是此类具体实施决策不应当被解释为导致脱离了本申请的范围。

本文所述的技术也可以在电子硬件、计算机软件、固件或它们的任何组合中实现。这样的技术可以在多种设备中的任何一种中实现,诸如通用计算机、无线通信设备手持机或具有多种用途的集成电路设备,包括在无线通信设备手持机和其他设备中应用。描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者作为分立但可互操作的逻辑设备单独实现。如果在软件中实现,则该技术可以至少部分地由包括程序代码的计算机可读数据存储介质实现,该程序代码包括指令,当执行该指令时执行上述方法中的一个或多个。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(RAM),诸如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。附加地或替代地,这些技术可以至少部分地通过承载或传送以指令或数据结构形式并且可以由计算机接入、读取和/或执行的程序代码的计算机可读通信介质来实现,诸如传播的信号或波。

程序代码可由处理器执行,该处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或其他等效的集成或分立逻辑电路。此类处理器可以被配置为执行本公开中所描述的任何技术。通用处理器可以是微处理器,但是替代地,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一或多个微处理器与DSP内核的结合、或者任何其它这样的配置。因此,如本文所使用的术语“处理器”可以指任何前述结构、前述结构的任何组合、或适用于实施本文所述技术的任何其他结构或装置。此外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内提供,或者结合到组合视频编码器-解码器(CODEC)中。

本公开的例示性示例包括:

方面1.一种装置,包括:存储器和耦接到存储器的一个或多个处理器,该一个或多个处理器被配置为:将与接入单元(AU)相关联的一个或多个图片存储在经解码图片缓冲器(DPB)中,该AU包括第一多个图片,该第一多个图片对应于多个视频译码层;在从经译码图片缓冲器(CPB)中移除与AU相关联的第二多个图片中的每个图片之后,从DPB中移除与AU相关联的该一个或多个图片中的至少一个图片;以及将从CPB中移除的第二多个图片中的每个图片存储在DPB中。

方面2.根据方面1所述的装置,其中一个或多个处理器被配置为在从CPB中移除第二多个图片中的每个图片的最后一个解码单元之后,从DPB中移除该一个或多个图片中的该至少一个图片。

方面3.根据方面1至2中任一项所述的装置,其中一个或多个处理器被配置为:标记用于从DPB中移除的DPB中的该一个或多个图片中的该至少一个图片;以及基于DPB中的该一个或多个图片中的该至少一个图片的标记,从DPB中移除该一个或多个图片中的该至少一个图片。

方面4.根据方面1至3中任一项所述的装置,其中一个或多个处理器还被配置为设置与该一个或多个图片中的该至少一个图片相关联的相应标志,该相应标志指示该一个或多个图片中的该至少一个图片被设置为用于从DPB输出。

方面5.根据方面1至4中任一项所述的装置,其中DPB具有大小限制,该大小限制经由定义DPB的大小限制的语法元素来信令通知。

方面6.根据方面5所述的装置,其中大小限制小于与AU相关联的第一多个图片的至少一部分。

方面7.根据方面1至6中任一项所述的装置,其中从DPB中移除该一个或多个图片中的该至少一个图片,并且在DPB的使用存储量达到DPB的大小限制之前,将第二多个图片中的每个图片存储在DPB中。

方面8.根据方面1至7中任一项所述的装置,其中存储在DPB中的该一个或多个图片包括参考图片和解码图片中的至少一个。

方面9.根据方面1至8中任一项所述的装置,其中从DPB中移除的该一个或多个图片中的该至少一个图片包括来自多个视频译码层中的同一层的不同图片。

方面10.根据方面1至8中任一项所述的装置,其中从DPB中移除的该一个或多个图片中的该至少一个图片包括来自多个视频译码层中的不同层的不同图片。

方面11.根据方面1至10中任一项所述的装置,其中多个视频译码层中的每个视频译码层与来自DPB的相同输出时间相关联。

方面12.根据方面1至11中任一项所述的装置,其中该装置包括解码器。

方面13.根据方面1至12中任一项所述的装置,还包括被配置为显示来自DPB的一个或多个输出图片的显示器。

方面14.根据方面1至13中任一项所述的装置,其中该装置包括编码器。

方面15.根据方面1至14中任一项所述的装置,还包括被配置为捕获与AU相关联的图片的相机。

方面16.根据方面1至15中任一项所述的装置,其中该装置是移动设备。

方面17.根据方面1至16中任一项所述的装置,其中一个或多个处理器被配置为:从比特流的至少一部分中提取第二AU;确定第二AU仅包括一个或多个帧内随机接入点(IRAP)图片或仅包括一或多个逐步解码器刷新(GDR)图片;以及基于确定第二AU仅包括一个或多个IRAP图片或者仅包括一个或多个GDR图片,将与第二AU相关联的AU定界符的标志的值设置为1,其中当标志的值设置为1时指示第二AU仅包含一个或多个IRAP图片或仅包含一个或多个GDR图片。

方面18.根据方面17所述的装置,其中标志包括AUD IRAP或GDR标志,并且其中第二AU包括单个视频译码层和单个经译码图片的至少一个,单个视频译码层和单个经译码图片的至少一个仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

方面19.根据方面17至18中任一项所述的装置,其中为了将AUD的标志的值设置为1,在提取第二AU之后,第二AU是IRAP AU或GDR AU。

方面20.一种方法,包括:将与接入单元(AU)相关联的一个或多个图片存储在经解码图片缓冲器(DPB)中,该AU包括第一多个图片,该第一多个图片对应于多个视频译码层;在从经译码图片缓冲器(CPB)中移除第二多个图片中的每个图片之后,从DPB中移除与AU相关联的一个或多个图片中的至少一个图片;以及将从CPB中移除的第二多个图片中的每个图片存储在DPB中。

方面21.根据方面20所述的方法,还包括在从CPB中移除第二多个图片中的每个图片的最后一个解码单元之后,从DPB中移除该一个或多个图片中的该至少一个图片。

方面22.根据方面20至21中任一项所述的方法,还包括:标记用于从DPB中移除的DPB中的该一个或多个图片中的该至少一个图片;以及基于DPB中的该一个或多个图片中的该至少一个图片的标记,从DPB中移除该一个或多个图片中的该至少一个图片。

方面23.根据方面20至22中任一项所述的方法,还包括设置与该一个或多个图片中的该至少一个图片相关联的相应标志,该相应标志指示该一个或多个图片中的该至少一个图片被设置为用于从DPB输出。

方面24.根据方面20至23中任一项所述的方法,其中DPB具有大小限制,该大小限制经由定义DPB的大小限制的语法元素来信令通知。

方面25.根据方面24所述的方法,其中大小限制小于与AU相关联的第一多个图片的至少一部分。

方面26.根据方面20至25中任一项所述的方法,其中从DPB中移除该一个或多个图片中的该至少一个图片,并且在DPB的使用存储量达到DPB的大小限制之前,将第二多个图片中的每个图片存储在DPB中。

方面27.根据方面20至26中任一项所述的方法,其中存储在DPB中的该一个或多个图片包括参考图片和解码图片中的至少一个。

方面28.根据方面20至27中任一项所述的方法,其中从DPB中移除的该一个或多个图片中的该至少一个图片包括来自多个视频译码层中的同一层的不同图片。

方面29.根据方面20至27中任一项所述的方法,其中从DPB中移除的该一个或多个图片中的该至少一个图片包括来自多个视频译码层中的不同层的不同图片。

方面30.根据方面20至29中任一项所述的方法,其中多个视频译码层中的每个视频译码层与来自DPB的相同输出时间相关联。

方面31.根据方面20至30中任一项所述的方法,还包括:从比特流的至少一部分中提取第二AU;确定第二AU仅包括一个或多个帧内随机接入点(IRAP)图片或仅包括一或多个逐步解码器刷新(GDR)图片;以及基于确定第二AU仅包括一个或多个IRAP图片或者仅包括一个或多个GDR图片,将与第二AU相关联的AU定界符的标志的值设置为1,其中当标志的值设置为1时指示第二AU仅包含一个或多个IRAP图片或仅包含一个或多个GDR图片。

方面32.根据方面31所述的方法,其中标志包括AUD IRAP或GDR标志,并且其中第二AU包括单个视频译码层和单个经译码图片的至少一个,单个视频译码层和单个经译码图片的至少一个仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

方面33.根据方面32至32中任一项所述的方法,其中将AUD的标志的值设置为1还包括基于在提取第二AU之后确定第二AU是IRAP AU或GDR AU而将标志的值从0改变为1。

方面34.一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,该指令使一个或多个处理器执行根据方面20至33中任一项所述的方法。

方面35.一种装置,包括用于执行根据方面20至33中任一项所述的方法的部件。

方面36.根据方面35所述的装置,其中该装置包括解码器。

方面37.根据方面35至36中任一项所述的装置,其中该装置包括编码器。

方面38.根据方面35至37中任一项所述的装置,其中该装置是移动设备。

方面39.根据方面35至38中任一项所述的装置,还包括被配置为显示与AU相关联的图片的显示器。

方面40.根据方面35至39中任一项所述的装置,还包括被配置为捕获图片的相机。

方面41.一种设备,包括:存储器;以及耦接到存储器的一个或多个处理器,一个或多个处理器被配置为:获得视频数据的比特流;从比特流的至少一部分中提取接入单元(AU);确定AU仅包括一个或多个帧内随机接入点图片或仅包括一或多个逐步解码器刷新图片;以及基于确定AU仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片,将与AU相关联的AU定界符的标志的值设置为1,其中具有值被设置为1的标志指示AU仅包含一个或多个IRAP图片或者仅包含一个或多个GDR图片。

方面42.根据方面41所述的装置,其中标志包括AUD IRAP或GDR标志。

方面43.根据方面41至42中任一项所述的装置,其中AU包括单个视频译码层和单个经译码图片中的至少一个。

方面44.根据方面43所述的装置,其中单个视频译码层和单个经译码图片中的至少一个仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

方面45.根据方面41至44中任一项所述的装置,其中一个或多个处理器被配置为:在提取AU之后,确定AU是IRAP AU或GDR AU。

方面46.根据方面45所述的装置,其中一个或多个处理器还被配置为基于在提取AU之后确定AU是IRAP AU或GDR AU而将标志的值从0改变为1。

方面47.根据方面41至46中任一项所述的装置,其中该装置包括解码器。

方面48.根据方面41至47中任一项所述的装置,还包括被配置为显示与AU相关联的一个或多个图片的显示器。

方面49.根据方面41至48中任一项所述的装置,其中该装置包括编码器。

方面50.根据方面41至49中任一项所述的装置,还包括被配置为捕获与AU相关联的图片的相机。

方面51.根据方面41至50中任一项所述的装置,其中该装置是移动设备。

方面52.一种方法,包括:获得视频数据的比特流;从比特流的至少一部分中提取接入单元(AU);确定AU仅包括一个或多个帧内随机接入点图片或仅包括一或多个逐步解码器刷新图片;以及基于确定AU仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片,将与AU相关联的AU定界符的标志的值设置为1,其中具有值被设置为1的标志指示AU仅包含一个或多个IRAP图片或者仅包含一个或多个GDR图片。

方面53.根据方面52所述的方法,其中标志包括AUD IRAP或GDR标志。

方面54.根据方面52至53中任一项所述的方法,其中AU包括单个视频译码层和单个经译码图片中的至少一个。

方面55.根据方面54所述的方法,其中单个视频译码层和单个经译码图片中的至少一个仅包括一个或多个IRAP图片或仅包括一个或多个GDR图片。

方面56.根据方面52至55中任一项所述的方法,还包括:在提取AU之后,确定AU是IRAP AU或GDR AU。

方面57.根据方面56所述的方法,其中将AUD的标志的值设置为1还包括基于在提取AU之后确定AU是IRAP AU或GDR AU而将标志的值从0改变为1。

方面58.一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,该指令使一个或多个处理器执行根据方面52至57中任一项所述的方法。

方面59.一种装置,包括用于执行根据方面52至57中任一项所述的方法的部件。

方面60.根据方面59所述的装置,其中该装置包括解码器。

方面61.根据方面59至60中任一项所述的装置,还包括被配置为显示与AU相关联的一个或多个图片的显示器。

方面62.根据方面59至61中任一项所述的装置,其中该装置包括编码器。

方面63.根据方面59至62中任一项所述的装置,还包括被配置为捕获与AU相关联的图片的相机。

方面64.根据方面59至63中任一项所述的装置,其中该装置是移动设备。

相关技术
  • 在视频译码中用于基于子解码图片缓冲器(SUB-DPB)的DPB操作的传信
  • 在视频译码中用于基于子解码图片缓冲器(SUB-DPB)的DPB操作的传信
技术分类

06120115606507