经译码视频数据的网络流式传输的制作方法

文档序号:12730884阅读:272来源:国知局
经译码视频数据的网络流式传输的制作方法与工艺

本案是分案申请。该分案的母案是申请日为2012年8月31日、申请号为201280042919.6、发明名称为“经译码视频数据的网络流式传输”的发明专利申请案。

本申请案主张2011年9月6日申请的第61/531,550号美国临时申请案的权益,该申请案特此以全文引用的方式并入本文中。

技术领域

本发明涉及经编码媒体数据的存储和传送。



背景技术:

数字视频能力可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置和类似装置。数字视频装置实施视频压缩技术(例如,由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)所定义的标准和这些标准的扩展中所描述的视频压缩技术),以更高效地发射和接收数字视频信息。

视频压缩技术执行空间预测和/或时间预测,以减少或移除视频序列中所固有的冗余。对于基于块的视频译码,一视频帧或切片可以分割成多个块。每一块可被进一步分割。使用相对于相邻块的空间预测来对经帧内译码(I)帧或切片中的块进行编码。经帧间译码(P或B)帧或切片中的块可以使用相对于相同帧或切片中的相邻块的空间预测或相对于其它参考帧的时间预测。

在视频数据已经过编码之后,可以将视频数据包化以用于发射或存储。可以将视频数据汇编成遵照多种标准中的任一种的视频文件,所述标准例如是国际标准化组织(ISO)基础媒体文件格式和其扩展,例如ITU-T H.264/AVC。可以用多种方式传送这些包化的视频数据,例如使用网络流式传输经由计算机网络发射。



技术实现要素:

总的来说,本发明描述用于经由网络流式传输媒体数据的技术。更确切地说,本发明的方面涉及减少与例如根据HTTP动态自适应流式传输(DASH)经由网络流式传输媒体数据相关联的等待时间。在一实例中,本发明的技术包含优化媒体数据片段的发射。也就是说,根据本发明的方面,一种负责提供媒体数据的装置(例如,服务器装置)可以将媒体数据片段划分成多个适合于在网络设置中发射的子片段。在这个实例中,一旦已形成媒体数据的子片段,服务器装置就可以发射所述子片段。

在一实例中,一种方法包含接收多媒体数据的片段的第一子片段,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示所述第一子片段内的所述数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考所述片段的第二子片段的数据单元。所述方法还包含:在接收到第一子片段之后,接收第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头;以及在接收到第一子片段和第二子片段之后处理所述片段的至少一部分。

在另一实例中,一种用于接收多媒体数据的设备包括一个或一个以上处理器。所述一个或一个以上处理器经配置以接收多媒体数据的片段的第一子片段,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示所述第一子片段内的所述数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考所述片段的第二子片段的数据单元。所述一个或一个以上处理器还经配置以在接收到所述第一子片段之后,接收所述第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。所述一个或一个以上处理器还经配置以在接收到所述第一子片段和所述第二子片段之后处理所述片段的至少一部分。

在另一实例中,一种用于接收多媒体数据的设备包括用于接收多媒体数据的片段的第一子片段的装置,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示第一子片段内的数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考片段的第二子片段的数据单元。所述设备还包括用于在接收到第一子片段之后接收第二子片段的装置,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。所述设备还包括用于在接收到所述第一子片段和所述第二子片段之后处理所述片段的至少一部分的装置。

在另一实例中,一种计算机程序产品包括计算机可读媒体,所述计算机可读媒体具有存储在其上的指令,所述指令在被执行时致使一个或一个以上处理器接收多媒体数据的片段的第一子片段,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示所述第一子片段内的所述数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考所述片段的第二子片段的数据单元。所述指令还致使所述一个或一个以上处理器在接收到所述第一子片段之后,接收所述第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。所述指令还致使所述一个或一个以上处理器在接收到所述第一子片段和所述第二子片段之后处理所述片段的至少一部分。

在另一实例中,一种方法包含发送多媒体数据的片段的第一子片段,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示所述第一子片段内的所述数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考所述片段的第二子片段的数据单元。所述方法还包含,在发送第一子片段之后,发送第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。

在另一实例中,一种用于发送多媒体数据的设备包括一个或一个以上处理器。所述一个或一个以上处理器经配置以发送多媒体数据的片段的第一子片段,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示所述第一子片段内的所述数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考所述片段的第二子片段的数据单元。所述一个或一个以上处理器还经配置以在发送所述第一子片段之后,发送所述第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。

在另一实例中,一种用于发送多媒体数据的设备包括用于发送多媒体数据的片段的第一子片段的装置,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示第一子片段内的数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考片段的第二子片段的数据单元。所述设备还包括用于在发送第一子片段之后发送第二子片段的装置,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。

在另一实例中,一种计算机程序产品包括计算机可读媒体,所述计算机可读媒体具有存储在其上的指令,所述指令在被执行时致使一个或一个以上处理器发送多媒体数据的片段的第一子片段,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示所述第一子片段内的所述数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考所述片段的第二子片段的数据单元。所述指令还致使所述一个或一个以上处理器在发送所述第一子片段之后,发送所述第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。

随附图式和以下描述中陈述一个或一个以上实例的细节。其它特征、目标和优点将从所述描述和图式以及权利要求书而显而易见。

附图说明

图1是图解说明实施用于经由网络流式传输媒体数据的技术的实例系统的框图。

图2是图解说明根据本发明的方面的实例检索单元的框图。

图3是图解说明实例多媒体内容的元素的概念图。

图4是图解说明根据本发明的方面的视频数据的实例片段的框图。

图5是图解说明用于执行本发明的技术的实例方法的流程图。

具体实施方式

总的来说,本发明描述用于经由网络流式传输例如音频和视频数据的多媒体数据的技术。本发明的技术可以配合HTTP动态自适应流式传输(DASH)使用。本发明描述可以配合网络流式传输执行的各种技术,这些技术中的任何或所有技术可以单独实施或以任何组合形式实施。如下文较详细描述,各种执行网络流式传输的装置可经配置以实施本发明的技术。

根据DASH和用于经由网络流式传输数据的类似技术,多媒体内容(例如电影或其它音频/视频内容,其还可包含文本叠加或其它数据)可以用多种方式并且以多种特性来编码。内容准备装置可以形成相同多媒体内容的多个表示。每一表示可以对应于特定一组特性(例如译码和再现特性),以便提供具有各种译码和再现能力的多种不同客户端装置可使用的数据。此外,具有各种位速率的表示可以允许带宽调适。也就是说,客户端装置可以确定目前可供使用的带宽量,并且基于可供使用的带宽量连同客户端装置的译码和再现能力来选择一种表示。

在一些实例中,内容准备装置可以指示一组表示具有一组共同特性。内容准备装置可以接着指示所述组中的表示形成调适组,因为所述组中的表示可以用于带宽调适。在一些情况下,调适组也可被称作“调适组”。也就是说,所述组中的表示的位速率可以不同,但以其它方式共有基本上相同的特性。以此方式,客户端装置可以确定用于多媒体内容调适组的各种共同特性组,并且基于客户端装置的译码和再现能力来选择调适组。接着,客户端装置可以基于带宽可用性在所选调适组中的表示之间自适应地切换。

内容准备装置还可为清单文件的不同部分提供分开的网络位置,所述清单文件例如是3GPP(第三代合作伙伴计划)规定的格式的媒体呈现描述(MPD)文件。也就是说,清单文件的不同部分可以通过例如各种统一资源识别符(URI)(例如统一资源定位符(URL))来独立寻址。清单文件的初始部分可包含URI、URL或清单文件的另一部分的其它位置识别符。举例来说,如上文所论述,清单文件的第一部分可包含对调适组的共同特性的描述。

调适组中的每一者可以与清单文件的相应不同部分相关联,所述清单文件可包含指示相应调适组中的表示的媒体数据的位置的数据。以此方式,客户端装置可以接收所述清单文件的第一部分,选择适当调适组,检索用于所选调适组的清单文件的另一部分,选择所选群组的表示,和使用清单文件的其它部分来检索所选表示的数据。此外,客户端装置可以使用清单文件的其它部分(也就是说,所选调适组特有的部分)根据改变的网络带宽进行调适。

