CN101933041B - 图形远程化体系结构 - Google Patents
图形远程化体系结构 Download PDFInfo
- Publication number
- CN101933041B CN101933041B CN200980103999.XA CN200980103999A CN101933041B CN 101933041 B CN101933041 B CN 101933041B CN 200980103999 A CN200980103999 A CN 200980103999A CN 101933041 B CN101933041 B CN 101933041B
- Authority
- CN
- China
- Prior art keywords
- order
- application program
- plug
- data stream
- client
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
公开了实现用于在远程客户机呈现图形图像的图形远程化体系结构的系统和方法。在一个实现中,当远程客户机使用主存在远程服务器上的D3D应用程序时,在该远程客户机处创建并呈现与该D3D应用程序相关联的图形。为此,在远程服务器处将与该图形相对应的D3D命令和D3D对象抽象成数据流。然后,将数据流发送到远程客户机。在远程客户机,从数据流中提取D3D命令和D3D对象并执行以创建图形图像。然后,使用远程客户机处的输出设备呈现和显示该图形图像。
Description
背景
用于创建诸如照片编辑、游戏等等之类的高端图形应用程序的图形软件可以包括利用复杂计算的动画及其他工具。通常,这样的高端图形应用程序使用各种技术来提供用于管理复杂计算的图形硬件支持。例如,在微操作系统上运行的图形应用程序可以使用Direct3D呈现技术来提供图形硬件支持。Direct3D是包括用于在图形应用程序中呈现3D图像的命令的三维(3D)图形应用程序编程接口(API)。
虽然大多数个人计算机(PC)当前都提供这样的图形硬件支持,但是一直都没有使这样的技术远程化的有效方式。例如,在远程会话中,图形应用程序可能不能随着窗口大小或用户连接的数量而放大,也将会产生稳定性问题。此外,在运行视频图形适配器(VGA)的服务器计算机上或在虚拟机上,图形加速也可能不可用。结果,通过远程会话运行的图形应用程序会产生差的最终用户体验。
概述
提供本概述以便介绍将在以下详细描述中进一步描述的涉及图形远程化体系结构的一些简化概念。本概述并不旨在用于标识所要求保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。
在一实施例中,主存在服务器计算机上的三维(3D)应用程序被远程客户机计算机所使用。通过使用与在远程服务器上被抽象成数据流并发送到客户机计算机的图形相对应的3D命令和3D对象,在远程客户机计算机处创建并呈现与3D应用程序相关联的图形。在客户机计算机处,从数据流中提取并执行3D命令和3D对象以创建图形图像。
附图简述
参考附图阐述详细描述。在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。在不同附图中使用同一附图标记指示相似或相同的项。
图1是示出了用于实现3D远程化体系结构的示例性网络环境的框图。
图2是示出了用于实现3D图像的远程呈现的示例性计算服务器的框图。
图3是示出了用于实现3D图像的远程呈现的示例性客户机的框图。
图4是示出了3D远程化体系结构的示例性实现的框图。
图5是示出了用于在3D图形应用程序中抽象命令的示例性过程的流程图。
图6是示出了用于呈现3D图像的示例性过程的流程图。
详细描述
本发明涉及用于实现便于在位于远程的客户机处呈现三维(即3D)图像并在远程会话中获得增强的最终用户体验的远程化体系结构的方法和系统。通常,在诸如Terminal环境之类的远程环境中,诸如Direct3D(即D3D)命令之类的任何图形密集的应用程序命令都是在服务器上执行的。在执行了这些命令之后,借助于服务器的图形处理单元(GPU),呈现诸如图形图像之类的输出。然后,将呈现的图形图像作为位图图像发送到客户机设备,并通过客户机侧的显示设备显示。以这样的方式运行Direct3D或三维应用程序受诸如服务器可用性、可伸缩性、服务器稳定性之类的体系结构因素的限制,并导致差的最终用户体验。具体而言,体系结构限制可以包括,当使用压缩及其他专门方法时缺乏帧速率控制和渐进纹理呈现不足。
在下面的描述中公开了用于实现在远程客户机处启用3D图形图像的呈现的Direct3D远程化体系结构的技术。在一个实现中,并非在服务器计算机处呈现图形图像并随后向客户机设备发送最后的位图图像。可以直接向客户机设备发送D3D命令,客户机设备随后可以执行该D3D命令。客户机设备端处的GPU呈现诸如图形图像之类的输出,并在该客户机端处显示这些图像。因此,可以在不使用服务器端处的GPU的情况下在客户机设备上呈现图形图像。此外,还公开了用于实现帧速率控制和渐进纹理呈现方法以克服上文所提及的体系结构限制的技术。
在下面的描述中,公开了实现用于在客户机设备处呈现3D图形图像的Direct3D远程化体系结构的方法和系统。
示例性网络环境
图1示出了用于实现3D或Direct3D(D3D)远程化体系结构的示例性网络或计算环境100,该体系结构可以实现此处所描述的技术并可以表示此处所描述的元件的全部或部分。计算环境100是计算环境的示例,并且不旨在就所使用的计算机和网络体系结构的用途和/或功能的范围提出任何限制。
计算环境100包括多个客户机设备102-1、102-2、102-3、…、102-N(统称为客户机102)。客户机102通过网络104在通信上与服务器计算机或服务器106相关联。客户机102可以是各种常规计算设备中的任何一种,例如,台式PC、笔记本或便携式计算机、个人数字助理(PDA)、工作站、移动计算设备或因特网设备等等。每一客户机102都可以包括存储了用于呈现的不同的程序模块的存储器。例如,客户机102-1包括可以存储用于执行呈现的诸如D3D插件112及其他模块之类的不同的程序模块110的存储器108。
网络104可以是无线或有线网络,或其组合。网络104也可以表示成彼此互连并用作单个大型网络的各单独网络的集合(例如,因特网或内联网)。这样的单独网络的示例包括,但不仅限于,局域网(LAN)、广域网(WAN)、以及城域网(MAN)。此外,单独网络也可以是无线或有线网络,或其组合。
服务器106可以是,例如,通用计算设备或服务器和大型机的集群。服务器106包括具有与诸如客户机102-1之类的客户机相对应的用户空间116的存储器114。用户空间116还包括D3D抽象模块118和远程适配器120。远程适配器120在服务器106处与客户机建立连接,以发送由D3D抽象模块118抽象的图形命令来进行呈现。
在一个实现中,D3D抽象模块118在终端服务器(TS)/D3D抽象层上执行。D3D抽象层是在服务器106的物理硬件和诸如D3D应用程序之类的图形应用程序之间实现的。抽象层向这些应用程序隐藏硬件的实现细节。
当诸如客户机102-1之类的客户机通过远程会话使用服务器106处的D3D应用程序时,D3D抽象模块118从D3D应用程序接收一个或多个D3D命令和D3D对象。D3D抽象模块118进一步抽象D3D应用程序和执行D3D应用程序的图形硬件之间的通信。
D3D抽象模块118将D3D命令和D3D对象抽象成可以通过网络104发送的数据流。如此,D3D抽象模块118允许服务器106将已抽象的命令和对象作为数据流发送到一个或多个客户机102。数据流是基于诸如远程桌面协议(RDP)、D3D远程化协议等等之类的不同的远程化协议来通过网络104发送的。
为将数据流从服务器106发送到客户机102-1,远程适配器120通过网络104与客户机102-1的D3D插件112建立通信信道。远程适配器120从D3D插件112检查客户机102-1中的显示适配器的可用性和能力。在从D3D插件112接收到确认后,远程适配器120在D3D抽象模块118和D3D插件112之间建立通信信道。
D3D抽象模块118将与D3D应用程序相关联的已抽象的D3D命令和D3D对象发送到客户机102-1处的D3D插件。在一个实现中,D3D抽象模块118将已抽象的D3D命令和D3D对象作为隐藏数据发送到D3D插件112。
在客户机端(即,客户机102),由诸如D3D插件112之类的一个或多个D3D插件接收并处理数据流。D3D插件112接收数据流,并解析该数据流以提取D3D命令。此外,D3D插件创建实际D3D对象,执行D3D命令,并在使用客户机端处的GPU呈现诸如图形图像之类的输出。
示例性服务器
图2是用于实现3D图像的远程呈现的示例性服务器106。服务器106可以是包括处理器202、网络接口204、输入/输出接口206、以及存储器114的计算设备。网络接口204可以包括用于将诸如客户机102之类的多个计算设备彼此连接或连接到服务器106的一个或多个端口。网络接口204可便于使用各种各样网络和协议类型来进行通信,包括有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝、卫星等)。
输入/输出接口206可以包括,例如,用于从客户机102接收数据/向其发送数据的扫描仪端口、鼠标端口、键盘端口等等。在一个实现中,服务器106的输入/输出接口206通过网络104发送诸如D3D命令和D3D对象之类的数据。服务器106的输入/输出接口206从一个或多个客户机102接收诸如表示用于同步目的的所呈现的图形图像的数据或内容之类的数据。
存储器114可以是以诸如随机存取存储器(RAM)之类的易失性存储器形式的和/或诸如只读存储器(ROM)和闪存RAM之类的非易失性存储器形式的任何计算机可读介质。存储器114通常包含可以立即被处理器202访问的和/或目前正在由处理器202进行操作的数据和/或程序模块。
在一个实现中,存储器114包含与每一个客户机102相对应的用户空间116以及程序数据208。除其他模块210之外,每一用户空间116都可以包括D3D抽象模块118以及远程适配器120。程序数据208可以存储包括D3D命令212、D3D对象214、数据流216的参数及其他程序数据218。
D3D抽象模块118可以被配置成监视包括D3D命令212和D3D对象214的数据通信量。如下面进一步详细描述的,D3D抽象模块118可以被配置成通过D3D API从D3D应用程序接收D3D命令212和D3D对象214。D3D API包括可以用来在D3D应用程序中呈现3D图像的功能。在另一实现中,D3D抽象模块118可以被配置成直接从D3D应用程序接收D3D命令212和D3D对象214。
在一个实现中,接收到的D3D命令212可以是高频命令,其可能需要自客户机102的一个或多个网络来回。这样的网络来回可能在执行高频命令时产生延迟。为避免这样的网络来回,D3D抽象模块118可以被配置成向抽象层中的每一个D3D对象分配一个句柄或标识符。然后,D3D抽象模块118将该句柄与用于在客户机端创建D3D对象的其他参数一起记录在数据流216中。该句柄可以存储在服务器106的存储器114中的其他程序数据218中。
D3D抽象模块118将D3D命令212和D3D对象214抽象成数据流216,并通过网络104发送它们。为此,远程适配器120询问客户机102-1的显示适配器的可用性和能力。在从客户机102-1上的D3D插件112接收到对可用性和功能的确认之后,远程适配器120在D3D抽象模块118和D3D插件112之间建立通信信道。D3D抽象模块118通过该通信信道将已抽象的D3D命令212和D3D对象214发送到客户机102-1的D3D插件112。
除抽象之外,D3D抽象模块118可以被配置成执行集中式资源编码。集中式资源编码涵盖了本领域中已知的用于对可用D3D资源进行编码的压缩和抽取方法。这可使服务器106的带宽有效地用于多个应用程序和重新连接。例如,D3D应用程序可以利用大小比可用带宽更大的诸如纹理映射图、网格数据或正常位图图像之类的D3D资源。在这样的情况下,D3D抽象模块118使用已知的压缩和/或抽取方法来缩小资源的大小。资源编码进程可以是集中式的,以便可以执行系统级持久高速缓存,以便以高效的方式使用服务器106的带宽。
示例性客户机
图3示出了用于实现3D图像的远程呈现的示例性客户机102。示例性客户机102可以是各客户机102中的任何一个,例如客户机102-1,并包括处理器302、网络接口304、输入/输出接口306、存储器108、以及输入/输出设备310。网络接口304便于客户机102之间跨网络104的通信。
在一示例性实现中,网络接口304可以包括用于将客户机102-1连接到服务器106或者除客户机102-1以外的客户机102的一个或多个端口。网络接口304可便于使用各种各样网络和协议类型来进行通信,包括有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝、卫星等)。
输入/输出接口306可以包括,例如,用于从客户机102接收数据/向其发送数据的扫描仪端口、鼠标端口、键盘端口等等。在一个实现中,客户机102-1的输入/输出接口306通过网络104接收诸如例如D3D命令212和D3D对象214之类的数据。
客户机102-1的输入/输出接口306向服务器106发送诸如表示用于同步目的的所呈现的图形图像的数据或内容之类的数据。输入/输出接口306可以显示诸如由输入/输出设备310呈现的图形图像之类的数据。
存储器108可以是以诸如随机存取存储器(RAM)之类的易失性存储器形式的和/或诸如只读存储器(ROM)和/或快闪RAM之类的非易失性存储器形式的任何计算机可读介质。存储器108包含可以立即被处理器302访问的和/或目前正在由处理器302进行操作的数据和/或程序模块。在该示例性实现中,存储器108包括程序模块110和程序数据308。程序模块110可以包括D3D插件112及其他模块312。程序数据308可以存储包括数据流314、图形图像316的参数及其他程序数据318。
D3D插件112接收包括D3D命令212和D3D对象214的数据流314,并提取D3D命令212。此外,D3D插件112执行D3D命令212,并通过使用客户机端的GPU呈现输出图形图像。在一个实现中,客户机102-1的D3D插件112可以被配置成通过网络104从服务器接收数据流314。D3D插件112可以被配置成使用本领域中已知的任何解析方法来解析数据流314,并从数据流314中提取D3D命令212。
D3D插件112可以被配置成利用与数据流314一起接收到的句柄来创建D3D对象214。如上文所讨论的,句柄具有包括与诸如D3D应用程序之类的图形应用程序相关联的资源的地址的入口,以便可以标识、检查、创建和/或修改诸如D3D对象214之类的对象。因此,可以向D3D对象分配句柄,以供D3D插件112在客户机端创建实际D3D对象214。然后,D3D插件112可以执行D3D命令212,并使用客户机端处的GPU呈现图形图像316。可以通过本领域中已知的呈现方法来执行图形图像316的呈现。
除呈现之外,D3D插件112还可以被配置成跟踪在服务器106的桌面上显示的窗口的几何形状的变化,以相应地改变服务器桌面在客户机102-1处的表示。窗口几何形状的变化可以包括服务器106的窗口大小调整、窗口移动或定位、和/或桌面的可视区变化。
为支持窗口几何形状变化,可以在客户机102-1处使用代理窗口以再现在服务器106的窗口处发生的几何变化。代理窗口确保与诸如服务器106的窗口和客户机102的窗口之类的在同一会话中激活的任何窗口的互操作性。可以在客户机102处建立代理窗口,例如当禁用桌面合成功能时。桌面合成是改变在客户机的显示屏幕上显示图形图像的像素的方式的特征,并可以由服务器106的桌面窗口管理器来进行控制。
D3D插件112还可以被配置成在客户机102侧,例如,在客户机102-1处,以全屏独占模式呈现Direct3D图形。显示器的全屏独占模式在无需用户干预的情况下自动地捕获、设置/还原屏幕分辨率和像素格式。客户机窗口可以是用于显示图像的简单窗口。然而,Direct3D应用程序在显示器的可能不被简单窗口格式支持的全屏独占模式下运行。D3D插件112在客户机的窗口处使用全屏表示来在全屏独占模式下呈现图形,,从而增强用户体验。
D3D插件112可以被配置成在服务器需要与所呈现的图形图像316相关的信息来进行同步的情况下向服务器106发送该信息。在一个实现中,D3D插件112基于只限客户机侧(client-side-only)的呈现协议在客户机102-1的窗口处呈现输出图形图像。在这样的情况下,要呈现的内容被默认地存储在客户机102处,在服务器需要该内容的情况下其也可以被发送到服务器106。因此,D3D插件112可以进一步被配置成允许在服务器106的所感觉到的不可见的桌面和服务器106桌面的可见的客户机102侧表示之间进行跟踪和同步。
此外,为取得同步和内容一致性,D3D插件112可以被配置成跟踪从服务器106发出的各种Direct3D命令212,以及对客户机102的桌面进行的读/写访问。D3D插件112还可以维护与由服务器106和诸如客户机102-1之类的客户机102发送/接收到的每一个像素的有关的更新信息。可以更新有关像素的信息以供同步,例如当禁用桌面合成时。
示例性体系结构
图4示出了Direct3D(D3D)远程化体系结构400的示例性实现。体系结构400是示出了用于在远程会话中呈现图形图像的相关组件的D3D远程化体系结构的逻辑视图。体系结构400可以包括在服务器侧402(例如,服务器106)操作的一组组件。服务器侧402的组件从D3D应用程序接收D3D命令,将D3D命令以及D3D对象抽象成要通过网络发送到客户机侧404(例如,客户机102)的数据流。客户机侧404包括与诸如客户机102-1之类的客户机102的一组组件。客户机侧404处的组件接收数据流,提取D3D命令,创建实际D3D对象,执行该D3D命令,并在该客户机端呈现输出图形图像。体系结构400还可以包括在被称为会话空间406的同一个会话中被服务器106或客户机102访问的组件,以及在被称为全局空间408的其他会话中被服务器106或客户机102访问的组件。
在一个实现中,服务器侧402处的D3D应用程序410从用户接收一个或多个D3D命令212作为输入。D3D应用程序410可以是涉及复杂计算的诸如游戏应用程序之类的高端图形应用程序。对于这样的应用程序,在TerminalTS/D3D抽象层412处,D3D命令212和D3D对象214被抽象成数据流216。在一个实现中,D3D抽象模块118可以在TerminalTS/D3D抽象层412上执行以抽象这些命令和对象。此外,D3D抽象模块118还向D3D对象214中的一个或多个分配句柄,以便可以在客户机端使用该句柄来创建实际D3D对象214。
为抽象D3D命令212和D3D对象,D3D抽象模块118与D3D API 414进行通信;然而,在某些情况下,应用程序可以实现服务侧GPU(即,本地GPU驱动程序416),如果它可用的话。如果是这种情况(或默认按照OS策略),则GPU驱动程序416可以存在于服务器106本地,并可以与Win32k进程418进行通信。换言之,表示客户机(例如,诸如客户机102-1之类的客户机102)处的远程GPU的远程适配器120可以与所存在的本地GPU驱动程序416并排运行;然而,可以不必存在本地GPU驱动程序416而本远程化体系结构依然有效。本地GPU驱动程序416示出了该远程化体系结构如何与现有的本地图形体系结构集成。
Win32k进程418是为诸如存储器、处理器和输入/输出设备之类的计算资源提供最低级抽象的操作系统内核进程。Win32k进程418与执行图形相关任务的图形设备接口(GDI)GDI应用程序420进行通信。GDI应用程序420可以是用于表示图形对象并向诸如监视器和打印机之类的输出设备传输图形对象的微软操作系统接口。GDI应用程序420可以执行诸如绘制直线和曲线以及呈现字体之类的图形相关任务。
在一个实现中,为执行这样的图形相关任务,GDI应用程序420使用GDI32进程422。GDI32进程422包括供服务器的Windows操作系统GDI创建对象并处理用于在客户机102的显示窗口上显示图像的信息的功能。GDI32进程422执行图形相关功能,如为D3D应用程序410创建D3D对象214。
在创建了D3D对象214之后,向D3D应用程序410和D3D API 414通信传送D3D命令212和D3D对象214。在该通信传送期间,D3D抽象层412处的D3D抽象模块118将D3D命令212和D3D对象214抽象成数据流216。D3D抽象模块118还将D3D对象214的句柄抽象成数据流216。
D3D抽象模块118通过网络104向客户机102发送数据流216。为此,远程适配器120询问诸如客户机102-1之类的客户机102的显示适配器的可用性和能力。在从客户机102-1的D3D插件112接收到确认后,远程适配器120建立通信信道以通过网络104发送数据流216。
在客户机侧404,D3D插件112通过由远程适配器120建立的通信信道接收数据流314。由D3D插件112接收到的数据流314包括D3D命令212、D3D对象214、以及用于重新创建实际D3D对象214的句柄。D3D插件112使用本领域中已知的任何解析方法来解析接收到的数据流314,并提取D3D命令212和D3D对象214。
然后,D3D插件112执行D3D命令212以显示与D3D应用程序410相关联的图形。为此,D3D插件112与诸如客户机102-1之类的客户机102的D3D API 424进行通信。D3D API 424在D3D插件112和执行图形应用程序的图形硬件之间传递D3D命令212和D3D对象214。D3D API 424还包括用于呈现可被用来显示图形的图形图像的命令。
D3D API 424还与Win32k进程426进行交互以执行图形相关任务,如使用句柄来创建实际D3D对象214。Win32k进程426(操作系统内核进程)可以类似于服务器106的Win32k进程418。为创建实际D3D对象214,Win32k进程426与GDI32进程428(其是创建实际D3D对象214的图形设备接口进程)进行交互。
在创建了实际D3D对象214之后,客户机侧404处的GDI32进程428通过D3D API 424向D3D插件112传送D3D对象214。此外,D3D插件112使用D3D对象214来执行D3D命令212,并呈现图形图像316。D3D插件112与GPU驱动程序相类似地呈现图形图像316。然后,通过客户机102-1的输入/输出设备310显示所呈现的图形图像316。在一实现中,每一个客户机102都可以是远程终端服务器客户机430。甚至在客户机102断开连接并稍尝试重新连接的情况下,客户机102处的D3D插件也可以使D3D对象214在呈现过程期间在会话中保持活动。在成功地重新连接之后,服务器106和客户机102将恢复D3D应用程序410的执行。
在一实现中,显示D3D应用程序410的图形涉及使用可以由一个或多个客户机102共享的诸如纹理映射图、法向映射图等等之类的一个或多个D3D资源。为了共享资源,D3D插件112可以被配置成向每一个D3D资源分配句柄或标识符;然而,使用句柄可能需要自客户机102的一个或多个网络来回。为避免连续的网络来回,可以使用集中式服务器组件作为客户机102的提供所分配的句柄的代理。例如,可以在会话空间406或全局空间408中分别使用RDPDD(远程桌面协议设备驱动程序)432或RDPWD(远程桌面协议Win32k驱动程序)434来作为客户机102的代理。
此外,还可以在D3D远程化体系结构中实现诸如渐进纹理呈现方法、帧速率控制方法和自动重新连接方法之类的一个或多个方法。在一个实现中,D3D应用程序410还可以处理诸如网格和纹理之类的消耗较多的网络带宽的D3D资源,以便获得更好的最终用户体验。在这样的情况下,渐进纹理呈现方法可以被配置成高效地分配带宽并获得更好的最终用户体验。
此外,D3D抽象模块118可以使用允许服务器106通过基于D3D应用程序410的类型限制帧传递速率来调节带宽消耗的帧速率控制方法。这样的帧速率控制方法可以多个连接和应用程序之间的可伸缩性和一致性。
另外,还可以实现自动重新连接方法以从D3D应用程序410提供无缝的远程自动重新连接体验。例如,当客户机102在D3D应用程序410执行期间断开连接时,可以连接能够支持正在运行的D3D应用程序410的新客户机。在一个实现中,在新客户机的重新连接期间,D3D应用程序410接收诸如DEVICE_LOST(设备丢失)或DEVICE_REMOVED(设备移除)之类的消息。然后,D3D抽象模块118将D3D应用程序410恢复到断开连接前的状态,并恢复D3D应用程序410的执行。在另一实现中,在新客户机的重新连接期间,D3D抽象模块118执行对在服务器侧402重新创建对象内容所需的D3D命令212和D3D对象的完全抽象。
可以使用另外的方法来确保服务器106不在断开连接的会话期间累积数量无限制的D3D命令212。在本实现中,为在服务器106处避免数量无限制的D3D命令212,可以阻塞调用D3D应用程序410的一个或多个内核线程。
示例性过程
下面将描述实现Direct3D远程化体系结构的示例性方法。这些方法中的某些或全部可以但不必至少部分地在诸如图1-4所示出的体系结构之类的体系结构中实现。同样,还应该理解,取决于情况,方法中的某些动作不必按照所描述的顺序来执行,可被修改,和/或可被完全省略。
图5示出了用于在服务器端在3D图形应用程序中抽象命令的示例性过程500。描述示例性过程500的顺序不应解释为限制,并且所描述的方法的任和数量的框可以按任何顺序组合起来以实现该方法或替换方法。另外,在不偏离此处所描述的主题的精神和范围的情况下,可以从方法中删除各单独的框。此外,该方法还可以用任何合适的硬件、软件、固件或其组合来实现。
在框502,可以从图形应用程序标识和接收一个或多个图形应用程序命令。D3D抽象模块118可以监视并从D3D抽象层412处的D3D应用程序410接收图形应用程序命令。
在框504,通过API将应用程序命令传送到图形硬件驱动程序。D3D抽象模块118可以通过D3D API 414将接收到的命令212传送到图形硬件驱动程序。
在框506,将由图形硬件驱动程序所生成的应用程序命令和对象抽象成数据流。D3D抽象模块118可以将所生成的D3D命令212和D3D对象214抽象成要通过网络104发送的数据流216中的隐藏数据。此外,D3D抽象模块118向一个或多个D3D对象分配句柄或标识符。D3D抽象模块118将该句柄与可用于在客户机102-1处创建D3D对象214的其他参数一起记录在数据流216中。
在框508,通过网络将数据流发送到客户机。D3D抽象模块118可以将数据流216发送到客户机102中的一个或多个,例如客户机102-1。然后,客户机102-1的D3D插件112接收数据流216作为数据流314来。
在一个实现中,可以使用本领域中已知的任何压缩和抽取方法来压缩数据流216中的D3D命令212和D3D对象214。如果例如诸如纹理、网格数据等等之类的D3D资源大小很大并且不能适合网络104的带宽,则可以使用这样的技术。然后,可以通过远程适配器120通过网络104来发送经压缩的D3D资源。
远程适配器120允许D3D抽象模块118与客户机102-1的D3D插件112进行通信。为此,远程适配器120检查客户机102-1的显示适配器的可用性和能力状况。一旦从D3D插件112接收到确认,远程适配器120就在D3D抽象层412和D3D插件112之间建立通信信道。D3D抽象模块118通过网络108通过所建立的通信信道将数据流216发送到客户机102。
图6示出了用于呈现3D图像的示例性过程。描述示例性过程600的顺序不应解释为限制,所描述的方法的任何数量的框可以按任何顺序组合起来以实现该方法或替换方法。另外,在不偏离此处所描述的主题的精神和范围的情况下,可以从该方法中删除各单独的框。此外,该方法还可以用任何合适的硬件、软件、固件或其组合来实现。
在框602,从服务器接收数据流。客户机102-1的D3D插件112可以从服务器106处的D3D抽象模块118接收数据流314。
在框604,从数据流中提取D3D命令和D3D对象。D3D插件112可以从数据流314提取D3D命令212和D3D对象214。此外,D3D插件112还可以借助于客户机102-1的GPU执行D3D命令212。
在框606,通过客户机处的输入/输出设备呈现图形图像形式的输出。可以使用本领域已知的任何一个呈现算法通过客户机102-1的输入/输出设备310呈现D3D应用程序410的诸如3D图形图像316之类的输出。
上文相对于任何方法所描述的任何一个动作都可以通过处理器或其他计算设备并基于存储在一个或多个计算机可读介质上的指令来实现。计算机可读介质可以是可由资源建模应用程序在本地或远程地访问的任何可用介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他存储技术,CD-ROM、数字多功能盘(DVD)或其他光存储器,磁带盒、磁带、磁盘存储器或其他磁存储设备,或可以用来存储所需信息并可由资源建模应用程序访问的任何其他介质。通信介质通常在任何信息传输介质上体现计算机可读指令、数据结构、程序模块或其他数据。上面各项中的任何项的组合也应该包括在计算机可读介质的范围内。
结论
尽管已经用对用于实现数据的自描述呈现的结构特征和/或方法动作专用的语言描述了本发明,但可以理解,本发明不必受所描述的这些具体特征或动作的限制。相反,这些具体特征和动作是作为实现本发明的示例件形式而公开的。
Claims (22)
1.一种服务器系统,包括:
用户空间,所述用户空间与一个或多个客户机相对应,其中所述用户空间包括用于监视数据通信量并从三维3D应用程序接收包括3D命令和3D对象的图形应用程序命令的抽象模块,所述抽象模块被配置成通过基于所述3D应用程序的类型使用帧速率控制限制所述数据通信量的帧传递速率来调节带宽消耗。
2.如权利要求1所述的服务器系统,其特征在于,所述服务器系统包括存储了所述3D命令、所述3D对象以及数据流的程序数据。
3.如权利要求1所述的服务器系统,其特征在于,所述用户空间包括查询客户机设备处的显示适配器的可用性和能力的远程适配器。
4.如权利要求3所述的服务器系统,其特征在于,所述远程适配器在所述抽象模块和所述客户机设备的插件之间建立通信信道,其中所述插件接收命令和3D对象。
5.如权利要求1所述的服务器系统,其特征在于,所述抽象模块被配置成通过包括在3D应用程序中呈现3D图像的功能的应用程序编程接口(API)来从所述3D应用程序接收所述3D命令和3D对象。
6.如权利要求1所述的服务器系统,其特征在于,所述抽象模块向所述3D对象分配标识符。
7.如权利要求1所述的服务器系统,其特征在于,所述抽象模块将所述3D命令和3D对象抽象成数据流并将所述数据流发送到所述一个或多个客户机。
8.如权利要求1所述的服务器系统,其特征在于,所述抽象模块通过压缩和抽取来执行集中式编码。
9.如权利要求1所述的服务器系统,其特征在于,所述3D命令是高频命令。
10.一种客户机系统,包括:
三维3D插件,所述3D插件接收包括3D命令、3D对象和用于重新创建3D对象的句柄的帧速率控制受限数据流并提取所述3D命令,所述3D插件还被配置成使用所述3D对象执行所述3D命令并呈现图形图像。
11.如权利要求10所述的客户机系统,其特征在于,所述3D插件解析所述数据流并提取3D命令。
12.如权利要求10所述的客户机系统,其特征在于,所述3D插件通过标识与所述数据流中的3D对象相关联的句柄来创建3D对象。
13.如权利要求12所述的客户机系统,其特征在于,所述句柄包括其中包含与图形应用程序相关联的资源的地址的入口。
14.如权利要求10所述的客户机系统,其特征在于,所述3D插件在全屏用户界面中呈现3D图形。
15.如权利要求10所述的客户机系统,其特征在于,所述3D插件向服务器发送同步信息。
16.如权利要求10所述的客户机系统,其特征在于,所述3D插件基于只限客户机侧呈现协议来呈现输出图形。
17.如权利要求10所述的客户机系统,其特征在于,还包括图形处理单元,所述图形处理单元生成代理窗口以产生在发送所述数据流的服务器系统中的窗口处发生的几何变化。
18.一种用于在三维3D应用程序中抽象命令的方法,包括:
从三维3D应用程序接收并标识图形应用程序命令;
将所述图形应用程序命令传送到图形驱动程序;
将由所述图形驱动程序所生成的应用程序命令和对象抽象成数据流;以及
向客户机发送所述数据流,还包括通过基于所述3D应用程序的类型使用帧速率控制限制所述数据流的帧传递速率来调节带宽消耗。
19.如权利要求18所述的方法,其特征在于,传送是通过应用程序接口进行的。
20.如权利要求18所述的方法,其特征在于,所述抽象包括将所生成的命令和对象抽象成隐藏数据。
21.如权利要求18所述的方法,其特征在于,还包括通过网络将所述数据流发送到一个或多个客户机。
22.如权利要求21所述的方法,其特征在于,还包括压缩所述数据流。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/024,848 US8433747B2 (en) | 2008-02-01 | 2008-02-01 | Graphics remoting architecture |
US12/024,848 | 2008-02-01 | ||
PCT/US2009/030201 WO2009099689A1 (en) | 2008-02-01 | 2009-01-06 | Graphics remoting architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101933041A CN101933041A (zh) | 2010-12-29 |
CN101933041B true CN101933041B (zh) | 2014-01-08 |
Family
ID=40931210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980103999.XA Active CN101933041B (zh) | 2008-02-01 | 2009-01-06 | 图形远程化体系结构 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8433747B2 (zh) |
EP (1) | EP2248101B1 (zh) |
JP (1) | JP5455930B2 (zh) |
KR (1) | KR101527991B1 (zh) |
CN (1) | CN101933041B (zh) |
BR (1) | BRPI0907240A2 (zh) |
RU (1) | RU2493582C2 (zh) |
WO (1) | WO2009099689A1 (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8745173B1 (en) | 2011-12-30 | 2014-06-03 | hopTo Inc. | Client computing system for and method of receiving cross-platform remote access to 3D graphics applications |
US8433747B2 (en) | 2008-02-01 | 2013-04-30 | Microsoft Corporation | Graphics remoting architecture |
CN102123266A (zh) * | 2010-01-12 | 2011-07-13 | 华为终端有限公司 | 基于网真技术的点对点视频通信方法、编解码器和客户端 |
EP2616954B1 (en) | 2010-09-18 | 2021-03-31 | Google LLC | A method and mechanism for rendering graphics remotely |
KR101401380B1 (ko) * | 2010-11-04 | 2014-05-30 | 한국전자통신연구원 | 원격 렌더링 기반의 3d 응용프로그램 실행 장치 및 그 방법 |
US9430036B1 (en) | 2010-12-10 | 2016-08-30 | Wyse Technology L.L.C. | Methods and systems for facilitating accessing and controlling a remote desktop of a remote machine in real time by a windows web browser utilizing HTTP |
US8504654B1 (en) | 2010-12-10 | 2013-08-06 | Wyse Technology Inc. | Methods and systems for facilitating a remote desktop session utilizing long polling |
US9245047B2 (en) * | 2010-12-10 | 2016-01-26 | Wyse Technology L.L.C. | Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface |
US8589800B2 (en) | 2010-12-10 | 2013-11-19 | Wyse Technology Inc. | Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server |
US9395885B1 (en) | 2010-12-10 | 2016-07-19 | Wyse Technology L.L.C. | Methods and systems for a remote desktop session utilizing HTTP header |
US8966376B2 (en) | 2010-12-10 | 2015-02-24 | Wyse Technology L.L.C. | Methods and systems for remote desktop session redrawing via HTTP headers |
US9535560B1 (en) | 2010-12-10 | 2017-01-03 | Wyse Technology L.L.C. | Methods and systems for facilitating a remote desktop session for a web browser and a remote desktop server |
US8949726B2 (en) | 2010-12-10 | 2015-02-03 | Wyse Technology L.L.C. | Methods and systems for conducting a remote desktop session via HTML that supports a 2D canvas and dynamic drawing |
US9244912B1 (en) | 2010-12-10 | 2016-01-26 | Wyse Technology L.L.C. | Methods and systems for facilitating a remote desktop redrawing session utilizing HTML |
CN102592315B (zh) * | 2011-01-12 | 2015-04-08 | 赞奇科技发展有限公司 | 基于gpu云集群的3d渲染平台 |
CN102857533B (zh) * | 2011-07-01 | 2015-11-18 | 云联(北京)信息技术有限公司 | 一种基于云计算的远程交互式系统 |
US9032467B2 (en) | 2011-08-02 | 2015-05-12 | Google Inc. | Method and mechanism for efficiently delivering visual data across a network |
US20130093776A1 (en) * | 2011-10-14 | 2013-04-18 | Microsoft Corporation | Delivering a Single End User Experience to a Client from Multiple Servers |
US8769052B1 (en) | 2011-12-30 | 2014-07-01 | hopTo Inc. | Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications |
US8838749B1 (en) | 2011-12-30 | 2014-09-16 | hopTo Inc. | Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications |
US8766990B1 (en) | 2011-12-30 | 2014-07-01 | hopTo Inc. | Server computing system for and method of providing cross-platform remote access to 3D graphics applications |
CN103106680B (zh) * | 2013-02-16 | 2015-05-06 | 赞奇科技发展有限公司 | 基于云计算架构的三维图形渲染的实现方法及云服务系统 |
US11307614B2 (en) * | 2013-03-15 | 2022-04-19 | Videri Inc. | Systems and methods for distributing, viewing, and controlling digital art and imaging |
JP6976682B2 (ja) | 2013-03-15 | 2021-12-08 | ビデリ、インコーポレイテッドVideri Inc. | デジタル・アートを表示、配信、鑑賞および制御し、画像形成するためのシステムおよび方法 |
US9600940B2 (en) * | 2013-04-08 | 2017-03-21 | Kalloc Studios Asia Limited | Method and systems for processing 3D graphic objects at a content processor after identifying a change of the object |
US9645820B2 (en) * | 2013-06-27 | 2017-05-09 | Intel Corporation | Apparatus and method to reserve and permute bits in a mask register |
CN103294439B (zh) | 2013-06-28 | 2016-03-02 | 华为技术有限公司 | 一种图像更新方法、系统及装置 |
CN105556471B (zh) * | 2013-08-01 | 2021-04-20 | 英特尔公司 | 自适应远程计算 |
US9805479B2 (en) | 2013-11-11 | 2017-10-31 | Amazon Technologies, Inc. | Session idle optimization for streaming server |
US9374552B2 (en) | 2013-11-11 | 2016-06-21 | Amazon Technologies, Inc. | Streaming game server video recorder |
US20150130814A1 (en) * | 2013-11-11 | 2015-05-14 | Amazon Technologies, Inc. | Data collection for multiple view generation |
US9641592B2 (en) | 2013-11-11 | 2017-05-02 | Amazon Technologies, Inc. | Location of actor resources |
US20150133214A1 (en) * | 2013-11-11 | 2015-05-14 | Amazon Technologies, Inc. | Video encoding based on areas of interest |
US9582904B2 (en) | 2013-11-11 | 2017-02-28 | Amazon Technologies, Inc. | Image composition based on remote object data |
US9634942B2 (en) | 2013-11-11 | 2017-04-25 | Amazon Technologies, Inc. | Adaptive scene complexity based on service quality |
EP3069264B1 (en) * | 2013-11-11 | 2024-02-14 | Amazon Technologies, Inc. | Multiple stream content presentation |
US9578074B2 (en) | 2013-11-11 | 2017-02-21 | Amazon Technologies, Inc. | Adaptive content transmission |
US9604139B2 (en) * | 2013-11-11 | 2017-03-28 | Amazon Technologies, Inc. | Service for generating graphics object data |
US20150178032A1 (en) * | 2013-12-19 | 2015-06-25 | Qualcomm Incorporated | Apparatuses and methods for using remote multimedia sink devices |
KR102067017B1 (ko) | 2014-01-27 | 2020-02-11 | 한국전자통신연구원 | 매쉬업 서비스를 위한 가상 api 제공 장치 및 방법 |
US11283866B2 (en) | 2014-07-07 | 2022-03-22 | Citrix Systems, Inc. | Providing remote access to applications through interface hooks |
US11310312B2 (en) | 2014-07-07 | 2022-04-19 | Citrix Systems, Inc. | Peer to peer remote application discovery |
CN110389827B (zh) * | 2018-04-20 | 2023-05-12 | 伊姆西Ip控股有限责任公司 | 在分布式系统中进行优化的方法、设备和计算机程序产品 |
CN109682344A (zh) * | 2018-12-12 | 2019-04-26 | 上海建工集团股份有限公司 | 墙体实时监测方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487172A (en) * | 1974-11-11 | 1996-01-23 | Hyatt; Gilbert P. | Transform processor system having reduced processing bandwith |
WO1998058478A2 (en) * | 1997-06-13 | 1998-12-23 | Ironside Technologies Inc. | Method of manipulating software components through a network with enhanced performance and reduced network traffic |
US5983218A (en) * | 1997-06-30 | 1999-11-09 | Xerox Corporation | Multimedia database for use over networks |
US6714200B1 (en) * | 2000-03-06 | 2004-03-30 | Microsoft Corporation | Method and system for efficiently streaming 3D animation across a wide area network |
KR20060067248A (ko) * | 2004-12-14 | 2006-06-19 | 한국전자통신연구원 | 사용자 공유를 위한 실사 파노라믹 콘텐츠의 장면저작/콘텐츠 생성 장치 및 그 방법 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215898B1 (en) * | 1997-04-15 | 2001-04-10 | Interval Research Corporation | Data processing system and method |
US6176883B1 (en) * | 1997-11-24 | 2001-01-23 | International Business Machines Corporation | System and method for generating unsupported network information indicators |
US7162528B1 (en) * | 1998-11-23 | 2007-01-09 | The United States Of America As Represented By The Secretary Of The Navy | Collaborative environment implemented on a distributed computer network and software therefor |
US6314452B1 (en) * | 1999-08-31 | 2001-11-06 | Rtimage, Ltd. | System and method for transmitting a digital image over a communication network |
US6618053B1 (en) | 2000-01-10 | 2003-09-09 | Vicarious Visions, Inc. | Asynchronous multilevel texture pipeline |
US6882967B2 (en) * | 2000-01-27 | 2005-04-19 | Middle Digital Inc. | Apparatus and method for remote administration of a PC-server |
US20020135585A1 (en) * | 2000-02-01 | 2002-09-26 | Dye Thomas A. | Video controller system with screen caching |
US6567091B2 (en) * | 2000-02-01 | 2003-05-20 | Interactive Silicon, Inc. | Video controller system with object display lists |
US6877027B1 (en) * | 2000-02-19 | 2005-04-05 | Hewlett-Packard Development Company, L.P. | System and method for providing synchronization verification of multiple applications across remote systems |
US6828983B1 (en) * | 2000-05-12 | 2004-12-07 | S3 Graphics Co., Ltd. | Selective super-sampling/adaptive anti-aliasing of complex 3D data |
EP1293095A1 (en) * | 2000-05-23 | 2003-03-19 | Koninklijke Philips Electronics N.V. | Communication system with mpeg-4 remote access terminal |
JP2002063601A (ja) | 2000-08-15 | 2002-02-28 | Shinji Shimojo | 仮想空間システム |
JP2002092624A (ja) * | 2000-09-20 | 2002-03-29 | Casio Comput Co Ltd | 情報通信システム |
US6966837B1 (en) * | 2001-05-10 | 2005-11-22 | Best Robert M | Linked portable and video game systems |
CA2461830C (en) * | 2001-09-26 | 2009-09-22 | Interact Devices | System and method for communicating media signals |
US7234144B2 (en) * | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
US7081904B2 (en) | 2002-02-26 | 2006-07-25 | Microsoft Corporation | Methods and apparatuses for identifying remote and local services |
AU2003208477A1 (en) | 2002-03-01 | 2003-09-16 | T5 Labs Ltd | Centralised interactive graphical application server |
US6989836B2 (en) | 2002-04-05 | 2006-01-24 | Sun Microsystems, Inc. | Acceleration of graphics for remote display using redirection of rendering and compression |
TW569575B (en) * | 2002-04-30 | 2004-01-01 | Realtek Semiconductor Corp | Transmission setup method and device for multicast packet |
US7149800B2 (en) * | 2002-05-29 | 2006-12-12 | Seventh Knight | Auditing computer systems components in a network |
US7577960B2 (en) * | 2003-06-19 | 2009-08-18 | Microsoft Corporation | System and method for managing cached objects using notifications bonds |
US7839419B2 (en) * | 2003-10-23 | 2010-11-23 | Microsoft Corporation | Compositing desktop window manager |
JP2005175566A (ja) * | 2003-12-08 | 2005-06-30 | Shinichi Hirabayashi | 立体表示システム |
JP2005284694A (ja) * | 2004-03-30 | 2005-10-13 | Fujitsu Ltd | 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法 |
EP1815683A2 (en) * | 2004-04-16 | 2007-08-08 | Digital Accelerator Corporation | Method and apparatus for delivering consumer entertainment services accessed over an ip network |
US7424482B2 (en) * | 2004-04-26 | 2008-09-09 | Storwize Inc. | Method and system for compression of data for block mode access storage |
US7590750B2 (en) | 2004-09-10 | 2009-09-15 | Microsoft Corporation | Systems and methods for multimedia remoting over terminal server connections |
JP4745839B2 (ja) * | 2005-01-28 | 2011-08-10 | 富士通株式会社 | データ転送システム、送信プログラム、受信プログラム及びデータ送信方法 |
EP1864222A4 (en) * | 2005-03-29 | 2012-03-21 | Microsoft Corp | SYSTEM AND METHOD FOR TRANSFERRING DATA FROM A WEB PAGE |
CA2607005C (en) * | 2005-05-05 | 2012-02-07 | Ironport Systems, Inc. | Identifying threats in electronic messages |
JP4302081B2 (ja) * | 2005-06-21 | 2009-07-22 | 富士通株式会社 | ウェブアプリケーションシステム,遠隔操作サーバプログラム及び遠隔操作クライアントプログラム |
US20070005734A1 (en) | 2005-06-30 | 2007-01-04 | Microsoft Corporation | Generically extensible client application |
US7844442B2 (en) | 2005-08-16 | 2010-11-30 | Exent Technologies, Ltd. | System and method for providing a remote user interface for an application executing on a computing device |
US8220042B2 (en) * | 2005-09-12 | 2012-07-10 | Microsoft Corporation | Creating secure interactive connections with remote resources |
US8527563B2 (en) | 2005-09-12 | 2013-09-03 | Microsoft Corporation | Remoting redirection layer for graphics device interface |
US7899864B2 (en) | 2005-11-01 | 2011-03-01 | Microsoft Corporation | Multi-user terminal services accelerator |
US20080082670A1 (en) * | 2006-09-28 | 2008-04-03 | Microsoft Corporation | Resilient communications between clients comprising a cloud |
US8433747B2 (en) | 2008-02-01 | 2013-04-30 | Microsoft Corporation | Graphics remoting architecture |
US8144187B2 (en) * | 2008-03-14 | 2012-03-27 | Microsoft Corporation | Multiple video stream capability negotiation |
-
2008
- 2008-02-01 US US12/024,848 patent/US8433747B2/en active Active
-
2009
- 2009-01-06 KR KR1020107016588A patent/KR101527991B1/ko active IP Right Grant
- 2009-01-06 RU RU2010132174/08A patent/RU2493582C2/ru active
- 2009-01-06 JP JP2010545038A patent/JP5455930B2/ja active Active
- 2009-01-06 WO PCT/US2009/030201 patent/WO2009099689A1/en active Application Filing
- 2009-01-06 EP EP09708457.8A patent/EP2248101B1/en active Active
- 2009-01-06 BR BRPI0907240-3A patent/BRPI0907240A2/pt not_active IP Right Cessation
- 2009-01-06 CN CN200980103999.XA patent/CN101933041B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5487172A (en) * | 1974-11-11 | 1996-01-23 | Hyatt; Gilbert P. | Transform processor system having reduced processing bandwith |
WO1998058478A2 (en) * | 1997-06-13 | 1998-12-23 | Ironside Technologies Inc. | Method of manipulating software components through a network with enhanced performance and reduced network traffic |
US5983218A (en) * | 1997-06-30 | 1999-11-09 | Xerox Corporation | Multimedia database for use over networks |
US6714200B1 (en) * | 2000-03-06 | 2004-03-30 | Microsoft Corporation | Method and system for efficiently streaming 3D animation across a wide area network |
KR20060067248A (ko) * | 2004-12-14 | 2006-06-19 | 한국전자통신연구원 | 사용자 공유를 위한 실사 파노라믹 콘텐츠의 장면저작/콘텐츠 생성 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2011511367A (ja) | 2011-04-07 |
RU2010132174A (ru) | 2012-02-10 |
WO2009099689A1 (en) | 2009-08-13 |
CN101933041A (zh) | 2010-12-29 |
JP5455930B2 (ja) | 2014-03-26 |
KR20100114050A (ko) | 2010-10-22 |
US20090195537A1 (en) | 2009-08-06 |
EP2248101B1 (en) | 2018-12-05 |
US8433747B2 (en) | 2013-04-30 |
EP2248101A1 (en) | 2010-11-10 |
RU2493582C2 (ru) | 2013-09-20 |
KR101527991B1 (ko) | 2015-06-10 |
BRPI0907240A2 (pt) | 2015-07-14 |
EP2248101A4 (en) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101933041B (zh) | 图形远程化体系结构 | |
US8638336B2 (en) | Methods and systems for remoting three dimensional graphical data | |
US8559755B2 (en) | Methods and systems for prioritizing dirty regions within an image | |
CN101918921B (zh) | 用于远程提供三维图形的方法和系统 | |
US9779463B2 (en) | Local management for intermediary graphics rendition | |
Mwalongo et al. | State‐of‐the‐Art Report in Web‐based Visualization | |
EP3311565B1 (en) | Low latency application streaming using temporal frame transformation | |
KR20070120108A (ko) | 분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는방법 및 장치 | |
CN112316433A (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN111932663A (zh) | 基于多层级非对称通信管理的并行绘制方法 | |
MX2013008070A (es) | Visualizacion de la formacion de la tierra en tres dimensiones. | |
Nonaka et al. | Hybrid hardware-accelerated image composition for sort-last parallel rendering on graphics clusters with commodity image compositor | |
CN115052043B (zh) | 一种云桌面的视频传输方法、电子设备、装置及介质 | |
Matsui et al. | Virtual desktop display acceleration technology: RVEC | |
EP3069264B1 (en) | Multiple stream content presentation | |
US20230134779A1 (en) | Adaptive Mesh Reprojection for Low Latency 6DOF Rendering | |
CN104158835A (zh) | 一种智能桌面系统服务器控制客户端的方法 | |
KR102301393B1 (ko) | 서버 블레이드를 이용한 메시 형상의 서비스형 데스크톱 플랫폼 장치 | |
JP2024118429A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN114924819A (zh) | 水印合成方法、云桌面服务器和客户端及计算机可读存储介质 | |
KR20150077033A (ko) | 내추럴 사용자 인터페이스 기반의 서버 노드의 전력 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150429 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150429 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |