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

媒体编解码的方法、装置与计算机可读介质

文献发布时间:2023-06-19 16:09:34



本申请是申请日为2019年10月16日、中国专利申请号为201980069320.3、发明名称为“媒体编解码中多个符合性点的技术”的专利申请的主动修改版本的分案申请。

技术领域

所公开的主题涉及媒体编码和解码,并且更具体地,涉及码流中的多个符合性点(诸如配置文件(profile)、子配置文件、层或级别)的表示。

背景技术

使用具有运动补偿的图片间预测的视频编码和解码已经为人所知数十年。未压缩的数字视频可以由一系列图片组成,每个图片具有例如1920×1080亮度样本及相关联的色度样本的空间尺寸。该一系列图片可以具有固定的或可变的图片速率(也非正式地称为帧率),例如每秒60幅图片或60赫兹(Hz)。未压缩的视频具有很高的比特率要求。例如,每个采样(以60Hz帧率的1920×1080亮度样本分辨率)8比特的1080p60 4:2:0的视频需要接近1.5吉比特每秒(Gbit/s)的带宽。一小时的此类视频需要多于600GB的存储空间。

视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可以有助于减小上述带宽或存储空间要求,在某些情况下可以减小两个数量级或多于两个数量级。可以采用无损压缩和有损压缩以及它们的组合。无损压缩是指可以从已压缩的原始信号中重建原始信号的精确副本的技术。当使用有损压缩时,重建的信号可能与原始信号不同,但是原始信号和重建的信号之间的失真足够小,以使重建的信号可用于预期的应用。在视频的情况下,有损压缩被广泛采用。可容忍的失真量取决于应用,例如某些消费者流媒体应用的用户相比电视供应应用的用户可以容忍更高的失真。可达到的压缩率可以反映:更高的可容许/可接受的失真可以产生更高的压缩率。

视频编码器和解码器可以利用来自几种广泛类别的技术,包括例如运动补偿、变换、量化和熵编码,下面将介绍其中的一些。

为了帮助解码器或底层系统确定给定的已编码媒体码流是否可解码,并且还协助诸如能力协商之类的任务,引入了符合性点(conformance point)。例如,在MPEG标准和类似标准中,配置文件(profile)可以对码流中可能存在的工具集合的已定义子集进行指示。例如,在H.264中,基线配置文件不包括与隔行编码相关的工具,而主配置文件包括此类工具。类似地,级别可以指示码流复杂度的上限。类似地,层可以指示给定标准的码流复杂度(对于给定时间-空间分辨率的最大比特率)。

直到大约2003年,标准经常引入洋葱形(onion-shaped)的配置文件。甚至今天,级别和层仍被定义为洋葱形。这里的洋葱形表示针对“较低”配置文件定义的所有工具(通常,虽然并不总是由数值上较低的配置文件指示符值来指示)都包含在更高的配置文件中。参考图1,基线配置文件(101)显示为一个小圆圈,该小圆圈被一个指示主配置文件(102)的更大的圆圈完全包围。该图示出了基线配置文件(101)的所有工具也被包括在主配置文件(102)中。假设基线配置文件将由配置文件ID 0表示,以及主配置文件将由配置文件ID 1表示。结果,将在视频码流中编码的配置文件ID的单个值与解码器或底层系统能够解码的配置文件ID进行比较就足以从配置文件角度来确定给定的码流是否可解码。例如,如果解码器能够解码主配置文件(具有ID=1),则当经受ID=0的基线码流时,解码器能够解码该码流。级别提供码流复杂度的额外的维度,复杂度通常是结合处理要求(例如,每秒采样数)和内存要求(例如,图片中样本的最大数或位深度等)的组合来衡量的。MPEG标准中的级别通常是洋葱形的。为了解码给定的码流,码流的配置文件和级别必须低于或等于解码器的配置文件和级别。

随着2003年H.264的最终确定,引入了非洋葱形的配置文件。例如,H.264的(不受约束的)基线(201)包括称为灵活宏块排序(Flexible Macroblock Ordering,FMO)(202)的工具,而主配置文件(203)不包括该工具。类似地,主配置文件包括支持隔行编码的工具(204),而基线配置文件中不包括该工具。在两个配置文件之间共有很多其他工具(205)。H.264最初不包括允许指示码流与基线配置文件和主配置文件兼容的机制。这不被不认为是个问题,因为基线配置文件和主配置文件的应用空间被认为是多样化的。

在2013年H.265中,再次创建了非重叠配置文件。但是,这里,标准委员会决定与多个配置文件兼容的指示是所期望的。实施的解决方案取决于可能的配置文件的有限且小的编号空间,在H.265的情况下为32。优选配置文件由五位整数表示。可以通过32位掩码来指示与其余31个配置文件的兼容性,其中每个位指示与如此编号的配置文件的兼容性。

