用于可伸缩视频编码和解码的层间预测的制作方法

文档序号:13081568阅读:378来源:国知局
用于可伸缩视频编码和解码的层间预测的制作方法与工艺

本发明涉及一种用于视频编码和解码的装置、方法和计算机程序。



背景技术:

这一章节意图为提供权利要求中记载的发明的背景或上下文。本文的描述可以包括可能被寻求的概念,但不必然是之前已经被构想或寻求的概念。因此,除非本文另有指示,否则这一章节中描述的内容不是本申请中的描述和权利要求的现有技术,并且不通过包括在这一章节中而被承认为现有技术。

可伸缩视频编码是指如下的编码结构,其中一个比特流可以包含内容在不同比特率、分辨率或帧速率下的多个表示。在这些情况中,接收器可以取决于它的特性来提取所期望的表示。替换地,服务器或网络元件可以取决于例如接收器的网络特性或处理能力来提取将被传输给接收器的比特流的部分。可伸缩比特流通常由基础层以及一个或多个增强层构成,基础层提供可用的最低质量视频,一个或多个增强层在与较低层一起被接收和解码时增强视频质量。为了改进用于增强层的编码效率,该层的经编码的表示通常取决于较低层。

为了支持客户端在流式会话期间在不同质量和分辨率之间切换,可以利用节段边界处的经编码的随机访问点图片。常规地,仅开始所谓的封闭图片组(gop)预测结构的瞬时随机访问点(rap)图片,如瞬时解码刷新(idr)图片,已经被使用在http上动态适应性流动(dash)表示的节段边界处。对开始开放gop的内部图片(例如,h.265/hevc中的清洁随机访问(cra)图片)的使用当与较旧的标准比较时已经在h.265/hevc中被改进,因为从cra图片开始的解码过程已经规范地被规定。当解码从cra图片开始时,按编码顺序在cra图片之后但是按输出顺序在cra图片之前的、参考随机访问跳过引导(rasl)图片的一些图片可能不是可解码的。结果,如果开放gop被使用在dash中的节段边界处,则表示切换可能导致不能解码rasl图片并且因此导致回放中的图片速率毛刺。例如,如果使用8个图片的预测层次并且图片速率为25hz,则视频将会被冻结大约三分之一秒。



技术实现要素:

现在,为了至少减轻上述问题,本文介绍了用于编码和解码跳过图片的方法。

根据第一实施例的方法包括:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则该方法进一步包括:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据第二实施例的装置包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则所述代码在由所述至少一个处理器执行时,进一步使得装置至少执行:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据第三实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则所述代码在由所述至少一个处理器执行时,进一步使得装置至少执行:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据第四实施例,提供了一种包括视频解码器的装置,视频解码器被配置用于解码包括图像序列的比特流,视频解码器包括:

用于解码第一经编码的视频表示的第一部分的部件;

用于接收并解析与解码第二经编码的视频表示有关的信息的部件,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;其中该装置进一步包括:

用于如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码、则将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片的部件,其中处理包括重采样和样本值伸缩之一或两者;以及

用于使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分的部件。

根据第五实施例,提供了一种视频解码器,其被配置用于解码包括图像序列的比特流,其中所述视频解码器进一步被配置用于:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则该方法进一步包括:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据第六实施例的方法包括:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第七实施例的装置包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第八实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第九实施例,提供了一种包括视频编码器的装置,视频编码器被配置用于解码包括图像序列的比特流,视频编码器包括:

用于从媒体展示描述解析用于至少两个表示的元数据的部件;

用于从媒体展示描述解析一个或多个特性的部件,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十实施例,提供了一种视频编码器,其被配置用于解码包括图像序列的比特流,其中所述视频编码器进一步被配置用于:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十一实施例的方法包括:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十二实施例的装置包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十三实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十四实施例,提供了一种包括视频编码器的装置,视频编码器被配置用于编码包括图像序列的比特流,视频编码器包括:

用于在媒体展示描述中提供用于至少两个表示的元数据的部件;

用于在媒体展示描述中提供一个或多个特性的部件,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十五实施例,提供了一种视频编码器,其被配置用于解码包括图像序列的比特流,其中所述视频编码器进一步被配置用于:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十六实施例的方法包括:

接收包括图片数据单元的比特流作为第一表示;

确定在第一切换点处中断第一表示的传输;

传输第一表示上的图片数据单元直到第一切换点,所述图片数据单元包括至少一个数据单元,该至少一个数据单元适合于当解码在所述第一切换点之后的第二视频表示的第二部分时用作用于预测的参考。

根据第十七实施例,提供了一种装置,包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

接收包括图片数据单元的比特流作为第一表示;

确定在第一切换点处中断第一表示的传输;

传输第一表示上的图片数据单元直到第一切换点,所述图片数据单元包括至少一个数据单元,该至少一个数据单元适合于当解码在所述第一切换点之后的第二视频表示的第二部分时用作用于预测的参考。

根据第十八实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

接收包括图片数据单元的比特流作为第一表示;

确定在第一切换点处中断第一表示的传输;

传输第一表示上的图片数据单元直到第一切换点,所述图片数据单元包括至少一个数据单元,该至少一个数据单元适合于当解码在所述第一切换点之后的第二视频表示的第二部分时用作用于预测的参考。

附图说明

为了对本发明的更好理解,现在将通过示例的方式对附图作出参考,在附图中:

图1示意性地示出了采用本发明的实施例的电子设备;

图2示意性地示出了适合于采用本发明的实施例的用户设备;

图3进一步示意性地示出了使用无线和有线网络连接而被连接的采用本发明的实施例的电子设备;

图4示意性地示出了适合于实施本发明的实施例的编码器;

图5示出了由两个区块构成的图片的示例;

图6描绘了一些http上动态适应性流动表示的一些细节;

图7示出了sp图片如何可以用来在两个不同比特流之间切换的示例;

图8a示出了具有引导图片的两个比特流的示例;

图8b图示了一种情形的示例,在该情形中,引导图片的解码在从一个比特流向另一比特流的切换期间被省略;

图8c图示了一种情形的示例,在该情形中,来自两个比特流的i图片被接收并解码用于从一个比特流切换到另一比特流;

图8d图示了一种情形的示例,在该情形中,另一比特流的引导图片的解码在从一个比特流向另一比特流的切换期间被省略;

图8e图示了根据一种实施例的从一个比特流向另一比特流的切换期间的解码操作的示例;

图9a图示了根据一种实施例的用于冗余适应性分辨率改变的节段的编码和准备的示例;

图9b图示了根据一种实施例的在上切换期间的冗余适应性分辨率改变方法的操作;

图9c图示了根据一种实施例的用于隐式参考图片重采样方法的节段的编码和准备的示例;

图9d图示了根据一种实施例的在上切换期间的隐式参考图片重采样方法的操作;

图10示出了根据本发明的实施例的编码方法的流程图;

图11示出了根据本发明的实施例的解码方法的流程图;

图12示出了适合于实施本发明的实施例的解码器的示意图;

图13示出了各种实施例可以实施在其内的示例多媒体通信系统的示意图。

具体实施方式

下文进一步详细地描述了用于在例如http上适应性流动中的异构视频表示之间进行切换的适合的装置和可能的机制。在这一点上,首先对图1和图2作出参考,其中图1把根据示例实施例的视频编码系统的框图示出为示例性装置或电子设备50的示意性框图,其可以包含根据本发明的实施例的编解码。图2示出了根据示例实施例的装置的布局。图1和图2的元件接下来将被解释。

电子设备50可以例如是无线通信系统的移动终端或用户设备。然而,将明白本发明的实施例可以被实施在可能要求编码和解码或编码或解码视频图像的任何电子设备或装置内。

装置50可以包括用于包含和保护该设备的壳体30。装置50可以进一步包括采用液晶显示器的形式的显示器32。在本发明的其他实施例中,显示器可以是适合于显示图像或视频的任何适合的显示器技术。装置50可以进一步包括小键盘34。在本发明的其他实施例中,可以采用任何适合的数据或用户接口机构。例如,用户接口可以被实施为作为触敏显示器的一部分的虚拟键盘或数据录入系统。

该装置可以包括麦克风36或任何适合的音频输入,任何适合的音频输入可以是数字或模拟信号输入。装置50可以进一步包括音频输出设备,其在本发明的实施例中可以是以下任一项:耳机38、扬声器、或模拟音频或数字音频输出连接。装置50还可以包括电池40(或在本发明的其他实施例中,设备可以由任何适合的移动能量设备供电,诸如,太阳能电池、燃料电池或发条发电器)。该装置可以进一步包括能够记录或捕获图像和/或视频的相机42。装置50可以进一步包括用于向其他设备的短程视线通信的红外端口。在其他实施例中,装置50可以进一步包括任何适合的短程通信解决方案,诸如,例如蓝牙无线连接或usb/火线有线连接。

装置50可以包括用于控制装置50的控制器56或处理器。控制器56可以连接至存储器58,存储器58在本发明的实施例中可以存储采用图像形式的数据和音频数据这两者,和/或还可以存储用于在控制器56上实施的指令。控制器56可以进一步连接至编解码电路54,编解码电路54适合于执行音频和/或视频数据的编码和解码,或辅助由控制器执行的编码和解码。

装置50可以进一步包括卡读取器48和智能卡46,例如uicc和uicc读取器,用于提供用户信息并且适合于提供认证信息用于用户在网络处的认证和授权。

装置50可以包括无线电接口电路52,无线电接口电路52连接至控制器并且适合于生成无线通信信号,例如用于与蜂窝通信网络、无线通信系统或无线局域网络的通信。装置50可以进一步包括天线44,天线44连接至无线电接口电路52以用于将无线电接口电路52处生成的射频信号发射至(多个)其他装置,并且用于从(多个)其他装置接收射频信号。

装置50可以包括能够记录或检测个体帧的相机,这些个体帧然后被传递给编解码器54或控制器用于处理。该装置可以在传输和/或存储之前从另一设备接收用于处理的视频图像数据。装置50还可以无线地或通过有线连接来接收用于编码/解码的图像。

关于图3,示出了其内可以利用本发明的实施例的系统的示例。系统10包括可以通过一个或多个网络进行通信的多个通信设备。系统10可以包括有线网络或无线网络的任何组合,包括但不限于无线蜂窝电话网络(诸如,gsm、umts、cdma网络等)、诸如由任何ieee802.x标准定义的无线局域网(wlan)、蓝牙个域网、以太网局域网、令牌环局域网、广域网、以及互联网。

系统10可以包括适合于实施本发明的实施例的有线和无线这两者的通信设备和/或装置50。

例如,图3中所示出的系统示出了移动电话网络11和互联网28的表示。去往互联网28的连接可以包括但不限于长程无线连接、短程无线连接、以及各种有线连接,包括但不限于电话线、电缆线、电力线、以及类似的通信路径。

系统10中所示出的示例通信设备可以包括但不限于电子设备或装置50、个人数字助理(pda)和移动电话14的组合、pda16、综合消息收发设备(imd)18、台式计算机20、笔记本计算机22。装置50可以是静止的,或者在由正移动的个人携带时是移动的。装置50还可以位于运输模式中,包括但不限于小汽车、货车、出租车、公共汽车、火车、船、飞机、自行车、摩托车、或任何类似适合的运输模式。

实施例还可以被实施在以下各项中:机顶盒,即数字tv接收器,其可以具有/可以不具有显示器或无线能力;平板或(膝上)个人计算机(pc),其具有硬件或软件或编码器/解码器实施方式的组合;各种操作系统;以及芯片集、处理器、dsp和/或基于嵌入式系统供应硬件/软件的编码。

一些装置或进一步的装置可以发送和接收呼叫和消息,并且通过到基站24的无线连接25与服务提供者进行通信。基站24可以连接至网络服务器26,网络服务器26允许移动电话网络11与互联网28之间的通信。该系统可以包括另外的通信设备和各种类型的通信设备。

通信设备可以使用各种传输技术进行通信,包括但不限于码分多址(cdma)、全球移动通信系统(gsm)、通用移动电信系统(umts)、时分多址(tdma)、频分多址(fdma)、传输控制协议-互联网协议(tcp-ip)、短消息服务(sms)、多媒体消息服务(mms)、电子邮件、即时消息服务(ims)、蓝牙、ieee802.11和任何类似的无线通信技术。在实施本发明的各种实施例时牵涉到的通信设备可以使用各种介质进行通信,包括但不限于无线电、红外、激光、电缆连接和任何适合连接。

视频编解码器由编码器和解码器构成,编码器将输入视频变换为适合于存储/传输的经压缩的表示,解码器可以将经压缩的视频表示解压缩回到可观看的形式。视频编码器和/或视频解码器还可以彼此分离,即不需要形成编解码器。通常,编码器丢弃原始视频序列中的一些信息以便以更紧凑的形式(也就是说,以较低的比特率)表示视频。

典型的混合视频编码器(例如itu-th.263和h.264的许多编码器实施方式)在两个阶段中编码视频信息。首先,某个图片区域(或“块”)中的像素值例如通过运动补偿手段(找到并指示之前编码的视频帧中的与正被编码的块紧密对应的一个视频帧中的区域)或通过空间手段(使用将以指定方式被编码的块周围的像素值)被预测。其次,预测误差(即,预测的像素块与原始像素块之间的差异)被编码。这通常通过以下来完成:使用指定变换(例如,离散余弦变换(dct)或它的变体)来变换像素中的差异,对系数进行量化,以及对经量化的系数进行熵编码。通过改变量化过程的保真度,编码器可以控制像素表示的准确性(图片质量)与所得的经编码的视频表示的大小(文件大小或传输比特率)之间的平衡。

之间预测(其也可以称为时间预测、运动补偿、或经运动补偿的预测)减少了时间冗余。在之间预测中,预测的来源是之前解码的图片。之内预测利用了如下事实:相同图片内的邻近像素可能是相关的。之内预测可以在空间域或变换域中被执行,即,样本值或变换系数可以被预测。通常在之内编码中利用之内预测,其中没有之间编码被应用。

编码过程的一个结果是编码参数(诸如运动矢量和经量化的变换系数)的集合。许多参数在它们首先从空间上或时间上相邻的参数被预测的情况下可以更有效率地被熵编码。例如,运动矢量可以从空间上邻近的运动矢量被预测并且仅相对于运动矢量预测符的差异可以被编码。编码参数的预测和之内预测可以统称为图片内预测。

图4示出了适合于采用本发明的实施例的视频编码器的框图。图4呈现了用于两层的编码器,但是将明白,所呈现的编码器可以类似地被扩展到编码多于两层。图4图示了视频编码器的实施例,其包括用于基础层的第一编码器段500和用于增强层的第二编码器段502。第一编码器段500和第二编码器段502中的每个可以包括用于编码传入图片的类似元件。编码器段500、502可以包括像素预测器302、402、预测误差编码器303、403和预测误差解码器304、404。图4还将像素预测器302、402的实施例示出为包括之间预测器306、406、之内预测器308、408、模式选择器310、410、滤波器316、416和参考帧存储器318、418。第一编码器段500的像素预测器302接收300将在之间预测器306(其确定图像与经运动补偿的参考帧318之间的差异)和之内预测器308(其仅基于当前帧或图片的已经处理部分来确定针对图像块的预测)两者处被编码的视频流的基础层图像。之间预测器和之内预测器两者的输出被传递至模式选择器310。之内预测器308可以具有多于一个之内预测模式。因此,每个模式可以执行之内预测并且将预测的信号提供给模式选择器310。模式选择器310还接收基础层图片300的副本。对应地,第二编码器段502的像素预测器402接收400将在之间预测器406(其确定图像与经运动补偿的参考帧418之间的差异)和之内预测器408(其仅基于当前帧或图片的已经处理部分来确定针对图像块的预测)两者处被编码的视频流的增强层图像。之间预测器和之内预测器两者的输出被传递至模式选择器410。之内预测器408可以具有多于一个之内预测模式。因此,每个模式可以执行之内预测并且将预测的信号提供给模式选择器410。模式选择器410还接收增强层图片400的副本。

取决于哪种编码模式被选择来编码当前块,之间预测器306、406的输出、或可选的之内预测器模式之一的输出、或模式选择器内的表面编码器的输出被传递至模式选择器310、410的输出。模式选择器的输出被传递至第一求和设备321、421。第一求和设备可以从基础层图片300/增强层图片400减去像素预测器302、402的输出以产生第一预测误差信号320、420,其被输入至预测误差编码器303、403。

像素预测器302、402进一步从初步重构器339、439接收图像块的预测表示312、412和预测误差解码器304、404的输出338、438的组合。初步重构的图像314、414可以被传递至之内预测器308、408和滤波器316、416。接收初步表示的滤波器316、416可以对初步表示进行滤波并且输出最终重构的图像340、440,其可以被保存在参考帧存储器318、418中。参考帧存储器318可以连接至之间预测器306以用作将来的基础层图片300在之间预测操作中与之相比较的参考图像。服从于根据一些实施例基础层被选择和指示为用于增强层的层间样本预测和/或层间运动信息预测的来源,参考帧存储器318还可以连接至之间预测器406以用作将来的增强层图片400在之间预测操作中与之相比较的参考图像。此外,参考帧存储器418可以连接至之间预测器406以用作将来的增强层图片400在之间预测操作中与之相比较的参考图像。

服从于根据一些实施例基础层被选择和指示为用于预测增强层的滤波参数的来源,来自第一编码器段500的滤波器316的滤波参数可以被提供给第二编码器段502。

预测误差编码器303、403包括变换单元342、442和量化器344、444。变换单元342、442将第一预测误差信号320、420变换至变换域。该变换例如为dct变换。量化器344、444对变换域信号(例如dct系数)进行量化以形成量化的系数。

预测误差解码器304、404接收来自预测误差编码器303、403的输出并且执行预测误差编码器303、403的相反过程以产生经解码的预测误差信号338、438,其当在第二求和设备339、439处与图像块的预测表示312、412组合时产生初步重构的图像314、414。预测误差解码器可以被考虑为包括:反量化器361、461,其对量化的系数值(例如dct系数)进行反量化以重构变换信号;以及逆变换单元363、463,其对重构的变换信号执行逆变换,其中逆变换单元363、463的输出包含(多个)经重构的块。预测误差解码器还可以包括块滤波器,其可以根据进一步解码的信息和滤波器参数对(多个)经重构的块进行滤波。

熵编码器330、430接收预测误差编码器303、403的输出,并且可以对信号执行适合的熵编码/可变长度编码以提供误差检测和校正能力。熵编码器330、430的输出可以例如通过复用器508被插入到比特流中。

高级视频编码(h.264/avc,也称为avc)标准由国际电信联盟(itu-t)的电信标准化部门的视频编码专家组(vceg)的联合视频工作组(jvt)和国际标准化组织(iso)/国际电工技术委员会(iec)的运动图片专家组(mpeg)所开发。h.264/avc标准由这两个母标准化组织颁布,并且它被称为itu-t推荐h.264和iso/iec国际标准14496-10,也作为mpeg-4第10部分高级视频编码(avc)而已知。已经存在h.264/avc标准的多个版本,以将新扩展或特征整合到规范。这些扩展包括可伸缩视频编码(svc)和多视图视频编码(mvc)。

高效率视频编码(h.265/hevc,也称为hevc)标准的版本1由vceg和mpeg的联合协作工作组-视频编码(jct-vc)所开发。该标准由这两个母标准化组织所颁布,并且它被称为itu-t推荐h.265和iso/iec国际标准23008-2,也作为mpeg-h第2部分高效率视频编码(hevc)而已知。h.265/hevc的版本2包括可伸缩、多视图、以及保真度范围扩展,它们可以分别缩写为shvc、mv-hevc和rext。h.265/hevc的版本2被预公布为itu-t推荐h.265(10/2014)并且可能在2015年被公布为iso/iec23008-2的版次2。当前存在进行中的标准化项目来开发h.265/hevc的进一步扩展,包括三维和屏幕内容编码扩展,它们可以分别缩写为3d-hevc和scc。

shvc、mv-hevc和3d-hevc使用共同的基础规范,其规定在hevc标准的版本2的附录f中。这一共同基础包括例如高级别语法和语义,其例如规定了比特流的层的一些特性(诸如层间依赖性)以及解码过程(诸如参考图片列表构造,包括用于多层比特流的层间参考图片和图片顺序计数推导)。附录f还可以使用在hevc的潜在的后续多层扩展中。将理解,即使视频编码器、视频解码器、编码方法、解码方法、比特流结构、和/或实施例可能在下文中参考特定扩展(诸如shvc和/或mv-hevc)被描述,但是它们一般地适用于hevc的任何多层扩展,并且甚至更一般地适用于任何多层视频编码方案。

在这一章节中,作为实施例可以被实施在其中的视频编码器、解码器、编码方法、解码方法和比特流结构的示例,描述了一些关键定义、比特流和编码结构、以及h.264/avc和hevc的概念。一些关键定义、比特流和编码结构、以及h.264/avc的概念与hevc中相同—因此它们在下文联合地被描述。本发明的各方面不限于h.264/avc或hevc,而是针对本发明可以部分地或完全地被实现在其上的一个可能基础而给出本描述。

类似于许多较早的视频编码标准,h.264/avc和hevc中规定了比特流语法和语义以及用于无错误比特流的解码过程。编码过程未被规定,但是编码器必须生成一致的比特流。比特流和解码器一致性可以利用假想参考解码器(hrd)来验证。这些标准包含有助于应对传输错误和损耗的编码工具,但是这些工具在编码中的使用是可选的并且未针对有错误比特流规定解码过程。

在已有标准的描述中以及在示例实施例的描述中,语法元素可以被定义为比特流中表示的数据的元素。语法结构可以被定义为按指定顺序一起存在于比特流中的零个或更多语法元素。在已有标准的描述中以及在示例实施例的描述中,可能使用短语“由外部手段”或“通过外部手段”。例如,实体(诸如解码过程中使用的变量的语法结构或值)可以“由外部手段”提供给解码过程。短语“由外部手段”可以指示实体未被包括在由编码器创建的比特流中,而是例如使用控制协议从比特流外部地被运送。它可以替换地或另外地意指实体未由编码器创建,但是可以被创建在例如使用解码器的播放器或解码控制逻辑等中。解码器可以具有用于输入该外部手段(诸如变量值)的接口。

简档(profile)可以被定义为由解码/编码标准或规范规定的整个比特流语法的子集。在由给定简档的语法施加的边界内,取决于由比特流中的语法元素采取的值(诸如经解码的图片的指定大小),仍然有可能要求编码器和解码器的性能上的非常大的变化。在许多应用中,在特定简档内实施能够应对语法的所有假设用途的解码器可能既不实际也不经济。为了应对这一问题,可以使用级别(level)。级别可以被定义为解码/编码标准或规范中规定的比特流和变量中的语法元素的值上所施加的约束的指定集合。这些约束可以是对值的简单限制。替换地或另外地,它们可以采取对值的算术组合的约束的形式(例如,图片宽度乘以图片高度乘以每秒解码的图片数目)。也可以使用用于指定对级别的约束的其他手段。级别中指定的一些约束可以例如涉及最大图片大小、最大比特率和每时间段(诸如秒)按照编码单元(诸如宏块)的最大数据速率。针对所有简档可以定义相同的级别集合。可能优选的是,例如,增大实施不同简档的终端的互操作性,使得每个级别的定义的大多数或所有方面跨不同简档可以是共同的。层级(tier)可以被定义为对比特流中的语法元素的值施加的级别约束的指定类别,其中级别约束被嵌套在层级内,并且符合于某个层级和级别的解码器将会能够解码符合于该级别的相同层级或较低层级或任何低于它的级别的所有比特流。

在一些情况下,一致性点可以被定义为特定简档和特定级别的组合或者特定简档、特定层级和特定级别的组合。需要理解,一致性点可以按替换方式被定义,而它指定比特流的特性和限制和/或解码器的特性和(最大)资源的意图可以保持不变。

用于h.264/avc或hevc编码器的输入和h.264/avc或hevc解码器的输出的基元单元分别是图片。给定作为编码器的输入的图片也可以被称为源图片,并且由解码器解码的图片可以被称为经解码的图片。

源图片和经解码的图片每个都由一个或多个样本阵列组成,诸如样本阵列的以下集合之一:

仅亮度(y)(单色的)。

亮度和两个色度(ycbcr或ycgco)。

绿、蓝和红(gbr,也称为rgb)。

表示其他未指定的单色或三刺激色彩采样的阵列(例如,yzx,也称为xyz)。

在下文中,这些阵列可以被称为亮度(或l或y)和色度,其中两个色度阵列可以被称为cb和cr;而不管使用中的实际色彩表示方法。使用中的实际色彩表示方法可以在经编码的比特流中例如使用h.264/avc和/或hevc的视频可用性信息(vui)语法来指示。分量可以被定义为来自三个样本阵列(亮度和两个色度)之一的阵列或单个样本、或者构成单色格式的图片的阵列或阵列的单个样本。

在h.264/avc和hevc中,图片可以是帧或字段。帧包括亮度样本的矩阵并且可能包括对应的色度样本。字段是帧的交替样本行的集合并且在源信号被交织时可以用作编码器输入。色度样本阵列可以不存在(并且因此单色采样可能在使用中)或色度样本阵列在与亮度样本阵列相比较时可以被子采样。色度格式可以被总结如下:

在单色采样中,仅存在一个样本阵列,其可以在名义上考虑为亮度阵列。

在4:2:0采样中,两个色度阵列中的每个具有亮度阵列的半高度和半宽度。

在4:2:2采样中,两个色度阵列中的每个具有亮度阵列的相同高度和半宽度。

在4:4:4采样中,当没有分离的色彩平面在使用中时,两个色度阵列中的每个具有与亮度阵列相同的高度和宽度。

在h.264/avc和hevc中,有可能将作为分离色彩平面的样本阵列编码到比特流中并且从比特流分别解码分离编码的色彩平面。当分离的色彩平面在使用中时,它们中的每个(由编码器和/或解码器)分离地处理为具有单色采样的图片。

当色度子采样在使用中时(例如4:2:0或4:2:2色度采样),色度样本关于亮度样本的位置可以在编码器侧被确定(例如,作为预处理步骤或作为编码的一部分)。相对于亮度样本位置的色度样本位置可以例如在编码标准(诸如h.264/avc或hevc)中预定义,或者可以在比特流中例如作为h.264/avc或hevc的vui的一部分被指示。

分割可以被定义为将集合划分为子集而使得集合的每个元素恰好在子集中的一个子集中。

在h.264/avc中,宏块是16x16的亮度样本块和对应的色度样本块。例如,在4:2:0采样图案中,宏块每色度分量包含一个8x8的色度样本块。在h.264/avc中,图片被分割成一个或多个条带组,并且条带组包含一个或多个条带(slice)。在h.264/avc中,条带由特定条带组内的光栅扫描中连续排序的整数个宏块构成。

