亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

服務(wù)器及其圖像處理方法

文檔序號:6333386閱讀:660來源:國知局
專利名稱:服務(wù)器及其圖像處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及服務(wù)器及其圖像處理方法,具體地說,涉及基于WindOWS2008r2 Spl RemoteFX的服務(wù)器及其圖像處理方法。
背景技術(shù)
微軟將發(fā)布的Windows server 2008r2的Spl和Windows 7的Spl,其中將新增 RemoteFX技術(shù),這是為了提升Win7的系統(tǒng)虛擬化性能,其中,RemoteFX允許用戶在遠(yuǎn)程 Windows Aero環(huán)境下工作、觀看視頻和Silverlight動畫,流暢運行3D應(yīng)用程序,實現(xiàn)遠(yuǎn)程訪問計算機的體驗和本地相差無幾。RemoteFX的原理就是將圖像處理單元(GPU)虛擬化提供給每一個虛擬桌面,也就是說每個虛擬機都可以獲得獨立的虛擬GPU,從而可以獲得各種各樣的圖形加速能力,進而獲得執(zhí)行各種視頻、2D、3D圖形圖像以及媒體的處理能力。RemoteFX技術(shù)通常用于遠(yuǎn)程桌面中,對于瘦客戶端,尤其是沒有顯示處理能力的超瘦客戶端,采用RemoteFX虛擬GPU技術(shù)在服務(wù)器渲染桌面AERO效果或3D圖形圖像等。但是,在RemoteFX技術(shù)中,服務(wù)器渲染的圖像是經(jīng)過微軟自定義的編碼壓縮算法之后向客戶端傳輸,微軟希望客戶端有相應(yīng)的硬件進行解碼。由于該算法非通用算法,因此在現(xiàn)在的客戶端上就必須添加該硬件,對于支持采用其它壓縮算法的客戶端必須向該算法轉(zhuǎn)變,從而給用戶的使用帶來了不便,并且增加了客戶端的復(fù)雜度,進而提高了客戶端的制造成本。另外,也可以直接用客戶端的CPU來直接解碼,但這種方式并不可取,因為對客戶端的CPU負(fù)載太大。例如,通常的thinclient ARM只有600M,本來負(fù)擔(dān)就不小,再加上軟解碼功能,性能就會大幅下降。因此,需要在服務(wù)器端截取圖像處理單元所處理的圖像以支持并簡化與服務(wù)器連接的客戶端對于RemoteFX技術(shù)的使用的方案。

發(fā)明內(nèi)容
因此,針對上述現(xiàn)有技術(shù)中存在的問題和需求做出本發(fā)明。本發(fā)明的目的在于提供一種服務(wù)器及其圖像處理方法,其在服務(wù)器的主操作系統(tǒng)中直接截取圖像處理單元所處理的圖像以由客戶端使用,從而能夠充分利用圖像處理單元的性能并支持RemoteFX技術(shù)。本發(fā)明的目的在于提供一種服務(wù)器及其圖像處理方法,其在服務(wù)器的主操作系統(tǒng)中直接截取圖像處理單元所處理的圖像,并直接在服務(wù)器端做好壓縮并通過RDP或其他私有協(xié)議送到客戶端,克服現(xiàn)有技術(shù)中需要在客戶端添加解碼硬件以應(yīng)用RemoteFX技術(shù)的問題。根據(jù)本發(fā)明的一個方面,提供了一種服務(wù)器,其特征在于,包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元; 系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元;其中,所述主操作系統(tǒng)包括一圖像截取模塊,用于截取所述圖像處理單元所處理的圖像。
根據(jù)本發(fā)明的另一方面,提供了一種服務(wù)器,其特征在于,包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元; 系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元;其中,所述主操作系統(tǒng)包括一圖像截取模塊,用于截取所述圖像處理單元所處理的圖像;和一圖像發(fā)送模塊, 與所述圖像截取模塊連接,用于將所述圖像截取模塊所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。在上述服務(wù)器中,所述主操作系統(tǒng)進一步包括圖像壓縮模塊,與所述圖像截取模塊和所述圖像發(fā)送模塊連接,用于采用預(yù)定的壓縮算法對所述圖像截取模塊所截取的圖像進行壓縮,并由所述圖像發(fā)送模塊發(fā)送已壓縮的圖像。在上述服務(wù)器中,所述圖像發(fā)送單元根據(jù)在創(chuàng)建所述第一客戶操作系統(tǒng)時所創(chuàng)建的唯一的客戶操作系統(tǒng)標(biāo)識,將所述圖像截取模塊所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。在上述服務(wù)器中,所述圖像截取單元通過創(chuàng)建過渡資源來截取所述圖像處理單元所處理的圖像,其中,所述過渡資源是所述圖像截取單元分配的可映射的系統(tǒng)內(nèi)存資源,其用于將所述圖像處理單元所處理的不可映射的圖像數(shù)據(jù)復(fù)制到所述過渡資源以成為可映射的圖像數(shù)據(jù)。在上述服務(wù)器中,當(dāng)所述客戶端通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元以進行圖像處理時,所述客戶端將其屏幕屬性發(fā)送給所述圖像處理單元,且所述圖像處理單元依據(jù)所述屏幕屬性來進行圖像處理,其中,所述圖像截取單元所創(chuàng)建的過渡資源具有與所述客戶端的屏幕屬性相同的屏幕屬性。在上述服務(wù)器中,所述圖像壓縮單元根據(jù)所連接的客戶端的類型來動態(tài)地選擇壓縮算法以對所述圖像截取模塊所截取的圖像進行壓縮。在上述服務(wù)器中,在啟動所述第一客戶操作系統(tǒng)的過程中加載所述圖像截取單兀。根據(jù)本發(fā)明的又一方面,提供了一種圖像處理方法,其應(yīng)用于一服務(wù)器,所述服務(wù)器包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元;所述圖像處理方法包括在主操作系統(tǒng)中截取所述圖像處理單元所處理的圖像;和將所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。在上述圖像處理方法中,進一步包括壓縮所述圖像處理單元所處理的圖像,其中,將已壓縮的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。在上述圖像處理方法中,所述截取圖像處理單元所處理的圖像的步驟包括啟動所述第一客戶操作系統(tǒng);創(chuàng)建具有與所述客戶端的屏幕屬性相同的屏幕屬性的過渡資源; 和將所述圖像處理單元所處理的圖像拷貝到所述過渡資源。在上述圖像處理方法中,所述啟動第一客戶操作系統(tǒng)的步驟包括創(chuàng)建所述第一客戶操作系統(tǒng)的環(huán)境;和加載用于截取所述圖像處理單元所處理的圖像的裝置。通過本發(fā)明的服務(wù)器及其圖像處理方法,能夠在客戶端硬件不做改變的情況下, 僅在服務(wù)器端添加軟件或硬件來解決對微軟即將發(fā)布的RemoteFX技術(shù)的支持。并且,通過本發(fā)明的服務(wù)器及其圖像處理方法,擴展了 RemoteFX的通用性,由于本發(fā)明的服務(wù)器及其圖像處理方法,可以采用動態(tài)選擇壓縮算法,因此可以支持各式設(shè)備, 如智能手機,平板電腦等。此外,本發(fā)明的服務(wù)器及其圖像處理方法在截取圖像處理單元所處理的圖像后可以利用圖像處理單元進行硬件壓縮,而不需要局限于微軟的壓縮方式,從而提高了壓縮效率,并且可以支持多種壓縮格式,適應(yīng)性更強。


