CN102446341A - 服务器及其图像处理方法 - Google Patents
服务器及其图像处理方法 Download PDFInfo
- Publication number
- CN102446341A CN102446341A CN2010105019665A CN201010501966A CN102446341A CN 102446341 A CN102446341 A CN 102446341A CN 2010105019665 A CN2010105019665 A CN 2010105019665A CN 201010501966 A CN201010501966 A CN 201010501966A CN 102446341 A CN102446341 A CN 102446341A
- Authority
- CN
- China
- Prior art keywords
- operating system
- client
- image
- server
- processing unit
- 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.)
- Pending
Links
Images
Abstract
提供了服务器及其图像处理方法。所述服务器包括:硬件单元,其包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;系统管理单元,设置在硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;主操作系统,设置在系统管理单元之上;至少一个客户操作系统,设置在系统管理单元之上,所述至少一个客户操作系统可以访问第一类虚拟硬件单元;其中,当一客户端连接到服务器时,服务器依据预定策略指定第一客户操作系统与所述客户端相对应,在所述客户端需要访问图像处理单元时,需要通过第一客户操作系统经由主操作系统访问图像处理单元;其中,主操作系统包括一图像截取模块,用于截取图像处理单元所处理的图像。
Description
技术领域
本发明涉及服务器及其图像处理方法,具体地说,涉及基于Windows2008r2 Sp1 RemoteFX的服务器及其图像处理方法。
背景技术
微软将发布的Windows server 2008r2的Sp1和Windows 7的Sp1,其中将新增RemoteFX技术,这是为了提升Win7的系统虚拟化性能,其中,RemoteFX允许用户在远程Windows Aero环境下工作、观看视频和Silverlight动画,流畅运行3D应用程序,实现远程访问计算机的体验和本地相差无几。
RemoteFX的原理就是将图像处理单元(GPU)虚拟化提供给每一个虚拟桌面,也就是说每个虚拟机都可以获得独立的虚拟GPU,从而可以获得各种各样的图形加速能力,进而获得执行各种视频、2D、3D图形图像以及媒体的处理能力。
RemoteFX技术通常用于远程桌面中,对于瘦客户端,尤其是没有显示处理能力的超瘦客户端,采用RemoteFX虚拟GPU技术在服务器渲染桌面AERO效果或3D图形图像等。
但是,在RemoteFX技术中,服务器渲染的图像是经过微软自定义的编码压缩算法之后向客户端传输,微软希望客户端有相应的硬件进行解码。由于该算法非通用算法,因此在现在的客户端上就必须添加该硬件,对于支持采用其它压缩算法的客户端必须向该算法转变,从而给用户的使用带来了不便,并且增加了客户端的复杂度,进而提高了客户端的制造成本。另外,也可以直接用客户端的CPU来直接解码,但这种方式并不可取,因为对客户端的CPU负载太大。例如,通常的thinclient ARM只有600M,本来负担就不小,再加上软解码功能,性能就会大幅下降。
因此,需要在服务器端截取图像处理单元所处理的图像以支持并简化与服务器连接的客户端对于RemoteFX技术的使用的方案。
发明内容
因此,针对上述现有技术中存在的问题和需求做出本发明。
本发明的目的在于提供一种服务器及其图像处理方法,其在服务器的主操作系统中直接截取图像处理单元所处理的图像以由客户端使用,从而能够充分利用图像处理单元的性能并支持RemoteFX技术。
本发明的目的在于提供一种服务器及其图像处理方法,其在服务器的主操作系统中直接截取图像处理单元所处理的图像,并直接在服务器端做好压缩并通过RDP或其他私有协议送到客户端,克服现有技术中需要在客户端添加解码硬件以应用RemoteFX技术的问题。
根据本发明的一个方面,提供了一种服务器,其特征在于,包括:硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;主操作系统,设置在所述系统管理单元之上;至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;其中,所述主操作系统包括一图像截取模块,用于截取所述图像处理单元所处理的图像。
根据本发明的另一方面,提供了一种服务器,其特征在于,包括:硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;主操作系统,设置在所述系统管理单元之上;至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;其中,所述主操作系统包括:一图像截取模块,用于截取所述图像处理单元所处理的图像;和一图像发送模块,与所述图像截取模块连接,用于将所述图像截取模块所截取的图像发送到与所述第一客户操作系统相对应的客户端。
在上述服务器中,所述主操作系统进一步包括:图像压缩模块,与所述图像截取模块和所述图像发送模块连接,用于采用预定的压缩算法对所述图像截取模块所截取的图像进行压缩,并由所述图像发送模块发送已压缩的图像。
在上述服务器中,所述图像发送单元根据在创建所述第一客户操作系统时所创建的唯一的客户操作系统标识,将所述图像截取模块所截取的图像发送到与所述第一客户操作系统相对应的客户端。
在上述服务器中,所述图像截取单元通过创建过渡资源来截取所述图像处理单元所处理的图像,其中,所述过渡资源是所述图像截取单元分配的可映射的系统内存资源,其用于将所述图像处理单元所处理的不可映射的图像数据复制到所述过渡资源以成为可映射的图像数据。
在上述服务器中,当所述客户端通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元以进行图像处理时,所述客户端将其屏幕属性发送给所述图像处理单元,且所述图像处理单元依据所述屏幕属性来进行图像处理,其中,所述图像截取单元所创建的过渡资源具有与所述客户端的屏幕属性相同的屏幕属性。
在上述服务器中,所述图像压缩单元根据所连接的客户端的类型来动态地选择压缩算法以对所述图像截取模块所截取的图像进行压缩。
在上述服务器中,在启动所述第一客户操作系统的过程中加载所述图像截取单元。
根据本发明的又一方面,提供了一种图像处理方法,其应用于一服务器,所述服务器包括:硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;主操作系统,设置在所述系统管理单元之上;至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;所述图像处理方法包括:在主操作系统中截取所述图像处理单元所处理的图像;和将所截取的图像发送到与所述第一客户操作系统相对应的客户端。
在上述图像处理方法中,进一步包括:压缩所述图像处理单元所处理的图像,其中,将已压缩的图像发送到与所述第一客户操作系统相对应的客户端。
在上述图像处理方法中,所述截取图像处理单元所处理的图像的步骤包括:启动所述第一客户操作系统;创建具有与所述客户端的屏幕属性相同的屏幕属性的过渡资源;和将所述图像处理单元所处理的图像拷贝到所述过渡资源。
在上述图像处理方法中,所述启动第一客户操作系统的步骤包括:创建所述第一客户操作系统的环境;和加载用于截取所述图像处理单元所处理的图像的装置。
通过本发明的服务器及其图像处理方法,能够在客户端硬件不做改变的情况下,仅在服务器端添加软件或硬件来解决对微软即将发布的RemoteFX技术的支持。
并且,通过本发明的服务器及其图像处理方法,扩展了RemoteFX的通用性,由于本发明的服务器及其图像处理方法,可以采用动态选择压缩算法,因此可以支持各式设备,如智能手机,平板电脑等。
此外,本发明的服务器及其图像处理方法在截取图像处理单元所处理的图像后可以利用图像处理单元进行硬件压缩,而不需要局限于微软的压缩方式,从而提高了压缩效率,并且可以支持多种压缩格式,适应性更强。
附图说明
图1是Windows HyperV服务器架构的示意图;
图2是示出了根据本发明实施例的服务器及其图像处理方法的示意图;
图3是示出了根据本发明实施例的服务器及其图像处理方法在WindowsHyperV服务器架构中的应用示例的示意图;
图4A到图4C是示出了根据本发明实施例的服务器及其图像处理方法中截取图像的具体示例的示意图;
图5是示出了根据本发明实施例的应用于Windows HyperV服务器的示例性图像处理方法的流程图。
具体实施方式
下面,将结合附图详细描述本发明的服务器及其图像处理方法的具体实施例。
根据本发明的实施例的一个方面,提供了一种服务器,其特征在于,包括:硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;主操作系统,设置在所述系统管理单元之上;至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;其中,所述主操作系统包括一图像截取模块,用于截取所述图像处理单元所处理的图像。
根据本发明的实施例的另一方面,提供了一种服务器,其特征在于,包括:硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;主操作系统,设置在所述系统管理单元之上;至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;其中,所述主操作系统包括:一图像截取模块,用于截取所述图像处理单元所处理的图像;和一图像发送模块,与所述图像截取模块连接,用于将所述图像截取模块所截取的图像发送到与所述第一客户操作系统相对应的客户端。
下面,将介绍本发明的实施例的服务器的一个具体示例,即WindowsHyperV服务器。图1是Windows HyperV服务器架构的示意图。如图1所示,Windows HyperV服务器架构的最底层为服务器硬件,即一台服务器或服务器群。在服务器硬件之上,是系统管理单元,也被称为Windows Hypervisor(系统管理)层。这里,Windows Hypervisor层又可以被称为虚拟机管理器或虚拟机监视器,其是一个基于Hypervisor(系统管理)的虚拟化产品。WindowsHypervisor层是一个存在于操作系统下面的软件层,直接位于硬件之上。该Windows Hypervisor层可以保证虚拟机最大可能的提高性能,并且可以使得它们以在真实机上运行的速度运行。并且,与比如需要内嵌设备驱动的vmware hypervisor之类相比较,Windows Hypervisor层不需要设备驱动,而是利用支持虚拟化的处理器,例如启动了AMD-V或者Intel VT的处理器,这也就是微内核和单内核的hypervisor区别之一。在Windows Hypervisor层之上,是服务器的主操作系统和客户操作系统。这里,主操作系统通常被称为父分区,且也可以被称为主机操作系统(host OS)或管理操作系统,其存放操作系统和Windows虚拟化组件,通常系统只有一个主操作系统。并且,客户操作系统通常被称为子分区,且也可以被称为客户端操作系统(guest OS)或虚拟机(Visual Machine),每个子分区即是一个虚拟机,当建立一个新的虚拟机的时候,也就建立了一个子分区。
在本发明的实施例中,主操作系统为安装在服务器上的Windows server2008 r2 sp1,并且其具有RemoteFX技术。客户操作系统可以有很多种,例如,客户操作系统可以为支持HyperV的操作系统(OS),比如win7,客户操作系统也可以是不支持HyperV的操作系统,比如WinXp,且客户操作系统还可以是Linux内核的虚拟机系统,比如Xen。在本发明的实施例的服务器及显示处理方法中,针对的是第一种子系统,即每个客户操作系统都是一个Win7子系统,以作为HyperV虚拟机,且每个客户操作系统也需要Windowsserver 2008 r2 sp1。在本发明的实施例的Windows HyperV服务器架构中,可以看到主操作系统的位置在客户操作系统的旁边,换句话说,主操作系统和客户操作系统是平级的,没有谁依附谁之上的关系。这样的架构的优势在于:客户操作系统可以直接和物理设备进行通信和数据交换。现在的CPU厂商,例如Intel和AMD都已经开放了相应的设备控制权,允许客户操作系统,即,虚拟机直接访问CPU和内存的一部分资源。这样,虚拟机访问硬件设备的速度将大大提高。因此,使用这样一套架构来构建虚拟机,并让虚拟机代替物理服务器提供服务,在负载增加时,只需要为虚拟机分配了足够的物理资源,就不必担心虚拟机的性能了。而且,这种架构也增加了整个虚拟化架构的稳定性。主操作系统的问题不会对客户操作系统产生直接的影响,因为它们没有上下关系,都是平级的
当客户端连接服务器时,客户端需要通过客户操作系统来使用服务器的硬件来进行操作。本领域技术人员可以知道,在服务器中会有一预先配置域用户,并且服务器会根据域用户中的客户端的情况为这些客户端来创建客户操作系统。因此,当客户端连接到服务器时,可能存在已经确定分配给该客户端的客户操作系统,这时,服务器获得客户端的标识信息,例如客户端ID、登录帐号的域用户名/密码,IP地址等,并依据之前在创建客户操作系统时的对应关系表,获得标识信息对应的客户操作系统,从而让对应的客户操作系统与客户端连接。或者,当客户端连接到服务器,且服务器没有找到确定分配给该客户端的客户操作系统时,服务器会从空闲的客户操作系统中指定一客户操作系统与客户端连接。又或者,如果没有空闲的客户操作系统存在,这时服务器便会新创建一客户操作系统,并使得该客户操作系统与客户端连接。这样,客户端与客户操作系统连接之后,客户端使用该客户操作系统(在本发明的实施例中为Win7子系统),就好像使用一台实际的具有Win7子系统的单机计算机一样。
在客户端连接到了客户操作系统之后,客户端就可以使用服务器的硬件单元。如上所述,客户端通过客户操作系统可以直接访问服务器的CPU和内存的一部分资源,将这类硬件单元称为第一类硬件单元,即客户端通过客户操作系统可以直接访问的服务器的硬件单元。此外,服务器的硬件单元还包括第二类硬件单元,如图像处理单元,当客户端系统访问服务器的该第二类硬件单元,需要通过客户操作系统并经由主操作系统才能进行访问。
RemoteFX技术是在服务器虚拟GPU来对与所述服务器连接的客户端提供桌面以及各种其它的图形图像,如上所述,这里由服务器的图像处理单元所处理的桌面或其它图形图像是经由主操作系统-客户操作系统的路径,通过RDP提供给客户端的。因此,如果要截取服务器所处理的图像,既可以在客户操作系统中进行截取,也可以在主操作系统中进行截取。
如果在客户操作系统进行截取的话,由于客户操作系统的图像也是在服务器的主操作系统中进行处理的,因此在客户操作系统截取屏幕的性能损失很大,并且由于客户操作系统内为虚拟的GPU,而不是服务器本身具有的GPU,因此无法利用GPU的加强的图形处理功能。
因此,本发明的实施例的服务器及其显示处理方法是在主操作系统中截取图像,并采用相应的压缩算法进行压缩后通过RDP发送到客户端。
图2是示出了根据本发明实施例的服务器及其图像处理方法的示意图。如图2所示,由于客户操作系统虽然可以直接访问服务器的硬件单元中的第一类硬件单元,例如CPU,但是不能够直接访问服务器的硬件单元中的第二类硬件单元,如GPU。因此,在主操作系统中加载图像截取模块。当客户操作系统需要访问GPU时,其通过主操作系统将对GPU的访问请求发送到GPU,这是,该图像截取模块获得客户操作系统对GPU的访问请求,并转发到GPU。此后,在GPU完成对图像的处理之后,该图像截取模块截取所处理的图像。这时,由于客户操作系统如果接收到所处理的图像,也需要经由服务器硬件单元中的网络接口之类的通信硬件发送给客户端,而如网络接口之类的通信硬件也属于第二类硬件单元,是客户操作系统不能直接访问的。因此,为了节省系统资源,在本发明的实施例的服务器及其图像处理方法中,图像截取模块并不将所截取的图像发送给客户操作系统,而是直接发送到与该客户操作系统对应的客户端。
图3是示出了根据本发明实施例的服务器及其图像处理方法在WindowsHyperV服务器架构中的应用示例的示意图。如图3所示,在本发明的实施例的服务器及其图像处理方法中,在主操作系统中加载显示用户态驱动(DisplayUM driver),即图像截取模块。当客户操作系统的应用程序需要使用服务器的GPU时,其将访问GPU的请求发送到客户操作系统的显示微端口,该过程与在计算机单机中访问GPU的过程相同。但由于客户操作系统本身不具有硬件GPU,因此其通过VSC(virtualization service client,虚拟化服务客户端)传送到主操作系统的VSP(virtualization service provider,虚拟化服务提供商)。这里,该VSC和VSP之间的通信是通过客户操作系统和主操作系统各自的VMBus(VM总线)实现的。随后,VSP在接收到客户操作系统访问GPU的请求后,将其传送到显示用户态驱动,且该显示用户态驱动将该请求进一步传送到GPU。之后,显示用户态驱动截取服务器的图像处理单元所处理的图像,从而采用相应的压缩算法压缩后通过RDP(remote desktop protocol,远程桌面协议)发送到客户端。
下面,将详细解释如果通过显示用户态驱动来截取在服务器的图像处理单元中处理的图像。
在如图1所示的Windows HyperV服务器架构中,在服务器的主操作系统中安装的是Windows server 2008 r2 sp1,在该服务器架构下,其桌面窗口管理器是RDVGM,即,采用名为Rdvgm.exe的应用程序来产生包括桌面在内的图形图像,以由客户端使用。以下,将由Rdvgm.exe产生的图像称为Rdvgm图像。这里,本领域技术人员可以理解,在Windows server 2008 r2 sp1下,该应用程序名为Rdvgm.exe,但在后续版本或其它操作系统的版本中,该应用程序的名称可能会有变化。
这里,显示用户态驱动通过截取用户态的方式来快速高效地获得Rdvgm图像,其具体原理如下。
显示用户态驱动创建与Rdvgm.exe所创建的图像的大小、格式相同的过渡资源(Staging Resource),这里,该过渡资源是由显示用户态驱动分配的系统内存资源,其通常用于将不可映射的资源拷贝到过渡资源上来,因为过渡资源是可以映射的。随后,在Rdvgm.exe更新图像时获得更新的矩形区,D3D运行时库(Direct3D runtime)需要在呈现(present)时将更新区的内容从源资源中拷贝到创建的过渡资源,其中,D3D运行时库是Direct3D运行时所需要的环境及相关的接口等。这里,当需要更新图像的某一部分或更新整个图像时,会发出一个呈现调用(用户态)完成此次图像的更新。并且,本领域技术人员可以理解,Rdvgm图像也相当于一个资源,在其中存储的是图像数据(不可见即不能得到其数据指针,该图像数据是不能映射的)。因此,在本发明的实施例的服务器及其图像处理方法中,创建一个过渡资源,以使得能够从用户态得到其图像数据指针,使得图像数据可以映射。
下面将结合图4A到图4C来描述根据本发明实施例的服务器及其图像处理方法中截取图像的具体示例。
图4A到图4C是示出了根据本发明实施例的服务器及其图像处理方法中截取图像的具体示例的示意图。如图4A所示,当Rdvgm图像初始化的时候,根据Rdvgm图像的属性,例如大小、色深、RGB格式(RGB红绿蓝)等创建与之相同的一个过渡资源。并且将过渡资源的图像初始化与Rdvgm图像相同。如图4A所示,例如,Rdvgm图像初始化为全蓝色,大小假设为1000×1000,则过渡资源也初始化为全蓝色,大小为1000×1000。创建好过渡资源,至此,初始化完毕。
从图4A到图4B的过程是由于图像发生变化,这时在图像左上角坐标(100,100)位置出现一个150×100大小的例如白色的矩形。呈现动作的发生代表着Rdvgm.exe正式将这个白色矩形更新到了图像上。
首先,显示用户态驱动获得更新区大小位置,即(100,100),(250,200)代表矩形左上和右下的坐标位置。当在Rdvgm.exe进行呈现动作时,将(100,100),(250,200)这个区域的图像从Rdvgm图像拷贝到过渡资源中,这样完成了图像的拷贝,图像截取完毕。
从图4B到图4C的过程与从图4A到图4B的过程一样,首先根据Rdvgm图像的变化得到Rdvgm.exe需要更新区域(800,800),(1000,1000)这个200×200大小的矩形。当Rdvgm.exe进行呈现动作时,把这个矩形区域图像从Rdvgm图像拷贝到过渡资源中。
Rdvgm图像通过Rdvgm.exe进行呈现动作而不断地更新,显示用户态驱动根据更新即可不断地获取最新的更新图像数据,这样就实现了实时地截取Rdvgm图像。
当屏幕的属性发生变化,比如大小变化时,显示用户态驱动程序需要重新创建与之相同的过渡资源,保持在大小、色深、RGB格式的一致。
根据本发明的又一方面,提供了一种图像处理方法,其应用于一服务器,所述服务器包括:硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;主操作系统,设置在所述系统管理单元之上;至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;所述图像处理方法包括:在主操作系统中截取所述图像处理单元所处理的图像;和将所截取的图像发送到与所述第一客户操作系统相对应的客户端。
下面,将结合如上述图1到图3所示的Windows HyperV服务器架构说明本发明的实施例的图像处理方法的具体示例。图5是示出了根据本发明实施例的应用于Windows HyperV服务器的示例性图像处理方法的流程图。如图5所示,该方法的全部流程均在服务器的主操作系统内进行。首先,在步骤S101,开始启动客户操作系统,即HyperV虚拟机。这里,如上所述,当客户端连接服务器时,该服务器依据预定策略指定一客户操作系统与该客户端相对应以由该客户端使用。其中,如上所述,该客户操作系统既可以是服务器中已经创建好的与该客户端对应的客户操作系统,也可以是临时从已创建好的客户操作系统中选出以用于该客户端的客户操作系统,并且也可以是为该客户端临时创建的新的客户操作系统,并且该客户操作系统支持RemoteFX技术。之后,在步骤S102,在开始了客户操作系统的启动时,启动Vmwp.exe,该Vmwp.exe用于创建客户操作系统的运行环境,也就是说,通过运行Vmwp.exe,便成功地创建了客户操作系统的运行环境。随后,在步骤S103,运行Rdvgm.exe,如上所述,该Rdvgm.exe是服务器端的Windowsserver 2008 r2 sp1操作系统用于绘制客户端的桌面的应用程序,其是Remotedesktop virtual graphic manager(远程桌面窗口管理器)的缩写,所有需要发送到所连接的客户端的包括桌面在内的图形图像均由该Rdvgm.exe进行绘制,并且同时,RemoteFX技术启用虚拟GPU进程,从而使得启用的每个客户操作系统都可以获得虚拟GPU的性能。然后,在步骤S104,加载如上所述的显示用户态驱动。用于在主操作系统中对图像处理单元所处理的图像进行截取。此时,在步骤S104中,还需要加载一些其它的程序,从而完成客户操作系统的启动过程,也就是说,通过步骤S101到S104,完成了客户操作系统的启动过程,这是,所连接的客户端就可以使用启动完成的客户操作系统来使用服务器的硬件单元。在步骤S105,创建与Rdvgm.exe的屏幕属性一致的过渡资源,这里,由于所连接的每个客户端的分辨率是不同的,因此,每个客户端通过所对应的客户操作系统将其屏幕的分辨率传送到Rdvgm.exe,因此,这里实际上是要保证所创建的过渡资源的屏幕属性与所连接的客户端的屏幕属性相一致。在步骤S106,判断创建是否成功。如果在步骤S106判断创建成功,则在步骤S107,由显示用户态驱动在图像更新区中积累Rdvgm.exe所产生的图像。这里,如上所述,图像的变化是一个持续不断的过程,而并不是每个变化都是需要在所处理的图像上体现出来的。并且,当需要更新图像的某一部分或更新整个图像时,Rdvgm.exe会发出一个呈现调用(用户态),即上文所述的Rdvgm.exe进行呈现动作,以完成此次图像的更新。因此,一个呈现调用或一个呈现动作就代表着在图像更新区中积累Rdvgm.exe所产生的图像的完成。而如果在步骤S106判断创建未成功,则整个流程结束。之后,在步骤S108,显示用户态驱动将在图像更新区中所积累的图像从Rdvgm.exe源拷贝到过渡资源,即,在收到Rdvgm.exe所发出的呈现调用的情况下,将从上个显现调用到该呈现调用期间所积累的图像拷贝到过渡资源。随后,在步骤S109,通知图像压缩模块和图像发送模块图像截取完毕,并在步骤S110,压缩并发送所截取的图像。随后,在步骤S111,通过Rdvgm.exe判断客户端的屏幕属性是否变化。如果在步骤S111判断出屏幕属性变化,则回到步骤S105,再次创建与客户端的屏幕分辨率一致的过渡资源,并重复之后的步骤S106到S110。如果在步骤S111,判断屏幕属性没有变化,则前进到步骤S112。在步骤S112,判断是否需要继续截取图像,如果在步骤S112判断需要继续截取图像,则前进到步骤S113,清空图像更新区,随后回到步骤S107,由显示用户态驱动继续积累图像更新区,并重复执行步骤S108到S110。否则,如果在步骤S112判断不需要继续截取图像,则整个流程结束。
本领域技术人员可以理解,当连接多个客户端时,则每个客户端都会对应一个客户操作系统,即HyperV虚拟机。但由于在服务器的主操作系统中仅运行一个Rdvgm程序,因此,需要找到主操作系统中每个Rdvgm进程与客户操作系统,即HyperV虚拟机之间的对应关系。在Windows HyperV服务器架构中,在客户操作系统的创建时需要创建一个唯一的标识,例如可以是客户操作系统的名称。比如child_win7_1,child_win7_2,等。如上所述,当客户操作系统开始启动时,主操作系统中的Vmwp.exe进程启动时,会根据支持RemoteFX的客户操作系统来启动Rdvgm.exe,该进程启动带有参数,比如该客户操作系统的桌面大小,该客户操作系统的名称等。因此获得Rdvgm.exe的进程ID与该客户操作系统的唯一标识绑定,从而获得了一一对应关系。
本领技术人员可以理解,虽然在上述描述中是以支持RemoteFX的Windows HyperV服务器架构和采用Windows server 2008 r2 sp1的主操作系统以及采用Win7的客户操作系统为示例来进行的,但本发明的实施例的服务器及其图像处理方法也可以应用于其它服务器架构及采用其它操作系统版本的主操作系统和客户操作系统,本发明的实施例并不意在对此进行限制。并且,相应地,随着服务器架构的修改和操作系统名称的不同,其中的应用程序名称也会有所不同,本领域技术人员可以理解,本发明的实施例的处理器及其图像处理方法可以等效地应用于此。
通过本发明的实施例的处理器及其图像处理方法,可以在服务器的主操作系统中截取第一手的客户操作系统桌面和其它图形图像,能够充分利用图像处理单元的性能并获得对RemoteFX技术的良好支持。并且,由于在截取图像处理单元所处理的图像之后可以利用GPU做压缩算法,提高了压缩效率,并且可以支持多种压缩格式,适应性更强。此外,所有客户操作系统的图像都在服务器截取并进行处理,易于管理。
本发明已经参考具体实施例进行了详细说明。然而,很明显,在不背离本发明的精神的情况下,本领域技术人员能够对实施例执行更改和替换。换句话说,本发明用说明的形式公开,而不是被限制地解释。要判断本发明的要旨,应该考虑所附的权利要求。
Claims (12)
1.一种服务器,其特征在于,包括:
硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;
系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;
主操作系统,设置在所述系统管理单元之上;
至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;
其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;
其中,所述主操作系统包括一图像截取模块,用于截取所述图像处理单元所处理的图像。
2.一种服务器,其特征在于,包括:
硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;
系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;
主操作系统,设置在所述系统管理单元之上;
至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;
其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;
其中,所述主操作系统包括:
一图像截取模块,用于截取所述图像处理单元所处理的图像;和
一图像发送模块,与所述图像截取模块连接,用于将所述图像截取模块所截取的图像发送到与所述第一客户操作系统相对应的客户端。
3.如权利要求2所述的服务器,其中,所述主操作系统进一步包括:
图像压缩模块,与所述图像截取模块和所述图像发送模块连接,用于采用预定的压缩算法对所述图像截取模块所截取的图像进行压缩,并由所述图像发送模块发送已压缩的图像。
4.如权利要求2所述的服务器,其中,所述图像发送单元根据在创建所述第一客户操作系统时所创建的唯一的客户操作系统标识,将所述图像截取模块所截取的图像发送到与所述第一客户操作系统相对应的客户端。
5.如权利要求2所述的服务器,其中,所述图像截取单元通过创建过渡资源来截取所述图像处理单元所处理的图像,其中,所述过渡资源是所述图像截取单元分配的可映射的系统内存资源,其用于将所述图像处理单元所处理的不可映射的图像数据复制到所述过渡资源以成为可映射的图像数据。
6.如权利要求5所述的服务器,其中,当所述客户端通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元以进行图像处理时,所述客户端将其屏幕属性发送给所述图像处理单元,且所述图像处理单元依据所述屏幕属性来进行图像处理,其中
所述图像截取单元所创建的过渡资源具有与所述客户端的屏幕属性相同的屏幕属性。
7.如权利要求2所述的服务器,其中,所述图像压缩单元根据所连接的客户端的类型来动态地选择压缩算法以对所述图像截取模块所截取的图像进行压缩。
8.如权利要求2所述的服务器,其中,在启动所述第一客户操作系统的过程中加载所述图像截取单元。
9.一种图像处理方法,其应用于一服务器,所述服务器包括:
硬件单元,所述硬件单元包括第一类硬件单元和第二类硬件单元,且第二类硬件单元包括一图像处理单元;
系统管理单元,设置在所述硬件单元之上,用于将第一类硬件单元虚拟为第一类虚拟硬件单元;
主操作系统,设置在所述系统管理单元之上;
至少一个客户操作系统,设置在所述系统管理单元之上,所述至少一个客户操作系统可以访问所述第一类虚拟硬件单元;
其中,当一客户端连接到所述服务器时,所述服务器依据预定策略指定第一客户操作系统与所述客户端相对应以由所述客户端使用,在所述客户端需要访问所述图像处理单元时,需要通过所述第一客户操作系统经由所述主操作系统访问所述图像处理单元;
所述图像处理方法包括:
在主操作系统中截取所述图像处理单元所处理的图像;和
将所截取的图像发送到与所述第一客户操作系统相对应的客户端。
10.如权利要求9所述的图像处理方法,进一步包括:压缩所述图像处理单元所处理的图像,其中,将已压缩的图像发送到与所述第一客户操作系统相对应的客户端。
11.如权利要求9所述的图像处理方法,其中,所述截取图像处理单元所处理的图像的步骤包括:
启动所述第一客户操作系统;
创建具有与所述客户端的屏幕属性相同的屏幕属性的过渡资源;和
将所述图像处理单元所处理的图像拷贝到所述过渡资源。
12.如权利要求11所述的图像处理方法,其中,所述启动第一客户操作系统的步骤包括:
创建所述第一客户操作系统的环境;和
加载用于截取所述图像处理单元所处理的图像的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105019665A CN102446341A (zh) | 2010-09-30 | 2010-09-30 | 服务器及其图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105019665A CN102446341A (zh) | 2010-09-30 | 2010-09-30 | 服务器及其图像处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102446341A true CN102446341A (zh) | 2012-05-09 |
Family
ID=46008822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105019665A Pending CN102446341A (zh) | 2010-09-30 | 2010-09-30 | 服务器及其图像处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102446341A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077697A (zh) * | 2012-12-28 | 2013-05-01 | 福建捷联电子有限公司 | 一种支持画面动态缩放满框显示的云端显示器 |
CN103631634A (zh) * | 2012-08-24 | 2014-03-12 | 中国电信股份有限公司 | 实现图形处理器虚拟化的方法与装置 |
CN103810021A (zh) * | 2014-02-19 | 2014-05-21 | 福建升腾资讯有限公司 | 一种vdi下基于宿主机的虚拟桌面显示方法及其系统 |
CN103858095A (zh) * | 2013-08-02 | 2014-06-11 | 华为技术有限公司 | 一种图像显示方法和装置 |
CN106775940A (zh) * | 2016-12-06 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种图形处理系统及虚拟化方法 |
CN107292807A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种图形合成方法、窗口设置方法及系统 |
CN107608787A (zh) * | 2017-08-28 | 2018-01-19 | 西安万像电子科技有限公司 | 服务器 |
WO2020199879A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 图像处理方法及计算机系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1746839A (zh) * | 2005-09-22 | 2006-03-15 | 北京网梯科技发展有限公司 | 在远端计算机上将本地计算机显示内容显示回放的方法 |
US20060125922A1 (en) * | 2004-12-10 | 2006-06-15 | Microsoft Corporation | System and method for processing raw image files |
CN101527690A (zh) * | 2009-04-13 | 2009-09-09 | 腾讯科技(北京)有限公司 | 一种截取动态图像的方法、系统及设备 |
TW200943169A (en) * | 2008-03-24 | 2009-10-16 | Hewlett Packard Development Co | Image-based remote access system |
-
2010
- 2010-09-30 CN CN2010105019665A patent/CN102446341A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060125922A1 (en) * | 2004-12-10 | 2006-06-15 | Microsoft Corporation | System and method for processing raw image files |
CN1746839A (zh) * | 2005-09-22 | 2006-03-15 | 北京网梯科技发展有限公司 | 在远端计算机上将本地计算机显示内容显示回放的方法 |
TW200943169A (en) * | 2008-03-24 | 2009-10-16 | Hewlett Packard Development Co | Image-based remote access system |
CN101527690A (zh) * | 2009-04-13 | 2009-09-09 | 腾讯科技(北京)有限公司 | 一种截取动态图像的方法、系统及设备 |
Non-Patent Citations (3)
Title |
---|
张宗飞: "VB中屏幕共享系统的设计与实现", 《计算机系统应用》 * |
张晓东 等: "基于ARM的嵌入式远程监控系统设计", 《现代电子技术》 * |
阎秀英 等: "基于Java的网络实时远程监控系统设计", 《计算机工程》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631634A (zh) * | 2012-08-24 | 2014-03-12 | 中国电信股份有限公司 | 实现图形处理器虚拟化的方法与装置 |
CN103631634B (zh) * | 2012-08-24 | 2017-07-25 | 中国电信股份有限公司 | 实现图形处理器虚拟化的方法与装置 |
CN103077697B (zh) * | 2012-12-28 | 2015-08-05 | 福建捷联电子有限公司 | 一种支持画面动态缩放满框显示的云端显示器 |
CN103077697A (zh) * | 2012-12-28 | 2013-05-01 | 福建捷联电子有限公司 | 一种支持画面动态缩放满框显示的云端显示器 |
US10320886B2 (en) | 2013-08-02 | 2019-06-11 | Huawei Technologies Co., Ltd. | Image display method and apparatus |
CN103858095A (zh) * | 2013-08-02 | 2014-06-11 | 华为技术有限公司 | 一种图像显示方法和装置 |
CN103858095B (zh) * | 2013-08-02 | 2015-08-19 | 华为技术有限公司 | 一种图像显示方法和装置 |
CN103810021A (zh) * | 2014-02-19 | 2014-05-21 | 福建升腾资讯有限公司 | 一种vdi下基于宿主机的虚拟桌面显示方法及其系统 |
CN107292807A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种图形合成方法、窗口设置方法及系统 |
CN107292807B (zh) * | 2016-03-31 | 2020-12-04 | 阿里巴巴集团控股有限公司 | 一种图形合成方法、窗口设置方法及系统 |
CN106775940A (zh) * | 2016-12-06 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种图形处理系统及虚拟化方法 |
CN107608787A (zh) * | 2017-08-28 | 2018-01-19 | 西安万像电子科技有限公司 | 服务器 |
WO2020199879A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 图像处理方法及计算机系统 |
CN111768330A (zh) * | 2019-03-30 | 2020-10-13 | 华为技术有限公司 | 图像处理方法及计算机系统 |
US11908040B2 (en) | 2019-03-30 | 2024-02-20 | Huawei Technologies Co., Ltd. | Image processing method and computer system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102446341A (zh) | 服务器及其图像处理方法 | |
US8527679B2 (en) | Apparatus and method for adaptation of input/output interface in virtualization environment | |
CN111488196B (zh) | 渲染方法及装置、存储介质、处理器 | |
US8274518B2 (en) | Systems and methods for virtualizing graphics subsystems | |
CN104536802B (zh) | 一种实现应用调用的方法及虚拟机 | |
US8463980B2 (en) | Shared memory between child and parent partitions | |
CN106873932B (zh) | 一种Android系统服务端、远程桌面图像重定向方法及系统 | |
CN102053871B (zh) | 一种应用程序图像的显示方法和装置 | |
US20120075314A1 (en) | Prevention of DOS Attack by a Rogue Graphics Application | |
WO2022041507A1 (zh) | 3d渲染方法及系统 | |
CN110557624A (zh) | 数据传输方法、装置及服务器 | |
CN112000439A (zh) | 一种实现云原生应用管理虚拟机的方法 | |
CN113240571A (zh) | 图像处理系统、方法 | |
KR20120068573A (ko) | 심리스 애플리케이션 통합 장치 및 방법 | |
CN110545415A (zh) | 数据传输方法、装置及服务器 | |
CN110362375A (zh) | 桌面数据的显示方法、装置、设备和存储介质 | |
CN112799801B (zh) | 一种模拟鼠标指针绘制方法、装置、设备和介质 | |
US20150381766A1 (en) | Application transfer system, application transfer method, terminal, and program | |
CN110941408B (zh) | 一种kvm虚拟机图形界面输出方法及装置 | |
CN103246544A (zh) | 虚拟硬件驱动终端及驱动方法 | |
CN114398018A (zh) | 画面显示方法、装置、存储介质及电子设备 | |
CN109710352B (zh) | 一种开机动画的显示方法及装置 | |
CN114637559B (zh) | 显示开机界面的方法、系统、设备及存储介质 | |
CN112486624B (zh) | 一种多个虚拟机系统的显示方法及物理机 | |
CN115546008B (zh) | 一种gpu虚拟化管理系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120509 |
|
RJ01 | Rejection of invention patent application after publication |