视频文件(例如媒体内容的表示的片段)可以符合根据ISO基础媒体文件格式、可缩放视频译码(SVC)文件格式、高级视频译码(AVC)文件格式、第三代合作伙伴计划(3GPP)文件格式和/或多视图视频译码(MVC)文件格式或其它类似视频文件格式中的任一者包封的视频数据。

ISO基础媒体文件格式经设计以含有用于便于媒体的交换、管理、编辑和呈现的灵活的可扩展格式的呈现的定时媒体信息。ISO基础媒体文件格式(ISO/IEC 14496-12:2004)是在MPEG-第4部分-12中指定的,这个部分定义了用于基于时间的媒体文件的通用结构。ISO基础媒体文件格式用作同族中的其它文件格式的基础,所述其它文件格式例如是针对H.264/MPEG-4AVC视频压缩的AVC文件格式(ISO/IEC 14496-15)所定义的支持、3GPP文件格式、SVC文件格式和MVC文件格式。3GPP文件格式和MVC文件格式是AVC文件格式的扩展。ISO基础媒体文件格式含有用于媒体数据的定时序列(例如音频-视觉呈现)的时序、结构和媒体信息。文件结构可以是面向对象的。一文件可以极简单地分解成基本对象,并且根据对象类型来暗示对象的结构。

符合ISO基础媒体文件格式(和其扩展)的文件可以形成为一系列对象,称为“盒子”。ISO基础媒体文件格式的数据可以包含在盒子中,以使得不需要在文件内包含其它数据,并且在文件内的盒子外部不需要有数据。这包含特定的文件格式所必需的任何初始签名。“盒子”可以是通过唯一类型识别符和长度定义的面向对象的构建块。通常,呈现是包含在一个文件中,并且媒体呈现是自含式的。电影容器(电影盒子)可以含有媒体的元数据,并且视频和音频帧可以包含在媒体数据容器中,并且可以在其它文件中。

表示(运动序列)可以包含在几个文件中,所述文件有时被称作片段。时序和成帧(位置和大小)信息总地来说在ISO基础媒体文件中,并且辅助文件基本上可以使用任何格式。这个呈现可以在含有呈现的系统“本地”,或者可以经由网络或其它流传递机构来提供。

任选的元数据轨道可以用于用每一轨道具有的“有趣的特性”来标记所述轨道,对于所述特性,每一轨道的值可以不同于群组的其它成员(例如,其位速率、屏幕大小或语言)。轨道内的一些样本可以具有特定特性或可以分别被识别。所述特性的一个实例是同步点(通常是视频I帧)。这些点可以通过每一轨道中的特定表来识别。更一般来说,轨道样本之间的相依性质也可以使用元数据来记录。元数据可以构造成一序列的文件格式样本,就像视频轨道一样。此轨道可被称为元数据轨道。每一元数据样本可以构造成一种元数据语句。存在各种类别的语句,对应于可能关于对应文件格式样本或其组成样本提问的各种问题。

当经由流式传输协议传递媒体时,媒体可能需要从其在文件中的表示方式变换。这种情况的一个实例是当经由实时传送协议(RTP)发射媒体时。在文件中,举例来说,每一视频帧连续地存储为文件格式样本。在RTP中,必须遵守所使用的编解码器特有的包化规则将这些帧放置在RTP包中。流式传输服务器可经配置以在运行时计算此包化。但是,存在对于流式传输服务器的辅助的支持。

本发明的技术可以适用于网络流式传输协议,例如HTTP流式传输,例如,根据HTTP动态自适应流式传输(DASH)。在HTTP流式传输中,经常使用的操作包含GET和部分GET。GET操作检索与给定统一资源定位符(URL)或其它识别符(例如,URI)相关联的整个文件。部分GET操作接收字节范围作为输入参数,并且检索文件的对应于接收到的字节范围的连续数目的字节。因而,可以提供电影片段以用于HTTP流式传输,因为部分GET操作可以获得一个或一个以上单独的电影片段。应注意,在一个电影片段中,可能存在不同轨道的几个轨道片段。在HTTP流式传输中,媒体表示可以是客户端可接入的数据的构造的集合。客户端可以请求和下载媒体数据信息以向用户呈现流式传输服务。

在使用HTTP流式传输来流式传输3GPP数据的实例中,可能存在对于多媒体内容的视频和/或音频数据的多个表示。这些表示的清单可以在媒体呈现描述(MPD)数据结构中定义。媒体表示可以对应于HTTP流式传输客户端装置可接入的数据的构造集合。HTTP流式传输客户端装置可以请求和下载媒体数据信息以向客户端装置的用户呈现流式传输服务。媒体表示可以在MPD数据结构中描述,MPD数据结构可包含MPD的更新。

多媒体内容可以含有一序列的一个或一个以上周期。周期可以通过MPD中的周期元素来定义。每一周期可以具有MPD中的属性开始。MPD可包含每一周期的开始属性和可用开始时间属性。对于实况服务,周期的开始属性与MPD属性可用开始时间的总和可以用UTC格式指明周期的可用性时间,具体来说是对应周期中的每一表示的第一媒体片段。对于点播服务,第一周期的开始属性可以是0。对于任何其它周期,开始属性可以指明对应周期的开始时间相对于第一周期的开始时间之间的时间偏移。每一周期可以一直延伸,直到下一个周期的开始为止,或者在最后一个周期的情况下直到媒体呈现的结束为止。周期开始时间可以是精确的。周期开始时间可以反映由播放所有先前周期的媒体所产生的实际时序。

每一周期可以含有相同媒体内容的一个或一个以上表示。表示可以是音频或视频数据的多个替代的经编码版本中的一者。所述表示可以因为各种特性而不同,所述特性例如是编码类型,例如,对于视频数据是因为位速率、分辨率和/或编解码器,而对于音频数据是位速率、语言和/或编解码器。术语表示可用于指代经编码音频或视频数据的对应于多媒体内容的特定周期并且用特定方式编码的区段。

可以向一群组指派特定周期的表示,群组可以通过MPD中的群组属性来指示。相同群组中的表示总地来说被视为彼此替代。举例来说,可以向相同群组指派特定周期的视频数据的每一表示,以使得可以选择所述表示中的任一者来进行解码,以便显示对应周期的多媒体内容的视频数据。在一些实例中,一个周期内的媒体内容可以由来自群组0(如果存在的话)的一个表示来表示,或者由来自每一非零群组的至多一个表示的组合来表示。可以相对于周期的开始时间来表达所述周期的每一表示的时序数据。

一个表示可包含一个或一个以上片段。每一表示可包含初始化片段,或表示的每一片段可以自初始化。当存在时,初始化片段可以含有用于接入所述表示的初始化信息。总的来说,初始化片段不含媒体数据。片段可以通过识别符(例如统一资源定位符(URL))来独特地参考。MPD可以提供每一片段的识别符。在一些实例中,MPD还可提供范围属性的形式的字节范围,范围属性可以对应于可通过URL或URI接入的文件内的片段的数据。

每一表示还可包含一个或一个以上媒体分量,其中每一媒体分量可以对应于一个单独的媒体类型(例如音频、视频和/或定时文本(例如,对于封闭字幕))的经编码版本。媒体分量可以跨越一个表示内的连续媒体片段的边界是时间连续的。

通常,符合DASH标准的片段总地来说具有三个部分,包含(1)固定标头、(2)指向数据单元的指针的表和(3)数据单元本身。在一实例中,片段可以根据下面展示的表1来形成:

表1-媒体数据的片段

通常,负责发射片段的装置(例如,服务器装置)直到所有数据单元的大小都已知为止才能发射片段标头,从而使得装置可以恰当地建构指针表。因此,服务器装置总地来说汇编数据单元和指针,产生标头,并且将完全形成的片段作为单个单元来发射。或者,响应于部分GET请求,服务器可以发射片段的一些部分(例如,指定字节范围)。但是,在本发明的技术之外,服务器装置将在已完全形成所述片段之后接收部分GET请求,例如在已构建了媒体片段随机接入(MFRA)盒子之后,所述盒子通常放置在片段结尾。也就是说,为了让客户端装置提交部分GET请求,客户端装置将需要接入MFRA盒子或类似数据结构的数据,所述数据结构具有片段的特定部分的位置的指示符,例如,对于特定类型(例如瞬时解码器刷新(IDR)图片)的网络抽象层(NAL)单元的字节位置的指示。