在描述hevc编码和/或解码的操作时,可能使用以下术语。编码块可以被定义为对于某个值n的样本的nxn块,而使得将编码树块划分为编码块是一种分割。编码树块(ctb)可以被定义为对于某个值n的样本的nxn块,而使得将分量划分为编码树块是一种分割。编码树单元(ctu)可以被定义为亮度样本的编码树块、具有三个样本阵列的图片的色度样本的两个对应的编码树块、或者单色图片或使用三个分离色彩平面和用来编码样本的语法结构被编码的图片的样本的编码树块。编码单元(cu)可以被定义为亮度样本的编码块、具有三个样本阵列的图片的色度样本的两个对应的编码块、或者单色图片或使用三个分离色彩平面和用来编码样本的语法结构被编码的图片的样本的编码块。

在一些视频编解码(诸如高效视频编码(hevc)编解码)中,视频图片被划分成覆盖图片的区域的编码单元(cu)。cu由一个或多个预测单元(pu)和一个或多个变换单元(tu)构成,pu定义针对cu内的样本的预测过程,tu定义针对所述cu中的样本的预测误差编码过程。通常,cu由方形样本块构成,其具有从可能cu尺寸的预定义集合可选择的尺寸。具有最大允许尺寸的cu可以被命名为lcu(最大编码单元)或编码树单元(ctu),并且视频图片被划分成非交叠的lcu。lcu可以进一步被拆分成更小cu的组合,例如,通过递归地拆分lcu和所得的cu。每个所得的cu通常具有至少一个pu以及与它相关联的至少一个tu。每个pu和tu可以进一步被拆分成更小的pu和tu,以便分别增加预测过程和预测误差编码过程的粒度。每个pu具有与它相关联的预测信息,其定义什么种类的预测将被应用于该pu内的像素(例如,用于之间预测的pu的运动矢量信息和用于之内预测的pu的之内预测方向性信息)。

每个tu可以与描述用于所述tu内的样本的预测误差解码过程的信息(包括例如dct系数信息)相关联。通常在cu级别处用信号通知预测误差编码是否被应用于每个cu。在没有与cu相关联的预测误差残留的情况中,可以考虑不存在用于所述cu的tu。图像到cu的划分、cu到pu和tu的划分通常在比特流中用信号通知,而允许解码器再现这些单元的所意图的结构。

在hevc中,图片可以被分割成区块(tile),区块是矩形的并且包含整数个lcu。在hevc中,到区块的分割形成规则网格,其中区块的高度和宽度彼此以最大一个lcu而不同。在hevc中,条带被定义为一个独立条带节段和在相同访问单元内在下一独立条带节段(如果有)之前的所有后续从属条带节段(如果有)中包含的整数个编码树单元。在hevc中,条带节段被定义为在区块扫描中连续排序并且包含在单个nal单元中的整数个编码树单元。每个图片到条带节段的划分是一种分割。在hevc中,独立条带节段被定义为如下的条带节段:对于它而言,条带节段头部的语法元素的值不从用于在前条带节段的值推断出,并且从属条带节段被定义为如下的条带节段:对于它而言,条带节段头部的一些语法元素的值从用于按解码顺序的在前独立条带节段的值推断出。在hevc中,条带头部被定义为如下的独立条带节段的条带节段头部:它是当前的条带节段或者是在当前的从属条带节段之前的独立条带节段,并且条带节段头部被定义为是包含属于以条带节段表示的第一或所有编码树单元的数据元素的经编码的条带节段的一部分。cu按区块内或图片(如果区块没有在使用中)内的lcu的光栅扫描顺序被扫描。在lcu内,cu具有特定的扫描顺序。图5示出了由两个区块组成的图片的示例,两个区块被分割成方形编码单元(实线),其已经进一步分割为矩形预测单元(虚线)。

解码器通过应用类似于编码器的预测手段以形成像素块的预测表示(使用由编码器创建并且以压缩表示存储的运动或空间信息)和预测误差解码(预测误差编码的逆操作以恢复空间像素域中的量化的预测误差信号)来重构输出视频。在应用预测和预测误差解码手段之后,解码器对预测和预测误差信号(像素值)求和以形成输出视频帧。解码器(和编码器)还可以应用附加的滤波手段,以在传递输出视频用于显示和/或将它作为即将到来的帧的预测参考存储在视频序列中之前改进输出视频的质量。

滤波例如可以包括以下中的一项或多项:解块、样本适应性偏移(sao)、和/或适应性回路滤波(alf)。h.264/avc包括解块,而hevc包括解块和sao两者。

在典型的视频编解码中,利用与每个经运动补偿的图像块(诸如预测单元)相关联的运动矢量来指示运动信息。这些运动矢量中的每个运动矢量表示将被编码(在编码器侧)或被解码(在解码器侧)的图片中的图像块的位移、以及之前编码或解码的图片之一中的预测源块的位移。为了有效率地表示运动矢量,它们通常关于块特定的预测的运动矢量而差分地被编码。在典型的视频编解码,预测的运动矢量以预定义方式被创建,例如计算邻近块的经编码或经解码的运动矢量的中值。创建运动矢量预测的另一方式是从时间参考图片中的邻近块和/或共址块生成候选预测的列表并且用信号通知作为运动矢量预测符的所选取的候选。除了预测运动矢量值以外,还可以预测哪个(哪些)参考图片被用于经运动补偿的预测,并且这一预测信息可以例如通过之前编码/解码的图片的参考索引来表示。参考索引通常从时间参考图片中的邻近块和/或共址块被预测。此外,典型的高效视频编解码采用附加的运动信息编码/解码机制,经常称为合并/融合模式,其中所有的运动字段信息(其包括运动矢量和用于每个可用参考图片列表的对应参考图片索引)被预测和使用而无需任何修改/校正。类似地,预测运动字段信息使用时间参考图片中的邻近块和/或共址块的运动字段信息而被执行,并且所使用的运动字段信息在以可用邻近/共址块的运动字段信息填充的运动字段候选列表的列表之中被用信号通知。

典型的视频编解码允许使用单预测和双预测,在单预测中单个预测块用于被编码(解码)的块,在双预测中两个预测块被组合以形成用于被编码(解码)的块的预测。一些视频编解码允许加权的预测,其中预测块的样本值在添加残留信息之前被加权。例如,可以应用乘性加权因子和加性偏移。在一些视频编解码允许的显式经加权的预测中,加权因子和偏移可以被编码在例如用于每个可允许的参考图片索引的条带头部中。在一些视频编解码允许的隐式经加权的预测中,加权因子和/或偏移未被编码而是例如基于参考图片的相对图片顺序计数(poc)距离来推导。

在典型的视频编解码中,运动补偿之后的预测残差首先利用变换核(如dct)被变换并且然后被编码。其原因是残差之间经常仍然存在一些相关性,并且在许多情况中变换可以帮助减小这种相关性且提供更有效率的编码。

典型的视频编码器利用拉格朗日代价函数来找出最优编码模式,例如期望的宏块模式和相关联的运动矢量。这一种类的代价函数使用加权因子λ将由于有损编码方法所致的(确切或估计的)图像失真与表示图像区域中的像素值所要求的(确切或估计的)信息量联系在一起:

c=d+λr(1)

其中c是将被最小化的拉格朗日代价,d是考虑了模式和运动矢量的图像失真(例如,均方误差),以及r是表示在解码器中重构图像块被要求的数据所需要的比特数目(包括表示候选运动矢量的数据量)。

视频编码标准和规范可以允许编码器将经编码的图片划分为经编码的条带等。图片内预测通常跨条带边界被禁用。因此,条带可以视为一种将经编码的图片拆分为独立可解码片段的方式。在h.264/avc和hevc中,图片内预测可以跨条带边界被禁用。因此,条带可以被视为一种将经编码的图片拆分为独立可解码片段的方式,并且条带因此经常被视为用于传输的基元单元。在许多情况中,编码器可以在比特流中指示哪些类型的图片内预测跨条带边界被关闭,并且解码器操作例如在推论哪些预测源可用时考虑这一信息。例如,如果相邻宏块或cu位于不同条带中,则来自相邻宏块或cu的样本可以视为对于之内预测不可用。

用于h.264/avc或hevc编码器的输出和h.264/avc或hevc解码器的输入的基元单元分别是网络抽象层(nal)单元。对于面向分组网络上的传送或结构化文件中的存储,nal单元可以被封装成分组或类似的结构。h.264/avc和hevc中已经规定了字节流格式用于未提供成帧结构的传输或存储环境。字节流格式通过在每个nal单元前面附上起始码而将nal单元彼此分开。为了避免nal单元边界的错误检测,编码器运行面向字节的起始码仿真防止算法,如果起始码以其他方式出现则该算法将仿真防止字节添加至nal单元有效载荷。为了允许面向分组的系统与面向流的系统之间的简单明了的网关操作,起始码仿真防止可以总是被执行而不管字节流格式是否在使用中。nal单元可以被定义为如下的语法结构和如下的字节,该语法结构包含要遵循的数据类型的指示,而这些字节包含在必要时被散布有仿真防止字节的rbsp的形式的数据。原始字节序列有效载荷(rbsp)可以被定义为包含封装在nal单元中的整数个字节的语法结构。rbsp是空的或具有数据比特串的形式,该数据比特串包含跟随有rbsp停止比特并且跟随有等于0的零个或更多后续比特的语法元素。

nal单元由头部和有效载荷构成。在h.264/avc和hevc中,nal单元头部指示了nal单元的类型。

h.264/avcnal单元头部包括2-比特nal_ref_idc语法元素,其在等于0时指示nal单元中所包含的经编码的条带是非参考图片的一部分,并且在大于0时指示nal单元中所包含的经编码的条带是参考图片的一部分。用于svc单元和mvcnal单元的头部可以附加地包含与可伸缩性和多视图层次相关的各种指示。

在hevc中,两字节nal单元头部被用于所有规定的nal单元类型。nal单元头部包含一个保留比特、六比特nal单元类型指示、用于时间级别的三比特nuh_temporal_id_plus1指示(可能被要求大于或等于1)、以及六比特nuh_layer_id语法元素。temporal_id_plus1语法元素可以被视为用于nal单元的时间标识符,并且基于零的temporalid变量可以被推导如下:temporalid=temporal_id_plus1-1。等于0的temporalid对应于最低时间级别。temporal_id_plus1的值被要求为非零以便避免起始码仿真牵涉到两个nal单元头部字节。通过排除具有大于或等于所选值的temporalid的所有vclnal单元并且包括保持符合的所有其他vclnal单元,比特流被创建。结果,具有等于tid的temporalid的图片不使用具有大于tid的temporalid的任何图片作为之间预测参考。子层或时间子层可以被定义为时间可伸缩比特流的时间可伸缩层,由具有特定值的temporalid变量的vclnal单元和相关联的非vclnal单元构成。hevc的nuh_layer_id语法元素可以携带与可伸缩性层次有关的信息。

nal单元可以被分类为视频编码层(vcl)nal单元和非vclnal单元。vclnal单元通常是经编码的条带nal单元。在h.264/avc中,经编码的条带nal单元包含表示一个或多个经编码的宏块的语法元素,每个经编码的宏块对应于未压缩图片中的样本块。在hevc中,vclnal单元包含表示一个或多个cu的语法元素。

在h.264/avc中,经编码的条带nal单元可以被指示为是瞬时解码刷新(idr)图片中的经编码的条带或者非idr图片中的经编码的条带。

在hevc中,经编码的条带nal单元可以被指示为是下列类型之一:

在hevc中,用于图片类型的缩写可以被定义如下:拖尾(trail)图片、时间子层访问(tsa)、步进式时间子层访问(stsa)、随机访问可解码引导(radl)图片、随机访问跳过引导(rasl)图片、断链访问(bla)图片、瞬时解码刷新(idr)图片、清洁随机访问(cra)图片。

随机访问点(rap)图片,其也可以称为内部随机访问点(irap)图片,是每个条带或条带节段具有16至23(含)的范围中的nal_unit_type的图片。独立层中的irap图片仅包含之内编码的条带。属于具有nuh_layer_id值currlayerid的所预测的层的irap图片可以包含p条带、b条带和i条带,不能使用来自具有等于currlayerid的nuh_layer_id的其他图片的之间预测,并且可以使用来自它的直接参考层的层间预测。在hevc的目前版本中,irap图片可以是bla图片、cra图片或idr图片。包含基础层的比特流中的第一图片是irap图片。假设必要的参数集合在它们需要被激活时是可用的,则按解码顺序的在独立层处的irap图片和在从属层处的所有后续非rasl图片可以被正确地解码,而无需执行按解码顺序在irap图片之前的任何图片的解码过程。比特流中可以存在仅包含不是rap图片的之内编码的条带的图片。当必要的参数集合在它们需要被激活时并且在具有等于currlayerid的nuh_layer_id的层的每个直接参考层的解码已经被发起时是可用的(即,当对于具有等于currlayerid的nuh_layer_id的层的直接参考层的等于所有nuh_layer_id值的reflayerid而言layerinitializedflag[reflayerid]等于1时),属于具有nuh_layer_id值currlayerid的所预测的层的irap图片、以及按解码顺序的所有后续具有等于currlayerid的nuh_layer_id的非rasl图片可以被正确地解码,而无需执行按解码顺序在irap图片之前的具有等于currlayerid的nuh_layer_id的任何图片的解码过程。

在hevc中,cra图片按解码顺序可以是比特流中的第一图片,或者可以在比特流中稍后出现。hevc中的cra图片允许按解码顺序跟随在cra图片之后但按输出顺序在它之前的所谓的引导图片。一些引导图片(所谓的rasl图片)可以使用在cra图片之前解码的图片作为参考。如果在cra图片处执行随机访问,则按解码顺序和输出顺序这两者跟随在cra图片之后的图片可以是可解码的,并且因此清洁随机访问可以类似于idr图片的清洁随机访问功能那样被实现。

cra图片可以具有相关联的radl或rasl图片。当cra图片按解码顺序是比特流中的第一图片时,cra图片按解码顺序是经编码的视频序列的第一图片,并且任何相关联的rasl图片不被解码器输出并且可能不是可解码的,因为它们可能包含对不存在于比特流中的图片的参考。

引导图片是按输出顺序在相关联的rap图片之前的图片。相关联的rap图片按解码顺序是之前的rap图片(如果存在)。引导图片可以是radl图片或rasl图片。

所有rasl图片是相关联的bla或cra图片的引导图片。当相关联的rap图片是bla图片或者是比特流中的第一经编码的图片时,rasl图片不被输出并且可能不是正确地可解码的,因为rasl图片可能包含对不存在于比特流中的图片的参考。然而,如果解码已经从rasl图片的相关联rap图片之前的rap图片开始,则rasl图片可以被正确地解码。rasl图片不被用作用于非rasl图片的解码过程的参考图片。当存在时,所有rasl图片按解码顺序在相同的相关联rap图片的所有拖尾图片之前。在hevc标准的一些草案中,rasl图片曾经被称为标记为丢弃(tfd)图片。

所有radl图片是引导图片。radl图片不被用作用于相同的相关联rap图片的拖尾图片的解码过程的参考图片。当存在时,所有radl图片按解码顺序在相同的相关联rap图片的所有拖尾图片之前。radl图片不参考按解码顺序在相关联rap图片之前的任何图片,并且因此在解码从相关联的rap图片开始时可以被正确地解码。在hevc标准的一些草案中,radl图片曾经被称为可解码引导图片(dlp)。

当比特流的从cra图片开始的一部分被包括在另一比特流中时,与cra图片相关联的rasl图片可能不是正确地可解码的,因为它们的参考图片中的一些参考图片可能不存在于组合的比特流中。为了简单明了地进行这样的拼接操作,cra图片的nal单元类型可以被改变以指示它是bla图片。与bla图片相关联的rasl图片可能不是正确地可解码的,因此不被输出/显示。此外,与bla图片相关联的rasl图片可以从解码中被省略。

bla图片按解码顺序可以是比特流中的第一图片,或者可以在比特流中稍后出现。每个bla图片开始新的经编码的视频序列,并且对解码过程具有与idr图片类似的效果。然而,bla图片可以包含指定非空参考图片集合的语法元素。当bla图片具有等于bla_w_lp的nal_unit_type时,它可以具有相关联的rasl图片,这些rasl图片不被解码器输出并且可能不是可解码的,因为它们可能包含对不存在于比特流中的图片的参考。当bla图片具有等于bla_w_lp的nal_unit_type时,它还可以具有被指定为将被解码的相关联的radl图片。当bla图片具有等于bla_w_dlp的nal_unit_type时,它不具有相关联的rasl图片但可以具有被指定为将被解码的相关联的radl图片。当bla图片具有等于bla_n_lp的nal_unit_type时,它不具有任何相关联的引导图片。

具有等于idr_n_lp的nal_unit_type的idr图片不具有存在于比特流中的相关联的引导图片。具有等于idr_w_lp的nal_unit_type的idr图片不具有存在于比特流中的相关联的rasl图片,但是可以具有比特流中的相关联的radl图片。

当nal_unit_type的值等于trail_n、tsa_n、stsa_n、radl_n、rasl_n、rsv_vcl_n10、rsv_vcl_n12、或rsv_vcl_n14时,经解码的图片不被用作用于相同时间子层的任何其他图片的参考。也就是说,在hevc中,当nal_unit_type的值等于trail_n、tsa_n、stsa_n、radl_n、rasl_n、rsv_vcl_n10、rsv_vcl_n12、或rsv_vcl_n14时,经解码的图片未被包括在具有相同temporalid值的任何图片的refpicsetstcurrbefore、refpicsetstcurrafter和refpicsetltcurr中的任何项中。具有等于trail_n、tsa_n、stsa_n、radl_n、rasl_n、rsv_vcl_n10、rsv_vcl_n12、或rsv_vcl_n14的nal_unit_type的经编码的图片可以被丢弃而不影响具有相同temporalid值的其他图片的可解码性。

拖尾图片可以被定义为按输出顺序跟随在相关联的rap图片之后的图片。作为拖尾图片的任何图片不具有等于radl_n、radl_r、rasl_n或rasl_r的nal_unit_type。作为引导图片的任何图片可以被约束为按解码顺序在与相同rap图片相关联的所有拖尾图片之前。比特流中不存在与具有等于bla_w_dlp或bla_n_lp的nal_unit_type的bla图片相关联的rasl图片。比特流中不存在如下的radl图片,它们与具有等于bla_n_lp的nal_unit_type的bla图片相关联或者与具有等于idr_n_lp的nal_unit_type的idr图片相关联。与cra或bla图片相关联的任何rasl图片可以被约束为按输出顺序在与cra或bla图片相关联的任何radl图片之前。与cra图片相关联的任何rasl图片可以被约束为按输出顺序跟随在按解码顺序在cra图片之前的任何其他rap图片之后。

在hevc中,存在两个图片类型,tsa和stsa图片类型,它们可以用来指示时间子层切换点。如果具有上至n的temporalid的时间子层已经被解码直到tsa或stsa图片(排他),并且tsa或stsa图片具有等于n+1的temporalid,则tsa或stsa图片允许解码具有等于n+1的temporalid的所有后续图片(按解码顺序)。tsa图片类型可以对tsa图片自身和相同子层中按解码顺序跟随在tsa图片之后的所有图片施加限制。这些图片都不被允许使用来自相同子层中按解码顺序在tsa图片之前的任何图片的之间预测。tsa定义可以进一步对较高子层中按解码顺序跟随在tsa图片之后的图片施加限制。这些图片都不被允许参考按解码顺序在tsa图片之前的图片(如果该图片属于与tsa图片相同或较高的子层)。tsa图片具有大于0的temporalid。stsa类似于tsa图片但是不对较高子层中按解码顺序跟随在stsa图片之后的图片施加限制,并且因此允许仅向上切换至stsa图片所位于的子层上。

非vclnal单元可以例如是下列类型之一:序列参数集合、图片参数集合、补充增强信息(sei)nal单元、访问单元定界符、序列nal单元的结尾、比特流nal单元的结尾、或填充符数据nal单元。可能需要参数集合用于经解码的图片的重构,而许多其他非vclnal单元不是必然用于经解码的样本值的重构。

贯穿经编码的视频序列而保持不变的参数可以被包括在序列参数集合中。除了可能被解码过程需要的参数以外,序列参数集合可以可选地包含视频可用性信息(vui),vui包括对于缓冲、图片输出定时、渲染和资源预留是重要的参数。h.264/avc中规定了三个nal单元来携带序列参数集合:序列参数集合nal单元,其包含针对序列中的h.264/avcvclnal单元的所有数据;序列参数集合扩展nal单元,其包含用于辅助编码图片的数据;以及用于mvc和svcvclnal单元的子集序列参数集合。在hevc中,序列参数集合rbsp包括如下的参数,这些参数可以由一个或多个图片参数集合rbsp或包含缓冲时段sei消息的一个或多个seinal单元来参考。图片参数集合包含这样的参数,它们在若干经编码的图片中可能不变。图片参数集合rbsp可以包括如下的参数,这些参数可以由一个或多个经编码的图片的经编码的条带nal单元来参考。

在hevc中,视频参数集合(vps)可以被定义为包含语法元素的语法结构,这些语法元素应用到由如下语法元素的内容确定的零个或更多整个经编码的视频序列,该语法元素在每个条带节段头部中找到的语法元素所参考的pps中找到的语法元素所参考的sps中被找到。

视频参数集合rbsp可以包括可以由一个或多个序列参数集合rbsp参考的参数。

视频参数集合(vps)、序列参数集合(sps)和图片参数集合(pps)之间的关系和层次可以被描述如下。在参数集合层次中并且在可伸缩性和/或3d视频的上下文中,vps位于sps之上一个级别。vps可以包括如下的参数,这些参数对于跨整个经编码的视频序列中的所有(可伸缩性或视图)层的所有条带是共用的。sps包括如下的参数,这些参数对于整个经编码的视频序列中的特定(可伸缩性或视图)层中的所有条带是共用的并且可以由多个(可伸缩性或视图)层共享。pps包括如下的参数,这些参数对于特定层表示(一个访问单元中的一个可伸缩性或视图层的表示)中的所有条带是共用的并且可能由多个层表示中的所有条带共享。

vps可以提供与比特流中的层的依赖关系有关的信息、以及可应用于跨整个经编码的视频序列中的所有(可伸缩性或视图)层的所有条带的许多其他信息。vps可以被考虑为包括三个部分,基础vps、vps扩展和vpsvui,其中vps扩展和vpsvui可以可选地存在。在hevc中,基础vps可以被考虑为包括video_parameter_set_rbsp()语法结构而没有vps_extension()语法结构。video_parameter_set_rbsp()语法结构已经主要被规定用于hevc版本1并且包括可以具有用于基础层解码的用途的语法元素。在hevc中,vps扩展可以被考虑为包括vps_extension()语法结构。vps_extension()语法结构在hevc版本2中被规定主要用于多层扩展,并且包括可以具有用于解码一个或多个非基础层的用途的语法元素,诸如指示层依赖关系的语法元素。vpsvui包括可能对于解码或其他目的有用但是不被要求在hevc解码过程中使用的语法元素。

h.264/avc和hevc语法允许参数集合的许多实例,并且每个实例利用唯一的标识符被识别。为了限制参数集合所需要的存储器使用,用于参数集合标识符的值范围已经被限制。在h.264/avc和hevc中,每个条带头部包括对于包含该条带的图片的解码是活动的图片参数集合的标识符,并且每个图片参数集合包含活动的序列参数集合的标识符。结果,图片和序列参数集合的传输不是必须与条带的传输精确同步。替代地,活动的序列和图片参数集合在它们被参考之前的任何时刻被接收到是足够的,这允许了使用与被用于条带数据的协议相比更可靠的传输机制的“带外”参数集合的传输。例如,参数集合可以被包括作为用于实时传送协议(rtp)会话的会话描述中的参数。如果参数集合在带内被传输,则它们可以被重复以改进错误鲁棒性。

带外传输、信令或存储可以另外地或替换地被用于除了针对传输错误的容差以外的其他目的,诸如访问的简便性或会话协商。例如,符合于iso基础媒体文件格式的文件中的轨道的样本条目可以包括参数集合,而比特流中的经编码的数据被存储在该文件中的别处或另一文件中。短语“沿着比特流”(例如,沿着比特流而指示)可以在权利要求中和所描述的实施例中用来指代按照带外数据与比特流相关联的方式的带外传输、信令或存储。短语“沿着比特流解码”等可以指代解码与比特流相关联的所参考的带外数据(其可以从带外传输、信令或存储被获得)。

参数集合可以通过来自条带或来自另一活动参数集合或在一些情况中是来自另一语法结构(诸如,缓冲时段sei消息)的参考而被激活。

seinal单元可以包含一个或多个sei消息,该一个或多个sei消息不被要求用于输出图片的解码但是可以帮助相关的过程,诸如图片输出定时、渲染、错误检测、错误掩盖和资源预留。h.264/avc和hevc中规定了若干sei消息,并且用户数据sei消息使得组织和公司能够规定用于它们自己使用的sei消息。h.264/avc和hevc包含用于所规定的sei消息的语法和语义,但是用于在接收方处置消息的过程没有被定义。结果,编码器在它们创建sei消息时被要求遵循h.264/avc标准或hevc标准,并且分别符合h.264/avc标准或hevc标准的解码器未被要求为了输出顺序一致性来处理sei消息。在h.264/avc和hevc中包括sei消息的语法和语义的原因之一是,允许不同的系统规范相同地解释补充信息并且因此交互操作。所意图的是,系统规范可以要求在编码端和解码端两者都使用特定的sei消息,并且另外地可以规定用于在接收方处置特定sei消息的过程。

已经在avc和hevc标准或另外提议的其他标准中规定了若干嵌套sei消息。嵌套sei消息的思想是在嵌套sei消息内包含一个或多个sei消息并且提供用于将所包含的sei消息与比特流的子集和/或经解码的数据的子集相关联的机制。可能要求嵌套sei消息包含本身不是嵌套sei消息的一个或多个sei消息。嵌套sei消息中包含的sei消息可以被称为嵌套的sei消息。嵌套sei消息中未包含的sei消息可以被称为非嵌套的sei消息。hevc的可伸缩嵌套sei消息允许识别比特流子集(从子比特流提取过程产生)或嵌套的sei消息所应用到的层集合。比特流子集也可以被称为子比特流。

经编码的图片是图片的经编码的表示。h.264/avc中的经编码的图片包括图片的解码所要求的vclnal单元。在h.264/avc中,经编码的图片可以是主要编码图片或冗余编码图片。主要编码图片被使用在有效比特流的解码过程中,而冗余编码图片是应当仅在主要编码图片不能被成功解码时才被解码的冗余表示。在hevc中,尚未规定冗余编码图片。

在h.264/avc中,访问单元(au)包括主要编码图片以及与它相关联的那些nal单元。在h.264/avc中,访问单元内的nal单元的出现顺序被约束如下。可选的访问单元定界符nal单元可以指示访问单元的开始。它后面跟随零个或更多seinal单元。主要编码图片的编码条带接着出现。在h.264/avc中,主要编码图片的编码条带的后面可以跟随用于零个或更多冗余编码图片的编码条带。冗余编码图片是图片或图片的一部分的编码表示。如果主要编码图片例如由于传输中的损耗或物理存储介质中的损坏而未被解码器接收,则冗余编码图片可以被解码。

