專(zhuān)利名稱(chēng):經(jīng)改進(jìn)的命令遙控技術(shù)的制作方法
經(jīng)改進(jìn)的命令遙控技術(shù)
背景技術(shù):
終端服務(wù)提供用于允許訪問(wèn)存儲(chǔ)在服務(wù)器上的應(yīng)用程序和數(shù)據(jù)的技術(shù)。用戶(hù)輸入通過(guò)網(wǎng)絡(luò)連接被發(fā)送給服務(wù)器,并且音頻和圖形被從服務(wù)器發(fā)送給客戶(hù)機(jī)。這些年來(lái),已經(jīng)開(kāi)發(fā)出用于遙控圖形的不同技術(shù),比如命令級(jí)遙控和位圖級(jí)遙控。一般認(rèn)為位圖級(jí)遙控是這兩種技術(shù)中較容易實(shí)現(xiàn)的。在位圖遙控中,圖形處理在終端服務(wù)器上執(zhí)行,并且例如形成位圖的像素值陣列之類(lèi)的最終圖像被壓縮并且通過(guò)網(wǎng)絡(luò)被發(fā)送給客戶(hù)機(jī)。該技術(shù)需要具有足夠計(jì)算能力來(lái)為一個(gè)或多個(gè)客戶(hù)機(jī)呈現(xiàn)圖像的服務(wù)
ο另一方面,命令級(jí)遙控將圖形處理推卸給客戶(hù)機(jī)??梢员或?qū)動(dòng)程序處理并且被圖形處理器執(zhí)行的例如頂點(diǎn)之類(lèi)的圖元可以被捕獲并且被發(fā)送給客戶(hù)機(jī)。這降低了遙控圖形所需要的處理能力,但是傳輸表示3D圖元的數(shù)據(jù)比使用位圖遙控需要更大的帶寬。因此, 用于減小實(shí)現(xiàn)命令級(jí)遙控所需要的帶寬的技術(shù)是合乎需要的。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)示例實(shí)施例描述了一種方法。在該示例中,該方法包括但不限于,在存儲(chǔ)器中存儲(chǔ)多個(gè)圖元的頂點(diǎn);確定所述圖元中的至少一部分沒(méi)有被發(fā)送至終端服務(wù)器客戶(hù)機(jī);以及將所確定的該部分頂點(diǎn)發(fā)送至終端服務(wù)器客戶(hù)機(jī)。除前述的之外,在構(gòu)成本發(fā)明的一部分的權(quán)利要求書(shū)、附圖、以及文本中描述了其他方面。本發(fā)明的一個(gè)示例實(shí)施例描述了一種方法。在該示例中,該方法包括但不限于,存儲(chǔ)多個(gè)圖元的頂點(diǎn),每一圖元由至少一個(gè)頂點(diǎn)定義;使用前移編碼器對(duì)頂點(diǎn)進(jìn)行編碼;以及將經(jīng)編碼的頂點(diǎn)發(fā)送至終端服務(wù)器客戶(hù)機(jī)。除前述的之外,在構(gòu)成本發(fā)明的一部分的權(quán)利要求書(shū)、附圖、以及文本中描述了其他方面。本發(fā)明的一個(gè)示例實(shí)施例描述了一種方法。在該示例中,該方法包括但不限于,將圖形數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,所述圖形數(shù)據(jù)包括紋理和頂點(diǎn);基于存儲(chǔ)于存儲(chǔ)器的圖形數(shù)據(jù)與先前被發(fā)送至終端服務(wù)器客戶(hù)機(jī)的圖形數(shù)據(jù)的比較,確定存儲(chǔ)于存儲(chǔ)器的圖形數(shù)據(jù)的至少一部分已改變;預(yù)處理已改變的至少一部分圖形數(shù)據(jù);以及將已改變的圖形數(shù)據(jù)發(fā)送至終端服務(wù)器客戶(hù)機(jī)。除前述的之外,在構(gòu)成本發(fā)明的一部分的權(quán)利要求書(shū)、附圖、以及文本中描述了其他方面。本領(lǐng)域技術(shù)人員將理解,本發(fā)明的一個(gè)或多個(gè)方面可包括但不限于用于實(shí)現(xiàn)本發(fā)明的本文所述方面的電路和/或編程;該電路和/或編程實(shí)質(zhì)上可以是配置成實(shí)現(xiàn)本文所述方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇。以上是發(fā)明內(nèi)容,并因此必然包含細(xì)節(jié)的簡(jiǎn)化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說(shuō)明性的并且決不旨在是限制性的。
圖1描繪其中可實(shí)現(xiàn)本發(fā)明的各方面的示例計(jì)算機(jī)系統(tǒng)。
圖2描繪用于實(shí)施本發(fā)明的各方面的操作環(huán)境。
圖3描繪用于實(shí)施本發(fā)明的各方面的操作過(guò)程300。
圖4描繪圖3的操作過(guò)程300的替換實(shí)施例。
圖5描繪圖4的操作過(guò)程300的替換實(shí)施例。
圖6描繪圖5的操作過(guò)程300的替換實(shí)施例。
圖7描繪圖6的操作過(guò)程300的替換實(shí)施例。
圖8描繪圖7的操作過(guò)程300的替換實(shí)施例。
圖9示出圖4的操作過(guò)程300的替換實(shí)施例。
圖10示出用于實(shí)施本發(fā)明的各方面的示例操作過(guò)程。
圖11示出圖10的操作過(guò)程的替換實(shí)施例。
圖12示出圖11的操作過(guò)程的替換實(shí)施例。
圖13示出圖12的操作過(guò)程的替換實(shí)施例。
圖14示出用于實(shí)施本發(fā)明的各方面的示例操作過(guò)程。
圖15示出圖14的操作過(guò)程的替換實(shí)施例。
具體實(shí)施例方式本發(fā)明的各實(shí)施例可以在一個(gè)或更多計(jì)算機(jī)上執(zhí)行。圖1和下面討論旨在提供其中實(shí)現(xiàn)本發(fā)明的適當(dāng)計(jì)算環(huán)境的簡(jiǎn)要描述。本領(lǐng)域技術(shù)人員可明白,圖1的計(jì)算機(jī)系統(tǒng)在一些實(shí)施例中可實(shí)現(xiàn)圖2的服務(wù)器200和客戶(hù)機(jī)201。在這些示例實(shí)施例中,服務(wù)器200和客戶(hù)機(jī)201可以包括圖1中描述的組件中的一些或全部以及被配置為實(shí)例化本發(fā)明的具體方面的電路。貫穿本發(fā)明使用的術(shù)語(yǔ)電路例如可包括諸如硬件中斷控制器、硬盤(pán)驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器之類(lèi)的硬件組件、以及用于操作這些硬件的固件/軟件。在相同實(shí)施例或其他實(shí)施例中,電路可包括配置為通過(guò)固件或固定開(kāi)關(guān)執(zhí)行功能的微處理器。在相同或其他示例性實(shí)施例中,電路可以包括一個(gè)或多個(gè)邏輯處理器,例如多核通用處理單元的一個(gè)或多個(gè)核。本示例中的邏輯處理器可以由軟件指令來(lái)配置,軟件指令體現(xiàn)為可用于執(zhí)行從例如RAM、R0M、固件和/或虛擬存儲(chǔ)器之類(lèi)的存儲(chǔ)器加載的功能的邏輯。在電路包括硬件和軟件的組合的示例性實(shí)施例中,實(shí)現(xiàn)者可以編寫(xiě)體現(xiàn)為邏輯的源代碼,該源代碼隨后被編譯成可由邏輯處理器執(zhí)行的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員能夠理解,現(xiàn)有技術(shù)已經(jīng)發(fā)展到硬件、軟件或硬件/軟件的組合之間幾乎沒(méi)有差別的地步,因此選擇硬件還是軟件來(lái)實(shí)現(xiàn)特定功能只是一個(gè)設(shè)計(jì)選擇。更具體地,本領(lǐng)域技術(shù)人員可以明白軟件進(jìn)程可被變換成等價(jià)的硬件結(jié)構(gòu),并且硬件結(jié)構(gòu)本身可被變換成等價(jià)的軟件進(jìn)程。因此,對(duì)于硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的選擇是一個(gè)設(shè)計(jì)選擇并留給實(shí)現(xiàn)者?,F(xiàn)在參照?qǐng)D1,描繪了示例性通用計(jì)算系統(tǒng)。該通用計(jì)算系統(tǒng)可包括常規(guī)的計(jì)算機(jī)20等,它包括通用處理單元21、系統(tǒng)存儲(chǔ)器22和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合到處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是若干類(lèi)型的總線結(jié)構(gòu)中的任一種,包括使用各種總線體系結(jié)構(gòu)中的任一種的存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線,以及局部總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM) M和隨機(jī)存取存儲(chǔ)器(RAM) 25?;据斎? 輸出系統(tǒng)沈出10幻被存儲(chǔ)在ROM M中,包含了諸如在啟動(dòng)期間幫助在計(jì)算機(jī)20內(nèi)的元件
5之間傳輸信息的基本例程。計(jì)算機(jī)20還可以包括用于讀寫(xiě)硬盤(pán)(未示出)的硬盤(pán)驅(qū)動(dòng)器 27、用于讀寫(xiě)可移動(dòng)磁盤(pán)四的磁盤(pán)驅(qū)動(dòng)器觀,以及用于讀寫(xiě)諸如⑶ROM或其他光學(xué)介質(zhì)之類(lèi)的可移動(dòng)光盤(pán)31的光盤(pán)驅(qū)動(dòng)器30。在一些示例性實(shí)施例中,實(shí)施本發(fā)明各方面的計(jì)算機(jī)可執(zhí)行指令可以存儲(chǔ)在ROM 24、硬盤(pán)(未示出)、RAM 25、可移動(dòng)磁盤(pán)四、光盤(pán)31和/或通用處理單元21的高速緩存中。硬盤(pán)驅(qū)動(dòng)器27、磁盤(pán)驅(qū)動(dòng)器28,以及光驅(qū)動(dòng)器30分別通過(guò)硬盤(pán)驅(qū)動(dòng)器接口 32、磁盤(pán)驅(qū)動(dòng)器接口 33,以及光驅(qū)動(dòng)器接口 34連接到系統(tǒng)總線23。驅(qū)動(dòng)器以及它們相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)20提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、 程序模塊,及其他數(shù)據(jù)的非易失性存儲(chǔ)。雖然這里描述的示例性環(huán)境采用硬盤(pán)、可移動(dòng)磁盤(pán) 29和可移動(dòng)光盤(pán)31,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在該示例性操作環(huán)境中也能使用可存儲(chǔ)能由計(jì)算機(jī)訪問(wèn)的數(shù)據(jù)的其它類(lèi)型計(jì)算機(jī)可讀介質(zhì),如盒式磁帶、閃存卡、數(shù)字視頻盤(pán)、柏努利(Bernoulli)盒式磁帶、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等。可以有若干個(gè)程序模塊存儲(chǔ)在硬盤(pán)、磁盤(pán)四、光盤(pán)31、ROM 24,和/或RAM 25上, 包括操作系統(tǒng)35、一個(gè)或多個(gè)應(yīng)用程序36、其他程序模塊37、以及程序數(shù)據(jù)38。用戶(hù)可以通過(guò)諸如鍵盤(pán)40和定點(diǎn)設(shè)備42之類(lèi)的輸入設(shè)備向計(jì)算機(jī)20中輸入命令和信息。其他輸入設(shè)備(未示出)可以包括麥克風(fēng)、游戲桿、游戲手柄、圓盤(pán)式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備常通過(guò)耦合到系統(tǒng)總線的串行端口接口 46連接到通用處理單元21,但也可通過(guò)其它接口連接,如并行端口、游戲端口或通用串行總線(USB)。顯示器47或其他類(lèi)型的顯示設(shè)備也可以通過(guò)諸如視頻適配器48之類(lèi)的接口,連接到系統(tǒng)總線23。除了顯示器 47之外,計(jì)算機(jī)通常還包括其他外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。圖1的示例性系統(tǒng)也包括主機(jī)適配器55、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線56,以及連接到SCSI總線 56的外部存儲(chǔ)設(shè)備62。計(jì)算機(jī)20可以使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)(如遠(yuǎn)程計(jì)算機(jī)49)的邏輯連接來(lái)在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點(diǎn),并且通常可包括上文參考計(jì)算機(jī)20所描述的許多或全部元件,雖然在圖1中只示出了存儲(chǔ)設(shè)備50。圖1中所描繪的邏輯連接可包括局域網(wǎng)(LAN) 51和廣域網(wǎng) (WAN) 52。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)部網(wǎng)和因特網(wǎng)中是普遍現(xiàn)象。當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20可通過(guò)網(wǎng)絡(luò)接口或適配器53連接到LAN 51。 當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20通??砂ㄕ{(diào)制解調(diào)器M,或用于通過(guò)廣域網(wǎng)52 (如通過(guò)因特網(wǎng))建立通信的其他裝置。調(diào)制解調(diào)器54——其可以是內(nèi)置的或外置的,可通過(guò)串行端口接口 46連接到系統(tǒng)總線23。在聯(lián)網(wǎng)環(huán)境中,參考計(jì)算機(jī)20所描述的程序模塊,或其部分,可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢岳斫?,所示出的網(wǎng)絡(luò)連接只是示例性的, 也可以使用用于在計(jì)算機(jī)之間建立通信鏈路的其他裝置。此外,盡管可以預(yù)想本發(fā)明的很多實(shí)施例特別適合于計(jì)算機(jī)化系統(tǒng),但是,本文中沒(méi)有任何表述旨在將本發(fā)明限制于這樣的實(shí)施例?,F(xiàn)在參考圖2,其總體上示出了可用在各實(shí)施例中的包括終端服務(wù)會(huì)話204的示例操作系統(tǒng)202。本領(lǐng)域技術(shù)人員可明白,該示例操作系統(tǒng)200可由如圖1的計(jì)算機(jī)20之類(lèi)的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。如圖所示,可提供底層硬件存儲(chǔ)設(shè)備208,例如硬盤(pán)驅(qū)動(dòng)器、網(wǎng)絡(luò)接口卡 (NIC) 210、圖形處理單元218、至少一個(gè)邏輯處理器212以及RAM214。
在各實(shí)施例中,終端服務(wù)可以被提供給諸如客戶(hù)機(jī)201之類(lèi)的至少一個(gè)客戶(hù)機(jī) (盡管描繪了一個(gè)客戶(hù)機(jī),但終端服務(wù)可被提供給更多客戶(hù)機(jī))。示例客戶(hù)機(jī)201可以包括由硬件來(lái)實(shí)現(xiàn)的計(jì)算機(jī)終端,其中該硬件被配置為將用戶(hù)輸入定向到終端服務(wù)器會(huì)話并顯示該會(huì)話生成的用戶(hù)界面信息。在另一實(shí)施例中,客戶(hù)機(jī)201可以由包括與圖1的計(jì)算機(jī) 20的元件類(lèi)似的元件的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在該實(shí)施例中,客戶(hù)機(jī)201可包括被配置為實(shí)現(xiàn)操作系統(tǒng)的電路以及被配置為模擬終端的功能(例如,可由一個(gè)或多個(gè)邏輯處理器212執(zhí)行的遠(yuǎn)程桌面客戶(hù)機(jī)應(yīng)用)的電路。本領(lǐng)域技術(shù)人員能夠理解,被配置為實(shí)現(xiàn)操作系統(tǒng)202 的電路也可以包括被配置為模擬終端的電路。操作系統(tǒng)202可包括可將處理器212配置來(lái)生成會(huì)話的指令。簡(jiǎn)言之,會(huì)話一般可以包括用戶(hù)模式進(jìn)程應(yīng)用程序206,比如視頻游戲、文字處理程序、web瀏覽器、用戶(hù)界面 (窗口、對(duì)話框、桌面等等)、媒體播放器等等。應(yīng)用程序206可以由例如執(zhí)行進(jìn)程等可提供用于執(zhí)行應(yīng)用程序206和與內(nèi)核234交互的平臺(tái)的各種子系統(tǒng)來(lái)實(shí)施。一個(gè)這樣的子系統(tǒng) (例如,指令)是環(huán)境子系統(tǒng)對(duì)4,這將在下面更詳細(xì)地解釋。會(huì)話可包括外殼(shell)和用戶(hù)界面(其由用戶(hù)界面進(jìn)程來(lái)呈現(xiàn))、跟蹤該桌面內(nèi)的鼠標(biāo)移動(dòng)的子系統(tǒng)、將對(duì)圖標(biāo)的鼠標(biāo)點(diǎn)擊翻譯成實(shí)現(xiàn)程序?qū)嵗拿畹淖酉到y(tǒng)等等。一般而言,例如在操作系統(tǒng)202通過(guò)網(wǎng)絡(luò)連接從諸如客戶(hù)機(jī)201之類(lèi)的客戶(hù)機(jī)接收連接請(qǐng)求時(shí),會(huì)話可在逐用戶(hù)的基礎(chǔ)上生成。一般而言,連接請(qǐng)求可以首先由例如遠(yuǎn)程桌面協(xié)議棧(RDP)之類(lèi)的傳輸棧來(lái)處理。傳輸??砂蓪⑻幚砥?12配置為監(jiān)聽(tīng)某個(gè)端口上的連接消息并將這些消息轉(zhuǎn)發(fā)給引擎212的指令。當(dāng)生成會(huì)話時(shí),傳輸邏輯可以被執(zhí)行并且可以為每個(gè)會(huì)話實(shí)例化遠(yuǎn)程桌面協(xié)議棧實(shí)例,比如棧實(shí)例214。一般而言,遠(yuǎn)程桌面協(xié)議棧實(shí)例214可被配置為將輸出路由到客戶(hù)機(jī)201并將客戶(hù)機(jī)輸入路由到環(huán)境子系統(tǒng)M4。在會(huì)話創(chuàng)建過(guò)程期間,會(huì)話管理器216可以被邏輯處理器212執(zhí)行并且處理器212 可以例如通過(guò)如下方式初始化和管理每個(gè)會(huì)話生成會(huì)話空間的會(huì)話標(biāo)識(shí)符;將該會(huì)話標(biāo)識(shí)符添加到表;給會(huì)話空間分配存儲(chǔ)器;以及在被分配給會(huì)話空間的存儲(chǔ)器中生成系統(tǒng)環(huán)境變量和子系統(tǒng)進(jìn)程的實(shí)例。如圖所示,在一實(shí)施例中,應(yīng)用程序206可以在會(huì)話204的用戶(hù)模式內(nèi)執(zhí)行,并且可以使用諸如由圖形顯示接口(⑶1)246生成的位圖、3D圖形之類(lèi)的兩種不同的呈現(xiàn)技術(shù), 或者二者的組合。⑶I 246可用于生成2D圖像,比如文本和窗口。⑶I 246可以與可響應(yīng)于從應(yīng)用程序206接收到位陣列而生成位像的顯示驅(qū)動(dòng)程序相關(guān)聯(lián)。例如,應(yīng)用可以發(fā)出可以被顯示驅(qū)動(dòng)程序處理并且用于呈現(xiàn)表示顏色值的像素的陣列。如圖所示,遙控組件220可捕捉⑶I 246輸出的位圖并可將其發(fā)送至棧實(shí)例214。繼續(xù)圖2的描述,應(yīng)用程序206可另外利用由多個(gè)硬件供應(yīng)商之一制造的圖形處理單元所支持的3D圖形。由于不同的硬件供應(yīng)商使用不同的體系結(jié)構(gòu)和命令,因此可以制定一種如下的圖形驅(qū)動(dòng)程序體系結(jié)構(gòu)該圖形驅(qū)動(dòng)程序體系結(jié)構(gòu)將硬件抽象為使得開(kāi)發(fā)者可以編寫(xiě)與任何圖形卡一起工作的單個(gè)應(yīng)用程序。在該示例中,該應(yīng)用程序可以經(jīng)由諸如來(lái)自微軟@的011^(^30之類(lèi)的應(yīng)用程序編程接口 222 (API)來(lái)訪問(wèn)客戶(hù)機(jī)201的圖形處理單元的特征。API原語(yǔ)可被發(fā)送至客戶(hù)機(jī)201 ;由客戶(hù)機(jī)的驅(qū)動(dòng)程序翻譯成可被客戶(hù)機(jī)的 GPU執(zhí)行的命令;以及被該客戶(hù)機(jī)的GPU執(zhí)行。一般地,API 222輸出圖形數(shù)據(jù),例如值、頂點(diǎn)(表示三角形頂點(diǎn)的32位值)和/或紋理,例如比如對(duì)象的表面的數(shù)字表示,該對(duì)象可具有該對(duì)象有多么透明和反射率多大之類(lèi)的3D屬性。一般地,紋理可視為可應(yīng)用于圖元的位圖。即,應(yīng)用程序可創(chuàng)建看起來(lái)像一棵樹(shù)的對(duì)象,并對(duì)這棵樹(shù)應(yīng)用紋理以使其看起來(lái)具有樹(shù)皮。另一示例可包括對(duì)形成小山的一組3D圖元應(yīng)用草地、泥土和巖石。圖形數(shù)據(jù)可由API 222產(chǎn)生并存儲(chǔ)在緩沖區(qū)中,例如存儲(chǔ)器的頁(yè),而紋理可從藝術(shù)文件加載并存儲(chǔ)在存儲(chǔ)器的其他頁(yè)。當(dāng)一應(yīng)用程序執(zhí)行時(shí),它可以請(qǐng)求存儲(chǔ)器來(lái)用作頂點(diǎn)緩沖區(qū)以及請(qǐng)求存儲(chǔ)器用來(lái)儲(chǔ)存頂點(diǎn)。該應(yīng)用程序也可聲明它將如何使用存儲(chǔ)器,例如它將在緩沖區(qū)中存儲(chǔ)何種類(lèi)型的數(shù)據(jù)。例如,諸如視頻游戲之類(lèi)的應(yīng)用程序可以使用動(dòng)態(tài)頂點(diǎn)緩沖區(qū)來(lái)存儲(chǔ)用于化身的頂點(diǎn),并且可以使用靜態(tài)緩沖區(qū)來(lái)存儲(chǔ)諸如建筑物數(shù)據(jù)之類(lèi)的將不常改變的數(shù)據(jù)。在終端服務(wù)器實(shí)施例中,遙控組件224可被用來(lái)捕捉API 222輸出的圖形數(shù)據(jù),并且多種技術(shù)可被用來(lái)減少通過(guò)網(wǎng)絡(luò)發(fā)送至客戶(hù)機(jī)201的圖形數(shù)據(jù)量,例如優(yōu)化器226、增量預(yù)處理器228、前移編碼器230、一個(gè)或多個(gè)紋理壓縮器232、網(wǎng)格壓縮器236,以及一個(gè)或多個(gè)出口 238。在各示例實(shí)施例中,各組件226-238可由可被一個(gè)或多個(gè)邏輯處理器執(zhí)行的指令來(lái)實(shí)現(xiàn)。同樣,盡管組件226-238示作分開(kāi)的,在一個(gè)或多個(gè)實(shí)施例中,這些組件可以是單個(gè)軟件組件。另外,在一個(gè)或多個(gè)實(shí)施例中,每一組件2沈-338可在應(yīng)用程序206的一個(gè)或多個(gè)線程或棧實(shí)例214 (未示出)上執(zhí)行。此外,盡管某些部件并聯(lián)地示出,本發(fā)明并不限于這樣一種安排,而且在其他實(shí)施例中,一個(gè)或多個(gè)組件可以和其他組件串聯(lián)。由于圖形數(shù)據(jù)是由API 222產(chǎn)生的,取決于圖形數(shù)據(jù)的類(lèi)型,它可由一個(gè)或多個(gè)之前的組件中來(lái)處理, 然后被發(fā)送至批量(bulk)壓縮器M0。批量壓縮器240可被配置為壓縮圖形數(shù)據(jù),然后壓縮的數(shù)據(jù)可經(jīng)由NIC 210被發(fā)送至客戶(hù)機(jī)201。以下是描繪各過(guò)程的實(shí)現(xiàn)的一系列流程圖。為便于理解,流程圖被組織成使得初始流程圖通過(guò)總體“大圖”觀點(diǎn)來(lái)呈現(xiàn)各實(shí)現(xiàn),并且后續(xù)的流程圖提供進(jìn)一步的附加物和/ 或細(xì)節(jié)?,F(xiàn)在參考圖3,其示出了用于實(shí)施本發(fā)明的各方面的操作過(guò)程,包括操作300、 302、304和306。如圖所示,操作300開(kāi)始操作過(guò)程,并且操作302示出了將多個(gè)圖元的頂點(diǎn)存儲(chǔ)在存儲(chǔ)器中。參考圖2,頂點(diǎn)數(shù)據(jù)(例如指示頂點(diǎn)的32位值)可存儲(chǔ)在頂點(diǎn)緩沖區(qū)中,例如,RAM 214中的一個(gè)或多個(gè)存儲(chǔ)器頁(yè)和/或圖形處理器218的存儲(chǔ)器。在一實(shí)施例中,頂點(diǎn)數(shù)據(jù)例如可由API 222響應(yīng)于從應(yīng)用程序接收到API構(gòu)造而產(chǎn)生,所述應(yīng)用程序例如為視頻游戲、媒體播放器、CAD程序、用戶(hù)界面等。即,應(yīng)用程序可以向API 222傳遞一個(gè)或多個(gè)構(gòu)造,并且API 222可以產(chǎn)生數(shù)以千計(jì)的圖元并將它們存儲(chǔ)在一個(gè)或多個(gè)頂點(diǎn)緩沖區(qū)中。繼續(xù)對(duì)圖3的描述,操作304示出了確定頂點(diǎn)中的至少一部分尚未被發(fā)送至終端服務(wù)器客戶(hù)機(jī)。例如,繼續(xù)先前的示例,當(dāng)應(yīng)用程序?qū)㈨旤c(diǎn)緩沖區(qū)映射至一進(jìn)程時(shí),例如,優(yōu)化器2 可由邏輯處理器212執(zhí)行,并且該處理器可發(fā)現(xiàn)存儲(chǔ)在頂點(diǎn)緩沖區(qū)中的頂點(diǎn)中的至少一部分尚未被發(fā)送至終端服務(wù)器客戶(hù)機(jī)201。例如,應(yīng)用程序可以在各客戶(hù)機(jī)更新之間產(chǎn)生大量的數(shù)據(jù),例如數(shù)以百萬(wàn)計(jì)的圖元,并且優(yōu)化器2 可被配置以確定哪一部分?jǐn)?shù)據(jù)是呈現(xiàn)已經(jīng)被發(fā)送至客戶(hù)機(jī)201的和已經(jīng)改變的之間的區(qū)別所需要的。作為示例,當(dāng)映射頂點(diǎn)緩沖區(qū)時(shí),應(yīng)用程序可取決于開(kāi)發(fā)者使對(duì)它是如何編碼的來(lái)采用不同方式操作。例如,對(duì)一應(yīng)用程序而言,映射一部分緩沖區(qū),然后添加至緩沖區(qū),然后蓋寫(xiě)緩沖區(qū)中的一部分?jǐn)?shù)據(jù),然后完全蓋寫(xiě)頂點(diǎn)緩沖區(qū)的內(nèi)容,這是完全可以接受的。應(yīng)用程序可針對(duì)整個(gè)緩沖區(qū)的內(nèi)容或緩沖區(qū)的子集發(fā)出繪制命令?;驌Q言之,很難估計(jì)應(yīng)用程序?qū)⑷绾喂ぷ?。因?yàn)閼?yīng)用程序的行為不是可預(yù)測(cè)的,一種幼稚的方法將涉及在每一非映射操作之后發(fā)送緩沖區(qū)中的全部頂點(diǎn)。但是,在本示例中,優(yōu)化器2 例如可在一非映射操作之后確定頂點(diǎn)緩沖區(qū)中的哪一部分頂點(diǎn)已經(jīng)改變。繼續(xù)對(duì)圖3的描述,操作306示出了將所確定的那部分頂點(diǎn)發(fā)送給終端服務(wù)器客戶(hù)機(jī)。例如,參考圖2,網(wǎng)絡(luò)接口卡210可將緩沖區(qū)中已經(jīng)改變的頂點(diǎn)發(fā)送至終端服務(wù)器客戶(hù)機(jī)201。在本示例中,因?yàn)樾枰ㄟ^(guò)網(wǎng)絡(luò)發(fā)送的頂點(diǎn)的數(shù)量已經(jīng)減少,因此實(shí)現(xiàn)命令遙控所必需的總帶寬已降低。現(xiàn)在參考圖4,其示出圖3的操作過(guò)程300的替代實(shí)施例,包括附加操作408、410、 412和414。參考操作408,示出了在確定頂點(diǎn)中的至少一部分尚未被發(fā)送至終端服務(wù)器客戶(hù)機(jī)之前,確定用戶(hù)空間應(yīng)用程序已請(qǐng)求了大于預(yù)定范圍的存儲(chǔ)器地址范圍。參考圖2,優(yōu)化器2 可被配置成在確定用戶(hù)空間應(yīng)用程序正在使用比預(yù)定數(shù)量更大的地址空間之后, 掃描頂點(diǎn)緩沖區(qū)。例如,掃描頂點(diǎn)緩沖區(qū)花費(fèi)計(jì)算機(jī)周期,而且如果應(yīng)用程序指示它將發(fā)送少量數(shù)據(jù),例如20字節(jié),則發(fā)送這些字節(jié)而非在每次更新期間標(biāo)識(shí)數(shù)據(jù)的改變部分是更高效的。例如,應(yīng)用程序可在初始化過(guò)程期間創(chuàng)建指定數(shù)量的緩沖區(qū),并設(shè)定大小以及該緩沖區(qū)將如何被使用。處理器212可執(zhí)行優(yōu)化器226,并檢查大小和使用模式。在本示例中,處理器212可發(fā)現(xiàn)緩沖區(qū)的大小被設(shè)定為大于預(yù)定數(shù)量并確定要掃描緩沖區(qū)內(nèi)容。在同樣的實(shí)施例或其他實(shí)施例中,緩沖區(qū)的大小和類(lèi)型可被用于確定哪些優(yōu)化是開(kāi)啟的。例如,取決于緩沖區(qū)的大小,優(yōu)化器2 可啟用頁(yè)級(jí)掃描、字節(jié)級(jí)掃描、SIMD掃描等等。如本領(lǐng)域技術(shù)人員能夠明白的,預(yù)定閾值可基于計(jì)算機(jī)系統(tǒng)200的能力而改變。 例如,預(yù)定閾值可被設(shè)定在位級(jí),并且優(yōu)化器2 可被用于掃描API 222所產(chǎn)生的每一個(gè)位。這將降低向客戶(hù)機(jī)201傳輸改變所使用的帶寬,但是對(duì)實(shí)際獲得的好處而言,這將花費(fèi)不可接受的計(jì)算機(jī)周期數(shù)。另一方面,當(dāng)大多改變沒(méi)有被檢測(cè)到時(shí),傳輸數(shù)據(jù)所需要的帶寬量增大了。因而,如本領(lǐng)域技術(shù)人員能夠明白的,可基于所使用帶寬對(duì)所使用的計(jì)算機(jī)周期的折中來(lái)設(shè)定確切值。因?yàn)榇鎯?chǔ)器和計(jì)算能力在逐漸增大,當(dāng)前使用的值在將來(lái)可能并不相關(guān),因而確切閾值留給實(shí)現(xiàn)者來(lái)確定。繼續(xù)對(duì)圖4的描述,操作410示出了所確定那部分的頂點(diǎn)的預(yù)處理。例如,在本發(fā)明的一實(shí)施例中可為了壓縮來(lái)對(duì)頂點(diǎn)進(jìn)行預(yù)處理。在本示例中,表示用于產(chǎn)生圖元的頂點(diǎn)的值(例如,位)可被翻譯為不同形式,使得批量壓縮器240可更容易地標(biāo)識(shí)模式并由此給批量壓縮器更多壓縮機(jī)會(huì)。再次參考圖4,操作412示出了發(fā)送所確定的那部分頂點(diǎn)中每一連續(xù)頂點(diǎn)之間所確定的增量。例如,在一實(shí)施例中,增量預(yù)處理器2 可用來(lái)對(duì)頂點(diǎn)進(jìn)行預(yù)處理。例如,可基于頂點(diǎn)何時(shí)被檢測(cè)到和/或應(yīng)用程序何時(shí)在API 222上設(shè)置標(biāo)志來(lái)作出由增量預(yù)處理器 228對(duì)頂點(diǎn)進(jìn)行處理的決定。如先前段落中所述,每一頂點(diǎn)可表示為比如32位浮點(diǎn)數(shù)等值, 并且預(yù)處理器2 可基于先前的頂點(diǎn)在每一連續(xù)的頂點(diǎn)上執(zhí)行比如加、減、乘、除等操作并輸出增量。如本領(lǐng)域技術(shù)人員可以明白的,32位浮點(diǎn)數(shù)與另一 32位浮點(diǎn)數(shù)的差值仍然是32 位浮點(diǎn)數(shù),因而數(shù)據(jù)量保持不變。但是,通過(guò)選擇性地預(yù)處理,數(shù)據(jù)可被置于更容易被批量壓縮器240壓縮的格式。例如,如果頂點(diǎn)陣列為[2,4,6,8,10,12],增量預(yù)處理器可發(fā)送第一個(gè)值以及連續(xù)的增量,即陣列[2,2,2,2,2,2]。雖然批量壓縮器MO能夠壓縮第一陣列, 但通過(guò)對(duì)數(shù)據(jù)的預(yù)處理,批量壓縮器240將很可能能夠拾取更多重復(fù)模式并因而壓縮更多數(shù)據(jù)。本技術(shù)對(duì)Direct2D特別有用,Direct2D是微軟建立在Direct3D上的使用3D硬件繪制比如例如按鈕菜單等文本之類(lèi)的2D圖像的一組API。使用D2D的應(yīng)用程序可以用表示水平跨距的線段來(lái)填充頂點(diǎn)緩沖區(qū)。因?yàn)轫旤c(diǎn)被打包在一起來(lái)呈現(xiàn)特定字體的字母,所以每一連續(xù)頂點(diǎn)之間的距離可能是非常相似的。再次參考圖4,操作414示出了由操作系統(tǒng)確定用戶(hù)空間應(yīng)用程序訪問(wèn)了存儲(chǔ)器, 該存儲(chǔ)器包括多個(gè)頁(yè);以及由操作系統(tǒng)確定該用戶(hù)空間應(yīng)用程序訪問(wèn)了該多個(gè)頁(yè)中的特定頁(yè)。根據(jù)執(zhí)行操作412的一實(shí)施例,操作系統(tǒng)202可確定用戶(hù)空間應(yīng)用程序(例如,視頻游戲)訪問(wèn)了存儲(chǔ)器的存儲(chǔ)頂點(diǎn)的一特定頁(yè)。例如,處理器212可跟蹤它訪問(wèn)的每一存儲(chǔ)器頁(yè),而且該信息可展示給例如內(nèi)核234的存儲(chǔ)器管理器。在一實(shí)施例中,使用API 222的應(yīng)用程序可被標(biāo)識(shí),而且當(dāng)應(yīng)用程序映射由存儲(chǔ)器頁(yè)所支持的頂點(diǎn)緩沖區(qū)時(shí),被訪問(wèn)的頁(yè)可被標(biāo)識(shí)并報(bào)告給優(yōu)化器226。在一具體示例中,頂點(diǎn)緩沖區(qū)可以是例如1 字節(jié),并且該緩沖區(qū)可以由4個(gè)頁(yè)支持,每一頁(yè)是4k字節(jié)。在本示例中,如果應(yīng)用程序映射緩沖區(qū),例如寫(xiě)入到第一頁(yè),則處理器212可將這一信息報(bào)告給操作系統(tǒng)202,而且該特定頁(yè)(例如,第一頁(yè))可被報(bào)告給優(yōu)化器226。優(yōu)化器2 可以基于操作系統(tǒng)202所傳遞的信息來(lái)確定該特定頁(yè)包括尚未被發(fā)送至終端服務(wù)器客戶(hù)機(jī)的頂點(diǎn)?,F(xiàn)在參考圖5,它示出了圖4的操作過(guò)程的替換實(shí)施例,它包括操作516,操作516 示出了將該特定頁(yè)和先前發(fā)送至終端服務(wù)器客戶(hù)機(jī)的頁(yè)的副本進(jìn)行比較;以及基于該比較來(lái)確定該特定頁(yè)中的頂點(diǎn)數(shù)據(jù)的至少一部分已改變。在同樣的實(shí)施例或其他實(shí)施例中,一旦頁(yè)被標(biāo)識(shí),它就可被優(yōu)化器2 進(jìn)一步掃描。例如,優(yōu)化器2 可由處理器212執(zhí)行,并且處理器212可將所訪問(wèn)的一個(gè)或多個(gè)頁(yè)與該一個(gè)或多個(gè)頁(yè)的先前副本進(jìn)行比較。例如, 優(yōu)化器2 可訪問(wèn)被發(fā)送至客戶(hù)機(jī)201的最新近數(shù)據(jù)的副本,或者換言之,優(yōu)化器2 可具有客戶(hù)機(jī)201當(dāng)前所擁有的數(shù)據(jù)的視圖??蓤?zhí)行優(yōu)化器2 并在所訪問(wèn)的頁(yè)的內(nèi)容和該頁(yè)的舊副本之間進(jìn)行比較。如果有區(qū)別,則該頁(yè)和/或改變的字節(jié)可被發(fā)送至客戶(hù)機(jī)201?,F(xiàn)在參考圖6,它示出了圖5的操作過(guò)程的進(jìn)一步細(xì)化,它包括操作616,操作616 示出了比較操作可進(jìn)一步包括使用來(lái)自單指令多數(shù)據(jù)指令集中的至少一個(gè)指令來(lái)掃描特定頁(yè)。例如,在一特定實(shí)施例中,邏輯處理器212可以是具有單指令多數(shù)據(jù)(SIMD)流擴(kuò)展的基于x86的處理器。在本示例中,該至少一個(gè)SIMD指令可一次按塊來(lái)掃描存儲(chǔ)器的一個(gè)頁(yè),并將舊頁(yè)中字節(jié)的副本與當(dāng)前頁(yè)中的當(dāng)前字節(jié)進(jìn)行比較。在一特定SIMD實(shí)施例中,處理器212可被配置為一次掃描16字節(jié)。16字節(jié)的組可被加載至SIMD寄存器中,并可對(duì)16 字節(jié)的先前值(例如,發(fā)送至客戶(hù)機(jī)201的值)進(jìn)行比較,并可確定該組中是否有字節(jié)已改變。在一替換實(shí)施例中,一旦優(yōu)化器2 標(biāo)識(shí)一組字節(jié)包括改變,處理器212就可執(zhí)行優(yōu)化器226,并且處理器212可被配置為使用常規(guī)x86指令標(biāo)識(shí)該組中已改變的特定一個(gè)或多個(gè)數(shù)據(jù)字節(jié)來(lái)在該組的每一字節(jié)之間進(jìn)行比較。現(xiàn)在參考圖7,它是出了圖6的操作過(guò)程的進(jìn)一步細(xì)化,它包括操作718,操作718 示出了使用SIMD指令的比較操作可額外包括從頁(yè)的開(kāi)頭至結(jié)尾的掃描操作,直至檢測(cè)到改變;以及從頁(yè)的結(jié)尾至開(kāi)頭的掃描操作,直至檢測(cè)到改變。例如,邏輯處理器212可按照字節(jié)組為單位在標(biāo)識(shí)的頁(yè)中步進(jìn)。本示例中的優(yōu)化器2 可配置為搜索各字節(jié)直至檢測(cè)到改變。在本示例實(shí)施例中,因?yàn)閼?yīng)用程序往往以大組為單位修改頂點(diǎn),所以?xún)?yōu)化器2 可被配置來(lái)查看直至它找到一組改變的開(kāi)頭或結(jié)尾,而非搜索每一字節(jié)。通過(guò)以此方式來(lái)配置優(yōu)化器226,優(yōu)化器2 將僅花費(fèi)查找與實(shí)際所作改變的數(shù)量成比例的區(qū)別的周期。艮口, 如果應(yīng)用程序修改了一大組頂點(diǎn),則處理器212將不必花費(fèi)大量周期來(lái)嘗試標(biāo)識(shí)所有的改變。在本備選細(xì)化中,處理器212可從開(kāi)頭(例如,頁(yè)的第一地址)開(kāi)始在頁(yè)中步進(jìn), 以組為單位將各字節(jié)與先前的組進(jìn)行對(duì)比。例如,如果檢測(cè)到改變,即如果指示頂點(diǎn)的值已改變,則處理器212可停止,記錄該值的存儲(chǔ)器地址,并從頁(yè)的結(jié)尾(例如,頁(yè)的最后地址) 至開(kāi)頭來(lái)開(kāi)始掃描,直至檢測(cè)到改變。在本示例中,處理器212可在兩個(gè)改變的值之間選擇地址作為尚未發(fā)送至終端服務(wù)器客戶(hù)機(jī)201的部分頂點(diǎn)?,F(xiàn)在參考圖8,它示出了圖7的操作過(guò)程的進(jìn)一步細(xì)化,它包括附加操作820,該附加操作820示出了用特定頁(yè)蓋寫(xiě)先前發(fā)送至終端服務(wù)器客戶(hù)機(jī)的頁(yè)的副本。在包括操作 820的實(shí)施例中,一旦執(zhí)行優(yōu)化器指令的處理器標(biāo)識(shí)出尚未發(fā)送至終端服務(wù)器客戶(hù)機(jī)201 的部分頂點(diǎn),處理器212就可通過(guò)蓋寫(xiě)存儲(chǔ)器區(qū)域(例如,RAM 214的區(qū)域)中頁(yè)的舊副本來(lái)對(duì)它剛掃描的頁(yè)進(jìn)行高速緩存,該存儲(chǔ)器區(qū)域配置為存儲(chǔ)已發(fā)送至終端服務(wù)器客戶(hù)機(jī) 201的圖形數(shù)據(jù)的副本。例如,如果高速緩存包括4頁(yè)頂點(diǎn),并且優(yōu)化器確定改變是在第三頁(yè)作出的,則優(yōu)化器2 可使用剛掃描的頁(yè)來(lái)蓋寫(xiě)第三頁(yè)。在蓋寫(xiě)操作之后,優(yōu)化器2 具有了已被發(fā)送至客戶(hù)機(jī)201的數(shù)據(jù)的當(dāng)前視圖?,F(xiàn)在參考圖9,其示出了圖4的操作過(guò)程的進(jìn)一步細(xì)化,包括附加操作922,該附加操作922示出了壓縮經(jīng)預(yù)處理的所確定的那部分頂點(diǎn)。在本細(xì)化中,在尚未被發(fā)送至終端服務(wù)器客戶(hù)機(jī)201的那部分頂點(diǎn)被預(yù)處理之后,可使用批量壓縮器240對(duì)它們進(jìn)行壓縮。 一般地,批量壓縮器240是被配置為在標(biāo)識(shí)一行程中的模式并對(duì)它們進(jìn)行壓縮的標(biāo)準(zhǔn)壓縮器。因?yàn)榕繅嚎s器230定制為壓縮不同的數(shù)據(jù),例如,發(fā)送至客戶(hù)機(jī)201的全部數(shù)據(jù),比如GDI 246產(chǎn)生的位圖、音頻、剪切板數(shù)據(jù)、USB設(shè)備等,所以它并沒(méi)有配置為壓縮任意特定類(lèi)型的數(shù)據(jù)。因而,在本示例中,可對(duì)發(fā)送至客戶(hù)機(jī)的頂點(diǎn)進(jìn)行預(yù)處理,即,將其置于使批量壓縮器能更容易地標(biāo)識(shí)模式的格式?,F(xiàn)在參考圖10,其示出了可用于實(shí)施本發(fā)明的各方面的操作過(guò)程。該操作過(guò)程開(kāi)始于操作1000,并包括操作1002、1004、1006。如操作1002所示,該過(guò)程包括存儲(chǔ)多個(gè)圖元的頂點(diǎn),每一圖元由至少一個(gè)頂點(diǎn)來(lái)定義。參考圖2,頂點(diǎn)數(shù)據(jù)(例如指示頂點(diǎn)的32位值) 可存儲(chǔ)在頂點(diǎn)緩沖區(qū)中,例如,RAM 214中的存儲(chǔ)器的一個(gè)或多個(gè)頁(yè)和/或圖形處理器218 的存儲(chǔ)器的一個(gè)或多個(gè)頁(yè)。在一實(shí)施例中,頂點(diǎn)數(shù)據(jù)例如可由API 222響應(yīng)于從應(yīng)用程序接收到API構(gòu)造而產(chǎn)生,所述應(yīng)用程序例如為視頻游戲、媒體播放器、CAD程序、用戶(hù)界面等。即,應(yīng)用程序可以向API 222傳遞一個(gè)或多個(gè)構(gòu)造,并且API 222可以產(chǎn)生數(shù)以千計(jì)的圖元并將它們存儲(chǔ)在一個(gè)或多個(gè)頂點(diǎn)緩沖區(qū)中。操作過(guò)程1004繼續(xù)并示出了使用前移編碼器對(duì)頂點(diǎn)進(jìn)行編碼。例如,處理器212 可執(zhí)行指示前移編碼器230 (MTF編碼器)的指令并可對(duì)頂點(diǎn)進(jìn)行編碼。在本示例中,MTF 編碼器230可配置為在表示正在被發(fā)送至客戶(hù)機(jī)的數(shù)據(jù)元素的粒度級(jí)進(jìn)行編碼。S卩,在使用32位浮點(diǎn)數(shù)的示例中,MTF編碼器230可配置為一次編碼32位。通過(guò)在數(shù)據(jù)元素級(jí)進(jìn)行編碼,可利用頂點(diǎn)的已知屬性。即,由于實(shí)現(xiàn)者知道數(shù)據(jù)表示32位頂點(diǎn),MTF編碼器230 可被配置成對(duì)每32位進(jìn)行編碼而非對(duì)每一位進(jìn)行編碼。一般地,MTF編碼器230包括值列表和索引。隨著MTF編碼器230處理頂點(diǎn),最常見(jiàn)的值滲透至列表的頂部,而且并非發(fā)出這些值,MTF編碼器230可輸出索引值(可被編碼成比頂點(diǎn)更少的位)。MTF編碼器230可隨時(shí)間地在較常見(jiàn)的值之間震蕩,由此產(chǎn)生批量壓縮器240可容易拾取和壓縮的行程。在一特定示例中,列表可具有4個(gè)槽,但是槽的數(shù)量是可配置的。MTC編碼器230 可接收頂點(diǎn)值[137,16,128,137,137,128]。當(dāng)MTF編碼器230遇到第一個(gè)值‘ 137,時(shí),可檢查列表以確定發(fā)出索引值還是頂點(diǎn)值。因?yàn)樵诒臼纠辛斜硎强盏?,?37可存儲(chǔ)在‘0’ 索引槽中,并且MTF編碼器230可發(fā)出值137。當(dāng)遇到下一個(gè)值‘16,時(shí),MTF編碼器230可將16存儲(chǔ)在‘0’索引槽并將137移位至‘1’槽,并發(fā)出值16。當(dāng)遇到第三個(gè)值‘128’時(shí), 列表的內(nèi)容可被移位,并可發(fā)出128。當(dāng)遇到第四個(gè)值時(shí),MTF編碼器230可確定137已經(jīng)在2槽中,MTF編碼器230可發(fā)出索引值‘2’和標(biāo)識(shí)這是一索引值的信息(例如一個(gè)位), 而非發(fā)出137。在本示例中,索引值可使用比頂點(diǎn)更少的位數(shù)來(lái)編碼,因而壓縮了頂點(diǎn)值。 另外,在該點(diǎn)MTF編碼器230可對(duì)換或旋轉(zhuǎn)列表,使得137被放置在‘0’索引中而1 被放置在‘2’索引槽中,或者如果旋轉(zhuǎn)的話則1 放置在‘1’索引槽中。繼續(xù)該示例,隨著更多相同值開(kāi)始出現(xiàn),MTF編碼器230將能夠更多地發(fā)出索引值并在經(jīng)常遇到的值之間震蕩?;蛘邠Q言之,MTF編碼器230可通過(guò)發(fā)送索引值來(lái)壓縮頂點(diǎn),并通過(guò)發(fā)送可由批量壓縮器240 進(jìn)一步壓縮的行程來(lái)對(duì)頂點(diǎn)進(jìn)行預(yù)處理。繼續(xù)對(duì)圖10的描述,操作1006示出了將經(jīng)編碼的頂點(diǎn)發(fā)送給終端服務(wù)器客戶(hù)機(jī)。 例如,參考圖2,網(wǎng)絡(luò)接口卡210可將經(jīng)編碼的頂點(diǎn)(例如,MTF編碼器230發(fā)出的輸出)發(fā)送至終端服務(wù)器客戶(hù)機(jī)201。在本示例中,需要發(fā)送的表示頂點(diǎn)的數(shù)據(jù)量已經(jīng)減少,因而減小了執(zhí)行命令遙控所必需的總帶寬?,F(xiàn)在轉(zhuǎn)向圖11,其示出圖10的操作過(guò)程的替換實(shí)施例,包括操作1108和1110。 如操作1108所示,在一實(shí)施例中,該操作過(guò)程可包括一包含對(duì)經(jīng)編碼的頂點(diǎn)進(jìn)行壓縮的操作。在包括該細(xì)化的實(shí)施例中,經(jīng)編碼的頂點(diǎn)可使用批量壓縮器240來(lái)壓縮。在本示例中, 批量壓縮器240所接收到的頂點(diǎn)可包括在幾個(gè)值之間震蕩的索引值,并且批量壓縮器240 能夠標(biāo)識(shí)行程并壓縮數(shù)據(jù)。此外,圖11還描繪了操作1110,操作1110示出了將存儲(chǔ)器的特定頁(yè)中的頂點(diǎn)與先前發(fā)送至終端服務(wù)器客戶(hù)機(jī)的頂點(diǎn)進(jìn)行比較;以及基于該比較來(lái)標(biāo)識(shí)特定頁(yè)中多個(gè)圖元的頂點(diǎn)。例如,MTF編碼器230接收的頂點(diǎn)可以從優(yōu)化器2 接收。在這一配置中,優(yōu)化器 226可被配置為標(biāo)識(shí)應(yīng)用程序?qū)旤c(diǎn)作出的改變,并將該改變發(fā)送至MTF編碼器230用于進(jìn)一步壓縮。與上述相似的,優(yōu)化器2 可由處理器212執(zhí)行,并且處理器212可將一個(gè)或多個(gè)頁(yè)與該一個(gè)或多個(gè)頁(yè)的先前副本進(jìn)行比較??梢詧?zhí)行優(yōu)化器2 并在所訪問(wèn)的頁(yè)的內(nèi)容和該頁(yè)的舊副本之間進(jìn)行比較。如果有區(qū)別,則該頁(yè)和/或改變的字節(jié)可被發(fā)送至MTF編碼器230?,F(xiàn)在參考圖12,其示出了操作1212,操作1212是對(duì)操作1110的細(xì)化。如圖所示, 操作1212示出了從特定頁(yè)的開(kāi)頭到結(jié)尾進(jìn)行掃描,直至檢測(cè)到頂點(diǎn)的改變;以及從特定頁(yè)的結(jié)尾到開(kāi)頭進(jìn)行掃描,直至檢測(cè)到頂點(diǎn)的改變。例如,在一實(shí)施例中,邏輯處理器212可按字節(jié)組為單位在特定頁(yè)中步進(jìn)?,F(xiàn)在參考圖13,其示出了操作1314,操作1314示出了圖12的操作過(guò)程的進(jìn)一步細(xì)化。在本實(shí)施例中,用于掃描特定頁(yè)的指令包括來(lái)自單指令多數(shù)據(jù)指令集的至少一個(gè)指令。例如,邏輯處理器可以是具有單指令多數(shù)據(jù)(SIMD)流擴(kuò)展的基于x86的處理器。在此情況下,SIMD指令可使用單個(gè)處理器指令一次按塊來(lái)掃描存儲(chǔ)器頁(yè)?,F(xiàn)在參考圖14,其示出了包括操作1400-1412的操作過(guò)程。操作1400開(kāi)始該過(guò)程,而操作1402示出了將圖形數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,該圖形數(shù)據(jù)包括紋理和頂點(diǎn)。參考圖 2,在一實(shí)施例中,頂點(diǎn)數(shù)據(jù)(例如指示頂點(diǎn)的32位值)可存儲(chǔ)在頂點(diǎn)緩沖區(qū)中,例如RAM 214中的存儲(chǔ)器的一個(gè)或多個(gè)頁(yè)或圖形處理器的存儲(chǔ)器的一個(gè)或多個(gè)頁(yè),而紋理(例如,比如表面法線之類(lèi)的表面屬性)可存儲(chǔ)在RAM 214的各頁(yè)中。在一實(shí)施例中,頂點(diǎn)數(shù)據(jù)例如可以由API 222響應(yīng)于從諸如例如視頻游戲、媒體播放器、CAD程序、用戶(hù)界面等等之類(lèi)的應(yīng)用程序接收到的構(gòu)造而生成。應(yīng)用程序可以經(jīng)由API 222將存儲(chǔ)器的一個(gè)或多個(gè)頁(yè)與頂點(diǎn)或紋理進(jìn)行映射?;蛘邠Q言之,應(yīng)用程序可調(diào)用API 222的一個(gè)或多個(gè)函數(shù)以將多個(gè)頂點(diǎn)寫(xiě)入驅(qū)動(dòng)程序可用的存儲(chǔ)器中,以指導(dǎo)圖形處理器產(chǎn)生多個(gè)圖元。類(lèi)似地,應(yīng)用程序可發(fā)送構(gòu)造至API 222,并且API 222可產(chǎn)生用于將紋理映射至可與該紋理一起存儲(chǔ)在存儲(chǔ)器中的圖元的命令。繼續(xù)圖14的描述,操作1404示出了基于存儲(chǔ)于存儲(chǔ)器中的圖形數(shù)據(jù)和先前發(fā)送至終端服務(wù)器客戶(hù)機(jī)的圖形數(shù)據(jù)之間的比較,確定存儲(chǔ)器中的圖形數(shù)據(jù)的至少一部分已改變。例如,在一實(shí)施例中,API 222可映射頂點(diǎn)緩沖區(qū)(例如存儲(chǔ)器頁(yè))并將紋理存儲(chǔ)在存儲(chǔ)器中,并且優(yōu)化器2 可由處理器212執(zhí)行以確定應(yīng)用程序所存儲(chǔ)的數(shù)據(jù)是否因?yàn)橹暗挠成洳僮鞫淖?。例如,?yōu)化器2 可訪問(wèn)被發(fā)送至客戶(hù)機(jī)201的最新近數(shù)據(jù)的副本,或者換言之,優(yōu)化器2 可具有客戶(hù)機(jī)201當(dāng)前所擁有的數(shù)據(jù)的視圖。優(yōu)化器2 可另外地將紋理和發(fā)送至客戶(hù)機(jī)201的紋理進(jìn)行比較以確定是否有數(shù)據(jù)已改變。例如,紋理本質(zhì)上為像素值的陣列,例如位圖,并且優(yōu)化器2 可掃描存儲(chǔ)該紋理的存儲(chǔ)器頁(yè)以確定是否有紋理已改變。如果處理器212檢測(cè)到包括被觸摸的(即被訪問(wèn)的)紋理或一部分紋理的存儲(chǔ)器頁(yè),則優(yōu)化器2 可確定將該頁(yè)發(fā)送至客戶(hù)機(jī)201。在另一示例實(shí)施例中,優(yōu)化器2 可掃描被觸摸頁(yè)的內(nèi)容以標(biāo)識(shí)哪些字節(jié)已改變。在本示例中, 優(yōu)化器2 可從中間地址開(kāi)始掃描并像矩形一樣向外擴(kuò)展,而非從頁(yè)的開(kāi)頭或結(jié)尾開(kāi)始掃描??蓤?zhí)行優(yōu)化器2 并在所訪問(wèn)的頁(yè)的內(nèi)容和該頁(yè)的舊副本之間進(jìn)行比較。如果有區(qū)別,則該頁(yè)和/或改變的字節(jié)可被發(fā)送至客戶(hù)機(jī)201。在某些實(shí)施例中,處理器212可在頁(yè)中步進(jìn),使用SIMD指令比較字節(jié)或字節(jié)組。繼續(xù)對(duì)圖14的描述,操作1406示出了對(duì)圖形數(shù)據(jù)的已改變的至少一部分進(jìn)行預(yù)處理。例如,在本發(fā)明的一實(shí)施例中可對(duì)圖形數(shù)據(jù)進(jìn)行預(yù)處理來(lái)用于壓縮。在本示例中,表示圖元和/或紋理的值(例如,位)可被翻譯為不同形式,使得批量壓縮器240可更容易地標(biāo)識(shí)模式并由此給批量壓縮器更多的壓縮機(jī)會(huì)。繼續(xù)對(duì)圖14的描述,操作1408描繪了對(duì)圖形數(shù)據(jù)的已改變的至少一部分進(jìn)行壓縮。在本示例中圖形數(shù)據(jù)例如可使用批量壓縮器240來(lái)進(jìn)行壓縮。繼續(xù)對(duì)圖14的描述,操作1410描繪了將已改變的圖形數(shù)據(jù)發(fā)送給終端服務(wù)器客戶(hù)機(jī)。例如,參考圖2,網(wǎng)絡(luò)接口卡210可將已改變的圖形數(shù)據(jù)發(fā)送至終端服務(wù)器客戶(hù)機(jī) 201。在本示例中,因?yàn)樾枰ㄟ^(guò)網(wǎng)絡(luò)發(fā)送的圖形數(shù)據(jù)的量已經(jīng)減少,所以執(zhí)行命令遙控所必需的總帶寬已降低。現(xiàn)在轉(zhuǎn)向圖15,其示出圖14的操作過(guò)程1400的替換實(shí)施例,包括操作1512、 1514、1516和1518。現(xiàn)在參考操作1512,其示出了操作1406的細(xì)化,即對(duì)已改變的那部分圖形數(shù)據(jù)中的頂點(diǎn)應(yīng)用前移編碼器。與操作1004類(lèi)似的,在一實(shí)施例中,處理器212可執(zhí)行指示前移編碼器230的指令,并對(duì)頂點(diǎn)、紋理值和/或用于將紋理映射至圖元的命令進(jìn)行編碼。在本示例中,MTF 230可被配置為在數(shù)據(jù)元素級(jí)進(jìn)行編碼,以利用圖形數(shù)據(jù)的已知屬性。繼續(xù)圖15的描述,操作1514示出了操作1408的細(xì)化,其示出了應(yīng)用網(wǎng)格壓縮器來(lái)壓縮已改變的那部分圖形數(shù)據(jù)中的至少一部分頂點(diǎn)。例如,在一實(shí)施例中,API 222可被配置為包括可由應(yīng)用程序來(lái)設(shè)置的標(biāo)志,該標(biāo)志指示某些頂點(diǎn)數(shù)據(jù)是網(wǎng)格的一部分,例如形成3D對(duì)象的相連接圖元的集合。在此情形下,同樣的標(biāo)志或不同的標(biāo)志可用于向API 222指示可在網(wǎng)格上使用有損壓縮技術(shù)。在本示例中,如果標(biāo)志被設(shè)置,則與該標(biāo)志相關(guān)聯(lián)的頂點(diǎn)可被傳遞至網(wǎng)格壓縮器236并且這些頂點(diǎn)可被壓縮。在一實(shí)施例中,網(wǎng)格優(yōu)化器可在客戶(hù)機(jī)201上執(zhí)行,并可用于重構(gòu)經(jīng)壓縮的頂點(diǎn)。 一個(gè)這樣的示例網(wǎng)格優(yōu)化器可以在客戶(hù)機(jī)201上執(zhí)行以重新創(chuàng)建在有損壓縮操作中丟失的頂點(diǎn)。轉(zhuǎn)向操作1516,在一實(shí)施例中,可通過(guò)對(duì)已改變的那部分圖形數(shù)據(jù)中的紋理數(shù)據(jù)應(yīng)用圖像壓縮器來(lái)對(duì)操作1408進(jìn)一步進(jìn)行細(xì)化。例如,可使用多個(gè)圖像壓縮器之一來(lái)壓縮紋理數(shù)據(jù)。因?yàn)榧y理本質(zhì)上是位像,所以在某些實(shí)施例中可使用不同的壓縮器來(lái)降低發(fā)送紋理所需要的帶寬量。在某些實(shí)施例中,取決于紋理以及應(yīng)用程序打算如何使用該紋理,壓縮器232可以是無(wú)損的或有損的。在本示例中,API 222可以展示一標(biāo)志,該標(biāo)志可由應(yīng)用程序進(jìn)行設(shè)置以指示對(duì)存儲(chǔ)器的某些頁(yè)中的紋理而言有損壓縮是可接受的,否則可使用無(wú)損壓縮器來(lái)壓縮該紋理。在本示例中,可基于可用的CPU周期和對(duì)標(biāo)志的選擇來(lái)動(dòng)態(tài)地選擇適當(dāng)?shù)膲嚎s器。一些示例壓縮器可以包括但不限于行程長(zhǎng)度編碼器、JPEG壓縮器或DirectX壓縮器。現(xiàn)在參考操作1518,其示出了由一出口接收用于文本的應(yīng)用程序構(gòu)造;以及將該構(gòu)造發(fā)送至終端服務(wù)器客戶(hù)機(jī)。一般地,發(fā)送API構(gòu)造比發(fā)送處理構(gòu)造所產(chǎn)生的多個(gè)API 圖元占用的帶寬小。在某些情況下,可在能改善遙控比如形成Direct2D文本的圖元之類(lèi)圖元的能力的API 222中添加高級(jí)出口。一般地,當(dāng)比如文字處理程序之類(lèi)的D2D應(yīng)用程序向API 222傳遞用于產(chǎn)生字母‘Α’的構(gòu)造時(shí),API 222從該構(gòu)造中產(chǎn)生圖元并將其存儲(chǔ)在頂點(diǎn)緩沖區(qū)中。傳遞至API222的構(gòu)造表示‘A’,但是標(biāo)識(shí)‘A’的信息在由API 222產(chǎn)生的頂點(diǎn)中丟失。因而,在本示例實(shí)施例中,當(dāng)API 222接收到這樣的構(gòu)造時(shí),出口可捕獲該構(gòu)造并經(jīng)由NIC 210將其發(fā)送至客戶(hù)機(jī)201??蛻?hù)機(jī)201在此情況下可接收該構(gòu)造并使用其來(lái)重構(gòu)頂點(diǎn)緩沖區(qū)。在同一實(shí)施例或其他實(shí)施例中,可使用先前公開(kāi)的技術(shù)中的一種來(lái)對(duì)構(gòu)造進(jìn)行壓縮或預(yù)處理。前述的詳細(xì)描述通過(guò)示例和/或操作圖闡述了系統(tǒng)和/或進(jìn)程的各實(shí)施例。在這樣的框圖和/或示例包含一個(gè)或多個(gè)功能和/或操作的范圍內(nèi),本領(lǐng)域技術(shù)人員將理解,這樣的框圖,或示例內(nèi)的每一功能和/或操作可以分別地和/或共同地通過(guò)范圍廣泛的硬件、 軟件、固件或幾乎其任何組合來(lái)實(shí)現(xiàn)。 雖然已示出和描述了本文中描述的主題內(nèi)容的特定方面,但是本領(lǐng)域技術(shù)人員將明白,基于本文中的教導(dǎo),可作出改變和修改而不脫離本文中描述的主題內(nèi)容,并且其更廣方面以及因此所附權(quán)利要求的范圍旨在涵蓋落在本文中描述的主題內(nèi)容的真實(shí)精神和范圍內(nèi)的所有此類(lèi)改變和修改。
權(quán)利要求
1.一種方法,包括將多個(gè)圖元的頂點(diǎn)存儲(chǔ)在存儲(chǔ)014或21 中;確定(226)所述頂點(diǎn)的至少一部分尚未被發(fā)送至終端服務(wù)器客戶(hù)機(jī)O01) 將所確定的那部分頂點(diǎn)發(fā)送(210)至所述終端服務(wù)器客戶(hù)機(jī)001)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括在確定至少一部分頂點(diǎn)尚未被發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)O01)之前,確定(226) 用戶(hù)空間應(yīng)用程序O06)已請(qǐng)求了大于預(yù)定范圍的存儲(chǔ)器地址范圍014或218)。
3.如權(quán)利要求1所述的方法,其特征在于,還包括 對(duì)所確定的那部分頂點(diǎn)進(jìn)行預(yù)處0觀)。
4.如權(quán)利要求1所述的方法,其特征在于,將所確定的那部分頂點(diǎn)發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)還包括發(fā)送(210)所確定的那部分頂點(diǎn)(228)中每一連續(xù)頂點(diǎn)之間的所確定的增量。
5.如權(quán)利要求1所述的方法,其特征在于,還包括由操作系統(tǒng)(202)確定用戶(hù)空間應(yīng)用程序(206)訪問(wèn)了所述存儲(chǔ)器018,214),所述存儲(chǔ)器包括多個(gè)頁(yè);以及由所述操作系統(tǒng)(202)確定所述用戶(hù)空間應(yīng)用程序(206)訪問(wèn)了所述多個(gè)頁(yè)中的特定頁(yè)。
6.如權(quán)利要求5所述的方法,其特征在于,還包括將所述特定頁(yè)與先前發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)O01)的頁(yè)的副本進(jìn)行比較 (226);以及基于所述比較0 ),確定所述特定頁(yè)中的頂點(diǎn)數(shù)據(jù)的至少一部分已改變。
7.如權(quán)利要求6所述的方法,其特征在于,將所述特定頁(yè)與先前發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)的頁(yè)的副本進(jìn)行比較還包括使用來(lái)自單指令多數(shù)據(jù)指令集012)的至少一個(gè)指令來(lái)掃描所述特定頁(yè)。
8.如權(quán)利要求7所述的方法,其特征在于,掃描所述特定頁(yè)還包括 從所述頁(yè)的開(kāi)頭至結(jié)尾(212)進(jìn)行掃描,直至檢測(cè)到改變;以及從所述頁(yè)的結(jié)尾至開(kāi)頭(212)進(jìn)行掃描,直至檢測(cè)到改變。
9.如權(quán)利要求8所述的方法,其特征在于,還包括用所述特定頁(yè)來(lái)蓋寫(xiě)先前發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)的頁(yè)的副本(212)。
10.如權(quán)利要求3所述的方法,其特征在于,還包括 對(duì)經(jīng)預(yù)處理的所確定的那部分頂點(diǎn)進(jìn)行壓縮(MO)。
11.一種包括處理器可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括用于存儲(chǔ)(214,218)多個(gè)圖元的頂點(diǎn)的指令,每一圖元由至少一個(gè)頂點(diǎn)來(lái)定義; 用于使用前移編碼器(230)對(duì)所述頂點(diǎn)進(jìn)行編碼的指令;以及用于將經(jīng)編碼的頂點(diǎn)發(fā)送至終端服務(wù)器客戶(hù)機(jī)O01)的指令。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括 用于壓縮所述經(jīng)編碼的頂點(diǎn)(MO)的指令。
13.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括用于將存儲(chǔ)器的特定頁(yè)中的頂點(diǎn)與先前發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)026)的頂點(diǎn)進(jìn)行比較的指令;以及用于基于所述比較來(lái)標(biāo)識(shí)所述特定頁(yè)026)中的多個(gè)圖元的頂點(diǎn)的指令。
14.如權(quán)利要求12所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述用于將存儲(chǔ)器的特定頁(yè)中的頂點(diǎn)與先前發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)的頂點(diǎn)進(jìn)行比較的指令還包括用于從所述特定頁(yè)的開(kāi)頭至結(jié)尾掃描,直至檢測(cè)到(212)頂點(diǎn)的改變的指令;以及用于從所述特定頁(yè)的結(jié)尾至開(kāi)頭掃描,直至檢測(cè)到(212)頂點(diǎn)的改變的指令。
15.如權(quán)利要求13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,用于掃描所述特定頁(yè)的指令包括來(lái)自單指令多數(shù)據(jù)指令集012)的至少一個(gè)指令。
16.一種計(jì)算機(jī)系統(tǒng),包括用于將圖形數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中的電路,所述圖形數(shù)據(jù)包括紋理和頂點(diǎn)(214,218); 用于基于存儲(chǔ)于存儲(chǔ)器中的圖形數(shù)據(jù)和先前發(fā)送至終端服務(wù)器客戶(hù)機(jī)的圖形數(shù)據(jù)之間的比較,確定所述存儲(chǔ)器中的圖形數(shù)據(jù)的至少一部分已改變的電路0 ); 用于對(duì)所述圖形數(shù)據(jù)的已改變的至少一部分進(jìn)行預(yù)處理的電路0 ); 用于對(duì)所述圖形數(shù)據(jù)的已改變的至少一部分進(jìn)行壓縮的電路O40)以及用于將所述已改變的圖形數(shù)據(jù)發(fā)送(210)至終端服務(wù)器客戶(hù)機(jī)001)的電路。
17.如權(quán)利要求16所述的計(jì)算機(jī)系統(tǒng),其特征在于,用于對(duì)所述圖形數(shù)據(jù)的已改變的至少一部分進(jìn)行預(yù)處理的電路還包括用于對(duì)所述圖形數(shù)據(jù)的已改變的那部分中的頂點(diǎn)應(yīng)用前移編碼器的電路(230)。
18.如權(quán)利要求16所述的計(jì)算機(jī)系統(tǒng),其特征在于,用于對(duì)所述圖形數(shù)據(jù)的已改變的至少一部分進(jìn)行壓縮的電路還包括用于應(yīng)用網(wǎng)格壓縮器036)以對(duì)所述圖形數(shù)據(jù)的已改變的那部分中的至少一部分頂點(diǎn)進(jìn)行壓縮的電路。
19.如權(quán)利要求16所述的計(jì)算機(jī)系統(tǒng),其特征在于,用于對(duì)所述圖形數(shù)據(jù)的已改變的至少一部分進(jìn)行壓縮的電路還包括用于對(duì)所述圖形數(shù)據(jù)的已改變的那部分中的紋理數(shù)據(jù)應(yīng)用圖像壓縮器032)的電路。
20.如權(quán)利要求16所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括 用于由出口接收(214,218)用于文本的應(yīng)用程序構(gòu)造的電路;用于將所述構(gòu)造(210)發(fā)送至所述終端服務(wù)器客戶(hù)機(jī)O01)的電路。
全文摘要
所公開(kāi)的是經(jīng)改進(jìn)的命令級(jí)遙控的技術(shù)。
文檔編號(hào)G06F9/06GK102239484SQ200980150086
公開(kāi)日2011年11月9日 申請(qǐng)日期2009年10月30日 優(yōu)先權(quán)日2008年12月8日
發(fā)明者D·N·伍德, M·A·麥克馬倫, N·Y·阿布多, O·菲利茲 申請(qǐng)人:微軟公司