專利名稱:基于圖像的遠(yuǎn)程訪問系統(tǒng)的制作方法
基于圖像的遠(yuǎn)程訪問系統(tǒng)
背景技術(shù):
隨著廣域網(wǎng)(WAN)持續(xù)擴(kuò)張,客戶端/服務(wù)器計(jì)算模型已經(jīng)類似地看到多種企業(yè) 和家庭用戶對(duì)其應(yīng)用的增加。在客戶端/服務(wù)器模型中,一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)(通常是 具有大量處理能力和諸如存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)空間之類的其他資源的非??斓挠?jì)算機(jī))被 設(shè)置在中心位置,所述服務(wù)器從該中心位置與若干較小的且功能不那么強(qiáng)的客戶端計(jì)算機(jī) 通過網(wǎng)絡(luò)(例如,因特網(wǎng))進(jìn)行通信。所述服務(wù)器被配置為運(yùn)行被設(shè)計(jì)為受操作所述客戶 端計(jì)算機(jī)的用戶控制的軟件應(yīng)用。這些通常大且復(fù)雜的軟件應(yīng)用在服務(wù)器上執(zhí)行并且實(shí)施 完成用戶發(fā)起的任務(wù)所需的大部分計(jì)算,因此利用(如與客戶端的那些處理資源相比)服 務(wù)器的優(yōu)越的處理資源。在客戶端計(jì)算機(jī)上執(zhí)行的軟件將用戶發(fā)出的命令轉(zhuǎn)發(fā)到在服務(wù)器上執(zhí)行的軟件 應(yīng)用。所述軟件還從服務(wù)器軟件應(yīng)用接收響應(yīng)和/或結(jié)果以用于在客戶端計(jì)算機(jī)處向用戶 呈現(xiàn)??蛻舳?服務(wù)器模型的示例是遠(yuǎn)程桌面客戶端/服務(wù)器應(yīng)用。所述服務(wù)器計(jì)算機(jī)執(zhí) 行完整操作系統(tǒng)的實(shí)例及其相關(guān)聯(lián)的應(yīng)用,以及服務(wù)器側(cè)遠(yuǎn)程桌面應(yīng)用,該服務(wù)器側(cè)遠(yuǎn)程 桌面應(yīng)用將由服務(wù)器內(nèi)的圖形適配器在所述操作系統(tǒng)實(shí)例的控制下生成的顯示輸出重定 向(redirect)到客戶端計(jì)算機(jī)。所述客戶端計(jì)算機(jī)執(zhí)行客戶端側(cè)遠(yuǎn)程桌面應(yīng)用,該客戶端 側(cè)遠(yuǎn)程桌面應(yīng)用顯示由在所述服務(wù)器計(jì)算機(jī)上運(yùn)行的操作系統(tǒng)生成的輸出(例如,諸如微 軟 Windows 之類的窗口式操作系統(tǒng)中的桌面和窗口)。所述客戶端側(cè)遠(yuǎn)程桌面應(yīng)用還 接受來自用戶(例如,來自鍵盤和鼠標(biāo))的輸入,并且將在客戶端計(jì)算機(jī)處接收的用戶輸入 重定向到服務(wù)器計(jì)算機(jī)??蛻舳擞?jì)算機(jī)與服務(wù)器計(jì)算機(jī)之間的通信通過諸如例如因特網(wǎng)之 類的網(wǎng)絡(luò)進(jìn)行。為了進(jìn)一步將客戶端的計(jì)算負(fù)擔(dān)轉(zhuǎn)移到服務(wù)器,并且因此進(jìn)一步降低客戶端的 復(fù)雜性和成本,已經(jīng)開發(fā)了將大量的圖形處理從客戶端轉(zhuǎn)移到服務(wù)器的軟件和硬件。在 這樣的系統(tǒng)中,所述服務(wù)器(例如,經(jīng)由服務(wù)器內(nèi)的圖形處理單元(GPU))處理并格式化 圖形數(shù)據(jù)并且將該數(shù)據(jù)存儲(chǔ)在幀緩沖器中。但是取代在本地附接的顯示單元上為用戶本 地地呈現(xiàn)幀緩沖器數(shù)據(jù),所述幀緩沖器數(shù)據(jù)通過網(wǎng)絡(luò)被傳輸?shù)绞菘蛻舳?、臺(tái)式個(gè)人計(jì)算機(jī) (PC)或網(wǎng)絡(luò)附接的顯示設(shè)備,其顯示所述數(shù)據(jù)而不需要由客戶端本地GPU進(jìn)行處理和/ 或格式化。參見例如,Stafford-Fraser等人(下文為“Stafford”)的標(biāo)題為“Computer NetworkArchitecture and Method of Providing Display Data" W^H^^Jiit^^ 2005/0193396。這種系統(tǒng)中的圖形適配器因此在服務(wù)器內(nèi)被“虛擬化”。盡管這種虛擬化的圖形適配器用于簡(jiǎn)化客戶端硬件和軟件,但是相應(yīng)地增加了對(duì) 服務(wù)器硬件和軟件的要求。盡管在客戶端/服務(wù)器模型中將預(yù)期這一點(diǎn)(并且這實(shí)際上是 所述模型的目標(biāo)之一),但是當(dāng)Mafford的虛擬化的圖形適配器與需要多個(gè)顯示器的客戶 端一起使用時(shí)所述效應(yīng)得到倍增(multiplied)。例如,如果具有多個(gè)顯示器的客戶端PC被 具有多個(gè)顯示器的簡(jiǎn)化客戶端(有時(shí)被稱為“瘦客戶端”)取代,并且Mafford的所述虛擬 化的圖形適配器被用在服務(wù)器側(cè),則必須在服務(wù)器處針對(duì)每個(gè)客戶端執(zhí)行多個(gè)虛擬化的圖 形適配器(每個(gè)顯示器一個(gè))。結(jié)果,當(dāng)與針對(duì)每個(gè)客戶端執(zhí)行僅僅單個(gè)虛擬化適配器實(shí)例的服務(wù)器的需求相比時(shí),針對(duì)每個(gè)客戶端在服務(wù)器處所需的資源可能由于執(zhí)行多個(gè)虛擬化 的顯示適配器實(shí)例而顯著增加。
為了詳細(xì)描述本發(fā)明的示范性實(shí)施例,現(xiàn)在將參照附圖,在附圖中圖1示出根據(jù)至少一些說明性實(shí)施例的遠(yuǎn)程訪問客戶端/服務(wù)器系統(tǒng)的硬件組 件;圖2示出根據(jù)至少一些說明性實(shí)施例的圖1的遠(yuǎn)程訪問客戶端/服務(wù)器系統(tǒng)的軟 件組件;圖3A示出根據(jù)至少一些說明性實(shí)施例的適合實(shí)現(xiàn)圖1的服務(wù)器計(jì)算機(jī)的計(jì)算機(jī) 系統(tǒng);圖;3B示出根據(jù)至少一些說明性實(shí)施例的圖3A的計(jì)算機(jī)系統(tǒng)的框圖;圖3C示出根據(jù)至少一些說明性實(shí)施例的適合實(shí)現(xiàn)圖1的客戶端設(shè)備的至少一部 分的計(jì)算機(jī)系統(tǒng)的框圖;以及圖4A和4B示出根據(jù)至少一些說明性實(shí)施例的用于使用圖1和2的服務(wù)器計(jì)算機(jī) 和客戶端設(shè)備來分發(fā)、處理和顯示圖形數(shù)據(jù)的方法。標(biāo)記和命名法某些術(shù)語(yǔ)貫穿下面的說明書和權(quán)利要求而被用于指代特定的系統(tǒng)組件。如本領(lǐng)域 技術(shù)人員將理解的,計(jì)算機(jī)廠商可以以不同名稱指代一個(gè)組件。該文檔不打算區(qū)分名稱不 同但功能相同的組件。在下面的討論和權(quán)利要求中,術(shù)語(yǔ)“包含”和“包括”是以開放式的 方式使用的,并且因此應(yīng)當(dāng)被解釋為意思是“包括,但不限于...”。而且,術(shù)語(yǔ)“耦合”意欲 表示間接的、直接的、光學(xué)的或無線電連接。因此,如果第一設(shè)備耦合到第二設(shè)備,則該連接 可以是通過直接電連接、通過經(jīng)由其他設(shè)備和連接的間接電連接、通過光學(xué)電連接或通過 無線電連接。此外,術(shù)語(yǔ)“系統(tǒng)”指代兩個(gè)或更多硬件和/或軟件組件的集合,并且可以用 于指代電子設(shè)備,比如計(jì)算機(jī)、計(jì)算機(jī)的一部分、計(jì)算機(jī)的組合等等。而且,術(shù)語(yǔ)“軟件”包 括任何能夠在處理器上運(yùn)行的可執(zhí)行代碼,而不管用于存儲(chǔ)所述軟件的介質(zhì)如何。因此,存 儲(chǔ)在非易失性存儲(chǔ)器中的代碼(有時(shí)被稱為“嵌入式固件”)包含在軟件的定義內(nèi)。
具體實(shí)施例方式下面的討論針對(duì)本發(fā)明的各種實(shí)施例。盡管這些實(shí)施例中的一個(gè)或多個(gè)可能是優(yōu) 選的,但是所公開的實(shí)施例不應(yīng)當(dāng)被解釋為或以其他方式被使用為限制包含權(quán)利要求的本 公開的范圍。此外,本領(lǐng)域技術(shù)人員將理解,下面的描述具有廣泛的應(yīng)用,并且任何實(shí)施例 的討論僅意在例證該實(shí)施例,并且不打算暗示包含權(quán)利要求的本公開的范圍被限于該實(shí)施 例。圖1示出根據(jù)至少一些說明性實(shí)施例的適合用于實(shí)現(xiàn)基于圖像的遠(yuǎn)程訪問系統(tǒng) 的客戶端/服務(wù)器計(jì)算系統(tǒng)。服務(wù)器計(jì)算機(jī)110包括耦合到存儲(chǔ)器112、網(wǎng)絡(luò)接口(網(wǎng)絡(luò)I/ F) 116和圖形適配器120的處理器114。圖形適配器120包括多個(gè)幀緩沖器(例如,用于存 儲(chǔ)如下面所解釋的那樣呈現(xiàn)在顯示器上的處理的圖像數(shù)據(jù)的幀緩沖器A(12》和幀緩沖器 B(124))。圖形適配器120還耦合到存儲(chǔ)器112,從而允許圖形適配器在處理器114很少介入或不介入的情況下(例如,經(jīng)由直接存儲(chǔ)器訪問(DMA)傳輸)從存儲(chǔ)器112傳輸待(例 如由具有圖形適配器120的圖形處理單元(GPU)(未示出))處理的數(shù)據(jù)。在至少一些說明 性實(shí)施例中,存儲(chǔ)器112還可以包括幀緩沖器(未示出)。服務(wù)器計(jì)算機(jī)110經(jīng)由網(wǎng)絡(luò)140(例如,因特網(wǎng))耦合到客戶端設(shè)備150。服務(wù)器 計(jì)算機(jī)將存儲(chǔ)在至少一個(gè)幀緩沖器122或IM中的圖形圖像數(shù)據(jù)傳輸?shù)娇蛻舳嗽O(shè)備150以 用于呈現(xiàn)為在客戶端顯示器168和178的每一個(gè)上顯示的圖像??蛻舳嗽O(shè)備150包括網(wǎng)絡(luò) 接口和路由器(網(wǎng)絡(luò)I/F和路由器)152,其耦合到圖形控制單元(圖形控制單元)160和 170中的每一個(gè)。圖形控制單元160和170中的每一個(gè)分別耦合到顯示設(shè)備168和178。網(wǎng) 絡(luò)接口和路由器152還耦合到鍵盤巧4和鼠標(biāo)156。所述圖形控制單元160和170中的每 一個(gè)包括耦合到網(wǎng)絡(luò)接口和路由器152以及幀緩沖器(164,174)的處理器(162,172)。每個(gè)幀緩沖器包括與來自服務(wù)器計(jì)算機(jī)110內(nèi)的幀緩沖器的子區(qū)域的數(shù)據(jù)對(duì)應(yīng) 的數(shù)據(jù)。在圖1的說明性實(shí)施例中,例如,客戶端幀緩沖器164包括與來自服務(wù)器幀緩沖器 124的左子區(qū)域的數(shù)據(jù)對(duì)應(yīng)的左數(shù)據(jù)165。類似地,客戶端幀緩沖器174包括與來自服務(wù)器 幀緩沖器124的右子區(qū)域的數(shù)據(jù)對(duì)應(yīng)的右數(shù)據(jù)175。來自每個(gè)幀緩沖器內(nèi)的數(shù)據(jù)被對(duì)應(yīng)的 顯示器接口(166,176)讀出,所述顯示器接口基于存儲(chǔ)在對(duì)應(yīng)的幀緩沖器中的數(shù)據(jù)生成在 每個(gè)顯示器168和178上呈現(xiàn)圖像所必需的控制和數(shù)據(jù)信號(hào)。所述控制和數(shù)據(jù)信號(hào)可以是 數(shù)字信號(hào)、模擬信號(hào)或數(shù)字和模擬信號(hào)二者的組合。服務(wù)器計(jì)算機(jī)110和客戶端設(shè)備150 二者的幀緩沖器被用于存儲(chǔ)已被(例如處理 器114或圖形適配器120)處理的圖像數(shù)據(jù)。這種處理可以包括將諸如幾何對(duì)象(例如,線、 正方形、三角形)之類的對(duì)象轉(zhuǎn)換為被顯示的圖像,并且/或者將高級(jí)的二維和三維變換應(yīng) 用到復(fù)雜的圖像,比如照明、陰影、遮蔽和紋理映射,這些示例只是舉幾個(gè)例子。這樣的操作 的最終結(jié)果是待呈現(xiàn)在一個(gè)或多個(gè)顯示設(shè)備上的所得圖像的表示。這種表示可以存儲(chǔ)在幀 緩沖器中,所述幀緩沖器是用于存儲(chǔ)與所表示的圖像相關(guān)聯(lián)的數(shù)據(jù)從而使得所述緩沖器內(nèi) 的每個(gè)位置對(duì)應(yīng)于屏幕上的像素的專用存儲(chǔ)器設(shè)備或存儲(chǔ)器的區(qū)域。例如,在至少一些說明性實(shí)施例中,單個(gè)像素由32位值表示(例如,由4個(gè)字節(jié)表 示,每個(gè)字節(jié)分別表示像素的原色紅、綠和藍(lán)的8位強(qiáng)度值和不透明值alpha(RGBA))。因 此,如果被顯示的圖像的每一行具有由2560個(gè)RGBA值表示的2560個(gè)像素(例如,作為大 小為2560 X IOM像素的圖像的一部分),則對(duì)于一個(gè)或多個(gè)顯示器上的像素的每個(gè)掃描線 而言,10240個(gè)數(shù)據(jù)字節(jié)被存儲(chǔ)在所述幀緩沖器中、存儲(chǔ)在所述幀緩沖器的存儲(chǔ)器或存儲(chǔ)器 區(qū)域內(nèi)連續(xù)尋址的位置中。通過連續(xù)地將所述數(shù)據(jù)存儲(chǔ)為連續(xù)的RGBA值,所述數(shù)據(jù)可以以 它將被呈現(xiàn)在顯示設(shè)備上的次序被讀出,從而簡(jiǎn)化從緩沖器中提取數(shù)據(jù)的過程。而且,每個(gè) 掃描線的數(shù)據(jù)可被存儲(chǔ)為使得單個(gè)存儲(chǔ)器設(shè)備行對(duì)應(yīng)于單個(gè)掃描線。因此,如果存儲(chǔ)器行 的大小被確定為超過掃描線所需的數(shù)據(jù)量的下一個(gè)最大的二進(jìn)制倍數(shù)(binary multiple) (在所述示例中為16384個(gè)字節(jié)),則可以使用存儲(chǔ)器地址的最高有效位或較高位來尋址單 個(gè)掃描線,同時(shí)較低位可以用于尋址行或掃描線的像素?cái)?shù)據(jù)。由于圖像數(shù)據(jù)被組織并存儲(chǔ)在幀緩沖器內(nèi)的方式,圖像內(nèi)的區(qū)域可被直接映射到 存儲(chǔ)所述圖像的幀緩沖器的地址空間內(nèi)的區(qū)域。因此,在示出了表示待顯示的圖像的左側(cè) 和右側(cè)的兩個(gè)區(qū)域的圖1的說明性實(shí)施例中,所述幀緩沖器的每一行可以被劃分為在對(duì)應(yīng) 于圖像的左側(cè)的第一地址范圍(例如,所述行的前5120字節(jié)、即字節(jié)0-5120)內(nèi)存儲(chǔ)的像素值,和在對(duì)應(yīng)于所述圖像的右側(cè)的第二地址范圍(例如,所述行的接下來的5120字節(jié)、即 字節(jié)5120-10239)內(nèi)存儲(chǔ)的像素值??梢酝ㄟ^將一個(gè)或多個(gè)偏移值應(yīng)用到區(qū)域相對(duì)像素χ-y坐標(biāo)來相對(duì)于區(qū)域引用 該區(qū)域的像素值。在上述示例中,右區(qū)域的像素(0,0)(即右區(qū)域的原點(diǎn)處)的像素?cái)?shù)據(jù)在 幀緩沖器內(nèi)被存儲(chǔ)在緩沖器的第一行的位置5120-5123處(即行0的像素1觀0)。所述像 素?cái)?shù)據(jù)開始地址可以通過將合適的像素坐標(biāo)偏移加到像素的區(qū)域相對(duì)χ坐標(biāo)、將所得的偏 移像素坐標(biāo)乘以每像素的字節(jié)數(shù)量、并且加上將每緩沖器行的字節(jié)乘以y坐標(biāo)所得的乘積 來確定(例如,開始字節(jié)地址=4*(x+1280)+16384*y)。也可以執(zhí)行這些計(jì)算的逆運(yùn)算以根 據(jù)幀緩沖器地址確定區(qū)域相對(duì)像素坐標(biāo)。行和偏移計(jì)算的相似分組也可以用于定義圖像的 垂直劃分的區(qū)域。本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,任意數(shù)量的垂直或水平區(qū)域或垂直和水 平區(qū)域二者可被定義在幀緩沖器內(nèi),并且許多其他坐標(biāo)到地址和地址到坐標(biāo)變換可以被應(yīng) 用到本文所述的實(shí)施例。所有這樣的區(qū)域數(shù)量(number)和區(qū)域組合以及所有這樣的坐標(biāo) 和地址變換處于本公開的范圍內(nèi)。繼續(xù)參考圖1的說明性實(shí)施例,服務(wù)器計(jì)算機(jī)110包括至少兩個(gè)幀緩沖器(例如, 幀緩沖器122和124)。交替地利用新顯示數(shù)據(jù)來更新每個(gè)幀緩沖器,以便生成差數(shù)據(jù),即識(shí) 別在一個(gè)幀緩沖器的更新與另一個(gè)幀緩沖器的隨后更新之間已經(jīng)變化的數(shù)據(jù)。例如,在至 少一些說明性實(shí)施例中,最初在預(yù)定義的間隔(例如,對(duì)應(yīng)于60赫茲顯示幀速率的16.67 毫秒間隔)期間用圖像數(shù)據(jù)裝載幀緩沖器122。在所述間隔結(jié)束時(shí),對(duì)圖像的任何更新被重 定向到幀緩沖器124(其也存儲(chǔ)初始圖像的拷貝),同時(shí)幀緩沖器122內(nèi)的初始圖像數(shù)據(jù)被 傳輸給客戶端設(shè)備150以供顯示。在下一個(gè)間隔結(jié)束時(shí),將所述幀緩沖器122和IM的內(nèi)容進(jìn)行(逐字節(jié))比較以識(shí) 別在所述間隔期間變化的那些數(shù)據(jù)字節(jié)。只有在所述間隔期間變化的那些數(shù)據(jù)字節(jié)(即, 差數(shù)據(jù))被傳輸?shù)娇蛻舳嗽O(shè)備150,這減少了針對(duì)從幀到幀變化不太大的圖像所傳輸?shù)臄?shù) 據(jù)的量。一旦所述差數(shù)據(jù)被識(shí)別,所述幀緩沖器就再次被交換(swap),并且來自幀緩沖器 124的數(shù)據(jù)被拷貝到幀緩沖器122,從而使得可以利用較新的數(shù)據(jù)來更新幀緩沖器122,同 時(shí)從幀緩沖器1 提取所述差數(shù)據(jù)以用于傳輸?shù)娇蛻舳嗽O(shè)備150。在至少一些說明性實(shí)施 例中,包括最新的數(shù)據(jù)的幀緩沖器的完整內(nèi)容(針對(duì)所有區(qū)域)被周期性地傳輸?shù)娇蛻舳?設(shè)備150,而不生成差數(shù)據(jù)。這些“參考幀”(它們有時(shí)候被這樣稱呼)在某些差數(shù)據(jù)未被 客戶端設(shè)備150接收的情況下被傳輸(例如,如果無連接網(wǎng)絡(luò)事務(wù)(比如IP數(shù)據(jù)報(bào))被用 于發(fā)送所述數(shù)據(jù)并且所述消息由于網(wǎng)絡(luò)中斷而丟失)。仍然參照?qǐng)D1的說明性實(shí)施例,一旦已經(jīng)生成差數(shù)據(jù),它就被按子區(qū)域細(xì)分并且 消息被從服務(wù)器計(jì)算機(jī)110發(fā)送到客戶端設(shè)備150,其中每個(gè)消息僅僅包括用于特定子區(qū) 域的數(shù)據(jù)。所述消息還包括子區(qū)域標(biāo)識(shí)符。當(dāng)具有差數(shù)據(jù)的消息被客戶端設(shè)備150接收到 時(shí),網(wǎng)絡(luò)接口和路由器152根據(jù)所述消息內(nèi)的子區(qū)域標(biāo)識(shí)符來確定所接收的差數(shù)據(jù)對(duì)應(yīng)于 哪個(gè)子區(qū)域。然后,所述差數(shù)據(jù)被發(fā)送到耦合到對(duì)應(yīng)于所識(shí)別的子區(qū)域的顯示器的圖形控 制單元。在至少一些說明性實(shí)施例中,在轉(zhuǎn)發(fā)差數(shù)據(jù)之前可以從用于通過網(wǎng)絡(luò)傳送所述數(shù) 據(jù)的消息中解封裝所述差數(shù)據(jù)。在其他說明性實(shí)施例中,可以轉(zhuǎn)發(fā)整個(gè)消息并且由接收差 數(shù)據(jù)的圖形控制單元從網(wǎng)絡(luò)消息中對(duì)其解封裝。在至少一些說明性實(shí)施例中,所述差數(shù)據(jù)在根據(jù)傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)網(wǎng)絡(luò)協(xié)議格式化的消息內(nèi)被接收,并且通過使用 網(wǎng)絡(luò)接口和路由器152與每個(gè)圖形控制單元之間的單獨(dú)的通用串行總線(USB)通信鏈路而 被傳輸?shù)胶线m的圖形控制單元。鍵盤巧4和鼠標(biāo)156也經(jīng)由單獨(dú)的USB鏈路耦合到網(wǎng)絡(luò)接 口和路由器152,如圖1所示。繼續(xù)參照?qǐng)D1,每個(gè)圖形控制單元的處理器(圖形控制單元160的處理器162,和 圖形控制單元170的處理器17 接收對(duì)應(yīng)于耦合到相應(yīng)的圖形控制單元的顯示器(顯示 器168或顯示器178)的差數(shù)據(jù),并且利用合適的數(shù)據(jù)來更新它們相應(yīng)的客戶端幀緩沖器。 因此,從計(jì)算機(jī)服務(wù)器110接收的對(duì)應(yīng)于幀緩沖器的左子區(qū)域的差數(shù)據(jù)被網(wǎng)絡(luò)接口和路由 器152路由到處理器162,處理器162使用所述差數(shù)據(jù)來更新幀緩沖器164內(nèi)的左數(shù)據(jù)165。 然后,所述數(shù)據(jù)被顯示器接口 166用來更新顯示設(shè)備168上呈現(xiàn)的圖像。針對(duì)來自服務(wù)器 計(jì)算機(jī)110的右子區(qū)域幀緩沖器數(shù)據(jù),由圖形控制單元170、處理器172和顯示器接口 176 執(zhí)行類似的操作,這導(dǎo)致右數(shù)據(jù)在幀緩沖器174內(nèi)被更新并且被呈現(xiàn)在顯示設(shè)備178上。如上面的描述所表明的,在客戶端設(shè)備處執(zhí)行的操作需要的圖形計(jì)算能力比服務(wù) 器計(jì)算機(jī)110所需的少。這是因?yàn)橐韵率聦?shí)計(jì)算上密集的圖形處理操作由圖形適配器120 執(zhí)行,該圖像適配器然后向客戶端設(shè)備傳輸需要少得多的處理的數(shù)據(jù),甚至在壓縮和解壓 縮被發(fā)送到客戶端設(shè)備150的圖像數(shù)據(jù)的實(shí)施例中也是如此。這導(dǎo)致有時(shí)所稱的“瘦”客 戶端,所述“瘦”客戶端是就實(shí)現(xiàn)客戶端設(shè)備150的功能的硬件和軟件兩方面而言的。計(jì)算 機(jī)服務(wù)器110與客戶端設(shè)備150之間的幀緩沖器數(shù)據(jù)的使用,而不是需要大量圖形處理的 數(shù)據(jù)(例如幾何對(duì)象數(shù)據(jù))的使用,導(dǎo)致使用容易地且廉價(jià)地被縮放的瘦客戶端進(jìn)行操作 的基于圖像的遠(yuǎn)程訪問系統(tǒng)。在至少一些說明性實(shí)施例中,從服務(wù)器計(jì)算機(jī)110傳輸?shù)娇蛻舳嗽O(shè)備150的圖像 數(shù)據(jù)(包括差數(shù)據(jù)、參考幀或二者)在被傳輸之前被壓縮以進(jìn)一步減少傳輸圖像數(shù)據(jù)所需 的帶寬。在至少一些說明性實(shí)施例中,所述壓縮由處理器114執(zhí)行,而在其他說明性實(shí)施例 中,所述壓縮由圖形適配器120執(zhí)行。解壓縮由客戶端設(shè)備150的處理器162和172執(zhí)行, 每個(gè)處理器解壓縮對(duì)應(yīng)于它們相應(yīng)的子區(qū)域和顯示器的所接收的數(shù)據(jù)。所述壓縮/解壓縮 可以使用許多已知的壓縮/解壓縮(CODEC)算法中的任意一個(gè)來實(shí)現(xiàn),可以包括有損和無 損壓縮/解壓縮技術(shù)二者,并且可以包括硬件和軟件實(shí)現(xiàn)方式二者以及硬件和軟件實(shí)現(xiàn)方 式的組合。所有這樣的CODEC算法、技術(shù)和實(shí)現(xiàn)方式都在本公開的范圍內(nèi)。圖2示出根據(jù)至少一些說明性實(shí)施例的實(shí)現(xiàn)本文所描述的系統(tǒng)和方法的至少一 些功能的軟件組件的框圖。主操作系統(tǒng)210在服務(wù)器計(jì)算機(jī)110上執(zhí)行并且提供操作環(huán)境, 服務(wù)器側(cè)遠(yuǎn)程訪問軟件212在該操作環(huán)境下執(zhí)行。客戶操作系統(tǒng)214在服務(wù)器側(cè)遠(yuǎn)程訪問 軟件212提供的環(huán)境內(nèi)執(zhí)行,服務(wù)器側(cè)遠(yuǎn)程訪問軟件212將圖形適配器120暴露于在客戶 操作系統(tǒng)214下執(zhí)行的視頻設(shè)備驅(qū)動(dòng)器216。在至少一些說明性實(shí)施例(未示出)中,兩個(gè)或更多客戶操作系統(tǒng)在服務(wù)器側(cè)遠(yuǎn) 程訪問軟件212下并發(fā)地執(zhí)行,所述服務(wù)器側(cè)遠(yuǎn)程訪問軟件仲裁對(duì)圖形適配器120的訪問。 作為這種仲裁的結(jié)果,圖形適配器120作為專用資源被暴露于每個(gè)客戶操作系統(tǒng),即使它 實(shí)際上在所述客戶操作系統(tǒng)之間被共享。在至少一些說明性實(shí)施例中未被服務(wù)器計(jì)算機(jī) 110用來在本地驅(qū)動(dòng)顯示設(shè)備的圖形適配器因此作為“卸載(offload)”圖形處理器來操 作,該“卸載”圖形處理器作為共享資源而被服務(wù)器側(cè)遠(yuǎn)程訪問軟件212管理。在其他說明性實(shí)施例中,由服務(wù)器側(cè)遠(yuǎn)程訪問軟件212為每個(gè)客戶操作系統(tǒng)實(shí)例實(shí)現(xiàn)虛擬化的圖形適 配器。繼續(xù)參照?qǐng)D2,一旦幀緩沖器內(nèi)的數(shù)據(jù)已經(jīng)被更新,客戶端接口軟件(客戶端I/ F)218(服務(wù)器側(cè)遠(yuǎn)程訪問軟件212的一部分)就生成如前所述的差數(shù)據(jù)(以及任何參考 幀)、按子區(qū)域劃分圖像數(shù)據(jù)(差數(shù)據(jù)和/或參考幀數(shù)據(jù))、以及生成待傳輸?shù)娇蛻舳嗽O(shè)備 150的消息(具有適當(dāng)?shù)膶?duì)應(yīng)子區(qū)域標(biāo)識(shí)符)。在其中圖像數(shù)據(jù)壓縮由圖1的服務(wù)器處理 器114執(zhí)行的至少一些實(shí)施例中,所述圖像數(shù)據(jù)(差數(shù)據(jù)和/或參考幀數(shù)據(jù))由客戶端接 口軟件218壓縮。在至少一些說明性實(shí)施例中,客戶端接口軟件218所傳輸?shù)膱D像數(shù)據(jù)被在網(wǎng)絡(luò)接 口和路由器152上(例如網(wǎng)絡(luò)接口和路由器152內(nèi)的處理器(未示出)上)執(zhí)行的網(wǎng)絡(luò)接 口和路由軟件252接收并處理??蛻舳私涌谲浖?52實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議棧(例如,TCP/IP協(xié)議 棧),其中客戶端設(shè)備150作為網(wǎng)絡(luò)可尋址的TCP/IP設(shè)備而被訪問??蛻舳寺酚绍浖?52 將所接收的圖像數(shù)據(jù)消息轉(zhuǎn)換為適合于向圖形控制單元傳輸?shù)母袷?例如,USB事務(wù)),并 且基于所接收的消息內(nèi)的子區(qū)域標(biāo)識(shí)符將所述圖像數(shù)據(jù)路由到合適的圖形控制單元。分別 在客戶端處理器162和172上執(zhí)行的客戶端遠(yuǎn)程訪問軟件260和270提取(并且如果需要, 則解壓縮)所接收的圖像數(shù)據(jù)并且更新所對(duì)應(yīng)的客戶端幀緩沖器(164或174)。在所述的說明性實(shí)施例中,在服務(wù)器計(jì)算機(jī)110和客戶端設(shè)備150這二者中所存 在的各種處理器上執(zhí)行的軟件實(shí)施本文所述的許多功能。然而,本領(lǐng)域普通技術(shù)人員將認(rèn) 識(shí)到,其他說明性實(shí)施例可以以軟件或硬件(例如,使用專用集成電路(ASIC))或通過軟件 和硬件的組合實(shí)現(xiàn)至少一些所述功能,并且所有這樣的實(shí)施例都在本公開的范圍內(nèi)。在至少一些說明性實(shí)施例中,網(wǎng)絡(luò)接口和路由器軟件252與客戶端接口軟件218 協(xié)力操作以向本文所描述的遠(yuǎn)程訪問系統(tǒng)的用戶提供配置接口。所述配置接口允許用戶指 定耦合到客戶端設(shè)備150的每個(gè)圖形控制單元的顯示設(shè)備(圖1的168和178)的布局、 相對(duì)位置和分辨率。例如,如果兩個(gè)顯示器被組織為從左到右且每個(gè)顯示設(shè)備的分辨率為 1280X10M,則所述配置接口將允許使用客戶端設(shè)備指定所述配置。所述配置信息(即,顯 示器分辨率、顯示設(shè)備的數(shù)量和顯示設(shè)備的相對(duì)位置)將被發(fā)送到服務(wù)器并且被用于分別 配置所述子區(qū)域。在圖1和2所描述和示出的示例中,服務(wù)器將具有由兩個(gè)子區(qū)域構(gòu)成的 2560X1024的單個(gè)虛擬顯示器分辨率,每個(gè)子區(qū)域的分辨率為1280 X IOM,且原點(diǎn)位置分 別為(0,0)和(1280,0) ο因?yàn)閳D2中的示例的客戶操作系統(tǒng)214被配置為僅僅識(shí)別單個(gè)圖形適配器,所以 可以獨(dú)立于如客戶操作系統(tǒng)214所看到的圖形適配器的配置來完成對(duì)顯示器數(shù)量和每個(gè) 單獨(dú)的顯示器的分辨率的改變。在其他說明性實(shí)施例中,在客戶操作系統(tǒng)級(jí)別處對(duì)圖形適 配器的配置的改變(例如,通過由客戶操作系統(tǒng)所提供的實(shí)用工具改變屏幕分辨率)可以 被客戶端接口軟件218關(guān)聯(lián)到在服務(wù)器計(jì)算機(jī)110和客戶端設(shè)備150 二者處的子區(qū)域和顯 示器配置的改變?;诓僮飨到y(tǒng)和基于遠(yuǎn)程訪問軟件的配置實(shí)用工具的其他配置和組合對(duì) 本領(lǐng)域普通技術(shù)人員而言將變得顯而易見,并且所有這樣的配置和組合都在本公開的范圍 內(nèi)。圖3A和:3B示出適合用于實(shí)現(xiàn)圖1的服務(wù)器計(jì)算機(jī)110的說明性計(jì)算機(jī)系統(tǒng)300。 圖3C類似地示出適合用于實(shí)現(xiàn)網(wǎng)絡(luò)接口和路由器152以及圖形控制單元160和170的每一個(gè)的至少一部分的簡(jiǎn)化的計(jì)算機(jī)系統(tǒng)390 (相對(duì)于圖:3B的系統(tǒng)被簡(jiǎn)化)。如圖3A和;3B 所示,說明性計(jì)算機(jī)系統(tǒng)300包括機(jī)箱380、顯示器340和輸入設(shè)備370。計(jì)算機(jī)系統(tǒng)300 包括處理邏輯302、易失性儲(chǔ)存裝置310和非易失性儲(chǔ)存裝置364。圖3C的計(jì)算機(jī)系統(tǒng)390 類似地包括處理邏輯391、易失性儲(chǔ)存裝置393和非易失性儲(chǔ)存裝置397。繼續(xù)參照?qǐng)D3A、 3B和3C,處理邏輯302和處理邏輯391 二者都可以以硬件(例如微處理器)、軟件(例如 微代碼)或硬件和軟件的組合實(shí)現(xiàn)。計(jì)算機(jī)系統(tǒng)300和391還包括計(jì)算機(jī)可讀介質(zhì)。所述 計(jì)算機(jī)可讀介質(zhì)可以包括易失性儲(chǔ)存裝置310和393(例如,隨機(jī)存取存儲(chǔ)器(RAM))、非易 失性儲(chǔ)存裝置364和397 (例如,閃速RAM、只讀存儲(chǔ)器(ROM)、硬盤驅(qū)動(dòng)器、軟盤(例如軟盤 376)、緊致盤只讀存儲(chǔ)器(⑶-ROM,例如⑶378)),或其組合。易失性儲(chǔ)存裝置310、易失性儲(chǔ)存裝置393、非易失性儲(chǔ)存裝置364和非易失性儲(chǔ) 存裝置397中的任一個(gè)或所有這些包括例如分別由處理邏輯302或391執(zhí)行的并且向計(jì)算 機(jī)系統(tǒng)300和390提供本文所述的一些或所有功能的軟件。計(jì)算機(jī)系統(tǒng)300還包括使得 計(jì)算機(jī)系統(tǒng)300能夠經(jīng)由局域網(wǎng)和/或有線或無線廣域網(wǎng)接收信息的網(wǎng)絡(luò)接口(網(wǎng)絡(luò)I/ F)362,其在圖3A的示例中用以太網(wǎng)插口 392表示。計(jì)算機(jī)系統(tǒng)390包括通信接口(通信 I/F)398,其執(zhí)行與網(wǎng)絡(luò)接口 362的功能相似的功能。視頻接口(視頻I/F) 342耦合到計(jì) 算機(jī)系統(tǒng)300中的顯示器340。在用于實(shí)現(xiàn)圖形控制單元160和170的計(jì)算機(jī)系統(tǒng)390的 至少一些說明性實(shí)施例中(在用于實(shí)現(xiàn)網(wǎng)絡(luò)接口和路由器152的計(jì)算機(jī)系統(tǒng)390的至少一 些說明性實(shí)施例中不存在圖形控制單元160和170),顯示器接口(顯示器I/F)395耦合到 顯示器396。當(dāng)在本地操作計(jì)算機(jī)系統(tǒng)300時(shí),用戶經(jīng)由耦合到外設(shè)接口 368的輸入設(shè)備 370(例如鍵盤)和/或點(diǎn)擊設(shè)備372(例如鼠標(biāo))與所述系統(tǒng)進(jìn)行交互。當(dāng)操作計(jì)算機(jī)系 統(tǒng)390時(shí)(例如,當(dāng)用于實(shí)現(xiàn)網(wǎng)絡(luò)接口和路由器152時(shí)),用戶類似地經(jīng)由耦合到外設(shè)接口 399的輸入設(shè)備394和點(diǎn)擊設(shè)備392(在用于實(shí)現(xiàn)圖形控制單元160和170的計(jì)算機(jī)系統(tǒng) 390的至少一些說明性實(shí)施例中這些都不存在)與所述系統(tǒng)交互。計(jì)算機(jī)系統(tǒng)300的顯示 器;340、連同輸入設(shè)備370和/或點(diǎn)擊設(shè)備372(以及類似地計(jì)算機(jī)系統(tǒng)390的顯示器168 和178、輸入設(shè)備394和點(diǎn)擊設(shè)備39 可以一起作為用戶接口操作。計(jì)算機(jī)系統(tǒng)300可以是基于總線的計(jì)算機(jī),其具有多種總線,所述總線通過一 系列包括存儲(chǔ)器控制器集線器(MCH) 304(有時(shí)被稱為“北橋”)和接口控制器集線器 (ICH) 306(有時(shí)被稱為“南橋”)的集線器或橋來互連圖:3B中示出的各種元件。圖:3B的說 明性示例的總線包括將處理邏輯302耦合到MCH 304的前端總線303 ;將視頻接口 342耦 合到MCH 304的加速圖形端口(AGP)總線341 ;將網(wǎng)絡(luò)接口 362、非易失性儲(chǔ)存裝置364、外 設(shè)接口 368和ICH 306彼此耦合的外圍組件互連(PCI)總線361 ;將一個(gè)或多個(gè)高速PCI設(shè) 備352耦合到MCH 304的高速PCI (PCIe)總線351 ;以及將MCH 304耦合到易失性儲(chǔ)存裝 置310內(nèi)的雙列直插式存儲(chǔ)器模塊(DIMM) 320和330的存儲(chǔ)器總線311。計(jì)算機(jī)系統(tǒng)390也可以是基于總線的計(jì)算機(jī),其具有將圖3C所示的各種元件彼此 耦合的PCI總線394,所述元件包括處理器391、易失性儲(chǔ)存裝置393、顯示器接口 395、非易 失性儲(chǔ)存裝置397、通信接口 398和外設(shè)接口 399。計(jì)算機(jī)系統(tǒng)300的外設(shè)接口 368接受來自輸入設(shè)備370和諸如點(diǎn)擊設(shè)備372之類 的其他輸入設(shè)備的信號(hào),并且將所述信號(hào)變換為適合用于在PCI總線361上傳送的形式。計(jì) 算機(jī)系統(tǒng)390的外設(shè)接口 399類似地接受來自輸入設(shè)備394和諸如點(diǎn)擊設(shè)備392之類的其他輸入設(shè)備的信號(hào),并且將所述信號(hào)變換為適合用于在PCI總線394上傳送的形式。計(jì)算 機(jī)系統(tǒng)300的顯示器接口 342可以包括接受來自AGP總線341的信息并且將它變換為適用 于顯示器340的形式的圖形卡或其他合適的視頻接口。計(jì)算機(jī)系統(tǒng)390的顯示器接口 395 可以包括接受來自PCI總線394的幀緩沖器數(shù)據(jù)并且將它變換為適用于顯示器396的形式 的視頻控制邏輯。計(jì)算機(jī)系統(tǒng)300的處理邏輯302收集來自其他系統(tǒng)元件的信息,包括來自外設(shè)接 口 368的輸入數(shù)據(jù)、和來自非易失性儲(chǔ)存裝置364或易失性儲(chǔ)存裝置310或來自經(jīng)由網(wǎng)絡(luò) 接口 362耦合到局域網(wǎng)或廣域網(wǎng)的其他系統(tǒng)(例如用于存儲(chǔ)并分發(fā)可執(zhí)行代碼的拷貝的服 務(wù)器)的程序指令和其他數(shù)據(jù)。處理邏輯302執(zhí)行所述程序指令(例如,服務(wù)器遠(yuǎn)程訪問 軟件21 并相應(yīng)地處理所述數(shù)據(jù)。所述程序指令可以進(jìn)一步配置處理邏輯302以將數(shù)據(jù) 發(fā)送到其他系統(tǒng)元件,所述數(shù)據(jù)比如經(jīng)由視頻接口 342和顯示器340呈現(xiàn)給用戶的信息。 網(wǎng)絡(luò)接口 362使得處理邏輯302能夠經(jīng)由網(wǎng)絡(luò)(例如因特網(wǎng))與其他系統(tǒng)進(jìn)行通信。易失 性儲(chǔ)存裝置310可以充當(dāng)用于處理邏輯302的信息的低等待時(shí)間(low-latency)臨時(shí)儲(chǔ)存 器,并且非易失性儲(chǔ)存裝置364可以充當(dāng)信息的長(zhǎng)期(但更高等待時(shí)間的)儲(chǔ)存器。計(jì)算機(jī)系統(tǒng)390的處理邏輯391類似地收集來自其他系統(tǒng)元件的信息,包括來自 外設(shè)接口 399的輸入數(shù)據(jù)、和來自非易失性儲(chǔ)存裝置397或易失性儲(chǔ)存裝置393或來自可 經(jīng)由通信接口 399被計(jì)算機(jī)系統(tǒng)390訪問的其他外部系統(tǒng)(例如用于存儲(chǔ)并分發(fā)可執(zhí)行代 碼的拷貝的服務(wù)器)的程序指令和其他數(shù)據(jù)。處理邏輯391執(zhí)行所述程序指令(例如,客 戶端遠(yuǎn)程訪問軟件260和270)并相應(yīng)地處理所述數(shù)據(jù)。所述程序指令可以進(jìn)一步配置處 理邏輯391以將數(shù)據(jù)發(fā)送到其他系統(tǒng)元件,所述數(shù)據(jù)比如經(jīng)由顯示器接口 395和顯示器396 呈現(xiàn)給用戶的信息。通信接口 398使得處理邏輯391能夠與其他系統(tǒng)進(jìn)行通信。易失性儲(chǔ) 存裝置393可以充當(dāng)用于處理邏輯391的信息的低等待時(shí)間臨時(shí)儲(chǔ)存器,并且非易失性儲(chǔ) 存裝置397可以充當(dāng)信息的長(zhǎng)期(但更高等待時(shí)間的)儲(chǔ)存器。處理邏輯302并且因此作為整體的計(jì)算機(jī)系統(tǒng)300根據(jù)存儲(chǔ)在非易失性儲(chǔ)存裝置 364上或經(jīng)由網(wǎng)絡(luò)接口 362接收的一個(gè)或多個(gè)程序操作。處理邏輯302可以將所述程序的 部分拷貝到易失性儲(chǔ)存裝置310中以便更快速訪問,并且可以響應(yīng)于輸入設(shè)備370的用戶 啟動(dòng)而在程序之間切換或執(zhí)行附加程序。所述附加程序可以從非易失性儲(chǔ)存裝置364中取 回或可以經(jīng)由網(wǎng)絡(luò)接口 362而從其他位置取回或接收。這些程序的一個(gè)或多個(gè)在計(jì)算機(jī)系 統(tǒng)300上執(zhí)行,從而使得所述計(jì)算機(jī)系統(tǒng)執(zhí)行本文公開的至少一些功能。同樣,處理邏輯391并且因此作為整體的計(jì)算機(jī)系統(tǒng)390根據(jù)存儲(chǔ)在非易失性儲(chǔ) 存裝置397上或經(jīng)由通信接口 398接收的一個(gè)或多個(gè)程序操作。處理邏輯391可以將所述 程序的部分拷貝到易失性儲(chǔ)存裝置393中以便更快速訪問,并且可以響應(yīng)于輸入設(shè)備394 的用戶啟動(dòng)而在程序之間切換或執(zhí)行附加程序。所述附加程序可以從非易失性儲(chǔ)存裝置 397中取回或可以經(jīng)由通信接口 398而從其他位置取回或接收。這些程序的一個(gè)或多個(gè)在 計(jì)算機(jī)系統(tǒng)390上執(zhí)行,從而使得所述計(jì)算機(jī)系統(tǒng)執(zhí)行本文公開的至少一些功能。盡管本文所述的說明性實(shí)施例使用2個(gè)顯示器作為客戶端設(shè)備150的一部分,但 是本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到其他說明性實(shí)施例可以包括以多種配置組織的任意數(shù)量 的顯示器。示例可以包括被組織為整體顯示器的上半部和下半部的2個(gè)顯示器,或顯示器 的4X3矩陣,這只是舉幾個(gè)例子。顯示器的所有這樣的配置和數(shù)量都在本公開的范圍內(nèi)。
由于簡(jiǎn)化了客戶端設(shè)備150的組件的設(shè)計(jì),所以可以減小所述客戶端設(shè)備的整體 尺寸和輪廓(profile)。例如,在至少一些說明性實(shí)施例中,圖形控制單元可被減小至類似 USB存儲(chǔ)棒(有時(shí)被稱為“dongle”)的外殼,其用VGA連接器耦合到顯示器并且用USB連 接器耦合到網(wǎng)絡(luò)接口和路由器。在其他說明性實(shí)施例中,所述圖形控制單元可以集成在所 述顯示設(shè)備外殼內(nèi),其中USB電纜將網(wǎng)絡(luò)接口和路由器耦合到每個(gè)組合的圖形控制單元/ 顯示設(shè)備。其他外殼配置對(duì)本領(lǐng)域普通技術(shù)人員而言將變得顯而易見,并且所有這樣的配 置都在本公開的范圍內(nèi)。圖4A示出根據(jù)至少一些說明性實(shí)施例的用于在基于圖像的遠(yuǎn)程訪問系統(tǒng)的服務(wù) 器內(nèi)生成并分發(fā)圖形圖像數(shù)據(jù)的方法400。在服務(wù)器幀緩沖器內(nèi)的圖像數(shù)據(jù)被劃分為子區(qū) 域(塊40 之后,通過將包括當(dāng)前圖像數(shù)據(jù)的幀緩沖器與包括較舊的幀數(shù)據(jù)的另一個(gè)幀緩 沖器相比較來生成差數(shù)據(jù)(塊404)。所述差數(shù)據(jù)基于包含所述數(shù)據(jù)的幀緩沖器子區(qū)域而被 劃分(塊406),并且用于每個(gè)區(qū)域的數(shù)據(jù)被壓縮(塊408)。在至少一些說明性實(shí)施例中, 省略了塊408的壓縮。一旦所述數(shù)據(jù)被壓縮,就形成消息,其中每個(gè)消息包括對(duì)應(yīng)于單個(gè)子 區(qū)域的差數(shù)據(jù),并且進(jìn)一步包括對(duì)應(yīng)的子區(qū)域標(biāo)識(shí)符,并且將具有差數(shù)據(jù)的消息傳輸?shù)娇?戶端設(shè)備(塊410),從而結(jié)束所述方法(塊412)。在至少一些說明性實(shí)施例中,除了差數(shù) 據(jù)之外,子區(qū)域特定的參考幀也被傳輸?shù)娇蛻舳?。圖4B示出根據(jù)至少一些說明性實(shí)施例的用于在基于圖像的遠(yuǎn)程訪問系統(tǒng)的客戶 端內(nèi)接收并路由圖形圖像數(shù)據(jù)的方法450。在接收到與服務(wù)器幀緩沖器內(nèi)的子區(qū)域相關(guān)聯(lián) 的圖形圖像數(shù)據(jù)后,所述圖像數(shù)據(jù)被路由到耦合到與相同的子區(qū)域相關(guān)聯(lián)的顯示器的圖形 控制單元(塊45 。在至少一些說明性實(shí)施例中,所接收的圖形圖像數(shù)據(jù)包括如由方法400 描述的那樣所生成的差數(shù)據(jù),而在其他說明性實(shí)施例中,所接收的圖形圖像數(shù)據(jù)還可以包 括參考幀數(shù)據(jù)。一旦所述圖形圖像數(shù)據(jù)被路由到圖形控制單元,所述數(shù)據(jù)就被解壓縮(塊 454)。在至少一些說明性實(shí)施例中,省略了塊454的解壓縮。在解壓縮之后,圖形圖像數(shù)據(jù) 被用于更新對(duì)應(yīng)于與所述數(shù)據(jù)的子區(qū)域相關(guān)聯(lián)的顯示器的客戶端幀緩沖器(塊456),從而 結(jié)束所述方法(塊458)。上面的討論意欲說明本發(fā)明的原理和各種實(shí)施例。對(duì)于本領(lǐng)域技術(shù)人員來說,一 旦完全理解上述公開,許多變形和修改將變得清楚。例如,盡管所述說明性實(shí)施例描述了使 用USB接口在網(wǎng)絡(luò)接口和路由器與其他客戶端組件之間進(jìn)行通信,但是其他說明性實(shí)施例 包括其他合適的通信接口,并且所有這樣的通信接口都在本公開的范圍內(nèi)。而且,盡管所述 服務(wù)器計(jì)算機(jī)被描述為使用雙緩沖的幀緩沖器,并且所述客戶端設(shè)備被描述為使用單緩沖 的幀緩沖器,但是任意數(shù)量的附加幀緩沖器可以在所述的服務(wù)器計(jì)算機(jī)和客戶端設(shè)備內(nèi)使 用,并且所有這樣的幀緩沖器配置都在本公開的范圍內(nèi)。此外,盡管在一些說明性實(shí)施例中 可能僅僅描述了差數(shù)據(jù),但是除了如本文所描述的那樣生成和分發(fā)差數(shù)據(jù)之外,所描述的 系統(tǒng)和方法也應(yīng)用于參考幀和參考幀數(shù)據(jù)的附加分發(fā)。而且,盡管本文所描述的實(shí)施例包 括主操作系統(tǒng),但是其他說明性實(shí)施例包括不需要主操作系統(tǒng)的服務(wù)器遠(yuǎn)程訪問軟件,或 者包括作為客戶或主操作系統(tǒng)的服務(wù)執(zhí)行的服務(wù)器遠(yuǎn)程訪問軟件。而且,盡管在所述的說 明性實(shí)施例中示出配置有單個(gè)圖形適配器的客戶操作系統(tǒng),但是其他說明性實(shí)施例可以包 括配置有多個(gè)圖形適配器(真實(shí)的或虛擬的)的客戶操作系統(tǒng),每個(gè)圖形適配器配置有如 本文所述的多個(gè)子區(qū)域和顯示設(shè)備。下面的權(quán)利要求意欲被解釋為包括所有這樣的變形和修改。
權(quán)利要求
1.一種方法,包括將存儲(chǔ)在與圖形適配器相關(guān)聯(lián)的第一幀緩沖器中的圖形數(shù)據(jù)劃分為多個(gè)子區(qū)域,所述 多個(gè)子區(qū)域的每一個(gè)唯一地與多個(gè)顯示器之一相關(guān)聯(lián),并且所述幀緩沖器內(nèi)的每個(gè)位置包 括與待呈現(xiàn)在顯示器上的像素相關(guān)聯(lián)的數(shù)據(jù);通過將也與所述圖形適配器相關(guān)聯(lián)并且包括先前呈現(xiàn)在所述多個(gè)顯示器上的數(shù)據(jù)的 第二幀緩沖器中存儲(chǔ)的數(shù)據(jù)與第一幀緩沖器中存儲(chǔ)的數(shù)據(jù)相比較來生成差數(shù)據(jù);以及在消息內(nèi)通過網(wǎng)絡(luò)將至少部分差數(shù)據(jù)傳輸?shù)桨ㄋ龆鄠€(gè)顯示器的客戶端設(shè)備,所述 消息包括與子區(qū)域相關(guān)聯(lián)的差數(shù)據(jù),并且進(jìn)一步包括與所述子區(qū)域相關(guān)聯(lián)的標(biāo)識(shí)符; 其中所述差數(shù)據(jù)能夠用于更新所述多個(gè)顯示器上所呈現(xiàn)的圖像。
2.權(quán)利要求1的方法,進(jìn)一步包括在所述傳輸之前壓縮所述差數(shù)據(jù)。
3.權(quán)利要求2的方法,進(jìn)一步包括在所述傳輸之后在客戶端工作站處解壓縮所述差數(shù)據(jù)。
4.權(quán)利要求1的方法,進(jìn)一步包括 在客戶端設(shè)備處接收所述消息;基于所述消息內(nèi)的標(biāo)識(shí)符將所述消息內(nèi)的差數(shù)據(jù)路由到所述多個(gè)顯示器中的顯示器;以及使用所述消息內(nèi)的差數(shù)據(jù)來更新所述顯示器上呈現(xiàn)的圖像。
5.權(quán)利要求1的方法,進(jìn)一步包括操作所述客戶端設(shè)備以配置由所述圖形適配器生成 的圖像的分辨率。
6.權(quán)利要求1的方法,進(jìn)一步包括操作所述客戶端設(shè)備以定義第一幀緩沖器內(nèi)的所述 多個(gè)子區(qū)域、將標(biāo)識(shí)符與所述多個(gè)子區(qū)域中的每一個(gè)相關(guān)聯(lián)、以及將所述多個(gè)子區(qū)域中的 每一個(gè)與所述多個(gè)顯示器之一唯一地相關(guān)聯(lián)。
7.一種系統(tǒng),包括服務(wù)器計(jì)算機(jī),所述服務(wù)器計(jì)算機(jī)包括 服務(wù)器處理邏輯;服務(wù)器存儲(chǔ)器,其耦合到所述服務(wù)器處理邏輯;以及圖形適配器,其耦合到所述服務(wù)器處理邏輯和服務(wù)器存儲(chǔ)器,所述圖形適配器包括多 個(gè)服務(wù)器幀緩沖器,所述多個(gè)服務(wù)器幀緩沖器中的每一個(gè)內(nèi)的每個(gè)位置包括與待呈現(xiàn)在顯 示器上的像素相關(guān)聯(lián)的數(shù)據(jù);其中第一服務(wù)器幀緩沖器內(nèi)存儲(chǔ)的數(shù)據(jù)被分組為第一服務(wù)器幀緩沖器內(nèi)的子區(qū)域,每 個(gè)子區(qū)域唯一地與多個(gè)顯示設(shè)備中的一個(gè)顯示設(shè)備相關(guān)聯(lián);以及其中通過確定第一服務(wù)器幀緩沖器中存儲(chǔ)的數(shù)據(jù)與第二服務(wù)器幀緩沖器中存儲(chǔ)的數(shù) 據(jù)之間的差來生成用于更新呈現(xiàn)在所述多個(gè)顯示設(shè)備中至少一個(gè)上的圖像的差數(shù)據(jù),第二 服務(wù)器幀緩沖器中的數(shù)據(jù)先前已經(jīng)被顯示。
8.權(quán)利要求7的系統(tǒng),其中所述差數(shù)據(jù)由所述服務(wù)器處理邏輯或所述圖形適配器生成。
9.權(quán)利要求7的系統(tǒng),其中所述圖形適配器是包括圖形處理邏輯并且進(jìn)一步包括含有 所述多個(gè)幀緩沖器的圖形存儲(chǔ)器的真實(shí)的圖形適配器。
10.權(quán)利要求7的系統(tǒng),其中所述圖形適配器是虛擬的圖形適配器并且所述服務(wù)器存儲(chǔ)器包括所述多個(gè)幀緩沖器。
11.權(quán)利要求7的系統(tǒng),進(jìn)一步包括耦合到所述服務(wù)器處理邏輯的服務(wù)器網(wǎng)絡(luò)接口,其 中包括與所述多個(gè)子區(qū)域中的子區(qū)域相關(guān)聯(lián)的差數(shù)據(jù)的消息由網(wǎng)絡(luò)接口通過網(wǎng)絡(luò)傳輸?shù)?客戶端設(shè)備,所述消息進(jìn)一步包括與所述子區(qū)域相關(guān)聯(lián)的標(biāo)識(shí)符。
12.權(quán)利要求11的系統(tǒng),其中所述差數(shù)據(jù)在被傳輸?shù)娇蛻舳嗽O(shè)備之前被服務(wù)器處理邏 輯壓縮。
13.權(quán)利要求11的系統(tǒng),其中所述客戶端設(shè)備包括 客戶端網(wǎng)絡(luò)接口和路由器;多個(gè)圖形控制單元,其耦合到所述客戶端網(wǎng)絡(luò)接口和路由器,每個(gè)圖形控制單元生成 視頻控制和數(shù)據(jù)信號(hào);以及所述多個(gè)顯示設(shè)備,每個(gè)顯示設(shè)備耦合到所述多個(gè)圖形控制單元中的圖形控制單元; 其中所述客戶端網(wǎng)絡(luò)接口和路由器從服務(wù)器計(jì)算機(jī)接收消息并且基于所述消息內(nèi)的 標(biāo)識(shí)符將該消息路由到所述多個(gè)圖形控制單元之一;以及其中所述圖形控制單元使用所述消息內(nèi)的差數(shù)據(jù)來更新耦合到所述圖形控制單元的 所述多個(gè)顯示設(shè)備中的顯示設(shè)備上呈現(xiàn)的圖像。
14.權(quán)利要求13的系統(tǒng),其中如果從客戶端網(wǎng)絡(luò)接口和路由器接收的消息內(nèi)的差數(shù)據(jù) 先前被服務(wù)器計(jì)算機(jī)壓縮,則所述多個(gè)圖形控制單元中的每一個(gè)解壓縮所述差數(shù)據(jù)。
15.權(quán)利要求13的系統(tǒng),進(jìn)一步包括 鼠標(biāo),其耦合到客戶端網(wǎng)絡(luò)接口和路由器; 鍵盤,其耦合到客戶端網(wǎng)絡(luò)接口和路由器;其中來自鍵盤和鼠標(biāo)的數(shù)據(jù)被客戶端網(wǎng)絡(luò)接口接收并且通過網(wǎng)絡(luò)被傳輸?shù)椒?wù)器計(jì) 算機(jī)。
16.一種計(jì)算機(jī)可讀介質(zhì),包括使得第一處理器進(jìn)行下列操作的軟件將存儲(chǔ)在與圖形適配器相關(guān)聯(lián)的第一幀緩沖器中的圖形數(shù)據(jù)劃分為多個(gè)子區(qū)域,所述 多個(gè)子區(qū)域中的每一個(gè)唯一地與多個(gè)顯示器之一相關(guān)聯(lián),并且所述幀緩沖器內(nèi)的每個(gè)位置 包括與待呈現(xiàn)在顯示器上的像素相關(guān)聯(lián)的數(shù)據(jù);通過將也與所述圖形適配器相關(guān)聯(lián)并且包括先前呈現(xiàn)在所述多個(gè)顯示器上的數(shù)據(jù)的 第二幀緩沖器中存儲(chǔ)的數(shù)據(jù)與第一幀緩沖器中存儲(chǔ)的數(shù)據(jù)相比較來生成差數(shù)據(jù);以及通過網(wǎng)絡(luò)在消息內(nèi)將至少部分差數(shù)據(jù)傳輸?shù)桨ㄋ龆鄠€(gè)顯示器的客戶端設(shè)備,所述 消息包括與子區(qū)域相關(guān)聯(lián)的差數(shù)據(jù),并且進(jìn)一步包括與所述子區(qū)域相關(guān)聯(lián)的標(biāo)識(shí)符; 其中所述差數(shù)據(jù)能夠用于更新所述多個(gè)顯示器上所呈現(xiàn)的圖像。
17.權(quán)利要求16的計(jì)算機(jī)可讀介質(zhì),其中所述軟件進(jìn)一步使得第一處理器在傳輸之前 壓縮所述差數(shù)據(jù)。
18.權(quán)利要求17的計(jì)算機(jī)可讀介質(zhì),其中所述軟件使得第二處理器在傳輸之后在客戶 端工作站處解壓縮所述差數(shù)據(jù)。
19.權(quán)利要求16的計(jì)算機(jī)可讀介質(zhì),其中所述軟件使得第二處理器使用所述消息內(nèi)的 差數(shù)據(jù)來更新所述多個(gè)顯示器中的顯示器上呈現(xiàn)的圖像。
20.權(quán)利要求19的計(jì)算機(jī)可讀介質(zhì),其中所述軟件使得第三處理器在客戶端設(shè)備處接 收所述消息,并且基于所述消息內(nèi)的標(biāo)識(shí)符將所述消息內(nèi)的差數(shù)據(jù)路由到與所述顯示器相關(guān)聯(lián)的圖形控制單元。
全文摘要
本文描述了基于圖像的遠(yuǎn)程訪問系統(tǒng)和方法。至少一些說明性實(shí)施例包括一種方法,該方法包括將與圖形適配器相關(guān)聯(lián)的第一幀緩沖器(402)中的圖形數(shù)據(jù)劃分為多個(gè)子區(qū)域(所述子區(qū)域的每一個(gè)唯一地與多個(gè)顯示器之一相關(guān)聯(lián),并且所述幀緩沖器內(nèi)的每個(gè)位置包括待呈現(xiàn)在顯示器上的像素?cái)?shù)據(jù)),通過將也與所述圖形適配器相關(guān)聯(lián)并且包括先前呈現(xiàn)的顯示數(shù)據(jù)的第二幀緩沖器中的數(shù)據(jù)與第一幀緩沖器中的數(shù)據(jù)相比較來生成差數(shù)據(jù)(404);以及在消息內(nèi)通過網(wǎng)絡(luò)將至少部分差數(shù)據(jù)(410)傳輸?shù)桨ㄋ龆鄠€(gè)顯示器的客戶端設(shè)備(所述消息包括與子區(qū)域(406)相關(guān)聯(lián)的差數(shù)據(jù)以及子區(qū)域標(biāo)識(shí)符)。所述差數(shù)據(jù)能夠用于更新所述多個(gè)顯示器上的圖像。
文檔編號(hào)H04L12/28GK102047612SQ200880129365
公開日2011年5月4日 申請(qǐng)日期2008年3月24日 優(yōu)先權(quán)日2008年3月24日
發(fā)明者D·A·托馬斯, R·M·霍奇穆思 申請(qǐng)人:惠普開發(fā)有限公司