首页> 中国专利> 在带宽有限网络上的媒体速率变换

在带宽有限网络上的媒体速率变换

摘要

在主计算机上的速率变换管理器确定在网络带宽上是否存在限制并因此而控制所述流媒体内容的比特率。所述比特率通过从流媒体内容中排除视频帧类型然后一旦网络恢复将所排除的视频帧类型重新引回到流媒体内容来控制。

著录项

  • 公开/公告号CN1756369A

    专利类型发明专利

  • 公开/公告日2006-04-05

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200510119935.2

  • 发明设计人 G·维迪;J·A·戴维斯;

    申请日2005-07-29

  • 分类号H04N7/52(20060101);H04N7/26(20060101);H04L29/00(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人张政权

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 17:08:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):H04N7/52 变更前: 变更后: 登记生效日:20150430 申请日:20050729

    专利申请权、专利权的转移

  • 2010-06-09

    授权

    授权

  • 2007-08-29

    实质审查的生效

    实质审查的生效

  • 2006-04-05

    公开

    公开

说明书

技术领域

本发明通常涉及流媒体,尤其涉及基于网络带宽信息改变视频传输的比特速率。

背景技术

诸如音频、视频和/或文本媒体内容流的内容流正逐渐得到普及。术语“流”典型地用来表示由主机计算机通过网络提供给客户计算机(即,以多种传统计算设备的任何一种实现的媒体重放计算机设备,例如台式PC、笔记本或便携式计算机、手机或其它无线通信设备、个人数字助理(PDA)、游戏控制台、IP机顶盒、手持PC等)的代表媒体的数据,并且客户计算机在从主机接收流内容的同时进行显示,而不是等待要传送的整个“文件”。

当媒体内容“流”过网络时,其典型地以数据分组流动。然而,这通常不能保证数据分组以与发送顺序相同的顺序到达它们的目的地,或者甚至不能保证它们最终到达它们的目的地。此外,通常不能够保证数据分组从源到达目的所需的时间是特定的持续时间,也不能保证不同的数据分组所需的时间相同。

为了考虑在到客户计算机的数据传送中的这些变化,客户计算机典型地具有一个数据缓冲器。该缓冲器允许客户计算机消除在数据传送中的变化以便它们在内容重放期间对用户来说不会感觉到这种变化。然而,使用这种缓冲器的一个问题是不能够始终考虑到由网络拥塞所引起的网络带宽中的故障(例如,网络流量交叉、干扰、较差的无线接收)。如果在网络带宽中的故障持续几秒或更长,那么它们可能超过客户端缓冲器所能补偿的能力,这将对用户重放内容产生明显的不利影响。例如,网络带宽中的持续故障可能导致视频(例即,音频/视频)内容在客户端计算机上重放时产生中断和并且不能实时体验视频内容。

解决这种网络带宽问题的一个方法是降低流内容的大小(即,比特率)。用来降低流内容的比特率的某些当前方法涉及了产生并存储大量相同视频内容的复制。这样,用户或系统具有选择较低比特率版本的视频内容的选项,从而降低了网络带宽故障中断实时重复视频内容的可能性。另一种用来降低流内容的比特率的方法是执行“在运行中”进行比特率降低。

虽然这些方法可以降低实时视频重放的中断,但是它们具有不同的缺点。例如,在存储相同视频内容的不同比特率复制的方法中,选择视频内容的重放比特率通常发生在重放的开始,并且在重放期间通常是不可以改变的。从视频内容的一种比特率复制到另一种的变化需要中断重放并从内容的开始处重新开始播放。另一个缺点在于在主机设备上需要大量的存储控制来存储相同内容的多个复本。上面所提到的两种方法还附带有关处理器非常敏感的缺点。即,产生相同视频内容的不同比特率编码复本和“在运行中”执行比特率降低都是处理器非常敏感的。这种过程,典型地是在主机设备上执行的,并涉及将视频内容完全解码成非压缩或原始视频。这种完全解码是在对原始视频使用参数调整再压缩进行完全编码以产生更小的视频内容整体复制之后进行的。

因此,存在对于一种能够在内容重放期间使得网络带宽故障对于用户来说透明的传送流内容方式的需要。

发明内容

在主机计算机上的速率变换管理器确定在网络带宽中是否存在限制,并相应地控制流媒体内容的比特率。该比特率是通过从流媒体内容中排除视频帧的类型或类别,然后一旦网络恢复就重新将所排除的视频帧的类型或类别引入到视频内容中来控制的。

在一种实现方式中,主机计算机将视频内容(即,音频/视频)流注到重放设备,并从该重放设备接收缓冲器充满报告。当缓冲器报告指示在重放设备上的媒体缓冲器(即,音频缓冲器)用尽时,速率变换管理器就指示速率变换器开始选择性地从流视频内容中排除视频帧。可以逐步或立刻从流视频内容排除不同类型或类别的视频帧,这依赖于缓冲器用尽的程度。例如,某些增量视频帧可以在第一步中排除(例如,对于MPEG视频内容,首先排除B帧,如果缓冲器仍然被耗尽那么就随后排除P帧)。速率变换管理器持续监视缓冲器充满报告。在所有增量视频帧(例如,B和P增量帧)已经被排除之后,如果在重放设备上的缓冲器仍然耗尽,那么速率变换器还可以排除某些关键帧(例如,每隔“I”帧)。每排除某些类型的视频帧一次就降低了视频流的比特率,并增加了关键视频帧及时到达重放设备以维持对用户的实时重放体验的可能性。帧可以持久存留或备份在重放设备上以补充所排除的帧,从而维持满意的实时视频重放体验。由于音频内容不会从媒体流中丢弃,所以音频的重放是无损伤的体验。

