用于视频编码和解码的装置、方法和计算机程序与流程

文档序号:12290239阅读:399来源:国知局
用于视频编码和解码的装置、方法和计算机程序与流程

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



背景技术:

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

编码标准或系统可以指代术语操作点等,其可以指示解码在其下面进行操作的可伸缩层和/或子层和/或可以与包括被解码的可伸缩层和/或子层的子比特流相关联。

在SHVC(H.265/HEVC的可伸缩扩展)和MV-HEVC(H.265/HEVC的多视图扩展)中,操作点定义可以包括目标输出层集合的考虑。在SHVC和MV-HEVC中,操作点可以被定义为比特流,该比特流利用另一比特流、目标最高时间级别和目标层标识符列表作为输入通过子比特流提取过程的操作根据该另一比特流创建,并且该比特流与目标输出层的集合相关联。

然而,现有技术的各种视频编码标准中的可伸缩性设计具有一些限制。例如,在SHVC中,要求访问单元的图片具有相同的时间(temporal)级别。这使得编码器不能够跨层来不同地确定预测层级,从而限制了使用频繁的子层向上切换点和/或实现更好的速率失真性能的可能性。此外,另外的限制在于,在最低时间级别不允许时间级别切换图片。这使得不能够向实现一些时间级别(但是不一定全部时间级别)的解码的层指示访问图片或访问点。



技术实现要素:

现在,为了至少缓解以上问题,本文中介绍用于对受限层访问图片进行编码和解码的方法。

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

接收第一可伸缩层的已编码图片;

解码第一可伸缩层的已编码图片;

接收第二可伸缩层的已编码图片,第二可伸缩层依赖于第一可伸缩层;

从第二可伸缩层的已编码图片中选择在第二可伸缩层上的层访问图片,其中所选择的层访问图片是最低时间子层上的逐步(step-wise)时间子层访问(STSA)图片;

忽略按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片;以及

解码所选择的层访问图片。

根据实施例,逐步时间子层访问图片提供访问点用于具有一个或多个时间子层的比特流的解码的逐层初始化。

根据实施例,逐步时间子层访问图片提供访问点用于具有一个或多个时间层的比特流的逐层比特率适配。

根据实施例,方法还包括:

接收关于沿着比特流提供的具体NAL单元类型的逐步时间子层访问图片的指示。

根据实施例,方法还包括:

接收关于具有定义可解码子层数目的SEI消息的逐步时间子层访问图片的指示。

根据实施例,方法还包括:

响应于基本层包含在最低子层上的帧内随机访问点(IRAP)图片或逐步时间子层访问(STSA)图片来开始比特流的解码;

响应于所述至少一个增强层包含在最低子层上的IRAP图片或STSA图片来开始至少一个增强层的逐步解码;以及

渐进地增加已解码层的数目和/或已解码时间子层的数目。

根据实施例,方法还包括:

生成用于特别增强层中针对按照解码顺序的第一图片的参考图片的不可用图片。

根据实施例,方法还包括:

省略先于IRAP图片的图片中的特别增强层的解码能够从其被启动的图片的解码。

根据实施例,方法还包括:

用一个或多个具体的NAL单元类型来标记被省略的图片。

根据实施例,方法还包括:

维持每个层的哪些子层已经被正确解码的信息。

根据实施例,开始逐步解码包括以下条件操作中的一项或多项:

-在当前图片是IRAP图片并且IRAP图片的所有参考层的解码已经被启动的情况下,IRAP图片以及相同的层中按照解码顺序在IRAP图片之后的所有图片被解码。

-在当前图片是最低子层处的STSA图片并且STSA图片的所有参考层的最低子层的解码已经被启动的情况下,STSA图片以及相同的层中按照解码顺序在STSA图片之后的最低子层处的所有图片被解码。

-在当前图片是比最低子层高的子层处的TSA或STSA图片并且相同层中的下一较低子层的解码已经开始并且TSA或STSA图片的所有参考层的相同子层的解码已经被启动的情况下,TSA或STSA图片以及相同层中按照解码顺序在TSA或STSA之后的相同子层处的所有图片被解码。

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

接收第一可伸缩层的已编码图片;

接收第二可伸缩层的已编码图片,第二可伸缩层依赖于第一可伸缩层;

从第二可伸缩层的已编码图片中选择在第二可伸缩层上的层访问图片,其中所选择的层访问图片是最低时间子层上的逐步时间子层访问图片;

忽略按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片;

在比特流中发送第一可伸缩层的已编码图片和所选择的层访问图片。

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

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

接收第一可伸缩层的已编码图片;

解码第一可伸缩层的已编码图片;

接收第二可伸缩层的已编码图片,第二可伸缩层依赖于第一可伸缩层;

从第二可伸缩层的已编码图片中选择在第二可伸缩层上的层访问图片,其中所选择的层访问图片是最低时间子层上的逐步时间子层访问图片;

忽略按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片;以及

解码所选择的层访问图片。

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

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

接收第一可伸缩层的已编码图片;

接收第二可伸缩层的已编码图片,第二可伸缩层依赖于第一可伸缩层;

从第二可伸缩层的所述已编码图片中选择在所述第二可伸缩层上的层访问图片,其中所选择的层访问图片是最低时间子层上的逐步时间子层访问图片;

忽略按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片;

在比特流中发送第一可伸缩层的已编码图片和所选择的层访问图片。

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

接收第一可伸缩层的已编码图片;

解码第一可伸缩层的已编码图片;

接收第二可伸缩层的已编码图片,第二可伸缩层依赖于第一可伸缩层;

从第二可伸缩层的已编码图片中选择在第二可伸缩层上的层访问图片,其中所选择的层访问图片是最低时间子层上的逐步时间子层访问图片;

忽略按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片;以及

解码所选择的层访问图片。

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

用于接收第一可伸缩层的已编码图片的装置;

用于解码第一可伸缩层的已编码图片的装置;

用于接收第二可伸缩层的已编码图片的装置,第二可伸缩层依赖于第一可伸缩层;

用于从第二可伸缩层的已编码图片中选择在第二可伸缩层上的层访问图片的装置,其中所选择的层访问图片是最低时间子层上的逐步时间子层访问图片;

用于忽略按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片的装置;以及

用于解码所选择的层访问图片的装置。

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

接收第一可伸缩层的已编码图片;

解码第一可伸缩层的已编码图片;

接收第二可伸缩层的已编码图片,第二可伸缩层依赖于第一可伸缩层;

从第二可伸缩层的已编码图片中选择在第二可伸缩层上的层访问图片,其中所选择的层访问图片是最低时间子层上的逐步(step-wise)时间子层访问图片;

忽略按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片;以及

解码所选择的层访问图片。

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

在第一可伸缩层和最低时间子层上编码第一图片;

在第二可伸缩层和最低时间子层上编码第二图片,其中第一图片和第二图片表示相同的时刻;

使用表示第一图片的图片类型不是逐步时间子层访问(STSA)图片的值来编码与第一图片相关联的一个或多个第一语法元素;

使用表示第二图片的图片类型是逐步时间子层访问图片的值来编码与第二图片相关联的一个或多个第二语法元素;以及

在第二可伸缩层和高于最低时间子层的时间子层上编码至少第三图片。

根据实施例,逐步时间子层访问图片提供访问点用于具有一个或多个时间子层的比特流的解码的逐层初始化。

根据实施例,逐步时间子层访问图片是TemporalId等于0的STSA图片。

根据实施例,方法还包括:

通过具体的NAL单元类型在比特流中信号传输逐步时间子层访问图片。

根据实施例,方法还包括:

在定义可解码子层的数目的SEI消息中信号传输逐步时间子层访问图片。

根据实施例,方法还包括:

编码第二或任何另外的可伸缩层以包括比第一可伸缩层更频繁的TSA或STSA图片。

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

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

在第一可伸缩层和最低时间子层上编码第一图片;

在第二可伸缩层和最低时间子层上编码第二图片,其中第一图片和第二图片表示相同的时刻;

使用表示第一图片的图片类型不同于逐步时间子层访问图片的值来编码与第一图片相关联的一个或多个第一语法元素;

使用表示第二图片的图片类型是逐步时间子层访问图片的值来编码与第二图片相关联的一个或多个第二语法元素;以及

在第二可伸缩层和高于最低时间子层的时间子层上编码至少第三图片。

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

在第一可伸缩层和最低时间子层上编码第一图片;

在第二可伸缩层和最低时间子层上编码第二图片,其中第一图片和第二图片表示相同的时刻;

使用表示第一图片的图片类型不同于逐步时间子层访问图片的值来编码与第一图片相关联的一个或多个第一语法元素;

使用表示第二图片的图片类型是逐步时间子层访问图片的值来编码与第二图片相关联的一个或多个第二语法元素;以及

在第二可伸缩层和高于所述最低时间子层的时间子层上编码至少第三图片。

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

用于在第一可伸缩层和最低时间子层上编码第一图片的部件;

用于在第二可伸缩层和最低时间子层上编码第二图片的部件,其中第一图片和第二图片表示相同的时刻;

用于使用表示第一图片的图片类型不同于逐步时间子层访问图片的值来编码与第一图片相关联的一个或多个第一语法元素的部件;

用于使用表示第二图片的图片类型是逐步时间子层访问图片的值来编码与第二图片相关联的一个或多个第二语法元素的部件;以及

用于在第二可伸缩层和高于最低时间子层的时间子层上编码至少第三图片的部件。

根据第十二方面,提供了一种视频编码器,其被配置用于对包括图像序列的比特流编码,其中视频编码器还被配置用于:

在第一可伸缩层和最低时间子层上编码第一图片;

在第二可伸缩层和最低时间子层上编码第二图片,其中第一图片和第二图片表示相同的时刻;

使用表示第一图片的图片类型不同于逐步时间子层访问图片的值来编码与第一图片相关联的一个或多个第一语法元素;

使用表示第二图片的图片类型是逐步时间子层访问图片的值来编码与第二图片相关联的一个或多个第二语法元素;以及

在第二可伸缩层和高于最低时间子层的时间子层上编码至少第三图片。

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

在第一可伸缩层和最低时间子层上编码第一图片;

在第二可伸缩层上编码第二图片,其中第一图片和第二图片属于相同的访问点;

使用表示访问单元内的已编码第一图片和第二图片的时间级别标识符值是否对准的值来编码与访问单元相关联的一个或多个语法元素。

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

接收包括访问单元的比特流,访问单元具有在第一可伸缩层和最低时间子层上被编码的第一图片以及在第二可伸缩层上被编码的第二图片;

利用指示访问单元内的已编码的第一图片和第二图片的时间级别标识符值是否对准的值来从比特流中解码与访问单元相关联的一个或多个语法元素;以及

根据值选择用于第一图片和第二图片的解码操作。

附图说明

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

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

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

图3另外示意性地示出了使用无线和有线网络连接来连接的采用本发明的实施例的电子设备;

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

图5示出了包括两个图块(tile)的图片的示例;

图6示出了当前块和可用作运动预测候选的五个空间邻居的示例;

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

图8图示了根据本发明的实施例的编码示例;

图9图示了根据本发明的另一实施例的编码示例;

图10图示了根据本发明的又一实施例的编码示例;

图11图示了根据本发明的再一实施例的编码示例;

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

图13示出了根据本发明的实施例的比特率适配方法的流程图;

图14图示了根据本发明的实施例的比特率适配示例;

图15图示了根据本发明的另一实施例的比特率适配示例;

图16图示了根据本发明的又一实施例的比特率适配示例;

图17图示了根据本发明的再一实施例的比特流适配示例;

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

图19a和19b图示已伸缩参考层偏移的使用;以及

图20示出了其中可以实现各种实施例的示例多媒体通信系统的示意图。

具体实施方式

下面进一步详细描述用于编码增强层子图片而没有明显牺牲编码效率的适合的装置和可能的机制。在这一点上,首先参考图1和2,其中图1示出了根据示例实施例的视频编码系统的框图作为示例性装置或电子设备50的示意性框图,示例性装置或电子设备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网络等)、诸如由任何IEEE 802.x标准定义的无线局域网(WLAN)、蓝牙个域网、以太网局域网、令牌环局域网、广域网和因特网。

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

例如,图3所示的系统示出了移动电话网络11和因特网28的表示。到因特网28的连接可以包括但不限于远距离无线连接、近距离无线连接、以及各种有线连接,有线连接包括但不限于电话线、电缆线路、电力线、和类似的通信路径。

系统10中所示的示例通信设备可以包括但不限于电子设备或装置50、个人数字助理(PDA)和移动电话14的组合、PDA 16、集成消息设备(IMD)18、台式计算机20、笔记本计算机22。装置50可以是固定的或在由移动的个体来携带时是移动的。装置50也可以位于运输模式,包括但不限于汽车、卡车、出租车、公共汽车、火车、船、飞机、自行车、摩托车或者任意类似合适模式的运输模式。

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

一些或另外的装置可以通过到基站24的无线连接25来发送和接收呼叫和消息并且与服务提供商通信。基站24可以连接至网络服务器26,网络服务器26实现移动电话网络11与因特网28之间的通信。系统可以包括另外的通信设备以及各种类型的通信设备。

通信设备可以使用各种传输技术来通信,包括但不限于码分多址(CDMA)、全球移动通信系统(GSM)、通用移动电信系统(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议因特网协议(PCT-IP)、短消息服务(SMS)、多媒体消息服务(MMS)、电子邮件、即时消息服务(IMS)、蓝牙、IEEE 802.11以及任何类似的无线通信技术。本发明的各种实施例的实现中涉及的通信设备可以使用各种媒体来通信,包括但不限于无线电、红外、激光、电缆连接和任意合适的连接。

视频编解码器包括将输入视频变换成适于存储/传输的压缩表示的编码器以及能够将压缩视频表示解压缩回可查看形式的解码器。通常,编码器丢弃原始视频序列中的一些信息以便用更加紧凑的形式(也就是以较低的比特率)来表示视频。

典型的混合视频编解码器分两个阶段对视频信息编码,典型的混合视频编解码器例如ITU-T H.263和H.264的很多编码器实现。首先,通过例如运动压缩方式或者通过空间方式来预测某个图片区域(或“块”)中的像素值,运动压缩方式寻找和指示紧密地对应于被编码的块的先前编码的视频帧之一中的区域,空间方式以规定的方式使用要编码的块周围的像素值来。其次,预测误差被编码,预测误差即所预测的像素块与原始像素块之间的差异。这通常通过以下方式来进行:使用规定的变换(例如离散余弦变换(DCT)或其变型)对像素值的差异进行变换,量化系数,并且对量化之后的系数进行熵编码。通过改变量化过程的保真度,编码器可以控制像素表示的精确性(图片质量)与所得到的已编码视频表示的大小(文件大小或传输比特率)之间的平衡。

帧间预测减小时间冗余,帧间预测也可以称为时间预测、运动补偿、或运动补偿预测。在帧间预测中,预测的源是先前解码的图片。帧内预测利用以下事实:相同图片内的相邻像素很有可能相互关联。帧内预测可以在空间或变换域执行,即样本值或变换系数可以预测。帧内预测通常在帧内编码时使用,其中没有应用帧间预测。

编码过程的一个结果是编码参数的集合,诸如运动矢量和量化变换系数。很多参数在首先根据空间或时间相邻参数被预测的情况下可以被更加高效地熵编码。例如,可以根据空间相邻的运动矢量来预测运动矢量,并且可以仅对于运动矢量预测符有关的差异进行编码。编码参数的预测和帧内预测可以统称为图片内预测。

图4示出了适合采用本发明的实施例的视频编码器的框图。图4呈现了用于两个层的编码器,但是应当理解,所呈现的编码器可以类似地扩展以对多于两个层进行编码。图4图示包括用于基本层的第一编码器部分500和用于增强层的第二编码器部分502的视频编码器的实施例。第一编码器部分500和第二编码器部分502的每个编码部分可以包括用于对即将到来的图片编码的类似的元件。编码器部分500、502可以包括像素预测器302、402,预测误差编码器303、403,以及预测误差解码器304、404。图4还示出了包括帧间预测器306、406,帧内预测器308、408,模式选择器310、410,滤波器316、416和参考帧存储器318、418的像素预测器302、402的实施例。第一编码器部分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,第一预测误差信号320、420被输入给预测误差编码器303、403。

像素预测器302、402还从初步重构器339、439接收图像块312、412的预测表示与预测误差解码器304、404的输出338、438的组合。初步重构图像314、414可以被传递给帧内预测器308、408以及滤波器316、416。接收初步表示的滤波器316、416可以对初步表示进行滤波并且输出最终重构图像340、440,最终重构图像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,已解码预测误差信号338、438在与第二求和设备339、439处的图像块312、412的预测表示组合时产生初步重构图像314、414。可以认为预测误差解码器包括去量化器361、461和逆变换单元363、463,去量化器361、461对例如DCT系数的量化系数值去量化以重构变换信号,逆变换单元363、463对已重构变换信号执行逆变换,其中逆变换单元363、463的输出包含已重构块。预测误差解码器还可以包括块滤波器,块滤波器可以根据另外的已解码信息和滤波器参数来对已重构块进行滤波。

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

H.264/AVC标准由国际电信联盟的电信标准化部门的视频编码专家组(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)标准由VCEG和MPEG的联合协作组-视频编码(JCT-VC)开发。该标准由或者将由两个父标准化组织来发布,并且称为ITU-T推荐H.265和ISO/IEC国际标准23008-2,也称为MPEG-H部分2高效视频编码(HEVC)。当前正在进行的标准化项目开发对于H.265/HEVC的扩展,包括可伸缩、多视图、三维、和保真度范围扩展,其分别可以缩写为SHVC、MV-HEVC、3D-HEVC和REXT。

这一部分描述H.264/AVC和HEVC的一些关键定义、比特流和编码结构、以及概念作为视频编码器、解码器、编码方法、解码方法和比特流结构的示例,其中可以实现实施例。H.264/AVC的一些关键定义、比特流和编码结构、以及概念与HEVC中的相同——因此,下面对其共同进行描述。本发明的各个方面不限于H.264/AVC或HEVC,相反,描述被给出用于能够部分或全部实现本发明的一个可能的基础。

类似于很多较早的视频编码标准,H.264/AVC和HEVC中规定了比特流语法和语义以及用于无误差比特流的解码过程。没有规定编码过程,但是编码器必须生成确认比特流。可以使用假设参考解码器(HRD)来验证比特流和解码器确认。标准包含帮助处理传输错误和丢失的编码工具,但是工具在编码中的使用是可选的并且针对错误比特流没有规定解码过程。

在现有标准的描述中以及示例实施例的描述中,可以定义语法元素作为在比特流中表示的数据的元素。语法结构可以定义为按照规定的顺序一起存在于比特流中的零个或多个语法元素。在现有标准的描述中以及示例实施例的描述中,可以使用短语“通过外部方式”或“经由外部方式”。例如,诸如语法结构或在解码过程中使用的变量的值的实体可以“通过外部方式”提供给解码过程。短语“通过外部方式”可以表示实体没有被包括在由编码器产生的比特流中,而是例如使用控制协议从比特流外部来传达。替代地或另外地,其可以表示,实体没有由编码器产生,但是可以例如在使用解码器的播放器或解码控制逻辑等中产生。解码器可以具有用于输入诸如变量值的外部方式的接口。

简档可以定义为由解码/编码标准或规范所规定的整个比特流语法的子集。在由给定简档的语法施加的边界内,仍然能够依赖于比特流中的语法元素的取值来要求编码器和解码器的性能的非常大的变化,比特流中的语法元素的取值诸如已解码图片的规定大小。在很多应用中,实现能够处理具体简档内的语法的所有假设使用的解码器既不实际也不经济。为了处理这一问题,可以使用级别。级别可以定义为对比特流中的语法元素以及在解码/编码标准或规范中规定的变量的值强加的约束的规定集合。这些约束可以是对值的简单限制。替代地或另外地,它们可以采用对值的算术组合的约束的形式(例如图片宽度乘以图片高度乘以每秒钟解码的图片数目)。也可以使用其他用于规定级别的约束的方法。级别中规定的一些约束例如可以涉及诸如秒的每个时间周期的编码单元方面的诸如宏块形式的最大图片大小、最大比特率和最大数据速率。可以针对所有简档定义相同的级别集合。可以优选的是,例如增加执行不同简档的终端的可互操作性,不同简档之间的每个层的定义的多数或全部方面可以是共通的。

相应地到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的部分。

分割可以定义为将集合划分为子集,从而使得集合的每个元素精确地在子集中的一个子集中。

在H.264/AVC中,宏块是亮度样本的16×16块以及色度样本的对应块。例如,在4:2:0采样图案中,宏块每个色度分量包含色度样本的一个8×8块。在H.264/AVC中,图片被分割成一个或多个切片组,并且切片组包含一个或多个切片。在H.264/AVC中,切片包括具体的切片组内的栅格扫描中连续排序的整数个宏块。

在描述HEVC编码和/或解码的操作时,可以使用以下术语。编码块可以定义为针对某个N值的N×N个样本块,从而使得编码树块到编码块的划分是分割。编码树块(CTB)可以定义为针对某个N值的N×N个样本块,从而使得分量到编码树块的划分是分割。编码树单元(CTU)可以定义为亮度样本的编码树块、具有三个样本阵列的图片的色度样本的两个对应编码树块、或者使用用于编码样本的三个单独的颜色平面和语法结构而被编码的图片或单色图片的样本的编码树块。编码单元(CU)可以定义为亮度样本的编码块、具有三个样本阵列的图片的亮度样本的两个对应编码块、或者使用用于编码样本的三个单独的颜色平面和语法结构编码的图片或单色图片的样本的编码块。

在诸如高效视频编码(HEVC)编解码器的一些视频编解码器中,将视频图片划分成覆盖图片的区域的编码单元(CU)。CU包括定义针对CU内的样本的预测过程的一个或多个预测单元(PU)以及定义针对所述CU中的样本的预测误差编码过程的一个或多个变换单元(TU)。通常,CU包括样本的正方形块,样本的正方形块的大小从可能CU大小的预定义集合中可选择。具有最大许可大小的CU可以称为LCU(最大编码单元)或编码树单元(CTU),并且将视频图片划分成非交叠的LCU。LCU还可以拆分为更小CU的组合,例如通过递归地拆分LCU和所得到的CU。每个所得到的CU通常具有与其相关联的至少一个PU和至少一个TU。每个PU和TU可以进一步拆分为更小的PU和TU,以便分别增加预测和预测误差编码过程的粒度。每个PU具有与其相关联的预测信息,该预测信息定义要针对该PU内的像素应用哪种预测(例如用于帧间预测的PU的运动矢量信息以及用于帧内预测的PU的帧内预测方向信息)。

帧内预测的预测模式的方向可以是竖直的、水平的、对角的,帧内预测的预测模式的方向即要在具体预测模式下应用的预测方向。例如,在HEVC中,依赖于PU的大小,帧内预测提供最高达33个方向预测模式,并且每个帧内预测模式具有向其分配的预测方向。

类似地,每个TU与描述针对所述TU内的样本的预测误差解码过程的信息(包括例如DCT系数信息)相关联。通常在CU级别信号传输是否针对每个CU应用预测误差编码。在不存在与CU相关联的预测误差残余的情况下,可以认为没有用于所述CU的TU。将图像划分成CU以及将CU划分成PU和TU通常在比特流中进行信号传输,以使得解码器能够再现这些单元的预期的结构。

在HEVC中,可以将图片分割成图块,图块是矩形的并且包含整数个LCU。在HEVC中,到图块的分割形成矩形网格,其中图块的高度和宽度彼此最大相差一个LCU。在草拟HEVC中,切片定义为一个独立的切片分段中以及先于相同的访问单元内的下一独立切片分段(如果存在)的所有随后的依赖性切片分段(如果存在)所包含的整数个编码树单元。在HEVC中,切片分段定义为图块扫描中连续排序的并且被包含在单个NAL单元中的整数个编码树单元。每个图片到切片分段的划分是分割。在HEVC中,独立切片分段定义为不是根据在先切片分段的值推断其切片分段首部的语法元素的值的切片分段,并且依赖性切片分段定义为根据按照解码顺序的在先切独立片分段的值推断其切片分段首部的一些语法元素的值的切片分段。在HEVC中,切片首部定义为独立切片分段的切片分段首部,该独立切片分段是当前切片分段或者是先于当前依赖性切片分段的独立切片分段,并且切片分段首部定义为包含涉及切片分段中表示的第一或所有编码树单元的数据元素的已编码切片分段的部分。如果不使用图块,则按照图块内或图片内的LCU的栅格扫描顺序来扫描CU。在LCU内,CU具有具体的扫描顺序。图5示出了包括被分割成正方形编码单元(实线)的两个图块的图片的示例,正方形编码单元进一步被分割成矩形预测单元(虚线)。

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

滤波例如可以包括以下中的一项或多项:解块、样本适配偏移(SAO)和/或适配回路滤波(ALF)。

在SAO中,将图片划分成其中针对每个分区做出单独的SAO决定的区域。分区中的SAO信息被封装在SAO参数适配单元(SAO单元)中,在HEVC中,用于适配SAO参数的基本单元是CTU(因此SAO分区是被对应CTU所覆盖的块)。

在SAO算法中,根据规则的集合来对CTU中的样本分类,并且通过添加偏移值来增强样本的每个经分类的集合。偏移值在比特流中进行信号传输。有两种类型的偏移:1)频带(band)偏移,2)边缘偏移。对于CTU,没有采用SAO或频带偏移或边缘偏移。是否使用SAO或频带或边缘偏移的选择可以由编码器使用例如速率失真优化(RDO)来决定并且被信号传输给解码器。