此外,接收媒体数据的片段的装置(例如,客户端装置)通常直到已经接收到片段标头和所有数据单元为止才能处理所述片段。因此,客户端装置总地来说先接收完全形成的片段(例如,具有整个标头、指针表和数据单元),然后才解码和显示片段。或者,如上文解释,客户端装置可以使用MFRA盒子的数据来检索片段的一些部分(例如,一个或一个以上指定字节范围)。但是,同样,仅在已完全形成片段之后才执行客户端装置接入片段的特定字节范围(在本发明的技术以外)。

在先形成整个片段之后然后才经由网络发射片段(并且先接收然后才解码)的实例中,引入了片段发射与片段的解码/回放之间的一个片段的等待时间。也就是说,服务器装置完全形成整个片段并且向客户端装置发射所述片段。客户端装置接收完全形成的片段,并且使用标头数据和指针解码并且显示完整片段。因此,引入了完整片段的等待时间,因为服务器装置形成完整片段并且客户端装置先接收到完整片段然后才回放。

在一实例中,出于说明的目的,片段可以含有回放时间为一秒的视频数据。也就是说,服务器装置可以在片段中封装(例如,编码)一整秒的视频数据,并且向客户端装置发射所述一秒长的片段。客户端装置接着接收所述一秒长的片段的标头和所有数据单元,并且先对整个片段进行解码然后才显示所述片段。因此,可能会引入一秒的等待时间,因为客户端装置直到已接收到完整片段为止才开始解码/回放。

本发明的方面总地来说是针对减少与流式传输媒体数据的一个或一个以上片段相关联的等待时间。在一实例中,本发明的技术包含优化媒体数据片段的发射调度。也就是说,根据本发明的方面,负责经由网络发射片段的装置(例如,服务器装置,如下文相对于图1较详细描述)可以将媒体数据片段划分成多个适合于经由网络发射的子片段。在这个实例中,一旦已形成媒体数据的子片段,服务器装置就可以发射所述子片段。也就是说,服务器装置不必须等待形成多个子片段之后才发射一个子片段。此外,服务器装置不必须等待产生了所有子片段的标头数据之后才发射一个子片段。

在一些实例中,这些子片段可能不可以独立解码。也就是说,可能未必在没有另一子片段(其可以对应于在前一子片段之后的一个子片段)中包含的参考信息的情况下对一个子片段进行解码。换句话说,子片段可能参考将来子片段。但是,子片段可能含有某些可独立解码的信息。举例来说,子片段可能含有可独立解码的一个或一个以上视频数据I帧。

根据本发明的方面,子片段可包含一个子片段标头和一个或一个以上数据单元。子片段标头可包含指向子片段的数据单元的指针的表。但是,如上文所示,子片段的数据单元可指代前一子片段或将来子片段。举例来说,子片段的数据单元可包含参考前一或将来子片段的帧(或切片)的P或B帧(或者P或B切片)。也就是说,可以相对于相同片段的后续子片段的数据单元来预测一个子片段的数据单元。这个类型的预测关系表示一个片段的第一子片段的数据单元(其指代所述片段的第二子片段)的一个实例,其中第一子片段可在第二子片段之前由客户端装置接收。

在一些实例中,每一子片段可包含子片段标头。举例来说,子片段标头可包含“固定”部分,例如视频/音频编码格式、品质等级和类似内容。在一些情况下,片段的标头数据以及子片段标头的数据可能在片段和/或子片段之间不会改变。因此,在本发明的一些方面中,服务器装置可以设置并且客户端装置可以解释指示标头数据是否已经改变的旗标的值。举例来说,服务器装置可以将旗标设置成“0”以指示所述片段或子片段标头包含与前一片段或前一子片段基本上相似或相同的数据。服务器装置可以将旗标设置成“1”以指示所述片段或子片段标头已经改变。此外,客户端装置可以接收所述旗标并且解释标头数据是否已经从一个片段改变成另一片段。

产生视频数据的多个子片段并且一旦已形成/编码了所述子片段就发射所述子片段可以减少等待时间(例如,在流式传输环境中与发射、接收、解码和/或显示媒体数据相关联的等待时间)。举例来说,客户端装置可以在接收到子片段后立即开始对子片段的至少一部分进行解码。也就是说,虽然子片段的某些数据单元可以参考尚未接收到的其它子片段的数据单元,但是客户端装置可以立即开始对数据单元中的一些据单元(例如,子片段中包含的I帧)进行解码。此外,客户端装置准备好在接收到片段的标头(其通常在子片段之后)后对整个片段进行解码和播出整个片段。

在一些实例中,根据本发明的方面产生多个子片段并且一旦已形成一个子片段就发射所述子片段,可能比简单地减少总片段持续时间更加高效。也就是说,在上文出于说明的目的提供的实例中,一个片段可包含一秒的视频数据,这可能会引入一整秒的等待时间。也就是说,如果片段先被完全形成然后才发射并且片段先被完全接收和解码然后才回放,那么可能会引入一整秒的等待时间。减少等待时间的一种方式可以是减少片段的总持续时间。也就是说,服务器装置并非编码和发射一秒的片段,而是可以编码和发射500毫秒的片段。因此,在这个实例中,端到端等待时间可以从一秒减少为500毫秒。

但是,通过减少片段持续时间来减少等待时间可能会增加位流中的开销数据的比例(例如,由此降低效率)。举例来说,如上文所示,每一片段含有一个标头,所述标头含有固定部分,以及一个大小随着在片段持续时间中产生的视频/音频样本的数目而增加的部分。随着片段持续时间减少,标头的固定部分开始促成与发射所述数据相关联的开销的(按比例)较大部分。在给定某一位速率的情况下,增加开销会降低总效率,因为可以用于实际媒体数据的位减少。

此外,在一些实例中,可以构建媒体数据片段以避免参考另一片段。也就是说,在一些实例中,多媒体内容的每一片段并不参考其它片段的数据(例如,一个片段的P帧或B帧不参考另一片段的帧),并且因而可能是可独立解码的。因此,在此些实例中,当减少片段持续时间时,I帧的数目增加,而P帧和B帧的数目减少。举例来说,具有按比例更多I帧的视频数据对于时间冗余的利用程度不如具有更大比例的P和/或B帧的视频数据大。因而,对于给定平均速率,I帧数目与所显示的视频数据的感知品质之间可能是相逆的关系。也就是说,已使用可变位速率译码的视频数据总地来说展现出比已使用更恒定的位速率译码的视频数据更高的感知品质。

因此,本发明的方面可用于维持给定片段持续时间(具有给定速率),同时还减少了等待时间。也就是说,在上文所描述的一秒的片段的持续时间的实例中,本发明的方面涉及维持一秒的片段的持续时间,同时还将与发射和解码/显示所述片段相关联的等待时间减少成少于一秒。以此方式,可以维持媒体数据的感知品质,同时还减少等待时间。

本发明的技术可以用于根据DASH或其它流式传输网络协议经由广播网络发射来发射多媒体数据。举例来说,服务器装置可以准备具有多个子片段的片段以用于经由广播向一个或一个以上客户端装置发射。在一些实例中,客户端装置可以接收广播网络发射,如上文所论述,所述发射包含一个片段的多个子片段。

图1是图解说明实施用于经由网络流式传输媒体数据的技术的实例系统10的框图。在这个实例中,系统10包含内容准备装置20、服务器装置60和客户端装置40。客户端装置40和服务器装置60通过网络74以通信方式耦合,所述网络可包括因特网。在一些实例中,内容准备装置20和服务器装置60还可通过网络74或另一网络耦合,或者可以直接以通信方式耦合。在一些实例中,内容准备装置20和服务器装置60可包括相同装置。

在图1的实例中,内容准备装置20包括音频源22和视频源24。举例来说,音频源22可包括麦克风,其产生表示有待通过音频编码器26编码的所俘获的音频数据的电信号。或者,音频源22可包括:存储媒体,其存储先前记录的音频数据;音频数据产生器,例如计算机化的合成器;或任何其它音频数据源。视频源24可包括:摄像机,其产生有待通过视频编码器28编码的视频数据;存储媒体,其被编码有先前记录的视频数据;视频数据产生单元,例如计算机图形源;或任何其它视频数据源。内容准备装置20未必在所有实例中都以通信方式耦合到服务器装置60,而是可以将多媒体内容存储到由服务器装置60读取的分开的媒体。

原始音频和视频数据可包括模拟或数字数据。模拟数据在通过音频编码器26和/或视频编码器28编码之前可以被数字化。音频源22可以在说话参与者正在说话时从说话参与者获得音频数据,并且视频源24可以同时获得说话参与者的视频数据。在其它实例中,音频源22可包括一个包括所存储的音频数据的计算机可读存储媒体,且视频源24可包括一个包括所存储的视频数据的计算机可读存储媒体。以此方式,本发明中所描述的技术可应用于实况、流式传输、实时音频和视频数据或所存档的、预先记录的音频和视频数据。

对应于视频帧的音频帧总地来说是含有与在视频帧内所含有的由视频源24所俘获的视频数据同时由音频源22所俘获的音频数据的音频帧。举例来说,当说话参与者总地来说通过说话而产生音频数据时,音频源22俘获音频数据,且视频源24同时(即,在音频源22正俘获音频数据的同时)俘获说话参与者的视频数据。因此,音频帧可在时间上对应于一个或一个以上特定视频帧。因此,音频帧对应于视频帧大体上对应于同时俘获到音频数据和视频数据且音频帧和视频帧分别包括同时俘获到的音频数据和视频数据的情形。

在一些实例中,音频编码器26可以对每一经编码音频帧中的表示记录经编码音频帧的音频数据的时间的时戳进行编码,并且类似地,视频编码器28可以对每一经编码视频帧中的表示记录经编码视频帧的视频数据的时间的时戳进行编码。在此些实例中,对应于视频帧的音频帧可包括一个包括时戳的音频帧和一个包括相同时戳的视频帧。内容准备装置20可包含内部时钟,音频编码器26和/或视频编码器28可以从所述内部时钟产生时戳,或者音频源22和视频源24可以使用所述内部时钟分别使音频数据和视频数据与时戳相关联。

在一些实例中,音频源22可以向音频编码器26发送对应于记录音频数据的时间的数据,并且视频源24可以向视频编码器28发送对应于记录视频数据的时间的数据。在一些实例中,音频编码器26可以对经编码音频数据中的序列识别符进行编码以指示经编码音频数据的相对时间排序,但未必指示记录音频数据的绝对时间,并且类似地,视频编码器28也可使用序列识别符来指示经编码视频数据的相对时间排序。类似地,在一些实例中,序列识别符可以映射或以其它方式与时戳相关。

音频编码器26总地来说产生经编码音频数据流,而视频编码器28产生经编码视频数据流。每一单独的数据流(不论是音频还是视频)可被称为基本流。基本流是一个表示的单个经数字译码(可能经压缩)的分量。举例来说,所述表示的经译码视频或音频部分可以是基本流。基本流可以在被包封在视频文件内之前先被转换成包化基本流(PES)。在相同表示内,可以使用流ID来区分属于一个基本流的PES包与属于其它基本流的PES包。基本流的数据的基本单元是包化基本流(PES)包。因而,经译码视频数据总地来说对应于基本视频流。类似地,音频数据对应于一个或一个以上相应基本流。

与许多视频译码标准一样,H.264/AVC定义无误差位流的语法、语义和解码过程,其中的任一者都符合某一设定档或等级。H.264/AVC未指定编码器,但编码器的任务是确保所产生的位流顺应解码器的标准。在视频译码标准的上下文中,“设定档”对应于算法、特征或工具和适用于其的约束的子组。举例来说,如通过H.264标准所定义,“设定档”是通过H.264标准指定的整个位流语法的子组。“等级”对应于解码器资源消耗的限制,例如,举例来说,解码器存储器和计算,其涉及图片分辨率、位速率和宏块(MB)处理速率。可以使用profile_idc(设定档指示符)值用信号表示设定档,而可以使用level_idc(等级指示符)值用信号表示等级。

举例来说,H.264标准承认,在给定设定档的语法所施加的界限内,仍然可能需要编码器和解码器的性能有较大变化,这取决于位流中的例如经解码图片的指定大小等语法元素所取的值。H.264标准进一步承认,在许多应用中,实施能够处理特定设定档内的语法的所有假设使用的解码器既不实际又不经济。因此,H.264标准将“等级”定义为强加于位流中的语法元素值的指定组约束。这些约束可以简单的是值的限制。或者,这些约束可以采用值的算术组合(例如,图片宽度乘以图片高度乘以每秒解码的图片数目)的约束的形式。H.264标准进一步规定各个实施方案对于每一所支持的设定档可以支持一种不同等级。

符合一个设定档的解码器一般支持所述设定档中定义的所有特征。举例来说,作为译码特征,B图片译码在H.264/AVC的基础设定档中不被支持,但是在H.264/AVC的其它设定档中被支持。符合一个等级的解码器应能够对任何不需要超出所述等级中定义的限制的资源的位流进行解码。配置文件和等级的定义可以对可解释性有帮助。举例来说,在视频发射期间,可以针对整个发射会话协商和同意一对设定档和等级定义。更确切地说,在H.264/AVC中,举例来说,等级可以定义需要处理的宏块数目、经解码图片缓冲器(DPB)大小、经译码图片缓冲器(CPB)大小、垂直运动向量范围、每两个连续MB的运动向量的最大数目和B块是否可以具有小于8x8像素的子宏块分区的限制。以此方式,解码器可以确定解码器是否能够恰当地对位流进行解码。

例如ITU-T H.261、H.262、H.263、MPEG-1、MPEG-2、H.264/MPEG-4第10部分和即将出现的高效率视频译码(HEVC)标准等视频压缩标准利用运动补偿的时间预测来减少时间冗余。例如视频编码器28等编码器可以使用来自一些先前经编码图片(在本文中也称为帧)的运动补偿的预测来根据运动向量预测当前被译码图片。典型视频译码中有三种主要的图片类型。这些类型是经帧内译码图片(“I图片”或“I帧”)、经预测图片(“P图片”或“P帧”)和经双向预测图片(“B图片”或“B帧”)。P图片可以使用在时间次序上在当前图片之前的参考图片。在B图片中,可以根据一个或两个参考图片来预测B图片的每一块。这些参考图片可以在时间次序上位于当前图片之前或之后。

参数集总地来说在序列参数集(SPS)中含有序列层标头信息,并且在图片参数集(PPS)中含有不频繁改变的图片层标头信息。对于参数集,这个不频繁改变的信息不需要针对每一序列或图片重复;因此,可以改进译码效率。另外,使用参数集可以实现标头信息的带外发射,避免了对于冗余发射以实现抗误码的需要。在带外发射中,在与其它NAL单元不同的信道上发射参数集NAL单元。

在图1的实例中,内容准备装置20的包封单元30从视频编码器28接收包括经译码视频数据的基本流,并且从音频编码器26接收包括经译码音频数据的基本流。在一些实例中,视频编码器28和音频编码器26可以各自包含用于从经编码数据形成PES包的包化器。在其它实例中,视频编码器28和音频编码器26可以各自与用于从经编码数据形成PES包的相应包化器介接。在另外其它实例中,包封单元30可包含用于从经编码音频和视频数据形成PES包的包化器。

视频编码器28可以用多种方式对多媒体内容的视频数据进行编码,以便以各种位速率并且用各种特性产生多媒体内容的不同表示,所述特性例如是像素分辨率、帧速率、对于各种译码标准的符合性、对于各种译码标准的各种设定档和/或设定档等级的符合性、具有一个或多个视图的表示(例如,对于二维或三维回放)或其它这些特性。按照本发明中的用法,一个表示可包括音频数据与视频数据的组合,例如一个或一个以上音频基本流和一个或一个以上视频基本流。每一PES包可包含stream_id,其识别PES包所属于的基本流。包封单元30负责将基本流汇编成各种表示的视频文件。

包封单元30从音频编码器26和视频编码器28接收用于表示的基本流的PES包且从所述PES包形成对应的网络抽象层(NAL)单元。在H.264/AVC(高级视频译码)的实例中,经译码视频片段被组织成NAL单元,所述单元提供“网络友好”的视频表示,其处理例如视频电话、存储、广播或流式传输的应用。NAL单元可以分类成视频译码层(VCL)NAL单元与非VCL NAL单元。VCL单元可以含有核心压缩引擎并且可包含块、宏块和/或切片等级数据。其它NAL单元可以为非VCL NAL单元。在一些实例中,一个时间例子中的经译码图片(通常呈现为初级经译码图片)可以容纳在接入单元中,所述接入单元可包含一个或一个以上NAL单元。

非VCL NAL单元可包含参数集NAL单元和SEI NAL单元等等。参数集可以含有序列等级标头信息(在序列参数集(SPS)中)和不频繁改变的图片等级标头信息(在图片参数集(PPS)中)。对于参数集(例如,PPS和SPS),不频繁改变的信息不需要对于每一序列或图片重复,因此可以改进译码效率。另外,使用参数集可以实现重要标头信息的带外发射,避免了对于用于抗误码的冗余发射的需要。在带外发射实例中,参数集NAL单元可以在与其它NAL单元(例如SEI NAL单元)不同的信道上发射。

辅助增强信息(SEI)可以含有这样的信息,其对于对来自VCL NAL单元的经译码图片样本进行解码不是必需的,但是可以辅助与解码、显示、抗误码和其它目的有关的过程。非VCL NAL单元中可以含有SEI消息。SEI消息是一些标准规范的标准化部分,并且因而对于标准的顺应性解码器实施方案并非始终是必选的。SEI消息可以是序列等级SEI消息或图片等级SEI消息。SEI消息中可以含有一些序列等级信息,所述消息例如是SVC的实例中的可缩放性信息SEI消息,和MVC中的视图可缩放性信息SEI消息。这些实例SEI消息可以传达关于例如操作点的摘录和操作点的特性的信息。此外,包封单元30可以形成清单文件,例如描述表示的特性的媒体呈现描述符(MPD)。包封单元30可以根据可扩展标记语言(XML)将MPD格式化。

包封单元30可以向输出接口32提供用于多媒体内容的一个或一个以上表示的数据连同清单文件(例如,MPD)。输出接口32可包括网络接口或用于写入存储媒体的接口,例如通用串行总线(USB)接口、CD或DVD写入器或烧录器、磁性或快闪存储媒体的接口或用于存储或发射媒体数据的其它接口。包封单元30可以向输出接口32提供多媒体内容的表示中的每一者的数据,所述输出接口可以经由网络发射或存储媒体向服务器装置60发送所述数据。在图1的实例中,服务器装置60包含存储媒体62,其存储各种多媒体内容64,每一多媒体内容包含一个相应的清单文件66和一个或一个以上表示68A-68N(表示68)。在一些实例中,输出接口32也可向网络74直接发送数据。

在一些实例中,根据本发明的一些方面,包封单元30可经配置以根据本文所述的技术形成数据的子片段。也就是说,举例来说,包封单元30可经配置以将一个媒体数据片段划分成多个子片段。一旦已形成子片段,包封单元30就可以向输出接口32提供所述子片段。输出接口32可以接着经由网络74向客户端装置40发送所述子片段。

在此些实例中,包封单元30可以产生不可独立解码的子片段。也就是说,包封单元30可以产生不使用另一子片段中含有的参考信息(例如,预测性信息)未必可以解码的子片段,所述另一子片段可以对应于在前一子片段之后的子片段。在这个实例中,之后子片段的预测性信息可包括之后子片段的块或切片的像素数据,其用于预测前一子片段。换句话说,包封单元30可以形成子片段,其参考将来子片段。

包封单元30可以产生适用于一片段的所有子片段的片段标头,以及用于一片段中包含的子片段中的每一者的子片段标头。如下文较详细描述,子片段标头可以含有识别子片段内的数据单元的位置的指针的表。此外,包封单元30可以设置旗标,所述旗标指示片段标头数据是否已经改变(例如,片段标头数据是否不同于先前产生的片段)。

在一些实例中,表示68可以分成若干调适组。如上文所示,在一些情况下,调适组也可被称作“表示群组”。也就是说,表示68的各种子组可包含相应共同组特性,例如编解码器、设定档和等级、分辨率、视图数目、片段的文件格式、可以识别有待与待解码和呈现(例如,通过扬声器)的表示和/或音频数据一起显示的文本的语言或其它特性的文本类型信息、可以描述调适组中的表示的场景的相机角度或实际相机视角的相机角度信息、描述对于特定受众的内容适合性的分级信息或类似信息。

清单文件66可包含指示对应于特定调适组的表示68的子组以及所述调适组的共同特性的数据。清单文件66还可包含表示调适组的各个表示的各个特性(例如位速率)的数据。以此方式,调适组可以提供简化网络带宽调适。调适组中的表示可以使用清单文件66的调适组元素的子代元素来指示。

服务器装置60包含请求处理单元70和网络接口72。在一些实例中,服务器装置60可包含多个网络接口。另外,服务器装置60的所述特征中的任何或全部可以在内容传递网络的其它装置(例如路由器、桥接器、代理装置、交换机或其它装置)上实施。在一些实例中,内容传递网络的中间装置可以高速缓存多媒体内容64的数据,并且包含基本上与服务器装置60的组件相符的组件。总的来说,网络接口72经配置以经由网络74发送和接收数据。

请求处理单元70经配置以从客户端装置(例如客户端装置40)接收对于存储媒体72的数据的网络请求。举例来说,请求处理单元70可以实施超文本传送协议(HTTP)版本1.1,如RFC 2616中R.费尔丁(R.Fielding)等人(网络工作组,IETF,1999年6月)的“超文本传送协议-HTTP/1.1(Hypertext Transfer Protocol-HTTP/1.1)”中所描述。也就是说,请求处理单元70可经配置以接收HTTP GET或部分GET请求,并且响应于所述请求而提供多媒体内容64的数据。所述请求可以例如使用表示68中的一者的片段的URL指明所述片段。在一些实例中,所述请求还可指明所述片段的一个或一个以上字节范围,因而包括部分GET请求。请求处理单元70可以进一步经配置以服务于HTTP HEAD请求以提供表示68中的一者的片段的标头数据。在任何情况下,请求处理单元70可经配置以处理所述请求以向请求装置(例如客户端装置40)提供所请求的数据。

如图1的实例中图解说明,多媒体内容64包含清单文件66,其可以对应于媒体呈现描述(MPD)。清单文件66可以含有不同替代表示68(例如,具有不同品质的视频服务)的描述,并且所述描述可包含例如编解码器信息、设定档值、等级值、位速率和表示68的其它描述性特性。客户端装置40可以检索媒体呈现的MPD以确定如何接入表示68的片段。

具体来说,检索单元52可以检索客户端装置40的配置数据(未图示)以确定视频解码器48的解码能力和视频输出44的再现能力。配置数据还可包含客户端装置40的用户选择的语言偏好中的任何或所有、对应于客户端装置40的用户设置的景深偏好的一个或一个以上相机视角和/或客户端装置40的用户选择的分级偏好。举例来说,检索单元52可包括网络浏览器或媒体客户端,其经配置以提交HTTP GET和部分GET请求。检索单元52可以对应于客户端装置40的一个或一个以上处理器或处理单元(未图示)执行的软件指令。在一些实例中,相对于检索单元52描述的功能性中的所有或部分可以在硬件或硬件、软件和/或固件的组合中实施,其中可以提供必需的硬件以执行软件或固件的指令。

检索单元52可以将客户端装置40的解码和再现能力与清单文件66的信息所指示的表示68的特性比较。检索单元52可以首先检索清单文件66的至少一部分以确定表示68的特性。举例来说,根据本发明的技术,检索单元52可以请求清单文件66的描述一个或一个以上调适组的特性的部分。检索单元52可以选择具有客户端装置40的译码和再现能力可以满足的特性的表示68的子组(例如,调适组)。检索单元52可以接着确定所述调适组中的表示的位速率、确定网络带宽的目前可用量和从具有网络带宽可以满足的位速率的表示中的一者检索片段。

