首页> 中国专利> 媒体流传输期间在适配集合间的切换方法和装置

媒体流传输期间在适配集合间的切换方法和装置

摘要

媒体流传输期间在适配集合间的切换方法和装置。一种用于取回媒体数据的设备包括一个或多个处理器,所述处理器被配置为从包括第一类型的媒体数据的第一适配集合取回媒体数据,呈现来自第一适配集合的媒体数据,响应于切换到包括所述第一类型的媒体数据的第二适配集合的请求:从所述第二适配集合取回包括所述第二适配集合的切换点的媒体数据,并且在实际的播出时间已经满足或者超过针对所述切换点的播出时间之后,呈现来自所述第二适配集合的媒体数据。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-18

    授权

    授权

  • 2018-08-17

    实质审查的生效 IPC(主分类):H04N21/2343 申请日:20140909

    实质审查的生效

  • 2018-07-24

    公开

    公开

说明书

本申请是申请日为2014年9月9日、申请号为201480055085.1(PCT/US2014/054729)、名称为“媒体流传输期间在适配集合间的切换方法和装置”的中国专利申请的分案申请。

技术领域

本公开内容涉及对经编码的多媒体数据的存储和传输。

背景技术

可以将数字视频能力并入到范围广泛的设备中,所述设备包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或者台式计算机、数字照相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制器、蜂窝或者卫星无线电话、视频远程会议设备等。数字视频设备实现诸如那些由MPEG-2、MPEG-4、ITU-T H.263或者ITU-TH.264/MPEG-4、Part 10、高级视频编码(AVC)所定义的标准以及这样的标准的扩展中所描述的视频压缩技术,以更加高效地发送和接收数字视频信息。

在视频数据已经被编码后,可以将视频数据分组化,以用于传输或者存储。可以将视频数据组装成符合各种标准(例如,国际标准化组织基础媒体文件格式及其扩展,例如,MP4文件格式和高级视频编码(AVC)文件格式)中的任何标准的视频文件。可以以各种方式来传输这样的分组化视频数据,例如,通过使用网络流的计算机网络进行传输。

发明内容

总体上,本公开内容描述了关于在媒体数据的流传输(例如,通过网络)期间的在适配集合之间的切换。总体上,适配集合可以包括特定类型的媒体数据,例如,视频、音频、定时文本等。尽管常规上,在通过网络的媒体流传输中,已经提供了用于在适配集合内的表示之间切换的技术,但是总体上,本公开内容的技术针对在适配集合本身之间切换的技术。

在一个示例中,取回媒体数据的方法包括,从包括第一类型的媒体数据的第一适配集合取回媒体数据,呈现来自第一适配集合的媒体数据,响应于切换到包括第一类型的媒体数据的第二适配集合的请求:从第二适配集合取回包括第二适配集合的切换点的媒体数据,以及在实际播出时间已经满足或超过切换点的播出时间之后呈现来自第二适配集合的媒体数据。

在另一个示例中,用于取回媒体数据的设备包括一个或多个处理器,其被配置为从包括第一类型的媒体数据的第一适配集合取回媒体数据,呈现来自第一适配集合的媒体数据,响应于切换到包括第一类型的媒体数据的第二适配集合的请求:从第二适配集合取回包括第二适配集合的切换点的媒体数据,以及在实际播出时间已经满足或者超过切换点的播出时间之后呈现来自第二适配集合的媒体数据。

在另一个示例中,用于取回媒体数据的设备包括:用于从包括第一类型的媒体数据的第一适配集合取回媒体数据的单元,用于呈现来自第一适配集合的媒体数据的单元,用于响应于切换到包括第一类型的媒体数据的第二适配集合的请求,从第二适配集合取回包括第二适配集合的切换点的媒体数据的单元,以及响应于请求而在实际播出时间已经满足或者超过切换点的播出时间之后呈现来自第二适配集合的媒体数据的单元。

在另一个示例中,计算机可读存储介质具有存储于其上的指令,当所述指令被执行时使处理器:从包括第一类型的媒体数据的第一适配集合取回媒体数据,呈现来自第一适配集合的媒体数据,响应于切换到包括第一类型的媒体数据的第二适配集合的请求:从第二适配集合取回包括第二适配集合的切换点的媒体数据,以及在实际播出时间已经满足或者超过切换点的播出时间之后呈现来自第二适配集合的媒体数据。

在以下的附图和描述中阐述了一个或多个示例的细节。根据描述和附图,并且根据权利要求书,其它的特征、目标和优点将是显而易见的。

附图说明

图1是示出了实现用于通过网络来流传输媒体数据的技术的示例系统的框图。

图2是示出了示例多媒体内容的要素的概念图。

图3是示出了示例视频文件的要素的框图,所述示例视频文件可以对应于多媒体内容的表示的片段。

图4A和图4B是示出了根据本公开内容的技术的、用于在播放期间在适配集合之间进行切换的示例方法的流程图。

图5是示出了根据本公开内容的技术的、用于在适配集合之间进行切换的另一个示例方法的流程图。

具体实施方式

总体上,本公开内容描述了涉及通过网络对多媒体数据(例如,音频和视频数据)进行流传输的技术。可以结合通过HTTP的动态自适应流传输(DASH)来使用本公开内容的技术。本公开内容描述了可以结合网络流传输来执行的各种技术,可以单独或者以任何组合来实现所述技术中的任何或者全部技术。如在下文中更加详细地描述的,执行网络流传输的各种设备可以被配置为实现本公开内容的技术。

根据DASH和用于通过网络来流传输数据的类似技术,可以以各种方式并且利用各种特性来将多媒体内容(例如,电影或者也可以包括音频数据、视频数据、文本覆盖或者其它数据的其它媒体内容,其统一被称为“媒体数据”)编码。内容准备设备可以形成相同的多媒体内容的多个表示。每个表示可以对应于特性的特定集合(例如,编码和渲染特性),以提供可由具有各种编码和渲染能力的多种不同的客户端设备使用的数据。此外,具有各种比特速率的表示可以允许带宽适配。也就是说,客户端设备可以确定当前可用的带宽的量,并且基于可用的带宽的量来选择表示,以及客户端设备的编码和渲染能力。

在一些示例中,内容准备设备可以指示表示的集合具有公共特性的集合。然后,内容准备设备可以指示集合中的表示形成适配集合,以使得集合中的表示可以被用于带宽适配。也就是说,适配集合中的表示可以在比特速率方面彼此不同,但是在其它方面共享大体上相同的特性(例如,编码和渲染特性)。以这种方式,客户端设备可以针对多媒体内容的各种适配集合来确定公共的特性,并且基于客户端设备的编码和渲染能力来选择适配集合。然后,客户端设备可以基于带宽可用性在所选择的适配集合中在表示之间自适应地切换。

在一些情况下,可以针对特定类型的所包括的内容来构造适配集合。例如,可以形成用于视频数据的适配集合,以使得针对场景的每个照相机角度(或者照相机视角)存在至少一个适配集合。作为另一个示例,可以针对不同的语言提供用于音频数据和/或定时文本(例如,字幕文本数据)的适配集合。也就是说,可以存在针对每个期望的语言的音频适配集合和/或定时文本适配集合。这可以允许客户端设备基于用户偏好(例如,针对音频和/或视频的语言偏好)来选择合适的适配集合。作为另一个示例,客户端设备可以基于用户偏好来选择一个或多个相机角度。例如,用户可能希望观看特定的场景的替代的相机角度。作为另一个示例,用户可能希望在三维(3D)视频中观看相对更多或更少的深度,在这种情况下,用户可以选择具有相对较近或者距离较远的照相机视角的两个或更多个视图。

