控制数据流的制作方法

文档序号:7775600阅读:188来源:国知局
控制数据流的制作方法
【专利摘要】本发明的各实施例涉及控制数据流。本申请涉及一种用于控制从服务器计算机到客户端计算机的数据流的计算机实施的方法、计算机程序产品和计算机系统。客户端计算机包括数据流客户端并且服务器计算机包括数据流服务器。在数据流客户端从数据流服务器接收数据流时,该方法可以包括由客户端计算机生成功率管理减少事件。在接收数据流时,该方法还可以包括由数据流客户端接收功率管理减少事件。在接收数据流时,该方法还可以包括从数据流客户端向数据流服务器发送对暂时中断数据流的第一暂停请求。可以在接收功率管理减少事件之后发送第一暂停请求。该方法还可以包括由客户端计算机响应于功率功率减少事件从全工作功率状态向减少功率消耗状态转变。
【专利说明】控制数据流
【技术领域】
[0001]本申请涉及一种用于控制数据流的计算机实施的方法、计算机程序产品和计算机系统。
【背景技术】
[0002]数据流传输、特别是媒体流传输正在变得越来越常见。提供数据流传输的服务利用网络资源。具体而言,数据流传输、特别是视频流传输消耗网络带宽、数据流服务器处理能力以及路由和切换资源。
[0003]因而,节约由数据流消耗的网络资源可能是一个问题。

【发明内容】