正在考虑的是一种暂时地称为通用视频编码或VVC的新的视频编码标准。预计VVC将支持用户定义的配置文件或子配置文件,以反映某些市场现状。从一开始就不清楚用户可能创建多少个配置文件或子配置文件,因此可能需要支持数百、数千或更多的配置文件和/或子配置文件。此外,由于用于用户定义的配置文件的轻量注册机制是所期望的,因此用于用户定义的配置文件和/或子配置文件的大编号空间也是所期望的。因此,通过位掩码对多个配置文件兼容性的表示是不切实际的。类似的考虑可能适用于其他符合性点,例如级别或层。此外,在某些环境中,可能有必要表达与同一码流中不同类别的多个符合性点(例如,配置文件和子配置文件)的兼容性。

发明内容

本申请实施例提供了媒体编解码的方法、装置与计算机可读介质。

一种媒体解码的方法,包括:

对第一指示进行解码,所述第一指示对已编码视频序列的第一符合性点进行指示;所述第一指示存在于第一高级语法结构中,所述第一指示是根据ITU-T T.35标准进行编码的;对第二指示进行解码,所述第二指示对所述已编码视频序列的第二符合性点进行指示;所述第二指示存在于第二高级语法结构中;基于所述第一符合性点和所述第二符合性点中的至少一个,确定解码器是否能解码所述已编码视频序列;以及基于确定解码器是否能解码所述已编码视频序列,选择性地解码所述已编码视频序列。

本申请实施例还提供了一种媒体解码的装置,包括:至少一个存储器,配置为存储程序代码;以及至少一个处理器,配置为读取所述程序代码并按照所述程序代码的指示进行操作,所述程序代码包括:解码代码,配置为使所述至少一个处理器执行以下操作:对第一指示进行解码,所述第一指示对已编码视频序列的第一符合性点进行指示;所述第一指示存在于第一高级语法结构中,所述第一指示是根据ITU-T T.35标准进行编码的;以及对第二指示进行解码,所述第二指示对所述已编码视频序列的第二符合性点进行指示;所述第二指示存在于第二高级语法结构中;确定代码,配置为使所述至少一个处理器基于所述第一指示和所述第二指示中的至少一个,确定解码器是否能解码所述已编码视频序列;以及选择性解码代码,配置为使所述至少一个处理器基于确定解码器是否能解码所述已编码视频序列,选择性地解码所述已编码视频序列。

本申请实施例还提供了一种媒体编码的方法,包括:

编码得到第一指示,所述第一指示对编码视频序列的第一符合性点进行指示;所述第一指示存在于第一高级语法结构中,所述第一指示根据ITU-T T.35标准进行编码;

编码得到第二指示,所述第二指示对所述编码视频序列的第二符合性点进行指示;所述第二指示存在于第二高级语法结构中;

发送包含所述第一指示和第二指示的编码码流,其中,所述第一符合性点和所述第二符合性点中的至少一个用于供

解码器确定是否能解码所述编码视频序列。

本申请实施例还提供了一种非暂时性计算机可读介质,所述计算机可读介质存储指令,所述指令包括:一个或多个指令,当由装置的一个或多个处理器执行时,所述一个或多个指令使所述一个或多个处理器执行根据本申请实施例的媒体解码方法。

附图说明

根据以下具体实施方式和附图,所公开的主题的进一步特征、性质以及各种优点将会更加明显,在附图中:

图1是根据相关技术的配置文件的示意图。

图2是根据实施例的通信系统的简化框图的示意图。

图3是根据实施例的通信系统的简化框图的示意图。

图4是根据实施例的解码器的简化框图的示意图。

图5是根据实施例的编码器的简化框图的示意图。

图6是支持多个符合性点的语法的语法图。

图7是根据实施例的示例处理的流程图。

图8是根据实施例的计算机系统的示意图。

具体实施方式

目前,至少VVC子配置文件有望允许数百万(如果不是数十亿)选择,如果通过诸如UUID(长度为16字节,因此最多允许2^(8*16)个子配置文件)、URI(实际上是无限长的字符串,但通常在10到100个字符范围内,假设100个字符,则允许2^(8*100)个子配置文件)或T.35字符串(实际上,长度应为至少3个八位字节,以及2^24个子配置文件)的机制对子配置文件进行自注册,则可能会提供更多选择。即使是这些选项中最小的T.35,也将需要2^24大小的位掩码,这对于媒体编码是不切实际的。因此,需要一种新的机制来指示与多于一个配置文件或子配置文件的码流兼容性。

