用于经由HTTP的动态自适应流式传输(DASH)的实况定时方法与流程

文档序号:17940091发布日期:2019-06-18 22:59阅读:730来源:国知局
用于经由HTTP的动态自适应流式传输(DASH)的实况定时方法与流程

本申请案主张2013年1月4日申请的第61/749,048号美国临时申请案的权益,所述临时申请案的全部内容以引用的方式并入本文中。

本发明涉及例如视频数据等经编码媒体数据的传递。



背景技术:

数字视频能力可并入到广泛范围的装置中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或台式计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置等等。数字视频装置实施视频压缩技术,例如通过mpeg-2、mpeg-4、itu-th.263或itu-th.264/mpeg-4第10部分高级视频译码(avc)、itu-th.265/mpeg-h第2部分高效视频译码(hevc)、vp8、vp9和此类标准的扩展定义的标准中描述的技术,以便更有效地发射和接收数字视频信息。

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

在视频数据已经编码之后,可将视频数据包化以用于发射或存储。所述视频数据可依照多种标准中的任一者而汇编到视频文件中,所述标准例如国际标准化组织(iso)基础媒体文件格式及其扩展,例如avc文件格式或hevc文件格式,或依照mpeg-2传输流或其它囊封格式。



技术实现要素:

大体来说,本发明描述关于信令时间信息用于使用例如经由http的动态自适应流式传输(dash)来进行实况流式传输的技术。当执行实况流式传输时,可仅准备媒体内容以供在内容已被接收(例如,记录)和编码之后发射。根据本发明的技术,源装置可以墙时钟时间通告媒体内容的片段将可用的时间。所述源装置可确保片段由所通告墙时钟时间完全形成。此外,源装置可通告同步方法,借助所述同步方法,客户端装置可将其本地时钟与墙时钟时间同步例如以确保客户端与源装置以相同时间基础操作。举例来说,源装置可通告网络时间协议(ntp)、超文本传送协议(http)定时协议(htp)、http日期标头,或使用(例如)http协议作为同步协议的restfulapi。源装置可进一步通告用于时间同步服务器的网络地址。源装置可在例如媒体呈现描述(mpd)等清单文件中通告此时间同步信息。

在一个实例中,一种接收用于媒体数据的流式传输的信息的方法包含:由客户端装置接收用于媒体内容的媒体呈现描述(mpd),其中所述mpd包含指示客户端装置可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所述数据指示同步方法,借助所述同步方法,所述客户端装置将使墙时钟时间与客户端装置的时钟同步;使用mpd所指示的方法使客户端装置的时钟与墙时钟时间同步;以及使用所述经同步时钟向源装置请求媒体内容的数据。

在另一实例中,一种用于接收用于媒体数据的流式传输的信息的客户端装置包含时钟,以及一或多个处理器,所述一或多个处理器经配置以:接收用于媒体内容的媒体呈现描述(mpd),其中所述mpd包含指示客户端装置可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所述数据指示同步方法,借助所述同步方法,所述客户端装置将使墙时钟时间与所述时钟同步;使用mpd所指示的方法使所述时钟与墙时钟时间同步;且使用所述经同步时钟向源装置请求媒体内容的数据。

在另一实例中,一种计算机可读存储媒体具有存储在其上的指令,所述指令在执行时致使客户端装置的处理器:接收用于媒体内容的媒体呈现描述(mpd),其中所述mpd包含指示客户端装置可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所述数据指示同步方法,借助所述同步方法,所述客户端装置将使墙时钟时间与客户端装置的时钟同步;使用mpd所指示的方法使客户端装置的时钟与墙时钟时间同步;且使用所述经同步时钟向源装置请求媒体内容的数据。

在另一实例中,一种信令用于媒体数据的流式传输的信息的方法包含:产生用于媒体内容的媒体呈现描述(mpd)的数据,其中所述mpd包含指示客户端装置可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所产生的数据指示同步方法,借助所述同步方法,所述客户端装置将使墙时钟时间与客户端装置的时钟同步;以及将所述mpd发送到所述客户端装置。

在另一实例中,一种信令用于媒体数据的流式传输的信息的方法包含产生用于媒体内容的媒体呈现描述(mpd)的数据,其中所述mpd指示一种以上方法,借助所述一种以上方法,客户端装置可使墙时钟时间与源装置的时钟同步。在一个实例中,客户端装置可选择一或多个合适的方法来与墙时钟时间同步。举例来说,通过挑选多个方法,与墙时钟时间的同步可更准确。

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

附图说明

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

图2是说明实例多媒体内容的要素的概念图。

图3为说明包含可实施本发明的技术的各种装置的系统的概念图。

图4为说明使客户端装置的本地时钟与墙时钟时间同步且使用所述经同步时钟检索片段的实例方法的流程图。

具体实施方式

大体来说,本发明描述用于实现例如经由http的动态自适应流式传输(dash)环境等用于流式传输媒体数据的环境中客户端与服务器之间的准确定时的技术。这些技术可用于支持http实况流式传输(hls)。尽管通常相对于dash和hls论述,但本发明的技术可适用于其它网络流式传输协议。dash在iso/iec23009-1中指定:2012年,“信息技术-经由http的动态自适应流式传输(dash)-第1部分:媒体呈现描述和片段格式”,2012年4月1日,在http://standards.iso.org/ittf/publiclyavailablestandards/c057623_iso_iec_23009-1_2012.zip处可获得。勘误表、修正和额外添加可用于iso/iec23009-1的标准,且相同技术可适用于这些扩展中的任一者。

在http流式传输中,经常使用的操作包含get和部分get。get操作检索与给定统一资源定位符(url)或统一资源名(urn)相关联的整个文件。部分get操作接收字节范围作为输入参数,且检索文件的持续数目的字节,其中所述字节数目对应于接收到的字节范围。因而,可提供电影片段以用于http流式传输,因为部分get操作可获得一或多个个别电影片段。应注意,在电影片段中,可能存在不同轨道的若干轨道片段。在http流式传输中,媒体呈现可以是客户端可访问的数据的经构造集合。客户端可请求和下载媒体数据信息以向用户呈现流式传输服务。

