专利名称:为客户端提供高保真显示和交互性的远程计算平台的制作方法
技术领域:
“远程显示生成器”提供用于实现远程计算平台的各种技术,所述远程计算平台向客户端提供对各种应用的远程访问,并且具体而言,“远程显示生成器”提供如下的各种技术所述技术用于在用于被远程主控的应用的大范围网络带宽的范围内向客户端提供具有高响应性交互式应用体验的高保真显示。
相关技术 网络带宽的快速发展为用户提供了出于多种原因利用远程计算资源的机会。例如,可以使用便携式或网络附加设备来访问由远程站点处的强大机器所主控的具有大量资源需求的应用和与该应用进行交互。另外,大的网络带宽和普遍深入的计算环境有益于软件即服务(SaaS)模型的部署。在软件消费的^aS模型中,软件在因特网或其他网络的范围内作为服务被提供给消费者并且应用由远程服务器来主控。因此,在客户端侧,用户可以消除软件安装和维护,并且使用瘦客户端计算平台来访问由远程服务器所提供的软件服务。
更具体而言,典型的远程计算平台将应用逻辑从用户界面去耦合,并且使得客户端能够使用来自一个或多个远程服务器的计算资源。在这些类型的远程计算系统的开发中,一般考虑到多个因素,例如包括用户体验的丰富性、带宽消耗、以及跨平台适应性。
例如在总体用户体验方面,远程计算平台的用户预期(或要求)如下的高保真显示和交互式体验其以相同的方式运行使得就好像用户正在访问在本地机器上运行的那些相同的应用。
用户可接受的总体应用性能是不仅是LAN环境下所要求的(其中高带宽通常是可容易获得的),而且是带宽受限的WAN环境中所要求的。遗憾的是,复杂的图形界面和多媒体应用常常在利用低带宽链路实现有效传输方面给开发者提出困难的技术挑战。
最后,随着技术在日常环境中变得更加普遍深入,诸如膝上型计算机、智能电话、 媒体播放器、家用器具等之类的越来越多的消费电子设备可以容易地访问因特网。这样的设备可能在访问带宽和操纵系统方面是大不相同的。因此,这些设备和相关联的应用的开发者所面临的另一挑战是尤其是在多媒体应用的情况下使这些设备以远程应用的用户可接受的方式运行,其中在多媒体应用中,用户常常主要关心视频质量。
为了解决这样的问题,在过去已经开发出大量的瘦客户端计算平台。通常而言,这些现有系统可以根据表示显示信息的机制被归为两类。
例如,第一类远程计算系统通常使用高级命令来表示屏幕更新,诸如例如被称为 “X系统”的应用和Microsoft 远程桌面协议(RDP)。这些方法在表示图形用户界面(⑶I)的显示方面是有效的。然而,这样的系统尤其是在表示显示密集型多媒体应用(例如视频回放)时往往遭受性能降级。另外,对高级命令的解释高度依赖于操作系统。因此,难以为服务器和客户端开发出具有不同显示呈现机制的操作系统上的应用。
第二类远程计算系统一般使用低级方法来表示远程服务器的屏幕,包括公知的 VNC和THINC型系统。基于VNC的系统一般通过如下方式运行直接从服务器的帧缓冲器读取像素,并且然后将这些像素压缩以供传输给客户端。在这样的系统的情况下用于像素压缩的公知编码方案包括ZRLE方法和Tight (紧密)编码方法。然而,这样的方法对于压缩具有高光谱内容的显示屏幕不是普遍有效的。例如,THINC系统截取服务器的图形调用并且将其映射到低级简单命令。然而,该系统缺乏用于诸如视频回放之类的显示密集型应用的有效的压缩机制。
发明内容
提供本概述是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
在此所述的“远程显示生成器”提出如下的各种技术所述技术用于在用于被远程主控的应用的大范围网络带宽的范围内向客户端提供具有高响应性交互式应用体验的高保真显示。一般而言,远程显示发生器将压缩友好的远程显示架构用作核心。在该压缩架构的情况下,来自远程服务器的实际屏幕数据被从显示缓冲器中逐帧读出,并且然后利用统一的屏幕编解码器被压缩。
于是,包括定时器驱动的屏幕更新模型和自适应传输机制的其他技术与远程显示发生器的各种实施例相整合,以通过改善显示质量和与被远程主控的应用之间的用户交互的响应性来改善总体用户体验。
更概括而言,远程显示生成器允许多个客户端连接到一个或多个远程主机以显示一个或多个并发应用以及与这些应用交互。由远程显示生成器所提供的屏幕图像压缩技术的各种实施例使用非重叠的像素块,这些像素块被评估并且被标识为特定类型,其中每种类型的像素块然后通过使用相应的图像压缩过程被压缩。然后,经压缩的像素块被编码并且被传输给所述一个或多个客户端。
在另外的实施例中,通过比较在先和当前图像帧中的像素块来确定哪些像素块还未改变而进一步提高压缩效率。未改变的像素块被标记为未改变的块,并且除了使用最小量的位来向客户端指示这些块相对于在先图像帧未改变以外,这些块不被压缩或编码。该基于块的差异检测过程用于进一步降低带宽需求和服务器或主机上的计算开销,由此允许主机服务于大量的并发客户端。
鉴于上面的发明内容清楚的是,在此所述的远程显示生成器提供如下的各种技术所述技术用于在用于被远程主控的应用的大范围网络带宽的范围内向客户端提供具有高响应性交互式应用体验的高保真显示。除了刚才所描述的好处之外,根据在结合附图所考虑的以下详细描述,远程显示生成器的其它优点将变得显而易见。
参考以下描述、所附权利要求书以及附图,将更好地理解所要求保护的主题的具体特征、方面和优点,附图中 图1提供示出此处描述的用于实现远程显示生成器的各种实施例的程序模块的示例性架构流程图。
图2提供在此所述的将服务器生成的屏幕图像划分成一组非重叠像素块和对两个不同客户端公共的像素块区域的示例。
图3提供示出此处描述的用于实现远程显示生成器的各种实施例的定时器驱动的屏幕更新模块的示例性架构流程图。
图4提供在此所述的太大以至于不能放入客户端显示窗口内的服务器生成的屏幕图像的示例。
图5提供在此所述的接下来由服务器响应于由客户端发送给服务器的“窗口调整”消息而对图4的服务器生成的屏幕图像进行大小调整以放入客户端显示窗口内的示例。
图6提供在此所述的各种类型的像素块的离散余弦变换(DCT)的示例。
图7提供在此所述的如下直方图的示例该直方图为各种类型的像素块相对于每种颜色的像素的总计数绘出了像素颜色值。
图8提供示出用于实现在此所述的用于基于远程显示生成器的编码实施例实现各种像素块的程序模块之间的相互关系的总体系统图。
图9提供在此所述的文本类型的像素块的示例,该示例示出了一组提取出的“基色”和相应的索引图。
图10提供在此所述的如下直方图的示例该直方图为各种类型的像素块相对于每种颜色的像素的总计数绘出了像素颜色值,其中由一组“颜色窗”来确定一小组占优的像素值的界限。
图11示出了在此所述的用于实现远程显示生成器的各种实施例的“多客户端编码”的总体框图。
图12描绘了在此所述的建立在远程显示生成器之上的包括一个客户端和多个主机/服务器的典型远程连接架构。
图13示出了在此所述的使用远程显示生成器来允许通过网络或因特网连接而连接到远程主机的多个客户端共享相同的屏幕内容的例子。
图14示出了在此所述的使用远程显示生成器来提供“网络投影仪”的示例性应用。
图15是描绘具有用于实现此处所描述的远程显示生成器的各实施方式的简化计算和I/O能力的简化通用计算设备的总体系统图。
各实施例的详细描述 在对所要求保护的主题的各实施例的以下描述中,对附图进行了参考,附图构成了实施例的一部分,并且在附图中通过说明的方式示出了里面可以实施所要求保护的主题的各具体实施例。应当理解,在不偏离当前要求保护的主题的范围的情况下,可以使用其他实施例并且可以作出结构上的改变。
1. 0 介绍 在此所述的“远程显示生成器”提供如下的各种技术所述技术用于在用于被远程主控的应用的大范围网络带宽的范围内向客户端提供具有高响应性交互式应用体验的高保真显示。
一般而言,远程显示生成器将压缩友好(compression-friendly)的远程显示架构用作核心。在该压缩架构的情况下,来自远程服务器的实际屏幕数据被从显示缓冲器中逐帧读出,并且然后利用统一屏幕编解码器被压缩。于是,包括定时器驱动的屏幕更新模型和自适应传输机制的其他技术与远程显示生成器的各种实施例相整合,以通过改善显示质量和与被远程主控的应用之间的用户交互的响应性来改善总体用户体验。
1. 1系统概览 如上所述,“远程显示生成器”提供如下的各种技术所述技术用于在用于被远程主控的应用的大范围网络带宽的范围内向客户端提供具有高响应性交互式应用体验的高保真显示。以上概述的过程由图1的总体系统图来示出。具体而言,图1的系统图示出了用于实现在此所描述的远程显示生成器的各种实施例的程序模块之间的相互关系。此外, 尽管图1的系统图示出了远程显示生成器的各种实施例的高级视图,但图1不旨在提供对贯穿本说明书所描述的远程显示生成器的每种可能实施例的穷尽或完全说明。
另外应当注意,在图1中可以由折线或虚线表示的任何框以及框之间的互连表示在此所述的远程显示生成器的可替代实施例。另外,下面所述的这些可替代实施例中的任意或全部可替代实施例可以与贯穿本说明书所述的其他可替代实施例组合使用。
总的来说,如图1所示,由远程显示生成器所实现的过程通过如下方式开始运行 为了允许客户端显示和/或与被服务器远程主控的应用进行交互的目的而在网络或因特网120的范围内将服务器或主机100连接到客户端110。服务器或主机100生成被远程主控的应用的当前显示屏幕130 (在此亦称显示帧),并且将当前显示屏幕提供给帧压缩与编码模块145。帧压缩与编码模块145将当前显示屏幕划分成一组相对小的像素块,所述像素块具有约为16X16像素的相同大小。
然后,帧压缩与编码模块145将紧接地上一显示帧135的缓冲副本140的相应像素块与当前显示帧130的像素块相比较。该比较允许远程显示生成器确定当前显示帧130 的哪些像素块还未相对于上一显示帧135发生改变。未改变的像素块被标记为将在第2. 1 节更详细描述的“跳过(SKIP) ”±夬,并且除了在发送给客户端的已编码屏幕图像中对足够的位进行编码以向该客户端指示特定像素块相对于上一显示帧135保持不变以外,未改变的像素块不被进一步压缩或熵编码。然后,已改变的块通过使用依赖于像素块“类型”的基于像素块的压缩技术被压缩,其中经压缩的像素块被编码以用于传输给客户端。
然后,服务器或主机100使用服务器发送模块150来在网络或因特网120的范围内将当前显示帧130的经编码的像素块传输给客户端110。然后,该客户端使用客户端接收模块1 来接收从服务器或主机100传输的当前显示帧130的经编码的像素块。然后,当前显示帧130的经编码的像素块被提供给帧解码与解压缩模块160,该帧解码与解压缩模块160首先反转由服务器或主机100所执行的编码以对当前显示帧的像素块进行解码。然后,解码与解压缩模块160选出由服务器所保留的相同的上一显示帧135的缓冲副文165 的未改变的像素块,并且将这些未改变的像素块与当前显示帧130的经解码的像素块相组合以重建当前显示帧的本地副本。然后,当前显示帧130的本地副本被呈现给客户端110 显不设备。
为了允许客户端110与被服务器远程主控的应用进行交互,该客户端包括客户端 /服务器消息模块170,该客户端/服务器消息模块170监控用户交互(例如按键的按下、 定点设备移动以及选中等等)并且在网络或因特网120的范围内通过客户端发送模块175 将该用户交互报告给服务器。服务器接收模块180接收用户交互报告或者消息并且将这些消息提供给事件处理器模块185,该事件处理器模块185然后致使服务器或主机100改变或更新当前显示帧,使得就好像用户交互是在服务器上本地发生的。然后,服务器或主机100 如上述那样对新的当前帧进行压缩和编码以用于传输给客户端,其中上述过程在远程应用会话期间在客户端110与服务器或主机100之间的连接的整个范围内迭代地重复。
2. 0远稈显示牛成器的运行细节 上述程序模块用于实现远程显示生成器的各种实施例。如上面概述的那样,“远程显示生成器”提供如下的各种技术所述技术用于在用于被远程主控的应用的大范围网络带宽的范围内向客户端提供具有高响应性交互式应用体验的高保真显示。以下各章节提供了该远程显示生成器的各种实施例的操作的详细讨论以及用于实现在第1节中参考图1描述的程序模块的示例性方法的详细讨论。具体而言,以下各章节提供远程显示生成器的各实施例的示例和操作细节,包括用于对屏幕图像像素块进行压缩的压缩友好的模型;定时器驱动的屏幕更新;客户端一服务器交互性;自适应传输机制;屏幕压缩;用于多个客户端的并发编码;以及对远程显示生成器的示例性应用。
2. 1压缩友好的樽型 诸如VNC和THINC之类的常规瘦客户端系统向远程客户端提供具有任意大小的区域的屏幕更新。这种类型的基于任意区域的机制允许服务器简单地将应用级“更新区域”转送到视频压缩器中并且直接丢弃稳定区域。在客户端侧,然后使用显示指令来通过提供给定区域的像素矩形呈现各个图元。
然而,来自某些应用的更新区域常常是小的并且处于诸如菜单或编辑框之类的任意位置。独立地对这些小区域进行编码往往会使得该系统即使在可以使用各种编码方案的情况下仍然遭受压缩比降级。此外,这些小的和任意大小的区域引入了大量的开销位来指示其在客户端的屏幕上的位置,这进一步使压缩性能降级。
因此,与基于任意区域的架构或常规瘦客户端系统相反,在此所述的远程显示生成器使用基于固定帧的屏幕表示模型。s该模型一次从帧缓冲器中读取屏幕的所有像素,并且将整个屏幕馈送到压缩器和发送机中。然后,在客户端的显示器侧,显示指令运行以用新像素替换整个屏幕。
更具体而言,在远程显示生成器的各种实施例中,被馈送到压缩器(服务器侧)的每个屏幕帧都被分割成规则的非重叠的像素块,这些像素块具有约为16X16像素的相对小的相同尺寸(参见下面参考图2对像素块的示例的讨论)。注意,尽管在此所述的像素块是一般性地结合16 X 16像素的块大小来讨论的,但是应当理解,只要这些像素块是非重叠的并且覆盖整个显示区域,则块大小和形状就可以是所期望的任何大小和形状。如上面参考图1所讨论的那样,压缩器(服务器侧)和解压缩器(客户端侧)内部地保留整个上一帧的副本。用于减小屏幕之间的冗余性所有工作都基于规则的非重叠的块来执行。远程显示生成器使用下面将更详细描述的“跳过块(SKIP block)”模式和“内块(INTRA block)” 模式来表示不同的块编码机制。
总的来说,跳过块模式在各种实施例中被用于标识出如下的块所述块与上一帧中的位于同一位置处的块恰好相同并且因此不需要为了在客户端上呈现当前帧而被更新。 显然,除了熵编码器将在当前帧的经编码的比特流中包括位来向客户端通知在呈现当前帧时保留来自上一帧的相应块以外,不需要对跳过块进行进一步处理。还应当注意,如2. 4节中所述的那样,跳过块还在各种自适应传输实施例的上下文中被用于消除对如下像素块进行编码和传输的需要这些像素块出于某种原因(例如重叠的窗口、屏幕大小等等)将被隐藏或以其他方式在客户端显示器上不可见。
内块模式被用于利用块间的冗余性,这将在第2. 5节更详细描述。尽管屏幕被分成规则的块,但是内块在整个屏幕中的系数被联合熵编码。因此,可以将更多的统计冗余性用于压缩。另外,在此所述的跳过块/内块机制以比基于任意区域的常规方案精细得多的粒度来利用帧间/帧内冗余性。
另外,跳过块/内块机制在多客户端连接的情况下(例如两个或更多客户端连接到运行同一被远程主控的应用的不同实例的同一服务器)避免了冗余压缩操作。由于每个单独的客户端的屏幕更新率可能因不同的访问带宽而与其他客户端的屏幕更新率不同,因此保留在压缩器中的上一屏幕对于每个客户端而言是不同的。结果,同一屏幕的经更新的区域对于每个客户端而言常常是不同的。然而,只要某些块在两个或以上的客户端之间是相同的,则这些特定“冗余”的区域就将作为内块被编码。
例如如图2所示,由服务器生成的屏幕图像200被划分成大小相等的像素块210。 在该例中,第一客户端(即“客户端1”)将显示表示屏幕图像200的分段的屏幕图像200 (被表示成阴影区域)。类似地,第二客户端(即“客户端2”)将显示表示屏幕图像200的不同分段的屏幕图像230(被表示成阴影区域)。然而,可以通过图2看出,被显示成阴影区域 240的一组像素块与客户端1屏幕图像220与客户端2屏幕图像230之间的重叠区域相对应。另外,重叠区域的对于客户端1和客户端2 二者为相同的像素块将仅仅被编码一次并且被提供给两个客户端。
注意,随着客户端的数目增加,有更多的块可能对于更多的客户端而言是相同的, 从而导致在像素块压缩方面显著降低的计算开销,其中无论客户端的数目如何,最坏情况都是屏幕图像200的每个像素块仅仅被编码一次。
2. 2定时器驱动的屏幕更新 由远程显示生成器提供的瘦客户端架构的各种实施例所解决的另一问题是用于将每个屏幕图像发送给客户端的屏幕更新模型。具体而言,在各种实施例中,远程显示生成器使用定时器驱动的模型,该定时器驱动的模型控制要多频繁地更新客户端屏幕。图3示出了定时器驱动的屏幕更新过程的总体工作流。两个所捕获的连续帧之间的最小时间间隔在屏幕更新开始以前被设置300。总的来说,该时间间隔根据可用带宽来指定。
在各种实施例中,在给定可用带宽的情况下,该定时器间隔被设置为尽可能高、直到物理屏幕刷新率的最大值(例如对于许多常规监视器或显示设备而言为60hz),其中其观点是为显示屏提供足够高的刷新率以提供可接受的用户界面体验。注意,在屏幕更新期间(客户端上),总体屏幕更新过程将等待直到用于一帧捕获、编码和发送的时间之和达到预设的时间间隔。换言之,在设置300用于屏幕更新的定时器间隔(以每客户端为基础) 以后,服务器捕获310或生成一帧。然后,该帧被编码320。
接着,如果由服务器所维护的发送队列在帧被编码320时不为空330,则经编码的帧被立即从该发送队列传输340给客户端。然而,如果发送队列为空330,则经编码的帧被立即发送350给该发送队列。然后,对该时间间隔是否已经被超过360作出确定(例如从帧捕获310和帧编码320到将经编码的帧发送350给发送队列所流逝的时间的总和)。如果定时器间隔还未被超过360,则该系统简单地等待370直到已经达到该定时器间隔,此时包括如上所述的帧捕获310、编码320、检查330发送队列的当前内容等等的总体过程在客户端连接到服务器的时长内重复。通过这种方式,远程显示生成器使用图3所示的受定时器限制的机制来避免对客户端进行过于频繁的更新,由此尽可能多地节省服务器的可能有限的资源(例如计算能力、带宽、所允许的并发客户端连接的数目等等)。
如上所述,图3所示的屏幕更新过程用于设置用于将新屏幕图像发送给客户端的时间段。清楚的是,这些经更新的屏幕在远程连接的时间段期间被连续发送给客户端(受用于屏幕更新的定时器间隔的限制)。这些屏幕到每个客户端的传输使用任何常规的网络通信协议。然而应当注意,在屏幕更新与到客户端的屏幕传输之间检查330发送队列的内容确保发送队列在对新帧进行发送和编码以前总是被清空,以避免用与各个客户端的屏幕更新相对应的位充满可用的带宽。
2. 3客户端一服各器(C-S)交互件 由远程显示生成器所提供的瘦客户端系统向用户提供高保真交互式体验,其中其意图是在网络或因特网的范围内向用户提供与用户在其本地计算机上而不是在远程服务器上运行远程应用时将会观察到的相似的体验。
一般而言,提供给用户的交互式体验在大范围的客户端设备(例如笔记本计算机、手持式媒体播放器、手机等等)的范围内依赖于响应时间和界面可用性。因此,为了解决客户端计算设备大范围变动和不同客户端的可用带宽的问题,远程显示生成器包括用于使与各种计算设备的交互式用户体验最大化的各种技术。
下面所示的表1提供了供用于实现由在此所述的远程显示生成器所实现的鲁棒的客户端一服务器交互性的客户端服务器消息的示例。
表1 示例性的客户端到服务器的消息
权利要求
1.一种用于在客户端显示设备上显示被远程主控的应用的屏幕图像的方法,包括步骤建立一个或多个客户端(110)与远程主机(100)之间的网络连接(120); 在该远程主机上为每个客户端启动一个或多个应用(100,130); 使用该远程主机为每个客户端生成每个相应应用的当前屏幕图像(130); 使用该远程主机将每个当前屏幕图像划分(145,800)成一组非重叠的像素块; 使用该远程主机为每个客户端将每个当前屏幕图像的像素块与来自紧接地上一屏幕图像(13 的相应像素块相比较(145,810)以标识出每个当前屏幕图像中的未改变的像素块;使用该远程主机对每个当前屏幕图像的所有未改变的像素块进行压缩(145,830, 840);使用该远程主机对每个当前屏幕图像的经压缩的像素块进行编码(145,850); 将每个相应应用的当前屏幕图像的经编码的经压缩的块传输(150)给每个相应的客户端;使用每个客户端对每个所接收的当前屏幕图像的经编码的经压缩的块进行解码 (160);使用每个客户端对经解码的像素块进行解压缩(160)并且重建(160)每个所接收的当前屏幕图像;以及使用每个客户端显示(110)由这些客户端中的每个所接收的所重建的当前屏幕图像。
2.如权利要求1所述的方法,其特征在于,对每个当前屏幕图像的所有未改变的像素块进行压缩进一步包括步骤评估每个未改变的像素块并且将这些块中的每个归类为文本类型的块或者图像类型的块;以及将特定于块的不同压缩应用于每种块类型以对未改变的像素块进行压缩。
3.如权利要求2所述的方法,其特征在于,将特定于块的压缩应用于文本类型的块包括步骤评估文本类型的块以为文本类型的块中的像素标识出小数目的主要的像素颜色; 将文本类型的块中的像素量化成该小数目的主要的像素颜色。
4.如权利要求1所述的方法,进一步包括步骤与可用客户端带宽有关地为每个客户端设置单独的预定的屏幕更新时间。
5.如权利要求1所述的方法,进一步包括步骤 本地监控与屏幕图像的客户端交互;将所监控到的客户端交互报告给该主机;以及其中从该主机传输给每个客户端的随后的当前屏幕图像被该主机呈现以反映报告给该主机的所监控到的客户端交互。
6.如权利要求1所述的方法,其特征在于,标识出每个当前屏幕图像中的未改变的像素块进一步包括步骤为每个相应的当前屏幕图像生成指示还未改变的特定像素块的“跳过图”,并且其中每个相应的跳过图被传输给每个相应的客户端。
7.如权利要求6所述的方法,其特征在于,每个客户端使用任何所接收的跳过图来从每个紧接的上一屏幕图像的本地副本中选出相应的未改变的像素块以供用于重建每个所接收的当前屏幕图像。
8.一种用于在客户端显示设备上生成被远程主控的应用的屏幕图像的系统,包括将远程服务器用于执行应用并且呈现该应用的当前屏幕图像(130); 将当前屏幕图像划分(145,800)成一组非重叠的大小相等的像素块; 为该应用将当前屏幕图像的像素块与上一屏幕图像(135)的缓冲副本(140)的相应像素块相比较(145,810);创建(145,810)从上一屏幕图像到当前屏幕图像未改变的像素块的图; 对当前屏幕图像的所有未改变的像素块进行压缩(145,830,840); 将经压缩的像素块和未改变的像素块的图编码(145,850)成复合比特流;以及将该复合比特流传输(150)给该客户端。
9.如权利要求8所述的系统,进一步包括使用该客户端对当前屏幕图像进行解码、解压缩、将当前屏幕图像呈现和显示在客户端显示设备上。
10.如权利要求9所述的方法,其特征在于,呈现当前屏幕图像进一步包括使用未改变的像素块的图来从上一屏幕图像的本地副本中选出相应的未改变的像素块并且将这些未改变的像素块与从复合比特流中恢复的经解压缩的像素块相组合以呈现当前屏幕图像。
11.如权利要求8所述的方法,其特征在于,对当前屏幕图像的所有未改变的像素块进行压缩进一步包括首先评估每个未改变的像素块并且将这些块中的每个归类为文本类型的块或者图像类型的块;以及其中文本类型的像素块通过如下方式被压缩标识出文本类型的块中的小数目的最主要的像素颜色并且将文本类型的块中的像素量化成这些主要的像素颜色。
12.—种其中存储有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于在本地客户端上显示被远程主控的应用,所述指令包括执行应用并且呈现该应用的当前屏幕图像(130); 将当前屏幕图像划分(145,800)成一组非重叠的大小相等的像素块; 为该应用将当前屏幕图像的像素块与上一屏幕图像(135)的缓冲副本(140)的相应像素块相比较(145,810);创建(145,810)从上一屏幕图像到当前屏幕图像未改变的像素块的图; 对当前屏幕图像的所有未改变的像素块进行压缩(145,830,840); 将经压缩的像素块和未改变的像素块的图编码(145,850)成复合比特流;以及将该复合比特流传输(150)给该客户端。
13.如权利要求12所述的计算机可读介质,进一步包括用于使用该客户端对当前屏幕图像进行解码、解压缩、将当前屏幕图像呈现和显示在客户端显示设备上的计算机可执行指令。
14.如权利要求13所述的计算机可读介质,其特征在于,呈现当前屏幕图像进一步包括使用未改变的像素块的图来从上一屏幕图像的本地副本中选出相应的未改变的像素块并且将这些未改变的像素块与从复合比特流中恢复的经解压缩的像素块相组合以呈现当前屏幕图像。
15.如权利要求12所述的计算机可读介质,其特征在于,对当前屏幕图像的所有未改变的像素块进行压缩进一步包括首先评估每个未改变的像素块并且将这些块中的每个归类为文本类型的块或者图像类型的块;以及通过如下方式对文本类型的像素块进行压缩标识出文本类型的块中的小数目的最主要的像素颜色并且将文本类型的块中的像素量化成这些主要的像素颜色。
全文摘要
在此所述的“远程显示生成器”提供如下的各种技术所述技术用于在用于被远程主控的应用的大范围网络带宽的范围内向客户端提供具有高响应性交互式应用体验的高保真显示。一般而言,远程显示发生器将压缩友好的远程显示架构用作核心。在该压缩架构的情况下,来自远程服务器的实际屏幕数据被从显示缓冲器中逐帧读出,并且然后利用统一的屏幕编解码器被压缩。于是,包括定时器驱动的屏幕更新模型和自适应传输机制的其他技术与远程显示发生器的各种实施例相整合,以通过改善显示质量和与被远程主控的应用之间的用户交互的响应性来改善总体用户体验。
文档编号G06F3/14GK102203760SQ200980143747
公开日2011年9月28日 申请日期2009年10月30日 优先权日2008年10月30日
发明者Y·陆, H·沈, F·吴, S·李 申请人:微软公司