总的来说,较高位速率表示可以产生较高品质的视频回放,而在可用的网络带宽减少时较低位速率表示可以提供充足品质的视频回放。因此,当可用的网络带宽相对高时,检索单元52可以从相对高的位速率表示检索数据,而当可用的网络带宽较低时,检索单元52可以从相对低的位速率表示中检索数据。以此方式,客户端装置40可以经由网络74流式传输多媒体数据,同时还根据网络74的改变的网络带宽可用性进行调适。

网络接口54可以接收所选表示的片段的数据并且向检索单元52提供所述数据,所述检索单元又可向解包封单元50提供所述片段。解包封单元50可以将视频文件的元素解包封成组成PES流,将PES流解包化以检索经编码数据并且根据经编码数据是音频流还是视频流的一部分(例如,如通过流的PES包标头所指示)而向音频解码器46或视频解码器48发送经编码数据。音频解码器46对经编码音频数据进行解码,并且向音频输出42发送经解码音频数据,而视频解码器48对经编码视频数据进行解码,并且向视频输出44发送所述经解码视频数据,其可包含流的多个视图。

视频编码器28、视频解码器48、音频编码器26、音频解码器46、包封单元30、检索单元52和解包封单元50各自可以实施为适用的多种合适的处理电路中的任一者,所述处理电路例如是一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器28和视频解码器48中的每一者可以包含在一个或一个以上编码器或解码器中,所述编码器或解码器中的任一者可以集成为组合视频编码器/解码器(编解码器)的一部分。同样,音频编码器26和音频解码器46中的每一者可以包含在一个或一个以上编码器或解码器中,所述编码器或解码器中的任一者可以集成为组合编解码器的一部分。包含视频编码器28、视频解码器48、音频编码器26、音频解码器46、包封单元30、检索单元52和/或解包封单元50的设备可包括集成电路、微处理器和/或无线通信装置,例如蜂窝式电话。

本发明的方面总地来说是针对使与经由网络74从服务器装置60向客户端装置40流式传输媒体数据的一个或一个以上片段相关联的等待时间最小化。也就是说,根据本发明的方面,服务器装置60可以将媒体数据片段划分成适合于经由网络74发射的多个子片段。在这个实例中,一旦已形成子片段,服务器装置60就可以发射所述子片段。也就是说,服务器装置60不必须等待形成一个以上子片段之后才发射一个子片段。此外,服务器装置60不必须等待产生了所有子片段的标头数据之后才发射一个子片段。

应理解,归于服务器装置60的某些功能(例如子片段形成和/或发射)可以通过一个或一个以上其它组件或装置来执行。也就是说,在另一实例中,内容准备装置20可以负责形成和经由网络74发送子片段。另外或或者,根据一些实例,内容准备装置20和服务器装置60可以高度集成或并入到相同装置中。因而,一旦已经形成了子片段,内容准备装置20、服务器装置60或这些装置的组合就可以准备和向客户端装置(例如客户端装置40)发送所述子片段。此外,这些装置可以在广播或多播网络发射中发送所述子片段。

客户端装置40可经配置以接收已根据本发明的方面形成的子片段,并且立即开始对所述子片段的至少一部分进行解码。也就是说,虽然子片段的某些数据单元可以参考尚未接收到的其它子片段的数据单元,但是客户端装置40可以立即开始对数据单元中的一些(例如,子片段中包含的I帧)进行解码。在一些实例中,一个子片段的数据单元可以参考后续子片段的后续数据单元,因为块可包含指向后续数据单元的运动向量。此外,客户端装置40准备好在接收到片段的标头(其通常在子片段之后)后对整个片段进行解码和播出整个片段。也就是说,客户端装置40通常先接收一个片段的所有子片段之后才接收所述片段的标头。

产生视频数据的多个子片段和一旦已经对所述子片段进行编码就发射所述子片段,可以减少与服务器装置60发射所述片段以及客户端装置40接收、解码和/或显示所述片段相关联的等待时间。

图2是图解说明与检索单元52相关联的实例组件的框图。图2的检索单元52可以对应于检索单元52(图1)或包含在另一不同检索装置中。在这个实例中,检索单元52包含流管理单元80和源组件90。源组件90包含媒体文件存储处置单元92、MPD剖析单元94、媒体文件多路分用(demux)单元96和调适单元98以及HTTP控制器100。

总的来说,检索单元52可包含用于使用特定的通信协议进行通信或与特定的物理媒体进行交互的硬件和/或软件。举例来说,检索单元52可以实施HTTP并且使用HTTP堆叠来接收数据,所述HTTP堆叠可包含TCP/IP以及用于网络的其它层的其它通信协议。检索单元52可以进一步从例如服务器装置60产生对于片段(或片段的若干部分)的HTTP Get或部分Get请求。检索单元52还可实施广播或多播协议,例如eMBMS或IP多播,以便从广播或多播网络发射中接收数据。检索单元52可经配置以预订广播或多播网络发射以便检索所述发射的数据。

源组件90可以从一个或一个以上源接收多媒体内容的数据。首先,源组件90可以接收清单文件,例如MPD文件。MPD剖析单元94可以剖析MPD文件以确定多媒体内容的可用表示,以及包含具有共同特性的表示的群组的调适组和所述表示的特性。偶尔,源组件90可以接收当前多媒体内容的经更新的MPD,在这种情况下,MPD剖析单元94可以剖析经更新的MPD并且向流管理单元80提供经更新的信息。在一些实例中,源组件90可以选择所述表示中的至少一者,而在其它实例中,源组件90可以向流管理单元80提供所述表示信息。在此些实例中,流管理单元80可以选择所述表示中的至少一者。在任何情况下,源组件90可以向流管理单元80发送用以发送下载信息以便检索多媒体内容的数据的请求。

流管理单元80可经配置以选择从其检索所选表示的数据的源。在一些实例中,流管理单元80可以接收指示流管理单元80要选择从其检索数据的特定源的某些通知。举例来说,HTTP接收器和堆叠可以向流管理单元80提供用于HTTP发射的可用网络带宽的估计量。广播接收器和堆叠可以提供对应于所选表示的广播发射的URL是否可用以及广播是否在覆盖范围内的指示。本地存储装置可以提供URL是否可用于对应于所选表示的本地存储的数据的指示。此外,流管理单元80可以从无线装置(例如客户端装置40)的一个或一个以上无线电接收无线电信号强度信息(RSSI),以便确定例如用于接收网络数据的无线电信号的强度。

流管理单元80可以分析接收到的源通知以选择所述源中将从其检索多媒体内容的数据的一个或一个以上源。在一些实例中,流管理单元80还选择多媒体内容的表示。流管理单元80可以从源组件90接收信息,例如从MPD文件提取的表示特性和所述表示的片段的URL。所述信息可以进一步包含缓冲器占用和/或可用空间以及多媒体内容的当前回放时间的指示。使用这个信息连同接收到的源通知,流管理单元80可以选择将从其检索多媒体内容的数据(例如,目前选择的表示的数据)的源。流管理单元80可以针对相同多媒体内容随时间自适应地在将从其检索所述表示的数据的表示和/或源之间切换。

流管理单元80可以向源组件90提供所选源(和在一些情况下,所选表示)的指示。此外,流管理单元80可以配制包含用于从所选源检索所选表示的数据的信息的下载命令。举例来说,下载命令可包含源类型和源特定的信息的指示。举例来说,对于HTTP/1.1,下载命令可以指明有待包含在Get或部分Get命令中的所选表示的片段的URL的完整路径。作为另一实例,对于广播或多播网络发射,下载命令可以指明用以接收所选表示的片段的广播或多播群组的网络地址。以此方式,流管理单元80可以基于从源组件90接收到的信息和/或其它接收到的信息来确定将从其检索数据的适当源以及有待接收的表示的适当片段。

源组件90可以配制适当命令以基于从流管理单元80接收到的下载命令信息从所选源检索所选表示的数据。举例来说,源组件90可以产生HTTP Get或部分Get请求,加入广播或多播群组的请求,或检索本地存储媒体的数据的请求。