在使用http流式传输来流式传输3gpp数据的实例中,可能存在对于多媒体内容的视频和/或音频数据的多个表示。如在下文中所解释,一个自适应集合内的不同表示可对应于不同译码特性(例如,视频译码标准的不同简档或层级)、不同译码标准或译码标准的扩展(例如,多视图和/或可缩放扩展),或不同位速率。不同自适应集合可含有不同源组件,例如不同音频语言或不同视频视图。各自含有一或多个表示的此些自适应集合的清单可在媒体呈现描述(mpd)数据结构中界定。媒体呈现可对应于http流式传输客户端装置可访问的数据的经构造集合。http流式传输客户端装置可请求和下载媒体数据信息以向客户端装置的用户呈现流式传输服务。媒体呈现可在mpd数据结构中描述,mpd数据结构可包含mpd的更新。

媒体呈现可含有一或多个周期的序列。周期可由mpd中的周期要素定义。每一周期可具有mpd中的属性开始。mpd可包含每一周期的可用开始时间属性和开始属性。对于“动态”类型的媒体呈现(通常用于实况服务),周期的开始属性和mpd属性可用开始时间与媒体片段的持续时间的总和可指定协调通用时间(utc)格式中周期的可用性时间,明确地说对应周期中的每一表示的第一媒体片段。对于静态类型的媒体呈现(通常用于按需服务),第一周期的开始属性可为0。对于任何其它周期,开始属性可指定对应周期的开始时间相对于第一周期的开始时间之间的时间偏移。每一周期可延伸直到下一周期的开始为止,或者在最后一个周期的情况下直到媒体呈现的结束为止。周期开始时间可以是精确的。周其可反映由播放所有先前周期的媒体所产生的实际定时。

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

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

一表示可包含一或多个片段。每一表示可包含初始化片段,或表示的每一片段可自初始化。当存在时,初始化片段可含有用于访问所述表示的初始化信息。大体来说,初始化片段不含有媒体数据。片段可由识别符唯一地参考,例如统一资源定位符(url)、统一资源名(urn)或统一资源识别符(uri)。mpd可提供每一片段的识别符。在一些实例中,mpd还可提供范围属性的形式的字节范围,所述范围属性可对应于可通过url、urn或uri访问的文件内的片段的数据。

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

大体来说,dash客户端装置可访问和下载来自dash服务器装置的mpd。也就是说,dash客户端装置可检索mpd以供用于起始实况会话。基于此mpd,且针对每一选定表示,dash客户端装置可作出若干决策,包含确定服务器装置上可用的最新片段是什么、确定下一片段和可能将来片段的片段可用性开始时间、确定何时开始播出所述片段以及从所述片段中的哪一时间线播出,以及确定何时获得/提取新mpd。一旦服务经播出,客户端装置就可跟踪实况服务与其自身的播出之间的变动,这需要加以检测和补偿。

http实况流式传输(hls)尝试解决这些问题,如下。对于可用的每一片段,服务器装置公布新mpd。客户端装置在加入所述服务之后检索最新mpd,分析播放列表,且随后可访问最新片段。客户端装置随后开始播出所述片段,且在当从开始播放所述片段时其可持续访问时间上的下一片段的期望下配置。在提取新片段(或需要提取一个新片段)之前,客户端装置提取提供关于在何处获得最新片段的位置的新mpd。

平稳流式传输尝试解决这些问题,如下。对于可用的每一片段,服务器装置公布等效于mpd的新清单。客户端在加入所述服务之后检索最新清单,通过获得最新s要素的segmenttimeline的“@r”属性而分析可用的最新片段。此提供指示在何处获得最新片段的信息。客户端装置随后开始播出所述片段,且在当从开始播放所述片段时其可持续访问在时间上的下一片段(只要下一请求不在通过将片段持续时间加上上一请求的时间而产生的时间之前即可)的期望下配置。客户端因此继续基于最新segmenttimeline.s要素构造片段,直到其获得当前清单不再可用的带内信号才提取新清单。在此时间点(也就是说,响应于当前清单不再可用的信号),客户端装置请求新清单。

本发明认识到,所提议的hls和平稳流式传输的解决方案可遭遇类似问题。举例来说,hls和平稳流式传输两者用每一新的可用片段更新服务器装置上的mpd/播放列表/清单。这意味着需要客户端装置提取mpd/播放列表/清单,且每当其加入实况会话时使用mpd/播放列表/清单中的信息。换句话说,加入意味着mpd/播放列表/清单提取,且所述mpd/播放列表/清单需要为最新mpd/播放列表/清单。因此,即使使用模板,服务器也需要更新mpd/播放列表/清单以适应“@r”计数改变。需要针对每一表示进行此记账。在其中mpd/播放列表/清单经由flute(经由单向传递的文件递送)分布或需要推送到高速缓冲存储器的情况下,所述mpd/播放列表/清单更新可能尤其重要。在此情况下,新mpd/播放列表/清单需要沿着每一新片段推送。

作为另一实例,客户端装置并不具有关于下一片段在什么时间在服务器装置上可用/公布的信息。也就是说,客户端装置在最迟在片段持续时间之后公布下一片段的期望下配置。此可通过在提取新片段之前更新mpd/播放列表(这对于hls是必需的)来检验。此外,客户端并不具有关于是否可播出迟于最新可用片段的最早呈现时间的任何呈现时间以便更接近实况边缘(而不需要稍后再缓冲)的信息。由于宽松定时模型,且客户端不具有关于下一片段何时变为可用的信息,客户端装置必须在可播放最早呈现时间的假设下配置。

此外,客户端装置并不具有关于由下载相同片段的其它客户端装置进行的播出是否同步的信息。此外,当加入所述服务时客户端装置需要提取新mpd以获得最新信息。此“提取”需要至少一个mpd提取往返时间,其可在起始实况会话的请求与客户端装置可开始播出的时间之间强加延迟。

上文提到的问题的主要原因是,hls和平稳流式传输的现有技术并不提供关于mpd和媒体片段创建的确切时间表的信息。作为一实例,如果对10秒片段操作,那么客户端具有关于mpd/播放列表/清单是否已被公布或其是否将在不久之后被公布的极少信息。因此,所述定时可仍关闭达10ε秒,其中ε任意较小但大于0。此外,这些hls和平稳流式传输的技术需要用每一新产生和公布的片段频繁地更新mpd/播放列表/清单。在hls和平稳流式传输的技术中无实现较接近实况边缘的播出或实现与其它客户端同步的播出的参考时钟可为客户端使用。

