替换丢失的媒体数据以进行网络流式传输的制作方法

文档序号:7794247阅读:124来源:国知局
替换丢失的媒体数据以进行网络流式传输的制作方法
【专利摘要】在一个例子中,一种设备包括一个或多个处理器,所述处理器被配置为:在经由根据基于HTTP的动态自适应流式传输(DASH)的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失;基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的所述数据,以便形成替换片段;以及输出所述替换片段的媒体数据。
【专利说明】替换丟失的媒体数据以进行网络流式传输

【技术领域】
[0001]本公开内容涉及经编码的多媒体数据的存储和传输。

【背景技术】
[0002]数字视频功能可以被纳入到许多不同的设备中,包括:数字电视、数字直播系统、无线广播系统、个人数字助理(904)、膝上型或台式计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝式或卫星无线电话、视频电话会议设备等。数字视频设备实现视频压缩技术以便更加高效地发送和接收数字视频信息,视频压缩技术例如,在依据即%-2、即%-4、1X^-1只.263或11^-1只.264/1^26-4第10部分高级视频编码的0、即将到来的高效视频编码标准以及这些标准的扩展所定义的标准中描述的那些技术。
[0003]视频压缩技术执行空间预测和/或时间预测来减少或去除视频序列中固有的冗余。对于基于块的视频编码而言,可以将视频帧或条带划分成块。还可以对每个块进行进一步划分。使用相对于相邻块的空间预测对帧内编码(1)帧或条带中的块进行编码。可以使用相对于相同帧或条带中的相邻块的空间预测对帧间编码或8)帧或条带中的块进行编码,或者可以使用相对于其它参考帧的时间预测。
[0004]在对视频数据进行编码之后,可以对视频数据进行分组以便传输或存储。可以将视频数据组合成符合诸如国际标准化组织(130)基础媒体文件格式及其扩展、1?4文件格式以及高级视频编码(诏0文件格式之类的多种标准中的任何一种标准的视频文件。可以用诸如使用网络流式传输通过计算机网络进行传输之类的多种方式来传输这样的经分组的视频数据。


【发明内容】

[0005]概括地说,本公开内容描述了关于减轻通过网络来对媒体数据进行流式传输的境况中的错误的技术。例如,当使用基于的动态自适应流式传输(办的!!!:^&81:1-681111118 肌了?,0^8?)对媒体数据进行流式传输时,可以使用这些技术。使用0八3?的媒体数据的流式传输可以使用例如单播(例如,使用扣?/〗?上的!1119)、多播或广播(例如,使用增强型多媒体广播和多播服务(61813))来实现。
[0006]通常将媒体数据划分成被称为片段的单个媒体文件以便于通过网络来流式传输。可以使用一个或多个网络分组,通过网络来发送这些片段中的每个片段。在一些情况下,片段的这些分组中的一个或多个分组可能丢失,例如,当分组根本没有到达、当分组没有按时到达或者当分组的数据被破坏时。本公开内容的技术包括:通过利用一组默认数据(例如,默认音频数据和/或视频数据)去替换丢失的数据来减轻这样的错误。例如,丢失的片段的全部或一部分可由默认音频数据和/或视频数据来替换。
[0007]在一个例子中,一种用于呈现媒体数据的方法包括:在经由根据基于肌1?的动态自适应流式传输的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失;基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的所述数据,以便形成替换片段;以及输出所述替换片段的媒体数据。
[0008]在另一例子中,一种用于呈现媒体数据信息的设备包括一个或多个处理器,所述处理器被配置为:在经由根据基于肌1?的动态自适应流式传输的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失;基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的所述数据,以便形成替换片段;以及输出所述替换片段的媒体数据。
[0009]在另一例子中,一种用于呈现媒体数据信息的设备包括:用于在经由根据基于肌丁?的动态自适应流式传输的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失的单元;用于基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的所述数据,以便形成替换片段的单元;以及用于输出所述替换片段的媒体数据的单元。
[0010]在另一例子中,一种计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质包括当被执行时使一个或多个处理器执行以下操作的指令:在经由根据基于肌丁?的动态自适应流式传输的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失;基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的所述数据,以便形成替换片段;以及输出所述替换片段的媒体数据。
[0011]在另一例子中,一种用于发送媒体数据信息的方法包括:确定将要向至少一个客户端设备发送的媒体内容的表示;确定与所确定的表示相对应的默认数据;向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及在向所述至少一个客户端设备发送所确定的默认数据之后,向所述至少一个客户端设备发送所确定的表示的媒体数据。
[0012]在另一例子中,一种用于发送媒体数据信息的设备包括一个或多个处理器,其被配置为:确定将要向至少一个客户端设备发送的媒体内容的表示;以及确定与所确定的表示相对应的默认数据;以及一个或多个网络接口,其被配置为:向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及在向所述至少一个客户端设备发送所确定的默认数据之后,向所述至少一个客户端设备发送所确定的表示的媒体数据。
[0013]在另一例子中,一种用于发送媒体数据信息的设备包括:用于确定将要向至少一个客户端设备发送的媒体内容的表示的单元;用于确定与所确定的表示相对应的默认数据的单元;用于向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据的单元;以及用于在向所述至少一个客户端设备发送所确定的默认数据之后,向所述至少一个客户端设备发送所确定的表示的媒体数据的单元。
[0014]在另一例子中,一种计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质包括使一个或多个处理器执行以下操作的指令:确定将要向至少一个客户端设备发送的媒体内容的表示;确定与所确定的表示相对应的默认数据;向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及在向所述至少一个客户端设备发送所确定的默认数据之后,向所述至少一个客户端设备发送所确定的表示的媒体数据。
[0015]在附图和下面的描述中阐述了一个或多个例子的细节。通过这些描述和附图并通过权利要求,其它特征、目标和优点将是显而易见的。

【专利附图】

【附图说明】
[0016]图1是示出了实现用于通过网络来对媒体数据进行流式传输的技术的示例性系统的框图。
[0017]图2是示出了表示由客户端设备接收的数据的图形80以及表示由客户端设备呈现的数据的图形86的概念图。
[0018]图3是示出了示例性多媒体内容的元素的概念图。
[0019]图4是示出了示例性视频文件的元素的框图,示例性视频文件可以与多媒体内容的表示的片段相对应。
[0020]图5是示出了用于提供和使用模板数据来替换丢失的媒体数据的示例性方法的流程图。

【具体实施方式】
[0021]概括地说,本公开内容描述了关于通过网络对诸如音频数据和视频数据之类的多媒体数据进行流式传输的技术。本公开内容的技术可以结合基于的动态自适应流式传输来使用。本公开内容描述了可以结合网络流式传输来执行的各种技术,这些技术中的任何或全部技术可以被单独地或以任意组合的形式实现。如同下面更详细描述的,执行网络流式传输的各种设备可以被配置为实现本公开内容的技术。
[0022]根据0八3!1和用于通过网络来流式传输数据的类似技术,多媒体内容(例如,电影或其它媒体内容,其还可以包括音频数据、视频数据、文本叠加或其它数据)可以以多种方式来进行编码并且具有多种特性。内容准备设备可以形成对相同的多媒体内容的多种表示。每种表示可以与一组特定的特性(例如编码和呈现特性)相对应,以便提供可由具有各种编码和呈现能力的多种不同的客户端设备使用的数据。
[0023]此外,具有各种比特速率的表示可以虑及带宽适配。例如,客户端设备可以确定当前可用的带宽的量,并基于可用带宽的量连同该客户端设备的编码和呈现能力来选择表示。使用0八3!1来执行带宽适配的客户端设备可以使用诸如肌1?之类的单播网络协议来取回媒体数据。或者或另外,服务器设备可以针对广播或多播选择合适的表示。例如,服务器设备可以向与多播组相关联的互联网协议(工?)地址发送这些表示中的一种表示的媒体数据,并且客户端设备可以请求加入该组以便接收该媒体数据。
[0024]概括地说,0八3!1提供用于通过网络对媒体数据进行流式传输的技术。例如,如同上面所讨论的,可以结合单播、广播或多播网络协议来使用0八3!1。在一些情况下,导致媒体数据丢失的错误可能发生。例如,当分组没有被送达,或者当分组的数据被破坏时,媒体数据的丢失可能发生。对于广播或多播网络会话而言,服务器设备通常被配置为继续进行对广播会话的分组的流式传输,因此,客户端设备可能没有机会请求来自服务器设备的对丢失或被破坏的分组的重传。此外,等待直到重传的分组到达可能导致回放的延时,这会对用户体验造成负面影响。因此,在许多情况下,当一个或多个分组丢失或被破坏时,客户端设备将简单地显示没有音频的空白屏幕,然后,在接收到没有错误的后续分组之后恢复回放。
[0025]本公开内容的技术通常涉及在根据0八別或类似的流式传输网络协议发送(例如,单播、多播或广播)媒体数据的场景中提升用户体验。客户端设备可以被配置为:当数据丢失时,使用预先确定的(或默认)音频数据和/或视频数据来进行呈现,而不是当一个或多个分组丢失时显示没有音频的空白屏幕。以这种方式,当客户端设备检测到分组丢失或破坏时,客户端设备可以切换到预先确定的音频数据和/或视频数据。该预先确定的音频数据和/或视频数据可以包括:例如,网络徽标屏幕、网络主题曲、季节性相关显示、与内容有关的显示(例如,对于足球比赛而言是足球场)或其它这样的数据。本公开内容通常涉及已经“丢失”的数据,如包括来自从未到达的分组、到达太晚以至于没用的分组以及到达但已经被破坏的分组中的数据。同样地,预先确定的音频数据可以包括与内容有关的音频,例如,对于体育事件而言是人群的嘈杂声。
[0026]在一些情况下,可能丢失了音频数据而没有丢失视频数据,在这种情况下,可以显示所接收的视频数据而没有音频。或者,如果当尚未接收到音频时就接收了隐藏字幕数据,那么当音频数据已经丢失时,客户端设备可以自动地开始显示隐藏字幕。同样地,可能丢失了视频数据而没有丢失音频数据,在这种情况下,可以显示默认视频并且可以呈现所接收的音频数据。以这种方式,这些技术可以在分组丢失或分组破坏的情况下提升用户体验。
[0027]在各个例子中,将要呈现的音频数据和/或视频数据可以被:预先存储在客户端设备上(例如,在客户端设备的配置数据中);最初从服务器设备向客户端设备发送(例如,在广播开始时);周期性发送(其可以是周期性发送的相同的默认数据,或者是可以在每个周期发送的新的默认数据);在广播或多播期间作为边信息发送(即,作为单独传输,例如,响应于单播请求);或者从服务器设备向客户端设备发送一次或多次。
[0028]通常,媒体数据被安排成一系列片段。每个片段可以与媒体数据的特定时间部分相对应,并且可以具有特定持续时间(例如,两秒)。片段可以包括多个媒体分段,其可以与视频数据的单个帧或条带相对应。片段还可以包括描述媒体分段的位置的报头数据,例如,相对于媒体分段的字节偏移以及媒体分段的相应时间位置。片段可以与(例如,回放持续时间为两秒至十秒或者更长的)单个文件相对应。这些文件中的每个文件可由用于单播的特定的统一资源定位符⑴此)来寻址。在单播的例子中,客户端设备可以提交针对在特定
处的文件的肌1? 621请求以便取回文件。
[0029]可以将片段的数据封装在单独的分组中。根据本公开内容的技术,当接收到片段的分组中的一些而非全部分组时,客户端设备可以尝试使用尽可能多的片段,并且利用默认音频数据和/或视频数据来填充(与丢失的数据相对应的)片段的其余部分。例如,这可以包括读取所接收分组的未被破坏的数据以便确定其媒体数据的标识信息。
[0030]因此,客户端设备可以被配置为具有与默认音频数据和视频数据相对应的模板。当来自片段的一个或多个分组的数据丢失时(例如,由于没有到达,到达太晚或破坏),客户端设备可以使用该模板,通过在与丢失的数据相对应的位置处插入默认音频数据和视频数据,来构建片段的其余部分。模板可以提供字段,在这些字段中插入当重新构建片段时客户端设备可以填入的定时信息。客户端设备还可以修改片段的报头数据来反映默认数据的添加,例如,以便确保从经修改的片段中正确取回数据。
[0031]例如,通常使用帧编号值和图像顺序计数01^61 0011111:,?00值中的任一个或二者来标识经编码的视频序列的图像,其中,&孤值通常指示图像的解码顺序,而?0(:值通常指示图像的输出或显示顺序。为了使用默认视频数据,客户端设备可以使用所接收的视频数据的值和/或?00值来确定默认视频数据的合适的&孤皿值和/或?值。在一些例子中,默认视频数据可以从对应于瞬时解码器刷新(10?图像的随机访问点(狀?)开始。根据相关的视频编码标准,客户端设备可以相应地设置108图像的&肅6」1皿值。例如,1几-!'只.264/^0(高级视频编码)标准规定10尺图像应当具有为“0”的值。此外,将要插入的默认数据的量可以取决于丢失的或被破坏的数据的量。因此,所使用的?0(:值的范围还可以取决于将用作丢失的或被破坏的数据的替换数据的默认视频数据的图像的数量。
[0032]如同上面所讨论的,本公开内容的技术可以与诸如0八3!1之类的流式传输网络协议结合使用。0八3!1对于通过多种移动网络进行流式内容的传送而言是有用的。事实上,0八別可以有效地用于像61813(增强型多媒体广播多播服务)的广播网络,其中,0八3!1片段可以通过网络向多播服务客户端(其可以在客户端设备上实现)广播,并且然后使用肌丁?流式传输到0八3!1客户端。在由等人于2012年4月4日递交的序列号为
81^11^6 0? 71020 0八丁八 ^81^6 8丫丁2 麵⑶
即如2313”中描述了在多播网络中使用0八3!1的技术的例子。
[0033]然而,如同上面所讨论的,广播网络像其它计算机网络一样可能遭受分组丢失,这可能导致丢失的片段。这会导致糟糕的用户体验。在存在随机错误的情况下,多播服务客户端可能无法向0八別客户端传送片段,并且0八3!1肌1?接口可能不具有本公开内容的技术之外的向0八3!1客户端指示这样的丢失的机制。因此,本公开内容的技术可以用于提供简单、清楚的机制来克服分组和片段错误,以便向终端用户提供改进的用户体验。
[0034]具体而言,根据本公开内容的技术,在存在随机网络错误的情况下,多播服务客户端可以接收故別片段的分组中的一些分组,但不是整个片段。在一些例子中,多播服务客户端可以向0八3!1客户端发送肌1?响应“404”消息,以指示没有接收到完整的0八3!1片段。然后,0八3!1客户端和多媒体播放器可以引入跳跃或差错恢复来克服片段丢失。然而,根据本公开内容的技术,多播服务客户端可以执行多个步骤来克服分组丢失。
[0035]例如,在片段错误的情况下,多播服务客户端可以发送存储在非易失性存储装置中的默认片段的数据。因此,当故別客户端接收默认片段时,它可以启用差错恢复措施。作为另一例子,当空白屏幕被另外呈现扩展的时间段时,可以呈现存储在非易失性存储器中的默认片段。即,多媒体播放器可以检测到没有接收到用于呈现某个数量的帧的媒体数据,并且因此可以开始播放默认媒体数据,而不是继续在执行该媒体播放器的设备的显示器上呈现空白屏幕。作为又一例子,在接收到0八別片段的一些部分但存在缺失部分的情况下,多播服务客户端可以使用片段的所接收的分组和存储的默认片段来生成0八3!1片段的插入版本,其在本文中也被称为替换片段。可以向0八3!1客户端发送替换片段,这可以使得媒体播放器播放替换片段的数据。在一些例子中,多播服务客户端可以保持接收片段的历史记录,并生成0八別片段的缺失部分的插入版本。
[0036]诸如媒体内容的表示的片段之类的视频文件可以符合根据以下格式中的任意一种格式进行封装的视频数据:130基础媒体文件格式、可适性视频编码71(16000(11118, ^0文件格式、高级视频编码(诏0文件格式、第三代合作伙伴计划口⑶?)文件格式和/或多视图视频编码71(160 00(11118, ^0文件格式或者其它类似的视频文件格式。
[0037]130基础媒体文件格式被设计为包含用于以促进媒体的互换、管理、编辑和呈现的灵活、可扩展格式来呈现的定时媒体信息。在即郎-4第12部分,130/1% 1101/8029/1611, ^180/120 14496—00(11118 0?046(^8”,130 基础媒体文件格式,2010,中规定了 130基础媒体文件格式(130/1% 14496-12:2004),其定义了基于时间的媒体文件的通用结构。130基础媒体文件格式用作诸如为支持11.264/1^26-4^0视频压缩所定义的抓文件格式(130/1% 14496-15)、3即?文件格式、870文件格式和文件格式之类的家族中的其它文件的基础。36??文件格式和文件格式是抓文件格式的扩展。130基础媒体文件格式包含媒体数据的定时序列的定时、结构和媒体信息,例如音频—视频呈现。文件结构可以是面向对象的。可以很容易地将文件分解成基本对象,并且对象的类型隐含着对象的结构。
[0038]符合130基础媒体文件格式(及其扩展)的文件可以形成一系列对象,其被称为“盒”。盒中可以包含130基础媒体文件格式中的数据,从而没有其它数据需要被包含在文件中,并且在文件中的盒外面不需要有数据。这包括特定文件格式所需要的初始签名。“盒”可以是由唯一类型标识符和长度定义的面向对象的构件。通常,呈现被包含在一个文件中,并且媒体呈现是自包含的。电影容器(电影盒)可以包含媒体的元数据,并且视频和音频帧可以被包含在媒体数据容器中,而且可以在其它文件中。
[0039]表示(运动序列)可以被包含在若干文件中,有时被称为片段。定时信息和帧(位置和大小)信息通常在130基础媒体文件中,并且辅助文件基本上可以使用任何格式。对于包含该呈现的系统而言,这个呈现可以是“本地的”,或者可以通过网络或其它流传送机制来提供。
[0040]当通过流式传输协议传送媒体时,可能需要将媒体从其在文件中的表达的方式转换。这样的一个例子是当媒体通过实时传输协议(奶?)发送时。在文件中,例如,将视频的每个帧连续地存储为文件格式的采样。在奶?中,必须遵守所使用的编解码器专用的分组化规则来将这些帧置于奶?分组中。流式传输服务器可以被配置为:在运行时计算这样的分组化。然而,存在对流式传输服务器的辅助的支持。
[0041]例如,根据基于肌1?的动态自适应流式传输灿邮,本公开内容的技术可以适用于诸如流式传输之类的网络流式传输协议。在肌1?流式传输中,频繁使用的操作包括⑶!'和部分现1。⑶!'操作取回与给定的统一资源定位符⑴此)或其它标识符(例如现1)相关联的整个文件。部分操作接收字节范围作为输入参数,并取回与所接收的字节范围相对应的文件的连续多个字节。因此,可以提供电影分段用于肌1?流式传输,这是因为部分操作可以得到一个或多个单独的电影分段。注意:在电影分段中,可能存在不同轨道的若干轨道分段。在肌1?流式传输中,媒体表示可以是客户端可访问的数据的结构化集合。客户端可以请求并下载媒体数据信息,以便向用户呈现流式传输服务。
[0042]在使用流式传输来流式传输3即?数据的例子中,可以存在针对多媒体内容的视频数据和/或音频数据多个表示。可以在媒体呈现描述(190)的数据结构中定义这些表示的清单。媒体表示可以与肌1?流式传输客户端设备可访问的数据的结构化集合相对应。肌1?流式传输客户端设备可以请求并下载媒体数据信息,以便向该客户端设备的用户呈现流式传输服务。媒体表示可以在即0数据结构中描述,其可以包括即0的更新。
[0043]每个时段可以包含针对相同媒体内容的一个或多个表示。表示可以是音频数据或视频数据的多个可替换的经编码版本中的一个版本。表示可以根据诸如编码类型之类的各种特性而不同,例如,根据视频数据的比特速率、分辨率和/或编解码器,以及音频数据的比特速率、语言和/或编解码器。术语“表示”可以用于指代与多媒体内容的特定时段相对应的、并且以特定方式编码的经编码的音频数据或视频数据的一部分。
[0044]特定时段的表示可以分配给组,其可以由1?0中的组属性来指示。相同组中的表示通常被认为可以相互替代。例如,可以将特定时段的视频数据的每个表示分配给同一组,从而可以选择这些表示中的任何一个表示用于解码,以便显示该相应时段的多媒体内容的视频数据。一个时段内的媒体内容可由来自组0的任何一个表示来表示(如果存在的话),或者在一些例子中,由来自每个非零组的最多一个表示的组合来表示。可以相对于时段的开始时刻来表达时段的每个表示的定时数据。
[0045]表示可以包括一个或多个片段。每个表示可以包括初始化片段,或者表示的每个片段可以是自初始化的。当呈现时,初始化片段可以包含用于访问表示的初始化信息。概括地说,初始化片段并不包含媒体数据。片段可由诸如统一资源定位符⑴此)之类的标识符唯一引用。即0可以为每个片段提供标识符。在一些例子中,即0还可以以范围属性的形式提供字节范围,该属性可以与可由访问的文件内的片段的数据相对应。
[0046]每个表示还可以包括一个或多个媒体成分,其中,每个媒体成分可以与一种单独媒体类型(例如,音频、视频和/或定时文本(例如,用于隐藏字幕))的经编码的版本相对应。媒体成分可以是跨越一个表示内的连续媒体片段的边界时间连续的。因此,表示可以与单个文件或一系列片段相对应,其每一个可以包括相同的编码和渲染特性。
[0047]应当理解的是:用于利用模板数据(例如,默认音频数据和视频数据)来替换丢失的数据的本公开内容的技术可以在媒体片段上执行,媒体片段可以以一个或多个网络分组的形式被发送。当分组的数据被破坏时,本公开内容的技术可以包括:利用模板的默认数据来替换被破坏的分组的该部分的音频数据和/或视频数据。因此,默认数据可以是单独的、独立的音频数据和/或视频数据,而不是尝试使用诸如前向纠错$£0之类的其它技术来对破坏或丢失进行纠正。
[0048]此外,替换数据(即,默认数据)可以与实际接收并可被正确解码的周围数据相对无关,即,不是潜在、一般的主题关系(例如,基于媒体内容的主题来确定默认数据例如,丢失的媒体数据可由(例如,在实际媒体数据之前)单独发送的默认数据替换,而不是通过重复或重播一个或多个经正确解码的图像或经正确解码的音频采样来替换丢失的或被破坏的数据。因此,在片段层处检测到数据丢失的情况下,在该片段层处,可以由客户端设备或其它相对下游的网络设备将默认数据注入比特流。此外,通过利用模板数据来替换丢失的媒体数据,视频解码器或音频解码器可以正常地对默认音频数据或视频数据进行解码,而不需要在解码器层处确定发生了任何丢失。
[0049]图1是示出了实现用于通过网络对媒体数据进行流式传输的技术的示例性系统10的框图。在这个例子中,系统10包括:内容准备设备20、服务器设备60以及客户端设备40。客户端设备40和服务器设备60通过网络74以通信的方式被耦合,网络74可以包括互联网。在一些例子中,内容准备设备20和服务器设备60还可以通过网络74或另一网络被耦合,或者可以直接地以通信的方式被耦合。在一些例子中,内容准备设备20和服务器设备60可以包括相同的设备。在一些例子中,内容准备设备20可以向包括服务器设备60的多个服务器设备分发准备的内容。类似地,在一些例子中,客户端设备40可以与包括服务器设备60的多个服务器设备通信。
[0050]在图1的例子中,内容准备设备20包括音频源22和视频源24。音频源22可以例如包括产生表示将要由音频编码器26编码的所捕获的音频数据的电信号的麦克风。或者,音频源22可以包括:存储之前记录的音频数据的存储介质、诸如计算机合成器之类的音频数据生成器或者任何其它的音频数据源。视频源24可以包括:产生将要由视频编码器28编码的视频数据的视频摄像机、使用之前记录的视频数据编码的存储介质、诸如计算机图形源之类的视频数据生成单元、或者任何其它的视频数据源。内容准备设备20不必在全部例子中都以通信的方式耦合到服务器设备60,但可以将多媒体内容存储到被服务器设备60(例如,直接通过存储介质或通过另一服务器设备)读取的单独的介质。
[0051〕 原始音频数据和视频数据可以包括模拟或数字数据。模拟数据可以在被音频编码器26和/或视频编码器28编码之前被数字化。当说话参与者正在说话时,音频源22可以获得来自说话参与者的音频数据,而且视频源24可以同时获得该说话参与者的视频数据。在其它例子中,音频源22可以包括:包括所存储的音频数据的计算机可读存储介质;而视频源24可以包括:包括所存储的视频数据的计算机可读存储介质。以这种方式,本公开内容中描述的技术可以应用于直播的、流式传输的、实时的音频数据和视频数据,或者存档的、预先记录的音频数据和视频数据。
[0052]与视频帧相对应的音频帧通常是包含由音频源22在与视频源24捕获包含在视频帧中的视频数据的同时捕获的音频数据的音频帧。例如,当说话参与者通常通过说话来产生音频数据时,音频源22捕获音频数据而视频源24同时(即,在音频源22捕获音频数据的同时)捕获说话参与者的视频数据。故音频帧可以在时间上与一个或多个特定视频帧相对应。因此,与视频帧相对应的音频帧通常与以下情况相对应:在该情况中,音频数据和视频数据同时被捕获,并且对于该情况而言,音频帧和视频帧分别包括同时捕获的音频数据和视频数据。
[0053]在一些例子中,音频编码器26可以将表示记录经编码的音频帧的音频数据的时刻的时间戳编码到每个经编码的音频帧中,并且类似地,视频编码器28可以将表示记录经编码的视频帧的视频数据的时刻的时间戳编码到每个经编码的视频帧中。在这些例子中,与视频帧相对应的音频帧可以包括:包括时间戳的音频帧以及包括相同时间戳的视频帧。内容准备设备20可以包括内部时钟,音频编码器26和/或视频编码器28可以根据该内部时钟生成时间戳,或者音频编码器26和视频编码器28可以使用该内部时钟来将音频数据和视频数据分别与时间戳相关联。
[0054]在一些例子中,音频源22可以向与音频数据被记录的时刻相对应的音频编码器26发送数据,并且视频源24可以向与视频数据被记录的时刻相对应的视频编码器28发送数据。在一些例子中,音频编码器26可以将顺序标识符编码到经编码的音频数据中,以便指示经编码的音频数据的相对时间顺序,而不必指示音频数据被记录的绝对时刻,并且类似地,视频编码器28也可以使用顺序标识符来指示经编码的视频数据的相对时间顺序。类似地,在一些例子中,顺序标识符可以映射到时间戳,或者关联到时间戳。
[0055]音频编码器26通常产生经编码的音频数据的流,而视频编码器28产生经编码的视频数据的流。数据(无论是音频还是视频)的每个单独的流可以被称为基本流。基本流是表示的单个、数字化编码(可能经压缩)的成分。例如,表示的经编码的视频或音频部分可以是基本流。基本流可以在被封装到视频文件内之前被转换成分组化基本流6161116111:81-7 8^68111, 0在相同的表示内,流10可以用于从其它基本流中流区分属于一个基本流的?£3分组。基本流的数据的基本单元是分组化基本流$£3)分组。因此,经编码的视频数据通常与基本视频流相对应。类似地,音频数据与一个或多个相应的基本流相对应。
[0056]举例而言,像很多视频编码标准一样,11.264/^0定义了用于无错比特流的语法、语义和解码过程,其中的任何一项符合某种配置或级别11.264/^^未指定编码器,但编码器的任务是保证所生成的比特流对于解码器而言是符合标准的。在视频编码标准的上下文中,“配置”与应用于它们的算法、特征、或工具以及约束的子集相对应。例如,如同!1.264标准所定义的,“配置”是由只.264标准规定的整个比特流语法的子集。“级别”对应于对解码器资源消耗(诸如,例如,解码器存储和运算)的限制,其与图像的分辨率、比特速率和宏块(18)处理速率有关。配置可以使用配置指示符)值以信号形式被发送,而级别可以使用1676111(级别指示符)值以信号形式被发送。
[0057]例如,11.264标准认识到:在由给定配置的语法所施加的范围内,根据比特流中的语法元素所采取的值,例如所规定的经解码的图像的大小,仍然可能要求编码器和解码器的性能的大变化。264标准还认识到:在许多应用中,实现能够处理特定配置中的语法的全部假设使用的解码器既不现实也不经济。因此,札264标准将“级别”定义为对比特流中的语法元素的值所施加的一组特定约束。这些约束可以是对值的简单限制。或者,这些约束可以采取对值的算术组合的约束的形式(例如,图像宽度乘以图像高度乘以每秒解码的图像的数量11.264标准还规定:单个实现可以针对每个支持的配置支持不同的级别。可以提供多媒体内容的各种表示以便适应264内的编码的各种配置和级别,以及适应其它编码标准,例如,即将到来的高效视频编码标准。
[0058]符合配置的解码器通常支持该配置中定义的全部特征。例如,作为编码特征,在只.264/^0的基线配置中不支持8-图像编码,但在11.264/^0的其它配置中支持8-图像编码。符合特定级别的解码器应当能够对不要求超过该级别中定义的限制的资源的任何比特流进行解码。配置和级别的定义可以有助于可解释性。例如,在视频传输期间,针对整个传输会话,可以协商一对配置和级别的定义,并达成一致。更具体而言,在中,级别可以定义,例如,对以下各项的限制:需要处理的块的数量、解码图像缓冲(如⑶如己¢101:111-60^8)大小、编码图像缓冲(¢0(16(1 1)101: 111~6 1311 打61~,(3?)大小、垂直运动向量范围、每两个连续18的运动向量的最大数量以及8-块是否可以具有小于8x8像素的子块分块。以这种方式,解码器可以确定该解码器是否能够正确地解码比特流。
[0059]诸如1X^-1 只.261,?.262、只.263、1?邠-2、只.264/1^26-4 第 10 部分以及即将到来的高效视频编码(册标准之类的视频压缩标准使用运动补偿的时间预测来减少时间冗余。编码器(例如,视频编码器28)可以使用来自一些之前编码的图像(在本文中也被称为帧)的运动补偿的预测,根据运动向量来对当前的经编码的图像进行预测。在典型的视频编码中存在三种主要的图像类型。它们是帧内编码图像(“1-图像”或“1-帧”)、预测图像(“?-图像”或“?-帧”)和双向预测图像(“8-图像”或“8-帧“)。图像可以使用在时间顺序上在当前图像之前的参考图像。在8-图像中,可以利用一个或两个参考图像来预测8-图像的每个块。在时间顺序上,这些参考图像可以位于当前图像之前或之后。
[0060]在图1的例子中,内容准备设备20的封装单元30从视频编码器28接收包括经编码的视频数据的基本流,并且从音频编码器26接收包括经编码的音频数据的基本流。在一些例子中,视频编码器28和音频编码器26均可以包括用于利用经编码的数据形成?四分组的分组器。在其它例子中,视频编码器28和音频编码器26均可以与用于利用经编码的数据形成?四分组的相应分组器对接。在其它例子中,封装单元30可以包括:用于利用经编码的音频数据和视频数据形成分组的分组器。根据本公开内容的技术,视频编码器28可以对将要用作丢失的视频数据的替代者的默认视频数据进行编码,并且音频编码器26可以对将要用作丢失的音频数据的替代者的默认音频数据进行编码。因此,如同下面所解释的,在媒体数据的片段的一个或多个分组丢失的情况下(例如,被破坏或者没有能够有用地按时到达),客户端设备40可以用默认音频数据和/或视频数据来替代丢失的音频数据和/或视频数据。
[0061]视频编码器28可以以多种方式对多媒体内容的视频数据进行编码,以便产生具有不同比特速率以及具有例如以下各种特性的对多媒体内容的不同表示:像素分辨率、帧速率、对各种编码标准的符合、对各种编码标准的各种配置和/或配置的级别的符合、具有一个或多个视图的表示(例如,用于二维或三维回放)或者其它这样的特性。如同本公开内容中所使用的,表示可以包括音频数据和视频数据的组合,例如,一个或多个音频基本流和一个或多个视频基本流。每个?£3分组可以包括标识了分组所属的基本流的8廿681111(1(流」(1)。封装单元30负责将基本流组装成各种表示的视频文件。
[0062]封装单元30从音频编码器26和视频编码器28接收表示的基本流的?四分组,并利用这些?£3分组形成相应的网络抽象层(嫩0单元。在!1.264/^(:(高级视频编码)的例子中,经编码的视频条带被组织成嫩^单元,其提供“网络友好的”视频表示寻址应用,例如视频电话、存储、广播或流式传输。嫩[单元可以被分类成视频编码层0(:0嫩[单元和非VI嫩I单元。VI单元可以包含用于核心压缩引擎的数据,并且可以包括块和/或条带级别数据。其它嫩[单元可以是非VI嫩[单元。在一些例子中,一个时间点处的、通常呈现为基本编码图像的经编码的图像可以被包含在接入单元中,其可以包括一个或多个嫩I单
)匕0
[0063]参数集可以(在序列参数集(--)中)包含序列-级别报头信息,以及(在图像参数集(即幻中)包含偶尔变化的图像-级别报头信息。对于参数集(例如??
需要针对每个序列或图像来重复偶尔变化的信息,因此可以提升编码效率。此外,参数集的使用可以使得能够进行重要报头信息的带外传输,从而避免了对用于差错恢复的冗余传输的需要。在带外传输的例子中,可以在与其它嫩[单元(例如,321嫩[单元)不同的信道上发送参数集嫩I单元。
[0064]补充增强信息(321)可以包含对解码来自VI嫩[单元的经编码的图像采样而言不是必要的,但可以对与解码、显示、差错恢复和其它目的相关的过程进行协助的信息。821消息可以被包含在非VI嫩[单元中。821消息是一些标准规范的规范化部分,因此对于符合标准的解码器实现而言,并不总是强制的。321消息可以是序列级别321消息或图像级别321消息。一些序列级别信息可以被包含在321消息中,例如在37(:的例子中的可适性信息321消息,以及在爾(:中的视图可适性信息321消息。这些示例性321消息可以传递关于例如操作点的提取和操作点的特性的信息。另外,封装单元30可以形成清单文件,例如描述表示的特性的媒体呈现描述符(腿^)。封装单元30可以根据可扩展标记语言〈X祖对1?0进行格式化。
[0065]封装单元30可以向输出接口 32提供多媒体内容的一个或多个表示的数据以及清单文件(例如,11?)。输出接口 32可以包括网络接口或用于向存储介质写入的接口,例如通用串行总线⑴38)接口、⑶或070刻录机或烧录机、到磁存储介质或闪速存储介质的接口、或者用于存储或发送媒体数据的其它接口。封装单元30可以向输出接口 32提供多媒体内容的每个表示的数据,输出接口 32可以经由网络传输、直接传输或存储介质向服务器设备60发送该数据。在图1的例子中,服务器设备60包括存储各种多媒体内容64的存储介质62,每个多媒体内容64包括相应的清单文件66和一个或多个表示68 (例如,表示
68八—6刚)。
[0066]根据本公开内容的技术,模板可以用于指示在媒体数据丢失的情况下将呈现的默认音频数据和/或视频数据。在一些例子中,可以提供多个模板。模板数据可以被存储在存储介质62中,并被(一次性或周期性地)发送到客户端设备40。在一些例子中,清单文件66可以包括:指示用于表示68中的一个表示或者表示68的特定部分的相关模板的数据。例如,1?0,实例化清单文件66,可以规定针对一个或多个时间段的一个或多个模板。因此,如果针对相应时间段中的一个时间段的媒体数据丢失,那么客户端设备40可以确定合适的模板,并使用该模板来替换丢失的媒体数据,例如,丢失的音频数据或视频数据中的一项或二者。
[0067]或者或另外,??8^8?8或321消息可以用于指示相关的模板数据。例如,821消息可以包括:标识用于跟随该321消息的一系列视频数据的模板的模板10。可以在例如可由专门分配给模板数据的一个或多个唯一嫩I单元标识的单独的通信中发送模板和相应的默认音频数据和视频数据。
[0068]在一些例子中,模板数据可以作为外部时段来对待。服务器设备60可以在向客户端设备40发送表示68中的一个表示的数据之前向客户端设备40发送外部时段的数据(即,模板数据,包括默认的视频数据和音频数据以及指示如何将音频数据和/或视频数据插入比特流的定时数据)。服务器设备60还可以周期性地发送模板数据一例如,每个周期一次、每个片段一次、每~个分钟、周期或片段一次(其中,~是整数或有理数)一或者以其它间隔或以其它非周期方式。
[0069]在一些例子中,内容准备设备20可以提供模板数据,其可以包括默认的音频数据和视频数据。即,内容准备设备20可以对媒体内容的默认音频数据和/或视频数据进行编码,并向服务器设备60发送包括该默认音频数据和视频数据的模板数据。在其它例子中,服务器设备60可以提供例如来自之前编码的默认音频数据和/或视频数据的模板数据。在其它例子中,内容准备设备20和服务器设备60 二者都可以提供模板数据。例如,内容准备设备20可以产生多组不同的模板数据,并且服务器设备60可以从这多组模板数据中选择合适的一组。在任何情况下,服务器设备60都可以根据本公开内容的技术向客户端设备40提供模板数据。
[0070]服务器设备60包括请求处理单元70和网络接口 72。在一些例子中,服务器设备60可以包括多个网络接口,包括网络接口 72。此外,服务器设备60的特征中的任意或全部特征可以在内容分发网络的其它设备(例如,路由器、桥路、代理设备、开关或其它设备)上实现。在一些例子中,内容分发网络的中间设备可以对多媒体内容64的数据进行高速缓存,并且包括与服务器设备60的组件实质上相配的组件。通常,网络接口 72被配置为:经由网络74来发送和接收数据。
[0071]请求处理单元70被配置为:从客户端设备(例如客户端设备40)接收针对存储介质72的数据的网络请求。例如,如同化61(11118等人于1999年6月在121?的网络工作组上提出的 2616 “超文本传输协议一?1~01:0001 -肌丁?/1.1) ”中所描述的,请求处理单元70可以实现超文本传输协议(肌了?)版本1.1。即,请求处理单元70可以被配置为:接收!III?或部分请求,并响应于这些请求提供多媒体内容64的数据。这些请求可以例如使用片段的口此来指定表示68中的一个表示的片段。在一些例子中,请求还可以指定片段的一个或多个字节范围。在一些例子中,可以使用部分请求来指定片段的字节范围。请求处理单元70还可以被配置为:服务!III?册八0请求以便提供表示68中的一个表示的片段的报头数据。在任何情况下,请求处理单元70都可以被配置为:处理这些请求以便向进行请求的设备(例如,客户端设备40)提供所请求的数据。
[0072]在一些例子中,客户端设备40可以被配置为:请求针对所选择的多媒体内容的模板数据,例如,针对多媒体内容64的模板数据。在其它例子中,服务器设备60可以例如一次性或周期性地向客户端设备40发送模板数据,而不管客户端设备40是否专门请求了该模板数据。例如,假定客户端设备40使用单播网络连接来取回多媒体内容64的数据,那么清单文件66可以指示针对表示68中的一个或多个表示的模板数据。因此,客户端设备40可以最初请求模板数据,从而在片段的数据丢失的情况下,客户端设备40可以利用模板的默认音频数据和/或视频数据来替换丢失的数据。
[0073]或者,服务器设备60可以被配置为:对多媒体内容64的数据(例如表示68中的一个表示的数据)进行广播或多播。在这个例子中,服务器设备60可以周期性地发送模板数据,例如,每~个片段一次,其中,~是整数值。在一些例子中,模板数据可以作为单独的片段被发送,而在其它例子中,模板数据可以被包括在这些片段中的一个片段中。
[0074]如上面所提到的,模板数据可以包括默认音频数据和/或视频数据。例如,模板数据可以包括默认的视频数据,其可以包括将要在与丢失的视频数据相对应的时间的整个持续时间期间显示的单个图像。或者,默认的视频数据可以包括动画场景。同样,模板数据可以包括默认的音频数据,例如音乐。
[0075]如图1中的例子所示,多媒体内容64包括清单文件66,其可以与媒体呈现描述(1^0)相对应。清单文件66可以包含对不同的替代表示68的描述(例如,具有不同质量的视频服务),并且描述可以包括,例如,编解码器信息、配置值、级别值、比特速率和表示68的其它描述性特性。客户端设备40可以取回媒体呈现的即0以便确定如何访问表示68的片段。在常规故別中,存在用于规定字节范围的两种方式。第一种方式是:将字节范围明确地放入各个分段定义中,将字节范围存储在1?0 X见中。第二种方式是从1?郎文件中的片段索引(310?盒取回字节范围信息,并使用该311?字节范围信息来发出针对媒体的字节范围请求。
[0076]客户端设备40的网络应用52可以包括由客户端设备40的基于硬件的处理单元执行的网络浏览器,或者这样的网络浏览器的插件。对网络应用52的引用通常应当被理解为包括诸如网络浏览器、独立视频播放器之类的网络应用或者并入了网络浏览器的回放插件的网络浏览器。网络应用52可以取回客户端设备40的配置数据(未示出)以便确定视频解码器48的解码能力和客户端设备40的视频输出44的渲染能力。
[0077]配置数据还可以包括以下各项中的任何一项或全部项:由客户端设备40的用户所选择的语言偏好、与由客户端设备40的用户设置的深度偏好相对应的一个或多个摄像头视角和/或由客户端设备40的用户所选择的速率偏好。网络应用52可以包括例如被配置为提交肌1?和部分请求的媒体客户端或者网络浏览器。网络应用52可以与由客户端设备40的一个或多个处理器或处理单元(未示出)执行的软件指令相对应。在一些例子中,针对网络应用52描述的功能的全部或部分可以用硬件或者硬件、软件和/或固件的组合来实现,其中,可以提供必要的硬件来执行软件或固件的指令。
[0078]网络应用52可以将客户端设备40的解码和渲染能力与由清单文件66的信息所指示的表示68的特性相比较。网络应用52可以在最初取回清单文件66的至少一部分以便确定表示68的特性。例如,网络应用52可以请求描述一个或多个适配集合的特性的清单文件66的一部分。网络应用52可以选择具有可令客户端设备40的编码和呈现能力满足的特性的表示68的子集(例如,适配集合然后,网络应用52可以确定该适配集合中的表示的比特速率,确定当前可用的网络带宽的量以及从具有可令网络带宽满足的比特速率的表示中的一个表示取回片段(或字节范围)。
[0079]通常,较高比特速率的表示可以产生较高质量的视频回放,但当可用网络带宽减少时,较低比特速率的表示可以提供足够质量的视频回放。因此,当可用网络带宽相对高时,网络应用52可以从相对高的比特速率的表示取回数据,而当可用网络带宽较低时,网络应用52可以从相对低的比特速率的表示取回数据。以这种方式,客户端设备40可以通过网络74来对多媒体数据进行流式传输,同时也适应网络74的变化的网络带宽可用性。
[0080]如上面所提到的,在一些例子中,客户端设备40可以向例如服务器设备60或内容分发网络的其它设备提供用户信息。用户信息可以采取浏览器⑶仏16的形式,或者可以采取其它形式。例如,网络应用52可以收集用户标识符、用户标识符、用户偏好和/或用户人口统计信息,并向服务器设备60提供这样的用户信息。然后,网络应用52可以接收与目标广告媒体内容相关联的清单文件,以便用来在回放期间将来自目标广告媒体内容的数据插入至所请求的媒体内容的媒体数据中。该数据可以作为针对清单文件或清单子文件的请求的结果被直接接收,或者可以经由重新定向到替代的清单文件或子文件的肌1?来接收该数据(基于所提供的浏览器⑶仏化,用于存储用户人口统计和其它目标信息)。
[0081]有时,客户端设备40的用户可以使用客户端设备40的用户接口(例如,键盘、鼠标、指示笔触摸屏接口、按钮或其它接口)与网络应用52进行交互,以便请求多媒体内容,例如多媒体内容64。响应于来自用户的这些请求,网络应用52可以基于例如客户端设备40的解码和渲染能力来选择表示68中的一个表示。为了取回表示68中的一个所选择的表示的数据,网络应用52随后可以请求表示68中的这个所选择的表示的特定字节范围。以这种方式,而不是通过一个请求接收完整的文件,网络应用52可以随后通过多个请求来接收文件的一些部分。
[0082]响应于由网络应用52向服务器设备60提交的请求,网络接口 54可以接收并向网络应用52提供所选择的表示的已接收的片段的数据。或者,服务器设备60可以使用多播或广播向客户端设备40发送片段,在这种情况下,网络应用52可以表示0八3!1客户端和多播服务客户端(其可由客户端设备40的一个或多个处理器执行)二者。在这个例子中,0八別客户端可以使用肌1?请求向多播服务客户端请求片段,并且多播服务客户端可以使用经由多播或广播从服务器设备60接收的片段的数据对这些请求进行响应。
[0083]根据本公开内容的技术,网络应用52可以确定一个或多个片段或其数据是否丢失。例如,网络应用52(或网络接口 54的元件)可以对片段的分组的序列号进行分析,以便确定一个或多个分组是否丢失。同样地,网络应用52(或网络接口 54的元件)可以对分组的校验和进行分析以在不可能执行前向纠错$£0的情况下确定分组的数据是否被破坏,以便确定片段的数据是否应当被认为丢失。
[0084]在一些例子中,网络中的分组可能从未到达它们的目的地。在一些例子中,分组可以到达客户端设备40,但可能到达得太晚,即,在分组本来会有用的时刻之后。例如,客户端设备40可以对所接收的分组的数据进行缓冲,例如,以便重新安排分组的顺序,以便在网络带宽使用飙升的情况下或者出于其它类似的原因构建媒体数据的缓冲器。在客户端设备40确定缓冲器将要“下溢”,即,需要移除从该点直至特定分组的点的全部数据,并且该分组尚未到达的情况下,客户端设备40可以确定该分组丢失,并且继续处理后续分组的数据。因此,如果分组在该点之后到达,将会认为分组到达得太晚以至于没用了。在其它例子中,例如,由于信道噪声、沿网络路径的不正常工作的网络设备或者由于其它错误,分组的数据可能被破坏。
[0085]在任何情况下,当上述错误中的一个或多个错误发生时,客户端设备40可以认为片段的数据“丢失”了。在丢失片段数据的情况下,客户端设备40可以根据本公开内容的技术利用模板数据(例如,默认音频数据和/或视频数据)来替换丢失的片段数据。例如,网络应用52可以一次性或周期性地从服务器设备60接收模板数据,例如,响应于单播请求或者在没有特定请求的情况下。网络应用52可以在客户端设备40的存储器(未示出)中存储模板数据。当网络应用52检测到丢失的片段数据时,网络应用52可以利用模板数据来替换丢失的片段数据。在一些例子中,网络应用52可以确定整个片段丢失,在这种情况下,网络应用52可以利用模板数据来替换整个片段。
[0086]在其它例子中,网络应用52可以确定片段的一部分丢失,而片段的另一部分被接收到。在这种情况下,网络应用52可以利用模板数据来替换片段的丢失部分,但完整保留片段的已接收的部分。在一些例子中,当网络应用52向片段注入默认音频数据和丨或视频数据以替换片段的丢失部分时,网络应用52可能需要对数据的某些字段的值进行设置。例如,网络应用52可能需要为默认数据构建报头或报头的一部分,例如向默认视频数据的图像分配帧编号值和/或图像顺序计数(^00值。值通常指示相应图像的解码顺序,而值通常指示相应图像的显示顺序。以这种方式,客户端设备40可以确保片段的已接收的、未遭破坏的数据可被正确解码并且可以与模板数据一起显示。当网络应用52利用包括模板数据的片段来替换片段的全部或部分时,该片段可以被称为“替换片段”。
[0087]在任何情况下,网络应用52都可以向解封装单元50提供所接收的片段的数据(或者根据本公开内容的技术的替换片段)。解封装单元50可以将视频文件的元素解封装成构成的?£3流,对?£3流解分组以便取回经编码的数据,并且取决于,例如,如同由流的?四分组报头所指示的,经编码的数据是音频流还是视频流的一部分,将经编码的数据发送到音频解码器46或者视频解码器48。音频解码器46对经编码的音频数据进行解码,并将经解码的音频数据发送到音频输出42,而视频解码器48对经编码的视频数据进行解码,并将经解码的视频数据(其可以包括流的多个视图)发送到视频输出44。
[0088]如适用的话,视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、网络应用52和解封装单元50分别可以被实现为多种合适的处理电路中的任意一种,例如一个或多个微处理器、数字信号处理器①一?)、专用集成电路0310、现场可编程门阵列(冲以)、分立逻辑电路、软件、硬件、固件或它们的任意组合。视频编码器28和视频解码器48中的每一个可以被包括在一个或多个编码器或解码器中,其中的任意一个可以被集成为组合视频编码器/解码器(编解码器)的一部分。同样地,音频编码器26和音频解码器46中的每一个可以被包括在一个或多个编码器或解码器中,其中的任意一个可以被集成为组合编解码器的一部分。包括视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、网络应用52和/或解封装单元50的装置可以包括集成电路、微处理器和/或诸如蜂窝电话或平板计算机之类的无线通信设备。
[0089]以这种方式,客户端设备40代表用于呈现媒体数据的设备的例子,包括被配置为执行以下操作的一个或多个处理器:在经由根据基于肌1?的动态自适应流式传输①八別)的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的片段的至少一部分的数据已经丢失;基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的数据,以便形成替换片段;以及输出所述替换片段的媒体数据。
[0090]此外,服务器设备60代表用于发送视频数据的信息的设备的例子,包括一个或多个处理器和一个或多个网络接口,所述处理器被配置为执行以下操作:确定将要被发送给至少一个客户端设备的媒体内容的表示;以及确定与所确定的表示相对应的默认数据;所述一个或多个网络接口被配置为:向所述至少一个客户端设备发送所确定的默认数据,以使得所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及在向所述至少一个客户端设备发送所述所确定的默认数据之后,向所述至少一个客户端设备发送所确定的表示的媒体数据。
[0091]图2是示出了表示由客户端设备接收的数据的图形80以及表示由客户端设备呈现的数据的图形86的概念图。客户端设备可以包括客户端设备40(图1〉。在这个例子中,客户端设备40接收所接收的数据82八、所接收的数据828以及所接收的数据82匕如图2中所示,存在表示被客户端设备40确定为丢失的数据的间隙841848。例如,基于对所接收的数据82八、所接收的数据828和所接收的数据82(:的所接收的分组的序列号的分析,和/或基于与间隙841848相对应的分组的校验和,客户端设备40可以确定针对间隙841848的数据丢失,例如,由于没有到达或者被破坏。
[0092]根据本公开内容的技术,在接收所接收的数据82八之前,客户端设备40可以接收模板数据,其可以包括默认音频数据和/或视频数据。因此,如图形86中所示,客户端设备40可以呈现:与所接收的数据82八相对应的经解码的数据88八、与所接收的数据828相对应的经解码的数据888以及与所接收的数据82(:相对应的经解码的数据880。此外,客户端设备40可以呈现分别与间隙841848相对应的模板数据901908,而不是呈现与间隙84八、848相对应的空白屏幕。所呈现的模板数据901908可以包括经解码的默认音频数据和/或视频数据,或者随后将被解码的经编码的默认音频数据和/或视频数据。通过呈现默认数据,客户端设备40可以为客户端设备40的终端用户提供更加愉悦的体验。
[0093]图3是示出了示例性多媒体内容100的元素的概念图。多媒体内容100可以与多媒体内容64(图1)或者存储在存储介质62中的另一多媒体内容相对应。在图3的例子中,多媒体内容100包括媒体呈现描述(腿少)102和多个表示110 - 120。表示110包括可选报头数据112和片段114八-114^(片段114),而表示120包括可选报头数据122和片段124八-12相(片段124)。表示110与表示120之间的椭圆旨在表示图3中未示出的额外表示,其可以包括相应的报头数据和片段。为方便起见,字母~用于指定表示110 - 120中的每个表示中的最后的片段。在一些例子中,在表示110 - 120中存在不同数量的片段。
[0094]1?0 102可以包括与表示110 - 120分离的数据结构。腿^0 102可以与图1的清单文件66相对应。同样地,表示110-120可以与图1的表示68相对应。通常,即0 102可以包括:对表示110 - 120的特性进行概括性描述的数据,这些特性例如编码和渲染特性、适配集合、文本输入信息、摄像头角度信息、速率信息、技巧模式信息(例如,指示包括用于技巧模式的时间子序列的表示的信息,例如快进和倒回)和/或用于取回模板数据的信息。
[0095]根据本公开内容的技术,模板数据可以包括用于替换丢失的媒体数据的默认音频数据和/或视频数据,以及指示这样的替换将如何发生的数据(例如,将要由客户端设备填入的字段,例如视频数据的图像的帧编号字段和/或?0(:值字段1?0 102可以包括针对表示110 - 120中的一个或多个表示的信息,其指示与表示110 - 120中的每个表示相对应的模板。如同下面所解释的,表示110 - 120中的每个表示可以具有单独的一组模板数据,并且针对不同表示的模板数据可以是不同的。或者,同样如同下面所解释的,相同的一组模板数据可以应用于多个表示,例如,应用于适配集合的表示中的每个表示。即0 102还可以包括用于取回模板数据的信息,例如,当模板数据可用于经由单播的取回时。在一些例子中,客户端设备(例如客户端设备40)可以被配置为:甚至当客户端设备经由广播或多播接收媒体数据时,经由单播独立地取回模板数据。
[0096]在一些例子中,可以针对表示110 - 120中的每个表示提供不同的默认音频数据和/或视频数据。例如,默认视频数据可以具有相应表示的相同的编码和渲染特性。对于具有三维视频数据的表示而言,默认视频数据也可以包括三维视频数据。默认视频数据还可以具有与相应表不的空间分辨率相同的空间分辨率。
[0097]在一些例子中,可以为单个适配集合提供包括默认音频数据和视频数据的模板数据。因此,可以针对每个适配集合存在一组默认音频数据和视频数据,而不是针对每个表示具有唯一一组默认音频数据和视频数据。因此,默认音频数据和视频数据可以具有与相应的适配集合相同的编码和渲染特性,但并不必具有与该适配集合内的表示相同的比特速率,例如针对单播、广播或多播的当前选择的表示。
[0098]报头数据112(当存在时)可以描述片段114的特性,例如,随机访问点的时间位置,片段114的这些特性包括:随机访问点、片段114内相对于随机访问点的字节偏移、片段114的统一资源定位符⑴此)或者片段114的其它方面。报头数据122(当存在时)可以描述片段124的类似特性。或者或另外,这些特性可以被全部包括在即0 102内。同样地,根据本公开内容的技术,报头数据112可以包括:在片段114丢失(例如,没有到达、到达得太晚或者在传输中被破坏)的情况下,对要使用的相关模板的指示。
[0099]片段114包括一个或多个经编码的视频采样,其中的每一个可以包括视频数据的帧或条带。片段114的经编码的视频采样中的每个采样可以具有类似的特性,例如,高度、宽度和带宽要求。这些特性可由腿^ 102的数据描述,虽然这样的数据没有在图3的例子中示出。1?0 102可以包括如同由36??规范所描述的特性,外加本公开内容中描述的以信号形式发送的信息中的任意或全部信息。在一些例子中,根据本公开内容的技术,片段114中的一个或多个片段可以包括:在数据丢失的情况下,例如,一个或多个分组没有到达、到达得太晚或者包括被破坏的数据,可以用于替换片段114中的其它片段的数据的模板的默认数据。类似地,片段124中的一个或多个片段也可以包括模板数据。或者,默认音频数据和视频数据可以与表示110 - 120的数据分开,在单独的传输中被发送。
[0100]片段114、124中的每个片段可以与唯一的统一资源标识符⑴虹)相关联,^1例如统一资源定位符⑴此)。因此,可以使用诸如0八別之类的流式传输网络协议独立地取回片段114、124中的每个片段。以这种方式,目标设备(例如客户端设备40)可以使用!!丁丁?621请求来取回片段114或124。在一些例子中,客户端设备40可以使用肌1?部分⑶丁请求来取回片段114或124的特定字节范围。或者,服务器设备(例如服务器设备60 (^1))可以对表示的片段进行多播或广播,从而使得客户端设备40仅需要例如通过加入多播组来请求接收该多播或广播的数据。
[0101]图4是示出了示例性视频文件150的元素的框图,示例性视频文件可以对应于表示的片段,例如图3的片段114、124中的一个片段。片段114、124中的每个片段可以包括本质上符合在图4的例子中示出的数据的安排的数据。如上所述,根据130基础媒体文件格式及其扩展的视频文件将数据存储在被称为“盒”的一系列对象中。在图4的例子中,视频文件150包括:文件类型盒152、电影(1007)盒154、电影分段164(也被称为电影分段盒(1005))以及电影分段随机访问(即私)盒164。
[0102]视频文件150通常代表多媒体内容的片段的例子,其可以被包括在表示110-120(图3)中的一个表示中。以这种方式,视频文件150可以与片段114中的一个片段、片段124中的一个片段或者另一表示的片段相对应。根据本公开内容的技术,丢失的媒体数据(例如视频文件150的数据)可被模板媒体数据替换。可以在本质上符合视频文件150的视频文件中发送模板数据。假定视频文件150表示所选择的表示的媒体数据,那么在表示视频文件150的一个或多个分组可能没有到达或可能到达得太晚以至于没用的情况下,数据可能“丢失”,或者与电影分段164相对应的数据可能被破坏。
[0103]在整个片段(例如,整个视频文件)丢失的情况下,客户端设备40可以利用包括模板数据(例如,默认音频数据和/或视频数据)的替换片段来替换整个片段。在片段的一部分(例如,电影分段164中的一个或多个分段)被破坏的情况下,客户端设备40可以利用模板数据仅替换片段的该部分。例如,如果一系列电影分段164被破坏,或者如果与一系列电影分段164相对应的一个或多个分组丢失,那么客户端设备40可以根据本公开内容的技术,利用模板数据(例如,默认音频数据和/或视频数据)来替换电影分段164的丢失的或被破坏的数据。
[0104]在图4的例子中,视频文件150包括一个片段索引(311?)盒161。在一些例子中,视频文件150可以包括额外的311?盒,例如,在电影分段164之间。311?盒(例如,310父盒162)通常包括描述电影分段164中的一个或多个电影分段的字节范围的信息。在其它例子中,可以在100乂盒154之内、100乂盒154之后、即狀盒166之前或之后、或者视频文件150中的其它地方提供311?盒162和/或其它311?盒。
[0105]文件类型盒152通常描述视频文件150的文件类型。文件类型盒152可以包括标识描述视频文件150的最佳使用的规范的数据。文件类型盒152可以置于100乂盒154、电影分段盒162以及班盒166之前。
[0106]在图4的例子中,1007盒154包括电影报头(靈册)盒156、轨道(1狀1()盒158以及一个或多个电影扩展盒160。通常,盒156可以描述视频文件150的一般特性。例如,盒156可以包括描述以下各项的数据:视频文件150最初创建的时间、视频文件150最后修改的时间、视频文件150的时标、视频文件150的回放的持续时间,或者通常描述视频文件150的其它数据。
[0107]I狀1(盒158可以包括针对视频文件150的轨道的数据。I狀1(盒158可以包括描述与I狀1(盒158相对应的轨道的特性的轨道报头(11(110)盒。在一些例子中,I狀1(盒158可以包括经编码的视频图像,而在其它例子中,轨道的经编码的视频图像可以被包括在电影分段164中,其可以由盒158的数据引用。
[0108]在一些例子中,视频文件150可以包括一个以上的轨道,尽管这对于0八3!1协议的工作而言不是必要的。因此,1007盒154可以包括与视频文件150中的轨道的数量相等的多个盒。盒158可以描述视频文件150的相应轨道的特性。例如,盒158可以描述相应轨道的时间信息和/或空间信息。当封装单元30(图1)包括视频文件(例如,视频文件150)中的参数集轨道时,与1007盒154的I狀1(盒158类似的I狀1(盒可以描述参数集轨道的特性。封装单元30可以在描述参数集轨道的I狀X盒内的参数集轨道中以信号形式传达序列级别321消息的存在。
[0109]盒160可以描述相应电影分段164的特性,例如,以便以信号形式传达:除了被包括在服)07盒154内的视频数据之外(如果有的话),视频文件150还包括电影分段164。在流式传输视频数据的上下文中,经编码的视频图像可以被包括在电影分段164中而不是在100乂盒154中。因此,全部经编码的视频采样可以被包括在电影分段164中而不是在1007盒154中。
[0110]1007盒154可以包括与视频文件150中的电影分段164的数量相等的多个靈狀盒160。盒160中的每个盒可以描述电影分段164中的相应一个电影分段的特性。例如,每个盒可以包括:描述电影分段164中的相应一个电影分段的持续时间的电影扩展报头盒(12?))盒。
[0111]电影分段164可以包括:一个或多个经编码的视频图像、以及经编码的音频数据(也被称为经编码的音频采样〉、文本覆盖(例如,用于隐藏字幕)或者其它媒体数据。在一些例子中,电影分段164可以包括一个或多个图像组((^)?),其每一组可以包括多个经编码的视频图像,例如,帧或图像。电影分段164中的每个电影分段可以包括电影分段报头盒图4中未示出)。盒可以描述相应的电影分段的特性,例如该电影分段的序列号。电影分段164可以按序列号的顺序被包括在视频文件150中。
[0112]盒166可以描述视频文件150的电影分段164内的随机访问点。这可以协助执行技巧模式,例如执行寻找视频文件150内的特定时间位置,以及快进或倒回模式。狀盒166通常是可选的,并且不需要被包括在视频文件中。同样地,客户端设备(例如,客户端设备40)并不必需要参考班盒166来对视频文件150的视频数据进行正确地解码和显示。1?狀盒166可以包括与视频文件150的轨道的数量相等,或者在一些例子中,与视频文件150的媒体轨道(例如,非暗示轨道)的数量相等的多个轨道分段随机访问01?狀)盒(未示出)。
[0113]图5是示出了用于提供和使用模板数据来替换丢失的媒体数据的示例性方法的流程图。如本文所提到的,模板数据可以包括默认视频数据和/或音频数据。在图5的例子中,客户端设备(例如,客户端设备40)和服务器设备(例如,服务器设备60)参与本方法。在其它例子中,额外的或替代设备也可以参与本方法。
[0114]在图5的例子中,客户端设备40可以最初请求媒体内容的清单文件(200)。例如,对于单播,该请求可以被送往服务器设备60,或者用于向多播组订阅的间接请求。如图5的例子中所示,服务器设备60可以响应于该请求向客户端设备40发送清单文件(2021或者,针对网络多播,服务器设备60可以最初向多播组提供清单文件。在任何情况下,客户端设备40可以接收清单文件(204),并基于该清单文件来请求媒体数据(2061例如,客户端设备40可以基于由该清单文件描述的编码和渲染特性以及表示的比特速率来选择表示,并请求所选择的表示的片段。或者,在多播或广播的境况中,可以仅有一种可用的表示,即,由服务器设备60选择的表示。在一些例子中,清单文件可以包括:与媒体内容相关联的多播组的I?地址,或者用于接收多播数据的其它信息。
[0115]在这个例子中,服务器设备60可以发送针对所请求的媒体数据的模板数据(208)。在媒体数据是经由广播或多播发送的例子中,发送的模板数据可以与由服务器设备60选择的表示相对应。模板数据可以包括默认音频数据和视频数据,以及用于使用默认音频/视频数据的任何其它信息。例如,模板数据可以包括:指示将要被填入的报头数据的一个或多个字段的信息(例如,&肅6」111111值和/或?00值)以及任何其它相关信息(例如,??3、3?3和或与模板数据相关的321消息)。模板数据可以被封装为单独的片段,例如本质上符合视频文件150(图4)的模板片段。或者,模板数据可以被包括在包括相应媒体内容的媒体数据的片段中。
[0116]在一些例子中,清单文件可以包括:包括模板数据的片段的11?1。在这样的例子中,客户端设备40还可以例如使用单独的!III?或部分请求来提交请求以便取回模板数据。因此,模板数据可以经由单播、广播或多播网络传输来发送,并且可以在具有所请求的媒体数据的频带中或在频带之外发送,即,作为与所请求的媒体数据分开的网络传输,所请求的媒体数据可以经由单独的、物理的或逻辑的通信信道来发送。在任何情况下,客户端设备40可以从服务器设备60接收模板数据(2101在一些例子中,客户端设备40可以从单独的服务器设备而不是提供媒体数据的服务器设备接收模板数据。虽然在图5的例子中被示为单独的步骤,但应当理解的是:发送针对媒体内容的模板数据(例如,步骤208)与发送所请求的媒体数据(例如,步骤212)可以并行发生,或者可以作为单个步骤发生。例如,所请求的媒体数据的片段(或者媒体内容的另一部分)可以包括模板数据。
[0117]服务器设备60还可以发送所请求的媒体数据的片段(212)。在单播传输中,服务器设备60可以发送与肌1? 621或部分请求中规定的口此相对应的片段(或片段的一部分),而在多播或广播传输中,服务器设备60可以在不等待来自客户端设备的请求的情况下发送下一个可用片段。客户端设备40然后可以确定片段的数据是否丢失(2141例如,客户端设备40可以对所接收的分组的序列号进行分析,以便确定预期片段的一个或多个分组是根本没有到达还是没有及时到达以至于没用了。作为另一例子,客户端设备40可以例如使用分组的校验和来确定片段的一个或多个分组是否包括被破坏的数据。
[0118]在任何情况下,当客户端设备40确定片段的数据丢失时(214的“是”分支),客户端设备40可以通过利用与在步骤210处接收的模板数据相对应的模板数据替换丢失的数据来构建替换片段(216)。例如,如果分组的全部数据都没有到达,那么客户端设备40可以利用模板数据的默认音频数据和/或视频数据来替换整个片段。或者,如果片段的一部分到达了但片段的另一部分没有到达,那么客户端设备40可以利用模板数据的默认音频数据和/或视频数据来替换片段的没有到达的部分。
[0119]然后,客户端设备40可以向解封装单元50发送替换片段,解封装单元50进而可以向音频解码器46提供经解封装的、经编码的音频数据,以及向视频解码器48提供经解封装的、经编码的视频数据(2181另一方面,如果片段的数据没有丢失(214的“否”分支),那么客户端设备40可以向解封装单元50发送已接收的片段,解封装单元50进而可以向音频解码器46提供经解封装的、经编码的音频数据,以及向视频解码器48提供经解封装的、经编码的视频数据(2201不管片段是替换片段还是未经修改的、已接收的片段,音频解码器46都可以对经编码的音频数据进行解码,而视频解码器48可以对片段的经编码的视频数据进行解码(222)。因此,从音频解码器46和视频解码器48的角度来看,片段的数据将不会显得是已经被修改过或者被默认数据替换过。相反地,片段的数据将会显得是预期的经编码的音频数据或视频数据。例如,对于替换片段的视频数据而言,客户端设备40可以提供色'孤16」1皿值和/或?00值的正确值,以便确保视频解码器48能够正确解码默认视频数据。
[0120]在解码之后,客户端设备40可以呈现经解码的音频数据和视频数据(224)。例如,音频输出42可以呈现经解码的音频数据,而视频输出44可以显示经解码的视频数据。如上面所提到的,在片段的数据丢失的情况下,在发送的媒体数据与所呈现的媒体数据之间可能存在微小的不连续,但这种情况下呈现的媒体数据提供了比在默认视频数据的情况下简单地呈现空白屏幕更好的用户体验。
[0121]以这种方式,图5代表用于呈现媒体数据的方法的例子,该方法包括:在经由根据基于!III?的动态自适应流式传输的网络传输接收了媒体数据的片段的其余部分之后,确定媒体数据的所述片段的至少一部分的数据已经丢失;基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的所述数据,以便形成替换片段;以及输出所述替换片段的媒体数据。
[0122]图5还代表用于发送媒体数据的信息的方法的例子,该方法包括:确定将要向至少一个客户端设备发送的媒体内容的表示;确定与所确定的表示相对应的默认数据;向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及在向所述至少一个客户端设备发送所确定的默认数据之后,向所述至少一个客户端设备发送所确定的表示的媒体数据。
[0123]在一个或多个例子中,可以用硬件、软件、固件或它们的任意组合来实现所描述的功能。如果用软件来实现,则这些功能可以作为一条或多条指令或代码存储在计算机可读介质上,或者通过计算机可读介质发送,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其与有形介质或通信介质相对应,有形介质例如数据存储介质,通信介质包括例如根据通信协议便于将计算机程序从一个地方传送到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器存取以便取回用于实现本公开内容中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0124]通过举例而非限制性的方式,这样的计算机可读介质可以包括狀1、801、22?1?01、00-1^01或其它光盘存储、磁盘存储或其它磁存储设备、闪存或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质。另外,可以将任何连接适当地称作计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字订户线(01)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或其它远程源发送的,则同轴电缆、光纤光缆、双绞线、01或者诸如红外线、无线电和微波之类的无线技术被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是针对非暂时性的、有形的存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(⑶〉、激光光盘、光盘、数字多功能光盘软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上面的组合也应当被包括在计算机可读介质的范围之内。
[0125]指令可由一个或多个处理器来执行,一个或多个处理器例如一个或多个数字信号处理器①一?)、通用微处理器、专用集成电路(八310、现场可编程逻辑阵列(冲以)或其它等效的集成或分立的逻辑电路。因此,如本文中所使用的,术语“处理器”可以指代前述结构或适于本文中所描述的技术的实现的任何其它结构中的任何一个。另外,在一些方面中,可以在被配置用于编码和解码或者被并入组合编解码器中的专用硬件和/或软件模块内提供本文中描述的功能。此外,这些技术可以在一个或多个电路或逻辑单元中全部实现。
[0126]本公开内容的技术可以在多种不同的设备或装置中实现,这些设备或装置包括无线手持设备、集成电路(10或一组1“例如,芯片组本公开内容中描述了各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不必要求由不同的硬件单元来实现。相反地,如上所述,各个单元可以组合在编解码器硬件单元中,或者由可互操作的硬件单元的集合来提供,包括结合合适的软件和/或固件的如上所述的一个或多个处理器。
[0127]本文已对各个例子进行了描述。这些例子和其它例子在所附权利要求的范围之内。
【权利要求】
1.一种用于呈现媒体数据的方法,所述方法包括: 在经由根据基于HTTP的动态自适应流式传输(DASH)的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失; 基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的数据,以便形成替换片段;以及 输出所述替换片段的媒体数据。
2.根据权利要求1所述的方法,其中,确定所述片段的所述至少一部分的所述数据已经丢失包括:确定所述片段的至少一个分组没有到达或者已经被破坏。
3.根据权利要求1所述的方法,其中,添加默认数据包括:向所述片段添加默认音频数据和默认视频数据中的至少一项。
4.根据权利要求1所述的方法,其中,添加默认数据包括:向所述片段添加默认视频数据,并且其中,所述默认视频数据包括以下各项中的一项:从其接收所述片段的所述其余部分的网络的徽标屏幕、季节性相关显示以及与内容有关的显示。
5.根据权利要求1所述的方法,其中,添加默认数据包括:向所述片段添加与内容有关的音频数据。
6.根据权利要求1所述的方法,还包括:基于所述默认数据的附加部分来修改所述片段的报头。
7.根据权利要求1所述的方法,还包括:接收定义所述默认数据的信息。
8.根据权利要求7所述的方法,其中,接收定义所述默认数据的所述信息包括:接收定义所述默认数据作为所述网络传输的一部分的所述信息。
9.根据权利要求7所述的方法,其中,接收定义所述默认数据的所述信息包括:接收定义所述默认数据作为边信息的所述信息。
10.根据权利要求1所述的方法,还包括:取回用于指示所述默认数据的配置数据。
11.根据权利要求1所述的方法,其中,所述媒体数据包括视频数据,并且其中,输出包括:向视频解码器发送所述替换片段的所述视频数据。
12.根据权利要求10所述的方法,其中,添加所述默认数据包括:向所述默认数据的图像分配针对帧编号和图像顺序计数(POC)值中的至少一个的值。
13.根据权利要求1所述的方法,其中,所述媒体数据包括音频数据,并且其中,输出包括:向音频解码器发送所述替换片段的所述音频数据。
14.一种用于呈现媒体数据的设备,所述设备包括一个或多个处理器,所述一个或多个处理器被配置为:在经由根据基于HTTP的动态自适应流式传输(DASH)的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失;基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的数据,以便形成替换片段;以及输出所述替换片段的媒体数据。
15.根据权利要求14所述的方法,其中,所述一个或多个处理器被配置为:当所述片段的至少一个分组没有到达或者已经被破坏时,确定所述片段的所述至少一部分的所述数据已经丢失。
16.根据权利要求14所述的方法,其中,所述一个或多个处理器被配置为:向所述片段添加默认音频数据和默认视频数据中的至少一项。
17.根据权利要求14所述的设备,其中,所述一个或多个处理器还被配置为:接收定义所述默认数据的信息。
18.根据权利要求14所述的设备,还包括:视频解码器,其中,所述媒体数据包括视频数据,并且其中,所述一个或多个处理器被配置为:向所述视频解码器发送所述替换片段的所述视频数据。
19.根据权利要求18所述的设备,其中,所述一个或多个处理器被配置为:向所述默认数据的图像分配针对帧编号和图像顺序计数(POC)值中的至少一个的值。
20.一种用于呈现媒体数据的设备,所述设备包括: 用于在经由根据基于HTTP的动态自适应流式传输(DASH)的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失的单元; 用于基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的数据,以便形成替换片段的单元;以及 用于输出所述替换片段的媒体数据的单元。
21.根据权利要求20所述的设备,其中,所述用于确定所述片段的所述至少一部分的所述数据已经丢失的单元包括:用于确定所述片段的至少一个分组没有到达或者已经被破坏的单元。
22.根据权利要求20所述的设备,其中,所述用于添加默认数据的单元包括:用于向所述片段添加默认音频数据和默认视频数据中的至少一项的单元。
23.根据权利要求20所述的设备,还包括:用于接收定义所述默认数据的信息的单元。
24.根据权利要求23所述的设备,其中,所述用于接收定义所述默认数据的所述信息的单元包括:用于接收定义所述默认数据作为所述网络传输的一部分的所述信息的单元。
25.根据权利要求23所述的设备,其中,所述用于接收定义所述默认数据的所述信息的单元包括:用于接收定义所述默认数据作为边信息的所述信息的单元。
26.根据权利要求20所述的设备,还包括:用于对视频数据进行解码的单元,其中,所述媒体数据包括视频数据,并且其中,所述用于输出的单元包括:用于向所述用于对视频数据进行解码的单元发送所述替换片段的所述视频数据的单元。
27.根据权利要求26所述的设备,其中,所述用于添加所述默认数据的单元包括:用于向所述默认数据的图像分配针对帧编号和图像顺序计数(POC)值中的至少一个的值的单J L.ο
28.—种计算机可读存储介质,所述计算机可读存储介质具有存储在其上的、当被执行时使得一个或多个处理器执行以下操作的指令: 在经由根据基于HTTP的动态自适应流式传输(DASH)的网络传输接收了媒体数据的片段的其余部分之后,确定所述媒体数据的所述片段的至少一部分的数据已经丢失; 基于所述确定,在对所述媒体数据进行解码之前,向所述片段添加默认数据来替换已经被确定为丢失的数据,以便形成替换片段;以及 输出所述替换片段的媒体数据。
29.根据权利要求28所述的计算机可读存储介质,其中,所述使得所述一个或多个处理器确定所述片段的所述至少一部分的所述数据已经丢失的指令包括:使得所述一个或多个处理器确定所述片段的至少一个分组没有到达或者已经被破坏的指令。
30.根据权利要求28所述的计算机可读存储介质,其中,所述使得所述一个或多个处理器添加默认数据的指令包括:使得所述一个或多个处理器向所述片段添加默认音频数据和默认视频数据中的至少一项的指令。
31.根据权利要求28所述的计算机可读存储介质,还包括:使得所述一个或多个处理器接收定义所述默认数据的信息。
32.根据权利要求31所述的计算机可读存储介质,其中,所述使得所述一个或多个处理器接收定义所述默认数据的所述信息的指令包括:使得所述一个或多个处理器接收定义所述默认数据作为所述网络传输的一部分的所述信息的指令。
33.根据权利要求31所述的计算机可读存储介质,其中,所述使得所述一个或多个处理器接收定义所述默认数据的所述信息的指令包括:使得所述一个或多个处理器接收定义所述默认数据作为边信息的所述信息的指令。
34.根据权利要求28所述的计算机可读存储介质,其中,所述媒体数据包括视频数据,并且其中,所述使得所述一个或多个处理器输出的指令包括:使得所述一个或多个处理器向视频解码器发送所述替换片段的所述视频数据的指令。
35.根据权利要求34所述的计算机可读存储介质,其中,所述使得所述一个或多个处理器添加所述默认数据的指令包括:使得所述一个或多个处理器向所述默认数据的图像分配针对帧编号和图像顺序计数(POC)中的至少一个的值的指令。
36.一种用于发送媒体数据的信息的方法,所述方法包括: 确定将要向至少一个客户端设备发送的媒体内容的表示; 确定与所确定的表示相对应的默认数据; 向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及 向所述至少一个客户端设备发送所确定的表示的媒体数据。
37.根据权利要求36所述的方法,其中,确定所述表示包括:选择所述表示,并且其中,发送所述媒体数据包括:经由多播网络传输和广播网络传输中的一种来发送所述媒体数据。
38.根据权利要求36所述的方法,其中,确定所述表示包括:从所述至少一个客户端设备接收请求,并且其中,发送所述媒体数据包括:经由单播传输来发送所述媒体数据。
39.根据权利要求36所述的方法,其中,发送所确定的默认数据还包括:发送用于指示将要被填入的所述默认数据的报头数据的一个或多个字段的信息。
40.根据权利要求39所述的方法,其中,所述默认数据包括默认视频数据,并且其中,所述一个或多个字段包括所述默认视频数据的帧编号和图像顺序计数(POC)值中的至少—个°
41.一种用于发送媒体数据的信息的设备,所述设备包括: 一个或多个处理器,其被配置为:确定将要向至少一个客户端设备发送的媒体内容的表示;以及确定与所确定的表示相对应的默认数据;以及 一个或多个网络接口,其被配置为:向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及向所述至少一个客户端设备发送所确定的表示的媒体数据。
42.根据权利要求41所述的设备,其中,所述一个或多个处理器被配置为:选择所述表示,并且其中,所述一个或多个网络接口被配置为:经由多播网络传输和广播网络传输中的一种来发送所述媒体数据。
43.根据权利要求41所述的设备,其中,所述一个或多个网络接口被配置为:从所述至少一个客户端设备接收请求,并且经由单播传输来发送所述媒体数据。
44.根据权利要求41所述的设备,其中,所述一个或多个网络接口还被配置为:发送用于指示将要被填入的所述默认数据的报头数据的一个或多个字段的信息。
45.根据权利要求44所述的设备,其中,所述默认数据包括默认视频数据,并且其中,所述一个或多个字段包括所述默认视频数据的帧编号和图像顺序计数(POC)值中的至少—个°
46.一种用于发送媒体数据的信息的设备,所述设备包括: 用于确定将要向至少一个客户端设备发送的媒体内容的表示的单元; 用于确定与所确定的表示相对应的默认数据的单元; 用于向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据的单元;以及 用于向所述至少一个客户端设备发送所确定的表示的媒体数据的单元。
47.根据权利要求46所述的设备,其中,所述用于发送所确定的默认数据的单元还包括:用于发送用于指示将要被填入的所述默认数据的报头数据的一个或多个字段的信息的单元。
48.根据权利要求47所述的设备,其中,所述默认数据包括默认视频数据,并且其中,所述一个或多个字段包括所述默认视频数据的帧编号和图像顺序计数(POC)值中的至少—个°
49.一种计算机可读存储介质,所述计算机可读存储介质具有存储在其上的、当被执行时使得一个或多个处理器执行以下操作的指令: 确定将要向至少一个客户端设备发送的媒体内容的表示; 确定与所确定的表示相对应的默认数据; 向所述至少一个客户端设备发送所确定的默认数据,以使所述至少一个客户端设备利用所述默认数据来替换丢失的数据;以及 向所述至少一个客户端设备发送所确定的表示的媒体数据。
50.根据权利要求49所述的计算机可读存储介质,其中,所述使得所述一个或多个处理器发送所确定的默认数据的指令还包括:使得所述一个或多个处理器发送用于指示将要被填入的所述默认数据的报头数据的一个或多个字段的信息的指令。
51.根据权利要求50所述的计算机可读存储介质,其中,所述默认数据包括默认视频数据,并且其中,所述一个或多个字段包括所述默认视频数据的帧编号和图像顺序计数(POC)值中的至少一个。
【文档编号】H04N21/643GK104509064SQ201380039850
【公开日】2015年4月8日 申请日期:2013年7月26日 优先权日:2012年7月29日
【发明者】T·M·纳佳拉杰, H·苏库马尔, P·科特卡尔, S·马赫什瓦里, D·阿梅尔加 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1