可以将用于表示的数据分成个体的文件,通常被称为片段。文件中的每个文件都是由特定的统一资源定位符(URL)可寻址的。客户端设备可以在特定的URL处提交针对文件的GET请求以取回文件。根据本公开内容的技术,客户端设备可以通过例如根据由对应的服务器设备提供的URL模板将期望的字节范围包括在URL通道本身内来修改GET请求。

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

ISO基础媒体文件格式被设计为包含定时的媒体信息,以用于以促进媒体的互换、管理、编辑和呈现的灵活的、可扩展的格式来呈现。在MPEG-4 Part-12中指定了ISO基础媒体文件格式(ISO/IEC 14496-12:2004),所述MPEG-4 Part-12定义了基于时间的媒体文件的一般结构。ISO基础媒体文件格式被用作家族中的其它文件格式(例如,被定义为支持H.264/MPEG-4 AVC视频压缩的AVC文件格式(ISO/IEC 14496-15)、3GPP文件格式、SVC文件格式、以及MVC文件格式)的基础。3GPP文件格式和MVC文件格式是AVC文件格式的扩展。ISO基础媒体文件格式包括时序(timing)、结构以及针对媒体数据的定时序列(例如,视听呈现)的媒体信息。文件结构可以是面向对象的。文件可以简单地被分解成基本对象和可以从其类型中暗示的对象结构。

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

可以将表示(运动序列)包括在若干个文件(有时被称为片段)中。定时和分帧(位置和大小)信息通常在ISO基础媒体文件中,并且辅助文件基本上可以使用任何格式。该呈现可以“本地”于包括呈现的系统,或者可以经由网络或者其它流传递机制而被提供。

当通过流传输协议来传递媒体时,可能需要将媒体从其在文件中所表示的方式中变形。这种情况的一个示例是当通过实时传输协议(RTP)来发送媒体时。例如,在文件中,视频的每个帧都被连续地存储为文件格式样本。在RTP中,必须服从特定于所使用的编解码器的分组化规则,以将这些帧置于RTP分组中。流传输服务器可以被配置为实时地计算这样的分组化。然而,存在针对对流传输服务器的帮助的支持。

本公开内容描述了用于在经由流传输(例如,利用DASH的技术)取回的媒体数据的播放(还称为播出)期间在适配集合之间进行切换的技术。例如,在流传输期间,用户可能希望切换音频和/或字幕的语言,查看替代的照相机角度、或者增加或降低3D视频数据的深度的相对量。为了适应用户,客户端设备可以在已经从第一适配集合取回了一定量的媒体数据之后,切换到包括与第一适配集合相同类型的媒体数据的第二、不同的适配集合。客户端设备可以继续播出从第一适配集合取回的媒体数据,至少直到已经将第二适配集合的切换点译码之后为止。例如,针对视频数据,切换点可以对应于瞬时译码器刷新(IDR)图片、干净随机访问(CRA)图片、或者其它随机访问点(RAP)图片。

应当理解的是,本公开内容的技术特别地针对适配集合之间的切换,并且不仅是适配集合内的表示。鉴于先前技术允许客户端设备在公共适配集合的表示间进行切换,本公开内容的技术针对在适配集合本身间的切换。如在下文中所描述的,该适配集合切换允许用户享受例如归因于不中断的播放体验的更愉快的体验。常规上,如果用户想要切换到不同的适配集合,媒体数据的播放将需要被中断,这导致不愉快的用户体验。也就是说,用户将需要完全停止播放,选择不同的适配集合(例如,相机角度和/或音频或者定时文本的语言),接着从媒体内容的开始处重新开始播放。为了回到之前的播放位置(即,当媒体播放被中断以便切换适配集合时的播放位置),用户将需要进入技巧模式(例如,快进)并且手动地找到之前的播放位置。

此外,中断媒体数据的播放导致丢弃之前取回的媒体数据。也就是说,为了执行流传输媒体取回,客户端设备通常在当前的播放位置之前就缓冲好媒体数据。以这种方式,如果(例如,响应于带宽波动)需要发生适配集合的表示之间的切换,存在存储在缓冲器中的足够的媒体数据,以允许在不中断播放的情况下发生切换。然而,在上文所描述的场景中,经缓冲的媒体数据将完全被浪费。特别地,不仅仅将放弃当前的适配集合的经缓冲的媒体数据,而且还将放弃没有被切换的其它适配集合的经缓冲的媒体数据。例如,如果用户想要从英语语言音频切换到西班牙语语言音频,播放将中断,并且英语语言和对应的视频数据两者都将被放弃。接着,在切换到西班牙语语言的音频适配集合之后,客户端设备将再次取回先前被放弃的该视频数据。

另一方面,本公开内容的技术允许,例如,在不中断播放的情况下,在媒体流传输期间在适配集合之间进行切换。例如,客户端设备可能已经从第一适配集合取回了媒体数据(并且更加具体而言,第一适配集合的表示),并且可能正在呈现来自第一适配集合的媒体数据。在呈现来自第一适配集合的媒体数据时,客户端设备可以接收请求以切换到第二、不同的适配集合。请求可以源自响应于来自用户的输入而由客户端设备执行的应用。

例如,用户可能希望切换到不同语言的音频,在这种情况下用户可以提交请求以改变音频语言。作为另一个示例,用户可能希望切换到不同语言的定时文本(例如,字幕)。作为又一个示例,用户可能希望切换照相机角度,在这种情况下用户可以提交改变相机角度(并且每个适配集合可以对应于特定的照相机角度)的请求。切换照相机角度可以简单地用于从不同的视角看视频,或者用于改变第二(或其他额外的)观看角度,例如,以用于增加或者降低在3D播放期间所显示的相对深度。

响应于请求,客户端设备可以从第二适配集合取回媒体数据。特别地,客户端设备可以从来自第二适配集合的表示取回媒体数据。所取回的媒体数据可以包括切换点(例如,随机访问点)。客户端设备可以继续呈现来自第一适配集合的媒体数据,直到实际的播出时间已经满足或者超过针对第二适配集合的切换点的播出时间。通过这样方式,客户端设备可以利用第一适配集合的经缓冲的媒体数据,并且避免在从第一适配集合切换到第二适配集合期间中断播出。换句话说,在实际的播出时间已经满足或者超过第二适配集合的切换点的播出时间之后,客户端设备可以开始呈现来自第二适配集合的媒体数据。

当在适配集合之间进行切换时,客户端设备可以确定第二适配集合的切换点的位置。例如,客户端设备可以参考限定了第二适配集合中的切换点的位置的清单文件,例如,媒体呈现描述(MPD)。通常,公共适配集合的表示是在时间上对齐的,以使得公共适配集合的表示中的每个表示中的片段边界发生在相同的播放时间处。然而,不同的适配集合不是所说的这样。也就是说,尽管公共适配集合的表示的片段可以是在时间上对齐的,但是不同的适配集合的表示的片段不需要在时间上对齐。因此,当从一个适配集合的表示切换到另一个适配集合的表示时确定切换点的位置可能是困难的。

因此,客户端设备可以参考清单文件以针对第一适配集合的表示(例如,当前的表示)以及第二适配集合的表示两者确定片段边界。片段边界通常是指包括在片段内的媒体数据的开始和结束播放的时间。因为在不同的适配集合之间,片段不一定是在时间上对齐的,所以客户端设备可能需要取回在时间上交迭的两个片段的媒体数据,其中两个片段来自不同的适配集合的表示。

客户端设备还可以尝试在第二适配集合中找到最接近于接收到切换到第二适配集合的请求的播放时间的切换点。通常,客户端设备尝试在第二适配集合中找到在播放时间方面比接收到切换到第二适配集合的请求的时间晚的切换点。然而,在某些实例中,切换点可以出现在距离接收到在适配集合之前进行切换的请求的播放时间不可接受地远的位置;通常,这仅仅当将要被切换适配集合包括定时文本(例如,用于字幕)时。在这样的实例中,客户端设备可以请求在播放时间中比接收到切换请求的时间早的切换点。