移动图片专家组(mpeg)dash和dash-ifdash-264/avc技术也试图解决此问题。举例来说,在这些技术中,可使用基于数字的模板。mpeg-dash尝试解决上述缺点。也就是说,mpeg-dash尝试较接近实况边缘操作,以使正消费相同媒体呈现的客户端的播出同步,避免服务器上mpd的常规更新和客户端进行的提取,,且避免当加入所述服务时实时提取所述mpd。

特定来说,mpeg-dash使用mpd中记录的墙时钟时间,其设置实况媒体呈现。mpeg-dash假定产生mpd使得mpd产生过程的确能够访问准确时钟。这使以任何手段与墙时钟时间同步的客户端装置能够较接近实况边缘操作。具体来说,当使用基于数字模板的表示和使用@duration属性时,以下信息在mpd中可用:

●mpd@availabilitystarttime:开始时间是墙时钟时间中用于mpd的锚。所述值表示为ast。

●mpd@minimumupdateperiod:mpd的最小更新周期。所述值表示为mup。

●mpd@suggestedpresentationdelay:所建议呈现延迟,作为与片段可用性开始时间的差量。所述值表示为spd。

●mpd@minbuffertime:结合每一表示的@bandwidth属性使用的最小缓冲器时间。所述值表示为mbt。

●mpd@timeshiftbufferdepth:媒体呈现的时移缓冲深度。所述值表示为tsb。

●period@start:周期的开始时间相对于mpd可用性开始时间。所述值表示为ps。

●segmenttemplate@startnumber:周期的第一片段的数目。所述值表示为ssn。

●segmenttemplate@duration:以时间单位计的片段的持续时间。所述值除以@timescale的值表示为d。

假定客户端装置确实在提取时间ft提取所述mpd。

现在假定客户端处的墙时钟时间在wt处表示,那么客户端装置可导出以下信息:

●需要最新片段号的服务器上可用的最新片段的地址表示为lsn

●具有号码lsn+1的下一片段和任何其它片段sn的片段可用性开始时间表示为sast(sn)。应注意,sn开始于1。

●最接近于实况边缘而同步的片段内的媒体呈现时间,mptl。

●与其它客户端同步的片段内的媒体呈现时间,mpts。

●基于当前呈现时间何时提取新mpd的时间。

在下文中解释mpeg-dash的技术的实例。在此实例中,假设mpd包含以下信息:

进一步假定,客户端装置提取mpd,且墙时钟时间为ntp="2011-12-25t12:30:27"。在此实例中,此值表示为ft。

客户端装置随后导出最新片段号。也就是说,客户端装置获得最新周期作为所述周期,其中ast+ps<=ntp。如果ntp>=ast+ps+d,那么此周期内的至少一个片段可用,且客户端装置将客户端上可用的最新片段号(lsn)导出为:

lsn=底数(ntp-(ast+ps)-d)/d)+ssn=底数(15/2)+22=29(1)

因此,在此实例中,所产生的url导出为http://www.example.com/audio/fr/29.mp4。

客户端装置随后将具有号码sn的片段的片段可用性开始时间(sast)导出为:

sast(sn)=ast+pst+(sn-ssn+1)*d(2)

这意味着在此实例中,对于sn=30,sast(sn=30)=2011-12-25t12:30:28。

客户端装置随后基于mpd中的可用信息调度播出。客户端装置将每一表示的周期中的媒体呈现时间确定为媒体片段中的呈现时间值减去每一表示的@presentationtimeoffset的值(如果存在)。具有片段号sn每一片段包含由ept(sn)表示的最早呈现时间。

通过提供mpd,在mpeg-dash中,保证:

1.此周期中的每一片段在最早呈现时间之前可用,即,对于所有sn,ept(sn)>=sast(sn)-(ast+pst)。

2.如果具有片段号sn的每一片段在sast(sn)处经由具有等于@bandwidth属性的值的位速率的恒定位速率信道开始递送,那么每一呈现时间pt在客户端处最迟在时间pt+(ast+pst)+mbt可用。

3.当与其它客户端同步而操作时呈现时间的所推荐播出时间mpt(pt)为mpts(pt)=(ast+pst)+pt+spd。

4.此周期中的每一片段可用,至少直到sast(sn)+tsb+d为止。

使用此信息,客户端装置可考虑mpd中的信息以及下载速度而开始调度播出。如果属性@suggestedpresentationdelay存在,那么合适的播出时间为pot(pt)=mpts(pt)。如果@suggestedpresentationdelay不存在,那么合适的播出时间考虑上文的第一、第二和第四约束,即,服务器处的片段可用性时间以及媒体流的位速率可变性。

当mpd有效时,客户端装置使用mpd来构造片段。特定来说,客户端装置使用mpd来构造片段直至媒体时间ft+mup。也就是说,可构造的最大片段号(gsn)为:gsn=最大数(ft+mup-(ast+ps)-d)/d)+ssn=最大数(45/2)+22=45(3)

应理解,最新片段可比其它片段短。在上文的实例中,在提取超出片段号45的任何数据之前,客户端装置需要根据mpeg-dash提取新mpd。

更一般地说,为在dash中使用具有不同定时和寻址方案的相同概念,根据iso/iec23009-1引入以下值:

●周期中片段的位置表示为k,其中k=1、2...

●在位置k处片段的mpd开始时间,被称作mst(k)

●在位置k处片段的mpd持续时间,被称作md(k)。

现在假定客户端装置处的墙时钟时间表示为wt,那么客户端装置可导出以下信息:

1.服务器上的最新可用周期,由其周期开始时间pst*表示

2.周期内在位置k处的任何片段的片段可用性开始时间,表示为sast(k)。

3.周期中服务器上可用的最新片段的位置,被称作k*

4.服务器上可用的最新片段的地址

5.基于当前呈现时间何时提取新的mpd的时间,或更特定来说,可由此mpd构造的此周期内的最大片段位置k'。

6.最接近于实况边缘而同步的表示内的媒体呈现时间,mptl。

7.与其它客户端同步的表示内的媒体呈现时间,mpts。

使用这些时间,客户端装置可从上文将值导出为:

1.获得最新周期作为所述周期,其中pst<=ntp。

2.片段可用性开始时间获得为

sast(k)=ast+pst+mst(k)+md(k)(4)

