专利名称:基于优先级的缓冲器管理的制作方法
基于优先级的缓冲器管理
相关申请的交叉引用
本申请要求于2006年11月21日提交的题为"流媒体缓冲器延时 管理(STREAMING MEDIA BUFFER LATENCY MANAGEMENT)"的 申请号为60/860,278的美国临时专利申请的优先权。
背景技术:
流媒体通常指的是在从诸如媒体服务器之类的源下载媒体内容的 同时经由或至少可以经由重放软件或重放设备来播放媒体内容。可以 根据多种标准和格式来提供例如视频和音频内容这样的流媒体内容。 例如,众所周知的有诸如Quick Time和RealMedia这样的视频标准及 由运动图像专家组(MPEG)公布的标准等等。
设计诸如MPEG流内容传递这样的用于流媒体内容的许多标准时 有两个目的(1)维持网络带宽和(2)保持视频质量。然而,设计 MPEG和其它种类的流媒体时,并不具有例如减少延时之类的及时传 递内容的目的。例如,目前,诸如机顶盒(STB)之类的内容处理设备 通常使用MPEG并被设计为以延时为代价来传递完整的视频流。
到达STB的诸如MPEG流之类的媒体流可能面临网络抖动 (jitter),其能够引起例如视频帧之类的媒体帧在STB中的缓冲器中 的过量存储。在显示所有先前的帧之前,不显示STB接收到的帧。然 而,在某些情况中,例如,诸如游戏之类的交互式应用中,用户期望 响应于键按压而及时地在其视频显示器上进行更新。目前,由抖动引 起的延时常常留给用户在多种情况中不能令人满意地支持应用的视频 流。联机游戏是媒体流延时可以导致不满意的用户体验的一种情况。 例如,当通过诸如机顶盒(STB)等内容处理设备来提供游戏时,通过
分组交换网络将游戏会话从视频中心局(VHO)中的游戏服务器作为 MPEG视频流等传递到STB。也就是说,在游戏服务器上进行游戏会 话,但是该游戏会话由STB通过MPEG流来呈现。因此,将游戏会话 编码为MPEG流并通过网络流式传送到STB。由STB解码MPEG流并 将其显示在诸如电视或视频监视器之类的媒体重放设备上。通过诸如 射频(RF)或红外遥控、通用串行总线(USB)游戏手柄等输入设备 将收集用户对游戏的输入。然后,通过分组交换网络将用户输入送回 游戏服务器。该游戏服务器接收用户输入并将其提供给游戏会话以进 行处理,从而基于该输入而适当地修改输出视频流。MPEG流中的延 时可以引起用户输入不及时和/或无效,因此造成令用户不满意的游戏 体验。
总之,诸如MPEG流内容传递之类的用于提供流媒体的许多标准 被设计为具有维持网络带宽和保持视频质量的传统目的。然而,与许 多媒体流的情况一样,MPEG视频流没有被设计为具有例如减少延时 之类的及时传递内容的目的。例如,目前,诸如机顶盒(STB)之类的 内容处理设备被设计为以延时为代价来传递不中断的视频流。
图1图示了用于提供联机游戏的示例性系统。
图2图示了用于管理帧缓冲器的示例性过程。
图3提供了被管理的帧缓冲器的各种状态的示例性说明。
图4提供了视频帧中的主要、次要、和静态对象的示例性说明。
具体实施例方式
图1示出了用于向客户住所101提供联机游戏的示例性系统100, 所述客户住所101用于由用户102通过内容处理设备110和媒体播放 器115来访问。客户住所101可以是住家、企业、或包括内容处理设备110的任何其它位置,并可以包括多个内容处理设备110。
内容处理设备110通常是例如机顶盒(STB)或类似设备之类的 专用设备,用于经由网络145而从头端155接收媒体内容150并将媒 体内容150提供给媒体播放器115。可以将媒体内容150例如作为模拟 信号或作为数字信号来提供,其中模拟或数字视频信号包括媒体流。 内容处理设备110通常包括处理器和存储器,并可以提供有私有或专 用操作系统。例如,内容处理设备110可以是提供有诸如已知的实时 操作系统(RTOS)的STB。然而,应理解的是,本文中通常归于内容 处理设备IIO的角色可以由以下各项来代替担任诸如计算机118、 119 等计算设备;诸如蜂窝电话121等移动设备;或能够从网络145接收 媒体内容150并执行诸如可以存储在计算机可读介质上的程序指令的 任何其它设备。此外,如图1中的设备119和121的布置所说明的, 不需要将此类计算设备设置在客户住所101中,而是通常可以将其设 置在其可以接入分组交换网络125的任何地方。
内容处理设备IIO可以包括游戏应用111。游戏应用111可以包括 特别是用于接收媒体流127的程序指令。游戏应用111通常还包括用 于通过媒体播放器115向用户102提供媒体流127并用于例如经由控 制器116来接收来自用户102的指令和输入的程序指令,此类指令和 输入将被提供给游戏应用服务器140。为了促进通过媒体播放器115来 提供媒体流127,内容处理设备IIO通常包括例如已知的帧缓冲器112、 流解码器113,例如视频编码器/解码器(编解码器)、和音频编码器/ 解码器(编解码器)。当在内容处理设备110中接收到媒体流127的 单元(例如帧)时,通常将其存储在缓冲器112中以等待解码器113 进行处理。应理解的是解码器113可以是例如已知的例如用于MPEG-2 或MPEG-4的MPEG编解码器。内容处理设备110内的其它程序指令 用于使媒体流127中的音频与视频同步,适当地縮放视频等等。
媒体播放器115从内容处理设备110接收媒体内容150并播放此类媒体内容150使得它可以被用户感知。媒体播放器115可以是例如
已知的电视接收机,包括电视或高清电视(HDTV)。媒体播放器115 还可以用来提供由内容处理设备110提供的某些功能和菜单的用户界 面。例如,电视可以用来显示图形用户界面以访问STB内的各种菜单。 此外,可以由计算设备118、 119、 121等中的一个来部分地或完全地 执行本文中归于内容处理设备110和媒体播放器115的操作,由此可 以从系统100中省去媒体播放器115和/或内容处理设备110。
用户102可以利用控制器116来操纵内容处理设备110。控制器 116通常是可以通过包括红外(IR)和射频(RF)通信在内的己知无 线通信来选择性地与内容处理设备10通信的遥控器。控制器116可 以包括数字键、箭头按钮、特定功能键、方向键等等,而且还可以包 括字母数字键。控制器116还可以是例如已知的有线或无线键盘或游 戏手柄。用户102可以利用控制器116来选择媒体内容频道、访问各 种菜单和选项设置、进行选择和请求、以及输入数据,诸如用于包括 在内容处理设备110内的游戏客户端应用111的用户指令或用户输入。 控制器116通常有利于访问由或通过内容处理设备IIO提供的各种功 能和菜单,而且还可以用来控制其它设备,包括媒体播放器115。除执 行本文中归于媒体播放器115和/或内容处理设备110的操作之外,计 算设备118、 119、 121等中的一个还可以包括键、按钮、触垫等以执 行本文中参照控制器116所描述的操作,由此可以从系统100中省去 控制器116。
内容处理设备110经由宽带家用路由器(BHR) 117而选择性地 与各种设备通信,所述宽带家用路由器(BHR) 117包括可以用户102 可以访问的计算机118。 BHR 117可以是通常已知的用于路由网络业务 的一个或多个设备。BHR 117促进通过一个或多个网络进行的数据传 输,所述网络包括分组交换网络125和媒体分发网络145。
已知BHR 117用于向客户住所101内的诸如内容处理设备IIO之类的设备分发音频、视频、以及数据。例如,BHR 117可以是来自加
利福尼亚州桑尼维尔市的迈智微电子公司的宽带家用路由器或无线宽
带家用路由器。BHR 117还可以提供有线或无线局域网(LAN),从 而提供客户住所101内的各种设备之间的选择性通信。例如,计算机 118可以利用BHR 117来与内容处理设备110通信。计算机118可以 是计算机工作站、台式计算机、笔记本计算机、膝上型计算机、手持 计算机、个人数字助理(PDA)、蜂窝电话、智能电话、或利用硬件 和软件来与内容处理设备110通信的某些其它计算设备。
内容处理设备110可以使用BHR 117来向和从分组交换网络125 发送信息和从分组交换网络125接收信息。BHR 117可以通过网关路 由器120来接入分组交换网络125。
内容处理设备110还可以经由分组交换网络125来接收媒体流 127。视频中心局(VHO) 135内的各种源可以提供媒体流127,包括 游戏应用服务器140。可以根据诸如MPEG等许多已知标准中的任何 一个来提供媒体流127。已知游戏服务器140用于向用户102提供各种 交互式游戏应用,此类应用提供媒体流127。
媒体分发网络145是例如已知的用于提供媒体内容150的网络。 例如,网络45可以包括用于经由同轴线缆和/或光纤线缆来提供视频 信号的硬件和软件。如已知的,通常从头端155将媒体内容150提供 给媒体分发网络145。
分组交换网络125通常可以是利用网际协议族中通常存在的已知 协议的网际协议(IP)网络。例如,网络125可以使用诸如用户数据报 协议(UDP)、传输控制协议(TCP)、超文本传输协议(HTTP)等 协议。此外,网络125可以包括多种网络,诸如广域网(WAN),例 如因特网、局域网(LAN)、光纤网络等等。如已知的,可以用分组 交换网络125来传送多种数据,包括多媒体数据,诸如音频和视频。因此,应理解的是,可以有这样的实施例,其中实际上将网络125和
145组合成一个网络,或者其中简单地省去媒体分发网络145,由此使 用分组交换网络125来向内容处理设备110、计算机118等提供媒体内 容150。
网关路由器120可以如已知的那样在分组交换网络125中路由数 据分组,从而提供内容处理设备110到分组交换网络125的接入。通 过与路由器120通信,内容处理设备110能够获得诸如网际协议(IP) 地址之类的网络地址,从而使得内容处理设备110能够向应用服务器 140等进行请求或从应用服务器140等接收数据。
诸如内容处理设备110、客户端计算机118、游戏应用服务器140、 以及类似设备之类的计算设备可以采用许多已知计算机操作系统中的 任何一种。例如,此类设备可以使用Microsoft Windows操作系统;Unix 操作系统(例如由加利福尼亚州Menlo Park的Sun Microsystems发布 的Solaris操作系统);由纽约州阿蒙克的国际商业机器公司发布的AIX UNIX操作系统;以及由伊利诺斯州绍姆堡的摩托罗拉公司发布的 Linux操作系统和Vortex操作系统的任何已知版本和/或种类。计算设 备可以包括已知的许多计算设备中的任何一种,包括但不限于计算机 工作站、台式计算机、笔记本计算机、膝上型计算机、手持计算机、 STB、或某些其它计算设备。
诸如内容处理设备110和本文提及的其它设备等计算设备通常能 够执行存储在计算机可读介质上的指令,诸如包括在应用Ul中的指 令。可以使用多种已知的编程语言和/或技术创作的计算机程序编译或 解释计算机可执行指令,所述已知的编程语言和/或技术单独地或组合 地包括,但不限于,Java、 C、 C++、 Visual Basic、 Java Script、 Perl等 等。通常,处理器(例如微处理器)接收来自例如存储器、计算机可 读介质等的指令并执行这些指令,从而执行一个或多个过程,包括本
文所述的一个或多个过程。可以将使用多种已知的计算机可读介质来
10存储和发送此类指令和其它数据。
计算机可读介质包括参与提供数据(例如指令)的任何介质,其 可以由计算设备来读取。此类介质可以采取许多种形式,包括但不限 于非易失性介质、易失性介质、以及传输介质。非易失性介质包括例 如光盘或磁盘和其它永久性存储器。易失性介质包括通常构成主存储
器的动态随机存取存储器(DRAM)。传输介质包括同轴线缆、铜线
和光纤,包括包含耦合到处理器的系统总线的导线。传输介质可以包
括或传送声波、光波和电磁发射,诸如在射频(RF)或红外(IR)数
据通信期间生成的那些。计算机可读介质的一般形式包括例如软盘、
软磁盘、硬盘、磁带、任何其它磁性介质、CD-ROM、 DVD、任何其 它光学介质、穿孔卡、纸带、具有孔图案的任何其它物理介质、RAM、 PROM、 EPROM、 FLASH-EEPROM、任何其它存储芯片或盒、如下文 中所述的载波、计算机可以从其进行读取的任何其它介质。
图2示出了用于在达到缓冲器112容量限制时根据分配给帧的重 要性来有选择性地从缓冲器112中清除(flush) —个或多个帧的示例 性过程200。虽然在游戏应用111拉出帧时从缓冲器112中去除了帧, 但是可能不会象从应用服务器140接收帧时那样快地从缓冲器112中 移除帧。因此,选择性地从缓冲器112中删除一个或多个帧可能是有 利的。
根据本示例性实施例,从缓冲器112和过程200中清除的帧通常 是缓冲器112中由例如游戏服务器之类的应用服务器140所确定的最 不重要的帧。因此,缓冲器112的选择性清除在例如游戏应用之类的 提供媒体流127的应用程序对关于哪些帧被删去进行完全控制的情况 下有利地保留较新的且优先级较高的帧。选择性缓冲器112清除通常 还提供高水平的视频质量,因为其考虑应用专用信息并向视频流中的 各个帧分配优先级等级或排序。因此,如同上述过程一样,过程200 表现出在例如游戏会话等应用会话期间提供动态缓冲器限制调整以补偿诸如网络125、服务器140等系统100组成部分中的延迟的优点。过 程200的选择性缓冲器112的清除还可以处置当前缓冲器状况,并因 此仅当清除缓冲器112有利时才这样做。应注意的是,这种方法可以 利用诸如游戏供应商这样的应用供应商的实现来测量端到端延时并标 记每个帧的优先级或"重要性"。
在步骤205中,确定缓冲器112的容量限制。例如,服务器140 可以向应用111发送指令以基于用户102所请求的例如游戏之类的应 用来设置缓冲器112的容量限制。
接下来,在步骤210中,内容处理设备IIO通常通过如上所述的 网络125而根据应用111中的指令来接收来自应用服务器140的媒体 流127。
接下来,在步骤215中,应用111确定是否已达到在步骤205中 确定的缓冲器112的容量限制。如果已达到该容量限制,则接下来执 行步骤220。否则,接下来执行步骤235。
接下来,在步骤220中,应用程序111识别存储在满缓冲器112 中的最不重要的帧。图3提供在选择性清除过程200期间的缓冲器112 的各种状态的示例性说明。
如图3所示,可以对存储在满缓冲器112中的帧305分配诸如"1"、 "2"或"3"这样的重要性等级,其中"1"表示重要性最高的帧305, 且"3"表示最不重要的帧305。因此,在图3所提供的示例中,应用 111将识别被分配重要性等级"3"的四个帧305。应用111可以以多 种不同的方式来识别帧305的重要性。应用服务器140可以向每个帧 305分配重要性,并且可以将每个帧305的重要性等级包括在媒体流 127中。例如,应理解的是,可以将重要性等级包括在MPEG传送流 中。然而,应用111还可以在没有来自应用服务器140的任何指令的情况下确定每个帧305的重要性等级。下面将更详细地讨论可以向帧
305分配重要性等级的方式。
返回到图2,在步骤225中,应用111促使缓冲器112选择性地清 除在步骤220中识别的最不重要的帧305。再次以示例的方式参照图3, 将看到在缓冲器112的选择性清除之后,缓冲器112中不再存在被分 配重要性等级"3"的帧305。因此,如图3所示的选择性缓冲器112 清除的结果是只包括被赋予重要性等级"1"或"2"的帧305的缓冲 器112。
接下来,在步骤230中,视频编解码器113和音频编解码器114 或诸如上述的其它程序指令使媒体流127中的音频和视频同步。当如 在过程200中一样执行选择性清除时同步步骤是重要的,因为当如在 步骤225中一样清除视频帧305时,理想的是不损失媒体流127中的 视频与音频之间的同步。应理解的是,可以用MPEG传送流中的诸如 程序时钟基准(Program Clock References)之类的已知标记来使媒体流 127中的音频和视频同步。此外,应理解的是,媒体流中的其它元素可 能要求同步,并且本文中对音频和视频的说明是示例性而非限制性的。
接下来,在步骤235中,应用111确定媒体流127是否己到达其 终点。如果是,则过程200结束。否则,过程200返回步骤210。
用于对帧重要性建模的示例性技术包括"基于动作建模"和"基 于用户活动建模"。
使用基于动作建模,将例如视频流之类的媒体流127中的对象识 别为"主要对象",并将媒体流127中的其它对象识别为"次要对象"。 图4提供视频帧中的主要、次要、和静态对象的示例性说明。参照图4 所示的示例性视频图像,主要对象的帧捕捉动作被分配最高级别的重 要性,例如"1",而次要对象的帧捕捉动作被分配较低级别的重要性,
13例如"2"。通常包括静态信息的帧被分配最低级别的重要性,例如"3"。
基于动作建模需要利用游戏服务器之类的应用服务器140包括用于理
解应用的特定实例的语义的编程,即,哪些对象是最重要并因此而是 主要的,哪些对象是较不重要并因此而是次要的等等。因此,基于动 作建模需要游戏供应商方面进行一些努力。此外,基于动作建模需要
应用程序服务器142包括媒体流127中的帧的重要性等级。
在基于用户活动建模中,例如帧等媒体流的成分基于是否与用户 交互相关联而对其分配重要性。例如,向由于用户交互而得到的帧分 配最高级别的重要性,例如"1"。因此,在图4的实例中,示出了来 自游戏的示例性帧,用户活动可以引起一个人的图像中的运动,因此, 可以向其中有人在运动的帧分配最高级别的重要性。向由于例如游戏 会话之类的应用实例中的自动化改变而得到的帧分配较低级别的重要 性,例如"2"。再次参照图4的示例,以云层运动为特征的帧是由于 应用实例中的自动化变化而得到的帧。向通常包括静态信息的帧分配 最低级别的重要性,例如"3"。有利地,基于用户活动建模通常在不 需要依赖于应用专用逻辑的情况下提供高质量的视频,并能够根据应 用111中的程序指令来执行。
本文所讨论的示例性实施例包括基于网络的流游戏服务,并在流 视频的情况中进一步讨论。然而,实施例可以并预期将扩展到除縮短 延时之外内容的及时传递也很有利的任何媒体流服务。例如,媒体流 127可以包括静止图像或提供证券报价机信息的某些数据流。
关于本文所述的过程、系统、方法、探试法(heuristics)等,应 理解的是,虽然已将此类过程的步骤等描述为根据一定的顺序发生, 但是可以用按照除本文所述顺序之外的其它顺序而执行的所述步骤来 实施此类过程。还应理解的是,可以同时执行某些步骤,可以添加其 它步骤,或者可以省略本文所述的某些步骤。换言之,本文中对过程 的说明是处于说明某些实施例的目的而提供的,绝不应将其理解为限制权利要求所述的发明。
因此,应理解的是,上述说明意图是说明性而非限制性的。在阅 读上述说明时,除所提供示例之外的许多实施例和应用程序对于本领 域的技术人员来说是显而易见的。不应参照上述说明来确定本发明的 范围,而是应参照随附权利要求书、以及被授予此类权利要求的权利 的等价物的整个范围来确定本发明的范围。可以预期且意图是在本文 所讨论的技术中将发生进一步的发展,并且所公开的系统和方法将被 并入此类未来的实施例中。总之,应理解的是,本发明能够进行各种 修改和变更,并仅由以下权利要求来限定。
除非本文中进行相反的明确指示,否则权利要求书中所使用的所 有术语意图被赋予其最广泛的合理解释和本领域的技术人员所理解的 其普通意义。特别地,除非权利要求相反地陈述明确的限制,否则应 将诸如"一"、"该"、"所述"等词的使用阅读为引用一个或多个 所指示元素。
权利要求
1.一种方法,包括将媒体单元存储在缓冲器中,其中,所述媒体单元的每一个被分配有重要性等级;以及基于所述重要性等级选择性地从所述缓冲器中清除所述单元中的至少一些单元。
2. 根据权利要求1所述的方法,还包括向所述媒体单元的每一个 分配所述重要性等级。
3. 根据权利要求2所述的方法,其中,根据单元包括主要、次要 还是静态对象和单元包括与用户交互相关联的对象、与应用中的自动 化改变相关联的对象还是静态对象中的一项来分配所述重要性等级。
4. 根据权利要求1所述的方法,还包括在媒体流中接收所述媒体 单元。
5. 根据权利要求4所述的方法,其中,经由分组交换网络来接收 所述媒体流。
6. 根据权利要求4所述的方法,其中,根据运动图像专家组 (MPEG)的标准来将所述媒体流格式化。
7. 根据权利要求l所述的方法,还包括将来自所述缓冲器的单元 提供给选择性地向媒体播放器提供输出的编码器/解码器。
8. 根据权利要求l所述的方法,还包括向所述缓冲器分配容量限制。
9. 根据权利要求9所述的方法,还包括在选择性地从所述缓冲器 中清除所述单元中的一些单元之前确定是否已达到所述容量限制。
10. 根据权利要求l所述的方法,其中,所述媒体单元是帧。
11. 根据权利要求1所述的方法,作为计算机可读指令而有形地 包含在计算机可读介质上。
12. —种系统,包括媒体缓冲器,其选择性地接收和存储媒体单元;其中,所述媒体 单元的每一个被分配有重要性等级;以及程序指令,用于基于所述重要性等级从所述缓冲器中选择性地清 除所述单元中的一些单元。
13. 根据权利要求12所述的系统,其中,所述重要性等级是根据 单元包括主要还是次要对象的动作之一或单元包括与用户交互相关联 的对象、与应用中的自动化改变相关联的对象、还是静态对象之一来 分配的。
14. 根据权利要求12所述的系统,还包括选择性地提供包括所述 媒体单元的媒体流的应用服务器。
15. 根据权利要求14所述的系统,其中,所述媒体流经由分组交 换网络来传送。
16. 根据权利要求14所述的系统,其中,所述媒体流根据运动图 像专家组(MPEG)的标准而被格式化。
17. 根据权利要求12所述的系统,还包括选择性地从所述缓冲器 提取单元并基于所提取的单元选择性地向媒体播放器提供输出的编码器/解码器。
18. 根据权利要求12所述的系统,其中,所述缓冲器被分配有容 量限制。
19. 根据权利要求18所述的系统,其中,所述程序指令包括用于 在选择性地从所述缓冲器中清除所述单元中的一些单元之前确定是否 已达到所述容量限制的指令。
20. 根据权利要求18所述的系统,其中,所述媒体单元是帧。
21. —种方法,包括向多个媒体帧中的每一个分配重要性等级;经由分组交换网络在媒体流中接收所述媒体帧;将所述媒体帧存储在缓冲器中;向所述缓冲器分配容量限制,确定已达到所述容量限制;基于所述重要性等级选择性地从缓冲器中清除所述媒体帧中的至 少一些媒体帧;以及将所述帧中的至少一些帧从所述缓冲器提供给编码器/解码器。
22. 根据权利要求21所述的方法,还包括将来自所述编码器/解码 器的输出选择性地提供给媒体播放器。
全文摘要
将媒体单元存储在缓冲器中,其中,向媒体单元的每一个分配重要性等级。基于该重要性等级而选择性地从缓冲器清除至少一些媒体单元。
文档编号H04L12/26GK101606354SQ200780042892
公开日2009年12月16日 申请日期2007年11月12日 优先权日2006年11月21日
发明者劳尔·阿尔德雷, 哈尔帕·S·巴萨利, 诺舍万·民瓦拉, 马赛罗·D·莱希纳 申请人:威瑞森数据服务公司