本公开内容的技术可以适用于网络流传输协议,例如,根据通过HTTP的动态自适应流传输(DASH)的HTTP流传输。在HTTP流传输中,频繁使用的操作包括GET和部分GET。GET操作取回与给定的统一资源定位符(URL)或者其它标识符(例如,URI)相关联的整个文件。部分GET操作将字节范围作为输入参数来接收,并且取回对应于所接收的字节范围的连续数量的字节的文件。因此,可以为电影片段提供HTTP传输,这是因为部分GET操作可以获得一个或多个个体的电影片段。注意,在电影片段中,可以存在不同的轨道的若干个轨道片段。在HTTP流传输中,媒体表示可以是可由客户端访问的数据的结构化集合。客户端可以请求并且下载媒体数据信息以向用户呈现流传输服务。

在使用HTTP流传输的流传输3GPP数据的示例中,可以存在多媒体内容的视频和/或音频数据的多个表示。可以在媒体呈现描述(MPD)数据结构中限定这样的表示的清单。媒体表示可以对应于可由HTTP流传输客户端设备访问的数据的结构化的集合。HTTP流传输客户端设备可以请求和下载媒体数据信息以向客户端设备的用户呈现流传输服务。可以以可以包括MPD的更新的MPD数据结构来描述媒体表示。

每个时段可以包含相同的媒体内容的一个或多个表示。表示可以是音频或者视频数据的多个替代的经编码的版本中的一个版本。可以通过各种特性(例如编码类型)来使表示相异,例如,针对视频数据通过比特速率、分辨率、和/或编解码器,并且针对音频数据通过比特速率、语言、和/或编解码器。术语表示可以用来指对应于多媒体内容的特定的时段并且以特定的方式被编码的经编码的音频或视频数据的部分。

特定的时段的表示可以被分配给组,所述组可以由MPD中的group(组)属性来指示。相同的组中的表示通常被认为可以相互代替。例如,可以将特定的时段的视频数据的每个表示分配给相同的组,以使得可以选择表示中的任何表示以进行译码,以显示对应的阶段的多媒体内容的视频数据。在一些示例中,一个时段内的媒体内容可以或者由来自组0的一个表示(如果存在的话)或者由来自每个非零组的最多一个表示来表示。可以相对于时段的开始时间来表达针对时段中的每个表示的时序数据。

表示可以包括一个或多个片段。每个表示可以包括初始化片段,或者表示的每个片段可以是自行初始化的。当存在时,初始化片段可以包括初始化信息以用于对表示进行访问。通常,初始化片段不包括媒体数据。片段可以唯一地通过标识符(例如,统一资源定位符)来引用。MPD可以针对每个片段来提供标识符。在一些示例中,MPD还可以以range(范围)属性的形式提供字节范围,其可以对应于可以通过URL或者URI访问的文件内的片段的数据。

每个表示还可以包括一个或多个媒体分量,其中,每个媒体分量可以对应于一个个体的媒体类型(例如,音频、视频、和/或定时文本(例如,隐藏字幕))的经编码的版本。媒体分量可以是跨越一个表示内的连续的媒体片段的边界而时间连续的。因此,表示可以对应于个体的文件或者片段的序列,其中每项都可以包括相同的编码和渲染特性。

在一些示例中,本公开内容的技术可以提供一个或多个益处。例如,本公开内容的技术允许在适配集合之间进行切换,这可以允许用户在进行过程中在相同类型的媒体之间进行切换。也就是说,用户可以请求在媒体的类型(例如,音频、定时文本或者视频)的适配集合之间进行切换,并且客户端设备可以无缝地执行切换,而不是停止播放以在适配集合之间改变。这可以避免浪费经缓冲的媒体数据,同时还避免播放期间的间隙或者暂停。因此,本公开内容的技术可以提供更加令人满意的用户体验,同时也避免过多的网络带宽消耗。

图1是示出了实现用于通过网络来流传输媒体数据的技术的示例系统10的框图。在该示例中,系统10包括内容准备设备20、服务器设备60和客户端设备40。客户端设备40和服务器设备60通过可以包括互联网的网络74通信地耦合。在一些示例中,内容准备设备20和服务器设备60还可以通过网络74或者另一个网络相耦合,或者可以直接通信地耦合。在一些示例中,内容准备设备20和服务器设备60可以包括相同的设备。在一些示例中,内容准备设备20可以将所准备的内容分布至包括服务器设备60的多个服务器设备。相似地,在一些示例中,客户端设备40可以与包括服务器设备60在内的多个服务器设备进行通信。

如在下文中更加详细地描述的,客户端设备40可以被配置为执行本公开内容的某些技术。例如,客户端设备40可以被配置为在媒体数据的播放期间在适配集合之间进行切换。客户端设备40可以提供用户界面,通过所述用户界面,用户可以提交请求以在特定类型的媒体(例如,音频、视频和/或定时文本)的适配集合之间进行切换。以这种方式,客户端设备40可以接收请求以在相同类型的媒体数据的适配集合之间进行切换。例如,用户可以请求从包括第一语言的音频或者定时文本数据的适配集合切换到包括第二、不同的语言的音频或者定时文本数据的适配集合。作为另一个示例,用户可以请求从包括第一照相机角度的视频数据的适配集合切换到包括第二、不同的照相机角度的视频数据的适配集合。

在图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产生经编码的视频数据的流。数据(无论是音频还是视频)的每个个体的流都可以被称为基本流。基本流是表示的单个的、经数字编码(可能是压缩)的分量。例如,表示的经编码的视频或者音频部分可以是基本流。基本流在被封装在视频文件内之前可以被转换成分组化的基本流(PES)。在相同的表示内,流ID可以被用于将属于一个基本流的PES-分组与其它分组区分开。基本流的数据的基本单元是分组化的基本流(PES)分组。因此,经编码的视频数据通常对应于基本视频流。相似地,音频数据对应于一个或多个相应的基本流。

与许多视频编码标准一样,H.264/AVC定义了用于无错比特流的语法、语义、以及译码过程,其中的任何项都是符合一定的轮廓(profile)或者级别的。H.264/AVC不指定编码器,但是编码器的任务是保证所生成的比特流是符合译码器的标准的。在视频编码标准的上下文中,“轮廓”对应于算法、特性或者工具以及对其施加的限制的子集。如由H.264标准所定义的,例如,“轮廓”是由H.264标准指定的整个比特流语法的子集。“级别”对应于对译码器资源消耗(例如,译码器存储器和计算)的限制,这是与图片的分辨率、比特速率、以及宏块(MB)处理速率相关的。可以利用profile_idc(轮廓指示符)值来用信号发送轮廓,而可以利用level_idc(级别指示符)值来用信号发送级别。

例如,H.264标准认识到,在由给定的轮廓的语法施加的边界内,仍然可能需要取决于通过比特流中的语法要素取得的值的在编码器和译码器的性能方面的大幅度变化,例如经译码的图片的指定大小。H.264标准进一步认识到,在许多应用中,实现能够处理对特定轮廓内的语法的所有假设使用的译码器既不现实也不经济。因而,H.264标准将“级别”定义为施加在比特流中的语法要素的值上的限制的指定集合。这些限制可以是对值的简单限制。替代地,这些限制可以采取对值的算术组合的限制的形式(例如,图片宽度乘以图片高度乘以每秒译码的图片数量)。H.264标准进一步提供了可以针对每个所支持的轮廓支持不同级别的个体的实现方式。可以提供多媒体内容的各种表示,以适应H.264内编码的各种轮廓和级别,并且以适应其它编码标准,例如即将出现的高效率视频编码(HEVC)标准。

符合轮廓的译码器通常支持轮廓中所限定的所有特征。例如,作为编码特征,在H.264/AVC的基线轮廓中不支持B-图片编码,但是在H.264/AVC的其它轮廓中支持B-图片编码。符合特定级别的译码器应该能够将不需要超过级别中所限定的限制的资源的任何比特流译码。对轮廓和级别的限定可能对可解释性有帮助。例如,在视频传输期间,可以针对整个传输会话对轮廓和级别的限定对进行协商并且达成一致。更加具体来说,在H.264/AVC中,例如,级别可以限定需要被处理的块的数量的限制、经译码图片缓冲器(DPB)的大小、经编码图片缓冲器(CPB)的大小、垂直运动向量范围、每两个连续MB的运动向量的最大数量以及B-块是否可以具有小于8×8像素的子块划分。以这种方式,译码器可以确定译码器是否能够恰当地将比特流译码。

诸如ITU-T H.261、H.262、H.263、MPEG-1、MPEG-2、H.264/MPEG-4 part 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分组可以包括标识PES分组属于的基本流的stream_id。封装单元30负责将基本流汇集成各种表示的视频文件。

封装单元30从音频编码器26和视频编码器28接收表示的基本流的PES分组,并且从PES分组形成对应的网络抽象层(NAL)单元。在H.264/AVC(高级视频编码)的示例中,将经编码的视频片段组织成为NAL单元,其提供“网络友好”的视频表示处理应用,例如,视频电话、存储器、广播或者流传输。NAL单元可以被分类到视频编码层(VCL)NAL单元和非VCL NAL单元。VCL单元可以包括核心压缩引擎,并且可以包括块、宏块和/或截片(slice)级的数据。其它NAL单元可以是非VCL NAL单元。

封装单元30可以向输出接口32提供多媒体内容的一个或多个表示的数据以及清单文件(例如,MPD)。输出接口32可以包括网络接口或者用于向存储介质写入的接口,例如,通用串行总线(USB)接口、CD或者DVD写入器或者烧录器、到磁存储介质或者闪速存储介质的接口、或者用于存储或者发送媒体数据的其它接口。封装单元30可以向输出接口32提供多媒体内容的表示中的每个表示的数据,所述输出接口32可以经由网络传输、直接传输、或者存储介质向服务器设备60发送数据。在图1的示例中,服务器设备60包括存储各种多媒体内容64的存储介质42,每个所述多媒体内容64包括相应的清单文件66和一个或多个表示68A至68N(表示68)。根据本公开内容的技术,可以将清单文件66的部分存储在分离的位置,例如,存储介质62或者网络74中的潜在的另一个设备(例如,代理设备)的另一个存储介质的位置。

可以将表示68分成适配集合。也就是说,表示68的各种子集可以包括特性的相应公共集合,例如,编解码器、轮廓和级别、分辨率、视图数、片段的文件格式、可以标识将利用表示显示的文本的语言或者其它特性的文本类型信息、和/或将被编码和例如由扬声器呈现的音频数据、将例如由扬声器、可以针对适配集合中的表示而描述照相机角度或者真实世界的场景的相机视角的相机角度信息、针对特定的观众描述内容合适性的评级信息等。

清单文件66可以包括对应于特定的适配集合的表示68的子集的数据指示以及适配集合的公共特性。清单文件66还可以包括适配集合的个体的表示的个体的特性(例如,比特速率)的数据表示。以这种方式,适配集合可以提供简化的网络带宽适配。可以使用清单文件66中的适配集合要素的子要素来指示适配集合中的表示。

服务器设备60包括请求处理单元70和网络接口72。在一些示例中,服务器设备60可以包括多个网络接口,包括网络接口72。此外,可以在内容分布网络的其它设备(例如,路由器、桥、代理设备、交换机或者其它设备)上实现服务器设备60的特征中的全部或任何特征。在一些示例中,内容分布网络的中间设备可以缓存多媒体内容64的数据,并且包括与服务器设备60的那些部件大体上一致的部件。通常,网络接口72被配置为经由网络74来发送和接收数据。

请求处理单元70被配置为针对存储介质62的数据从客户端设备(例如,客户端设备40)接收网络请求。例如,请求处理单元70可以实现在RFC 2616,“Hyper TransferProtocol-HTTP/1.1”,R.Feilding等人,网络工作组(Network Working Group),IETF,1999年六月中所描述的超文本传输协议(HTTP)版本1.1。也就是说,请求处理单元70可以被配置为接收HTTP GET或者部分GET请求,并且响应于请求而提供多媒体内容64的数据。请求可以例如使用片段的URL来指定表示68中的一个表示的片段。在一些示例中,请求还可以指定片段的一个或多个字节范围。在一些示例中,可以使用部分GET请求来指定片段的字节范围。在其它示例中,根据本公开内容的技术,可以例如根据通用模板将片段的字节范围指定为片段的URL的一部分。

请求处理单元70可以进一步被配置为服务HTTP HEAD请求,以提供表示68中的一个表示的片段的报头数据。在任何情况下,请求处理单元70可以被配置为处理请求以向请求设备(例如,客户端设备40)提供所请求的数据。此外,处理器单元70可以被配置为生成用于构造URL的模板,所述URL指定字节范围,提供指示模板是所需要的还是可选的信息,并且提供指示任何字节范围都是可接受的还是只允许字节范围的特定的集合的信息。当仅允许特定的字节范围时,请求处理单元70可以提供对所允许的字节范围的指示。

如在图1的示例中所示出的,多媒体内容64包括清单文件66,所述清单文件66可以对应于媒体呈现描述(MPD)。清单文件66可以包括对不同的替代表示68(例如,具有不同质量的视频服务)的描述,并且描述可以包括例如编解码器信息、轮廓值、级别值、比特速率以及表示68的其它描述性特性。客户端设备40可以取回媒体表示的MPD,以确定如何访问表示68的片段。

客户端设备40的网络应用52可以包括由客户端设备40的基于硬件的处理单元来执行的网络浏览器,或者这样的网络浏览器的插件。对网络应用52的引用通常应该被理解为包括或者网络应用程序(例如,网络浏览器、独立视频播放器),或者并入了网络浏览器的播放插件的网络浏览器。网络应用程序52可以取回客户端设备40的配置数据(未示出),以确定客户端设备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的网络带宽可用性。

如上所述,在一些示例中,客户端设备40可以向例如服务器设备60或者内容分布网络的其它设备提供用户信息。用户信息可以采用浏览器网络跟踪器(cookie)的形式,或者可以采用其它形式。例如,网络应用52可以收集用户标识符、用户标识符、用户偏好和/或用户人口统计信息,并且将这样的用户信息提供至服务器设备60。然后,网络应用52可以接收与目标广告媒体内容相关联的清单文件,以在播放期间使用以将来自目标广告媒体内容的数据插入到所请求的媒体内容的媒体数据中。可以直接将该数据作为请求清单文件或者清单子文件的结果而接收,或者可以经由重定向到替代的清单文件或者子文件的HTTP来接收该数据(基于用于存储用户人口学和其它目标信息的所提供的浏览器网络跟踪器)。

有时,客户端设备40的用户可以使用客户端设备40的用户接口(例如,键盘、鼠标、触摸笔、触摸屏界面、按钮或者其它接口)与网络应用52进行交互,以请求多媒体内容(例如,多媒体内容64)。响应于来自用户的这样的请求,网络应用52可以基于例如客户端设备40的译码和渲染能力来选择表示68中的一个表示。为了取回表示68中的所选择的一个表示的数据,网络应用52可以顺序地请求表示68中的所选择的一个表示的具体字节范围。以这种方式,网络应用52可以通过多个请求来顺序地接收文件的部分,而不是通过一个请求来接收完整的文件。

在一些示例中,服务器设备60可以指定来自客户端设备(例如,客户端设备40)的URL的通用模板。继而,客户端设备40可以使用模板来构造用于HTTP GET请求的URL。在DASH协议中,URL是或者通过在每个片段内明确地列出它们,或者是通过给出URL模板来形成的,所述URL模板包括一个或多个公知的模式(例如,$$、$RepresentationID$、$Index$、$Bandwith$或者$Time$(由DASH的当前稿的表格9描述的)。在做出URL请求之前,客户端设备40可以将诸如“$$”、表示识别、片段的索引等的文本字符串替换成URL模板以生成将要取来的最终的URL。本公开内容定义了可以被添加到例如多媒体内容的MPD(例如,多媒体内容64的清单文件66)中的DASH文件的SegmentInfoDefault元素的若干个额外的XML字段。

响应于由网络应用52向服务器设备60提交的请求,网络接口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中的每项都可以被包括在一个或多个编码器或者译码器中,其中的任一项可以被集成为组合的视频编码器/译码器(CODEC)的一部分。同样地,音频编码器26和音频译码器46中的每项可以被包括在一个或多个编码器或者译码器中,其中的任一项可以被集成为组合的CODEC的一部分。包括视频编码器28、视频译码器48、音频编码器26、音频译码器46、封装单元30、网络应用52和/或解封装单元50的装置可以包括集成电路、微处理器和/或无线通信设备,例如,蜂窝电话。

以这种方式,客户端设备40表示用于取回媒体数据的设备的示例,其中,设备可以包括一个或多个处理器,所述一个或多个处理器被配置为从包括第一类型的媒体数据的第一适配集合取回媒体数据,呈现来自第一适配集合的媒体数据,响应于切换到包括第一类型的媒体数据的第二适配集合的请求:从第二适配集合取回包括第二适配集合的切换点的媒体数据,并且在实际的播出时间已经满足或者超过针对切换点的播出时间之后,呈现来自第二适配集合的媒体数据。

本公开内容的技术可以应用在以下的上下文中:针对时段P1,数据已经被完全下载,并且在下一个时段P2中,下载已经开始。在一个示例中,数据缓冲器包括针对P1的大约值20秒的播放的数据,并且针对P2值5秒的播放的数据,并且用户当前正在观看P1的内容。此时,用户发起适配集合改变,例如,将音频从英语改变成法语。在常规的技术中,可能产生这样的问题,如果源部件(例如,网络应用52)将仅针对P2反映该变化,则用户将在大约20秒之后观察到该变化,这是负面的用户体验。另一方面,如果在P1和P2两者上反映变化,则P2中的改变可能不能准确地反映在P2的开始处。本公开内容的技术可以提供解决方案,其中源部件(例如,服务器设备60的请求处理单元)可以在时段P1和P2两者上反映改变,并且为了从P2的开始起反映改变,源部件可以在P2上向P2的开始时间发出SEEK事件。这样的SEEK事件可以涉及源部件侧上的额外的同步逻辑单元。

本公开内容的技术也可以应用在以下的上下文中:用户快速地发起适配集合改变,特别是利用适配集合B来替换适配集合A,并且然后在快速会话中利用适配集合C来替换适配集合B。可能产生这样的问题,当处理A到B的改变时,适配集合A将从客户端设备内部状态中被移除。因此当发出B到C的改变时,相对于B的下载位置来执行改变。本公开内容的技术可以提供解决方案,其中源部件可以提供新的API,例如,GetCurrentPlaybackTime(type)(获得当前播放时间(类型)),所述新的API接受“type(类型)”作为表示适配集合类型(AUDIO(音频)、VIDEO(视频)等)的变元,并且针对该适配集合提供播放位置(例如,以播放时间的形式)。该新的API可以被用于确定切换时间。切换时间可以在适配集合的播放开始时间之前。例如,B开始时间可以在播放时间(p时间)10秒处,但是基于类型的播放位置可以在时间7秒处。可以改变PKER核心算法,这是因为缓冲器计算逻辑可能受到影响。

替换地,源部件可能已经包括用于当替换适配集合时供给正确的样本的逻辑单元。例如,客户端设备可以被配置为只在时间10秒以后而不是在之前供给来自适配集合B的样本。当发出替换操作时,源部件可以检查针对正被替换的适配集合的播放是否已经开始。对于B到C的适配集合切换,针对适配集合B播放可能还没有开始。如果播放还没有开始,则源部件可以避免针对旧的适配集合向渲染器给出任何数据样本,并且发出以下的命令:REMOVE(移除)(旧的适配集合)[在该情况下REMOVE B],以及ADD(添加)(新的适配集合)[在该情况下ADD C]。对源部件的影响应该是最小的。如果渲染器(例如,音频输出42或者视频输出44)将在适配集合B的切换点处/超过适配集合B的切换点处请求样本,则源部件可以确保适配集合A的播放继续。源部件还可以验证相对于A的C的开始位置。

在又一个示例上下文中,用户可以从适配集合A切换到适配集合B,然后快速地返回适配集合A。在这种情况下,客户端设备40可以避免将适配集合B的样本呈现给用户。根据本公开内容的技术,源部件可以检测,播放还没有在B上开始,并且类似于上文中所描述的场景,阻止B的样本到达渲染器。因此,源部件可以提交以下的命令:REMOVE B,以及立即地ADD A。当添加了A时,全局播放统计可以再次被用于确定A的开始时间,所述A的开始时间可能落入已经呈现的数据内。在这种场景下,源部件可以拒绝SELECT(选择)请求直到当前可用的时间为止。

例如,假设A的数据被下载直到时间30秒为止(并且播放当前在0秒处)。用户可以利用适配集合B来替换适配集合A,并且切换时间已经在2秒处。可以清除A的从2秒到30秒的数据。然而,当A被添加回来时,它将以时间0开始并且发出SELECT请求。源部件可以拒绝该SELECT请求。然后,从时间2秒开始,可以请求元数据。源部件将批准在时间2秒处的选择。

图2是示出了示例多媒体内容100的要素的概念图。多媒体内容100可以对应于多媒体内容64(图1),或者存储在存储介质62中的另一个多媒体内容。在图2的示例中,多媒体内容100包括媒体呈现描述(MPD)102和适配集合104、120。适配集合104、120包括相应的多个表示。在该示例中,适配集合104包括表示106A、106B等(表示106),而适配集合120包括表示122A、122B等(表示122)。表示106A包括可选的报头数据110和片段112A至112N(片段112),而表示106B包括可选的报头数据114和片段116A至116N(片段116)。同样,表示122包括相应的可选的报头数据124、128。表示122A包括片段126A至126M(片段126),而表示122B包括片段130A至130M(片段130)。为了方便起见,字母N被用于指定表示106中的每个表示中的最后的片段。字母M被用于指定表示122中的每个表示中的最后的片段。M和N可以具有不同的值或者相同的值。

片段112、116被示出为具有相同的长度,以指示相同的适配集合的片段可以时间上对齐。相似地,片段126、130被示出为具有相同的长度。然而,片段112、116具有与片段126、130不同的长度,以指示不同的适配集合的片段不一定在时间上对齐。

MPD 102可以包括与表示106分离的数据结构。MPD 102可以对应于图1的清单文件66。同样地,表示106对应于图1的表示68。总体上,MPD 102可以包括概括地描述表示106的特性(例如,编码和渲染特性、适配集合、MPD 102对应的轮廓、文本类型信息、照相机角度信息、评级信息、技巧模式信息(例如,表明包括时间子序列的表示的信息)和/或用于取回远程时段的信息(例如,用于在播放期间插入到媒体内容中的目标广告))的数据。

当存在时,报头数据110可以描述片段112的特性,例如,随机访问点的时间位置、片段112中的哪个片段包括随机访问点、在片段112内与随机访问点的字节偏移、片段112的统一资源定位符(URL)或者片段112的其它方面。当存在时,报头数据114可以描述片段116的相似的特性。相似地,报头数据124可以描述片段126的特性,而报头数据128可以描述片段130的特性。额外地或者替代地,这样的特性可以完全地被包括在MPD 102内。

片段(例如,片段112)包括一个或多个经编码的视频样本,其中每个样本包括视频数据的帧或者截片。对于包括视频数据的片段来说,经编码的视频样本中的每个样本都可以具有相似的特性,例如,高度、宽度、以及带宽要求。尽管没有在图2的示例中示出这样的数据,但是这样的特性可以由MPD 102的数据来描述。在加入在本公开内容中所描述的用信号发送的信息中的任何或全部信息的情况下,MPD 102可以包括由3GPP规范来描述的特性。

片段112、116中的每个片段都可以与唯一的统一资源标识符(URI)(例如,统一资源定位符(URL))相关联。因此,片段112、116中的每个片段可以是使用流传输网络协议(例如,DASH)独立地可取回的。以这种方式,目标设备(例如,客户端设备40)可以使用HTTP GET请求以取回片段112或者124。在一些示例中,客户端设备40可以使用HTTP部分GET请求来取回片段112者或124的具体的字节范围。

根据本公开内容的技术,两个或多个适配集合可以包括相同类型的媒体内容。然而,适配集合的实际媒体可以不同。例如,适配集合104、120可以包括音频数据。也就是说,片段112、116、126、130可以包括经编码的音频数据的数据表示。然而,适配集合104可以对应于英语语言的音频数据,而适配集合120可以对应于西班牙语语言的音频数据。作为另一个示例,适配集合104、102可以包括经编码的视频数据的数据表示,但是适配集合104可以对应于第一照相机角度,而适配集合120可以对应于第二、不同的照相机角度。作为又一个示例,适配集合104、120可以包括定时文本(例如,用于字幕)的数据表示,但是适配集合104可以包括英语语言的定时文本,而适配集合120可以包括西班牙语语言的定时文本。当然,仅仅作为示例提供了英语和西班牙语;通常,任何语言都可以包括在适配集合中,包括音频和/或定时文本,并且可以提供两个或多个替代的适配集合。

根据本公开内容的技术,用户可以初始地选择适配集合104。替代地,客户端设备40可以基于例如配置数据(例如,默认用户偏好)来选择适配集合104。无论如何,客户端设备40可以初始地从适配集合104的表示106中的一个表示取回数据。特别地,客户端设备40可以提交请求以从表示106中的一个表示的一个或多个片段取回数据。例如,假设可用的网络带宽的量最佳地对应于表示106A的比特速率,客户端设备40可以从片段112中的一个或多个片段取回数据。响应于带宽波动,客户端设备40可以切换到表示106中的另一个表示,例如,表示106B。也就是说,在可用的网络带宽的增加或者降低之后,客户端设备40可以开始利用带宽适配技术来从片段116中的一个或多个片段取回数据。

假设表示106A是当前的表示,并且客户端设备40从表示106A的起点处开始,客户端设备40可以提交一个或多个请求以取回片段112A的数据。例如,客户端设备40可以提交HTTP GET请求以取回片段112A,或者提交若干个HTTP部分GET请求以取回片段112A的连续部分。在提交一个或多个请求以取回片段112A的数据之后,客户端设备40可以提交一个或多个请求以取回片段112B的数据。特别地,客户端设备40可以积累表示106A的数据,在该示例中,直到已经缓冲了允许客户端设备40开始对缓冲器中的数据进行译码和呈现的足够量的数据为止。

如在上文中所讨论的,客户端设备40可以周期性地确定网络带宽的可用的量,并且如果需要的话,在适配集合104的表示106之间执行带宽适配。通常,这样的带宽适配是简化的,这是因为表示106的片段是时间上对齐。例如,片段112A和片段116A包括在相同的相对播放时间开始和结束的数据。因此,响应于可用的网络带宽中的波动,客户端40可以在片段边界处在表示106之间进行切换。

根据本公开内容的技术,客户端设备40可以接收请求以切换适配集合,例如,从适配集合104到适配集合120。例如,如果适配集合104包括英语的音频或者定时文本数据,并且适配集合120包括西班牙语的音频或者定时文本,在用户确定在特定的时间西班牙语比英语更优选之后,客户端设备40可以接收来自用户的请求以从适配集合104切换到适配集合120。作为另一个示例,如果适配集合104包括来自第一照相机角度的视频数据,并且适配集合120包括来自第二、不同的照相机角度的视频数据,在用户确定在特定的时间第二照相机角度比第一照相机角度更优选之后,客户端设备40可以接收来自用户的请求以从适配集合104切换到适配集合120。

为了实现从适配集合104到适配集合120的切换,客户端设备40可以参考MPD 102的数据。MPD 102的数据可以指示表示122的片段的开始和结束播放的时间。客户端设备40可以确定接收到在适配集合之间切换的请求的播放时间,并且将该所确定的播放时间与适配集合120的下一个切换点的播放时间进行对比。如果下一个切换点的播放时间足够接近所确定的接收到切换请求的播放时间,客户端设备40可以确定网络带宽的可用的量,并且选择表示122中的具有由可用的网络带宽的量支持的比特速率的一个表示,则请求表示122中的所选择的一个包括切换点的表示的数据。

例如,假设客户端设备40接收请求以在片段112B的播放期间在适配集合104和120之间进行切换。客户端设备40可以确定在表示122A中紧跟着片段126B的片段126C包括在片段126C的开始处(在瞬时播放时间方面)的切换点。特别地,客户端设备40可以根据MPD 102的数据确定片段126C的切换点的播放时间。此外,客户端设备40可以确定片段126C的切换点在接收到在适配集合之间切换的请求的播放时间之后。此外,客户端设备40可以确定表示122A具有最合适于所确定的网络带宽的量的比特速率(例如,高于适配集合120中的所有其它表示122的比特速率,而不超过所确定的可用的网络带宽的量)。

在上文所描述的示例中,客户端设备40可以具有适配集合104的表示106A的片段112B的经缓冲的数据。然而,根据在适配集合之间进行切换的请求,客户端设备40可以请求片段126C的数据。客户端设备40可以大体上与取回片段126C的数据同时取回片段112B的数据。也就是说,如在图2的示例中所示的,因为在播放时间方面片段112B和片段126C交迭,所以在大体上与取回片段112B的数据相同的时间取回片段126C的数据能是必要的。因此,取回数据以用于在适配集合之间切换可以不同于取回数据以用于在相同的适配集合的两个表示之间切换,至少是因为不同的适配集合的两个片段的数据可以大体上同时被取回,而不是按顺序地被取回(如在相同的适配集合的表示之间进行切换例如以用于带宽适应的情况)。

图3是示出了示例视频文件150的要素的框图,所述示例视频文件150可以对应于表示的片段(例如,图2的片段112、124中的一个片段)。片段112、116、126、130中的每个片段可以包括大体上与在图3的示例中所示出的数据的布置一致的数据。如上文所述,根据ISO基础媒体文件格式及其扩展的视频文件将数据存储在被称为“盒子(box)”的一系列的对象中。在图3的示例中,视频文件150包括文件类型(FTYP)盒子152、电影(MOOV)盒子154、电影片段162(还被称为电影片段盒子(MOOF))以及电影片段随机访问(MFRA)盒子164。

视频文件150通常表示多媒体内容的片段的示例,所述多媒体内容的片段可以被包括在表示106、122(图2)中的一个表示中。以这种方式,视频文件150可以对应于片段112中的一个片段、片段116中的一个片段、片段126中的一个片段、片段130中的一个片段或者另一个表示的片段。

在图3的示例中,视频文件150包括一个片段索引(SIDX)盒子161。在一些示例中,视频文件150可以在例如电影片段162之间包括额外的SIDX盒子。通常,SIDX盒子(例如,SIDX盒子161)包括描述电影片段162中的一个或多个片段的字节范围的信息。在其它示例中,可以在MOOV盒子154内、在MOOV盒子154之后、在MFRA盒子164之前或之后或者在视频文件150内的其它地方提供SIDX盒子161和/或其它SIDX盒子。

文件类型(FTYP)盒子152通常描述视频文件150的文件类型。文件类型盒子152可以包括标识了描述视频文件150的最佳使用的规范的数据。可以将文件类型盒子152置于MOOV盒子154、电影片段盒子162、和MFRA盒子164之前。

在图3的示例中,MOOV盒子154包括电影报头(MVHD)盒子156、轨道(TRAK)盒子158以及一个或多个电影扩展(MVEX)盒子160。通常,MVHD盒子156可以描述视频文件150的一般特性。例如,MVHD盒子156可以包括描述了何时视频文件150被最初创建、何时视频文件150最后被修改、视频文件150的时间标尺、视频文件150的播放的持续时间或者总体上描述视频文件150的其它数据的数据。

TRAK盒子158可以包括视频文件150的轨道的数据。TRAK盒子158可以包括描述了对应于TRAK盒子158的轨道的特性的轨道报头(TKHD)盒子。在一些示例中,TRAK盒子158可以包括经编码的视频图片,而在其它的示例中,可以将轨道的经编码的视频图片包括在电影片段162中,TRAK盒子158的数据可以引用所述电影片段162。

在一些示例中,视频文件150可以包括多于一个的轨道,尽管对于DASH协议工作来说这不是必须的。因此,MOOV盒子154可以包括等于视频文件150中的轨道的数量的TRAK盒子数量。TRAK盒子158可以描述对应的视频文件150的轨道的特性。例如,TRAK盒子158可以描述对应的轨道的时间和/或空间信息。当封装单元30(图1)将参数集合轨道包括在视频文件(例如视频文件150)中时,与MOOV盒子154的TRAK盒子158相似的盒子可以描述参数集合轨道的特性。封装单元30可以在描述参数集合轨道的TRAK盒子内,用信号发送参数集合轨道中的序列级别SEI消息的存在。

MVEX盒子160可以描述对应的电影片段162的特性,例如以用信号通知除了包括在MOOV盒子154内的视频数据(如果有的化)之外,视频文件150包括电影片段162。在流传输视频数据的上下文中,经编码的视频图片可以被包括在电影片段162中,而不是在MOOV盒子154中。因而,可以将所有的经编码的视频样本包括在电影片段162中,而不是在MOOV盒子154中。

MOOV盒子154可以包括MVEX盒子160的数量,所述MVEX盒子160的数量等于视频文件150中的电影片段162的数量。MVEX盒子160中的每个MVEX盒子都可以描述电影片段162中的对应的一个电影片段的特性。例如,每个MVEX盒子可以包括电影扩展报头盒子(MEHD)盒子,其描述了电影片段162中的对应的一个电影片段的瞬时的持续时间。

如上所述,封装单元30可以将序列数据集合存储在不包括实际的经编码的视频数据的视频样本中。视频样本可以大体上对应于在具体的时间实例中是经编码的图片的表示的访问单元。在AVC上下文中,经编码的图片包括一个或多个VCL NAL单元,其包括用于构造访问单元和其它相关联的非VCL NAL单元的所有像素的信息,例如,SEI消息。因此,封装单元30可以在在电影片段162中的一个电影片段中包括序列数据集合,所述序列数据集合可以包括序列级别SEI消息。封装单元30可以进一步将序列数据集合和/或序列级别SEI消息的存在用信号发送为存在于对应于电影片段162中的一个片段的MVEX盒子160中的一个MVEX盒子内的电影片段162中的一个电影片段中。

电影片段162可以包括一个或多个经编码的视频图片。在一些示例中,电影片段162可以包括一个或多个图片的组(GOP),其中每个组可以包括多个经编码的视频图片,例如,帧或者图片。此外,如上文所描述的,在一些示例中,电影片段162可以包括序列数据集合。电影片段162中的每个电影片段可以包括电影片段报头盒子(MFHD,未在图3中示出)。MFHD盒子可以描述对应的电影片段的特性,例如,电影片段的序列数。电影片段162可以被包括在视频文件150中的序列数的次序中。

MFRA盒子164可以描述视频文件150的电影片段162内的随机访问点。这可以帮助执行技巧模式,例如,执行在视频文件150内寻找特定的时间位置。在一些示例中,MFRA盒子164通常是可选的,并且不需要被包括在视频文件中。同样,客户端设备(例如,客户端设备40)不一定需要引用MFRA盒子164以正确地将视频文件150的视频数据译码和显示。MFRA盒子164可以包括轨道片段随机访问(TFRA)盒子(未示出)的数量,其等于视频文件150的轨道的数量,或者在一些示例中,等于视频文件150的媒体轨道(例如,非提示轨道)的数量。

图4A和图4B是示出了根据本公开内容的技术的用于在播放期间在适配集合之间进行切换的示例方法的流程图。关于服务器设备60(图1)和客户端设备40(图1)描述了图4A和图4B的方法。然而,应当理解的是,可以配置其它的设备以执行相似的技术。例如,在一些示例中,客户端设备40可以从内容准备设备20取回数据。

在图4A的示例中,最初,服务器设备60向客户端设备40提供适配集合的指示和适配集合的表示(200)。例如,服务器设备60可以向客户端设备40发送用于清单文件(例如,MPD)的数据。尽管未在图4A中示出,服务器设备60可以响应于来自客户端设备40的对指示的请求来向客户端设备40发送指示。指示(例如,包括在清单文件内)可以额外地包括限定了表示内的片段的开始和结束的播放时间以及片段内的各种类型的数据的字节范围的数据。特别地,指示可以指示出包括在适配集合中的每个适配集合内的数据的类型,以及该数据的类型的特性。例如,对于包括视频数据的适配集合,指示可以限定包括在视频适配集合中的每个视频适配集合内的视频数据的照相机角度。作为另一个示例,对于包括音频数据和/或定时文本数据的适配集合,指示可以限定音频和/或定时文本数据的语言。

客户端设备40从服务器设备60接收适配集合和表示指示(202)。客户端设备40可以配置为具有针对例如语言偏好和/或照相机角度偏好中的任何或所有项的用户默认偏好。因此,客户设备40可以基于用户偏好而选择各种类型的媒体数据的适配集合(204)。例如,如果用户已经选择了语言偏好,则客户端设备40可以至少部分基于语言偏好(以及其它特性,例如,客户端设备40的译码和渲染能力以及适配集合的编码和渲染特性)来选择音频适配集合。客户端设备40可以针对音频和视频数据两者(并且,如果用户已经选定显示字幕的话,针对定时文本)来相似地选择适配集合。替代地,客户端设备40不是使用用户偏好,而是可以接收初始的用户选择或者默认配置来选择适配集合。

在选择了特定的适配集合之后,客户端设备40可以确定网络带宽的可用的量(206),以及适配集合中的表示的比特速率(208)。例如,客户端设备40可以参考媒体内容的清单文件,其中,清单文件可以限定表示的比特速率。然后,客户端设备40可以例如基于适配集合的表示的比特速率以及基于所确定的可用的网络带宽的量来从适配集合中选择表示(210)。例如,客户端设备40可以选择具有不超过可用的网络带宽的量的适配集合的最高比特速率的表示。

客户端设备40可以相似地从所选择的适配集合中的每个适配集合选择表示(其中,所选择的适配集合可以各自对应于不同类型的媒体数据,例如,音频、视频和/或定时文本)。应当理解的是,在一些实例中,可以针对相同类型的媒体数据选择多个适配集合,例如,针对立体声或者多视图的视频数据、用于支持各种级别的环绕声或者三维音频阵列的多个音频通道等。客户端设备40可以针对将要呈现的每个类型的媒体数据而选择至少一个适配集合,并且从每个所选择的适配集合选择一个表示。

然后,客户端设备40可以请求所选择的表示的数据(212)。例如,客户端设备40可以使用例如HTTP GET或者部分GET请求来请求来自所选择的表示中的每个表示的片段。通常,客户端设备40可以请求来自具有大体上同时的播放时间的表示中的每个表示的片段的数据。作为响应,服务器设备60可以向客户端设备40发送所请求的数据(214)。客户端设备40可以对所接收的数据进行缓冲、译码、和呈现(216)。

随后,客户端设备40可以接收针对不同的适配集合的请求(220)。例如,用户可以选定切换到音频或者定时文本数据的不同语言、或者不同的照相机角度,例如,以增加或者降低3D视频呈现的深度,或者针对2D视频呈现从替代的角度观看视频。当然,如果替代的观看角度提供3D视频呈现的话,则客户端设备40可以切换例如两个或更多个视频适配集合以提供从替代的观看角度的3D演示。

无论如何,在接收不同的适配集合的请求之后,客户端设备40可以基于请求选择适配集合(222)。该选择过程可以大体上与关于上面的步骤204来描述的选择过程相似。例如,客户端设备40可以选择新的适配集合,以使得新的适配集合包括符合由用户请求的特性(例如,语言或者照相机角度)以及客户端设备40的编码和渲染能力的数据。客户端设备40还可以确定网络带宽的可用的量(224),确定新的适配集合中的表示的比特速率(226),以及基于表示的比特速率和网络带宽的可用的量而从新的适配集合选择表示(228)。该表示选择过程可以大体上与在上文中关于步骤206至210来描述的表示选择过程一致。

然后,客户端设备40可以请求所选择的表示的数据(230)。特别地,客户端设备40可以确定包括切换点的片段,所述切换点具有晚于并且接近于接收切换到新的适配集合的请求的播放时间的播放时间。假设适配集合间的片段不在时间上对齐,请求新的适配集合的表示的片段的数据可以大体上与请求之前的适配集合的表示的数据同时发送。此外,客户端设备40可以继续请求来自没有被切换的其它适配集合的表示的数据。

在一些实例中,新的适配集合的表示可能在不可接受地长的时间段(例如,几秒钟或者几分钟)中没有切换点。在这样的情况下,客户端设备40可以选定请求包括具有早于接收切换到新的适配集合的请求的播放时间的播放时间的切换点的新的适配集合的表示的数据。通常,这将仅针对具有与视频和音频数据比相对低的比特速率的定时文本数据发生,并且因此,取回较早的切换点将不会不利地影响数据取回或者播放。

无论如何,服务器设备60可以向客户端设备40发送所请求的数据(232),并且客户端设备40可以对所接收的数据进行译码和呈现(234)。具体地,客户端设备40可以缓冲所接收的包括新的适配集合的表示的切换点的数据,直到实际的播放时间满足或者超过切换点的播放时间为止。然后,客户端设备40可以从呈现之前的适配集合的数据切换到呈现新的适配集合的数据。并发地,客户端设备40可以继续对具有其它媒体类型的其它适配集合的数据进行译码和呈现。

应当理解的是,在选择第一适配集合的表示之后并且在接收切换到新的适配集合的请求之前,客户端设备40可以周期性地执行带宽估计,并且选择第一适配集合的不同的表示(如果需要,基于重新评估的网络带宽的量)。同样,在选择了新的适配集合的表示之后,客户端设备40可以周期性地执行带宽估计,以确定最后的适配集合。

以这种方式,图4A和图4B的方法表示了包括以下操作的方法:从包括第一类型的媒体数据的第一适配集合取回媒体数据,呈现来自第一适配集合的媒体数据,响应于切换到包括第一类型的媒体数据的第二适配集合的请求:从第二适配集合取回包括第二适配集合的切换点的媒体数据,以及在实际的播出时间满足或者超过切换点的播出时间之后呈现来自第二适配集合的媒体数据。

图5是示出了根据本公开内容的技术的用于在适配集合之间进行切换的另一个示例方法的流程图。在该示例中,客户端设备40接收MPD文件(或者其它清单文件)(250)。然后,客户端设备40接收对第一适配集合的选择,所述第一适配集合包括特定类型(例如,音频、定时文本或者视频)的媒体数据(252)。然后,客户端设备40从第一适配集合的表示取回数据(254),并且呈现所取回的数据中的至少一些数据(256)。

在播放来自第一适配集合的媒体数据的期间,客户端设备40接收对第二适配集合的选择(258)。因此,客户端设备40可以从第二适配集合的表示取回数据(260),并且所取回的数据可以包括第二适配集合的表示内的切换点。因此,客户端设备40可以继续呈现来自第一适配集合的数据,直到第二适配集合的切换点的播放时间为止(262)。然后,客户端设备40可以在切换点之后开始呈现第二适配集合的媒体数据。

从而,图5的方法表示方法的示例,所述方法包括从包括第一类型的媒体数据的第一适配集合取回媒体数据,呈现来自第一适配集合的媒体数据,响应于切换到包括第一类型的媒体数据的第二适配集合的请求:从第二适配集合取回包括第二适配集合的切换点的媒体数据,并且在实际的播出时间已经满足或者超过切换点的播出时间之后呈现来自第二适配集合的媒体数据。

在一个或多个示例中,可以在硬件、软件、固件或其任何组合中实现所描述的功能。如果在软件中实现,功能可以作为计算机可读介质上的以及由基于硬件的处理单元执行的一个或多个指令或者代码被存储或者传输。计算机可读介质可以包括对应于有形的介质(例如,数据存储介质)的计算机可读存储介质、或者包括促进计算机程序从一个地方到另一个地方的传送(例如,根据通信协议)的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或者(2)诸如信号或者载波的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理访问以取回用于实现本公开内容中所描述的技术的指令、代码和/或数据结构的任何可用的介质。计算机程序产品可以包括计算机可读介质。

作为示例并且非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储器、磁盘存储器或者其它磁存储设备、闪速存储器或者可以被用于以可以由计算机访问的指令或者数据结构的形式来存储期望的程序代码的任何其它介质。同样,可以将任何连接恰当地称为计算机可读介质。例如,如果利用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者无线技术(例如,红外、无线电和微波)从网站、服务器或者其它远程源来发送指令,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(例如,红外、无线电和微波)包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,但是反而针对非暂时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光光学地复制数据。上述的组合也应当被包括在计算机可读介质的范围内。

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

可以在包括无线手持装置、集成电路(IC)或者IC的集合(例如,芯片组)之类的宽泛的各种设备或者装置中实现本公开内容的技术。在本公开内容中描述了各种部件、模块或者单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要由不同的硬件单元实现。相反,如上文中所描述的,结合合适的软件和/或固件的各种单元(包括如上文所描述的一个或多个处理器)可以被组合在编解码器硬件单元中,或者由相互作用的许多硬件单元来提供。

已经描述了各种示例。这些和其它的示例都在以下的权利要求书的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号