图2是根据本申请实施例的实施例的通信系统(200)的简化框图。系统(200)可以包括经由网络(250)互连的至少两个终端(210-220)。对于数据的单向传输,第一终端(210)可以在本地位置对视频数据进行编码,以通过网络(250)传输到另一终端(220)。第二终端(220)可以从网络(250)接收另一终端的已编码视频数据,对该已编码数据进行解码,并显示恢复的视频数据。单向数据传输在媒体服务应用等中可能是常见的。

图2示出了被提供用于支持已编码视频的双向传输的第二对终端(230、240),该双向传输可以在例如视频会议期间发生。对于数据的双向传输,每个终端(230、240)可以对在本地位置捕获的视频数据进行编码,以经由网络(250)传输到另一终端。每个终端(230、240)还可以接收由另一终端传输的已编码视频数据,可以对已编码数据进行解码,并且可以在本地显示装置上显示恢复的视频数据。

在图2中,终端(210-240)可以被示出为服务器、个人计算机和智能电话,但是本申请实施例的原理可以不限于此。本申请实施例的实施例适用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议装置。网络(250)表示在终端(210-240)之间传送已编码视频数据的任何数目的网络,包括例如有线通信网络和/或无线通信网络。通信网络(250)可以在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。为了本讨论的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本申请实施例的操作可能是不重要的。

作为所公开主题的应用的示例,图3示出了视频编码器和解码器在流式传输环境中的放置。所公开的主题可以同等地应用于其他支持视频的应用,包括例如视频会议、数字电视、在包括CD、DVD、内存条等的数字介质上存储压缩视频,等等。

流式传输系统可以包括采集子系统(313),该采集子系统(313)可以包括视频源(301),例如数字相机,该视频源创建例如未压缩的视频样本流(302)。相较于已编码的视频码流,被描绘为粗线以强调高数据量的样本流(302)可以由耦合至照相机(301)的编码器(303)来处理。编码器(303)可以包括硬件、软件或软硬件组合,以实现或实施如下文更详细地描述的所公开主题的各方面。相较于样本流,被描绘为细线以强调较低数据量的已编码视频码流(304)可以存储在流式传输服务器(305)上以供将来使用。一个或多个流式传输客户端(306、308)可以访问流式传输服务器(305)以检索已编码视频码流(304)的副本(307、309)。客户端(306)可以包括视频解码器(310),该视频解码器(310)对已编码视频码流的输入副本(307)进行解码,并创建可以在显示器(312)或其他呈现装置(未示出)上呈现的输出视频样本流(311)。在一些流式传输系统中,可以根据某些视频编码/压缩标准来对视频码流(304、307、309)进行编码。这些标准的示例包括ITU-T H.265标准。正在开发的是一种非正式地称为通用视频编码或VVC的视频编码标准。所公开的主题可以在VVC的上下文中使用。

图4可以是根据本申请实施例的视频解码器(310)的功能框图。

接收器(410)可以接收将由解码器(310)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。可以从信道(412)接收已编码视频序列,该信道(412)可以是通向存储已编码视频数据的存储装置的硬件/软件链接。接收器(410)可以接收已编码视频数据以及其他数据,例如已编码的音频数据和/或辅助数据流,这些数据可被转发到它们各自的使用实体(未示出)。接收器(410)可以将已编码视频序列与其他数据分开。为了防止网络抖动,缓冲存储器(415)可以耦接在接收器(410)和熵解码器/解析器(420)(此后称为“解析器”)之间。当接收器(410)正从具有足够带宽和可控性的存储/转发装置接收数据或正从等时同步网络接收数据时,可能不需要缓冲存储器(415),或该缓冲存储器可以较小。为了在诸如互联网等的业务分组网络上使用,可能需要缓冲器(415),该缓冲器可以相对大并且可以有利地具有适应性的大小。

视频解码器(310)可以包括解析器(420),以从熵编码视频序列重建符号(421)。这些符号的类别包括用于管理解码器(310)的操作的信息,以及用于控制诸如显示器(312)之类的呈现装置的潜在信息,该呈现装置不是解码器的组成部分,但是可以耦接到解码器,如图3所示。用于一个(多个)呈现装置的控制信息可以是辅助增强信息(SEI消息)或视频可用性信息(VUI)参数集片段(未示出)。解析器(420)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以是根据视频编码技术或标准的,并且可以遵循本领域技术人员已知的原理,包括可变长度编码、霍夫曼编码、具有或不具有环境传感性的算术编码,等等。解析器(420)可以基于对应于群组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。熵解码器/解析器还可以从已编码视频序列信息中提取诸如变换系数、量化器参数值、运动矢量等的信息。

解析器(420)可以对从缓冲器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。