在图2的实例中,源组件90包含媒体文件多路分用(demux)单元96,其可以将接收到的数据多路分用成例如相应音频和视频流。媒体文件存储处置单元92可以在包含检索单元52的装置的存储器(未图示)中缓冲接收到的数据。媒体文件存储处置单元92还可向例如音频解码器46和视频解码器48(图1)提供经多路分用的数据。或者,媒体文件存储处置单元92可以向客户端装置40提供检索到的媒体数据,而不对数据进行多路分用。

因此,检索单元52可经配置以根据不同通信协议操作。举例来说,检索单元52可包括网络接口,其经配置以根据发射控制协议/因特网协议(TCP/IP)操作。相同网络接口(例如,网络接口的不同元素)或不同接口可经配置以根据IP多播或eMBMS或其它广播或多播网络协议接收数据。检索单元52的另一接口可经配置以从物理媒体接收数据。此接口可包括通用串行总线(USB)接口、DVD读取器、蓝光播放器或其它这些用于从物理媒体检索数据的接口。

在检索单元52在根据HTTP接收数据的实例中,调适单元98可以与HTTP控制器100通信以执行带宽调适。举例来说,调适单元98可以与HTTP控制器100通信,并且从多媒体内容的清单文件中选择将从其检索多媒体内容的多媒体数据的表示。清单文件可包含指示多媒体内容的多个表示的信息,并且所述多个表示可包含所选表示。具体来说,清单文件可包含描述所述表示的位速率的信息,以使得调适单元98可以在给定网络带宽的目前可用量的情况下基于所述表示的位速率来选择适当表示。当然,应理解,如上文所解释,流管理单元而非源组件也可经配置以选择所述表示。此外,在一些实例中,源组件和流管理单元可以在功能上集成。

图3是图解说明实例多媒体内容102的元素的概念图。多媒体内容102可以对应于多媒体内容64(图1),或另一存储在存储器62中的多媒体内容。在图3的实例中,多媒体内容102包含媒体呈现描述(MPD)104和多个表示110-120。表示110包含任选的标头数据112和片段114A-114N(片段114),而表示120包含任选的标头数据122和片段124A-124N(片段124)。为了方便起见,使用字母N来标明表示110、120中的每一者中的最后一个电影片段。在一些实例中,表示110、120之间可能存在不同数目的电影片段。

MPD 104可包括与表示110-120分开的数据结构。MPD 104可以对应于图1的清单文件66。同样,表示110-120可以对应于图1的表示68。总的来说,MPD 104可包含总体上描述表示110-120的特性的数据,例如译码和再现特性、调适组、MPD 104所对应的设定档、文本类型信息、相机角度信息、分级信息、技巧模式信息(例如,指示包含时间子序列的表示的信息)和/或用于检索遥远周期(例如,用于在回放期间在媒体内容中针对性插入广告)的信息。

标头数据112当存在时可以描述片段114的特性,例如,随机接入点的时间位置、哪个片段114包含随机接入点、片段114内的随机接入点的字节偏移、片段114的统一资源定位符(URL)或片段114的其它方面。标头数据122当存在时可以描述片段124的类似特性。另外或或者,这些特性可以完全包含在MPD 104内。

片段114包含一个或一个以上经译码视频样本,其中的每一者可包含视频数据的帧或切片。片段114的经译码视频样本中的每一者可以具有类似特性,例如,高度、宽度和带宽要求。可以通过MPD 104的数据描述这些特性,但是图3的实例中未图解说明这些数据。MPD 104可包含3GPP规范描述的特性,并且添加了本发明中描述的用信号表示的信息中的任何或所有。

片段114、124中的每一者可以与唯一统一资源识别符(URI)(例如,统一资源定位符(URL))相关联。因而,片段114、124中的每一者可以是可以使用流式传输网络协议(例如DASH)独立检索的。以此方式,例如客户端装置40等目的地装置可以使用HTTP Get请求来检索片段114或124。在一些实例中,客户端装置40可以使用HTTP部分Get请求来检索片段114或124的特定的字节范围。

根据本发明的方面,片段114、124中的每一者可以进一步划分成多个子片段,如相对于图4展示和描述。在已完全形成多媒体内容102之后,在一些实例中,标头数据112、122可以包含指向特定NAL单元(例如IDR NAL单元)的指针,如上文所论述。但是,根据本发明的技术,当一旦准备好表示110、120的子片段就发射所述子片段时,应理解,直到已经完全形成片段114、124之后标头数据112、122才可供使用。尽管如此,如本发明中所论述,可以在标头数据112、122可供使用之前发射片段114、124的子片段的数据。

图4是图解说明根据本发明的方面的实例片段200的概念图。片段200可以对应于图3中展示的片段114和/或124,并且可包括多媒体内容64(图1)的至少一部分或在存储器62中存储的另一多媒体内容。虽然可以相对于图1中展示的组件描述图4的某些方面,但是应理解片段200可以在具有多个不同组件的多个不同环境中实施。

在图4的实例中,片段200包含片段标头202、子片段204A、子片段204B(统称为子片段204)并且可能包含多个额外子片段(通过省略号指示)。根据本发明的方面,片段标头202可包含片段200的所有子片段204共同的信息。举例来说,片段标头202可包含用以在解码和/或再现片段200时辅助例如客户端装置40等装置的某些信息。也就是说,片段标头202可包含数据,其指示片段200的音频数据的编码格式、片段200的视频数据的编码格式、片段200的位速率、片段200的品质等级、片段200的视频数据的分辨率、片段200的视频数据的帧速率和类似信息。根据本发明的一些方面,这些数据的一部分可以包含在子片段标头中,如下文所描述。在一些实例中,在已经发射了所有子片段204之后发射片段标头202。在其它实例中,在已经发射了子片段204之前发射片段标头202。

在一些实例中,根据本发明的方面,片段标头202可包含旗标,其指示片段标头202的数据是否已经改变。也就是说,片段标头旗标可以指示片段标头202的数据是否已相对于先前接收到和解码的片段标头改变。例如服务器装置60等装置可以将片段标头旗标设置成“0”以指示片段标头202的数据未改变,并且可以将片段标头旗标设置成“1”以指示片段标头的数据已经改变。在标头数据未改变(旗标=0)的情况下,服务器装置60可以省去在片段标头202中包含额外信息。或者,在标头数据已经改变(旗标=1)的情况下,服务器装置60可在片段标头旗标之后包含标头数据。

在图4中展示的实例中,子片段204A包含具有数据单元指针208A和208B(统称为数据单元指针208)的子片段标头206,所述数据单元指针分别识别数据单元210A和210B(统称为数据单元210)的相对位置。在一些实例中,子片段标头206可包含上文相对于片段标头202所描述的数据的一部分。但是,子片段标头206中通常不包含不经常改变的数据(例如,例如编码格式)。

根据本发明的一些方面,子片段标头206包含识别子片段204A内的数据单元210中的每一者的偏移的数据单元指针208的表。举例来说,所述偏移可以提供子片段204A内的数据单元的相对位置。所述偏移还可提供用以呈现数据单元的经解码数据的适当次序(虽然在一些实例中可以不用呈现/显示次序来编码和发射数据单元)的指示。

数据单元210总地来说包含非VCL NAL单元或VCL NAL单元,其可包含经编码媒体数据。在媒体数据是视频数据的实例中,数据单元210可包含视频数据的帧或切片。根据本发明的方面,子片段(例如子片段204A)可能不可以独立解码。举例来说,数据单元210中的一者或一者以上可以指一个或一个以上其它子片段中包含的一个或一个以上数据单元(例如,例如子片段204B的数据单元216)。也就是说,在数据单元210包含视频数据的实例中,数据单元210中的一者或一者以上可以被编码成P帧或B帧,其例如使用识别其它子片段的预测性数据的运动向量来参考一个或一个以上其它子片段中包含的一个或一个以上数据单元的视频数据。以此方式,运动向量表示从一个子片段的数据单元向另一子片段的数据单元的参考的实例。其它类型的参考也是可能的,例如位移向量、可缩放视频译码(SVC)技术、用于预测语法元素的语法预测或其它这些参考。因而,在一些实例中,数据单元210中的一者或一者以上可以指将来子片段(例如,B帧)。但是,数据单元210还可含有某些可独立解码的信息(例如,不参考其它子片段)。举例来说,数据单元210中的一者或一者以上可以是可独立解码的视频数据的I帧。