在频带偏移中,样本值的整个范围在某些情况下被划分为32个相等宽度的频带。例如,对于8比特样本,频带宽度是8(256/32)。在32个频带中,有4个频带被选择,并且针对所选择的频带中的每个频带信号传输不同的偏移。选择决定由编码器做出并且可以如下来进行信号传输:信号传输第一频带的索引并且然后推断随后的四个频带为所选择的频带。频带偏移在校正平滑分区中的错误时是有用的。

在边缘偏移类型中,可以从四个可能的类型(或边缘分类)中选取边缘偏移(EO)类型,在四个可能的类型(或边缘分类)中,每个类型与如下方向相关联:1)竖直,2)水平,3)135度对角,以及4)45度对角。方向的选取由编码器给出并且被信号传输给解码器。每个类型基于角度来定义给定样本的两个相邻样本的位置。然后,基于样本值与两个相邻样本值的比较来将CTU中的每个样本分类成五个种类中的一个种类。五个种类如下描述:

1.当前样本值小于两个相邻样本

2.当前样本值小于两个相邻样本之一并且等于另一相邻样本

3.当前样本值大于相邻样本之一并且等于另一相邻样本

4.当前样本值大于两个相邻样本

5.非以上任何一种情况

不需要将这五个种类信号传输给解码器,因为分类仅基于在编码器和解码器两者中都可以可用并且完全相同的重构样本。在将边缘偏移类型CTU中的每个样本分类为五个种类之一之后,确定前四个种类中的每个种类的偏移值并且将其信号传输给解码器。将针对每个种类的偏移以及和对应种类相关联的样本值相加。边缘偏移在纠正振铃效应时很有效。

可以在CTU数据中交织地信号传输SAO参数。在CTU以上,切片首部包含规定是否在切片中使用SAO的语法元素。如果使用SAO,则两个附加语法元素规定是否向Cb和Cr分量应用SAO。对于每个CTU,有三个选项:1)从左侧CTU复制SAO参数,2)从上方CTU复制SAO参数,或者3)信号传输新的SAO参数。

适配回路滤波器(ALF)是增强重构样本的质量的另一方法。这可以通过在回路中对样本值滤波来实现。编码器可以基于例如RDO来确定应当对图片的哪个分区进行滤波以及滤波器系数,并且这一信息被信号传输给解码器。

在典型的视频编解码器中,使用与每个运动补偿图像块相关联的运动矢量来表示运动信息。这些运动矢量中的每个运动矢量表示要编码(在编码器侧)或要解码(在解码器侧)的图片中的图像块以及先前编码或解码图片之一中的预测源块的位移。为了高效地表示运动矢量,通常关于块特定的预测运动矢量来对其不同地编码。在典型的视频编解码器中,以预定义的方式产生预测运动矢量,例如计算相邻块的已编码或已解码运动矢量的中值。产生运动矢量预测的另一方法是根据时间参考图片中的相邻的块和/或共同定位的(co-located)块来生成候选预测的列表并且信号传输所选取的候选作为运动矢量预测符。除了预测运动矢量值,还可以预测哪个(哪些)参考图片用于运动补偿预测并且这一预测信息可以例如用先前编码/解码的图片的参考索引来表示。参考索引通常根据时间参考图片中的相邻的块和/或共同定位的块来预测。另外,典型的高效视频编解码器采用另外的运动信息编码/解码机制,其通常称为合并模式(merging/merge mode),其中预测并且使用所有运动场信息而没有任何修改/校正,运动场信息包括运动矢量以及每个可用参考图片列表的对应的参考图片索引。类似地,使用时间参考图片中的相邻的块和/或共同定位的块的运动场信息来执行运动场信息的预测,并且在填充有可用的相邻的/共同定位的块的运动场信息的运动场候选列表的列表之间来信号传输所使用的运动场信息。

典型的视频编解码器使得能够使用单向预测和双向预测,在单向预测中,使用单个预测块用于被编码(解码)的块,在双向预测中,组合两个预测块以形成被编码(解码)的块的预测。一些视频编解码器实现加权预测,其中先于添加残余信息来对预测块的样本值加权。例如,可以应用乘法加权因子和加法偏移。在由一些视频编解码器实现的明确加权预测中,可以例如在每个许可参考图片索引的切片首部中对加权因子和偏移进行编码。在由一些视频编解码器实现的隐含加权预测中,不对加权因子和/或偏移进行编码,而是基于例如参考图片的相对图片顺序计数(POC)距离来对其进行导出。

在典型的视频编解码器中,在运动补偿之后首先使用变换核(如DCT)对预测残差进行变换并且然后对其编码。其原因在于,残差之间通常仍然存在一些关联并且变换在很多情况下可以帮助减小这一关联并且提供更加高效的编码。

典型的视频编码器利用拉格朗日成本函数来求解最佳编码模式,例如期望的宏块模式和相关联的运动矢量。这种成本函数使用加权因子λ来将由于有损编码方法而产生的(准确或估计)图像失真与表示图像区域中的像素值所需要的(精确的或估计的)量的信息绑定在一起:

C=D+λR, (1)

其中C是将被最小化的拉格朗日成本,D是在考虑到模式和运动矢量的情况下的图像失真(例如均方差),R是表示在解码器中重构图像块所需要的数据所需要的比特数(包括表示候选运动矢量的数据量)。

视频编码标准和规范可以使得编码器能够将已编码图片划分为已编码切片等。图片内预测通常在切片边界上被停用。因此,可以认为切片是将已编码图片拆分成独立可解码片(piece)的一种方式。在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/AVC中,NAL单元首部指示NAL单元中包含的已编码切片是参考图片还是非参考图片的部分。

H.264/AVC NAL单元首部包括2比特的nal_ref_idc语法元素,其在等于0时指示NAL单元中包含的已编码切片是非参考图片的部分,而在大于0时指示NAL单元中包含的已编码切片是参考图片的部分。SVC和MVC NAL单元的首部可以另外包含与可伸缩性和多视图层级有关的各种指示。

在HEVC中,使用两类型NAL单元首部用于所有规定的NAL单元类型。NAL单元首部包含一个预留比特、6比特的NAL单元类型指示、用于时间级别的3比特的nuh_temporal_id_plus1指示(可以要求其大于或等于1)、以及6比特的预留字段(称为nuh_layer_id)。temporal_id_plus1语法元素可以被认为是NAL单元的时间标识符,并且基于零的TemporalId变量可以如以下来导出:TemporalId=temporal_id_plus1-1。TemporalId等于0对应于最低时间级别。要求temporal_id_plus1的值为非零以避免涉及两个NAL单元首部字节的开始代码仿真。通过排除TemporalId大于或等于所选择的值的所有VCL NAL单元并且包括所有其他VCL NAL单元而产生的比特流保持一致。因此,TemporalId等于TID的图片不使用TemporalId大于TID的任何图片作为帧间预测参考。子层或时间子层可以定义为时间可伸缩比特流的时间可伸缩层,包括具有变量TemporalId的具体值的VCL NAL单元以及相关联的非VCL NAL单元。

期望通过诸如将来的可伸缩和3D视频扩展的扩展来使用6比特的预留字段(nuh_layer_id)。期望这6个比特承载关于可伸缩层级的信息。在不失一般性的情况下,在一些示例实施例中,例如如下根据nuh_layer_id的值来导出变量LayerId:LayerId=nuh_layer_id。下面,除非另外指出,否则可互换地使用层标识符、LayerId、nuh_layer_id和layer_id。

NAL单元可以分类成视频编码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元通常是已编码切片NAL单元。在H.264/AVC中,已编码切片NAL单元包含表示一个或多个已编码宏块的语法元素,每个已编码宏块对应于未压缩图片中的样本块。在HEVC中,已编码切片NAL单元包含表示一个或多个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的图片。RAP图片仅包含帧内编码切片,并且可以是BLA图片、CRA图片或IDR图片。比特流中的第一图片是RAP图片。假设必要的参数集合在需要被激活时可用,则RAP图片以及按照解码顺序的所有随后的非RASL图片能够被正确地解码而没有执行按照解码顺序先于RAP图片的任何图片的解码过程。比特流中可以存在仅包含不是RAP图片的帧内编码切片的图片。

在HEVC中,CRA图片可以是比特流中按照解码顺序的第一图片,或者可以在比特流中在稍后出现。HEVC中的CRA图片允许所谓的引导图片,其按照解码顺序在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图片在解码从在RASL图片的相关联的RAP图片前面的RAP图片开始的情况下可以被正确地解码。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图片,这些相关联的RADL图片被规定为将被解码。当BLA图片具有等于BLA_W_DLP的nal_unit_type时,其没有相关联的RASL图片但是可以具有相关联的RADL图片,这些相关联的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中的任何一个中。nal_unit_type等于TRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12或RSV_VCL_N14的已编码图片可以被丢弃而没有影响具有相同的TemporalId值的其他图片的可解码性。

拖尾图片可以定义为按照输出顺序跟随相关联的RAP图片的图片。作为拖尾图片的任何图片没有等于RADL_N、RADL_R、RASL_N或RASL_R的nal_unit_type。作为引导图片的任何图片可以被约束为按照解码顺序先于与相同的RAP图片相关联的所有拖尾图片。没有与nal_unit_type等于BLA_W_DLP或BLA_N_LP的BLA图片相关联的RASL图片呈现于比特流中。没有与nal_unit_type等于BLA_N_LP的BLA图片相关联或者与nal_unit_type等于IDR_N_LP的IDR图片相关联的RADL图片呈现于比特流中。与CRA或BLA图片相关联的任何RASL图片可以被约束为按照输出顺序先于与CRA或BLA图片相关联的任何RADL图片。与CRA图片相关联的任何RASL图片可以被约束为按照输出顺序跟随按照解码顺序先于CRA图片的任何其他RAP图片。

在HEVC中,有两种图片类型——TSA和STSA图片类型可以用于指示时间子层切换点。如果具有最高达N的TemporalId的时间子层在TSA或STSA图片(排他性的)之前已经被解码并且TSA或STSA图片的TemporalId等于N+1,则TSA或STSA图片使能TemporalId等于N+1的所有随后图片(按照解码顺序)的解码。TSA图片类型可以对TSA图片本身以及相同的子层中按照解码顺序在TSA图片之后的所有图片强加约束。不允许这些图片中的任何图片使用来自相同的子层中按照解码顺序先于TSA图片的任何图片的帧间预测。TSA定义还可以对较高子层中按照解码顺序跟随TSA图片的图片强加约束。如果该图片属于与TSA图片相同的或者更高的子层,则不允许这些图片中的任何图片引用按照解码顺序先于TSA图片的图片。TSA图片的TemporalId大于0。STSA类似于TSA图片,但是没有对较高子层中按照解码顺序跟随STSA图片的图片施加约束,并且因此使得仅能够向上切换至STSA图片驻留在其中的子层。

非VCL NAL单元可以是例如以下类型之一:序列参数集合、图片参数集合、补充增强信息(SEI)NAL单元、访问单元定界符、序列NAL单元的结尾、流NAL单元的结尾、或者填充数据NAL单元。参数集合可以被需要以用于已解码图片的重构,而很多其他非VCLNAL单元不一定用于已解码样本值的重构。

在已编码视频序列中保持不变的参数可以被包括在序列参数集合中。除了解码过程可能需要的参数,序列参数集合还可以可选地包含视频可用性信息(VUI),VUI包括对于缓冲、图片输出定时、渲染、和资源保留可以很重要的参数。H.264/AVC中规定了三个NAL单元用于承载序列参数集合:包含序列中的用于H.264/AVC VCLNAL单元的所有数据的序列参数集合NAL单元、包含用于辅助已编码图片的数据的序列参数集合扩展NAL单元、以及MVC和SVC VCLNAL单元的子集序列参数集合。在HEVC中,序列参数集合RBSP包括可以被一个或多个图片参数集合RBSP引用的参数以及可以被包含缓冲周期SEI消息的一个或多个SEI NAL单元引用的参数。图片参数集合包含这样的参数,这样的参数很有可能在若干已编码图片中不变。图片参数集合RBSP可以包括可以被一个或多个已编码图片的已编码切片NAL单元引用的参数。

在草拟HEVC标准中,还有第三种类型的参数集合,这里称为适配参数集合(APS),其包括很有可能在若干已编码切片中不变但是针对例如每个图片或者每几个图片发生变化的参数。在草拟HEVC中,APS语法结构包括与量化度量(QM)、适配样本偏移(SAO)、适配回路滤波(ALF)和解块滤波有关的参数或语法元素。在草拟HEVC中,APS是NAL单元并且被编码而没有来自任何其他NAL单元的参考或预测。标识符(称为aps_id语法元素)被包括在APS NAL单元中,并且在切片首部中被包括和使用以指代具体的APS。在另一草拟HEVC标准中,APS语法结构仅包含ALF参数。在草拟HEVC标准中,当sample_adaptive_offset_enabled_flag或adaptive_loop_filter_enabled_flag中的至少一项等于1时,适配参数集合RBSP包括可以被一个或多个已编码图片的已编码切片NAL单元引用的参数。在最终发布的HEVC中,APS语法结构从规范文本中被去除。

在HEVC中,视频参数集合(VPS)可以定义为语法结构,该语法结构包含应用于由在SPS中找到的语法元素的内容确定的、被在PPS中找到的语法元素引用的、被在每个切片分度首部中找到的语法元素引用的零个或多个整个已编码视频序列的语法元素。

视频参数集合RBSP可以包括能够被一个或多个序列参数集合RBSP引用的参数。

视频参数集合(VPS)、序列参数集合(SPS)、和图片参数集合(PPS)之间的关系和层级可以被描述如下。VPS驻留在参数集合层级中SPS以上一个级别处并且在可伸缩和/或3D视频的上下文中。VPS可以包括对于整个已编码视频序列中的所有(可伸缩或视图)层上的所有切片而言公共的参数。SPS包括对于整个已编码视频序列中跨具体的(可伸缩或视图)层中的所有切片而言公共的参数,并且可以被多个(可伸缩或视图)层共享。PPS包括对于具体的层表示(一个访问单元中的一个可伸缩或视图层的表示)中的所有切片而言公共的参数并且很有可能要由多个层表示中的所有切片来共享。

VPS可以提供关于比特流中的层的依赖性关系的信息、以及可应用于整个已编码视频序列中跨所有(可伸缩或视图)层上的所有切片的很多其他信息。

H.264/AVC和HEVC语法实现参数集合的很多实例,并且每个实例使用唯一的标识符来识别。为了限制需要用于参数集合的存储器使用,用于参数集合标识符的值范围被限制。在H.264/AVC和HEVC中,每个切片首部包括对于包含切片的图片的解码而言有效的图片参数集合的标识符,并且每个图片参数集合包含有效序列参数集合的标识符。在草拟HEVC标准中,切片首部另外包含APS标识符,尽管在公布的HEVC标准中APS标识符从切片首部中去除。因此,图片和序列参数集合的传输不一定与切片的传输精确地同步。取而代之,在被引用之前的任何时刻接收有效的序列和图片参数集合就足够了,这使得能够使用与用于切片数据的协议相比更加可靠的传输机制来实现“带外”的参数集合的传输。例如,在用于实时传输协议(RTP)会话的会话描述中可以包括参数集合作为参数。如果参数集合在带内传输,则它们可以被重复以改善错误鲁棒性。

参数集合可以通过参考来而被激活,该参考来自切片或者来自另一活动参数集合或者在一些情况下来自诸如缓冲周期SEI消息的另一语法结构。

SEI NAL单元可以包含一个或多个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中的已编码图片包括图片的解码所需要的VCL NAL单元。在H.264/AVC中,已编码图片可以是初级编码图片或冗余已编码图片。初级编码图片用在有效比特流的解码过程中,而冗余已编码图片是仅应当在初级编码图片不能被成功解码时被解码的冗余表示。在HEVC中,没有规定冗余已编码图片。

在H.264/AVC中,访问单元(AU)包括初级编码图片以及与其相关联的那些NAL单元。在H.264/AVC中,访问单元内的NAL单元的出现顺序被约束如下。可选的访问单元定界符NAL单元可以指示访问单元的开始。其之后是零个或多个SEI NAL单元。接着是初级编码图片的已编码切片。在H.264/AVC中,初级编码图片的已编码切片之后可以是用于零个或多个冗余已编码图片的已编码切片。冗余已编码图片是图片或图片的部分的已编码表示。如果初级编码图片由于例如传输中的丢失或者物理存储介质的损坏而没有被解码器接收到,冗余已编码图片可以被解码。

在H.264/AVC中,访问单元还可以包括辅助编码图片,其是补充初级编码图片并且可以用在例如显示过程中的图片。辅助编码图片例如可以用作规定已解码图片中的样本的透明度级别的阿尔法通道或阿尔法平面。阿尔法通道或阿尔法平面可以用在分层合成或渲染系统中,其中输出图片由至少部分在彼此之上透明的交叠的图片形成。辅助编码图片具有与单色冗余已编码图片相同的语法和语义约束。在H.264/AVC中,辅助编码图片包含与初级编码图片相同数目的宏块。

在HEVC中,已编码图片可以定义为包含图片的所有编码树单元的图片的已编码表示。在HEVC中,访问单元(AU)可以定义为NAL单元的集合,该NAL单元的集合根据规定的分类规则彼此相关联、按照解码顺序连续、并且包含具有不同的nuh_layer_id值的一个或多个已编码图片。除了包含已编码图片的VCL NAL单元,访问单元还可以包含非VCL NAL单元。

在H.264/AVC中,已编码视频序列被定义为从IDR访问单元(包括性的)到下一IDR访问单元(排他性的)或者到比特流的结尾(以较早出现的为准)的按照解码顺序的连续的访问单元的序列。

在HEVC中,已编码视频序列(CVS)可以定义为例如按照解码顺序包括NoRaslOutputFlag等于1的IRAP访问单元,其之后是不是NoRaslOutputFlag等于1的IRAP访问单元的零个或多个访问单元,包括所有的随后的访问单元直到但是不包括作为NoRaslOutputFlag等于1的IRAP访问单元的任何随后的访问单元)的访问单元的序列。IRAP访问单元可以是IDR访问单元、BLA访问单元、或CRA访问单元。NoRaslOutputFlag的值对于作为比特流中按照解码顺序的第一访问单元以及按照解码顺序跟随序列NAL单元的结尾或者HandleCraAsBlaFlag等于1的第一访问单元的每个IDR访问单元、每个BLA访问单元以及每个CRA访问单元而言等于1。NoRaslOutputFlag等于1具有以下影响:与其NoRaslOutputFlag被设置的IRAP图片相关联的RASL图片不被解码器输出。可以存在用于从能够控制解码器的诸如播放器或接收器的外部实体向解码器提供HandleCraAsBlaFlag的值的方法。可以例如通过在比特流中寻求新的位置或者调谐到广播并且开始解码并且然后开始从CRA图片解码的播放器来将HandleCraAsBlaFlag设置为1。当HandleCraAsBlaFlag对于CRA图片等于1时,处理并且解码CRA图片,好似CRA图片是BLA图片。

图片结构(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)语法结构和解码过程被用于类似的目的。针对图片有效或活动的参考图片集合包括用作图片的参考的所有参考图片以及保持被标记为按照解码顺序的任何随后图片的“用于参考”的所有参考图片。存在参考图片集合的6个子集,这些子集称为RefPicSetStCurr0(又称RefPicSetStCurrBefore)、RefPicSetStCurr1(又称RefPicSetStCurrAfter)、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr和RefPicSetLtFoll。也可以认为RefPicSetStFoll0和RefPicSetStFoll1联合形成一个子集RefPicSetStFoll。这6个子集的注释如下。“Curr”指代被包括在当前图片的参考图片列表中并且因此可以被用作当前图片的帧间预测参考的参考图片。“Foll”指代没有被包括在当前图片的参考图片列表中但是可以在按照解码顺序的随后图片中被用作参考图片的参考图片。“St”指代短期参考图片,其通常可以通过其POC值的某个数目的最低有效位而被标识。“Lf”指代长期参考图片,其具体地被标识,并且通常与能够用所提及的某个数目的最低有效位来表示的相比,具有相对于当前图片的POC值的更大的差异。“0”指代具有比当前图片的POC值更小的POC值的这些参考图片。“1”指代具有比当前图片的POC值更大的POC值的这些参考图片。RefPicSetStCurr0、RefPicSetCtCurr1、RefPicSetStFoll0和RefPicSetStFoll1被统称为参考图片集合的短期子集。RefPicSetLtcurr和RefPicSetLtFoll被统称为参考图片集合的长期子集。

在HEVC中,参考图片集合可以在序列参数集合中被规定并且可以通过到参考图片集合的索引来在切片首部中使用。参考图片集合也可以在切片首部中被规定。参考图片集合的长期子集通常仅在切片首部中被规定,而相同的参考图片集合的短期子集可以在图片参数集合或切片首部中被规定。参考图片集合可以独立地被编码或者可以根据另一参考图片集合来预测(被称为帧间RPS预测)。当参考图片集合独立编码时,语法结构包括在不同类型的参考图片上迭代的最高达3个回路;具有比当前图片低的POC值的短期参考图片、具有比当前图片高的POC值的短期参考图片、以及长期参考图片。每个回路输入规定将被标记为“用于参考”的图片。通常,图片使用不同的POC值而被规定。帧间RPS预测采用以下事实:当前图片的参考图片集合可以根据先前解码的图片的参考图片集合来预测。这是因为,当前图片的所有参考图片是在先图片的参考图片或者先前被解码的图片本身。仅需要指示这些图片中的哪些图片应当是参考图片并且被用于当前图片的预测。在两种类型的参考图片集合编码中,针对每个参考图片另外发送标志(used_by_curr_pic_X_flag),其表示参考图片是(被包括在*Curr列表中)否(被包括在*Foll列表中)由当前图片用于参考。被包括在由当前切片使用的参考图片集合中的图片被标记为“用于参考”,并且没有在由当前切片使用的参考图片集合中的图片被标记为“未用于参考”。如果当前图片是IDR图片,则将RefPicSetStCurr0、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,之后是RefPicSetStCurr0。在HEVC中,可以通过参考图片列表修改语法结构来修改初始参考图片列表,其中可以通过到列表的进入索引来标识初始参考图片列表中的图片。换言之,在HEVC中,参考图片列表修改被编码成语法结构,该语法结构包括最终参考图片列表中的每个输入上的回路,其中每个回路输入是到初始参考图片列表的固定长度已编码索引并且指示最终参考图片列表中按照位置升序的图片。

包括H.264/AVC和HEVC的很多编码标准可以具有解码过程以导出到参考图片列表的参考图片列表索引,其可以用于指示多个参考图片中的哪个被用于具体块的帧间预测。参考图片索引在一些帧间编码模式下可以被编码器编码到比特流中,或者在一些其他帧间编码模式下可以例如使用相邻块来导出(通过编码器和解码器)。

为了在比特流中高效地表示运动矢量,可以关于块特定的预测运动矢量对运动矢量不同地编码。在很多视频编解码器中,预测运动矢量以预定义的方式来产生,例如通过计算相邻块的已编码或已解码运动矢量的中值。另一种产生运动矢量预测,的方式是根据时间参考图片中的相邻的块和/或共同定位的块来生成候选预测的列表并且将所选取的候选作为运动矢量预测符进行信号传输,该另一种产生运动矢量预测有时被称为高级运动矢量预测(AMVP。除了预测运动矢量值,也可以预测先前编码/解码的图片的参考索引。参考索引通常根据时间参考图片中的相邻的块和/或共同定位的块来预测。通常在切片边界上停用运动矢量的差异编码。

高级运动矢量预测(AMVP)等可以例如如下来操作,而高级运动矢量预测的其他类似实现在不同的候选位置集合以及具有候选位置集合的候选位置的情况下也是可能的。可以导出两个空间运动矢量预测符(MVP)并且可以导出时间运动矢量预测符(TMVP)。它们可以在图6所示的位置之间选择:位于当前预测块600上方的3个空间运动矢量预测符候选位置603、604、605(B0,B1,B2)以及在左侧的两个空间运动矢量预测符候选位置601、602(A0,A1)。可以选择每个候选位置集合(B0,B1,B2)或(A0,A1)中按照预定义的顺序的可用的(例如驻留在相同的切片中、被帧间编码等)的第一运动矢量预测符来表示运动矢量竞争中的该预测方向(向上或向左)。时间运动矢量预测符的参考索引可以由编码器在切片首部中表示(例如作为collocated_ref_idx语法元素)。可以根据时间运动矢量预测符的参考图片、共同定位的图片和当前图片的图片顺序计数差异的比例来对从共同定位的图片获取的运动矢量进行伸缩。另外,可以在候选之间执行冗余校验以去除相同的候选,这可以导致在候选列表中包括零运动矢量。可以在比特流中例如通过表示空间运动矢量预测符的方向(向上或向左)或者时间运动矢量预测符候选的选择来表示运动矢量预测符。

诸如HEVC编解码器的很多高效视频编解码器采用另外的运动信息编码/解码机制,其通常称为合并的/合并模式/过程/机制,其中块/PU的所有运动信息被预测并且使用而没有任何修改/校正。用于PU的上述运动信息可以包括以下中的一项或多项:1)关于“仅使用参考图片列表0来单向预测PU”还是“仅使用参考图片列表1来单向预测PU”还是“使用参考图片列表0和列表1两者来双向预测PU”的信息;2)对应于参考图片列表0的运动矢量值,其可以包括水平和竖直运动矢量分量;3)参考图片列表0中的参考图片索引和/或对应于参考图片列表0的运动矢量所指向的参考图片的标识符,其中参考图片的标识符可以是例如图片顺序计数值、层标识符值(用于层间预测)、或者图片顺序计数值和层标识符值的对;4)参考图片的参考图片标记的信息,例如参考图片是否被标记为“用于短期参考”还是“用于长期参考”的信息;5)-7)分别与2)到4)相同,但是针对参考图片列表1。类似地,使用时间参考图片中的相邻的块和/或共同定位的块的运动信息来执行对运动信息的预测。可以通过包括与可用的相邻的/共同定位的块相关联的运动预测候选来构造通常被称为合并列表的列表,并且列表中的所选择的运动矢量预测候选的索引被信号传输并且所选择的候选的运动信息被复制到当前PU的运动信息。当采用合并机制用于整个CU并且使用CU的预测信号作为重构信号,即不处理预测残差时,对CU的这一类型的编码/解码通常称为跳跃模式或者基于合并的跳跃模式。除了跳跃模式,也可以采用合并机制用于各个PU(不一定整个CU都是跳跃模式)并且在这种情况下,可以使用预测残差来改善预测质量。这一类型的预测模式通常称为帧间合并模式。

合并列表中的候选之一可以是TMVP候选,其可以根据所指示的或者所推断的参考图片内的共同定位的块来导出,诸如例如在切片首部中使用例如collocated_ref_idx语法元素等来表示的参考图片。

在HEVC中,在运动编码模式是合并模式时,合并列表中的时间运动矢量预测的所谓的目标参考索引被设置为0。当使用时间运动矢量预测的HEVC中的运动编码模式是高级运动矢量预测模式时,明确地指示目标参考索引值(例如每一PU)。

当目标参考索引值已经被确定时,可以如下来导出时间运动矢量预测的运动矢量值:计算与当前预测单元的右下侧相邻预测单元共同定位的块处的运动矢量。例如可以根据如上文中所描述的切片首部中的被信号传输的参考索引来确定共同定位的块驻留在其中的图片。关于第一图片顺序计数差异和第二图片顺序计数差异的比率来对共同定位的块处的所确定的运动矢量进行伸缩。导出包含共同定位的块的图片与共同定位的块的运动矢量的参考图片之间的第一图片顺序计数差异。第二图片顺序计数差异是在当前图片与目标参考图片之间被导出的。如果目标参考图片和共同定位的块的运动矢量的参考图片中的一者而非两者是长期参考图片(而另一者是短期参考图片),则可以认为TMVP候选不可用。如果目标参考图片和共同定位的块的运动矢量的参考图片两者都是长期参考图片,则不可以应用基于POC的运动矢量伸缩。

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

在一些可伸缩视频编码方案中,可以将视频信号编码到基本层和一个或多个增强层。增强层可以增强例如时间分辨率(即帧速率)、空间分辨率、或者简单地由另一层或其部分所表示的视频内容的质量。每个层连同其所有依赖性层是例如某个空间分辨率、时间分辨率和质量级别的视频信号的一个表示。在本文档中,将可伸缩层连同其所有依赖性层称为“可伸缩层表示”。可以提取对应于可伸缩层表示的可伸缩比特流的部分并且对其解码以产生某个保真度的原始信号的表示。

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

-质量可伸缩性:基本层图片以比增强层图片低的质量来编码,这例如可以在基本层中使用比在增强层中更大的量化参数值(即用于变换系数量化的更大的量化步长)来实现。可以将质量可伸缩性进一步分类成细颗粒或细粒度可伸缩性(FGS)、中颗粒或中粒度可伸缩性(MGS)、和/或粗颗粒或粗粒度可伸缩性(CGS),如下面描述的。

-空间可伸缩性:以比增强层图片更低的分辨率来对基本层图片编码(即具有更少的样本)。空间可伸缩性和质量可伸缩性、特别是其粗粒度可伸缩性类型有时可以被认为是相同类型的可伸缩性。

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

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

-颜色粒度可伸缩性:增强层图片具有比基本层图片更丰富/更宽广的颜色表示范围——例如增强层可以具有UHDTV(ITU-R BT.2020)颜色色域,并且基本层可以具有ITU-R BT.709颜色色域。

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

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

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

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

-混合编解码器可伸缩性(也称为编码标准可伸缩性):在混合编解码器可伸缩性中,在不同的视频编码标准中规定基本层和增强层的比特流语法、语义和解码过程。因此,与增强层图片相比,根据不同的编码标准或格式来对基本层图片编码。例如,可以使用H.264/AVC来对基本层编码,并且可以使用HEVC扩展来对增强层编码。

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

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

用于提供三维(3D)视频内容的各种技术同时被研究和开发。可以认为在立体或两视图视频中,一个视频序列或视图被呈现用于左眼而并行视图被呈现用于右眼。对于实现多视图切换的应用或者对于可以同时呈现大量视图并且使查看者能够从不同视点来观察内容的自动立体(autostereoscopic)显示可能需要多于两个并行视图。紧张的(intense)研究专注于用于自由立体显示的视频编码以及这样的多视图应用,其中查看者从具体的视点能够仅看到一对立体视图并且从不同的视点能够看到另一对立体视图。用于这样的多视图应用的最可行的方法之一被证明为如下:其中仅向解码器侧提供有限数目的视图并且然后向解码器本地渲染(即同步)所有所需要的视图以在显示器上显示,有限数目的视图例如是单色或立体视图加上某些补充数据。

视图可以定义为表示一个相机或视点的图片的序列。表示视图的图片也可以称为视图分量。换言之,视图分量可以定义为单个访问单元中的视图的已编码表示。在多视图视频编码中,在比特流中编码多于一个视图。由于视图通常意图要在立体或多视图自动立体显示器上显示或者要用于其他3D布置,所以它们通常表示相同的场景并且在内容上(content-wise)部分交叠,然而表示到内容的不同视点。因此,可以在多视图视频编码中使用视图间预测来利用视图间关联的优点并且改善压缩效率。实现视图间预测的一个方式是在驻留在第一视图内的被编码或解码的图片的参考图片列表中包括一个或多个其他视图的一个或多个已解码图片。视图可伸缩性可以指代这样的多视图视频编码或多视图视频比特流,其使得能够去除或省略一个或多个已编码视图,而启用比特流保持一致并且使用比原始地更少数目的视图来表示视频。

感兴趣分区(ROI)编码可以定义为指代以更高保真度对视频内的具体分区编码。有若干方法用于编码器和/或其他实体根据要编码的输入图片来确定ROI。例如,可以使用面部检测并且可以将面部确定为ROI。另外地或者替代地,在另一示例中,可以检测焦点对准的对象并且将其确定为ROI,而确定没有焦点对准的对象在ROI外部。另外地或者替代地,在另一示例中,可以估计或者知道到对象的距离,例如基于深度传感器,并且可以确定ROI为相对地接近相机而非在背景中的那些对象。

ROI可伸缩性可以定义为如下类型的可伸缩性:其中增强层仅增强参考层图片的部分,例如在空间上、在质量上(quality-wise)、以比特深度和/或沿着其他可伸缩性尺寸。由于ROI可伸缩性可以与其他类型的可伸缩性一起使用,所以可以认为其形成可伸缩性类型的不同种类。存在若干不同的应用用于具有不同要求的ROI编码,其可以通过使用ROI可伸缩性来实现。例如,可以传输增强层以增强基本层中的分区的质量和/或分辨率。接收增强层和基本层比特流二者的解码器可以解码两个层并且将已解码图片彼此叠置并且显示最终图片。

可以由编码器和/或由解码器使用例如所谓的已伸缩参考层偏移来指示解码增强层图片与参考层分区之间或者类似地增强层分区与基本层图片之间的空间对应关系。可以考虑已伸缩参考层偏移来规定相对于增强层图片的相应角落样本的上采样之后的参考层图片的角落样本的位置。偏移值可以被标记,其使得能够使用要在两种类型的扩展空间可伸缩性中使用的偏移值,如图19a和图19b中图示的。在感兴趣分区可伸缩性(图19a)的情况下,增强层图片110对应于参考层图片116的分区112,并且已伸缩参考层偏移指示扩展增强层图片的区域的上采样之后的参考层图片的角落。已伸缩参考层偏移可以用四个语法元素来表示(例如增强层及其参考层的每个对),其可以称为scaled_ref_layer_top_offset 118、scaled_ref_layer_buttom_offset 120、scaled_ref_layer_right_offset 122和scaled_ref_layer_left_offset 124。被上采样的参考层分区可以由编码器和/或解码器通过分别根据增强层图片高度或宽度与上采样之后的参考层图片高度或宽度之间的比例向下伸缩已伸缩参考层偏移来构造。然后可以使用向下伸缩之后的已伸缩参考层偏移来获取被上采样的参考层分区和/或确定参考层图片的哪些样本与增强层图片的某些样本搭配。如果参考层图片对应于增强层图片的分区(图19b),则已伸缩参考层偏移指示在增强层图片的区域内的上采样之后的参考层图片的角落。可以使用已伸缩参考层偏移来确定上采样之后的参考层图片的哪些样本与增强层图片的某些样本搭配。还能够混合各种类型的已扩展空间可伸缩性,即水平地应用一个类型并且竖直地应用另一类型。已伸缩参考层偏移可以由编码器来表示和/或由解码器从例如诸如SPS和/或VPS的序列级别语法结构来解码。已伸缩参考偏移的准确性可以例如在编码标准中预先定义和/或由编码器来规定和/或由解码器从比特流中来解码。例如,可以使用增强层中的亮度样本大小的第1/16的准确性。如果两个层之间没有发生层间预测,则可以在编码、解码和/或显示过程中指示、解码和/或使用已伸缩参考层偏移。

一些编码标准允许产生可伸缩比特流。可以通过仅解码可伸缩比特流的某些部分来产生有意义的已解码表示。可以使用可伸缩比特流可以被例如用于流送服务器中的预先编码的单播流的速率适配以及用于将单比特流传输给具有不同能力和/或具有不同网络条件的终端。可伸缩视频编码的一些其他使用案例的列表可以在泰国芭堤雅的2003年3月10日到14日的第64次MPEG会议的ISO/IEC JTC1 SC29WG11(MPEG)输出文档N5540“针对可伸缩视频编码的应用和要求(Applications and Requirements for Scalable Video Coding)”中找到。

编码标准可以包括子比特流提取过程,并且例如在SVC、MVC和HEVC中规定。子比特流提取过程涉及通常通过去除NAL单元将比特流变换成子比特流,子比特流也可以称为比特流子集。子比特流仍然保持符合标准。例如,在HEVC中,通过排除所有TemporalId值大于所选择的值的VCL NAL单元并且包括所有其他VCL NAL单元而产生的比特流保持符合。在HEVC中,子比特流提取过程采用TemporalId和/或nuh_layer_id值的列表作为输入并且通过从比特流中去除所有TemporalId大于输入的TemporalId值或者nuh_layer_id值不在nuh_layer_id值的输入列表的值中的NAL单元来导出子比特流(也称为比特流子集)。

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

在HEVC中,操作点定义为利用另一比特流、目标最高TemporalId和目标层标识符列表作为输入通过子比特流提取过程的操作从该另一比特流产生的比特流。

HEVC的VPS规定层集合以及用于这些层集合的HRD参数。可以使用层集合作为子比特流提取过程中的目标层标识符列表。

