用于有效的可伸缩流适配的系统和方法转让专利

申请号 : CN201010586087.7

文献号 : CN101998123B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : Y-K·王M·安尼克塞拉

申请人 : 诺基亚公司

摘要 :

一种系统和方法,用于在文件格式层中信令从低到高的层切换点,以支持在流服务器和本地文件回放中的有效的可伸缩流切换。本发明还提供一种系统和方法,用于在视频比特流中信令从低到高的层切换点,例如,用以支持在可知媒体网元中的智能转发可伸缩层或者在流接收方的计算上的可伸缩解码。

权利要求 :

1.一种将图像序列编码为存取单元序列的方法,所述方法包括:

将所述图像序列的第一图像编码为所述存取单元序列的第一存取单元,所述第一存取单元包括基本层中的非即时解码刷新图像和增强层中的即时解码刷新图像,该即时解码刷新图像可在没有来自于在所述增强层中解码顺序在所述即时解码刷新图像之前的任意图像的帧间预测的情况下解码,对在解码顺序中所述第一存取单元之前的至少一个存取单元编码,所述至少一个存取单元包括所述增强层中的至少一个编码参考图像,以及将指示包括在所述存取单元序列中,以使得所述即时解码刷新图像将所有编码参考图像标记为未用于参考。

2.根据权利要求1所述的方法,包括:

发送针对所述图像的编码层结构,其中所述即时解码刷新图像根据所述编码层结构增强所述非即时解码刷新图像的空间分辨率或质量。

3.根据权利要求1或2所述的方法,进一步包括:

针对所述即时解码刷新图像生成至少一个网络抽象层单元的网络抽象层单元报头,从而包括所述指示。

4.一种将存取单元序列解码为已解码图像序列的方法,所述存取单元序列包括第一存取单元,所述第一存取单元包括基本层中的非即时解码刷新图像和增强层中的即时解码刷新图像,该即时解码刷新图像可在没有来自于在所述增强层中解码顺序在所述即时解码刷新图像之前的任意图像的帧间预测的情况下解码,所述方法包括:将在解码顺序中所述第一存取单元之前的至少一个存取单元解码为所述增强层中的至少一个已解码参考图像,将包括所述即时解码刷新图像的所述第一存取单元解码为第一已解码参考图像,对与所述即时解码刷新图像相关联的指示进行解码,以及作为对所述指示的解码的响应,将所有已解码参考图像标记为未用于参考。

5.一种用于将图像序列编码为存取单元序列的电子设备,所述电子设备包括:用于将所述图像序列的第一图像编码为所述存取单元序列的第一存取单元的装置,所述第一存取单元包括基本层中的非即时解码刷新图像和增强层中的即时解码刷新图像,该即时解码刷新图像可在没有来自于在所述增强层中解码顺序在所述即时解码刷新图像之前的任意图像的帧间预测的情况下解码,用于对在解码顺序中所述第一存取单元之前的至少一个存取单元编码的装置,所述至少一个存取单元包括所述增强层中的至少一个编码参考图像,以及用于将指示包括在所述存取单元序列中,以使得所述即时解码刷新图像将所有编码参考图像标记为未用于参考的装置。

6.根据权利要求5所述的电子设备,进一步包括:

用于发送针对所述图像的编码层结构的装置,其中所述即时解码刷新图像根据所述编码层结构增强所述非即时解码刷新图像的空间分辨率或质量。

7.根据权利要求5或6所述的电子设备,进一步包括:

用于针对所述即时解码刷新图像生成至少一个网络抽象层单元的NAL单元报头从而包括所述指示的装置。

8.一种用于将存取单元序列解码为已解码图像序列的电子设备,所述存取单元序列包括第一存取单元,所述第一存取单元包括基本层中的非即时解码刷新图像和增强层中的即时解码刷新图像,该即时解码刷新图像可在没有来自于在所述增强层中解码顺序在所述即时解码刷新图像之前的任意图像的帧间预测的情况下解码,所述电子设备包括:用于将在解码顺序中所述第一存取单元之前的至少一个存取单元解码为所述增强层中的至少一个已解码参考图像的装置,用于将包括所述即时解码刷新图像的所述第一存取单元解码为第一已解码参考图像的装置,用于对与所述即时解码刷新图像相关联的指示进行解码的装置,以及用于作为对所述指示的解码的响应,将所有已解码参考图像标记为未用于参考的装置。

说明书 :

用于有效的可伸缩流适配的系统和方法

[0001] 本申请是申请日为2006年10月11日、申请号为200680044490.9、发明名称为“用于有效的可伸缩流适配的系统和方法”的发明专利申请的分案申请。

技术领域

[0002] 本发明一般地涉及媒体编码、解码、存储和传输。更特别地,本发明涉及可伸缩媒体编码、解码、存储和传输。

背景技术