圖1是Windows HyperV服務(wù)器架構(gòu)的示意圖;圖2是示出了根據(jù)本發(fā)明實施例的服務(wù)器及其圖像處理方法的示意圖;圖3是示出了根據(jù)本發(fā)明實施例的服務(wù)器及其圖像處理方法在Windows HyperV 服務(wù)器架構(gòu)中的應(yīng)用示例的示意圖;圖4A到圖4C是示出了根據(jù)本發(fā)明實施例的服務(wù)器及其圖像處理方法中截取圖像的具體示例的示意圖;圖5是示出了根據(jù)本發(fā)明實施例的應(yīng)用于Windows HyperV服務(wù)器的示例性圖像處理方法的流程圖。
具體實施例方式下面,將結(jié)合附圖詳細(xì)描述本發(fā)明的服務(wù)器及其圖像處理方法的具體實施例。根據(jù)本發(fā)明的實施例的一個方面,提供了一種服務(wù)器,其特征在于,包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元;其中,所述主操作系統(tǒng)包括一圖像截取模塊,用于截取所述圖像處理單元所處理的圖像。根據(jù)本發(fā)明的實施例的另一方面,提供了一種服務(wù)器,其特征在于,包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元;其中,所述主操作系統(tǒng)包括一圖像截取模塊,用于截取所述圖像處理單元所處理的圖像;和一圖像發(fā)送模塊,與所述圖像截取模塊連接,用于將所述圖像截取模塊所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。下面,將介紹本發(fā)明的實施例的服務(wù)器的一個具體示例,即Windows HyperV服務(wù)器。圖1是Windows HyperV服務(wù)器架構(gòu)的示意圖。如圖1所示,Windows HyperV服務(wù)器架構(gòu)的最底層為服務(wù)器硬件,即一臺服務(wù)器或服務(wù)器群。在服務(wù)器硬件之上,是系統(tǒng)管理單元,也被稱為Windows Hypervisor(系統(tǒng)管理)層。這里,Windows Hypervisor層又可以被稱為虛擬機管理器或虛擬機監(jiān)視器,其是一個基于Hypervisor (系統(tǒng)管理)的虛擬化產(chǎn)品。Windows Hypervisor層是一個存在于操作系統(tǒng)下面的軟件層,直接位于硬件之上。該 Windows Hypervisor層可以保證虛擬機最大可能的提高性能,并且可以使得它們以在真實機上運行的速度運行。并且,與比如需要內(nèi)嵌設(shè)備驅(qū)動的vmware hypervisor之類相比較, Windows Hypervisor層不需要設(shè)備驅(qū)動,而是利用支持虛擬化的處理器,例如啟動了AMD-V 或者Intel VT的處理器,這也就是微內(nèi)核和單內(nèi)核的hypervisor區(qū)別之一。在Windows Hypervisor層之上,是服務(wù)器的主操作系統(tǒng)和客戶操作系統(tǒng)。這里,主操作系統(tǒng)通常被稱為父分區(qū),且也可以被稱為主機操作系統(tǒng)(host OS)或管理操作系統(tǒng),其存放操作系統(tǒng)和 Windows虛擬化組件,通常系統(tǒng)只有一個主操作系統(tǒng)。并且,客戶操作系統(tǒng)通常被稱為子分區(qū),且也可以被稱為客戶端操作系統(tǒng)(guest OS)或虛擬機(Visual Machine),每個子分區(qū)即是一個虛擬機,當(dāng)建立一個新的虛擬機的時候,也就建立了一個子分區(qū)。在本發(fā)明的實施例中,主操作系統(tǒng)為安裝在服務(wù)器上的Windows server2008 r2 sp 1,并且其具有RemoteFX技術(shù)??蛻舨僮飨到y(tǒng)可以有很多種,例如,客戶操作系統(tǒng)可以為支持HyperV的操作系統(tǒng)(OS),比如win7,客戶操作系統(tǒng)也可以是不支持HyperV的操作系統(tǒng),比如WinXp,且客戶操作系統(tǒng)還可以是Linux內(nèi)核的虛擬機系統(tǒng),比如Xen。在本發(fā)明的實施例的服務(wù)器及顯示處理方法中,針對的是第一種子系統(tǒng),即每個客戶操作系統(tǒng)都是一個Win7子系統(tǒng),以作為HyperV虛擬機,且每個客戶操作系統(tǒng)也需要Windows server 2008 r2 spl0在本發(fā)明的實施例的Windows HyperV服務(wù)器架構(gòu)中,可以看到主操作系統(tǒng)的位置在客戶操作系統(tǒng)的旁邊,換句話說,主操作系統(tǒng)和客戶操作系統(tǒng)是平級的,沒有誰依附誰之上的關(guān)系。這樣的架構(gòu)的優(yōu)勢在于客戶操作系統(tǒng)可以直接和物理設(shè)備進行通信和數(shù)據(jù)交換。現(xiàn)在的CPU廠商,例如Intel和AMD都已經(jīng)開放了相應(yīng)的設(shè)備控制權(quán),允許客戶操作系統(tǒng),即,虛擬機直接訪問CPU和內(nèi)存的一部分資源。這樣,虛擬機訪問硬件設(shè)備的速度將大大提高。因此,使用這樣一套架構(gòu)來構(gòu)建虛擬機,并讓虛擬機代替物理服務(wù)器提供服務(wù),在負(fù)載增加時,只需要為虛擬機分配了足夠的物理資源,就不必?fù)?dān)心虛擬機的性能了。而且, 這種架構(gòu)也增加了整個虛擬化架構(gòu)的穩(wěn)定性。主操作系統(tǒng)的問題不會對客戶操作系統(tǒng)產(chǎn)生直接的影響,因為它們沒有上下關(guān)系,都是平級的當(dāng)客戶端連接服務(wù)器時,客戶端需要通過客戶操作系統(tǒng)來使用服務(wù)器的硬件來進行操作。本領(lǐng)域技術(shù)人員可以知道,在服務(wù)器中會有一預(yù)先配置域用戶,并且服務(wù)器會根據(jù)域用戶中的客戶端的情況為這些客戶端來創(chuàng)建客戶操作系統(tǒng)。因此,當(dāng)客戶端連接到服務(wù)器時,可能存在已經(jīng)確定分配給該客戶端的客戶操作系統(tǒng),這時,服務(wù)器獲得客戶端的標(biāo)識信息,例如客戶 端ID、登錄帳號的域用戶名/密碼,IP地址等,并依據(jù)之前在創(chuàng)建客戶操作系統(tǒng)時的對應(yīng)關(guān)系表,獲得標(biāo)識信息對應(yīng)的客戶操作系統(tǒng),從而讓對應(yīng)的客戶操作系統(tǒng)與客戶端連接?;蛘?,當(dāng)客戶端連接到服務(wù)器,且服務(wù)器沒有找到確定分配給該客戶端的客戶操作系統(tǒng)時,服務(wù)器會從空閑的客戶操作系統(tǒng)中指定一客戶操作系統(tǒng)與客戶端連接 。又或者,如果沒有空閑的客戶操作系統(tǒng)存在,這時服務(wù)器便會新創(chuàng)建一客戶操作系統(tǒng),并使得該客戶操作系統(tǒng)與客戶端連接。這樣,客戶端與客戶操作系統(tǒng)連接之后,客戶端使用該客戶操作系統(tǒng)(在本發(fā)明的實施例中為Win7子系統(tǒng)),就好像使用一臺實際的具有Win7子系統(tǒng)的單機計算機一樣。在客戶端連接到了客戶操作系統(tǒng)之后,客戶端就可以使用服務(wù)器的硬件單元。如上所述,客戶端通過客戶操作系統(tǒng)可以直接訪問服務(wù)器的CPU和內(nèi)存的一部分資源,將這類硬件單元稱為第一類硬件單元,即客戶端通過客戶操作系統(tǒng)可以直接訪問的服務(wù)器的硬件單元。此外,服務(wù)器的硬件單元還包括第二類硬件單元,如圖像處理單元,當(dāng)客戶端系統(tǒng)訪問服務(wù)器的該第二類硬件單元,需要通過客戶操作系統(tǒng)并經(jīng)由主操作系統(tǒng)才能進行訪問。RemoteFX技術(shù)是在服務(wù)器虛擬GPU來對與所述服務(wù)器連接的客戶端提供桌面以及各種其它的圖形圖像,如上所述,這里由服務(wù)器的圖像處理單元所處理的桌面或其它圖形圖像是經(jīng)由主操作系統(tǒng)_客戶操作系統(tǒng)的路徑,通過RDP提供給客戶端的。因此,如果要截取服務(wù)器所處理的圖像,既可以在客戶操作系統(tǒng)中進行截取,也可以在主操作系統(tǒng)中進行截取。如果在客戶操作系統(tǒng)進行截取的話,由于客戶操作系統(tǒng)的圖像也是在服務(wù)器的主操作系統(tǒng)中進行處理的,因此在客戶操作系統(tǒng)截取屏幕的性能損失很大,并且由于客戶操作系統(tǒng)內(nèi)為虛擬的GPU,而不是服務(wù)器本身具有的GPU,因此無法利用GPU的加強的圖形處理功能。因此,本發(fā)明的實施例的服務(wù)器及其顯示處理方法是在主操作系統(tǒng)中截取圖像, 并采用相應(yīng)的壓縮算法進行壓縮后通過RDP發(fā)送到客戶端。圖2是示出了根據(jù)本發(fā)明實施例的服務(wù)器及其圖像處理方法的示意圖。如圖2 所示,由于客戶操作系統(tǒng)雖然可以直接訪問服務(wù)器的硬件單元中的第一類硬件單元,例如 CPU,但是不能夠直接訪問服務(wù)器的硬件單元中的第二類硬件單元,如GPU。因此,在主操作系統(tǒng)中加載圖像截取模塊。當(dāng)客戶操作系統(tǒng)需要訪問GPU時,其通過主操作系統(tǒng)將對GPU
8的訪問請求發(fā)送到GPU,這是,該圖像截取模塊獲得客戶操作系統(tǒng)對GPU的訪問請求,并轉(zhuǎn)發(fā)到GPU。此后,在GPU完成對圖像的處理之后,該圖像截取模塊截取所處理的圖像。這時, 由于客戶操作系統(tǒng)如果接收到所處理的圖像,也需要經(jīng)由服務(wù)器硬件單元中的網(wǎng)絡(luò)接口之類的通信硬件發(fā)送給客戶端,而如網(wǎng)絡(luò)接口之類的通信硬件也屬于第二類硬件單元,是客戶操作系統(tǒng)不能直接訪問的。因此,為了節(jié)省系統(tǒng)資源,在本發(fā)明的實施例的服務(wù)器及其圖像處理方法中,圖像截取模塊并不將所截取的圖像發(fā)送給客戶操作系統(tǒng),而是直接發(fā)送到與該客戶操作系統(tǒng)對應(yīng)的客戶端。圖3是示出了根據(jù)本發(fā)明實施例的服務(wù)器及其圖像處理方法在Windows HyperV 服務(wù)器架構(gòu)中的應(yīng)用示例的示意圖。如圖3所示,在本發(fā)明的實施例的服務(wù)器及其圖像處理方法中,在主操作系統(tǒng)中加載顯示用戶態(tài)驅(qū)動(Display UM driver),即圖像截取模塊。 當(dāng)客戶操作系統(tǒng)的應(yīng)用程序需要使用服務(wù)器的GPU時,其將訪問GPU的請求發(fā)送到客戶操作系統(tǒng)的顯示微端口,該過程與在計算機單機中訪問GPU的過程相同。但由于客戶操作系統(tǒng)本身不具有硬件GPU,因此其通過VSC(visualization service client,虛擬化服務(wù)客戶端)傳送到主操作系統(tǒng)的VSP (visualization service provider,虛擬化服務(wù)提供商)。這里,該VSC和VSP之間的通信是通過客戶操作系統(tǒng)和主操作系統(tǒng)各自的VMBus (VM總線)實現(xiàn)的。隨后,VSP在接收到客戶操作系統(tǒng)訪問GPU的請求后,將其傳送到顯示用戶態(tài)驅(qū)動,且該顯示用戶態(tài)驅(qū)動將該請求進一步傳送到GPU。之后,顯示用戶態(tài)驅(qū)動截取服務(wù)器的圖像處理單元所處理的圖像,從而采用相應(yīng)的壓縮算法壓縮后通過RDP (remote desktop protocol,遠(yuǎn)程桌面協(xié)議)發(fā)送到客戶端。下面,將詳細(xì)解釋如果通過顯示用戶態(tài)驅(qū)動來截取在服務(wù)器的圖像處理單元中處理的圖像。在如圖1所示的Windows HyperV服務(wù)器架構(gòu)中,在服務(wù)器的主操作系統(tǒng)中安裝的是Windows server 2008 r2 spl,在該服務(wù)器架構(gòu)下,其桌面窗口管理器是RDVGM,S卩,采用名為Rdvgm. exe的應(yīng)用程序來產(chǎn)生包括桌面在內(nèi)的圖形圖像,以由客戶端使用。以下, 將由Rdvgm. exe產(chǎn)生的圖像稱為Rdvgm圖像。這里,本領(lǐng)域技術(shù)人員可以理解,在Windows server 2008 r2 spl下,該應(yīng)用程序名為Rdvgm. exe,但在后續(xù)版本或其它操作系統(tǒng)的版本中,該應(yīng)用程序的名稱可能會有變化。這里,顯示用戶態(tài)驅(qū)動通過截取用戶態(tài)的方式來快速高效地獲得Rdvgm圖像,其具體原理如下。顯示用戶態(tài)驅(qū)動創(chuàng)建與Rdvgm. exe所創(chuàng)建的圖像的大小、格式相同的過渡資源 (Staging Resource),這里,該過渡資源是由顯示用戶態(tài)驅(qū)動分配的系統(tǒng)內(nèi)存資源,其通常用于將不可映射的資源拷貝到過渡資源上來,因為過渡資源是可以映射的。隨后,在 Rdvgm. exe更新圖像時獲得更新的矩形區(qū),D3D運行時庫(Direct3D runtime)需要在呈現(xiàn)(present)時將更新區(qū)的內(nèi)容從源資源中拷貝到創(chuàng)建的過渡資源,其中,D3D運行時庫是 Direct3D運行時所需要的環(huán)境及相關(guān)的接口等。這里,當(dāng)需要更新圖像的某一部分或更新整個圖像時,會發(fā)出一個呈現(xiàn)調(diào)用(用戶態(tài))完成此次圖像的更新。并且,本領(lǐng)域技術(shù)人員可以理解,Rdvgm圖像也相當(dāng)于一個資源,在其中存儲的是圖像數(shù)據(jù)(不可見即不能得到其數(shù)據(jù)指針,該圖像數(shù)據(jù)是不能映射的)。因此,在本發(fā)明的實施例的服務(wù)器及其圖像處理方法中,創(chuàng)建一個過渡資源,以使得能夠從用戶態(tài)得到其圖像數(shù)據(jù)指針,使得圖像數(shù)據(jù)可以映
下面將結(jié)合圖4A到圖4C來描述根據(jù)本發(fā)明實施例的服務(wù)器及其圖像處理方法中截取圖像的具體示例。圖4A到圖4C是示出了根據(jù)本發(fā)明實施例的服務(wù)器及其圖像處理方法中截取圖像的具體示例的示意圖。如圖4A所示,當(dāng)Rdvgm圖像初始化的時候,根據(jù)Rdvgm圖像的屬性, 例如大小、色深、RGB格式(RGB紅綠藍(lán))等創(chuàng)建與之相同的一個過渡資源。并且將過渡資源的圖像初始化與Rdvgm圖像相同。如圖4A所示,例如,Rdvgm圖像初始化為全藍(lán)色,大小假設(shè)為1000X 1000,則過渡資源也初始化為全藍(lán)色,大小為1000X1000。創(chuàng)建好過渡資源, 至此,初始化完畢。從圖4A到圖4B的過程是由于圖像發(fā)生變化,這時在圖像左上角坐標(biāo)(100,100) 位置出現(xiàn)一個150X 100大小的例如白色的矩形。呈現(xiàn)動作的發(fā)生代表著Rdvgm. exe正式將這個白色矩形更新到了圖像上。首先,顯示用戶態(tài)驅(qū)動獲得更新區(qū)大小位置,S卩(100,100),(250,200)代表矩形左上和右下的坐標(biāo)位置。當(dāng)在Rdvgm. exe進行呈現(xiàn)動作時,將(100,100),(250,200)這個區(qū)域的圖像從Rdvgm圖像拷貝到過渡資源中,這樣完成了圖像的拷貝,圖像截取完畢。從圖4B到圖4C的過程與從圖4A到圖4B的過程一樣,首先根據(jù)Rdvgm圖像的變化得到Rdvgm. exe需要更新區(qū)域(800,800),(1000,1000)這個200X200大小的矩形。當(dāng) Rdvgm. exe進行呈現(xiàn)動作時,把這個矩形區(qū)域圖像從Rdvgm圖像拷貝到過渡資源中。Rdvgm圖像通過Rdvgm. exe進行呈現(xiàn)動作而不斷地更新,顯示用戶態(tài)驅(qū)動根據(jù)更新即可不斷地獲取最新的更新圖像數(shù)據(jù),這樣就實現(xiàn)了實時地截取Rdvgm圖像。當(dāng)屏幕的屬性發(fā)生變化,比如大小變化時,顯示用戶態(tài)驅(qū)動程序需要重新創(chuàng)建與之相同的過渡資源,保持在大小、色深、RGB格式的一致。根據(jù)本發(fā)明的又一方面,提供了一種圖像處理方法,其應(yīng)用于一服務(wù)器,所述服務(wù)器包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元;所述圖像處理方法包括在主操作系統(tǒng)中截取所述圖像處理單元所處理的圖像;和將所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。下面,將結(jié)合如上述圖1到圖3所示的Windows HyperV服務(wù)器架構(gòu)說明本發(fā)明的實施例的圖像處理方法的具體示例。圖5是示出了根據(jù)本發(fā)明實施例的應(yīng)用于Windows HyperV服務(wù)器的示例性圖像處理方法的流程圖。如圖5所示,該方法的全部流程均在服務(wù)器的主操作系統(tǒng)內(nèi)進行。首先,在步驟S101,開始啟動客戶操作系統(tǒng),即HyperV虛擬機。這里,如上所述,當(dāng)客戶端連接服務(wù)器時,該服務(wù)器依據(jù)預(yù)定策略指定一客戶操作系統(tǒng)與該客戶端相對應(yīng)以由該客戶端使用。其中,如上所述,該客戶操作系統(tǒng)既可以是服務(wù)器中已經(jīng)創(chuàng)建好的與該客戶端對應(yīng)的客戶操作系統(tǒng),也可以是臨時從已創(chuàng)建好的客戶操作系統(tǒng)中選出以用于該客戶端的客戶操作系統(tǒng),并且也可以是為該客戶端臨時創(chuàng)建的新的客戶操作系統(tǒng),并且該客戶操作系統(tǒng)支持RemoteFX技術(shù)。之后,在步驟S102,在開始了客戶操作系統(tǒng)的啟動時,啟動Vmwp. exe,該Vmwp. exe用于創(chuàng)建客戶操作系統(tǒng)的運行環(huán)境,也就是說,通過運行Vmwp. exe,便成功地創(chuàng)建了客戶操作系統(tǒng)的運行環(huán)境。隨后,在步驟S103,運行Rdvgm. exe,如上所述,該Rdvgm. exe是服務(wù)器端的Windows server 2008 r2 spl操作系統(tǒng)用于繪制客戶端的桌面的應(yīng)用程序,其是Remote desktop virtual graphic manager (遠(yuǎn)程桌面窗口管理器)的縮寫,所有需要發(fā)送到所連接的客戶端的包括桌面在內(nèi)的圖形圖像均由該 Rdvgm. exe進行繪制,并且同時,RemoteFX技術(shù)啟用虛擬GPU進程,從而使得啟用的每個客戶操作系統(tǒng)都可以獲得虛擬GPU的性能。然后,在步驟S104,加載如上所述的顯示用戶態(tài)驅(qū)動。用于在主操作系統(tǒng)中對圖像處理單元所處理的圖像進行截取。此時,在步驟S104中, 還需要加載一些其它的程序,從而完成客戶操作系統(tǒng)的啟動過程,也就是說,通過步驟SlOl 到S104,完成了客戶操作系統(tǒng)的啟動過程,這是,所連接的客戶端就可以使用啟動完成的客戶操作系統(tǒng)來使用服務(wù)器的硬件單元。在步驟S105,創(chuàng)建與Rdvgm. exe的屏幕屬性一致的過渡資源,這里,由于所連接的每個客戶端的分辨率是不同的,因此,每個客戶端通過所對應(yīng)的客戶操作系統(tǒng)將其屏幕的分辨率傳送到Rdvgm. exe,因此,這里實際上是要保證所創(chuàng)建的過渡資源的屏幕屬性與所連接的客戶端的屏幕屬性相一致。在步驟S106,判斷創(chuàng)建是否成功。如果在步驟S106判斷創(chuàng)建成功,則在步驟S107,由顯示用戶態(tài)驅(qū)動在圖像更新區(qū)中積累Rdvgm. exe所產(chǎn)生的圖像。這里,如上所述,圖像的變化是一個持續(xù)不斷的過程,而并不是每個變化都是需要在所處理的圖像上體現(xiàn)出來的。并且,當(dāng)需要更新圖像的某一部分或更新整個圖像時,Rdvgm. exe會發(fā)出一個呈現(xiàn)調(diào)用(用戶態(tài)),即上文所述的Rdvgm. exe 進行呈現(xiàn)動作,以完成此次圖像的更新。因此,一個呈現(xiàn)調(diào)用或一個呈現(xiàn)動作就代表著在圖像更新區(qū)中積累Rdvgm. exe所產(chǎn)生的圖像的完成。而如果在步驟S106判斷創(chuàng)建未成功, 則整個流程結(jié)束。之后,在步驟S108,顯示用戶態(tài)驅(qū)動將在圖像更新區(qū)中所積累的圖像從 Rdvgm. exe源拷貝到過渡資源,即,在收到Rdvgm. exe所發(fā)出的呈現(xiàn)調(diào)用的情況下,將從上個顯現(xiàn)調(diào)用到該呈現(xiàn)調(diào)用期間所積累的圖像拷貝到過渡資源。隨后,在步驟S109,通知圖像壓縮模塊和圖像發(fā)送模塊圖像截取完畢,并在步驟S110,壓縮并發(fā)送所截取的圖像。隨后, 在步驟S111,通過Rdvgm. exe判斷客戶端的屏幕屬性是否變化。如果在步驟Slll判斷出屏幕屬性變化,則回到步驟S105,再次創(chuàng)建與客戶端的屏幕分辨率一致的過渡資源,并重復(fù)之后的步驟S106到S110。如果在步驟S111,判斷屏幕屬性沒有變化,則前進到步驟S112。 在步驟S112,判斷是否需要繼續(xù)截取圖像,如果在步驟S112判斷需要繼續(xù)截取圖像,則前進到步驟S113,清空圖像更新區(qū),隨后回到步驟S107,由顯示用戶態(tài)驅(qū)動繼續(xù)積累圖像更新區(qū),并重復(fù)執(zhí)行步驟S108到S110。否則,如果在步驟S112判斷不需要繼續(xù)截取圖像,則整個流程結(jié)束。 本領(lǐng)域技術(shù)人員可以理解,當(dāng)連接多個客戶端時,則每個客戶端都會對應(yīng)一個客戶操作系統(tǒng),即HyperV虛擬機。但由于在服務(wù)器的主操作系統(tǒng)中僅運行一個Rdvgm程序,因此,需要找到主操作系統(tǒng)中每個Rdvgm進程與客戶操作系統(tǒng),即HyperV虛擬機之間的對應(yīng)關(guān)系。在Windows HyperV服務(wù)器架構(gòu)中,在客戶操作系統(tǒng)的創(chuàng)建時需要創(chuàng)建一個唯一的標(biāo)識,例如可以是客戶操作系統(tǒng)的名稱。比如child_win7_l,child_win7_2,等。如上所述,當(dāng)客戶操作系統(tǒng)開始啟動時,主操作系統(tǒng)中的Vmwp. exe進程啟動時,會根據(jù)支持RemoteFX的
11客戶操作系統(tǒng)來啟動Rdvgm. exe,該進程啟動帶有參數(shù),比如該客戶操作系統(tǒng)的桌面大小, 該客戶操作系統(tǒng)的名稱等。因此獲得Rdvgm. exe的進程ID與該客戶操作系統(tǒng)的唯一標(biāo)識綁定,從而獲得了一一對應(yīng)關(guān)系。本領(lǐng)技術(shù)人員可以理解,雖然在上述描述中是以支持RemoteFX的Windows HyperV服務(wù)器架構(gòu)和采用Windows server 2008 r2 spl的主操作系統(tǒng)以及采用Win7的客戶操作系統(tǒng)為示例來進行的,但本發(fā)明的實施例的服務(wù)器及其圖像處理方法也可以應(yīng)用于其它服務(wù)器架構(gòu)及采用其它操作系統(tǒng)版本的主操作系統(tǒng)和客戶操作系統(tǒng),本發(fā)明的實施例并不意在對此進行限制。并且,相應(yīng)地,隨著服務(wù)器架構(gòu)的修改和操作系統(tǒng)名稱的不同,其中的應(yīng)用程序名稱也會有所不同,本領(lǐng)域技術(shù)人員可以理解,本發(fā)明的實施例的處理器及其圖像處理方法可以等效地應(yīng)用于此。通過本發(fā)明的實施例的處理器及其圖像處理方法,可以在服務(wù)器的主操作系統(tǒng)中截取第一手的客戶操作系統(tǒng)桌面和其它圖形圖像,能夠充分利用圖像處理單元的性能并獲得對RemoteFX技術(shù)的良好支持。并且,由于在截取圖像處理單元所處理的圖像之后可以利用GPU做壓縮算法,提高了壓縮效率,并且可以支持多種壓縮格式,適應(yīng)性更強。此外,所有客戶操作系統(tǒng)的圖像都在服務(wù)器截取并進行處理,易于管理。本發(fā)明已經(jīng)參考具體實施例進行了詳細(xì)說明。然而,很明顯,在不背離本發(fā)明的精神的情況下,本領(lǐng)域技術(shù)人員能夠?qū)嵤├龍?zhí)行更改和替換。換句話說,本發(fā)明用說明的形式公開,而不是被限制地解釋。要判斷本發(fā)明的要旨,應(yīng)該考慮所附的權(quán)利要求。
權(quán)利要求
1.一種服務(wù)器,其特征在于,包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元;其中,所述主操作系統(tǒng)包括一圖像截取模塊,用于截取所述圖像處理單元所處理的圖像。
2.一種服務(wù)器,其特征在于,包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元; 其中,所述主操作系統(tǒng)包括一圖像截取模塊,用于截取所述圖像處理單元所處理的圖像;和一圖像發(fā)送模塊,與所述圖像截取模塊連接,用于將所述圖像截取模塊所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。
3.如權(quán)利要求2所述的服務(wù)器,其中,所述主操作系統(tǒng)進一步包括圖像壓縮模塊,與所述圖像截取模塊和所述圖像發(fā)送模塊連接,用于采用預(yù)定的壓縮算法對所述圖像截取模塊所截取的圖像進行壓縮,并由所述圖像發(fā)送模塊發(fā)送已壓縮的圖像。
4.如權(quán)利要求2所述的服務(wù)器,其中,所述圖像發(fā)送單元根據(jù)在創(chuàng)建所述第一客戶操作系統(tǒng)時所創(chuàng)建的唯一的客戶操作系統(tǒng)標(biāo)識,將所述圖像截取模塊所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。
5.如權(quán)利要求2所述的服務(wù)器,其中,所述圖像截取單元通過創(chuàng)建過渡資源來截取所述圖像處理單元所處理的圖像,其中,所述過渡資源是所述圖像截取單元分配的可映射的系統(tǒng)內(nèi)存資源,其用于將所述圖像處理單元所處理的不可映射的圖像數(shù)據(jù)復(fù)制到所述過渡資源以成為可映射的圖像數(shù)據(jù)。
6.如權(quán)利要求5所述的服務(wù)器,其中,當(dāng)所述客戶端通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元以進行圖像處理時,所述客戶端將其屏幕屬性發(fā)送給所述圖像處理單元,且所述圖像處理單元依據(jù)所述屏幕屬性來進行圖像處理,其中所述圖像截取單元所創(chuàng)建的過渡資源具有與所述客戶端的屏幕屬性相同的屏幕屬性。
7.如權(quán)利要求2所述的服務(wù)器,其中,所述圖像壓縮單元根據(jù)所連接的客戶端的類型來動態(tài)地選擇壓縮算法以對所述圖像截取模塊所截取的圖像進行壓縮。
8.如權(quán)利要求2所述的服務(wù)器,其中,在啟動所述第一客戶操作系統(tǒng)的過程中加載所述圖像截取單元。
9.一種圖像處理方法,其應(yīng)用于一服務(wù)器,所述服務(wù)器包括硬件單元,所述硬件單元包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在所述硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在所述系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問所述第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到所述服務(wù)器時,所述服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng)以由所述客戶端使用,在所述客戶端需要訪問所述圖像處理單元時,需要通過所述第一客戶操作系統(tǒng)經(jīng)由所述主操作系統(tǒng)訪問所述圖像處理單元; 所述圖像處理方法包括在主操作系統(tǒng)中截取所述圖像處理單元所處理的圖像;和將所截取的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。
10.如權(quán)利要求9所述的圖像處理方法,進一步包括壓縮所述圖像處理單元所處理的圖像,其中,將已壓縮的圖像發(fā)送到與所述第一客戶操作系統(tǒng)相對應(yīng)的客戶端。
11.如權(quán)利要求9所述的圖像處理方法,其中,所述截取圖像處理單元所處理的圖像的步驟包括啟動所述第一客戶操作系統(tǒng);創(chuàng)建具有與所述客戶端的屏幕屬性相同的屏幕屬性的過渡資源;和將所述圖像處理單元所處理的圖像拷貝到所述過渡資源。
12.如權(quán)利要求11所述的圖像處理方法,其中,所述啟動第一客戶操作系統(tǒng)的步驟包括創(chuàng)建所述第一客戶操作系統(tǒng)的環(huán)境;和加載用于截取所述圖像處理單元所處理的圖像的裝置。
全文摘要
提供了服務(wù)器及其圖像處理方法。所述服務(wù)器包括硬件單元,其包括第一類硬件單元和第二類硬件單元,且第二類硬件單元包括一圖像處理單元;系統(tǒng)管理單元,設(shè)置在硬件單元之上,用于將第一類硬件單元虛擬為第一類虛擬硬件單元;主操作系統(tǒng),設(shè)置在系統(tǒng)管理單元之上;至少一個客戶操作系統(tǒng),設(shè)置在系統(tǒng)管理單元之上,所述至少一個客戶操作系統(tǒng)可以訪問第一類虛擬硬件單元;其中,當(dāng)一客戶端連接到服務(wù)器時,服務(wù)器依據(jù)預(yù)定策略指定第一客戶操作系統(tǒng)與所述客戶端相對應(yīng),在所述客戶端需要訪問圖像處理單元時,需要通過第一客戶操作系統(tǒng)經(jīng)由主操作系統(tǒng)訪問圖像處理單元;其中,主操作系統(tǒng)包括一圖像截取模塊,用于截取圖像處理單元所處理的圖像。
文檔編號G06T1/20GK102446341SQ20101050196
公開日2012年5月9日 申請日期2010年9月30日 優(yōu)先權(quán)日2010年9月30日
發(fā)明者孫成昆, 宋祎斐, 李洪偉 申請人:聯(lián)想(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1