在SHVC和MV-HEVC中,操作点定义可以包括目标输出层集合的考虑。在SHVC和MV-HEVC中,操作点可以定义为利用另一比特流、目标最高TemporalId和目标层标识符列表作为输入通过子比特流提取过程的操作从该另一比特流产生的并且与目标输出层的集合相关联的比特流。

输出层集合可以定义为包括规定的层集合中的一个集合中的层的层的集合,其中层集合中的一个或多个层被指示为输出层。输出层可以定义为在解码器和/或HRD使用输出层集合作为目标输出层集合来操作时输出的输出层集合中的层。在MV-HEVC/SHVC中,变量TargetOptLayerSetIdx可以通过将TargetOptLayerSetIdx设置为等于作为目标输出层集合的输出层集合的索引来规定哪个输出层集合是目标输出层集合。TargetOptLayerSetIdx可以例如由HRD来设置和/或可以通过外部装置来设置,例如由播放器等通过由解码器提供的接口来设置。在MV-HEVC/SHVC中,目标输出层可以定义为不应当被输出并且是具有如下索引olsIdx的输出层集合中的输出层之一的层:该索引olsIdx使得TargetOptLayerSetIdx等于olsIdx。

MV-HEVC/SHVC使得能够使用具体的机制或者通过明确地表示输出层来导出在VPS中规定的每个层集合的“默认”输出层集合。规定了两个具体的机制:可以在VPS中规定每个层是输出层或者仅最高层是“默认”输出层集合中的输出层。可以在使用所提及的具体机制确定层是否为输出层时将辅助图片层从考虑中排除在外。另外,对于“默认”输出层集合,VPS扩展使得能够规定具有被指示为输出层的所选择的层的另外的输出层集合。

在MV-HEVC/SHVC中,针对每个输出层集合关联profile_tier_level()语法结构。为了更加准确,在VPS扩展中提供profile_tier_level()语法结构的列表,并且针对每个输出层集合给出到列表内的适当的profile_tier_level()的索引。换言之,针对每个输出层集合指出简档、层叠(tier)和级别值的组合。

虽然输出层的恒定集合很好地适合其中最高层在每个访问单元中保持不变的使用情况和比特流,然而它们可能不支持其中最高层从一个访问单元到另一访问单元发生变化的使用情况。因此,提出了编码器可以规定比特流内的替代输出层的使用并且响应于替代输出层的规定的使用,解码器在相同的访问单元中不存在输出层中的图片的情况下输出来自替代输出层的已解码图片。存在关于如何指示替代输出层的若干可能性。例如,输出层集合中的每个输出层可以与多个替代输出层相关联,并且逐输出层(out-put-layer)语法元素可以用于规定每个输出层的替代输出层。替代地,替代输出层集合机制可以被约束为仅用于仅包含一个输出层的输出层集合,并且逐输出层集合语法元素可以用于规定输出层集合中的输出层的替代输出层。替代地,替代输出层集合机制可以被约束为仅用于其中所有规定的输出层集合仅包含一个输出层的比特流或CVS,并且替代输出层可以用逐比特流(bitstream-wise)或逐CVS(CVS-wise)语法元素来表示。替代输出层例如可以通过以下方式来规定:例如在VPS内列出替代输出层(例如使用其层标识符或者直接或间接参考层的列表的索引),表示最小替代输出层(例如使用其层标识符或者直接或间接参考层的列表内的其索引),或者规定任何直接或间接参考层是替代输出层的标记。当启用多于一个替代输出层用于使用时,可以规定输出按照下降的层标识符顺序直到所指示的最小替代输出层的存在于访问单元中的第一直接或间接层间参考图片。

在MVC中,操作点可以被定义如下:操作点用表示目标时间水平的temporal_id值以及表示目标输出视图的view_id值的集合来标识。一个操作点与如下比特流子集相关联:该比特流子集包括目标输出视图以及目标输出视图所依赖的所有其他视图,该比特流子集使用子比特流提取过程来导出,其中使用等于temporal_id值的tIdTarget以及包括view_id值的集合的viewIdTargetList作为输入。多于一个操作点可以与相同的比特流子集相关联。当“操作点被解码”时,可以解码对应于操作点的比特流子集并且随后可以输出目标输出视图。

如早先指出的,MVC是H.264/AVC的扩展。H.264/AVC的很多定义、概念、语法结构、语义和解码过程同样地或者在某些一般化或约束的情况下也适用于MVC。下面描述MVC的一些定义、概念、语法结构、语义和解码过程。

MVC中的访问单元定义为按照解码顺序连续的并且恰好包含一个包括一个或多个视图分量的初级编码图片的NAL单元的集合。除了初级编码图片,访问单元还可以包含一个或多个冗余编码图片、一个辅助编码图片、或者不包含已编码图片的切片或切片数据部分的其他NAL单元。可能影响解码的在解码错误、比特流错误或其他错误不发生时,访问单元的解码产生包括一个或多个已解码视图分量的一个已解码图片。换言之,MVC中的访问单元包含针对一个输出时刻的视图的视图分量。

视图分量可以称为单个访问单元中的视图的已编码表示。

视图间预测可以用在MVC中并且可以指代根据相同的访问单元的不同视图分量的已解码样本来预测视图分量。在MVC中,类似于帧间预测来实现视图间预测。例如,视图间参考图片被放置在与用于帧间预测的参考图片相同的参考图片列表中,并且参考索引以及运动矢量针对视图间和帧间参考图片被类似地编码或推断。

锚定图片是其中所有切片可以仅参考相同的访问单元内的切片的已编码图片,即可以使用视图间预测,但是没有使用帧间预测,并且按照输出顺序的所有随后的已编码图片没有使用来自按照解码顺序先于已编码图片的任何图片的帧间预测。可以使用视图间预测用于作为非基本视图的部分的IDR视图分量。MVC中的基本视图是已编码视频序列中具有最小视图顺序索引值的视图。基本视图可以独立于其他视图来被解码,并且没有使用视图间预测。基本视图可以由仅支持单视图简档、诸如H.264/AVC的基线简档或高简档的H.264/AVC解码器来解码。

在MVC标准中,MVC解码过程的很多子过程通过分别使用“视图分量”、“帧视图分量”和“字段视图分量”代替H.264/AVC标准的子过程规范中的术语“图片”、“帧”和“字段”来使用H.264/AVC标准的相应子过程。同样,下面通常使用术语“图片”、“帧”和“字段”来分别表示“视图分量”、“帧视图分量”和“字段视图分量”。

在多视图视频编码的上下文中,视图顺序索引可以定义为指示访问单元中的视图分量的解码或比特流顺序的索引。在MVC中,视图间依赖性关系在被包括在序列参数集合中的序列参数集合MVC扩展中表示。根据MVC标准,要求被已编码视频序列参考的所有序列参数集合MVC扩展是相同的。

纹理视图指代表示普通视图内容、例如使用普通相机捕获并且通常适合用于在显示器上渲染的视图。纹理视图通常包括具有三个分量——一个亮度分量和两个色度分量的图片。下面,纹理图片通常包括所有其分量图片或颜色分量,除非例如使用术语亮度纹理图片和色度纹理图片另外表示。

深度视图是指表示纹理样本到相机传感器的距离信息、纹理样本与另一视图中的相应纹理样本之间的差异(disparity)或视差信息、或类似信息的视图。深度视图可以包括具有一个分量的深度图片(又称深度图(map)),该分量类似于纹理视图的亮度分量。深度图是具有针对每像素的深度信息等的图像。例如,深度图中的每个样本表示相应纹理样本到相机所位于的平面的距离。换言之,如果z轴沿着相机的拍摄轴(并且因此正交于相机所位于的平面),则深度图中的样本表示z轴上的值。深度图值的语义例如可以包括以下各项:

1.已编码深度视图分量中的每个亮度样本值表示在亮度样本的动态范围内被归一化的真实世界距离(Z)值的倒数,即1/Z,亮度样本的动态范围诸如针对8比特亮度表示的包括性的0到255的范围。归一化可以按照如下方式来进行:其中量化1/Z在差异方面是均匀的。

2.已编码深度视图分量中的每个亮度样本值表示使用诸如逐片线性映射的映射函数f(1/Z)或表格被映射到亮度样本的动态范围的真实世界距离(Z)值的倒数,即1/Z,亮度样本的动态范围诸如到8比特亮度表示的包括性的0到255的范围。换言之,深度图值导致应用函数f(1/Z)。

3.已编码深度视图分量中的每个亮度样本值表示在亮度样本的动态范围内归一化的真实世界距离(Z)值,亮度样本的动态范围诸如到8比特亮度表示的包括性的0到255的范围。

4.已编码深度视图分量中的每个亮度样本值表示从当前深度视图到另一所表示的或导出的深度视图或视图位置的差异或视差值。

深度图值的语义可以在比特流中指示,例如在视频参数集合语法结构、序列参数集合语法结构、视频可用性信息语法结构、图片参数集合语法结构、相机/深度/适配参数集合语法结构、补充增强信息消息等内。

深度增强视图指代具有与具有一个或多个深度视图的深度视频相关联的一个或多个视图的纹理视频。可以使用大量方法来表示深度增强视频,包括使用视频加深度(V+D)、多视图视频加深度(MVD)、以及分层深度视频(LDV)。在视频加深度(V+D)表示中,单个纹理视图和相应的深度视图分别表示为纹理图片和深度图片的序列。MVD表示包含大量纹理视图和相应的深度视图。在LDV表示中,中央纹理和深度视图用传统方法来表示,而其他纹理和深度视图部分被表示并且仅覆盖中间视图的正确视图合成所需要的解遮挡(dis-occluded)的区域。

纹理视图分量可以定义为单个访问单元中的视图的纹理的已编码表示。深度增强视图比特流中的纹理视图分量可以用如下方式来编码:该方式兼容单视图纹理比特流或多视图纹理比特流,使得单视图或多视图解码器即使在没有能力解码深度视图的情况下仍然能够解码纹理视图。例如,H.264/AVC解码器可以从深度增强H.264/AVC比特流中解码单个纹理视图。纹理视图分量可以替代地用以下方式来编码:该方式使得能够实现单视图或多视图纹理解码的诸如H.264/AVC或MVC解码器的解码器不能够解码纹理视图分量,因为其使用基于深度的编码工具。深度视图分量可以定义为单个访问单元中的视图的深度的已编码表示。视图分量对可以定义为相同的访问单元内的相同的视图的纹理视图分配和深度视图分量。

深度增强视频可以用如下方式来编码:其中纹理和深度彼此独立编码。例如,纹理视图可以被编码为一个MVC比特流并且深度视图可以被编码为另一MVC比特流。深度增强视频也可以用如下方式来编码:其中纹理和深度联合编码。在一种形式的纹理和深度视图的联合编码中,根据在深度图片的解码过程中获取的深度图片或数据元素的一些已解码样本来预测或导出纹理图片的一些已解码样本或者用于纹理图片的解码的数据元素。替代地或者另外地,从在纹理图片的解码过程中获取的纹理图片或数据元素的一些已解码样本来预测或导出深度图片的一些已解码样本或者用于深度图片的解码的数据元素。在另一选项中,根据彼此来预测纹理的已编码视频数据和深度的已编码视频数据,或者其中一个没有基于另一个来编码/解码,但是可以在编码中将已编码纹理和深度视图复用到相同的比特流中并且在解码中从比特流中对其解复用。在又一选项中,虽然没有根据例如在切片层以下的深度的已编码视频数据来预测纹理的已编码视频数据,然而,纹理视图和深度视图的高级别编码结构中的一些视图可以被共享或者根据彼此来预测。例如,已编码深度切片的切片首部可以根据已编码纹理切片的切片首部来预测。另外,一些参数集合可以由已编码纹理视图和已编码深度视图两者来使用。

可以用两个基本的方式来实现可伸缩性。通过引入用于根据可伸缩表示的较低层执行像素值或语法的预测的新的编码模式,或者通过向较高层的参考图片缓冲器(例如已解码图片缓冲器DPB)放置较低层图片。第一方法可以更灵活并且因此在多数情况下可以提供更好的编码效率。然而,第二基于参考帧的可伸缩性方法可以在如下情况下来高效地实现:对单个层编解码器的变化最小同时仍然实现大部分可用的编码效率增益。基本上,仅关心外部装置的DPB管理,基于参考帧的可伸缩性编解码器可以通过使用相同的硬件或软件实现用于所有的层来实现。

用于质量可伸缩性(也称为信噪比或SNR)和/或空间可伸缩性的可伸缩视频编解码器可以如下来实现。对于基本层,可以使用传统的非可伸缩视频编码器和解码器。基本层的已重构/已解码图片被包括在参考图片缓冲器和/或参考图片列表中用于增强层。在空间可伸缩性的情况下,可以先于其到用于增强层图片的参考图片列表中的插入来对已重构/已解码基本层图片上采样。可以将基本层已解码图片插入到参考图片列表中用于增强层图片的编码/解码,类似于增强层的已解码参考图片。因此,编码器可以选择基本层参考图片作为帧间预测参考并且使用已编码比特流中的参考图片索引来指示其使用。解码器从比特流中、例如从参考图片索引中解码出基本层图片用作增强层的帧间预测参考。当已解码基本层图片用作增强层的预测参考时,它被称为层间参考图片。

虽然先前的段落描述了具有两个可伸缩层(具有增强层和基本层)的可伸缩视频编解码器,然而需要理解的是,描述可以一般化到具有多于两个层的可伸缩层级中的任何两个层。在这种情况下,第二增强层在编码和/或解码过程中可以依赖于第一增强层,并且第一增强层因此可以被视为用于第二增强层的编码和/或解码的基本层。另外,需要理解,增强层的参考图片缓冲器或参考图片列表中可以来自多于一个层的有层间参考图片,并且这些层间参考图片中的每个层间参考图片可以被认为驻留在被编码和/或解码的增强层的基本层或参考层中。

可伸缩视频编码和/或解码方案可以使用多回路编码和/或解码,其可以如下来表征。在编码/解码中,可以重构/解码基本层图片以用作相同的层内按照编码/解码顺序的随后图片的运动补偿参考图片或者用作层间或(视图间或分量间)预测的参考。已重构/已解码基本层图片可以存储在DPB中。同样,可以重构/解码增强层图片以将其用作相同的层内按照编码/解码顺序的随后图片的运动补偿参考图片或者用作更高的增强层(如果存在)的层间或(视图间或分量间)预测的参考。除了已重构/已解码样本值,可以在层间/分量间/视图间预测中使用基本/参考层的语法元素值或者根据基本/参考层的语法元素值导出的变量。

在一些情况下,将增强层中的数据在某个位置之后或者甚至在任意位置处被截取,其中每个截取位置可以包括表示不断增强的视觉质量的附加数据。这样的可伸缩性被称为细颗粒(粒度)可伸缩性(FGS)。

SVC使用层间预测机制,其中可以从除了当前重构层或下一较低层之外的其他层来预测某些信息。可以被层间预测的信息包括帧内纹理、运动和残余数据。层间运动预测包括块编码模式、首部信息、块分割等的预测,其中可以使用来自较低层的运动用于较高层的预测。在帧内编码的情况下,来自周围宏块或来自较低层的共同定位的宏块的预测是可能的。这些预测技术不采用来自较早编码的访问单元的信息并且因此被称为帧内预测技术。另外,也可以采用来自较低层的残余数据用于当前层的预测。

可以使用被称为单回路解码的概念来实现可伸缩视频编码(解码),其中仅针对被解码的最高层来重构已解码参考图片,而在较低层的图片可以不被完全解码或者在使用它们用于层间预测之后可以丢弃较低层的图片。在单回路解码中,解码器仅针对期望用于回放的可伸缩层(称为“期望层”或“目标层”)来执行运动补偿和完全图片重构,从而在与多回路解码相比时减小解码复杂度。除了期望层之外的所有其他层都不需要被完全解码,因为已编码图片数据的全部或部分不需要用于期望层的重构。然而,较低层(与目标层相比)可以用于层间语法或参数预测,诸如层间运动预测。另外地或者替代地,较低层可以用于层间帧内预测并且因此较低层的帧内编码块可能必须被解码。另外地或者替代地,可以应用层间残差预测,其中较低层的残差信息可以用于目标层的解码,并且残差信息可能必须被解码或重构。在一些编码布置中,多数图片的解码需要单个解码回路,而可以选择性地应用第二解码回路以重构所谓的基本表示(即已解码基本层图片),其可能需要作为预测参考而不是用于输出或显示。

SVC允许使用单回路解码。其通过使用受约束帧内纹理预测模式来实现,从而可以向其基本层的对应块位于帧内MB内部的宏块(MB)应用层间帧内纹理预测。同时,基本层中的这些帧内MB使用受约束帧内预测(例如具有等于1的语法元素“constrained_intra_pred_flag”)。在单回路解码中,解码器仅针对期望用于回放的可伸缩层(称为“期望层”或“目标层”)来执行运动补偿和全图片重构,从而极大地减小了解码复杂性。除了期望层之外的所有其他层都不需要被完全解码,因为没有用于层间预测的MB的数据的全部或部分(不管其是层间帧内纹理预测、层间运动预测还是层间残差预测)不被需要用于期望层的重构。

单个解码回路需要用于多数图片的解码,而第二解码回路选择性地应用以重构基本表示,基本表示需要作为预测参考但是不被用于输出或显示,并且仅针对所谓的关键图片(其“store_ref_base_pic_flag”等于1)被重构。

FGS被包括在SVC标准的一些草拟版本中,但是其最后从最终SVC标准中被排除。FGS随后在SVC标准的一些草拟版本的上下文中来讨论。由不能被截取的这些增强层提供的可伸缩性被称为粗颗粒(粒度)可伸缩性(CGS)。其共同地包括传统质量(SNR)可伸缩性和空间可伸缩性。SVC标准支持所谓的中颗粒可伸缩性(MGS),其中质量增强图片被同时编码到SNR可伸缩层图片但是通过具有大于0的quanlity_id语法元素用类似于FGS层图片的高级别语法元素来表示。

SVC中的可伸缩性结构可以用三个语法元素来表征:“temporal_id”、“dependency_id”和“quanlity_id”。语法元素“temporal_id”用于指示时间可伸缩层级或间接表示帧速率。与包括具有较大最大“temporal_id”的图片的可伸缩层表示相比,包括具有较小最大“temporal_id”值的图片的可伸缩层表示具有较小的帧速率。给定时间层通常依赖于较低时间层(即具有较小“temporal_id”值的时间层),但不依赖于任何较高时间层。语法元素“dependency_id”用于指示CGS层间编码依赖性层级(其如早先提及的包括SNR和空间可伸缩性二者)。在任何时间级别位置,可以使用具有较小“dependency_id”值的图片用于具有较大“dependency_id”值的图片的编码的层间预测。语法元素“quanlity_id”用于指示FGS或MGS层的质量级别层级。在任何时间位置,并且在相同的“dependency_id”值的情况下,“quanlity_id”值等于QL的图片使用“quanlity_id”等于QL-1的图片用于层间预测。“quanlity_id”大于0的已编码切片可以被编码作为可截取FGS切片或者非可截取MGS切片。

为了简化,一个访问单元中具有相同的“dependency_id”值的所有数据单元(例如SVC上下文中的网络抽象层单元或NAL单元)被称为依赖性单元或者依赖性表示。在一个依赖性单元内,具有相同“quanlity_id”值的所有数据单元被称为质量单元或层表示。

基本表示(其也称为已解码基本图片)是由于对“quanlity_id”等于0并且“store_ref_base_pic_flag”被设置为等于1的依赖性单元的视频编码层(VCL)NAL单元解码而产生的已解码图片。增强表示(其也称为已解码图片)是由于规则解码过程,其中针对最高依赖性表示存在的所有的层表示被解码。

如早先提及的,CGS包括空间可伸缩性和SNR可伸缩性。空间可伸缩性初始被设计用于支持具有不同分辨率的视频的表示。对于每个时刻,VCL NAL单元在相同的访问单元中被编码并且这些VCL NAL单元可以对应于不同的分辨率。在解码期间,低分辨率VCL NAL单元提供运动场和残差,该运动场和残差可以通过高分辨率图片的最终解码和重构来被可选地继承。在与更旧的视频压缩标准相比时,SVC的空间可伸缩性已经被一般化以使得基本层能够成为增强层的修剪和伸缩版本。

MGS质量层用类似于FGS质量层的“quanlity_id”来指示。对于每个依赖性单元(具有相同的“dependency_id”),存在“quanlity_id”等于0的层并且可以存在“quanlity_id”大于0的其他层。“quanlity_id”大于0的这些层是MGS层或FGS层,这依赖于切片是否被编码作为可截取切片。

在基本形式的FGS增强层中,仅使用层间预测。因此,可以自由地截取FGS增强层而没有在已解码序列中引起任何误差传播。然而,基本形式的FGS遭受低的压缩效率。这一问题的出现是由于仅使用低质量图片用于帧间预测参考。因此提出,使用FGS增强的图片作为帧间预测参考。然而,这在丢弃一些FGS数据时可能引起编码解码失配(也被称为漂移)。