在h.264/avc中,访问单元还可以包括辅助编码图片,其是补充主要编码图片的图片并且可以例如被使用在显示过程中。辅助编码图片可以例如被用作指定解码图片中的样本的透明级别的阿尔法通道或阿尔法平面。阿尔法通道或平面可以被使用在分层构成或渲染系统中,其中输出图片通过将至少部分透明的图片覆叠在彼此之上而被形成。辅助编码图片具有与单色冗余编码图片相同的语法和语义限制。在h.264/avc中,辅助编码图片包含与主要编码图片相同数目的宏块。

在hevc中,经编码的图片可以被定义为包含图片的所有编码树单元的该图片的经编码的表示。在hevc中,访问单元(au)可以被定义为如下的nal单元的集合,这些nal单元根据指定的分类规则彼此相关联、按解码顺序是连续的、并且包含至多一个具有任何特定值的nuh_layer_id的图片。除了包含经编码的图片的vclnal单元之外,访问单元还可以包含非vclnal单元。

比特流可以被定义为比特的序列,采用nal单元流或字节流的形式,其形成了构成一个或多个经编码的视频序列的经编码的图片和相关联的数据的表示。在相同的逻辑信道中,诸如在相同的文件中或在通信协议的相同连接中,第一比特流可以被第二比特流跟随。基元流(在视频编码的上下文中)可以被定义为一个或多个比特流的序列。第一比特流的结尾可以由特定nal单元来指示,其可以称为比特流结尾(eob)nal单元并且其是比特流的最后nal单元。在hevc和它的当前草案扩展中,eobnal单元被要求具有等于0的nuh_layer_id。

在h.264/avc中,经编码的视频序列被定义为从idr访问单元(含)至下一idr访问单元(不含)或至比特流的结尾(无论哪个较早出现)的按解码顺序的连续访问单元的序列。

在hevc中,经编码的视频序列(cvs)可以例如被定义为按解码顺序由以下构成的访问单元的序列:具有等于1的norasloutputflag的irap访问单元、之后跟随不是具有等于1的norasloutputflag的irap访问单元的零个或更多访问单元,包括所有后续访问单元直到但不包括是具有等于1的norasloutputflag的irap访问单元的任何后续访问单元。irap访问单元可以被定义为其中基础层图片是irap图片的访问单元。norasloutputflag的值对于每个idr图片、每个bla图片等于1,并且按解码顺序是比特流中的该特定层中的第一图片的每个irap图片是按解码顺序跟随在具有相同值的nuh_layer_id的序列nal单元结尾之后的第一irap图片。在多层hevc中,norasloutputflag的值在如下的时候对于每个irap图片等于1:它的nuh_layer_id使得对于等于iddirectreflayer[nuh_layer_id][j]的reflayerid的所有值,layerinitializedflag[nuh_layer_id]等于0并且layerinitializedflag[reflayerid]等于1,其中j在0至numdirectreflayers[nuh_layer_id]-1(含)的范围内。否则,norasloutputflag的值等于handlecraasblaflag。等于1的norasloutputflag具有如下影响:与norasloutputflag针对其而被设置的irap图片相关联的rasl图片不被解码器输出。可以存在手段将handlecraasblaflag的值从可以控制解码器的外部实体(诸如播放器或接收器)提供给解码器。handlecraasblaflag可以例如由播放器设置为1,该播放器在比特流中寻找新位置或调谐至广播并且开始解码并然后从cra图片开始解码。当handlecraasblaflag对于cra图片等于1时,cra图片就像它是bla图片那样被处置和解码。

在hevc中,当可以称为序列结尾(eos)nal单元的特定nal单元出现在比特流中并且具有等于0的nuh_layer_id时,经编码的视频序列可以(对上面的规范)另外地或替换地被指定到结尾。

在hevc中,经编码的视频序列组(cvsg)可以被定义为例如按解码顺序的一个或多个连续cvs,它们共同地由irap访问单元构成,该irap访问单元激活不是已经活动的vpsrbspfirstvpsrbsp,按解码顺序其之后跟随所有的后续访问单元,对于它们firstvpsrbsp是活动的vpsrbsp直到比特流的结尾,或者直到但排除激活与firstvpsrbsp不同的vpsrbsp的访问单元,不论哪个按解码顺序较早。

图片组(gop)及其特性可以被定义如下。gop可以被解码而不管任何之前的图片是否被解码。开放gop是这样的图片组,在该图片组中,当解码从开放gop的初始之内图片开始时,按输出顺序在初始之内图片之前的图片可能不是正确地可解码的。换句话说,开放gop的图片可能(在之间预测中)参考属于之前gop的图片。h.264/avc解码器可以从h.264/avc比特流中的恢复点sei消息识别开始开放gop的之内图片。hevc解码器可以识别开始开放gop的之内图片,因为特定nal单元类型、cranal单元类型可以被用于它的经编码的条带。封闭gop是这样的图片组,在该图片组中,当解码从封闭gop的初始之内图片开始时,所有图片可以正确地被解码。换句话说,封闭gop中没有图片参考之前gop中的任何图片。在h.264/avc和hevc中,封闭gop可以从idr图片开始。在hevc中,封闭gop还可以从bla_w_radl或bla_n_lp图片开始。归因于参考图片的选择上的较大灵活性,开放gop编码结构相比于封闭gop编码结构潜在地在压缩上更有效率。

图片的结构(sop)可以被定义为按解码顺序连续的一个或多个经编码的图片,其中按解码顺序的第一经编码的图片是在最低时间子层处的参考图片,并且潜在地除了按解码顺序的第一经编码的图片之外没有经编码的图片是rap图片。在前sop中的所有图片按解码顺序在当前sop中的所有图片之前,并且下一sop中的所有图片按解码顺序在当前sop中的所有图片之后。sop可以表示层次和重复性之间预测结构。术语图片组(gop)有时可以与术语sop可交换地被使用并且具有与sop的语义相同的语义。

h.264/avc和hevc的比特流语法指示特定图片是否为用于任何其他图片的之间预测的参考图片。任何编码类型(i、p、b)的图片可以是h.264/avc和hevc中的参考图片或非参考图片。

h.264/avc规定了用于经解码的参考图片标记的过程以便控制解码器中的存储器消耗。被用于之间预测的参考图片的最大数目(被称为m)在序列参数集合中被确定。当参考图片被解码时,它被标记为“被用于参考”。如果参考图片的解码引起多于m个图片被标记为“被用于参考”,则至少一个图片被标记为“不用于参考”。存在用于经解码的参考图片标记的两种类型的操作:适应性存储器控制和滑动窗口。用于经解码的参考图片标记的操作模式基于图片而被选择。适应性存储器控制允许显式地用信号通知哪些图片被标记为“不用于参考”,并且还可以将长期索引指配给短期参考图片。适应性存储器控制可以要求存储器管理控制操作(mmco)参数存在于比特流中。mmco参数可以被包括在经解码的参考图片标记语法结构中。如果滑动窗口操作模式在使用中并且存在m个被标记为“被用于参考”的图片,则被标记为“被用于参考”的那些短期参考图片之中是第一经解码的图片的短期参考图片被标记为“不用于参考”。换句话说,滑动窗口操作模式导致了短期参考图片之中的先入先出缓冲操作。

h.264/avc中的存储器管理控制操作之一使得除了当前图片以外的所有参考图片被标记为“不用于参考”。瞬时解码刷新(idr)图片仅包含经之内解码的条带并且引起参考图片的类似“重置”。

在hevc中,参考图片标记语法结构和相关的解码过程未被使用,但是替代地,参考图片集合(rps)语法结构和解码过程替代地被用于类似目的。针对图片是有效或活动的参考图片集合包括被用作用于该图片的参考的所有参考图片和针对按解码顺序的任何后续图片保持被标记为“被用于参考”的所有参考图片。存在参考图片集合的六个子集,它们被称为即refpicsetstcuur0(也称为refpicsetstcurrbefore)、refpicsetstcurr1(也称为refpicsetstcurrafter)、refpicsetstfoll0、refpicsetstfoll1、refpicsetltcurr和refpicsetltfoll。refpicsetstfoll0和refpicsetstfoll1可以被考虑为联合地形成一个子集refpicsetstfoll。六个子集的符号如下。“curr”指代如下的参考图片,它们被包括在当前图片的参考图片列表中并且因此可以被用作用于当前图片的之间预测参考。“foll”指代如下的参考图片,它们未包括在当前图片的参考图片列表中但可以按解码顺序在后续图片中被用作参考图片。“st”指代短期参考图片,它们一般可以通过它们的poc值的某个数目的最低有效位而被标识。“lt”指代长期参考图片,它们特别地被标识并且相比通过所提及的某个数目的最低有效位可以表示的而言一般具有较大的相对于当前图片的poc值差异。“0”指代相比当前图片的poc值具有较小poc值的那些参考图片。“1”指代相比当前图片的poc值具有较大poc值的那些参考图片。refpicsetstcuur0、refpicsetstcurr1、refpicsetstfoll0和refpicsetstfoll1被统称为参考图片集合的短期子集。refpicsetltcurr和refpicsetltfoll被统称为参考图片集合的长期子集。

在hevc中,参考图片集合可以在序列参数集合中被指定,并且通过对参考图片集合的索引而在条带头部中投入使用。参考图片集合也可以在条带头部中被指定。参考图片集合可以独立地被编码或者可以从另一参考图片集合被预测(称为rps间预测)。在两种类型的参考图片集合编码中,标志(used_by_curr_pic_x_flag)附加地被发送用于每个参考图片以指示参考图片被用于当前图片的参考(被包括在*curr列表中)与否(被包括在*foll列表中)。被包括在由当前条带使用的参考图片集合中的图片被标记为“被用于参考”,并且不在由当前条带使用的参考图片集合中的图片被标记为“不用于参考”。如果当前图片是idr图片,则refpicsetstcuur0、refpicsetstcurr1、refpicsetstfoll0、refpicsetstfoll1、refpicsetltcurr和refpicsetltfoll均被设置为空。

在编码器中和/或解码器中可以使用经解码的图片缓冲器(dpb)。缓冲经解码的图片有两个原因:用于之间预测中的参考和用于将经解码的图片重排序为输出顺序。由于h.264/avc和hevc为参考图片标记和输出重排序这两者提供了大量的灵活性,所以用于参考图片缓冲和输出图片缓冲的分离缓冲器可能浪费存储器资源。因此,dpb可以包括用于参考图片和输出重排序的统一的经解码的图片缓冲过程。经解码的图片在它不再被用作参考并且不需要用于输出时可以从dpb移除。

在h.264/avc和hevc的许多编码模式中,用于之间预测的参考图片利用对参考图片列表的索引而被指示。该索引可以利用可变长度编码而被编码,这通常使得较小索引具有用于对应语法元素的较短值。在h.264/avc和hevc中,针对每个双向预测(b)条带生成两个参考图片列表(参考图片列表0和参考图片列表1),并且针对每个经之间编码的(p)条带形成一个参考图片列表(参考图片列表0)。

参考图片列表(诸如,参考图片列表0和参考图片列表1)通常按两个步骤被构造:首先,初始参考图片列表被生成。初始参考图片列表可以例如基于frame_num、poc、temporal_id(或temporalid等)、或与预测层次(诸如gop结构)有关的信息、或它们的任何组合而被生成。第二,初始参考图片列表可以通过参考图片列表重排序(rplr)命令被重排序,rplr命令也被称为参考图片列表修改语法结构,其可以被包含在条带头部中。在h.264/avc中,rplr命令指示被排序到相应参考图片列表开头的图片。这个第二步骤也可以被称为参考图片列表修改过程,并且rplr命令可以被包括在参考图片列表修改语法结构中。如果参考图片集合被使用,则参考图片列表0可以被初始化以首先包含refpicsetstcurr0,之后跟随refpicsetstcurr1,之后跟随refpicsetltcurr。参考图片列表1可以被初始化以首先包含refpicsetstcurr1,之后跟随refpicsetcurr0。在hevc中,初始参考图片列表可以通过参考图片列表修改语法结构而被修改,其中初始参考图片列表中的图片可以通过对列表的条目索引而被标识。换句话说,在hevc中,参考图片列表修改被编码到语法结构中,该语法结构包括在最终参考图片列表中的每个条目上的循环,其中每个循环条目是对初始参考图片列表的固定长度的经编码的索引并且以在最终参考图片列表中的位置升序指示该图片。

许多编码标准(包括h.264/avc和hevc)可以具有推导对参考图片列表的参考图片索引的解码过程,参考图片索引可以用来指示多个参考图片中的哪个参考图片被用于针对特定块的之间预测。参考图片索引可以由编码器以一些之间编码模式编码到比特流中,或者它可以(由编码器和解码器)以一些其他之间编码模式例如使用相邻块来推导。

为了在比特流中有效率地表示运动矢量,运动矢量可以关于块特定的预测的运动矢量而差分地被编码。在许多视频编解中,预测的运动矢量按预定义方式被创建,例如通过计算相邻块的经编码或经解码的运动矢量的中值。创建运动矢量预测的另一方式,有时被称为高级运动矢量预测(amvp),是从时间参考图片中的相邻块和/或共址块来生成候选预测的列表,并且用信号通知作为运动矢量预测器的所选取的候选。除了预测运动矢量值以外,之前编码/解码的图片的参考索引也可以被预测。参考索引通常从时间参考图片中的相邻块和/或共址块被预测。运动矢量的差分编码通常跨条带边界被禁用。

许多高效视频编解码(诸如hevc编解码)采用附加的运动信息编码/解码机制,经常称为合并/融合模式/过程/机制,其中块/pu的所有运动信息被预测和使用而无需任何修改/校正。

可伸缩视频编码可以指代如下的编码结构,在该编码结构中,一个比特流可以包含例如以不同比特率、分辨率或帧速率的内容的多个表示。在这些情况中,接收器可以依赖于它的特性(例如,最佳匹配于显示设备的分辨率)来提取所期望的表示。替换地,服务器或网络元件可以依赖于例如接收器的网络特性或处理能力来提取比特流的将被传输至接收器的部分。可伸缩比特流通常由提供可用的最低质量视频的“基础层”以及在与较低层一起被接收和解码时增强视频质量的一个或多个增强层构成。为了改进用于增强层的编码效率,该层的经编码的表示通常依赖于较低层。例如,增强层的运动和模式信息可以从较低层被预测。类似地,较低层的像素数据可以用来创建用于增强层的预测。

在一些可伸缩视频编码方案中,视频信号可以被编码到基础层以及一个或多个增强层中。增强层可以增强例如时间分辨率(即,帧速率)、空间分辨率、或简单地增强由另一层或它的一部分所表示的视频内容的质量。每个层与它的所有从属层一起是视频信号的例如在某个空间分辨率、时间分辨率和质量水平处的一个表示。在本文中,我们将可伸缩层与它的所有从属层一起称为“可伸缩层表示”。可伸缩比特流的与可伸缩层表示相对应的部分可以被提取和解码以在某个保真度产生原始信号的表示。

可伸缩性模式或可伸缩性维度可以包括但不限于以下:

-质量可伸缩性:基础层图片以比增强层图片低的质量被编码,其可以例如在基础层中比在增强层中使用较大的量化参数值(即,用于变换系数量化的较大量化步长)来实现。如下文描述的,质量可伸缩性可以进一步被分类为精细颗粒或精细粒度可伸缩性(fgs)、中等颗粒或中等粒度可伸缩性(mgs)、和/或粗糙颗粒或粗糙粒度可伸缩性(cgs)。

-空间可伸缩性:基础层图片以比增强层图片低的分辨率(即,具有较少样本)被编码。空间可伸缩性和质量可伸缩性(特别是它的粗糙颗粒可伸缩性类型)有时可以被考虑为相同类型的可伸缩性。

-比特深度可伸缩性:基础层图片以比增强层图片(例如,10或12比特)低的比特深度(例如,8比特)被编码。

-色度格式可伸缩性:基础层图片相比增强层图片(例如,4:4:4格式)提供色度样本阵列中的较低空间分辨率(例如,以4:2:0色度格式被编码)。

-色域可伸缩性:增强层图片相比基础层图片的色彩表示范围具有较丰富/较宽的色彩表示范围—例如增强层可以具有uhdtv(itu-rbt.2020)色域并且基础层可以具有itu-rbt.709色域。

-视图可伸缩性,其也可以称为多视图编码。基础层表示第一视图,而增强层表示第二视图。

-深度可伸缩性,其也可以称为深度增强的编码。比特流的一层或一些层可以表示(多个)纹理视图,而其他层或多个层可以表示(多个)深度视图。

-感兴趣区域可伸缩性(如下文所描述)。

-交错到渐进可伸缩性(也称为字段到帧可伸缩性):基础层的经编码的交错源内容材料利用增强层被增强以表示渐进源内容。基础层中的经编码的交错源内容可以包括经编码的字段、表示字段对的经编码的帧、或者它们的混合。在交错到渐进可伸缩性中,基础层图片可以被重采样以使得它成为用于一个或多个增强层图片的适合的参考图片。

-混合编解码可伸缩性(也称为编码标准可伸缩性):在混合编解码可伸缩性中,基础层和增强层的比特流语法、语义和解码过程被规定在不同的视频编码标准中。因此,基础层图片根据与增强层图片不同的编码标准或格式被编码。例如,基础层可以利用h.264/avc被编码并且增强层可以利用hevc多层扩展被编码。更一般地,在混合编解码可伸缩性中,一个或多个层可以根据一种编码标准或规范被编码,并且其他一个或多个层可以根据另一编码标准或规范被编码。例如,可以存在根据h.264/avc的mvc扩展被编码的两个层(其中之一是根据h.264/avc被编码的基础层)、以及根据mv-hevc被编码的一个或多个附加层。此外,相同比特流的不同层根据其而被编码的编码标准或规范的数目在混合编解码可伸缩性中可以不限于两个。

应当理解,这些可伸缩性类型中的许多可伸缩性类型可以被组合并且一起被应用。例如,色域可伸缩性和比特深度可伸缩性可以被组合。

shvc允许使用加权的预测或针对色域可伸缩性的基于3d查找表(lut)的色彩映射过程。3dlut方法可以被描述如下。每个色彩分量的样本值范围可以首先被拆分为两个范围,形成多至2x2x2个卦限(octant),并且然后亮度范围可以进一步被拆分为多至四个部分,导致多至8x2x2个卦限。在每个卦限内,应用交叉色彩分量线性模型来执行色彩映射。对于每个卦限,四个顶点被编码到比特流中和/或从比特流被解码以表示卦限内的线性模型。色彩映射表针对每个色彩分量分离地被编码到比特流中和/或从比特流被解码。色彩映射可以被考虑为牵涉到三个步骤:第一,给定的参考层样本三元组(y,cb,cr)所属于的卦限被确定。第二,亮度和色度的样本位置可以通过应用色彩分量调节过程被对齐。第三,针对所确定的卦限指定的线性映射被应用。映射可以具有交叉分量性质,即一个色彩分量的输入值可以影响另一色彩分量的经映射的值。另外,如果还要求层间重采样,则对重采样过程的输入是已经被色彩映射的图片。色彩映射可以(但不需要)将第一比特深度的样本映射到另一比特深度的样本。

利用一种或多种类型的所谓的参考层位置偏移,可以指示或可以推断参考层图片与增强层图片的空间对应性。在hevc中,参考层位置偏移可以由编码器包括在pps中并且由解码器从pps解码。参考层位置偏移可以被用于但不限于实现roi可伸缩性。参考层位置偏移可以包括经伸缩的参考层偏移、参考区域偏移和重采样相位集合中的一项或多项。经伸缩的参考层偏移可以被考虑为指定当前图片中的与参考层中的经解码的图片中的参考区域的左上亮度样本相搭配的样本之间的水平偏移和垂直偏移、以及当前图片中的与参考层中的经解码的图片中的参考区域的右下亮度样本相搭配的样本之间的水平偏移和垂直偏移。另一方式是考虑经伸缩的参考层偏移指定经上采样的参考区域的角落样本相对于增强层图片的相应角落样本的位置。经伸缩的参考层偏移值可以是有符号的。参考区域偏移可以被考虑为指定参考层中的经解码的图片中的参考区域的左上亮度样本与相同的经解码的图片的左上亮度样本之间的水平偏移和垂直偏移、以及参考层中的经解码的图片中的参考区域的右下亮度样本与相同的经解码的图片的右下亮度样本之间的水平偏移和垂直偏移。参考区域偏移值可以是有符号的。重采样相位集合可以被考虑为指定直接参考层图片的重采样过程中使用的相位偏移。不同的相位偏移可以被提供用于亮度分量和色度分量。

混合编解码可伸缩性可以与任何类型的可伸缩性一起使用,诸如时间的、质量、空间的、多视图、经深度增强的、辅助图片、比特深度、色域、色度格式、和/或roi可伸缩性。因为混合编解码可伸缩性可以与其他类型的可伸缩性一起使用,所以它可以被考虑以形成可伸缩性类型的不同分类。

混合编解码可伸缩性的使用可以例如在增强层比特流中被指示。例如,在多层hevc中,混合编解码可伸缩性的使用可以在vps中被指示,例如使用语法元素vps_base_layer_internal_flag。

术语“层”可以使用在任何类型的可伸缩性(包括视图可伸缩性和深度增强)的上下文中。增强层可以指代任何类型的增强,诸如snr、空间的、多视图、深度、比特深度、色度格式、和/或色域增强。基础层可以指代任何类型的基础视频序列,诸如基础视图、用于snr/空间可伸缩性的基础层、或用于深度增强的视频编码的纹理基础视图。

一些可伸缩视频编码方案可能要求irap图片以如下的方式跨层被对齐:访问单元中的所有图片都是irap图片或者访问单元中没有图片是irap图片。其他可伸缩视频编码方案(诸如hevc的多层扩展)可能允许未被对齐的irap图片,即访问单元中的一个或多个图片是irap图片,而访问单元中的一个或多个其他图片不是irap图片。具有未跨层对齐的irap图片或类似物的可伸缩比特流可以被用于例如在基础层中提供更频繁的irap图片,其中它们可以具有较小的经编码的大小,这归因于例如较小的空间分辨率。用于解码的逐层启动的过程或机制可以被包括在视频解码方案中。解码器因此可以在基础层包含irap图片时开始比特流的解码,并且在其他层包含irap图片时逐步骤地开始解码它们。换句话说,在解码机制或过程的逐层启动中,随着来自附加增强层的后续图片在解码过程中被解码,解码器渐进地增大经解码的层的数目(其中层可以表示空间分辨率、质量水平、视图、诸如深度的附加分量、或组合中的增强)。经解码的层的数目的渐进增大可以被认为是例如图片质量(在质量和空间可伸缩性的情况下)的渐进改进。

逐层启动机制可能对于在特定增强层中按解码顺序的第一图片的参考图片生成不可用图片。替换地,解码器可以省略按解码顺序在层的解码可以从其开始的irap图片之前的图片的解码。可以被省略的这些图片可以由编码器或比特流内的另一实体专门标记。例如,一个或多个特定nal单元类型可以被用于它们。这些图片,不论它们是否以nal单元类型被专门标记或例如由解码器推断,都可以被称为交叉层随机访问跳过(cl-ras)图片。解码器可以省略所生成的不可用图片和经解码的cl-ras图片的输出。

当该增强层的所有参考层已经利用参考层中的irap图片类似地被初始化时,逐层启动机制可以从该增强层中的irap图片开始增强层图片的输出。换句话说,按输出顺序在这样的irap图片之前的任何图片(在相同层内)可以不从解码器输出和/或可以不被显示。在一些情况中,与这样的irap图片相关联的可解码引导图片可以由解码器输出,而在这样的irap图片之前的其他图片(诸如与该irap图片相关联的rasl图片)可以不由解码器输出和/或可以不被显示。

经编码的视频数据的级联(其也可以称为拼接)可以发生,例如经编码的视频序列被级联为比特流,该比特流被广播或被成流或被存储在大容量存储器中。例如,表示商业宣传或广告的经编码的视频序列可以与电影或其他“主要”内容级联。

可伸缩视频比特流可以包含未跨层对齐的irap图片。然而,可能方便的是允许如下的经编码的视频序列的级联,其在它的第一访问单元中的基础层中但不是必然在所有层中包含irap图片。在第一经编码的视频序列之后被拼接的第二经编码的视频序列应当触发逐层解码启动过程。这是因为所述第二经编码的视频序列的第一访问单元可能不是在它的所有层中都包含irap图片,并且因此用于该访问单元中的非irap图片的一些参考图片(在经级联的比特流中)可能不可用并且因此不能被解码。对经编码的视频序列进行级联的实体(后文称为拼接器)应当因此修改第二经编码的视频序列的第一访问单元以使得它触发(多个)解码器中的逐层启动过程。

(多个)指示可以存在于比特流语法中以指示逐层启动过程的触发。这些指示可以由编码器或拼接器生成并且可以由解码器遵守。这些指示可以被用于特定的(多个)图片类型或仅是(多个)nal单元类型(诸如仅用于idr图片),或者可以被用于任何(多个)图片类型。不失一般性,被考虑为包括在条带节段头部中的称为cross_layer_bla_flag的指示在下文被参考。应当理解,可以另外地或替换地使用具有任何其他名称或被包括在任何其他语法结构中的类似指示。

(多个)指示独立地触发逐层启动过程,某个(某些)nal单元类型和/或图片类型可以触发逐层启动过程。例如,基础层bla图片可以触发逐层启动过程。

逐层启动机制可以在以下情况中的一种或多种情况下被发起:

在比特流的起始处。

当专门地被控制时,例如,当解码过程例如作为对调谐到广播中或寻找文件或流中的位置的响应而被启动或重启时,在经编码的视频序列的起始处。解码过程可以输入变量,例如被称为noclrasoutputflag,其可以由外部手段来控制,诸如视频播放器等。

基础层bla图片。

具有等于1的cross_layer_bla_flag的基础层idr图片(或者具有等于1的cross_layer_bla_flag的基础层irap图片)。

具有等于1的handlecraasblaflag的基础层cra图片,其中解码过程输入可以由外部手段控制的变量handlecraasblaflag。

当逐层启动机制被发起时,解码过程可以相应地设置变量。例如,变量noclrasoutputflag可以被设置为等于1。

解码过程可以按某个变量控制是否使用逐层启动过程的方式被规定。例如,可以使用变量noclrasoutputflag,其在等于0时指示正常解码操作,并且在等于1时指示逐层启动操作,或者当其中noclrasoutputflag被设置为等于1的访问单元在所有层中包含irap图片时,指示所有层常规地被解码的解码的开始。