一旦网络带宽限制减退,速率变换管理器控制将所排除的视频帧类型重新引入视频流。网络带宽通常的健康状态是通过将填充数据分组以不断增加的速率引入到媒体流中直到重放设备缓冲器再次开始耗尽,或在没有进一步耗尽缓冲器的情况下到达先前媒体流的比特率为止来测试的。如果在没有进一步耗尽缓冲器的情况下到达媒体流的先前比特率,那么就将最近排除的视频帧类型重新引入到视频流中。该过程继续直到在视频内容中的所有类型的视频帧再次开始流向重放设备。

附图简述

在所有的附图中使用相同的参考标记来指示相同的元件和特征。

图1显示了适合于将在网络上从主计算机设备流向重放计算机设备的媒体内容进行速率变换的典型环境。

图2显示了配置用来在网络上将媒体/视频内容流向重放设备,并对内容的视频成分进行速率变换的主机设备的典型实施例。

图3显示了称为一组照片(GOP)的视频帧的示例序列。

图4显示了当主设备在网络上发送流媒体内容到重放设备时,媒体缓冲器的填充百分比相对时间的典型视图。

图5显示了典型的GOP视频帧序列和如何通过速率变换来改变帧序列。

图6显示了典型的GOP视频帧序列和如何通过速率变换来改变帧序列。

图7显示了典型的GOP视频帧序列和如何通过速率变换来改变帧序列。

图8-10是显示用来速率变换在网络上从主计算机设备流向重放计算机设备的媒体内容的典型方法的流程图。

图11显示了适用于实现例如那些参考图1-10讨论的主计算机设备和重放计算机设备的典型计算环境。

详细描述

介绍

下面的讨论涉及到对流媒体内容提供“运行”中速率变换(即,比特率变换)以补偿网络带宽限制的系统和方法。不同类型的视频帧可以选择性地被排除在媒体流的视频部分之外以便维持不会由于临时的网络带宽问题而破坏的实时重放体验。当网络恢复时,所排除的视频帧类型可以重新引入到媒体流中。所公开系统和方法的优点包括很少因网络问题而中断并在网络带宽可用时维持更高的质量的视频重放体验。其它优点包括降低用来维持和分配媒体内容的主机设备对于存储器和媒体处理的要求。

典型环境

图1显示了适用于对在网络106上从主计算机设备102流向重放计算机设备104的媒体内容进行速率变换(即,比特率变换)的典型实施例100。网络106目的在于表示采用多种网络协议(包括公开和/或私人的协议)的任何一种的多种传统网络拓扑和类型(包括光、有线和/或无线网络)的任何一种。网络106可以包括例如家庭网络、公司网络、或因特网,以及一个或多个局域网(LAN)和/或广域网(WAN)的至少可能的一部分。

主设备102通常存储了媒体内容并基于请求将媒体内容流注到重放设备104。重放设备104通常从主机设备102接收到流媒体内容并为用户进行重放。来自用于在主机设备102上可用的媒体内容的重放设备104的请求被从重放设备104通过网络106路由到主机设备102。主机设备102接收该请求并将所请求的内容通过网络106返回给请求重放设备104。

主机设备102可以作为多种传统计算设备的任何一种来实现,例如,包括可以配置来存储并将媒体内容流向重放设备104的台式PC、笔记本或便携式计算机、工作站、巨型计算机、因特网电器,及它们的组合等等。重放设备104也可以作为多种传统计算设备的任何一种来实现,例如包括台式PC、笔记本或便携式计算机、工作站、巨型计算机、因特网电器、游戏控制台、手持PC、蜂窝电话或其它无线通信设备,个人数字助理(PDA)、机顶盒,及它们的组合,等等。下面参考图11详细描述用来实现主机设备102和重放设备104的典型计算环境。

主机设备102可以使得多种数据的任何一种可以流向重放设备104,包括例如音频、视频、文本、图像、动画、等内容。然而,当根据下面描述的典型实施例在此使用时,媒体内容200目的在于表示音频/视频(A/V)内容或只有视频内容。而且,在此对“媒体内容”、“流媒体”、“流视频”、“视频内容”及其任何变换的参考通常目的在于包括音频/视频内容。术语“流”用来表示通过网络106向重放设备104提供表示媒体内容的数据并可以在整体传送媒体内容之前开始重放内容。该数据是公开可以得到的或可选地是受限的(例如,限制于某些用户,只有付合适的费用时才可用,限制于具有到特定网络入口的用户,等等)。此外,数据可以是“点播”(例如,预先记录并具有已知的尺寸)或可选地被“广播”(例如,没有已知的尺寸、例如执行被捕捉作为音乐会的音乐会数字显示,并可以在捕捉之后很快可以进行流注)。

典型实施例