草拟SVC标准的一个特征在于,FGS NAL单元可以被自由地丢弃或者截取,并且SVC标准的特征在于,NGS NAL单元可以被自由地丢弃(但是不能被截取)而不影响比特流的一致性。如上文讨论的,当在编码期间使用这些FGS或MGS数据用于帧间预测参考时,数据的丢弃或截取会导致解码器侧和编码器侧的已解码图片之间的失配。该失配也被称为漂移。

为了控制由于FGS或MGS数据的丢弃或截取而产生的漂移,SVC应用以下解决方案:在某个依赖性单元中,将基本表示(通过仅解码“quanlity_id”等于0的CGS图片以及所有的依赖于较低层的数据)存储在已解码图片缓冲器中。在使用相同的“dependency_id”值对随后的依赖性单元编码时,包括FGS或MGS NAL单元的所有的NAL单元使用基本表示用于帧间预测参考。因此,由于较早的访问单元中的FGS或MGS NAL单元的丢弃或截取而产生的所有漂移在这一访问单元中被停止。对于具有相同“dependency_id”值的其他依赖性单元,所有的NAL单元使用已解码图片用于帧间预测参考,以实现高的编码效率。

每个NAL单元在NAL单元首部中包括语法元素“use_ref_base_pic_flag”。当这一元素的值等于1时,NAL单元的解码在帧间预测过程期间使用参考图片的基本表示。语法元素“store_ref_base_pic_flag”规定是(在等于1时)否(在等于0时)存储当前图片的基本表示用于未来的图片以用于帧间预测。

“quality_id”大于0的NAL单元不包含与参考图片列表构造和加权预测有关的语法元素,计不存在语法元素“num_ref_active_lx_minus1”(x=0或1)、参考图片列表重新排序语法表格、以及加权预测语法表格。因此,MGS或FGS层必须根据需要从相同的依赖性单元的“quality_id”等于0的NAL单元继承这些语法元素

在SVC中,参考图片列表包括基本表示(当“use_ref_base_pic_flag”等于1时)或者仅未被标记为“基本表示”的已解码图片(当“use_ref_base_pic_flag”等于0时),但是不同时包括这二者。

另一种类的可伸缩编码基于使用相同还是不同的编码标准或技术被用作基本层和增强层的基础。术语混合编解码器可伸缩性或标准可伸缩性可以用于指示如下场景:其中使用一个编码标准或系统用于一些层,而使用另一编码标准或系统用于一些其他层。例如,基本层可以是AVC编码的,而一个或多个增强层可以使用诸如SHVC或MV-HEVC的HEVC扩展来编码。

工作继续进行以规定HEVC标准的可伸缩和多视图扩展。HEVC的多视图扩展(称为MV-HEVC)类似于H.264/AVC的MVC扩展。类似于MVC,在MV-HEVC中,可以在被编码或解码的当前图片的参考图片列表中包括视图间参考图片。被称为SHVC的HEVC的可伸缩扩展计划被规定为使得其使用多回路解码操作(不同于H.264/AVC的SVC扩展)。SHVC基于参考索引,即可以在被编码或解码的当前图片的一个或多个参考图片列表中包括层间参考图片(如上文描述的)。

能够使用很多相同的语法结构、语义和解码过程用于MV-HEVC和SHVC。也可以使用与在MV-HEVC和SHVC中相同或类似的语法结构、语义和解码过程来实现诸如深度增强视频的其他类型的可伸缩性。

对于增强层编码,可以在SHVC、MV-HEVC等中使用HEVC的相同的概念和编码工具。然而,可以向SHVC、MV-HEVC等编解码器集成另外的层间预测工具,其采用参考层中的已经编码的数据(包括已重构图片样本和运动参数,又称运动信息)用于高效地编码增强层。

在MV-HEVC、SHVC等中,VPS可以包括例如将从NAL单元首部导出的LayerId值映射到一个或多个可伸缩性尺寸值,例如对应于类似于SVC和MVC定义的层的dependency_id、quality_id、view_id和depth_flag。

在MV-HEVC/SHVC中,可以在VPS中表明层标识符值大于0的层没有直接参考层,即该层未从任何其他层被层间预测。换言之,MV-HEVC/SHVC比特流可以包含彼此独立的层,这些层可以称为联播(simulcast)层。

可以使用以下语法来规定VPS的部分,VPS的部分规定能够存在于比特流中的可伸缩性尺寸、nuh_layer_id值到可伸缩性尺寸值的映射、以及层之间的依赖性:

VPS的上文所示出的部分的语义可以如在以下段落中描述地规定。

splitting_flag等于1指示dimension_id[i][j]语法元素不存在;并且dimension_id_len_minus1[j]的值的将NAL单元首部中的nuh_layer_id值的二进制表示拆分成NumScalabilityTypes分段,NumScalabilityTypes分段具有以比特为单位的长度;并且dimension_id[LayerIdxInVps[nuh_layer_id]][j]的值从NumScalabilityTypes分段来推断。splitting_flag等于0指示语法元素dimension_id[i][j]存在。在以下示例语义中,在不失一般性的情况下,假定splitting_flag等于0。

scalability_mask_flag[i]等于1指示存在对应于以下表格中的第i可伸缩性尺寸的dimension_id语法元素。scalability_mask_flag[i]等于0表示不存在对应于第i可伸缩性尺寸的dimension_id语法元素。

在HEVC的未来的3D扩展中,可以使用可伸缩性掩码索引0来指示深度图。

dimension_id_len_minus1[j]加上1规定dimension_id[i][j]语法元素的以比特为单位的长度。

vps_nuh_layer_id_present_flag等于1规定存在i包括性的从0到MaxLayersMinus1(其等于在VPS中规定的最大层数减去1)的layer_id_in_nuh[i]。vps_nuh_layer_id_present_flag等于0规定不存在i包括性的从0到MaxLayersMinus1的layer_id_in_nuh[i]。

layer_id_in_nuh[i]规定第i层的VCL NAL单元中的nuh_layer_id语法元素的值。对于在包括性的0到MaxLayersMinus1的范围内的i,当不存在layer_id_in_nuh[i]时,推断该值等于i。当i大于0时,layer_id_in_nuh[i]大于layer_id_in_nuh[i-1]。对于i包括性的从0到MaxLayersMinus1,变量LayerIdxInVps[layer_id_in_nuh[i]]被设置为等于i。

dimension_id[i][j]规定第i层的第j存在的可伸缩性尺寸类型的标识符。用于dimension_id[i][j]的表示的比特数是dimension_id_len_minus[j]+1个比特。当splitting_flag等于0时,对于j包括性的从0到NumScalabilityTypes-1,推断dimension_id[0][j]等于0。

变量ScalabilityId[i][smIdx]规定第i层的第smIdx可伸缩性尺寸类型的标识符,变量ViewOrderIdx[layer_id_in_nuh[i]]规定第i层的视图顺序索引,DependencyId[layer_id_in_nuh[i]]规定第i层的空间/质量可伸缩性标识符,变量ViewScalExtLayerFlag[layer_id_in_nuh[i]]规定第i层是否为视图可伸缩性扩展层,以上变量如下来导出:

增强层或者层标识符值大于0的层可以被指示为包含补充基本层或其他层的辅助视频。例如,在MV-HEVC的当前草案中,可以在比特流中使用辅助图片层来对辅助图片编码。辅助图片层与其自己的可伸缩性尺寸值AuxId(类似于例如视图顺序索引)相关联。AuxId大于0的层包含辅助图片。层仅携带一种类型的辅助图片,并且层中包括的类型的辅助图片可以用其AuxId值来指示。换言之,可以将AuxId值映射到辅助图片的类型。例如,AuxId等于1可以指示阿尔法平面,AuxId等于2可以指示深度图片。辅助图片可以定义为对初级图片的解码过程没有规范作用的图片。换言之,可以将初级图片(AuxId等于0)约束为不根据辅助图片来预测。辅助图片可以根据初级图片来预测,然而可以存在不允许这样的预测的约束,例如基于AuxId值。SEI消息可以用于传达辅助图片层的更详细的特性,诸如用深度辅助层表示的深度范围。MV-HEVC的当前草案包括深度辅助层的支持。

可以使用不同类型的辅助图片,包括但不限于以下各项:深度图片;阿尔法图片;交叠图片和标签图片。在深度图片中,样本值表示深度图片的视点(或相机位置)或深度或距离之间的差异。在阿尔法图片(又称阿尔法平面和阿尔法遮片(matte)图片)中,样本值表示透明或不透明。阿尔法图片可以针对每个像素指示透明程度或者等同地表示不透明程度。阿尔法图片可以是单色图片,或者阿尔法图片的色度分量可以被设置为指示没有色度(例如当色度样本值被认为有符号时为0,或者当色度样本值为8比特或者被认为无符号时为128)。交叠图片在显示时可以被叠置在初级图片上。交叠图片可以包含若干分区和背景,其中分区中的全部或子集可以在显示时交叠并且背景未被交叠。标签图片包含不同交叠分区的不同标签,其可以用于标识单个交叠分区。

继续,可以规定所提出的VPS的语义如何选录:view_id_len规定view_id_val[i]语法元素的以比特为单位的长度。view_id_val[i]规定由VPS规定的第i视图的视图标识符。view_id_val[i]语法元素的长度是view_id_len个比特。如果不存在,则推断view_id_val[i]的值等于0。对于nuh_layer_id等于nuhLayerId的每个层,ViewId[nuhLayerId]的值被设置为等于view_id_val[ViewOrderIdx[nuhLayerId]]。direct_dependency_flag[i][j]等于0规定索引为j的层不是索引为i的层的直接参考层。direct_dependency_flag[i][j]等于1规定索引为j的层可以是索引为i的层的直接参考层。当direct_dependency_flag[i][j]对于在0到MaxLayersMinus1的范围内的i和j不存在时,推断其等于0。

变量NumDirectRefLayers[iNuhLId]可以定义为基于层依赖性信息的nuh_layer_id等于iNuhLId的层的直接参考层的数目。变量RefLayerId[iNuhLId][j]可以定义为nuh_layer_id等于iNuhLId的层的直接参考层的nuh_layer_id值的列表,其中j在包括性的0到NumDirectRefLayers[iNuhLId]-1的范围内,并且列表中的每个条目j对应于一个直接参考层。变量NumDirectRefLayers[iNuhLId]和RefLayerId[iNuhLId][j]可以如下规定,其中MaxLayersMinus1等于在VPS中规定的最大层数减去1:

VPS还可以包括关于时间子层的信息。对层间预测的基于TemporalId的约束以及对层间预测的其他约束例如使用以下语法:

VPS语法的以上选录的语义可以如以下段落中描述地规定。

vps_sub_layers_max_minus1_present_flag等于1规定语法元素sub_layers_vps_max_minus1[i]存在。vps_sub_layers_max_minus1_present_flag等于0规定语法元素sub_layers_vps_max_minus1[i]不存在。

sub_layers_vps_max_minus1[i]加上1规定针对nuh_layer_id等于layer_id_in_nuh[i]的层的可以存在于CVS中的时间子层的最大数目。如果不存在,则推断sub_layers_vps_max_minus1[i]等于vps_max_sub_layers_minus1(其在VPS语法中较早存在)。

max_tid_ref_present_flag等于1规定语法元素max_tid_il_ref_pics_plus1[i][j]存在。max_tid_ref_present_flag等于0规定语法元素max_tid_il_ref_pics_plus1[i][j]不存在。

max_tid_il_ref_pics_plus1[i][j]等于0规定在CVS内,nuh_layer_id等于layer_id_in_nuh[i]的非IRAP图片未被用作针对nuh_layer_id等于layer_id_in_nuh[j]的图片的层间预测的参考。max_tid_il_ref_pics_plus1[i][j]大于0规定在CVS内,nuh_layer_id等于layer_id_in_nuh[i]并且TemporalId大于max_tid_il_ref_pics_plus1[i][j]-1的图片未被用作针对nuh_layer_id等于layer_id_in_nuh[j]的图片的层间预测的参考。如果不存在,则推断max_tid_il_ref_pics_plus1[i][j]等于7。

all_ref_layers_active_flag等于1规定对于涉及VPS的每个图片,属于包含该图片的层的所有直接参考层并且可以用于由sub_layers_vps_max_minus1[i]和max_tid_il_ref_pics_plus[i][j]的值规定的层间预测的参考层图片与该图片存在于相同的访问单元中并且被包括在该图片的层间参考图片集合中。all_ref_layers_active_flag等于0规定上文的限制可以或者可以不应用。

max_oen_active_ref_layer_flag等于1规定最多一个图片被用于CVS中的每个图片的层间预测。max_oen_active_ref_layer_flag等于0规定多于一个图片可以被用于CVS中的每个图片的层间预测。

层树可以定义为层的集合,从而使得层的集合中的每个层是层的集合中的至少一个其他层的直接或间接预测层或者直接或间接参考层并且在层的集合外部的任何层都不是层的集合中的任何层的直接或间接预测层或者直接或间接参考层。直接预测层可以定义为另一层是针对该直接预测层的直接参考层的层。直接参考层可以定义为可以用于另一层的层间预测的层,该层是上述另一层的直接参考层。间接预测层可以定义为另一层是其间接参考层的层。间接参考层可以定义为不是第二层的直接参考层但是是第三层的直接参考层的层,其中第三层是第二层的直接参考层或间接参考层,上述层是第二层的间接参考层。

替代地,层树可以定义为如下层的集合:其中每个层与层树中的至少一个其他层具有层间预测关系并且层树外部没有任何层与层树中的任何层具有层间预测关系。

在SHVC、MV-HEVC等中,块级别语法和解码过程不变以支持层间纹理预测。仅修改高级别语法(通常涉及包括切片首部、PPS、SPS和VPS的语法结构)(与HEVC的相比),从而使得可以使用来自相同参考单元的参考层的已重构图片(根据需要被上采样)作为用于对当前增强层图片编码的参考图片。层间参考图片以及时间参考图片被包括在参考图片列表中。信号传输的参考图片索引用于表示是否根据时间参考图片或层间参考图片来预测当前预测单元(PU)。这一特征的使用可以由编码器来控制并且在比特流中被指示,例如在视频参数集合、序列参数集合、图片参数和/或切片首部中被指示。指示可以特定于增强层、参考层、增强层和参考层的对、具体的TemporalId值、具体的图片类型(例如RAP图片)、具体的切片类型(例如P和B切片而非I切片)、具有具体的POC值的图片、和/或具体的访问单元。可以表示指示的范围和/或持续性连同指示本身,和/或可以推断指示的范围和/或持续性。

SHVC、MV-HEVC等中的参考列表可以使用如下具体的过程来初始化:其中如果层间参考图片存在,层间参考图片可以被包括在初始参考图片列表中。例如,可以首先按照与HEVC中的参考列表构造相同的方式向参考列表(L0,L1)中添加时间参考。之后,可以在时间参考后面添加层间参考。例如可以根据在VPS扩展中提供的层依赖性信息来推断层间参考图片。如果当前增强层切片为P切片,则可以将层间参考图片添加到初始参考图片列表L0;如果当前增强层切片为B切片,则可以将层间参考图片添加到初始参考图片列表L0和L1两者。可以将层间参考图片按照具体的顺序添加到参考图片列表,该具体的顺序可以但不一定对于两个参考图片列表而言相同。例如,与初始参考图片列表0的相比,可以使用相反的顺序来向初始参考图片列表1中添加层间参考图片。例如,可以按照nuh_layer_id的升序来向初始参考图片列表0中插入层间参考图片,而可以使用相反的顺序来初始化初始参考图片列表1。

下面提供构造参考图片列表的第二示例。例如可以根据可以被包括在VPS中的层依赖性信息来推断候选层间参考图片。编码器可以在比特流中包括图片级别信息,并且解码器可以从比特流中的图片级别信息解码出哪些候选层间参考图片可以用作层间预测的参考。图片级别信息例如可以驻留在切片首部中并且可以被称为层间参考图片集合。例如,候选层间参考图片可以按照某个顺序来被索引,并且一个或多个索引可以包括在层间参考图片集合中。在另一示例中,每个候选层间参考图片的标志指示其是否可以用作层间参考图片。如上文,如果当前增强层切片是P切片,则可以将层间参考图片添加到初始参考图片列表L0;如果当前增强层切片是B切片,则可以将层间参考图片添加到初始参考图片列表L0和L1两者。可以将层间参考图片按照具体的顺序添加到参考图片列表,该具体的顺序可以但不一定对于两个参考图片列表而言相同。

下面提供构造参考图片列表的第三示例。在第三示例中,如下在切片分段首部语法结构中规定层间参考图片集合:

已经基于层依赖性信息导出变量NumDirectRefLayers[layerId]为nuh_layer_id等于layerId的层的直接参考层的数目。在MV-HEVC、SHVC等的上下文中,可以基于VPS的direct_dependency_flag[i][j]语法元素来导出NumDirectRefLayers[layerId]。

可以如以下段落中描述地来规定切片分段首部语法结构的上文摘录的语义。

inter_layer_pred_enabled_flag等于1规定可以在当前图片的解码中使用层间预测。inter_layer_pred_enabled_flag等于0规定可以在当前图片的解码中未使用层间预测。

num_inter_layer_ref_pics_minus1加上1规定可以在当前图片的解码中用于层间预测的图片的数目。num_inter_layer_ref_pics_minus1语法元素的长度是Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))个比特。num_inter_layer_ref_pics_minus1的值应当在0到NumDirectRefLayers[nuh_layer_id]-1的范围内,包括性的。

变量numRefLayerPics和refLayerPicIdc[j]可以如下来导出:

参考以上第二示例,可以认为列表refLayerPicIdc[j]指示候选层间参考图片。

变量NumActiveRefLayerPics可以如下来导出:

inter_layer_pred_layer_idc[i]规定变量RefPicLayerId[i],变量RefPicLayerId[i]表示可以由当前图片用于层间预测的第i图片的nuh_layer_id。语法元素inter_layer_pred_layer_idc[i]的长度是Ceil(Log2(NumDIrectRefLayers[nuh_layer_id]))个比特。inter_layer_pred_layer_idc[i]的值应当在包括性的0到NumDIrectRefLayers[nuh_layer_id]-1的范围内。如果不存在,推断inter_layer_pred_layer_idc[i]的值等于refLayerPicIdc[i]。

对于在0到NumActiveRefLayerPics-1的范围内(包括性的)的所有i值的变量RefPicLayerId[i]如下来导出:

for(i=0,j=0;i<NumActiveRefLayerPics;i++)

RefPicLayerId[i]=RefLayerId[nuh_layer_id][inter_layer_pred_layer_idc[i]]

参考上文的第二示例,可以认为inter_layer_pred_layer_idc[i]是关于哪些候选层间参考图片可以被用作层间预测的参考的图片级别信息。

可以在初始参考图片列表中包括通过对于在0到NumActiveRefLayerPics-1的范围内(包括性的)的所有i值的变量RefPicLayerId[i]标识的图片。如上文,如果当前增强层切片是P切片,则可以将通过变量RefPicLayerId[i]标识的图片添加到初始参考图片列表L0;如果当前增强层切片是B切片,则可以将通过变量RefPicLayerId[i]标识的图片添加到初始参考图片列表L0和L1两者。可以将通过变量RefPicLayerId[i]标识的图片按照具体的顺序添加到参考图片列表,该具体的顺序可以是但不一定对于两个参考图片列表而言相同。例如,导出的ViewId值可以影响向初始参考图片列表中添加通过变量RefPicLayerId[i]标识的图片顺序。

在编码和/或解码过程中,可以将层间参考图片视为长期参考图片。

可以如下来实现一种类型的层间预测,该类型的层间预测可以被称为层间运动预测。可以使用诸如H.265/HEVC的TMVP的时间运动矢量预测过程来利用不同层之间的运动数据的冗余。这可以如下来进行:当已解码基本层图片被上采样时,将基本层图片的运动数据也映射到增强层的分辨率。如果增强层图片使用来自基本层图片的运动矢量预测,例如通过诸如H.265/HEVC的TMVP的时间运动矢量预测机制,则对应的运动矢量预测符源自于所映射的基本层运动场。这样,可以利用不同层的运动数据之间的关联来改善可伸缩视频编码器的编码效率。

在SHVC等中,可以通过将层间参考图片设置为用于TMVP导出的并列的(collocated)参考图片来执行层间运动预测。可以执行两个层之间的运动场映射过程例如以避免TMVP导出中的块级别解码过程修改。运动场映射特征的使用可以由编码器来控制并且在比特流中被指示,例如在视频参数集合、序列参数集合、图片参数和/或切片首部中表示。指示可以特定于例如增强层、参考层、增强层和参考层的对、具体的TemporalId值、具体的图片类型(例如RAP图片)、具体的切片类型(例如P和B切片而非I切片)、具有具体的POC值的图片、和/或具体的访问单元。指示的范围和/或持续性可以连同指示本身被指示,和/或被推断。

