在可插入的内容处理系统中卸载内容检索并进行解码

申请号 CN201080056768.0 申请日 2010-11-18 公开(公告)号 CN102667750A 公开(公告)日 2012-09-12
申请人 微软公司; 发明人 R·玛哈简;
摘要 公开了用于在可插入内容处理系统中卸载内容检索并进行解码的系统、方法和计算机可读存储介质。这可以通过 服务器 向客户机发送将视频包括为两部分的 帧 来实现——未经解码的视频数据,和帧的其余部分。客户机随后使用应用内容处理程序来对与视频数据相对应的视频图像进行解码,并将其与帧的其余部分相组合以重新创建帧。服务器可以执行内容处理程序的代理以便执行通信来检索媒体。客户机可以使用与内容处理程序相对应的存根应用来执行内容处理程序,使得内容处理程序所执行的操作好像它正在与应用交互那样被执行。
权利要求

1.一种方法,包括:
在远程呈现会话中跨通信网络与服务器通信,其中所述服务器发送以供显示,所述帧包括来自服务器的可被内容处理程序解码的媒体,所述内容处理程序与存根容器交互,所述存根容器对应于与所述内容处理程序相关联的应用;
接收所述媒体;
所述存根容器指示所述内容处理程序对所述媒体进行解码;
所述内容处理程序对与所述媒体相对应的图像进行解码;以及
显示所述图像。
2.如权利要求1所述的方法,其特征在于,还包括:
从所述服务器接收第二图像;并且显示所述图像包括:
显示第三图像,所述第三图像包括覆盖在所述图像上的所述第二图像,所述第三图像表示所述帧。
3.如权利要求1所述的方法,其特征在于,所述服务器包括代理内容处理程序和第二应用,所述代理内容处理程序与所述服务器的内容处理程序相对应,所述代理内容处理程序与所述内容处理程序相对应,所述第二应用与所述应用相对应。
4.如权利要求1所述的方法,其特征在于,接收所述媒体包括:
从第二服务器接收所述媒体,从所述第二服务器接收的所述媒体尚未被所述服务器传输。
5.如权利要求4所述的方法,其特征在于,还包括:
从所述服务器接收对如何从所述第二服务器接收媒体的指示。
6.如权利要求1所述的方法,其特征在于,接收所述媒体包括:
从所述服务器接收所述媒体,所述服务器已经从第二服务器接收了所述媒体。
7.如权利要求6所述的方法,其特征在于,所述方法由客户机执行,其中所述服务器被配置为从所述第二服务器接收所述媒体,但是所述客户机不被配置为从所述第二服务器接收所述媒体。
8.如权利要求1所述的方法,其特征在于,还包括:
向所述服务器确定媒体的数据卸载平,所述数据卸载水平包括卸载对所述媒体的访问,或卸载对所述媒体的呈现。
9.如权利要求1所述的方法,其特征在于,还包括:
接收所述第二图像的一部分被所述图像遮挡的指示;以及
显示包括覆盖在所述图像上的所述第二图像的第三图像还包括:仅显示所述第二图像的覆盖在所述图像上的未被所述图像遮挡的部分。
10.如权利要求1所述的方法,其特征在于,还包括:
接收对显示所述第二图像的位置的指示;以及
其中显示所述第二图像包括在所述位置显示所述第二图像。
11.一种系统,包括:
用于在远程呈现会话中跨通信网络与客户机通信的电路
用于确定向所述客户机发送包括媒体和存根图像的图像的电路;
用于确定所述客户机可用内容处理程序对所述媒体进行解码的电路;
用于向所述客户机发送所述媒体的电路;以及
用于向所述客户机发送所述存根图像的电路,所述客户机显示所述图像的表示,所述图像包括用第二图像覆盖的子图像,所述第二图像由用所述内容处理程序对所述媒体进行解码的所述客户机来创建。
12.如权利要求11所述的系统,其特征在于,还包括:
用于从所述客户机接收通信的电路,所述通信涉及存储所述媒体的媒体服务器;
用于将所述通信传输到存储所述媒体的媒体服务器的电路;
用于从所述媒体服务器接收响应的电路;以及
用于将所述响应传输到所述客户机的电路。
13.如权利要求11所述的系统,其特征在于,所述通信包括导航所述媒体的指示。
14.如权利要求11所述的系统,其特征在于,还包括:
用于确定与所述媒体相对应的所述子图像的一部分的电路;以及
用于用第三图像代替与所述媒体相对应的所述子图像的所述部分的电路。
15.如权利要求11所述的系统,其特征在于,还包括:
用于向所述客户机发送对在哪里覆盖所述第二图像的指示。

说明书全文

在可插入的内容处理系统中卸载内容检索并进行解码

背景技术

[0001] 虽然计算机曾经一度是孤立的并且与其他计算机具有最小的或很少的交互,但是现在计算机通过局域网(LAN)、广域网(WAN)、拨号连接等等与各种各样的其他计算机进行交互。随着因特网的广泛增长,计算机之间的连接已经变得更加重要并且已经开发了许多新的应用程序和技术。大规模网络的增长以及低成本个人计算机的广泛可用性已经从根本上改变了许多人工作、交互、通信、以及玩乐的方式。
[0002] 网络通信的一种日益增加的流行形式一般被称为远程呈现系统,其能使用诸如远程桌面协议(RDP)、独立计算体系结构(ICA)、以及其他协议来与远程客户机共享桌面和其他应用。这样的计算系统通常将来自客户机计算设备的键盘按压和鼠标点击或选择传送到TM服务器计算设备,通过通信网络(例如,INTERNET (因特网))将屏幕更新中继回另一方向。
由此,当实际上客户机仅仅被发送如在服务器侧上出现的应用程序的屏幕截图或时,用户具有好像他的会话完全在他的客户机计算机上执行的体验。
[0003] 通常在远程呈现系统中,在服务器上对图形数据进行编码,并随后将其传送到客户机以供在客户机显示器上呈现。要远程地显示诸如视频或动画的媒体时,首先将该媒体从本机格式(例如,H.264或WMV)解码为另一种格式,诸如位图。随后对位图进行编码以便传输到客户机。该解码和编码过程对于服务器在计算上是昂贵的,尤其是当它并发地执行很多这种远程呈现会话,且需要大量的带宽以向客户机传送经解码和解码的媒体时(相对于传送经本机编码的媒体所需要的带宽而测量的)。这可能导致服务器需要丢弃帧,或者因为它无法解码全部帧,或者因为它无法将帧全部发送到客户机,并因此导致被降低的客户机体验。发明内容
[0004] 因此,当通过对应用使用内容处理程序来显示媒体时,将是对现有技术的改进以便降低远程呈现会话中服务器上的需求。
[0005] 在一个实施例中,内容处理程序是插件。例如,应用可以是微软TM TM
INTERNETEXPLORER ,媒体可以是WINDOWS MEDIA VIDEO 视频格式的视频,而内容处理程TM
序可以是处理在媒体于INTERNET EXPLORER 网页中被查看时对其进行解码和呈现的微软TM TM TM
SILVERLIGHT ACTIVEX 内容处理程序插件。在另一个实施例中,视频是FLASH 格式,并TM TM
且内容处理程序是FLASH ACTIVEX 内容处理程序。
[0006] 此改进通过服务器向客户机发送将媒体包括为两部分的帧来实现——经编码的媒体,和帧的其余部分。使用上面的实施例,经编码的媒体将包括视频,而帧的其余部分将TM包括未被视频占据的INTERNET EXPLORER 应用窗口(例如,导航按钮和边界,在其上呈现视频的网页的其余部分)。随后客户机使用内容处理程序结合存根容器对与经编码媒体相对应的图像进行解码,并且将该图像与帧的其余部分组合以重新创建该帧,就像它出现在服务器上那样(远程呈现会话期间更少的任何有损编码等)。
[0007] 存根容器可包括轻量应用,该轻量应用被配置为以与内容处理程序的对应应用将TM管理它的相同的方式管理内容处理程序。再次使用上面的示例,存根容器向SILVERLIGHT TM TM TM
ACTIVEX 内容处理程序提供与若SILVERLIGHT ACTIVEX 内容处理程序在INTERNET TM TM
EXPLORER 内执行时将接收的相同的通信,即使存根容器可能不实现INTERNET EXPLORER的功能的大部分,诸如解码网页的能(由此将存根容器指定为“轻量”应用)。
[0008] 在媒体被存储在与服务器分开的媒体服务器计算设备上存储的实施例中,媒体可以绕过服务器被直接地发送到客户机。
[0009] 在一个实施例中,服务器检索存储在媒体服务器上的媒体,并将其传递给客户机以供解码。它可以通过使用代理内容处理程序来完成这一点,该代理内容处理程序能够像内容处理程序那样与服务器通信,并且随后将其接收的媒体数据传送到客户机。
[0010] 本公开包含用于实现这些教导的系统、方法和计算机可读存储介质。
[0011] 此处描述的主实施例讨论由计算设备的一个或多个处理器执行的计算机可执行指令。然而,可以理解,这些技术可以完全用硬件来实现,诸如通过合适编程的现场可编程阵列(FPGA)或其某种组合。本领域技术人员之一可理解,本公开的一个或更多个方面可包括但不限于用于实现本公开的本文所提及的各方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所提及的方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。
[0012] 以上是概述,并且因此必然包含细节的简化、一般化及省略。本领域技术人员将明白,本发明内容只是说明性的并且决不旨在是限制性的。附图说明
[0013] 参考附图来进一步描述用于在可插入的内容处理系统中卸载内容检索并进行解码的系统、方法和计算机可读介质,附图中:
[0014] 图1示出了可在其中体现在此所描述的技术的示例通用计算环境。
[0015] 图2示出了其中客户机与服务器在远程呈现会话中通信、以及其中该服务器担任代理为该客户机从媒体服务器检索媒体的示例系统。
[0016] 图3示出了其中如图2所述的客户机与服务器在远程呈现会话中通信、以及其中客户机从媒体服务器检索将在远程呈现会话中显示的媒体的示例系统。
[0017] 图4示出了客户机参与远程呈现会话的示例操作过程,在该远程呈现会话中,存在在可插入的内容处理系统中卸载内容检索和解码。
[0018] 图5示出了服务器参与远程呈现会话的示例操作过程,在该远程呈现会话中,存在在可插入的内容处理系统中卸载内容检索并解码。
[0019] 图6A描绘了显示媒体的第一浏览器窗口以及图2中所参考的第二浏览器窗口。
[0020] 图6B描绘了图6A的第一和第二浏览器窗口,其中第二浏览器窗口遮挡了第一浏览器窗口的媒体的一部分。
[0021] 说明性实施例的具体实施方式
[0022] 图1是在其中可实现在此描述的技术的通用计算设备的框图。计算系统环境120只是合适的计算环境的一个示例,并且不旨在对当前公开的主题的使用范围或功能提出任何限制。也不应该将计算环境120解释为对示例操作环境120中示出的任一组件或其组合有任何依赖性或要求。在某些实施例中,所描绘的各种计算元素可包括被配置成实例化本发明的各具体方面的电路。例如,本公开中使用的术语“电路”可包括被配置成通过固件或开关来执行功能的专用硬件组件。其他示例中,术语电路可包括由实施可用于执行功能的逻辑的软件指令配置的通用处理单元、存储器等。在电路包括硬件和软件的组合的示例实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。由此,对于硬件实现还是软件实现的选择是设计选择之一并留给实现者。
[0023] 计算机141通常包括各种计算机可读介质。计算机可读介质可以是可由计算机141访问的任何可用介质,并且包括易失性与非易失性介质、可移动与不可移动介质两者。
系统存储器122包括易失性和/或非易失性存储器形式的计算机可读存储介质,如只读存储器(ROM)123和随机存取存储器(RAM)160。包含诸如在启动期间帮助在计算机141内的元件之间传输信息的基本例程的基本输入/输出系统124(BIOS)通常储存储在ROM 123中。RAM 160通常包含处理单元159可立即访问和/或当前正在操作的数据和/或程序模。作为示例而非限制,图1示出了操作系统125、应用程序126、其他程序模块127和程序数据128。
[0024] 计算机141也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器138,从可移动、非易失性磁盘154中读取或向其写入的磁盘驱动器139,以及从诸如CD ROM或其他光学介质等可移动、非易失性光盘153中读取或向其写入的光盘驱动器140。可以在该示例操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器138通常由例如接口134等不可移动存储器接口连接至系统总线121,而磁盘驱动器139和光盘驱动器140通常由例如接口135等可移动存储器接口连接至系统总线121。
[0025] 以上讨论并在图1中示出的驱动器及其相关联的计算机存储介质为计算机141提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图1中,例如,硬盘驱动器138被示为存储操作系统158、应用程序157、其他程序模块156和程序数据155。注意,这些组件可与操作系统125、应用程序126、其他程序模块127和程序数据128相同,也可与它们不同。在此操作系统158、应用程序157、其他程序模块156以及程序数据155被给予了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,例如键盘151和定点设备152——通常是指鼠标、跟踪球或触摸垫——向计算机141输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些以及其他输入设备通常通过耦合到系统总线的用户输入接口136连接到处理单元159,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构来连接。监视器142或其他类型的显示设备也通过诸如视频接口132之类的接口连接至系统总线121。除监视器之外,计算机还可以包括可以通过输出外围接口133连接的诸如扬声器144和打印机143之类的其他外围输出设备。
[0026] 计算机141可使用到一个或多个远程计算机(诸如,远程计算机146)的逻辑连接而在联网环境中操作。远程计算机146可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且通常包括许多或所有以上相对计算机141所描述的元件,但在图1中仅示出了存储器存储设备147。图1中所描绘的逻辑连接包括局域网(LAN)145和广域网(WAN)149,但还可包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
[0027] 当在LAN联网环境中使用时,计算机141通过网络接口或适配器137连接到LAN145。当在WAN联网环境中使用时,计算机141通常包括调制解调器150或用于通过诸如因特网等WAN 149建立通信的其他手段。调制解调器150可以是内置的或外置的,可经由用户输入接口136或其他适当的机制连接到系统总线121。在联网环境中,相对于计算机141所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序148驻留在存储器设备147上。应该理解,所示网络连接是示例,并且可以使用在计算机之间建立通信链路的其它手段。
[0028] 图2示出了其中客户机204与服务器202在远程呈现会话中通信、以及其中该服务器202担任代理为该客户机204从媒体服务器208检索媒体的示例系统。
[0029] 在逻辑上组织该系统和此处讨论的其他系统的组件,并且可以理解的是在一个实施例中能够按照各种排列对其进行组合,并且并非每个组件都出现在每个实施例中。
[0030] 在一个实施例中,服务器202和客户机204在远程呈现会话中跨通信网络206通信。服务器202和客户机204经由通信链接226来通信。服务器202和媒体服务器208经由通信链接228来通信。客户机204与媒体服务器208通信时,它经由通信链接226和通信链接228来通过服务器202实现。在一个实施例中,可在图1的计算设备中实现服务器202、客户机204和媒体服务器208中的每一个。在远程呈现会话的过程中,服务器202向客户机204发送与在服务器202上执行的一个或多个应用的图形输出相对应的多个帧。在发送这些帧的过程中,服务器202可能需要发送包括经解码媒体的图形输出的帧、以及服务器202通常发送到客户机204的图形数据(在该情形中,服务器202从媒体服务器208取回经本机编码的媒体,并将其发送到客户机202以供解码和呈现)。例如,这可包括显示网页的web浏览器,在该web浏览器上要播放视频。
[0031] 如在发明内容中讨论的示例,web浏览器可以是INTERNETEXPLORERTM,并且媒体是TM TM通过使用SILVERLIGHT ACTIVEX 内容处理程序212要在web浏览器中播放的WMV格式的TM TM
视频。在另一个实施例中,媒体是要通过使用FLASH 内容处理程序212来播放的FLASH格式的视频。
[0032] 在当前的实施例中,客户机204包括远程呈现会话客户机210、内容处理程序212、内容处理程序212的存根容器214、和几何跟踪器客户机216。
[0033] 此处使用的存根容器214是指模仿与内容处理程序212相关联的应用222的电路、计算机可执行指令等。内容处理程序212通常可能不会由自己来执行,而是相关于发送到相关联的应用222或从其接收的指令来执行。客户机204参与到与服务器202的远程呈现会话中时,相关联的应用222将运行在服务器202上,并且该应用222的图形输出将被发送到客户机204。客户机204没有必要存储或执行应用222的副本以便通过远程呈现会话来使用它。即使客户机204不具有应用222,它也不需要执行应用222的完整副本来利用内容处理程序212,并具有计算资源的相关联的成本。客户机204可以仅执行存根容器214,该存根容器214随后可与远程呈现会话内必要的内容处理程序212接口。执行存根容器214以与内容处理程序212接口通常比执行对应的全部应用222以达到相同目的需要更少的计算资源(对于诸如应用222的应用可在远程呈现会话中被远程地执行而不是本地地执行,存在若干其他原因。例如,使应用222的单个副本位于服务器202上比使应用的单独副本位于多个客户机204上更易于更新和维护)。
[0034] 在当前的实施例中,服务器202包括远程呈现会话服务器218、代理内容处理程序220、应用222、和几何跟踪器服务器224。应用222对应于客户机204上的存根容器214。
TM TM
例如,应用222是INTERNET EXPLORER 应用时,存根容器214是INTERNET EXPLORER 的存根容器214。
[0035] 服务器202和客户机204可以通信以确定客户机204是否要处理媒体的检索或呈现中的任一个,若是,则要处理多少。该通信可包括客户机204是否能够本地检索和解码媒体。这种通信可包括客户机204上内容处理程序212的可用性、网络条件、客户机204的计算资源、以及管理员或用户偏好。该通信可在例如发起远程呈现会话时、或在远程呈现会话内初次需要特定的内容处理程序212时发生。该通信还可包括服务器202的诸如是否具有适当的代理内容处理程序的能力。
[0036] 可以基于系统的细节对该通信何时发生进行优化。在一个实施例中,通信可被选择以在发起远程呈现会话时发生,因为这在稍后媒体被选择以供呈现时将可能减少滞后。用户可能发现具有较长的会话发起时段相比在通信产生时远程呈现会话中间期间的暂停更少麻烦。在一个实施例中,通信可被选择以在远程呈现会话内初次需要特定的内容处理程序212时发生。这在内容处理程序212不太可能用于会话中时可能是优选的,因此涉及通信的处理资源应当仅在必要时使用。
[0037] 例如,客户机204缺少适当的内容处理程序212来解码媒体时,在向客户机204发送其图像输出之前,服务器202可以对该媒体进行检索和解码。这包括远程呈现会话,而不卸载内容。
[0038] 此外,可以确定客户机204具有对来自媒体服务器208的媒体进行解码和访问的能力。在该实例中,客户机204可不受来自服务器202的干扰地从媒体服务器208检索媒体,并且还对该媒体进行解码。参考图3更详细地讨论该实施例。
[0039] 此外,可以确定客户机204具有对媒体进行解码的能力,但是客户机204不具备直接从媒体存储在其上的媒体服务器208访问媒体的能力,而服务器202能从媒体服务器208访问媒体。这可在例如媒体服务器208和服务器202被连接到客户机204无法访问的内联网通信网络上时发生。这是参考图2的实施例详细地讨论的实施例。
[0040] 在服务器202和客户机204二者均可对媒体进行解码的实施例中,它们可以诸如基于每个计算设备的可用处理资源,就哪一个解码媒体进行协商。
[0041] 通过该通信确定客户机204将对媒体进行解码时,代理内容处理程序220向客户机204上的存根容器214发送初始化参数。这种初始化参数可包括像媒体服务器208的地址、服务器202上内容输出的视觉位置、和安全设置等东西。这种参数还可包括来自媒体服务器208的参数,诸如应对媒体进行解码的维度。存根容器214使用初始化参数以与在服务器202上初始化代理内容处理程序220相类似的方式来调用内容处理程序212。从此刻以后,内容处理程序212能够从媒体服务器208检索媒体,并将其本地地解码到客户机204。如果在服务器202上请求内容检索,则代理内容处理程序220从媒体服务器208检索数据并将其以隧道传送到存根容器214,该存根容器214将该数据传递到内容处理程序212以便解码。
[0042] 服务器202将要把对媒体的呈现卸载到客户机204时,服务器202运行用于内容处理程序212的代理,该代理被配置为以与内容处理程序212将与媒体服务器208通信的相同的方式与媒体服务器208通信。例如,代理内容处理程序220被配置为与服务器202订立注册合约,允许将代理内容处理程序220代替内容处理程序212加载到运行在服务器202上的容器应用222中。代理内容处理程序220还可被配置为订立内容处理程序212的传入命令合约,允许代理内容处理程序220从应用222接收各种命令和调用(若内容处理程序220位于服务器202上代理内容处理程序212的位置,则内容处理程序220将已经接收了它们)。代理内容处理程序220还可被配置为订立通知或传出命令合约,使容器应用222像其已从内容处理程序212接收那样从代理内容处理程序220接收通知。
[0043] 在远程呈现会话过程期间,客户机204可使服务器202遭遇将结合应用222来执行内容处理程序212的事件。例如,客户机204可以指示服务器202在web浏览器内打开一网站,该网站包含诸如将经由内容处理程序212来呈现的视频的媒体。应用222在服务器202上执行。当它遇到媒体时,它执行与加载内容处理程序212一致的操作。然而,服务器202和客户机204已确定客户机204上的内容处理程序212将对媒体进行解码时,应用222反而终止加载代理内容处理程序220。
[0044] 应用222与媒体服务器208交互以检索媒体。它将所接收的媒体和指令从媒体服务器208传递到代理内容处理程序220,而代理内容处理程序220将其传递到客户机204上的内容处理程序212。这可以例如通过代理内容处理程序220将它们传递到远程呈现会话服务器218来完成,远程呈现会话服务器218将它们传递到远程呈现会话客户机210,远程呈现会话客户机210将它们传递到存根容器214,存根容器214将它们传递到内容处理程序212。
[0045] 内容处理程序212可包括如何体验媒体的功能,并且该功能的使用可包括将被发TM TM送到媒体服务器208的指令。例如,MICROSOSFT SILVERLIGHT 内容处理程序212具有提TM TM
供导航特征的功能,诸如选择新媒体以从MICROSOSFT SILVERLIGHT 内提供的列表中进行查看,在媒体中以对应的方式来执行导航特征。服务器202担任内容处理程序212的代理时,通过服务器202来发送对这些导航按钮的使用。例如,从内容处理程序212内选择新媒体时,存根容器214接收该选择,该存根容器214将其发送到远程呈现会话客户机210,远程呈现会话客户机210将其发送到远程呈现会话服务器218,远程呈现会话服务器218将其发送到应用222,应用222将其发送到执行该选择的媒体服务器208。同样,以类似的方式将通信从媒体服务器208传递到内容处理程序212。
[0046] 在内容解码和/或检索的过程期间,代理内容处理程序220将传入命令从应用222传送到存根容器214,存根容器214进而将其发送到内容处理程序212。来自内容处理程序212的任何通知或传出命令被传递到客户机204上的存根容器214,该存根容器214将其发送到服务器202上的代理内容处理程序220。代理内容处理程序220复制这些通知或传出命令,并将其提供给应用222。
[0047] 将代理内容处理程序220的显示元素与存根容器214(以及由此内容处理程序212)进行同步,使得客户机204上经解码的帧表示与若在服务器202上对整个帧进行解码并将其发送到客户机204以供显示所表示的相同的图像。
[0048] 一旦应用222结束内容解码,则卸载代理内容处理程序220。在卸载之前,代理容器向客户机204发送命令以卸载存根容器214和内容处理程序212。
[0049] 在远程呈现会话期间,经解码的媒体可变成被遮挡的,并且这可通过几何跟踪器来监视。几何跟踪可被认为是服务器202和204相互理解窗口形状的过程,其中将在客户机204上显示媒体。例如,会话显示了两个web浏览器窗口时,可在一个窗口中对媒体进行解码,并且随后可将第二窗口移至第一页面的部分或全部上方(这在图6A和6B中被描绘)。几何跟踪器服务器224运行以监视服务器202上的窗口和媒体的显示和排列。它检测到媒体已被遮挡时,它确定媒体的可查看区域的形状,并且向几何跟踪器客户机216传送对该可查看区域是什么的指示。
[0050] 例如,媒体可包括800x400像素矩形,并且该矩形的右半边可变为被遮挡的。几何跟踪器服务器224可以确定这已经发生,并且向几何跟踪器客户机216发送以下指示,将不显示媒体的最右边400x400像素区域并仅制作最左边400x400像素区域的媒体的容器形状。媒体的容器形状可通过服务器202上的窗口部分遮挡来变成非矩形的,或以其他方式不同于其形状类型。
[0051] 图3示出了如图2所述的客户机204与服务器202在远程呈现会话中通信、以及客户机204从媒体服务器208检索将在远程呈现会话中显示的媒体的示例系统。
[0052] 如参考图2所讨论的,客户机204与服务器202进行远程呈现会话时,客户机204可以请求服务器202执行应用222和相关联的内容处理程序212,并且将该执行的图形输出发送到客户机204以供显示。服务器202和客户机204如图2中经由通信链接226来通信,并且服务器202和媒体服务器208如图2中经由通信链接228来通信。然而,与图2相反,客户机204和媒体服务器208被配置为独立于服务器230经由通信链接230来通信。在客户机204和服务器208被配置为经由通信链接230通信的实施例中,它们还可以经由通信链接226和通信链接228通过服务器202来通信。
[0053] 在图2所描述的客户机204与服务器202之间的协商过程中,可以确定客户机204能够从媒体服务器208访问媒体,而不受服务器202的干扰。这可以例如通过客户机204查验媒体服务器208并且接收响应,或者通过客户机204从媒体服务器208成功地下载媒体的一部分来确定。
[0054] 在该实施例中,服务器202既未从媒体服务器208检索媒体,也未向客户机204发送(经解码的或未经解码的)媒体。这在远程呈现会话中服务器202发送到客户机204的帧中留下了洞—由经解码和呈现的媒体所占据的洞。
[0055] 在一个实施例中,服务器202向客户机204发信号,它将不向客户机204发送与要显示媒体之处相对应的帧的一部分。在一个实施例中,服务器202用图像来填充由媒体占据的帧的区域(当经解码和呈现的媒体被覆盖在图像顶部时,该图像随后将在客户机204上被遮挡)。在一个实施例中,服务器202用高度和/或容易压缩的东西,诸如单色(例如白色),来填充该区域。在使其可压缩的过程中,服务器202可以减少对它进行压缩所需要的其自身的处理资源、以及将它发送到客户机204所需要的带宽。
[0056] 客户机204接收媒体和帧这二者时,它组合这二者以创建通过远程呈现会话所请求的图像。在一个实施例中,服务器202向客户机204指示要在哪里显示媒体的帧内位置,并且客户机204在那里显示该图像。例如,远程呈现会话包括客户机204上的应用222窗口时,服务器202可以指示窗口内的位置(例如,窗口左上向右和/或向下的多个像素)。以此方式,当移动应用222窗口时,在哪里显示媒体的位置不改变。
[0057] 图4示出了客户机204参与远程呈现会话的示例操作过程,在该远程呈现会话中存在在可插入的内容处理系统中卸载内容检索并进行解码。
[0058] 操作402描绘了在远程呈现会话中跨通信网络与服务器202通信。
[0059] 操作404描绘了从服务器202请求对帧的远程显示,该帧包括来自服务器202的可被内容处理程序212解码的媒体,内容处理程序212与存根容器214交互,存根容器214对应于与内容处理程序212相关联的应用222。
[0060] 操作406描绘了从服务器202接收与帧相对应的图像。
[0061] 操作408描绘了向服务器202确定媒体的数据卸载平。在一个实施例中,数据卸载水平包括:卸载对媒体的访问,以及卸载对媒体的呈现。
[0062] 操作410描绘了接收媒体。在一个实施例中,接收媒体包括从第二服务器208接收媒体,从第二服务器202接收的媒体不由服务器202来传输。在一个实施例中,这包括从服务器202接收对如何从第二服务器208接收媒体的指示。
[0063] 在一个实施例中,接收媒体包括从服务器202接收媒体,服务器202已从第二服务器208接收了媒体。在当前操作过程由客户机204来执行的实施例中,服务器202被配置为从第二服务器208接收媒体,但是客户机204不被配置为从第二服务器208接收媒体。
[0064] 操作412描绘了存根容器214指示内容处理程序212对媒体进行解码。
[0065] 操作414描绘了内容处理程序212对与媒体相对应的第二图像进行解码。
[0066] 操作416描绘了显示第三图像,第三图像包括覆盖在图像上的第二图像,第三图像表示帧。第三图像可以是所构建的帧,诸如覆盖在其封闭web浏览器窗口的顶部的TMSILVERLIGHT 视频。
[0067] 在一个实施例中,执行图4的操作的客户机可通过在客户机显示器上创建远程呈现会话的父窗口来实现这一点(诸如在存储器中的帧缓冲器中,这些帧随后被转储清除到显示屏以生成图形输出)。客户机可以显示从服务器(例如,web浏览器窗口)接收的帧,并且将父窗口内的子窗口(父窗口的一部分)委托给内容处理程序,该内容处理程序随后执行第二图像(例如,嵌入在网页中的视频)的呈现操作。因此,当客户机在刷新图像时将该图像呈现给父窗口时,内容处理程序可向子窗口呈现第二图像。以此方式,该图像和第二图像的帧速率彼此独立。在该实施例中,所得的第三图像是其中包括子窗口的完全父窗口。
[0068] 有可能是视频图像的一部分将被遮挡,诸如它被另一个web浏览器窗口部分地覆盖。在一个实施例中,操作416包括接收以下指示:第二图像的一部分被图像遮挡,并且显示包括覆盖在图像上的第二图像的第三图像还包括:仅显示第二图像的覆盖在图像上的未被图像遮挡的部分。
[0069] 在一个实施例中,这包括接收对显示第二图像的位置的指示,其中显示第二图像包括在该位置显示第二图像。
[0070] 图5示出了服务器202参与远程呈现会话的示例操作过程,在该远程呈现会话中在可插入的内容处理系统中卸载内容检索并进行解码。
[0071] 操作502描绘了在远程呈现会话中跨通信网络与客户机204通信。
[0072] 操作504描绘了接收请求以向客户机204发送包括媒体的图像,该媒体与内容处理程序212相对应。在一个实施例中,该图像是应用输出帧。例如,该图像可以是包括嵌入视频(媒体)的web浏览器窗口,将在浏览器窗口内显示该嵌入视频。
[0073] 操作506描绘了确定客户机204可用内容处理程序212对媒体进行解码。
[0074] 操作508描绘了从媒体服务器208检索媒体。
[0075] 操作510描绘了向客户机204确定媒体的数据卸载水平。在一个实施例中,数据卸载水平对应于媒体检索或媒体解码。
[0076] 操作512描绘了向客户机204发送媒体。在一个实施例中,这包括向客户机204发送对媒体服务器208上媒体的位置的指示。
[0077] 操作514描绘了确定与媒体相对应的图像的一部分,并且用第三图像来代替与媒体相对应的图像的该部分。例如,图像包括作为帧被发送到客户机204的web浏览器窗口时,图像中将存在媒体通常应当位于但却丢失的“洞”,因为媒体将被分开地发送到客户机202。
[0078] 操作516描绘了向客户机204发送图像,该客户机204用第二图像覆盖该图像,该第二图像由客户机204创建,客户机204用内容处理程序212对媒体进行解码。
[0079] 操作518描绘了向客户机204发送对在哪里对图像进行解码的指示。
[0080] 操作520描绘了确定要对媒体进行解码的位置被部分地遮挡,以及向客户机204发送对要对媒体进行解码的位置被部分地遮挡的指示。
[0081] 操作522描绘了从客户机204的内容处理程序212接收请求以导航媒体;将导航媒体的请求传输到存储了媒体的媒体服务器208;从媒体服务器208接收响应;以及将该响应传输到内容处理程序212。
[0082] 图6A描绘了显示媒体604的第一浏览器窗口602以及第二浏览器窗口606,如图2中所参考的。
[0083] 图6B描绘了图6A的第一浏览器窗口602和第二浏览器窗口606,其中第二浏览器窗口606遮挡了在第一浏览器窗口602中显示的媒体604的一部分。
[0084] 结语
[0085] 尽管已经结合各附图所示的较佳方面描述了本发明,但要理解,可使用其他相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。因此,本发明不应该仅限于任何单个方面,而是应该在根据所附权利要求书的广度和范围内解释。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。因此,所公开的各实施例的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式。当程序代码被加载到诸如计算机等机器并由其执行时,该机器变为被配置成实施所公开的各实施例的装置。除了此处明确阐述的具体实现之外,考虑此处所公开的说明书,其它方面和实现将对本领域的技术人员是显而易见的。说明书和所示实现旨在仅被认为是示例。
QQ群二维码
意见反馈