取决于已编码视频图片或其部分的类型(例如,帧间和帧内图片,帧间和帧内块)以及其他因素,符号(421)的重建可涉及多个不同的单元。涉及哪些单元以及涉及方式可以由解析器(420)从已编码视频序列解析的子群控制信息来控制。为了清楚起见,未描述解析器(420)与下文的多个单元之间的此类子群控制信息流。

除了已经提及的功能块以外,解码器310还可以在概念上细分为如下文所描述的多个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互,并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,将概念细分为多个功能单元是适当的。

第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为一个(多个)符号(421)的量化变换系数以及控制信息,包括使用哪种变换、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可以输出包括样本值的块,包括样本值的块可以输入到聚合器(455)中。

在一些情况下,缩放器/逆变换(451)的输出样本可以属于帧内编码块,即,不使用来自先前重建的图片的预测信息、但是可以使用来自当前图片的先前重建部分的预测信息的块。此类预测信息可以由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)使用从当前(部分重建)图片(456)提取的周围已重建信息,来生成与正在重建的块具有相同大小和形状的块。在一些情况下,聚合器(455)基于每个样本将帧内预测单元(452)已经生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。

在其他情况下,缩放器/逆变换单元(451)的输出样本可以属于帧间编码的并且可能运动补偿的块。在这种情况下,运动补偿预测单元(453)可以访问参考图片存储器(457)以提取用于预测的样本。在根据与该块相关的符号(421)对提取的样本进行运动补偿之后,这些样本可以由聚合器(455)添加到缩放器/逆变换单元的输出中(在这种情况下称为残差样本或残差信号),以生成输出样本信息。参考图片存储器内的地址(运动补偿单元从中获取预测样本)可以由运动矢量控制,该运动矢量可以以符号(421)的形式而供运动补偿单元使用,该符号(421)可以具有例如X、Y和参考图片分量。运动补偿还可以包括当使用子样本精确运动矢量时从参考图片存储器中提取的样本值的内插、运动矢量预测机制等。

聚集器(455)的输出样本可以在环路滤波器单元(456)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波技术,该环路内滤波技术由包括在已编码视频码流中的参数控制,并且该参数可以作为来自解析器(420)的符号(421)而用于环路滤波单元(456)。但是,视频压缩技术也可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重建且环路滤波的样本值。

环路滤波器单元(456)的输出可以是样本流,该样本流可以被输出到呈现装置(312),并且可以被存储在参考图片存储器(456)中,以用于将来的图片间预测。

某些已编码图片一旦完全重建,就可以用作参考图片,以用于将来的预测。一旦完全重建了已编码图片并且已将该已编码图片(例如,通过解析器(420))识别为参考图片,当前参考图片(456)就可以变为参考图片缓冲器(457)的一部分,并且可以在开始重建后续的已编码图片之前重新分配新的当前图片存储器。

视频解码器420可以根据预定的视频压缩技术执行解码操作,该预定的视频压缩技术可能记录在诸如ITU-TH.265标准之类的标准中。在遵循如视频压缩技术文档或标准(特别是其中的配置文件)中所指定的视频压缩技术或标准的语法的意义上,已编码视频序列可以符合所使用的视频压缩技术或标准所指定的语法。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可以通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。

在一个实施例中,接收器(410)可以连同已编码视频一起接收附加(冗余)数据。附加数据可以是一个(多个)已编码视频序列的一部分。视频解码器(420)可以使用附加数据来对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可以以例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式呈现。

图5可以是根据本申请实施例的实施例的视频编码器(303)的功能框图。

编码器(303)可以从视频源(301)(并非编码器的一部分)接收视频样本,视频源(301)可以采集将由编码器(303)编码的一个(多个)视频图像。

视频源(301)可以提供将由视频编码器(303)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的位深度(例如,8位、10位、12位等)、任何色彩空间(例如,BT.601Y CrCB、RGB等)和任何合适的取样结构(例如,Y CrCb 4:2:0、YCrCb 4:4:4)。在媒体服务系统中,视频源(301)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(303)可以是采集本地图像信息作为视频序列的相机。可以将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可以构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。本领域技术人员可以很容易理解像素与样本之间的关系。下面的描述侧重于样本。

根据实施例,编码器(303)可以实时地或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。控制器控制如下文所描述的其它功能单元,且在功能上耦接到这些单元。为了清楚起见,图中未标示耦接。由控制器设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。本领域技术人员可以容易地识别控制器(550)的其他功能,因为这些功能可能涉及针对某一系统设计优化的视频编码器(303)。

一些视频编码器以本领域技术人员容易识别为“编码环路”的方式进行操作。作为简单的描述,编码循环可以由编码器(530)的编码部分(此后称为“源编码器”)(负责基于待编码的输入图片和一个(多个)参考图片创建符号)和嵌入在编码器(303)中的(本地)解码器(533)组成,该(本地)解码器(533)重建符号以创建(远程)解码器也将创建的样本数据(因为在本申请实施例主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流输入到参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片缓冲器内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。该参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)对于本领域技术人员而言是众所周知的。