在用于空间可伸缩性的运动场映射过程中,可以基于相应参考层图片的运动场来获得上采样之后的层间参考图片的运动场。上采样之后的层间参考图片的每个块的运动参数(其可以包括例如水平和/或竖直运动矢量值和参考索引)和/或预测模式可以根据参考层图片中的搭配的块的对应运动参数和/或预测模式来导出。用于导出上采样之后的层间参考图片中的运动参数和/或预测模式的块大小可以是例如16×16。16×16的块大小与使用参考图片的压缩运动场的HEVC TMVP导出过程中相同。

如上文所讨论的,在HEVC中,使用两字节NAL单元首部用于所有规定的NAL单元类型。NAL单元首部包含一个预留比特、6比特的NAL单元类型指示(称为nal_unit_type)、6比特的预留字段(称为nuh_layer_id)以及用于时间级别的3比特的temporal_id_plus1指示。语法元素temporal_id_plus1可以被认为是用于NAL单元的时间标识符,基于零的变量TemporalId可以如下来导出:TemporalId=temporal_id_plus1-1。TemporalId等于0对应于最低时间级别。要求temporal_id_plus1的值为非零以便避免涉及两个NAL单元首部字节的开始代码仿真。通过排除TemporalId大于或等于所选择的值的所有VCL NAL单元并且包括所有其他VCL NAL单元而产生的比特流保持一致。因此,TemporalId等于TID的图片没有使用TemporalId大于TID的任何图片作为帧间预测参考。子层或时间子层可以定义为时间可伸缩比特流的时间可伸缩层,包括具有变量TemporalId的具体值的VCL NAL单元以及相关联的非VCL NAL单元。

在HEVC扩展中,nuh_layer_id和/或NAL单元首部中的类似的语法元素携带可伸缩层信息。例如,LayerId值nuh_layer_id和/或类似的语法元素可以被映射到描述不同的可伸缩性尺寸的变量或语法元素的值。

在可伸缩和/或多视图视频编码中,可以支持至少以下用于使用随机访问属性来编码图片和/或访问单元的原理。

–层内的IRAP图片可以是没有层间/视图间预测的帧内编码图片。这样的图片实现到其驻留的层/视图的随机访问能力。

-增强层内的IRAP图片可以是没有帧间预测(即时间预测)但是允许层间/视图间预测的图片。假定所有参考层/视图可用,这样的图片使得能够启动图片驻留的层/视图的解码。在单回路解码中,如果已编码参考层/视图可用(例如,对于SVC中dependency_id大于0的IDR图片而言正是这样),则可以是足够的。在多回路解码中,可能需要参考层/视图被解码。这样的图片例如可以称为逐步层访问(STLA)图片或增强层IRAP图片。

-锚定访问单元或完整IRAP访问单元可以定义为仅包括所有层中的帧内编码图片和STLA图片。在多回路解码中,这样的访问单元支持随机访问所有的层/视图。这样的访问单元的示例是MVC锚定访问单元(其中IDR访问单元是特殊情况)。

-逐步IRAP访问单元可以定义为包括基本层中的IRAP图片但是不需要包含所有增强层中的IRAP图片。逐步IRAP访问单元使得能够启动基本层解码,而增强层解码可以在增强层包含IRAP图片时被启动,并且(在多回路解码的情况下)其所有参考层/视图在该点处被解码。

在HEVC的可伸缩扩展或者用于类似于HEVC的单层编码方案的任何可伸缩扩展中,可以规定IRAP图片具有以下属性中的一项或多项属性。

-nuh_layer_id大于0的IRAP图片的NAL单元类型值可以用于指示增强层随机访问点。

-增强层IRAP图片可以定义为使得能够在其所有参考层已经先于EL IRAP图片被解码时启动增强层的解码的图片。

-可以允许层间预测用于nuh_layer_id大于0的IRAP NAL单元,而不允许帧间预测。

-IRAP NAL单元不需要在层之间对准。换言之,访问单元可以包含IRAP图片和非IRAP图片两者。

-在基本层的BLA图片之后,在增强层包含IRAP图片并且其所有参考层的解码已经启动时开始增强层的解码。换言之,基本层中的BLA图片开始逐层开启(start-up)过程。

-当增强层的解码从CRA图片启动时,类似于BLA图片的RASL图片来处理器RASL图片(在HEVC版本1中)。

可以使用具有IRAP图片或者在层之间没有对准的类似图片的可伸缩比特流,例如可以在基本层中使用更加频繁的IRAP图片,其中它们由于例如较小的空间分辨率而可以具有较小的编码大小。用于解码的逐层开启的过程或机制可以包括在视频解码方案中。解码器因此可以在基本层包含IRAP图片时启动比特流的解码,并且在它们包含IRAP图片时逐步启动解码其他层。换言之,在解码过程的逐层启动中,随着来自附加增强层的随后的图片在解码过程中被解码,解码器逐渐地增加已解码层的数目(其中层可以表示空间分辨率、质量级别、视图、诸如深度飞附加分量、或组合的增强)。已解码层的数目的逐渐增加可以被感知为例如图片质量的逐渐改善(在质量和空间可伸缩性的情况下)。

逐层启动机制可以生成具体的增强层中按照解码顺序的第一图片的参考图片的不可用的图片。替代地,解码器可以省略按照解码顺序先于可以从其来启动的层的解码的IRAP图片的图片的解码。可以省略的这些图片可以具体地由编码器或者比特流内的另一实体来标记。例如,一个或多个具体的NAL单元类型可以被用于它们。不管它们具体地用NAL单元类型标记还是例如由解码器来推断,这些图片可以称为跨层随机访问跳跃(CL-RAS)图片。解码器可以省略所生成的不可用图片以及已解码CL-RAS图片的输出。

逐层开启机制可以在该增强层的所有参考层已经使用参考层中的IRAP图片被初始化时启动从该增强层中的IRAP图片的增强层图片的输出。换言之,可以不从解码器输出和/或可以不显示按照输出顺序先于这样的IRAP图片的任何图片(在相同的层内)。在一些情况下,可以输出与这样的IRAP图片相关联的可解码引导图片,而可以不输出先于这样的IRAP图片的其他图片。

可以发生已编码视频数据的连结(concatenation),其也可以称为拼接,例如,将已编码视频序列连结成比特流,比特流被广播或者被流送或者被存储在海量存储器中。例如,可以将表示商业或广告的已编码视频序列与电影或者其他“初级”内容连结。

可伸缩视频比特流可以包含在层之间没有对准的IRAP图片。然而,实现在其第一访问单元中而不一定在所有层中包含基本层中的IRAP图片的已编码视频序列的连结可能是方便的。在第一已编码视频序列之后被拼接的第二已编码视频序列应当触发逐层解码开启过程。这是因为,所述第二已编码视频序列的第一访问单元可以不在其所有层中包含IRAP图片并且因此该访问单元中的非IRAP图片的一些参考图片可以不可用(在连结的比特流中)并且因此不能被解码。下文中称为拼接器的连结已编码视频序列的实体因此应当修改第二已编码视频序列的第一访问单元,从而使得其在解码器中触发逐层开启过程。

比特流语法中可以存在用于指示逐层启动过程的触发的指示。这些指示可以由编码器或拼接器生成并且可以被解码器遵守。这些指示可以仅用于具体的图片类型或NAL单元类型,诸如仅用于IDR图片,而在其他实施例中,这些指示可以用于任何图片类型。在不失一般性的的情况下,下文中提及被认为被包括在切片分段首部中的被称为cross_layer_bla_flag的指示。应当理解,可以另外地或者替代地使用具有任何其他名称或者被包括在任何其他语法结构中的类似的指示。

独立于触发逐层开启过程的指示,某些NAL单元类型和/或图片类型可以触发逐层开启过程。例如,基本层BLA图片可以触发逐层开启过程。

逐层开启机制可以在以下情况中的一个或多个情况下来被开启:

-在比特流的开始处。

-在已编码视频序列的开始处,在被具体地控制时,例如在解码过程被启动或者重新启动时,例如响应于调谐到广播或者寻找文件或流中的位置。解码过程可以输入可以通过诸如视频播放器等的外部装置来控制的变量,例如被称为NoClrasOutputFlag。

-基本层BLA图片。

-cross_layer_bla_flag等于1的基本层IDR图片。(或者cross_layer_bla_flag等于1的基本层IRAP图片。)

在注册开启机制被发起时,可以将DPB中的所有图片标记为“未用于参考”。换言之,可以将所有层中的所有图片标记为“未用于参考”,并且不将其用作针对发起逐层开启机制的图片或者按照解码顺序的任何随后图片的预测的参考。

跨层随机访问跳跃(CL-RAS)图片可以具有如下属性:其中当逐层开启机制被调用时(例如当NoClrasOutputFlag等于1时),CL-RAS图片没有被输出并且可以不被正确地可解码,因为CL-RAS图片可以包含对没有存在于比特流中的图片的参考。可以规定,不使用CL-RAS图片作为用于非CL-RAS图片的解码过程的参考图片。

可以明确地指示CL-RAS图片,例如通过一个或多个NAL单元类型或者切片首部标志(例如通过将cross_layer_bla_flag重新命名为cross_layer_contraint_flag并且重新定义用于非IRAP图片的cross_layer_bla_flag的语义)。如果图片不是非IRAP图片,如果图片驻留在增强层中,以及如果图片的cross_layer_constraint_flag(或类似标志)等于1,则可以认为图片是CL-RAS图片(例如通过其NAL单元类型确定)。否则,可以将图片分类为非CL-RAS图片。如果图片是IRAP图片(例如通过其NAL单元类型确定),如果图片驻留在基本层中,以及如果cross_layer_constraint_flag等于1,则可以推断cross_layer_bla_flag等于1(或者可以将相应变量设置为1)。替代地,可以推断CL-RAS图片。例如,当LayerInitializedFlag[layerId]等于0时,可以推断nuh_layer_id等于layerId的图片为CL-RAS图片。CL-RAS图片可以定义为如下图片:其nuh_layer_id等于layerId,使得当nuh_layer_id大于0的已编码图片的解码启动时LayerInitializedFlag[layerId]等于0。

解码过程可以按照如下方式来规定:其中某些变量控制是否使用逐层开启过程。例如,可以使用变量NoClrasOutputFlag,其在等于0时表示正常解码操作,并且在等于1时表示逐层开启操作。例如可以使用以下步骤中的一项或多项来设置NoClrasOutputFlag:

1)如果当前图片是作为比特流中的第一图片的IRAP图片,则将NoClrasOutputFlag设置为等于1。

2)否则,如果一些外部装置可用于将变量NoClrasOutputFlag设置为等于用于基本层IRAP图片的值,则将变量NoClrasOutputFlag设置为等于由外部装置提供的值。

3)否则,如果当前图片是作为已编码视频序列(CVS)中的第一图片的BLA图片,则将NoClrasOutputFlag设置为等于1。

4)否则,如果当前图片是作为已编码视频序列(CVS)中的第一图片的IDR图片并且cross_layer_bla_flag等于1,则将NoClrasOutputFlag设置为等于1。

5)否则,将NoClrasOutputFlag设置为等于0。

上文中的步骤4可以替代地更加一般地例如如下来措辞:“否则,如果当前图片是作为CVS中的第一图片的IRAP图片并且逐层开启过程的指示与IRAP图片相关联,则将NoClrasOutputFlag设置为等于1”。可以去除上文的步骤3,并且当其cross_layer_bla_flag等于1时,可以规定BLA图片表示逐层开启过程(即将NoClrasOutputFlag设置为等于1)。应当理解,其他对条件进行措辞的方式是可能的并且同样适用。

用于逐层开启的解码过程例如可以由两个阵列变量LayerInitializedFlag[i]和FirstPicInLayerDecodedFlag[i]来控制,其可以具有用于每个层(可能包括基本层并且也可能包括其他独立的层)的输入。当逐层开启过程被调用时,例如,响应于NoClrasOutputFlag等于1,可以将这些阵列变量重置为其默认值。例如,当有64个层被启用时(例如利用6比特的nuh_layer_id),则可以将变量重置如下:将变量LayerInitializedFlag[i]设置为对于从0到63(包括性的)的所有i值而言等于0,并且将变量FirstPicInLayerDecodedFlag[i]设置为对于从1到63(包括性的)的所有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。

-LayerInitializedFlag[nuh_layer_id]等于0并且对于refLayerId等于RefLayerId[nuh_layer_id][j]的所有值,LayerInitializedFlag[refLayerId]等于1,其中j在包括性的0到NumDirectRefLayers[nuh_layer_id]-1的范围内。

当FirstPicInLayerDecodedFlag[nuh_layer_id]等于0时,可以先于解码当前图片来调用用于生成不可用参考图片的解码过程。用于生成不可用参考图片的解码过程可以针对参考图片集合中的每个图片生成具有默认值的图片。生成不可用参考图片的过程可以主要被规定仅用于CL-RAS图片的语法约束的规定,其中CL-RAS图片可以定义为nuh_layer_id等于layerId并且LayerInitializedFlag[layerId]等于0的图片。在HRD操作中,在CPB到达和去除时间的导出时可能需要将CL-RAS图片考虑在内。解码器可以忽略任何CL-RAS图片,因为这些图片没有被规定用于输出并且对被规定用于输出的任何其他图片的解码过程没有任何影响。

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

-如果替代输出层的使用已经被启用(例如在草拟MV-HEVC/SHVC中AltOptLayerFlag[TargetOptLayerSetIdx]等于

1)并且访问单元不包含目标输出层的图片也不包含PicOutputFlag等于0的目标输出层的图片,则以下有序步骤适用:

ο列表nonOutputLayerPictures是PicOutputFlag等于1并且nuh_layer_id值在目标输出层的直接和间接参考层的nuh_layer_id值之间的访问单元的图片的列表。

ο将列表nonOutputLayerPictures中具有最高nuh_layer_id值的图片从列表OutputLayerPictures中去除。

ο将被包括在列表nonOutputLayerPictures中的每个图片的PicOutputFlag设置为等于0。

-否则,将没有被包括在目标输出层中的图片的PicOutputFlag设置为等于0。

替代地,上文中用于触发从替代输出层的图片的输出的条件可以被约束为仅涉及CL-RAS图片而非PicOutputFlag等于0的所有图片。换言之,可以将条件措辞如下:

-如果替代输出层的使用已经被启用(例如在草拟MV-HEVC/SHVC中AltOptLayerFlag[TargetOptLayerSetIdx]等于1)并且访问单元不包含目标输出层的图片或包含PicOutputFlag等于0的目标输出层的CL-RAS图片,则以下有序步骤适用:替代地,可以将条件如下来措辞:

-如果替代输出层的使用已经被启用(例如在草拟MV-HEVC/SHVC中AltOptLayerFlag[TargetOptLayerSetIdx]等于1)并且访问单元不包含目标输出层的图片或包含PicOutputFlag等于0的目标输出层的图片使得LayerInitializedFlag[lId]等于0,则以下有序步骤适用:

然而,上文描述的视频编码标准的当前状态下的可伸缩性设计具有一些限制。例如,在SVC和SHVC中,要求访问单元的图片(等)具有相同的时间级别(例如在HEVC及其扩展中是TemporalId值)。这具有以下结果:其使得编码器不能够在层之间不同地确定预测层级。层之间的不同的预测层级可以用于利用更大数目的TemporalId值和频繁的子层向上切换点来编码一些层,并且利用目的在于更好的速率失真性能的预测层级来编码一些层。另外,编码器不能够彼此独立地编码相同比特流的层树。例如,基本层和辅助层图片可以由不同的编码器来编码,和/或不同层树的编码可以在不同时间发生。然而,当前要求层具有相同的编码(解码)顺序和相应图片的TemporalId。

例如SVC和SHVC中的另外的限制在于,不允许最低时间级别的时间级别切换图片、诸如HEVC及其扩展的TSA和STSA图片,诸如在HEVC及其扩展中TemporalId等于0。这具有以下结果:其使得不能指示到实现一些时间级别(但是不一定其所有)的解码的层的访问图片或访问点。然而,这样的访问点例如可以被用于以逐子层方式的层的解码的逐步开启和/或比特率适配。

现在,为了至少缓解以上问题,下文中呈现了用于对受限层访问图片编码和解码的方法。

在图7中公开的编码方法中,在第一可伸缩和最低时间子层上对第一图片编码(750),并且在第二可伸缩层和最低时间子层上对第二图片编码(752),其中第一图片和第二图片表示相同的时刻。然后,利用指示第一图片的图片类型不同于逐步时间子层访问图片的值来对与第一图片相关联的一个或多个第一语法元素编码(754)。类似地,利用指示第二图片的图片类型是逐步时间子层访问图片的值来对与第二图片相关联的一个或多个第二语法元素编码(756)。然后,在第二可伸缩层和高于最低时间子层的时间子层上对至少第三图片编码(758)。

根据实施例,逐步时间子层访问图片提供访问点用于具有一个或多个时间子层的比特流的解码的逐层初始化。

因此,编码器对到层的访问图片或访问点编码,其中访问图片或访问点使得能够解码一些时间子层(但是并非全部)。这样的访问点可以用于例如逐子层方式的层的解码的逐步开启(例如通过解码器)和/或比特率适配(例如通过发送器),这将在下文进一步描述。

根据实施例,逐步时间子层访问图片是TemporalId等于0的STSA图片。

图8图示其中使用TemporalId等于0的STSA图片来指示受限层访问图片的示例。在图8中,基本层(BL)和增强层(EL)两者都包括在四个时间子层上的图片(TemporalId(TID)=0,1,2,3)。图片的解码顺序为0,1,……,9,A,B,C,……,而图片的输出顺序是图8中从左到右的图片的顺序。图8以及随后的附图中的每个图片的已解码图片缓冲器(DPB)状态或DPB储存库(dump)示出被标记为“用于参考”的已解码图片。换言之,DPB储存库考虑被标记为“用于参考”的图片但是不考虑被标记为“需要用于输出”的图片(其已经被标记为“未用于参考”)。DPB状态可以包括以下图片:

-所讨论的被编码或解码的图片(图8以及随后的附图中的所指示的DPB状态的最底部条目);

-没有用作所讨论的图片的编码(和解码)的参考但是可以用作按照解码顺序的随后图片的编码(和解码)的参考的图片(图8以及随后的附图中具有斜体和下划线的所指示的DPB状态的条目);以及

-可以用作所讨论的图片的编码(和解码)的参考的图片(图8以及随后的附图中的所指示的DPB状态的所有其他条目)。

EL图片1是提供到TemporalId为0、1和2的子层的访问的层访问但是没有提供到TemporalId等于3的子层的访问的图片。在本示例中,EL的TID 3的所呈现的图片(5、7、8、C、D、F、G)中没有TSA或STSA图片。

根据实施例,方法还包括使用具体的NAL单元类型在比特流中信号传输逐步时间子层访问图片。因此,并非重新使用STSAnal_unit_type,可以使用具体的NAL单元类型并且可以被涉及到子层约束层访问图片。

根据实施例,方法还包括利用SEI消息对逐步时间子层访问图片进行信号传输。SEI消息还可以定义可解码子层的数目。可以辅助或者代替使用指示子层约束层访问图片或TemporalId等于0的STSA图片的NAL单元类型来使用SEI消息。SEI消息还可以包括在层的解码从相关联的层访问图片启动时可以解码(以全图片速率)的子层的数目。例如,参考图8中的示例,EL图片1(其是层访问图片)可以被指示为提供到三个子层(TID 0,1,2)的访问。

根据实施例,方法还包括编码所述第二可伸缩层或任何另外的可伸缩层以包括比第一可伸缩层更加频繁的TSA或STSA图片。从而,发送器或解码器等可以动态地并且用逐层方式来确定有多少子层被传输或被解码。当增强层包含比基本层中更加频繁的TSA或STSA图片时,可以与通过正交地确定层数和/或子层数实现的相比执行更细颗粒的比特率调节。

注意,当使用替代输出层机制并且目标输出层没有图片时,应当输出来自较低层的图片。因此,即使从传输中省去了来自目标输出层的图片,仍然可以保持(解码器的)输出图片速率不变。

图9图示当基本层BL比增强层EL(图片2,3,4,5,7,8,A,B,C,D,F,G)具有更少的TSA图片(图片2,3,4)的示例。注意,来自TID0图片的一些预测箭头没有被包括在图示中(但是可以根据DPB储存库来推断)。

根据实施例,能够在仅使用某些时间子层用于层间预测时对非对准的时间子层访问图片编码。

在这种使用情况下,假定仅使用具有一些TemporalId值的图片作为层间预测的参考,其可以在序列级别语法结构中被指示,诸如使用MV-HEVC、SHVC等的VPS扩展的max_tid_il_ref_pics_plus1语法元素。还假定,发送器知道接收器使用输出层集合,其中仅输出EL。因此,发送器忽略具有TemporalId值的BL图片的传输使得其被表示为不用作层间预测的参考。还假定,发送器通过适配地选择从EL传输的最大TemporalId来执行比特率调节或比特率适配。

图10示出了以下示例,其类似于图9中的示例,但是其中没有使用TemporalId大于或等于2的BL图片作为层间预测的参考,即在MV-HEVC、SHVC等中,其可以通过将基本层和增强层之间的语法元素max_tid_il_ref_pics_plus1设置为等于2来指示。

根据可以与其他实施例一起或者独立地应用的实施例,能够在TemporalId不需要在相同访问单元中的层之间对准时对非对准的时间子层访问图片进行编码。这可以被用在例如允许相同访问单元中具有不同TemporalId值(等)的图片的可伸缩视频编码方案中。

在相同的访问单元中具有用于图片的不同的TemporalId值可以在层之间不同地确定预测层级时向编码器提供灵活性,从而使得一些层能够使用更大数目的TemporalId值和频繁的子层向上切换点被编码并且一些层可以使用目的在于更好的速率失真性能的预测层级来被编码。另外,其提供灵活性以将相同比特流的层树进行彼此独立地编码。例如,基本层和辅助图片层可以用不同的编码器来编码,和/或不同层树的编码可以在不同的时间发生。通过使得编码器能够彼此独立地操作,编码器在根据输入信号来确定预测层级以及所使用的TemporalId值的数目时具有灵活性。

编码器可以在诸如VPS的序列级别语法结构中指示TemporalId值等是否对于访问单元内的已编码图片而言对准(即相同)。解码器可以例如从诸如VPS的序列级别语法结构中解码出关于TemporalId值等是否对于访问单元内的已编码图片而言对准的指示基于对于访问单元内的已编码图片对准的TemporalId值等,编码器和/或解码器可以选择与在TemporalId值等对于访问单元内的已编码图片而言没有对准的相比不同的语法、语义和/或操作。例如,当TemporalId值等对于访问单元内的已编码图片而言对准时,编码和/或解码中的层间RPS语法、语义和/或导出可以使用以下信息:用作参考层与预测层之间的层间预测的参考的图片可以具有哪些TemporalId值和/或不允许用作参考层与预测层之间的层间预测的参考的图片具有哪些TemporalId值。例如,被称为tid_aligned_flag的语法元素可以包括在VPS中并且其语义可以被规定成如下:tid_aligned_flag等于0规定TemporalId对于相同访问单元的不同已编码图片可以相同或者可以不同。tid_aligned_flag等于1规定TemporalId对于相同访问单元的所有已编码图片是相同的。tid_aligned_flag可以在导出候选层间参考图片的列表时被考虑在内。例如,参考上文描述的构造参考图片列表的第三示例,可以如下来规定用于规定标识候选层间参考图片的列表的伪码refLayerPicIdc[]:

当TemporalId值被指示为对于访问单元中的所有图片对准时,可以用于层间预测的所指示的最大TemporalId值影响候选层间参考图片的列表的导出,即,仅具有与所表示的最大TemporalId值相比较小或相等的TemporalId值的图片被包括在候选层间参考图片的列表中。当TemporalId值对于访问单元中的所有图片可以对照或者可以没有对准时,具有任何TemporalId值的图片被包括在候选层间参考图片的列表中。

图11示出了其中在层之间不同地确定预测层级的示例。在本示例中,使用如下层级预测层级来对基本层(BL)编码:其中利用所有图片的等于0的TemporalId来对所有图片编码。假定,在BL中使用的预测层级已经用于获取基本层的良好的速率失真性能。增强层(EL)具有四个子层以及频繁的TSA图片,其提供动态地选择传输多少子层用于EL的能力。

类似于图9,注意,来自EL TID0图片的一些预测箭头没有被包括在图11的图示中(但是可以从DPB储存库来推断)。同样,BL预测箭头被排除并且可以根据DPB储存库来推断。

下面描述可以与其他实施例一起或独立地应用的实施例。参考所提出的VPS语法和语义的示例以及上文描述的构造参考图片列表的第三示例,已经标识以下项目:

-当导出标识候选层间参考图片的列表refLayerPicLdc[]时,条件

“max_tid_il_ref_pics_plus1[refLayerIdx][LayerIdxInVps[nuh_layer_id]]>TemporalId”具有以下结果:当max_tid_il_ref_pics_plus1[refLayerIdx][LayerIdxInVps[nuh_layer_id]]等于0时(即当仅使用参考层的IRAP图片作为层间预测的参考时),参考层的索引没有被包括在refLayerPicIdc[]中,

-以次最优方式来在层间RPS语法和语义中使用max_tid_il_ref_pics_plus1[][],因为:

ο层间RPS的语法元素被包括在切片首部中,即使TemporalId使得根据max_tid_il_ref_pics_plus1[][]的值不允许层间预测。

ο语法元素num_inter_layer_ref_pics_minus1和inter_layer_pred_layer_idc[i]的长度基于NumDirectRefLayers[nuh_layer_id]而被确定。然而,在当前图片的max_tis_il_ref_pics_plus1[][]和TemporalId被考虑在内的情况下来潜在地确定较小的长度,并且因此,inter_layer_pred_layer_idc[i]可以是在能够用作目前TemporalId的层间预测的参考的这些参考层之间的索引。

为了在仅可以使用参考层的IRAP图片作为针对层间预测的参考的情况下具有正确的操作,可以如下来规定用于规定标识候选层间参考图片的列表的伪码refLayerPicIdc[]:

如所提及的,可以连同其他实施例一起来应用目前描述的实施例。如下面描述的,目前描述的实施例可以与其中编码器可以编码到例如诸如VPS的序列水平语法结构和/或解码器可以从例如诸如VPS的序列水平语法结构解码的指示的实施例一起应用,指示为TemporalId值等对于访问单元内的已编码图片是否对准。为了在仅可以使用参考层的IRAP图片作为层间预测的参考的情况下具有正确的操作,可以如下来规定用于规定标识候选层间参考图片的列表的伪码refLayerPicIdc[]:

替代地,在更加优选地也使用max_tid_il_ref_pics_plus 1[][]时,可以如以下段落中描述地来实现实施例。

编码器可以编码或者解码器可以解码例如u(v)的具有固定长度编码的层间RPS相关语法元素,其中可以根据由nuh_layer_id值以及被编码或解码的当前图片的TemporalId值所启用的潜在参考层的数目来选择语法元素长度。语法元素值可以指示由nuh_layer_id值以及TemporalId值所启用的潜在参考层之间的参考图片。潜在参考层可以在诸如VPS的序列级别语法结构中表示。每个层的直接参考层可以与可被用作层间预测的参考的子层分离地被指示。例如,在MV-HEVC、SHVC等中,可以使用语法元素direct_dependency_flag[i][j]来指示潜在参考层,并且可以使用语法元素max_tid_il_ref_pics_plus1[i][j]来指示层间预测是否可以仅从IRAP图片来进行以及在不是这样的情况下的能够进行层间预测的最大子层。

在MV-HEVC、SHVC等的上下文中,基于VPS扩展信息来导出变量NumDirectRefLayersForTid[lId][tId]和RefLayerIdListForTid[lId][tId][k]。NumDirectRefLayersForTid[lId][tId]指示可以被用于nuh_layer_id等于lId并且TemporalId等于tId的图片的层间预测的直接参考层的数目。RefLayerIdListForTid[lId][tId][k]是可以用于nuh_layer_id等于lId并且TemporalId等于tId的图片的层间预测的直接参考层的nuh_layer_id值的列表。例如,可以使用以下伪码来导出NumDirectRefLayersForTid[lId][tId]和RefLayerIdListForTid[lId][tId][k],其中MaxLayersMinus l是在VPS中规定的层数减去1,并且LayrIdxInVps[layerId]规定在VPS中所规定的一些结构和回路内的层的索引(包括性的在0到MaxLayersMinusl的范围内)。

如提及的,目前描述的实施例可以与其他实施例一起应用。如下面描述的,当前描述的实施例可以与其中编码器可以编码到例如诸如VPS的序列水平语法结构和/或解码器可以从例如诸如VPS的序列水平语法结构解码的实施例一起应用,指示为TemporalId值等对于访问单元内的已编码图片是否对准。为了在仅可以使用参考层的IRAP图片作为层间预测的参考时具有正确的操作,可以如下来规定用于导出NumDirectRefLayersForTid[lId][tId]和RefLayerIdListForTid[lId][tId][k]的伪码:

在层间RPS语法和语义中使用NumDirectRefLayersForTid[nuh_layer_id][TemporalId]而非NumDirectRefLayers[nuh_layer_id]。另外,inter_layer_pred_layer_idc[i]是到RefLayerIdListForTid[nuh_layer_id][TemporalId][k]的索引k(而不是到RefLayerId[nuh_Layer_id][k]的索引k)。因此,层间RPS的语法元素仅在TemporalId使得根据max_tid_il_ref_pics_plusl[][]值而不允许层间预测的情况下被包括在切片首部中。另外,语法元素num_inter_layer_ref_pics_minus1和inter_layer_pred_layer_idc[i]的值基于NumDirectRefLayersForTid[nuh_layer_id][TemporalId]而被确定,并且因此其可以比长度在基于NumDirectRefLayers[nuh_layer_id]而被确定的情况下更短。

例如,可以在切片分段首部语法结构中使用以下语法:

可以如以下段落中描述地来规定切片分段首部语法结构的以上摘录的语义。

num_inter_layer_ref_pics_minus1加上1规定可以在用于层间预测的当前图片的解码中使用的图片的数目。num_inter_layer_ref_pics_minus1语法元素的长度是Ceil(Log2(NumDirectRefLayersForTid[nuh_layer_id][TemporalId]))个比特。num_inter_layer_ref_pics_minus1的值应当包括性的在0到Nu,DirectRefLaversForTid[nuhlaverid][TemporalId]-1的范围内。

变量NumActiveRefLayerPics可以如下来导出:

inter_layer_pred_layer_idc[i]规定变量RefPicLayerId[i],其表示可以由当前图片用于层间预测的第i个图片的nuh_layer_id。语法元素inter_layer_pred_layer_idc[i]的长度是Ceil(Log2(NumDirectRefLayersForTid[nuh_layer_id][TemporalId]))个比特。inter_layer_pred_layer_idc[i]的值应当包括性的在0到NumDirectRefLayersForTid[nuh_layer_id][TemporalId]-1的范围内。如果不存在,则推断inter_layer_pred_layer_idc[i]的值等于refLayerPicIdc[i]。

对于在0到NumActiveRefLayerPics-1的范围内(包括性的)的所有i值的变量RefPicLaverId[i]可以如下来导出:

for(i=0,j=0;i<NumActiveRefLayerPics;i++)

RefPicLayerId[i]=RefLayerIdListForTid

[nuh_layer_id][TemporalId][inter_layer_pred_layer_idc[i]]

在混合编解码器可伸缩性的情况下,外部基本层的已解码图片可以被提供用于增强层的编码和/或解码,例如以用作层间预测的参考。在一些实施例中,可能要求例如在解码标准中,访问单元中的已编码图片的TemporalId值相同,并且可以推断外部基本层图片的TemporalId值等于与外部基本层图片相关联的访问单元的图片的TemporalId值。在一些实施例中,例如可以使用tid_aligned_flag等来指示是否要求访问单元中的已编码图片的TemporalId值相同。如果tid_aligned_flag等表示访问单元中的已编码图片的TemporalId值相同,则推断外部基本层图片的TemporalId值等于与外部基本层图片相关联的访问单元的图片的TemporalId值。否则,外部基本层图片的TemporalId值可能对与外部基本层相关联的访问单元中的图片的编码或解码没有影响,并且因此不需要导出外部基本层图片的TemporalId值。在一些实施例中,可以推断外部基本层图片的TemporalId值等于与外部基本层图片相关联的访问单元中的所选择的图片的TemporalId值。所选择的图片可以根据例如可以在编码标准中所规定的约束和/或算法来选择。例如,所选择的图片可以是外部基本层图片是其直接参考图片的图片。如果外部基本层图片是其直接参考图片的图片有多个,例如可以选择具有最小nuh_layer_id值的图片。对于具有相关联的外部基本层图片的访问单元的图片的TemporalId值可以有附加约束。例如,可以例如通过编码标准要求使用或者可以使用外部基本层作为层间参考图片的每个图片的TemporalId值必须相同。因此,可以从外部基本层是其直接参考图片的任何图片来导出外部基本层图片的TemporalId值。

图12中公开的解码方法使用根据上文描述的实施例中的任何实施例而被编码的比特流。如图12所示,接收(1200)并且解码(1202)第一可伸缩层的已编码图片。接收(1204)第二可伸缩层的已编码图片,其中第二可伸缩层依赖于第一可伸缩层。然后,从第二可伸缩层的已编码图片中选择(1206)在第二可伸缩层上的层访问图片,其中所选择的层访问图片是在最低时间子层上的逐步时间子层访问图片。忽略(1208)按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片,并且解码(1210)所选择的层访问图片。

在实施例中,图13的方法可以如下在随后的步骤中附接至图13中呈现的步骤。可以推断其解码由所选择的层访问图片来启用的子层的数目。然后,发送按照解码顺序跟随其解码被启用的这些子层上所选择的层访问图片的图片,而忽略按照解码顺序跟随其解码没有被启用的这些子层上所选择的层访问图片的图片,直到获得(reach)合适的子层访问图片。

除了或者取代解码,可以在比特率适配中通过发送装置(例如流送服务器)和/或通过网关装置来利用根据以上描述的实施例中的任何实施例编码的比特流。在图13所示的比特率适配方法中,接收(1300)第一可伸缩层的已编码图片。接收(1302)第二可伸缩层的已编码图片,其中第二可伸缩层依赖于第一可伸缩层。从第二可伸缩层的已编码图片中选择(1304)在第二可伸缩层上的层访问图片,其中所选择的层访问图片是最低时间子层上的逐步时间子层访问图片。忽略(1306)按照解码顺序先于所选择的层访问图片的第二可伸缩层上的已编码图片,并且在比特流中发送(1308)第一可伸缩层的已编码图片和所选择的层访问图片。

在实施例中,图12的解码方法可以如下在随后的步骤中附接至图12中呈现的步骤。可以推断由所选择的层访问图片启用其解码的子层的数目。然后,对按照解码顺序跟随其解码被启用的这些子层上的所选择的层访问图片的图片解码,而忽略按照解码顺序跟随其解码没有被启用的这些子层上的所选择的层访问图片的图片,直到获得合适的子层访问图片。

根据实施例,层访问图片是逐步时间子层访问图片,其依赖于使用情况,针对利用一个或多个时间子层的比特流的解码的逐层初始化或者针对利用一个或多个时间子层的比特流的逐层比特率适配提供访问点。

解码过程可以被执行作为用于所呈现的解码的联合逐子层和逐层开启过程。这一解码开启过程实现利用一个或多个层的比特流的解码的逐子层初始化。

因此,根据实施例,方法还包括:响应于基本层包含最低子层上的IRAP图片或STSA图片来启动比特流的解码;响应于所述至少一个增强层包含IRAP图片来启动上述至少一个增强层的逐步解码;以及逐渐增加已解码层数和/或已解码时间子层数。在本文中,层可以表示沿着任何可伸缩性尺寸的增强,诸如早先描述的,例如空间分辨率、质量级别、视图、诸如深度的附加分量或者以上中的任何的组合的增强。

根据实施例,方法还包括生成特别增强层中按照解码顺序的第一图片的参考图片的不可用图片。

根据替代实施例,方法还包括省略先于IRAP图片的图片中的特别增强层的解码能够从其被启动的图片的解码。根据实施例,上述省略的图片可以用一个或多个具体的NAL单元类型来标记。不管是否具体地用NAL单元类型来表示或者例如由解码器来推断,这些图片可以被称为跨层随机访问跳跃(CL-RAS)图片。

解码器可以省略所生成的不可用图片和/或已解码CL-RAS图片的输出。

根据实施例,方法还包括维持关于每个层的哪些子层被正确解码(即已经被初始化)的信息。例如,取代在早先呈现的逐层开启过程中使用的LayerInitializedFlag[i],可以针对每个层标识符i维持变量HighestTidPlus1InitializedForLayer[i]。HighestTidPlus1InitializedForLayer[nuh_layer_id]等于0可以指示标识符为i的层中没有图片被正确地解码,因为开启机制刚刚启动。HighestTidPlus1InitializedForLayer[i]-1大于或等于0可以指示已经被正确解码的图片的最高TemporalId值,因为开启机制刚刚启动。

可以与先前针对逐层开启机制描述地类似地或者相同地来发起开启过程。当逐层开启机制被发起时,可以将DPB中的所有图片标记为“未用于参考”。换言之,可以将所有层中的所有图片标记为“未用于参考”并且不使用其作为发起逐层开启机制的图片或者按照解码顺序的任何随后图片的预测的参考。

用于开启的解码过程可以例如由两个阵列变量HighestTidPlus1InitializedForLayer[i]和FirstPicInLayerDecodedFlag[i]来控制,其可以具有用于每个层(可能排除基本层并且也可能地排除其他独立的层)的输入。当逐层开启过程被调用时,例如,响应于NoClrasOutputFlag等于1,可以将这些阵列变量重置为其默认值。例如,当有64个层被启用时(例如6比特的nuh_layer_id),则可以将变量重置如下:将变量HighestTidPlus1InitializedForLayer[i]设置为对于从0到63(包括性的)的所有i值而言等于0,并且将变量FirstPicInLayerDecodedFlag[i]设置为对于从1到63(包括性的)的所有i值而言等于0。

解码过程可以包括以下等用于控制RASL图片的输出。如果当前图片是IRAP图片,则以下适用:

-如果HighestTidPlus1InitializedForLayer[nuh_layer_id]等于0,则将变量NoRaslOutputFlag设置为等于1.

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

-否则,将变量HandleCraAsBlaFlag设置为等于0并且将变量NoRaslOutputFlag设置为等于0。

根据实施例,启动逐步解码包括以下条件操作中的一项或多项:

-在当前图片是IRAP图片并且IRAP图片的所有参考层的解码已经启动的情况下,解码IRAP图片以及相同的层中按照解码顺序在IRAP图片之后的所有图片。

-在当前图片是最低子层处的STSA图片并且STSA图片的所有参考层的最低子层的解码已经启动的情况下,解码STSA图片以及相同的层中按照解码顺序在STSA图片之后的最低子层处的所有图片。

-在当前图片是比最低子层高的子层处的TSA或STSA图片并且相同层中的下一较低子层的解码已经启动并且TSA或STSA图片的所有参考层的相同子层的解码已经启动的情况下,解码TSA或STSA图片以及相同层中按照解码顺序在TSA或STSA之后的相同子层处的所有图片。

这些条件操作可以例如如下来更加详细地规定。解码过程可以包括以下以更新层的HighestTidPlus1InitilizedForLayer。如果当前图片是IRAP图片并且以下中的任一项为真,则将HighestTidPlus1InitializedForLayer[nuh_layer_id]设置为等于最大TemporalId值加上1(其中最大TemporalId值可以例如在VPS中规定或者在编码标准中预先定义)。

-nuh_layer_id等于0。

-HighestTidPlus1InitializedForLayer[nuh_layer_id]等于0并且对于refLayerId等于RefLayerId[nuh_layer_id][j]的所有值,HighestTidPlus1InitializedForLayer[refLayerId]等于最大TemporalId值加上1,其中j包括性的在0到NumDirectRefLayers[nuh_layer_id]-1的范围内。

如果当前图片是TemporalId等于0的STSA图片并且以下任一项为真,则可以将HighestTidPlus1InitializedForLayer[nuh_layer_id]设置为等于1。

-nuh_layer_id等于0。

-HighestTidPlus1InitializedForLayer[nuh_layer_id]等于0并且对于refLayerId等于RefLayerId[nuh_layer_id][j]的所有值,HighestTidPlus1InitializedForLayer[refLayerId]大于0,其中j包括性的在0到NumDirectRefLayers[nuh_layer_id]-1的范围内。

如果当前图片是TemporalId大于0的TSA图片或STSA图片并且以下两项均为真,则将HighestTidPlus1InitializedForLayer[nuh_layer_id]设置为等于TemporalId+1。

-HighestTidPlus1InitializedForLayer[nuh_layer_id]等于TemporalId。

-对于refLayerId等于RefLayerId[nuh_layer_id][j]的所有值,HighestTidPlus1InitializedForLayer[refLayerId]大于或等于TemporalId+1,其中j包括性的在0到NumDirectRefLayers[nuh_layer_id]-1的范围内。

当FirstPicInLayerDecodedFlag[nuh_layer_id]等于0时,可以先于解码当前图片来调用用于生成不可用参考图片的解码过程。用于生成不可用参考图片的解码过程可以针对参考图片集合中的每个图片生成具有默认值的图片。生成不可用参考图片的过程可以主要被规定仅用于CL-RAS图片的语法约束的规定,其中CL-RAS图片可以定义为nuh_layer_id等于layerId并且LayerInitializedFlag[layerId]等于0的图片。在HRD操作中,在CPB到达和去除时间的导出时可能需要将CL-RAS图片考虑在内。解码器可以忽略任何CL-RAS图片,因为这些图片没有被规定用于输出并且对被规定用于输出的任何其他图片的解码过程没有影响。

可以由解码器按照以下方式来处理解码尚未被发起的具有这样的nuh_layer_id(等)和TemporalId(等)的图片:该方式使得其没有被解码器输出。当存在具有该nuh_layer_id值的IRAP图片并且具有该nuh_layer_id值的层的所有直接参考层的解码已经被初始化时,可以认为具有任何TemporalId(等)值的nuh_layer_id(等)的解码被初始化。当存在具有该nuh_layer_id值以及该TemporalId值的TSA或STSA图片(等)并且具有该nuh_layer_id值和该TemporalId值的层的所有直接参考层的解码已经被初始化并且(当TemporalId大于0时)具有该nuh_layer_id值和该TemporalId值减去1的层的解码已经被初始化时,可以认为nuh_layer_id(等)和TemporalId(等)值的解码被初始化。在MV-HEVC、SHVC等的上下文中,可以如下或者用类似的方式来规定图片的输出的控制。如果HighestTidPlus1InitializedForLayer[layerId]在对图片的解码的启动大于sybLayerId,则可以确定要由解码器(例如通过将设置为PicOutputFlag等于1)来输出TemporalId等于subLayerId并且nuh_layer_id等于layerId的图片。否则,可以确定不由解码器(例如通过将PicOutputFlag设置为等于0)来输出图片。将被输出图片的确定还可以受到layerId是否在目标输出层集合中的输出层之间和/或在相关联的输出层处的图片不存在或者将不被输出的情况下将被输出的图片是否在替代输出层之间的影响。

跨层随机访问跳跃(CL-RAS)图片可以定义为TemporalId等于subLayerId并且nuh_layer_id等于layerId的图片,其HighestTidPlus1InitializedForLayer[layerId]大于在对图片进行解码的启动时的subLayerId。CL-RAS图片可以具有以下属性:它们不被输出并且可以不被正确地可解码,因为CL-RAS图片可以包含对没有存在于比特流中的图片的参考。可以规定,不使用CL-RAS图片作为用于非CL-RAS图片的解码过程的参考图片。

根据实施例,可以通过编码器将层访问图片编码到仅包含一个层的比特流。例如,层访问图片可以是nuh_layer_id等于0并且TemporalId等于0的STSA图片。

根据实施例,解码器可以从最低层的层访问图片来启动解码。例如,解码器可以从nuh_layer_id等于0并且TemporalId等于0的STSA来启动解码。解码可以包括逐子层开启,例如如上文描述的。例如,解码可以包括维持关于每个层的哪些子层已经被正确解码(即已经被初始化)的信息并且在合适的层访问图片、子层访问图片或IRAP图片按照解码顺序可用时切换到下一可用子层。被解码的比特流可以仅包括一个层,或者可以包括若干层。

下面鉴于若干实施例来讨论实施例在比特率适配中的利用。

在图14中,假定比特流已经如图8所示被编码并且发送器通过适配地选择从EL传输的最大TemporalId来执行比特率适配。对于第一GOP,不传输EL图片。对于第二GOP,发送器确定增加视频比特率并且传输尽可能多的EL子层。由于在TID0、1和2(即分别是图片1、A和B)处有STSA图片可用,发送器向上切换以从EL的第二GOP启动传输具有TID 0到2的子层。当存在TID等于3的EL IRAP图片或者EL TSA或STSA图片时,向上切换到增强层的TID 3可以稍后进行。注意,如果替代输出层的使用被启用,则在本示例中可以恒定地以“全”图片速率输出图片。

如果比特流已经被编码使得至少一个增强层包括比基本层更频繁的TSA或STSA图片,例如如图9所示,则发送器可以通过确定传输的子层的多少来动态地调节逐层方式的传输的比特率。

可以使用比特率调节或比特率适配用于在流送服务中提供所谓的快速开启,其中所传输的流的比特率在启动或随机访问流之后低于信道比特率,以便立刻启动回放并且实现容忍偶然的分组延迟和/或重传的缓冲器占用级别。比特率调节也在将所传输的流比特率与主要(prevailing)信道吞吐量比特率匹配时使用。在这一使用情况下,能够使用基本层中的更大数目的参考图片来实现更好的速率失真性能。

在图15的示例中,假定比特流已经如图9所示被编码并且在传输比特流时需要减小第一GOP的比特率。在本示例中,针对第一GOP仅传输TemporalId(TID)等于0的图片。另外假定,比特流可以用其全比特率从第二GOP启动传输。由于EL中的第二GOP以TSA图片启动,所以能够启动具有所有TID值的EL图片的传输。

在图16的示例中,假定比特流已经被编码,从而使得非对准时间子层访问图片在仅某些时间级别被用于层间预测时被编码,如图10的示例中所示。还假定发送器知道接收器使用如下输出层集合:其中仅增强层是输出层并且因此没有用作层间预测的参考的BL子层的传输被省略。还假定,在传输比特流时,需要减小第一GOP的比特率。在本示例中,针对第一GOP传输具有在0到2的范围内(包括性的)的TemporalId的EL图片。还假定,可以从第二GOP启动以其全比特率来传输比特流。因为EL中的第二GOP以TSA图片启动,所以能够启动具有所有TID值的EL图片的传输。

在图17的示例中,假定比特流已经被编码,从而使得预测层级在层之间被不同地确定,如图11所示。另外假定,发送器调节所传输的比特流的比特率,因此发送器选择仅传输EL的三个子层(TID 0、1和2)。注意,如果替代输出层的使用被启用,则在本示例中可以以“全”图片速率恒定地输出图片。

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

视频解码器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。

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

已编码媒体比特流可以传输给存储器1530。存储器1530可以包括用于存储已编码媒体比特流的任何类型的海量内存。存储器1530中的已编码媒体比特流的格式可以是基本的自包含比特流格式,或者一个或多个已编码媒体比特流可以被封装成容器文件。如果一个或多个媒体比特流被封装在容器文件中,则可以使用文件生成器(附图中未示出)来将一个或多个媒体比特流存储在文件中并且产生文件格式的元数据,其也可以存储在文件中。编码器1520或存储器1530可以包括文件生成器,或者文件生成器在操作上附接至编码器1520或存储器1530。一些系统“现场”操作,即省略存储器并且从编码器1520直接向发送器1540传送已编码媒体比特流。已编码媒体比特流然后可以根据需要被传送给发送器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基本媒体文件格式的提示轨道,用于通信协议上的所包含的媒体比特流中的至少一个媒体比特流的封装。

服务器540可以或者可以不通过通信网络连接至网关1550。注意,系统通常可以包括任何数目的网关等,但是为了简化,以下描述仅考虑一个网关1550。网关1550可以执行不同类型的功能,诸如根据一个通信协议栈到另一通信协议栈的分组流的翻译、数据流的合并和分叉、以及根据下行链路和/或接收器能力的数据流的操纵,诸如根据在先下行网络条件来控制转发的流的比特率。网关1550的示例包括多点会议控制单元(MCU)、电路切换和分组切换视频电话之间的网关、蜂窝服务器上的即按即说(Push-to-talk)(PoC)、数字视频广播手持式(DVB-H)系统中的IP封装器、或者机顶盒或向家庭无线网络本地转发广播传输其他设备。在使用RTP时,网关1550可以称为RTP混合器或者RTP翻译器,并且可以用作RTP连接的端点。

系统包括一个或多个接收器1560,接收器1560通常能够接收、解调、和解封装所传输的信号成为已编码媒体比特流。已编码媒体比特流可以传输给记录存储器1570。记录存储器1570可以包括用于存储已编码媒体比特流的任何类型的海量内存。记录存储器1570可以替代地或者另外地包括计算内存,诸如随机存取存储器。记录存储器1570中的已编码媒体比特流的格式可以是基本的自包含比特流格式,或者可以将一个或多个已编码媒体比特流封装成容器文件。如果有彼此相关联的多个已编码媒体比特流,诸如音频流和视频流,则通常使用容器文件并且接收器1560包括或者附接至根据输入流产生容器文件的容器文件生成器。一些系统“现场”操作,即省略记录存储器1570,并且从接收器1560直接向解码器1580传输已编码媒体比特流。在一些系统中,仅在记录存储器1570中维持所记录的流的最近部分,例如所记录的流的最近的10分钟的摘录,而从记录存储器1570丢弃任何较早的记录的数据。

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

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

发送器1540和/或网关1550可以被配置成根据各种描述的实施例来执行比特率适配,和/或发送器1540和/或网关1550可以被配置成根据各种实施例来选择可伸缩视频比特流的所传输的层和/或子层。比特率适配和/或所传输的层和/或子层的选择可以出于多个原因来进行,例如响应于接收器1560的请求或者在其上传达比特流的网络的在先条件,诸如吞吐量。来自接收器的请求可以是例如改变所传输的可伸缩层和/或子层的请求、或者改变与先前的相比具有不同能力的渲染设备的请求。

解码器1580可以被配置成根据各种所描述的实施例来执行比特率适配,和/或解码器1580可以被配置成根据各种实施例来选择可伸缩视频比特流的所传输的层/子层。比特率适配和/或所传输的层/子层的选择可以出于多个原因来进行,诸如实现更快的解码操作。更快的解码操作例如在包括解码器580的设备是多任务并且使用计算资源用于除了解码可伸缩视频比特流之外的其他目的的情况下会需要。在另一示例中,更快的解码操作会在以比正常回放速度更快(例如是传统实时回放速率的两倍或三倍)的速度回放内容时需要。

可用媒体文件格式标准包括ISO基本媒体文件格式(ISO/IEC14496-12,其可以简写为ISOBMFF)、MPEG-4文件格式(ISO/IEC14496-14,也称为MP4格式)、用于NAL单元结构视频的文件格式(ISO/IEC 14496-15)以及3GPP文件格式(3GPP TS 26.244,也称为3GP格式)。SVC和MVC文件格式被规定为AVC文件格式的修改。ISO文件格式是导出所有以上提及的文件格式(排除ISO文件格式本身)的基础。这些文件格式(包括ISO文件格式本身)通常称为ISO文件格式家族。

ISO基本媒体文件格式中的基本构建块称为盒子(box)。每个盒子具有首部和净荷。盒子首部用字节来指示盒子的类型以及盒子的大小。盒子可以装入(enclose)其他盒子,并且ISO文件格式规定在某个类型的盒子内部允许哪些盒子类型。另外,一些盒子的存在在每个文件中可以是强制的,而其他盒子的存在可以是可选的。另外,对于某些盒子类型,可以允许文件中存在多于一个盒子。因此,可以认为ISO基本媒体文件格式规定盒子的层级结构。

根据ISO文件格式家族,文件包括被包封在分离的盒子中的媒体数据和元数据。在示例实施例中,媒体数据可以在媒体数据(mdat)盒子中提供,并且可以使用电影(moov)盒子来装入元数据。电影(moov)盒子可以包括一个或多个轨道(track),并且每个轨道可以驻留在一个对应的轨道盒子中。轨道可以是以下类型之一:媒体、提示、定时元数据。媒体轨道指代根据媒体压缩格式(及其到ISO基本媒体文件格式的包封)被格式化的样本。提示轨道指代暗示样本,包含用于构造分组用于在所指示的通信协议上传输的细则手册指令。细则手册指令可以包括用于分组首部构造的引导并且包括分组净荷构造。在分组净荷构造中,可以参考驻留在其他轨道或条目中的数据。这样,例如,驻留在其他轨道或条目中的数据可以用关于在分组构造过程期间要将具体轨道或条目中的哪些数据指令为要被复制到分组中的参考来表示。定时元数据轨道可以指代描述引用的媒体和/或提示样本的样本。对于一个媒体类型的呈现,通常选择一个媒体轨道。轨道的样本可以隐含地与样本编号相关联,样本编号按照样本的所表示的解码顺序增加1。轨道中的第一样本可以与样本编号1相关联。

下面可以描述根据ISO基本媒体文件格式的简化文件结构的示例。文件可以包括moov盒子和mdat盒子,并且moov盒子可以包括分别对应于视频和音频的一个或多个轨道。

ISO基本媒体文件格式不限制将被包含在一个文件中的呈现。这样,呈现可以被包括在若干文件中。作为示例,一个文件可以包括整个呈现的元数据并且从而可以包括所有媒体数据以使得呈现自包含。其他文件(如果使用)可以不需要被格式化成ISO基本媒体文件格式,并且可以用于包括媒体数据,并且还可以包括未使用的媒体数据或其他信息。ISO基本媒体文件格式仅涉及呈现文件的结构。媒体数据文件的格式可以仅用ISO基本媒体文件格式或其派生格式来约束,因为媒体文件中的媒体数据如ISO基本媒体文件格式或其派生格式中规定地来格式化。

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

电影碎片可以在向ISO文件记录内容时使用以避免在记录应用失灵、存储空间耗尽、或者某些其他偶然事件发生的情况下丢失数据。如果没有电影碎片,可能发生数据丢失,因为文件格式通常可能要求所有元数据、例如电影盒子被写入文件的一个连续区域中。另外,在记录文件时,可能没有足够量的存储空间(例如RAM)来缓存可用存储的大小的电影盒子,并且在电影关闭时的电影盒子的内容的重新计算可能太慢。另外,电影碎片可以使用规则ISO文件解析器来实现文件的同时记录和回放。最后,在使用电影碎片并且初始电影盒子与具有相同媒体内容但是被构造为没有电影碎片的文件相比较小时,可能需要较小的初始缓存持续时间用于逐渐下载,例如文件的连续接收和回放。

电影碎片特征可以使得能够将传统上驻留在电影盒子中的元数据拆分成多个片。每个片可以对应于针对轨道的某个时间段。换言之,电影碎片特征可以使得能够交织文件元数据和媒体数据。因此,电影盒子的大小可能受到限制并且实现上文提及的使用情况。

在一些示例中,用于电影碎片的媒体样本如果在与moov盒子相同的文件中则通常可以驻留在mdat盒子中。然而,对于电影碎片的元数据,可以提供moof盒子。moof盒子可以包括用于先前已经在moov盒子中的回放时间的某个持续时间的信息。moof盒子本身仍然可以表示有效电影,但是另外,其可以包括指示电影碎片在相同的文件中的mvex盒子。电影碎片可以及时地扩展与moov盒子相关联的呈现。

在电影碎片内,可以有轨道碎片的集合,包括从每个轨道零到多个的任何地方。轨道碎片进而可以包括从零到多个轨道路径(run)的任何地方,每个轨道路径的文档是该轨道的样本的连续路径。在这些结构内,很多字段是可选的并且可以是默认的。可以被包括在moof盒子中的元数据可以限于可以被包括在moov盒子中并且在一些情况下可以不同地编码的元数据的子集。关于能够被包括在moof盒子中的盒子的细节可以从ISO基本媒体文件格式规范中找到。

基于分组准则,ISO基本媒体文件格式及其诸如AVC文件格式和SVC文件格式的派生中的样本分组可以被定义为轨道中每个样本的将作为一个样本组的成员的分配。样本分组中的样本组不限于连续样本,而是可以包含非相邻样本。由于可以存在多于一个样本分组用于轨道中的样本,所以每个样本分组具有用于指示分组类型的类型字段。样本分组用两个链接的数据结构来表示:(1)SampleToGroup盒子(sbgp盒子)表示样本到样本组的分配;以及(2)SampleGroupDescription盒子(sgpd盒子)包含描述组的属性的每个样本组的样本组条目。基于不同的分组准则,可以有SampleToGroup和SampleGroupDescription盒子的多个实例。这些通过用于指示分组类型的类型字段来区分。

样本组盒子(SampleGroupDescription盒子和SampleToGroup盒子)驻留在样本表格(stbl)盒子中,其被装入在电影(moov)盒子内的媒体信息(minf)、媒体(mdia)和轨道(trak)盒子(按照该顺序)中。允许SampleToGroup盒子驻留在电影碎片中。因此,样本分组可以通过碎片来进行。

在可以独立地或者与其他实施例一起应用的实施例中,编码器和另一实体、诸如文件创建器将一个或多个层访问图片的指示编码或插入到容器文件中,其例如可以符合ISO基本媒体文件格式并且可能是其派生文件格式中的一些格式。例如可以规定用于层访问图片的样本分组,或者可以在另一更加一般的样本分组中表示层访问图片,例如用于指示随机访问点。

在一些实施例中,解码器或另一实体、诸如媒体播放器或文件解析器将一个或多个层访问图片的指示解码或取回到容器文件中,其例如可以符合ISO基本媒体文件格式并且可能是其派生文件格式中的一些。例如,指示可以从用于层访问图片的样本分组或者从另一更加一般的样本分组来获得,例如用于指示随机访问点,其也能够指示层访问图片。指示可以用于启动指示与其相关联的层的解码或其他处理。

需要理解,用于可伸缩视频编码的访问单元可以用各种方式来规定,包括但不限于如早先描述的用于HEVC的访问单元的定义。实施例可以在访问单元的不同定义的情况下来应用。例如,HEVC的访问单元定义可以被放松,从而使得要求访问单元包括与样本输入时间相关联并且属于相同的层树的已编码图片。如果比特流具有多个层树,则访问单元可以但不要求包括与样本输入时间相关联并且属于不同层树的已编码图片。

在上文中,已经使用MV-HEVC、SHVC等作为示例描述了一些实施例,并且因此已经使用了特定于MV-HEVC、SHVC等的一些术语、变量、语法元素、图片类型等。需要理解,这些实施例可以使用其他编码标准和/或方法的类似的相应术语、变量、语法元素、图片类型等来实现。例如,以上,参考nuh_layer_id和/或TemporalId来描述一些实施例。应当理解,这些实施例可以使用分别用于层标识符和/或子层标识符的任何其他指示、语法元素和/或变量来实现。

在上文中,参考最低时间子层上的逐步时间子层访问图片描述了一些实施例。需要理解,这些实施例可以使用提供用于层的图片的子集(诸如用于某些而不一定是层的所有子层)的正确的解码能力的任何类型的层访问图片来类似地实现。

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

在上文中,虽然参考编码器来描述示例实施例,然而应当理解,所得到的比特流和解码器可以在其中具有对应的元件。同样,虽然参考解码器来描述示例实施例,然而应当理解,编码器可以具有用于生成将由解码器来解码的比特流的结构和/或计算机程序产品。

在上文中描述的本发明的实施例在分离的编码器和解码器装置方面描述了编解码器,以便帮助理解所涉及的过程。然而,应当理解,装置、结构和操作可以实现为单个编码器解码器装置/结构/操作。另外,编码器和解码器可以能够共享一些或全部的公共元件。

虽然在上文中示例描述在电子设备内的编解码器内操作的本发明的实施例,然而应当理解,权利要求中定义的本发明可以实现为任何视频编解码器的部分。因此,例如,本发明的实施例可以在可以在固定或有线通信路径上实现视频编码的视频编解码器中实现。

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

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

总之,本发明的各种实施例可以用硬件或专用电路、软件、逻辑或其任意组合来实现。例如,一些方面可以用硬件来实现,而其他方面可以用可以由控制器、微控制器或其他计算设备执行的固件或软件来实现,然而本发明不限于此。虽然本发明的各个方面可以图示和描述为框图、流程图、或使用一些其他图形表示来图示和描述,然而应当理解,本文中描述的这些框、装置、系统、技术或方法作为非限制性示例可以用硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备、或者其某种组合来实现。

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

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

本发明的实施例可以用各种部件来实践,诸如集成电路模块。集成电路的设计或多或少是一个高度自动化的过程。复杂且有用的软件工具可用于将逻辑级别设计变换成准备好被蚀刻和形成在半导体衬底上的半导体电路设计。

诸如由California的Mountain View的Synopsys,Inc以及California的San Jose的Cadence Design提供的程序使用很好地建立的设计规则以及预先存储的设计模块库来在半导体芯片上自动布线导体并且定位部件。一旦半导体电路的设计已经被完成,则可以将标准化电子格式(例如Opus、GDSII等)的所得到的设计传输给半导体制造工厂或“fab”用于制造。

以上描述作为示例性非限制性示例提供了本发明的示例性实施例的全面以及说明性的描述。然而,在结合附图和所附权利要求阅读时,相关领域技术人员鉴于以上描述可以很清楚各种修改和适配。然而,本发明的教示的所有这样的和类似的修改仍然落在本发明的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1