用于支持mp4中的avc的方法和设备的制作方法

文档序号:7894823阅读:316来源:国知局
专利名称:用于支持mp4中的avc的方法和设备的制作方法
技术领域
本发明总体上涉及以多媒体文件格式存储和检索视听内容,具体而言涉及与ISO媒体文件格式相兼容的文件格式。
版权标记/许可这篇专利文件的一部分公开包含了受版权保护的材料。版权所有者不反对专利文件或专利公开的任何人进行传真复制,因为在专利与商标局内它已经在专利文件或记录当中出版了,但是无论如何在别的方面却保留所有的版权权利。下列标记适用于如下所述的软件和数据,并且在图中附此标记Copyright2001,Sony Electronics,Inc.,版权所有。
背景技术
随着对网络、多媒体、数据库及其它数字容量需要的快速增长,已经演进出许多多媒体编码和存储方案。其中一个众所周知的用于编码和存储视听数据的文件格式就是由苹果计算机公司开发的QuickTime文件格式。把QuickTime文件格式用作为创建国际标准化组织(ISO)多媒体文件格式的起点,ISO/IEC 14496-12,信息技术—视听对象编码——第12部分ISO媒体文件格式(又名ISO文件格式),所述QuickTime文件格式又依次被用作为以下两种标准文件格式的模板(1)用于由活动图像专家组开发的MPEG-4文件格式,通常所说的MP4(ISO/IEC 14496-14,信息技术——视听对象编码——第14部分MP4文件格式);和(2)由联合图像专家组(JPEG)开发的JPEG 2000(ISO/IEC 15444-1)的文件格式。
ISO媒体文件格式由称为框(也称为原子或对象)的面向对象的结构组成。两个重要的顶层框包含媒体数据或元数据。大多数框都描述了元数据的层次,所述元数据提供了关于实际媒体数据的说明性的、结构上的和时间上的信息。这个框的集合是包含在通称为电影框的框中。媒体数据本身可以位于媒体数据框之中或之外。将每个媒体数据流称为轨道(又名基本流或简单称为流)。
最初的元数据是电影对象。电影框包括轨道框,所述轨道框描述临时显示的媒体数据。对应轨道的媒体数据可以具有各种类型(例如,视频数据、音频数据、二进制格式屏幕表示(BIFS)等等)。每个轨道都进一步划分为采样(又名访问单元或画面)。采样代表在特定时间点处的媒体数据的单元。采样元数据是包含在一组采样框中的。每个轨道框都包含采样表框元数据框,其包含为它的媒体数据等提供每个采样的时间、其字节大小及其位置(文件的外部或内部)等等的框。采样是最小的数据实体,它能够表示时间、位置及其它元数据信息。
最近,MPEG视频组与国际电信联盟(ITU)的视频编码专家组(VCEG)作为联合视频组(JVT)一起开始工作,以开发称为ITURecommendation H.264或MPEG-4-Part 10的新视频编码/解码(编解码器)标准,高级视频编解码器(AVC)或JVT编解码器。在此,可互换地使用这些术语及其缩写,比如像H.264、JVT和AVC。
JVT编解码器设计区分了两种不同的概念层视频编码层(VCL)和网络抽象层(NAL)。VCL包含编解码器中有关编码的部分,比如像运动补偿、系数变换编码和熵编码。VCL的输出是时间片(slice),每个时间片都包含一系列的宏块以及相关联的首部信息。NAL从用于VCL数据的运输层的细节中抽象化出VCL。它为时间片层上的信息定义了一般的且运输独立的表示。NAL定义视频编解码器本身与外界之间的接口。在内部,NAL使用NAL分组。NAL分组包括表明净载荷类型的类型字段外加净载荷中的比特集。单个时间片内的数据可以进一步分成不同的数据分区。
在许多现有的视频编码格式中,编码的数据流包括各类包含控制解码过程的参数的首部。例如,MPEG-2视频标准包括序列首部、增强式画面组(GOP)和对应于那些项的视频数据前面的画面首部。在JVT中,把解码VCL数据所需的信息集合成参数集。给每个参数集一个标识符,该标识符随后被用作为来自时间片的引用。可以在流外部(带外)发送参数集,而不是在流内部(带内)发送所述参数集。
现有的文件格式没有提供用于存储与已编码的媒体数据相关联的参数集的工具;它们也没有提供用于有效地将媒体数据(即,采样或子采样)链接到参数集以便能够有效地检索和发送参数集的装置。
在ISO媒体文件格式中,在不解析媒体数据的情况下能够被访问的最小单位是采样,即AVC中的整个画面。在许多编码格式中,能够把采样进一步分成更小的单元,称为子采样(也称为采样片段或访问单元片段)。就AVC来说,子采样相当于时间片。然而,现有的文件格式不支持对采样的子部分的访问。对于需要灵活地将存储在文件中的数据形成用于流送(streaming)的系统而言,这种缺乏对子采样的访问,阻碍了用于流送的JVT媒体数据的灵活分组化。
现有的存储格式的另一个限制与响应于当流送媒体数据时改变网络条件而在已存储的流和不同带宽之间进行切换有关。在典型的流送情形中,其中一个关键要求就是响应于改变网络条件来缩放压缩数据的比特率。典型情况下,这是通过对具有为典型的网络条件而设置的不同带宽和质量的多个流进行编码并将它们存储在一个或多个文件中来实现的。然后,服务器能够响应于网络条件而在这些预先编码的流当中进行切换。在现有的文件格式中,仅可以在不依赖于用来重构的早先采样的那些采样上进行流之间的切换。这类采样称为I帧。目前,在依赖于用来重构的早先采样的那些采样(即,依赖于用于参考的多个采样的P帧或B帧)上,没有为流之间的切换提供支持。
AVC标准提供通称切换画面(称为SI画面和SP画面)的工具,以实现流之间的高效切换、随机访问和错误恢复力以及其它的特征。切换画面是一种特殊类型的画面,这种画面的重构值刚好等于它应当切换成的画面的值。切换画面能够使用不同于那些用于预测它们匹配的画面的参考画面,由此比使用I帧提供了更高效的编码。为了有效地使用文件中存储的切换画面,必须知道哪些组画面是等同的,并且必须知道哪些画面被用于预测。现有的文件格式没有提供这种信息,因此必须通过解析编码的流来提取这些信息,这将是低效而缓慢的。
因此,需要增强存储方法以便解决通过出现视频编码标准而提供的新能力,并且解决那些存储方法的现有限制。
发明概述创建定义多媒体数据内的采样编组的采样组元数据。此外,所述编组是以采样的相互依赖性为基础的。此外,形成与所述多媒体相关联的文件。这个文件包括参数组元数据和与多媒体数据有关的其它信息。
附图简述本发明是在附图中按照举例的方式而非限制的方式加以说明的,并且在图中相同的附图标记指代相似的元件,在图中

图1是编码系统的一个实施例的框图;图2是解码系统的一个实施例的框图;图3是适用于实践本发明的计算机环境的框图;图4是用于在编码系统上存储子采样元数据的方法的流程图;图5是用于在解码系统上使用子采样元数据的方法的流程图;图6举例说明了具有子采样的扩展的MP4媒体流模型;图7A-7K举例说明了用于存储子采样元数据的示例性数据结构;图8是用于在编码系统上存储参数集元数据的方法的流程图;图9是用于在解码系统上使用参数集元数据的方法的流程图;图10A-10E举例说明了用于存储参数集元数据的示例性数据结构;图11举例说明了示例性的增强式画面组(GOP);图12是用于在编码系统上存储序列元数据的流程图;图13是用于在解码系统上使用序列元数据的方法的流程图;图14A-14E举例说明了用于存储序列元数据的示例性数据结构;图15A和15B举例说明了用于比特流切换的切换采样集的使用;图15C是用于确定在其上执行两个比特流之间的切换的点的方法的一个实施例的流程图;图16是用于在编码系统上存储切换采样元数据的方法的流程图17是用于在解码系统上使用切换采样元数据的方法的流程图;图18举例说明了用于存储切换采样元数据的示例性数据结构;图19A和19B举例说明了用以简化到比特流中的随机访问入口点的切换采样集的使用;图19C是用于确定采样的随机访问点的方法的一个实施例的流程图;图20A和20B举例说明了用以简化错误恢复的切换采样集的使用;和图20C是当发送采样时用于简化错误恢复的方法的一个实施例的流程图。
发明详述在下文对本发明实施例的详细说明中,参照了附图,在这些图中相同的附图标记表示相似的元件,并且在这些图中通过举例说明的方式示出了具体实施例,在这些具体实施例当中可以实施本发明。足够详细地描述了这些实施例,以使得本领域的技术人员能够实施本发明,且将要理解的是,也可以采用其它实施例,并且在不背离本发明范围的情况下可以作出逻辑的、机械的、电的、功能性的及其它的改变。因此,不应把下列详细说明视作为限制意义,而应当仅仅由所附的权利要求来限定本发明的范围。
概观从本发明的操作概观开始起,图1举例说明了编码系统100的一个实施例。编码系统100包括媒体编码器104、元数据生成器106和文件创建器108。媒体编码器104接收可能包含视频数据(例如,从自然源视频场景中创建的视频对象及其它外部视频对象)、音频数据(例如,从自然源音频场景中创建的音频对象及其它外部音频对象)、合成对象或上述的任意组合的媒体数据。媒体编码器104可以由许多单独的编码器组成或包括子编码器,以处理各种类型的媒体数据。媒体编码器104对媒体数据进行编码并将其传递到元数据生成器106。元数据生成器106根据媒体文件格式来生成提供关于媒体数据的信息的元数据。媒体文件格式可能来源于ISO媒体文件格式(或任何其变型,比如MPEG-4、JPEG 2000等)、QuickTime或任何其它的媒体文件格式,并且还包括一些附加的数据结构。在一个实施例中,定义附加的数据结构以存储与媒体数据内的子采样有关的元数据。在另一个实施例中,定义附加数据结构以存储把部分媒体数据(例如,采样或子采样)链接到相应的参数集的元数据,所述参数集包含了传统上一直存储在媒体数据中的解码信息。在又一个实施例中,定义附加数据结构以存储与元数据内的各种采样组有关的元数据,所述元数据是根据媒体数据中采样的相互依赖性而创建的。在又一个实施例中,定义附加数据结构以存储与切换采样集有关的元数据,所述采样集与媒体数据相关联。切换采样集指的是这样一组采样,它们具有相同解码值但可以依赖于不同采样。在其它的实施例中,以正在使用的文件格式来定义附加数据结构的各种组合。这些附加数据结构及其功能将在下面更详细地描述。
文件创建器108在文件中存储元数据,所述文件的结构是按媒体文件格式定义的。在一个实施例中,所述文件既包含已编码的媒体数据也包含与那个媒体数据有关的元数据。作为选择,已编码的媒体数据是部分地或全部地包含在独立的文件中的,并且按元数据文件中所含的引用(例如,经由URL)而链接于元数据。文件创建器108所创建的文件在用于存储或发送的信道110上是可用的。
图2举例说明了解码系统200的一个实施例。解码系统200包括元数据提取器204、媒体数据流处理器206、媒体解码器210、合成器212和再现器。解码系统200可以驻留在客户端设备上,并且用于本地重放。作为选择,解码系统200可以用来流送数据,并且具有彼此在网络(例如,因特网)208上相互通信的服务器部分和客户端部分。服务器部分可以包括元数据提取器204和媒体数据流处理器206。客户端部分可以包括媒体解码器210、合成器212和再现器214。
元数据提取器204负责从存储在数据库216中的文件当中提取元数据或者在网络上(从编码系统100中)接收元数据。所述文件可以包括也可以不包括与正在提取的元数据相关联的媒体数据。从文件中提取的元数据包括上述的一个或多个附加数据结构。
把提取出的元数据传递到媒体数据流处理器206,所述媒体数据流处理器206还接收相关联的已编码媒体数据。媒体数据流处理器206利用该元数据来形成将要发送到媒体解码器210的媒体数据流。在一个实施例中,媒体数据流处理器206利用与子采样有关的元数据来定位媒体数据中的子采样(例如,以供分组化)。在另一个实施例中,媒体数据流处理器206利用与参数集有关的元数据来把部分媒体数据链接到其相对应的参数集上。在又一个实施例中,媒体数据流处理器206利用定义元数据内的各种采样组的元数据来访问一定组中的采样(例如,用于通过丢弃包含如下采样的组来缩放比例,响应于传输条件,没有其它采样依赖于所述采样以降低发送的比特率)。在又一个实施例中,媒体数据流处理器206利用定义切换采样集的元数据来定位与应当切换成到采样具有相同解码值的切换采样,但是不依赖于这个结果采样将要依赖的那些采样(例如,以便允许在P帧或B帧上切换成具有不同比特率的流)。
一旦形成媒体数据流,就直接地(例如,本地重放)或在网络208上(例如,用于流送数据)将它发送给媒体解码器210以供进行解码。合成器212接收媒体解码器210的输出,并且由再现器214把继而将在用户显示设备上再现的场景合成起来。
图3的下列说明意在提供适于实现本发明的计算机硬件及其它操作组件的概观,而不是意在限制可适用的环境。图3举例说明了适于用作为图1的元数据生成器106和/或文件创建器108或者图2的元数据提取器204和/或媒体数据流处理器206的计算机系统的一个实施例。
计算机系统340包括耦合于系统总线365的处理器350、存储器355和输入/输出能力360。将存储器355配置成能存储指令,当由处理器350执行所述指令时,执行这里所述的方法。输入/输出360也涵盖了各种类型的计算机可读媒体,包括可由处理器350访问的任意类型的存储装置。本领域技术人员将立刻认识到的是,术语“计算机可读介质/媒体”还涵盖对数据信号进行编码的载波。还应当认识到,系统340受存储器355中所执行的操作系统软件的控制。输入/输出及相关媒体360存储用于本发明的操作系统和方法的计算机可执行指令。图1和2中所示的元数据生成器106、文件创建器108、元数据提取器204和媒体数据流处理器206中的每一个都可以是耦合于处理器350的独立的组件,或者可以用处理器350所执行计算机可执行指令加以具体化。在一个实施例中,计算机系统340可以是ISP(因特网服务提供商)的一部分或者经输入/输出360耦合于ISP,以便在因特网上发送或接收媒体数据。显而易见的是,本发明不限于因特网访问和基于Web的因特网站点;还意在包括直接耦合的网络和专用网络。
将会认识到的是,计算机系统340只是许多可能的具有不同结构的计算机系统的一个示例。典型的计算机系统将通常至少包括处理器、存储器以及将存储器耦合到处理器的总线。本领域技术人员将立刻认识到的是,本发明能够利用其它的计算机系统配置加以实施,包括多处理器系统、微型计算机、大型计算机等。本发明还可以在分布式计算环境中加以实施,在所述分布计算环境中由经通信网络链接的远程处理装置来执行任务。
子采样可访问性图4和5举例说明了分别由编码系统100和200解码系统执行的、用于存储和检索子采样元数据的过程。该过程可以由如下处理逻辑来执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑等)、软件(比如,在通用计算机系统或专用机器上运行的)或上述两者的结合。对于软件实现的过程来讲,流程图的说明使本领域技术人员能够开发此类包含指令的程序,以便在适当配置的计算机(执行来自于计算机可读媒体的指令的计算机的处理器,包括存储器)上执行该过程。计算机可执行指令可以用计算机程序设计语言来编写,或者可以用固件逻辑来具体化。如果用程序设计语言编写符合公认的标准,那么就能够在各种硬件平台和到各种操作系统的接口上执行这类指令。另外,本发明的实施例并不是参照任何特定的程序设计语言而加以描述的。将会认识到的是,各种程序设计语言都可以用来实现这里所述的教导。此外,谈到当采取动作或产生结果时处于一种形式或另一种形式(例如,程序、方法、过程、应用、模块、逻辑等)的软件,这都是本领域中常见的。这类表达只是一种表述由计算机执行软件令计算机的处理器执行动作或产生结果的简捷方式。将会认识到的是,在不背离本发明范围的情况下,可以将更多或更少的操作并入到图4和5中举例说明的过程中,而且这里所描述和所示出的块的布局方案并未暗示特定的顺序。
图4是用于在编码系统100上创建子采样元数据的方法400的一个实施例的流程图。最初,方法400始于如下处理逻辑,所述处理逻辑接收具有已编码的媒体数据的文件(处理块402)。接下来,处理逻辑提取标识媒体数据中的子采样的边界的信息(处理块404)。依据正在使用的文件格式,能将时间属性附加到其上的数据流的最小单位称为采样(如ISO媒体文件格式或QuickTime定义的)、访问单元(如MPEG-4定义的)或画面(如JVT定义的)等等。子采样代表采样层下的数据流的连续部分。子采样的定义取决于编码格式,但是一般而言,子采样是有意义的采样子单元,可以将所述子单元作为单独实体或作为子单元组合来进行编码,以便获得采样的部分重构。子采样还可以称为访问单元片段。往往,子采样代表采样的数据流的划分,以便在相同个采样中每个子采样都具有对其它子采样的极小依赖性或者没有依赖性。例如,在JVT中,子采样是NAL分组。同样,对于MPEG-4视频而言,子采样将是视频分组。
在一个实施例中,编码系统100在上述JVT所定义的网络抽象层上进行操作。JVT媒体数据流由一系列NAL分组组成,其中每个NAL分组(也称为NAL单元)都包含首部部分和净载荷部分。其中一种类型的NAL分组用于包含每个时间片的已编码的VCL数据,或者包含时间片的单个数据分区(partition)。另外,NAL分组可以是包含补充增强信息(SEI)消息的信息分组。SEI消息代表将在对相应时间片进行解码时使用的任选数据。在JVT中,子采样可能是具有首部和净载荷两者的完整NAL分组。
在处理块406中,处理逻辑创建定义媒体数据中的子采样的子采样元数据。在一个实施例中,把子采样元数据编组成一组预定的数据结构(例如,一组框)。预定的数据结构组可以包括包含关于每个子采样的大小的信息的数据结构、包含关于每个采样中的子采样总数的信息的数据结构、包含描述每个子采样的信息(例如,把什么定义为子采样)的数据结构、或包含与子采样有关的数据的任何其它数据结构。
接下来,在一个实施例中,处理逻辑判断任一数据结构是否包含数据的重复序列(判断框408)。如果是肯定的判断,则处理逻辑就把数据的每个重复序列转换成对序列出现和重复序列出现次数的引用(处理块410)。
而后,在处理块412中,处理逻辑利用特定的媒体文件格式(例如,JVT文件格式)将子采样元数据归入到与媒体数据相关联的文件当中。依据媒体文件格式,可以把子采样元数据与采样元数据存储在一起(例如,可以把子采样数据结构归入到包含采样数据结构的采样表框中),或者独立于采样元数据将其存储起来。
图5是用于在解码系统200上使用子采样元数据的方法500的一个实施例的流程图。最初,方法500始于如下处理逻辑,所述处理逻辑接收与已编码的媒体数据相关联的文件(处理块502)。可以从数据库(本地的或外部的)、编码系统100中或者从网络上的任何其它装置那里接收所述文件。所述文件包括定义媒体数据中的子采样的子采样元数据。
接下来,处理逻辑从文件中提取子采样元数据(处理块504)。正如上面所论述的那样,子采样元数据可以存储在一组数据结构中(例如,一组框)。
此外,在处理块506中,处理逻辑利用提取出的元数据来标识已编码的媒体数据中的子采样(存储在相同文件中或者存储在不同文件中),并且把各种子采样组合成将要发送给媒体解码器的分组,由此实现了用于流送的媒体数据的灵活分组化(例如,支持错误恢复力、可缩放性等等)。
现在,将参照扩展的ISO媒体文件格式(称为扩展的MP4)来描述示例性的子采样元数据结构。将对本领域熟练技术人员显而易见的是,其它的媒体文件格式也易于被扩展以并入类似的用于存储子采样元数据的数据结构中。
图6举例说明了具有子采样的扩展的MP4媒体流模型。用电影602来代表显示数据(例如,包含同步音频和视频的显示)。所述电影602包括一组轨道604。每个轨道604都代表一个媒体数据流。每个轨道604都被分成采样606。每个采样606都代表在特定时点上的媒体数据的单元。采样606还被分成子采样608。在JVT标准中,子采样608可以代表NAL分组或单元,比如,画面的单个时间片、具有多个数据分区的时间片的一个数据分区、带内参数集、或SEI信息分组。作为选择,子采样606可以代表采样的任何其它的结构元素,比如,代表媒体中的空间或时间区域的已编码数据。在一个实施例中,能够把根据一些结构或语义准则的已编码媒体数据的任何分区都当作子采样对待。
图7A-7L举例说明了用于存储子采样元数据的示例性数据结构。
参照图7A,扩展含有按ISO媒体文件格式定义的采样元数据框的采样表框700,以便包含诸如子采样大小框702、子采样描述关联框704、子采样-采样框706和子采样描述框708之类的子采样访问框。在一个实施例中,子采样访问框的使用是任意的。
参照图7B,例如,可以把采样710分成诸如时间片712之类的时间片、诸如分区714之类的数据分区和诸如ROI 716之类的感兴趣区域(ROI)。这些示例中的每一个都代表不同种类的采样到子采样的划分。单个采样内的子采样可以具有不同的大小。
子采样大小框718包含规定子采样大小框718的版本的版本字段、规定缺省子采样大小的子采样大小字段、用于提供轨道中的子采样数目的子采样计数字段和规定每个子采样大小的条目大小字段。如果将子采样大小字段设置成0,那么子采样就具有存储在子采样大小表720中的不同大小。如果不将子采样大小字段设置为0,那么它就规定表明子采样大小表720为空的恒定子采样大小。表720可以具有32位的固定大小或用于表示子采样大小的可变长字段。如果字段是长度变化的,那么子采样表就包含表明子采样大小字段字节长度的字段。
参照图7C,子采样-采样框722包括规定子采样-采样框722的版本的版本字段和提供表723中的条目数目的条目计数字段。子采样-采样表中的每个条目都包含提供共享相同数目的子采样-每采样的那些采样的流送过程中的第一采样的索引的第一采样字段,和提供采样的流送过程内每个采样中的子采样数目的子采样-每采样字段。
通过计算多少采样正在流送,用适当子采样-每采样乘上这个数值,并且再把所有流送的结果加起来,就能利用表723来找出轨道中的子采样的总数。
参照图7D,子采样描述关联框724包括规定子采样描述关联框724的版本的版本字段、表明正在描述的子采样(例如,NAL分组、感兴趣区域等)类型的描述类型标识符和提供表726中的条目数目的条目计数字段。表726中的每个条目都包括表明子采样描述ID的子采样描述类型标识符字段,和给出在共享相同子采样描述ID的那些子采样的流送过程中的第一子采样的索引的第一子采样字段。
子采样描述类型标识符控制子采样描述ID字段的使用。也就是说,取决于描述类型标识符中规定的类型,子采样描述ID字段本身可以规定直接对ID本身内部的子采样描述进行编码的描述ID,或者子采样描述ID字段可以充当到不同表(即,如下所述的子采样描述表)的索引?例如,如果描述类型标识符表示JVT描述,则子采样描述ID标识符字段就可以包括规定JVT子采样的特性的代码。在这种情况下,子采样描述ID标识符字段可以是32位字段,具有用作为位屏蔽的最低有效的8位以表示子采样内的预定数据分区的存在,还具有用以表示NAL分组类型或用于将来扩展的高阶的24位。
参照图7E,子采样描述框728包括规定子采样描述框728的版本的版本字段;提供表730中的条目数目的条目计数字段;提供子采样描述字段的描述类型的描述类型标识符字段,所述子采样描述字段提供了关于子采样的特性的信息;和包含一个或多个子采样描述条目730的表。子采样描述类型标识描述性信息涉及到的类型,并且对应于子采样描述关联表724中的相同字段。表730中的每个条目都包含具有关于子采样的特性的信息的子采样描述条目,所述子采样与这个描述条目相关联。描述条目的信息和格式取决于描述类型字段。例如,当描述类型是参数集时,那么每个描述条目都将包含该参数集的值。
描述性信息可以涉及参数集信息、与ROI有关的信息或刻画子采样特性所需的任何其它信息。对于参数集来讲,子采样描述关联表724表明与每个子采样相关联的参数集。在这种情况下子采样描述ID对应于参数集标识符。同样,如下述那样,子采样能够表示不同的感兴趣区域。把子采样定义为一个或多个已编码的宏块,然后利用子采样描述关联表来表示已编码宏块到不同区域的图像帧或图像的划分。例如,帧中的已编码宏块能够被分成具有两个子采样描述ID(例如,子采样描述ID 1和2)的前景宏块和背景宏块,以分别表明给前景区域和背景区域的赋值。
图7F举例说明了不同类型的子采样。子采样可以表示不带分区的时间片732、具有多个数据分区的时间片734、时间片内的首部736、时间片中间的数据分区738、时间片末尾的数据分区740、SEI信息分组742等等。这些子采样类型中的每一种都可以与图7G所示出的8位屏蔽744的特定值相关联。正如上面所论述的那样,8位屏蔽可以形成32位子采样描述ID字段的8个最低有效位。图7H举例说明了具有等于“jvtd的描述类型标识符的子采样描述关联框724。表726包括存储图7G中的举例说明的值的32位子采样描述ID标识符字段。
图7H-7K举例说明了子采样描述关联表中的数据压缩。
参照图7I,未压缩的表726包括重复序列748的子采样描述ID的序列750。在已压缩的表746中,重复的序列750已经被压缩成对序列748的引用以及这个序列出现的次数。
在图7J中举例说明的一个实施例中,能够通过把序列出现的最高有效位用作为序列标志754的游程,把它的下一个23位用作为出现索引756,且把它的最低有效位用作为出现长度758,来在子采样描述ID标识符字段中对序列出现进行编码。如果将标志754设置成1,那么就表示这个条目是重复的序列出现。否则,这个条目是就子采样描述ID。发生索引756是序列第一次发生的子采样描述关联框724中的索引,而长度758表示重复的序列出现的长度。
在图7K中举例说明的另一个实施例中,使用重复序列出现表760来表示重复的序列出现。将子采样描述ID字段的最高有效位用作为序列标志762的游程,表明所述条目是否是子采样描述ID,或者用作为重复序列出现表760中的条目序列索引,所述重复序列出现表760是子采样描述关联框724的一部分。重复序列出现表760包括规定重复序列中第一项的子采样描述关联框724中的索引的发生索引字段,和规定重复序列的长度的长度字段。
参数集在某些媒体格式中,诸如像JVT,将“首部”信息包含媒体数据的适当解码所需的临界控制值从已编码的数据的剩余部分中分离出来/去耦合,并且将其存储在参数集当中。然后,已编码的数据能够使用诸如唯一标识符之类的机制来指代必要的参数集,而不是将流中的这些控制值与已编码的数据混合在一起。这种方法使得高层编码参数的发送与已编码的数据去耦合。同时,也通过将控制值的共用集共享为参数集而减少了冗余。
为了支持使用参数集的已存储媒体流的有效传输,发送器或播放器必须能快速地将已编码数据链接于相应的参数,以便了解参数集必须被发送或访问的时间和地点。本发明的一个实施例通过存储把参数集与相应的部分媒体数据之间的关联性指定为媒体文件格式中的参数集元数据的数据,而提供了这种能力。
图8和9举例说明了分别由编码系统100和解码系统200执行的用于存储和检索参数集元数据的过程。所述过程可以由如下处理逻辑来执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑等)、软件(比如运行在通用计算机系统或专用机器上的)或者上述两者的结合。
图8是用于在编码系统100创建参数集元数据的方法800的一个实施例的流程图。最初,方法800始于如下处理逻辑,所述处理逻辑接收具有已编码的媒体数据的文件(处理块802)。所述文件包括规定如何对部分媒体数据进行解码的编码参数集。接下来,处理逻辑检查称为参数集的编码参数集与相对应的部分媒体数据之间的关系(处理块804),并利用媒体数据部分来创建定义参数集及其关联的参数集元数据(处理块806)。所述媒体数据部分可以用采样或子采样来表示。
在一个实施例中,将参数集元数据编组成一组预定的数据结构(例如,一组框)。该预定的数据结构组可以包括包含关于参数集的描述性信息的数据结构,和包含定义采样与相应参数集之间的关联的信息的数据结构。在一个实施例中,该预定的数据结构组还包括包含定义子采样与对应参数集之间的关联的信息的数据结构。包含子采样与参数集之间关联的信息的数据结构可以或可以不必重载(override)包含采样与参数集之间关联的信息的数据结构。
接下来,在一个实施例中,处理逻辑判断任何参数集数据结构是否包含数据的重复序列(判断框808)。如果这一判断是肯定的,那么处理逻辑就把数据的每个重复序列转换成对序列出现的引用和序列出现的次数(处理块810)。
然后,在处理块812中,处理逻辑利用特定的媒体文件格式(例如,JVT文件格式)将参数集元数据归入到与媒体数据相关联的文件中。取决于媒体文件格式,可以将参数集元数据与轨道元数据和/或采样元数据存储在一起(例如,可以将包含关于参数集的描述性信息的数据结构归入到轨道框中,且可以将包含关联信息的数据结构归入到采样表框中),或者独立于轨道元数据和/或采样元数据而存储所述参数集元数据。
图9是用于在解码系统200上使用参数集元数据的方法900的一个实施例的流程图。最初,方法900始于如下处理逻辑,所述处理逻辑接收与已编码的媒体数据相关联的文件(处理块902)。可以从数据库(本地的或外部的)、编码系统100中接收所述文件,或者从网络上的任何其它装置那里接收所述文件。所述文件包括定义媒体数据的参数集以及参数集与相对应的部分媒体数据(例如,相对应的采样或子采样)之间的关联的参数集元数据。
接下来,处理逻辑从文件中提取参数集元数据(处理块904)。正如上面所论述的那样,参数集元数据可以存储在一组数据结构(例如,一组框)中。
此外,在处理块906中,处理逻辑利用提取出的元数据来判断哪个参数集与特定的媒体数据部分相关联(例如,采样或子采样)。然后,可以使用这一信息来控制媒体数据部分以及相应参数集的传输时间。也就是说,必须在包含采样或子采样的分组前面或者与包含采样或子采样的分组一起发送将被用来对特定采样或子采样进行解码的参数集。
因此,参数集元数据的使用实现了参数集在更可靠的信道上的独立发送,减少了错误几率或令媒体流的一部分丢失的数据损失几率。
现在,将参照扩展的ISO媒体文件格式(称为扩展的ISO)来描述示例性的参数集元数据结构。然而,应当指出的是,其它的媒体文件格式也可以被扩展,以便并入用于存储参数集元数据的各种数据结构。
图10A-10E举例说明了用于存储参数集元数据的示例性数据结构。
参照图10A,扩展包含按ISO文件格式定义的轨道元数据框的轨道框1002,以便包括参数集描述框1004。另外,扩展包含按ISO文件格式定义的采样元数据框的采样表框1006,以便包括采样到参数集框1008。在一个实施例中,采样表框1006包括子采样到参数集框,该子采样到本参数集框可以重载如下面将更详细论述的采样到参数集框1008。
在一个实施例中,参数集元数据框1004和1008是强制性的。在另一个实施例中,只有参数集描述框1004是强制性的。在又一个实施例中,所有参数集元数据框都是任意的。
参照图10B,参数集描述框1010包含规定参数集描述框1010的版本的版本字段、用以提供表1012中的条目数目的参数集描述计数字段和包含对应参数集本身的条目的参数集条目字段。
可以从采样层或子采样层那里引用参数集。参照图10C,采样到参数集框1014提供了从采样层对参数集的引用。采样到参数集框1014包括规定采样到参数集框1014的版本的版本字段、规定缺省参数设置ID的缺省参数设置ID字段、提供表1016中的条目数目的条目计数字段。表1016中的每个条目都包含提供共享相同参数集的那些采样的游程中第一采样的索引的第一采样字段,和指定到参数集描述框1010的索引的参数集索引。如果缺省参数设置ID等于0,那么采样就具有存储在表1016中的不同参数集。否则,使用恒定参数设置并且无数组跟随。
在一个实施例中,通过把每个重复序列转换成初始序列到的引用和这个序列出现的次数,来压缩表1016中的数据,正如上面结合子采样描述关联表更详细论述的那样。
可以通过定义参数集与子采样之间的关联,来从子采样层引用参数集。在一个实施例中,参数集与子采样之间的关联是利用上述的子采样描述关联框来定义的。图10D举例说明了具有引用参数集的描述类型标识符(例如,描述类型标识符等于“解析”)的子采样描述关联框1018。根据这个描述类型标识符,表1020中的子采样描述ID表明参数集描述框1010中的索引。
在一个实施例中,当具有引用参数集的描述类型标识符的子采样描述关联框1018存在时,它重载采样到参数集框1014。
参数集可以在创建参数集时与使用参数集来对相对应的部分媒体数据进行解码时之间变化。如果这类变化发生的话,解码系统200就接收规定对参数集的改变的参数更新分组。参数集元数据包括标识更新前后的参数集状态的数据。
参照图10E,参数集描述框1010包括在t0时创建的初始参数设置1022的条目、和响应于在时间t1时接收的参数更新分组1026而创建的更新参数设置1024的条目。子采样描述关联框1018把两个参数集与相对应的子采样关联起来。
采样组虽然轨道内的采样可能具有编组成如下序列的采样的各种逻辑编组(分区),其中所述序列表示媒体数据中的高层结构,但是现有的文件格式未提供用于表示和存储这类编组的便利机制。例如,高级的编码格式(诸如JVT)根据单个轨道内采样的相互依赖性而将这些采样编组成组群。当网络条件需要时,这些组群(这里称为序列或采样组)可以用来标识可任意处理的采样链,由此支持时间的可缩放性。对定义文件格式中的采样组的元数据进行存储,使媒体的发送器能够容易而有效地实现上述特征。
采样组的一个示例是这样的一组采样,它们的帧间依赖性允许独立于其它采样而对它们进行解码。在JVT中,这类采样组称为增强式画面组(增强式GOP)。在增强式GOP中,可以把采样分成子序列。每个子序列都包括这样的一组采样,它们相互依赖并且可以把它们作为单元来处理。另外,可以把增强式GOP的采样分层地构造成层,以便仅仅从较低层中的采样预测较高层中的采样,由此允许在不影响解码其它采样的能力的情况下处理最高层的采样。包括不依赖于任何其它层中的采样的那些采样的最低层称为基层。非基层的任何其它层都称为增强层。
图11举例说明了示例性的增强式GOP,在其中采样被分成两层一基层1102和增强层1104,以及两个子序列1106和1108。两个子序列1106和1108中的每一个能够被彼此独立地丢弃。
图12和13举例说明了分别由编码系统100和解码系统200执行的用于存储和检索采样组元数据的过程。所述过程可以由如下处理逻辑,所述处理逻辑可以包括硬件(例如,电路、专用逻辑等)、软件(比如运行在通用计算机系统或专用机器上的)或者上述两者的结合。
图12是用于在编码系统100上创建采样组元数据的方法1200的一个实施例的流程图。最初,方法1200始于如下处理逻辑,所述处理逻辑接收具有已编码媒体数据的文件(处理块1202)。媒体数据的轨道内的采样具有一定的相互依赖性。例如,所述轨道可以包括不依赖于任何其它采样的I帧、依赖于单个在前采样的P帧、以及依赖于两个在前采样的B帧,还包含I帧、P帧和B帧的任意组合。根据它们的相互依赖性,能够把轨道中的采样逻辑上组合成采样组(例如,增强式GOP、层、子序列等等)。
接下来,处理逻辑检查媒体数据以便标识每个轨道中的采样组(处理块1204),并创建描述所述采样组的采样组元数据,并且定义将在每个采样组中包含哪些采样(处理块1206)。在一个实施例中,把采样组元数据编组成一组预定数据结构(例如,一组框)。预定的数据结构组可以包括包含关于每个采样组的描述性信息的数据结构和包含标识每个采样组中所含的信息的数据结构。
接下来,在一个实施例中,处理逻辑判断任何采样分组数据结构是否包含数据的重复序列(判断框1208)。如果这个判断是肯定的,则处理逻辑就把数据的每个重复序列转换成到序列出现的引用和序列出现的次数(处理块1210)。
然后,在处理块1212上,处理逻辑利用特定的媒体文件格式(例如,JVT文件格式)将采样组元数据归入到与媒体数据相关联的文件中。取决于媒体文件格式,可以将采样组元数据与采样元数据(例如,可以把采样分组数据结构包含到采样表框中)存储在一起,或者独立于采样元数据将所述采样组元数据存储起来。
图13是用于在解码系统200上使用采样组元数据的方法1300的一个实施例的流程图。最初,方法1300始于如下处理逻辑,所述处理逻辑接收与已编码的媒体数据相关联的文件(处理块1302)。可以从数据库(本地的或外部的)、编码系统100中或者从网络上的任何其它装置那里接收所述文件。所述文件包括定义媒体数据中的采样组的采样组元数据。
接下来,处理逻辑从文件中提取采样组元数据(处理块1304)。正如上面所论述的那样,可以在数据结构组(例如,一组框)中存储采样组元数据。
此外,在处理块1306上,处理逻辑利用提取出的采样组元数据来标识采样链,可以在不影响解码其它采样的能力的情况下处理所述采样链。在一个实施例中,这个信息可以用来访问特定采样组中的采样,并用来判断响应于网络能力方面的变化能丢弃哪些采样。在其它实施例中,利用采样组元数据来过滤采样,以便仅仅处理或再现轨道中的一部分采样。
因此,采样组元数据方便了对采样的选择性访问和可缩放性。
现在,将参照扩展的ISO媒体文件格式(称为扩展的MP4)来描述示例性采样组元数据结构。然而,应当指出的是,其它媒体文件格式也可以被扩展,以便并入用于存储采样组元数据的各种数据结构。
图14A-14E举例说明了用于存储采样组元数据的示例性数据结构。
参照图14A,扩展包含按MP4定义的采样元数据框的采样表框1400,以便包含采样组框1402和采样组描述框1404。在一个实施例中,采样组元数据框1402和1404是任意的。
参照图14B,使用采样组框1406来找出特定采样组中所含的一组采样。允许采样组框1406的多个实例,以便对应于采样组的不同类型(例如,增强式GOP、子序列、层、参数集等)。采样组框1406包含规定采样组框1406版本的版本字段、用以提供表1408中的条目数目的条目计数字段、用以标识采样组类型的采样组标识符字段、提供相同采样组中所含的那些采样的流送过程中的第一采样的索引的第一采样字段、和规定到采样组描述框的索引的采样组描述索引。
参照图14C,采样组描述框1410提供了关于采样组的特性的信息。采样组描述框1410包含规定采样组描述框1410的版本的版本字段、用以提供表1412中的条目数目的条目计数字段、用以标识采样组类型的采样组标识符字段、和用以提供采样组描述符的采样组描述字段。
参照图14D,举例说明了层(“layr”)采样组类型的采样组框1416的使用。根据采样的相互依赖性将采样1至11分成三层。在第0层(基层)中,采样(采样1、6和11)都只彼此依赖,而不是依赖于任何其它层中的采样。在第1层中,采样(采样2、5、7、10)依赖于较低层(即,第0层)中的采样和此第1层内的采样。在第2层中,采样(采样3、4、8、9)依赖于较低层(第0和1层)中的采样和此第2层内的采样。因此,能够在不影响对来自于较低的第0和1层的采样解码的能力的情况下安排第2层的采样。
采样组框1416中的数据说明了采样与所述层之间的上述关联。如图所示,这个数据包括重复的层模式1414,可以通过把每个重复的层模式转换成对初始层模式的引用和这个模式出现的次数,来压缩所述重复的层模式,正如上面详细论述的那样。
参照图14E,举例说明了子序列(“sseq”)采样组类型的采样组框1418的使用。根据采样的相互依赖性将采样1至11分成四个子序列。除在第0层上的子序列0之外,每个子序列都包括无其它的子序列依赖于它的采样。因此,必要时可以把子序列中的采样作为单元来安排。
采样组框1418中的数据说明了采样与子序列之间的关联性。这个数据允许在相对应的子序列的起始处随机访问采样。
流切换在典型的流送的情形下,其中一个关键要求就是响应于改变网络条件而缩放压缩数据的比特率。实现这个的简单方法就是对具有用于典型网络条件的不同比特率和质量设置的多个流进行编码。然后,能够响应于网络条件而在这些预先编码的流当中切换服务器。
JVT标准提供了称为切换画面的新型画面,在不需要两个画面都使用用于预测的相同帧的情况下,所述切换画面允许一个画面同等地重构另一个。具体来讲,JVT提供了两种类型的切换画面类似于I帧的SI画面,独立于任何其它画面而对其进行编码;和SP画面,参照其它画面来对其进行编码。响应于改变传送条件,可以使用切换画面来实现在具有不同的比特率和质量设置的流当中进行切换,以便提供错误恢复力,并且实现像快速进带和倒带一样的变速杆模式(trick mode)。
然而,为了当实现流切换、错误恢复力、变速杆模式及其它特征时有效地使用JVT切换画面,播放器必须知道所存储的媒体数据中的哪些采样具有可选的表示并且它们的依赖物是什么。现有的文件格式没有提供这种能力。
本发明的一个实施例通过定义切换采样集而解决了上述限制。切换采样集表示这样的一组采样,它们的解码值相等,但是它们可以使用不同的参考采样。参考采样是用于预测另一个采样的值的采样。切换采样集的每个成员称为切换采样。图15A举例说明了用于比特流切换的切换采样集的使用。
参照图15A,流1和流2是两个具有不同质量和比特率参数的相同内容的编码。采样S12是不出现在每一个流中的SP画面,它用于实现从流1到流2的切换(切换是方向性特性)。采样S12和S2是包含在切换采样集中的。S1和S12两者都是根据轨道1中的采样P12预测的,而S2是根据轨道2中的采样P22预测的。尽管采样S12和S2使用不同的参考采样,但是它们的解码值是相等的。因此,通过切换采样S12能够实现从流1到流2的切换(在流1中的采样1处和流2中的S2处)。
图16和17举例说明了分别由编码系统100和解码系统200执行的用于存储和检索切换采样元数据的过程。所述过程可以由如下处理逻辑来执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑等)、软件(比如在通用计算机系统或专用机上执行的)或上述两者的结合。
图16是用于在编码系统100上创建切换采样元数据的方法1600的一个实施例的流程图。最初,方法1600始于如下处理逻辑,所述处理逻辑接收具有已编码的媒体数据的文件(处理块1602)。所述文件包括用于媒体数据的一个或多个可选的编码(例如,用于典型网络条件的不同带宽和质量设置)。所述可选的编码包括一个或多个切换画面。这类画面可以包含在可选的媒体数据流之内,或者作为实现比如错误恢复力或变速杆模式之类的特定特征的独立实体。用于创建这些轨道和切换画面的方法并不是本发明指定的,而是各种可能性都对于本领域熟练技术人员而言将是显而易见的。例如,每对包含可选编码的轨道之间的切换采样的定期(例如,每一秒)设置。
接下来,当使用不同的参考采样时,处理逻辑检查文件以创建切换采样集(处理块1604),所述切换采样集包括那些具有相同解码值的采样,并且创建定义媒体数据的切换采样集的切换采样元数据并描述切换采样集内的采样(处理块1606)。在一个实施例中,把切换采样元数据编组成预定的数据结构,比如包含一组嵌套表的表框。
接下来,在一个实施例中,处理逻辑判断切换采样元数据结构是否包含数据的重复序列(判断框1608)。如果这一判断是肯定的,则处理逻辑就把数据的每个重复序列转换成到序列出现的引用和序列出现的次数(处理块1610)。
然后,在处理块1612中,处理逻辑利用特定的媒体文件格式(例如,JVT文件格式)将切换采样元数据包含到与媒体数据相关联的文件中。在一个实施例中,切换采样元数据可以存储在为流切换而标明的独立轨道中。在另一个实施例中,将切换采样元数据与采样元数据一起存储起来(例如,可以把序列数据结构包含在采样表框中)。
图17是用于在解码系统200上使用切换采样元数据的方法1700的一个实施例的流程图。最初,方法1700始于如下处理逻辑,所述处理逻辑接收与已编码的媒体数据相关联的文件(处理块1702)。可以从数据库(本地的或外部的)、编码系统100中接收所述文件,或者从网络上的任何其它装置那里接收所述文件。所述文件包括定义与媒体数据相关联的切换采样集的切换采样元数据。
接下来,处理逻辑从文件中提取切换采样元数据(处理块1704)。正如上面所论述的那样,切换采样元数据可以存储在诸如包含一组嵌套表的表框之类的数据结构中。
此外,在处理块1706中,处理逻辑利用提取出的元数据来找出包含特定采样的切换采样集,并从所述切换采样集中选择可选的采样。响应于改变网络条件,可以使用作为和初始采样具有相同解码值的可选采样来在两个不同编码的比特流之间进行切换,以便提供到比特流中的随机访问入口点,从而便于错误恢复等等。
现在,将参照扩展的ISO媒体文件格式(称为扩展的MP4)来描述示例性切换采样元数据结构。然而,应当指出的是,其它媒体文件格式也能被扩展,以便并入用于存储切换采样元数据的各种数据结构。
图18举例说明了用于存储切换采样元数据的示例性数据结构。所述示例性数据结构是包括一组嵌套表的切换采样表框的形式。表1802中的每个条目都标识一个切换采样集。每个切换采样集都由一组切换采样组成,所述切换采样组的重构客观上是等同的(或感性上是等同的),但是能够根据可以或可以不必作为切换采样而处于相同轨道(流)中的不同参考采样来预测所述切换采样组。表1802中的每个条目都链接于相对应的表1804。表1804标识了切换采样集中所含的每个切换采样。表1804中的每个条目还都链接于相对应的表1806,该表定义了切换采样的位置(即,它的轨道号和采样号),所述轨道包含切换采样所使用的参考采样、切换采样所使用的参考采样的总数以及切换采样所使用的每个参考采样。
正如图15A中举例说明的那样,在一个实施例中,可以使用切换采样元数据来在相同内容的不同编码版本之间进行切换。在MP4中,把每个可选的编码存为独立的MP4轨道,并且轨道首部中的“可选组”表明它是特定内容的可选编码。
图15B举例说明了根据图15A的、包含定义切换采样集1502的元数据的表,所述切换采样集1502由采样S2和S12组成。
图15C是用于判断如下点的方法1510的一个实施例的流程图,其中在所述点处将执行两个比特流之间的切换。假定将要从流1到流2执行切换,方法1510始于搜索切换采样元数据,以找出所有包含具有流1的参考轨道的切换采样和具有流2的切换采样轨道的切换采样的切换采样集(处理块1512)。接下来,评估得到的切换采样集,以选择其中具有流1的参考轨道的切换采样的所有参考采样都可用的切换采样集(处理块1514)。例如,如果具有流1的参考轨道的切换采样是P帧,那么在切换之前要求一个采样是可用的。此外,利用所选的切换采样集中的采样来确定切换点(处理块1516)。也就是说,切换点被认定为是将经由具有流1的参考轨道的切换采样而紧接在具有流1的参考轨道的切换采样的最高参考采样之后,且直到紧跟具有流2的切换采样轨道的切换采样的采样那里。
在另一个实施例,可以使用切换采样元数据来便于随机访问到比特流中的入口点,正如在图19A-19C中举例说明的那样。
参照图19A和19B,切换采样1902由采样S2和S12组成。S2是根据P22预测的P帧,并且在普通的流重放期间使用所述S2。S12用作为随机访问点(用于编接)。一旦S12被解码,流重放就继续进行P24的解码,就好似P24是在S2之后被解码一样。
图19C是用于确定采样(例如,轨道T上的采样S)的随机访问点的方法1910的一个实施例的流程图。方法1910始于搜索切换采样元数据以找出包含具有切换采样轨道T的切换采样的所有切换采样集(处理块1912)。接下来,评估得到的切换采样集,以便选择这样的切换采样集,在所述切换采样集中,具有切换采样轨道T的切换采样在解码顺序上是在采样S之前的最邻近的采样(处理块1914)。此外,从所选的切换采样集中选出除具有切换采样轨道T的切换采样之外的切换采样(采样SS),以作为到采样S的随机访问点(处理块1916)。在流重放期间,对采样SS进行解码(继之以对在对应采样SS的条目中指定的任何参考采样进行解码),而不是对采样S进行解码。
在又一个实施例中,可以使用切换采样元数据来便于错误恢复,正如图20A-20C中所举例说明的那样。
参照图20A和20B,切换采样2002由采样S2、S12和S22组成。采样S2是根据采样P4预测的。采样S12是根据采样S1预测的。如果在采样P2和P4之间发生错误,那么就可以对切换采样S12进行解码,而不是对采样S2进行解码。那么,流送照常继续采样P6。如果错误也影响了采样S1,则就可以对切换采样S22进行解码而不是对采样S2进行解码,然后流送将照常继续采样P6。
图20c是用于当发送采样(例如,采样S)时便于错误恢复的方法2010的一个实施例的流程图。方法2010始于搜索切换采样元数据以找出包含等于采样S或在按解码顺序上紧随采样S的切换采样的所有切换采样集(处理块2012)。接下来,评估得到的切换采样集以选择具有切换采样SS的切换采样集,所述切换采样SS最接近于采样S并且(经由反馈或其它信息源)已知它的参考采样将是正确的(处理块2014)。此外,发送切换采样SS而不是发送采样S(处理块2016)。
已经描述了视听元数据的存储和检索。尽管这里已经举例说明并描述了特定的实施例,但是本领域普通技术人员将会认识到的是,适于实现相同目的的任何布局方案都可以代替这里所示的特定实施例。本申请是用来涵盖本发明的任何修改或变形。
权利要求
1.一种方法,包括创建定义多媒体数据内的多个采样的编组的采样组元数据;以及形成与多媒体数据相关联的文件,所述文件包括所述采样组元数据。
2.如权利要求1所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
3.如权利要求1所述的方法,其中创建采样组元数据包括接收具有已编码的多媒体数据的文件;检查多媒体数据以标识多媒体数据的每个轨道中的多个采样组;以及标识多个采样组中的每一个中所含的采样。
4.如权利要求1所述的方法,其中创建采样组元数据包括把采样组元数据编组成一组预定的数据结构。
5.如权利要求4所述的方法,其中创建采样组元数据进一步包括把预定数据结构组内的数据的每个重复序列转换成对序列出现的引用和发生的次数。
6.如权利要求4所述的方法,其中预定的数据结构组包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
7.如权利要求1所述的方法,进一步包括将与多媒体数据相关联的文件发送到解码系统;在解码系统上接收与多媒体数据相关联的文件;以及在解码系统上,从与多媒体数据相关联的文件中提取采样组元数据,所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样。
8.一种方法,包括接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据内的多个采样的编组的采样组元数据;以及从文件中提取采样组元数据,所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样。
9.如权利要求8所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
10.如权利要求8所述的方法,进一步包括响应于网络能力方面的变化,找出能在不影响多媒体数据的剩余采样的解码的情况下处理的一个或多个采样。
11.如权利要求8所述的方法,进一步包括根据提取出的采样组元数据过滤多个采样,以减少将要再现的采样数目。
12.如权利要求8所述的方法,其中将提取出的采样组元数据编组成一组预定的数据结构。
13.如权利要求12所述的方法,其中所述预定的数据结构组包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
14.一种方法,包括创建定义多媒体数据的每个采样内的多个子采样的子采样元数据;创建定义多媒体数据内的多个采样的编组的采样组元数据;创建定义与多媒体数据相关联的多个切换采样集的切换采样元数据;以及形成与多媒体数据相关联的文件,所述文件包括子采样元数据、采样组元数据和切换采样元数据。
15.如权利要求14所述的方法,其中创建子采样元数据包括把子采样元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于子采样大小的信息;第二数据结构,其包含关于每个采样中的子采样数目的信息;和第三数据结构,其包含描述每个子采样的信息。
16.如权利要求14所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
17.如权利要求14所述的方法,其中创建采样组元数据包括把采样组元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
18.如权利要求14所述的方法,其中当使用不同的参考采样时,多个切换采样集中的每一个都包含具有相同解码值的采样。
19.如权利要求14所述的方法,其中创建切换采样元数据包括把切换采样元数据编组成表示为包含一组嵌套表的表框的预定数据结构。
20.一种方法,包括接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据的每个采样内的多个子采样的子采样元数据、定义多媒体数据内的多个采样的编组的采样组元数据、和定义与多媒体数据相关联的多个切换采样集的切换采样元数据;以及从文件中提取子采样元数据、采样组元数据和切换采样元数据,所提取出的子采样元数据随后被用于访问多个子采样中的任一个,所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样,并且所提取出的切换采样元数据随后被用于找出特定采样的代替物。
21.如权利要求20所述的方法,其中将提取出的子采样元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于子采样大小的信息;第二数据结构,其包含关于每个采样中的子采样数目的信息;和第三数据结构,其包含描述每个子采样的信息。
22.如权利要求20所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
23.如权利要求20所述的方法,其中将提取出的采样组元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
24.如权利要求20所述的方法,其中当使用不同的参考采样时,多个切换采样集中的每一个都包含具有相同解码值的采样。
25.如权利要求20所述的方法,其中将提取出的切换采样元数据编组成表示为包含一组嵌套表的表框的预定数据结构。
26.一种方法,包括创建定义多媒体数据的每个采样内的多个子采样的子采样元数据;创建定义多媒体数据内的多个采样的编组的采样组元数据;以及形成与多媒体数据相关联的文件,所述文件包括子采样元数据和采样组元数据。
27.如权利要求26所述的方法,其中创建子采样元数据包括把子采样元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于子采样大小的信息;第二数据结构,其包含关于每个采样中的子采样数目的信息;和第三数据结构,其包含描述每个子采样的信息。
28.如权利要求26所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
29.如权利要求26所述的方法,其中创建采样组元数据包括把采样组元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
30.一种方法,包括接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据的每个采样内的多个子采样的子采样元数据、和定义多媒体数据内的多个采样的编组的采样组元数据;以及从文件中提取子采样元数据和采样组元数据,所提取出的子采样元数据随后被用于访问多个子采样中的任一个,而所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样。
31.如权利要求30所述的方法,其中将提取出的子采样元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于子采样大小的信息;第二数据结构,其包含关于每个采样中的子采样数目的信息;和第三数据结构,其包含描述每个子采样的信息。
32.如权利要求30所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
33.如权利要求30所述的方法,其中将提取出的采样组元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
34.一种方法,包括创建定义多媒体数据内的多个采样的编组的采样组元数据;创建定义与多媒体数据相关联的多个切换采样集的切换采样元数据;以及形成与多媒体数据相关联的文件,所述文件包括采样组元数据和切换采样元数据。
35.如权利要求34所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
36.如权利要求34所述的方法,其中创建采样组元数据包括把采样组元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
37.如权利要求34所述的方法,其中当使用不同的参考采样时,多个切换采样集中的每一个都包含具有相同解码值的采样。
38.如权利要求34所述的方法,其中创建切换采样元数据包括把切换采样元数据编组成表示为包含一组嵌套表的表框的预定数据结构。
39.一种方法,包括接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据内的多个采样的编组的采样组元数据、和定义与多媒体数据相关联的多个切换采样集的切换采样元数据;以及从文件中提取采样组元数据和切换采样元数据,所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样,而所提取出的切换采样元数据随后被用于找出特定采样的代替物。
40.如权利要求39所述的方法,其中所述编组是以多个采样的相互依赖性为基础的。
41.如权利要求39所述的方法,其中将提取出的采样组元数据编组成一组预定的数据结构,包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
42.如权利要求39所述的方法,其中当使用不同的参考采样时,多个切换采样集中的每一个都包含具有相同解码值的采样。
43.如权利要求39所述的方法,其中将提取出的切换采样元数据编组成表示为包含一组嵌套表的表框的预定数据结构。
44.一种用于存储由在数据处理系统上执行的应用程序来访问的数据的存储器,所述存储器包括存储在所述存储器中的多个数据结构,所述多个数据结构都驻留在与多媒体数据相关联的文件中,并且包括定义多媒体数据内的多个采样的编组的采样组元数据,所述应用程序使用所述采样组元数据来标识能在将来的处理过程中处理的采样。
45.如权利要求44所述的存储器,其中所述编组是以多个采样的相互依赖性为基础的。
46.如权利要求44所述的存储器,其中包括采样组元数据的所述文件还包括相关联的多媒体数据。
47.如权利要求44所述的存储器,其中包含采样组元数据的文件包括对如下文件的引用,所述文件包含相关联的多媒体数据。
48.如权利要求44所述的存储器,其中多个数据结构包括第一数据结构,其包含关于多媒体数据内的多个采样组的描述性信息;和第二数据结构,其包含标识多个采样组的每一个中的采样的信息。
49.一种用于存储由在数据处理系统上执行的应用程序来访问的数据的存储器,所述存储器包括存储在所述存储器中的多个数据结构,所述多个数据结构都驻留在所述应用程序所使用的文件中,所述文件与多媒体数据相关联,并且包括定义多媒体数据的每个采样内的多个子采样的子采样元数据,定义多媒体数据内的多个采样的编组的采样组元数据,和定义与多媒体数据相关联的多个切换采样集的切换采样元数据。
50.一种用于存储由在数据处理系统上执行的应用程序来访问的数据的存储器,所述存储器包括存储在所述存储器中的多个数据结构,所述多个数据结构都驻留在所述应用程序所使用的文件中,所述文件与多媒体数据相关联,并且包括定义多媒体数据的每个采样内的多个子采样的子采样元数据,和定义多媒体数据内的多个采样的编组的采样组元数据。
51.一种用于存储由在数据处理系统上执行的应用程序来访问的数据的存储器,所述存储器包括存储在所述存储器中的多个数据结构,所述多个数据结构都驻留在所述应用程序所使用的文件中,所述文件与多媒体数据相关联,并且包括定义多媒体数据内的多个采样的编组的采样组元数据,和定义与多媒体数据相关联的多个切换采样集的切换采样元数据。
52.一种设备,包括元数据生成器,用于创建定义多媒体数据内的多个采样的编组的采样组元数据;和文件创建器,用于形成与多媒体数据相关联的文件,所述文件包括采样组元数据。
53.如权利要求52所述的设备,其中所述编组是以多个采样的相互依赖性为基础的。
54.如权利要求52所述的设备,其中所述元数据生成器用于通过接收具有已编码的多媒体数据的文件、检查多媒体数据以标识多媒体数据的每个轨道中的多个采样组以及标识多个采样组的每一个中所含的采样来创建采样组元数据。
55.如权利要求52所述的设备,进一步包括元数据提取器,用于在解码系统上接收与多媒体数据相关联的文件,并且用于从与多媒体数据相关联的文件中提取采样组元数据;和媒体数据流处理器,用于使用提取出的采样组元数据以标识能在将来的处理过程中处理的采样。
56.一种设备,包括元数据提取器,用于接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据内的多个采样的编组的采样组元数据,并且用于从文件中提取采样组元数据;和媒体数据流处理器,用于使用提取出的采样组元数据以标识能在将来的处理过程中处理的采样。
57.如权利要求56所述的设备,其中所述编组是以多个采样的相互依赖性为基础的。
58.如权利要求56所述的设备,其中媒体数据流处理器进一步用于响应于网络能力方面的变化来找出能在不影响剩余的多媒体数据的采样的解码的情况下处理的一个或多个采样。
59.如权利要求56所述的设备,其中媒体数据流处理器进一步用于根据提取出的采样组元数据来过滤多个采样,以减少将要再现的采样数目。
60.一种设备,包括元数据生成器,用于创建定义多媒体数据的每个采样内的多个子采样的子采样元数据,用于创建定义多媒体数据内的多个采样的编组的采样组元数据,以及用于创建定义与多媒体数据相关联的多个切换采样集的切换采样元数据;和文件创建器,用于形成与多媒体数据相关联的文件,所述文件包括子采样元数据、采样组元数据和切换采样元数据。
61.一种设备,包括元数据提取器,用于接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据的每个采样内的多个子采样的子采样元数据、定义多媒体数据内的多个采样的编组的采样组元数据和定义与多媒体数据相关联的多个切换采样集的切换采样元数据,并且用于从文件中提取子采样元数据、采样组元数据和切换采样元数据;和媒体数据流处理器,用于使用提取出的子采样元数据以访问多个子采样中的任一个,用于使用提取出的采样组元数据以标识能在将来的处理过程中处理的采样,并且用于使用提取出的切换采样元数据以找出特定采样的代替物。
62.一种设备,包括元数据生成器,用于创建定义多媒体数据的每个采样内的多个子采样的子采样元数据,并且用于创建定义多媒体数据内的多个采样的编组的采样组元数据;和文件创建器,用于形成与多媒体数据相关联的文件,所述文件包括子采样元数据和采样组元数据。
63.一种设备,包括元数据提取器,用于接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据的每个采样内的多个子采样的子采样元数据和定义多媒体数据内的多个采样的编组的采样组元数据,并且用于从文件中提取子采样元数据和采样组元数据;和媒体数据流处理器,用于使用提取出的子采样元数据以访问多个子采样中的任一个,并且用于使用提取出的采样组元数据以标识能在将来的处理过程中处理的采样。
64.一种设备,包括元数据生成器,用于创建定义多媒体数据内的多个采样的编组的采样组元数据,并且用于创建定义与多媒体数据相关联的多个切换采样集的切换采样元数据;和文件创建器,用于形成与多媒体数据相关联的文件,所述文件包括采样组元数据和切换采样元数据。
65.一种设备,包括元数据提取器,用于接收与多媒体数据相关联的文件,所述文件包括定义多媒体数据内的多个采样的编组的采样组元数据和定义与多媒体数据相关联的多个切换采样集的切换采样元数据,并且用于从文件中提取采样组元数据和切换采样元数据;和媒体数据流处理器,用于使用提取出的采样组元数据以标识能在将来的处理过程中处理的采样,并且用于使用提取出的切换采样元数据以找出特定采样的代替物。
66.一种设备,包括用于创建定义多媒体数据内的多个采样的编组的采样组元数据的装置;和用于形成与多媒体数据相关联的文件的装置,所述包括采样组元数据。
67.一种设备,包括用于接收与多媒体数据相关联的文件的装置,所述文件包括定义多媒体数据数据内的多个采样的编组的采样组元数据;和用于从文件中提取采样组元数据的装置,所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样。
68.一种设备,包括用于创建定义多媒体数据的每个采样内的多个子采样的子采样元数据的装置;用于创建定义多媒体数据内的多个采样的编组的采样组元数据的装置;用于创建定义与多媒体数据相关联的多个切换采样集的切换采样元数据的装置;和用于形成与多媒体数据相关联的文件的装置,所述文件包括子采样元数据、采样组元数据和切换采样元数据。
69.一种设备,包括用于接收与多媒体数据相关联的文件的装置,所述文件包括定义多媒体数据的每个采样内的多个子采样的子采样元数据、定义多媒体数据内的多个采样的编组的采样组元数据、和定义与多媒体数据相关联的多个切换采样集的切换采样元数据;和用于从文件中提取子采样元数据、采样组元数据和切换采样元数据的装置,所提取出的子采样元数据随后被用于访问多个子采样中的任一个,所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样,并且所提取出的切换采样元数据随后被用于找出特定采样的代替物。
70.一种设备,包括用于创建定义多媒体数据的每个采样内的多个子采样的子采样元数据的装置;用于创建定义多媒体数据内的多个采样的编组的采样组元数据的装置;和用于形成与多媒体数据相关联的文件的装置,所述文件包括子采样元数据和采样组元数据。
71.一种设备,包括用于接收与多媒体数据相关联的文件的装置,所述文件包括定义多媒体数据的每个采样内的多个子采样的子采样元数据和定义多媒体内的多个采样的编组的采样组元数据;和用于从文件中提取子采样元数据和采样组元数据的装置,所提取出的子采样元数据随后被用于访问多个子采样中的任一个,而所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样。
72.一种设备,包括用于创建定义多媒体数据内的多个采样的编组的采样组元数据的装置;用于创建定义与多媒体数据相关联的多个切换采样集的切换采样元数据的装置;和用于形成与多媒体数据相关联的文件的装置,所述文件包括采样组元数据和切换采样元数据。
73.一种设备,包括用于接收与多媒体数据相关联的文件的装置,所述文件包括定义多媒体数据内的多个采样的编组的采样组元数据和定义与多媒体数据相关联的多个切换采样集的切换采样元数据;和用于从文件中提取采样组元数据和切换采样元数据的装置,所提取出的采样组元数据随后被用于标识能在将来的处理过程中处理的采样,而所提取出的切换采样元数据随后被用于找出特定采样的代替物。
全文摘要
创建了定义多媒体数据内的采样组的采样组元数据。所述这些组都是以采样的相互依赖性为基础的。此外,形成了与多媒体数据相关联的文件。所述文件包括采样组元数据以及与多媒体数据有关的其它信息。
文档编号H04N7/24GK1650628SQ03809347
公开日2005年8月3日 申请日期2003年2月24日 优先权日2002年2月25日
发明者M·Z·维沙拉姆, A·塔巴塔拜, T·瓦尔克 申请人:索尼电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1