当逐层启动机制被发起时,dpb中的所有图片可以被标记为“不用于参考”。换句话说,所有层中的所有图片可以被标记为“不用于参考”,并且将不被用作发起逐层启动机制的图片或按解码顺序的任何后续图片的用于预测的参考。

用于逐层启动的解码过程可以例如通过两个数组变量layerinitializedflag[i]和firstpicinlayerdecodedflag[i]来控制,它们可以具有用于每个层(可能排除基础层并且可能也有其他独立层)的条目。当逐层启动过程被调用时(例如作为对noclrasoutputflag等于1的响应),这些数组变量可以被重置为它们的默认值。例如,当存在63个层被启用时(例如,具有6比特nuh_layer_id),这些变量可以如下地被重设:变量layerinitializedflag[i]针对从0至62(含)的i的所有值被设置为等于0,并且变量firstpicinlayerdecodedflag[i]针对从1至62(含)的i的所有值被设置为等于0。

解码过程可以包括以下或类似物来控制rasl图片的输出。在当前图片是irap图片时,以下适用:

-如果layerinitializedflag[nuh_layer_id]等于0,则变量norasloutputflag被设置为等于1。

-否则,如果一些外部手段可用于将变量handlecraasblaflag设置为用于当前图片的值,则变量handlecraasblaflag被设置为等于由外部手段提供的值并且变量norasloutputflag被设置为等于handlecraasblaflag。

-否则,变量handlecraasblaflag被设置为等于0并且变量norasloutputflag被设置为等于0。

解码过程可以包括以下来更新用于层的layerinitializedflag。在当前图片是irap图片并且以下中的任一项为真时,layerinitializedflag[nuh_layer_id]被设置为1。

-nuh_layer_id等于0。

-针对等于reflayerid[nuh_layer_id][j]的reflayerid的所有值,layerinitializedflag[nuh_layer_id]等于0并且layerinitializedflag[reflayerid]等于1,其中j在0至numdirectreflayers[nuh_layer_id]-1(含)的范围内。

当firstpicinlayerdecodedflag[nuh_layer_id]等于0时,用于生成不可用参考图片的解码过程可以在解码当前图片之间被调用。用于生成不可用参考图片的解码过程可以利用默认值针对参考图片集合中的每个图片来生成图片。生成不可用参考图片的过程可以主要被指定为仅用于针对cl-ras图片的语法约束的规范,其中cl-ras图片可以被定义为具有等于layerid的nuh_layer_id的图片并且layerinitializedflag[layerid]等于0。在hrd操作中,在cpb到达时间和移除时间的推导中,cl-ras图片可能需要纳入考虑。解码器可以忽略任何cl-ras图片,因为这些图片未被指定用于输出并且对被指定用于输出的任何其他图片的解码过程不具有影响。

交叉层随机访问跳过(cl-ras)图片可以具有如下的性质:当逐层启动机制被调用时(例如,当noclrasoutputflag等于1时),cl-ras图片不被输出并且可能不是正确地可解码的,因为cl-ras图片可能包含对不存在于比特流中的图片的参考。可以规定cl-ras图片不被用作用于非cl-ras图片的解码过程的参考图片。

cl-ras图片可以被推断。例如,当layerinitializedflag[layerid]等于0时,具有等于layerid的nuh_layer_id的图片可以被推断为cl-ras图片。cl-ras图片可以被定义为具有等于layerid的nuh_layer_id的图片,以使得当具有大于0的nuh_layer_id的经编码的图片的解码开始时layerinitializedflag[layerid]等于0。

层树可以被定义为一种层集合而使得该层集合中的每个层是直接或间接预测层、或者该层集合中的至少一个其他层的直接或间接参考层,并且该层集合之外没有层是直接或间接预测层、或者该层集合中的任何层的直接或间接参考层。直接预测层可以被定义为如下的层,对于该层,另一层是直接参考层。直接参考层可以被定义为如下的层,其可以被用于另一层的层间预测,而对于该另一层,该层是直接参考层。间接预测层可以被定义为如下的层,对于该层,另一层是间接参考层。间接参考层可以被定义为如下的层,其不是第二层的直接参考层但是第三层的直接参考层,第三层是第二层的直接参考层的直接参考层或间接参考层,而对于第二层,该层是间接参考层。独立层可以被定义为不具有任何直接参考层的层。基础层可以被定义为如下的层,其具有最低可能的层标识符值。例如,在hevc中,基础层可以被定义为具有等于0的nuh_layer_id的层。独立的非基础层可以被定义为如下的层,其是独立层但不是基础层。

替换地,层树可以被定义为一种层集合,其中每个层具有与该层树中的至少一个其他层的层间预测关系,并且该层树之外没有层具有与该层树中的任何层的层间预测关系。

层子树可以被定义为层树的层的子集,包括该子集内的层的所有参考层。

已经提出了比特流不需要必然使基础层(即,多层hevc扩展中具有等于0的nuh_layer_id的层)被包括在比特流中或在外部被提供(在混合编解码可伸缩性的情况下),而是最低层可以是独立的非基础层。需要理解,当在示例和实施例中参考基础层或等于0的nuh_layer_id时,这些示例和实施例可以类似地应用或被实现用于独立的非基础层或与独立的非基础层的nuh_layer_id相等的nuh_layer_id。存在于比特流中具有最低nuh_layer_id的层可以视为比特流的基础层。

在hevc中,vps标记vps_base_layer_internal_flag和vps_base_layer_available_flag可以如下地用来指示基础层的存在和可用性:如果vps_base_layer_internal_flag等于1并且vps_base_layer_available_flag等于1,则基础层存在于比特流中。否则,如果vps_base_layer_internal_flag等于0并且vps_base_layer_available_flag等于1,则基础层由外部手段提供给多层hevc解码过程,即经解码的基础层图片以及用于经解码的基础层图片的某些变量和语法元素被提供给多层hevc解码过程。否则,如果vps_base_layer_internal_flag等于1并且vps_base_layer_available_flag等于0,则基础层不可用(既不存在于比特流中也不由外部手段提供)但是vps包括基础层的信息,就像它存在于比特流中那样。否则(vps_base_layer_internal_flag等于0并且vps_base_layer_available_flag等于0),基础层不可用(既不存在于比特流中也不由外部手段提供)但是vps包括基础层的信息,就像它由外部手段提供那样。

编码标准可以包括子比特流提取过程,并且这例如在svc、mvc和hevc中被规定。子比特流提取过程涉及将比特流(通常通过移除nal单元)转换为子比特流,其也可以称为比特流子集。子比特流仍然保持符合于标准。例如,在hevc中,通过排除具有大于所选择的值的temporalid值的所有vclnal单元并且包括所有其他vclnal单元而被创建的比特流仍然是符合的。

hevc标准(版本2)包括三个子比特流提取过程。hevc标准的条款10中的子比特流提取过程等同于条款f.10.1中的子比特流提取过程,除外的是对于所得的子比特流的比特流符合性要求在条款f.10.1中被放松,从而它可以也被用于基础层在外部(在该情况下,vps_base_layer_internal_flag等于0)或不可用(在该情况下,vps_base_layer_available_flag等于0)的比特流。具有等于0的nuh_layer_id的vclnal单元不存在于具有等于0的vps_base_layer_available_flag的比特流中,并且具有最低nuh_layer_id值的层可以像语义和/或解码过程中的基础层那样被对待。hevc标准(版本2)的条款f.10.3规定了用于附加层集合的子比特流提取过程,其导致不包含基础层的子比特流。所有三个子比特流提取过程类似地操作:子比特流提取过程采用temporalid和/或nuh_layer_id值的列表作为输入,并且通过从比特流中移除具有大于输入temporalid值的temporalid或不在nuh_layer_id值的输入列表中的值之中的nuh_layer_id值的所有nal单元来得出子比特流(也称为比特流子集)。条款f.10.3专门处置某些类型且具有等于0的nuh_layer_id的nal单元,并且还设置vps中的vps_base_layer_available_flag的值。条款f.10.3的过程可以被规定如下:

-输出比特流outbitstream被设置为等同于输入比特流inbitstream。

-从outbitstream中移除如下的nal单元:具有不等于vps_nut、sps_nut、pps_nut、eos_nut和eob_nut的nal_unit_type并且具有不等于nuh_layer_id值的输入列表layeridlisttarget中的任何值的nuh_layer_id。

-从outbitstream中移除如下的nal单元:具有等于vps_nut、sps_nut、pps_nut或eos_nut的nal_unit_type并且具有不等于0或layeridlisttarget中的任何值的nuh_layer_id。

-从outbitstream中移除具有大于输入temporalid(tidtarget)的temporalid的所有nal单元。

-每个vps中的vps_base_layer_available_flag被设置为等于0。

编码标准或系统可能提及术语操作点等,其可以指示解码在其下进行操作的可伸缩层和/或子层,和/或可以与包括被解码的可伸缩层和/或子层的子比特流相关联。以下提供了操作点的一些非限制性定义。

在hevc中,操作点被定义为利用另一比特流、目标最高temporalid和目标层标识符列表作为输入而通过子比特流提取过程的操作从该另一比特流创建的比特流。

hevc的vps规定了层集合以及用于这些层集合的hrd参数。层集合可以被用作子比特流提取过程中的目标层标识符列表。在hevc中,层集合可以被定义为如下的比特流内表示的层的集合:该比特流利用另一比特流、等于6的目标最高temporalid、以及等于与该层集合相关联的层标识符列表的目标层标识符列表作为输入而通过子比特流提取过程的操作从该另一比特流被创建。

附加层集合可以被定义为比特流的层的集合,其具有一个或多个非基础层子树的层的集合。附加层集合可以被理解为不依赖于从附加层集合排除的层的层的集合。在hevc中,hevc版本1中规定的vps语法不允许附加层集合的指示,即基础层被要求存在于hevc版本1中规定的vps中指示的层集合中。hevc版本2中规定的vps扩展语法允许指示附加层集合。

当例如在得出和指示输出层集合中开始使用层集合和附加层集合时,它们可以等同地被对待。除非上下文另有指示,否则术语“层集合”在下文可以被理解为覆盖如上文定义的术语“层集合”和术语“附加层集合”两者的总术语。

输出层可以被定义为如下的层,它的经解码的图片通过解码过程输出。输出层可能依赖于多层比特流的哪个子集被解码。通过解码过程输出的图片可以进一步被处理,例如从yuv色彩空间到rgb的色彩空间转换可以被执行,并且它们可以被显示。然而,进一步的处理和/或显示可以被考虑为解码器和/或解码过程外部的过程并且可能不发生。

在多层视频比特流中,操作点定义可以包括目标输出层集合的考虑。例如,操作点可以被定义为如下的比特流,其利用另一比特流、目标最高时间子层(例如,目标最高temporalid)和目标层标识符列表作为输入而通过子比特流提取过程的操作从该另一比特流被创建,并且其与输出层的集合相关联。替换地,另一术语(诸如输出操作点)可以在提及操作点和相关联的输出层集合时被使用。例如,在mv-hevc/shvc中,输出操作点可以被定义为如下的比特流,其利用输入比特流、目标最高temporalid和目标层标识符列表作为输入而通过子比特流提取过程的操作从输入比特流被创建,并且其与输出层的集合相关联。

输出层集合(ols)可以被定义为由指定的层集合之一中的层构成的层集合,其中该层集合中的一个或多个层被指示为输出层。输出层可以被定义为当解码器和/或hrd使用输出层集合作为目标输出层集合进行操作时被输出的该输出层集合中的层。在mv-hevc/sevc中,变量targetolsidx可以通过将targetolsidx设置为等于是目标输出层集合的输出层集合的索引来指定哪个输出层集合是目标输出层集合。目标输出层集合可以被定义为索引对于其等于targetolsidx的输出层集合。targetolsidx可以例如由hrd来设置和/或由外部手段来设置,例如通过由解码器提供的接口而由播放器等来设置。在mv-hevc/sevc中,输出层可以被定义为当targetolsidx等于输出层集合的索引时被输出的输出层集合中的层。

必要层可以被定义为与输出层集合相关联的输出操作点中的层、作为输出层集合的输出层的层、或输出层集合的输出层的参考层。

mv-hevc/sevc允许使用特定机制或通过明确指示输出层的针对vps中指定的每个层集合的对“默认”输出层集合的推导。两种特定机制已经被规定:在vps中可以指定每个层是输出层或仅最高层是“默认”输出层集合中的输出层。当使用所提到的特定机制来确定层是否为输出层时,辅助图片层可以从考虑中被排除。另外,对“默认”输出层集合,vps扩展允许指定具有被指示为输出层的所选择的层的附加输出层集合。

特定层集合、附加层集合、或输出层集合可以通过索引被参考,并且索引可以根据层集合、附加层集合和输出层集合在vps中被指示的顺序来指配。输出层集合可以使用与层集合和附加层相同的索引空间,从而用于每个层集合和附加层集合的“默认”输出层集合具有相应的层集合或附加层的索引,并且附加输出层集合使用超出由层集合或附加层集合使用的那些索引值之外的索引值。

发送器、网关等可以选择可伸缩视频比特流的被传输的层和/或子层。术语层提取、层的提取、或层下切换可以是指传输比由发送器、网关等接收到的比特流中可用的层较少的层。层上切换可以是指传输与由发送器、网关等在层上切换之前传输的那些层相比附加的(多个)层,即重启一个或多个层的传输,该一个或多个层的传输早先在层下切换中被停止。类似于层下切换和/或上切换,发送器、网关等可以执行时间子层的下切换和/或上切换。发送器、网关等还可以执行层和子层两者的下切换和/或上切换。层和子层的下切换和/或上切换可以在相同的访问单元等中(即基本上同时)被执行,或可以在不同的访问单元等中(即基本上在不同时间)被执行。

尽管恒定的输出层集合很好地适合于最高层在每个访问单元中保持不变的使用情况和比特流,但是它们可能不支持最高层从一个访问单元改变到另一访问单元的使用情况。因此已经提出了编码器可以在比特流内指定替换输出层的使用,并且响应于替换输出层的指定使用,解码器在相同访问单元内的输出层中的图片不存在时从替换输出层输出经解码的图片。如何指示替换输出层存在若干可能性。例如,输出层集合中的每个输出层可以与最小替换输出层相关联,并且逐输出层的(多个)语法元素可以被用于指定针对每个输出层的(多个)替换输出层。替换地,替换输出层集合机制可以被约束为仅被用于包含仅一个输出层的输出层集合,并且逐输出层集合的(多个)语法元素可以被用于指定针对输出层集合中的输出层的(多个)替换输出层。替换地,如hevc中规定的,替换输出层集合机制可以被约束为仅被用于包含仅一个输出层的输出层集合,并且逐输出层集合的标记(hevc中的alt_output_layer_flag[olsidx])可以被用于指定输出层的任何直接或间接参考层可以用作针对输出层集合中的输出层的替换输出层。替换地,替换输出层集合机制可以被约束为仅被用于其中所有指定输出层集合包含仅一个输出层的比特流或cvs,并且(多个)替换输出层可以由逐比特流或逐cvs的(多个)语法元素来指示。(多个)替换输出层可以例如通过以下被指定:例如在vps内列出替换输出层(例如,使用它们的层标识符或者直接或间接参考层的列表的索引),指示最小替换输出层(例如,使用它的层标识符或它在直接或间接参考层的列表内的索引),或指定任何直接或间接参考层是替换输出层的标记。当允许多于一个替换输出层被使用时,可以指定输出存在于访问单元中的第一直接或间接层间参考图片按层标识符降顺向下直至所指示的最大替换输出层。

可伸缩编码中输出的图片可以例如如下地被控制:对于每个图片,picoutputflag在与针对单层比特流类似地解码过程中首先被得出。例如,在picoutputflag的推导中,用于图片的比特流中包括的pic_output_flag可以被考虑。当访问单元已经被解码时,输出层和可能的替换输出层被用来更新用于访问单元的每个图片的picoutputflag。

当比特流指定使用替换输出层机制时,在开始控制从解码过程输出的经解码的图片时,解码过程可以如下地操作。在这里,假设hevc解码在使用中并且alt_output_layer_flag[targetolsidx]等于1,但是该解码过程可以与其他编解码类似地被实现。当图片的解码被完成时,用于图片的变量picoutputflag可以被设置如下:

如果layerinitializedflag[nuh_layer_id]等于0,则picoutputflag被设置为等于0。

否则,如果当前图片是rasl图片并且相关联的irap图片的norasloutputflag等于1,则picoutputflag被设置为等于0。

否则,picoutputflag被设置为等于pic_output_flag,其中pic_output_flag是与图片相关联的语法元素,例如在图片的经编码的条带的条带头部中被携带。另外,当访问单元的最后图片的解码被完成时,访问单元的每个经解码的图片的picoutputflag可以如下地被更新(在下一图片的解码之前):

如果alt_output_layer_flag[targetolsidx]等于1并且当前访问单元不包含在输出层处的图片或包含在输出层处的具有等于0的picoutputflag的图片,则以下有顺序的步骤适用:

列表nonoutputlayerpictures被设置为访问单元的如下图片的列表:它们具有等于1的picoutputflag并且具有在输出层的参考层的nuh_layer_id值之中的nuh_layer_id值。

当列表nonoutputlayerpictures非空时,从列表nonoutputlayerpictures中移除在列表nonoutputlayerpictures之中具有最高nuh_layer_id值的图片。

用于列表nonoutputlayerpictures中包括的每个图片的picoutputflag被设置为0。

否则,用于输出层中未包括的图片的picoutputflag被设置为等于0。

如之前段落中描述的,当替换输出层机制在使用中时,在可以确定访问单元的哪个(哪些)经解码的图片由解码过程输出之前,访问单元的解码可能需要被完成。

统一资源标识符(uri)可以被定义为用来标识资源名称的字符串。这样的标识允许使用特定协议的通过网络与资源的表示的交互。uri通过一种方案被定义,该方案规定了用于uri的具体语法和相关联的协议。统一资源定位符(url)和统一资源名称(urn)是uri的形式。url可以被定义为如下的uri,其标识web资源并且指定施于或获得资源的表示的手段,指定它的主访问机制和网络位置两者。urn可以被定义为如下的uri,其通过特定名称空间中的名称来标识资源。urn可以被用于标识资源而不暗示它的位置或如何访问它。

可用的媒体文件格式标准包括iso基础媒体文件格式(iso/iec14496-12,其可以缩写为isobmff)、mpeg-4文件格式(iso/iec14496-14,也称为mp4格式)、用于nal单元结构化视频的文件格式(iso/iec14496-15)和3gpp文件格式(3gppts26.244,也称为3gpp格式)。iso/iec14496-15规定了h.264/avc和/或hevc和/或它们在符合于isobmff的文件中的扩展的比特流的存储。iso文件格式是用于推导所有上面提到的文件格式(排除iso文件格式自身)的基础。这些文件格式(包括iso文件格式自身)一般被称为文件格式的iso族。

isobmff的一些概念、结构和规范在下文作为容器文件格式的示例被描述,实施例可以基于其而被实施。本发明的各方面不限于isobmff,而是该描述被给出用于本发明可以在其上部分地或完全地被实现的一种可能基础。

iso基础媒体文件格式中的一个构建块被称为盒子(box)。每个盒子可以具有头部和有效载荷。盒子头部指示盒子的类型和按照字节的盒子的大小。盒子可以装有其他盒子,并且iso文件格式规定了在某种类型的盒子内允许哪些盒子类型。此外,在每个文件中一些盒子的存在可以是强制的,而其他盒子的存在可以是可选的。另外,对于一些盒子类型,可以可允许具有多于一个盒子存在于文件中。因此,iso基础媒体文件格式可以被考虑为指定了盒子的层次结构。iso基础媒体文件的每个盒子可以由四字符代码(4cc)来标识。头部可以提供与盒子的类型和大小有关的信息。

根据文件格式的iso族,文件可以包括可以被装入分离盒子中的媒体数据和元数据。在示例实施例中,媒体数据可以被提供在媒体数据(mdat)盒子中,并且电影(moov)盒子可以用来装入元数据。在一些情况中,对于将是可操作的文件,mdat盒子和moov盒子两者必须存在。电影(moov)盒子可以包括一个或多个轨道,并且每个轨道可以位于一个对应的轨道(trak)盒子中。每个轨道与处置器相关联,其由四字符代码标识,指定轨道类型。视频、音频和图像序列轨道可以统称为媒体轨道,并且它们包含基元媒体流。其他轨道类型包括提示轨道和定时的元数据轨道。轨道包括样本,诸如音频帧或视频帧。媒体轨道是指根据媒体压缩格式(以及它到iso基础媒体文件格式的封装)被格式化的样本(其也可以称为媒体样本)。提示轨道是指提示样本,包含用于构造通过所指示的通信协议传输的分组的食谱(cookbook)指令。食谱指令可以包括用于分组头部构造的指导并且可以包括分组有效载荷构造。在分组有效载荷构造中,位于其他轨道或项目中的数据可以被参考。如此,例如,位于其他轨道或项目中的数据可以通过如下的参考而被指示,该参考有关于特定轨道或项目中的数据的哪个片段被指令为将在分组构造过程期间被拷贝到分组中。定时的元数据轨道可以是指描述所参考的媒体的样本和/或提示样本。对于一种媒体类型的展示(presentation),一个媒体轨道可以被选择。轨道的样本可以隐含地与样本编号相关联,其可以按所指示的样本解码顺序被递增例如1。轨道中的第一样本可以与样本编号1相关联。

“trak”盒子包含“样本表”盒子。样本表盒子包括例如轨道中的媒体样本的所有时间和数据索引化。样本表盒子被要求包含“样本描述”盒子。样本描述盒子包括条目计数字段,其指定盒子中包括的样本条目的数目。样本描述盒子被要求包含至少一个样本条目。样本条目格式依赖于用于轨道的处置器类型。样本条目给出与所使用的编码类型有关的详细信息和该编码所需要的任何初始化信息。

iso基础媒体文件格式不限制展示被包含在一个文件中。如此,展示可以被包括在若干文件内。作为一种示例,一个文件可以包括用于整个展示的元数据,并且可以由此包括所有媒体数据以进行自包含的(self-contained)展示。其他文件(如果被使用)可以不要求被格式化为iso基础媒体文件格式,并且可以用来包括媒体数据,并且还可以包括未使用的媒体数据或其他信息。iso基础媒体文件格式仅关注展示文件的结构。媒体数据文件的格式可以由iso基础媒体文件格式或它的衍生格式约束,这仅在于媒体文件中的媒体数据如在iso基础媒体文件格式或它的衍生格式中规定的那样被格式化。

参考外部文件的能力可以通过数据参考来实现。在一些示例中,被包括在每个轨道中的样本描述盒子可以提供样本条目的列表,每个样本条目提供与所使用的编码类型有关的详细信息、以及该编码所需要的任何初始化信息。组块(chunk)的所有样本和轨道片段(fragment)的所有样本可以使用相同的样本条目。组块可以被定义为用于一个轨道的连续的样本集合。也可以被包括在每个轨道中的“数据参考”(dref)盒子可以定义以下各项的索引化列表:统一资源定位符(url)、统一资源名称(urn)、和/或对包含元数据的文件的自参考。样本条目可以指向数据参考盒子的一个索引,由此指示包含相应组块或轨道片段的样本的文件。

电影片段可以例如在将内容记录到iso文件时被使用,例如以便避免在记录应用崩溃、存储器空间耗尽、或一些其他事故发生的情况下丢失数据。没有电影片段,可能发生数据丢失,因为文件格式可能要求所有元数据(例如,电影盒子)被写入文件的一个连续区域中。再者,在记录文件时,可能没有足够量的存储器空间(例如,随机访问存储器ram)来缓冲对于可用的存储大小的电影盒子,并且在电影被关闭时重新计算电影盒子的内容可能太慢。此外,电影片段可以允许使用普通iso文件解析器的文件的同时记录和回放。再者,当电影片段被使用并且初始电影盒子与具有相同媒体内容但未利用电影片段被结构化的文件相比较小时,为了渐进式下载(例如,文件的同时接收和回放)可以要求较小的初始缓冲持续期。

电影片段特征可以允许将否则可能位于电影盒子中的元数据拆分成多个片断(piece)。每个片断可以对应于轨道的某个时间段。换句话说,电影片段特征可以允许将文件元数据和媒体数据交织。结果,电影盒子的大小可以被限制并且上面提到的使用情况被实现。

在一些示例中,如果用于电影片段的媒体样本在与moov盒子相同的文件中,则它们可以位于mdat盒子中。然而,对于电影片段的元数据,可以提供moof盒子。moof盒子可以包括之前已经在moov盒子中的用于回放时间的某个持续期的信息。moov盒子可以仍然独自地表示有效电影,但是另外地,它可以包括mvex盒子,mvex盒子指示电影片段将在相同文件中跟随。电影片段可以在时间上延长与moov盒子相关联的展示。

在电影片段内可能存在轨道片段集合,包括每轨道从零至多个的任何地方。轨道片段可以进而包括从零至多个轨道槽(trackrun)的任何地方,其中的每个文档是用于该轨道的样本的连续槽。在这些结构内,许多字段是可选的并且可以是默认的。可以被包括在moof盒子中的元数据可以被限制于如下元数据的子集,该元数据可以被包括在moov盒子中并且可以在一些情况中不同地被编码。与可以被包括在moof盒子中的盒子有关的细节可以从iso基础媒体文件格式规范中找到。自包含的电影片段可以被定义为由moof盒子和mdat盒子构成,它们按文件顺序是连续的并且其中mdat盒子包含电影片段(moof盒子针对其提供元数据)的样本且不包含任何其他电影片段(即,任何其他moof盒子)的样本。

iso基础媒体文件格式包含用于可能与特定样本相关联的定时元数据的三种机制:样本群组、定时的元数据轨道、以及样本辅助信息。推导的规范可以向类似功能提供这三种机制中的一种或多种。

iso基础媒体文件格式和它的衍生物(诸如avc文件格式和svc文件格式)中的样本分群组可以被定义为轨道中的每个样本基于分群组准则到一个样本群组的成员的指配。样本分群组中的样本群组不限于是邻接样本并且可以包含非相邻样本。因为对于轨道中的样本可能存在多于一种样本分群组,所以每种样本分群组可以具有类型字段来指示分群组的类型。样本分群组可以由两个关联数据结构来表示:(1)sampletogroup盒子(sbgp盒子)表示样本到样本群组的指配;以及(2)samplegroupdescription盒子(sgpd盒子)包含用于每个样本群组的描述群组性质的样本群组条目。基于不同的分群组准则,可能存在sampletogroup盒子和samplegroupdescription盒子的多个实例。这些实例可以通过用来指示分群组的类型的类型字段被区分。

matroska文件格式能够(但不限于)将视频、音频、图片、或子标题轨道存储在一个文件中。matroska文件扩展包括用于视频(具有子标题和音频)的.mkv、用于立体视频的.mk3d、用于仅音频文件的.mka、以及用于仅子标题的.mks。matroska可以被用作用于衍生的文件格式(诸如webm)的基础格式。