图2显示了配置用来将媒体/视频内容200在网络106上流向重放设备104并响应于有关网络带宽的可用性速率变换媒体内容200的视频成分(即,变换其比特率)的主机设备102的典型实施例。在本实施例中,重放设备104以缓冲器充满报告202的形式提供了这些信息,其指示在将媒体内容流向重放设备104期间出现在重放设备104上的媒体缓冲器206中的数据电平(即,在音频缓冲器206(1)中的音频数据的电平)。注意,在此根据本发明所讨论的缓冲器充满报告202目的仅仅作为有关主机设备102如何确定网络带宽可用性的一个可能例子。因此,其它向主机设备102提供有关网络带宽可用性的信息的方式也是可以预料到的,并且也可以产生如在此根据缓冲器充满报告202所讨论的那些相同的效果。

主机设备102保存一个或多个文件的媒体内容200,从这些内容可以通过在重放设备104上的媒体内容播放器应用程序204(例如,响应于用户通过播放器应用程序204的输入)进行选择。在本实施例中,媒体内容200被认为典型地具有音频成分的视频内容。因此,如上面所指示的那样,在此对“媒体内容”、“流媒体”、“流视频”、“视频内容”及其任何变换的参考通常的目的在于表示音频/视频(A/V)和/或视频内容。主机设备102在网络106上将所请求的数据内容200作为数据流发射到重放设备104上的播放器应用程序204。

流媒体内容200的视频部分的一个例子是由每秒30个视频帧组成的视频内容,其中某些帧是关键帧(锚帧),一些帧是增量帧。关键帧包含用来描述整个帧的信息。因此,关键帧就象可以用来重新建立图片的整体信息的单独位图图像。增量帧仅仅包含根据附近的关键帧或增量帧变化的信息。即,在增量帧中的数据表示在图片中在视频序列中从一个帧到下一个帧发生的变化。增量帧不代表整个图片。

将使用MPEG格式的视频内容作为例子来讨论本实施例。在MPEG格式的视频内容中,关键帧表示为“I”帧,而增量帧通过“P”帧和“B”帧来表示。I帧是“内部”帧,作为关键帧,它们承载了重构相应原始视频帧所需的所有信息。P帧是“预言”帧,并且它们依赖于前一I或P帧的信息重建自身作为完整图片。B帧是“双向”帧,其需要视频序列中前一帧和后一帧的信息来完全重建自身。

参考图3,显示了通常称作一组图片(GOP)300的视频帧示例序列300。图3的GOP序列300仅仅作为例子来提供,并不作为限制。在该示例GOP序列300中,在该视频序列中每隔12帧才有一个I帧,这该帧之后,该序列重复。在三种MPEG视频帧类型中,I帧趋向于具有更多的数据,因为它们能够描述整个视频帧,而B帧通常是最小的,因为它们在可以显示之前还需要周围帧的信息。I、P和B帧的相对大小通常反映在它们在GOP序列中使用的频率。

再参考图2,假设播放器应用程序204从主机设备102请求媒体内容200,并且图3的GOP序列300表示一部分从主机设备102流向重放设备104的内容。在良好的网络条件下,只要网络106不存在拥塞并且有足够的带宽,那么表示GOP序列300的数据分组将到达重放设备104,并被存储在视频缓冲器206(2)作为视频帧数据208。此外,来自相应于视频帧数据208的媒体内容200的音频数据209将存储在音频缓冲器206(1)中。

在重放设备104上的缓冲器监视器210配置用来在由主机设备102流注媒体内容200的同时监视音频缓冲器206(1)的充满程度并产生缓冲器充满报告。监视音频缓冲器206(1)的充满程度提供了对音频缓冲器的充满程度的指示。在良好的网络条件下,音频缓冲器206(1)的充满程度为高(例如,>80%全部),并且将指示视频缓冲器206(2)也保持良好的充满级别。在视频缓冲器206(2)中高充满级别通常允许通过播放器应用程序204实时重放GOP序列300中的所有视频帧和剩余的流媒体内容。总之,本实施例提供了无损伤的音频体验。因此,不存在音频数据的故意去除,并且音频缓冲器206(1)的充满级别给出了网络带宽可用性的精确指示。但是,如下面更充分讨论的那样,不同类型的视频帧可以从媒体流中去除然后重新引入。这种视频帧类型的故意去除和重新引入使得视频缓冲器206(2)的充满级别不仅仅是基于网络条件来变化。这样,监视视频缓冲器206(2)的充满级别不能提供对网络条件的精确指示。因此,在媒体内容200从主机设备102流出的同时,缓冲器监视器210监视音频缓冲器206(1)的充满级别并产生提供对网络带宽可用性的指示的缓冲器充满报告。缓冲器充满报告202是重放设备104用来向主机设备102报告音频缓冲器充满程度的一种机制。通常,如下面更充分讨论的那样,该信息被主机设备102上的速率变换管理器212用来测量网络106的性能并确定是否存在网络带宽限制。

缓冲器充满报告202包括时间戳信息和有关音频缓冲器206(1)充满的信息。可以用来发射缓冲器充满报告202(1)的一种熟知协议是RTCP(实时控制协议)。RTCP是与RTP(实时协议)协同工作来在网络上传输实时数据,例如音频和视频的控制协议。RTCP控制分组在参与者之间以RTP会话周期性地进行发射。RTCP控制分组是在网络106上从重放设备104向主机设备102发射缓冲器充满报告202(1)的一条通路。

缓冲器监视器210通常以周期性的基础发送缓冲器充满报告202(1)到主机设备102(202(2)),例如每隔1秒或每隔1/4秒报告一次。然而,缓冲器监视器210也可以依据缓冲器充满级别以变化速率将缓冲器充满报告202(1)发送到主机设备102。例如,只要网络条件良好并且音频缓冲器206(1)是健康的(例如,>80%全部),如上面所讨论的那样,缓冲器监视器210就可以使用低的频率(例如,每秒1次报告)将缓冲器充满报告202(1)发送到主机设备。然而,当音频缓冲器健康状况下降时(例如,<80%全部、<60%全部、<40%全部,等),缓冲器监视器210可以增加缓冲器充满报告202的频率。在这种情形中,缓冲器210将保持缓冲器充满报告202的增加频率直到音频缓冲器206(1)恢复到健康级别,例如,>80%全部的门限级别。

主机设备102上的速率变换管理器212接收缓冲器充满报告202(2)并监视音频缓冲器206(1)的充满作为对网络带宽可用性的一般测量。如上所述,缓冲器充满报告202仅仅是主机设备102上的速率变换管理器212如何测量网络带宽可用性级别的一个例子,并且通过本公开可以预料到用来提供有关网络带宽可用性信息并能够提供相同效果的其它方式。

一旦缓冲器充满报告202(2)指示音频缓冲器206(1)正被耗尽,那么速率变换管理器212就可以确定是否存在网络带宽问题以及该问题如何严重。然后,速率变换管理器212因而可以响应来排除一个或多个类型的视频帧并降低媒体流的比特率。速率变换管理器212可以用各种方式监视缓冲器充满报告202(2)来确定音频缓冲器206(1)什么时候耗尽。例如,速率变换管理器212可以从缓冲器充满报告202(2)中划分充满数据并监视划分线的斜率。

图4显示了表示典型缓冲器充满划分400的图表,当主机设备102在网络106上发射流媒体内容200到重放设备104时,其指示了音频缓冲器206(1)的耗尽和恢复速率以及音频缓冲器206(1)在时间上的充满百分比(即,缓冲器充满图)。如下面所讨论的那样,图4的缓冲器充满图400对于显示2种不同的媒体情形是很有用的。第一种媒体情形是被发射的媒体内容200来自于存储的文件,第二种媒体情形是发射的媒体内容是现场内容。图4的图表还显示了指示网络带宽可用性在相同时间间隔上的典型变化的典型网络带宽图401。这样,图4提供了有关音频缓冲器206(1)的充满级别如何根据改变网络带宽来变化的例子。图4的图表仅仅显示了速率变换管理器212如何监视缓冲器充满报告202(2)的一个例子。例如,在时间间隔402(即,0到.5秒),缓冲器充满图400显示来自一个或多个由速率变换管理器212接收的缓冲器充满报告202(2)的信息指示重放设备104上的音频缓冲器206(1)中的充满百分比保持稳定在大约85%。缓冲器耗尽率在该间隔处为零。相同时间间隔的网络带宽图401指示为健康的(例如100%)的带宽可用性。注意,图4的缓冲器充满图400目的不在于指示每秒有多少缓冲器充满报告202(2)正提供信息该速率变换管理器212。然而,如上面所指示,在音频缓冲器206(1)相对充满(例如>80%全部)期间,可能比音频缓冲器206(1)低和/或被耗尽时存在更少的从重放设备104发射到主机设备102的报告。

在时间间隔404(即,.5到1.0秒),缓冲器充满图400表明缓冲器充满报告202(2)指示在重放设备104上的音频缓冲器206(1)中的充满百分比正在迅速下降。存在音频缓冲器206(1)的充满级别的负耗尽率。并不奇怪,相同时间间隔的网络带宽图401指示网络可用性的下降(例如,从100%到50%)。在时间间隔406,缓冲器充满的百分比继续下降,但不是以前一时间间隔的速率下降。在时间间隔408,缓冲器充满的百分比停止下降,并保持在大约30%。相同的方式,图4中剩余的时间间隔(410、412、414和416)显示在充满百分比中的示例变化和音频缓冲器206(1)的耗尽和/或恢复速率。注意,网络带宽图401显示了从间隔404到间隔412降低的带宽可用性,在此之后网络带宽可用性跳转回100%。

图5、6和7显示了图3的示例GOP视频帧序列300,以及如何响应于重放设备104上音频缓冲器206(1)的充满级别的变化通过主设备102上的速率变换管理器212和速率变换器214改变这种帧序列。通常,图5、6和7显示了速率变换器214如何选择性地根据速率变换管理器212的指导响应于缓冲器充满报告202去除不同的帧类型(即,B、P和I帧)。下面参考图4的图表描述图5、6和7,其用来显示充满级别的变化速率以及速率变换管理器212和速率变换器214所响应的音频缓冲器206(1)的充满级别的绝对变换。例如,当音频缓冲器206(1)的耗尽率达到某一最小门限值时,速率变换管理器212可以响应来去除不同的帧类型。

图5的视频帧序列500显示了如何响应于指示音频缓冲器206(1)被耗尽的缓冲器充满报告202(2)从例如GOP视频帧序列300的媒体内容流中选择性地去除B帧。速率变换管理器212可以响应于由缓冲器充满报告202(2)指示的缓冲器级别充满变化率和缓冲器充满级别的绝对值的门限值。在图4的时间间隔404中存在音频缓冲器206(1)被耗尽的指示,如上面关于图4所讨论的那样。在该情形中,速率变换管理器212接收一个或多个指示音频缓冲器206(1)的充满级别下降(即,耗尽)的缓冲器充满报告202(2),如在时间间隔404所标明的那样。在缓冲器充满中的这种下降被认为是网络106拥塞的结果,其因此而限制了网络带宽可用性,如由网络带宽图401所示的那样。

响应于媒体缓冲器206充满中的这种下降,速率变换管理器212指示速率变换器214在发射/流注内容之前选择性地从媒体内容中去除某些类型的视频帧。速率变换器214可以改变其如何将流注媒体内容的方式从全帧发射级别到降低的帧发射级别,从而改变(即,降低)流媒体内容的比特率。依据音频缓冲器206(1)耗尽率的严重程度(例如由图400的斜率所指示的那样),速率变换管理器212可以指示速率变换器214选择性地将不同类型的视频帧降低到各种降低的帧传输级别。帧类型可以选择性地一次降低一个级别,或可以一次降低多个级别,再次依赖于音频缓冲器206(1)耗尽的严重程度。所降低的帧发射级别包括“I和P帧级别”500(即,所有的B类型帧被去除)、“仅I帧级别”502(即,所有的B和P类型帧被去除)、和“第n个I帧级别”504(即,所有B和P类型帧被每隔第n个被去除的I帧一起去除)。对不同降低帧传输级别的帧类型的每次去除提供了在流媒体内容的比特率中的相应降低。

这样,再次参考图4,当速率变换管理器212确定音频缓冲器206(1)被耗尽时,例如在时间间隔404,其通过指示速率变换器214通过选择性地去除B类型视频帧将视频帧的传输级别从全“I、P和B帧级别”300降低到“I和P帧级别”500进行响应。该响应可能导致音频缓冲器206(1)的耗尽速率的降低,如在图4的时间间隔406所示的那样。对于“仅I帧级别”502的视频帧的进一步降低(即,所有B和P类型帧被去除)可以导致停止音频缓冲器206(1)的耗尽,如在图4的时间间隔408所示的那样。

图6提供了图5所示某些降低的帧传输级别的更清楚的显示,其中所去除的视频帧类型已经被从帧序列中移除,而不是仅仅如图5所示的那样进行删除。因此,在“I和P帧级别”600,所有的B类型帧已经被去除,并且没有显示;在“仅I帧级别”602中,所有B和P类型帧已经被去除,并且没有显示;和在“第n个I帧级别”604,所有的B和P和第n个I帧(即,在该例子中的“交替”I帧)已经被去除,并且没有显示。

图7显示了类似于图6所示的帧序列的级数(即,300、600和602),其中当音频缓冲器206(1)被耗尽时,流媒体内容的比特率已经通过选择性地从流媒体内容中去除帧类型而降低到降低的帧传输级别。此外,图7还显示了速率变换管理器212和速率变换器214在流媒体内容已经降低到降低的帧传输级别之后如何测试网络106以及如何进一步将去除的帧类型重新引入回流媒体内容以恢复降低的帧传输级别。测试网络106以确定其带宽可用性是否已经恢复的足够处理将去除的帧类型重新引入回流媒体内容而不会引起音频缓冲器206(1)的进一步耗尽。在没有测试网络106具有足够带宽的情况下,向上跳转媒体流的传输级别(例如,从“仅I帧级别”602到“I和P帧级别”600)可能会引起音频缓冲器206(1)的突然耗尽,从而导致清空视频缓冲器206(2)并引起重放设备上的视频回放的暂停。

再次参考图4,一旦速率管理器212确定音频缓冲器206(1)的耗尽已经停止,如在时间间隔408所示的那样,它就可以指示速率变换器214将填充数据分组(图7显示为“D”帧)以不断增加的速率插入到流媒体内容中直到检测到两个结果中其中一个,如下面所讨论的那样。填充数据分组(“D”帧)是空的分组,其不包含视频数据。相反,它们包含无用数据,这些数据在引入填充分组时仅仅增加媒体流的比特率。

如果网络106仍然拥塞(即,带宽有限),那么将增加数量的填充数据分组引入到媒体流中将最终导致音频缓冲器206(1)的进一步耗尽。这是因为填充数据分组占用了稀少的网络带宽所发生的,这进一步降低了将音频数据209放入音频缓冲器206(1)的量。注意,填充数据分组并没有被存储在缓冲器206中,因此在网络拥塞期间不会对音频缓冲器的充满级别产生影响,相反会降低进入音频缓冲器206(1)的音频数据209的量。例如,在图4的时间间隔410,显示了第一个可能的结果,在此,速率变换管理器212确定引入填充数据分组已经引起音频缓冲器206(1)的进一步耗尽。在此情况下,速率变换管理器212停止引入填充数据分组来防止音频缓冲器206(1)的进一步耗尽,如图4的时间间隔412所示。

当网络带宽可用性恢复时,会发生将数量增加的填充数据分组引入到媒体流的第二个可能结果。在此情况下,将增加数量的填充数据分组引入到媒体流中将最终导致主机设备102输出组合比特率等于下一个最高视频帧传输级别的比特率的媒体内容和填充数据流。此外,音频缓冲器206(1)的充满级别将不再进一步降低(并且可能增加),这是因为网络具有足够的带宽来处理填充数据分组以及媒体内容流。一旦速率变换管理器212确定存在足够的可用的网络带宽来处理填充数据分组和视频帧传输的当前级别,那么它就可以确信音频缓冲器206(1)将不再进一步耗尽而提高视频帧传输级别(例如,从“仅I帧级别”602到“I和P帧级别”600)。例如,在图4的时间间隔412显示了第二个可能的结果,在此,速率变换管理器212确定引入填充数据分组没有引起音频缓冲器206(1)的进一步耗尽。在此情况下,速率变换管理器212停止引入填充数据分组并提高视频帧的传输级别(例如,从“仅I帧级别”602到“I和P帧级别”600)。通常,一旦确定有足够的网络带宽可用性,先前排除的视频帧类型将被重新引入到媒体流中。

如果所发射的媒体内容是可以比1x重放速率更高的速率进行发射的文件内容(即,上面所提到的第一媒体情形),那么提高视频帧传输级别将使得音频缓冲器206(1)恢复到充满级别,如图4在时间间隔414和416所示的那样。然而,如果媒体内容是现场的(即,上面所提到的第二媒体情形),那么就无法以高于1x重放速率的速率来发射该内容,从而,音频缓冲器206(1)的充满级别就不会增加超过先前所耗尽到的级别。因此,该级别将保持在间隔412所示的那样。

图7显示了逐渐增加填充数据分组来测试网络带宽的可用性。例如,从“仅I帧”传输级别602,填充数据分组(“D”帧)被以不断增加的数量添加到媒体内容流中,如在视频序列700和视频序列702中所示的那样。一旦速率变换管理器212确定存在足够的可用网络带宽来处理“仅I帧”传输级别602和填充数据分组,那么它就重新引入先前排除的视频帧类型来从“仅I帧级别”602提高到“I和P帧级别”600。相同的方式,一旦确定网络106能够处理引入到视频序列706和708中的填充数据分组的增加的比特率,那么速率变换管理器212就将视频帧传输级别从“I和P帧级别”600提高到全“I、P和B帧级别”300。

在降低的视频帧传输级别,如上面所注意的,所有音频数据分组继续由主机设备102发射并由重放设备104进行重放。这为用户保持了调和的音频体验,并且因为音频数据相对低的比特率,所以这是可以的。既使通过重复和/或持续在媒体缓冲器206中的视频帧来降低视频帧的传输级别,在重放设备104也可以维持所述视频体验。重复和持续视频帧是众所周知的,对此不再进一步讨论。该过程与在主机设备102上的缓冲器充满监视、缓冲器充满报告202和选择性帧去除一起提供了既使在明显的网络拥塞的情况中具有相对稳定吞吐量重放的实时视频体验。

典型方法

现在将主要参考图8、9和10的流程图描述用来速率变换(即,比特率变换)在网络上106从主计算机设备102流向重放计算机设备104的媒体内容的示例方法。这些方法应用于上面根据图1-7所讨论的典型实施例。虽然通过流程图及与流程图相关的块相关文本公开了一种或多种方法,但是应该明白,所公开的方法的要素不一定必须以它们所呈现的顺序来执行,其变化的顺序也可以产生相同的优点。而且,这些方法也不是唯一的,并且可以单独或相互组合来执行。所描述的方法的要素可以通过任意合适的装置来执行,例如包括通过ASIC上硬件逻辑块或通过执行在处理器可读媒体上定义的处理器可读指令。

在此所使用的“处理器可读媒体”可以是任何装置,其可以包含、存储、通信、传播、或传输由处理器使用或执行的指令。处理器可读媒体可以是但不限于电、磁、光、电磁、红外、或半导体系统、装置、设备或传播媒体。处理器可读媒体的更具体例子包括具有一个或多个线的电连接(电)、便携式计算机磁盘(磁)、随机访问存储器(RAM)(磁)、只读存储器(ROM)(磁)、可擦除可编程只读存储器(EPROM或闪存)、光纤(光)、可重写压缩盘(CD-RW)(光)、和便携式压缩盘只读存储器(CDROM)(光),等等。

在方法800的块802,媒体流被在网络106上发射到媒体重放设备104。所述媒体流被从主机设备102上进行发射并包括音频/视频和/或视频内容。在块804,主机设备102接收有关网络带宽可用性的反馈数据。该反馈数据可以来自各种源,例如,监视在网络106上的数据流的服务器。这种反馈数据的一个更具体的例子是从重放设备104接收的缓冲器充满报告202。缓冲器充满报告202包括指示在重放设备104上的音频缓冲器206(1)的充满级别的信息。

可以周期性地接收缓冲器充满报告202,例如每秒一次,或者可以以变化的速率来接收它们,其中所述变化速率依赖于网络带宽的可用性。例如,在良好的网络带宽条件下,重放设备104上的音频缓冲器206(1)是健康的(例如,>80%全部)并且重放设备104上的缓冲器监视器210可以低频率(例如每秒一次报告)发送缓冲器充满报告202到主机设备102。然而,在网络拥塞和网络带宽可用性有限的情况下,缓冲器健康会降低(例如,<80%全部,<60%全部,<40%全部,等),并且缓冲器监视器210可以增加缓冲器充满报告202的频率。增加主机设备102接收缓冲器充满报告202的频率允许主机设备102尽快发现这种网络带宽的限制,并更快地进行响应。

在方法800的块806,主机设备102响应于反馈数据(即,缓冲器充满报告202)从媒体流中排除某些类型的视频帧。主机设备102上的速率变换管理器212基于在缓冲器充满报告202中指示的缓冲器充满级别估计网络带宽的可用性。即,从指示耗尽的音频缓冲器206(1)的缓冲器充满报告中确定低的网络带宽,而从指示音频缓冲器206(1)健康或没有耗尽(例如,>80%全部)的缓冲器充满报告确定健康或高的网络带宽。

从媒体流排除视频帧类型是基于对可用网络带宽的估计选择性地排除特定类型的视频帧(例如,增量视频帧、关键视频帧)。从媒体流排除视频帧类型将媒体流的传输从全帧传输级别(即,其中所有类型的视频帧都被传输)改变到降低的帧传输级别(即,其中低于传输所有类型的视频帧)。因此,当在主机设备102上的速率变换管理器212确定音频缓冲器206(1)被耗尽时,可以通过指示速率变换器214通过选择性地丢弃B类型视频帧(图4-6)将视频帧的传输级别从全“I、P和B帧级别”300降低到“I和P帧级别”500来进行响应。进一步排除视频帧类型例如包括发射“仅I帧级别”502,其中所有的B和P增量类型帧都被排除,和“第n个I帧级别”604,其中所有的B和P增量类型帧和第n个I类型的帧被排除。

在方法800的块808,在从媒体流中排除某种类型的视频帧之后,测试网络带宽可用性。开始,以全帧传输级别(即,其中发射所有类型的视频帧)并以初始比特率进行发射。通过排除某些类型的视频帧,以降低的帧传输级别和降低的比特率进行发射。为了在排除视频帧类型之后测试网络带宽的可用性,将数量不断增加的填充数据分组引入(即,根据速率变换管理器212的指导通过速率变换器214)到以降低的帧传输级别发射的媒体流中。所述填充数据分组增加了媒体流的降低比特率。在引入填充数据分组期间连续监视反馈数据(即,缓冲器充满报告202)以确定在重放设备104上的缓冲器206是否被耗尽。

方法800在图9继续到块810。在块810,如果测试显示网络带宽不再受限,那么所排除的视频帧类型重新引入到媒体流中。即,如果引入不断增加数量的填充数据分组将降低的比特率增加返回到初始比特率,而不会耗尽音频缓冲器206(1),那么主机设备102(速率变换管理器212)就知道网络带宽再次足以处理初始比特率。因此,速率变换器214(根据速率变换管理器212的指导)重新将所排除的视频帧类型引回到媒体流中。注意,该重新引入可能涉及重新引入不同级别或类型的视频帧(例如,第n个I帧、P帧、B帧;P和B帧等),这依赖于当前降低的帧传输级别。在这方面,还应该注意,“初始比特率”也可以是下一个最高降低的帧传输级别的比特率,而不是全帧传输级别。这样,在排除多个级别或类型的视频帧的情况下,这些排除的视频帧类型也可以简单地使用作为下一个最高降低的帧传输级别的比特率的初始比特率一次一个级别或类型来重新引入到媒体流。

在块812,方法800显示在所排除的视频帧类型被重新引入到媒体流的同时终止引入填充数据分组。

图10是显示由重放设备104执行用来速率变换(即,比特率变换)在网络106上从主计算机设备102流向重放设备104的媒体内容的替换方法1000的流程图。在方法1000的块1002,重放设备104从主机设备102以全帧传输级别(即,发射媒体内容中的所有类型的视频帧)接收流媒体内容。在块1004,重放设备104发射缓冲器充满报告到主机设备102。在重放设备104上的缓冲器监视器210监视音频缓冲器206(1)来确定其数据的充满级别。缓冲器监视器210产生包含有关缓冲器充满级别信息的缓冲器充满报告。

在块1006,在发射所述缓冲器充满报告之后,重放设备104开始以降低的帧传输级别(即,已经排除一个或多个类型的视频帧)接收流媒体内容。注意,这将导致由主机设备102根据缓冲器充满报告202确定音频缓冲器206(1)是否被耗尽,以及是否可能存在网络带宽限制问题。

在块1008,重放设备104上的播放器应用程序204重放以全帧传输级别接收的流媒体内容。重放应用程序204还重复来自以降低帧传输级别接收的流媒体内容的视频帧,如在块1010所示的那样。在块1012,重放设备104上的播放器应用程序204与以降低的帧传输级别接收的流媒体内容一起重放所重复的视频帧。

典型计算环境

图11显示了适合于实现例如上面参考图1-10讨论的主机设备102和重放设备104的计算机设备的典型计算环境。虽然图11显示了一个特定的配置,但是这种计算设备也可以其它计算配置来实现。

计算环境1100包括计算机1102形式的通用计算系统。计算机1102的元件包括但不限于一个或多个处理器或处理单元1104、系统存储器1106、和连接包括处理器1104的各种系统元件到系统存储器1106的系统总线1108。

系统总线1108代表多种类型的总线结构的任意一种的一个或多个,包括存储器总线或存储器控制器、外设总线、加速图像端口、和使用多种总线结构的任何一种的处理器或本地总线。系统总线1108的例子是外设元件互连(PCI)总线,也称作Mezzanine总线。