[0003] 多媒体应用包括本地回放、流传输或随需(on-demand)、会话和广播/多播服务。多媒体应用所涉及的技术例如包括媒体编码、存储和传输。媒体类型包括语音、音频、图像、视频、图像和时间文本。已经针对不同的技术规定了不同的标准。
[0004] 视频编码标准包括ITU-T H.261、ISO/IEC MPEG-1视频、ITU-TH.262或ISO/IEC MPEG-2视频、ITU-T H.263、ISO/IEC MPEG-4视频和ITU-T H.264(也称为ISO/IEC MPEG-4AVC)。此外,还在开发新的视频编码标准。例如,正在进行可伸缩视频编码(SVC)标准的开发。此标准将成为H.264/AVC的可伸缩扩展。同样,正在进行中国视频编码标准的开发。
[0005] 可伸缩视频编码可以提供可伸缩视频比特流。可伸缩视频比特流的一部分可以被提取并解码,其具有劣化的回放视觉质量。可伸缩视频比特流包含非可伸缩基本层和一个或多个增强层。增强层可以增强时间分辨率(即帧率)、空间分辨率或者仅仅是由较低层或其部分表示的视频内容的质量。在有些情况下,增强层的数据可以在特定位置之后、甚至在任意位置被截短。每个截短位置可以包括一些表示逐渐增强的视觉质量的附加数据。这种可伸缩性被称为精 细颗粒(粒度)可伸缩性(FGS)。与FGS相对,由不提供精细颗粒可伸缩性的质量增强层提供的可伸缩性被称为粗颗粒可伸缩性(CGS)。
[0006] 当前草案SVC标准中的可伸缩层结构的特征在于三个变量,称为时间_级别(temporal_level)、从属_id(dependency_id)和质量_级别(quality_level),这些变量在比特流中用信号发送或者可以根据规范推导出。时间_级别用于指示时间可伸缩性或帧率。包含具有较小时间_级别值的图像的层具有比包含具有较大时间_级别的图像的层更小的帧率。从属_id用于指示层间编码的从属等级。在任何时间位置,具有较小从属_id值的图像可以用于对具有较大从属_id值的图像编码的层间预测。质量_级别用于指示FGS层的等级。在任何时间位置并且具有相同的从属_id值的情况下,具有质量_级别值等于QL的FGS图像使用该FGS图像或具有质量_级别值等于QL-1的基本质量图像(也即当QL-1=0时为非FGS图像)来进行层间预测。
[0007] 图1示出了示例性可伸缩视频流的时间片段,显示了上述三个变量的值。应当注意,时间值是相对的,也即,时间=0不一定是指比特流中按显示顺序排在第一的图像的时间。图2示出了该示例的典型预测参考关系,其中实线箭头指示沿水平方向的帧间预测参考关系,虚线空心箭头指示层间预测参考关系。(箭头)所指向的实例使用(箭头)另一方向的实例以用于预测参考。
[0008] 如此处所讨论的,层被定义为分别具有相同的时间_级别、从属_id和质量_级别的值的图像的集合。为了解码和回放增强层,通常包括基本层的较低层也应为可用的,因此较低层可以直接或间接地用于编码增强层中的层间预测。例如,在图1和图2中,(t,T,D,Q)等于(0,0,0,0)和(8,0,0,0)的图像属于基本层,它们可以独立于任何增强层而解码。(t,T,D,Q)等于(4,1,0,0)的图像属于双倍于基本层的帧率的增强层;该层的解码需要存在基本层图像。(t,T,D,Q)等于(0,0,0,1)和(8,0,0,1)的图像属于以FGS方式增强基本层的质量和比特率的增强层;该层的解码也需要存在基本层图像。
[0009] 在H.264/AVC标准中,如下定义了即时解码刷新(IDR)图像。所有片是I或者SI片的编码图像使得解码进程在解码该IDR图像之后立即将所有参考图像标记为“未用于参考”。在解码IDR图像之后,按解码顺序随后的所有编码图像可以在没有来自任何先于该IDR图像解码的图像的内部预测的情况下被解码。每个编码视频序列的第一幅图像是IDR图像。
[0010] IDR图像的概念也运用在当前的草案SVC标准中,其中该定义适用于分别具有相同的从属_id(dependency_id)和质量_级别(quality_level)值的图像。换句话说,IDR图像是这样的编码图像,其中该IDR图像以及所有在同一层中(也即与IDR图像具有分别相同的从属_id和质量_级别值)按解码顺序随后的编码图像的解码可以在没有来自任何在同一层中按解码顺序先于该IDR图像解码的图像的帧间预测的情况下执行。IDR图像使得解码进程在解码该IDR图像之后立即将同一层中所有参考图像标记为“未用于参考”。应当注意,此处针对当前草案SVC标准上下文所使用的术语“在同一层中”是指解码图像具有与IDR图像分别相同的从属_id和质量_级别值。要么所有具有相同的图像次序数值(即,在同一时间位置)、但是不同dependency_id或quality_level值的图像被编码为IDR图像,要么特定图像次序数值的图像不被编码为IDR图像。换句话说,要么所有位于存取单元(包括所有具有相同的图像次序数值的图像)的图像是IDR图像,要么存取单元中没有图像是IDR图像。
[0011] 可用的媒体文件格式标准包括ISO文件格式(ISO/IEC14496-12)、MPEG-4文件格式(ISO/IEC 14496-14)、AVC文件格式(ISO/IEC 14496-15)以及3GPP文件格式(3GPP TS 26.244)。SVC文件格式目前正由ISO/IEC MPEG开发,其可以在MPEGN7477,“VM Study rdText for Scalable Video Coding(SVC)FileFormat”73 ISO/IEC MPEG meeting,Poznan,Poland,2005年7月中找到,其全文在此通过参考结合引入。
[0012] 可伸缩编码相比于单层编码的一个优点在于:在可伸缩编码的 情况下,单个流可以满足不同的质量、比特率、显示尺寸等的需求,而在单层编码的情况下,必须使用多个流。使用多个流花费更多的存储空间,并且在联播中,需要更多的传输带宽。在流传输应用中,当传输网络或接收方的能力相对于它们的早期状态发生改变时,例如传输带宽变化时,需要流适配。网关和其他可知媒体(media-aware)网元(MANE)也可以执行流自适应。当可伸缩编码文件在“本地”(即,文件驻留在与解码器相同的设备中或者驻留在通过快速链接连接到解码设备的存储器中)播放时,如果解码器与某些其他处理共享计算资源,则可能需要流适配。例如,如果在运行多进程操作系统的通用处理器上执行解码,则解码器可能在某一时间能够使用整个计算功率并且解码所有的可伸缩层。然而,在另一时间,解码器可能只具有处理器的计算功率的子集以用于解码可用可伸缩层的子集。适配的流可以具有变化的比特流、帧率和/或视频分辨率。在单层编码的情况下,流适配可以通过流切换或代码转换来执行。在单个可伸缩流的情况下,流适配可以通过层切换来执行。
[0013] 在可伸缩编码中,从高到低的层切换可以在任何位置执行。然而,从低到高的层切换则不同,因为对切换到的高层中的图像的解码通常需要同一层中存在解码顺序中一些先前的图像。
[0014] 对于当前的草案SVC标准,从低到高的层切换可以在IDR存取单元(包括IDR图像)中执行。然而,依靠IDR存取单元要么导致由于对IDR存取单元的频繁编码而降低的编码效率,要么导致不即时的流适配。这两个问题都与终端用户的体验密切相关。理论上还有可能利用SP/SI图像编码或渐进解码刷新技术来执行从低到高的层切换。不过,这些技术都是针对单层编码设计的。因此,这些技术目前不可用于可伸缩编码。而且,即使将这些技术扩展为可在可伸缩编码中使用之后,它们的应用也将导致额外的编码约束(以等同于较低编码效率的形式)或者实现复杂性。
[0015] 因此需要支持在可伸缩视频编码中简单有效的从低到高的层切换。而且,还需要支持在文件格式层简单有效的从低到高的层切换 的信号发送,使得不需要解析和分析视频比特流就能查找从低到高的层切换的位置,因为对流的解析和分析需要复杂的计算。

发明内容

[0016] 本发明提供一种系统和方法,用于在文件格式层中信号发送从低到高的层切换点以支持在流服务器和本地文件回放中的有效的可伸缩流切换。本发明还公开了一种系统和方法,用于在视频比特流中信号发送从低到高的层切换点,例如,用于支持在可知媒体网元中智能转发可伸缩层或者在流接收方中计算上的可伸缩解码。
[0017] 本发明支持针对可伸缩流适配的简单有效的从低到高的层切换。本发明使得不需要流服务器对视频比特流进行大量地解析和分析,否则该解析和分析可能要求相当重的计算和实现负担。本发明实际上可以用于任何可伸缩媒体应用。
[0018] 本发明的这些和其他优点和特征及其构造和操作方式,将在下面结合附图的详细描述中变得很明显,其中下面描述的多个附图中相同的部件具有相同的附图标记。

附图说明

[0019] 图1示出了示例性可伸缩视频流的时间片段,显示了三个变量时间_级别、从属_id和质量_级别的值;
[0020] 图2是针对图1所示的时间片段的典型的预测参考关系;
[0021] 图3是可以实现本发明的系统的纵览图;
[0022] 图4是可以体现本发明的原理的电子设备的透视图;
[0023] 图5是图4的电子设备的电路示意图;以及
[0024] 图6是可以应用本发明的可伸缩编码等级的通用多媒体数据流传输系统的图示。

具体实施方式

[0025] 参考图6,描述了用于应用本发明的过程的典型的多媒体流传输 系统。
[0026] 多媒体数据流传输系统通常包括一个或多个多媒体源100,诸如视频照相机和麦克风,或者存储在存储器载体中的视频图像或计算机图形文件。从不同多媒体源100获得的原始数据在编码器102中组合成多媒体文件,该编码器也可以称为编辑单元。来自一个或多个多媒体源100的原始数据首先使用包含在编码器102中的捕获装置104进行捕获,该捕获装置通常可以实现为不同的接口卡、控制卡的功能的驱动软件或应用软件。例如,视频数据可以使用视频捕获卡及相关的软件进行捕获。捕获装置104的输出通常是未压缩的或者轻度压缩的数据流,例如当涉及视频捕获卡时,为YUV 4:2:0格式或动画-JPEG图像格式的未压缩视频帧。
[0027] 编辑器106将不同的媒体流链接在一起以同步将要如所期望地同时重现的视频流和音频流。编辑器106也可以对每个媒体流(诸如视频流)进行编辑,例如通过将帧率减半或者降低空间分辨率。分离的媒体流在压缩器108中进行压缩,尽管这些媒体流已经同步,但是在压缩器中每个媒体流使用适合于该媒体流的压缩器分别进行压缩。例如,YUV4:2:0格式的视频帧可以使用ITU-T推荐H.263或H.264进行压缩。分离的、已同步的且已压缩的媒体流通常在复用器110中交织,从编码器102获得的输出是单个、统一的比特流,其包括多个媒体流的数据,并且可以称为多媒体文件。应当注意,多媒体文件的形成不一定要求将多个媒体流复用为单个文件,不过流传输服务器可以就在发送这些媒体流之前,对它们进行交织。
[0028] 多媒体文件被传送到流传输服务器112,因而流传输服务器能够将其作为实时流传输进行执行或者以渐进式下载形式执行。在渐进式下载中,多媒体文件首先存储在服务器112的存储器中,当需要时可以从该存储器取回多媒体文件以进行传输。在实时流传输中,编辑器102向流传输服务器112发送连续的多媒体文件的媒体流,并且服务器112将流直接转发给客户端114。作为另一选择,也可以这样执行实时流传输以使得多媒体文件存储在服务器112可存取的 存储装置中,当需要时可以从该存储装置驱动实时流传输以及启动连续的多媒体文件的媒体流。在这种情况下,编辑器102不一定需要任何装置来控制流传输。流传输服务器112依照客户端114的可用带宽或最大解码和回放速率,执行多媒体数据的流量整形,流传输服务器112能够调整媒体流的比特速率,例如通过从传输中省去B-帧或者通过调整可伸缩层的数量。进一步,流传输服务器112可以修改复用媒体流的报头字段以减少其尺寸,并且将多媒体数据封装入适合于在所采用的通信网络中传输的数据分组中。客户端114通常可以通过使用合适的控制协议来调整(至少在一定程度上)服务器112的操作。客户端114至少能够以这种方式控制服务器112,即能够选择期望的传输至客户端的多媒体文件,此外,客户端114通常能够停止和中断多媒体文件的传输。
[0029] 当客户端114正在接收多媒体文件时,该文件首先被提供给解复用器116,解复用器116将包含在该多媒体文件中的媒体流分离。分离的、压缩的媒体流继而被提供给解压缩器118,在解压缩器118中,每个分离的媒体流被适合于每个特定媒体流的解压缩器进行解压缩。经解压缩和重构的媒体流提供给回放单元120,在回放单元处媒体流根据它们的同步数据以正确的步调再现并提供给呈现装置124。实际的呈现装置124例如可以包含计算机或移动台显示器和扬声器装置。客户端114通常也包括终端用户一般通过用户接口进行控制的控制单元122,其通过上述控制协议控制服务器的操作,并且基于终端用户给出的指令控制回放单元120的操作。
[0030] 应当注意,多媒体文件从流传输服务器112到客户端114的传送通过通信网络进行,传送路径通常包括多个通信网元。因此有可能至少某个网元能够至少部分地以与上面结合流服务器描述的相同的方式、在客户端114的可用带宽或最大解码和回放速率方面执行多媒体数据的流量整形。
[0031] 本发明提供一种系统和方法,用于在文件格式层中信号发送从低到高的层切换点以支持在流传输服务器和本地文件回放中的有效 的可伸缩流切换。本发明还公开了一种系统和方法,用于在视频比特流中信号发送从低到高的层切换点,例如,用于支持在可知媒体网元中智能转发可伸缩层或者在流接收方中计算上的可伸缩解码。
[0032] 在此描述本发明的多个示例性实现。不过,应当注意,这些实现的其他变形也是有可能的,例如通过组合此处讨论的可选实施方式的子集。
[0033] 以文件格式信号发送从低到高的层切换点的第一实现包括将信号发送从低到高的层切换点用作可伸缩信息的一种。在此实施方式中,针对每个层的信号发送从低到高的层切换点定义新的盒子(box)。该盒子包含在包含每个可伸缩层的可伸缩信息的数据结构中,例如在SVC文件格式的草案标准文本中定义的ScalableLayerEntry()结构。该盒子定义如下:盒子类型(Box Types):‘lswp’容器(Container):ScalableLayerEntry强制(Mandatory):否数量(Quantity):0或者1
[0034] 该盒子为流内的各个层提供从低到高的层切换点的简明标记。按照采样号递增的顺序严格排列表格。如果对于某个层不存在层切换点盒子,则对于该层没有额外的从低到高的层切换点,除了在同步采样盒子中用信号发送的同步采样或者在阴影同步采样盒子中用信号发送的阴影同步采样。
[0035] class LayerSwitchingPointBox extends Box(‘lswp’){
[0036] unsigned int(32)entry_count;
[0037] inti,j;
[0038] for(i=0;i<entry_count;i++){
[0039] unsigned int(32)sample_number;
[0040] unsigned int(8)entry_count2;
[0041] for=0;j<entry_count2;j++)
[0042] signed int(16)delta_layer_id;
[0043] }
[0044] }
[0045] 在此示例中,“entry_count”给出了后面表格中条目的数量。“sample_number”给出了此类采样的采样号,该采样的针对当前层的从低到高的层切换点的信息在后面表格中用信号发送。“entry_count2”给出了后面表格中条目的数量。
[0046] “delta_layer_id”指定了在采样号等于sample_number的当前采样处,流可以从当前层切换到的较高层,或者可以从其切换到当前层的较低层。等于或大于零的值指示在当前采样处,该流可以从当前层切换到层标识符等于(layerId+delta_layer_id+1)的较高层。小于零的值指示在当前采样处,该流可以从层标识符等于(layerId+delta_layer_id)的较低层切换到当前层。每个层的layerId从包含每个可伸缩层的可伸缩信息的数据结构中找到。
[0047] 以文件格式信号发送从低到高的层切换点的第二实现包括在专用盒子中信号发送所有层的从低到高的层切换点。该盒子定义如下。盒子类型(Box Types):‘lswp’容器(Container):(采样表格盒子)(‘stbl’)强制(Mandatory):否数量(Quantity):0或者1
[0048] 该盒子为流中的所有层提供从低到高的层切换点的简明标记。按照采样号递增的顺序严格排列表格。如果不存在层切换点盒子,则没有额外的从低到高的层切换点,除了在同步采样盒子中用信号发送的同步采样或者在阴影同步采样盒子中用信号发送的阴影同步采样。
[0049] class LayerSwitchingPointBox extends Box(‘lswp’){
[0050] unsigned int(32)entry_count;
[0051] inti,j,k;
[0052] for(i=0;i<entry_count;i++){
[0053] unsigned int(32)sample_number;
[0054] unsigned int(8)entry_count2;
[0055] for (i=0;j<entry_count2;j++){
[0056] unsigned int(8)layer_id;
[0057] unsigned int(8)entry_count3;
[0058] for(k=0;k<entry_count3;k++)
[0059] signed int(16)delta_layer_id;
[0060] }
[0061] }
[0062] }
[0063] 在此实施方式中,“entry_count”给出了后面表格中条目的数量。“sample_number”给出了此类采样的采样号,该采样的从低到高的层切换点的信息在后面表格中用信号发送。“entry_count2”给出了后面表格中条目的数量。“layer_id”给出了从低到高的层切换点的信息在后面表格中用信号发送的层的层标识符。“entry_count3”给出了后面表格中条目的数量。
[0064] “delta_layer_id”指定了在采样号等于sample_number的当前采样处,流可以从当前层切换到的较高层,或者可以从其切换到当前层的较低层。不小于零的值指示在当前采样处,该流可以从当前层切换到层标识符等于(layer_id+delta_layer_id+1)的较高层。小于零的值指示在当前采样处,该流可以从较低层切换到层标识符等于(layer_id+delta_layer_id)的当前层。在本发明的此特定实施方式中,也有可能将smaple_number的循环放入layer_id的循环内,代替当前的将sample_nmber循环放入layer_id的循环内。
[0065] 以文件格式信号发送从低到高的层切换点的第三实现包括使用信号发送轨道(track)切换点。此实施方式还可以与上述任何其他实施方式同时使用。此实施方式应用在这样的情形中,其中可伸缩层的可独立解码组合通常通过使用参考而被组合以形成独立轨道。在ISO基本媒体文件格式中,媒体数据由一组网络独立的轨道表示,其中线索轨道(hint track)包含网络相关的传输封装信息并且将媒体采样或其部分与传输分组相关联(通过从线索轨道到媒体轨道的参考)。提取器轨道包含对媒体轨道的参考,使得针对SVC存取单元的编码图像的子集形成提取器轨道中的样本。因此,每个提取器轨道将代表不同的可伸缩层子集,并且每个提取器轨道在不解码同一媒体轨道的其他提取器轨道的情况下将是可确定的。
[0066] 在此特定实现中,可以标识线索轨道之间或者提取器轨道之间的切换点。包含或引用可伸缩层的充分子集的轨道通过轨道参考容器盒中的轨道参考类型‘tswf’链接到此轨道,其中可伸缩层支持切换到该轨道中至少一个指示的切换点采样。此轨道包含可伸缩层的 充分子集所针对的轨道通过轨道参考容器盒中的轨道参考类型‘tswt’链接到此轨道,其中可伸缩层支持切换到那些轨道中至少一个指示的切换点采样。盒子类型(Box Type):‘tswd’容器(Container):Sample Table Box(‘stbl’)(采样表格盒子)强制(Mandatory):否数量(Quantity):0或者正好1
[0067] 该盒子提供线索轨道之间或者提取器轨道之间从低到高的层切换点的简明标记。按照采样数目递增的顺序严格排列表格。如果不存在轨道切换点盒子,则没有额外的从低到高的层切换点,除了在同步采样盒子中用信号发送的同步采样或者在阴影同步采样盒子中用信号发送的阴影同步采样。
[0068] class TrackSwitchingPointBox extends Box(‘tswp’){
[0069] unsigned int(32)entry_count;
[0070] int i,j;
[0071] for(i=0;i<entry_count;i++){
[0072] unsigned int(32)sample_number;
[0073] unsigned int(8)entry_count2;
[0074] for (j=0;j<entry_count2;j++)
[0075] unsigned int(32)src_track_id;
[0076] unsigned int(8)entry_count3;
[0077] for (j=0;j<entry_count3;j++)
[0078] unsigned int(32)dest_track_id;
[0079] }
[0080] }
[0081] 在此情形中,“entry_count”给出了后面表格中条目的数量。“sample_number”给出切换点采样的采样数量。“entry_count2”给出了后面表格中条目的数量。“src_track_id”指示包含流可以从其切换至包含在当前轨道中的层的较低层的轨道的轨道标识符。“entry_count3”给出了后面表格中条目的数量。“desk_track_id”指示包含流可以从包含在当前轨道的层切换到的更高层的轨道的轨 道标识符。
[0082] 应当注意,也有可能使用可选的语法定义。例如,可以省略entry_count3及针对desk_track_id值的相关循环。而且,如果在‘tswf’轨道参考中只指示了一个轨道,则针对src_track_id值的循环就不是必需的。也可以独立地使用TrackSwitchingPointBox语法而不需要轨道参考‘tswf’和/或‘tswt’。而且,可以重新使用在使用第一或第二可选方案的媒体轨道中用信号发送的消息,以获得在线索或提取器轨道中从低到高的层切换点,其中针对每个线索或提取器轨道用信号发送层标识符,例如在轨道报头中或采样条目中。
[0083] 下面讨论用于在比特流中信号发送从低到高的层切换点的可选方法。第一个此类可选方案包括使用新的网络提取层(NAL)单元类型,以指示包含该NAL单元类型的已编码片的图像是增强层即时解码刷新(EIDR)图像。EIDR图像是这样的已编码图像,该EIDR图像以及在同一层中(也即具有与该EIDR图像分别相同的temporal_level、dependency_id和quality_level值)按解码顺序随后的所有已编码图像的解码可以在没有来自任何在同一层中按解码顺序先于该EIDR图像的图像的帧间预测的情况下执行。EIDR图像使得解码进程在解码该EIDR图像之后立即将同一层中所有参考图像标记为“未用于参考”。EIDR图像不会使temporal_level、dependency_id和quality_level全部等于零。应当注意,此处针对此可选方案上下文所使用的“在同一层中”是指解码图像具有与EIDR图像分别相同的temporal_level、dependency_id和quality_level值。应当注意,该在同一层中的概念相比于最近草案SVC标准的差别在于此处考虑了temporal_level。通过将temporal_level考虑在内,就能支持从具有较低帧率的层到具有较高帧率的层的从低到高的层切换。而且,EIDR图像的编码效率提高了,这是因为具有较高temporal_level值的参考图像自动从参考图像列表中删除,使得节省了一些参考图像列表重排序命令或者参考图像的索引值变得更小,从而提高了熵编码的编码效率。
[0084] 因为可伸缩编码的特性使得较低层不能依靠较高层,因此EIDR图像不能从位于同一层以及更高层的图像进行预测,不过其仍然能够从来自较低层的图像进行预测,包括时间上较低的层。这样就支持在EIDR图像的位置处从下一个较低层到包含该EIDR图像的层的层切换。例如,新的NAL单元类型可以如下表1所示定义。值22用作该新的NAL单元类型,并且NAL单元类型20的含义从“可伸缩扩展中非IDR图像的已编码片”变为“可伸缩扩展中非IDR图像和非EIDR图像的已编码片”。
[0085] 表1
[0086]
[0087]
[0088] 此设计可应用于使用可伸缩扩展编码的可伸缩层,其中temporal_level、dependency_id和quality_level用信号发送。H.264/AVC标准本身可以用于提供时间可伸缩性,其可以使用子序列信息SEI消息来用信号发送。不过,在此情况下,不发送temporal_level,因此根据当前草案SVC标准,对于所有时间可伸缩层,temporal_level都推断为零。为了支持在时间层之间有效的从低到高的层切换并且不中断H.264/AVC流兼容性,新的SEI消息用于指示图像是EIDR图像。然而,通过使用SEI消息,EIDR图像的参考管理功能就不可能做到了,即,由SEI消息指示的EIDR图像可以用于从低到高的层切换,但是它不会使得解码进程将同一层中的所有参考图像标记为“未用于参考”。这归因于事实上SEI消息对于符合标准的解码器来说是可选的。SEI消息规定如下。
[0089] EIDR图像SEI消息语法
[0090]eidr_pic(payloadSize){ C Descriptor
temporal_layer_num 5 ue(v)
}
[0091] EIDR图像SEI消息语义。上述语义如下。如果存在EIDR图像SEI消息,则其于已编码图像相关联,其中在比特流中没有为该已编码图像提供temporal_level、dependency_id和quality_level,因此所有这些都被推断为零。目标图像也与子序列信息SEI消息相关联,其中用信号发送sub_seq_layer_num以指示时间可伸缩性等级。EIDR图像SEI消息的存在指示了目标图像是EIDR图像,其中该图像以及在同一层中(也即,其temporal_level、dependency_id和quality_level均等于0并且具有与EIDR图像相同的sub_seq_layer_num值)按解码顺序随后的所有已编码图像的解码可以在没有来自任何在同一层中按解码顺序先于该EIDR图像的图像的帧间预测的情况下进行解码。
[0092] “temporal_layer_num”具有与子序列信息SEI消息中的语法元素sub_seq_layer_num相同的语义。其值与同一目标图像相关联的子序列信息SEI消息中的sub_seq_layer_num一致。也可以将语法元素temporal_layer_num从SEI消息的语法中排除。不过,如果这么做,就需要对子序列SEI消息进行解析以知道该EIDR图像属于哪个时间可伸缩层。
[0093] 在比特流中信号发送从低到高的层切换点的第二可选实现包括改变IDR图像的定义以及放松对IDR图像的编码的约束。在此实现中,如下对IDR进行改变。如果temporal_level、dependency_id和quality_level中的任一个不等于零,则IDR图像是这样的已编码图像,其中该IDR图像以及在同一层中(也即,具有与该IDR图像分别相同的temporal_level、dependency_id和quality_level值)按解码顺序随后的所有已编码图像的解码可以在没有来自任何在同一层中按解码顺序先于该IDR图像的图像的帧间预测的情况下执行。而且,此类IDR图像使得解码进程在解码该IDR图像之后立即将同一层中所 有参考图像标记为“未用于参考”。否则,如果temporal_level、dependency_id和quality_level都等于零,则IDR图像是这样的已编码图像,其中该IDR图像以及按解码顺序随后的所有已编码图像的解码可以在没有来自任何按解码顺序先于该IDR图像的图像的帧间预测的情况下执行。此类IDR图像使得解码进程在解码该IDR图像之后立即将所有参考图像标记为“未用于参考”。
[0094] 如下放松对IDR图像的编码的约束(即,要么存取单元中的所有图像是IDR图像,要么存取单元中没有图像是IDR图像)。如果具有temporal_level、dependency_id和quality_level值都等于零的图像是IDR图像,则位于同一存取单元的所有其他图像都是IDR图像。由于放松了对IDR图像的编码的约束,因此可以在一个存取单元中具有增强层中的IDR图像,其中基本层图像是非IDR图像。从该第二可选方案中可以观察到,当temporal_level、dependency_id和quality_level中任一不等于零时,IDR图像的定义与上面讨论的用于在比特流中信号发送从低到高的层切换点的第一可选方案中的EIDR图像定义相同。因此,EIDR图像的所有获益都是有效的。此处将IDR图像的编码定义为支持在该IDR图像位置处从下一个较低层到包含该IDR图像的层的层切换。
[0095] 此特定设计可应用于使用可伸缩扩展编码的可伸缩层,其中temporal_level、dependency_id和quality_level用信号发送。可以采用与可选方案1中相同的方法来支持在使用H.264/AVC标准本身编码的时间层之间有效的从低到高的层切换。
[0096] 用于在比特流中信号发送从低到高的层切换点的第三可选实现包括放松对IDR图像的编码的约束以及为时间可伸缩层使用SEI消息。在此可选方案中,IDR图像的定义保持不变,但是对IDR图像的编码的约束如下进行放松。
[0097] 如果具有temporal_level、dependency_id和quality_level值都等于零的图像是IDR图像,则位于同一存取单元的所有其他图像都是IDR图像。此放松使得IDR图像的编码能够在不同dependency_id或 者quality_level值之间进行从低到高的层切换。不过,因为IDR图像的定义没有改变,即,在指定可伸缩层中没有包括temporaal_level,因此在时间层之间从低到高的层切换问题仍然没有解决。
[0098] 为了解决在时间层之间从低到高的层切换问题,不管它们是使用可伸缩扩展进行编码还是使用H.264/AVC标准本身进行编码,使用类似于上述针对第一可选方案所描述的EIDR图像SEI消息来指示与SEI消息相关联的目标图像是可以用于从低到高的层切换的EIDR图像。尽管如此,由SEI消息所指示的EIDR图像不具有参考管理功能,因为SEI消息对于符合标准解码器是可选的。
[0099] SEI的语法与用于在比特流中信号发送从低到高的层切换点的第一可选方案中的相同。当目标图像使用H.264/AVC标准本身进行编码时,语义也相同。当目标图像使用可伸缩扩展编码时,语义改变如下。
[0100] EIDR图像SEI消息的存在指示了目标图像是EIDR图像,其中该图像以及在同一层中(也即,具有与该EIDR图像相同的temporal_level、dependency_id和quality_level值)按解码顺序随后的所有已编码图像的解码可以在没有来自任何在同一层中按解码顺序先于该EIDR图像的图像的帧间预测的情况下进行解码。“temporal_layer_num”指示EIDR图像的temporal_level值。当EIDR图像使用可伸缩扩展进行编码时,也可以将语法元素temporal_layer_num从SEI消息的语法中排除。
[0101] 用于在比特流中信号发送从低到高的层切换点的第四可选方案包括针对所有可伸缩层使用SEI消息。在此可选方案中,EIDR图像SEI消息类似于在上面第三可选方案中定义的消息,其用来指示与SEI消息相关联的目标图像是可以用于从低到高的层切换的EIDR图像。然而,在此特定实施方式中,SEI消息也可以用于解决在不同dependency_id或者quality_level值之间的从低到高的层切换的问题。
[0102] 图3示出了可以利用本发明的系统10,包括能够通过网络通信的多个通信设备。系统10可以包括有线或无线网络的任意组合,其 包括但不限于,移动电话网络、无线局域网(LAN)、蓝牙个域网络、以太网LAN、令牌环LAN、广域网、互联网等。系统10可以包括有线和无线通信设备二者。
[0103] 例如,图3中示出的系统10包括移动电话网络11和互联网28.到互联网28的连接可以包括但不限于,长距离无线连接、短距离无线连接、以及各种包括但不限于电话线、电缆线、电力线等等的有线连接。
[0104] 系统10的示例性通信设备可以包括但不限于,移动电话12、PDA和移动电话的组合14、PDA 16、集成消息发送设备(IMD)18、台式计算机20、以及笔记本计算机22。通信设备可以是静止的或移动的,如当其被正在移动的个体携带时。通信设备还可以处于运输工具模式中,这些运输工具包括但不限于,汽车、卡车、出租车、公共汽车、轮船、飞机、自行车、摩托车等。通信设备中的某些或全部可以发送和接收呼叫和消息,并且可以通过无线连接25连接到基站24与服务提供商通信。基站24可以连接到网络服务器26,该网络服务器26允许在移动电话网络11和互联网28之间通信。系统10可以包括另外的通信设备和不同类型的通信设备。
[0105] 通信设备可以使用各种传输技术进行通信,这些传输技术包括但不限于,码分多址(CDMA)、全球移动通信系统(GSM)、通用移动通信系统(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议/互联网协议(TCP/IP)、短消息服务(SMS)、多媒体消息服务(MMS)、电子邮件、即时消息服务(IMS)、蓝牙、IEEE 802.11等等。通信设备可以使用各种介质通信,这些介质包括但不限于,无线电、红外、激光、电缆连接等等。
[0106] 图4和图5示出了一个可实施本发明的具有代表性的移动电话12。但是应当理解的是,本发明并不旨在局限于一种特定类型的移动电话12或者其它电子设备。图4和图5的移动电话12包括壳体30、液晶显示屏形式的显示器32、小键盘34、麦克风36、耳机38、电池40、红外端口42、天线44、根据本发明的一种实施方式的 UICC形式的智能卡46、读卡器48、无线接口电路52、编解码器电路54、控制器56和存储器58。各个电路和元件都是本领域公知的类型,例如在诺基亚移动电话的范围内。
[0107] 本发明是以方法步骤的一般上下文方式描述的,这种方法步骤在一种实施方式中可以由程序产品来实施,该程序产品包含由联网环境中的计算机执行的例如程序代码的计算机可执行指令。
[0108] 通常,程序模块包括执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、组件、数据结构等等。计算机可执行指令、相关联的数据结构以及程序模块表示用于执行本文所述方法步骤的程序代码的示例。这种可执行指令或相关联的数据结构的特定顺序表示用于实施这些步骤中所描述的功能的相应动作的示例。
[0109] 本发明的软件和web实现可以通过具有基于规则的逻辑以及其它用以完成各种数据库搜索步骤、相关步骤、比较步骤和决策步骤的逻辑的标准编程技术来完成。还应当指出的是,此处以及权利要求中使用的词语“组件”和“模块”意在包含使用一行或多行软件代码的实施和/或硬件实施和/或用于接收手动输入的装备。
[0110] 本发明实施方式的上述说明是为了说明和描述的目的。其并不意在穷举或是将本发明限制为所公开的精确形式,并且修改和变化可以参照上述教导作出,或者可以从本发明的实践中获得。选择和描述实施方式是为了解释本发明的原理及其实践应用,以便使本领域技术人员能够在各种实施方式中利用本发明并且可以具有各种修改以适应于特定的预期应用。