matroska使用可扩展二进制元语言(ebml)作为基础。ebml规定了由xml的原理启发的二元和八元(字节)对齐的格式。ebml它自身是二进制标记的技术的概括的描述。matroska文件由组成ebml“文档”的元素构成。元素包含元素id、用于元素大小的描述符、以及二进制数据本身。元素可以被嵌套。

matroska的片段元素是用于其他顶部级别(级别1)元素的容器。matroska文件可以包括一个节段(但不限于由一个节段组成)。matroska文件中的多媒体数据被组织在集群(或集群元素)中,每个通常包含数秒的多媒体数据。集群包括块组元素,块组元素进而包括块元素。线索元素包括如下的元数据,其可以协助随机访问或寻找并且可以包括文件指针或用于寻找点的相应时间戳。

可能被采用的传输文件格式或节段格式可以粗略地被分类为不同的类。在一种示例类中,被传输的文件可以符合于可以被用于实况文件回放的已有文件格式。例如,被传输的文件可以符合于iso基础媒体文件格式或第三代合作伙伴计划(3gpp)文件格式的渐进下载简档。在另一示例类中,被传输的文件可以类似于根据被用于实况文件回放的已有文件格式被格式化的文件。例如,被传输的文件可以是服务器文件的片段,其对于个体地回放可能不是自包含的。在另一种方法中,将被传输的文件可以符合于能够被用于实况文件回放的已有文件格式,但是文件可以仅部分地被传输并且因此这种文件的回放可能要求管理部分文件的意识和能力。

多目的互联网邮件扩展(mime)是对电子邮件协议的扩展,其使得有可能在互联网上传输和接收不同种类的数据文件,例如视频和音频、图像、软件等。互联网媒体类型是一种标识符,其在互联网上用来指示文件包含的数据的类型。这样的互联网媒体类型也可以称为内容类型。存在若干mime类型/子类型组合,它们可以包含不同媒体格式。内容类型信息可以在媒体传输的开端由传输实体包括在mime头部中。接收实体因此可能需要检查这种媒体内容的细节,以确定在给定编解码的可用集合的情况下特定元素是否可以被渲染。尤其是在末端系统具有有限资源、或通向末端系统的连接具有有限带宽时,单独从内容类型知道内容是否可以被渲染可能是有帮助的。

rfc6381规定了两个参数“编解码”和“简档”,它们与各种mime类型或类型/子类型组合一起使用,以允许由其内包含的媒体格式采用的编解码的无模糊规范、或总体容器格式的(多个)简档。

通过利用被指示以渲染所包含的媒体的特定编解码来标注内容,接收系统可以确定编解码是否被末端系统支持,并且如果不支持,则可以采取适当动作(诸如拒绝内容、发送该情形的通知、将内容转码到支持的类型、取回和安装所要求的编解码、进一步检验以确定它是否将足够支持所指示的编解码的子集,等等)。

类似地,简档可以向接收器提供内容所符合的规范的总体指示。这是容器格式和它的内容对某种规范的兼容性的指示。接收器可以能够算出如下的程度,到该程度它可以通过检查以查看它支持所声明的简档中的哪些简档以及它们意指什么来处置和渲染该内容。

尽管mime的一个动机是识别消息部分的特定媒体类型的能力,但是可能不总是有可能从查看mime类型和子类型来知道哪些特定媒体格式被包含在主体部分中或哪些编解码被指示以便于渲染内容。

存在包含从集合中选取的编解码的若干媒体类型/子类型(当前注册的或被部署而注册未决的)。在不存在“编解码”参数和/或“简档”参数时,可能有必要检查每个媒体元素以便确定渲染内容所要求的编解码或其他特征。

编解码参数的参数值可以被规定如下:单个值、或逗号分隔的值列表,其识别被指示来渲染主体部分中的内容的(多个)编解码。每个值可以包括一个或多个点分隔的元素。用于第一元素的名称空间由mime类型确定。用于每个后续元素的名称空间由之前的元素确定。

在多层hevc扩展中,“简档-层级-级别”组合被指示用于每个输出层集合的每个必要层。对于多层hevc扩展,一致性点可以被定义为简档-层级-级别组合的列表,其中该列表包括用于特定输出层集合的每个必要层的简档-层级-级别组合。不同的简档-层级-级别值(特别是不同级别值)可以被指示用于不同输出层集合中的相同层,因为经解码的图片缓冲器要求依赖于哪些层是必要层和哪些层是输出层而不同,并且经解码的图片缓冲器要求是级别规范的一部分。解码器能力可以作为简档-层级-级别组合的列表被指示。由于这些提到的原因,编解码mime参数内的单个简档-层级-级别值可能不足以描述例如符合于isobmff的文件中存储的多层hevc比特流。

用于基于isobmff的文件的mime类型的编解码参数针对这样的分层编解码(例如,多层hevc扩展)(对其而言,简档-级别信令是逐层的(或逐比特流分割的)而不是逐比特流或逐子比特流的)可以被规定如下。需要理解,尽管以下段落参考了该编解码参数,但是另一名称的参数可以替换地或另外地被参考。

当mime类型的“编解码”参数被使用时,如rfc6381中定义的,在mime类型标识isobmff族的文件格式并且“编解码”参数以来自iso/iec14496-15的样本条目代码开始时,随后的段落记录子参数。然而,需要理解,编解码参数可以类似地被规定用于除了isobmff以外的其他格式的容器和/或除了avc或hevc以外的编解码。

编解码参数可以具有以下结构(如rfc6381中规定的):

listitem1(,listitemn)*

其中星号(‘*’)指示0次或更多次的重复。

每个listitem可以具有以下结构:

sampleentrytype1.profiletierlevel1(.sampleentrytypen.profiletierleveln)*

应当理解,分隔符字符“.”可以等同地是任何其他分隔符字符,或者可能针对不同的位置或目的可以使用若干不同的分隔符字符。例如,可以使用分隔符字符“!”以替代sampleentrytypen前面的“.”。

sampleentrytype和profiletierlevel的配对可以称为简档-层级-级别子串。

样本条目类型(sampleentrytype)可以是包含经编码的数据的轨道的样本条目的四字符代码。简档-层级-级别子串规范相比于用于单层hevc的编解码mime类型规范可以保持不变。

当样本条目类型是指示来自高级视频编码规范(itu-t推荐h.264或iso/iec14496-10)的编解码的代码(诸如“avc1”、“avc2”、“avc3”、“avc4”、“svc1”、“svc2”、“mvc1”、“mvc2”、“mvc3”和“mvc4”-指示avc(h.264)、可伸缩视频编码(svc)或多视图视频编码(mvc))时,profiletierlevel元素是h.264/avc中规定的(子集)序列参数集合nal单元中的以下三个字节的十六进制表示:

profile_idc;

包含constraint_set标记(当前是constraint_set0_flag至constraint_set5_flag、以及reserved_zero_2bits)的字节;以及

level_idc。

应当注意,样本条目“avc1”、“avc2”、“avc3”和“avc4”不是必然指示媒体仅包含avcnal单元。事实上,媒体可以被编码为svc或mvc简档并且因此包含svc或mvcnal单元。为了能够确定哪个编解码被使用,可能需要进一步的信息(profile_idc)。此外,reserved_zero_2bits在h.264/avc中可能被要求等于0,但是itu-t|iso/iec未来可能规定用于它的其他值。

当svc或mvc内容以avc兼容方式被编码时,样本描述可以包括avc配置记录以及svc或mvc配置记录这两者。在那些情况下,可以推荐的是两个配置记录都被报告,因为它们可以包含不同的avc简档、层级和兼容性指示符值。因此,所报告的编解码将包括样本描述代码(例如“avc1”)两次,而来自配置记录之一的值形成每个中的“avcoti”信息。

当样本条目类型是指示来自高效视频编码规范(itu-t推荐h.265或iso/iec23008-2)的编解码的代码(诸如“hev1”、“hvc1”、“lhv1”或“lhe1”)时,简档-层级-级别子串被规定为一系列的代码和以下列表中的值,例如通过句号字符“.”分隔。这些值匹配于hevc比特流的对应profile_tier_level()语法结构的那些值,其通常可以从hevc解码器配置记录来获得。在所有数值编码中,引导的零可以被省略。

general_profile_space,被编码为没有字符(general_profile_space==0),或用于general_profile_space1、2、3的'a'、'b'、'c',之后跟随被编码为十进制数的general_profile_idc;

general_profile_compatibility_flags,以十六进制被编码(引导的零可以被省略);

general_tier_flag,被编码为'l'(general_tier_flag==0)或'h'(general_tier_flag==1),之后跟随被编码为十进制数的general_level_idc;

约束标记的6字节中的每个字节(从包含general_progressive_source_flag的字节开始),每个被编码为十六进制数,并且每个字节的编码通过句号分隔;为零的拖尾字节可以被省略。

当样本条目类型是指示来自高效视频编码规范的编解码的代码(诸如“hev1”或“hvc1”)、并且比特流包含仅一个层时,编解码参数的值是简档-层级-级别子串。例如,编解码=hev1.1.80.l93.b0指示渐进式、无包装流、主简档、主层级、级别3.1。

当样本条目类型是指示高效视频编码规范的分层hevc扩展的代码(诸如“lhv1”或“lhe1”)、或者比特流包含具有多于一个必要层的输出层集合时,分隔符(其可以是例如“.”或“!”)可以用来分隔编解码参数针对其被提供的输出层集合的必要层相对应的每个简档-层级-级别子串。与必要层相对应的每个简档-层级-级别子串由来自必要层的profile_tier_level()语法结构的一系列值构成。对于输出层集合的每个必要层,简档-层级-级别子串可以被要求存在。例如,编解码=hev1.a1.80.l93.b0!hev1.a7.1.l120.b0或编解码=hev1.a1.80.l93.b0.0.0.0.0.0.hev1.a7.1.l120.b0可以指示两层、渐进式、无包装流,其中包含基础层的轨道使用样本条目类型“hev1”,基础层符合于主简档、主层级、级别3.1,包含增强层的轨道使用样本条目类型“hev1”(例如,它可以被包含在也包含基础层的轨道中),增强层符合于可伸缩主简档、主层级、级别4。

当编解码参数内仅一个简档-层级-级别子串在listitem中被提供用于所预测的层时,比特流和编解码参数可以例如如下地被约束。每个层可以被存储作为单独轨道;并且应当存在单独的listitem用于每个轨道(例如,作为rfc6381规定的逗号分隔列表)。编解码参数的逗号分隔列表可以是按如下顺序的:基础层的列表元素最后出现并且层的任何列表元素应该不依赖于早先在列表中出现的那些层。需要理解,列表元素的顺序可以替换地被规定为不同,例如以使得基础层的列表元素首先出现并且层的任何列表元素不应该依赖于之后在列表中出现的那些层。当逗号分隔列表包含n个列表元素时,比特流可以包括至少n个输出层集合而使得它们由i个必要层构成,该i个必要层对应于来自逗号分隔列表的尾部的i个列表元素(针对范围1至n(含)中的每个i值)。这些约束可以允许推断要求被解码的层的数目以及它们的简档、层级、以及级别要求。

在下文中,提供了编解码参数的值的一些示例:编解码=hev1.a1.80.l93.b0.0.0.0.0.0.lhv1.a7.1.l120.b0,hev1.a1.80.l93.b0.0.0.0.0.0.lhv1.a6.2.l120.b0可以指示包括两个输出层集合“可伸缩”输出层集合和“多视图”输出层集合的比特流;或相同文件中存储的两个比特流,一个包含“可伸缩”输出层集合并且另一个包含“多视图”输出层集合。“可伸缩”输出层集合是两层、渐进式、无包装流,其中包含基础层的轨道使用样本条目类型“hev1”,基础层符合于主简档、主层级、级别3.1,包含增强层的轨道使用样本条目类型“lhv1”,并且增强层符合于可伸缩主简档、主层级、级别4。“多视图”输出层集合是两层、渐进式、无包装流,其中包含基础层的轨道使用样本条目类型“hev1”,基础层符合于主简档、主层级、级别3.1,包含增强层的轨道使用样本条目类型“lhv1”,并且增强层符合于可伸缩主简档、主层级、级别4。注意,相同轨道可以被用作用于这两个输出层集合的基础层轨道。编解码=lhv1.a7.1.l120.b0,hev1.a1.80.l93.b0可以指示两层、渐进式、无包装流,其中包含增强层的轨道使用样本条目类型“lhv1”,增强层符合于可伸缩主简档、主层级、级别4,包含基础层的轨道使用样本条目类型“hev1”,并且基础层符合于主简档、主层级、级别3.1。每个层是单独的轨道。存在包含作为必要层的增强层和基础层的输出层集合、以及仅包含基础层的输出层集合。编解码=lhv1.a7.1.l120.b0,avc1.64081f可以指示包含增强层的轨道使用样本条目类型“lhv1”,增强层符合于可伸缩主简档、主层级、级别4,增强层包含渐进式、无包装图片,并且增强层从经avc编码的基础层来预测。经avc编码的基础层使用样本条目类型“avc1”,并且基础层符合于渐进式高简档、级别3.1。

iso/iec国际标准23009-1规定了http上动态适应性流动(dash)。mpeg-dash的一些概念、格式和操作在下面被描述作为实施例可以被实施在其中的视频流式系统的示例。本发明的各方面不限于mpeg-dash,而是该描述被给出以用于本发明在其上可以部分地或完全地被实现的一种可能基础。

在http上动态适应性流动(dash)中,多媒体内容可以被捕获和存储在http服务器上并且可以使用http被递送。内容可以在服务器上被存储在两个部分中:媒体展示描述(mpd),其描述可用内容的清单、它的各种替换物、它们的url地址、以及其他特性;以及单个或多个文件中的节段,这些节段包含组块形式的实际多媒体比特流。为了播放内容,dash客户端可以例如通过使用http、电子邮件、拇指驱动器、广播、或其他传送方法来获得mpd。通过解析mpd,dash客户端可以知晓程序定时、媒体内容可用性、媒体类型、分辨率、最小和最大带宽、以及多媒体组件的各种编码替换物的存在、可访问性特征和所要求的数字权限管理(drm)、网络上的媒体组件位置、以及其他内容特性。使用这一信息,dash客户端可以选择适当的编码替换物并且通过使用例如httpget请求取回节段而开始使内容流动。在适当的缓冲以允许网络吞吐量变化之后,客户端可以继续取回后续节段并且还监测网络带宽波动。客户端可以通过取回不同替换物(具有较低或较高比特率)的节段来决定如何适配于可用带宽以维持充足的缓冲器。

媒体展示描述(mpd)可以为客户端提供信息以建立http上动态适应性流动。mpd可以包含描述媒体展示的信息,诸如每个节段的http-统一资源定位符(url),以进行get节段请求。在dash中,层次数据模型可以用来构建如图6中示出的媒体展示。媒体展示可以包括一个或多个时段的序列,每个时段可以包含一个或多个群组,每个群组可以包含一个或多个适配集合,每个适配集合可以包含一个或多个表示,并且每个表示可以包括一个或多个节段。表示是媒体内容的替换选择之一或替换选择的子集,其可以通过编码选择(例如通过比特率、分辨率、语言、编解码等)而不同。节段可以包含媒体数据的某个持续期、以及用以解码并呈现所包括的媒体内容的元数据。节段可以由统一资源指示符(uri)来标识并且可以通过httpget请求来请求。节段可以被定义为与http-url相关联的数据的单元并且可选地是由mpd指定的字节范围。

dashmpd符合于可扩展标记语言(xml)并且因此通过xml中定义的元素和属性来指定。mpd可以使用以下惯例来指定:xml文档中的元素可以由大写首字母来标识并且可以按粗体表现为element。为了表达元素element1被包含在另一元素element2中,可以写出element2.element1。如果元素的名称由两个或更多组合词构成,则可以使用驼峰式大小写,例如importantelement。元素可以确切地存在一次,或者可以通过<minoccurs>...<maxoccurs>来定义最小和最大出现。xml文档中的属性可以由小写首字母来标识并且它们之前可以是“@”符号,例如@attribute。为了指向元素element中包含的特定属性@attribute,可以写出element@attribute。如果属性的名称由两个或更多组合词构成,则可以在首词之后使用驼峰式大小写,例如@veryimportantattribute。属性可能已经将xml中的状态指配为强制的(m)、可选的(o)、以默认值可选的(od)、以及有条件强制的(cm)。

在dash中,所有的描述符元素以相同方式被构建,即它们包含提供uri以标识方案的@schemeiduri属性、以及可选的属性@value和可选的属性@id。元素的语义特定于所采用的方案。标识方案的uri可以是urn或url。一些描述符在mpeg-dash(iso/iec23009-1)中被规定,而在其他规范中可以另外地或替换地规定描述符。当在除了mpeg-dash以外的规范中被规定时,mpd不提供关于如何使用描述符元素的任何特定信息。它取决于采用dash格式来实例化具有适当方案信息的描述元素的应用或规范。使用这些元素之一的应用或规范定义了以uri为形式的方案标识符以及当该方案标识符被使用时用于元素的值空间。方案标识符出现在@schemeiduri属性中。在要求枚举值的简单集合的情况下,文本串可以被定义用于每个值并且这个串可以被包括在@value属性中。如果要求结构化数据,则任何扩展元素或属性可以被定义在单独的名称空间中。@id值可以被用来指代唯一描述符或一组描述符。在后一种情况下,具有用于属性@id的相同值的描述符可以被要求为同义,即具有用于@id的相同值的描述符之一的处理是足够的。如果元素名称、@schemeiduri的值和@value属性的值是等同的,则类型descriptortype的两个元素是等同的。如果@schemeiduri是urn,则等同性可以是指rfc2141的条款5中定义的词汇等同性。如果@schemeiduri是url,则等同性可以是指rfc3986的条款6.2.1中定义的在“字符针对字符”基础上的相等。如果@value属性不存在,则等同性可以仅通过针对@schemeiduri的等同性来确定。扩展名称空间中的属性和元素可以不被用于确定等同性。对于等同性确定,@id属性可以被忽略。

mpeg-dash规定了描述符essentialproperty和supplementalproperty。对于元素essentialproperty,媒体展示作者表达了:描述符的成功处理对于恰当地使用包含这一描述符的母元素中的信息是必需的,除非该元素与另一essentialproperty元素共享相同的@id。如果essentialproperty元素共享相同的@id,则处理具有用于@id的相同值的essentialproperty元素之一是足够的。每个相异@id值的至少一个essentialproperty元素预期被处理。如果用于essentialproperty描述符的方案或值未被识别,则dash客户端预期忽略包含该描述符的母元素。具有用于@id的相同值并且具有用于@id的不同值的多个essentialproperty元素可以存在于mpd中。

对于元素supplementalproperty,媒体展示作者表达了该描述符包含可以由dash客户端用于优化处理的补充信息。如果用于supplementalproperty描述符的方案或值未被识别,则dash客户端预期忽略该描述符。多个supplementalproperty元素可以存在于mpd中。

dash服务可以被提供作为按需服务或实况服务。在前者中,mpd是静态的并且媒体展示的所有节段在内容提供者发布mpd时已经是可用的。然而,在后者中,依赖于由mpd采用的节段url构造方法,mpd可以是静态的或动态的,并且随着内容由内容提供者产生并发布给dash客户端,节段可以连续地被创建。节段url构造方法可以是基于模板的节段url构造方法或节段列表生成方法。在前者中,dash客户端可以能够构造节段url而无需在请求节段之前更新mpd。在后者中,dash客户端可能需要定期地下载经更新的mpd以得到节段url。因此,对于实况服务,基于模板的节段url构造方法可以优于节段列表生成方法。

在dash的上下文中,可以使用以下定义:媒体内容组件或媒体组件可以被定义为媒体内容的一个连续组件,其具有可以被个体地编码到媒体流中的所指配的媒体组件类型。媒体内容可以被定义为一个媒体内容时段或媒体内容时段的邻接序列。媒体内容组件类型可以被定义为媒体内容的单个类型,诸如音频、视频或文本。媒体流可以被定义为媒体内容组件的经编码的版本。

初始化节段可以被定义为包含如下元数据的节段,该元数据对于呈现媒体节段中封装的媒体流是必要的。在基于isobmff的节段格式中,初始化节段可以包括电影盒子(“moov”),其可以不包括用于任何样本的元数据,即用于样本的任何元数据在“moof”盒子中被提供。

媒体节段可以被定义为如下的节段,其符合于容器文件格式和/或使用中的媒体格式或多种格式并且在与零个或更多在前节段和初始化节段(如果有)组合时允许回放。媒体节段可以包含用于以正常速度回放的媒体数据的某个持续期,这样的持续期可以被称为媒体节段持续期或节段持续期。内容生产者或服务提供者可以根据服务的所期望的特性来选择节段持续期。例如,在实况服务中可以使用相对短的节段持续期以实现短的端到端时延。原因是节段持续期可能是由dash客户端感知的端到端时延的下界,因为节段是生成用于dash的媒体数据的离散单元。内容生成可以按这样的方式完成:媒体数据的整体节段被使得可用于服务器。此外,许多客户端实施方式可以使用节段作为用于get请求的单元。因此,在用于实况服务的一些布置中,仅当媒体节段的整个持续期可用并且被编码和封装到节段中时节段才可以由dash客户端请求。对于按需服务,可以使用选择节段持续期的不同策略。

节段可以进一步被分割为子节段,其中的每个子节段可以包含完整的访问单元。子节段可以通过节段索引而被索引化,节段索引包含用以映射用于每个子节段的展示时间范围和字节范围的信息,并且可以用来使用字节范围http请求以进行用于特定子节段的httpget请求。如果使用相对长的节段持续期,则子节段可以用来将http响应的大小保持为合理和灵活以用于比特率适配。在基于isobmff的节段格式中,子节段可以被定义为一个或多个相继电影片段的自包含集合,其中自包含集合包含具有对应的(多个)媒体数据盒子的一个或多个电影片段盒子,并且包含由电影片段盒子参考的数据的媒体数据盒子必须跟随该电影片段盒子且在包含与相同轨道有关的信息的下一电影片段盒子之前。

每个媒体节段可以被指配唯一的url(可能具有字节范围)、索引、明确的或隐含的开始时间和持续期。每个媒体节段可以包含至少一个流访问点,它是媒体流中的随机访问或切换至的点,解码可以在该点处仅使用从该点向前的数据开始。

为了允许下载多个部分中的节段,可以利用一种使用节段索引盒子来用信号通知子节段的方法。这个盒子通过用信号通知它们的持续期和字节偏移来描述子节段和节段中的流访问点。dash客户端可以使用索引化信息来请求使用部分httpget请求的子节段。节段的索引化信息可以被放在位于该节段的起始处的单个盒子中,或散布在节段中的许多索引化盒子之中。不同的散布方法是可能的,诸如层次的、菊链、以及混合的。这种技术可以避免在节段的起始处添加大盒子并且因此可以防止可能的初始下载延迟。

节段(或相应地是子节段)可以如下地被定义为是非交叠的:令te(s,i)是节段或子节段s的流i中的任何访问单元的最早展示时间,并且令tl(s,i)是节段或子节段s的流i中的任何访问单元的最晚展示时间。两个节段(相应地是子节段)a和b(它们可以具有或可以不具有不同的表示)在以下情况下可以被定义为非交叠的:当对于a和b中的所有媒体流i有tl(a,i)<te(b,i),或如果对于a和b中的所有流i有tl(b,i)<te(a,i),其中i指代相同的媒体组件。

mpeg-dash定义了用于iso基础媒体文件格式和mpeg-2传输流这两者的节段容器格式。其他规范可以基于其他容器格式规定节段格式。例如,基于matroska容器文件格式的节段格式已经被提出并且可以被总结如下。当matroska文件作为dash节段等被携带时,dash单元和matroska单元的关联性可以如下被规定。(dash的)子节段可以被定义为经matroska封装的内容的一个或多个相继集群。dash的初始化节段可能被要求包括ebml头部、(matroska的)节段头部、(matroska的)节段信息和轨道,并且可以可选地包括其他级别1元素和填充。dash的节段索引可以包括matroska的线索元素。

dash规定了不同时间线,包括媒体展示时间线和节段可用性时间。前者指示具有媒体内容的访问单元的展示时间,其被映射到全局共同展示时间线。媒体展示时间线可以使得dash能够无缝地同步利用不同编码技术被编码且共享共同时间线的不同媒体组件。后者指示墙上时钟时间,并且被用来用信号通知客户端可以由httpurl标识的节段的可用性时间。dash客户端可以能够通过将墙上时钟时间与指配给该节段的节段可用性时间相比较来识别某个节段的可用性时间。节段可用性时间可以被使用在媒体节段的实况递送(称为实况服务)中。对于实况服务,节段可用性时间从节段到节段是不同的,并且某个节段的可用性时间可能依赖于节段在媒体展示时间线中的位置。对于按需服务,节段可用性时间对于所有节段可以是相同的。

dash通过以下来支持速率适配:动态地从适配集合内的不同表示请求媒体节段和/或子节段以匹配于变化的网络带宽。当dash客户端向上/向下切换表示时,表示内的编码依赖性可能需要被考虑。在媒体解码中,表示切换可能仅发生在诸如h.264/avc之类的视频编码技术中可以使用的随机访问点(rap)处。为了避免将不被解码的媒体数据的请求和传输,rap可以在媒体节段和/或子节段的起始处被对齐,并且mpd和/或节段索引盒子可以用来指示rap在媒体节段和/或子节段的起始处的对齐。因此,dash客户端可以能够推断要请求哪些节段和/或子节段,以使得在表示切换被执行时,目的地表示的第一节段和/或子节段以rap开始并且源和目的地表示的节段和/或子节段被对齐(按时间)。在dash中,引入了名称为流访问点(sap)的更一般的概念,以提供用于访问表示和在表示之间切换的编解码独立的解决方案。在dash中,sap被规定为表示中的位置,该位置使得媒体流的回放能够仅使用从该位置开始向前的(之前是初始化节段中的初始化数据,如果有)表示数据中包含的信息而开始。因此,表示切换可以在sap中被执行。

已经规定了sap的若干类型,包括以下类型。sap类型1对应于在一些编码方案中称为“封闭gop随机访问点”的事物(其中所有图片按解码顺序可以正确地被解码,导致没有间隙的正确解码的图片的连续时间序列),并且另外地,按解码顺序的第一图片也是按展示顺序的第一图片。sap类型2对应于在一些编码方案中称为“封闭gop随机访问点”的事物(其中所有图片按解码顺序可以正确地被解码,导致没有间隙的正确解码的图片的连续时间序列),对于其,按解码顺序的第一图片可以不是按展示顺序的第一图片。sap类型3对应于在一些编码方案中称为“开放gop随机访问点”的事物,其中可以存在按解码顺序的一些图片不能正确地被解码并且具有比与sap相关联的经之内编码的图片少的展示时间。