“本地”解码器(533)的操作可以与已在上文结合图4详细描述的“远程”解码器(310)的操作相同。还简要地参考图4,但是,当符号可用且熵编码器(545)和解析器(420)能够无损地将符号编码/解码为已编码视频序列时,包括信道(412)、接收器(410)、缓冲器(415)和解析器(420)在内的解码器(310)的熵解码部分可能无法完全在本地解码器(533)中实施。

此时可以观察到,除了存在于解码器中的解析/熵解码之外的任何解码器技术,也必需以基本上相同的功能形式存在于对应的编码器中。由于这个原因,所公开的主题集中在解码器操作上。编码器技术的描述可以被缩减,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。

作为操作的一部分,源编码器(530)可以执行运动补偿预测编码。参考来自视频序列中被指定为“参考帧”的一个或多个先前已编码帧,所述运动补偿预测编码对输入帧进行预测性编码。以此方式,编码引擎(532)对输入帧的像素块与一个(多个)参考帧的像素块之间的差异进行编码,该参考帧可以被选作该输入帧的一个(多个)预测参考。

本地视频解码器(533)可以基于源编码器(530)创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎(532)的操作可以有利地是有损过程。当已编码视频数据可以在视频解码器(图5中未示出)处被解码时,重建的视频序列通常可以是具有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,该解码过程可以由视频解码器对参考帧执行,并且可以使重建的参考帧存储在参考图片高速缓存(534)中。以此方式,编码器(303)可以在本地存储重建的参考帧的副本,该副本与将由远端视频解码器获得的重建参考帧具有共同内容(不存在传输误差)。

预测器(535)可以针对编码引擎(532)执行预测搜索。即,对于待编码的新帧,预测器(535)可以在参考图片存储器(534)中搜索可作为新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据(例如参考图片运动矢量、块形状等)。预测器(535)可以基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(535)获得的搜索结果所确定的,输入图片可以具有从参考图片存储器(534)中存储的多个参考图片取得的预测参考。

控制器(550)可以管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可以在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)根据本领域技术人员已知的技术(例如霍夫曼编码、可变长度编码、算术编码等)对各种功能单元生成的符号进行无损压缩,从而将该符号转换成已编码视频序列。

发射器(540)可以缓冲由熵编码器(545)创建的一个(多个)已编码视频序列,从而为通过通信信道(560)进行传输做准备,该通信信道(560)可以是通向将存储已编码视频数据的存储装置的硬件/软件链路。发射器(540)可以将来自视频编码器(530)的已编码视频数据与待传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。

控制器(550)可以管理编码器(303)的操作。在编码期间,控制器(550)可以为每个已编码图片分配某一已编码图片类型,这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种帧类型:

帧内图片(I图片),其可以是不将序列中的任何其它帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,IDR)图片。本领域技术人员了解I图片的变体及其相应的应用和特征。

预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以使用多于两个参考图片和相关联元数据以用于重建单个块。

源图片通常可以在空间上细分成多个样本块(例如,每个4×4、8×8、4×8或16×16个样本的块),并且逐块进行编码。可以参考其它(已编码)块对这些块进行预测编码,该其他块是根据应用于块的相应图片的编码分配来确定的。例如,可以对I图片的块进行非预测编码,或可以参考同一图片的已经编码的块来对这些块进行预测编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片通过空间预测或通过时域预测对P图片的像素块进行预测编码。可以参考一个或两个先前编码的参考图片通过空间预测或通过时域预测对B图片的块进行预测编码。

视频编码器(303)可以根据例如ITU-T H.265标准的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(303)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可以符合所用视频编码技术或标准指定的语法。

在一个实施例中,发射器(540)可以连同已编码视频一起传输附加数据。视频编码器(530)可以将此类数据作为已编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、诸如冗余图片和切片之类的其它形式的冗余数据、SEI消息、VUI参数集片段等。

在下文中,假设是通过8位比特串的配置文件表示(在较早的视频编码标准和技术中常见)以及通过T.35字符串的子配置文件表示。ITU-T T.35标准指定注册格式,由至少两个八位字节组成。第一个八位字节携带联合国成员国的国家代码。为了获得注册,实体(例如企业、或某些国家中的个人)可以与当地监管机构联系,并请求在第二个八位字节中编码的256个代码点中的一个。在组成内,可以分配第三个八位字节、第四个八位字节、第五个八位字节等。可以注册T.35字符串中该两个或更多个八位字节的内容。可以根据需要将附加的八位字节添加到T.35字符串中,从而允许增大编号空间,尽管该编号空间的管理由通过第一个八位字节和第二个八位字节标识的企业或个人进行。

所公开的主题不限于通过T.35字符串的配置文件或子配置文件表示。其他选项包括统一资源标识符(URI,可以通过IANA注册的字符串)、通用唯一标识符(UUID,长度为128位,自注册,依赖哈希函数和巨大的编号空间来确保唯一性)等。本文所公开的配置文件和子配置文件标识与MPEG和其他媒体标准中使用的传统配置文件ID之间的区别在于,配置文件或子配置文件的编号空间或二者的组合太大而无法用位掩码表示。换句话说,编号空间可能很大,以至于单独的位掩码编码可能与许多媒体编码标准(即压缩)的目标相矛盾。

在下文中,描述的是使用配置文件和子配置文件作为示例的多个符合性点的信令。然而,所公开的主题同样可以用于其他非洋葱形的符合性点。可以想象,级别可能不是洋葱形的,例如,考虑仅覆盖某些4:3高宽比视频图像的级别,和其他仅覆盖某些9:16高宽比视频图像的级别;还有其他与高宽比无关的级别(目前H.265中的级别)。尽管这样的级别定义在MPEG的历史上可能并不常见,但它们已在某些应用标准中使用。

参考图6,并且根据一个实施例,可以将由T.35字符串、UUID、URI或长度至少为24位的类似表示所表示的一个或多个子配置文件以字符串列表(604)的形式编码成码流。每个字符串可以具有固定的预定长度或使用终止符号的可变长度。例如,在所公开的主题中使用的T.35字符串可以具有例如三个八位字节、四个八位字节、五个八位字节等的预定长度。根据定义,UUID的长度为128位或16个八位字节。URI可以形成为以零终止的字符串,其中值为零的八位字节标记该字符串的结尾,并且该字符串可以具有可变长度。下面示出的是假定T.35字符串的四个八位字节表示的语法图。

参考图6,在同一或另一实施例中,在语法图(601)中,列表可以容易地以具有固定数量的迭代的循环(603)的形式表示。语法元素“num_sub_profiles”(602)可以指示待表示的子配置文件的数量。该语法元素(602)可以是固定长度的二进制编码的、可变长度的编码的或遵循任何其他合适的编码方案。所示为可变长度编码的语法元素,如ue(v)所示。

在子配置文件机制是可选的环境中,可以使用H.264或H.265的ue(v)定义对语法元素进行可变长度编码,并且用单比特表示来指示将包括在子配置文件列表中的零子配置文件的数量。当用于配置文件时,以信号发送至少一个配置文件可能是有利的,因此可以将ue(v)编码方案的单个比特值分配给一个配置文件的编码,从而在不违反语法的情况下实现所需的最小值。

子配置文件指示符(604)可以以任何合适的熵编码格式来表示。这里示出的是32位的位串,用b(32)表示。该位串足以对子配置文件ID的四个八位字节的T.35表示进行编码。子配置文件指示符(604)的其他长度也是可能的。具体地,T.35编码的子配置文件指示符的最小可感知长度可以是24位。其中,8位用于国家代码,8位用于终端提供商代码,8位用于由该国家的终端提供商定义的子配置文件代码。

语法结构(601)可以包括在例如诸如解码器参数集、视频参数集(VPS,如H.265中所定义)、序列参数集(SPS,如H.264和H.265中所定义)之类的高级参数集,以及诸如MPEG-2或MPEG-4中定义的序列报头、GOP报头或图片报头之类的高级报头结构中。语法结构也可以在码流外部可用,例如以元数据的形式在用于能力声明或交换的协议中使用。这里,可以使用诸如ASN.1、SDP、XML之类的语法进行编码。

也可以将码流符合性点定义为如本文所述的多个符合性点的组合。例如,可以将码流符合性点定义为配置文件ID(例如可以由8位固定长度码字表示)和子配置文件ID(可以由T.35字符串表示)的组合。在这种情况下,T.35字符串可以标识由配置文件ID标识的子配置文件。结果,相同的子配置文件ID可以根据配置文件来标识不同的码流符合性点。

根据上述机制或与其基本类似的机制,在码流中或以元数据的形式存在多个符合性点有很多可能的用途。

例如,考虑存在多个解码器生态系统,每个解码器生态系统可能彼此略有不同。这样的生态系统可能是某些国家标准,例如,数字电视国家标准(ATSC,Advanced TelevisionSystems Committee)、欧洲的数字视频广播(DVB,Digital Video Broadcasting)标准、无线工业及商贸联合会(ARIB,Association of Radio Industries and Businesses)标准,每个标准都需要根据国家或地区的偏好或需求对“主”配置文件进行子配置文件划分。还应考虑多个“围墙花园”生态系统,每个“围墙花园”生态系统的解码器要求略有不同。例如,考虑到不同的内容提供商。

