CN102932324A - 支持降低的网络带宽使用的跨帧渐进损坏 - Google Patents
支持降低的网络带宽使用的跨帧渐进损坏 Download PDFInfo
- Publication number
- CN102932324A CN102932324A CN2012103196024A CN201210319602A CN102932324A CN 102932324 A CN102932324 A CN 102932324A CN 2012103196024 A CN2012103196024 A CN 2012103196024A CN 201210319602 A CN201210319602 A CN 201210319602A CN 102932324 A CN102932324 A CN 102932324A
- Authority
- CN
- China
- Prior art keywords
- zone
- remote desktop
- quality
- computer
- data set
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了支持降低的网络带宽使用的跨帧渐进损坏。公开了用于在远程桌面环境中高效地处理和传送图形数据的发明。在本发明的各实施例中,在远程桌面服务器计算机和远程桌面客户机计算机之间建立连接。远程桌面服务器计算机可处理表示远程用户桌面的图形数据。远程桌面服务器计算机可将远程桌面屏幕划分成数据区域和部分。远程桌面服务器计算机随后可以以可跨屏幕帧而渐进地调节的特定质量来对每一区域进行编码并将其传送到远程桌面客户机计算机。远程桌面服务器计算机还可停止对于当呈现在显示器上时数据区域的将对用户不可见的部分进行编码和传送。远程桌面用户体验了图像质量随着包含与该图像有关的信息的每一帧而逐渐地改进。
Description
技术领域
本发明涉及数据处理,尤其涉及处理和传送图形数据的技术。
背景技术
远程计算系统可使用户能够远程地访问托管资源。远程计算系统上的服务器可执行程序并将指示用户界面的信号发送到可通过经由符合诸如TCP/IP协议等通信协议的网络发送信号来连接的客户机。可向每个连接客户机提供远程呈现会话,即,包括一组资源的执行环境。客户机可使用诸如远程桌面协议(RDP)等远程呈现协议来连接到服务器资源。
在远程呈现会话中,客户机发送服务器本地接收的输入,诸如鼠标光标移动和键盘按压。进而,服务器接收这一输入并执行与其相关联的处理,诸如执行用户会话中的应用。当服务器执行导致输出(诸如图形输出)的处理时,服务器将这一输出发送到客户机以供呈现。以此方式,当应用实际上在服务器上执行时,应用对客户机的用户表现为在客户机上本地执行。
此外,在远程呈现会话中,表示将要传送给客户机的图形的数据通常由服务器压缩,通过网络从服务器传送到客户机,并由客户机解压缩并且显示在本地用户显示器上。尽管对于服务器存在用来压缩图形数据并通过网络传送到客户机的已知技术,但也存在许多未解决的问题。例如,当网络带宽限制可向客户机传送的图形数据的大小时引发问题,导致网络等待时间以及负面的远程用户体验。
各种方案可用来在远程呈现会话中最小化需要被编码和发送到远程计算设备的图形数据的大小。这样的方案可包括将图形数据分成各部分,并且仅编码和传送自先前传输以来已改变的各部分。然而,这样的方案不考虑可用网络带宽和要处理的数据量,并且独立于可用网络带宽和要处理的数据量而被应用。由此,这样的方案没有最优地解决网络等待时间及其对远程用户体验的负面影响的问题。
发明内容
在各实施例中,公开了用于通过执行各种渐进编码和损坏方案来优化图形数据的处理和传输的方法和系统。当网络带宽有限和/或要处理的数据量大时,渐进编码和损坏减少了网络带宽使用和帧等待时间。例如,当使用渐进编码和损坏方案时,图形数据帧被分成数据区域,并且每一数据区域以特定质量来编码并传送到客户机。数据区域可在包含自然图形的区域和包含文本图像的区域之间被进一步划分。图形数据帧中每一数据区域的质量可随着图形数据帧被更新而渐进地被改进。质量也可取决于可用网络带宽和要处理的数据量而被动态地调整。此外,为确保图形数据的一致性,仅在达到当前图形数据帧的特定质量之后,才处理未来图形数据帧。然而,当图形数据帧被更新、并且当呈现在用户显示器上时图形数据帧内的一部分数据区域将不再对远程用户可见时,优选地损坏该部分并且不对其进行编码或传送。此外,当数据区域的质量达到100%时,数据区域可被标记成具有全保真并且可由客户机计算机来高速缓存。最终,为确保图形数据区域中所包含的文本图像的可读性,渐进编码和损坏方案可仅应用于包含自然图像而非文本图像的数据区域。作为渐进和损坏方案的结果,用户体验到自然图像质量随着包含与图像有关的信息的每一帧而逐渐改进,同时能够阅读和理解文本图像。
各种渐进编码和损坏方案提供各种益处(取决于系统),包括:减少网络带宽使用,而对用户体验影响最小;在对不同屏幕部分进行无缝编码中支持多个渐进和非渐进的编解码器;支持按多个质量级来对具有自然图像的屏幕区域进行渐进编码;通过不把不必要的数据部分编码成高质量来支持数据损坏;以及基于可用网络带宽和要编码的数据量来对渐进编码和损坏进行动态调整。
除了上述方面,构成本公开的一部分的权利要求、附图、以及文本还描述了其他方面。本领域技术人员之一可理解,本公开的一个或更多个方面可包括但不限于用于实现本公开的本文所提及的各方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所提及的方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。
提供本发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。
附图简述
图1描绘其中可实现本发明的各方面的示例计算机系统。
图2描绘其中可实现本发明的各实施例的远程呈现会话客户机和服务器的输入系统的示例体系结构。
图3描绘了用于实施本公开的各方面的操作环境。
图4描绘其中可实现本发明的各实施例的示例远程呈现会话服务器。
图5示出了此处公开的过程中的某一些的概览。
图6和7示出了被分成各数据区域和部分以供压缩的远程用户屏幕。
图8示出了用于处理要传送到客户计算机的图形数据的操作过程的示例。
图9示出了用于处理要传送到客户计算机的图形数据的示例系统和计算机可读介质。
具体实施方式
在以下描述和附图中阐明了某些具体细节,以提供对本公开的各个实施例的全面理解。通常与计算和软件技术相关联的某些公知细节不在以下公开中描述,以避免不必要地使本公开的各实施例晦涩难懂。此外,相关领域的普通技术人员会理解,他们可以无需以下描述的细节中的一个或多个而实现本公开的其它实施例。最后,尽管在以下公开中参考了步骤和序列来描述各个方法,但是如此的描述是为了提供本公开的实施例的清楚实现,且步骤以及步骤序列不应被认为是实现本公开所必需的。
应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组合来实现。因此,本公开的方法和装置或其某些方面或部分,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载至诸如计算机等机器并由其运行时,该机器成为用于实现本公开的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如,通过使用API、可重用控件等来实现或利用结合本发明描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
贯穿本公开使用的术语电路可包括诸如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操作这些硬件的固件/软件。术语电路还可包括被配置成通过固件或通过开关集来以特定方式执行功能的微处理器,或一个或多个逻辑处理器,例如,多核通用处理单元的一个或多个核。此示例中的逻辑处理器可以通过从存储器,例如,RAM、ROM、固件和/或虚拟存储器中加载的体现可操作以执行功能的逻辑的软件指令来配置。在其中电路包括硬件和软件的组合的示例实施例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由逻辑处理器执行的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件的组合之间几乎没有差别的地步,因而选择硬件还是软件来实现功能只是一个设计选择。因此,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬件结构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现留给了实现者。
本发明的各实施例可以在一台或多台计算机上执行。图1以及下面的讨论旨在提供其中可以实现本发明的合适的计算环境的简要的一般说明。本领域技术人员可以理解,计算机系统可具有本文在下面所描述的组件的某些或全部。
图1描绘了示例通用计算系统。通用计算系统可包括常规计算机20等,计算机20包括处理单元21。处理单元21可包括一个或多个处理器,它们中的每一个可具有一个或多个处理核。多核处理器(作为通常被称为具有不止一个处理核的处理器)包括单个芯片封装内所包含的多个处理器。
计算机20还可包括图形处理单元(GPU)90。GPU 90是被优化以操纵计算机图形的专用微处理器。处理单元21可将工作卸载到GPU 90。GPU 90可以具有其自己的图形存储器,和/或可以访问系统存储器22的一部分。如处理单元21那样,GPU 90可包括一个或多个处理单元,每一个都具有一个或多个核。
计算机20还可包括系统存储器22和系统总线23,其中在系统存储器22中存储用于实现本发明各方面的至少一部分编程,系统总线23在系统处于操作状态时将包括系统存储器22在内的各个系统组件在通信上耦合到处理单元21。系统存储器22可包括只读存储器(ROM)24和随机存取存储器(RM)25。基本输入/输出系统26(BIOS)被存储在ROM 24中,该基本输入/输出系统26包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。系统总线23可以是若干类型的总线结构中的任一种,包括实现各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。耦合到系统总线23的可以是直接存储器存取(DMA)控制器80,该DMA控制器80被配置成独立于处理单元21从存储器读取和/或写入存储器。另外,连接到系统总线23(诸如存储驱动器接口32或磁盘驱动器接口33)的设备可被配置成也是独立于处理单元21从存储器读取和/或写入存储器,而无需使用DMA控制器80。
计算机20还包括用于读写硬盘(未示出)或固态盘(SSD)(未示出)的存储驱动器27、用于读写可移动磁盘29的磁盘驱动器28,以及用于读写诸如CD ROM或其他光学介质之类的可移动光盘31的光盘驱动器30。存储驱动器27、磁盘驱动器28和光盘驱动器30被示为分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34来连接到系统总线23。驱动器及其相关联的计算机可读存储介质为计算机20提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。
虽然这里描述的示例环境采用硬盘、可移动磁盘29和可移动光盘31,但本领域技术人员应理解,在该示例操作环境中也能使用可存储能由计算机访问的数据的其它类型的计算机可读介质,如闪存卡、数字视频盘、数字多功能盘((DVD)、随机存取存储器(RAM)、只读存储器(ROM)等。一般而言,在某些实施例中可使用这样的计算机可读存储介质来存储实现本公开的各方面且可用于将计算机20转换成专用计算设备的处理器可执行指令。计算机20也可包括主适配器55,其通过小型计算机系统接口(SCSI)总线56连接到存储设备62。
包括计算机可读指令的若干程序模块可存储在诸如硬盘、磁盘29、光盘31、ROM24或RAM 25之类的计算机可读介质上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。一旦由处理单元执行,计算机可读指令使得下文中更详细描述的动作被执行或使得各种程序模块被实例化。用户可以通过诸如键盘40和定点设备42之类的输入设备向计算机20中输入命令和信息。其他输入设备(未示出)可包括话筒、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些及其他输入设备常常通过耦合到系统总线的串行端口接口46连接到处理单元21,但是,也可以通过诸如并行端口、游戏端口、通用串行总线(USB)之类的其他接口来连接。显示器47或其他类型的显示设备也可以通过诸如视频适配器48之类的接口连接到系统总线23。在各实施例中,显示器47可包括对其进行多触摸输入的触敏表面。除了显示器47之外,计算机通常包括其他外围输出设备(未示出),如扬声器和打印机。
计算机20可使用到一个或多个远程计算机(诸如,远程计算机49)的逻辑连接而在联网环境中操作。远程计算机49可以是另一个计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常可包括以上相对于计算机20描述的许多或所有元件,但是在图1中只示出存储器存储设备50。图1中所描绘的逻辑连接可包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍的。
当用于LAN联网环境中时,计算机20可通过网络接口或适配器53连接到LAN 51。当用于WAN联网环境中时,计算机20可通常包括调制解调器54,或用于通过诸如因特网之类的广域网52建立通信的其他手段。可以是内置的或外置的调制解调器54可通过串行端口接口46连接到系统总线23。在联网环境中,相对于计算机20所示的程序模块或其部分可被存储在远程存储器存储设备中。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。
在其中计算机20被配置成在联网环境中操作的实施例中,OS 35被远程存储在网络上,而计算机20可通过网络启动这一远程存储的OS,而不是从本地存储的OS中启动。在一实施例中,计算机20包括瘦客户机,其中OS 35少于完整的OS,而是被配置成处理联网以及诸如在监视器47上显示输出的内核。
远程桌面系统的各实施例可执行一个或多个计算机,或者可具有参考图1的计算机20来描述的组件中的一些或全部。远程桌面系统是维护可由客户机计算机系统在远程呈现会话中远程地执行并可显示在客户机计算机系统上的应用的计算机系统。图2描绘了远程桌面系统的示例体系结构。远程桌面系统可包括远程客户机计算机200和远程服务器计算机220。远程客户机计算机200和远程服务器计算机220被配置成彼此进行远程呈现会话。
如所描绘的,远程服务器计算机220将远程呈现会话提供给远程客户机计算机200,其中,远程服务器计算机220将来自执行用户的客户机图形输出发送到远程客户机会话222。远程用户输入是在远程客户机计算机200处输入的。输入管理器202可处理远程用户输入并通过网络(例如,使用基于国际电信联盟(ITU)T.120协议家族等协议,如远程桌面协议(RDP))将其传送到远程服务器计算机220上的远程用户应用224。远程用户应用224可在远程服务器计算机220上主存的远程客户机会话222中被执行。远程用户应用224如同该输入是在远程服务器计算机220处输入的那样来处理该输入。远程用户应用224响应于接收到的输入生成远程服务器输出,并且该输出通过网络传送到远程客户机计算机200。远程客户机计算机200向远程用户呈现输出数据。由此,在远程客户机计算机200处接收输入并呈现输出,而处理实际上是在远程服务器计算机220处发生的。
除了远程用户应用224之外,远程客户机会话222可包括命令行界面(shell)和诸如桌面之类的用户界面、跟踪该桌面内的鼠标移动的子系统、将图标上的鼠标点击转换成实现程序实例的命令的子系统、其他应用等。应当理解,前述讨论是示例性的,且当前公开的主题可以在各种客户机/服务器环境中实现且不限于特定远程呈现产品。
在大多数(如果不是全部的话)远程桌面环境中,(在远程客户机计算机200处输入的)远程用户输入数据通常包括表示对应用的命令的鼠标和键盘数据。(远程用户应用在远程服务器计算机220处生成的)输出数据通常包括供在远程客户机计算机200处显示的图形数据。许多远程桌面环境也包括扩展到传输其他类型的数据的功能。在一示例实施例中,可将来自用户应用224的图形数据输出发送到远程服务器计算机220上主存的图形管理器226。图形管理器226可压缩图形数据并经由网络将其传送到远程客户机计算机200上的远程用户显示器204。远程用户显示器204可向远程用户呈现图形输出数据。
可使用通信信道来通过允许插件经由RDP连接传输数据来扩展RDP协议。存在许多这样的扩展。诸如打印机重定向、剪贴板重定向、端口重定向等特征使用通信信道技术。由此,除了输入和输出数据之外,可以有许多需要传输数据的通信信道。因此,可能有传输输出数据的偶然请求和传输其他数据的一个或多个信道请求争用可用的网络带宽。由此,可用网络带宽可约束在远程服务器计算机220和远程客户机计算机200之间可传送的数据,并且可导致影响远程用户体验的网络等待时间。
可将远程服务提供给诸如远程客户机计算机200之类的至少一个客户机。远程客户机计算机200可包括由被配置成将用户输入定向到远程客户机会话(诸如会话222)并显示该会话生成的用户界面信息的硬件来实现的计算机终端。在另一实施例中,远程客户机计算机200可以由包括与图1中计算机20的元件类似的元件的计算机来实现。每一连接客户机可具有允许该客户机访问存储在远程服务器计算机220上的数据和应用的远程客户机会话。在各个实施例中,远程服务器计算机220可以是物理硬件。在其他实施例中,远程服务器计算机220的组件的一些或全部可被实例化成虚拟机(VM),诸如图3中描绘的VM。在VM环境中,远程客户机计算机200可远程地访问VM并且运行远程呈现会话。
现在参考图3,所描绘的是被配置成实现虚拟机的计算机系统的高级框图。如图所示,计算机系统300可包括图1中所描述的元件、以及可用于实现虚拟机的组件。一个这样的组件是在本领域中也可被称为虚拟机监控程序的系统管理程序(hypervisor)302。所描绘的实施例中的系统管理程序302可被配置成控制并仲裁对计算机系统300的硬件的访问。广泛而言,系统管理程序302可以生成称为分区的执行环境,如子分区1到子分区N(其中N是大于或等于1的整数)。在各实施例中,子分区可被认为是系统管理程序302所支持的基本隔离单位,即,每一子分区可被映射到在系统管理程序302的控制下的一组硬件资源,例如存储器、设备、逻辑处理器周期等,和/或父分区,并且系统管理程序302可以隔离一个分区使其无法访问另一分区的资源。在各实施例中,系统管理程序302可以是独立软件产品,操作系统的一部分、被嵌入在主板的固件内、专门的集成电路,或其组合。
在以上示例中,计算机系统300包括父分区304,父分区在开源社区中也可被认为是域0。父分区304可被配置成通过使用虚拟化服务提供者328(VSP)来向在子分区1-N中执行的客操作系统提供资源,虚拟化服务提供者在开源社区中也被称为后端驱动程序。在此示例体系结构中,父分区304可以选通对底层硬件的访问。VSP 328可用于通过虚拟化服务客户机(VCS)来复用到硬件资源的接口,虚拟化服务客户机在开源社区中也被称为前端驱动程序。每一子分区可包括一个或多个虚拟处理器,例如客操作系统320到322可管理并调度线程在其上执行的虚拟处理器330到332。一般而言,虚拟处理器330到332是提供带有特定体系结构的物理处理器的表示的可执行指令和相关联状态信息。例如,一个虚拟机可具有带有英特尔x86处理器特性的虚拟处理器,而另一虚拟处理器可具有PowerPC处理器的特性。本示例中的虚拟处理器可被映射到计算机系统的逻辑处理器,使得实现虚拟处理器的指令将受到逻辑处理器的支持。如此,在这些示例实施例中,多个虚拟处理器可以同时执行,而同时例如另一逻辑处理器正执行系统管理程序指令。一般而言,且如图所示,分区中的虚拟处理器、各种VCS以及存储器的组合可被认为是虚拟机,如虚拟机340或342。
一般而言,客操作系统320到322可包括诸如,例如,来自 开放源代码社区等等的操作系统之类的任何操作系统。客操作系统可包括用户/内核操作模式,并且可具有包括调度器、存储器管理器等的内核。内核模式可包括逻辑处理器中的执行模式,该执行模式授予对至少特权处理器指令的访问。每一客操作系统320到322可具有相关联的文件系统,该文件系统上存储有诸如终端服务器、电子商务服务器、电子邮件服务器等应用以及客操作系统本身。客操作系统320-322可以调度线程来在虚拟处理器330-332上执行,并可以实现这样的应用程序的实例。
在各个实施例中,诸如图2中描绘的远程服务器计算机220之类的远程服务器计算机可执行多个远程客户机会话。诸如远程客户机会话220之类的每一远程客户机会话可表示连接客户机的应用环境。在这一示例实施例中,远程服务器计算机可为图4中所示的连接客户机中的每一个生成至少一个远程客户机会话。此外,如上文注意到的,远程服务器计算机220可以是虚拟机,该虚拟机进而执行多个远程客户机会话。
图4中所描绘的是计算机系统400,计算机系统400可包括被配置成实现远程服务器计算机的电路,或者在某些实施例中,计算机系统400可包括被配置成支持远程桌面连接的电路。在所描绘的示例中,计算机系统400可被配置成生成用于连接客户机的一个或多个远程客户机会话,诸如会话1到N(其中N是大于2的整数)。简言之,在本发明的示例实施例中,会话一般可包括由被配置成与计算机系统400的内核414交互的多个子系统(例如,软件代码)实现的操作环境。例如,会话可包括实例化诸如桌面窗口之类的用户界面的进程、跟踪该窗口内的鼠标移动的子系统、将图标上的鼠标点击转换成实现程序实例的命令的子系统等。会话可由计算机系统400在逐个用户的基础上生成,例如在计算机系统400通过网络连接接收来自客户机(诸如远程客户机计算机200)的连接请求时由计算机系统400生成。一般而言,连接请求首先可由传输逻辑410处理,传输逻辑410例如可由计算机系统400的电路实现。在一些实施例中,传输逻辑410可包括网络适配器、可被配置成接收连接消息并将其转发给引擎412的固件和软件。如图4所示,在一些实施例中,传输逻辑410可包括每个会话的协议栈实例。一般而言,每个协议栈实例可被配置成将用户接口输出路由到客户机,以及将从客户机接收到的用户输入路由到与其会话相关联的会话核心444。
继续图4的一般性描述,在本发明的一些示例实施例中,引擎212可被配置成处理对会话的请求;确定每个会话的功能;通过为会话分配一组物理资源来生成会话;以及实例化会话的协议栈实例。在一些实施例中,引擎412可由能实现上述操作过程中的一部分的专门电路组件来实现。例如,一些示例实施例中,该电路在可包括存储器以及配置成执行实现引擎412的代码的处理器。如图4所描绘地,在一些情况下,引擎412可接收连接请求并确定例如许可证可用,并且可为该请求生成会话。在计算机系统400是包括远程桌面能力的远程计算机的情形中,引擎412可被配置成响应于连接请求生成会话而不检查许可。如图4所示,会话管理器416可被配置成接收来自引擎412的消息,并且响应于该消息,会话管理器416可将会话标识符添加到表中;向该会话标识符指派存储器;以及在指派给该会话标识符的存储器中生成系统环境变量和子系统进程的实例。
如图4所示,会话管理器416可实例化诸如运行时子系统440之类的环境子系统,该子系统可包括诸如会话核心444之类的内核模式部分。例如,在一实施例中,环境子系统被配置成将一些服务子集展示给应用程序并向计算机操作系统402的内核提供接入点。在示例实施例中,运行时子系统440可控制进程和线程的执行,并且会话核心444可向内核414的执行程序发送请求以向线程分配存储器并调度执行它们的时间。在一实施例中,会话核心444可包括图形显示界面446(GDI)、安全子系统450和输入子系统452。在这些实施例中,输入子系统452可被配置成经由与该会话相关联的协议栈实例接收来自客户机401的用户输入并将该输入传送给合适会话的会话核心444。在一些实施例中,用户输入可包括指示绝对和/或相对鼠标移动命令、鼠标坐标、鼠标点击、键盘信号、操纵杆移动信号等的信号。例如图标上的鼠标双击的用户输入可被会话核心444接收,并且输入子系统452可被配置成确定图标位于与该双击相关联的坐标处。输入子系统452随后可被配置成向可执行与该图标相关联的应用的进程的运行时子系统440发送通知。
除了接收来自客户机401的输入之外,还可从应用和/或桌面接收绘制命令并由GDI446来处理。GDI 446一般可包括能生成图形对象绘制命令的进程。GDI 446在该示例实施例中可被配置成将其输出传递给远程显示子系统454,在此命令针对附连到该会话的显示驱动器被格式化。在某些示例实施例中,一个或多个物理显示器可被附连到计算机系统400,例如在远程桌面情形中。在这些示例实施例中,远程显示子系统454可被配置成镜像由远程计算机系统的显示驱动器呈现的绘制命令、并经由与该会话相关联的栈实例将镜像信息传送给客户机401。在计算机系统400是远程呈现会话服务器的另一示例实施例中,远程显示子系统454可被配置成包括可不与物理上附连到计算机系统400的显示器相关联的虚拟显示驱动器,例如计算机系统400可无头地(headless)运行。远程显示子系统454在该实施例中可被配置成接收针对一个或多个虚拟显示器的绘制命令并将它们经由与该会话相关联的栈实例传送给客户机401。在本发明的实施例中,远程显示子系统454可被配置成确定每个显示驱动器的显示分辨率,例如确定与虚拟显示器相关联的虚拟显示驱动器的显示分辨率或与物理显示器相关联的显示驱动器的显示分辨率;以及经由相关联的协议栈实例将分组路由到客户机401。
在一些示例实施例中,会话管理器416可附加地实例化与该会话的会话标识符相关联的可被配置成处理该会话的登入和登出的登录进程的实例。在这些示例实施例中,指示与登录进程相关联的图形用户界面的绘制命令可被传送给客户机401,在那里,客户机401的用户可向登录屏幕输入帐户标识符(例如用户名/口令组合)、智能卡标识符、和/或生物测定信息。该信息可被传送给计算机系统400并被路由至引擎412以及会话核心444的安全子系统450。例如,在某些示例实施例中,引擎412可被配置成确定用户帐户是否与许可证相关联;并且安全子系统450可被配置成生成该会话的安全令牌。
在远程桌面环境中,可在服务器处为每一用户呈现用户图形。用户图形可包括文本图像和自然图像。然后将所得图形发送给客户机以供显示和交互。为了降低网络上的带宽要求,可在传输到客户机之前对图形进行压缩。期望压缩技术是高效的并且等待时间短。如将在此描述的,对渐进编码和损坏方案的使用支持对带宽使用的降低。
存在用于编码和解码电子信息(包括图形数据)的各种系统和方法。在示例性实施例中,编码和解码系统可包括最初将源图像分成数据区域的划分模块。帧差分模块随后可在数据区域跨帧更新时比较每一数据区域,并且确定该区域是否已被更新,如果是,则确定该区域的什么部分已被更新。帧差分模块随后可将已更新和未更新的区域发送到各个处理模块,各个处理模块将这些区域转换成对应的已更新和未更新的数据部分。在一实施例中,量化器可根据可调量化参数来对数据部分执行压缩过程以生成已压缩的数据。然后,自适应熵选择器可选择多个可用熵编码器中的一个来执行熵编码过程,由此产生已编码的数据。熵编码器也可利用反馈回路来根据当前传输带宽特性来调整量化参数。
在此处所公开的各个方法和系统中,可使用对于诸如上文所描述的各个过程的处理和操作的方面来提供更高效的处理,并且由此提供更为及时和丰富的用户体验。这些方法和系统还在网络和/或系统资源变得拥塞或以其他方式更不可用时,提供这样的图形支持。此处所公开的用于编码并传送图形数据的实施例可使用硬件和软件进程的各种组合来实现。在某些实施例中,各功能可完全用硬件来执行。在其他实施例中,各功能可完全用软件来执行。在还有一些实施例中,各功能可使用硬件和软件进程的组合来实现。这些进程还可使用一个或多个CPU和/或诸如图形处理单元(GPU)或其他专用图形渲染设备的一个或多个专用处理器来实现。
参考图5,所示出的是与此处讨论的编码和传送过程相关联的各种功能的概览。可修改所示过程的各个方面以改进过程的吞吐量和效率。过程500示出对客户机帧进行捕捉和缓冲。过程510示出将所捕捉并缓冲的客户机帧划分成各数据区域。过程520示出将这些区域与先前所捕捉并缓冲的客户机帧中的区域作比较。过程530示出对数据区域进行渐进编码和损坏的过程。过程540示出对已编码且未损坏的数据区域进行传送的过程。一旦被传送,过程550则示出可以解码接收到的帧。过程560示出可管理接收缓冲器以跟踪帧中已改变的区域和部分。过程570示出显示帧缓冲器可用于以高效方式驱动显示控制器。
各个实施例可包括由服务器用来编码并向客户机传送屏幕的一部分的渐进编码和损坏方案。图6和7提供服务器需要编码并向客户机传送的屏幕区域的示例。诸如远程桌面协议(RDP)中的屏幕抓取功能之类的各种手段可用于允许服务器读取表示屏幕上的特定区域或其部分的图形数据、并且确定哪些区域或部分正在改变。无论何时区域或区域的一部分改变,RDP驱动器可提供正在改变的区域或其部分的坐标。图6描绘了具有第一帧601和第二帧602的屏幕的示例,第二帧602是第一帧601的附近更新。在这一示例中,第一帧601包含区域610和区域620。区域610包含文本图像内容,而区域620包含自然图像内容。服务器编码第一帧601并将其传送到客户机以供显示和交互。之后,服务器编码第二帧602并将其传送到客户机以供显示和交互。在该第二编码和传送步骤中,第一帧610中的区域610不应被处理第二次,因为在第二帧602中不再呈现区域610。作为对比,区域630和区域640是第二帧602中的新区域,并且第一次需要被编码并传送到客户机。此外,区域620是在第一帧601中编码并传送的相同区域620,并且需要被第二次处理,因为在第二帧602中也呈现区域620。然而,第二帧602中的区域620包含被区域630和区域640遮挡的部分以及未被任何其他图形对象遮挡的部分。
图7还例示了图6中描绘的区域620的被遮挡和未被遮挡的部分。部分702、部分704、部分706、和部分708是区域620的未被遮挡的部分,因为它们没有被其他图形对象(例如区域630和区域640)阻挡。由此,当在显示器上呈现未被遮挡的部分(例如,部分702、部分704、部分706、和部分708)时,它们将对用户可见。另一方面,部分710在第二帧602中被区域630遮挡。类似地,部分712在第二帧602中被区域640遮挡。在显示器上呈现时,被遮挡的部分(例如部分710和712)将由于其他阻挡图形对象(例如区域630和640)而对用户不可见。为降低带宽使用和要处理的数据量,服务器仅需要编码和传送表示第二帧602中区域620的未遮挡部分(例如部分702、704、706和708)的数据。被遮挡的部分(例如部分710和712)可被称为损坏的。不需要对表示损坏的区域或部分的数据进行编码、传送或由用户进一步处理。由于要编码和传送的数据量降低,因此损坏被遮挡的部分将导致网络带宽使用的降低,这将进而导致网络等待时间的降低并且将改进远程用户体验。
为进一步优化带宽使用和要处理的数据量,各个实施例可包括渐进编码和传送方案。服务器可确定远程呈现会话的总体质量。服务器内的编码器可使用该质量来编码到客户机的数据。例如,100%质量可表示编码器可对数据进行编码的最大质量,并且可等于远程呈现会话的总体质量。在一个实施例中,服务器可以以第一质量来编码并传送表示第一帧中的区域的数据。例如,服务器可以按比如说50%的质量来编码和传送第一帧601中的区域620。服务器随后可以以第二质量来编码和传送表示第二帧中的相同区域的数据。例如,服务器可以按比如说75%的质量来编码和传送第二帧602中的区域620。
在一个实施例中,服务器可渐进地改进用于对图形数据进行编码和向客户机传送的质量。例如,服务器正在对数据进行编码和传送的第二质量可以高于服务器已经对数据进行编码和传送的第一质量。远程用户将体验随着包含与图像有关的信息的每一新帧而逐渐改进的图形图像显示。
在又一实施例中,可将服务器对数据进行编码和传送的第二质量设置成在第一质量上的增量。在第一质量上的增量可以是预先确定的百分比,或者可基于诸如可用网络带宽和要处理的数据量等各种因素来动态地调整。例如并且参考图6,可以以第一质量50%来对第一帧601中的区域620进行编码和传送。随后服务器可确定在对第二帧602中的区域620进行编码和传送时需要25%的增量。因此,服务器可以以第二质量75%来编码和传送第二帧602中的区域620。同时,由于第二帧602中的区域640先前未经处理,因此服务器可以以第一质量50%来对区域640进行编码和传送。由此,相同图形帧中的不同区域和部分可按不同质量级来编码和传送。
在一个实施例中,服务器用来对图形数据进行编码和传送的质量可根据可用网络带宽和/或要处理的数据量来动态地调整。例如,在服务器对第一帧进行编码和传送之后,服务器可检测可用网络带宽和要处理的数据量。随后服务器可确定在处理第二帧时要使用的目标质量。这一动态质量调整确保随着可用网络带宽和要处理的数据量而使用高质量。例如,当服务器确定存在足够的网络带宽时,服务器可以按100%质量来对图形数据进行编码和传送。
在一个实施例中,为确保区域中或区域的一部分中的文本内容的可读性,服务器可以不把渐进编码和损坏方案应用到包括该区域或该区域的一部分中所包含的文本图像的图形数据。或者,服务器可按100%质量对文本图像区域或部分应用渐进编码和损坏方案,而可对自然图像区域和部分应用不同的质量。例如,图6中描绘的第一帧601中的区域610具有文本图像内容,而区域620具有自然图像内容。对第一帧601进行编码和传送的服务器可按100%质量对区域610进行编码和传送,而按不同的质量(例如50%)对区域620进行编码和传送。类似地,服务器可按100%质量对第二帧602中的文本图像区域630进行编码和传送,而按不同的质量级(例如,对于区域620为75%,而对于区域640为50%)对自然图像区域620和640进行编码和传送。
在一实施例中,当已编码和传送的区域的质量为100%时,该区域可被标记成具有全保真。随后该区域可由RDP中的其他组件(诸如与数据高速缓存、增量检测、和运动检测相关联的组件)使用。由此,在全保真区域重新出现在未来的帧的情况下,全保真区域不需再次被编码和传送。由此,实现全保真标记通过降低要处理的数据量来进一步降低带宽使用。
为了在可用网络带宽和/要处理的数据对编码和传送方案施加约束时降低网络等待时间并且改进远程用户体验,一实施例可使用渐进编码和损坏技术的组合。为了渐进编码,该实施例对于第一次被编码和传送的文本图像区域使用较高质量(例如100%)、对于自然图像区域使用较低质量(例如50%),并且对于随后对自然图像区域的编码和传送使用超过上次质量的质量增量(例如25%)。另外,不对损坏的区域或其部分进行编码和传送。作为示例并且参考图6和7,应用以下质量级:
·对于第一帧601中的文本图像区域610以及第二帧602中的文本图像区域630为100%。由于100%的质量,区域610和区域630被标记成全保真区域。
·对于第一帧601中的区域620以及对于第二帧602中的区域640为50%,因为这两个区域包含自然图像内容并且在相应的帧中被第一次处理。
·对于第二帧602中的区域620为75%,因为自然区域620先前在第一帧601中被处理过。另外,区域620包含被遮挡和未被遮挡的部分。仅对未被遮挡的部分702、704、706和708按75%的质量进行编码并传送到客户机,而对被遮挡的部分710和712进行损坏而不进行编码和传送。
与非渐进编码和传送方案相比,降低了与按增量的质量对区域进行编码以及在需要时对其部分进行损坏相关联的处理量、以及与传送这一区域相关联的网络带宽使用。换言之,与对区域进行编码相关联的数据量可随着其中该区域重新出现的每一帧而降低,因为该区域是按跨帧的增量质量来编码的,并且该区域的部分是在必要时被损坏的。
在各个实施例中,可对帧中第一次出现的数据区域创建编码上下文。在这一编码上下文中,第一质量被设置成目标质量。随后,当该区域出现在第二帧时、和/或当不再需要对该区域的被遮挡的部分进行编码和传送时,更新编码上下文。编码上下文中的目标质量也被更新,并且被设置成第一质量上的增量。参考图6和7中的区域和部分,可以对自然图像区域的编码上下文使用以下伪代码:
·第一帧601中的自然图像区域620:
pContext1=CreateEncodingContext(Region 620)
pEncoder->Encode(pContext1,{Region 620},nTargetQuality(e.g.50%),&pbBuffer1,cbBufefr1)
·第二帧602中的自然区域620和自然图像区域640:
pContext2=CreateEncodingContext(Region640)
pEncoder->Encode(pContext2,{Region 640},nTargetQuality(e.g.50%),&pbBuffer2,cbBuffer2)
pEncoder->Encode(pContext1,{portion 702,portion 704,portion 706,portion708},nTargetQuality(e.g.75%),&pbBufer3,cbBuffer3)
在一实施例中,为了确保客户机向远程用户所显示的帧的一致性,客户机可以直到第一图形帧中的所有区域都被解码并且按与第一帧的渐进编码和损坏相关联的质量级被显示之后才显示第二已解码的图形帧。
在一实施例中,熵编码器功能可执行熵编码过程来生成已编码的图形数据。在某些实施例中,熵编码过程还通过用适当的代码来替换已编码的图形数据中的相应的位模式,来降低已编码的图形数据的比特率。在一个实施例中,可以向GPU提供具有需要编码的数据区域和/或未被遮挡的数据部分的图形数据。以此方式,该过程与维护并显示所得已解码的图形数据的客户机协同作用,而有效地实现了渐进编码和损坏方案。由此,服务器可以按特定质量对最需要的数据部分执行熵编码,并且由此降低来自编码过程的等待时间。
图8描绘了用于处理要传送到客户机的图形数据的示例性操作过程,该过程包括操作800、802、804、806、808和810。操作800开始该操作过程,并且操作802示出了接收表示与远程呈现相关联的客户机屏幕的图形数据。操作804示出了检测客户机屏幕的哪些区域需要用渐进编码和损坏方案来处理。操作806示出了为要用渐进编码和损坏方案来处理的区域中的每一个创建渐进编码上下文。操作808示出了对于所创建的编码上下文中的每一个,跨多个图形帧对区域执行渐进编码上下文和损坏。操作810示出了向客户机传送经渐进编码并且未经损坏的区域。
图9描绘了如上所述用于处理传送到客户机计算机的图形数据的示例性系统。系统900包括处理器910和存储器920。在一实施例中,处理器910可被实现成图1中的处理单元21,而存储器920可被实现成图1中的系统存储器22的组件中的某些或全部。存储器920进一步包括被配置成使系统处理要传送到多个客户机计算机的图形数据的计算机指令。框922示出了接收表示与远程呈现相关联的客户机屏幕的图形数据。框924示出了检测客户机屏幕的哪些区域需要用渐进编码和损坏方案来处理。框926示出了为要用渐进编码和损坏方案来处理的区域中的每一个创建渐进编码上下文。框928示出了对于所创建的编码上下文中的每一个,跨多个图形帧对区域执行渐进编码上下文和损坏。框930示出了向客户机传送经渐进编码并且未经损坏的区域。
上文所提及的方面中的任何一个方面都可以以方法、系统、计算机可读介质或任何类型的产品来实现。
上述详细描述通过示例和/或操作图阐明了系统和/或过程的各种实施例。就这些框图和/或示例包含一个或多个功能和/或操作而言,本领域技术人员将理解,这些框图或示例中的每一功能和/或操作都可由各种各样的硬件、软件、固件、或实际上其任意组合来单独地和/或共同地实现。
应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组合来实现。因此,本公开的方法和装置或其某些方面或部分,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载至诸如计算机等机器并由其运行时,该机器成为用于实现本公开的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如,通过使用API、可重用控件等来实现或利用结合本发明描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
尽管具体地参考其优选实施例来示出并描述了本发明,但本领域的技术人员可以理解,可以作出形式和细节上的各种改变而不脱离所附权利要求书中所述的本发明的范围。此外,尽管本发明的各元素可以用单数来描述或要求保护,但构想了复数,除非明确地规定了限于单数。
Claims (10)
1.一种用于在远程桌面环境中编码和传送图形数据的系统,包括:
处理器;以及
当所述系统可操作时通信地耦合到所述处理器的存储器,所述存储器承载指令,当所述指令在所述处理器上执行时使得所述系统至少执行以下操作:
第一次处理用户远程桌面的区域;
确定表示所述区域的一部分的第一数据集;
以第一质量将所述第一数据集传送到远程桌面客户机计算机;
第二次处理所述用户远程桌面的区域;
确定表示所述区域的未被遮挡的部分的第二数据集,所述未被遮挡的部分是当呈现在显示器上时所述区域的将对用户可见的部分;以及
以第二质量将所述第二数据集传送到所述远程桌面客户机计算机。
2.如权利要求1所述的系统,其特征在于,所述第二质量是所述第一质量上的固定最小增量。
3.如权利要求1所述的系统,其特征在于,所述第二质量是将所述远程桌面服务器计算机与所述远程桌面客户机计算机和其他计算设备相连接的网络带宽的函数。
4.如权利要求1所述的系统,其特征在于,所述第二质量是要处理的数据量的函数。
5.如权利要求1所述的系统,其特征在于,所述第二质量接近或处于对于表示作为文本图像的区域的一部分的数据集的最大质量。
6.如权利要求1所述的系统,其特征在于,不向所述远程桌面客户机计算机发送表示区域的被遮挡的部分的数据集,所述被遮挡的部分是当呈现在显示器上时所述区域的将对用户不可见的一部分。
7.如权利要求1所述的系统,其特征在于,表示未被遮挡的部分的数据集在所述数据集的第一质量或第二质量为100%时被高速缓存。
8.一种用于在远程桌面环境中编码和传送图形数据的方法,包括:
第一次处理用户远程桌面的区域;
确定表示所述区域的一部分的第一数据集;
以第一质量将所述第一数据集传送到远程桌面客户机计算机;
第二次处理所述用户远程桌面的区域;
确定表示所述区域的未被遮挡的部分的第二数据集,所述未被遮挡的部分是当呈现在显示器上时所述区域的将对用户可见的部分;以及
以第二质量将所述第二数据集传送到所述远程桌面客户机计算机。
9.如权利要求8所述的方法,其特征在于,所述第二质量高于所述第一质量。
10.一种用于在远程桌面环境中编码和传送图形数据的计算机可读存储介质,所述计算机可读存储介质承载计算机可读指令,所述计算机可读指令在计算机上执行时使得所述计算机执行以下操作,包括:
第一次处理用户远程桌面的区域;
确定表示所述区域的一部分的第一数据集;
以第一质量将所述第一数据集传送到远程桌面客户机计算机;
第二次处理所述用户远程桌面的区域;
确定表示所述区域的未被遮挡的部分的第二数据集,所述未被遮挡的部分是当呈现在显示器上时所述区域的将对用户可见的部分;以及
以第二质量将所述第二数据集传送到所述远程桌面客户机计算机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/225,022 US8924507B2 (en) | 2011-09-02 | 2011-09-02 | Cross-frame progressive spoiling support for reduced network bandwidth usage |
US13/225,022 | 2011-09-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102932324A true CN102932324A (zh) | 2013-02-13 |
CN102932324B CN102932324B (zh) | 2015-08-19 |
Family
ID=47647026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210319602.4A Active CN102932324B (zh) | 2011-09-02 | 2012-08-31 | 支持降低的网络带宽使用的跨帧渐进损坏 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8924507B2 (zh) |
CN (1) | CN102932324B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556471A (zh) * | 2013-08-01 | 2016-05-04 | 英特尔公司 | 自适应远程计算 |
CN111010582A (zh) * | 2019-12-18 | 2020-04-14 | 深信服科技股份有限公司 | 一种云桌面图像处理方法、装置、设备及可读存储介质 |
CN111107127A (zh) * | 2018-10-26 | 2020-05-05 | 辉达公司 | 适用于远程桌面应用程序的个体应用程序窗口的流式传输 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150201199A1 (en) * | 2011-12-07 | 2015-07-16 | Google Inc. | Systems and methods for facilitating video encoding for screen-sharing applications |
US9489659B1 (en) * | 2012-04-02 | 2016-11-08 | Cisco Technology, Inc. | Progressive sharing during a collaboration session |
US9420031B2 (en) * | 2013-01-15 | 2016-08-16 | Microsoft Technology Licensing, Llc | Systems and methods for building and using hybrid mobile applications |
US20150143450A1 (en) * | 2013-11-21 | 2015-05-21 | Broadcom Corporation | Compositing images in a compressed bitstream |
TWI544425B (zh) * | 2013-12-11 | 2016-08-01 | 宏正自動科技股份有限公司 | 遠端分析方法 |
US9565227B1 (en) | 2014-06-16 | 2017-02-07 | Teradici Corporation | Composition control method for remote application delivery |
GB2531774B (en) * | 2014-10-30 | 2017-05-03 | Canon Kk | Video data transmission method in a multi-source display system |
US9860535B2 (en) * | 2015-05-20 | 2018-01-02 | Integrated Device Technology, Inc. | Method for time-dependent visual quality encoding for broadcast services |
US10367876B2 (en) * | 2015-12-21 | 2019-07-30 | AVAST Software s.r.o. | Environmentally adaptive and segregated media pipeline architecture for multiple streaming sessions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101896940A (zh) * | 2007-10-10 | 2010-11-24 | 苹果公司 | 用于硬件资源的动态配置的框架 |
US20100306413A1 (en) * | 2009-05-26 | 2010-12-02 | Yaniv Kamay | Methods for detecting and handling video and video-like content in remote display system |
US20110208804A1 (en) * | 2010-02-23 | 2011-08-25 | Microsoft Corporation | Centralized management tool for remote presentation session server farms |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818480B2 (en) * | 2002-08-29 | 2010-10-19 | Raritan Americas, Inc. | Wireless management of remote devices |
US8225224B1 (en) * | 2003-02-25 | 2012-07-17 | Microsoft Corporation | Computer desktop use via scaling of displayed objects with shifts to the periphery |
US7516255B1 (en) * | 2005-03-30 | 2009-04-07 | Teradici Corporation | Method and apparatus for providing a low-latency connection between a data processor and a remote graphical user interface over a network |
US8341624B1 (en) * | 2006-09-28 | 2012-12-25 | Teradici Corporation | Scheduling a virtual machine resource based on quality prediction of encoded transmission of images generated by the virtual machine |
US7657837B2 (en) * | 2005-04-06 | 2010-02-02 | Ericom Software Ltd. | Seamless windows functionality to remote desktop sessions regarding z-order |
US8200796B1 (en) * | 2005-05-05 | 2012-06-12 | Digital Display Innovations, Llc | Graphics display system for multiple remote terminals |
US7822278B1 (en) * | 2005-09-20 | 2010-10-26 | Teradici Corporation | Methods and apparatus for encoding a digital video signal |
US8527563B2 (en) * | 2005-09-12 | 2013-09-03 | Microsoft Corporation | Remoting redirection layer for graphics device interface |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US8244051B2 (en) | 2006-03-15 | 2012-08-14 | Microsoft Corporation | Efficient encoding of alternative graphic sets |
US8194088B1 (en) * | 2006-08-03 | 2012-06-05 | Apple Inc. | Selective composite rendering |
US8594137B2 (en) | 2007-02-20 | 2013-11-26 | Teradici Corporation | Apparatus and methods for image decoding |
EP2224338A3 (en) * | 2007-09-12 | 2011-03-16 | Citrix Systems, Inc. | Methods and systems for generating desktop environments providing integrated access to remote and local resources |
US20090079694A1 (en) * | 2007-09-20 | 2009-03-26 | Rgb Spectrum | Integrated control system with keyboard video mouse (kvm) |
US7895521B2 (en) * | 2007-11-12 | 2011-02-22 | International Business Machines Corporation | Bandwidth usage and latency reduction of remote desktop software based on preferred rendering of a user selected area |
US8253732B2 (en) * | 2008-01-03 | 2012-08-28 | International Business Machines Corporation | Method and system for remote visualization client acceleration |
US8296357B2 (en) * | 2008-05-19 | 2012-10-23 | Citrix Systems, Inc. | Systems and methods for remoting multimedia plugin calls |
US8254704B2 (en) | 2008-10-30 | 2012-08-28 | Microsoft Corporation | Remote computing platforms providing high-fidelity display and interactivity for clients |
US7831661B2 (en) * | 2008-12-18 | 2010-11-09 | Vmware, Inc. | Measuring client interactive performance using a display channel |
JP4516146B2 (ja) * | 2008-12-22 | 2010-08-04 | 株式会社東芝 | 情報処理システム及び表示制御方法 |
US20100226441A1 (en) | 2009-03-06 | 2010-09-09 | Microsoft Corporation | Frame Capture, Encoding, and Transmission Management |
US8189661B2 (en) | 2009-03-09 | 2012-05-29 | Microsoft Corporation | Remote desktop protocol (RDP) tile image classification for improving compression efficiency and quality |
US8209430B2 (en) * | 2009-03-27 | 2012-06-26 | Wyse Technology Inc. | Apparatus and method for remote communication and bandwidth adjustments |
US8559733B2 (en) | 2009-03-31 | 2013-10-15 | Citrix Systems, Inc. | Methods and systems for approximating progressive image encoding using image partitioning |
US8559755B2 (en) * | 2009-04-07 | 2013-10-15 | Citrix Systems, Inc. | Methods and systems for prioritizing dirty regions within an image |
TWI401968B (zh) * | 2009-10-30 | 2013-07-11 | Awind Inc | 螢幕畫面之編碼方法及其應用之電子裝置 |
WO2011060442A2 (en) * | 2009-11-16 | 2011-05-19 | Citrix Systems, Inc. | Methods and systems for selective implementation of progressive display techniques |
US8392497B2 (en) * | 2009-11-25 | 2013-03-05 | Framehawk, LLC | Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client |
US9075560B2 (en) | 2009-12-10 | 2015-07-07 | Microsoft Technology Licensing, Llc | Real-time compression with GPU/CPU |
US8898577B2 (en) * | 2010-03-09 | 2014-11-25 | Microsoft Corporation | Application sharing with occlusion removal |
ES2390298B1 (es) * | 2010-04-16 | 2013-11-11 | Telefónica, S.A. | Procedimiento de transmisión de contenido visual. |
US8539039B2 (en) * | 2010-06-22 | 2013-09-17 | Splashtop Inc. | Remote server environment |
US8918499B2 (en) * | 2010-08-09 | 2014-12-23 | International Business Machines Corporation | Method and system for end-to-end quality of service in virtualized desktop systems |
US9122053B2 (en) * | 2010-10-15 | 2015-09-01 | Microsoft Technology Licensing, Llc | Realistic occlusion for a head mounted augmented reality display |
US8966376B2 (en) * | 2010-12-10 | 2015-02-24 | Wyse Technology L.L.C. | Methods and systems for remote desktop session redrawing via HTTP headers |
US20120192078A1 (en) * | 2011-01-26 | 2012-07-26 | International Business Machines | Method and system of mobile virtual desktop and virtual trackball therefor |
US9361715B2 (en) * | 2011-06-02 | 2016-06-07 | Microsoft Technology Licensing, Llc | Global composition system |
US9225763B2 (en) * | 2011-06-07 | 2015-12-29 | Cisco Technology, Inc. | Distributed overlay browser for transparent streaming media support in virtualized desktop environment |
US8621352B2 (en) * | 2011-06-08 | 2013-12-31 | Cisco Technology, Inc. | Virtual meeting video sharing |
-
2011
- 2011-09-02 US US13/225,022 patent/US8924507B2/en active Active
-
2012
- 2012-08-31 CN CN201210319602.4A patent/CN102932324B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101896940A (zh) * | 2007-10-10 | 2010-11-24 | 苹果公司 | 用于硬件资源的动态配置的框架 |
US20100306413A1 (en) * | 2009-05-26 | 2010-12-02 | Yaniv Kamay | Methods for detecting and handling video and video-like content in remote display system |
US20110208804A1 (en) * | 2010-02-23 | 2011-08-25 | Microsoft Corporation | Centralized management tool for remote presentation session server farms |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556471A (zh) * | 2013-08-01 | 2016-05-04 | 英特尔公司 | 自适应远程计算 |
CN105556471B (zh) * | 2013-08-01 | 2021-04-20 | 英特尔公司 | 自适应远程计算 |
CN111107127A (zh) * | 2018-10-26 | 2020-05-05 | 辉达公司 | 适用于远程桌面应用程序的个体应用程序窗口的流式传输 |
CN111010582A (zh) * | 2019-12-18 | 2020-04-14 | 深信服科技股份有限公司 | 一种云桌面图像处理方法、装置、设备及可读存储介质 |
CN111010582B (zh) * | 2019-12-18 | 2022-01-18 | 深信服科技股份有限公司 | 一种云桌面图像处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20130060886A1 (en) | 2013-03-07 |
CN102932324B (zh) | 2015-08-19 |
US8924507B2 (en) | 2014-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102932324B (zh) | 支持降低的网络带宽使用的跨帧渐进损坏 | |
US8254704B2 (en) | Remote computing platforms providing high-fidelity display and interactivity for clients | |
US9146884B2 (en) | Push pull adaptive capture | |
EP2517470B1 (en) | Systems and methods for video-aware screen capture and compression | |
US8189661B2 (en) | Remote desktop protocol (RDP) tile image classification for improving compression efficiency and quality | |
CN102447901B (zh) | 用于处理要传送到远程计算设备的图形数据的方法和系统 | |
CN102946409A (zh) | 从多个服务器向客户机递送单个终端用户体验 | |
CN102375687A (zh) | 在无线显示表面上显示计算机桌面 | |
US9344528B2 (en) | Data compressor using hints | |
US9235452B2 (en) | Graphics remoting using augmentation data | |
US10521879B2 (en) | Overlaying multi-source media in VRAM | |
US20140074911A1 (en) | Method and apparatus for managing multi-session | |
CN102411786A (zh) | 用于基于dwt的系统的运动补偿的低复杂度方法 | |
CN102378976B (zh) | 使用多个处理器的图像压缩加速 | |
KR20140006778A (ko) | 이미지 압축을 위한 엔트로피 코더 | |
US9787986B2 (en) | Techniques for parallel video transcoding | |
WO2011126712A2 (en) | Classification and encoder selection based on content | |
Jang et al. | Client rendering method for desktop virtualization services | |
CN103873886A (zh) | 一种处理图像信息的方法、装置及系统 | |
US20120005587A1 (en) | Performing Remoting Operations For Different Regions Of A Display Surface At Different Rates | |
CN116405708A (zh) | 用人工智能视频帧分割处理视频帧像素数据的方法和装置 | |
US9842387B2 (en) | Pixel perturbation for image quality measurement | |
KR102354268B1 (ko) | 최적 클라우드 스트리밍 서비스를 위한 동적 어플리케이션 처리 방법 및 이를 위한 장치 | |
CN107079200B (zh) | 处理瘦客户端终端中的数据 | |
Nguyen et al. | An Efficient Video Streaming Architecture with QoS Control for Virtual Desktop Infrastructure in Cloud Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150727 |
|
C14 | Grant of patent or utility model | ||
C41 | Transfer of patent application or patent right or utility model | ||
GR01 | Patent grant | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |