用于管理流式媒体服务的方法

文档序号:7607743阅读:276来源:国知局
专利名称:用于管理流式媒体服务的方法
背景存在其中客户机装置可请求媒体文件的传递连同对那个所请求媒体文件的某种处理、如噪声降低的系统。一旦所请求的媒体传递由服务器接收,媒体文件被检索,然后由服务器对那个媒体文件执行所请求的处理。一旦处理完全完成,服务器把已处理媒体文件发送给客户机装置。对于这种系统存在一些问题。例如,如果服务器正尝试处理许多分开的处理和传送媒体文件给不同请求客户机装置的请求,则客户机装置的用户可能必须等待相当长的时间。另外,流式媒体文件可能很大,并且在流式传递开始之前可能耗费很长时间来完成对内容的所请求处理。这可能使客户机装置用户失望,特别是当他或她正尝试在限期之前完成某项工作时。
由于这些及其它原因,需要本发明。

发明内容
本发明的一个实施例包括用于管理流式媒体服务的方法。该方法包括接收来自客户机的对于流式媒体服务的请求。流式媒体服务包括多个媒体服务组件。另外,该方法还包括确定多个媒体服务组件中的哪个媒体服务组件要分配给网络的多个服务节点中的一个服务节点。该方法还包括通知分配用于执行多个媒体服务组件中的一个媒体服务组件的各服务节点,使流式媒体服务能够对流式媒体执行。
附图简介