现在考虑希望在不运行多个编码器的情况下向多个生态系统提供内容的内容提供商。这样做具有很多商业优势。内容提供商可能完全知道它要服务的所有生态系统的详细要求,以及它们的子配置文件T.35字符串。只要生态系统之间的要求不矛盾,内容提供者就可以使用最小公分母方法来标识最大工具集,该工具集一方面允许这种情况下的可选的压缩性能,另一方面仍允许由解码器对所有目标生态系统进行解码。

内容提供商根据该最小公分母方法对源材料进行编码,将“主配置文件”指示为配置文件,并且为例如所有ATSC、DVB和ARIB指示子配置文件。每个ATSC、DVB和ARIB可能已向合适的注册机构注册了相关子配置文件ID。在T.35的情况下,例如向ITU-T和/或相关地方监管机构规定的地方注册机构进行注册。例如,ATSC可能已向对应的国家监管机构注册了相关子配置文件,并收到四个八位字节的T.35字符串。该字符串以一个等于181的八位字节(对应的国家代码)开头,并且其余三个八位字节的示例性值为01、02和03。类似地,DVB可能已接收到等于66、04、05、06的四个八位字节字符串,ARIB可能已接收到等于00 07 08 09的字符串。生成的子配置文件表如下所示:

num_sub_profile=2

sub_profile_t35_string[0]=181 01 02 03

sub_profile_t35_string[1]=66 04 05 06

sub_profile_t35_string[2]=00 07 08 09

目前,生态系统解码器广泛地期望给定的配置文件ID,通常是主配置文件ID,但是静默遵守给定生态系统所要求的其他约束。可以在子配置文件ID中指示这样的兼容性。考虑已经从内容提供者获得码流的内容服务器。该内容服务器可以解析子配置文件ID,以检查给定的码流是否与生态系统兼容,并且仅在兼容时才提供并服务该码流。

在上述示例中,例如:考虑位于某一国家并遵循ARIB标准的内容服务器,该服务器已从位于其他国家的第三方提供商接收了码流。码流可以指示主配置文件。仅凭该信息并且没有所公开的主题,内容服务器不知道(至少不解析整个码流就不知道)该国家的解码器是否按照ARIB标准工作、是否可以有意义地接收和解码其他国家的码流,以确保ARIB规范兼容性。但是,如果按照上述指示标记了码流,则内容服务器可以解析在其中能够期望子配置文件字符串的高级语法结构。当找到包括ARIB标识的子配置文件指示时,可以假定遵循ARIB标准的要求对码流进行了编码,并很容易地将其提供给(兼容ARIB的)解码器。类似地,位于欧洲某一国家并希望符合DVB内容的内容服务器、或位于另一国家希望符合ATSC内容的内容服务器同样可以将码流提供给各自的解码器。

作为替代,某些生态系统解码器可能要求在尝试解码之前在码流中存在适当的子配置文件ID。

图7是根据实施例的示例处理的流程图。

如图7所示,过程700可以包括解码对已编码视频序列的第一符合性点进行指示的第一指示(框710)。

在一些实施例中,如图7所示,过程700可以包括解码对已编码视频序列的第二符合性点进行指示的第二指示(框720)。

在一些实施例中,如图7所示,过程700可以包括基于第一指示和第二指示来识别组合的符合性点(框730)。

在一些实施例中,如图7所示,过程700可以包括确定解码器是否能解码已编码视频序列(框740)。

在一些实施例中,如图7所示,过程700可以包括基于确定解码器是否能解码已编码视频序列,选择性地解码已编码视频序列。例如,如果已编码视频序列不能被解码器解码(框740-否),则过程700可以包括防止已编码视频序列的解码(框750)。可替代地,如果已编码视频序列能被解码器解码(框740-是),则过程700可以包括对已编码视频序列进行解码(框760)。

附加地或可替代地,过程700可以包括解码对已编码视频序列的第一符合性点进行指示的第一指示。进一步,过程700可以包括解码对已编码视频序列的第二符合性点进行指示的第二指示。进一步,过程700可以包括基于第一符合性点和第二符合性点中的至少一个,确定解码器是否能解码该已编码视频序列。仍进一步,过程700可以包括基于确定解码器是否能解码该已编码视频序列,选择性地解码该已编码视频序列。

在一些情况下,第一指示是根据ITU-T T.35标准进行编码的。附加地或可替代地,第一指示是第一高级语法结构中存在的多个第一指示中的一个,并且第一高级语法结构至少与该已编码视频序列有关。附加地或可替代地,将多个第一指示组成为第一指示的列表,并且该列表中的第一指示的数量在高级语法结构中被编码为可变长度的无符号码字。

