用于对虚拟桌面基础架构桌面图像进行转码或充实的网络应用设备的制作方法
【专利摘要】本文的示例性实施例中公开了一种装置,其包括用于从托管虚拟桌面接收图像数据并且将桌面图像发送给客户端设备的接口和与所述接口耦合的图形处理逻辑。所述图形处理逻辑通过所述接口接收所述图像数据,并且对所述图像数据执行图形处理操作以创建桌面图像。所述图形处理逻辑使用所述接口来将所述桌面图像提供给所述客户端设备。
【专利说明】用于对虚拟桌面基础架构桌面图像进行转码或充实的网络应用设备
[0001]相关串请的交叉引用
[0002]此申请要求2011年11月16日提交的美国临时申请号13/297,792的优先权。
【技术领域】
[0003]本公开大体上涉及托管虚拟桌面。
【背景技术】
[0004]对桌面视觉渲染进行改进可以提高生产率并且美观。例如,使用字体平滑来渲染文字(这改进显示在诸如LCD显示器的高分辨率显示器上的文字的可读性)可以改进生产率。诸如动画位图的审美改进可以允许对桌面的视觉外观进行定制,并且可以通过使用相同的屏幕区域优美地传达关于桌面环境的更多信息来增加终端用户生产率。
【专利附图】
【附图说明】
[0005]并入本文并且构成说明书的一部分的附图示出了示例性实施例。
[0006]图1是用于执行虚拟桌面基础架构(VDI)中的图形操作的装置的方框图。
[0007]图2是用于在包括一个接口的VDI环境中执行图形操作的装置的方框图。
[0008]图3是用于在包括两个接口的VDI环境中执行图形操作的装置的方框图。
[0009]图4是示出了使用网络元件来对从HVD服务器接收到的HVD数据执行图形操作并且将增强的图形图像提供给桌面客户端的VDI系统的实例的系统的方框图。
[0010]图5是示出了可以使用网络元件来执行具有单个接口的VDI环境中的图形操作的联网环境的实例的方框图。
[0011]图6是示出了其中执行图形处理操作的网络元件远离HVD服务器布置在桌面客户端附近的位置处的系统的实例的方框图。
[0012]图7是示出了其中执行图形处理操作的网络元件布置在HVD服务器附近的位置处的系统的实例的方框图。
[0013]图8是其上可以实施示例性实施例的计算机系统的方框图。
[0014]图9是用于使用网络应用设备提供图形增强来实施托管虚拟桌面的方法的方框图。
【具体实施方式】
[0015]示例性实施例的概述
[0016]以下呈现示例性实施例的简化概述以便提供对示例性实施例的一些方面的基本理解。此概述并不是示例性实施例的广泛概述。其既不意欲指出示例性实施例的重要或关键元素也不描述随附权利要求的范围。其唯一目的在于作为稍后呈现的更详细描述的序言以简化的形式呈现示例性实施例的一些概念。[0017]根据一个示例性实施例,本文公开了一种装置,其包括用于从托管虚拟桌面接收图像数据并且将桌面图像发送到客户端设备的接口以及与该接口耦合的图形处理逻辑。图形处理逻辑通过该接口接收图像数据并且对图像数据执行图形处理操作以创建桌面图像。图形处理逻辑使用该接口来将桌面图像提供给客户端设备。
[0018]根据一个示例性实施例,本文公开了一种编码在非暂态计算机可读媒体中用于由处理器执行的逻辑。该逻辑在被执行时可操作以从托管虚拟桌面接收图像数据、执行图形处理操作以创建桌面图像以及将桌面图像传输给客户端设备。
[0019]根据一个示例性实施例,本文公开了一种包括接收与来自托管虚拟桌面的图像相关的文字数据和图形数据的方法。该方法进一步包括确定将对由文字数据和图形数据构成的群组中的选定的一个执行的图形操作。对由文字数据和图形数据构成的群组中的选定的这一个执行图形操作,从而创建虚拟桌面图像。将虚拟桌面图像发送到与托管虚拟桌面相关的桌面客户端。
[0020]示例性实施例的描述
[0021]此描述提供了并不意欲限制随附权利要求的范围的实例。附图通常指示实例的特征,其中应理解和了解,相同参考数字用来指代相同元件。说明书中提及“一个实施例”或“一实施例”或“一个示例性实施例”意味着所描述的具体特征、结构或特性包括在本文描述的至少一个实施例中而并不暗示该特征、结构或特性出现在本文描述的所有实施例中。
[0022]在一个示例性实施例中,公开了一种可以称为网络应用设备或网络元件的设备,其使用针对一个或多个虚拟桌面基础架构(VDI)协议的背靠背用户代理(B2BUA)将中央处理单元(CPU)和带宽消耗图像处理操作提供给VDI桌面图像。这允许信息技术(IT)管理员配置桌面以获得最大密度和带宽保护同时仍为终端用户提供优化的视觉体验。
[0023]在一个示例性实施例中,设备为“本地”图像处理操作提供VDI桌面图像增强。“本地”图像处理操作的实例是字体平滑。字体平滑常常限于单个的图象字符或图象字符的组合。字体平滑既不需要横跨大部分VDI图像的操作也不依赖于一系列时间不同的图像。字体平滑可以应用于由单个的图象字符构成的静态位图图像或桌面窗口图像。在具体实施例中,图像处理操作可以通过可嵌入在VDI中的额外元数据来促进。可以执行的本地图像处理操作的另一个实例是窗口装饰。例如,按钮在从HVD发送出时可能非常简单,但是可以通过对其装饰来变得有光泽。
[0024]动画位图是“本地”图像处理操作的另一个实例。设备可以具备一系列本地缓存的动画位图图像。设备可以逐VDI图像用来自动画系列的适当位图来覆盖静态VDI桌面图像。
[0025]在具体实施例中,设备也可以将透明图像效果和背景图像效果应用到VDI桌面图像。VDI流中诸如元数据的数据可以用来指定所需效果。示例性实施例可以使用具有桌面处理可以用来将例如元数据的额外信息嵌入到VDI协议会话中的用于“虚拟通道”的设施的任何适合的VDI协议,诸如ICA (独立计算架构)、PCoIP (PC over IP)和RDP (远程桌面协议)。
[0026]额外实施例提供了 VDI图像转码。例如,在对VDI桌面图像应用字体平滑或其他操作之后,图像可以被转码到用于给定VDI端点的不同VDI协议或者可以被转码到例如H.264的传统流媒体格式以显示在任何兼容的媒体设备上。此机构也可以应用于例如X窗口的系统,其中该实施例可以使用装饰桌面并且将所产生的装饰后的桌面传递给VDI端点的窗口管理器。以此方式,X窗口桌面可以在不使用任何种类的VDI用户代理在HVD中运行的情况下被转换成现有VDI协议,例如ICA或RDP。
[0027]在一个示例性实施例中,可以将设备放在数据中心中以便从HVD桌面卸载CPU资源。在另一个示例性实施例中,可以将设备放在靠近终端用户的布线室或分支中,以便提供从HVD桌面进行CPU卸载并减少通过网络的部分的带宽消耗。
[0028]图1是用于执行虚拟桌面基础架构(VDI)中的图形操作的装置100的方框图。装置100包括从托管虚拟桌面(HVD)接收诸如文字和/或未增强的图形104的图像数据的图形处理逻辑(本文中还可以称为图形处理单元或“GPU”)。本文使用的“逻辑”包括但不限于硬件、固件、软件和/或每个的组合以执行功能或动作,和/或引起来自另一个部件的功能或动作。例如,基于所需的应用或需要,逻辑可以包括软件控制的微处理器、诸如特定应用集成电路(“ASIC”)的离散逻辑、芯片上系统(“SoC”)、芯片上可编程系统(“PS0C”)、可编程/编程的逻辑设备、含有指令等的内存设备或实施在硬件中的组合逻辑。逻辑还可以完全实施为存储在永久、有形媒体上的软件,其在由处理器执行时执行所需功能。逻辑可以适当地包括配置成执行一个或多个功能的一个或多个模块。图形处理逻辑102对图像数据执行图形处理操作以创建桌面图像106。将桌面图像(增强的图形输出)106提供给桌面客户端。在一个示例性实施例中,桌面图像106是可以提供给桌面客户端(未示出,参见例如图4)的显示缓冲器的完全渲染的位图图像。
[0029]在一个示例性实施例中,图形处理逻辑102对图像数据执行字体平滑。在一个示例性实施例中,对单个的图象字符执行字体平滑。在另一个示例性实施例中,对图象字符的组合执行字体平滑。在又一个示例性实施例中,对静态位图图像执行字体平滑。在又一个示例性实施例中,对由多个单个的图象字符构成的桌面窗口执行字体平滑。
[0030]在一个示例性实施例中,图形处理逻辑102对图像数据执行动画位图处理。例如,图形处理逻辑102可以用来自动画系列的适当位图覆盖静态桌面图像。图形处理逻辑102可以进一步可操作以逐图像用来自动画系列上的适当位图覆盖静态桌面图像。在具体实施例中,静态桌面图像被本地缓存。
[0031]在一个示例性实施例中,图像数据104包括指示将对图像数据执行的处理操作的元数据。图形处理逻辑102根据元数据确定将执行的处理操作并且执行在元数据中指定的图形处理操作。
[0032]在一个示例性实施例中,图形处理逻辑102将图像数据104从第一协议转码成与桌面客户端兼容的第二协议。例如,图形处理逻辑102可以将图像数据104转码成H.264兼容协议。如另一个实例,图形处理逻辑102可以将接收到的H.264兼容格式的图像数据104转码成与桌面客户端兼容的VDI格式。又一个实例,图形处理逻辑102可以将图像数据104从第一 VDI协议转码成与桌面客户端兼容的第二 VDI协议。
[0033]图2是用于在包括一个接口 202的VDI环境中执行图形操作的装置200的方框图。在所示示例性实施例中,图形处理逻辑102通过接口 202接收图像数据104。图形处理逻辑102对图像数据执行图形操作并且通过接口 202将桌面图像106提供给桌面客户端。
[0034]图3是用于在包括两个接口 302、304的VDI环境中执行图形操作的装置300的方框图。在所示示例性实施例中,通过接口 302接收图像数据104。图形处理逻辑102对图像数据执行图形处理操作并且通过接口 304将桌面图像提供给桌面客户端(未示出,参见例如图4)。
[0035]图4是示出了使用网络元件402对从HVD服务器404接收到的图像数据104执行图形操作并且将桌面图像(例如增强的图形图像)106提供给桌面客户端406的VDI系统的实例的系统400的方框图。取决于网络元件400的部署,装置200或装置300中的任一个可以用于实施网络元件402。在一个示例性实施例中,网络元件402将完全渲染的位图图像提供给桌面客户端406的显示缓冲器408。尽管所示实例展现了单个网络元件402、单个HVD服务器404和单个桌面客户端406,但是本领域技术人员应容易了解,是为了便于说明而选择了说明中部件的选定数量,并且使用具有图形处理逻辑102的网络元件402的系统可以包括任何物理上可实现的数量的HVD桌面、网络元件和桌面客户端。
[0036]图5是示出了可以使用网络元件200来在具有单个接口的VDI环境中执行图形操作的联网环境500的实例的方框图。在所示实例中,HVD服务器404通过网络502耦合到网络元件200。网络502还将网络元件200与桌面客户端406耦合。本领域技术人员可以容易地了解,可以使用交换器和路由器(未示出)来将HVD服务器404与网络元件200耦合,并且将网络元件200耦合到桌面客户端406。因此,网络502的将HVD服务器404耦合到网络元件200的部分可以比网络502的将网络元件200与桌面客户端406耦合的部分消耗较少带宽。
[0037]图6是示出了其中执行图形处理操作的网络元件402远离至少一个HVD服务器404布置在桌面客户端406附近的位置处的系统600的实例的方框图。在所示实例中,至少一个托管虚拟桌面服务器404位于数据中心602中。桌面客户端406A、406B位于第一位置604处,并且桌面客户端406C、406D位于第二位置606处。
[0038]在此实例中,网络元件402布置在位置604、606处。图像数据通过链路608从来自位置602处的服务器404的托管虚拟桌面发送到位置604、606处的网络元件402。链路610将位置604处的网络元件402耦合到桌面客户端406A、406B。链路612将位置606处的网络元件402耦合到桌面客户端406C、406D。
[0039]位置604处的网络元件402执行图形处理并且将桌面图像提供给桌面客户端406A、406B。位置606处的网络元件402将桌面图像提供给桌面客户端406C、406D。
[0040]此实施例的一个方面在于,位置604、606处的网络元件402本地执行图形处理操作。这可以减少托管虚拟桌面服务器404处的中央处理单元(CPU)上的负载。此外,在链路610和612上提供增强的图形,这可以减少数据中心602与位置604、606之间的链路608的带宽量。
[0041]图7是示出了其中执行图形处理操作的网络元件布置在HVD服务器404附近的系统700的实例的方框图。在所示实例中,将来自数据中心702的托管虚拟桌面提供到远程位置704、706。托管虚拟桌面由数据中心702处的服务器404提供并且来自所述至少一个服务器404的图像数据被提供到至少一个网络元件402。由至少一个网络元件402处理的桌面图像通过通信链路708提供到位置704处的桌面客户端406A、406B和位置706处的桌面客户端406C、406D。
[0042]图7中所示的实施例可以减少提供HVD图像数据的CPU上的负载。然而,因为网络元件位于数据中心702处,所以将数据中心702耦合到远程位置704、706的通信链路708上消耗的带宽将预期高于在链路608 (图6)上消耗的带宽,因为链路608不用将经图形处理的(增强的)桌面图像提供到远程位置604、606(图6)。
[0043]图8是其上可以实施示例性实施例的计算机系统800的方框图。计算机系统800可以用于实施图形处理逻辑102 (图1至4)。
[0044]计算机系统800包括用于传输信息的总线802或其他通信机构和与总线802耦合以处理信息的处理器804。计算机系统800还包括诸如随机存取内存(RAM)的主内存806或耦合到总线802以存储将由处理器804执行的信息和指令的其他动态存储设备。主内存806还可以用于在执行将由处理器804执行的指令期间存储临时变量或其他中间信息。例如,主内存806可以用来本地缓存用于提供动画位图的位图图像。计算机系统800进一步包括只读内存(ROM)808或者耦合到总线802以存储用于处理器804的静态信息和指令的其他静态存储设备。提供诸如磁盘、光盘和/或闪存的存储设备810并且将其耦合到总线802以存储信息和指令。
[0045]该示例性实施例的一个方面与用于实施对VDI桌面图像进行转码和/或充实的网络应用设备的计算机系统800的使用有关。根据一个示例性实施例,对VDI桌面图像进行转码和/或充实由计算机系统800响应于处理器804执行包含在主内存806中的一个或多个指令的一个或多个序列来提供。这些指令可以从诸如存储设备810的另一个计算机可读媒体读入主内存806中。包含在主内存806中的指令序列的执行引起处理器804执行本文描述的处理步骤。多处理布置中的一个或多个处理器也可以用来执行包含在主内存806中的指令序列。在可替代实施例中,可以使用硬接线的电路来替代软件指令或与其组合来实施示例性实施例。因此,本文描述的实施例并不限于硬件电路和软件的任何特定组合。
[0046]如本文使用的术语“计算机可读媒体”指代参与将指令提供给处理器804以供执行的任何媒体。这种媒体可以采用许多形式,包括但不限于非易失性媒体和易失性媒体。非易失性媒体包括例如光盘或磁盘,诸如存储设备810。易失性媒体包括动态内存,诸如主内存806。如本文所使用,有形媒体可以包括易失性和非易失性媒体。常见形式的计算机可读媒体包括例如软盘、软磁盘、硬盘、磁卡、纸带、具有孔图案的任何其他实体媒体、RAM、PR0M、EPROM、FLASHPROM、CD、DVD或任何其他内存芯片或卡盘、或者计算机可读取的任何其他媒体。
[0047]计算机系统800还包括耦合到总线802的通信接口 818。通信接口 818提供将计算机系统800耦合到网络链路820 (其连接到本地网络822)的双向数据通信。例如,HVD服务器(未示出)和桌面客户端(未示出)可以与网络822耦合。通信接口 818使得计算机系统800能够从HVD服务器接收图像数据、处理数据以创建桌面图像并且将图像提供给桌面客户端。
[0048]在具体实施例中,可以使用多个通信接口 818。例如,第一通信接口 318可以与提供图像数据的HVD服务器耦合,并且第二通信接口 318可以与桌面客户端耦合以用于将图形增强的桌面图像提供给桌面客户端。
[0049]鉴于以上描述的前述结构和功能特征,将参照图9更好地了解根据示例性实施例的方法900。虽然为了简化解释,示出图9的方法900并且将其描述为顺序地执行,但是应理解和了解,示例性实施例并不受所示顺序限制,因为一些方面可能以不同顺序发生和/或与本文示出和描述的其他方面同时发生。此外,可能并不需要所有示出的特征来实施根据示例性实施例的一个方面的方法。本文描述的方法900适当地适配成在硬件、软件或其组合中实施。例如,方法900可以由图形处理逻辑102(图1至4)和/或计算机系统800 (图8)来实施。
[0050]在902,从HVD服务器接收图像数据。该图像数据可以适当地包括诸如文字和/或图形数据。
[0051]在904,确定将对图像数据执行的图形操作。在一个示例性实施例中,可以使用嵌入在图像数据中的元数据来确定将执行哪些操作。在另一个示例性实施例中,可以预先配置操作。在其他实施例中,可以单独发送用于指定图形操作的数据。
[0052]在906,对图像数据执行图形操作,从而产生虚拟桌面图像。在一个示例性实施例中,图形操作为“本地”图像处理操作提供VDI桌面图像增强。“本地”图像处理操作的一个实例是字体平滑。字体平滑常常限于单个的图象字符或图象字符的组合。字体平滑既不需要横跨大部分VDI图像的操作也不依赖于一系列时间不同的图像。字体平滑可以应用于由单个的图象字符构成的静态位图图像或桌面窗口图像。
[0053]在一个示例性实施例中,图形操作可以包括提供动画图像。可以使用一系列本地缓存的动画位图图像来提供动画图像。例如,可以逐VDI图像用来自动画系列的适当位图来覆盖静态VDI桌面图像。
[0054]在具体实施例中,也可以将透明图像效果和背景图像效果应用到VDI桌面图像。图像(VDI)流中诸如元数据的数据可以用来指定所需效果。示例性实施例可以使用具有桌面处理可以用来将例如元数据的额外信息嵌入到VDI协议会话中的用于“虚拟通道”的设施的任何适合的VDI协议,诸如ICA (独立计算架构)、PCoIP (PC over IP)和RDP (远程桌面协议)。
[0055]额外实施例提供VDI数据转码。例如,在对VDI桌面图像应用字体平滑或其他操作之后,图像可以被转码到用于给定VDI端点的不同VDI协议或者可以被转码到例如H.264的传统流媒体格式以显示在任何兼容的媒体设备上。在其他实施例中,可以将H.264数据转码到与桌面客户端兼容的VDI格式和/或将第一 VDI格式转码到第二 VDI格式。
[0056]在908,将虚拟桌面图像发送到与托管虚拟桌面相关的桌面客户端。在一个示例性实施例中,发送到桌面客户端的桌面图像是完全渲染的位图图像。在具体实施例中,将完全渲染的桌面图像提供到与桌面客户端相关的显示缓冲器。在其他示例性实施例中,可以将完全渲染的桌面图像以VDI协议流或传统媒体流(如H.264)提供到桌面客户端。
[0057]以上描述了示例性实施例。当然,并不可能描述部件或方法的每个可能组合,但是本领域普通技术人员将认识到示例性实施例的许多其他组合和排列是可能的。因此,此申请意欲包含属于随附权利要求的精神和范围内的所有这些改变、修改和变化,权利要求根据它们被公平、合法且平等地授予的范围来解释。
【权利要求】
1.一种装置,其包括: 用于从托管虚拟桌面接收图像数据并且将桌面图像发送给客户端设备的接口; 与所述接口耦合的图形处理逻辑; 其中所述图形处理逻辑通过所述接口接收所述图像数据; 其中所述图形处理逻辑对所述图像数据执行图形处理操作以创建所述桌面图像;以及 其中所述图形处理逻辑使用所述接口来将所述桌面图像提供给所述客户端设备。
2.如权利要求1所述的装置,其中所述图形处理逻辑对所述图像数据执行字体平滑。
3.如权利要求2所述的装置,其中对单个的图象字符执行所述字体平滑。
4.如权利要求2所述的装置,其中对图象字符的组合执行所述字体平滑。
5.如权利要求2中所述的装置,其中对静态位图图像执行所述字体平滑。
6.如权利要求2所述的装置,其中对由多个单个的图象字符构成的桌面窗口图像执行所述字体平滑。
7.如权利要求1所述 的装置,其中所述图形处理逻辑对所述图像数据执行动画位图处理。
8.如权利要求7所述的装置,其中所述图形处理逻辑用来自动画系列的适当位图来覆盖静态桌面图像。
9.如权利要求8所述的装置,其中所述图形处理逻辑逐图像用来自所述动画系列的所述适当位图来覆盖静态桌面图像。
10.如权利要求9所述的装置,其中所述静态桌面图像被本地缓存。
11.如权利要求1所述的装置,其中所述图像数据包括指示处理操作的元数据;以及 其中所述图形处理逻辑执行在所述元数据中指定的所述图形处理操作。
12.如权利要求1所述的装置,其中所述图形处理逻辑将所述图像数据从第一协议转码成与所述客户端设备兼容的第二协议。
13.如权利要求12所述的装置,其中所述第二协议是H.264兼容协议。
14.如权利要求1所述的装置,其中所述接口包括用于从所述托管虚拟桌面接收所述图像数据的第一接口 ;以及 与所述客户端设备耦合以将所述桌面图像提供给所述客户端设备的第二接口。
15.编码在永久计算机可读媒体中以由处理器执行的逻辑,并且所述逻辑在由处理器执行时可操作以: 从托管虚拟桌面接收图像数据; 对所述图像数据执行图形处理操作以创建桌面图像;以及 将所述桌面图像传输到所述客户端设备。
16.如权利要求15所述的逻辑,其中所述图像处理操作包括执行字体平滑。
17.如权利要求15所述的逻辑,其中所述图像处理操作包括对所述图像数据执行动画位图处理。
18.如权利要求15所述的逻辑,所述逻辑进一步可操作以从与所述图像数据相关的元数据确定将对所述图像数据执行的图像处理操作。
19.如权利要求15所述的逻辑,所述逻辑进一步可操作以将所述图像数据从第一协议转码成与所述客户端设备兼容的第二协议。
20.一种方法,其包括: 从托管虚拟桌面接收与图像相关的文字数据和图形数据; 确定将对由所述文字数据和图形数据构成的群组中的选定一个执行的图形操作; 对由所述文字数据和图形数据构成的所述群组中的所述选定一个执行所述图形操作,从而创建虚拟桌面图像;以及 将所述虚拟桌面图像发送到与所述托管虚拟桌面相关的桌面客户端。
21.如权利要求20所述 的方法,其中所述接收与图像相关的文字数据和图形数据包括接收虚拟桌面图像。
【文档编号】G06F3/14GK103946792SQ201280055964
【公开日】2014年7月23日 申请日期:2012年11月15日 优先权日:2011年11月16日
【发明者】史蒂芬·爱德华·弗瑞德, 斯蒂芬·彻维特斯, 托马斯·马丁·维塞尔曼 申请人:思科技术公司