图1是示意图,说明向多个移动客户机装置传递媒体的一种传统方式。
图2是示意图,说明对媒体进行处理并传递给移动客户机装置的一种传统方式。
图3是根据本发明的一个实施例的示意图。
图4是根据本发明的一个实施例的示意图。
图5A是根据本发明的一个实施例的示意图。
图5B是根据本发明的一个实施例的示意图。
图6是具有在其中可实施本发明的实施例的单一内容服务器的用于数据会话切换的示范系统的框图。
图7是具有在其中可实施本发明的实施例的内容分发网络的用于数据会话切换的另一个示范系统的框图。
图8A和图8B是流程图,说明根据本发明的一个实施例的数据会话切换的过程。
图9是根据本发明的一个实施例的示意图。
图10是根据本发明的一个实施例的框图,说明示范操作,媒体服务体系结构(MSA)通过这些操作来分解和分配服务。
图11是根据本实施例的一个实施例的服务位置管理方法的框图。
图12a是根据本发明的实施例的服务的组件的示范抽象图。
图12b-d说明根据本发明的实施例的网络上的组件的三种示范分布。
图13是根据本发明的一个实施例执行的、用于管理流式媒体服务的操作的流程图。
图14是根据本发明的一个实施例的MSA中被处理的多个媒体流的框图。
图15是根据本发明的另一个实施例的MSA中被处理的多个媒体流的框图。
图16是根据本发明的一个实施例执行的操作的流程图。
图17是根据本发明的另一个实施例执行的操作的流程图。
优选实施例说明现在详细参照本发明的实施例,其实例在附图中说明。虽然结合实施例来描述本发明,但是要理解,它们不是意在把本发明限制到这些实施例。相反,本发明意在涵盖可能包含在所附权利要求定义的本发明的精神和范围之内的备选、修改和等效方案。此外,在本发明的以下详细说明中,阐述许多具体细节,以便更透彻地了解本发明。但是,本领域的技术人员非常清楚,即使没有这些具体细节,也可实施本发明。在其它情况下,没有详细说明众所周知的方法、程序、组件和电路,以免不必要地影响对本发明的各个方面的理解。
符号和命名以下详细说明的一些部分用对计算系统或数字系统存储器中的数据位的操作的程序、逻辑块、处理及其它符号表示来提供。这些描述和表示是数据处理领域的技术人员用于向本领域的其它技术人员最有效地传达其工作实质的方式。程序、逻辑块、过程等在此以及一般被认为是产生预期结果的操作或指令的自相容序列。操作可包括物理量的物理处理。这些物理处理通常但不一定采取电或磁信号的形式,这些信号能够在计算系统或类似的电子计算装置中被存储、传送、组合、比较或者以其它方式处理。对于本发明,为了方便起见,以及参照普遍用法,把这些信号称作位、值、元素、符号、字符、项、数字等。
但应当记住,所有这些术语应解释为引用物理操作和物理量,并且只是方便的标记,以及要考虑到本领域常用的术语进一步解释。除非明确说明,否则从以下论述中清楚看到,大家理解,在本发明的整个论述中,采用诸如“决定”、“应用”、“处理”、“执行”、“判定”、“确定”、“传送”、“接收”、“检索”、“提供”、“识别”、“产生”、“利用”、“删除”、“通知”、“排除”、“丢弃”、“实现”、“采用”、“存储”等术语的论述表示处理和变换数据的计算系统或类似电子计算装置的动作和过程。数据表示为计算系统的寄存器和存储器中的物理(电子)量,并且被变换为类似表示为计算系统的存储器或寄存器或其它这种信息存储、传输或显示装置中的物理量的其它数据。
介绍人们通常根据他们从其台式机或膝上型(例如图1的122)机器的万维网浏览体验获悉各种内容站点(例如基于视频的电影页面),因为这些装置能够更好地支持在网上随机浏览的输入(键入各种URL或搜索查询)和输出(可靠、高带宽连接)要求。相信高带宽无线接入的前景,这些万维网用户可能尝试利用其个人数字助理(PDA)、如110、116和120或者视频使能蜂窝电话、如112、114和118连接到相同站点。这种广泛的访问产生对内容提供商支持大范围的不同比特率(根据连接的带宽)、视频帧速率(根据客户机上可用的CPU功率,其本身根据功率管理策略动态改变)以及视频帧大小(根据客户机上可用的显示器大小)的需要。另外,如日本的3GPP[1]提供商看到的那样,支持来自轻便客户机的移动访问要求服务器维护及更新大量会话的状态变量。为了简洁和清晰起见,对于参考文献[1]-[20]的引用的完整详细列表见于本说明的后面部分。注意,所有列示的参考文献[1]-[20]在本文中通过引用结合为背景资料。例如,在从市区办公区到餐饮区的黄昏过渡期间,在东京经常看到数以千计的移动用户的“快闪族”。
因此问题是双重的一种是以动态适应客户机的能力的格式提供视频和音频内容,另一种是动态分配对那个流式过程的支持以避免不必要的拥塞以及所产生的质量下降。解决方案的两个部分应当动态进行,因为它们所依赖的因素本身往往迅速变化。
除非媒体服务以分布方式在流式内容传递网络(CDN)基础结构中集成和管理,否则不会完全实现用于移动流式媒体(MSM)的无线装置的潜力。我们讨论关于通过支持无线和移动流式客户机的现有网络基础结构来提供可靠、可缩放的媒体流式传送的背景工作。我们概述通过CDN中可用的分布资源的动态监测进行媒体服务的可控设置的方法。还论述资源监测方法之间的折衷。这是作为对于我们的MSM-CDN实验台中的服务位置管理器(SLM)的示范实现及其结果的论述。另一个论述列出分布媒体处理中的某种相关工作。
对于移动客户机的自适应流式内容传递在图1中,移动流式媒体系统的基本组件包括用于所存储媒体内容的流式服务器(例如102)、现场流式服务器以及流式媒体客户机(例如110-120)。为了以可缩放方式把视频剪辑传递给大量用户,可在现有网络上采用例如图3所示的本发明的MSM-CDN覆盖。它包含流式边缘(或代理)服务器和管理服务器。流式边缘服务器具有内容分发和高速缓存[16]、流式传输、资源监测、资源管理及信令的功能性。它们还可执行媒体服务功能、如现场媒体自适应。管理服务器根据客户机位置和当前系统及网络负荷来分发内容并分配媒体会话,换言之,它们把客户机请求的会话分配给最佳可用的边缘服务器。
MSM-CDN系统应当在显示和解码能力方面帮助支持各种各样的客户机。在图1中,进行这种操作的“传统”方式是在内容服务器102上存储源资料的多个副本,然后再根据与客户机(例如112、114、116和120)的某种初始协商来选择要发送哪个副本(例如,如箭头124、126、128和130所示)。但是,当客户机移动物理位置以及当来自其它客户机的流式会话在共享的无线环境中开始和结束时,从网络100的各个部分到客户机的连接的可靠性和带宽将在流式会话期间变化。这种协商需要跨越比由多个存储编码轻松提供的更大范围的选项,并且协商过程应当随网络条件改变而动态更新。由于实时媒体服务在当今的网络服务器机器上是可行且可负担的,因此,媒体速率、大小和带宽方面的这种大范围的需求可通过在图2的网络200中嵌入媒体服务来满足。在图2中,箭头208表示从内容服务器102输出到媒体服务节点202的流式媒体,而箭头210则表示从服务节点202流式传输到客户机102的已处理媒体。注意,图1的网络100和图2的网络200包括无线基站104、106和108,它们可用作与移动客户机装置110、112、114、116、118、120和122进行无线通信的一部分。
提供这种实时、低等待时间的媒体服务是又称作媒体服务节点的边缘服务器[2,7]的主要功能之一。媒体服务过程可例如使压缩视频流适合客户机显示。还可采用基于RTCP的反馈把流中的比特率动态调整到客户机装置遇到的变化带宽条件。这些实时媒体服务现在因压缩域处理[14,15,10]的使用而可在标准台式机或服务器机器上提供。
这些新的压缩域服务技术可极大地减少各独立服务会话的计算成本,从而使移动流式传输既是可行的又是可负担的。但是,对于内容管理,媒体服务流的大小和持续时间以及与修改那些流关联的计算需求可能涉及小心管理。在出现数千或数百万移动客户机(例如110、112、114、116、118和120)时,强大计算能力的服务器可散布在基础结构上,使得媒体服务可作为分布边缘服务来提供。
例如,提供前面论述所要求的媒体服务的一种方式是让每个内容服务器提供客户机浏览器(例如110、112、114、116、118和120)到固定媒体服务节点(例如图2的202、204或206)的静态重定向。在内容传递方面充分研究这种静态重定向到本地“镜像”站点的重定向在当今的万维网环境中按常规进行。这种静态重定向的缺点在于,它没有考虑网络100和服务器负荷的任何动态性。在各种节点(或服务器)上可用的带宽和计算负荷将根据客户机以及新增加或丢弃的客户机的变化要求来改变。因此,不同服务器上的媒体服务进程的设置本身应当是动态的,并且最好是随着客户机处理器改变物理位置而进行调整。最后,为了便于由移动万维网浏览公众使用,所有这些动态判定可被隐藏并且是自动的。
服务位置管理(SLM)在图3中,动态服务位置管理隐含的概念是提供移动流式环境中所需的灵活性,而无需移动用户(例如110、112、114、116、118和120)改变初始联络站点。一般系统而是提供某些数量的良好发布的门户站点(例如304和306)。这些门户是移动用户联络的第一点(如箭头308所示),并且接受到原始内容站点的重定向(到内容服务器102的箭头310所示)。所有后续重定向以客户机透明方式采用动态SMIL重写[16]来进行。
一般来说,图3采用箭头308表示从客户机装置120进入服务门户306的请求。因此,图4中的服务门户306则与服务位置管理器302进行通信(如箭头404所示),以便找出安排所请求流式媒体会话的最佳服务节点。图4还说明,服务位置管理器302正监视或监测媒体服务节点202、204和206的集合,它由双向箭头406、408和410表示。服务位置管理器302向服务门户306返回在其上安排流式会话的最佳服务节点。因此,图3、图4和图5说明如何让会话开始的操作。图9表明,在网络300中发出后续请求时,它们各经过那些相同的操作。图5A和图5B说明,服务位置管理器302可把虚线椭圆506所示的当前会话的分配从一个服务节点(例如202)改变到另一个服务节点(例如204)。注意,媒体服务节点(例如202、204和206)均可实现为硬件、软件或者硬件和软件的任何组合。另外,服务节点(例如202、204或206)可实现为一个或多个物理计算装置。
在图4中,一旦如箭头308所示由客户机120进行联络,门户站点306则联络服务位置管理器(SLM)302,如箭头404所示。注意,单个SLM 302在其可用服务范围中可具有多种类型的服务。因此,SLM 302跟踪(例如采用表格)各媒体服务节点(例如202、204或206)可对媒体流执行的服务。媒体服务可包括视频处理,例如但不限于码变换、抖动消除、基于面部识别的动态剪贴、视频分析、视频的大小调整、从视频进行OCR、音频增强、背景消除、可对视频媒体流进行操作的任何方面等等。另外,媒体服务可包括音频处理,例如但不限于背景消除、音频加速或减速、音频增强、噪声降低、语音识别、音频分析、可对音频媒体流进行操作的任何方面等等。然后,当SLM302进行其判定时,它审查那个表格以便找出哪个或哪些服务节点可执行特定的所请求媒体服务。
一旦门户站点306联络SLM 302,SLM 302则确定需要什么类型的媒体服务把所请求资料提供到给定客户机(例如120),以及检查(部分或完全)在其控制下的媒体服务节点(例如202、204和206)的状态。那个状态可根据媒体服务节点的每个上的可用周期和可用存储器来概括。其它状态指示器可包括从媒体服务节点的每个到内容提供商(或者最接近的镜像站点)以及到流式客户机的连接的预计带宽和可靠性。根据所收集的状态信息,SLM 302动态生成SMIL文件,通过在那个新生成的SMIL响应中嵌入其URL以及任何协商的参数,把客户机重定向到适当的服务节点(图5)。符合3GPP或ISMA[5]的流式客户机则剖析重写的SMIL文件,以便建立与内容服务器102和媒体服务节点202的适当流式会话。因此,整个处理对于终端用户是透明的。注意,箭头502表示从内容服务器102到媒体服务节点202的媒体的流式传输,而箭头504表示从服务节点202到客户机120的已处理媒体流的流式传输。来自涉及媒体服务的其它客户机的后续内容请求也根据新的当前网络和计算资源来分布(图9)。
动态服务位置的资源监测在以上描述中,SLM 302检查在其控制下的媒体服务节点(例如202、204和206)的每个的状态,以便确定如何最好地分派当前客户机请求所需的媒体服务任务。存在各种方法可完成这种检查。下面详细说明可根据本发明实现的某个不同的实施例。
基本的“基于轮询的”监测在一个实施例中,监测在SLM 302的控制下的媒体服务节点(例如202、204和206)的状态的一种方法是让过程“基于轮询”。在这种方法中,每当SLM 302得到对于媒体服务的新客户机请求时,它主动联络可能具有足够资源的每个服务节点(例如根据其CPU的数量和时钟速率、已安装存储器及其最好情况的网络带宽)。响应这个“资源轮询”,各服务节点(例如202、204或206)提供其当前可用资源的描述。这可包括在给定时间点的空闲计算周期的数量以及空闲存储器的大小。在理想情况下,它还包括到内容服务器102以及到客户机(例如110-120)的空闲网络带宽的某种估算值。SLM 302收集这种信息,然后可把所请求媒体服务任务分派给提供空闲网络带宽、计算和存储资源的最佳组合的服务节点。
这种“基于轮询的”方法的优点是提供空闲服务节点资源的最新快照。它还提供服务节点何时因网络或机器故障而失效的清楚指示。另一方面,基于轮询的资源监测在可扩充性方面具有严重限制。随着客户机请求的数量以及被监测媒体服务节点的数量的增长,轮询请求的数量作为它们的乘积而增长。由于被监测媒体服务节点的数量往往与客户机的服务请求的数量成正比地增长,因此,轮询请求的数量实际上作为客户机数量的平方来增长。
基本的“基于表格的”监测轮询实施例的一个备选方案是让资源信息从媒体服务节点(例如202、204和206)“推送到”监测SLM 302。在这种方法中,由服务位置监控程序(SLS)定期提供更新,它可能是在各媒体服务节点中运行的、例如由系统和网络管理软件提供的轻便后台监督程序。对于各客户机请求,SLM 302访问从收集(以及注明日期)SLS提供的信息创建的空闲资源数据库。这把资源监测导致的连接要求从与媒体服务节点的数量的二次相关降低到线性相关。
此外,监测和“重新启动”功能可包括在SLM 302本身中简单SLM监督程序会监测最近的SLS数据库刷新的时标,以及尝试联络超过某个预置时间间隔而没有接触的SLS机器。这些联络尝试的相当一部分估计将因正发生的网络或媒体服务节点故障而失败。但是,由于重新启动SLS联络的这些尝试异步进行,因此它们不会影响SLM 302对客户机请求的响应时间。
基于表格的监测的缺点是依靠比直接基于轮询的结果更陈旧的资源信息。这个弱点通过资源监测的下一个实施例来解决。
基于从节点接收的最近数据和SLM的动作的SLM的适应性增强的“基于表格的”监测在这个实施例中,基于表格的监测方法修改为减少陈旧信息的缺点。这通过让SLM 302保存它已经向其分派最近客户机任务的媒体服务节点的短期记录来进行。SLM 302则相应地调整它的关于什么资源将可用于新任务的预测。例如,当媒体服务任务在资源统计上一次从那个服务节点传送之前不到1分钟被分派给媒体服务节点时,那个节点的资源记录将按那个先前分派的媒体服务任务所请求的资源预算被减小。
具有共享服务的多个SLM如果媒体服务节点的一部分是在一个以上SLM的范围之内(即,如果SLM机器的分布集合中的一个以上SLM被允许把媒体服务请求重定向到那个服务节点),则每个SLM还应当在发生分派时立即把关于已分派任务的信息传送给该媒体服务节点上的SLS监督程序。那样,SLS监督程序可把所有分派通知重传到其它SLM处理器上,从而使媒体服务节点计算或网络资源因来自不同SLM的交叉分派而被超量预订的次数最少。
注意,通过具有包含共享服务的一个或多个SLM,允许区域分割,在其中存在可在两个或两个以上不同组织或组中工作的服务节点。因此,希望为SLM提供向那个服务节点分配服务请求的能力。另外,通过这种方式,可以通过不从各SLM的范围中删除服务节点来避免SLM的过载。当耦合在组织、组或企业内的服务适用于共享服务时,使多个SLM能够共享服务可能是可行的。另外,如果SLM之一变为不可工作,则SLM之间的服务的共享可提供容错。此外,SLM之间的服务的共享可向SLM提供负荷平衡。
注意,为了减少陈旧信息的缺点,SLM 302可维护已经向其分派最近任务的服务节点的短期记录。因此,在这种类型的基于“推送”的监测中,服务节点将其数据推送到SLM 302,这可按照一定周期性发生。由服务节点(例如202、204和206)发送的每个统计数据中还通过进行求平均而具有某个等待时间。因此,在SLM 302发生的情况是,当它分派某种任务时,它保持其自己的服务节点分派的运行表,其中具有先前分派的任务将会或者预计获得什么资源的信息。通过这种方式,当SLM 302进行其下一个分派时,它可采用其表格中来自服务节点的统计数据,并且理解那些统计数据是多长时间的。因此,SLM 302能够知道自接收那些统计数据以来已经发生的任何分派根本没有被反映在那些统计数据中。注意,SLM 302可在某个点进行线性内插,以便得到对于它将预期实际可用资源在各服务节点上的情况的正确近似。
SLM 302具有可用的这个表,并且它注明了时间日期,表明它从给定服务节点(例如202)的上一次更新。如果SLM 302从那个服务节点得到的上一次统计数据比如说是10分钟之前,并且SLM 302预期每5分钟进行更新,则SLM 302可确定并推断相对于那个服务节点有差错出现。该问题可能是几个方面的,例如,可能是网络300出故障,服务节点202出故障,或者SLS监督程序在那个服务节点202上停止运行。因此,节点向SLM 302进行的报告可提供这种信息,或者SLM 302可作为低开销的后台进程对其表格中的所有服务节点进行典型的循环校验。这样,SLM 302可知道可能与服务节点中的一个或多个关联的问题。如果检测到问题,则SLM 302可尝试重新启动那个服务节点上的SLS监督程序,或者如果SLM 302无法联络该节点,则SLM 302可采用Open View监测系统来设置标志,表明那个特定节点存在的问题。注意,通过执行这个功能性,SLM 302不会向可能不能工作的媒体服务节点分派或分配流式会话。
试验台结果服务位置管理体系结构的一个实施例设计成把媒体服务与移动流式媒体传递系统结合。移动流式媒体(MSM)试验台经过设计、发展和实现,从而证明这些能力。MSM试验台由多个存储内容和现场内容流式服务器以及流式媒体客户机组成。流式边缘服务器和管理服务器共同组成自适应MSM-CDN。流式边缘服务器提供对内容分发和高速缓存、流式传输、资源监测、资源管理及信令的支持。另外,它们还执行媒体服务功能,例如现场流分割(或者媒体流式会话的应用层多播)和MPEG-4视频流的实时媒体码变换。
流式服务器、客户机和边缘服务器可能符合3GPP标准,因此可采用会话描述协议(SDP)[4]、实时流式传输协议(RTSP)[13]以及实时传输协议(RTP)[12],并且可支持MPEG-4[8]视频和音频/调制解调器插卡(AMR)音频媒体标准。流式边缘服务器和管理服务器可把简单对象访问协议(SOAP)[3]用于信令。注意,根据当前实施例,可采用其它标准。
服务位置管理器(SLM)302根据网络和系统资源使用情况把客户机请求的流式/媒体服务会话分配给“最佳可用的”流式边缘节点。SLM 302收集关于一组流式边缘节点的统计数据,分析那些统计数据以选择最佳可用边缘服务节点,并响应客户机请求而传达所选边缘节点。SLM 302采用SOAP/XML信令从边缘节点收集资源使用统计数据,以及把所选边缘节点动态传达给请求客户机。
对于SLM 302资源监测所提出的三种方法的每个在我们的MSM-CDN试验台中实现并测试。基于轮询的监测有时导致完全的流式故障。当移动客户机上的响应超时周期设置过低,使得SLM 302没有足够时间收集所有轮询响应、对它们处理以及在客户机放弃之前提供动态生成的SMIL响应时,通常发生这种情况。这些过慢的响应通常在媒体服务节点中的一个或多个脱离网络时出现在这些情况下,SLM 302在忽略那个服务节点作为客户机可能的媒体服务平台之前等待标准SOAP超时周期。与基于轮询的监测关联的延迟也不会适当地支持网络的缩放随着被监测服务节点的数量增加,与轮询关联的延迟成比例增加。
基本的基于表格的监测没有遇到这种超时故障模式。但是,它往往导致未达最佳标准的负荷平衡。这种情况在客户机请求快速连续到达时出现。即使媒体服务节点上的SLS被修改为每当发现新的本地媒体服务任务时便更新SLM 302数据库中包含的空闲资源信息,也仍然会出现这种未达最佳标准的负荷平衡。这种未达最佳标准的任务分配有时是因为响应新例示任务的空闲资源统计数据的等待时间。未达最佳标准的任务分配更经常是因为在SLM 302向特定服务节点分派媒体服务任务(通过向客户机传送动态SMIL文件)之后、但在那个较早的客户机在所选服务节点上实际建立那个媒体服务任务(通过传送RTSP SETUP请求)之前到达的新客户机请求。
增强的基于表格的监测消除了对于基于轮询的监测看到的超时故障以及对于基本的基于表格的监测看到的交织请求错误。
用于媒体服务切换的管理的SLM图5A和图5B说明根据本发明的一个实施例。具体来说,服务位置管理器302可用于把媒体流式会话(由椭圆虚线506表示)从一个媒体服务节点(例如图5A所示的202)移动到另外的媒体服务节点(例如图5B所示的204),这可称作切换。例如,如果服务节点202确定需要切换流式媒体会话(或者如果网络300的另外某个组件确定这种情况),则这个信息可传递给SLM 302。SLM 302在那时则可计算服务节点负荷、网络300的负荷等,以便计算出哪个服务节点要切换那个特定流式会话。这样,不需要确定预定义的切换节点。而是由SLM302在运行中确定。因此,可执行预期服务的最佳媒体服务节点由SLM 302来选择。然后,切换可按照与图6、图7、图8A和图8B中所述类似的方式进行。注意,执行切换的方式可能是初始服务节点(例如202)所执行的服务的类型特定的。
图6是具有在其中可实施本发明的实施例的单一内容服务器102的数据会话切换的示范系统600的框图。注意,系统600涉及码变换,作为数据会话切换中可能涉及的示范媒体服务。大家理解,系统600可涉及任何媒体服务,而不限于码变换。在一个实施例中,在系统600中,数据(例如视频媒体)经由无线链路流式传输到移动客户机(例如电子装置)。在一个实施例中,数据是以连续流构造及处理的流式数据,例如流式音频和流式视频。流式数据包括多个数据包(例如部分),其中,各包在流中排序。
在一个实施例中,系统600包括内容服务器102(例如数据源)、码变换器装置602和604、以及电子装置120。在一个实施例中,码变换器602可用于把媒体流分发给位于小区608中的电子装置,以及码变换器604可用于把媒体流分发给位于小区610中的电子装置。在当前实施例中,内容服务器102产生高比特率、高分辨率的视频流,它被发送到码变换器602。码变换器602把视频流码变换为更低比特率、中等分辨率的视频流,它则被发送给电子装置120。
为了本申请的目的,在一个实施例中,码变换器602称作第一码变换器,而码变换器604则称作第二码变换器。在另一个实施例中,码变换器602称作第二码变换器,而码变换器604则称作第一码变换器。为了简洁清晰起见,在本文中参照码变换器602和码变换器604来描述本发明的实施例。
在一个实施例中,电子装置120为移动装置。在当前实施例中,电子装置120是配置成通过无线连接接收数据的任何装置,包括但不限于膝上型计算机、掌上电脑系统、蜂窝电话等。
图7是具有在其中可实施本发明的实施例的内容分发网络614的用于数据会话切换的一个示范系统700的框图。注意,系统700涉及码变换,作为数据会话切换中可能涉及的示范媒体服务。大家理解,系统700可涉及任何媒体服务,而不限于码变换。在一个实施例中,在系统700中,数据(例如视频媒体)经由无线链路流式传输到移动客户机(例如移动电子装置)。在一个实施例中,数据是以连续流构造及处理的流式数据,例如流式音频和流式视频。
在一个实施例中,系统700包括内容分发网络614(例如数据源)、码变换器装置602和604、以及电子装置120。在一个实施例中,码变换器602可用于把媒体流分发给位于小区608中的电子装置,以及码变换器604可用于把媒体流分发给位于小区610中的电子装置。内容分发网络614包括多个边缘服务器(例如边缘服务器616和618)。边缘服务器616和618在地理上分布,使得它们各用于把媒体分发到地理上接近它们的移动客户机,从而削减网络开销。在当前实施例中,边缘服务器616产生全比特率、高分辨率视频流,它被发送到码变换器602。码变换器602把视频流码变换为更低比特率、中等分辨率的视频流,它则被发送给电子装置120。
在一个实施例中,电子装置120为移动装置。在当前实施例中,电子装置120是配置成通过无线连接接收数据的任何装置,包括但不限于膝上型计算机、掌上电脑系统、蜂窝电话等。
参照图6和图7,系统600以及系统700采用码变换器602和604把视频流码变换为匹配目标电子装置(例如电子装置120)的显示能力的更低比特率的流。
在一个实现中,内容服务器102或边缘服务器616把全比特率媒体流传送给码变换器602,其中,码变换器2602把媒体码变换到位于小区608中的电子装置。应当理解,在一个实施例中,内容服务器102为边缘服务器。然后,码变换器602把媒体流码变换为更低比特率流,并把该流传送给电子装置120。在码变换器602接收到电子装置120正朝另一个小区移动的通知时,码变换器602发起与服务于新小区的另一个码变换器的切换操作。下面以图8A和图8B的过程800详细地论述切换过程。
在一个实施例中,在中央节点、如服务位置管理器302的控制和指导下实现切换。大家理解,另一个实体(例如专用切换管理器)也可执行这个功能。在一个实施例中,服务节点202指定用于把媒体会话传递给另一个服务节点的切换信息。在一个这样的实施例中,切换信息被转发给服务位置管理器302。服务位置管理器302则可选择将接收媒体会话切换的服务节点(例如服务节点204),并把切换信息转发给那个服务节点。在另一个实施例中,服务位置管理器302可识别将接收媒体会话切换的服务节点,并指导服务节点202把切换信息直接传递给那个服务节点。
图8A和图8B是流程图,说明根据本发明的一个实施例的数据会话切换的过程800。在一个实施例中,过程800在码变换器装置(例如码变换器装置602或604)中实现为存储在存储器中并由控制器执行的计算机可读程序指令。虽然在图8A和图8B中公开了具体操作,但这类操作是示范性的。也就是说,本发明极适合于执行其它各种操作或者图8A和图8B中所述的操作的变体。
在过程800的操作805,移动装置(例如图6的电子装置120)联系码变换器(例如图6的码变换器602),请求媒体文件(例如数据)。在一个实施例中,码变换器602可用于把媒体分发给位于小区608中的电子装置。在一个实施例中,移动装置联系最接近的码变换器,请求媒体文件。在一个实施例中,移动装置通过发送消息来联络码变换器。在一个实施例中,消息为传输控制协议(TCP)消息。操作805在图6和图7中以图形方式表示为箭头630。
在操作810,码变换器602联络数据源(例如内容服务器102或内容分发网络614),以便建立媒体会话。在一个实施例中,码变换器602通过发送消息来联络数据源(例如图6的内容服务器102或图7的内容分发网络614)。在一个实施例中,消息为TCP消息。操作810在图6和图7中以图形方式表示为箭头632。
在操作815,数据源开始向码变换器602流式传输所请求媒体。在一个实施例中,所请求媒体采用用户数据报协议(UDP)来传送。操作815在图6和图7中以图形方式表示为箭头634。
在操作820,码变换器602把流式媒体码变换到电子装置120。操作820在图6和图7中以图形方式表示为箭头636。
在操作825,通知码变换器602电子装置120正移动到新的位置(例如小区610)。在一个实施例中,电子装置120把向新位置的移动直接传达给码变换器602。在另一个实施例中,移动的通知通过设置在电子装置120附近并监测电子装置120的移动的摄像机传递给码变换器602。在另一个实施例中,移动到新位置的电子装置120由计算机系统根据电子装置120的所监测行为来预测。在另一个实施例中,移动到新位置的电子装置120根据驻留在电子装置120中、由码变换器602监测的全球定位系统来确定。应当理解,可通过任何方法使码变换器602知道电子装置120向新位置的移动。电子装置120从小区608到小区610的移动在图6和图7中以图形方式表示为箭头636。
在操作830,码变换器602把切换消息发送给小区610附近的码变换器(例如码变换器604),通知码变换器604准备把媒体流式传输到电子装置120。在一个实施例中,切换消息包括码变换信息(例如电子装置120的显示器大小和带宽大小)以及序列首标(例如数据流的当前字节位置)。序列首标表明媒体流的哪个部分目前被传送给电子装置120。在一个实施例中,码变换器602通过发送消息来通知码变换器604。在一个实施例中,消息为TCP消息。操作830在图6和图7中以图形方式表示为箭头638。
在操作835,码变换器604联络数据源,以便建立媒体会话。在一个实施例中,根据在操作830所接收的序列首标来请求媒体会话。通过在序列首标中所表明的比特位置开始媒体会话,电子装置120接收无缝媒体会话,即使在切换码变换器时。在一个实施例中,码变换器604通过发送消息来通知数据源。在一个实施例中,消息为TCP消息。操作835在图6和图7中以图形方式表示为箭头640。
在操作840,数据源开始向码变换器604流式传输所请求媒体。在一个实施例中,如上所述,媒体会话被码变换到电子装置120,以序列首标中表明的比特位置开始,为电子装置120提供无缝媒体会话。在一个实施例中,所请求媒体采用UDP来传送。操作840在图6和图7中以图形方式表示为箭头642。
在操作845,码变换器604通知码变换器602,它准备与电子装置120进行通信以及码变换器602可停止与电子装置120进行通信。在一个实施例中,码变换器604通过发送消息来通知码变换器602。在一个实施例中,消息为TCP消息。操作845在图6和图7中以图形方式表示为箭头644。
在操作850,码变换器604把流式媒体码变换到电子装置120。如上所述,流式媒体以无缝方式提供给电子装置120,以在操作830所接收的序列首标中表明的位置开始码变换。操作850在图6和图7中以图形方式表示为箭头648。
在操作855,码变换器602停止把媒体码变换到电子装置120。
相关工作Degas系统允许采用可编程媒体网关[9]的用户定义的媒体处理。称作deglets的程序可采用声明的编程模型上载到网关。Degas系统包括与媒体网关交互的特殊客户机。另一方面,本文所述的SLM系统可能对符合3GPP的客户机完全透明。Degas系统尝试对于网络带宽使用情况最佳地定位网关,并且可在必要时动态移动处理任务。但没有实现资源管理。系统在媒体网关采用多媒体软件库来优化代码。
在[7]中提出了内容服务网络(CSN)。采用关键帧提取的视频分割用作示例基础服务。与我们的体系结构相似,CSN平衡现有CDN,添加计算(例如处理)作为基础服务。服务分布和管理(SDM)服务器用来维护与网络中的服务以及服务器负荷和客户机人口统计的历史有关的信息。重定向服务器设置在网络边缘,以便向应用代理服务器发送处理请求。所提出的CSN采用DNS重定向,把请求发送给最接近的应用代理。在我们的体系结构中,这个功能完全在应用层由动态SMIL重写来执行。这就不需要来自基础结构的DNS重定向功能。
CSN与SLM/MSA之间的差别*CSN要求独立的覆盖基础结构,它需要附加DNS对于服务分配过程重定向。SLM嵌入现有内容传递结构中,以及服务请求转发完全在应用层由动态SMIL重写来执行。
*CSN采用预订模型,终端用户或者内容提供商预订特定服务。SLM不需要来自任何一方的预订。
*在CSN中,一旦服务会话被分配给服务节点,则那个节点完成该会话,除非节点出故障。SLM可在服务会话中途动态切换到不同的节点。
*CSN采用OPES,它要求服务在可提供结果之前完成。SLM实现流式媒体服务,也就是说,媒体服务的结果可在服务会话正进行时并行提供。
*CSN未公开如何采用动态服务设置/会话分配来实现服务管理。但是,在本文中参照SLM描述了这个方面。
*CSN没有表明如何进行AP(又称作服务节点)的“监测”,因此没有表明监测是否可缩放或者是否自动检测节点故障。SLM可利用基于推送或拉取的监测,如本文所述。
*所接收的监测统计数据(无论它们是如何接收的)由SLM修改为反映最近的分派。CSN没有讲授这个方面。
总之,这些媒体服务是合乎需要的以支持移动装置在从一个位置移动到另一个位置、当开始和停止后台任务、当调整其处理器和显示器参数以允许各种电源管理策略时所提出的显示器、处理器和带宽限制的快速扩展和高度动态的集合。概述的SLM解决方案能够有效地解决通过网络中的多个服务节点对CPU密集的媒体处理任务进行负荷平衡的问题。当客户机访问众所周知的门户站点时,服务位置管理器302把请求动态路由到最少负荷的服务节点。此外,已码变换流以符合3GPP的客户机透明方式从网络中的适当服务节点提供。
对于[6,11]中概述的移动客户机,这种体系结构可扩展到触发媒体服务会话的应用层切换。SLM体系结构极适合确定接近新的客户机位置的媒体服务节点。执行会话中切换的能力允许以比前面所述更为细致的粒度进行负荷平衡。
基于组件化网络的媒体服务的示范体系结构根据本发明的一个实施例的媒体服务体系结构(MSA)可提供灵活的通用体系结构,用于请求、配置和运行对流式音频和视频在其流经网络时进行操作的服务。MSA把所请求媒体服务分解为模块处理组件,它们可分布到遍及网络的服务器,并且可相互通信(例如经由标准流式传输协议)。标准协议的使用还提供MSA与媒体内容传递网络之间的无缝互通性。MSA通过监测连网服务器并且以有效地利用可用计算和网络资源的方式对其分配服务组件,来管理媒体服务。注意,服务的组件化和网络传递允许新的和改进的服务的快速发展,并且促进广泛的服务可用性以及装置兼容性,同时极大地减少终端用户的系统维护负担。
在一个实施例中,MSA通过把复杂媒体服务分解为灵活配置、基于网络的部分,把组件化、基于万维网的服务扩展到流式传输丰富媒体的领域。这种方法允许功能强大的新应用的迅速发展和简单维护,并且促进向大量用户的可缩放性。这全部无需损害媒体服务客户机方面的易用性来实现。
基于网络的媒体服务在独立系统中对音频、视频和其它媒体执行的许多类型的分析可集成到连网处理体系结构中。例如,语音识别、面部检测和识别以及音频降噪可以只是从本地台式机移动到具有可用带宽和处理能力的连网服务器机器。另外,MSA使实际的新的高值服务可用,其中包括视频合成两个或两个以上视频流可根据掩码逐个图像被混合,从而产生具有来自多个源的内容的单个视频流。“画中画”和“蓝屏”特殊效果就属于许多应用之中的。视频码变换可能是克服输入流的失配格式、分辨率和帧速率所需的。
会议总结和转录当会议中有摄像机和话筒时,输入的音频和视频流可在网络中被收集,并且采用视频和音频分割以及语音和面部识别来处理,从而产生会议的索引记录。另外,自动语音识别(ASR)、关键字定位以及文档摘要可用来产生会议的索引、注释及部分转录的记录。这些类型的记录可用于以后快速回忆会议内容。
多源音频增强例如在带有若干话筒启用的个人数字助理(PDA)或其它电子记录装置的会议中从单个房间的不同话筒捕捉多个音频流时,盲源分离可应用于这种自组话筒阵列,以便对来自不同参加者的语音进行分离和降噪。
动态视野选择在现场电话会议和万维网播放讲座应用中,多个摄像机对于充分覆盖面积往往是需要的。最佳摄像机视野在事件过程中通常多次改变。来自事件的视频和音频流的分析可由基于网络的服务用来自动选择最佳视频馈送。
这些类型的媒体分析当今通过本地台式机处理可获得。但是,在网络中间对媒体流进行操作的组件化服务提供优于传统台式机模型的许多优点,其中包括改进的应用提供开发人员能够通过只是更新MSA来快速分布改进的服务。通过混合及匹配组件快速创建新的服务。每当用户可达网络时,应用程序均可用,而不只是当他们能够访问其中可能安装了应用程序的他们自己的机器时。
简化系统管理由于在网络中执行处理,因此,终端用户不需要担心在其自己的机器上的连续安装和更新困难。
多流处理的简化许多基于媒体的应用,例如会议总结,涉及要收集以便联合处理的多个流。当这些流不是源于同一机器时,在网络中间对它们处理通常更为有效。
可控计算环境虽然各个用户的机器可能在其计算能力、存储容量和操作系统方面极为不同,但MSA机器可标准化为较小范围的技术要求。可对于这些技术要求开发和优化服务组件,从而产生更可靠的整体应用性能。
结果的有效共享在许多情况、例如会议总结上下文中,多个用户需要的处理媒体和分析结果几乎相同。不是在每个用户的机器上复制这个处理,而是网络中间处理可执行一次重叠计算,然后把结果分发给各用户。简言之,基于网络的媒体处理服务为用户提供比当前的本地媒体集中应用更大的灵活性和功能性的可能性,还简化了维护及可靠性问题。
媒体服务体系结构(MSA)MSA的实施例集中在与媒体传递体系结构的结合以及以高度灵活方式实现媒体服务。MSA的一些特征可包括互通性组件之间采用开放式接口和标准的无缝流式互连;模块性模块服务组件,允许网络中间动态媒体服务构造;以及可管理性以可缩放方式对计算和存储资源的媒体服务的有效分配。
下面论述体系结构可用来提供这些特征的每个的方式。
流式互通性的无缝互连MSA中以及MSA的组件与媒体内容传递网络(CDN)的组件之间的媒体流的所有机器间传输可经由可称作“Ears”的统一输入和输出模块来进行。在一个实施例中,Ears依靠基于标准的媒体流式传输协议,从而使MSA与CDN及其它流式媒体应用的结合更容易。输入和输出Ears都可非限制性地经由用于描述多媒体的SDP协议、用于会话管理和媒体重放控制的实时流式传输协议(RTSP)以及在实时限制下用于数据传输的实时协议/实时控制协议(RTP/RTCP)与其它连网机器进行通信。给定Ear可管理单个媒体流的流程的一端(发送或接收),但是,多个Ears可链接到同一个同步流式会话。
Ears还可提供数据压缩及解压缩功能性,使得流经该体系结构的多媒体可在通常用于网络传输的压缩格式与媒体处理和分析技术通常需要的未压缩格式之间进行相互转换。输入Ears可自动检测输入媒体流的格式,并采用适当的解压缩模块把数据转换为适合媒体分析的形式。输出Ears可把原始数据流转换为适合网络传输的压缩格式。所支持的标准压缩方案可包括但不限于活动图像专家组(MPEG)、MPEG-1、-2和-4视频及音频/调制解调器插卡(AMR)和WAV音频。注意,可通过注册适当的压缩和解压缩模块来增加新的格式。
最后,由于媒体处理技术可能不是以与流式媒体相同的速率工作,因此,Ears可实现数据缓冲以及流量控制方法,来消除数据速率失配。循环缓冲使昂贵的数据复制、来自网络、应用程序以及解压缩和压缩例程的多线程有效服务数据请求减至最少。缓冲器溢出可通过用于丢弃帧的可选策略来处理。
灵活、模块服务分解MSA服务可通过采用简单高级媒体服务请求联络服务门户来发起。这些请求可由用户装置经由网络、如因特网直接进行,或者它们可通过由用户装置运行的、本地或MSA中的应用程序产生。各请求可包含例如“视频合成”等的服务名称以及例如源和目标统一资源定位符(URL)等的任何服务参数。
这些简单媒体服务请求对请求客户机隐藏大部分媒体服务的复杂度。例如,会议总结可采用语音识别、面部检测、视频运动分析以及语音标识,并且这些组件技术的每个又可分为若干子组件。另一方面,给定的处理技术可能是许多不同服务中的有用组件。为此,希望把媒体处理技术封装成灵活且动态组合的模块化可再用组件。
因此,各媒体服务被构造为通过数据流进行通信的独立“组件”的图表。各组件可封装密切联合工作的一个或多个“子组件”处理技术。一个媒体服务的组件可动态安排在单个机器上或者分布在网络上。由于组件良好地封装,因此每个可无需关心这种分布而进行工作。
图10是根据本发明的一个实施例的框图,说明示范操作,MSA通过这些操作来分解和分布服务。在接收用户装置1002发出的媒体服务请求1004之后,服务门户1006启动,并且运行服务构建器1008以管理请求的完成。注意,每个命名的媒体服务可与不同的服务构建器(例如1008)关联,以及各服务构建器了解将实现那个服务的组件(例如1001)的抽象图的结构。对于这个图中的各组件,服务构建器1008向“服务位置管理器”(SLM)1012发送组件安排请求1010,以便如本文所述确定要在其中运行一个或多个组件的连网服务使能机器(例如1022、1024或1026)。SLM 1012把组件安排决定1014返回给服务构建器1008,它可包括各组件的每个输入和输出流的特定URL(具有端口号)。服务构建器1008按所选服务使能机器(例如1022)把这些决定分组,然后经由网络(例如因特网1028)向每个所选机器发送一个构造请求1016,列出预期组件120及其输入和输出URL。
本地构建器“本地构建器”(例如1018)在每个MSA机器(例如1022、1024和1026)上运行,以便服务于构造请求1016。对于给定请求1016,本地构建器1018可创建命名组件中的每个,以及采用输入和输出URL来例示Ears 1030和1032,从而在这些组件与其它机器(例如1022和1026)上的那些组件之间发送和接收数据。这样,本地构建器1018耦合服务组件。本地构建器1018还通过消除一个以上组件进行的相同子组件处理,尝试优化在单个机器(例如1024)上运行的相互通信组件的每个集合。当服务被分为适当大小、可再用的组件时,有时出现这种重复。因而,服务模块性的这种成本通过本地构建器优化来减小。在消除冗余子组件处理之后,本地构建器根据需要重定向合并组件的输入和输出流,以便完成服务处理。
在图10中,在所有构建请求1016完成之后,服务准备运行。最接近数据目的地的服务图中的组件非限制性地经由RTSP PLAY命令来请求媒体,从而使数据经过连接组件的整个图。因此,预期媒体来自一个或多个源(例如内容服务器1033和现场摄像机1035及1037),以及所选服务组件对流式媒体进行操作,以便最终把已处理媒体传递到目的地(例如输出显示器1003)。注意,图10中看起来与箭头1032类似的箭头表示流式媒体/数据。
动态服务位置管理-组件安排MSA网络中的许多单独的机器能够执行媒体服务的基本处理。因此,对于各媒体服务请求(例如1004),可作出关于如何分配MSA资源以便最好地完成请求的决定。为了避免不适当地增加网络负荷,这些决定可部分基于各个服务使能机器(例如1022、1024和/或1026)与媒体流的源与目的地之间的良好路径的(网络)接近性。为了为服务提供最小延迟以及最高质量,这些决定也可考虑各MSA媒体处理器所承载的当前处理负荷。最后,当服务的一些组件共享子组件处理时,可能最好是将其分组在相同服务使能机器(例如1022、1024或1026)上。
智能地作出这些决定的一种方式是利用[17]中所述的“服务位置管理”。MSA包含服务位置管理器(SLM)、例如1012,它确定安排组成服务的各个组件的位置。对于给定的媒体服务请求(例如1004),SLM(例如1012)以关联服务构建器(例如1008)所定义的顺序一次安排一个服务组件,考虑下面描述的多个因素。组件的安排决定或者可通过对所有因素及所有组件的联合优化同时进行,但这甚至对于适当复杂的服务也可能是复杂、费时的程序。不同组件的安排决定或者也可完全独立地进行,但这可能导致低效的数据路径和重复子组件处理。SLM(例如1012)而是可维护最近的组件安排决定的表格,并且使每个新的决定部分基于这个历史记录。
例如,各组件安排决定可部分基于相同服务请求的其它组件的先前决定,使得对于该服务在抽象图中相互耦合的组件可优先安排在相同的服务使能机器(例如1022)上或者安排在具有高带宽和/或低等待时间互连的机器上。注意,组件安排决定以先前决定历史记录为基础是可能为昂贵过程的对组件的整个图的联合安排优化与可能导致过度复杂数据路径和故障以消除重叠计算的完全独立安排决定之间的折衷。因此,SLM(例如1012)可被允许根据先前安排决定来优化安排,但是可能不尝试优化全组件图上的分配。或者,注意,SLM(例如1012)可被允许根据先前安排决定来优化安排,并且可尝试优化全组件图上的分配。
图11是根据本实施例的一个实施例的服务位置管理方法的框图。对于服务构建器1008向SLM 1012发送的各组件安排请求1010,SLM 1012首先可根据网络位置和先前的组件安排决定来选择可能的主机(例如1022、1024和/或1026)的池。为了评估网络位置,SLM 1012可咨询服务器机器(例如1022、1024和1026)之间的网络“距离”表格1102,以便确定哪些机器是在服务数据源和目的地或者它们之间的路径附近。注意,表格距离可通过所测量的网络延迟及带宽来确定。服务的其它组件先前已经安排到其中的机器对于当前组件的安排可由SLM 1012给予更大的优选权,特别是在那些先前安排的组件要直接耦合到当前组件或者被指示可能与当前组件共享子组件处理时。所有这种信息可组合为计算每个可能的主机(例如1022、1024或1026)的“机器安排成本”。
SLM 1012还可审查先前的组件安排决定,以便通过联合组件安排来查找可能的计算节省。在一个实施例中,每种类型的组件与所包含的命名“子组件”技术的列表关联。例如,“语音识别”组件可能计算(音频)倒谱特征,并且采用HMM对它们进行分析。如果存在具有先前安排组件中的相同倒谱子组件的机器,则可为那个机器提供当前决定过程中的优选权。这种信息可与网络位置评估结合以便产生“机器安排成本”1106,以及具有最低成本的机器组成当前组件的可能的主机的池。这些成本随后可根据各机器上的资源可用性来调整。
在图11中,通过向与那种类型的组件关联的资源要求例程1108提供服务参数、如媒体分辨率和帧速率,组件的所需计算和存储资源由SLM 1012来确定。可能的主机上的资源可用性可由SLM 1012通过向其发送资源查询1116咨询驻留在那些机器(1022、1024和1026)上的本地资源管理器(LRM)(例如1110、1112和1114)来确定。注意,各LRM(例如1110、1112或1114)可通过对其操作系统的直接查询来监测那个机器的状态。还要注意,LRM又可称作服务位置监控程序(SLS)。LRM还可跟踪(未示出)来自机器的本地构建器(例如1018)的挂起和最近完成的请求,因为它们可能仍未反映在当前处理器负荷统计数据中。各LRM(例如1110、1112或1114)则可向SLM 1012返回机器资源状态以及当安排在其中时保留供组件使用的网络端口号。SLM 1012可与机器的资源可用性成反比地增加所有机器安排成本1106。因此,SLM 1012可计算每个可能的主机(例如1022、1024或1026)的最终机器安排成本1106。
具有最低机器安排成本的机器可选作组件主机。指定这个主机并包含组件输入和输出URL及保留端口的组件安排决定1014可由SLM 1012返回给服务构建器1008。SLM 1012的最近安排决定1104的表格也可经过更新以反映这种信息。
在图10和图11中,要注意,SLM 1012可根据服务使能机器负荷、网络负荷和/或带宽、客户机位置、现有媒体/数据服务流式会话、客户机请求的聚集等来决定安排组件的位置。这样,SLM 1012能够管理多个媒体/数据服务流式会话。
示范服务实现要注意,已经实现MSA的原型以及可从其中构建各种服务的组件。为了更好地说明MSA的实施例的操作和益处,论述对视频媒体进行操作的三种组件所支持的服务大小调整改变视频的宽度和/或高度;例如,高分辨率的视频可经过向下抽样,以便更好地传输以及在PDA上显示。
背景技术
消除提取画面中的动态或“关注”对象、如人,同时抑制画面的其它无变化方面、如墙壁和家具。背景消除组件的一个实施例可基于[18]的技术。它尝试采用固定颜色(如白色)来替换画面中的背景,同时保持前景没有改变。
合成利用掩码、采用来自另一个图像或视频流的像素来替换视频流中的像素,例如本地电视(TV)天气预报所使用的“蓝屏”技术那样。合成组件可采用来自另一个图像或流的像素替换具有特殊颜色(如白色)的视频流像素,同时保持其它像素没有改变。
许多有用的服务可从这三种组件中构造。
对于现代CDN设计[19,20],视频到适合移动客户机、如PDA和移动电话的更低分辨率的码变换是符合需要的,并且可经由大小调整组件来实现。
通过在长时间周期进行画面外观的显式建模,背景消除组件能够分割画面的关注对象,使得更多比特可用来对其编码。对于静止摄像机,背景只需要在接近视频开始时传送一次,以及每当它实质上改变时再一次传送。这可实现优于标准压缩的大量增益。标准压缩在每当由运动前景对象展现的情况下将把背景作为“新的”某种内容重传。因此,这个背景消除组件可选地与大小调整结合可用来提供到用户所请求的极低目标等级的比特率降低。
这里的论述集中于采用上述全部三种组件的“移动私人视频电话”(MPVP)服务。要注意,通过采用合成以便用他们选择的图像或视频来替换其背景,MPVP允许视频电话会议参加者防止他人观看其周围环境的详细情况。例如,从海滩打电话的人可能更喜欢采用他/她的办公室的背景。对于在移动装置上接收视频的用户,也可使用向下抽样(经由大小调整),以便获得比特率降低。
MPVP服务可在已经对远程参与者开放音频信道并且现在希望增加视频的因特网协议(IP)电话应用中启动。该应用可向MSA服务门户(例如1006)发送对“MPVP”服务的请求以及诸如目标IP地址和预期视频分辨率之类的参数。门户1006则可启动MPVP服务构建器(例如1008),它了解服务的抽象图,如图12a中所示的一个。要注意,图12a是根据本发明的实施例的服务的组件的示范抽象图1200。具体来说,抽象图1200包括来自视频源1202的视频,它被发送给大小调整组件1204,大小调整组件1204将其输出发送给背景消除1206,背景消除1206又在最终把视频传递给视频目的地1210之前馈入合成1208。
服务构建器(例如1008)可向SLM(例如1012)以它们在抽象图1200中出现的顺序发送三种组件的每个的组件安排请求(例如1010)。为了进行说明,在图12b-d中假定网络1212包含图10和图11的SLM 1012可在其中安排组件的服务使能机器1022、1024和1026。另外,SLM 1012还可能知道在组件的两个或两个以上被安排在相同机器(例如1026)时能够减少多少计算。SLM 1012可考虑可能的计算节省、各机器上的当前计算负荷水平、各组件的处理要求以及网络拓扑和负荷水平,以便得出关于如何分布组件的决定。网络1212上的组件的三种示范分布如图12b-d所示。
在图12b-d中,服务器1022、1024和1026以及视频源1214以及目的地1216安排成反映它们的相对网络距离。要注意,图像表示各链路上流动的(可能已处理的)视频。没有处理组件的机器只是转发媒体。
图12b的第一分布不是我们的SLM特别支持的,因为它的长数据路径对于服务将导致高等待时间。这种分布可由更简单的安排技术、例如随机选择来选取,它不考虑网络拓扑和安排历史记录。具体来说,视频源1214把视频发送给服务使能机器1026,它将其输出发送给服务使能机器1022进行大小调整1204和背景消除1206,服务使能机器1022又在最终把视频传递到其目的地、即PDA 1216之前馈入服务使能机器1024进行合成1208。
图12c的第二配置把所有组件1204-1208安排在服务使能机器1026上。具体来说,视频源1214把视频发送给服务使能机器1024,它将其输出发送给服务使能机器1026进行大小调整1204、背景消除1206以及合成1208,服务使能机器1026又在最终把视频传递到其目的地、即PDA 1216之前馈入服务使能机器1022。通过把所有组件1204-1208安排在服务使能机器1026上,这不只是通过消除冗余子组件处理,而且还通过消除当组件1204-1208处于分离的机器时将要执行的、即由Ears 1030、1032、1218和1220执行的额外视频解压缩和压缩步骤,来产生计算节省。图12c的配置因而极大地减少引入服务网络1212的整体计算负荷,并且在系统负荷等级很高时、例如当许多服务正在进行时可能是优选的。
但是,把所有组件安排在一个机器上的缺点在于,它们的组合处理不太可能跟上由视频源1214发出的流式视频的帧速率。例如,可能难以完全在同一台机器(例如1026)上以每秒30帧进行大小调整1204、背景消除1206以及合成1208,使得一些帧可能需要被丢弃,并且所产生的视频质量下降。
另一方面,通过在三个不同机器(例如1022-1026)上散布组件1204-1208,如图12d所示,所有三个组件1204-1208更可能以每秒30帧平稳地运行,而没有丢弃帧,特别是当选取这些机器1022-1026时,因为它们相对没有负担。具体来说,视频源1214把视频发送给服务使能机器1024进行大小调整1204,它将其输出发送给服务使能机器1026进行背景消除1206,服务使能机器1026在把视频传递到其目的地、即PDA 1216之前将其输出发送给服务使能机器1022进行合成1208。
SLM(例如1012)作出的安排决定被返回给服务构建器(例如1008),它按照机器将其分组,并向驻留在那些机器上的本地构建器(例如1018)发出构造请求(例如1016)。本地构建器启动所请求组件(例如1204、1206和/或1208),并根据构造请求中指定的URL指导它们发送和接收数据。当所有本地构建器已经通知服务构建器它们的组件准备就绪时,通过服务的媒体可经由RTSP“PLAY”命令来启动。要注意,图12b-d中的机器之间的链路上所示的图像表示对于实际视频流在其流经各种服务拓扑时进行的处理的实例。
图12a-d的这些服务实例说明MSA的一些方面。大家理解,这种方法可扩展为结合附加类型的组件处理以及已处理流到多个用户装置的分支,各用户装置可能请求沿他自己分支的不同的进一步处理。另外,虽然这个实例从视频输入产生视频输出,但其它服务组件的许多也可能采用视频和音频分析来产生非媒体数据流、如文本(例如从语音识别中)或者事件概述和时间索引(例如从基于视觉的人的跟踪和活动分析)。另外,SLM(例如1012)可能决定以多个方式的任一种来分布组件,取决于服务器的计算负荷、网络拓扑和负荷等级、以及可通过组件在相同服务使能机器上的联合安排得到的处理数量的减少。
要注意,视频和音频分析及处理的许多先进技术仍然需要不断发展到广泛使用的应用中。这可能部分因为在获取它们通常要求的大量处理资源方面以及在把这些应用连接到关注媒体源和希望的输出位置方面配置复杂媒体处理应用的困难。通过实现存在于网络本身的灵活媒体处理,媒体服务体系结构的一个实施例具有使先进的媒体丰富应用成为主流、广泛使用的可能性。这种体系结构的实施例易于与媒体CDN结合,允许服务的模块性以便易于重新配置和再使用,以及促进宝贵的网络资源的有效分配,同时减少终端用户的维护、兼容性和可用性问题。
要注意,MSA中的机器间和/或节点间的通信可根据本发明的实施例以各种各样的方式来实现。这种通信可包括但不限于服务构建器与SLM通信、服务构建器与一个或多个本地构建器通信、LRM与SLM通信以及LRM与本地构建器通信。注意,LRM与本地构建器之间的通信可能不是机器间的,而可能是机器或节点内、非限制性地采用操作系统、本地文件等的通信。
图13是根据本发明的一个实施例执行的、用于管理又可称作媒体流服务的流式媒体服务的操作的流程图1300。流程图1300包括本发明的过程,在一些实施例中,这些过程由处理器和电气组件在计算机可读和计算机可执行指令的控制下执行。计算机可读和计算机可执行指令例如可驻留在诸如计算机可用易失性存储器、计算机可用非易失性存储器和/或计算机可用大容量数据存储装置之类的数据存储功能中。但是,计算机可读和计算机可执行指令可驻留在任何类型的计算机可读介质中。虽然在流程图1300中公开了具体操作,但这类操作是示范性的。也就是说,当前实施例极适合于执行其它各种操作或者图13中所述的操作的变体。在当前实施例中,要注意,流程图1300的操作可由软件、由硬件或者由软件和硬件的任何组合来执行。
在操作1302,从客户机接收对于流式媒体服务的请求。流式媒体服务包括多个组件媒体服务。
在操作1304,对于多个组件媒体服务中的哪个组件媒体服务要分配给网络的多个服务节点中的一个服务节点进行确定。
在操作1306,通知分配用于执行多个组件媒体服务中的一个组件媒体服务的各服务节点,使流式媒体服务能够对流式媒体执行。
在操作1308,产生每个所分配服务节点的输入通信套接字和输出通信套接字,以便实现所分配服务节点之间的通信。
MSA中的多个流处理例如视频合成之类的应用可能是基于网络的媒体服务,由媒体服务体系结构(MSA)来实现。对于视频合成,多个视频流必需共同经过处理,以便产生新的视频流。这种应用可用来提供画中画效果。
图14是根据本发明的一个实施例的MSA中被处理的多个媒体流的框图。通过建立可从不同输入流(例如1408和1410)获取内容的收听Ears(例如1412和1414),MSA可支持这种服务。媒体流式源(例如1402和1404)由服务位置管理器(未示出)指定,它可能把合成服务安排在(例如)两个视频服务之间中途的网络点(例如服务节点1406)。合成服务1416则使两个流(例如1408a和1410)彼此同步,并且可通过把来自流1408的已码变换视频1408a重叠到另外的流1410来执行“画中画”操作,然后再通过输出Ear 1418流出所得视频1420。实施例说明在媒体服务、在本例中为视频合成(例如1416)的输入侧可如何管理多个流。
图15是根据本发明的另一个实施例的MSA中被处理的多个媒体流的框图。具体来说,通过“分接”现有服务会话的输出作为对新建服务会话的输入,本地构建器(或SLM)(均未示出)可当流式媒体通过网络时对其优化。
要注意,图15的组件以类似于以上所述的图14的组件的方式进行操作。但是,在图15中,如果服务正在进行并且另一个客户机(未示出)请求视频1408的已码变换形式,则SLM可向合成服务1416发送消息(经由SOAP/XML),以便使视频1408的已码变换形式可用于新的客户机。
要注意,多个媒体流可根据本发明的实施例以各种各样的方式来处理。例如,视频流可由服务使能机器来接收,该服务使能机器对其进行码变换,然后把已码变换视频输出给多个客户机。另外,视频流到达第一节点,以及背景消除被执行。第一节点向正运行合成服务的第二节点发出前景。第二节点还具有从其它某个源到达其中的第二视频流。第二节点向第五节点输出所接收的前景视频和第二视频流的合成视频流。另外,第一视频流的其它某个部分还被发到可能正进行某种人标识的第三节点,存在运行于那个节点上的耦合组件。第三节点产生某个索引,由正运行某种文本生成的第四节点接收,它被输出到运行某个服务的第五节点,该服务组合输入以便产生海滩上的人的输出,在他的下方带有他的名字。另外,音频流可到达第四节点,它被输出到第五节点。
图16是根据本发明的一个实施例执行的操作的流程图1600。流程图1600包括本发明的过程,在一些实施例中,这些过程由处理器和电气组件在计算机可读和计算机可执行指令的控制下执行。计算机可读和计算机可执行指令例如可驻留在诸如计算机可用易失性存储器、计算机可用非易失性存储器和/或计算机可用大容量数据存储装置之类的数据存储功能中。但是,计算机可读和计算机可执行指令可驻留在任何类型的计算机可读介质中。虽然在流程图1600中公开了具体操作,但这类操作是示范性的。也就是说,当前实施例极适合于执行其它各种操作或者图16中所述的操作的变体。在当前实施例中,要注意,流程图1600的操作可由软件、由硬件或者由软件和硬件的任何组合来执行。
在操作1602,收听以及接收来自客户机的服务请求和参数。
在操作1604,接收如何实现所请求服务的描述。
在操作1606,选择要在其中运行服务的实现的连网计算机,并确定如何进行预期网络连接。
在操作1608,准备在所选连网计算机上进行处理。
在操作1610,开始媒体通过网络以及通过所选计算机上的处理的流程。要注意,数据结果被路由到服务请求中指定的目的地。
图17是根据本发明的一个实施例执行的操作的流程图1700。流程图1700包括本发明的过程,在一些实施例中,这些过程由处理器和电气组件在计算机可读和计算机可执行指令的控制下执行。计算机可读和计算机可执行指令例如可驻留在诸如计算机可用易失性存储器、计算机可用非易失性存储器和/或计算机可用大容量数据存储装置之类的数据存储功能中。但是,计算机可读和计算机可执行指令可驻留在任何类型的计算机可读介质中。虽然在流程图1700中公开了具体操作,但这类操作是示范性的。也就是说,当前实施例极适合于执行其它各种操作或者图17中所述的操作的变体。在当前实施例中,要注意,流程图1700的操作可由软件、由硬件或者由软件和硬件的任何组合来执行。
在操作1602,收听以及接收来自客户机的服务请求和参数。
在操作1702,接收实现服务的组件的抽象图以及各组件的资源要求。
在操作1704,选择要在其中运行各服务组件的连网计算机。
在操作1706,请求所选机器上的组件的构造,并且准备它们的互连。
在操作1708,开始媒体通过在网络上分布的处理组件的流程。要注意,数据结果被路由到服务请求中指定的目的地。
注意,Ear可以各种各样的方式来实现。例如,输入Ear可采用RTP/RTSP进行接收,并且还包括错误复原解码器插件、智能缓冲、流量管理以及最小数据复制。此外,输出Ear可采用RTP/RTSP进行发送,并且包括可变帧速率编码器插件、智能缓冲以及流量管理。另外,输入Ear或输出Ear可包括压缩或解压缩的功能。每个Ear管理单个媒体流的流程的一端(发送或接收)。可采用基于标准的媒体流式传输(RTP/RTCP/RTSP)。另外,Ears采用编码器和解码器插件(例如MPEG-1、-2、-4、AMR、WAV)在适合媒体传递的压缩格式与通常用于媒体处理的未压缩格式之间转换。另外,缓冲、流量控制和帧丢弃策略也可由Ears来实现,以便使传递与处理之间的数据速率失配平滑。
要注意,图10、图11、图12a-d以及本文所述的其它实施例包括若干过程,在一些实施例中,这些过程由处理器和电气组件在计算机可读和计算机可执行指令的控制下执行。计算机可读和计算机可执行指令例如可驻留在诸如计算机可用易失性存储器、计算机可用非易失性存储器和/或计算机可用大容量数据存储装置之类的数据存储功能中。但是,计算机可读和计算机可执行指令可驻留在任何类型的计算机可读介质中。虽然本文公开了具体操作,但这类操作是示范性的。也就是说,这些实施例极适合于执行其它各种操作或者本文所述的操作的变体。要注意,本文所述的操作可由软件、由硬件或者由软件和硬件的任何组合来执行。
为了说明和描述,提供本发明具体实施例的以上描述。它们不意味着涵盖所有方面或仅将本发明限制为所公开的精确形式,显然,根据上述理论,许多修改和变更都是可行的。选择并描述了这些实施例,以便最佳说明本发明的原理及其实际应用,从而使本领域的技术人员能够以适合所考虑的具体使用的各种修改最佳利用本发明和各种实施例。本发明的范围由本文所附的权利要求及其等效物定义。
权利要求
1.一种用于管理流式媒体服务的方法(1300),所述方法包括从客户机(1002)接收(1302)对于流式媒体服务的请求(1004),所述流式媒体服务包括多个媒体服务组件(1020);确定(1304)所述多个媒体服务组件中的哪个媒体服务组件要分配给网络(1212)的多个服务节点中的一个服务节点(1022);以及通知(1306)分配用于执行所述多个媒体服务组件中的一个媒体服务组件的各服务节点,使所述流式媒体服务能够对流式媒体(1032)执行。
2.如权利要求1所述的方法,其特征在于,所述流式媒体从视频、音频、多媒体和文本中选取。
3.如权利要求1所述的方法,其特征在于,所述确定是基于所述客户机的位置。
4.如权利要求1所述的方法,其特征在于,所述确定是基于所述网络的带宽。
5.如权利要求1所述的方法,其特征在于,所述确定是基于所述网络上的负荷。
6.如权利要求1所述的方法,其特征在于,所述确定是基于所述多个服务节点中的每个服务节点上的负荷。
7.如权利要求1所述的方法,其特征在于,所述确定是基于所述网络上的现有流式媒体服务。
8.如权利要求1所述的方法,其特征在于,所述确定是基于先前分配的媒体服务组件。
9.如权利要求1所述的方法,其特征在于,所述接收所述请求是通过服务门户。
10.如权利要求1所述的方法,其特征在于,还包括为每个所分配服务节点产生(1308)输入通信套接字(1218)和输出通信套接字(1220),从而使所述所分配服务节点之间能够通信。
全文摘要
本发明的一个实施例包括用于管理流式媒体服务的方法(1300)。该方法包括从客户机(1002)接收(1302)对于流式媒体服务的请求(1004)。流式媒体服务包括多个媒体服务组件(1020)。另外,该方法还包括确定(1304)多个媒体服务组件中的哪个媒体服务组件要分配给网络(1212)的多个服务节点中的一个服务节点(1022)。该方法还包括通知(1306)分配用于执行媒体服务组件的各服务节点,使流式媒体服务能够对流式媒体(1032)执行。
文档编号H04L29/06GK1843013SQ200480024677
公开日2006年10月4日 申请日期2004年7月1日 优先权日2003年7月4日
发明者M·哈维尔, M·科维尔, S·J·韦, R·苏密特, J·安科恩, B·沈 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1