内容提供者可以按照可以使切换更简单的方式来创建多个表示的节段和子节段。在简单情况中,每个节段和子节段以sap开始并且节段和子节段的边界跨适配集合的表示而被对齐。在这样的情况下,dash客户端可以能够通过从原始表示向新表示请求节段或子节段而没有误差漂移地切换表示。在dash中,对构造节段和子节段的限制被规定在mpd和节段索引中,以便促进dash客户端切换表示而不引入误差漂移。dash中规定的简档的用途之一是提供对构造节段和子节段等的不同级别的限制。

如上文描述的,类似于可伸缩视频比特流的被传输的层和/或子层如何可以被确定,客户端或播放器可以请求节段和子节段从不同表示被传输。术语“表示下切换”或“比特流下切换”可以指代请求或传输相比之前(相应地)请求或传输的比特率表示较低的比特率表示。术语“表示上切换”或“比特流上切换”可以指代请求或传输相比之前(相应地)请求或传输的比特率表示较高的比特率表示。术语“表示切换”或“比特流切换”可以总体地指代表示或比特流的上切换和下切换。

类似于mpeg-dash的流式系统包括例如http实况流动(称为hls),被规定在ieft互联网草案draft-pantos-http-live-streaming-13(以及相同的互联网草案的其他版本)中。作为对应于mpd的清单格式,hls使用扩展的m3u格式。m3u是用于多媒体播放列表的文件格式,最初被开发用于音频文件。m3u播放列表是由个体行构成的文本文件,并且每行是uri、空白的、或以指示标签或评论的字符“#”开始。uri行标识媒体节段或播放列表文件。标签以#ext开始。hls规范规定了多个标签,它们可以被视为关键值配对。标签的值部分可以包括属性列表,其是属性值配对的逗号分隔列表,其中属性值配对可以被考虑为具有语法attributename=attributevalue。因此,hlsm3u8文件的标签可以被考虑为类似于mpd或xml中的元素,并且hlsm3u8文件的属性可以被考虑为类似于mpd或xml中的属性。hls中的媒体节段根据mpeg-2传输流而被格式化并且包含单个mpeg-2节目。每个媒体节段被推荐以节目关联性表(pat)和节目映射表(pmt)开始。

在相同内容的不同比特流之间的切换可以被用于比特率适配。向不同比特流的切换可以例如在开始封闭gop的任何之内图片(诸如idr图片)处被完成。

为了响应于将比特率调节为更快的需求并且避免频繁之内图片的压缩惩罚,一种可能的选择可以是从非之内图片开始流切换。在一种实施例中,s帧(它们是经之间编码的帧)仅在从第一流切换至第二流时才被使用。这样的s帧可以利用小量化步长被编码,并且使得经解码的s帧接近但通常不同于第二流的对应经解码的图片。h.264/avc包括称为si/sp图片的特征。sp帧和si帧可以与s帧类似地被使用,但是相比于从起始处对流的解码,它们可以在切换之后提供相同的经解码的图片。相同的经解码的图片可以用以下代价来获得:针对两者都在主要流中的si/sp图片以及仅用于切换的si/sp图片的解码过程中的附加变换步骤和量化步骤。然而,si/sp特征未包括在基线或高简档中并且因此未普遍使用。

图7示出了sp图片可以如何被用来在两个不同比特流之间切换的示例。在该文件格式中,切换图片(示例图7中的sp3)被存储在切换图片轨道中,切换图片轨道是与正从其被切换的轨道和正向其切换的轨道分开的轨道。切换图片轨道可以通过特定的所要求的轨道参考在该轨道中的存在而被识别。切换图片是具有确切相同解码时间的目的地轨道中的样本的替换物。如果所有的切换图片是si图片,则可能不需要进一步的信息。

如果切换轨道中的图片中的任何图片是sp图片,则可能需要两个额外的信息。首先,正从其进行切换的源轨道可以通过使用轨道参考来识别(源轨道可以是与目的地轨道相同的轨道)。其次,可能需要切换图片对源轨道中的样本的依赖性,以使得切换图片仅在它所依赖的图片已经被供应给解码器时才被使用。

这一依赖性可以借助于可选的额外样本表来表示。在切换轨道中每样本存在一个条目。每个条目记录切换图片所依赖的源轨道中的相对样本编号。如果这一阵列对于给定样本是空的,则该切换样本包含si图片。如果依赖性盒子不存在,则仅si帧应该存在于轨道中。

切换样本可以拥有具有不同依赖性的多个经编码的表示。对于avc视频,切换样本的多个表示可以被存储在不同的切换轨道(即访问单元)中。例如,一个切换轨道可以包含依赖于一些较早样本的sp图片表示,被用于流切换,而另一切换轨道可以包含另一表示作为si图片,被用于随机访问。

适应性分辨率改变(arc)是指动态地改变视频序列内的分辨率,例如在视频会议使用情况中。适应性分辨率改变可以被用于例如更好的网络适配和错误恢复。为了更好地适配于针对不同内容的变化的网络要求,可能期望除了质量之外还能够改变时间/空间分辨率两者。适应性分辨率改变也可以允许快速开始,其中会话的启动时间可以能够通过首先发送低分辨率帧并然后增大分辨率而被增加。适应性分辨率改变可以进一步在组成会议时被使用。例如,当一个人开始说话时,他的/她的对应的分辨率可以被增大。利用idr帧来这样做可能引起质量上的“突变(blip)”,因为idr帧需要以相对低的质量被编码以使得延迟不显著增大。

序列级别信令可以用来向解码器指示比特流中是否存在分辨率改变。这可以例如通过使用标记single_layer_for_non_irap_flag来执行。single_layer_for_non_irap_flag可以用来用信号通知经编码的视频序列被约束以执行适应性分辨率改变操作。single_layer_for_non_irap_flag具体地指示:除了切换图片之外,序列中的每个au都包含来自单个层的单个图片(其可以是或可以不是bl图片);并且切换发生的访问单元包括来自两个层的图片,这样的访问单元中的el图片是irap图片,以及层间预测可以被用于elirap图片。

在vps中指示single_layer_for_non_irap_flag可以允许解码器知道可伸缩性除了实现分辨率改变之外未被使用,以使得解码器资源可以在会话开始时相应地被分配。

single_layer_for_non_irap_flag可以被包括在vpsvui语法中,因为它可以不引起规范解码过程中的改变。

single_layer_for_non_irap_flag的语义可以被规定如下:

等于1的single_layer_for_non_irap_flag指示以下:

-如果vps_base_layer_internal_flag等于1,则等于1的single_layer_for_non_irap_flag指示了对于这一vps针对其为活动vps的每个访问单元,以下中的任一项为真:

○访问单元的所有vclnal单元具有相同的nuh_layer_id值。

○两个nuh_layer_id值由访问单元的vclnal单元使用,并且具有较大nuh_layer_id值的图片是irap图片。

-否则(vps_base_layer_internal_flag等于0),则等于1的single_layer_for_non_irap_flag指示了对于这一vps针对其为活动vps的每个访问单元,以下中的任一项为真:

○具有等于0的nuh_layer_id的经解码的图片未由外部手段提供用于访问单元并且访问单元包含一个经编码的图片。

○具有等于0的nuh_layer_id的经解码的图片未由外部手段提供用于访问单元,访问单元包含两个经编码的图片,并且具有较大nuh_layer_id值的图片是irap图片。

○具有等于0的nuh_layer_id的经解码的图片由外部手段提供用于访问单元并且访问单元包含一个经编码的图片,其是irap图片。

等于0的single_layer_for_non_irap_flag指示上面的约束可以应用或可以不应用。当不存在时,single_layer_for_non_irap_flag的值被推断为等于0。

single_layer_for_non_irap_flag可以由higher_layer_irap_skip_flag所伴随,对于其而言,语义可以被规定如下:

等于1的higher_layer_irap_skip_flag指示每个irap图片currirappic如下面规定地被约束。对于这一vps针对其为活动vps的每个访问单元currau,currirappic如下地被得出:

-如果vps_base_layer_internal_flag等于1,则currau包含两个经编码的图片,并且具有较大nuh_layer_id值的图片是irap图片,令currirappic是该irap图片。

-否则,如果vps_base_layer_internal_flag等于0,则具有等于0的nuh_layer_id的经解码的图片未由外部手段提供用于currau,currau包含两个经编码的图片,并且具有较大nuh_layer_id值的图片是irap图片,令currirappic是该irap图片。

-否则,如果vps_base_layer_internal_flag等于0,则具有等于0的nuh_layer_id的经解码的图片由外部手段提供用于currau,并且访问单元包含一个经编码的图片,其是irap图片,令currirappic是该irap图片。

-否则,currirappic未被得出用于currau。

-以下约束可以应用于每个图片currirappic:

○对于irap图片的所有条带:

■slice_type应该等于p。

■slice_sao_luma_flag和slice_sao_chroma_flag两者应该等于0。

■five_minus_max_num_merge_cand应该等于4。

■weighted_pred_flag在由条带参考的pps中应该等于0。

○对于irap图片的所有编码单元:

■cu_skip_flag[i][j]应该等于1。

当single_layer_for_non_irap_flag等于0时,higher_layer_irap_skip_flag应当等于0。当higher_layer_irap_skip_flag不存在时,它可以被推断为等于0。

当vps_base_layer_internal_flag等于1时,编码器可以设置等于1的single_layer_for_non_irap_flag作为对解码器的指示:至多两个图片存在于任何访问单元中并且每当相同的访问单元中存在两个图片时,具有nuh_layer_id的较高值的图片是irap图片。编码器可以另外地设置等于1的higher_layer_irap_skip_flag作为对解码器的指示:每当相同的访问单元中存在两个图片时,具有nuh_layer_id的较高值的图片是irap图片,对于其而言,经解码的样本可以通过以下被得出:利用具有nuh_layer_id的较低值的另一图片作为输入来应用层间参考图片推导过程。

当single_layer_for_non_irap_flag等于1并且higher_layer_irap_skip_flag等于1时,包含两个图片的访问单元中的具有nuh_layer_id的较高值的图片可以被称为经跳过编码的irap图片或跳过图片。

跳过图片在大小上可以为小,因为合并模式可以被用来编码对于每个预测单元的层间运动,编码树单元不需要被拆分为编码单元,并且可以要求仅一个经cabac编码的标记cu_skip_flag以跳过用于每个编码单元的残差编码。

独立非基础层和独立非基础层解码(inbld)能力

独立层可以被定义为不具有直接参考层的层。换句话说,独立层不使用层间预测被预测。

非基础层可以被定义为除了基础层以外的任何其他层,并且基础层可以被定义为比特流中的最低层。

独立非基础层可以被定义为既是独立层又是非基础层的层。

独立非基础层解码(inbld)能力与一个或多个单层简档(诸如主简档)的解码能力相关联。在表达用于一个或多个单层简档的解码器的能力时,也应当表达针对那些简档是否支持独立非基础层解码能力。

独立非基础层解码能力在被支持时可以指示解码器解码独立非基础层的能力,独立非基础层例如在活动vps和sps中被指示为符合于单层简档并且是附加层集合中具有最小nuh_layer_id值的层。

当hevc的profile_tier_level()语法结构被用于指示系统中的解码器能力时,独立非基础层解码能力可以通过以下来指示:在用来表达解码器所符合的简档、层级和级别的profile_tier_level()语法结构中设置等于1的general_inbld_flag。

general_inbld_flag在hevcprofile_tier_level()语法结构中可以设置为等于1,在hevcprofile_tier_level()语法结构中指示了单层简档,并且hevcprofile_tier_level()语法结构在vps中被指定可应用于非基础层或包括在被激活用于独立非基础层的sps中。

具有独立非基础层解码能力且符合于特定层级的特定级别处的特定单层简档的hevc解码器可以能够解码任何独立非基础层、或所有以下条件对于其而言适用于每个活动vps的独立非基础层的具有等于i的temporalid的子层表示:

-存在由独立非基础层构成的ols,并且对于其而言相关联的profile_tier_level()语法结构ptlstruct被约束如下:

○ptlstruct指示独立非基础层或子层表示符合于附录a中规定的简档。

○ptlstruct指示独立非基础层或子层表示符合于低于或等于指定级别的级别。

○ptlstruct指示独立非基础层或子层表示符合于低于或等于指定层级的层级。

○ptlstruct中的general_inbld_flag或sub_layer_inbld_flag[i]等于1。

编码标准可以包括独立非基础层重写过程,并且其被规定用于hevc中的示例。这样的重写过程可以采用包括独立非基础层的比特流作为输入,并且转换独立非基础层成为该过程的输出比特流的基础层。令所得出的比特流outbitstream是通过调用独立非基础层重写过程所得出的比特流。具有独立非基础层解码能力的解码器可以应用独立非基础层重写过程来获得outbitstream,并且然后将解码过程应用于以outbitstream作为输入所指定的单层简档。

随机访问点(rap)图片在流式方案中被用来提供诸如寻找和快进播放之类的功能。在dash中,rap图片还被用来允许表示切换,其可以作为对播放器的速率适配逻辑的响应而被执行,以避免接收缓冲器的下溢并尽可能有效率地使用网络吞吐量。

为了支持客户端在dash表示的流式会话期间在不同质量和分辨率之间切换,随机访问点图片可以在节段边界处被编码。常规地,仅有开始所谓的封闭图片组(gop)预测结构的瞬时rap图片,如瞬时解码刷新(idr)图片,已经被使用在dash表示的节段边界处。对开始开放gop的之内图片(即,h.265/hevc中的cra图片)的使用在与较旧标准比较时已经在h.265/hevc中被改进,因为从cra图片开始的解码过程已经规范地被规定。当解码从cra图片开始时,按解码顺序跟随在cra图片之后但是按输出顺序在cra图片之前的、参考随机访问跳过引导(rasl)图片的一些图片可能不是可解码的。结果,如果开放gop被使用在dash中的节段边界处,则表示切换将会导致不能解码rasl图片并且因此导致回放中的图片速率毛刺。例如,如果8个图片的预测层次被使用并且图片速率为25hz,则视频将会被冻结大约三分之一秒。

当表示使用开放gop结构并且共享相同分辨率和其他特性时,即当源表示的经解码的图片可以被用作诸如用于预测目标表示的图片的参考图片时,无缝表示切换可以被允许。然而,表示可能未共享相同的特性,例如它们可能具有不同的空间分辨率,其中无缝表示切换可能需要一些进一步的考虑。

在下文中,更详细地公开了与无缝表示切换有关的一些挑战。

对引导图片的适当处置可能不是显然的。作为处置引导图片的挑战的说明,下面参考图8a-图8e描述了一种示例。在这一示例中,图片的输出顺序从左边运行到右边。注意,解码顺序不同于输出顺序。在图8a的示例中,存在两个比特流,bs1和bs2。图片以矩形指示,并且图片类型在矩形内指示:idr、之内的(i)、之间的(p)、或双向预测的(b)。大于0的temporal_id的值被指示为图片类型之后的数字。箭头指示之间预测关系:箭头的源被用作用于箭头正指向的图片的参考图片。

在该示例中,在i图片处进行从第一比特流bs1到第二比特流bs2的切换。应当关注的是按输出顺序紧接在i图片之前的引导图片(b2、b1、b2)的处置。

对(“不可解码的”)引导图片的解码的省略可能引起回放中的间隙,其不是优选的。图8b图示了这种方法。

一种方法可以是从两个比特流接收并解码i图片。然后,可以在两种选项之间作出选择。根据第一选项,引导图片从第一(从其切换的)比特流bs1接收并解码。注意,通常bs2的引导图片也被接收,因为它们按解码顺序跟随i图片。另一选项是从第二(切换到的)比特流bs2接收并解码引导图片。第一比特流bs1的引导图片不需要被接收或解码。注意,来自第二比特流bs2的引导图片可能未完美地被重构,因为它们在解码中的参考图片中的一些源自第一比特流bs1,而第二比特流bs2的引导图片使用来自bs2的参考图片被编码。此外,这一操作假设bs1的经解码的图片使得它们可以被用作用于解码bs2的图片的参考图片,即一般而言bs1和bs2的至少空间分辨率、色度格式和比特深度是相同的。当bs1的经解码的图片使得它们不适合被用作用于解码bs2的图片的参考图片时,不可能使用这种方法。

在上面提到的两个选项中,两个i图片被接收和解码,其消耗传输带宽并且可能引起由于慢于实时解码所致的回放中的小暂停。图8c图示了这种方法。此外,dash和类似服务通常基于节段或子节段操作,其中图片的序列被请求并接收而不是个体的图片。因此,来自不同表示的两个i图片的接收可能是不实际的。

一般而言,比特流的gop图案不需要是相同的。结果。可能未知的是,来自一个比特流的经解码的图片是否可以被用作用于另一比特流的参考图片。因此,第一比特流的引导图片可以被解码但不是从第二比特流。图8d提供了这种情形的示例。第二比特流bs2的引导图片b1不能被解码,因为第一比特流bs1中不存在与第二比特流bs2的p图片等价的参考图片。

下面参考图8e描述根据一种实施例的示例解码策略。在这一示例中,两个比特流的gop结构是相同的。这一解码方法可能要求在切换点处解码之内图片中的仅一个,因此有可能改进实时操作而没有暂停。第二比特流bs2的引导图片可能未完美地被重构,但是图像质量的这种暂时降级通常可能根本未被察觉或未被考虑为恼人。bs1的i图片和引导图片不需要被传输,这节省了传输带宽。

总结来说,在接收器中可能不容易确定第一比特流bs1的之内图片和引导图片是否应当被接收并解码,或第二比特流bs2的引导图片是否可以在需要时使用第一比特流bs1的参考图片被解码。此外,更可取的是基于节段或子节段执行比特流切换并且避免对特定图片或多个特定图片的传输的个体请求。

作为在表示切换中使用开放gop的替换方式,可以使用封闭gop,其中无缝回放可以被实现但是与使用开放gop相比可能具有较差压缩效率。

下面提出若干实施例用于允许dash或类似适应性流式方案中的表示切换,从而在表示切换期间也维持稳定的图片速率,并且开放gop预测结构被用来获得与使用封闭gop预测结构时相比更好的压缩效率。