3.在此周期内,客户端装置上可用的最新片段为位置k*处的片段,其产生sast(k*)的最大值且同时小于ntp。

4.通过使用位置信息k*获得最新片段的地址,且随后可导出片段地址。片段地址取决于寻址方法。

5.在此周期内,可由此mpd构造的最大片段位置k'是产生sast(k')的最大值且同时小于ft+mup的片段位置。

客户端装置可使用此数据导出mpd时间。举例来说,如果存在@duration属性且所述值除以@timescale的值表示为d,那么客户端装置使用常规dash技术导出mpd时间为:

●md(k)=d

●mst(k)=(k-1)*d

在片段基础信息含有具有以s=1、...ns编索引的nss要素的segmenttimeline要素的情况下,(在根据iso/iec23009-1的dash中):

●t[s]为第s个s要素的@t的值除以@timescale属性的值,

●d[s]为第s个s要素的@d的值除以@timescale属性的值,

●r[s]为第s个s要素的@r的值(除非@r值为-1,其意味着所述值未知且可使用@d直至经更新信息可用为止)

因此,客户端装置可导出mpd持续时间和开始时间如下:

●k=0

●对于s=1,...ns

○k=k+1

○mst(k)=t[s]

○md(k)=d[s]

○对于j=1,...,r[s]

■k=k+1

■mst(k)=mst(k-1)+d[s]

■md(k)=d[s]

在根据iso/iec23009-1的dash中,寻址方法独立于时间线产生的使用。@startnumber的解释取决于寻址方法。如果表示含有或继承一或多个segmentlist要素,从而提供媒体片段的明确url的集合,那么客户端装置使用@startnumber确定片段列表中第一片段的位置。片段列表随后提供所述明确url。如果表示含有或继承具有$number$的segmenttemplate要素,那么通过用segmenttemplate@media串中的(k-1)+@startnumber替换$number$识别符而获得位置k处媒体片段的url。如果表示含有或继承具有$time$的segmenttemplate要素,那么客户端装置通过用segmenttemplate@media串中的mst(k)(以@timescale属性的情况下的值去正规化)替换$time$识别符而获得位置k处媒体片段的url。

此外,在根据iso/iec23009-1的dash中,客户端装置基于mpd中的可用信息调度播出。客户端装置将每一表示的周期中的媒体呈现时间确定为媒体片段中的呈现时间值减去每一表示的@presentationtimeoffset的值(如果存在)。在位置k处的每一片段已指派最早媒体呈现时间ept(k)。

通过提供mpd,根据iso/iec23009-1的dash保证:

1.此周期中的每一片段在其最早呈现时间及其持续时间之前可用(即,对于所有k)。

sast(k)<=ept(k)+(ast+pst)+md(k)(5)

2.如果具有片段号k的每一片段在sast(k)处经由具有等于@bandwidth属性的值的位速率的恒定位速率信道开始递送,那么每一呈现时间pt在客户端处最迟在时间pt+(ast+pst)+mbt+md(k)可用。

3.当与其它客户端同步而操作时呈现时间的所推荐播出时间mpts(pt)为mpts(pt)=(ast+pst)+pt+spd。

4.此周期中的每一片段可用,至少直到sast(k)+tsb+md(k)为止。

使用此信息,客户端装置可考虑mpd中的信息以及下载速度而开始调度播出。如果属性@suggestedpresentationdelay存在,那么合适的播出时间为pot(pt)=mpts(pt)。如果属性@suggestedpresentationdelay不存在,那么合适的播出时间考虑上文的第一、第二和第四约束,即,服务器处的片段可用性时间以及媒体流的位速率可变性。

在根据iso/iec23009-1的dash下,客户端装置可使用mpd来构造并请求片段直到媒体时间ft+mup为止,且可由此mpd构造的最大片段位置k'是产生sast(k')的最大值且同时小于ft+mup的片段位置。最新片段可比其它片段短。

在使用具有@duration或具有segmenttimeline.s@r="-1"的模板构造的情况下,根据iso/iec23009-1的dash的方法与hls和平稳流式传输方法相比可提供若干优点,例如

1.mpd并非必须在服务器装置上更新,只要片段构造可继续即可。只要客户端装置记录mpd的提取时间,客户端装置就可针对若干不同服务提前下载mpd(或将其保持在缓冲器中)。

2.并且,在多播环境中,mpd仅可分布一次或至少具有比每秒小得多的频率。

3.客户端装置具有精确指示下一片段在服务器装置上可用/公布的时间的信息。此准许较接近实况边缘操作,因为一旦片段变成可用客户端装置就请求所述片段。

4.客户端装置准确地下载,客户端装置便可进行第一片段的播出。客户端装置甚至可在片段的中部开始播出以实现较接近实况边缘操作。

5.客户端装置可使其播出与其它客户端装置同步。

6.服务器装置操作较简单,即,不需要专用服务器装置。

尽管存在这些潜在优点,较严格定时控制仍可产生可能需要更详细分析的一些问题。举例来说,在根据iso/iec23009-1的dash下,

1.服务器装置和客户端装置需要具有准确utc定时。不存在如何实施此操作的要求,但其仍需要在两方面全局准确的定时标准的实施。(尤其)存在以下选项:

a.网络时间协议(ntp):http://www.ntp.org

b.http时间协议(htp):http://www.clevervest.com/htp/

c.http时间同步(hts):http://netsecure.alcpress.com/htp/

d.全球定位系统(gps)

e.http日期标头

f.具有restfulapi的mpd中的直接信令

g.mpd中的直接信令

2.服务器装置可变为过载,因为客户端装置可在与片段可用性时间明确暴露相同的时间访问所述片段。

本发明旨在实现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)包。因此,经译码视频数据大体对应于基本视频流。类似地,音频数据对应于一或多个相应基本流。

例如itu-th.264/avc和即将到来的高效视频译码(hevc)标准等许多视频译码标准界定无误差位流的语法、语义和解码过程,所述无误差位流中的任一者符合特定简档或层级。视频译码标准通常并不指定编码器,但编码器具有保证所产生的位流对于解码器来说是适应标准的任务。在视频译码标准的上下文中,“简档”对应于算法、特征或工具及适用于其的约束的子集。举例来说,如通过h.264标准所定义,“简档”是通过h.264标准指定的整个位流语法的子集。“层级”对应于解码器资源消耗的限制,例如,举例来说,解码器存储器和计算,其涉及图片分辨率、位速率和块处理速率。可使用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像素的子宏块分区的限制。以此方式,解码器可确定解码器是否能够恰当地对位流进行解码。

在图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单元提供“网络友好”的视频表示,其处理例如视频电话、存储、广播或流式传输等应用。nal单元可分类为视频译码层(vcl)nal单元和非vclnal单元。vcl单元可含有核心压缩引擎,且可包含块、宏块和/或切片层级数据。其它nal单元可以为非vclnal单元。在一些实例中,一个时间例项中的经译码图片(通常呈现为初级经译码图片)可包含在访问单元中,所述访问单元可包含一或多个nal单元。

非vclnal单元可包含参数集nal单元和seinal单元等等。参数集可含有序列层级标头信息(在序列参数集(sps)中)和不频繁改变的图片层级标头信息(在图片参数集(pps)中)。对于参数集(例如,pps和sps),不频繁改变的信息不需要对于每一序列或图片重复,因此可改进译码效率。另外,使用参数集可实现重要标头信息的带外发射,从而避免需要用于错误恢复的冗余发射。在带外发射实例中,参数集nal单元可在与其它nal单元(例如seinal单元)不同的信道上发射。

补充增强信息(sei)可含有对于对来自vclnal单元的经译码图片样本进行解码不是必需的信息,但可辅助与解码、显示、错误恢复和其它目的有关的过程。非vclnal单元中可含有sei消息。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提供多媒体内容的表示中的每一者的数据,所述输出接口32可经由网络发射或存储媒体向服务器装置60发送所述数据。在图1的实例中,服务器装置60包含存储媒体62,其存储各种多媒体内容64,每一多媒体内容64包含相应的清单文件66和一或多个表示68a-68n(表示68)。在一些实例中,输出接口32还可向网络74直接发送数据。

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

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

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

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

另外或替代地,请求处理单元70可经配置以经由广播或多播协议(例如embms)递送媒体数据。内容准备装置20可以与所描述大体上相同的方式产生dash片段和/或子片段,但服务器装置60可使用embms或另一广播或多播网络传递协议递送这些片段或子片段。举例来说,请求处理单元70可经配置以从客户端装置40接收多播群组加入请求。也就是说,服务器装置60可向客户端装置(包含客户端装置40)通告与多播群组相关联的因特网协议(ip)地址,其与特定媒体内容(例如,实况事件的广播)相关联。客户端装置40又可提交加入所述多播群组的请求。此请求可遍及网络74(例如构成网络74的路由器)传播,使得致使所述路由器将去往与多播群组相关联的ip地址的业务导向预订的客户端装置(例如客户端装置40)。

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

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

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

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

另外或替代地,检索单元52可经配置以根据例如embms或ip多播等广播或多播网络协议接收数据。在此等实例中,检索单元52可提交加入与特定媒体内容相关联的多播网络群组的请求。在加入多播群组之后,检索单元52可在无发布到服务器装置60或内容准备装置20的进一步请求的情况下接收多播群组的数据。检索单元52可提交当不再需要多播群组的数据时离开多播群组的请求,例如停止重放或将信道改变到不同多播群组。

网络接口54可接收所选表示的片段的数据且向检索单元52提供所述数据,所述检索单元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中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为组合codec的一部分。包含视频编码器28、视频解码器48、音频编码器26、音频解码器46、囊封单元30、检索单元52和/或解封单元50的设备可包括集成电路、微处理器和/或无线通信装置,例如蜂窝式电话。

客户端装置40、服务器装置60和/或内容准备装置20可经配置以根据本发明的技术操作。出于实例的目的,本发明相对于客户端装置40和服务器装置60描述这些技术。然而,应理解,内容准备装置20可经配置以代替服务器装置60执行这些技术。

大体来说,客户端装置40和服务器装置60可经配置以根据依据iso/iec23009-1的dash操作。然而,客户端装置40和服务器装置60可根据本发明的技术配置以实现客户端装置40与服务器装置60之间的准确定时。举例来说,服务器装置60可经配置以信令mpd中的额外数据(例如,清单文件66)以支持客户端装置40与服务器装置60之间的定时。在各种实例(其可单独使用或以任何组合使用)中,服务器装置60可:

1.信令关于ntp添加优选服务器的额外信息,

2.信令被推荐用于http时间协议的服务器装置,

3.基于特定请求信令以准确时间作出响应的http服务器装置。使用不同方法,和/或

4.直接在所述mpd中添加所述时间

因此,客户端装置40和服务器装置60可经配置以根据iso/iec23009-1操作,对其表3作出以下修改(其中注意使用带下划线的文本的添加):

iso/iec23009-1的表3

也就是说,iso/iec23009-1的表3可根据本发明的技术修改以包含在对应mpd(例如,清单文件66)中指定关于获得与如所使用的墙时钟时间的同步的所推荐方式的信息的额外utctiming属性。同样,例如图1的清单文件66等mpd可包含此utctiming属性。因此,囊封单元30可形成清单文件66以包含如上定义的utctiming属性,服务器装置60可将包含utctiming属性的清单文件66提供到客户端装置40,且客户端装置40和服务器装置60可使用utctiming属性来协调可如何获得墙时钟时间。

iso/iec23009-1的表3还可经修改以包含在下文中注意到的带下划线的文本中的添加:

即,iso/iec23009-1可经修改以包含要素‘<xs:elementname=“utctiming”type=“descriptortype”minoccurs=“0”maxoccurs=“unbounded”/>’。

此外,iso/iec23009-1可经修改以包含以下部分:

5.8.4.10utc定时描述符

对于要素utctiming,媒体呈现作者提供关于客户端可如何合适地获得关于媒体呈现如何与墙时钟时间同步的准确定时的额外信息。可由媒体呈现作者指定多个方案,且推荐客户端使用所述排序作为偏好。然而,客户端可选择任何方法,可能必须应对减小的准确性。客户端还可选择多个方法以便增加可靠度和/或准确性。

5.8.5.xdashutc定时方案

dash界定关于如何获得关于用于媒体呈现的定时同步的额外信息的若干方法。以下表x展示不同定时方法。

表x—不同utc定时方法

以下mpd表示根据对iso/iec23009-1的上述添加实施的mpd的实例:

