《用于自适应流播放器的高速缓存控制.pdf》由会员分享,可在线阅读,更多相关《用于自适应流播放器的高速缓存控制.pdf(12页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102918594 A(43)申请公布日 2013.02.06CN102918594A*CN102918594A*(21)申请号 201180026270.4(22)申请日 2011.05.1112/790,663 2010.05.28 USG11B 20/10(2006.01)G06F 9/44(2006.01)G06F 13/14(2006.01)G06F 15/16(2006.01)(71)申请人微软公司地址美国华盛顿州(72)发明人 V苏德 R程 HS派尔(74)专利代理机构上海专利商标事务所有限公司 31100代理人潘明婳(54) 发明名称用于自适应流播放器。
2、的高速缓存控制(57) 摘要自适应流播放器具有对是否将检索到的流高速缓存在本地流高速缓存中的控制。对于播放器所请求的流部分中的至少一些,在网络上出发之前,高速缓存控制组件首先判断是否有可接受版本的流部分存在于流高速缓存中。如果流高速缓存中存在可接受版本,则该版本被提供而不必在网络上请求该流部分。对于在网络上接收到的流部分,高速缓存控制组件可以决定是否高速缓存该流部分。因而,高速缓存控制组件允许自适应流播放器以离线场景工作,且也允许自适应流播放器具有使用已高速缓存的内容的倒带、暂停和其他控制。(30)优先权数据(85)PCT申请进入国家阶段日2012.11.27(86)PCT申请的申请数据PCT。
3、/US2011/036125 2011.05.11(87)PCT申请的公布数据WO2011/149672 EN 2011.12.01(51)Int.Cl.权利要求书2页 说明书6页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 2 页 说明书 6 页 附图 3 页1/2页21.一种包括其上具有计算机可执行指令的一个或多个计算机可读介质的计算机程序产品,当所述计算机可执行指令由计算系统的一个或多个处理器执行时,引起计算系统在存储器中具有以下:自适应流播放器,所述自适应流播放器被配置为监视所述计算系统的状况,且每次一部分地请求流,其中,如果所述计算系统的状况改变,则从。
4、一个流部分到下一流部分,所述流部分的特性可以改变;以及流高速缓存,所述流高速缓存存在于对所述自适应流播放器来说是本地的计算系统上,且被配置为存储流部分;以及高速缓存控制组件,所述高速缓存控制组件控制所述自适应流播放器,以使得在所述自适应流播放器作出对具有特定特性的流的部分的请求之前,所述高速缓存控制首先验证是否有可接受版本的流部分存在于所述流高速缓存中。2.如权利要求1所述的计算机程序产品,其特征在于,如果所述高速缓存控制组件判断所述可接受版本的流部分存在于所述流高速缓存中,则所述高速缓存控制组件将所述可接受版本的流部分提供给所述自适应流播放器,而不是所述自适应流播放器必须在网络上获取具有所述。
5、特定特性的所述流部分。3.如权利要求2所述的计算机程序产品,其特征在于,如果所述高速缓存控制判断所述可接受版本的流部分不存在于所述流高速缓存中,则所述自适应流播放器在网络上请求具有所述特定特性的所述流部分。4.如权利要求3所述的计算机程序产品,其特征在于,所述高速缓存控制组件判断是否将检索到的流部分高速缓存在所述流高速缓存中。5.如权利要求4所述的计算机程序产品,其特征在于,如果所述高速缓存控制组件判断不应高速缓存检索到的流部分,则检索到的流部分未经高速缓存就被提供给所述自适应流播放器,以及其中,如果所述高速缓存控制组件判断应高速缓存检索到的流部分,则将检索到的流部分高速缓存在所述流高速缓存中。
6、。6.如权利要求1所述的计算机程序产品,其特征在于,所述可接受版本的流部分可以仅是具有所述特定特性的流部分。7.如权利要求1所述的计算机程序产品,其特征在于,所述自适应流播放器经由应用编程接口与所述高速缓存控制组件交互并对其进行控制。8.如权利要求1所述的计算机程序产品,其特征在于,所述流高速缓存包括不是先前由所述自适应流播放器请求的流。9.一种供自适应流播放器将流呈现在计算系统的显示器上的方法,所述自适应流播放器运行在所述计算系统上,所述方法包括:监视所述计算系统的状况的动作;每次一部分地请求流的动作,其中,如果所述计算系统的状况改变,则从一个流部分到下一流部分,所述流部分的特性可以改变;以。
7、及对于对流部分的所述请求中的至少一些中的每一请求,验证是否有可接受版本的所述流部分存在于所述计算系统上的流高速缓存中的动作。10.如权利要求9所述的方法,其特征在于,如果所述可接受版本的流部分存在于所述权 利 要 求 书CN 102918594 A2/2页3流高速缓存中,所述方法还包括:将所述可接受版本的流部分提供给所述自适应流播放器而不是所述自适应流播放器必须在网络上获取具有所述特定特性的所述流部分的动作。11.如权利要求10的方法,其特征在于,如果所述可接受版本的流部分不存在于所述流高速缓存中,所述方法还包括:在网络上请求具有所述特定特性的所述流部分的动作。12.如权利要求9所述的方法,其。
8、特征在于,如果所述可接受版本的流部分不存在于所述流高速缓存中,所述方法还包括:在网络上请求具有所述特定特性的所述流部分的动作。13.如权利要求12的方法,还包括以下:接收所请求的流部分的动作;以及判断是否要将检索到的流部分高速缓存在所述流高速缓存中的动作。14.如权利要求13所述的计算机程序产品,其特征在于,如果所述自适应流播放器判断不应高速缓存检索到的流部分,则检索到的流部分未经高速缓存就被呈现在所述显示器上,且其中,如果所述自适应流播放器判断应高速缓存检索到的流部分,则检索到的流部分被高速缓存在所述流高速缓存中,并且检索到的流部分还被呈现。15.如权利要求9所述的方法,其特征在于,所述可接。
9、受版本的流部分可以是不具有所述特定特性但具有可接受的替代特性的流。权 利 要 求 书CN 102918594 A1/6页4用于自适应流播放器的高速缓存控制背景技术0001 在信息时代,数字视频广泛地分布,且可在诸如例如因特网等的多种数字通信网络中获得。数字视频流的示例可以包括例如视频流和音频流。音频流和其他数据(例如文本)可以伴随着视频流。流播放器接收流传播内容,并将其呈现在客户机的显示器上。自适应流播放器监视客户机状况并据此调整流。举例来说,如果客户机的处理器非常繁忙,且网络带宽被重度利用,则自适应流播放器可以向下调整流的品质以便减少与流相关联的处理和网络利用。在视频流的情况中,如果播放器窗。
10、口是较小的尺寸,则自适应流播放器可以请求适用于较小窗口的较低分辨率的流。每一秒或每若干秒,自适应流播放器确定如何调整以适用于当状况的流,并对流源做出适当的请求。0002 流播放器常常在web浏览器中运行。浏览器常常具有高速缓存内容的能力,以便更快速地响应对内容的将来客户机请求。然而,高速缓存或不高速缓存内容的决策是在浏览器本机进行的,且不受自适应流播放器的控制。另外,在一些情况中,流播放器不在浏览器环境内运行,或者浏览器会禁用高速缓存。0003 简述0004 在此描述的至少一种实施例涉及拥有对是否将检索到的流高速缓存在与自适应流播放器相同的计算机上的本地流高速缓存中的控制的自适应流播放器。自适。
11、应流播放器监视计算系统的状况,并每次一部分地请求流。如果计算系统的状况改变,则从一个所请求的部分到下一个所请求的部分,所请求的流部分的特性可以改变,由此引起流呈现自适应于本地状况。0005 对于至少一些流部分,在请求具有特定特性的流部分之前,高速缓存控制组件首先判断是否有可接受版本的流部分存在于流高速缓存中。在一种实施例中,如果流高速缓存中存在可接受版本,则该版本被提供而不必请求网络的流部分。在一种实施例中,对与在网络上接收到的任何流部分,高速缓存控制组件决定是否高速缓存该流部分。0006 因而,高速缓存控制组件允许自适应流播放器以离线场景工作,且也允许自适应流播放器具有使用已高速缓存内容的倒。
12、带、暂停和其他控制。0007 本概述不旨在标识所要求保护的本主题的关键特征或必要特征,也不预期用来辅助确定所要求保护的本主题的范围。0008 附图简述0009 为了描述可以获得上面所叙述的和其他优点和特征的方式,将通过引用附图呈现各种实施例的更具体的描述。应理解,这些图仅描绘样本实施例,且因而不应被认为是限制本发明的范围,将通过使用附图借助于附加的特异性和细节描述和解释各实施例,附图中:0010 图1阐释可以用来采用在此描述的实施例的示例计算系统;0011 图2阐释其中客户机计算系统出于获得流的目的与服务器计算系统通信的网络环境;以及0012 图3阐释供自适应流播放器使用自适应流播放器在其上运。
13、行的计算系统呈现流说 明 书CN 102918594 A2/6页5的方法的流程图。0013 详细描述0014 根据在此描述的各实施例,自适应流播放器具有对是否将检索到的流高速缓存在本地流高速缓存中的控制。对于播放器所请求的流部分中的至少一些,在网络上出发之前,高速缓存控制组件首先判断是否有可接受版本的流部分存在于流高速缓存中。如果流高速缓存中存在可接受版本,则该版本被提供而不必在网络上请求该流部分。对于在网络上接收到的流部分,高速缓存控制组件可以决定是否高速缓存该流部分。因而,高速缓存控制组件允许自适应流播放器以离线场景工作,且也允许自适应流播放器具有使用已高速缓存的内容的倒带、暂停和其他控制。
14、。首先,将相对于图1描述关于计算系统的一些介绍性讨论。然后,将相对于图2和图3描述自适应流播放器高速缓存操作的实施例。0015 首先,相对于图1描述关于计算系统的介绍性讨论。计算系统现在日益采用多种多样的形式。计算系统可以是例如手持式设备、家用电器、膝上型计算机、台式计算机、大型计算机、分布式计算系统或甚至是通常不被认为是计算系统的设备。在本描述中以及在权利要求中,术语“计算系统”被宽泛地定义为包括至少一个处理器和其上具有可由处理器执行的计算机可执行指令的存储器的任何设备或系统(或其组合)。存储器可以采用任何形式且可以依赖于计算系统的本质和形式。计算系统可以在网络环境上分布,且可以包括多个组成。
15、的计算系统。0016 正如图1中所阐释的,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,它可以是易失性、非易失性或两者的某种组合。术语“存储器”在此也可以用来指示非易失性大容量存储,例如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。在此所使用的术语“模块”或“组件”可以是指在计算系统上执行的软件对象或例程。在此描述的不同的组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,被实现为分离的线程)。0017 在下面的描述中,参考由一个或多个计算系统执行的动作描述各实施例。如果。
16、这样的动作被实现为软件,则响应于已经执行计算机可执行指令,执行该动作的关联计算系统的一个或多个处理器指示计算系统的操作。这样的操作的示例涉及数据的操纵。计算机可执行指令(和所操纵的数据)可以被存储在计算系统100的存储器104中。计算系统100也可以包括显示器112,显示器112可以被用来提供各种具体用户界面,例如在此描述的那些。计算系统100也可以包含通信信道108,通信信道108允许计算系统100例如在网络110上与其他消息处理器通信。0018 本发明的各实施例可以包括或利用包括诸如例如一个或多个处理器和系统存储器等的计算机硬件的专用或通用计算机,如下面更详细地讨论。在本发明的范围内的实施。
17、例也包括用于携带或存储计算机可执行指令和/或数据结构的物理介质和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用的介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因而,作为示例而非限制,本发明的各实施例可以包括至少两个明显地不同的种类的计算机可读介质:计算机存储介质和传输介质。0019 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他说 明 书CN 102918594 A3/6页6磁存储设备、或可以被用来存储以计算机可执行指令或数据结构的形式的所期望的程序代码。
18、装置且可由通用或专用计算机访问的任何其他介质。0020 “网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当在网络或另一通信连接(硬布线、无线、或硬布线或无线的组合)上将信息传输或提供给计算机时,计算机适当地将该连接看作是传输介质。传输介质可以包括可以被用来携带以计算机可执行指令或数据结构的形式的所期望的程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。以上的组合也应被包括在计算机可读介质的范围内。0021 进一步,一旦到达各种计算机系统组件,可以自动地将以计算机可执行指令或数据结构的形式的所期望的程序代码装置从传输介质传输到计算机存储。
19、介质(或反之亦然)。例如,在网络或数据链路上接收的计算机可执行指令或数据结构可以被高速缓存在网络接口模块(例如,“NIC”)内的RAM中,且然后,最终被传输到计算机系统RAM和/或计算机系统中较不易失的计算机存储介质。因而,应理解,计算机存储介质可以被包括在也(或甚至主要地)利用传输介质的计算机系统组件中。0022 计算机可执行指令包括例如在处理器处执行时引起通用计算机、专用计算机或专用处理设备执行某些功能或一组功能的指令和数据。计算机可执行指令可以是例如二进制文件、诸如汇编语言等的中间格式指令或甚至源代码。尽管已经用对结构特征和/或方法论动作来说专用的语言描述了本主题,但应理解,在所附权利要。
20、求中界定的本主题并不必定限于以上所描述的所述特征或动作。相反,所描述的特征和动作是作为实现权利要求的示例形式而公开的。0023 本领域中的技术人员将明白,本发明可以在具有包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程的消费性电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等的多种类型的计算机系统配置的网络计算环境中实践。本发明也可以在分布式系统环境中实践,分布式系统环境中,通过网络(由硬布线数据链路、无线数据链路或由硬布线和无线数据链路的组合)链接的本地计算机系统和远程计算机系统两者均执行任务。在分布。
21、式系统环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者。0024 图2阐释其中客户机计算系统210与服务器计算系统220通信的网络环境200。客户机计算系统210包括能够在显示器上呈现流的自适应流播放器211、流高速缓存212和高速缓存控制组件213。服务器计算系统220包括响应于来自自适应流播放器的请求可以将流部分提供给客户机计算系统210的流源221。作为示例,自适应流可以是视频流,在这种情况中,在视频流内可能存在所提供的补充性信息,诸如例如同步音频流以及诸如文本等的可能的数据。在这种情况中,自适应流播放器可以是例如自适应视频播放器。在音频流的情况中,流内可以存在补充性信。
22、息,诸如例如文本或图像。然而,本发明的原理不限于流的类型,这是由于流可以是任何流,即使不是视频流或音频流。0025 客户机计算系统210和服务器计算系统220中的每一个都可以如以上图1的计算系统所述构造,但服务器计算系统220不必具有显示器。计算系统210被称为“客户机”是由于它接收以流的形式的服务。然而,这不暗示计算系统210不能用来向其他计算系统提供服务。此外,计算系统220被称为“服务器”是由于它提供流传播服务。然而,这不暗示说 明 书CN 102918594 A4/6页7服务器计算系统220不能充当从其他计算系统接收服务的客户机计算系统。因此,术语“客户机”和“服务器”仅仅用来在流传播。
23、服务的上下文中将一个计算系统与另一计算系统区分开来。0026 自适应流播放器211将所接收的流呈现在显示器(例如图1的显示器112)上。自适应流播放器也请求不是完整片段的流,而是每次一部分。举例来说,也许自适应流播放器211以两秒片段请求流,尽管更宽泛原理不限于片段在时间上的大小。流播放器211的“自适应”之处在于,取决于客户机210上的当前状况,它请求不同品质的流。0027 举例来说,播放器211可以监视处理器利用率、网络使用或可以影响自适应流播放器211访问和呈现流的能力的任何其他资源的使用。在自适应视频播放器的情况中,播放器211也可以监视要在其中呈现流的窗口的尺寸。例如,假定网络带宽可。
24、用性低,但存在大量的可用处理器资源,则播放器211可以请求具有较低的品质和/或较高的压缩率的视频。这样的视频部分将较小,但解压所需的处理可能较大。然而,这对具有对处理器资源的访问但缺乏网络带宽的客户机来说可能是合适的平衡。作为另一示例,假定视频的显示窗口非常小。在这种情况中,自适应视频播放器可以请求低分辨率图像,这是由于在窗口内的像素分辨率不足以呈现与较高分辨率图像相关联的所有信息。如果用户稍后将窗口扩大到也许是完全屏幕尺寸,那么,自适应视频播放器可以感知到这一点,并相应地请求接下来的视频部分为较高分辨率。因而,自适应流播放器更高效地使用可用资源,且具有降低的对不必要的资源利用的风险。自适应流。
25、播放器是本领域中已知的。0028 然而,本领域中未知的是自适应流播放器对流高速缓存的任何控制。图2中,客户机计算系统210包括对自适应流播放器211来说是本机的流高速缓存212,且该流高速缓存212被配置为在高速缓存控制组件213的指示下有选择地存储流部分。高速缓存控制组件213受到自适应流播放器213的控制,以使得在自适应流播放器211作出对具有特定特性的流部分的请求之前,高速缓存控制213首先验证是否有可接受版本的流部分存在于流高速缓存中。0029 在图2中,自适应流播放器211是响应于客户机210处的当前状况决定应请求流部分中的哪些可用版本的决策制定组件。然而,自适应流播放器可以更广泛地。
26、被认为是包括决策制定组件211以及高速缓存控制组件213两者。0030 图3阐释供自适应流播放器在自适应流播放器运行在其上的计算系统上呈现流的方法300的流程图。由于方法300可以在图2的环境200中执行,现在将频繁参考图2的环境200描述图3。0031 自适应流播放器监视计算系统的状况(动作301)。举例来说,图2的自适应流播放器211正在监视客户机210处的状况。这样的状况的示例先前已提到,包括例如处理器利用率、网络带宽可用性和呈现限制(例如在视频呈现的情况中的窗口尺寸)。这种监视操作尽管被列出为分离的动作,但可以是在方法300的剩余部分被执行的同时在后台进行的相当连续的操作。0032 如。
27、果还不是时候作出对新的流部分的请求(判定框302中的否),那么,处理继续,且自适应流播放器简单地继续监视客户机条件。如果是时候作出对流部分的请求(判定框302中的是),那么,自适应流播放器作出对具有特定特性的流的请求(动作303)。在一个示例中,自适应流播放器可以按照两秒片段请求流部分。在这种情况中,自适应流播放器将大说 明 书CN 102918594 A5/6页8约每两秒左右作出请求。而且,处理流将继续周期性地作出请求(动作303)。然而,目前,单个请求的处理流将被描述,以及被描述为这单个请求可以对多个请求重复的原理。0033 由于客户机处的状况的改变,从一个请求到下一请求,所请求的流部分的。
28、特性可以不同。举例来说,假定用户正在观看表示用户喜欢的情景喜剧的第13集的视频。现在假定用户当前正在相对小的窗口中观看从第13集的第8秒到第10秒的两秒视频部分。当自适应流播放器请求这一视频部分时,自适应流播放器请求从第8秒到第10秒的低分辨率版本的视频部分。现在假定在第9秒,用户将窗口尺寸增加到完全屏幕尺寸。自适应流播放器感知到这一点,并为从第10秒到第12秒的下一视频部分请求较高分辨率。然而,在实际应用中,存储器中可能存在若干秒的一些缓冲以便考虑流传输中的请求响应时间中的一些等待时间。因此,也许从第10秒到第12秒的部分已经在存储器中。因此,在调整窗口时,在呈现较高分辨率视频之前,用户可能。
29、注意到一些延迟。0034 对于所请求的流部分中的一些或全部,高速缓存控制组件验证是否有可接受版本的流部分存在于计算系统上的流高速缓存中(动作304)。在此使用的术语“可接受”版本至少包括具有由自适应流播放器请求的特定特性的流部分。然而,术语“可接受”版本也可以涵盖仍然适用于自适应流播放器的替代特性。举例来说,假定自适应视频播放器已经判断,接下来的视频部分应具有垂直580和水平750的分辨率,已高速缓存的视频部分可能不是完全相同的分辨率,但仍然可以是自适应视频播放器可用和可接受的。例如,假定已高速缓存版本是垂直600和水平760。借助于某种调整,自适应视频播放器可以确定已高速缓存版本仍然是可接受。
30、版本的视频部分。0035 如果可接受版本的流部分存在于流高速缓存中(判定框304中的是),那么,可接受版本的流部分被提供给自适应流播放器(动作305)。参见图2,例如,箭头231表示自适应流播放器211经由高速缓存控制组件213从流高速缓存212获取可接受版本的流部分的过程。0036 另一方面,如果可接受版本的流部分不存在于流高速缓存中(判定框304中的否),则在网络上请求具有特定特性的流部分(动作306)。参见图2,例如,箭头232表示自适应流播放器211前往服务器计算系统220以从流源221请求具有特定特性的流部分的过程。然后,自适应流播放器将所获得的流部分提供给高速缓存控制组件213,如。
31、箭头233所表示的。0037 在接收到所请求的流部分时(动作307),高速缓存控制组件判断是否要在流高速缓存中高速缓存检索到的流部分(判定框308)。如果自适应流播放器判断不应高速缓存检索到的流部分(判定框308中的否),则检索到的流部分未经高速缓存就被呈现在显示器上(动作309)。如果高速缓存控制组件判断应该高速缓存检索到的流部分(判定框308中的是),则检索到的流部分除了被呈现(动作309)之外,还被高速缓存在流高速缓存中(动作310)。流高速缓存212可以已经至少部分地以这种方式通过为先前的流部分请求执行动作309来填充。然而,流高速缓存212也可以包括以任何其他方式获取的流,即使该流不。
32、是先前被自适应流播放器211请求的。0038 在一种实施例中,高速缓存控制组件使用应用编程接口来与流高速缓存交互。同样地,流播放器也可以使用应用编程接口来与高速缓存控制组件交互。举例来说,可存在用于检查流高速缓存中是否存在可接受版本的流部分的接口。也可存在用于判断是否应该高说 明 书CN 102918594 A6/6页9速缓存检索到的流部分的接口。0039 因此,所描述的是用于从已高速缓存的流有选择地满足来自自适应流播放器的流请求以及用于在流部分被检索到时有选择地高速缓存流部分的高效机制。高速缓存操作受到自适应流播放器的控制。0040 这些特征允许包括通过使用自适应流播放器离线访问流内容的重要场景。举例来说,使用在此描述的原理,可以购买或租赁电影,其中所购买或租赁的视频中的一些或全部可以驻留在本地客户机上。此外,可通过使用已高速缓存的存储器启用实况流导航(例如暂停、倒带或快进到实况),以满足流导航。0041 可以在不偏离其精神或必要特性的前提下以其他特定形式具体化本发明。在所有考虑中,所描述的实施例仅应被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而非由前述描述指示。出现在权利要求的等效物的含义和范围内的所有改变都被包含在它们的范围内。说 明 书CN 102918594 A1/3页10图1说 明 书 附 图CN 102918594 A10。