[0004]数据流可以被理解为用来传输信息的数字相干信号(例如,数据分组)的序列。在一些情况下,可以从服务器计算机向客户端计算机以连续(或者基本上连续)方式传输数据流。数据流也可以由客户端计算机连续(或者基本上连续)接收。
[0005]数据流可以被实施为媒体流,例如,音频、视频、文字流。可以实况或者按需用流传输数据流。实况流传输也被称为“真实流传输”。真实流传输向客户端计算机直接发送信息而未向硬盘保存文件。按需流传输也可以被称为渐进流传输或者渐进下载。可以通过向硬盘保存文件并且然后播放在硬盘上存储的文件来实施渐进流传输。数据流的内容可以在整个数据流由服务器计算机发送或者传输之前由客户端的计算机处理或者显示。换言之,客户端计算机可以在接收数据流之时处理它。
[0006]客户端计算机(例如,客户端计算机的数据流客户端)可以是数据流宿并且服务器计算机(例如,服务器计算机的数据流服务器)可以是数据流源。因此,服务器计算机生成数据流、在消息中跨越网络(例如,因特网)发送数据流,并且宿在数据流到达时处理数据流。在视频流的示例中,服务器计算机生成视频流(例如,使用视频捕获卡)、在消息中跨越网络发送视频流,并且宿在视频流到达时显示视频流。
[0007]可以用原始形式(例如,以75Mbps的吞吐率传输数据流。也可以压缩(即,使用编码解码器传输或者编码)(例如,以2Mbps的平均速率传输)数据流。
[0008]可以使用单播协议或者多播协议来发送数据流。在使用多播协议时,服务器计算机发送出对所有客户端计算机公共的单个数据流。
[0009]数据流客户端(也被称为流传输客户端)可以被实施为媒体播放器,比如QuickTime (QuickTime是苹果公司的商标)播放器或者Winamp播放器。数据流客户端可以被理解为在客户端计算机上可执行,并且能够处理数据流的软件。
[0010]数据流服务器可以被实施为流传输服务器,比如QuickTime流传输服务器、Helix通用服务器或者Windows媒体服务(Windows是微软公司的商标)。
[0011]可以根据高级配置和功率接口(ACPI)规范、高级功率管理(APM)规范或者定义功率管理状态的另一标准或者规范来理解功率状态或者功率消耗状态。[0012]全工作功率状态可以被理解为其中对应计算机运转的状态。开启计算机。个别设备也可以在低或者减少功率消耗状态中。此外,处理器可以在低或者减少功率状态中。备选地,全工作功率状态可以意味着没有设备在功率节省模式中(即,没有设备在减少功率状态、减少功率消耗状态或者低功率状态中)。
[0013]可互换地使用术语“功率状态”和“功率消耗状态”。减少功率消耗状态也可以被称为低功率消耗状态或者降低功率消耗状态。
[0014]功率管理事件(也被称为系统功率管理事件)(比如功率管理减少事件或者功率管理增加事件)可以由计算机的固件或者由计算机的操作系统生成。在由计算机的固件生成时,功率管理事件可以由计算机的基本输入/输出系统(BIOS)生成。可以在功率管理事件与计算机的功率消耗之间存在随意关系。具体而言,可以鉴于计算机的功率消耗中的未决改变来生成功率管理事件,或者可以由于计算机的功率消耗中的改变已经出现而生成功率管理事件。此外,可以在功率管理事件(也被称为功率管理事件)与计算机的功率消耗之间存在时间关系。具体而言,可以在计算机的功率消耗中的改变之前或者在计算机的功率消耗中的改变之后生成功率管理事件。
[0015]可以由计算机的功率状态中的改变、设备或者计算机的操作模式中的改变或者功率设置的值中的改变触发功率管理事件。可以通过例如由于计算机不活跃或者由于用户例如通过敲击睡眠键来将计算机手动置于睡眠而将计算机切换成睡眠状态来触发功率管理事件。
[0016]因而,可以是由于计算机的功率消耗中的未决改变(例如,计算机将从全工作状态向入睡状态转变)而生成功率管理减少事件。也可以在计算机的功率消耗中的改变之前(即,在从全工作功率状态向减少功率消耗状态转变之前)生成功率管理减少事件。
[0017]减少功率消耗状态也可以被称为减少功率状态、低功率状态或者降低功率状态。
[0018]可以由于计算机的功率消耗中的增加而生成功率管理增加事件。也可以在计算机的功率消耗中的增加之后生成功率管理增加事件。更具体而言,可以在从减少功率消耗状态向全工作功率状态转变之后生成功率管理增加事件。
[0019]说明书中描述的主题内容可以被实施为方法或者系统,、可能是一个或者多个计算机程序产品的形式。可以在数据信号中或者在机器可读介质上实施说明书中描述的主题内容,其中在一个或者多个信息载体(比如CD-ROM、DVD-ROM、半导体存储器或者硬盘)中体现介质。这样的计算机程序产品可以使数据处理装置执行说明书中描述的一个或者多个操作。
[0020]此外,说明书中描述的主题内容也可以被实施为包括处理器和耦合到处理器的存储器的系统。存储器可以包括用于使处理器执行说明书中描述的方法中的一种或者多种方法的一个或者多个程序。可以使用各种机器来实施说明书中描述的更多主题内容。
[0021]在以下示例性附图和描述中阐述一个或者多个实现方式的细节。将从描述、附图以及从权利要求清楚其它特征。
【专利附图】

【附图说明】
[0022]图1图示用于控制数据流的示例性方法。
[0023]图2图示用于实施用于控制数据流的方法的功能架构。[0024]图3提供关于图2的功能架构的更多细节。
[0025]图4图示用于控制数据流的方法可以用来节约网络资源的方式。
[0026]图5图示用于控制数据流的方法可以用来节约网络资源的另一方式。
[0027]图6图示可以在执行用于控制数据流的方法时在各种计算机之间出现的动作。
[0028]图7图示用于控制数据流的系统的状态。
[0029]图8示出用于实施要求保护的主题内容(例如,客户端计算机和/或服务器计算机)的示例性系统。
【具体实施方式】
[0030]在下文中,将参照附图给出示例的具体描述。应当理解,可以进行对示例的各种修改。具体而言,可以在其它示例中组合和使用一个示例的要素以形成新示例。
[0031]在本描述的上下文中,术语“第一”和“第二”用来区分要素(例如,请求)而不是为了指示时间关系。
[0032]图1示出用于控制数据流的方法的示例性实现方式。
[0033]在步骤S101,用户可以命令从数据流服务器602 (见图6)向数据流客户端203 (见图2)发送数据流。可以在客户端计算机200(见图2)上执行数据流客户端203。客户端计算机200可以被实施为移动计算机或者台式计算机。移动计算机可以被实施为平板计算机(例如,iPad; iPad是苹果公司的商标)或者智能电话。服务器计算机301 (见图3)可以被实施为台式计算机(即,通用计算机)或者移动计算机。数据流客户端203可以在客户端计算机200上执行并且数据流服务器602可以在服务器计算机301上执行。
[0034]响应于在步骤S103录入的用户命令,数据流客户端203可以与数据流服务器602建立会话。根据示例,数据流客户端203被实施为与媒体流传输服务器(比如数据流服务器602)建立会话的媒体播放器。根据该示例,可以使用实时流传输协议(RTSP)来建立会话。也可以使用其它应用协议,特别地为根据开放系统互连(OSI)模型的因特网应用协议。可以借助RSTP建立请求来建立会话。可以从数据流客户端203向数据流服务器602发送RTSP播放请求以触发数据流的发送。
[0035]在步骤S105,数据流服务器602开始向数据流客户端203发送数据流。根据示例,从数据流服务器602向数据流客户端203发送的数据流包括视频数据并且使用无连接因特网传送协议被发送。更具体而言,可以使用实时传送协议(RTP)来发送数据流。RTP可以与RTP控制协议(RTCP)结合被使用。另一协议(比如用户数据包协议(M)P))可以支持RTP。
[0036]在使用无连接因特网传送协议来发送数据流的情况下,服务器计算机301不知道在发送数据流的分组之后发生什么并且未接收客户端计算机200正在接收或者处理数据流这样的指示(即,服务器未从客户端计算机200接收个别数据分组的确认)。具体而言,客户端计算机200可以在客户端计算机200不再处于全工作功率状态中时不再处理数据流(例如,客户端计算机200可以丢弃数据流的分组)。例如,在客户端计算机200正在从全工作功率状态向减少功率消耗状态转变(或者已经转变)时,数据流客户端203可能不再能够处理数据流(即,数据流客户端203可能不再能够处理数据流)。类似地,用户可以即使数据流正在由客户端计算机200处理也仍然不能在减少功率消耗状态期间在数据流客户端203查看视频。这可以例如在已经关闭客户端计算机200的显示器但是继续处理由客户端计算机200接收的数据流分组时出现。因此,在客户端计算机200处于减少功率消耗状态中时,继续从数据流服务器602向数据流客户端203发送数据流可能浪费网络资源。
[0037]在步骤S107,客户端计算机200可以生成功率管理减少事件。可以由于以下各项中的一项或者多项中的改变而生成功率管理减少事件:系统功率状态、设备或者系统的操作模式或者功率设置的值中的改变。具体而言,功率管理减少事件可以在存在从全工作功率状态向减少功率消耗状态的未决转变时出现。这样的转变可以由用户与客户端计算机200的交互触发,该交互例如是用户敲击睡眠键或者按动客户端计算机200的电源按钮。从全工作功率状态向减少功率消耗状态的转变也可以由用户不活跃触发。
[0038]在步骤S109,可以从数据流客户端203向数据流服务器602发送第一暂停请求。第一暂停请求可以具有暂时中断数据流的目的。第一暂停请求可以具有与功率管理减少事件的时间关系以及随意关系。具体而言,可以在功率管理减少事件之后发送第一暂停请求。第一暂停请求也可以由功率管理减少事件触发。
[0039]功率管理减少事件可以用作客户端计算机200不再能够处理数据流和/或用户不再对数据流感兴趣这样的指示。具体而言,在数据流被实施为视频流时,功率管理减少事件可以指示用户不再观看视频流。向数据流服务器602发送第一暂停请求可以被理解为向数据流服务器602转发客户端计算机200的功率状态。
[0040]在步骤S111,数据流服务器602从数据流客户端203接收暂停请求。响应于暂停请求,数据流服务器602暂时中断(暂停)数据流。暂停数据流可以具有节约网络资源或者更具体地节约网络带宽的技术效果,具体地是因为网络带宽在客户端计算机200不能处理数据流时未用来向客户端计算机200发送数据流。暂停数据流也可以节约服务器计算机301上的处理和存储资源。
[0041]根据以上描述的方式暂停数据流也可以具有为其他网络用户改进服务质量的优点。例如,如结合图5更具体讨论的那样,如果第二客户端计算机使用与客户端计算机200相同的网络连接并且均共享网络连接的网络带宽(例如,网络连接是有线或者无线连接),则暂停去往客户端计算机200的数据流可以具有增加可用于第二客户端计算机的带宽的效果。
[0042]图2示出可以用于在客户端计算机200上实施用于控制数据流的方法的功能架构。客户端计算机200包括操作系统201。操作系统201可以是微软Windows的版本(例如,Windows8> Windows7> Windows Vista、Windows XP> Windows2000 或者 Windows98)、MacOS X(例如,Leopard、Snow Leopard, Lion ;Mac是苹果公司的商标)或者Linux。具体而言,操作系统201可以服从ACPI或者可以基于高级功率管理和/或硬件抽象层(HAL)实施定制的功率管理解决方案。能够运行数据流客户端203并且处理功率管理事件的其它操作系统也是可能的。
[0043]数据流客户端203与操作系统201交互。数据流客户端203可以被实施为媒体播放器或者为能够处理数据流的其它软件。数据流客户端203可以包括同步/解密模块205。同步/解密模块205可以解密和/或同步数据流以便呈现一致和无限制的数据流。具体而言,同步/解密模块205可以负责协商和适配从数据流服务器602向数据流客户端203发送数据流的速率,并且处理认证和/或复制保护。
[0044]根据数据流是视频流的该示例,视频解码器207可以是数据流客户端203的一部分。视频解码器207可以用来解压由数据流客户端203接收的视频流。具体而言,视频解码器207可以通过应用用来对视频流编码的算法的反算法来操作。
[0045]音频解码器209可以实现解压由数据流客户端203接收的音频数据。音频解码器209可以通过应用用来对数据流中的音频数据编码的算法的反算法来操作。
[0046]如果数据流被实施为音频流,则可以使用音频编码解码器(比如MP3或者AAC)来压缩数据流。如果数据流被实施为视频流,则可以使用视频编码解码器(比如H.264或者VP8)来压缩数据流。可以在容器比特流(比如FLV或者WebM)中组装数据流。
[0047]视频解码器207和音频解码器209可以与具体压缩格式(比如MPEG-2 (用于视频流)或者MP3 (用于音频流))组合使用。备选地,由客户端计算机200接收的包括视频和/或音频的数据流可以是原始格式,从而使得未使用压缩发送数据流并且无需解压来处理数据流。
[0048]数据流客户端203也可以包括应用层210。应用层210可以管理用来处理由数据流客户端203从数据流服务器602接收的数据的应用协议。例如,应用层210可以管理RSTP和/或微软媒体服务器(MMS)协议。应用层210也可以负责服务质量(QOS)管理。应用层可以根据OSI模型提供服务和功能。
[0049]自动用户活动识别(AUAR)模块211可以截获例如来自操作系统201功率管理事件,并且生成对暂时中断来自数据流服务器602的数据流的暂停请求。具体而言,基于接收的功率管理减少事件,AUAR模块211可以确定用户何时不再对数据流感兴趣(例如,用户不再观看通过数据流传送的视频数据)并且生成将向数据流服务器602发送的暂停请求。暂停请求的结果可以是暂时中断数据流从数据流服务器602流向数据流客户端203。
[0050]可以在数据流客户端203中嵌入自动用户活动识别模块。自动用户活动识别模块211的功能可以包括监听功率管理事件(例如,功率管理减少事件或者功率管理增加事件)并且基于接收功率管理事件触发暂停或者恢复请求的发送。
[0051]在功率管理事件作为消息的一部分由操作系统201分发的情况下,可以在无论功率管理事件何时出现时都向应用和可安装驱动程序发送的广播消息(比如WM_POffERBROADCAST消息)中分发功率管理事件。在WM_P0WERBR0ADCAST消息中发送的事件可以包括PBT_APMSUSPEND和PBT_APMRESUMESUSPEND事件。这些事件可以由数据流客户端203的自动用户活动识别模块211截获。自动用户活动识别模块211可以使用数据流客户端203的网络控制协议来通信。
[0052]传送协议层213可以管理用来处理从数据流服务器602向数据流客户端203发送的数据的传送协议。具体而言,传送协议层213可以管理因特网传送协议(比如传输控制协议(TCP)、UDP 和 RTP)。
[0053]图3示出包括图2的功能架构的用于控制数据流的系统的示例性实现方式。
[0054]图3描绘客户端计算机200的功能架构,该客户端计算机包括操作系统201、数据流客户端203、同步/解密模块205、视频解码器207、音频解码器209、应用层210、自动用户活动识别模块211和传送协议层213。除非另有明示或者暗示,否则图3中描绘的功能架构的部件如关于图2描述的那样执行。
[0055]图3也描绘客户端计算机200的功能架构中的多个双向箭头,这些箭头示出在数据流客户端203的部件之间的交互。具体而言,同步/解密模块205以双向方式与视频解码器207和音频解码器209通信。视频解码器207和音频解码器209以双向方式与应用层210通信。应用层210以双向方式与传送协议层213通信。自动用户活动识别模块211也以双向方式与传送协议层213通信。
[0056]AUAR模块211也可以被称为自动视频带宽控制模块。
[0057]图3也描绘在客户端计算机200与服务器计算机301之间的交互。如图3中所示,服务器计算机301可以被实施为多个流传输服务器。备选地,服务器计算机301可以被实施为单个服务器。粗双向箭头305示出从数据流客户端203到服务器计算机301的对于数据流的请求。按照请求,服务器计算机301向数据流客户端203发送数据流。具体而言,可以从服务器计算机301上的数据流服务器602发送数据流。因此,按照请求,由数据流客户端203从数据流服务器602接收数据流。数据流客户端203可以经由网络307(比如因特网)连接到服务器计算机301。细双向箭头309示出从数据流客户端203向服务器计算机301发送的暂停请求。细箭头309为双向以便反映由服务器计算机301确收暂停请求。
[0058]可以用包括经由物理线缆(例如,光纤线缆)或者经由无线技术(例如,WiF1、WiMAX、蜂窝/移动等)的多种方式实施网络307。有利地,要求保护的主题内容可以在其中可用带宽低或者昂贵的情形(例如,在l_2Mbps操作的蜂窝网络)中适用。
[0059]图4和图5示出用于控制从服务器计算机301到客户端计算机200的数据流的方法可以用来节约网络资源(即,节省或者减少网络资源的消耗)的方式。具体而言,图4和图5示出客户端计算机200和内容提供方(比如从服务器计算机301提供数据流的媒体公司)二者的用户可以如何通过减少所需网络资源和计算机系统架构节省资金。网络资源可以包括由客户端计算机200、服务器计算机301或者二者使用的带宽。计算机系统架构可以包括在内容提供方的硬件,比如路由器、交换机和其它类型的网络基础结构。因此,图4和图5示出用于控制从服务器计算机301到客户端计算机200的数据流的方法如何可以用来自动节约网络资源(例如,减少网络资源的消耗)而无任何显式干预。
[0060]客户端计算机200的用户可以具有多种数据计划,比如对于固定价格提供无限网络带宽的计划或者现用现付计划(即,其中根据带宽消耗向用户收费递增数额的计划)。用户也可以加入在已经使用某个数额之后减少可允许带宽消耗的计划(例如,在已经在一个月期间使用500MB之后对于该月的其余部分减少用户的可用带宽)。
[0061]图4示出用于控制从服务器计算机301到客户端计算机200的数据流的方法如何可以用来在客户端计算机200未与另一计算机共享网络带宽(例如,经由在居民宽带连接(比如有线因特网)之上的统计复用)的情况下节约网络资源。箭头401示出从数据流服务器602向数据流客户端203发送数据流。根据描绘的示例,数据流客户端203的用户使用移动设备观看视频流,其中视频流是数据流的实现方式并且移动设备是客户端计算机200的实现方式。数据流可以消耗已经付费的网络带宽作为与网络接入提供方(例如,因特网服务提供方)的预付费合约的部分。
[0062]箭头403示出从数据流客户端203向数据流服务器602发送的第一暂停请求。例如,在用户不再观看借助数据流生成的视频时,功率管理减少事件可以由操作系统201生成。功率管理减少事件可以由数据流客户端203接收。更具体而言,功率管理减少事件可以由自动用户活动识别模块211接收。
[0063]在功率管理减少事件由数据流客户端203接收之后,可以从数据流客户端203向数据流服务器602发送第一暂停请求。第一暂停请求可以使数据流的流动中断,由此节约(或者节省)网络资源。具体而言,通过中断数据流,第一暂停请求可以通过减少网络带宽消耗来节省资金(例如,对于数据流客户端203的用户和/或内容提供方)。另外,发送第一暂停请求可以避免让数据流服务器602执行不必要工作。具体而言,发送第一暂停请求可以避免让数据流服务器602在数据流客户端203不能够处理数据流时发送数据流。
[0064]发送第一暂停请求也可以节约服务器计算机301上的例如用于从盘读取数据流并且向主存储器复制数据流或者从主存储器向网络307、向客户端计算机200复制数据流的处理资源。
[0065]图5示出用于控制从服务器计算机301到客户端计算机200的数据流的方法如何可以用来在存在同时使用因特网连接的多个用户时节约网络资源。
[0066]同时使用因特网连接可以在多个情形(例如,有线因特网接入或者无线因特网接入)中出现。换而言之,在图5中描绘的情形可以在多个用户共享可用网络带宽时出现。箭头501示出向第一客户端计算机502发送第一数据流并且箭头503示出向第二客户端计算机504发送第二数据流。数据流可以源于多个数据流服务器和可能的多个服务器计算机。除非另有明示,否则对客户端计算机200的描述适用于第一客户端计算机502和第二客户端计算机504。
[0067]数据流可以包含相同数据或者不同数据。例如箭头501可以示出从www.youtube.com(或者与www.youtube, com关联的媒体服务器)发送第一数据流,而箭头503可以示出从 www.thedailyshow.com(或者与 www.thedailyshow.com 关联的媒体月艮务器)1;?負零二数据流。由于第一客户端计算机502和第二客户端计算机504共享有限网络带宽,所以第一客户端计算机502和第二客户端计算机502 二者可能经历不良性能,例如,不良视频质量或者视频数据流暂停。
[0068]箭头505示出从第一客户端计算机502向服务器计算机506发送暂停请求(除非另有明示,对服务器计算机301的描述适用于服务器计算机506)以便暂时中断由第一客户端计算机502接收数据流。暂停请求可以响应于由第一客户端计算机502生成的功率管理减少事件而已经由第一客户端计算机502上的自动用户活动识别模块(与自动用户活动识别模块211相同)生成。
[0069]箭头507指示第二客户端计算机504继续接收视频流。由于第二客户端计算机504不再与第一客户端计算机502共享网络带宽,所以第二客户端504可以体验改进的性能。具体而言,根据其中第二客户端计算机50接收视频数据流的具体示例,由第二客户端计算机504接收的视频数据可以是高质量而无暂停或者不希望的影响。
[0070]图6示出在用于控制从服务器计算机301到客户端计算机200的数据流的方法中执行的步骤。
[0071]在步骤S603,从数据流客户端203 (在图6中被实施为视频流传输客户端)向web服务器601发送超文本传送协议(HTTP) GET (获得)请求。
[0072]在步骤S603期间,数据流客户端203可以使用统一资源定位符(URL)来与web服务器601交互以取回关于用户希望查看的视频的信息(例如,清单(manifest))。步骤S603也可以包括web服务器601响应于HTTP get请求向数据流客户端203提供清单。具体而言,web服务器601可以向数据流客户端203提供可以用来从数据流服务器602 (在图6中被实施为媒体服务器)取回数据流的信息。
[0073]除非另有明示,否则对服务器计算机301的描述适用于web服务器601和数据流服务器602。具体而言,服务器计算机301可以包括web服务器601和数据流服务器602。备选地,服务器计算机301可以仅包括web服务器601并且可以在分离的计算机上实施数据流服务器602。其它实现方式也是可能的(例如,可以经由多个计算机实施web服务器601或者数据流服务器602或者二者)。
[0074]在步骤S605,数据流客户端203可以向数据流服务器602发送指定将如何传送数据流的请求。根据在图6中描绘的示例,数据流服务器602是媒体服务器并且数据流是媒体流。在步骤S605中的请求可以包括媒体流的URL和传送指定符(specifier)。请求可以是RSTP建立请求。传送指定符可以包括用于接收音频和/或视频数据的第一本地端口号以及用于接收元信息的第二本地端口号。根据示例,步骤S605的请求可以是指定用于接收RTP数据的本地端口和用于接收RTCP数据的另一本地端口的RSTP请求。步骤S605可以包括来自服务器的响应,该响应确认由数据流客户端203指定的配置信息并且指定附加信息,比如由数据流服务器602选择的一个或者多个端口。用于会话的超时可以例如由数据流服务器602指定。
[0075]虽然在图6中分离地描绘,但是可以在相同计算机系统上实施web服务器601和数据流服务器602。备选地,可以使用不同计算机系统来实施web服务器601和数据流服务器 602。
[0076]在步骤S605中在数据流客户端203与数据流服务器602之间的交换可以是RTSP建立请求和响应。
[0077]在步骤S607,可以在数据流服务器602接收对开始传输数据流的请求。具体而言,在步骤S607在数据流服务器602从数据流客户端203接收的请求可以是RSTP播放请求。在数据流服务器602接收的请求可以使媒体流被播放。在一些情况下,请求可以使多个媒体流被播放。可以在步骤S607发送的请求中包括多个播放请求。可以包括附加参数,比如范围,即,应当从数据流服务器602向数据流客户端203传输的数据流的起点和终点。在步骤S607中从数据流客户端203向数据流服务器602发送的请求可以使数据流服务器602向数据流客户端203发送数据流。具体而言,数据流服务器602可以使用RTP协议向数据流客户端203发送视频流。
[0078]在步骤S609,操作系统201生成功率管理减少事件。根据在图6中描绘的示例,操作系统201生成PBT_ATMSUSPEND事件。功率管理减少事件由数据流客户端203接收。具体而言,自动用户活动识别模块211截获包括功率管理减少事件的消息。该消息可以是向客户端计算机200中的所有应用和驱动程序发送的广播消息。在接收功率管理减少事件之后,数据流客户端203可以在步骤S611向数据流服务器602发送暂停请求。根据该示例,暂停请求被实施为RTSP暂停命令。接收暂停请求可以使数据流服务器602暂时中断(即,停止)数据流。在发送暂停请求之后,客户端计算机200可以响应于功率管理减少事件从全工作功率状态向减少功率消耗状态转变。客户端计算机200可以在数据流服务器暂时中断数据流之前或者之后从全工作功率状态向减少功率状态转变。
[0079]在步骤S613,操作系统201可以生成功率管理增加事件。可以在客户端计算机200从减少功率消耗状态向全工作功率状态转变之后生成功率管理增加事件。根据在图6中描绘的具体示例,功率管理增加事件被实施为PBT_APMRESUMESUSPEND事件。包括功率管理增加事件的消息可以由数据流客户端203接收。
[0080]在接收功率管理增加事件之后,数据流客户端203可以在步骤S615向数据流服务器602发送恢复请求。可以在功率管理增加事件与恢复请求之间存在随意关系,即,恢复请求可以由功率管理增加事件触发。也可以在功率管理增加事件与恢复请求之间存在时间关系,即,可以在功率管理增加事件之后发送恢复请求。
[0081]恢复请求可以被实施为RTSP播放请求。响应于恢复请求,数据流服务器602可以开始再次发送数据流。可以在数据流客户端203接收数据流。备选地,如果在步骤S605中(例如,在超时参数中)指定了用于会话的超时,则会话可以在步骤S615传输恢复请求之前例如由于在步骤S611发送暂停请求与在步骤S615的恢复请求之间的时间超过在超时参数中指定的时间而超时。在这一情况下,可能需要例如通过如在步骤S605中描述的那样发送新建立请求来重建会话。因此,如果会话超时则可以在步骤S615发送新建立请求而不是恢复请求。在一些情况下,即使重建会话,数据流客户端203仍然可以能够例如通过保存数据流的暂停点并且在对开始传输数据流的新请求(如在S607中描述的那样)中传输暂停点来在暂停数据流处恢复数据流。
[0082]可以借助自动用户活动识别模块211发送在步骤S611发送的暂停请求和在步骤S615发送的恢复请求。另外,可以借助自动用户活动识别模块211接收和处理由数据流客户端203在步骤S609接收的功率管理减少事件和由数据流客户端203在步骤S613接收的
功率管理增加事件。
[0083]在步骤S617,可以从数据流客户端203向数据流服务器602发送用于终止在其中发送数据流的会话的命令。该命令可以使从数据流服务器602向数据流客户端203发送的所有数据流被停止并且释放数据流服务器602上的与数据流客户端203关联的所有与会话有关的数据。在步骤S617中发送的命令可以被实施为RTSP拆除请求。
[0084]在图6的示例中,自动用户活动识别模块211可以在步骤S609、S611、S613和S615期间活跃。自动用户活动识别模块211也可以被称为自动视频带宽控制(AVBC)模块。
[0085]图7示出用于数据流客户端203的状态图。
[0086]根据描绘的示例,借助RSTP命令执行状态转变。
[0087]从数据流客户端203向数据流服务器602发送的RSTP建立命令实现从初始状态702向就绪状态703的转变。在就绪状态703中,建立在数据流客户端203与数据流服务器602之间的会话。因此,在已经从数据流客户端203向数据流服务器602发送RSTP建立命令之后,可以在数据流客户端203从数据流服务器602接收数据流。RSTP播放和暂停命令也可以被从数据流客户端203向数据流服务器602发送并且由数据流服务器602处理。因此,在就绪状态703中,数据流客户端203 (具体为自动用户活动识别模块211)能够控制从服务器计算机301到客户端计算机200的数据流。
[0088]在执行RSTP播放命令之后,数据流客户端203从就绪状态703向播放状态705转变。在播放状态705中,数据流客户端203从数据流服务器602接收数据流。在数据流客户端203向数据流服务器602发送暂停请求时,数据流客户端203从播放状态705向就绪状态703转变。如图7中所示,自动用户活动识别模块211在数据流客户端203在就绪状态203或者播放状态705中时活跃。从数据流客户端203向数据流服务器602发送的拆除命令可以使数据流客户端203转变回到初始状态701。无论数据流客户端203在就绪状态703或者播放状态705中,发送拆除命令都引起转变回到初始状态701。
[0089]图8示出用于实施要求保护的主题内容的示性例系统,该系统包括形式为常规计算环境820 (例如,个人计算机)的通用计算机设备。图8的系统可以用来实施服务器计算机301或者客户端计算机200。其它实现方式是可能的。
[0090]常规计算环境包括处理单元822、系统存储器824和系统总线826。系统总线将包括系统存储器824的各种系统部件耦合到处理单元822。处理单元822可以通过访问系统存储器824来执行算法、逻辑和/或控制操作。系统存储器824可以存储用于与处理单元822结合使用的信息和/或指令。系统存储器824可以包括易失性和非易失性存储器,比如随机存取存储器(RAM) 828和只读存储器(ROM) 830。可以在R0M830中存储包含基本例程的基本输入/输出系统(BIOS),这些基本例程有助于比如在启动期间在个人计算机820内的单元之间传送信息。系统总线826可以是若干总线结构类型中的任何总线结构类型,这些总线结构类型包括存储器总线或者存储器控制器、外围总线以及使用多种总线架构中的任何总线架构的本地总线。
[0091]个人计算机820还可以包括用于从硬盘(未示出)读取和向该硬盘写入的硬盘驱动832以及用于从可拆卸盘836读取或者向可拆卸盘836写入的外部盘驱动834。可拆卸盘可以是用于磁盘驱动器的磁盘或者用于光盘驱动的光盘,比如CD ROM。硬盘驱动832和外部盘驱动834分别由硬盘驱动接口 838和外部盘驱动接口 840连接到系统总线826。驱动及其关联计算机可读介质提供对用于个人计算机820的计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。数据结构可以包括用于实施如以上描述的用于控制从服务器计算机到客户端计算机的数据流的方法的相关数据。
[0092]虽然这里描述的示例性环境运用硬盘(未示出)和外部盘836,但是本领域技术人员应当理解也可以在示例性操作环境中使用可以存储计算机可访问的数据的其它类型的计算机可读介质,比如磁盒、闪存卡、数字视频盘、随机存取存储器、只读存储器等。
[0093]可以在硬盘、外部盘836、R0M830或者RAM828上存储包括操作系统(未示出)、一个或者多个应用程序834、其它程序模块(未示出)和程序数据846的多个程序模块。应用程序可以包括如在图1至图7中描绘的功能的至少一部分。
[0094]用户可以通过输入设备(比如键盘848和鼠标850)向个人计算机820中录入如以下讨论的命令和信息。其它输入设备(未示出)可以包括麦克风(或者其它传感器)、操纵杆、游戏板、扫描仪等。这些和其它输入设备可以通过与系统总线826耦合的串行端口接口 852被连接到处理单元822或者可以由其它接口(比如并行端口接口 854、游戏端口或者通用串行总线(USB))收集。另外,可以使用打印机856来打印信息。打印机856和其它并行输入/输出设备可以通过并行端口接口 854被连接到处理单元822。监视器858或者其它类型的显示设备也经由接口(比如视频输入/输出860)被连接到系统总线826。除了监视器之外,计算环境820可以包括其它外围输出设备(未示出),比如扬声器或者其它可听输出。
[0095]计算环境820可以与其它电子设备(比如计算机、电话(有线或者无线)、个人数字助理、电视等)通信。为了通信,计算机环境820可以使用与一个或者多个电子设备的连接在联网环境中操作。图8描绘与远程计算机862联网的计算机环境。远程计算机862可以是另一计算环境,比如服务器、路由器、网络PC、对等设备或者其它常见网络节点,并且可以包括以上相对于计算环境820描述的单元中的许多或者所有单元。在图8中描绘的逻辑连接包括局域网(LAN)864和广域网(WAN)866。这样的联网环境在办公室、企业范围计算机网络、内部网和因特网中司空见惯并且可以特别地被加密。
[0096]当在LAN联网环境中被使用时,计算环境820可以通过网络10868连接到LAN864。当在WAN联网环境中被使用时,计算环境820可以包括用于通过WAN866建立通信的调制解调器870或者其它装置。可以在计算环境820内部或者外部的调制解调器870经由串行端口接口 852连接到系统总线826。在联网环境中,可以在驻留于远程计算机862上的或者远程计算机862可访问的远程存储器存储设备中存储相对于计算环境820描绘的程序模块或者其部分。另外,与用于控制从服务器计算机到客户端计算机的数据流的方法(以上描述)相关的其它数据可以驻留于远程计算机862上或者经由远程计算机862可访问。将领会到,所示网络连接为示例性并且可以使用在电子设备之间建立通信链路的其它手段。
[0097]以上描述的计算系统仅为可以用来实施用于控制从服务器计算机到客户端计算机的数据流的方法的计算系统类型的一个示例。
[0098]根据一个方面,提供一种用于控制从服务器计算机到客户端计算机的数据流的计算机实施的方法。客户端计算机包括数据流客户端并且服务器计算机包括数据流服务器。在由数据流传输客户端从数据流服务器接收数据流之时,该方法可以包括由客户端计算机生成功率管理减少事件。在接收数据流之时,该方法还可以包括由数据流客户端接收功率管理减少事件。在接收数据流之时,该方法还可以包括从数据流客户端向数据流服务器发送对暂时中断数据流的第一暂停请求。可以在接收功率管理减少事件之后发送第一暂停请求。该方法还可以包括由客户端计算机响应于功率管理减少事件从全工作功率状态向减少功率消耗状态转变。
[0099]也可以在功率管理减少事件之后执行从全工作功率状态向减少功率消耗状态转变。换言之,可以在功率管理减少事件与从全工作功率状态向减少功率消耗状态的转变之间存在时间关系。
[0100]在一些情况下,全工作功率状态是全开启ACPI功率状态并且减少功率消耗状态是除了全开启ACPI功率状态之外的ACPI功率状态。
[0101]减少功率消耗状态可以是入睡状态,比如睡眠状态、休眠状态、待机状态或者挂起状态。减少功率消耗状态也可以是软关断状态或者全关断状态。全关断状态也可以被称为机械关断状态。
[0102]全工作功率状态可以是全开启APM状态并且减少功率消耗状态可以是除了全开启APM状态之外的APM状态。
[0103]在一些情况下,该方法还包括由数据流服务器响应于第一暂停请求来暂停数据流。数据流服务器的暂停可以在客户端计算机从全工作功率状态向减少功率消耗状态转变之前或者之后出现。
[0104]另外,数据流可以是媒体流,其中媒体流包括音频数据和/或视频数据。
[0105]另外,可以使用无连接因特网传送协议来发送数据流。可以根据开放系统互连
(OSI)模型来理解术语“传送协议”。
[0106]可以使用实时传送协议来发送数据流。[0107]此外,该方法还可以包括由客户端计算机从减少功率消耗状态向全工作功率状态转变。该方法也可以包括由客户端计算机在从减少功率消耗状态向全工作功率状态转变之后生成功率管理增加事件。此外,该方法可以包括由数据流客户端接收功率管理增加事件。该方法也可以包括从数据流客户端向数据流服务器发送第一恢复请求。可以在接收功率管理增加事件之后发送第一恢复请求。该方法也可以包括在数据流客户端并且从数据流服务器接收数据流。
[0108]此外,功率管理增加事件和/或功率管理增加事件可以是操作系统事件。
[0109]可以使用用于递送具有实时性质的数据的因特网应用协议来发送第一暂停请求和/或第一恢复请求。可以根据OSI模型理解术语应用协议。在本文中,递送可以是指建立会话和控制数据。应用协议可以是实时流传输协议或者微软媒体服务器协议。
[0110]在一些情况下,该方法还可以包括由客户端计算机广播功率管理减少消息。功率管理减少消息可以包括功率管理减少事件。接收功率管理减少事件可以包括接收功率管理减少消息。可以在数据流客户端的第一视窗接收功率管理减少事件。
[0111]另外,该方法可以包括由客户端计算机广播功率管理增加消息。功率管理增加消息可以包括功率管理增加事件。接收功率管理增加事件可以包括接收功率管理增加消息。可以在数据流客户端的第一视窗接收功率管理增加事件。
[0112]可以在从全工作功率状态向减少功率消耗状态转变之前的近似两秒生成功率管理减少事件。备选地,可以在从全功率状态向减少功率消耗转变之前的近似五秒或者十秒生成功率管理减少事件。可以在从全工作功率状态向减少功率消耗状态转变之前的两秒与十秒之间生成功率管理减少事件。可以在从全工作功率状态向减少功率消耗状态转变之前的十秒与二十秒之间生成功率管理减少事件。可以在从全工作功率状态向减少功率消耗状态转变之前的两秒与二十秒之间生成功率管理减少事件。可以在从减少功率消耗状态向全工作功率状态转变之前的上至二十秒(即,多达二十秒)生成功率管理减少事件。
[0113]在从全工作功率状态向减少功率消耗状态转变之前的近似两秒生成功率管理减少事件对应于微软windows Vista和微软Windows7的功能。在从减少功率消耗状态向全工作功率状态转变之前的上至二十秒生成功率管理减少事件对应于Windows2003和WindowsXP的功能。因此,可以根据客户端计算机的操作系统定义在功率管理增加事件与从全工作功能状态向减少功率消耗状态的转变之间的时间关系。
[0114]在一些情况下,在数据流中的一点暂时中断数据流。数据流客户端可以在暂时中断数据流的该点开始接收数据流。
[0115]另外,可以响应于以下各项中的一项或者多项生成功率管理减少事件:客户端计算机的功率消耗中的减少、客户端计算机不活跃、用户输入(例如,将客户端计算机手动置于睡眠或者从用户接收通知客户端计算机睡眠的命令)或者从全工作功率状态向减少功率消耗状态的未决转变。
[0116]另外,可以响应于以下各项中的一项或者多项生成功率管理增加事件:用户活动(例如,按压电源按钮)或者用户交互(鼠标或者键盘输入)。
[0117]此外,客户端计算机可以在减少功率消耗状态中比在全工作功率状态中消耗更少功率。客户端计算机可以在全工作功率状态中全开启。可能的是客户端计算机在减少功率消耗状态中未全开启。[0118]客户端计算机的至少一个设备也可以在减少功率消耗状态中处于功率节省模式中。
[0119]在一些情况下,该方法还可以包括在客户端计算机上执行数据流客户端并且在服务器计算机上执行数据流服务器。
[0120]另外,该方法还可以包括确定数据流客户端的第一视窗不可见。响应于确定第一视窗不可见,该方法还可以包括从数据流客户端向数据流服务器发送对暂时中断数据流的
第二暂停请求。
[0121]该方法还可以包括在确定数据流客户端的第一视窗不可见之后,确定数据流客户端的第一视窗可见。也响应于确定第一视窗可见,该方法还可以包括向数据流服务器发送第二恢复请求。此外,该方法可以包括在数据流客户端并且从数据流服务器接收数据流。
[0122]根据具体实现方式,isWindow Visible函数可以用来执行确定可见和确定不可见。备选地,可以根据第一视窗是否被一个或者多个更多视窗遮蔽来确定第一视窗可见。换言之,如果第一视窗被一个或者多个更多视窗部分或者全部覆盖则可以确定第一视窗不可见。
[0123]视窗(例如,数据流客户端的第一视窗或者更多视窗之一)可以是包含用户界面的可视区。视窗可以具有可以与其它视窗的区域重叠的矩形形状。视窗可以显示一个或者多个过程的输出并且可以允许向一个或者多个过程输入。视窗可以包括视窗装饰区(也被称为非客户端区)和视窗的内容。视窗装饰区可以包括可能沿着视窗的顶部的标题栏和在其它三侧周围的最小边界。
【权利要求】
1.一种用于控制从服务器计算机(310)到客户端计算机(200)的数据流的计算机实施的方法,所述客户端计算机(200)包括数据流客户端(203)并且所述服务器计算机(301)包括数据流服务器(602),所述方法包括: -在由所述数据流客户端(203)从所述数据流服务器(602)接收所述数据流时: —由所述客户端计算机(200)生成(S107,S609)功率管理减少事件; -由所述数据流客户端(203)接收所述功率管理减少事件;以及一从所述数据流客户端(203)向所述数据流服务器(602)发送(S109,S611)对暂时中断所述数据流的第一暂停请求,其中在所述功率管理减少事件之后发送所述第一暂停请求;以及 -由所述客户端计算机(200)响应于所述功率管理减少事件从全工作功率状态向减少功率消耗状态转变。
2.根据权利要求1所述的方法,其中所述全工作功率状态是全开启ACPI功率状态并且所述减少功率消耗状态是除了所述全开启ACPI功率状态之外的ACPI功率状态。
3.根据权利要求1或者2所述的方法,其中所述减少功率消耗状态是以下状态之一: 入睡状态,比如睡眠状态、休眠状态、待机状态或者挂起状态;或者 软关断状态或者全关断状态。
4.根据前述权利要求中的任一权利要求所述的方法,其中所述数据流是媒体流,其中所述媒体流包括音频数据和/或视频数据。
5.根据前述权利要 求中的任一权利要求所述的方法,其中使用无连接因特网传送协议来发送所述数据流,和/或 其中使用实时传送协议来发送所述数据流。
6.根据前述权利要求中的任一权利要求所述的方法,还包括: 由所述客户端计算机(200)从所述减少功率消耗状态向所述全工作功率状态转变;由所述客户端计算机(200)在从所述减少功率消耗状态向所述全工作功率状态转变之后生成(S613)功率管理增加事件; 由所述数据流客户端(203)接收所述功率管理增加事件; 从所述数据流客户端(203)向所述数据流服务器(602)发送(S615)第一恢复请求,其中在所述功率管理增加事件之后发送所述第一恢复请求;以及 在所述数据流客户端(203)处并且从所述数据流服务器(602)接收所述数据流。
7.根据权利要求6所述的方法,其中所述功率管理减少事件和/或所述功率管理增加事件是操作系统事件。
8.根据前述权利要求中的任一权利要求所述的方法, 其中使用用于递送具有实时性质的数据的因特网应用协议来发送所述第一暂停请求和/或所述第一恢复请求;以及 其中所述应用协议可选地是实时流传输协议或者微软媒体服务器协议。
9.根据前述权利要求中的任一权利要求所述的方法,还包括: 由所述客户端计算机(200)广播功率管理减少消息,所述功率管理减少消息包括所述功率管理减少事件; 其中接收所述功率管理减少事件包括接收所述功率管理减少消息;以及其中可以在所述数据流客户端(203)的第一视窗接收所述功率管理减少事件。
10.根据前述权利要求中的任一权利要求所述的方法, 其中根据所述客户端计算机(200)的操作系统定义在所述功率管理减少事件与从所述全工作功率状态向所述减少功率消耗状态的所述转变之间的时间关系。
11.根据前述权利要求中的任一权利要求所述的方法,其中响应于以下各项中的一项或者多项生成所述功率管理减少事件: 所述客户端计算机(200)的功率消耗减少; 所述客户端计算机(200)不活跃; 用户输入; 从所述全工作功率状态向所述减少功率消耗状态的未决转变。
12.根据前述权利要求中的任一权利要求所述的方法,还包括: 确定所述数据流客户端(203)的第一视窗不可见;以及 响应于确定所述第一视窗不可见,从所述数据流客户端(203)向所述数据流服务器(602)发送对暂时中断所述数据流的第二暂停请求。
13.根据权利要求12所述的方法,还包括: 在确定所述数据流客户端(203)的所述第一视窗不可见之后,确定所述数据流客户端(203)的所述第一视窗可见; 响应于确定所述第一视窗可见,向所述数据流服务器(602)发送第二恢复请求;以及 在所述数据流客户端(203)处并且从所述数据流服务器(602)接收所述数据流。
14.一种包括计算机可读指令的计算机程序产品,所述计算机可读指令当在计算机系统上被加载和执行时,使所述计算机系统根据前述权利要求中的任一权利要求所述的方法执行操作。
15.一种用于控制从服务器计算机(310)到客户端计算机(200)的数据流的计算机系统,所述系统包括: -服务器计算机(301),所述服务器计算机(301)包括数据流服务器(602); -客户端计算机(200),所述客户端计算机(200)包括数据流客户端(203); -其中所述数据流服务器(602)可操作用于向所述数据客户端发送所述数据流; -其中所述数据流客户端(203)可操作用于接收所述数据流,并且在所述数据流客户端(203)接收所述数据流时,所述系统可操作用于 -由所述客户端计算机(200)生成功率管理减少事件; -由所述数据 流客户端(203)接收所述功率管理减少事件;以及一从所述数据流客户端(203)向所述数据流服务器(602)发送对暂时中断所述数据流的第一暂停请求,其中在接收所述功率管理减少事件之后发送所述第一暂停请求;以及-其中所述客户端计算机(200)还可操作用于响应于所述功率管理减少事件从全工作功率状态向减少功率消耗状态转变。
【文档编号】H04L29/06GK103812856SQ201310542192
【公开日】2014年5月21日 申请日期:2013年11月4日 优先权日:2012年11月5日
【发明者】G·卡普奥佐, O·奥诺拉托, D·恩埃, E·K·迪扎 申请人:埃森哲环球服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1