<mpdavailabilitystarttime="2011-12-25t12:30:00"

minimumupdateperiod="30s"

suggestedpresentationdelay="15s"

minbuffertime="5s"/>

<baseurl>http://www.example.com/</baseurl>

<utctimingschemeiduri="urn:mpeg:dash:utc:ntp:2012"

value="time.nist.gov"/>

<utctimingschemeiduri="urn:mpeg:dash:utc:htp:2012"

value="http://www.example.comhttp://www.example1.com"/>

<utctimingschemeiduri="urn:mpeg:dash:utc:http-head:2012"

value="http://www.example.comhttp://www.example1.com"/>

<periodstart="pt0s"/>

...

</period>

<periodstart="pt0.10s>

...

<segmenttemplatetimescale="48000"startnumber="22"

presentationtimeoffset="2016000"duration="96000"

initialization="audio/fr/init.mp4a"media="audio/fr/$number$.mp4"/>

...

</period>

以此方式,来自上文的utc定时中指定的方法中的任一者可用于使时间与utc(例如墙时钟时间)同步。

更具体地说,在图1的实例中,客户端装置40包含时钟56。时钟56表示本地时钟的实例。根据本发明的技术,客户端装置40(和特定来说检索单元52)可确定媒体内容的片段将可用的墙时钟时间。此外,客户端装置40可使用本发明的技术使时钟56同步。也就是说,清单文件66(例如,mpd文件)可包含指示客户端装置(例如客户端装置40)借以使本地时钟与墙时钟时间(例如utc时间)同步的同步方法的信息。客户端装置40可检索清单文件66且从清单文件66确定同步方法。清单文件66的信息可进一步指示客户端装置40可从其检索准确的墙时钟时间的服务器的一或多个网络地址。因此,客户端装置40可使用同步方法(例如,基于网络的时间同步协议,比如ntp、htp或http)向所述服务器中的一或多者请求时间。检索单元52可随后当如时钟56所指示的当前时间处于用于所述片段的清单文件66中所指示的墙时钟时间或在所述墙时钟时间之后时请求片段。

在特定环境中,内容递送网络(cdn)(图1中未图示)可经配置以致使客户端装置不能确切地在片段变为可用时访问所述片段,或cdn可经配置以致使仅客户端装置的子集确切地在片段可用性时间访问所述片段。服务器装置60可对应于cdn的服务器装置。此问题的原因可为,一些客户端填入边缘高速缓冲存储器(即,其请求路由到源服务器),而其它客户端故意延迟以便服务于那些专门来自高速缓冲存储器的内容。在其它实例中,cdn可将例如尝试较接近实况边缘操作的特定客户端装置区分优先级,且可将其它客户端装置向下区分优先级。

在另外其它实例中,cdn可允许以区分优先级的方式访问特定表示,使得客户端装置之间请求的散布还可取决于所选择的表示。在高层级处,可在iso/iec23009-1中实施以下方面以支持散布所述请求:

●将信号添加到mpd以起始针对片段的请求的散布。

○客户端装置基于某一唯一id(例如,正设定的mac地址或ip地址或特定cookie,或可能也基于请求的任何其它唯一识别符)而随机指派到某一类型的接收器。所述id还可包含用于将特定客户端区分优先级的手段。

○基于此id,客户端可在可用性开始时间或在一些延迟的情况下调度针对片段的请求。所述延迟为从某一分布提取的随机变量

○所述分布可均一地分布在某一时间间隔上,或可为任何其它分布。

●还可针对每一表示添加所述信号,因为举例来说可存在一些表示可被更快访问的偏好。

囊封单元30可形成nal单元,所述nal单元包括识别nal所属的程序的标头,以及有效负载,例如音频数据、视频数据或描述nal单元对应于的传递或程序流的数据。举例来说,在h.264/avc中,nal单元包含1-字节标头和变化大小的有效负载。在其有效负载中包含视频数据的nal单元可包括各种粒度水平的视频数据。举例来说,nal单元可包括视频数据块、多个块、视频数据的切片,或视频数据的整个图片。囊封单元30可从视频编码器28接收基本流的pes包的形式的经编码的视频数据。囊封单元30可使每一基本流与对应程序相关联。

囊封单元30还可汇编来自多个nal单元的访问单元。大体来说,访问单元可包括用于表示视频数据的帧以及对应于所述帧的音频数据(当此些音频数据可用时)的一或多个nal单元。访问单元大体包含针对一个输出时间例项的所有nal单元,例如针对一个时间例项的所有音频和视频数据。举例来说,如果每一视图具有20帧/秒(fps)的帧速率,那么每一时间例项可对应于0.05秒的时间间隔。在此时间间隔期间,用于相同访问单元的所有视图的特定帧(相同时间例项)可同时渲染。在一个实例中,访问单元可包括一个时间例项中的经译码图片,其可呈现为初级经译码图片。因此,访问单元可包括共同时间例项的所有音频和视频帧,例如对应于时间x的所有视图。本发明还将特定视图的经编码图片称为“视图分量”。也就是说,视图分量可包括在特定时间针对特定视图的经编码图片(或帧)。因此,访问单元可被定义为包括共同时间例项的所有视图分量。访问单元的解码次序不需要必定与输出或显示次序相同。

媒体呈现可包含媒体呈现描述(mpd),其可含有不同替代表示(例如,具有不同质量的视频服务)的描述,且所述描述可包含例如编解码器信息、简档值和层级值。mpd为例如清单文件66等清单文件的一个实例。客户端装置40可检索媒体呈现的mpd以确定如何访问各种呈现的电影片段。电影片段可位于视频文件的电影片段框(moof框)中。

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

在囊封单元30已基于所接收数据将nal单元和/或访问单元汇编到视频文件中之后,囊封单元30将视频文件传递到输出接口32以用于输出。在一些实例中,囊封单元30可将视频文件存储在本地,或经由输出接口32将视频文件发送到远程服务器,而非将视频文件直接发送到客户端装置40。输出接口32可包括(例如)发射器、收发器、用于将数据写入到计算机可读媒体的装置,例如光盘驱动器、磁性媒体驱动器(例如,软盘驱动器)、通用串行总线(usb)端口、网络接口,或其它输出接口。输出接口32将视频文件输出到计算机可读媒体34,例如发射信号、磁性媒体、光学媒体、存储器、快闪驱动器,或其它计算机可读媒体。

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

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

mpd104可包括与表示110-120分开的数据结构。mpd104可对应于图1的清单文件66。同样,表示110-120可对应于图1的表示68。大体来说,mpd104可包含大体描述表示110-120的特性的数据,例如译码和渲染特性、自适应集合、mpd104所对应的简档、文本类型信息、相机角度信息、分级信息、特技模式信息(例如,指示包含时间子序列的表示的信息)和/或用于检索遥远周期(例如,用于在重放期间向媒体内容中插入定向广告)的信息。根据本发明的技术,mpd104可包含utctiming信息,如上文相对于图1所论述。

标头数据112当存在时可描述片段114的特性,例如随机访问点(rap,也称为流访问点(sap))的时间位置、片段114的哪一者包含随机访问点、到片段114内的随机访问点的字节偏移、片段114的统一资源定位符(url),或片段114的其它方面。标头数据122当存在时可描述片段124的类似特性。另外或替代地,此些特性可完全包含在mpd104内。

片段114、124包含一或多个经译码视频样本,其中的每一者可包含视频数据的帧或切片。片段114的经译码视频样本中的每一者可具有类似特性,例如,高度、宽度和带宽要求。可由mpd104的数据描述此些特性,但图2的实例中未说明此些数据。mpd104可包含如3gpp规范描述的特性,并且添加了本发明中描述的所信令信息中的任一者或全部。

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

图3为说明包含可实施本发明的技术的各种装置的系统138的概念图。在此实例中,系统138包含源装置130、时间同步(synch)服务器装置132,以及包含客户端装置134a和客户端装置134b(客户端装置134)的多个客户端装置。这些装置经由网络136互连,网络136可对应于因特网。大体来说,源装置130可对应于图1的内容准备装置20与服务器装置60的任一者或组合,客户端装置134可包含大体类似于图1的客户端装置40的组件的组件,且网络136可对应于图1的网络74。归于时间同步服务器装置132的功能性可由源装置130执行,但出于论述的目的单独说明。

根据本发明的技术,源装置130可构造清单文件,例如媒体呈现描述(mpd),其指示客户端装置134可检索媒体内容的数据(例如片段)的墙时钟时间。mpd可进一步指示客户端装置134借以使相应本地时钟与墙时钟时间同步的同步方法。举例来说,源装置130可在mpd中提供时间同步服务器装置132的因特网协议(ip)地址或域名,连同同步方法的指示。以此方式,客户端装置134可使用所述同步方法向时间同步服务器装置132请求当前时间,以便使本地时钟与墙时钟时间同步。所述时间同步方法可包含(例如)网络时间协议(ntp)、精确时间协议(ptp)、超文本传送协议(http)时间协议(htp),或http本身。

如上文所解释,源装置130可将mpd提供到客户端装置134a、134b,所述mpd包含用于使客户端装置134a、134b的本地时钟与对应媒体呈现的墙时钟时间同步的所推荐方式的信息。iso/iec23009-1的表3(包含上文所论述的实例修改)表示可用于信令此些信息的实例要素utctiming。因此,客户端装置134a、134b可使用此信令信息与时间同步服务器装置132交互,以便使其相应本地时钟与墙时钟时间同步。另外,在一些实例中,源装置130可使其本地时钟与时间同步服务器装置132同步。

当使用http来使本地时钟同步时,客户端装置134可发送使服务器装置132时间上同步的httphead请求。所述httphead请求可符合rfc2616,其界定http/1.1。响应于httphead请求,时间同步服务器装置132可发送包含日期信息(例如日期和时间)的响应。或者,客户端装置可遵循rfc2616将httpget请求发送到时间同步服务器装置132。作为响应,时间同步服务器装置132可发送经良好格式化的时戳值,例如根据ntp或可扩展标记语言(xml)或根据ntp时戳或iso时间代码格式化的时戳值。

此外,或在替代方案中,源装置130可在mpd中信令不同客户端装置将在不同时间检索媒体数据的特定片段的指示。此可避免其中大量客户端装置在大体上相同时间检索相同片段的情境。举例来说,所述指示可致使客户端装置134a在与客户端装置134b不同的时间检索特定片段。因此,客户端装置134a可在如mpd中所指示的第一时间检索所述片段,且客户端装置134b可在再次如mpd中所指示的不同于第一时间的第二时间检索所述片段。特定来说,客户端装置134a、134b可在不同时间发布对于片段的请求。

尽管图3的实例中仅展示一个时间同步服务器装置132,但应理解,可提供多个时间同步服务器装置,且源装置130可指示mpd中时间同步服务器装置中的每一者的地址。

时间同步服务器装置132可配置为ntp服务器。根据ntp,时间同步服务器装置132可表示参考时钟或以通信方式耦合到参考时钟的较低层数时钟。客户端装置134a、134b可经配置以将请求发送到时间同步服务器装置132和额外时间同步服务器装置;ntp客户端可(例如)将请求发送到三个不同ntp服务器。根据ntp,客户端装置134a、134b可确定请求发送到时间同步服务器装置132的时戳、所述请求的接收的时戳、来自时间同步服务器装置132的响应包响应于所述请求而发送的时戳,以及接收到所述响应包的时戳。客户端装置134a、134b可使用这些时戳来确定实际时间且相应地调整其内部时钟。在一些实例中,客户端装置134a、134b可周期性地重复ntp程序以再调整其内部时钟,以便阻止或抵消时间滑移。

另外或替代地,时间同步服务器装置132可经配置为http服务器。根据htp,时间同步服务器装置132可在http包标头中提供日期和时间信息。特定来说,客户端装置134a、134b可接收来自时间同步服务器装置132和/或一或多个额外http服务器的包。客户端装置134a、134b可计算从包含时间同步服务器装置132的一或多个时间同步服务器装置接收的时间的平均值,以导出当前时间(可能不包括来自时间同步服务器装置的特定所接收时间,例如所有接收到的时间的平均值的一个标准偏差之外的时间)。客户端装置134a、134b还可添加执行平均值和标准偏差的计算所需的时间。客户端装置134a、134b可随后根据所计算的时间调整其内部时钟。