计算机1102包括多种计算机可读媒体。这种媒体可以任何可以由计算机1102访问的可用媒体,其包括易失和非易失媒体、可移动和非可移动媒体。系统存储器1106包括易失存储器形式的计算机可读媒体,例如,随机访问存储器(RAM)1110、和/或非易失存储器,例如只读存储器(ROM)1112。包含有助于在计算机1102内的元件之间传递信息的基础程序的级别输入/输出系统(BIOS)1114例如在启动期间被存储在ROM 1112中。RAM 1110包含可以立即由处理单元1104访问和/或其当前正在运行的数据和/或程序模块。

计算机1102还包括其它可移动/不可移动、易失/非易失计算机存储媒体。作为例子,图11显示了用于读写不可移动、非易失磁媒体(没有示出)的硬盘驱动器1116、用于读写可移动、非易失磁盘1120(例如“软盘”)的磁盘驱动器1118、和用来读和/或写例如CD-ROM、DVD-ROM或其它光媒体等可移动、非易失光盘1124的光盘驱动器1122。硬盘驱动器1116、磁盘驱动器1118和光盘驱动器1122每一个都通过一个或多个数据媒体接口1125连接到系统总线1108。可选地,硬盘驱动器1116、磁盘驱动器1118、和光盘驱动器1122可以通过SCSI接口(没有示出)连接到系统总线1108。

磁盘驱动器及其相关的计算机可读媒体为计算机1102提供了计算机可读指令、数据结构、程序模块和其它数据的非易失存储器。虽然该例子显示了硬盘1116、可移动磁盘1120、和可移动光盘1124、但是应该理解到,也可以使用其它类型可以存储可由计算机访问的存储数据的计算机可读媒体来实现所述典型计算系统和环境,例如磁带或其它磁性存储设备、闪存卡、CD-ROM、数字多样盘(DVD)或其它光存储器、随机访问存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等等。

任意数量的程序模块可以存储在硬盘1116、磁盘1120、光盘1124、ROM1112、和/或RAM 1110上,作为例子,包括操作系统1126、一个或多个应用程序1128、其它程序模块1130、和程序数据1132。、这种操作系统1126、一个或多个应用程序1128、其它程序模块1130、和程序数据1132(或其某些组合)的每一个可以包括用户网络访问信息缓存方案的实施例。

计算机1102可以包括识别作为通信媒体的多种计算机/处理器可读媒体。通信媒体例如以载波或其它传送机制的调制数据信号包含计算机可读指令、数据结构、程序模块或其它数据并包括任何信息传送媒体。术语“调制数据信号”表示具有一个或多个其字符集或以信号来编码信息的方式进行变化的信号。作为例子,但不是限制,通信媒体包括例如有线网络或直线连接的有线网络、和例如声音、RF、红外和其它无线媒体的无线媒体。上面所述的任意组合也包括在计算机可读媒体的范围内。

用户可以通过例如键盘1134和指针设备1136(例如“鼠标”)的输入设备输入命令和信息到计算机系统1102。其它输入设备1138(没有具体示出)可以包括麦克风、游戏杆、游戏垫、卫星盘、串行端口、扫描仪、等等。这些和其它输入设备被通过连接到系统总线1108的输入/输出接口1140连接到处理单元1104,但是也可以通过其它接口和总线结构进行连接,例如并行端口、游戏端口、或通用串行总线(USB)。

监视器1142或其它类型的显示设备也可以通过例如视频适配器1144的接口连接到系统总线1108。除了监视器1142之外,其它输出外部设备可以包括例如扬声器(没有示出)和可以通过输入/输出接口1140连接到计算机1102的指针1146的元件。

计算机1102可以工作在使用到一个或多个例如远程计算设备1148的远程计算机的逻辑连接的组网环境。作为例子,远程计算设备1148可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或其它公共网络节点、等。远程计算设备1148被显示为便携式计算机,其可以包括在此相对于计算机系统1102描述的多个或所有单元和特征。

在计算机1102和远程计算机1148之间的逻辑连接被显示为局域网(LAN)1150和普通广域网(WAN)1152。这种组网环境普遍存在于办公室、企业范围的计算机网络、企业内部网、和因特网。当在LAN组网环境中实现时,计算机1102被通过网络接口或适配器1154连接到本地网络1150。当在WAN组网网络中实现时,计算机1102包括用来在广域网络1152上建立通信的调制解调器1156或其它装置。调制解调器1156可以在计算机1102的内部或外部,其可以通过输入/输出接口1140或其它合适的机制连接到系统总线1108。应该理解到,所示网络连接是典型的,并且可用使用其它在计算机1102和1148之间建立通信链路的装置。

在组网环境中,例如使用计算环境1100所示的那样,相对于计算机1102描述的程序模块或其部分可以存储在远程存储器设备中。作为例子,远程应用程序1158驻留在远程计算机1148的存储器设备中。为了进行说明,应用程序和其它可执行程序元件,例如操作系统,在此显示为离散模块,但是应该认识到这些程序和元件在不同的时间驻留在计算机系统1102的不同存储器元件中,并且由计算机的数据处理器来执行。

结论

虽然本发明已经以特定于结构特征和/或方法行为的语言进行了描述,但是应该明白,在所附权利要求书中定义的本发明不必一定限制于所描述的特定特征或行为。相反,所述特定特征和行为被公开作为实现所要求发明的典型形式。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号