在下文中,参考图9和图10更详细地描述根据一种实施例的节段的编码和准备。这一实施例可以称为冗余适应性分辨率改变(rarc)。编码器可以接收或以其他方式获得第一视频展示和第二视频展示或者它们的一个或多个部分(图10中的框100和框102)。在框100和框102中,第一视频展示和第二视频展示可以但不是需要以未压缩格式被接收或以其他方式被获得。在一些情况中,单个视频展示可以被获得或以其他方式被接收,并且第一视频展示和/或第二视频展示可以通过重采样、样本值伸缩、和/或其他处理而从单个视频展示被获得。编码器可以编码第一比特流(表示#1)901(框104),其在这一示例中是较低分辨率表示。编码器可以将一个或多个idr/bla图片903、引导图片904(如果有)(诸如radl图片)、以及拖尾图片905编码到用于表示#1的比特流中。相应地,编码器还可以编码第二比特流(表示#2)902(框106),其在这一示例中是较高分辨率表示。编码器可以将一个或多个cra图片906、引导图片907(如果有)(诸如radl图片)、以及拖尾图片908编码到用于表示#2的比特流中。编码器或另一实体(诸如mpd创建器或文件封装器)可以通过使用表示#1来编码用于解码表示#2的一部分的信息(框108)。

在冗余适应性分辨率改变中,低分辨率比特流可以常规地被编码为例如单层h.265/hevc比特流,而高分辨率比特流否则可以是常规的单层比特流,但是层标识符(nuh_layer_id语法元素)可以被设置为等于1(或某个其他非零值)。此外,附加的增强层跳过编码irap图片(下文也称为跳过图片)可以被创建用于按解码顺序在相关联的cra图片之前的高分辨率rasl图片的每个参考图片。这可以仅针对开始节段或子节段的那些cra图片被完成。跳过图片概念上属于低分辨率比特流的增强层(具有等于1的nuh_layer_id),并且它们可以被封装在低分辨率表示的节段中。

根据一种实施例,在图9b中并且在图11的流程图中图示了冗余适应性分辨率改变方法在上切换期间的操作。当获得低分辨率表示901(图11中的框120和框122)时,播放器也可以得到每个节段中的跳过图片910。播放器或另一实体(诸如mpd解析器或文件解析器)可以通过使用第一经编码的视频展示来解码或解析用于解码第二经编码的视频展示的一部分的信息(框128)。该信息可以指示第一经编码的视频展示包括跳过图片910,它们可以被用作用于解码第二经编码的视频展示的该部分时的预测的参考。这些跳过图片910可以仅在切换到高分辨率表示902时被利用(框124和框126)。播放器在上切换期间利用shvc解码过程(或类似物)并且因此可以解码跳过图片910。下一接收到的节段来自高分辨率表示902(框130)。高分辨率表示的第一cra906图片的rasl图片907也使用在前节段的图片作为参考。然而,解码器现在可以替代地使用经解码的跳过图片910。因为跳过图片被包括在将被解码的比特流中,所以解码器在解码所述下一接收到的节段(框130)时可以遵循shvc解码过程(或类似物),并且可以不需要使用任何非规范过程来创建经上采样的(多个)参考图片。

根据一种实施例,在不同空间分辨率、比特深度、色域和/或色度格式的表示之间的切换可以通过重采样和/或其他处理而被允许。

非交叠(子)节段序列的特性可以与个体表示或适配集合的特性分开地用信号通知。在利用冗余适应性分辨率改变的实施例中,非交叠(子)节段序列可以被指示为可伸缩视频比特流,这些可伸缩视频比特流被约束为仅利用适应性分辨率改变特征。在这一实施例中,可以使用常规的可伸缩视频解码过程,因此在利用开放gop预测结构的异构表示之间的切换可以被允许而不具有标准化解码过程中的改变。

在hevc版本2的条款f.8(以及它的子条款)中规定的用于hevc多层扩展的共同解码过程通过外部手段得到以下两个变量:targetolsidx,其指定解码器使用的输出层集合的索引;以及highesttid,其指定将被解码的最高时间子层。

解码器或许不能在不设置这些变量的情况下操作。实施例因此在下面被提供用于指示这些变量并且将它们关联至简档-层级-级别三元组的组合。

在一种实施例(其可以与其他实施例一起或独立于其他实施例被应用)中,编解码参数和/或任何其他mime类型参数可以提供应用到简档-层级-级别值的相关联列表的输出层集合和/或最高子层中的至少一项的信息。例如,以下语法和语义可以被用于编解码参数(其中编解码参数是如早先描述的listitem的逗号分隔列表)中包括的每个listitem:

每个listitem可以具有以下结构:sampleentrytype1.profiletierlevel1(.sampleentrytypen.profiletierleveln)*(#outoppoint)?,其中星号(“*”)指示0次或更多次的重复,(“?”)指示零次或一次的出现,“.”是分隔符字符,并且“#”是专用于将输出操作点子串outoppoint与逗号分隔的简档-层级-级别子串的列表分隔的另一分隔符字符。应当理解,分隔符字符“.”可以等同地是任何其他分隔符字符,或可以使用可能针对不同位置或目的的若干不同的分隔符字符。例如,可以使用分隔符字符“!”替代sampleentrytypen前面的“.”。类似地,应当理解分隔符字符“#”可以等同地是任何其他分隔符字符。

上面用于listitem的语法可以被理解为包括一个或多个简档-层级-级别子串,由分隔符字符以及(下文指定的)零个或一个输出操作点子串分隔,该零个或一个输出操作点子串由来自简档-层级-级别子串的字符“#”分隔。输出操作点子串,如果存在,则跟随简档-层级-级别子串。

简档-层级-级别子串可以如早先描述的被指定。更一般地,除了接下来描述的输出操作点子串之外,编解码参数可以如早先描述的被指定。

输出操作点子串,如果存在,则可以包括以下列表中的值,它们由句号字符(“.”)分隔:

●用于每个活动视频参数集合中包括的输出层集合的输出层集合索引,被编码为十进制数。所指示的输出层集合的必要层应当符合于listitem中指示的简档-层级-级别信息。这一输出层集合索引可以被用作被提供作为hevc解码过程的输入的targetolsidx值。输出层集合索引应当被提供用于不包含hevc基础层的hevc比特流。当不存在时,输出层集合索引可以被推断为等于0。

●最高temporalid值,被编码为十进制数,对应于向所有必要层给出的简档-层级-级别信息。这一最高temporalid值可以被用作被提供作为hevc解码过程的输入的highesttid值。当不存在时,最高temporalid值可以被推断为等于6。

在下文中,提供了编解码的值的一些示例(假设简档-层级-级别子串之间的分隔符字符“#”):编解码=hev1.a1.80.l93.b0!hev1.a7.1.l120.b0#2可以指示两层、渐进式、无包装流,其中包含基础层的轨道使用样本条目类型“hev1”,基础层符合于主简档、主层级、级别3.1,包含增强层的轨道使用样本条目类型“lhv1”(例如,它可以被包含在也包含基础层的轨道中),增强层符合于可伸缩主简档、主层级、级别4。包含作为必要层的增强层和基础层的输出层集合索引是2。编解码=lhv1.a7.1.l120.b0#2,hev1.a1.80.l93.b0#1可以指示两层、渐进式、无包装流,其中包含增强层的轨道使用样本条目类型“lhv1”,增强层符合于可伸缩主简档、主层级、级别4,包含基础层的轨道使用样本条目类型“hev1”,并且基础层符合于主简档、主层级、级别3.1。包含作为必要层的增强层和基础层的输出层集合索引是2,而仅包含基础层的输出层集合索引是1。编解码=lhv1.a7.1.l120.b0#1,avc1.64081f#1可以指示包含增强层的轨道使用样本条目类型“lhv1”,增强层符合于可伸缩主简档、主层级、级别4,增强层包含渐进式、无包装图片,并且增强层从经avc编码的基础层来预测。经avc编码的基础层使用样本条目类型“avc1”,并且基础层符合于渐进式高简档、级别3.1。包含作为必要层的增强层和基础层的输出层集合索引是1。

在一些实施例中,早先的实施例中规定的或类似于早先的实施例的编解码参数可以与除了isobmff以外的容器文件类型一起使用。例如,在一些实施例中,早先的实施例中规定的或类似于早先的实施例的编解码参数可以与http实况流动(hls)的播放列表文件的ext-x-stream-inf标签的codec属性一起使用。这可以允许以下一项或多项的信令:简档-层级-级别列表(对应于层)、将在解码时使用的输出层集合索引、以及将在播放列表文件内的解码时使用的最高子层。在另一示例中,http实况流动(hls)的播放列表文件的ext-x-stream-inf标签或另一标签的新属性可以被定义以携带以下一项或多项:简档-层级-级别列表(对应于层)、将在解码时使用的输出层集合索引、以及将在播放列表文件内的解码时使用的最高子层。

在一种实施例(其可以与其他实施例一起或独立于其他实施例被应用)中,可以在清单(诸如dash的mpd)中提供应用到简档-层级-级别值的相关联列表的输出层集合和最高子层中的至少一项。

所主张的是,由于以下原因,可能需要从mpd推论这两个变量的值的直接明了的手段。

首先,使用@dependencyid来推论哪些表示(并且因此哪些层)对于解码所选择的表示(对应于特定层或多个特定层)为必要将会是可能的。此后,这一层列表可以用来识别(多个)活动视频参数集合内的层集合。不仅这可能要求(在解码器之外的)播放器中的视频参数集合解析,而且相同的层集合可以与多于一个输出层集合相关联,并且因此或许不可能在所有情形中都推论出哪个输出层集合应当被选择作为目标输出层集合。

其次,mpd不包含允许将最高时间子层关联到表示的信息。

在一种实施例中,可以在包括参数的mime类型内指示应用到简档-层级-级别值的相关联列表的输出层集合和最高子层中的至少一项,并且在清单(诸如dash的mpd)中提供mime类型。例如,dashmpd的@mimetype属性可以包括输出层集合和最高子层中的至少一项的指示。

在一种实施例中,可以在编解码参数和/或任何其他mime参数内指示应用到简档-层级-级别值的相关联列表的输出层集合和最高子层中的至少一项,并且在清单(诸如dash的mpd)中提供编解码参数和/或任何其他mime参数。例如,dashmpd的@codec属性可以包括输出层集合和最高子层中的至少一项的指示。

在一种实施例中,可以在清单(诸如dash的mpd)中的特定属性等内指示应用到简档-层级-级别值的相关联列表的输出层集合和最高子层中的至少一项。

在一种实施例中,可以在清单(诸如dash的mpd)中的必需描述符等内指示应用到简档-层级-级别值的相关联列表的输出层集合和最高子层中的至少一项。因为targetolsidx和highesttid是特定于hevc的,所以可以利用(如被定义用于dashmpd的)描述符而不是一般属性来指示它们。此外,因为可能要求targetolsidx和highesttid以用于正确的多层hevc解码,所以它们可以被提供有essentialproperty描述符。

具有等于“urn:mpeg:dash:hevc:2015”的@schemeiduri的essentialproperty描述符可以提供与包含该essentialproperty描述符的“适配集合”、“表示”或“子表示”相关联的(多个)目标输出层集合和(多个)最高时间子层。

具有等于“urn:mpeg:dash:hevc:2015”的@schemeiduri的essentialproperty描述符的@value参数可以具有以下语法和语义。

在下文中,根据一种实施例,更详细地描述了上面的语法的元素和属性名称。

outputop可以具有值1…n并且它指定包括表示或子表示的输出操作点,该表示或子表示包含这一essentialproperty描述符。对于下面的语义,包含表示或子表示是指表示或子表示对应于包含这一essentialproperty描述符的表示或子表示元素。当这一essentialproperty描述符被包括在“适配集合”中时,包含“表示”是指“适配集合”内的任何单个“表示”。

@targetolsidx(其可以是强制的)指定与输出操作点相关联的输出层集合的索引。

@highesttid(其可以是强制的)指定与输出操作点相关联的最高子层的temporalid值。

@outputopcodecs(其可以是可选的)指定用于输出操作点的编解码参数。这一属性的内容应当符合于rfc6381章节3.2的简单列表产生或花式列表(fancy-list)产生,而不包封dquote字符。被用作这一属性的内容的简单列表或花式列表应当由如以下段落中规定的那样被约束的一个列表元素构成。

开始编解码参数的值的编解码标识符应当与应用到包含表示或子表示的相同。

列表元素应当包括用于输出操作点中的每个必要层的简档-层级-级别子串。

每个简档-层级-级别子串应当包括简档和级别信息。

@outputreps(其可以是可选的)指定如下表示的@id值的空白分隔列表,这些表示的层是输出操作点中的输出层。当这一属性不存在时,输出操作点的输出层是存在于包含表示或子表示中的那些输出层。当这一属性存在时,输出操作点的输出层是存在于包含表示或子表示中的那些输出层以及存在于具有等于列表@outputreps中的任何元素的@id的表示中的那些输出层。

在下文中,提供了一种示例:

在一种实施例(其可以与其他实施例一起或独立于其他实施例被应用)中,应用于和/或需要用于解码非交叠连续节段(或相应地是子节段)的序列的特性被编码到mpd(或任何其他清单)中和/或从mpd(或任何其他清单)被解析。节段(或相应地是子节段)可以从其起源的表示可以在mpd中被指示或从mpd被解析。这些特性可以包括但不限于以下中的一项或多项:

-该序列所符合的编解码或编码格式。

-该序列所符合的简档-层级-级别值等的列表。

-当解码该序列时可以用作目标输出层集合索引(例如,hevc的targetolsidx)的输出层集合索引。

-当解码该序列时可以使用的最高temporalid(或类似物,例如hevc的highesttid)。

-与适应性分辨率改变有关的信息,例如hevc的single_layer_for_non_irap_flag,或hevc的single_layer_for_non_irap_flag和higher_layer_irap_skip_flag两者,或类似信息。

-该序列中包括的层标识符值(或类似物,例如hevc的nuh_layer_id值)。

-该序列中包括的必要层的层标识符值(或类似物)。

-该序列中包括的输出层的层标识符值(或类似物)。

-与替换输出层有关的信息,例如用于由该序列表示的输出层集合的hevc的alt_output_layer_flag的值。

-当解码该序列时可以被激活的(多个)视频参数集合。

-(多个)其他参数集合,诸如序列参数集合和/或图片参数集合,它们可以在解码该序列时被激活。

-用于该序列中包括的层的可伸缩性标识符值(或类似物,例如在hevc中:对于0至15的范围中的i的scalabilityid[i])。

-与隐式参考图片重采样有关的信息,能够指示例如以下中的一项:隐式重采样未被建议、可能需要隐式重采样。另外地或替换地,这些特性可以包括当切换表示时可能需要被重采样的图片的数目的极限。与隐式参考图片重采样有关的信息可以分开地针对上切换和下切换、和/或针对切换在其间发生的每个表示对或表示组而被给出。

上面提到的特性可以与早先提出的用于简档-层级-级别组合和输出操作点的信令的任何选项、组合或子集类似地或相同地被指示。例如,上面提到的特性可以作为mime参数值和mime类型(包括它的参数)而被包括,可以被提供用于mpd内的非交叠连续节段(或相应地是子节段)的序列,或者可以被解析用于来自mpd的非交叠连续节段(或相应地是子节段)的序列。

在一种实施例中,上面提到的特性被编码到mpd(或任何其他清单)内的补充结构中。补充结构是这样的:其可以但不被要求由客户端等处理。在一种实施例中,上面提到的特性从mpd(或任何其他清单)的补充结构被解析。

在一种实施例中,上面提到的特性由以下信息片断中的一个或多个所伴随,它们可以被编码到mpd(或任何其他清单)中和/或从mpd(或任何其他清单)被解析:

-指示以下中的一项或多项的信息:上面提到的特性应用到非交叠连续节段的序列,上面提到的特性应用非交叠连续子节段的序列。

-上面提到的特性所应用到的表示的标识,诸如标识符值。这些所标识的表示可以称为切换集合。

在一种实施例中,上面提到的特性所应用到的表示被推断。例如,当这些特性被指示用于适配集合的一个表示时,可以推断这些特性应用到相同适配集合的所有表示。上面提到的特性所应用到的表示可以称为切换集合。

在一种实施例中,上面提到的特性应用到非交叠节段或子节段的序列,其可以起源于切换集合中的任何表示。在另一实施例中,上面提到的特性应用到起源切换集合中的表示的非交叠节段或子节段的序列,其中可以对序列中的连续节段或子节段可以从其起源的表示设置约束。例如,可以要求连续节段或子节段起源于相同或连续的表示,其中表示可以例如基于标识符值或比特率被排序。

在一种实施例中,包括上面提到的特性的补充性质描述符被编码到mpd(或任何其他清单)中和/或从mpd(或任何其他清单)被解析。

在一种实施例中,包括上面提到的特性的补充性质描述符也包括以下中的一项或多项:

-指示以下中的一项或多项的信息:上面提到的特性应用到非交叠连续节段的序列,上面提到的特性应用非交叠连续子节段的序列。

-上面提到的特性所应用到的表示的标识,诸如标识符值。这些所标识的表示可以称为切换集合。

在一种实施例中,补充性质描述符如下地或以类似方式被指定。

具有等于“urn:mpeg:dash:hevc:segseq:2015”(或任何其他所选取的urn,当它应用到节段时指示所描述的实施例)的@schemeiduri的supplementalproperty描述符可以提供多于一个所标识的表示的连续节段的序列的特性。具有等于“urn:mpeg:dash:hevc:subsegseq:2015”(或任何其他所选取的urn,当它应用到子节段时指示所描述的实施例)的@schemeiduri的supplementalproperty描述符可以提供多于所标识的表示的连续子节段的序列的特性。这两个描述符类型可以具有相同的语法和语义,例如被规定如下:

具有等于“urn:mpeg:dash:hevc:segseq:2015”或“urn:mpeg:dash:hevc:subsegseq:2015”的@schemeiduri的supplementalproperty的@value是以下值的逗号分隔的列表(按下面列出的顺序):

-如下表示的@id值的空白分隔的列表,节段或子节段可以分别从这些表示被包括在连续节段或子节段的序列中。

-指示简档-层级-级别组合等的编解码参数和/或任何其他mime媒体参数,其应用到节段或子节段的序列。例如,早先指定的编解码参数可以包括应用到节段或子节段的序列的一个listitem。编解码参数可能被要求指示来自hevc族的编解码。

-对于节段序列segseq或对于(如下面规定的)子节段序列seqsubseq为有效的、hevc的single_layer_for_non_irap和higher_layer_irap_skip_flag语法元素的2位二进制掩码串。所允许的二进制掩码值为“00”、“10”和“11”。

需要理解,附加于或替代编解码参数和2位二进制掩码串,指示相同或类似性质的其他参数可以被包括在@value属性的语法中。例如,@value属性可以包括应用到连续节段或子节段的序列的mime类型(包括它的mime参数)。

令r1是包含具有等于“urn:mpeg:dash:hevc:segseq:2015”或“urn:mpeg:dash:hevc:subsegseq:2015”的@schemeiduri的supplementalproperty的表示,并且令r2、r3、…、rn是由supplementalproperty的@value中给出的它们的@id值所标识的表示。表示r1、r2、…、rn可以被要求包括在相同的适配集合中并且可以被要求具有相同数目m个媒体节段。

当具有等于“urn:mpeg:dash:hevc:segseq:2015”的@schemeiduri的supplementalproperty存在时,以下可以应用:

-si,j(对于j>0)是第i表示(即,ri)中的第j媒体节段,

-如果存在,则令si,0是第i表示中的初始化节段,以及

-如果存在,则令bi是第i表示中的比特流切换节段。

对于在1至n(含)的范围中的i和m的任何值、以及1至m(含)的范围中的j和n的任何值,si,j可以被要求与sm,n非交叠,从而i不等于m,并且j不等于n。

令segseq是以下节段的序列:

-初始化节段s1,0(当存在时),

-如果比特流切换节段存在,则

bi(1),si(1),1,bi(2),si(2),2,...,bi(k),si(k),k,...,bi(m),si(m),m

否则

si(1),1,si(2),2,...,si(k),k,...,si(m),m,

其中对于1至m的范围中的所有k值的任何i(k)分别是1至n的范围中的整数值。

任何seqseq可以导致“一致的节段序列”,其具有supplementalproperty的@value内提供的编解码参数中指定的媒体格式。

任何segseq可以提供连续播出并且可以具有可接受的质量。

当具有等于“urn:mpeg:dash:hevc:subsegseq:2015”的@schemeiduri的supplementalproperty存在时,以下可以应用:

-si,j,k(对于j>0)是第i表示(即,ri)中的第j媒体节段的第k子节段。

-li,j等于第i表示中的第j媒体节段中的子节段的数目。

-如果存在,则令si,0是第i表示中的初始化节段,以及

-如果存在,则令bi是第i表示中的比特流切换节段。

对于在1至n(含)的范围中的h和i的任何值,li,j可以被要求等于lh,j,从而h不等于i。对于1至n(含)的范围中的i的任何值,令lj等于li,j。令l等于对于1至m(含)的范围中的j的所有值的li之和。

对于1至n(含)的范围中的i和m的任何值、以及1至m(含)的范围中的j和n的任何值、以及1至节段中的子节段的数目(含)的范围中的k和o的任何值,si,j,k可以被要求与sm,n,o非交叠,从而i不等于m,并且j不等于n,并且k不等于o。

令subsegseq是以下节段和子节段的序列:

-初始化节段s1,0(当存在时),

-如果比特流切换节段存在,则

bi(1),si(1),1,1,bi(2),si(2),1,2,…,bi(l1),si(l1),1,l1,bi(l1+1),si(l1+1),2,1,bi(l1+2),si(l1+2),2,2,...,bi(a),si(a),j,k,...,bi(l),si(l),m,lm,

否则

si(1),1,1,si(2),1,2,…,si(l1),1,l1,si(l1+1),2,1,si(l1+2),2,2,...,si(a),j,k,...,si(l),m,lm,

其中对于1至l的范围中的所有a值的任何i(a)分别是1至n的范围中的整数值。

任何subseqseq可以导致“一致的节段序列”,其具有supplementalproperty的@value内提供的编解码参数中指定的媒体格式。

任何subsegseq可以提供连续播出并且可以具有可接受的质量。

在下文中,提供一种示例:

在一种实施例(其可以与其他实施例一起或独立于其他实施例被应用)中,根据rarc的比特流或表示(例如,利用图9a和9b描述的那些)被封装在如下的文件格式和/或传输格式中。低分辨率表示被包括在分别与高分辨率表示被包括的文件或节段不同的文件或节段中。低分辨率表示的跳过图片的轨道具有与包含高分辨率表示的轨道相同的轨道标识符值(例如,track_id)。包含跳过图片的轨道的样本条目可以指示分层的编码,例如使用样本条目类型“lhv1”或“lhe1”,和/或可以被指示为要求解码多层简档,诸如hevc的可伸缩主简档。包含低分辨率表示的基础层的轨道和包含高分辨率表示的轨道可以指示单层编码,例如使用样本条目类型“hvc1”或“hev1”,和/或可以被指示为要求解码单层简档,诸如hevc的主简档,和/或可以被指示为要求inbld能力。

在一种实施例(其可以与其他实施例一起或独立于其他实施例被应用)中,在接收已经如前面段落中描述的那样被封装的根据rarc的表示时,流式客户端或播放器可以如下地操作。在切换到接收高分辨率表示时,播放器可以继续使用低分辨率表示的初始化节段。结果,用于包含高分辨率表示的轨道的样本条目可以指示分层的编码,例如样本条目类型“lhv1”或“lhe1”,和/或可以指示多层简档。因此,播放器可以推论,低分辨率表示和高分辨率表示的所接收的轨道的组合表示可伸缩视频比特流并且可能要求多层简档的解码能力。

在一种实施例(其可以与其他实施例一起或独立于其他实施例被应用)中,冗余跳过图片可以如下地被利用。这一实施例可以被称为用于切换到从属表示(rarc-d)的冗余适应性分辨率改变。低分辨率表示可以常规地被编码为例如单层h.265/hevc比特流,而高分辨率表示可以被编码为所预测的层,即从属表示,其中至少一些图片可以从低分辨率表示的(多个)图片被层间预测。此外,附加的增强层跳过图片可以被创建用于按解码顺序在相关联的cra图片之前的高分辨率rasl图片的每个参考图片。这可以仅针对开始节段或子节段的那些cra图片而被完成。跳过图片概念上属于低分辨率表示的增强层(例如,具有等于1的nuh_layer_id),并且它们可以被封装在低分辨率表示的节段中。

在一种实施例(其可以与其他实施例一起或独立于其他实施例被应用)中,在接收根据rarc-d的表示时,流式客户端或播放器可以如下地操作。播放器首先接收低分辨率表示的(多个)节段。播放器然后确定切换到较高分辨率并且请求低分辨率表示和高分辨率表示两者的对应的(多个)节段。在上切换时,播放器可以解码对于其仅低分辨率表示被接收的最后节段的(多个)跳过图片。在解码高分辨率表示的首先被接收的节段的初始cra图片的rasl图片时,这些跳过图片可以被用作参考。确定上切换可以例如由速率适配或快速启动所引起。

图9c图示了根据一个实施例的节段的编码和准备。这一实施例可以被称为隐式参考图片重采样(irpr)。

低分辨率表示909和高分辨率表示911两者可以被编码为普通的单层h.265/hevc比特流。低分辨率表示909可以使用封闭gop被编码,而高分辨率表示911使用开放gop。

图9d中图示了上切换期间的iprp方法的操作。播放器确定从表示1(这一示例中的低分辨率表示909)切换至表示2(这一示例中的高分辨率表示911)。结果,播放器可以从表示2而不是从表示1请求和接收下一节段(图片1向前)。为了避免所显示的图片速率上的毛刺,播放器可能希望解码rasl图片2..8。挑战是rasl图片的参考图片中的一个(或多个)尚未接收到,并且因此标准h.265/hevc解码器可能未成功地解码这些rasl图片。在irpr中,播放器对表示1的与rasl图片的(多个)参考图片相对应图片进行上采样,并且使用经上采样的(多个)图片作为用于rasl图片的预测的参考。在该示例中,表示2的图片2...8使用表示1的经上采样的图片0(标记为图9d中的912)作为(直接或间接)参考图片。作为irpr方法的一部分被执行的上采样改变了h.265/hevc的解码过程。

在一些其他实施例中,编码器可以将环内滤波(诸如sao)选择性地关闭,例如针对所有rasl图片或节段发起rasl图片。

已经参考节段描述了实施例。将理解,实施例可以参考子节段类似地被描述。

使用开放gop而不是封闭gop的一个益处可能是更好的压缩效率,其例如意味着相同的图片质量能够以较小比特率实现。

图12示出了适合于采用本发明的实施例的视频解码器的框图。图12描绘了两层解码器的结构,但是将明白,可以在单层解码器中类似地采用这些解码操作。

视频解码器550包括用于基础视图分量的第一解码器段552和用于非基础视图分量的第二解码器段554。框556图示了解复用器,其用于将与基础视图分量有关的信息递送到第一解码器段552并且用于将与非基础视图分量有关的信息递送到第二解码器段554。参考标记p’n代表图像块的预测的表示。参考标记d’n代表经重构的预测误差信号。框704、框804图示了初步的经重构的图像(i’n)。参考标记r’n代表最终的经重构的图像。框703、框803图示了逆变换(t-1)。框702、框802图示了逆量化(q-1)。框701、框801图示了熵解码(e-1)。框705、框805图示了参考帧存储器(rfm)。框706、框806图示了预测(p)(之间预测或之内预测)。框707、框807图示了滤波(f)。框708、框808可以用来将经解码的预测误差信息与所预测的基础视图分量/非基础视图分量进行组合以获得初步的经重构的图像(i’n)。初步的经重构和滤波的基础视图图像可以从第一解码器段552输出709,并且初步的经重构和滤波的基础视图图像可以从第一解码器段554输出809。

图13是各种实施例可以被实施在其内的示例多媒体通信系统的图形表示。数据源1510以模拟格式、未压缩的数字格式、或经压缩的数字格式、或这些格式的任何组合来提供源信号。编码器1520可以包括预处理或与之连接,诸如源信号的数据格式转换和/或滤波。编码器1520将源信号编码到经编码的媒体比特流中。应当注意,将被解码的比特流可以直接或间接从位于基本上任何类型的网络内的远程设备接收。另外,比特流可以从本地硬件或软件接收。编码器1520可以能够编码多于一种媒体类型,诸如音频和视频,或者多于一个编码器1520可以被要求以编码不同媒体类型的源信号。编码器1520还可以得到合成产生的输入,诸如图形和文本,或它可以能够产生合成媒体的经编码的比特流。在下文中,考虑仅一种媒体类型的一个经编码的媒体比特流的处理以简化描述。然而,应当注意,通常实时广播服务包括若干流(通常至少一个音频、视频和文本字幕流)。还应当注意,该系统可以包括许多编码器,但是在附图中仅表示了一个编码器1520以简化描述而不失一般性。应当进一步理解,尽管本文包含的文字和示例可能具体地描述了编码过程,但是本领域的技术人员将理解,相同的概念和原理也适用于对应的解码过程并且反之亦然。

经编码的媒体比特流可以被传送到存储装置1530。存储装置1530可以包括任何类型的大容量存储器以存储经编码的媒体比特流。存储装置1530中的经编码的媒体比特流的格式可以是基元自包含比特流格式,或者一个或多个经编码的媒体比特流可以被封装到容器文件中。如果一个或多个媒体比特流被封装在容器文件中,则文件生成器(附图中未示出)可以用来将一个或多个媒体比特流存储在文件中并且创建文件格式元数据,其也可以存储在文件中。编码器1520或存储装置1530可以包括文件生成器,或文件生成器操作地附接到编码器1520或存储装置1530。一些系统“实况地”操作,即省略存储并且将来自编码器1520的经编码的媒体比特流直接传送到发送器1540。经编码的媒体比特流然后可以基于需求被传送到发送器1540,也称为服务器。传输中使用的格式可以是基元自包含比特流格式、分组流格式,或者一个或多个经编码的媒体比特流可以被封装到容器文件中。编码器1520、存储装置1530和服务器1540可以驻留在相同的物理设备中,或它们可以被包括在分离的设备中。编码器1520和服务器1540可以利用实况的实时内容进行操作,在该情况下,经编码的媒体比特流通常不被持久地存储,而是在内容编码器1520中和/或服务器1540中被缓冲小的时间段以平滑处理延迟、传送延迟和经编码的媒体比特率上的变化。

服务器1540使用通信协议栈来发送经编码的媒体比特流。该栈可以包括但不限于以下中的一项或多项:实时传输协议(rtp)、用户数据报协议(udp)、超文本传输协议(http)、传输控制协议(tcp)、以及互联网协议(ip)。当通信协议栈是面向分组的时,服务器1540将经编码的媒体比特流封装到分组中。例如,当使用rtp时,服务器1540根据rtp有效载荷格式将经编码的媒体比特流封装到rtp分组中。通常,每种媒体类型具有专用的rtp有效载荷格式。应当再次注意,系统可以包含多于一个服务器1540,但是为了简单的缘故,以下描述仅考虑一个服务器1540。

如果媒体内容被封装在容器文件中用于存储装置1530或用于将数据输入到发送器1540,则发送器1540可以包括或操作地附接到“发送文件解析器”(附图中未示出)。特别地,如果容器文件未如此被传输,但是所包含的经编码的媒体比特流中的至少一个被封装用于通过通信协议的传输,则发送文件解析器定位经编码的媒体比特流的适当部分以通过通信协议被运送。发送文件解析器还可以帮助创建用于通信协议的正确格式,诸如分组头部和有效载荷。多媒体容器文件可以包含封装指令,诸如iso基础媒体文件格式中的提示轨道,以用于所包含的媒体比特流中的至少一个在通信协议上的封装。

服务器1540可以通过通信网络连接到或可以不连接到网关1550。该网关还可以或替换地被称为中间盒子。注意,该系统一般可以包括任何数目的网关等,但是为了简单的缘故,以下描述仅考虑一个网关1550。网关1550可以执行不同类型的功能,诸如缓存分组、流或资源、主动地预先取回媒体数据、根据一个通信协议栈的分组流到另一通信协议栈的转换、数据流的合并和分叉、以及根据下行链路和/或接收器能力的数据流的操控,诸如根据主导的下行链路网络条件来控制转发的流的比特率。网关1550的示例包括多点会议控制单元(mcu)、电路交换与分组交换视频电话之间的网关、通过蜂窝的即按即说(poc)服务器、数字视频广播手持式(dvb-h)系统中的ip封装器、或将广播传输在本地转发给家庭无线网络的机顶盒或其他设备。当使用rtp时,网关1550可以被称为rtp混合器或rtp转换器并且可以充当rtp连接的端点。替代或附加于网关1550,该系统可以包括将视频序列或比特流级联的拼接器。

该系统包括一个或多个接收器1560,通常能够将传输的信号接收、解调、并且解封装为经编码的媒体比特流。经编码的媒体比特流可以被传送给记录存储装置1570。记录存储装置1570可以包括任何类型的大容量存储器以存储经编码的媒体比特流。记录存储装置1570可以替换地或附加地包括计算存储器,诸如随机访问存储器。记录存储装置1570中的经编码的媒体比特流的格式可以是基元自包含比特流格式,或者一个或多个经编码的媒体比特流可以被封装到容器文件中。如果存在彼此相关联的多个经编码的媒体比特流(诸如音频流和视频流),则通常使用容器文件并且接收器1560包括或附接到从输入流产生容器文件的容器文件生成器。一些系统“实况地”操作,即省略记录存储装置1570,并且将来自接收器1560的经编码的媒体比特流直接传送给解码器1580。在一些系统中,仅是所记录的流的最近期部分(例如,所记录的流的最近期的10分钟摘录)被维持在记录存储装置1570中,而从记录存储装置1570丢弃任何更早的所记录的数据。

经编码的媒体比特流可以从记录存储装置1570被传送给解码器1580。如果存在彼此相关联并且被封装到容器文件中的许多经编码的媒体比特流(诸如音频流和视频流),或单个媒体比特流被封装在容器文件中例如用于更容易的访问,则文件解析器(附图中未示出)被用来从容器文件解封装每个经编码的媒体比特流。记录存储装置1570或解码器1580可以包括文件解析器,或文件解析器被附接到记录存储装置1570或解码器1580。应当注意,该系统可以包括许多解码器,但是这里仅讨论一个解码器1570,以简化描述而不失一般性。

经编码的媒体比特流可以由解码器1570进一步处理,它的输出是一个或多个未压缩的媒体流。最终,渲染器1590可以例如利用扬声器或显示器来再现未压缩的媒体流。接收器1560、记录存储装置1570、解码器1570、以及渲染器1590可以驻留在相同的物理设备中,或它们可以被包括在分离的设备中。

发送器1540和/或网关1550可以被配置为执行不同比特流901、902、909、911之间的切换,例如用于比特率适配、色度格式、样本比特深度、色域、和/或空间分辨率,和/或发送器1540和/或网关1550可以被配置为选择传输的比特流。不同比特流901、902、909、911之间的切换可以由于多种原因而发生,诸如响应于接收器1560的请求或比特流通过其被运送的网络的主导条件,诸如吞吐量。来自接收器的请求可以是,例如,对于来自与早先不同的表示或比特流的节段或子节段的请求、对于所传输的可伸缩性层和/或子层的改变的请求、或者与之前的渲染设备相比较具有不同能力的渲染设备的改变。对于节段的请求可以是httpget请求。对于子节段的请求可以是具有字节范围的httpget请求。另外地或替换地,比特率调节或比特率适配可以被用于例如提供流式服务中所谓的快速启动,其中所传输的流的比特率低于开始或随机访问该流动之后的信道比特率,以便立即开始回放并且实现容许偶尔的分组延迟和/或重传的缓冲器占用级别。比特率适配可以包括按各种顺序发生的多个表示或层上切换以及表示或层下切换操作。

解码器1580可以被配置为执行不同比特流901、902、909、911之间的切换,例如用于比特率适配、色度格式、样本比特深度、色域、和/或空间分辨率,和/或解码器1580可以被配置为选择传输的比特流。不同比特流901、902、909、911之间的切换可以由于多种原因而发生,诸如实现更快的解码操作或将所传输的比特流(例如在比特率方面)适配于比特流通过其被运送的网络的主导条件,诸如吞吐量。例如,如果包括解码器580的设备是多任务的并且使用计算资源用于除了解码可伸缩视频比特流以外的其他目的,则可能需要更快的解码操作。在另一示例中,在内容以比正常回放速度更快的步速被回放时,例如比常规实时回放速率快两倍或三倍,则可能需要更快的解码操作。解码器操作的速度可以例如响应于从正常回放速率改变到快进播放或反之亦然而在解码或回放期间被改变,并且因此多个层上切换和层下切换操作可以按各种顺序发生。

在上文中,已经关于术语“表示”和/或“比特流”描述了一些实施例。需要理解,可以关于类似术语类似地描述实施例,例如表示替代比特流、比特流替代表示、或基元流替代比特流或表示。

在上文中,已经关于跳过图片描述了一些实施例。使用跳过图片的动机是限制对于访问单元的处理要求。需要理解,通过利用对任何增强层irap图片的使用代替对跳过图片的使用,可以类似地实现实施例。换句话说,用于与rarc有关的实施例中的低分辨率表示的增强层irap图片中的一些或全部可以包括经编码的预测误差信息。也就是说,编码器可以编码这样的增强层irap图片以使得它们可以包括经编码的预测误差信息,并且解码器可以解码这样的增强层irap图片以使得预测误差信息也被解码。

在上文中,已经关于低分辨率表示或比特流并且关于高分辨率表示或比特流描述了一些实施例,它们指示表示的空间分辨率不同并且因此在实施例中使用在空间分辨率方面的重采样。需要理解,附加于或替代不同的空间分辨率,这些表示可以具有其他类型的关系或多种关系,并且可能要求另一类型的重采样过程或多个过程。例如,这些表示的比特深度和/或色域可以不同,并且在实施例中可以使用与shvc色域可伸缩性中使用的相类似的重采样。实施例不限于一种类型的重采样,而是例如在空间、比特深度、以及色域方面的重采样可以一起被应用。例如,在用于rarc的实施例中,跳过图片可以例如使用shvc层间处理而在空间分辨率、比特深度和色域方面被重采样。

在上文中,已经关于低分辨率表示使用封闭gop被编码而描述了一些实施例。在低分辨率表示中使用封闭gop的动机是使得表示下切换在完全图片速率下是操作的,而无需对标准化解码过程的任何改变。然而,需要理解,当低分辨率表示使用开放gop被编码时,可以类似地实现实施例。

在上文中,已经关于对低分辨率表示的图片进行上采样以切换到高分辨率表示而描述了一些实施例。需要理解,实施例可以类似地被实现用于对高分辨率表示的图片进行下采样以充当用于被切换到的低分辨率表示的解码的参考图片。例如,cra图片(或一般是sap类型3的图片)可以被使用在低分辨率表示中,并且因此与被切换到的低分辨率表示的初始cra图片相关联的rasl图片的解码可能要求按解码顺序在cra图片之前的参考图片。这些参考图片可以通过对高分辨率表示的相应图片进行重采样而被生成。还需要理解,当表示或层的顺序是如下这样时可以类似地实现实施例:较高表示或层可能要求较低表示或层的图片的下采样以用作参考图片。在一些情况下,用以生成参考图片的重采样可能要求沿着多于一个可伸缩性维度或类型的操作。例如,较高表示或层相比于较低表示或层可以具有较大空间分辨率但是较低比特深度,并且因此使用较低表示或层的图片作为用于较高表示或层的参考图片可能要求在空间分辨率方面的上采样但是比特深度方面的下采样或—缩减。

在上文中,已经关于两个表示或比特流或层(诸如低分辨率表示或比特流以及高分辨率表示或比特流)描述了一些实施例。需要理解,实施例不限于两个表示或比特流或层,而是等同地适用于更大数目的表示或比特流或层。

在上文中,已经关于对用于表示切换点的单个图片进行重采样而描述了一些实施例。需要理解,实施例不限于每个表示切换点仅一个图片被重采样,而是一般地适用于任何数目的图片被重采样。例如,在rarc中,对于切换点可以存在多于一个跳过图片。被重采样的图片的数目可以由如下的参考图片的数目来确定,这些参考图片被要求用于解码切换到的表示的切换点irap图片的rasl图片并且按解码顺序在切换点irap图片之前。

在上文中,已经关于节段描述了一些实施例。需要理解,实施例可以关于子节段类似地被实现。

在上文中,已经关于http请求和/或httpget请求描述了一些实施例。需要理解,实施例不限于使用http,而是可以替代地或另外地使用其他协议,诸如websocket。还需要理解,本发明可以应用在如下情况中:客户端没有进行请求(诸如httpget),例如当客户端通过广播接收数据时,诸如根据3gpp多媒体广播/多播服务(mbms)的广播服务。

在上文中,已经关于以下描述了一些实施例:将指示、语法元素、和/或语法结构编码到比特流中或经编码的视频序列中,和/或从比特流或从经编码的视频序列解码指示、语法元素、和/或语法结构。然而,需要理解,实施例可以在如下的时候被实现:将指示、语法元素、和/或语法结构编码到在包括视频编码层数据(诸如经编码的条带)的比特流或经编码的视频序列之外的语法结构或数据单元中,和/或从包括视频编码层数据(诸如经编码的条带)的比特流或经编码的视频序列之外的语法结构或数据单元解码指示、语法元素、和/或语法结构。

在上文中,在已经参考编码器描述示例实施例的场合,需要理解所得到的比特流和解码器可以在它们中具有对应元素。类似地,在已经参考解码器描述示例实施例的场合,需要理解编码器可以具有用于生成将由解码器解码的比特流的结构和/或计算机程序。

上文描述的发明的实施例按照分离的编码器和解码器装置描述了编解码,以便帮助理解所牵涉到的过程。然而,将明白,装置、结构和操作可以被实施为单个编码器-解码器装置/结构/操作。此外,有可能编码器和解码器可以共享一些或全部共有元件。

尽管上面的示例描述了本发明的实施例在电子设备内的编解码器内操作,但是将明白,权利要求中限定的本发明可以被实施为任何视频编解码器的一部分。因此,例如,本发明的实施例可以被实施在如下的视频编解码器中,该视频编解码器可以通过固定或有线通信路径来实施视频编码。

因此,用户设备可以包括诸如上面的本发明的实施例中描述的那些的视频编解码器。应该明白,术语“用户设备”意图覆盖任何适合类型的无线用户设备,诸如移动电话、便携式数据处理设备或便携式web浏览器。

此外,公共陆地移动网络(plmn)的元件也可以包括如上文描述的视频编解码器。

一般而言,本发明的各种实施例可以被实施在硬件或专用电路、软件、逻辑、或它们的任何组合中。例如,一些方面可以被实施在硬件中,而其他方面可以被实施在可以由控制器、微处理器、或计算设备执行的固件或软件中,但是本发明不限于此。尽管本发明的各种方面可能被图示和描述为框图、流程图、或使用某种其他图形表示,但是要充分理解的是,本文描述的这些框、装置、系统、技术或方法可以被实施在(作为非限制性示例)硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备、或它们的某种组合中。

本发明的实施例可以通过由移动设备的数据处理器(诸如在处理器实体中)可执行的计算机软件、或通过硬件、或通过软件和硬件的组合来实施。进一步地,在这一点上,应当注意附图中的逻辑流程的任何框可以表示程序步骤、或互连的逻辑电路、框和功能、或程序步骤和逻辑电路、框和功能的组合。软件可以存储在物理介质(诸如存储器芯片、或处理器内实施的存储器块)、磁介质(诸如硬盘或软盘)、以及光介质(诸如,例如dvd及其数据变体cd)上。

存储器可以具有适合于本地技术环境的任何类型并且可以使用任何适合的数据存储技术来实施,诸如基于半导体的存储器器件、磁存储器器件和系统、光存储器器件和系统、固定存储器和可移除存储器。数据处理器可以具有适合于本地技术环境的任何类型,并且可以包括作为非限制性示例的以下中的一项或多项:通用计算机、专用计算机、微处理器、数字信号处理器(dsp)、以及基于多核处理器架构的处理器。

本发明的实施例可以被实践在各种组件(诸如集成电路模块)中。集成电路的设计大体上是高度自动化的过程。复杂且强大的软件工具可用于将逻辑级别设计转换为就绪被蚀刻和形成在半导体基板上的半导体电路设计。

程序,诸如由加利福利亚州的山景城的synopsys公司和加利福利亚州的圣何塞的cadencedesign提供的那些软件,使用良好确立的设计规则以及预先存储的设计模块的库而自动地对导体布线并且将组件定位在半导体芯片上。一旦用于半导体电路的设计已经完成,采用标准化电子格式(例如,opus、gdsii等)的结果设计可以被传输给半导体制造工厂或“fab”用于制造。

前述描述已经通过示例性和非限制性的示例的方式提供了本发明的示例性实施例的完全且信息丰富的描述。然而,在结合附图和所附权利要求来阅读时,鉴于前述描述,各种修改和适配可以对相关领域的技术人员变得明显。然而,本发明的教导的所有这样的和类似的修改将仍然落在本发明的范围内。

根据第一实施例的方法包括:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则该方法进一步包括:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据一种实施例,该方法进一步包括:

接收包括所述信息的媒体展示描述。

根据一种实施例,该方法进一步包括:

基于媒体展示描述,确定标识第一经编码的表示的第一部分的第一标识符和标识第二经编码的表示的第二部分的第二标识符;

使用第一标识符请求第一部分;

接收第一部分;

使用第二标识符请求第二部分;以及

接收第二部分。

根据一种实施例,第一标识符和第二标识符是统一资源标识符。

根据一种实施例,第一经编码的表示的空间分辨率被确定用于参考区域,并且第二经编码的表示的空间分辨率被确定用于预测区域,其中该方法进一步包括:

接收与参考区域有关的信息,或不存在与参考区域有关的信息;

确定参考区域以覆盖第一经编码的视频表示的图片的整个面积;

接收与预测区域有关的信息,或不存在与预测区域有关的信息;以及

确定预测区域以覆盖第二经编码的视频表示的图片的整个面积。

根据一种实施例,所述一个或多个已处理的经解码的图片具有与第二经编码的视频表示的图片相同的色度格式和比特深度。

根据一种实施例,所述一个或多个已处理的经解码的图片具有与第二经编码的视频表示的图片相同的空间分辨率。

根据一种实施例,该方法进一步包括:

接收并解析如下的信息:第二经编码的视频表示属于非基础层并且是独立可解码的。

根据一种实施例,该方法进一步包括:

接收并解析如下的信息:第一经编码的表示的第一部分和第二经编码的表示的第二部分来自符合于具有限制的可伸缩视频编码简档的比特流,限制是访问单元包括不多于两个图片,以及在访问单元包括两个图片时,属于较高层的图片是内部随机访问点图片,其不使用相同层中的较早图片作为用于预测的参考,但是可以使用相同访问单元中的较低层处的图片作为用于预测的参考。

根据第二实施例的装置包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则所述代码在由所述至少一个处理器执行时,进一步使得装置至少执行:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据一种实施例,进一步使得装置执行:

接收包括所述信息的媒体展示描述。

根据一种实施例,进一步使得装置执行:

基于媒体展示描述,确定标识第一经编码的表示的第一部分的第一标识符和标识第二经编码的表示的第二部分的第二标识符;

使用第一标识符请求第一部分;

接收第一部分;

使用第二标识符请求第二部分;以及

接收第二部分。

根据一种实施例,第一标识符和第二标识符是统一资源标识符。

根据一种实施例,第一经编码的表示的空间分辨率被确定用于参考区域,并且第二经编码的表示的空间分辨率被确定用于预测区域,其中进一步使得装置执行:

接收与参考区域有关的信息,或不存在与参考区域有关的信息;

确定参考区域以覆盖第一经编码的视频表示的图片的整个面积;

接收与预测区域有关的信息,或不存在与预测区域有关的信息;以及

确定预测区域以覆盖第二经编码的视频表示的图片的整个面积。

根据一种实施例,所述一个或多个已处理的经解码的图片具有与第二经编码的视频表示的图片相同的色度格式和比特深度。

根据一种实施例,所述一个或多个已处理的经解码的图片具有与第二经编码的视频表示的图片相同的空间分辨率。

根据一种实施例,进一步使得装置执行:

接收并解析如下的信息:第二经编码的视频表示属于非基础层并且是独立可解码的。

根据一种实施例,进一步使得装置执行:

接收并解析如下的信息:第一经编码的表示的第一部分和第二经编码的表示的第二部分来自符合于具有限制的可伸缩视频编码简档的比特流,限制是访问单元包括不多于两个图片,以及在访问单元包括两个图片时,属于较高层的图片是内部随机访问点图片,其不使用相同层中的较早图片作为用于预测的参考,但是可以使用相同访问单元中的较低层处的图片作为用于预测的参考。

根据第三实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则所述代码在由所述至少一个处理器执行时,进一步使得装置至少执行:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据第四实施例,提供了一种包括视频解码器的装置,视频解码器被配置用于解码包括图像序列的比特流,视频解码器包括:

用于解码第一经编码的视频表示的第一部分的部件;

用于接收并解析与解码第二经编码的视频表示有关的信息的部件,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;其中装置进一步包括:

用于如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码、则将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片的部件,其中处理包括重采样和样本值伸缩之一或两者;以及

用于使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分的部件。

根据第五实施例,提供了一种视频解码器,其被配置用于解码包括图像序列的比特流,其中所述视频解码器进一步被配置用于:

解码第一经编码的视频表示的第一部分;

接收并解析与解码第二经编码的视频表示有关的信息,

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码;

如果该信息指示第二经编码的视频表示可以使用第一经编码的视频表示的已处理的经解码的图片作为用于预测的参考而被解码,则该方法进一步包括:

将第一部分的一个或多个经解码的图片处理为一个或多个已处理的经解码的图片,其中处理包括重采样和样本值伸缩之一或两者;以及

使用所述一个或多个已处理的经解码的图片作为可以被用于预测的参考图片来解码第二视频表示的第二部分。

根据第六实施例的方法包括:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据一种实施例,一个或多个特性包括以下各项的任何子集:

-该序列所符合的编解码或编码格式;

-该序列所符合的一致性点;

-输出层集合索引,其可以在解码该序列时被用作目标输出层集合索引;

-最高时间子层标识符,其可以在解码该序列时被使用;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是内部随机访问点图片;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是没有预测误差被编码在其中的内部随机访问点图片;

-该序列中包括的层标识符值;

-该序列中包括的必要层的层标识符值;

-该序列中包括的输出层的层标识符值;

-与由该序列表示的替换输出层有关的信息;

-在解码该序列时可以被激活的(多个)视频参数集合;

-在解码该序列时可以被激活的(多个)其他参数集合,诸如序列参数集合和/或图片参数集合;

-用于该序列中包括的层的可伸缩性标识符值;

-与用于解码该序列所要求或建议的隐式参考图片重采样有关的信息。

根据一种实施例,该方法进一步包括:

从补充结构解析一个或多个特性。

根据一种实施例,该方法进一步包括:

解析与一个或多个特性相关联的以下信息中的一个或两者:

-指示一个或多个特性是应用到非交叠连续节段的序列、非交叠连续子节段的序列、还是两者的信息;

-表示集合之中的至少两个表示的标识。

根据一种实施例的方法进一步包括:

解码至少两个表示中的第一视频表示的第一部分;

解码至少两个表示中的第二视频表示;

其中经解码的第二表示在以下中的一项或多项上不同于第一经解码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且一个或多个特性指示第二经编码的视频表示是否可以使用第一经编码的视频表示的一个或多个已处理的经解码的图片作为用于预测的一个或多个参考图片而被解码。

根据一种实施例的方法,该方法进一步包括:

从第一视频表示解码增强层中的至少一个内部随机访问点图片。

根据一种实施例的方法,该方法进一步包括:

将容器格式的第一轨道标识符与增强层中的至少一个内部随机访问点图片相关联;

将容器格式的第一轨道标识符与第二视频表示相关联。

根据第七实施例的装置包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据该装置的一种实施例,一个或多个特性包括以下各项的任何子集:

-该序列所符合的编解码或编码格式;

-该序列所符合的一致性点;

-输出层集合索引,其可以在解码该序列时被用作目标输出层集合索引;

-最高时间子层标识符,其可以在解码该序列时被使用;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是内部随机访问点图片;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是没有预测误差被编码在其中的内部随机访问点图片;

-该序列中包括的层标识符值;

-该序列中包括的必要层的层标识符值;

-该序列中包括的输出层的层标识符值;

-与由该序列表示的替换输出层有关的信息;

-在解码该序列时可以被激活的(多个)视频参数集合;

-在解码该序列时可以被激活的(多个)其他参数集合,诸如序列参数集合和/或图片参数集合;

-用于该序列中包括的层的可伸缩性标识符值;

-与用于解码该序列所要求或建议的隐式参考图片重采样有关的信息。

根据一种实施例,进一步使得该装置执行:

从补充结构解析一个或多个特性。

根据一种实施例,进一步使得该装置执行:

解析与一个或多个特性相关联的以下信息中的一个或两者:

-指示一个或多个特性是应用到非交叠连续节段的序列、非交叠连续子节段的序列、还是两者的信息;

-表示集合之中的至少两个表示的标识。

根据一种实施例,进一步使得该装置执行:

解码至少两个表示中的第一视频表示的第一部分;

解码至少两个表示中的第二视频表示;

其中经解码的第二表示在以下中的一项或多项上不同于第一经解码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且一个或多个特性指示第二经编码的视频表示是否可以使用第一经编码的视频表示的一个或多个已处理的经解码的图片作为用于预测的一个或多个参考图片而被解码。

根据一种实施例,进一步使得该装置执行:

从第一视频表示解码增强层中的至少一个内部随机访问点图片。

根据一种实施例,进一步使得该装置执行:

将容器格式的第一轨道标识符与增强层中的至少一个内部随机访问点图片相关联;

将容器格式的第一轨道标识符与第二视频表示相关联。

根据第八实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第九实施例,提供了一种包括视频解码器的装置,视频解码器被配置用于解码包括图像序列的比特流,视频解码器包括:

用于从媒体展示描述解析用于至少两个表示的元数据的部件;

用于从媒体展示描述解析一个或多个特性的部件,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十实施例,提供了一种视频解码器,其被配置用于解码包括图像序列的比特流,其中所述视频解码器进一步被配置用于:

从媒体展示描述解析用于至少两个表示的元数据;

从媒体展示描述解析一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十一实施例的方法包括:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据一种实施例,一个或多个特性包括以下各项的任何子集:

-该序列所符合的编解码或编码格式;

-该序列所符合的一致性点;

-输出层集合索引,其可以在解码该序列时被用作目标输出层集合索引;

-最高时间子层标识符,其可以在解码该序列时被使用;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是内部随机访问点图片;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是没有预测误差被编码在其中的内部随机访问点图片;

-该序列中包括的层标识符值;

-该序列中包括的必要层的层标识符值;

-该序列中包括的输出层的层标识符值;

-与由该序列表示的替换输出层有关的信息;

-在解码该序列时可以被激活的(多个)视频参数集合;

-在解码该序列时可以被激活的(多个)其他参数集合,诸如序列参数集合和/或图片参数集合;

-用于该序列中包括的层的可伸缩性标识符值;

-与用于解码该序列所要求或建议的隐式参考图片重采样有关的信息。

根据一种实施例,该方法进一步包括:

在补充结构中提供一个或多个特性,该补充结构在解析媒体展示描述时不要求被解析。

根据一种实施例,该方法进一步包括:

提供与一个或多个特性相关联的以下信息中的一个或两者:

-指示一个或多个特性是应用到非交叠连续节段的序列、非交叠连续子节段的序列、还是两者的信息;

-表示集合之中的至少两个表示的标识。

根据一种实施例的方法进一步包括:

编码至少两个表示中的第一视频表示的第一部分;

编码至少两个表示中的第二视频表示;

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码。

根据一种实施例的方法,该方法进一步包括:

将增强层中的至少一个内部随机访问点图片编码到第一视频表示中。

根据一种实施例的方法,该方法进一步包括:

将容器格式的第一轨道标识符与增强层中的至少一个内部随机访问点图片相关联;

将容器格式的第一轨道标识符与第二视频表示相关联。

根据一种实施例,其中:

增强层中的至少一个内部随机访问点图片是跳过图片。

根据第十二实施例的装置包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据一种实施例,一个或多个特性包括以下各项的任何子集:

-该序列所符合的编解码或编码格式;

-该序列所符合的一致性点;

-输出层集合索引,其可以在解码该序列时被用作目标输出层集合索引;

-最高时间子层标识符,其可以在解码该序列时被使用;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是内部随机访问点图片;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是没有预测误差被编码在其中的内部随机访问点图片;

-该序列中包括的层标识符值;

-该序列中包括的必要层的层标识符值;

-该序列中包括的输出层的层标识符值;

-与由该序列表示的替换输出层有关的信息;

-在解码该序列时可以被激活的(多个)视频参数集合;

-在解码该序列时可以被激活的(多个)其他参数集合,诸如序列参数集合和/或图片参数集合;

-用于该序列中包括的层的可伸缩性标识符值;

-与用于解码该序列所要求或建议的隐式参考图片重采样有关的信息。

根据一种实施例,进一步使得该装置执行:

在补充结构中提供一个或多个特性,该补充结构在解析媒体展示描述时不要求被解析。

根据一种实施例,进一步使得该装置执行:

提供与一个或多个特性相关联的以下信息中的一个或两者:

-指示一个或多个特性是应用到非交叠连续节段的序列、非交叠连续子节段的序列、还是两者的信息;

-表示集合之中的至少两个表示的标识。

根据一种实施例,进一步使得该装置执行:

编码至少两个表示中的第一视频表示的第一部分;

编码至少两个表示中的第二视频表示;以及

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码。

根据一种实施例,进一步使得该装置执行:

将增强层中的至少一个内部随机访问点图片编码到第一视频表示中。

根据一种实施例,进一步使得该装置执行:

将容器格式的第一轨道标识符与增强层中的至少一个内部随机访问点图片相关联;

将容器格式的第一轨道标识符与第二视频表示相关联。

根据一种实施例,增强层中的至少一个内部随机访问点图片是跳过图片。

根据第十三实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据一种实施例,一个或多个特性包括以下各项的任何子集:

-该序列所符合的编解码或编码格式;

-该序列所符合的一致性点;

-输出层集合索引,其可以在解码该序列时被用作目标输出层集合索引;

-最高时间子层标识符,其可以在解码该序列时被使用;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是内部随机访问点图片;

-该序列的访问单元是包括一层还是两层的指示,其中两层中的较高层的图片是没有预测误差被编码在其中的内部随机访问点图片;

-该序列中包括的层标识符值;

-该序列中包括的必要层的层标识符值;

-该序列中包括的输出层的层标识符值;

-与由该序列表示的替换输出层有关的信息;

-在解码该序列时可以被激活的(多个)视频参数集合;

-在解码该序列时可以被激活的(多个)其他参数集合,诸如序列参数集合和/或图片参数集合;

-用于该序列中包括的层的可伸缩性标识符值;

-与用于解码该序列所要求或建议的隐式参考图片重采样有关的信息。

根据一种实施例,进一步使得该装置执行:

在补充结构中提供一个或多个特性,该补充结构在解析媒体展示描述时不要求被解析。

根据一种实施例,进一步使得该装置执行:

提供与一个或多个特性相关联的以下信息中的一个或两者:

-指示一个或多个特性是应用到非交叠连续节段的序列、非交叠连续子节段的序列、还是两者的信息;

-表示集合之中的至少两个表示的标识。

根据一种实施例,进一步使得该装置执行:

编码至少两个表示中的第一视频表示的第一部分;

编码至少两个表示中的第二视频表示;以及

其中经编码的第二表示在以下中的一项或多项上不同于第一经编码的视频表示:色度格式、样本比特深度、色域、空间分辨率,并且该信息指示第二经编码的视频表示是否可以使用第一经编码的视频表示的已处理的经解码的图片作为可以被用于预测的参考图片而被解码。

根据一种实施例,进一步使得该装置执行:

将增强层中的至少一个内部随机访问点图片编码到第一视频表示中。

根据一种实施例,进一步使得该装置执行:

将容器格式的第一轨道标识符与增强层中的至少一个内部随机访问点图片相关联;

将容器格式的第一轨道标识符与第二视频表示相关联。

根据一种实施例,增强层中的至少一个内部随机访问点图片是跳过图片。

根据第十四实施例,提供了一种包括视频编码器的装置,视频编码器被配置用于编码包括图像序列的比特流,视频编码器包括:

用于在媒体展示描述中提供用于至少两个表示的元数据的部件;

用于在媒体展示描述中提供一个或多个特性的部件,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十五实施例,提供了一种视频编码器,其被配置用于解码包括图像序列的比特流,其中所述视频编码器进一步被配置用于:

在媒体展示描述中提供用于至少两个表示的元数据;

在媒体展示描述中提供一个或多个特性,一个或多个特性用于解码该至少两个表示的非交叠连续节段或子节段的序列。

根据第十六实施例的方法包括:

接收包括图片数据单元的比特流作为第一表示;

确定在第一切换点处中断第一表示的传输;

传输第一表示上的图片数据单元直到第一切换点,所述图片数据单元包括至少一个数据单元,该至少一个数据单元适合于当解码在所述第一切换点之后的第二视频表示的第二部分时用作用于预测的参考。

根据第十七实施例,提供了一种装置,包括:

至少一个处理器和至少一个存储器,所述至少一个存储器上存储有代码,代码在由所述至少一个处理器执行时,使得装置至少执行:

接收包括图片数据单元的比特流作为第一表示;

确定在第一切换点处中断第一表示的传输;

传输第一表示上的图片数据单元直到第一切换点,所述图片数据单元包括至少一个数据单元,该至少一个数据单元适合于当解码在所述第一切换点之后的第二视频表示的第二部分时用作用于预测的参考。

根据第十八实施例,提供了一种计算机可读存储介质,其上存储有代码用于由装置使用,代码在由处理器执行时,使得装置执行:

接收包括图片数据单元的比特流作为第一表示;

确定在第一切换点处中断第一表示的传输;

传输第一表示上的图片数据单元直到第一切换点,所述图片数据单元包括至少一个数据单元,该至少一个数据单元适合于当解码在所述第一切换点之后的第二视频表示的第二部分时用作用于预测的参考。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1