在一些实例中,时间同步服务器装置132和源装置130可功能上集成到相同装置中。举例来说,响应于对于mpd的请求,源装置130可发送mpd以及经良好格式化的时戳,例如ntp或xml时戳。或者,时间同步服务器装置132可与源装置130分开提供(如图3的实例中示出),但源装置130还可例如通过提供经良好格式化的时戳值和/或通过充当用于时间同步协议(例如ntp、htp、http或其它此些协议)的服务器而充当时间同步服务器装置。同样,与源装置130分开的时间同步服务器装置132可经配置以响应于httpget请求而提供经良好格式化的时戳,例如ntp或xml时戳。举例来说,客户端装置134a、134b可发布针对特定url的httpget请求,且作为响应,时间同步服务器装置132可发送例如根据ntp或xml格式化的经良好格式化的时戳。

以此方式,客户端装置134a、134b表示用于接收用于媒体数据的流式传输的信息的客户端装置的实例,包含时钟和一或多个处理器,所述一或多个处理器经配置以:接收用于媒体内容的媒体呈现描述(mpd),其中所述mpd包含指示所述客户端装置可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所述数据指示同步方法,借助所述同步方法,所述客户端装置将使墙时钟时间与所述时钟同步;使用mpd所指示的方法使时钟与墙时钟时间同步;且使用所述经同步时钟向所述源装置请求媒体内容的数据。mpd可包含指示客户端装置134a(例如)将在第一时间检索媒体内容的片段且客户端装置134b(在此实例中)将在不同于所述第一时间的第二时间检索所述片段的数据。

同样,源装置130表示用于信令用于媒体数据的流式传输的信息的源装置的实例,包含一或多个处理器,所述一或多个处理器经配置以:产生用于媒体内容的媒体呈现描述(mpd)的数据,其中所述mpd包含指示客户端装置(例如,客户端装置134a、134b中的一者)可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所所产生的数据指示同步方法,借助所述同步方法,所述客户端装置将使墙时钟时间与客户端装置的时钟同步且将mpd发送到客户端装置。

图4为说明使客户端装置的本地时钟与墙时钟时间同步且使用所述经同步时钟检索片段的实例方法的流程图。图4的方法相对于图3的源装置130、客户端装置134a和时间同步服务器装置132而描述。然而,应理解,其它装置(例如,图1的客户端装置40、服务器装置60和/或内容准备装置20,和/或图3的客户端装置134b)可经配置以执行此或大体上类似的方法。此外,图4的方法的特定步骤可以替代次序或并行执行,且可由其它装置执行(例如,归于时间同步服务器装置132的步骤可由源装置130执行)。

初始地,源装置130可产生用于媒体内容(例如,媒体呈现)的媒体呈现描述(mpd),其中mpd包含指示时间同步信息的信息(150)。举例来说,源装置130可包含mpd中的指示同步方法(例如,ntp、htp或http)和用于一或多个时间同步服务器(例如时间同步服务器装置132)的地址的信息。所述时间同步信息可对应于上文相对于iso/iec23009-1的表3的经修改版本描述的utctiming要素。此外,mpd可通告媒体内容的片段将可用于恢复的墙时钟时间。在一些实例中,这些墙时钟时间可针对不同客户端装置而不同。举例来说,一片段可在第一时间针对客户端装置134a可用,但在第二不同时间针对客户端装置134b可用。也就是说,mpd可指示客户端装置134a可检索所述片段的第一时间和客户端装置134b可检索所述片段的第二不同时间。

客户端装置134a可随后请求媒体内容的mpd(152)。大体来说,客户端装置134a可请求媒体内容的清单文件。mpd是清单文件的一个实例,但在其它实例中可使用其它类型的清单文件。源装置130可接收所述对于mpd的请求(154),且随后响应于所述请求将mpd发送到客户端装置134a(156)。

客户端装置134a可使用mpd确定时间同步方法(158)。举例来说,客户端装置134a可使用ntp、htp、http或使用mpd的另一时间同步方法确定是否使本地时钟同步。客户端装置134a还可依据mpd确定时间同步服务器装置(例如时间同步服务器装置132)的地址。客户端装置134a可随后向时间同步服务器装置132请求时间(160)。时间同步服务器装置132可接收所述请求(162),且响应于所述请求,将当前时间的指示发送到客户端装置134a(164)。客户端装置134a可随后使其本地时钟与接收到的时间同步(166)。举例来说,客户端装置134a可直接复位其本地时钟的时间,或可以更快或更慢速率运行本地时钟以到达所指示时间。在一些实例中,客户端装置134a可向多个不同时间同步服务器请求时间,且合并从这些服务器接收的时间(例如,经由求平均)以确定实际当前时间,并与此所确定的时间而非特定服务器所指示的时间同步。此外,客户端装置134a可计算处理时间,且将这些处理时间与复位本地时钟时的所指示时间相加。

复位本地时钟之后,客户端装置134a可确定将可从mpd获得媒体内容的片段的墙时钟时间。客户端装置134a可随后在mpd中所指示的墙时钟时间请求片段,即mpd指示所述片段可用于恢复的时间(168)。客户端装置134a可形成对于所述片段或其部分的httpget或部分get请求。源装置130可接收对于所述片段的请求(170),且响应于所述请求将所请求的片段(或其部分)发送到客户端装置134a(172)。在接收所述片段之后,客户端装置134a可解码和渲染所述片段的媒体数据(174)。在解码和渲染之前,客户端装置134a可缓冲接收到的片段,直至所述片段的数据准备好被解码和呈现为止。

以此方式,图4表示用于接收用于媒体数据的流式传输的信息的方法的实例,所述方法包含:由客户端装置接收用于媒体内容的媒体呈现描述(mpd),其中所述mpd包含指示客户端装置可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所述数据指示同步方法,借助所述同步方法,客户端装置将使墙时钟时间与客户端装置的时钟同步;使用mpd所指示的方法使客户端装置的时钟与墙时钟时间同步;以及使用经同步时钟向源装置请求媒体内容的数据。

另外,图4表示信令用于媒体数据的流式传输的信息的方法的实例,所述方法包括:产生用于媒体内容的媒体呈现描述(mpd)的数据,其中所述mpd包含指示客户端装置可从源装置检索媒体内容的数据的墙时钟时间的数据,且其中所产生的数据指示同步方法,借助所述同步方法,客户端装置将使墙时钟时间与客户端装置的时钟同步;以及将mpd发送到客户端装置。

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

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

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

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

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

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