在一些情况下,第一指示存在于第一高级语法结构中,第二指示存在于第二高级语法结构中,并且第一高级语法结构与第二高级语法结构不同。

在一些情况下,将第一指示编码为长度上至少三个八位字节的八位字节串,并且第一指示是第二指示的子配置文件。

在一些情况下,过程700包括组合第一指示和第二指示,并且基于第一指示和第二指示的组合,识别组合的符合性点。附加地或可替代地,过程700包括比较该组合的符合性点和解码器的能力信息,并且基于该组合的符合性点和解码器的能力信息的比较,确定解码器是否能解码该已编码视频序列。

在一些情况下,媒体码流既符合第一符合性点又符合第二符合性点。

可以将上述用于以信号发送媒体编码中的多个符合性点的技术实现为计算机软件,该计算机软件使用计算机可读指令,并且物理存储在一个或多个计算机可读介质中。例如,图8示出适于实施所公开的主题的某些实施例的计算机系统800。

可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过译码、微码执行等执行。

指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。

图8所示的计算机系统800的组件本质上是示例性的,并且不旨在对实施本申请实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统800的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖或要求。

计算机系统800可以包括某些人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未示出)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的某些介质,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。

输入人机接口装置可以包括下述中的一个或多个(每种中仅描绘一个):键盘801、鼠标802、触控板803、触摸屏810、数据手套804、操纵杆805、麦克风806、扫描仪807、相机808。

计算机系统800也可以包括某些人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏810的触觉反馈、数据手套804或操纵杆805,但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器809、耳机(未示出))、视觉输出装置(例如包括阴极射线管(CRT)屏幕、液晶显示(LCD)屏幕、等离子屏幕、有机发光二极管(OLED)屏幕的屏幕810,每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能,其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未示出)、全息显示器和烟箱(未示出)以及打印机(未示出)来输出二维视觉输出或超过三维的输出。

计算机系统800也可以包括人类可访问存储装置及其关联介质:例如包括具有CD/DVD等介质821的CD/DVD ROM/RW 820的光学介质、指状驱动器822、可拆卸硬盘驱动器或固态驱动器823、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未示出)等。

本领域技术人员还应该理解,结合当前公开的主题使用的所术语“计算机可读介质”不涵盖传输介质、载波或其他暂时性信号。

计算机系统800还可以包括到一个或多个通信网络的接口。网络可以例如是无线网络、有线网络、光网络。网络可以在一些实施例中是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括全球移动通信系统(GSM)、第三代(3G)、第四代(4G)、第五代(5G)、长期演进(LTE)等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(849)的外部网络接口适配器(例如计算机系统800的通用串行总线(USB)端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统800的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统800可以使用这些网络中的任何一个网络与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口的每一个上使用某些协议和协议栈。

上述人机接口装置、人机可访问的存储装置和网络接口可以附接到计算机系统800的内核840。

内核840可以包括一个或多个中央处理单元(CPU)841、图形处理单元(GPU)842、现场可编程门区域(FPGA)843形式的专用可编程处理单元、用于某些任务的硬件加速器844等。这些装置以及只读存储器(ROM)845、随机存取存储器846、诸如内部非用户可访问的硬盘驱动器、固态驱动(SSD)等之类的内部大容量存储器847可以通过系统总线848连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线848,以能够通过附加的CPU、GPU等进行扩展。外围装置可以直接连接到内核的系统总线848或通过外围总线849连接到内核的系统总线848。外围总线的体系结构包括外围部件互连(PCI)、USB等。

CPU 841、GPU 842、FPGA 843和加速器844可以执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在ROM 845或RAM 846中。过渡数据也可以存储在RAM 846中,而永久数据可以例如存储在内部大容量存储器847中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个CPU 841、GPU842、大容量存储847、ROM 845、RAM 846等。

计算机可读介质可以在其上具有执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本申请实施例的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制性示例,可以由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构800,特别是内核840的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性内核840的存储器,例如内核内部大容量存储器847或ROM 845。可以将实施本申请实施例的各种实施例的软件存储在此类装置中并由内核840执行。根据特定需要,计算机可读介质可以包括一个或多个存储装置或芯片。软件可以使得内核840,特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM中的数据结构846以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器844)中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本申请实施例包括硬件和软件的任何合适的组合。

尽管本申请实施例已经描述了多个示例性实施例,但是存在落入本申请实施例的范围内的改变、置换和各种替代等同物。因此,应当理解,本领域技术人员将能够设计出许多系统和方法,这些系统和方法虽然未在本文中明确示出或描述,但是体现了本申请实施例的原理,并因此属于本申请实施例的精神和范围内。

技术分类

06120114725355