在图4中展示的实例中,子片段204B类似于子片段204A而经配置。也就是说,子片段204B包含子片段标头212,其具有识别数据单元216A和216B的数据单元指针214A和214B。在一些实例中,根据本发明的方面,类似于上文所描述的片段标头202,子片段204可包含指示子片段标头206、212的数据是否已经改变的旗标。在图4中展示的实例中,子片段标头212可包含指示先前接收到的子片段标头206的数据是否已经改变的旗标(例如,旗标=0,数据未改变;旗标=1,数据已经改变)。因此,在子片段标头数据未改变的实例中,标头数据消耗的位数可以减少。

根据本文所述的技术利用片段200可以产生减少的等待时间(例如,与不包含多个子片段的片段相比)。也就是说,根据本发明的方面,一旦已形成子片段204A(例如,一旦接收到/编码了子片段204A的最后数据单元),负责经由网络发射片段的装置(例如服务器装置60或内容准备装置20(或实施服务器装置60和内容准备装置20两者的功能性的装置))就可以发射子片段204A。也就是说,服务器装置60不必须等待形成多个子片段之后才发射子片段204A。此外,服务器装置60不必须等待完成片段标头202之后才发射子片段204A。

一旦已经形成/编码了子片段204就发射子片段204可以减少等待时间,因为例如客户端装置40等客户端装置可以在接收到子片段204后立即开始对子片段204的至少一部分进行解码。也就是说,在图4中展示的实例中,虽然子片段204A的某些数据单元210可以参考子片段204B的数据单元216中的一者或一者以上,但是客户端装置可以立即开始对子片段204A的数据单元210中的一些进行解码(例如,子片段204A中包含的I帧)。此外,客户端装置40准备好在接收到片段200的片段标头202(其通常在子片段204A、204B之后)后即刻解码和播出整个片段200。也就是说,客户端装置40已经接收到子片段204A和204B,并且准备好在接收到片段标头202后即刻开始解码。

根据本发明的技术,在一实例中,片段200可以根据下方展示的表2布置:

表2-具有子片段的片段标头

根据本发明的一些方面,片段200可以经配置以经由广播网络发射根据DASH或其它流式传输网络协议发射多媒体数据。举例来说,服务器装置60可以准备具有用于经由广播向一个或一个以上客户端装置40发射的多个子片段204的片段200。在一些实例中,客户端装置40可以接收广播网络发射,如上文所论述,所述发射包含片段200的多个子片段204。

虽然图4将子片段204A和204B图解说明为被类似地配置,但是应理解,在一些实例中,表示的片段可能不包含类似地配置的片段。举例来说,表示可包含已经划分成子片段的一个或一个以上片段,以及未划分的一个或一个以上子片段。

图5是图解说明根据本发明中描述的技术的实例方法的流程图。虽然图5的方法是相对于内容准备装置20和客户端装置40(图1)描述的,但是应理解,其它装置可以实施类似于图5的方法的技术的技术。举例来说,服务器装置60或内容传递网络的一个或一个以上网络装置可以执行归于服务器装置60的功能中的一些或所有。

内容准备装置20(其总地来说可以被称作“服务器装置”,因为其可以向客户端装置提供内容)可以首先获得多媒体内容的表示的数据(260)。更确切地说,内容准备装置20可以获得多媒体内容的给定表示的媒体数据片段。根据本发明的一些方面,内容准备装置20可以产生指示与媒体数据片段相关联的标头数据是否已经改变的旗标(261)。也就是说,内容准备装置20可以指示片段的标头数据是否不同于先前经编码片段的标头数据(如果此片段存在的话)。内容准备装置20可以将片段标头旗标设置成“0”值以指示标头数据不变,或可以将片段标头旗标设置成“1”值以指示标头数据是不同的(例如,后面有适当的标头数据)。

内容准备装置20可以接着形成第一子片段(262)。举例来说,内容准备装置20可以形成类似于图4中展示的子片段204的子片段,其具有子片段标头,所述子片段标头包含识别第一子片段中包含的一个或一个以上数据单元的数据单元指针。此外,如上文所示,子片段可能不可独立解码。也就是说,第一子片段可包含一个或一个以上数据单元,其参考一个或一个以上其它子片段(以及将来子片段,例如如下所述的第二子片段)的一个或一个以上数据单元。

一旦形成,内容准备装置20就向客户端装置40发送第一子片段(264)。根据本发明的一方面,内容准备装置20可以广播第一子片段(以及之后子片段)。在内容准备装置20已经发射第一子片段之后,客户端装置40接收第一子片段(266)。在一些实例中,客户端装置40可以准备第一子片段以用于解码(268)。举例来说,客户端装置40可以缓冲或以其它方式准备第一子片段以用于解码,以使得在接收到片段标头数据后可以立即对第一子片段进行解码。

此外,内容准备装置20形成第二子片段(272)。第二子片段可以用类似于上文所描述的第一子片段的方式形成。在形成之后,内容准备装置20可以向客户端装置40发送第二子片段(具有子片段标头数据)(274)。客户端装置40接着接收第二子片段(276)。在一些实例中,客户端装置40可以用类似于上文相对于第一子片段所描述的方式准备第二子片段以用于解码(278)。

在形成和发射第二子片段之后,内容准备装置20可以形成适用于所有子片段(例如,在图5中展示的实例中,是第一和第二子片段)的片段标头(280)。内容准备装置20还可向客户端装置40发送片段标头(282)。客户端装置40可以接着接收片段标头(284)并且对第一和第二子片段进行解码(286)。也就是说,客户端装置40可以对先前接收到的子片段中的每一者进行解码。

以此方式,图5的方法表示一种包含接收多媒体数据的片段的第一子片段的方法的实例,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示第一子片段内的数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考片段的第二子片段的数据单元。所述方法还包含:在接收到第一子片段之后,接收第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头;以及在接收到第一子片段和第二子片段之后处理所述片段。

此外,图5的方法表示一种包含发送多媒体数据的片段的第一子片段的方法的实例,所述第一子片段包括一个或一个以上数据单元的第一组以及包含指示第一子片段内的数据单元的位置的数据的第一标头,其中所述数据单元中的至少一者参考片段的第二子片段的数据单元。所述方法还包含,在发送第一子片段之后,发送第二子片段,所述第二子片段包括一个或一个以上数据单元的第二组以及包含指示第二子片段内的数据单元的位置的数据的第二标头。

还应理解,相对于图5展示和描述的步骤只是作为一个实例提供。也就是说,图5的方法的步骤不一定需要用图5中所示的次序执行,并且可以执行较少、额外或替代的步骤。在一实例中,相对于图5展示和描述的方法包含第一和第二子片段。但是,在其它实例中,服务器装置可以准备(并且客户端装置可以接收)媒体数据的两个以上子片段。

在一个或一个以上实例中,本文所述的功能可以用硬件、软件、固件或其任何组合来实施。如果用软件实施,则所述功能可以作为一个或一个以上指令或代码在计算机可读媒体上存储或传输,并且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包含任何促进将计算机程序从一处传送到另一处的媒体(例如,根据一种通信协议)的通信媒体。以此方式,计算机可读媒体总体上可以对应于(1)有形计算机可读存储媒体,其是非暂时的,或(2)通信媒体,例如信号或载波。数据存储媒体可以是可由一个或一个以上计算机或一个或一个以上处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用的媒体。计算机程序产品可包含计算机可读媒体。

借助于实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或任何其它可用来存储指令或数据结构的形式的期望程序代码并且可由计算机存取的媒体。而且,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么将同轴电缆、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时性媒体,而是实际上针对于非暂时性有形存储媒体。如本文所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。

指令可以由一个或一个以上处理器执行,所述一个或一个以上处理器例如是一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文所述的功能性可以在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。并且,可将所述技术完全实施于一个或一个以上电路或逻辑元件中。

本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。实际上,如上文所描述,各种单元可以配合合适的软件和/或固件组合在一个编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一个或一个以上处理器。

已描述各种实例。这些以及其它实例在所附权利要求书的范围内。

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