用于分组网络上的流媒体的按需自适应比特率管理的制作方法

文档序号:7991479阅读:254来源:国知局
用于分组网络上的流媒体的按需自适应比特率管理的制作方法
【专利摘要】一种用于获取要通过媒体网络被传送到终端的媒体数据并从该终端接收接收机报告以及使用来自接收机报告的信息估计网络状况的系统和方法。根据媒体网络是否拥塞来确定数据路径,其中,如果媒体网络是拥塞的,则数据路径是压缩数据路径,或者如果媒体网络是不拥塞的,则数据路径是直通数据路径;并且通过所确定的数据路径来提供媒体数据。
【专利说明】用于分组网络上的流媒体的按需自适应比特率管理
[0001]相关申请的交叉引用
本申请要求通过引用结合到本文中的2011年6月10日提交的美国临时申请N0.61/495, 949 “On-demand Adaptive Bitrate Management for Streaming Media overPacket Networks” 的权益。
【背景技术】
[0002]对于分组网络上的流媒体而言,速率控制是必需的。在通过容量受限的共享链路(比如通过蜂窝网络)来输送类似于多媒体这样的带宽密集型内容方面的挑战是通过用比特率(bitrate)管理器来调整比特率和媒体编码方案而对网络状况(condition)的变化进行快速响应以优化用户的观看和收听体验。特别地,当通过不能提供必要吞吐量的连接来传输媒体流时,会出现一些不期望效果。例如,网络缓冲器可溢出(overflow),导致引起乱码(garbled)视频或音频重放(playback)的分组丢失,或者媒体播放器缓冲器可下溢(underflow),导致重放停顿(stall)。因此,常常将媒体压缩以适应减小的连接带宽。
[0003]传统比特率管理器改变每个视频帧,以使得编码过程的输出适合于可用于传输的带宽。在此类系统中,由“压缩”数据路径来处理所有媒体帧。由于视频编码的有状态(stateful)性质而需要压缩数据路径。也就是说,为了将输出帧编码,无论比特率如何,编码器需要与正被使用的编解码器(codec)算法相对应的处理状态的活(live)历史。该方法存在的问题是需要连续处理视频(解码、再编码),即使不存在网络退化。
【专利附图】

【附图说明】
[0004]图1是示例性系统的框图。
[0005]图2是例示图1的示例性系统的实施例的框图。
[0006]图3是例示图2的示例性系统中的示例性通信流的功能图。
[0007]图4A例示指示其中将帧序列中的媒体数据从直通(pass-through)数据路径切换至压缩数据路径的示例性帧序列。
[0008]图4B例示指示其中将帧序列中的媒体数据从压缩数据路径切换至直通数据路径的示例性帧序列。
[0009]图5是表示用于选择对于媒体数据的数据路径的示例性方法的流程图。
【具体实施方式】
[0010]现在将对示例性实施例进行详细参考,并在附图中例示其示例。在尽可能的情况下,贯穿附图将使用相同的附图标记来指代相同或类似部件。
[0011]根据即时网络容量来调整流媒体会话的比特率能够是通过无线分组网络来输送流媒体所需的关键功能。自适应(adaptive)比特率管理是使得能够向终端的媒体播放器输送自调整(self-adjusting)流或伪流会话到的综合框架和方法。自适应比特率管理特别包括自适应比特率控制器,其主动监视自适应比特率管理器与终端之间的当前网络拥塞水平。如果网络是拥塞的,则自适应比特率管理器使用压缩数据路径来处理数据。经由压缩数据路径切换的媒体数据的比特率被降低至用以当在移动设备的媒体播放器上播放媒体时避免停顿的水平。
[0012]另外,如果网络是不拥塞的,则自适应比特率管理器经由直通数据路径来切换媒体数据。经由直通数据路径切换的媒体数据未被压缩,由此相对于经由压缩数据路径切换的数据而言要求系统资源的最小限度的使用。直通数据路径还因为其不在媒体流中产生任何知觉伪像(perceptual artifact)而是有利的。
[0013]能够将自适应比特率管理应用于能够被用于媒体传输并提供传输进度报告机制的所有媒体传输(或协议套(protocol suite))。传输进度报告能够作为整体被应用于多媒体会话或单独的多媒体流(音频、视频、文本等)。自适应比特率管理器能够包括这样的能力:向发送者提供将媒体时间信息映射到由接收器接收到的字节的方式,如在RTCP的情况下明示的那样或者如在通过ACK分组的TCP情况下暗示的那样。
[0014]图1是示例性系统的框图。示例性系统100能够是通过网络传送数据分组的任何类型的系统。例如,示例性系统能够包括通过因特网访问来自内容服务器的流媒体数据的移动终端。示例性系统能够特别包括终端102、网关104、一个或多个网络106和110、自适应比特率管理器108以及一个或多个内容服务器112-114。
[0015]终端102是硬件部件,其包括允许终端102传送和接收与流媒体相对应的分组的软件应用。终端102提供显示器和一个或多个软件应用,诸如媒体播放器,以便向终端102的用户显示流媒体。此外,终端102具有从因特网请求和接收诸如流媒体的数据分组之类的数据分组的能力。例如,终端102能够用向内容服务器112-114发送请求数据以用于根据网页的URL获取其特定文件或对象数据,并且网页的内容服务器能够查询数据库中的对象数据并将相应的响应数据发送到终端102。在一些实施例中,可通过自适应比特率管理器108来路由响应数据。
[0016]尽管终端102能够是有线终端,但一些实施例可优选使用移动终端,因为移动终端更可能在将更多地受益于自适应比特率管理器的网络中。该网络连接与有线网络连接相比趋向于不那么稳定,这是因为比如移动终端的位置变化,在其中移动终端与网络之间的数据速率传输能够波动,且一些情况下这种波动相当剧烈。
[0017]网关104是将在一类型的网络中提供的格式化数据转换成另一类型的网络所需的特定格式的设备。网关104例如可以是服务器、路由器、防火墙服务器、主机或代理服务器。网关104具有这样的能力:将从终端102接收到的信号变换成网络106能够理解的信号,且反之亦然。网关104可以能够处理音频、视频以及T.120单独或以任何组合形式的传输,并且能够全双工媒体转换(translation)。
[0018]网络106和110能够包括广域网(WAN)、局域网(LAN)或适合于诸如因特网通信这样的分组型通信的无线网络的任何组合。此外,网络106和110能够包括用于在将分组传送到其预定目的地之前存储该分组的缓冲器。
[0019]自适应比特率管理器108是提供网关104与内容服务器112-114之间的通信的服务器。自适应比特率管理器108能够通过根据自适应比特率管理器108与终端102之间的连接,即媒体网络,来调整流媒体比特率,从而优化性能。自适应比特率管理器108包括压缩路径和直通路径两者。当网络106拥塞时,使用压缩路径。自适应比特率管理器108如何确定网络106是否拥塞在以下会详细论述。否则,直通数据路径被用来在不压缩的情况下传输接收到的媒体。在一些实施例中,被提供给直通数据路径的数据可经受无损压缩。例如,可应用无损压缩来将媒体流调整至一重放速率。以下会详细论述压缩路径和直通路径。
[0020]自适应比特率管理器108能够具有一个或多个处理器和用于存储程序指令的至少一个存储器。处理器能够是单个或多个微处理器、现场可编程门阵列(FPGA)或能够执行特定指令集的数字信号处理器(DSP)。能够将计算机可读指令存储在有形非瞬时性计算机可读介质上,诸如软盘、硬盘、CD-ROM (压缩盘-只读存储器)以及MO (磁光盘)、DVD-R0M (数字多功能盘-只读存储器)、DVD RAM (数字多功能盘-随机存取存储器)或半导体存储器。备选地,能够用硬件部件或硬件与软件的组合来实现所述方法,例如,比如ASIC、专用计算机或通用计算机。
[0021]内容服务器112-114是这样的服务器:其从终端102接收请求数据,相应地处理该请求数据并在一些实施例中通过自适应比特率管理器108向终端102返回响应数据。例如,内容服务器112-114能够是web服务器、企业服务器或任何其他类型的服务器。内容服务器112-114能够是负责从终端102接受请求(例如,HTTP、RTSP或能够发起媒体会话的其他协议)并用流媒体来服务终端102的计算机或计算机程序。
[0022]图2是例示图1的示例性系统的实施例的框图。终端102可特别包括媒体播放器202和缓冲器204。自适应比特率管理器108能够特别地包括自适应比特率控制器206、缓冲器208、压缩数据路径210、媒体分组化(packetization)模块212、直通数据路径214以及媒体去分组化(de-packetization)模块216。
[0023]媒体播放器202是用于播放包括视频和/或音频媒体文件的多媒体文件(诸如流媒体)的计算机软件。媒体播放器202的此类流行示例能够包括Microsoft Windows媒体播放器、Apple Quicktime播放器、RealOne播放器以及用于web嵌入式视频的Adobe Flash插件。在一些实施例中,媒体播放器202使用编解码器将流视频或音频解压缩并将其在终端102的显示器上重放。能够将媒体播放器202用作独立应用或嵌入网页中以创建与HTML内容相交互的视频应用。此外,媒体播放器202能够以媒体接收器报告的形式向自适应比特率管理器108提供关于媒体接收的反馈。媒体接收器报告能够包括关于用于RTP流会话的RTCP分组的信息以及关于用于伪流会话的TCP ACK的信息。
[0024]缓冲器204 (也称为终端缓冲器204)是在将多媒体分组提供给媒体播放器202之前临时存储该多媒体分组的软件程序和/或硬件设备。在一些实施例中,缓冲器204经由网络106从自适应比特率管理器108接收多媒体分组。在一些实施例中,缓冲器204从除自适应比特率管理器108之外的设备接收多媒体分组。在接收多媒体分组(或者媒体剪辑(media clip)的部分,如果是伪流的话)之后,缓冲器204能够将存储的多媒体分组提供给媒体播放器202。尽管图2例示终端缓冲器204和媒体播放器202是分立部件,但本领域技术人员将领会到终端缓冲器204能够是媒体播放器202的一部分。此外,尽管图2仅例示单个缓冲器,但本领域技术人员将领会到能够存在多个缓冲器,例如用于音频媒体分组的一个或多个缓冲器和用于视频媒体分组的一个或多个缓冲器。
[0025]直通数据路径214是将媒体去分组化模块216耦合到媒体分组化模块212的传输通道。被切换到直通数据路径214的媒体数据在不经受任何压缩的情况下被直接传递至媒体分组化模块212。可将媒体数据从媒体分组化模块212切换到直通数据路径214。在一些实施例中,可将媒体数据从高速缓存器(未示出)切换到直通数据路径214。
[0026]另外,在未示出的一些实施例中,当未检测到网络拥塞时,可将媒体数据直接从缓冲器208传输至直通数据路径214,并且然后传送到终端102。在本实施例中,当不存在网络拥塞时,可将自适应比特率管理器108配置成使媒体数据绕过(bypass)媒体去分组化模块216和媒体分组化模块212。但是一旦检测到网络拥塞,就可将自适应比特率管理器108配置成通过媒体去分组化模块216和媒体分组化模块212来提供媒体数据。
[0027]压缩数据路径210包括音频解码器218、视频解码器220以及可变比特率编码器222。当媒体数据的比特率高于网络106的可用带宽时,选择压缩数据路径210。压缩数据路径210改变媒体数据的比特率,以使得其与由自适应比特率控制器206提供的最佳会话比特率匹配。压缩数据路径210被配置成将媒体数据以最佳会话比特率提供给媒体分组化模块212。可将媒体数据从媒体去分组化模块216切换到压缩数据路径210。另外,在一些实施例中,可将媒体数据从高速缓存器(未示出)切换至压缩数据路径210。
[0028]自适应比特率控制器206是从终端102周期性地接收诸如RTCP接收器报告或TCPACK之类的媒体接收器报告的软件程序和/或硬件设备。自适应比特率控制器206被配置成控制是经由直通数据路径214还是压缩数据路径210来切换数据。在自适应比特率控制器206进行路径确定之后,其被配置成指令媒体去分组化模块216将媒体数据切换至适当的数据路径。如下面详细地论述的,自适应比特率控制器206被配置成计算可在路径确定过程中使用的一个或多个网络状态估计量(estimator)。
[0029]自适应比特率控制器206被配置成提供要在下一时段期间用于对待发送给终端102的多媒体数据进行编码的最佳会话比特率。如果自适应比特率控制器206确定应经由压缩数据路径210来切换媒体数据,则将自适应比特率控制器206配置成提供最佳会话比特率和编码参数以供在压缩数据路径210中使用。在一些实施例中,自适应比特率控制器206包括用于存储当前和先前媒体接收器报告的缓冲器。为了计算最佳会话比特率,自适应比特率控制器206使用一个或多个网络状态估计量以便估计流媒体网络的状态并计算要在下一报告间隔中使用的最佳会话比特率。例如,这些网络状态估计量能够估计媒体渡越时间(time in transit:MTT)、在终端102处接收到的比特率、往返时间估计(RTTE)以及分组丢失计数。自适应比特率控制器206能够使用估计量的历史和统计来实现不同的控制算法以计算最佳会话比特率。
[0030]网络状态估计量能够提供用于估计在任何时间点网络有多拥塞的信息。如下面参考图3所论述的,网络状态估计量可被自适应比特率控制器206用来确定是应经由压缩数据路径210还是直通数据路径214来切换媒体数据。能够使用用于感测网络拥塞的其他方法来判定何时在这些数据路径之间进行切换。在一些实施例中,还可将自适应比特率控制器206配置成在确定将选择哪个数据路径时考虑网络估计量随时间推移的变化。
[0031]缓冲器208是在将媒体数据提供给媒体去分组化模块216之前临时存储该媒体数据的软件程序和/或硬件设备。在一些实施例中,缓冲器208经由网络110从一个或多个内容服务器112-114接收媒体数据。在一些实施例中,缓冲器208从除内容服务器112-114之外的设备接收媒体数据。在一些实施例中,缓冲器208能够包括多路分配器(未示出)以在将媒体中继到可变比特率编码器222之前分离音频和视频轨道(track)。
[0032]多媒体去分组化模块216是从缓冲器208接收媒体数据的软件程序和/或硬件设备。媒体去分组化模块216被配置成将与以分组形式被接收到的媒体数据相关联的分组以适当顺序聚合。媒体去分组化模块216被配置成根据从自适应比特率控制器206接收到的控制指令将媒体数据输出到压缩数据路径210或直通数据路径214。在一些实施例中,媒体去分组化模块216被配置成监视媒体数据的帧类型。并且接收将媒体数据切换至不同的数据路径的命令之后,在关键帧(例如,帧内编码帧(Intra Frame))自动切换媒体数据,如以下详细论述的那样。
[0033]可变比特率编码器222是从自适应比特率控制器206接收最佳会话比特率数据、编码参数或两者并向媒体分组化模块212提供被以与由自适应比特率控制器206提供的最佳会话比特率相匹配的比特率进行编码的音频和/或视频数据的软件程序和/或硬件设备。可变比特率编码器能够特别地包括比特率分离器(splitter) 224、音频编码器226、视频编码8以及对于一些实施例而言还包括巾贞丢弃器(dropper) 230。
[0034]比特率分离器224是从自适应比特率控制器206接收最佳会话比特率数据并分配当在下一间隔期间对音频和视频媒体数据进行编码时要被使用的最佳比特率的软件程序和/或硬件设备。该分配使得用于所有轨道的比特率的总和在被组合时能够基本上等于由自适应比特率控制器206所指定的最佳会话比特率。例如,该分配可基于预定分配、用户偏好、最佳性能数据、相比于另一数据类型而言为一数据类型赋予特权(privileging)、要提供的音频和视频数据的量和/或上述各项的任何组合。例如,比特率分离器224可以如下方式对音频质量赋予特权:如果指定了减小的比特率,则比特率分离器224能够首先减小视频比特率并尽可能多地推迟减小音频比特率。
[0035]音频编码器226和视频编码器228是能够从比特率分离器224 (或直接地从自适应比特率控制器206)接收其各自的比特率分配并提供被编码成在下一报告间隔与其各自的比特率分配的比特率相匹配的输出(outgoing)媒体数据的软件程序和/或硬件设备。音频编码器226和视频编码器228都能够从缓冲器208接收其各自的媒体数据并根据来自比特率分离器224的其各自比特率分配来输出该媒体数据。在已针对音频和视频两者确定比特率之后,每个编码器的责任是在相应的媒体轨道中输送最大质量。例如,音频编码器226能够通过调整谱量化和截止频率来产生可变比特率。此外,视频编码器228能够例如通过调整离散余弦变换(DCT)系数量化或通过引入帧丢弃来产生可变比特率。在必要时,能够由帧丢弃器230来执行该帧丢弃。
[0036]帧丢弃器230是能够在确定期望比特率小于质量阈值之后被触发的软件程序和/或硬件设备。该阈值能够是编解码器相关的,并且表示在其以下较粗量化的使用会导致图像中的不可容忍伪像的比特率值。帧丢弃器230能够基于期望视频比特率和正在由视频编码器228产生的比特率来动态地确定帧丢弃率。为了补偿编码器输出端处的视频比特率的固有比特率波动,帧丢弃器230能够通过使用覆盖最近编码帧的字节大小历史的滑动窗口来动态地更新丢弃率。
[0037]媒体分组化模块212是从压缩数据路径210或直通数据路径214接收媒体数据并将此数据转换成分组格式以输送流会话的软件程序和/或硬件设备。媒体分组化模块212能够为将通过单独网络信道来传输的视频和音频数据创建单独的分组,或者在单个媒体流中将音频和视频组合。除载送音频和媒体数据之外,媒体分组还能够特别地包括用于标识内容类型的有效载荷型标识符、分组序列号、用于允许同步化和抖动(jitter)计算的时间戳以及输送监视数据。此类数据稍后能够在自适应比特率控制器206从终端102接收相应的媒体接收器报告时帮助自适应比特率控制器206确定由网络提供的服务质量。当将此媒体数据转换成分组格式时,媒体分组化216通过网络106的网络缓冲器232将媒体数据传送到终端102的终端缓冲器204。另外,自适应比特率管理器108将已发送媒体分组的历史保存在音频和视频轨道中。该历史数据能够特别地包括每个分组被发送的时间、序列号以及每个媒体分组的大小。
[0038]图3是例示图2的系统中的示例性通信流的功能图。出于解释该示例性实施例的目的,假设终端102已接收到所请求媒体数据分组的媒体数据中的至少一些。此外,假设媒体数据分组包括音频和视频媒体数据两者。在接收分组之后,媒体播放器202向自适应比特率管理器108传送(305)媒体接收器报告。
[0039]媒体接收器报告能够是例如RTCP接收器报告或者在伪流的情况下是TCP ACK。RTCP是用于提供对于RTP流的质量控制信息的协议,诸如由自适应比特率管理器108的媒体分组化216提供的传输。更具体地,RTCP能够在多媒体数据的输送和封装方面与自适应比特率管理器108的媒体分组化模块212合作。在一些实施例中,媒体播放器202周期性地传送RTCP接收器报告。RTCP接收器报告能够提供关于正在由媒体分组化216提供的服务质量的反馈。
[0040]用于因特网上的流媒体的最广泛使用的方法是由传输控制协议(TCP)载送的基于HTTP的伪流。TCP实现其自己的一般(非媒体特定)分组化协议。TCP在内部使用ACK来提供关于接收到的TCP分组的反馈并因此提供传输流控制。在伪流的情况下,使用TPC ACK分组来更新先前所述的关键网络估计量。
[0041]尽管使用TCP和RTP/RTCP作为示例性实施例来解释自适应比特率控制方法,但本领域技术人员会领会到这种自适应比特率控制方法可应用于实现具有排序和定时信息的媒体传输和具有关于接收到的分组的信息(覆盖排序、定时、丢失率等)的媒体传输反馈的功能的任何协议。
`[0042]此外,在一些流实施例中,媒体接收器报告能够是具有音频和视频报告数据两者的单个报告(当将音频和视频复用成单个流时),或者能够被分离成多个报告(例如,诸如在其中RTP在单独的流中载送音频和视频的RTCP情况下),例如,诸如用于音频报告数据的接收器报告和用于视频报告数据的另一接收器报告。媒体接收器报告数据能够特别地包括关于终端102处最近接收到的媒体分组的序列号的数据、在媒体接收器报告中报告的由终端102接收的最后分组的时间戳、从该报告发送的比特数、往返时间以及丢失分组的数目。
[0043]在接收一个或多个接收器报告之后,自适应比特率控制器206能够估计网络的状态以便确定是否在下一时段内更新会话比特率。自适应比特率控制器206能够将新接收的接收器报告保存在累积历史中并记录一个或多个分组被接收的时间。为了估计网络的状态,自适应比特率控制器206能够将来自接收到的媒体接收器报告的数据、由自适应比特率管理器108存储的先前接收到的接收器报告以及由自适应比特率管理器108存储的已发送媒体分组的历史进行组合。自适应比特率控制器206能够通过使用网络状态估计量针对流和伪流会话两者估计以下示例性数据:
?媒体渡越时间(MTT),被计算为最近被发送媒体分组的时间戳与由在接收器报告中报告的播放器接收到的最后媒体分组的时间戳之间的差。对于伪流会话,自适应比特率管理器108执行附加步骤以计算MTT。例如,自适应比特率管理器108保持发送到播放器的媒体剪辑中的序列号和时间戳的表格。当接收到ACK时,自适应比特率管理器108能够检索对应于ACK中的字节序列号的时间戳。使用该时间戳,自适应比特率管理器能够计算MTT ;
?接收到的比特率(“BRR”),被计算为:在当前和先前接收到的接收器报告之间接收到的比特,除以在这两个接收器报告之间经历的时间。通过对接收器报告中的序列号和存储于自适应比特率管理器108处的已发送字节的历史进行交叉参考来计算在接收器报告之间接收到的比特;
?往返时间估计(“RTTE”),其能够通过对存储于自适应比特率管理器108处的多个较低MTT值求平均来获得。例如,可以通过对用于该流媒体网络的所有存储MTT值之中最低的3个MTT值求平均来计算RTTE。此外,自适应比特率管理器108能够根据RTCP发送者报告内的数据来计算RTTE。尽管例示了这些示例性实施例,但能够使用任何方法来估计对于流媒体网络的往返时间;
?分组丢失计数(“PLC”),直接从媒体接收器报告捕捉。
[0044]自适应比特率控制器206能够使用这些一个或多个网络状态估计量来确定用于下一间隔的所估计的网络拥塞水平和会话比特率。如果网络具有可忽略或低水平的网络拥塞,则将自适应比特率控制器206配置成指令媒体去分组化模块216经由直通数据路径214来切换媒体数据。同样地,如果网络是拥塞的,则将自适应比特率控制器206配置成指令去分组化模块经由压缩数据路径210来切换媒体数据。
[0045]自适应比特率控制器206被配置成允许从下一关键帧开始在压缩数据路径210与直通数据路径214之间切换媒体数据,或者反之亦然。关键帧是在该处将解码器或编码器的状态重置的特定类型的媒体帧。该关键帧(帧内编码帧)是存储全图像的媒体帧。数据流中的其他帧可包括例如预测帧。预测帧存储 从一个帧到下一个发生的变化,因此大大地减少所存储的信息量。
[0046]在非关键帧(例如,预测帧)处将媒体数据切换至不同的数据路径可导致媒体数据的破坏。因此,自适应比特率控制器206被配置成监视原始媒体数据流(例如,从内容服务器112-114到达的)的帧类型。
[0047]备选地,媒体去分组化模块216或一些其他模块被配置成监视原始媒体流的帧类型。在接收到将媒体数据切换至不同数据路径的命令之后,媒体去分组化模块216在下一关键帧处自动地切换媒体数据。
[0048]图4A例示指示其中将媒体数据从直通数据路径214切换至压缩数据路径210的示例性帧序列。帧序列示出关键帧I1及其相关联的预测帧P2-P7以及关键帧I8及其相关联的预测帧匕-PM。自适应比特率控制器206在P4处检测到网络拥塞,然而,由于下一帧不是关键帧,所以直至I8之前不会经由压缩数据路径210来切换媒体数据。同样地,图4B例示指示其中将媒体数据从压缩数据路径210切换至直通数据路径214的示例性帧序列。自适应比特率控制器206在P4处检测到网络拥塞已清除,然而,由于下一帧不是关键帧,所以直至I8之前不会经由直通数据路径214来切换媒体数据。
[0049]返回参考图3,自适应比特率控制器206通过将一个或多个网络状态估计量与相应的状态阈值相比较来估计网络拥塞以及因此媒体路径选择。该状态阈值值间接地确定自适应比特率控制器206何时指令媒体去分组化模块(310)经由压缩数据路径210来切换媒体(315)或经由直通数据路径214来切换数据(320)。可由管理员来设定状态阈值的值。在一些实施例中,可由自适应比特率控制器206来自动地确定状态阈值的值。当与其相应的网络状态阈值相比较时,每个网络状态估计量都可用来确定经由哪个数据路径来切换媒体数据。例如,可将MTT与MTT状态阈值相比较,并且如果MTT在MTT状态阈值以下,则可将自适应比特率控制器206配置成指令媒体去分组化模块216从下一关键帧开始经由直通数据路径214来切换要被传送到终端102的媒体数据。如果MTT在MTT状态阈值以上,则可将自适应比特率控制器206配置成指令媒体去分组化模块216从下一关键帧开始经由压缩数据路径210来切换媒体数据。类似地,RTTE、PLC以及BRR网络状态估计量具有各自的RTTE.BRR以及PLC状态阈值,其可用来确定是经由压缩数据路径210还是经由直通数据路径214来切换媒体。
[0050]在一些实施例中,自适应比特率控制器206在确定网络拥塞时考虑网络状态估计量如何随时间而变。例如,能够将自适应比特率控制器206配置成:如果MTT值已随时间推移而减小,则指令去分组化模块221将媒体数据从下一关键帧开始切换至直通数据路径214。类似地,能够将自适应比特率控制器206配置成:如果MTT值已随时间推移而增加,则指令去分组化模块221将媒体数据从下一关键帧开始切换至压缩数据路径226。
[0051]在一些实施例中,自适应比特率控制器206基于一个或多个网络状态估计量随时间推移的变化和一个或多个网络状态阈值而指令媒体去分组化模块216。例如,能够将自适应比特率控制器206配置成:如果MTT值已随时间推移而减小且MTT值在MTT状态阈值以下,则指令去分组化模块221从下一关键帧开始将媒体数据切换至直通数据路径214。类似地,能够将自适应比特率控制器206配置成:如果MTT值已随时间推移而增加且MTT值在MTT状态阈值以上,则指令去分组化模块221将媒体数据从下一关键帧开始切换至压缩数据路径226。
[0052]在一些实施例中,自适应比特率控制器206可在压缩数据路径210与直通数据路径214之间进行选择,无论媒体去分组化模块216从哪里接收媒体数据。例如,媒体去分组化模块216能够直接从诸如内容服务器112-114之类的HTTP服务器接收媒体。备选地,媒体去分组化模块216能够从高速缓存器读取媒体数据,其中,正被接收的媒体数据已被外部过程压缩。在这种情况下,可将自适应比特率管理器108配置成在最小的资源利用情况下经由直通数据路径214将已压缩媒体数据输送至媒体播放器。如果网络状况退化,则自适应比特率控制器206能够在适当的时间切换至压缩数据路径210以进一步降低媒体比特率并避免重放停顿。因此,可根据需要使用用来压缩视频的资源来抵消退化的网络状况。
[0053]当通过压缩数据路径210来切换数据时,可使用在例如美国专利N0.7,991,904、美国专利申请公开N0.2011/0283012、美国专利N0.7,987, 285或美国专利申请公开N0.2011/0283015中描述的方法对媒体数据进行编码,上述专利文献全部通过引用而被结合入本文。然后将已编码数据传递(325)至媒体分组化模块212,其将已编码数据转换成分组格式以输送流会话(330)。
[0054]在经由直通数据路径214来切换媒体数据之后,在没有任何压缩的情况下将媒体数据直接传递至媒体分组化模块212 (335)。媒体分组化模块212将媒体数据转换成分组格式以输送流会话(330)。
[0055]另外,在未示出的一些实施例中,当未检测到网络拥塞时,自适应比特率管理器可将媒体数据从缓冲器208传输至直通数据路径214,并且然后将该媒体数据传送到终端102。因此,当不存在网络拥塞时,媒体数据绕过媒体去分组化模块216和媒体分组化模块212。但是一旦检测到网络拥塞,自适应比特率管理器就被配置成通过媒体去分组化模块216和媒体分组化模块212来提供媒体数据。
[0056]图5是表示用于选择对于媒体数据的数据路径的示例性方法的流程图。参考图5,本领域技术人员将很容易领会到能够改变所示的规程以删除步骤或进一步包括附加步骤。针对本示例性方法假设接收器报告包括关于音频和视频媒体数据两者的数据。如果是伪流会话,则处理TCP ACK以获得关于媒体传输进度的信息。当两个类型都存在时,本领域技术人员将领会到接收器报告数据能够包括音频或视频数据。在初始开始步骤之后,自适应比特率管理器(例如,自适应比特率管理器108)获取(510)接收器报告数据,其能够包括一个或多个接收器报告。该接收器报告数据能够与在终端的媒体播放器处接收到的音频和视频媒体分组的质量和数量相关。接收器报告数据能够特别地包括由终端接收到的最后分组的序列号、对应于此类分组的时间戳、发送的比特数、往返时间以及在从自适应比特率管理器到终端的传输期间丢失的分组数目。能够通过从终端接收媒体接收器报告并通过使最后接收的媒体接收器报告的内容与存储于自适应比特率管理器处的媒体分组的历史互相关来获取接收器报告数据。
[0057]尽管RTP和RTCP是多媒体应用可直接访问的用户级协议,但TCP通常是以应用可不具有其内部状态的可见性的方式在内核空间(kernel space)中实现。为了克服这一点,能够实现简单内核级代理以生成应用级接收器报告并当在内核空间中接收到ACK分组时将其发送到自适应比特率管理器。
[0058]在获取接收器报告数据之后,自适应比特率管理器确定一个或多个网络状态估计量(520)。在一些实施例中,为了确定一个或多个网络状态估计量,自适应比特率管理器能够将来自从步骤505接收到的接收器报告数据的数据和由自适应比特率管理器存储的先前接收到的接收器报告数据组合。所确定的一个或多个网络状态估计量能够包括MTT、BRR、RTTE、PLC或其某个组合。在伪流会话中,要求额外步骤以计算MTT。自适应比特率管理器能够保持被发送到媒体播放器的媒体剪辑中的序列号和时间戳的表格。在接收到TCP ACK之后,自适应比特率管理器能够检索对应于ACK中的字节序列号的时间戳,并且然后计算MTT。
[0059]在步骤530,自适应比特率管理器估计网络是否是拥塞的。自适应比特率管理器通过将一个或多个网络状态估计量与相应的状态阈值相比较来估计网络拥塞。在一些实施例中,自适应比特率管理器还部分地基于一个或多个网络状态估计量随时间推移的变化来估计网络拥塞。
[0060]在步骤540中,自适应比特率管理器确定正确数据路径(540)。根据存在的网络拥塞的水平,自适应比特率管理器确定是应经由压缩数据路径(例如,压缩数据路径210)还是直通数据路径(例如,直通数据路径214 )来提供媒体数据。如果网络是拥塞的,则自适应比特率管理器指示应经由压缩数据路径来提供媒体数据。同样地,如果网络是不拥塞的,则自适应比特率管理器指示应经由直通数据路径来提供媒体数据。
[0061]在步骤550中,自适应比特率管理器将正确数据路径与媒体数据正被传递的当前数据路径相比较。如果正确数据路径等于当前数据路径,则不需要改变数据路径。自适应比特率管理器然后继续经由当前数据路径来发送媒体直至其不再与指示的数据路径匹配或者不存在要被传送到终端的附加媒体。
[0062]如果当前数据路径不同于正确数据路径,则在步骤560中,自适应比特率管理器确定正被传送的下一帧是否是关键帧。如果该帧不是关键帧,则自适应比特率管理器继续使用当前数据路径来发送媒体数据。如果下一帧是关键帧,则在步骤580中,自适应比特率管理器将当前数据路径设置为用于下一帧的正确数据路径,并且然后从关键帧开始使用新数据路径来发送媒体数据(步骤590)。
[0063]可将本文公开的方法实现为计算机程序产品,即在诸如在机器可读存储设备或在传播信号之类的信息载体中有形地实施以便由诸如可编程处理器、计算机或多个计算机之类的数据处理装置执行或控制这些数据处理装置的操作的计算机程序。计算机程序能够以包括编译或解释语言的任何形式的编程语言来编写,并且其能够以任何形式来部署,包括作为独立程序或作为模块、部件、子例程或适合于在计算环境中使用的其他单元。计算机程序能被部署成在一个计算机上或在一个站点处或跨多个站点分布并被通信网络互连的多个计算机上被执行。
[0064]在前述说明中,已参考特定示例性实施例描述了本公开。然而将显而易见的是,可在不脱离如在随后的权利要求中阐述的本公开的更宽精神和范围的情况下做出各种修改和变化。因此本说明和附图被认为是例示性而非限制性的。根据考虑本文公开的说明和实践,本公开的其他实施例对于本领域技术人员而言可显而易见。
【权利要求】
1.一种方法,包括: 获取要通过媒体网络被传送到终端的媒体数据; 从所述终端接收接收机报告; 使用来自接收机报告的信息来估计网络状况; 根据媒体网络是否拥塞来确定数据路径,其中,如果媒体网络是拥塞的,则数据路径是压缩数据路径,或者如果媒体网络是不拥塞的,则数据路径是直通数据路径;以及通过所确定的数据路径来提供媒体数据。
2.根据权利要求1所述的方法,其中,媒体数据包括关键帧,并且从该关键帧开始通过所确定的路径来提供媒体数据。
3.根据权利要求1所述的方法,还包括:使用一个接收机报告来确定网络状态估计量。
4.根据权利要求3所述的方法,其中,所述网络状态估计量是以下各项中之一: 媒体渡越时间; 接收到的比特率; 往返时间估计;以及 分组丢失计数。
5.根据权利要求3所述的方法,其中,使用来自接收机报告的信息来估计网络拥塞包括:将网络状态估计量与相应的状态阈值进行比较。
6.根据权利要求5所述的方法,其中,所述状态阈值由服务器自动确定。
7.一种存储指令的非瞬时性计算机可读介质,所述指令在被计算机执行时使得计算机执行方法,所述方法包括: 获取要通过媒体网络被传送到终端的媒体数据; 从所述终端接收接收机报告; 使用来自接收机报告的信息来估计网络状况; 根据媒体网络是否拥塞来确定数据路径,其中,如果媒体网络是拥塞的,则数据路径是压缩数据路径,或者如果媒体网络是不拥塞的,则数据路径是直通数据路径;以及通过所确定的数据路径来提供媒体数据。
8.根据权利要求7所述的非瞬时性计算机可读介质,其中,媒体数据包括关键帧,并且从该关键帧开始通过所确定的路径来提供媒体数据。
9.根据权利要求7所述的非瞬时性计算机可读介质,还包括指令,所述指令在被计算机执行时使得计算机执行所述方法,所述方法包括:使用一个接收机报告来确定网络状态估计量。
10.根据权利要求9所述的非瞬时性计算机可读介质,其中,所述网络状态估计量是以下各项中之一: 媒体渡越时间; 接收到的比特率; 往返时间估计;以及 分组丢失计数。
11.根据权利要求9所述的非瞬时性计算机可读介质,其中,使用来自接收机报告的信息来估计网络拥塞包括:将网络状态估计量与相应的状态阈值进行比较。
12.根据权利要求11所述的非瞬时性计算机可读介质,其中,所述状态阈值由服务器自动确定。
13.—种系统,包括: 自适应比特率管理器,被配置成: 获取要通过媒体网络被传送到具有媒体播放器的终端的媒体数据; 从所述终端接收接收机报告; 使用来自接收机报告的信息来估计网络拥塞; 根据媒体网络是否拥塞来确定数据路径,其中,如果媒体网络是拥塞的,则数据路径是压缩数据路径,或者如果媒体网络是不拥塞的,则数据路径是直通数据路径;以及 通过所确定的数据路径来提供媒体数据。
14.根据权利要求13所述的系统,其中,媒体数据包括关键帧,并且从该关键帧开始通过所确定的路径来提供媒体数据。
15.根据权利要求13所述的系统,其中,所述自适应比特率管理器还被配置成:使用一个接收机报告来确定网络状态估计量。
16.根据权利要求15所述的系统,其中,所述网络状态估计量是以下各项中之一: 媒体渡越时间; 接收到的比特率; 往返时间估计;以及` 分组丢失计数。
17.根据权利要求15所述的系统,其中,所述自适应比特率管理器被配置成:将网络状态估计量与相应的状态阈值进行比较以使用来自接收机报告的信息来估计网络拥塞。
18.根据权利要求17所述的系统,其中,所述自适应比特率管理器被配置成:自动确定状态阈值。
【文档编号】H04N21/2662GK103828324SQ201280038961
【公开日】2014年5月28日 申请日期:2012年6月8日 优先权日:2011年6月10日
【发明者】A.彭纳, F.库普曼斯, R.基德 申请人:茨特里克斯系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1