CN103294439B - 一种图像更新方法、系统及装置 - Google Patents
一种图像更新方法、系统及装置 Download PDFInfo
- Publication number
- CN103294439B CN103294439B CN201310269616.4A CN201310269616A CN103294439B CN 103294439 B CN103294439 B CN 103294439B CN 201310269616 A CN201310269616 A CN 201310269616A CN 103294439 B CN103294439 B CN 103294439B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- type surface
- instruction
- graphics command
- sequence number
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Processing Or Creating Images (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种图像更新方法,用于能够简单的获得远程登录过程中的图像。所述方法包括:渲染服务器获取虚拟机的图形指令;渲染服务器确定虚拟机的图形指令的类型;若虚拟机的图形指令的类型为三维图形指令,渲染服务器发送绘图指令到图形处理器以进行渲染处理,绘图指令携带三维图形指令,获取虚拟机的图形指令对应的渲染图像,向渲染服务器的主表面管理单元发送图形更新指令,图形更新指令中携带渲染图像和图形更新第一区域,主表面管理单元获取虚拟机的原始主表面,根据虚拟机的原始主表面、图形更新第一区域和渲染图像合成新的主表面,将新的主表面对应的图像发送至虚拟机的客户端。本发明还公开了用于实现所述方法的系统和装置。
Description
技术领域
本发明涉及IT技术领域,特别涉及一种图像更新方法、系统及装置。
背景技术
远程桌面是目前企业办公环境的一种流行技术,常用来将一台计算机屏幕显示的内容传送到另一台计算机屏幕上进行显示。一般情况下,较为常用的远程登录程序为windows(一种操作系统)远程登录程序(mstsc.exe),采用该远程登录程序,可以使本机较为方便地登录至其他计算机。
目前大多数的远程桌面系统都是基于IP(网际协议)网络来传送远程桌面。远程桌面并不仅指远程的屏幕显示,还可以包含远程声音传送、可插拔硬件映射等技术。远程桌面又可以称为虚拟桌面。在虚拟桌面场景下至少存在一台服务器和一台客户机,通过客户机上安装的虚拟桌面客户端软件可以使客户端登录到服务器上。
当我们登录远程桌面时,可能会使用某些依赖于GPU(GraphicProcessingUnit,图形处理器)进行图形运算的三维软件,如AutoCAD(AutoComputerAidedDesign,自动计算机辅助设计软件)、3DsMax(一种基于PC系统的三维动画渲染和制作软件)、Pro/E(一种三维图形软件)等。当这些软件在虚拟机上运行时,可以利用GPU虚拟化技术,使多台虚拟机共用一张物理显卡进行图形运算,如此可以提高硬件资源的利用效率。
在采用GPU处理远程登录中的图像时,现有技术的做法是:
如图1所示,可以基于Direct3D(D3D,一种显示程序接口)的抓图接口进行虚拟机的桌面图像获取。这种技术需要把从虚拟机获取的2D(图1中的二维)指令进行重新包装构造成D3D指令,并与其它3D(图1中的三维)指令一同通过D3D接口放入GPU(图1中的图形处理器)进行渲染,在渲染完成后使用D3D提供的抓图接口(即图1中的抓图)进行渲染结果获取。
该方案的缺点:该方案增加了将2D指令重新构造成D3D指令的复杂性,同时也将增加额外的GPU负担。
发明内容
本发明实施例提供一种图像更新方法、系统及装置,实现了能够简单的获得远程登录过程中的图像的技术效果,提高图像获取效率。
本发明的第一方面,提供一种图像更新方法,所述方法包括:
渲染服务器获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;
所述渲染服务器确定所述虚拟机的图形指令的类型;
若所述虚拟机的图形指令的类型为三维图形指令,所述渲染服务器发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令,获取所述虚拟机的图形指令对应的渲染图像,向所述渲染服务器的主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域;
所述主表面管理单元获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机的客户端。
结合第一方面,在第一种可能的实现方式中,若所述虚拟机的图形指令为二维图形指令,所述渲染服务器向所述主表面管理单元发送图形更新指令,所述图形更新指令中携带所述二维图形指令和所述图形更新第一区域,所述主表面管理单元获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机的客户端。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,所述渲染服务器获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
所述渲染服务器确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配;
相应地,所述主表面管理单元接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面包括:
所述主表面管理单元获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
结合第一方面或第一种可能的实现方式,在第五种可能的实现方式中,所述渲染服务器向所述图形处理器发送的所述绘图指令还包括:图形搬运标识;
所述方法还包括:
所述渲染服务器获取所述图形处理器根据所述图形搬运标识发送的所述虚拟机的图形指令对应的渲染图像。
本发明的第二方面,提供一种图像更新系统,所述系统包括:
获取单元,用于获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;
指令队列单元,用于确定所述虚拟机的图形指令的类型;及若所述虚拟机的图形指令的类型为三维图形指令,发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令;
三维渲染单元,用于获取所述虚拟机的图形指令对应的渲染图像,向主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域;
所述主表面管理单元,用于获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面;
发送单元,用于将所述新的主表面对应的图像发送至所述虚拟机的客户端。
结合第二方面,在第一种可能的实现方式中,所述指令队列单元还用于:若所述虚拟机的图形指令为二维图形指令,向所述主表面管理单元发送图形更新指令,所述图形更新指令中携带所述二维图形指令和所述图形更新第一区域;
所述主表面管理单元还用于获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面;
所述发送单元用于将所述新的主表面对应的图像发送至所述虚拟机的客户端。
结合第二方面或第一种可能的实现方式,在第二种可能的实现方式中,所述指令队列单元还用于:获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述指令队列单元还用于:确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配;
所述主表面管理单元还用于接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述主表面管理单元具体用于:获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
结合第二方面或第一种可能的实现方式,在第五种可能的实现方式中,所述指令队列单元向所述图形处理器发送的所述绘图指令中还包括:图形搬运标识;
所述三维渲染单元还用于:获取所述图形处理器根据所述图形搬运标识发送的所述虚拟机的图形指令对应的渲染图像。
本发明的第三方面,提供一种图像更新装置,所述装置包括:
获取接口,用于获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;
处理器,用于确定所述虚拟机的图形指令的类型,若所述虚拟机的图形指令的类型为三维图形指令,发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令;获取所述虚拟机的图形指令对应的渲染图像,向所述处理器的主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域;获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面;
发送接口,用于将所述新的主表面对应的图像发送至所述虚拟机的客户端。
结合第三方面,在第一种可能的实现方式中,所述处理器还用于:若所述虚拟机的图形指令为二维图形指令,向所述主表面管理单元发送图形更新指令,所述图形更新指令中携带所述二维图形指令和所述图形更新第一区域;及,获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面;
所述发送接口用于将所述新的主表面对应的图像发送至所述虚拟机的客户端。
结合第三方面或第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于:获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述处理器还用于:确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配;及,接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述处理器具体用于:获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
结合第三方面或第一种可能的实现方式,在第五种可能的实现方式中,所述处理器向所述图形处理器发送的所述绘图指令中还包括:图形搬运标识;
所述处理器还用于:获取所述图形处理器根据所述图形搬运标识发送的所述虚拟机的图形指令对应的渲染图像。
本发明实施例中的图像更新方法可以包括:渲染服务器获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;所述渲染服务器确定所述虚拟机的图形指令的类型;若所述虚拟机的图形指令的类型为三维图形指令,所述渲染服务器发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令,获取所述虚拟机的图形指令对应的渲染图像,向所述渲染服务器的主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域,所述主表面管理单元获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机的客户端。
本发明实施例中,在获得所述虚拟机的图形指令后,首先要确定所述虚拟机的图形指令的类型,三维图形指令与二维图形指令的处理方式不同,可以将三维图形指令送往所述图形处理器进行处理,而二维图形指令可以无需送往所述图形处理器而可以直接送往所述主表面管理单元直接进行处理,这样,既无需使用现有技术中的抓图方式处理所有指令,不用担心各窗口之间可能出现的重叠问题,也不用将二维图形指令包装成三维图形指令后再进行处理,显然处理方式较为简单,也提高了图像获取效率。
附图说明
图1为现有技术中获得远程登录图像的示意图;
图2为本发明实施例中图像更新方法的主要流程图;
图3为本发明实施例中图像更新系统的整体架构;
图4为本发明实施例中合成新的主表面时的流程示意图;
图5为本发明实施例中图像更新系统的结构图;
图6为本发明实施例中图像更新装置的结构图。
具体实施方式
本发明实施例中的图像更新方法可以包括:渲染服务器获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;所述渲染服务器确定所述虚拟机的图形指令的类型;若所述虚拟机的图形指令的类型为三维图形指令,所述渲染服务器发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令,获取所述虚拟机的图形指令对应的渲染图像,向所述渲染服务器的主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域,所述主表面管理单元获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机的客户端。
本发明实施例中,在获得所述虚拟机的图形指令后,首先可以确定所述虚拟机的图形指令的类型,三维图形指令与二维图形指令的处理方式不同,可以将三维图形指令送往所述图形处理器进行处理,而二维图形指令可以无需送往所述图形处理器而可以直接送往所述主表面管理单元直接进行处理,这样,既无需使用现有技术中的抓图方式处理所有指令,不用担心各窗口之间可能出现的重叠问题,也不用将二维图形指令包装成三维图形指令后再进行处理,显然处理方式较为简单,也提高了图像获取效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图对本发明优选的实施方式进行详细说明。
实施例一
请参见图2,本发明实施例提供一种图像更新方法,所述方法的主要流程如下:
步骤201:渲染服务器获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容。
请参见图3,为本发明实施例中图像更新系统的整体架构,其中主要包括了UserVM(即图3中的虚拟机301)、RenderServer(即图3中的渲染服务器302)和HDPClient(即图3中的客户端303)三个部分。
其中,因为在进行图像处理时需要用到GPU(即图3中的图形处理器304),因此在图3中也示出了所述图形处理器304,从图3中可以看出,所述图形处理器304可以与所述渲染服务器302相连。
本发明实施例中,所述图像更新系统中可以包括所述图形处理器304,或者也可以不包括所述图形处理器304。
其中,从图3中可以看出,所述渲染服务器302中可以包括WDDMRender(即图3中的图形渲染处理分发模块3011)、至少一个WDDMRender(即图3中的图形渲染模块3012)。图3中,以三个所述图形渲染模块3012为例。
所述虚拟机301可以获得所述虚拟机的图形指令,并可以将所述虚拟机的图形指令传输至所述渲染服务器302中的所述图形渲染处理分发模块3011,所述图形渲染处理分发模块3011可以将所述虚拟机的图形指令传输至相应的所述图形渲染模块3012,所述图形渲染模块3012可以根据所述虚拟机的图形指令获得相应的图像,可以根据获得的图像更新自身维护的与所述客户端303相关的桌面图像,并可以将更新后的桌面图像直接传输至所述虚拟机301,所述虚拟机301可以将接收的桌面图像发送至所述客户端303,从而所述客户端303可以根据接收的桌面图像进行显示。
因为对于所述图像更新系统来说,其可以包括有多台所述虚拟机301,图3中只示出了一台。因为所述图像更新系统可以包括有多台所述虚拟机301,因此在所述渲染服务器302中就可以为每台所述虚拟机301设置一个对应的所述图形渲染模块3012(例如图3中示出了三台,这三台所述图形渲染模块3012就可以对应于三台所述虚拟机301)。那么,在所述渲染服务器302接收所述虚拟机的图形指令的时候就需要知道所述虚拟机的图形指令具体来自于哪台所述虚拟机301,从而可以将所述虚拟机的图形指令分配到相应的所述图形渲染模块3012进行处理。因此,所述虚拟机301可以先将所述虚拟机的图形指令传输至渲染服务器302中的所述图形渲染处理分发模块3011,所述虚拟机的图形指令中可以携带有相应的所述虚拟机301的虚拟机标识信息,例如所述图形渲染处理分发模块3011中可以存储有虚拟机标识信息与所述图形渲染模块3012标识信息之间的对应关系集合,所述图形渲染处理分发模块3011根据所述虚拟机的图形指令中携带的虚拟机标识信息可以知道所述虚拟机的图形指令具体对应于哪台所述虚拟机301,从所述对应关系集合中可以查找到与所述虚拟机301对应的图形渲染模块3012,从而所述图形渲染处理分发模块3011可以将所述虚拟机的图形指令分配到正确的图形渲染模块3012中进行处理。
并且,每个所述图形渲染模块3012可以对应一个所述客户端303,所述图像更新系统可以包括有多台客户端303,例如,图3中有3个图形渲染模块3012,那么也就可以对应有三个所述客户端303,但图3中只示出了一个所述客户端303为例。
其中,本发明实施例主要介绍的是所述渲染服务器302,在渲染服务器302中主要介绍的是所述图形渲染模块3012。因此,步骤201中获得所述虚拟机的图形指令,可以是指其中一个所述图形渲染模块3012获得了所述虚拟机的图形指令,即,在执行步骤201之前,图形渲染处理分发模块3011已经完成了所述虚拟机的图形指令的分发过程。且,所述虚拟机的图形指令来自于一个所述虚拟机301,根据所述虚拟机的图形指令中携带的所述虚拟机标识信息可以知道所述虚拟机的图形指令具体对应于哪台所述虚拟机301,从而能够将所述虚拟机的图形指令分配到正确的图形渲染模块3012中进行处理。
本发明实施例中,渲染服务器302还可以包括有指令队列单元、三维渲染单元、主表面管理单元和发送单元,较佳的,所述指令队列单元、所述三维渲染单元、所述主表面管理单元和所述发送单元都可以位于所述图形渲染模块3012中。
每个所述图形渲染模块3012可以对应一个客户端303,因此对于本发明实施例来说,所述指令队列单元接收到所述虚拟机的图形指令,自然也就知道所述虚拟机的图形指令所针对的所述客户端303,因此步骤201中所述指令队列单元获得的是针对所述第一客户端的所述虚拟机的图形指令。
图3中,所述图形渲染处理分发模块3011和所述图形渲染模块3012都可以与所述虚拟机301相连。
本发明实施例中,所述渲染服务器302可以获取所述虚拟机301发送的所述虚拟机的图形指令,所述虚拟机的图形指令中可以携带有所述图形更新第一区域和所述图形更新内容。其中,所述图形更新第一区域具体可以是一个区域标识,所述图形更新第一区域可以用于指示具体要更新的内容在所述虚拟机301的原始主表面中所在的位置。
具体的,所述渲染服务器302获取所述虚拟机301发送的所述虚拟机的图形指令,可以是所述指令队列单元获取所述虚拟机301发送的所述虚拟机的图形指令。
步骤202:所述渲染服务器302确定所述虚拟机的图形指令的类型。
具体的,所述指令队列单元在接收到所述虚拟机的图形指令后,可以确定所述虚拟机的图形指令的类型。本发明实施例中所述虚拟机的图形指令的类型大体可以分为两类:3D(三维)图形指令及2D(二维)图形指令。因此,步骤202中确定所述虚拟机的图形指令的类型,就是确定所述虚拟机的图形指令具体是所述三维图形指令还是所述二维图形指令。
较佳的,在本发明另一实施例中,所述指令队列单元在确定所述虚拟机的图形指令的类型之后,还可以进一步判断所述虚拟机的图形指令的执行结果是否能够改变所述虚拟机的301主表面的图像。本发明实施例中,所述虚拟机301的主表面例如可以是所述虚拟机301的桌面,那么,所述虚拟机的301主表面的图像也就可以是所述虚拟机301的桌面图像。
改变所述虚拟机301的主表面的图像,即该虚拟机的图形指令的执行结果能够更改所述虚拟机301的主表面的图像的显示内容,例如可能会更改所述主表面的图像中的图标、文字等等,不更改所述虚拟机301的主表面的图像,是该虚拟机的图形指令的执行结果不会更改所述虚拟机301的主表面的图像的显示内容。
本发明实施例中,在所述指令队列单元中可以维护有一指令队列,所述指令队列单元每收到一个指令都可以将其按顺序放入该指令队列中。所述指令队列单元可以实行先进先出的规则,即先收到的指令可以先出队。即,当接收到所述虚拟机的图形指令后,可以将所述虚拟机的图形指令放入该指令队列,之后可以确定所述虚拟机的图形指令的类型。
如果判断确定所述虚拟机的图形指令会改变所述虚拟机301的主表面的图像,那么所述指令队列单元可以为所述虚拟机的图形指令分配执行序号,所述执行序号可以用于表示所述虚拟机的图形指令的处理顺序,所述执行序号可以是根据每条所述虚拟机的图形指令在所述指令队列单元中的所述指令队列中的时序递增或者递减分配。
该处理顺序主要是指:在根据所述虚拟机的图形指令获得渲染图像后,根据所述渲染图像更新相应的所述虚拟机301的主表面的图像时,如果所述渲染图像携带有所述执行序号,那么需要根据各执行序号的处理顺序来进行处理。
其中,如果所述虚拟机的图形指令为所述三维图形指令,且如果所述指令队列单元为所述虚拟机的图形指令分配了执行序号,那么,所述图形处理器304在根据所述虚拟机的图形指令生成所述渲染图像后,所述渲染图像依然可以继续携带有所述执行序号,从而,所述主表面管理单元在获得所述渲染图像后,可以根据所述渲染图像携带的所述执行序号来合成新的主表面。
其中,如果所述虚拟机的图形指令为所述二维图形指令,且如果所述指令队列单元为所述虚拟机的图形指令分配了执行序号,那么,所述指令队列单元可以直接根据所述二维图形指令向所述主表面管理单元发送所述图形更新指令,所述图形更新指令中可以继续携带所述执行序号,从而,所述主表面管理单元在获得所述图形更新指令后,可以根据所述图形更新指令携带的所述执行序号来合成所述虚拟机301的新的主表面。
正因为本发明实施例中所述指令队列单元中可以维护有所述指令队列,因此,所述渲染服务器302可以获取多条所述虚拟机的图形指令,可以将获得的多条所述虚拟机的图形指令均放置在所述指令队列中逐一进行后续处理。
较佳的,在本发明另一实施例中,所述指令队列单元在获得所述虚拟机的图形指令之后,在向所述图形处理器304发送的所述绘图指令中还可以包括有图形搬运标识,该图形搬运标识可以携带在所述绘图指令中。
例如,可以是所述指令队列单元生成所述图形搬运标识,并可以定时将所述图形搬运标识定时添加到所述指令队列中相应的所述虚拟机的图形指令中。因为所述绘图指令携带有所述三维图形指令,因此,所述绘图指令中自然也就携带有所述图形搬运标识。
步骤203:若所述虚拟机的图形指令的类型为三维图形指令,所述渲染服务器发送绘图指令到图形处理器304以进行渲染处理,所述绘图指令携带所述三维图形指令,获取所述虚拟机的图形指令对应的渲染图像,向所述渲染服务器的主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域。
其中,从图3中可以看出,所述渲染服务器302与所述图形处理器304相连,也就是说,所述指令队列单元可以将所述三维图形指令送往所述图形处理器304进行处理,所述图形处理器304会将所述三维图形指令进行渲染,获得与所述虚拟机的图形指令对应的所述渲染图像。在获得所述渲染图像后,所述图形处理器304可以将所述渲染图像传输至所述渲染服务器302。
其中,在获得所述渲染图像后,所述图形处理器304可以将所述渲染图像传输至所述渲染服务器302的所述三维渲染模块,所述三维渲染模块可以根据所述渲染图像生成所述图形更新指令,并向所述主表面管理模块发送所述图形更新指令,所述图形更新指令中就可以携带有所述渲染图像和所述图形更新第一区域。
其中,本发明实施例中,所述渲染服务器302在将所述虚拟机的图形指令送往所述图形处理器304中进行处理之前,可以首先确定所述虚拟机的图形指令的格式是否是能够为所述图形处理器304所识别的格式,如果所述虚拟机的图形指令的格式不是能够为所述图形处理器304所识别的格式,那么所述渲染服务器304可以将所述虚拟机的图形指令的格式转换为能够为所述图形处理器304所识别的格式后再发送至所述图形处理器304,以使所述图形处理器304能够识别所述虚拟机的图形指令。
具体的,如果所述虚拟机的图形指令是所述三维图形指令,所述指令队列单元要将所述三维图形指令送往所述图形处理器304进行处理,可以是首先将所述三维图形指令发送至所述三维渲染单元,所述三维渲染单元如果确定所述三维图形指令的格式不是能够为所述图形处理器304所识别的格式,那么所述三维渲染单元可以将所述三维图形指令的格式转换为能够为所述图形处理器304所识别的格式后再将其发送至所述图形处理器304中进行处理,以从所述图形处理器304中获得与所述三维图形指令对应的所述渲染图像。
因为一般来说,从所述虚拟机301中获得的指令的格式与所述图形处理器304能够识别的指令的格式不同,因此中间需要有一个指令格式的转换过程,本发明实施例中这个指令格式的转换过程可以由所述三维渲染单元完成。
较佳的,在本发明另一实施例中,如果在一条所述虚拟机的图形指令中携带有所述图形搬运标识,如果所述图形处理器304接收到所述虚拟机的图形指令,那么所述图形处理器304在根据所述虚拟机的图形指令获得所述渲染图像后,可以将所述图形处理器304在启动后或执行上一个携带有所述图形搬运指令的所述虚拟机的图形指令后至处理完毕该条所述虚拟机的图形指令之间生成的所有渲染图像发送至所述渲染服务器302,具体的可以是发送至所述三维渲染单元。也就是说,所述图形搬运标识的任务是从所述图形处理器304中获得所述图形处理器304在获得所述图形搬运标识之前生成的所有渲染图像。
具体的,所述指令队列单元可以根据实际情况,在不同时刻为所述虚拟机的图形指令添加所述图形搬运标识。
例如,如果所述指令队列中只有一条所述虚拟机的图形指令携带有所述图形搬运标识,那么所述图形处理器304在获得所述图形搬运标识后,可以将从启动到在获得所述图形搬运标识之前生成的所有渲染图像均发送至所述渲染服务器302。
例如,如果所述指令队列中有至少两条所述虚拟机的图形指令携带有所述图形搬运标识,例如有所述第一虚拟机的图形指令和第二虚拟机的图形指令都携带有所述图形搬运标识,例如在所述指令队列中所述第二虚拟机的图形指令在先,所述第一虚拟机的图形指令在后,也就是说,所述图形处理器304在接收到所述第一虚拟机的图形指令时,已经执行过了所述第二虚拟机的图形指令。那么,那么所述图形处理器304在获得所述第一虚拟机的图形指令后,可以将从执行所述第二虚拟机的图形指令后到在获得所述第一虚拟机的图形指令之前生成的所有渲染图像均发送至所述渲染服务器302。
本发明实施例中,所述图形处理器304也可以每生成一个渲染图像就将该渲染图像发送至所述渲染服务器302,但这样的话会比较耗费时间。因此,可以采取向所述虚拟机的图形指令添加所述图形搬运标识的方式,例如可以定时向所述指令队列中的所述虚拟机的图形指令添加所述图形搬运标识,所述图形处理器304在接收到所述图形搬运标识后会将渲染图像批量发送至所述渲染服务器302,这样,批量传输时其总体所需要的时间会少于将每个渲染图像传输发送所需要的时间,因此可以节省时间,提高操作效率。
本发明实施例中,如果所述虚拟机的图形指令为所述二维图形指令,所述渲染服务器302可以向所述主表面管理单元发送图形更新指令,所述图形更新指令中可以携带所述二维图形指令和所述图形更新第一区域。所述主表面管理单元可以获取所述虚拟机301的原始主表面,及可以根据所述虚拟机301的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机301的客户端303。
本发明实施例中,如果确定所述虚拟机的图形指令的类型为所述二维图形指令,那么所述指令队列模块可以向所述主表面管理单元发送所述图形更新指令,所述主表面管理模块中可以预先存储有所述虚拟机301的原始主表面,从而,所述主表面管理模块在获得所述图形更新指令后,可以根据所述虚拟机301的原始主表面和所述图形更新指令合成所述虚拟机301的新的主表面。
也就是说,本发明实施例中,如果确定所述虚拟机的图形指令的类型为所述二维图形指令,则所述指令队列单元可以直接将所述二维图形指令发送至所述主表面管理单元,所述主表面管理单元可以直接根据所述二维图形指令进行处理获得所述虚拟机301的新的主表面,而无需将二维图形指令包装成三维图形指令后送入所述图形处理器304中进行处理,节省了操作步骤,简化了操作流程,也显然提高了操作效率。
且本发明实施例中,三维图形指令可以直接在所述图形处理器304中进行渲染处理,二维图形指令可以直接在所述主表面管理单元中进行处理,无需采用抓图的方式来获得图像,从而也就避免了因为各抓图的窗口有重叠而无法得到完整图像的技术问题,提高了所获取的图像的完整性。
因为每个所述渲染服务器302可以对应一个虚拟机301,那么每个所述渲染服务器302中都可以维护有一个与其对应的虚拟机301对应的原始主表面。该原始主表面具体可以是维护在所述主表面管理单元中,也就是所述主表面管理模块中可以预先存储有所述虚拟机301的原始主表面。
例如,一个所述渲染服务器302对应的虚拟机301为第一虚拟机,那么该虚拟机301的所述主表面管理单元中可以维护有一个与所述第一虚拟机对应的第一主表面,所述第一主表面对应的图像是要送到第一客户端中进行显示的主表面的图像,所述第一客户端为与所述第一虚拟机对应的客户端303,因此所述第一客户端也就可以称为所述第一虚拟机的客户端。
即,本发明实施例中,主要是针对一台虚拟机301进行说明,因此,在获得所述虚拟机301的新的主表面的图像后,可以是将该新的主表面对应的图像发送至所述虚拟机301的所述客户端303。
步骤204:所述主表面管理单元获取所述虚拟机301的原始主表面,根据所述虚拟机301的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机301的客户端303。
如果所述虚拟机的图形指令为所述三维图形指令,那么所述主表面管理单元获得的是从所述图形处理器304处传输来的所述渲染图像,如果所述虚拟机的图形指令为所述二维图形指令,那么所述主表面管理单元获得的是所述二维图形指令,所述主表面管理单元可以根据所述二维图形指令合成所述虚拟机301的新的主表面。
因此,所述主表面管理单元可以将所述虚拟机301的新的主表面对应的图像发送至所述虚拟机301对应的客户端303。
具体的,本发明实施例中,所述主表面管理单元在根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面时,可以先判断所述图形更新指令是否携带有所述执行序号。
所述主表面管理单元如果判断确定所述图形更新指令没有携带所述执行序号,那么可以直接根据所述图形更新指令和所述虚拟机的原始主表面合成新的主表面。
所述主表面管理单元如果判断确定所述图形更新指令携带有所述执行序号,那么可以获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,可以修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
修正所述图形更新第一区域可以是指:所述主表面管理单元可以确定所述第一执行序号在所述原始主表面中对应的第一区域,及可以确定所述执行序号在所述原始主表面中对应的第二区域,在确定所述第一区域和所述第二区域后,可以在所述原始主表面中确定出第三区域,所述第三区域为在所述第二区域中去除所述第一区域后的剩余区域,所述第三区域也就是修正的所述图形更新第一区域所表示的区域,从而可以根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
其中,本发明实施例中,如果所述虚拟机的图形指令携带有所述执行序号,在根据所述虚拟机的图形指令获得所述图形更新指令后,所述图形更新指令还可以继续携带有所述执行序号。
也就是说,本发明实施例中,所述主表面管理单元当处理到所述图形更新指令时,即根据所述图形更新指令合成新的主表面时,如果所述图形更新指令携带有所述执行序号,那么可以获取自身前一次执行所述合成新的主表面时的第一执行序号,并判断所述图形更新指令携带的执行序号在所述指令队列中的时序是否早于所述第一执行序号的时序,如果所述图形更新指令携带的执行序号在所述指令队列中的时序早于所述第一执行序号的时序,那么需要确定出排在所述执行序号之前的各执行序号所对应的各虚拟机的图形指令,分别确定出这些虚拟机的图形指令在所述原始主表面中所对应的区域,接下来,在根据所述图形更新指令合成所述新的主表面时,要先从所述原始主表面中去除确定出的各区域,再根据所述图形更新指令合成所述新的主表面。
因为既然设定了执行序号,那么说明这些影响到所述原始主表面发生改变的虚拟机的图形指令是有先后顺序的,本发明实施例中,如果先处理了发生在后面的虚拟机的图形指令,那么在处理时就不能让其影响到发生在前面的虚拟机的图形指令所对应的区域,否则所述客户端303所看到的可能就不会是相应虚拟机301真实主表面情况的再现。
例如,所述主表面管理单元当处理到所述图形更新指令时,即根据所述图形更新指令合成所述新的主表面时,如果所述图形更新指令携带有所述执行序号,那么可以获取自身前一次执行所述合成新的主表面时的第一执行序号,及判断所述图形更新指令携带的执行序号在所述指令队列中的时序是否早于所述第一执行序号的时序,具体也可以是判断是否有在所述指令队列中的时序晚于所述执行序号的图形更新指令已被提前处理,如果判断确定还有第二执行序号和第三执行序号的时序排在所述第一执行序号之后,但所述第二执行序号对应的第二虚拟机的图形指令和所述第三执行序号对应的第三虚拟机的图形指令已被处理,那么可以确定出所述第二执行序号在所述原始主表面中对应的区域A、所述第三执行序号在所述原始主表面中对应的区域B和所述执行序号在所述原始主表面中对应的区域C。
接下来,在根据所述图形更新指令合成所述新的主表面时,要先从所述原始主表面中去除确定出的区域A和区域B,再根据所述图形更新指令来合成所述新的主表面。例如,所述第一桌面图像整个为D,去除区域A和区域B后的区域为D-A-B,根据所述图形更新指令和区域D-A-B来合成所述新的主表面。
较佳的,例如,所述第一桌面图像整个为D,去除区域A和区域B后的区域为D-A-B,因为所述执行序号在所述原始主表面中对应的区域为区域C,那么,可以在区域C中去掉区域A和区域B,从而,C-A-B就是修正的所述图形更新第一区域所对应的区域,那么可以根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
那么,可以分为几种情况:
如果区域A和区域C有交集,区域B和区域C没有交集,则C-A-B就相当于C-A;
如果区域B和区域C有交集,区域A和区域C没有交集,则C-A-B就相当于C-B;
如果区域B和区域C有交集,区域A和区域C也有交集,则C-A-B就相当于C-A-B;
如果区域B和区域C没有交集,区域A和区域C也没有交集,则C-A-B就相当于C。
如图4所示,为一个所述主表面管理单元根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面的具体例子。
图4中示出了5个图形更新指令,其中的指令0-指令4分别为图形更新指令0-图形更新指令4,时间轴表示指令0的时序最早,指令4的时序最晚。
所述指令0为二维图形指令,其在所述原始主表面中对应的变更区域为变更区域0。
其中,本发明实施例中,所述图形更新指令是根据所述虚拟机的图形指令获得的,那么,如果所述虚拟机的图形指令为所述三维图形指令,所述图形更新指令也就可以看做是所述三维图形指令,如果所述虚拟机的图形指令为所述二维图形指令,所述图形更新指令也就可以看做是所述二维图形指令。
在处理所述指令0时,因所述指令0中携带有执行序号0,因此可以获取自身前一次执行所述合成新的主表面时的第一执行序号,判断所述图形更新指令携带的执行序号在所述指令队列中的时序是否早于所述第一执行序号的时序,本发明实施例中判断确定所述执行序号0在所述指令队列中的时序不早于所述第一执行序号的时序,因此可以直接根据所述指令0合成所述新的主表面。
所述指令1为三维图形指令,在所述指令2进行处理时,所述指令1还未完成处理,也就是说,在处理完所述指令0后,本来应该处理所述指令1,但由于所述指令1尚未完成,因此首先处理所述指令2。
在处理所述指令2时,因所述指令2中携带有执行序号2,因此可以获取自身前一次执行所述合成新的主表面时的第一执行序号,判断所述图形更新指令携带的执行序号在所述指令队列中的时序是否早于所述第一执行序号的时序,本发明实施例中判断确定所述执行序号2在所述指令队列中的时序不早于所述第一执行序号的时序,因此可以直接根据所述指令2合成所述新的主表面。
在处理完所述指令2后,继续处理所述指令3,所述指令3为二维图形指令,所述指令3在所述原始主表面中对应的变更区域为变更区域3。
在处理所述指令3时,因所述指令3中携带有执行序号3,因此可以获取自身前一次执行所述合成新的主表面时的第一执行序号,判断所述图形更新指令携带的执行序号在所述指令队列中的时序是否早于所述第一执行序号的时序,本发明实施例中判断确定所述执行序号3在所述指令队列中的时序不早于所述第一执行序号的时序,因此可以直接根据所述指令3合成所述新的主表面。
在处理完所述指令2和所述指令3后,所述指令1已在所述图形处理器304上完毕,所述主表面管理单元获得了所述指令1对应的渲染图像,因此需要处理所述指令1。
在处理所述指令1时,因所述指令1中携带有执行序号1,因此可以获取自身前一次执行所述合成新的主表面时的第一执行序号,判断所述图形更新指令携带的执行序号在所述指令队列中的时序是否早于所述第一执行序号的时序,本发明实施例中判断确定所述执行序号1在所述指令队列中的时序早于所述执行序号2的时序和所述执行序号3的时序,因此可以确定所述指令1在所述主表面中对应的区域1、所述指令2在所述主表面中对应的区域2和所述指令3在所述主表面中对应的区域3,原本所述图形更新第一区域对应的区域为区域1,现在需要对所述图形更新第一区域进行修正,修正后的所述图形更新第一区域对应的区域为区域1-(2∪3)。从而根据修正后的所述图形更新第一区域合成所述新的主表面。
在处理完所述指令1后,继续处理所述指令4,所述指令4为三维图形指令,所述指令4在所述原始主表面中对应的变更区域为变更区域4。
在处理所述指令4时,因所述指令4中携带有执行序号4,因此可以获取自身前一次执行所述合成新的主表面时的第一执行序号,判断所述图形更新指令携带的执行序号在所述指令队列中的时序是否早于所述第一执行序号的时序,本发明实施例中判断确定所述执行序号4在所述指令队列中的时序不早于所述第一执行序号的时序,因此可以直接根据所述指令4合成所述新的主表面。
本发明实施例中,在获得所述新的主表面后,所述发送单元可以将所述新的主表面对应的图像发送至所述虚拟机301的所述客户端303,所述客户端303在接收到所述新的主表面对应的图像后,可以根据所述新的主表面对应的图像更新自身当前的主表面的图像。
具体的,本发明实施例中,所述渲染服务器302中还可以包括有编码模块。
所述主表面管理单元在获得所述新的主表面对应的图像后,可以将所述新的主表面对应的图像发送至所述编码模块,所述编码模块可以对所述新的主表面对应的图像进行相应的视频流编码等操作,之后所述发送单元可以将编码后的所述新的主表面对应的图像发送至所述虚拟机301,所述虚拟机301可以将编码后的所述新的主表面对应的图像发送至所述客户端303。
以下结合附图来介绍本发明实施例中的图像更新系统和图像更新装置。
实施例二
请参见图5,本发明实施例提供一种图像更新系统,所述系统可以包括获取单元501、指令队列单元502、三维渲染单元503、主表面管理单元504和发送单元505。较佳的,所述系统可以位于实施例一中的所述渲染服务器302中,或者,较佳的,所述系统可以位于所述渲染服务器302中的所述图形渲染模块3012中,或者,较佳的,所述系统可以是所述渲染服务器302中的所述图形渲染模块3012本身。
较佳的,实施例二中的所述获取单元501与实施例一中的所述获取单元可以是同一功能单元,实施例二中的所述指令队列单元502与实施例一中的所述指令队列单元可以是同一功能单元,实施例二中的所述三维渲染单元503与实施例一中的所述三维渲染单元可以是同一功能单元,实施例二中的所述主表面管理单元504与实施例一中的所述主表面管理单元可以是同一功能单元,实施例二中的所述发送单元505与实施例一中的所述发送单元可以是同一功能单元。
所述获取单元501可以用于获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容。
本发明实施例中,获取单元501可以用于从所述虚拟机301中获得所述虚拟机的图形指令。
所述指令队列单元502可以用于确定所述虚拟机的图形指令的类型;及若所述虚拟机的图形指令的类型为三维图形指令,发送绘图指令到图形处理器304以进行渲染处理,所述绘图指令携带所述三维图形指令。
本发明实施例中,指令队列单元502在接收到所述虚拟机的图形指令后,可以确定所述虚拟机的图形指令的类型。本发明实施例中所述虚拟机的图形指令的类型大体可以分为两类:三维图形指令及二维图形指令。
较佳的,所述指令队列单元502还可以用于:若所述虚拟机的图形指令为所述二维图形指令,向所述主表面管理单元504发送图形更新指令,所述图形更新指令中可以携带所述二维图形指令和所述图形更新第一区域。
本发明实施例中,在所述指令队列单元502中可以维护有一指令队列,所述指令队列单元502每收到一个指令都可以将其按顺序放入该指令队列中。所述指令队列单元502可以实行先进先出的规则,即先收到的指令可以先出队。即,当接收到所述虚拟机的图形指令后,可以将所述虚拟机的图形指令放入该指令队列,之后可以确定所述虚拟机的图形指令的类型。
正因为本发明实施例中所述指令队列单元502中可以维护有所述指令队列,因此,较佳的,所述指令队列单元502还可以用于:获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
较佳的,所述指令队列单元502还可以用于:确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配。
其中,如果所述虚拟机的图形指令为所述三维图形指令,且如果所述指令队列单元为所述虚拟机的图形指令分配了执行序号,那么,所述图形处理器304在根据所述虚拟机的图形指令生成所述渲染图像后,所述渲染图像依然可以继续携带有所述执行序号,从而,所述主表面管理单元在获得所述渲染图像后,可以根据所述渲染图像携带的所述执行序号来合成新的主表面。
其中,如果所述虚拟机的图形指令为所述二维图形指令,且如果所述指令队列单元为所述虚拟机的图形指令分配了执行序号,那么,所述指令队列单元可以直接根据所述二维图形指令向所述主表面管理单元发送所述图形更新指令,所述图形更新指令中可以继续携带所述执行序号,从而,所述主表面管理单元在获得所述图形更新指令后,可以根据所述图形更新指令携带的所述执行序号来合成新的主表面。
较佳的,所述指令队列单元502还可以用于在向所述图形处理器304发送所述绘图指令时,向所述绘图指令中添加图形搬运标识,即,所述指令队列单元502向所述图形处理器304发送的所述绘图指令中可以还包括所述图形搬运标识。
在本发明该实施例中,如果在一条所述虚拟机的图形指令中携带有所述图形搬运标识,如果所述图形处理器304接收到所述虚拟机的图形指令,那么所述图形处理器304在根据所述虚拟机的图形指令获得所述渲染图像后,可以将所述图形处理器304在启动后或执行上一个携带有所述图形搬运指令的所述虚拟机的图形指令后至处理完毕该条所述虚拟机的图形指令之间生成的所有渲染图像发送至所述图像更新系统,具体的可以是发送至所述三维渲染单元503。也就是说,所述图形搬运标识的任务是从所述图形处理器304中获得所述图形处理器304在获得所述图形搬运标识之前生成的所有渲染图像。
本发明实施例中,所述图形处理器304也可以每生成一个渲染图像就将该渲染图像发送至所述图像更新系统,但这样的话会比较耗费时间。因此,可以采取向所述虚拟机的图形指令添加所述图形搬运标识的方式,例如可以定时向所述指令队列中的所述虚拟机的图形指令添加所述图形搬运标识,所述图形处理器304在接收到所述图形搬运标识后会将渲染图像批量发送至所述图像更新系统,这样,批量传输时其总体所需要的时间会少于将每个渲染图像传输发送所需要的时间,因此可以节省时间,提高操作效率。
所述三维渲染单元503可以用于获取所述虚拟机的图形指令对应的渲染图像,向主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域。
较佳的,本发明实施例中,如果所述虚拟机的图形指令是所述三维图形指令,所述指令队列单元502要将所述虚拟机的图形指令送往所述图形处理器304进行处理,可以是首先将所述虚拟机的图形指令发送至所述三维渲染单元503,所述三维渲染单元503如果确定所述虚拟机的图形指令的格式不是能够为所述图形处理器304所识别的格式,那么所述三维渲染单元503可以将所述虚拟机的图形指令的格式转换为能够为所述图形处理器304所识别的格式后再将其发送至所述图形处理器304中进行处理,以从所述图形处理器304中获得与所述虚拟机的图形指令对应的所述渲染图像。
在获得所述渲染图像后,所述图形处理器304可以将所述渲染图像传输至所述三维渲染模块503,所述三维渲染模块503可以根据所述渲染图像生成所述图形更新指令,并向所述主表面管理模块504发送所述图形更新指令,所述图形更新指令中就可以携带有所述渲染图像和所述图形更新第一区域。
较佳的,所述三维渲染单元503还可以用于获取所述图形处理器根据所述图形搬运标识发送的所述虚拟机的图形指令对应的所述渲染图像。
所述主表面管理单元504可以用于获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面。
较佳的,所述主表面管理单元504还可以用于获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面。
较佳的,所述主表面管理单元504还可以用于接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
较佳的,所述主表面管理单元504具体可以用于获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
所述发送单元505可以用于将所述新的主表面对应的图像发送至所述虚拟机301的客户端303。
实施例三
请参见图6,本发明实施例提供一种图像更新装置,所述装置可以包括获取接口601、处理器602和发送接口603。较佳的,所述装置可以位于实施例一中的所述渲染服务器302中,或者,较佳的,所述装置可以位于所述渲染服务器302中的所述图形渲染模块3012中,或者,较佳的,所述装置可以是所述渲染服务器302中的所述图形渲染模块3012本身。
所述获取接口601可以用于获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容。
所述处理器602可以用于确定所述虚拟机的图形指令的类型,若所述虚拟机的图形指令的类型为三维图形指令,发送绘图指令到所述图形处理器304以进行渲染处理,所述绘图指令携带所述三维图形指令;获取所述虚拟机的图形指令对应的渲染图像,向所述处理器602的主表面管理单元504发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域;获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面。
所述处理器602具体可以用于若所述虚拟机的图形指令为二维图形指令,向所述主表面管理单元504发送图形更新指令,所述图形更新指令中携带所述二维图形指令和所述图形更新第一区域;及,获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面。
所述处理器602还可以用于获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
所述处理器602还可以用于确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机301的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元504,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配;及,接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
所述处理器602具体可以用于获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
所述处理器602具体可以用于在向所述图形处理器304发送的所述绘图指令中添加图形搬运标识,即所述处理器602发送给所述图形处理器304的所述绘图指令中可以携带有所述图形搬运标识。
所述处理器602还可以用于获取所述图形处理器304根据所述图形搬运标识发送的所述虚拟机的图形指令对应的渲染图像。
所述发送接口603可以用于将所述新的主表面对应的图像发送至所述虚拟机304的客户端303。这样,所述客户端303根据接收的所述新的主表面对应的图像更新自身当前的主表面的图像。
较佳的,实施例三中所述的所述图像更新系统与实施例二中所述的所述图像更新装置可以是同一设备。
例如,所述获取单元501可以相当于获取接口601。
所述指令队列单元502、所述三维渲染单元503和所述主表面管理单元504可以位于所述处理器602中。
所述发送单元505可以相当于所述发送接口603。
本发明实施例中的图像更新方法可以包括:渲染服务器302获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;所述渲染服务器302确定所述虚拟机的图形指令的类型;若所述虚拟机的图形指令的类型为三维图形指令,所述渲染服务器302发送绘图指令到图形处理器304以进行渲染处理,所述绘图指令携带所述三维图形指令,获取所述虚拟机的图形指令对应的渲染图像,向所述渲染服务器302的主表面管理单元502发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域,所述主表面管理单元502获取所述虚拟机301的原始主表面,根据所述虚拟机301的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机301的客户端303。
本发明实施例中,在获得所述虚拟机的图形指令后,首先要确定所述虚拟机的图形指令的类型,三维图形指令与二维图形指令的处理方式不同,可以将三维图形指令送往所述图形处理器304进行处理,而二维图形指令可以无需送往所述图形处理器304而可以直接送往所述主表面管理单元502直接进行处理,这样,既无需使用现有技术中的抓图方式处理所有指令,不用担心各窗口之间可能出现的重叠问题,也不用将二维图形指令包装成三维图形指令后再进行处理,显然处理方式较为简单,也提高了图像获取效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (15)
1.一种图像更新方法,其特征在于,包括:
渲染服务器获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;
所述渲染服务器确定所述虚拟机的图形指令的类型;
若所述虚拟机的图形指令的类型为三维图形指令,所述渲染服务器发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令,获取所述虚拟机的图形指令对应的渲染图像,向所述渲染服务器的主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域;所述主表面管理单元获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机的客户端;
若所述虚拟机的图形指令为二维图形指令,所述渲染服务器向所述主表面管理单元发送图形更新指令,所述图形更新指令中携带所述二维图形指令和所述图形更新第一区域,所述主表面管理单元获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面,将所述新的主表面对应的图像发送至所述虚拟机的客户端。
2.如权利要求1所述的方法,其特征在于,所述渲染服务器获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
所述渲染服务器确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配;
相应地,所述主表面管理单元接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
4.如权利要求3所述的方法,其特征在于,所述根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面包括:
所述主表面管理单元获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
5.如权利要求1所述的方法,其特征在于,所述渲染服务器向所述图形处理器发送的所述绘图指令还包括:图形搬运标识;
所述方法还包括:
所述渲染服务器获取所述图形处理器根据所述图形搬运标识发送的所述虚拟机的图形指令对应的渲染图像。
6.一种图像更新系统,其特征在于,所述系统包括:
获取单元,用于获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;
指令队列单元,用于确定所述虚拟机的图形指令的类型;及若所述虚拟机的图形指令的类型为三维图形指令,发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令;
三维渲染单元,用于获取所述虚拟机的图形指令对应的渲染图像,向主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域;
所述主表面管理单元,用于获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面;
发送单元,用于将所述新的主表面对应的图像发送至所述虚拟机的客户端;
所述指令队列单元还用于:若所述虚拟机的图形指令为二维图形指令,向所述主表面管理单元发送图形更新指令,所述图形更新指令中携带所述二维图形指令和所述图形更新第一区域;
所述主表面管理单元还用于获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面;
所述发送单元还用于将所述新的主表面对应的图像发送至所述虚拟机的客户端。
7.如权利要求6所述的系统,其特征在于,所述指令队列单元还用于:获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
8.如权利要求7所述的系统,其特征在于,所述指令队列单元还用于:确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配;
所述主表面管理单元还用于接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
9.如权利要求8所述的系统,其特征在于,所述主表面管理单元具体用于:获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
10.如权利要求6所述的系统,其特征在于,所述指令队列单元向所述图形处理器发送的所述绘图指令中还包括:图形搬运标识;
所述三维渲染单元还用于:获取所述图形处理器根据所述图形搬运标识发送的所述虚拟机的图形指令对应的渲染图像。
11.一种图像更新装置,其特征在于,所述装置包括:
获取接口,用于获取虚拟机的图形指令,所述虚拟机的图形指令携带图形更新第一区域和图形更新内容;
处理器,用于确定所述虚拟机的图形指令的类型,若所述虚拟机的图形指令的类型为三维图形指令,发送绘图指令到图形处理器以进行渲染处理,所述绘图指令携带所述三维图形指令;获取所述虚拟机的图形指令对应的渲染图像,向所述处理器的主表面管理单元发送图形更新指令,所述图形更新指令中携带所述渲染图像和所述图形更新第一区域;获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述渲染图像合成新的主表面;
发送接口,用于将所述新的主表面对应的图像发送至所述虚拟机的客户端;
所述处理器还用于:若所述虚拟机的图形指令为二维图形指令,向所述主表面管理单元发送图形更新指令,所述图形更新指令中携带所述二维图形指令和所述图形更新第一区域;及,获取所述虚拟机的原始主表面,根据所述虚拟机的原始主表面、所述图形更新第一区域和所述二维图形指令合成新的主表面;
所述发送接口,还用于将所述新的主表面对应的图像发送至所述虚拟机的客户端。
12.如权利要求11所述的装置,其特征在于,所述处理器还用于:获取多条所述虚拟机的图形指令,将多条所述虚拟机的图形指令放置在指令队列中逐一进行后续处理。
13.如权利要求12所述的装置,其特征在于,所述处理器还用于:确定所述虚拟机的图形指令的执行结果是否改变所述虚拟机的主表面的图像,如果是,为所述虚拟机的图形指令分配执行序号,以将所述执行序号携带在图形更新指令中发送至所述主表面管理单元,其中,所述执行序号根据每条所述虚拟机的图形指令在所述指令队列中的时序递增或者递减分配;及,接收到图形更新指令后,根据所述图形更新指令携带的所述执行序号,合成所述图形更新指令对应的所述新的主表面。
14.如权利要求13所述的装置,其特征在于,所述处理器具体用于:获取自身前一次执行所述合成新的主表面时的第一执行序号,若所述图形更新指令携带的执行序号在所述指令队列中的时序不早于所述第一执行序号的时序,根据所述图形更新第一区域合成所述图形更新指令对应的所述新的主表面,若所述图形更新指令携带的所述执行序号在所述指令队列中的时序早于所述第一执行序号的时序,修正所述图形更新第一区域,根据修正的所述图形更新第一区域,合成所述图形更新指令对应的所述新的主表面。
15.如权利要求11所述的装置,其特征在于,所述处理器向所述图形处理器发送的所述绘图指令中还包括:图形搬运标识;
所述处理器还用于:获取所述图形处理器根据所述图形搬运标识发送的所述虚拟机的图形指令对应的渲染图像。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269616.4A CN103294439B (zh) | 2013-06-28 | 2013-06-28 | 一种图像更新方法、系统及装置 |
EP14817265.3A EP3002674B1 (en) | 2013-06-28 | 2014-02-13 | Image updating method, system and apparatus |
PCT/CN2014/072057 WO2014206094A1 (zh) | 2013-06-28 | 2014-02-13 | 一种图像更新方法、系统及装置 |
US14/980,524 US9830730B2 (en) | 2013-06-28 | 2015-12-28 | Image update method, system, and apparatus |
US15/791,055 US10354430B2 (en) | 2013-06-28 | 2017-10-23 | Image update method, system, and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269616.4A CN103294439B (zh) | 2013-06-28 | 2013-06-28 | 一种图像更新方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294439A CN103294439A (zh) | 2013-09-11 |
CN103294439B true CN103294439B (zh) | 2016-03-02 |
Family
ID=49095387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310269616.4A Active CN103294439B (zh) | 2013-06-28 | 2013-06-28 | 一种图像更新方法、系统及装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9830730B2 (zh) |
EP (1) | EP3002674B1 (zh) |
CN (1) | CN103294439B (zh) |
WO (1) | WO2014206094A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294439B (zh) * | 2013-06-28 | 2016-03-02 | 华为技术有限公司 | 一种图像更新方法、系统及装置 |
US9412146B2 (en) * | 2013-10-25 | 2016-08-09 | Futurewei Technologies, Inc. | System and method for distributed virtualization of GPUs in desktop cloud |
CN104679486B (zh) * | 2013-11-28 | 2019-05-28 | 华为技术有限公司 | 一种图形数据的处理方法、装置及系统 |
CN103763610B (zh) * | 2013-12-27 | 2018-10-30 | 华为技术有限公司 | 一种远程桌面的重定向方法及装置 |
CN104754464A (zh) * | 2013-12-31 | 2015-07-01 | 华为技术有限公司 | 一种音频播放方法、终端及系统 |
CN104765636B (zh) * | 2014-01-02 | 2018-05-04 | 华为技术有限公司 | 一种远程桌面图像的合成方法和装置 |
CN105122204A (zh) * | 2014-03-13 | 2015-12-02 | 华为技术有限公司 | 一种图像处理方法、虚拟机及虚拟机系统 |
CN108345492A (zh) * | 2014-04-08 | 2018-07-31 | 华为技术有限公司 | 一种虚拟化环境中的数据通信的方法、装置及处理器 |
US20150332482A1 (en) * | 2014-05-16 | 2015-11-19 | Microsoft Corporation | Detecting conformance of graphical output data from an application to a convention |
CN104618733A (zh) * | 2014-10-31 | 2015-05-13 | 腾讯科技(深圳)有限公司 | 图像远程投射方法和相关装置 |
CN105677282B (zh) * | 2016-01-29 | 2019-04-26 | 腾讯科技(深圳)有限公司 | 一种图像绘制的方法、用户设备、服务器及系统 |
EP3510483B1 (en) * | 2016-09-23 | 2023-12-20 | Huawei Technologies Co., Ltd. | Binary image differential patching |
CN107037783A (zh) * | 2016-11-09 | 2017-08-11 | 湖南戈人自动化科技有限公司 | 一种人机界面实现高级图形功能的方法 |
US10679314B2 (en) | 2017-03-15 | 2020-06-09 | Microsoft Technology Licensing, Llc | Techniques for reducing perceptible delay in rendering graphics |
CN107172136B (zh) * | 2017-05-04 | 2018-07-03 | 腾讯科技(深圳)有限公司 | 体素数据的同步方法和装置 |
US10628997B2 (en) | 2017-08-24 | 2020-04-21 | Emilio Santos | Method for generating three-dimensional models from constrained sketches and an instruction set |
CN109508212A (zh) * | 2017-09-13 | 2019-03-22 | 深信服科技股份有限公司 | 图形渲染方法、设备及计算机可读存储介质 |
CN110471701B (zh) * | 2019-08-12 | 2021-09-10 | Oppo广东移动通信有限公司 | 图像渲染的方法、装置、存储介质及电子设备 |
CN110941413B (zh) * | 2019-12-09 | 2023-04-11 | Oppo广东移动通信有限公司 | 显示画面的生成方法及相关装置 |
CN113559497B (zh) * | 2021-09-24 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备以及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805354A (zh) * | 2006-01-23 | 2006-07-19 | 北京航空航天大学 | 一种基于远程渲染的三维模型网络发布方法 |
CN101918921A (zh) * | 2008-01-27 | 2010-12-15 | 思杰系统有限公司 | 用于远程提供三维图形的方法和系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2006030931A1 (ja) * | 2004-09-14 | 2008-05-15 | 日本ケミファ株式会社 | N−置換−n−(4−ピペリジニル)アミド誘導体 |
US7899864B2 (en) * | 2005-11-01 | 2011-03-01 | Microsoft Corporation | Multi-user terminal services accelerator |
US8433747B2 (en) * | 2008-02-01 | 2013-04-30 | Microsoft Corporation | Graphics remoting architecture |
CN101593136B (zh) * | 2008-05-30 | 2012-05-02 | 国际商业机器公司 | 使得计算机具有高可用性的方法和计算机系统 |
SG157973A1 (en) * | 2008-06-18 | 2010-01-29 | Indian Inst Technology Bombay | Method for growing monocrystalline diamonds |
CN201427420Y (zh) * | 2008-08-29 | 2010-03-24 | 纸艺制品有限公司 | 一种纸基复合材料 |
US9092249B2 (en) * | 2009-09-11 | 2015-07-28 | Citrix Systems, Inc. | Remote rendering of three-dimensional images using virtual machines |
US9146884B2 (en) * | 2009-12-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Push pull adaptive capture |
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 |
CN102725736B (zh) * | 2011-12-31 | 2014-03-12 | 华为技术有限公司 | 基于虚拟化技术的图形显示方法及系统 |
KR101922866B1 (ko) * | 2012-07-19 | 2019-02-27 | 삼성전기 주식회사 | 적층 세라믹 전자 부품 및 그 제조 방법 |
US9665921B2 (en) * | 2012-12-29 | 2017-05-30 | Futurewei Technologies, Inc. | Adaptive OpenGL 3D graphics in virtual desktop infrastructure |
US9257092B2 (en) * | 2013-02-12 | 2016-02-09 | Vmware, Inc. | Method and system for enhancing user experience for remoting technologies |
CN103294439B (zh) * | 2013-06-28 | 2016-03-02 | 华为技术有限公司 | 一种图像更新方法、系统及装置 |
-
2013
- 2013-06-28 CN CN201310269616.4A patent/CN103294439B/zh active Active
-
2014
- 2014-02-13 EP EP14817265.3A patent/EP3002674B1/en active Active
- 2014-02-13 WO PCT/CN2014/072057 patent/WO2014206094A1/zh active Application Filing
-
2015
- 2015-12-28 US US14/980,524 patent/US9830730B2/en active Active
-
2017
- 2017-10-23 US US15/791,055 patent/US10354430B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805354A (zh) * | 2006-01-23 | 2006-07-19 | 北京航空航天大学 | 一种基于远程渲染的三维模型网络发布方法 |
CN101918921A (zh) * | 2008-01-27 | 2010-12-15 | 思杰系统有限公司 | 用于远程提供三维图形的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103294439A (zh) | 2013-09-11 |
EP3002674A1 (en) | 2016-04-06 |
EP3002674A4 (en) | 2016-04-13 |
WO2014206094A1 (zh) | 2014-12-31 |
US10354430B2 (en) | 2019-07-16 |
US20160110908A1 (en) | 2016-04-21 |
EP3002674B1 (en) | 2017-07-19 |
US20180047205A1 (en) | 2018-02-15 |
US9830730B2 (en) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103294439B (zh) | 一种图像更新方法、系统及装置 | |
CN101896940B (zh) | 用于硬件资源的动态配置的框架 | |
CN112233217B (zh) | 一种虚拟场景的渲染方法和装置 | |
CN100492346C (zh) | 用于图形遥控系统的同步图形和区域数据 | |
CN102239483B (zh) | 命令遥控 | |
US7667704B2 (en) | System for efficient remote projection of rich interactive user interfaces | |
CN106575158B (zh) | 环境映射虚拟化机构 | |
CN103888485A (zh) | 云计算资源的分配方法、装置及系统 | |
CN102915232A (zh) | 一种3d控件的交互方法及通信终端 | |
US20090328037A1 (en) | 3d graphics acceleration in remote multi-user environment | |
CN108052377B (zh) | 基于云的输入处理方法、装置、服务器和存储介质 | |
CN104468826A (zh) | 一种分布式渲染方法、装置及系统 | |
CN110362375A (zh) | 桌面数据的显示方法、装置、设备和存储介质 | |
US20150145876A1 (en) | Graphics Data Processing Method, Apparatus, and System | |
CN111773674A (zh) | 游戏中的指令处理方法以及电子设备 | |
CN113835816A (zh) | 一种虚拟机桌面显示方法、装置、设备及可读存储介质 | |
CN114404996A (zh) | 资源数据处理方法、系统、编辑器、电子设备及存储介质 | |
KR101284791B1 (ko) | 휴대용 단말기를 이용한 컴퓨터 운영체제 구현 방법 및 그 장치 | |
US9162145B2 (en) | Unified game scripting language with multi-platform interpreter | |
US8473716B2 (en) | Distributed processing system, information processing apparatus, and distributed processing method | |
JP7506171B2 (ja) | カーソルコントロールユニット制御方法並びにその、装置、電子デバイス、およびコンピュータプログラム | |
US10293250B2 (en) | Game device, game system, control method, and control program | |
CN117442974A (zh) | 虚拟对象集群的渲染方法、装置、电子设备和存储介质 | |
KR20200016657A (ko) | 3차원 영상 콘텐츠를 제공하는 방법 및 프로그램 | |
CN118069489A (zh) | 虚拟现实画面预览方法及装置 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220215 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |