專利名稱:在無(wú)線顯示表面上顯示計(jì)算機(jī)桌面的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在無(wú)線顯示器上顯示屏幕數(shù)據(jù)并允許計(jì)算機(jī)桌面體驗(yàn)的改進(jìn)的技術(shù)。
背景技術(shù):
使用諸如遠(yuǎn)程桌面協(xié)議(RDP)之類的遠(yuǎn)程呈現(xiàn)協(xié)議(RPP)技術(shù)以及獨(dú)立計(jì)算架構(gòu) (ICA)與遠(yuǎn)程客戶機(jī)共享計(jì)算機(jī)桌面和應(yīng)用已經(jīng)是普遍的。這些共享的計(jì)算系統(tǒng)通常是通過在會(huì)話的服務(wù)器上為RPP會(huì)話實(shí)例化用戶會(huì)話來建立的。在服務(wù)器的屏幕要與會(huì)話的客戶機(jī)共享的情況下,RPP會(huì)話從服務(wù)器本地的控制臺(tái)會(huì)話獲得該信息。在RPP會(huì)話期間,客戶機(jī)將鍵盤按壓和鼠標(biāo)點(diǎn)擊或選擇傳送到服務(wù)器,服務(wù)器通過網(wǎng)絡(luò)連接(例如,因特網(wǎng))以另一方向?qū)⑵聊桓掳l(fā)送回客戶機(jī)。如此,當(dāng)實(shí)際上僅僅向客戶機(jī)計(jì)算機(jī)發(fā)送如在服務(wù)器側(cè)上出現(xiàn)的應(yīng)用的屏幕截圖時(shí),客戶機(jī)的用戶具有好像他或她的計(jì)算機(jī)正在本地執(zhí)行這些應(yīng)用的體驗(yàn)。計(jì)算機(jī)通過諸如復(fù)合(RCA)電纜或高清晰度多媒體接口(HDMI)電纜等電纜在顯示設(shè)備(如電視機(jī)或監(jiān)視器)上顯示圖像也是普遍的。還存在使得計(jì)算機(jī)能夠無(wú)線地在顯示設(shè)備上顯示圖像的技術(shù)。在無(wú)線設(shè)備上顯示圖像存在許多問題,其中一些問題是眾所周知的。
發(fā)明內(nèi)容
本發(fā)明提供了在無(wú)線顯示器上顯示屏幕數(shù)據(jù)并允許計(jì)算機(jī)桌面體驗(yàn)的改進(jìn)的技術(shù)。如本文所使用的,屏幕數(shù)據(jù)可包括要被顯示在監(jiān)視器上的圖像(如計(jì)算機(jī)桌面)、要通過一個(gè)或多個(gè)揚(yáng)聲器播放的音頻、以及對(duì)計(jì)算機(jī)的輸入(例如光標(biāo)的移動(dòng)、對(duì)多觸點(diǎn)跟蹤墊的操縱、或鍵盤按壓)。被發(fā)送到目的計(jì)算機(jī)并在目的計(jì)算機(jī)上輸出的屏幕數(shù)據(jù)將用諸如 “被顯示”、“被輸出”、“被呈現(xiàn)”之類的術(shù)語(yǔ)來提及,且這可包括通過一個(gè)或多個(gè)揚(yáng)聲器對(duì)音頻的輸出?,F(xiàn)有技術(shù)受到帶寬和緩沖的約束,這負(fù)面地影響保真度(顯示的屏幕數(shù)據(jù)的質(zhì)量)和交互性(在無(wú)線顯示器上顯示對(duì)屏幕數(shù)據(jù)的改變的速率)。因此為無(wú)線顯示器提供給出高水平的保真度和交互性的技術(shù)將是對(duì)現(xiàn)有技術(shù)的改進(jìn)。在這樣做時(shí),無(wú)線顯示配置可向用戶提供計(jì)算機(jī)桌面體驗(yàn),該計(jì)算機(jī)桌面體驗(yàn)與使用直接通過電纜連接到源計(jì)算機(jī)的監(jiān)視器時(shí)用戶所體驗(yàn)到的幾乎完全相同。如本文所使用的,術(shù)語(yǔ)“無(wú)線顯示器”不意圖表達(dá)該顯示器不具有線纜,而是表達(dá)無(wú)線顯示器和源計(jì)算機(jī)之間沒有源計(jì)算機(jī)用來向無(wú)線顯示器傳送圖像的連續(xù)線纜。在一實(shí)施例中,源計(jì)算機(jī)和與無(wú)線顯示器通信的目的計(jì)算機(jī)建立無(wú)線連接,源計(jì)算機(jī)具有對(duì)應(yīng)于該無(wú)線顯示器的虛擬顯示驅(qū)動(dòng)器(類似于常規(guī)圖形顯示驅(qū)動(dòng)器如何對(duì)應(yīng)于源計(jì)算機(jī)的有線顯示器)。直接使用源計(jì)算機(jī)的用戶具有在該源計(jì)算機(jī)上的用戶控制臺(tái)會(huì)話。在該用戶控制臺(tái)會(huì)話中,用戶執(zhí)行應(yīng)用。那些應(yīng)用執(zhí)行以產(chǎn)生圖形(如計(jì)算機(jī)桌面上的應(yīng)用窗口) 以及產(chǎn)生用于無(wú)線顯示器的那些圖形,一應(yīng)用指示所述虛擬顯示驅(qū)動(dòng)器將圖形渲染到源計(jì)算機(jī)的存儲(chǔ)器區(qū)域或顯示表面。源計(jì)算機(jī)取該圖形信息——它是圖像或在處理器上執(zhí)行時(shí)產(chǎn)生圖像的計(jì)算機(jī)可執(zhí)行指令——用遠(yuǎn)程呈現(xiàn)協(xié)議(RPP)編碼該圖形信息,以及將它從用戶控制臺(tái)會(huì)話發(fā)送到無(wú)線顯示器。用于使用RPP傳送數(shù)據(jù)的其他技術(shù)要求一個(gè)以上的用戶會(huì)話這么做。例如,各種版本的終端服務(wù)器RPP要求客戶機(jī)計(jì)算機(jī)用第二用戶會(huì)話連接到源計(jì)算機(jī)。然后,為了與客戶機(jī)計(jì)算機(jī)共享用戶控制臺(tái)會(huì)話的計(jì)算機(jī)桌面,第二用戶會(huì)話從用戶控制臺(tái)會(huì)話截取屏幕數(shù)據(jù)并將其發(fā)送到客戶機(jī),以及將來自客戶機(jī)計(jì)算機(jī)的用戶輸入(如光標(biāo)移動(dòng))注入到用戶控制臺(tái)會(huì)話中。在使用本技術(shù)時(shí),范例與常規(guī)RPP會(huì)話不同。常規(guī)RPP會(huì)話包括客戶計(jì)算機(jī)處的用戶向服務(wù)器發(fā)送輸入以及接收回圖像。相反,在本技術(shù)中,用戶登錄到源計(jì)算機(jī)的控制臺(tái)中(在其中他或他向服務(wù)器作出輸入),然后從該本地輸入生成的屏幕數(shù)據(jù)被傳送到目的計(jì)算機(jī)供顯示。作為用源計(jì)算機(jī)上的單個(gè)用戶會(huì)話發(fā)送RPP數(shù)據(jù)的結(jié)果,源計(jì)算機(jī)用遠(yuǎn)程呈現(xiàn)協(xié)議(RPP)編碼屏幕數(shù)據(jù)以及顯示計(jì)算機(jī)用遠(yuǎn)程RPP解碼屏幕數(shù)據(jù)的過程發(fā)生在常規(guī)的遠(yuǎn)程呈現(xiàn)會(huì)話之外。也就是說,在遠(yuǎn)程呈現(xiàn)會(huì)話中,服務(wù)器可授權(quán)客戶機(jī)的憑證以及在服務(wù)器上創(chuàng)建分開的用戶會(huì)話,遠(yuǎn)程呈現(xiàn)會(huì)話發(fā)生在該用戶會(huì)話中。相反,在本發(fā)明中,盡管屏幕數(shù)據(jù)根據(jù)遠(yuǎn)程呈現(xiàn)協(xié)議被編碼,但是通常與遠(yuǎn)程呈現(xiàn)會(huì)話相關(guān)聯(lián)的其他操作-如創(chuàng)建分開的操作系統(tǒng)會(huì)話-可不發(fā)生。存在包括除了常規(guī)用戶會(huì)話之外的會(huì)話的操作系統(tǒng)。例如,各種版本的微軟 WINDOWS操作系統(tǒng)包含“會(huì)話0,其中系統(tǒng)服務(wù)被執(zhí)行但沒有用戶進(jìn)程被執(zhí)行。這些會(huì)話0 系統(tǒng)服務(wù)可包括編碼和傳送屏幕數(shù)據(jù)的RPP服務(wù)。對(duì)本發(fā)明的討論單個(gè)用戶會(huì)話的使用的討論不應(yīng)被理解為排除了包括諸如會(huì)話0之類的非用戶會(huì)話的本發(fā)明的實(shí)施例。通過用遠(yuǎn)程呈現(xiàn)協(xié)議編碼和解碼傳送到無(wú)線顯示器的圖像數(shù)據(jù),提高了保真度和交互性。這些操作可減少跨無(wú)線通信網(wǎng)絡(luò)傳送屏幕數(shù)據(jù)所需的帶寬和緩沖的量。在使用更少的帶寬傳送屏幕數(shù)據(jù)時(shí),帶寬于是可用于以更高的保真度傳送屏幕數(shù)據(jù)。類似地,在使用更少的帶寬傳送屏幕數(shù)據(jù)時(shí),該屏幕數(shù)據(jù)以與它被生成的時(shí)間更近的時(shí)間量被傳送到無(wú)線顯示器,提高了交互性。類似地,通過減少編碼屏幕數(shù)據(jù)所需的緩沖量,例如通過使用更低等待時(shí)間的編解碼器,提高了交互性。虛擬設(shè)備驅(qū)動(dòng)器既可以被擴(kuò)展到無(wú)線顯示表面也可以被復(fù)制/克隆到無(wú)線顯示表面。對(duì)于源計(jì)算機(jī)來說,虛擬顯示驅(qū)動(dòng)器可被作為相當(dāng)于物理上耦合到源計(jì)算機(jī)的任何監(jiān)視器的圖形設(shè)備驅(qū)動(dòng)器來對(duì)待。來自虛擬顯示驅(qū)動(dòng)器的圖形命令被獲取、編碼和傳送到無(wú)線顯示計(jì)算機(jī),在無(wú)線顯示計(jì)算機(jī)處它們被解碼。無(wú)線顯示計(jì)算機(jī)可包括配置成解碼和呈現(xiàn)圖形的輕量解碼組件。無(wú)線顯示計(jì)算機(jī)還可包括作為無(wú)線顯示的一部分的集成電路。盡管本文討論的主要實(shí)施例涉及向無(wú)線顯示器傳送屏幕數(shù)據(jù),但是可理解這些技術(shù)可在保真度和交互性受限的其他通信信道上適用。例如,這些技術(shù)可在源計(jì)算機(jī)通過通用串行總線2.0(USB 2.0)連接與監(jiān)視器通信的情況下適用。本領(lǐng)域技術(shù)人員將理解,本發(fā)明的一個(gè)或多個(gè)方面可包括但不限于用于實(shí)現(xiàn)本發(fā)明的本文所述各方面的電路和/或編程;該電路和/或編程實(shí)質(zhì)上可以是配置成實(shí)現(xiàn)本文所述各方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇。以上是概述,并且因此必然包含細(xì)節(jié)的簡(jiǎn)化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說明性的并且決不旨在是限制性的。
參考附圖進(jìn)一步描述用于在無(wú)線顯示表面上顯示計(jì)算機(jī)桌面的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì),附圖中附圖1描繪了其中可實(shí)現(xiàn)此處描述的技術(shù)的示例通用計(jì)算環(huán)境。圖2描繪了詳述生成計(jì)算機(jī)圖形并在監(jiān)視器上顯示它們時(shí)所涉及的組件的示例計(jì)算機(jī)系統(tǒng)。圖3描繪了示例計(jì)算機(jī)系統(tǒng),該示例計(jì)算機(jī)系統(tǒng)描繪了用于在無(wú)線顯示器上顯示圖像的技術(shù)。圖3A描繪了在常規(guī)遠(yuǎn)程呈現(xiàn)協(xié)議(RPP)會(huì)話發(fā)生的示例計(jì)算機(jī)系統(tǒng)中的服務(wù)器上的會(huì)話。圖;3B描繪了在無(wú)線顯示器上顯示圖像發(fā)生的示例計(jì)算機(jī)系統(tǒng)中的服務(wù)器上的會(huì)話。圖4描繪了用于在無(wú)線顯示器上顯示圖像的示例操作過程。
具體實(shí)施例方式各實(shí)施例可在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上執(zhí)行。圖1及以下討論旨在提供可在其中實(shí)現(xiàn)所公開的主題的合適計(jì)算環(huán)境的簡(jiǎn)要概括描述。貫穿本說明書使用的術(shù)語(yǔ)電路可包括諸如硬件中斷控制器、硬盤驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器等硬件組件,以及用于操作這些硬件的固件。術(shù)語(yǔ)電路還可包括微處理器、專用集成電路、和/或一個(gè)或多個(gè)邏輯處理器,例如由從固件和/或軟件中讀取的指令配置的多核通用處理單元的一個(gè)或多個(gè)核。邏輯處理器可由指令來配置,指令具體化可用于執(zhí)行從例如RAM、R0M、固件和/或大容量存儲(chǔ)等存儲(chǔ)器加載的功能的邏輯。在其中電路包括硬件和軟件的組合的示例實(shí)施例中,實(shí)現(xiàn)者可以編寫具體化邏輯的源代碼,該源代碼隨后被編譯成可由邏輯處理器執(zhí)行的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件實(shí)現(xiàn)的功能或軟件實(shí)現(xiàn)的功能之間幾乎沒有差別的地步,因而選擇硬件還是軟件來實(shí)現(xiàn)此處描述的功能只是一個(gè)設(shè)計(jì)選擇。換言之,由于本領(lǐng)域的技術(shù)人員可以理解軟件進(jìn)程可被變換成等效的硬件結(jié)構(gòu),且硬件結(jié)構(gòu)本身可被變換成等效的軟件進(jìn)程,因此選擇硬件實(shí)現(xiàn)或是軟件實(shí)現(xiàn)留給了實(shí)現(xiàn)者?,F(xiàn)在參考圖1,描繪了示例性通用計(jì)算系統(tǒng)。該通用計(jì)算系統(tǒng)可包括常規(guī)的計(jì)算機(jī) 20等,它包括至少一個(gè)處理器或處理單元21、系統(tǒng)存儲(chǔ)器22和在系統(tǒng)處于操作狀態(tài)時(shí)將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合到處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是若干類型的總線結(jié)構(gòu)中的任一種,包括使用各種總線體系結(jié)構(gòu)中的任一種的存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線,以及局部總線。系統(tǒng)存儲(chǔ)器能包括只讀存儲(chǔ)器(ROM)M和隨機(jī)存取存儲(chǔ)器(RAM) 25。基本輸入/輸出系統(tǒng)沈¢10 被存儲(chǔ)在ROM M中,該基本輸入/輸出系統(tǒng)沈包含了諸如在啟動(dòng)期間幫助在計(jì)算機(jī)20內(nèi)的元件之間傳輸信息的基本例程。計(jì)算機(jī)20還可包括用于對(duì)硬盤(未示出)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器27,用于對(duì)可移動(dòng)磁盤四進(jìn)行讀寫的磁盤驅(qū)動(dòng)器28,以及用于對(duì)如CD ROM或其它光介質(zhì)等可移動(dòng)光盤31進(jìn)行讀寫的光盤驅(qū)動(dòng)器30。硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器觀和光盤驅(qū)動(dòng)器30被示為分別通過硬盤驅(qū)動(dòng)器接口 32、磁盤驅(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)境采用硬盤、可移動(dòng)磁盤四和可移動(dòng)光盤31,但本領(lǐng)域技術(shù)人員應(yīng)理解,在該示例性操作環(huán)境中也能使用可存儲(chǔ)能由計(jì)算機(jī)訪問的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),如閃存卡、數(shù)字視頻盤、隨機(jī)存取存儲(chǔ)器(RAM)、 只讀存儲(chǔ)器(ROM)等。通常,這些計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)能夠被用于一些實(shí)施例中來存儲(chǔ)實(shí)現(xiàn)本公開的各方面的處理器可執(zhí)行指令。包括計(jì)算機(jī)可讀指令的若干程序模塊可存儲(chǔ)在諸如硬盤、磁盤四、光盤31、ROM 24或RAM 25之類的計(jì)算機(jī)可讀介質(zhì)上,包括操作系統(tǒng)35、一個(gè)或多個(gè)應(yīng)用程序36、其他程序模塊37、以及程序數(shù)據(jù)38。一旦由處理單元執(zhí)行,計(jì)算機(jī)可讀指令使得下文中更詳細(xì)描述的動(dòng)作被執(zhí)行或使得各種程序模塊被實(shí)例化。用戶可以通過諸如鍵盤40和定點(diǎn)設(shè)備42 之類的輸入設(shè)備向計(jì)算機(jī)20中輸入命令和信息。其他輸入設(shè)備(未示出)可包括話筒、游戲桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些及其他輸入設(shè)備常常通過耦合到系統(tǒng)總線的串行端口接口 46連接到處理單元21,但是,也可以通過諸如并行端口、游戲端口、通用串行總線(USB)端口之類的其他接口來連接。顯示器47或其他類型的顯示設(shè)備也可以通過諸如視頻適配器48之類的接口連接到系統(tǒng)總線23。除了顯示器47之外,計(jì)算機(jī)通常還包括其他外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。圖1的示例性系統(tǒng)還包括主適配器55、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線56和連接到SCSI總線56的外部存儲(chǔ)設(shè)備62。計(jì)算機(jī)20可使用至諸如遠(yuǎn)程計(jì)算機(jī)49之類的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),并通??砂ㄒ陨蠈?duì)個(gè)人計(jì)算機(jī)20描述的許多或所有元件, 但是在圖1中只示出存儲(chǔ)器存儲(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)聯(lián)網(wǎng)和因特網(wǎng)中是普遍的。當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20可通過網(wǎng)絡(luò)接口或適配器53連接到LAN 51。 當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20通常包括調(diào)制解調(diào)器M,或用于通過諸如因特網(wǎng)之類的廣域網(wǎng)52建立通信的其他手段??梢允莾?nèi)置的或外置的調(diào)制解調(diào)器討可通過串行端口接口 46連接到系統(tǒng)總線23。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)20所描述的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢岳斫猓镜木W(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。雖然可構(gòu)想本發(fā)明的許多實(shí)施例尤其適用于計(jì)算機(jī)化的系統(tǒng),然而在本說明中不意味著將本發(fā)明限于那些實(shí)施例。圖2描繪了詳述生成計(jì)算機(jī)圖形并在監(jiān)視器上顯示它們時(shí)所涉及的組件的示例計(jì)算機(jī)系統(tǒng)。圖2的計(jì)算機(jī)系統(tǒng)可以使用圖1的計(jì)算機(jī)來實(shí)現(xiàn)。圖2中所描繪的組件的架構(gòu)類似于微軟WINDOWS操作系統(tǒng)的某些版本的架構(gòu)。盡管圖2 (以及后面的圖幻描繪了用戶模式204和內(nèi)核模式212,但是可理解本技術(shù)可在不具有這些模式的系統(tǒng)架構(gòu)中工作。包括應(yīng)用202的用戶的會(huì)話在用戶模式204中執(zhí)行——即該模式中進(jìn)程不能通過應(yīng)用編程接口(API)功能或命令訪問為其他進(jìn)程保留的存儲(chǔ)器。用戶模式中的進(jìn)程也不能干擾中斷或上下文切換。當(dāng)應(yīng)用202向顯示表面繪制時(shí),應(yīng)用202將圖形API命令發(fā)送到圖形子系統(tǒng)206。圖形子系統(tǒng)206包括窗口管理器208和圖形設(shè)備接口(⑶1)210,窗口管理器208控制操作系統(tǒng)的桌面內(nèi)窗口的放置和外觀,圖形設(shè)備接口負(fù)責(zé)表示圖形對(duì)象并傳送到諸如計(jì)算機(jī)監(jiān)視器之類的輸出設(shè)備。圖形子系統(tǒng)206在內(nèi)核模式212(有時(shí)稱為“系統(tǒng)模式”)中執(zhí)行,在該模式中任何進(jìn)程可執(zhí)行任何指令以及引用任何存儲(chǔ)器地址。繪制命令可從應(yīng)用(包括操作系統(tǒng)的負(fù)責(zé)創(chuàng)建桌面的子組件)接收并由圖形設(shè)備接口 210處理。圖形設(shè)備接口 210—般可包括能生成圖形對(duì)象繪制命令的進(jìn)程。該實(shí)施例中的圖形設(shè)備接口 210可被配置成將其輸出傳遞給附屬于該會(huì)話的顯示驅(qū)動(dòng)器。當(dāng)圖形子系統(tǒng)206已經(jīng)處理了從應(yīng)用202接收的圖形API命令以產(chǎn)生結(jié)果(如存儲(chǔ)在存儲(chǔ)器地址中的位圖)時(shí),圖形子系統(tǒng)206將該結(jié)果發(fā)送到圖形設(shè)備驅(qū)動(dòng)器214。圖形設(shè)備驅(qū)動(dòng)器214是通過通信子系統(tǒng)與輸出設(shè)備216通信的進(jìn)程。當(dāng)圖形子系統(tǒng)206調(diào)用圖形設(shè)備驅(qū)動(dòng)器214中的例程時(shí),圖形設(shè)備驅(qū)動(dòng)器218向輸出設(shè)備發(fā)出命令且一圖形在該輸出設(shè)備上產(chǎn)生。圖3描繪了一示例計(jì)算機(jī)系統(tǒng),該示例計(jì)算機(jī)系統(tǒng)描繪了用于在無(wú)線顯示器上顯示屏幕數(shù)據(jù)的技術(shù)且通過編碼和解碼技術(shù)來這樣做。圖3中所描繪的組件的架構(gòu)類似于微軟WINDOWS操作系統(tǒng)的某些版本的架構(gòu)。應(yīng)用302、用戶模式304、圖形子系統(tǒng)306、窗口管理器308、圖形設(shè)備接口 310以及內(nèi)核模式312可分別類似于圖2中所描繪的應(yīng)用202、用戶模式204、圖形子系統(tǒng)206、窗口管理器208、圖形設(shè)備接口 210以及內(nèi)核模式212。盡管圖3描繪了由軟件進(jìn)程執(zhí)行的若干操作,但是可理解它們可由硬件、或硬件和軟件的組合來執(zhí)行。例如,類似地操作可由在圖形數(shù)據(jù)被顯示在無(wú)線顯示器322上之前解碼圖形數(shù)據(jù)的專用集成電路(ASIC)來執(zhí)行。虛擬設(shè)備驅(qū)動(dòng)器318是被配置成以類似于圖形設(shè)備驅(qū)動(dòng)器214如何被配置成向輸出設(shè)備216發(fā)出命令的方式向無(wú)線顯示表面322發(fā)出命令。虛擬設(shè)備驅(qū)動(dòng)器318可經(jīng)諸如無(wú)線顯示連接之類的無(wú)線連接(被描繪為通信路徑1)與無(wú)線顯示表面322通信。一示例性無(wú)線顯示連接協(xié)議使得設(shè)備能夠創(chuàng)建自組織(ad-hoc)網(wǎng)絡(luò)——以與彼此通信而不用在先設(shè)置或使用單獨(dú)的無(wú)線接入點(diǎn)。在通常情況下,源計(jì)算機(jī)3 和無(wú)線顯示表面322發(fā)現(xiàn)彼此,源計(jì)算機(jī)3 起軟接入點(diǎn)(“AP”)的作用。無(wú)線顯示表面322可通過使用通過諸如 HDMI電纜之類的電纜連接到無(wú)線顯示表面322的目的計(jì)算機(jī)3M或通過內(nèi)建在無(wú)線顯示表面322中的目的計(jì)算機(jī)3M來參與該發(fā)現(xiàn)操作。在發(fā)現(xiàn)之后,可通過在源計(jì)算機(jī)3 處的用戶輸入來確認(rèn)對(duì)無(wú)線顯示連接的創(chuàng)建,例如按壓鍵盤上的特定按鈕或輸入顯示在無(wú)線顯示表面322上的短字母數(shù)字代碼。虛擬設(shè)備驅(qū)動(dòng)器318、音頻驅(qū)動(dòng)器328(從應(yīng)用302接收音頻)以及輸入驅(qū)動(dòng)器 330(從輸入設(shè)備接收用戶輸入)與遠(yuǎn)程呈現(xiàn)協(xié)議(RPP)編碼器320通信。來自應(yīng)用302的圖形數(shù)據(jù)沿通信信道2 (在應(yīng)用302和圖形子系統(tǒng)306之間)傳遞,并然后沿通信信道3 (在圖形子系統(tǒng)306和虛擬顯示驅(qū)動(dòng)器318之間)傳遞。從應(yīng)用302生成的音頻命令從應(yīng)用 302沿通信信道4傳遞到音頻驅(qū)動(dòng)器328。RPP編碼器320被配置成根據(jù)RPP壓縮屏幕數(shù)據(jù) (包括圖像、聲音和輸入)。盡管RPP編碼器320在此被描繪成從圖形設(shè)備接口 310接收?qǐng)D形數(shù)據(jù),但是可理解RPP編碼器320可從計(jì)算機(jī)326內(nèi)的各種區(qū)域接收?qǐng)D形數(shù)據(jù),例如存儲(chǔ)在盤上的媒體文件、圖形命令(如DIRECTX命令)、來自圖形子系統(tǒng)的合成圖像、或來自動(dòng)畫子系統(tǒng)的動(dòng)畫圖像或命令。RPP編碼器320使用的RPP可分類屏幕數(shù)據(jù)以用適用于特定屏幕數(shù)據(jù)的細(xì)節(jié)的不同編碼技術(shù)來壓縮屏幕數(shù)據(jù),從而提高正被呈現(xiàn)的屏幕數(shù)據(jù)的保真度和 /或交互性。當(dāng)用RPP編碼屏幕數(shù)據(jù)時(shí)可用各種方式來節(jié)省帶寬。例如,可將圖像細(xì)分成小片 (tile),且僅圖像之間變化的那些小片(“臟的小片”)可被發(fā)送。當(dāng)客戶機(jī)接收到小片時(shí), 客戶機(jī)可高速緩存小片,然后服務(wù)器可指示客戶機(jī)重新使用經(jīng)高速緩存的小片而不是由服務(wù)器發(fā)送同樣的小片。在窗口被移動(dòng)或滾動(dòng)時(shí),可確定該信息且服務(wù)器可指示客戶機(jī)重新使用與前一接收到的圖像幀和新的圖像幀之間的窗口移動(dòng)或滾動(dòng)相對(duì)應(yīng)的同樣的信息。節(jié)省帶寬的另一方式是,不是發(fā)送呈現(xiàn)圖形命令的圖形結(jié)果(如結(jié)果位像),服務(wù)器可發(fā)送圖形命令本身,客戶機(jī)然后呈現(xiàn)這些圖形命令。在圖形而不是圖形命令被發(fā)送的情況下, 這些圖形可諸如經(jīng)H. 264編碼器被壓縮,可用多個(gè)編解碼器壓縮單個(gè)桌面幀。例如,計(jì)算機(jī)桌面上的文本可用第一編解碼器壓縮,而同一計(jì)算機(jī)桌面上的圖像可用第二編解碼器壓縮。有一些技術(shù)可由遠(yuǎn)程呈現(xiàn)協(xié)議使用,但是這里所描述的技術(shù)不構(gòu)成這些技術(shù)的窮舉列表。一旦用遠(yuǎn)程呈現(xiàn)編碼器320編碼,編碼的屏幕數(shù)據(jù)就遵守源計(jì)算機(jī)3 和無(wú)線目的計(jì)算機(jī)3M通信所用的通信協(xié)議(如IEEE 802. Iln協(xié)議)被傳送到目的計(jì)算機(jī)324。在該通信信道上傳送的經(jīng)編碼的屏幕數(shù)據(jù)在該信道上看起來是RPP數(shù)據(jù)。也就是說,在數(shù)據(jù)以多個(gè)分組來傳送的情況下,每個(gè)分組看起來是RPP分組。目的計(jì)算機(jī)3M可包括被配置成解碼從源計(jì)算機(jī)3 接收到的RPP數(shù)據(jù)的邏輯和 /或電路。如所描繪的,目的計(jì)算機(jī)包括輕量RPP解碼器334。輕量RPP解碼器334可包括通用CPU上執(zhí)行的從目的計(jì)算機(jī)324的網(wǎng)絡(luò)接口接收RPP分組的軟件進(jìn)程。輕量RPP解碼器334被配置成解碼接收到的RPP數(shù)據(jù)以及將其顯示在無(wú)線顯示器322上。輕量RPP 234 解碼器可將該解碼的某一些卸載到諸如所描繪的HW解碼器232A和232B之類的硬件解碼器。硬件解碼器可包括例如被配置成解碼RemoteFX編碼的數(shù)據(jù)或H. 264編碼的數(shù)據(jù)的專用硬件。輕量RPP解碼器334可被認(rèn)為是輕量的,因?yàn)樗话幚沓R?guī)RPP會(huì)話的各方面的邏輯。例如,輕量RPP解碼器234可不包含發(fā)起或終止RPP會(huì)話、存儲(chǔ)和/或向RPP服務(wù)器發(fā)送用戶憑證以證實(shí)RPP會(huì)話、編碼屏幕數(shù)據(jù)、或接收包括圖像、聲音的在目的計(jì)算機(jī) 224處本地輸入的屏幕數(shù)據(jù)的邏輯??赏ㄟ^向桌面的對(duì)應(yīng)于用戶輸入的部分分配優(yōu)先級(jí)來進(jìn)一步提高交互性。這是因?yàn)橛^看桌面的某人可能被吸引到桌面的對(duì)應(yīng)于用戶輸入的那些部分,從而這些部分被更新的速率可比桌面的其他部分被更新的速率更多地影響個(gè)人對(duì)交互性的印象。該優(yōu)先級(jí)可按各種方式來分配。例如,在桌面幀被細(xì)分為小片的情況下,包含全部或部分用戶光標(biāo)的一個(gè)小片或多個(gè)小片可被給予分配的優(yōu)先級(jí)。同樣,例如在用戶輸入導(dǎo)致桌面上的窗口的大小、 形狀或位置的改變時(shí)(例如通過用戶使用光標(biāo)拖曳窗口的一角),包含該變化的窗口的全部或部分的一個(gè)小片或多個(gè)小片可被分配較高的優(yōu)先級(jí)。高優(yōu)先級(jí)可就屏幕數(shù)據(jù)如何在源計(jì)算機(jī)或目的計(jì)算機(jī)的隊(duì)列中被處理而給予屏幕數(shù)據(jù)優(yōu)選,例如隊(duì)列中被放置在較低優(yōu)先級(jí)屏幕數(shù)據(jù)的前面。這些隊(duì)列可包括對(duì)要被編碼、解碼或傳送的屏幕數(shù)據(jù)的援引。源計(jì)算機(jī)326能夠根據(jù)各種技術(shù)來編碼圖像,并且基于目的計(jì)算機(jī)324的屬性 (例如目的計(jì)算機(jī)3M存在或缺少專門用于解碼特定編解碼器的硬件、目的計(jì)算機(jī)3M的總體處理能力、目的計(jì)算機(jī)的RAM量、目的計(jì)算機(jī)3M是否擁有GPU以及是的話擁有什么類型的GPU)以及源計(jì)算機(jī)3 與目的計(jì)算機(jī)3M通信所經(jīng)由的通信網(wǎng)絡(luò)來這樣做。在通常情形下,源計(jì)算機(jī)3 可以是通用計(jì)算機(jī),除了(沿通信信道幻傳送要被顯示在無(wú)線顯示器 322上的數(shù)據(jù)之外,它可同時(shí)被用于其他目的,如執(zhí)行web瀏覽器或電子郵件客戶端。相反, 在該通常情形下,目的計(jì)算機(jī)3M可專門用于解碼從源計(jì)算機(jī)3 接收的圖像數(shù)據(jù)以及在無(wú)線顯示器322上顯示解碼的圖像。在該情形中,假設(shè)源計(jì)算機(jī)326的處理資源可被用于除了編碼和向目的計(jì)算機(jī)3M傳送數(shù)據(jù)之外的事,而目的計(jì)算機(jī)3M可專門地或幾乎專門地被用于接收、解碼和呈現(xiàn)從源計(jì)算機(jī)3 接收的數(shù)據(jù),則在目的計(jì)算機(jī)3M上盡可能多地進(jìn)行處理可能是較優(yōu)選的。從而,源計(jì)算機(jī)3 執(zhí)行的編碼的量可基于目的計(jì)算機(jī)324的最大解碼能力來確定。這可通過例如在3 源計(jì)算機(jī)和目的計(jì)算機(jī)3M建立通信時(shí),目的計(jì)算機(jī)324向源計(jì)算機(jī)3 指示其接收、解碼和顯示圖像數(shù)據(jù)的能力來完成。來自目的計(jì)算機(jī)3M的該指示可包括例如目的計(jì)算機(jī)3M可解碼的一個(gè)或多個(gè)編解碼器,以及對(duì)這些一個(gè)或多個(gè)編解碼器之間的優(yōu)選的指示。例如,該指示可表明目的計(jì)算機(jī)3M能夠解碼RemoteFX和H. 264編解碼器兩者,但是優(yōu)選H. 264,因?yàn)樗袑iT的硬件來解碼H.沈4,但它必須用通用CPU來解碼RemoteFX。在編解碼器格式允許可變壓縮量或質(zhì)量(其中低壓縮量可更快地被解碼但要求更多帶寬來傳送,而高壓縮量可能不會(huì)這樣快地被解碼但要求更少的帶寬來傳送)的情況下,來自目的計(jì)算機(jī)324的該指示還可包括目的計(jì)算機(jī)3M能夠解碼的壓縮程度。來自目的計(jì)算機(jī)324的該指示還可包括關(guān)于目的計(jì)算機(jī)對(duì)用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)進(jìn)行解碼的能力的信息。例如,在遠(yuǎn)程呈現(xiàn)協(xié)議可將桌面幀細(xì)分成小片并指示目的計(jì)算機(jī)324高速緩存并重新使用小片的情況下,目的計(jì)算機(jī)3M可向源計(jì)算機(jī)3 指示它具有用于高速緩存小片的有限量的存儲(chǔ)器。源計(jì)算機(jī)3 可從目的計(jì)算機(jī)3M接收該指示以及從該指示接收關(guān)于源計(jì)算機(jī) 326的信息,確定如何用遠(yuǎn)程呈現(xiàn)編碼器320編碼信息。例如,盡管目的計(jì)算機(jī)3M可指示出使用特定格式的優(yōu)選,因?yàn)樗哂袑S糜诮獯a該格式的硬件,但是基于源計(jì)算機(jī)3 架構(gòu)的細(xì)節(jié),該格式可能對(duì)于源計(jì)算機(jī)3 編碼來說是尤其棘手的格式。給定該信息,源計(jì)算機(jī)3 可選擇用遠(yuǎn)程呈現(xiàn)編碼器320編碼計(jì)算機(jī)桌面的方式,以及在編碼要被發(fā)送到目的計(jì)算機(jī)324的計(jì)算機(jī)桌面時(shí)使用該所選方式來編碼。在另一通常情形中,盡管目的計(jì)算機(jī)2M專門用于解碼和呈現(xiàn)從源計(jì)算機(jī)2 接收的屏幕數(shù)據(jù),但是目的計(jì)算機(jī)2M具有有限的處理資源,因?yàn)樗堑统杀镜那度胧皆O(shè)備。 在該情形中,源計(jì)算機(jī)2 可通過本地地執(zhí)行大量處理來客戶目的計(jì)算機(jī)224的局限(例如分類計(jì)算機(jī)桌面的不同部分以及不同地編碼這些不同部分,以使得解碼是較不資源密集的)。然而,由于源計(jì)算機(jī)2 還可執(zhí)行用戶應(yīng)用(如構(gòu)成正被傳送到目的計(jì)算機(jī)224的屏幕數(shù)據(jù)的那些應(yīng)用),一優(yōu)選的情形可涉及源計(jì)算機(jī)2 將同樣多的處理資源用于編碼屏幕數(shù)據(jù)而不對(duì)該用戶應(yīng)用拒絕任何處理資源(例如僅使用另外可用的處理資源)。在另一通常情形下,屏幕數(shù)據(jù)可包括帶有聲音的視頻,而源計(jì)算機(jī)3 可與目的計(jì)算機(jī)3M通信,以為了在包括無(wú)線監(jiān)視器322的家庭影院上呈現(xiàn)屏幕數(shù)據(jù)。在這一情形以及其他情形中,可能重要的是聲音和視頻被同時(shí)播放。在這一情形中,遠(yuǎn)程呈現(xiàn)編碼器320 可從源計(jì)算機(jī)326的音頻驅(qū)動(dòng)器接收聲音或音頻數(shù)據(jù),將該聲音數(shù)據(jù)編碼并與視頻的圖像數(shù)據(jù)一起發(fā)送到目的計(jì)算機(jī)324。源計(jì)算機(jī)3 可進(jìn)一步標(biāo)記聲音和圖像數(shù)據(jù),例如用時(shí)間碼,以表示什么聲音數(shù)據(jù)與什么圖像數(shù)據(jù)同步。目的計(jì)算機(jī)3M可使用該時(shí)間碼信息,使得它指示無(wú)線顯示器322以及通信上連接到目的計(jì)算機(jī)3M的音頻輸出裝置共同分別同時(shí)地播放聲音和圖像。圖3A描繪了在常規(guī)遠(yuǎn)程呈現(xiàn)協(xié)議(RPP)會(huì)話中共享本地用戶桌面的示例計(jì)算機(jī)系統(tǒng)中的服務(wù)器上的會(huì)話。服務(wù)器計(jì)算機(jī)380被配置成服務(wù)遠(yuǎn)程呈現(xiàn)會(huì)話。服務(wù)器計(jì)算機(jī) 380包括會(huì)話382,即包括被配置成編碼并傳送由用戶會(huì)話生成的RPP數(shù)據(jù)的系統(tǒng)服務(wù)的非交互式會(huì)話(如無(wú)用戶賬戶通過操作系統(tǒng)與該會(huì)話相關(guān)聯(lián))。注意,對(duì)會(huì)話382的描繪是示例性的,存在可在其中實(shí)現(xiàn)本發(fā)明的其他系統(tǒng)架構(gòu)和實(shí)施例。服務(wù)器計(jì)算機(jī)380還包括用戶控制臺(tái)會(huì)話386,即用于用戶在控制臺(tái)處的交互式用戶會(huì)話(例如,它接收來自本地鼠標(biāo)和鍵盤的輸入,而不是跨通信網(wǎng)絡(luò)在RPP會(huì)話中的輸入,以及在本地監(jiān)視器和揚(yáng)聲器上顯示輸出)。服務(wù)器計(jì)算機(jī)380還包括遠(yuǎn)程用戶會(huì)話388,即服務(wù)器計(jì)算機(jī)380和客戶機(jī)計(jì)算機(jī)380跨通信網(wǎng)絡(luò)390建立RPP會(huì)話時(shí)在服務(wù)器計(jì)算機(jī)382上創(chuàng)建的用戶會(huì)話。遠(yuǎn)程用戶會(huì)話388是在RPP中與客戶機(jī)計(jì)算機(jī)382通信的用戶會(huì)話,但是它是要與客戶機(jī)計(jì)算機(jī)382共享的(或鏡像的或復(fù)制的)本地屏幕,且該本地屏幕與一不同的用戶會(huì)話-用戶控制臺(tái)會(huì)話386-相關(guān)聯(lián)。為了與客戶機(jī)計(jì)算機(jī)382共享本地屏幕,遠(yuǎn)程用戶會(huì)話388接收來自客戶機(jī)計(jì)算機(jī)382的輸入,并將該用戶輸入傳送到用戶控制臺(tái)會(huì)話386, 在用戶控制臺(tái)會(huì)話中該用戶輸入被處理。類似地,用戶控制臺(tái)會(huì)話386創(chuàng)建的屏幕數(shù)據(jù)由遠(yuǎn)程用戶會(huì)話388接收。遠(yuǎn)程用戶會(huì)話388獲得該屏幕數(shù)據(jù),并將其發(fā)送到會(huì)話0 382,以便用RPP編碼并發(fā)送到客戶機(jī)計(jì)算機(jī)382供顯示。在所描繪的實(shí)施例中,用戶控制臺(tái)會(huì)話 386不為了用RPP編碼屏幕數(shù)據(jù)并將其傳送到客戶機(jī)計(jì)算機(jī)382的目的而與會(huì)話0 382交互。該處理由遠(yuǎn)程用戶會(huì)話388應(yīng)對(duì)。圖;3B描繪了在無(wú)線顯示器上顯示本地用戶桌面的示例計(jì)算機(jī)系統(tǒng)中的服務(wù)器上的會(huì)話。與圖3A中描繪的常規(guī)RPP會(huì)話相對(duì)比,沒有為傳送數(shù)據(jù)創(chuàng)建的附加用戶會(huì)話(圖 3A的遠(yuǎn)程用戶會(huì)話388)。相反,與目的計(jì)算機(jī)394的連接由源計(jì)算機(jī)392的用戶控制臺(tái) 386b管理,用戶控制臺(tái)386b還管理會(huì)話0 382b對(duì)屏幕數(shù)據(jù)的編碼(注意,與圖3A中一樣, 會(huì)話0不是強(qiáng)制性的,本發(fā)明可在不同的系統(tǒng)架構(gòu)中起作用)。用戶控制臺(tái)會(huì)話386和目的計(jì)算機(jī)394通過通信網(wǎng)絡(luò)390建立無(wú)線通信信道。用戶控制臺(tái)會(huì)話386b生成諸如計(jì)算機(jī)桌面之類的本地屏幕數(shù)據(jù)。用戶控制臺(tái)會(huì)話386b向會(huì)話0 382b發(fā)送指令以用RPP編碼該屏幕數(shù)據(jù),并將編碼的屏幕數(shù)據(jù)直接傳送到目的計(jì)算機(jī)394——它不通過第二用戶控制臺(tái), 就像圖3A中圖3A的遠(yuǎn)程用戶會(huì)話388如何與RPP數(shù)據(jù)傳輸有關(guān)那樣。圖4描繪了用于在無(wú)線顯示器上顯示圖像的示例操作過程。圖4的操作過程可在圖3的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)??梢岳斫?,各操作的順序不是強(qiáng)制性的,本發(fā)明可以操作順序的各種變換來實(shí)現(xiàn),且不是每一操作都需要被執(zhí)行來實(shí)現(xiàn)本發(fā)明。在圖4的操作過程中,源計(jì)算機(jī)生成諸如計(jì)算機(jī)桌面之類的屏幕數(shù)據(jù),然后將該計(jì)算機(jī)桌面編碼并發(fā)送到目的計(jì)算機(jī) (如3的目的計(jì)算機(jī)324),目的計(jì)算機(jī)對(duì)它解碼并將其顯示在無(wú)線顯示器(如圖3的無(wú)線顯示器32 上。編碼和解碼屏幕數(shù)據(jù)的該過程是在用戶控制臺(tái)會(huì)話內(nèi)用遠(yuǎn)程呈現(xiàn)協(xié)議(RPP) 執(zhí)行的,從而該編碼和解碼可在遠(yuǎn)程呈現(xiàn)會(huì)話之外發(fā)生(例如在操作過程開始時(shí)可能沒有建立遠(yuǎn)程呈現(xiàn)會(huì)話,可能沒有對(duì)用戶憑證的證實(shí),可能沒有創(chuàng)建分開的用戶會(huì)話,以及在操作過程的結(jié)束處可能沒有終止遠(yuǎn)程呈現(xiàn)會(huì)話)。通過實(shí)現(xiàn)這些操作過程,通過無(wú)線顯示器提供了高水平的保真度和交互性,使其非常類似于有線顯示器所提供的保真度和交互性的水平。操作過程開始于操作402。操作402描繪了在源計(jì)算機(jī)的用戶控制臺(tái)會(huì)話與目的計(jì)算機(jī)之間建立無(wú)線通信信道,所述目的計(jì)算機(jī)被配置成在無(wú)線顯示器上顯示屏幕數(shù)據(jù)。 該無(wú)線通信信道可包括例如無(wú)線USB或無(wú)線HD通信信道。該通信信道可在源計(jì)算機(jī)(例如圖3的源計(jì)算機(jī)326)和目的計(jì)算機(jī)(例如圖3的目的計(jì)算機(jī)324)之間建立。目的計(jì)算機(jī)可包括嵌入在無(wú)線顯示器中的ASIC,或物理上連接到無(wú)線顯示器的計(jì)算機(jī),例如嵌入式系統(tǒng)“機(jī)頂盒”。除通用處理器之外,目的計(jì)算機(jī)可包括被配置成解碼遠(yuǎn)程呈現(xiàn)數(shù)據(jù)并在無(wú)線顯示器上呈現(xiàn)圖形的專門電路。操作404描繪了確定要被顯示在無(wú)線顯示器上的用戶控制臺(tái)會(huì)話的第一屏幕數(shù)據(jù)。該屏幕數(shù)據(jù)可包括計(jì)算機(jī)桌面或其他圖像、音頻以及用戶輸入的指示。該確定可作為源計(jì)算機(jī)的圖形子系統(tǒng)將計(jì)算機(jī)桌面呈現(xiàn)到源計(jì)算機(jī)的存儲(chǔ)器區(qū)域的結(jié)果而發(fā)生。在無(wú)線顯示器被用于擴(kuò)展源計(jì)算機(jī)的顯示器的情況下,不是對(duì)源計(jì)算機(jī)的顯示器做鏡像,該屏幕數(shù)據(jù)可不由源計(jì)算機(jī)的顯示器顯示,而僅由無(wú)線顯示器顯示。操作406描繪了用遠(yuǎn)程呈現(xiàn)協(xié)議(RPP)編碼屏幕數(shù)據(jù)。編碼屏幕數(shù)據(jù)的該過程可發(fā)生在遠(yuǎn)程呈現(xiàn)會(huì)話之外,因?yàn)樵诓僮鬟^程開始時(shí)遠(yuǎn)程呈現(xiàn)會(huì)話可能還未建立,可能沒有對(duì)用戶憑證的證實(shí),和/或在操作過程的結(jié)束時(shí)可能沒有終止遠(yuǎn)程呈現(xiàn)會(huì)話。編碼的第一屏幕數(shù)據(jù)可包括例如用H. 264格式編碼的圖像,或供無(wú)線設(shè)備計(jì)算機(jī)使用的經(jīng)高速緩存的屏幕數(shù)據(jù)的指示。操作406可包括用第一編解碼器編碼第一屏幕數(shù)據(jù)的第一部分;以及用第二編解碼器編碼第一屏幕數(shù)據(jù)的第二部分,第二編解碼器不同于第一編解碼器。例如,該第一部分可包括文本的表示(如表示文本以及可從中提取文本的圖像),該第二部分可包括接近照片質(zhì)量的圖像。或者該第一部分可包括黑白圖像,而該第二部分包括彩色圖像。盡管這兩個(gè)部分可以是屏幕數(shù)據(jù)的同一幀的部分,但可能的是它們使用不同的編解碼器來得到更好的編碼,且這可以進(jìn)行。操作408描繪了將編碼的第一屏幕數(shù)據(jù)從用戶控制臺(tái)會(huì)話發(fā)送到目的計(jì)算機(jī),而不用通過第二用戶會(huì)話傳送編碼的第一屏幕數(shù)據(jù),使得目的計(jì)算機(jī)將對(duì)編碼的第一屏幕數(shù)據(jù)進(jìn)行解碼并將解碼的第一屏幕數(shù)據(jù)顯示在無(wú)線顯示器上。源計(jì)算機(jī)和目的計(jì)算機(jī)在建立的無(wú)線通信信道上通信。當(dāng)源計(jì)算機(jī)向目的計(jì)算機(jī)發(fā)送編碼的第一屏幕數(shù)據(jù)時(shí),它使用該通信信道來這樣做,但是它在這樣做之前并不首先建立跨該通信信道的遠(yuǎn)程呈現(xiàn)會(huì)話。 響應(yīng)于接收到編碼的第一屏幕數(shù)據(jù),目的計(jì)算機(jī)解碼該數(shù)據(jù)并在無(wú)線顯示器上對(duì)其進(jìn)行匯編。盡管解碼的第一屏幕數(shù)據(jù)對(duì)應(yīng)于第一屏幕數(shù)據(jù),但是它可能不完全與第一屏幕數(shù)據(jù)匹配。例如,如果第一屏幕數(shù)據(jù)被編碼且然后用有損解碼器解碼,則圖像中的某一些會(huì)丟失, 解碼的第一屏幕數(shù)據(jù)將與第一屏幕數(shù)據(jù)不同。操作410描繪了用遠(yuǎn)程呈現(xiàn)協(xié)議編碼控制臺(tái)會(huì)話的第二屏幕數(shù)據(jù);從用戶控制臺(tái)會(huì)話向目的計(jì)算機(jī)發(fā)送編碼的第二屏幕數(shù)據(jù),而不用通過第二用戶會(huì)話傳送編碼的第二屏幕數(shù)據(jù);以及向目的計(jì)算機(jī)發(fā)送第二屏幕數(shù)據(jù)的優(yōu)先級(jí),使得顯示計(jì)算機(jī)將在無(wú)線顯示器上顯示解碼的第一屏幕數(shù)據(jù)之前在無(wú)線顯示器上顯示解碼的第二屏幕數(shù)據(jù)。在源計(jì)算機(jī)和目的計(jì)算機(jī)之間發(fā)送的屏幕數(shù)據(jù)可被分配優(yōu)先級(jí)。對(duì)用戶關(guān)于顯示器的交互性的印象有更大影響的屏幕數(shù)據(jù)或屏幕數(shù)據(jù)的部分可被分配高優(yōu)先級(jí),使得它們比其他圖像更快地被顯示。例如,當(dāng)用戶在計(jì)算機(jī)桌面上移動(dòng)光標(biāo)或重新調(diào)整應(yīng)用窗口的大小(對(duì)源計(jì)算機(jī)的各種類型的輸入)時(shí),他或她可關(guān)注于看到改變發(fā)生在無(wú)線顯示器上, 而不是看到例如顯示器的角落中的時(shí)鐘更新其時(shí)間。所以,用戶將其對(duì)交互性的印象所基于的這種類型的屏幕數(shù)據(jù)可被源計(jì)算機(jī)給予高優(yōu)先級(jí)。于是可更好地處理高優(yōu)先級(jí)屏幕數(shù)據(jù)。在源計(jì)算機(jī)具有處理屏幕數(shù)據(jù)的隊(duì)列(例如用于編碼的隊(duì)列或用于傳送的隊(duì)列)時(shí), 該高優(yōu)先級(jí)數(shù)據(jù)可在隊(duì)列中被放置在非高優(yōu)先級(jí)屏幕數(shù)據(jù)之前。高優(yōu)先級(jí)屏幕數(shù)據(jù)可在目的計(jì)算機(jī)的隊(duì)列(如解碼隊(duì)列或顯示隊(duì)列)中被類似地給予優(yōu)先處理,或者當(dāng)高優(yōu)先級(jí)數(shù)據(jù)準(zhǔn)備好顯示時(shí),屏幕數(shù)據(jù)可被立即刷新到屏幕。操作412描繪了確定用戶控制臺(tái)會(huì)話的要與顯示解碼的第一屏幕數(shù)據(jù)同時(shí)播放的聲音;用RPP編碼該聲音;以及從用戶控制臺(tái)會(huì)話向目的計(jì)算機(jī)發(fā)送編碼的聲音,而不用通過第二用戶會(huì)話傳送編碼的聲音,使得目的計(jì)算機(jī)將與無(wú)線顯示器顯示解碼的第一屏幕數(shù)據(jù)同時(shí)地播放該聲音。該操作可通過以下來實(shí)現(xiàn)用一時(shí)間戳編碼第一屏幕數(shù)據(jù),該時(shí)間戳指示出屏幕數(shù)據(jù)要被顯示的時(shí)間;以及用第二時(shí)間戳編碼聲音,該第二時(shí)間戳指示聲音要被播放的第二時(shí)間,所述時(shí)間戳和所述第二時(shí)間戳指示要與無(wú)線顯示器顯示解碼的第一屏幕數(shù)據(jù)同時(shí)地播放該聲音。時(shí)間戳可表示同時(shí)播放一即時(shí)間戳可不完全相同,但可有小量的區(qū)別,使得在屏幕數(shù)據(jù)被顯示時(shí)播放聲音。在向屏幕數(shù)據(jù)和聲音分配時(shí)間戳,以及然后目的計(jì)算機(jī)根據(jù)時(shí)間戳播放屏幕數(shù)據(jù)和聲音時(shí),屏幕數(shù)據(jù)和聲音之間的同步可被保持。除了源計(jì)算機(jī)傳送要被顯示在無(wú)線顯示器上的屏幕數(shù)據(jù)之外,源計(jì)算機(jī)還可傳送要在揚(yáng)聲器(例如無(wú)線顯示器中內(nèi)置的揚(yáng)聲器)上播放的聲音數(shù)據(jù)。聲音可從源計(jì)算機(jī)的音頻驅(qū)動(dòng)器捕捉,類似于屏幕數(shù)據(jù)如何從源計(jì)算機(jī)的顯示驅(qū)動(dòng)器被捕捉,聲音數(shù)據(jù)也可以類似方式被編碼、傳送、解碼和播放。操作414描繪了確定用戶控制臺(tái)的要與顯示解碼的第一屏幕數(shù)據(jù)同時(shí)傳遞的用戶輸入的指示;用RPP編碼該用戶輸入的指示;以及從用戶控制臺(tái)會(huì)話向目的計(jì)算機(jī)發(fā)送編碼的用戶輸入的指示,而不用通過第二用戶會(huì)話傳送編碼的用戶輸入,使得目的計(jì)算機(jī)將與無(wú)線顯示器顯示解碼的第一屏幕數(shù)據(jù)同時(shí)地顯示該用戶輸入的指示。該用戶輸入可包括例如用戶在鍵盤上輸入的文本,或用戶使用如鼠標(biāo)或跟蹤墊之類的輸入設(shè)備作出的光標(biāo)移動(dòng)。用戶輸入的該指示可以屏幕數(shù)據(jù)被編碼和傳送的方式類似的方式來被編碼和傳送。操作416描繪了確定目的計(jì)算機(jī)的最大解碼能力;其中用遠(yuǎn)程呈現(xiàn)協(xié)議編碼第一屏幕數(shù)據(jù)包括基于該最大解碼能力來編碼第一屏幕數(shù)據(jù)。在某些情形中,目的計(jì)算機(jī)致力于接收和顯示來自源計(jì)算機(jī)的屏幕數(shù)據(jù)(和音頻),因此它可將其全部處理資源投入該任務(wù)而不會(huì)負(fù)面地影響它要執(zhí)行的另一進(jìn)程。相反,源計(jì)算機(jī)可以是通用計(jì)算機(jī),其中在與目的計(jì)算機(jī)的該通信發(fā)生的同時(shí),用戶嘗試多任務(wù)。因此,在這一情形中,可能的是源計(jì)算機(jī)從目的計(jì)算機(jī)接收其處理能力的指示。該指示可以是其原始處理能力的度量,例如FLOPS, 即每秒浮點(diǎn)運(yùn)算數(shù),以及它被配置成解碼什么編解碼器,以及它是否具有解碼任何特定編解碼器的特殊能力一例如用于解碼H. 264的專門電路?;趶哪康挠?jì)算機(jī)接收的該指示, 源計(jì)算機(jī)可確定目的計(jì)算機(jī)可執(zhí)行多少該通信會(huì)話的工作,以及該通信的減少或最小化源計(jì)算機(jī)投入該通信會(huì)話的處理資源的量的參數(shù)(例如要被使用的編解碼器以及該編解碼器的設(shè)置)。操作418描繪了確定用戶應(yīng)用所沒有使用的源計(jì)算機(jī)的可用處理資源的量;其中用遠(yuǎn)程呈現(xiàn)協(xié)議編碼第一屏幕數(shù)據(jù)包括使用不超過可用處理資源的量來編碼第一屏幕。 源計(jì)算機(jī)的用戶可能不是僅僅與目的計(jì)算機(jī)和無(wú)線顯示器進(jìn)行該通信一他或她可能正在執(zhí)行創(chuàng)建要被顯示在無(wú)線顯示器上的圖形的應(yīng)用,如視頻播放器應(yīng)用。在這一情形中,可決定編碼將不會(huì)影響用戶的正在執(zhí)行的應(yīng)用中的任一個(gè),且將僅使用空閑的或不被另一應(yīng)用所使用的那些處理資源。例如,在源計(jì)算機(jī)的CPU周期的80%被其他用戶應(yīng)用使用時(shí),編碼可被調(diào)速,以便不嘗試使用多于源計(jì)算機(jī)的CPU周期的20%。結(jié)論盡管已經(jīng)結(jié)合各附圖所示的較佳方面描述了本發(fā)明,但要理解,可使用其他相似方面或者可對(duì)所述方面進(jìn)行修改或添加來執(zhí)行本發(fā)明的相同功能而不脫離本發(fā)明。因此, 本發(fā)明不應(yīng)該僅限于任何單個(gè)方面,而是應(yīng)該在根據(jù)所附權(quán)利要求書的廣度和范圍內(nèi)解釋。例如,本文描述的各種過程可用硬件或軟件、或兩者的組合來實(shí)現(xiàn)。因此,所公開的各實(shí)施例的方法和裝置或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、硬盤驅(qū)動(dòng)器或任何其他機(jī)器可讀存儲(chǔ)介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式。當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器并由其執(zhí)行時(shí),該機(jī)器變?yōu)楸慌渲贸蓪?shí)施所公開的各實(shí)施例的裝置。除了此處明確闡述的具體實(shí)現(xiàn)之外,考慮此處所公開的說明書,其他方面和實(shí)現(xiàn)將對(duì)本領(lǐng)域的技術(shù)人員是顯而易見的。說明書和所示實(shí)現(xiàn)旨在僅被認(rèn)為是示例。
權(quán)利要求
1.一種用于在無(wú)線顯示器(32 上以高保真度和交互性顯示圖像的方法,包括 在源計(jì)算機(jī)(3 )的用戶控制臺(tái)會(huì)話(386b)與目的計(jì)算機(jī)(324)之間建立無(wú)線通信信道,所述目的計(jì)算機(jī)被配置成在無(wú)線顯示器上顯示屏幕數(shù)據(jù)G02);確定要被顯示在所述無(wú)線顯示器上的所述用戶控制臺(tái)會(huì)話的第一屏幕數(shù)據(jù)G04); 用遠(yuǎn)程呈現(xiàn)協(xié)議RPP (406)編碼所述第一屏幕數(shù)據(jù);以及將編碼的第一屏幕數(shù)據(jù)從所述用戶控制臺(tái)會(huì)話發(fā)送到所述目的計(jì)算機(jī),而不用通過第二用戶會(huì)話傳送編碼的第一屏幕數(shù)據(jù),使得所述目的計(jì)算機(jī)將對(duì)編碼的第一屏幕數(shù)據(jù)進(jìn)行解碼并將解碼的第一屏幕數(shù)據(jù)顯示在所述無(wú)線顯示器上(408)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括用所述遠(yuǎn)程呈現(xiàn)協(xié)議編碼所述用戶控制臺(tái)會(huì)話的第二屏幕數(shù)據(jù); 從所述用戶控制臺(tái)會(huì)話向所述目的計(jì)算機(jī)發(fā)送編碼的第二屏幕數(shù)據(jù),而不用通過第二用戶會(huì)話傳送編碼的第二屏幕數(shù)據(jù);以及向所述目的計(jì)算機(jī)發(fā)送所述第二屏幕數(shù)據(jù)的優(yōu)先級(jí),使得顯示計(jì)算機(jī)將在無(wú)線顯示器上顯示解碼的第一屏幕數(shù)據(jù)之前在所述無(wú)線顯示器上顯示解碼的第二屏幕數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,向所述無(wú)線顯示器發(fā)送所述第二屏幕數(shù)據(jù)的優(yōu)先級(jí)響應(yīng)于以下而發(fā)生確定所述第二屏幕數(shù)據(jù)對(duì)應(yīng)于對(duì)所述源計(jì)算機(jī)的輸入。
4.如權(quán)利要求3所述的方法,其特征在于,對(duì)所述源計(jì)算機(jī)的輸入包括 光標(biāo)位置的改變,或形狀的改變。
5.如權(quán)利要求1所述的方法,其特征在于,還包括確定用戶控制臺(tái)會(huì)話的要與顯示解碼的第一屏幕數(shù)據(jù)同時(shí)播放的聲音; 用所述RPP編碼所述聲音;將編碼的聲音從所述用戶控制臺(tái)會(huì)話發(fā)送到所述目的計(jì)算機(jī),而不用通過第二用戶會(huì)話傳送所述編碼的聲音,使得所述目的計(jì)算機(jī)將與所述無(wú)線顯示器顯示解碼的第一屏幕數(shù)據(jù)同時(shí)地播放該聲音。
6.如權(quán)利要求5所述的方法,其特征在于,還包括用一時(shí)間戳編碼第一屏幕數(shù)據(jù),該時(shí)間戳指示所述屏幕數(shù)據(jù)要被顯示的時(shí)間;以及用第二時(shí)間戳編碼所述聲音,所述第二時(shí)間戳指示所述聲音要被播放的第二時(shí)間,所述時(shí)間戳和所述第二時(shí)間戳指示要與所述無(wú)線顯示器顯示解碼的第一屏幕數(shù)據(jù)同時(shí)地播放該聲音。
7.如權(quán)利要求1所述的方法,其特征在于,還包括確定所述用戶控制臺(tái)的要與顯示解碼的第一屏幕數(shù)據(jù)同時(shí)傳遞的用戶輸入的指示; 用所述RPP編碼所述用戶輸入的指示;以及從所述用戶控制臺(tái)會(huì)話向所述目的計(jì)算機(jī)發(fā)送編碼的用戶輸入的指示,而不用通過第二用戶會(huì)話傳送編碼的用戶輸入,使得所述目的計(jì)算機(jī)將與所述無(wú)線顯示器顯示解碼的第一屏幕數(shù)據(jù)同時(shí)地顯示所述用戶輸入的指示。
8.如權(quán)利要求1所述的方法,其特征在于,還包括 確定所述目的計(jì)算機(jī)的最大解碼能力;其中用遠(yuǎn)程呈現(xiàn)協(xié)議編碼所述第一屏幕數(shù)據(jù)包括基于所述最大解碼能力編碼所述第一屏幕數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其特征在于,還包括確定用戶應(yīng)用所沒有使用的所述源計(jì)算機(jī)的可用處理資源的量;其中用遠(yuǎn)程呈現(xiàn)協(xié)議編碼所述第一屏幕數(shù)據(jù)包括使用不超過可用處理資源的量來編碼第一屏幕。
10.如權(quán)利要求1所述的方法,其特征在于,用遠(yuǎn)程呈現(xiàn)協(xié)議RPP編碼所述第一屏幕數(shù)據(jù)包括用第一編解碼器編碼所述第一屏幕數(shù)據(jù)的第一部分;以及用第二編解碼器編碼所述第一屏幕數(shù)據(jù)的第二部分,所述第二編解碼器不同于所述第一編解碼器。
11.如權(quán)利要求10所述的方法,其特征在于,所述第一部分包括文本的表示,所述第二部分包括圖像。
12.如權(quán)利要求1所述的方法,其特征在于,所述第一屏幕數(shù)據(jù)包括 被鏡像的計(jì)算機(jī)桌面,或被擴(kuò)展的計(jì)算機(jī)桌面。
13.一種用于在無(wú)線顯示器(32 上以高保真度和交互性顯示圖像的系統(tǒng),包括 處理器;以及通信地耦合到所述處理器的存儲(chǔ)器(22),所述存儲(chǔ)器承載處理器可執(zhí)行指令,當(dāng)在所述處理器上執(zhí)行所述處理器可執(zhí)行指令時(shí)使得所述系統(tǒng)執(zhí)行以下操作,包括在源計(jì)算機(jī)(3 )的用戶控制臺(tái)會(huì)話(386b)與目的計(jì)算機(jī)(324)之間建立無(wú)線通信信道,所述目的計(jì)算機(jī)被配置成在無(wú)線顯示器上顯示屏幕數(shù)據(jù)G02);確定要被顯示在所述無(wú)線顯示器上的所述用戶控制臺(tái)會(huì)話的第一屏幕數(shù)據(jù)G04); 用遠(yuǎn)程呈現(xiàn)協(xié)議RPP (406)編碼所述第一屏幕數(shù)據(jù);以及將編碼的第一屏幕數(shù)據(jù)從所述用戶控制臺(tái)會(huì)話發(fā)送到所述目的計(jì)算機(jī),而不用通過第二用戶會(huì)話傳送編碼的第一屏幕數(shù)據(jù),使得所述目的計(jì)算機(jī)將對(duì)編碼的第一屏幕數(shù)據(jù)進(jìn)行解碼并將解碼的第一屏幕數(shù)據(jù)顯示在所述無(wú)線顯示器上(408)。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述存儲(chǔ)器還承載在由所述處理器執(zhí)行時(shí)使得所述系統(tǒng)執(zhí)行以下操作的處理器可執(zhí)行指令,所述操作包括用所述遠(yuǎn)程呈現(xiàn)協(xié)議編碼所述用戶控制臺(tái)會(huì)話的第二屏幕數(shù)據(jù); 從所述用戶控制臺(tái)會(huì)話向所述目的計(jì)算機(jī)發(fā)送編碼的第二屏幕數(shù)據(jù),而不用通過第二用戶會(huì)話傳送編碼的第二屏幕數(shù)據(jù);以及向所述目的計(jì)算機(jī)發(fā)送所述第二屏幕數(shù)據(jù)的優(yōu)先級(jí),使得顯示計(jì)算機(jī)將在無(wú)線顯示器上顯示解碼的第一屏幕數(shù)據(jù)之前在所述無(wú)線顯示器上顯示解碼的第二屏幕數(shù)據(jù)。
15.如權(quán)利要求13所述的系統(tǒng),其特征在于,還包括在由所述處理器執(zhí)行時(shí)使得所述系統(tǒng)執(zhí)行以下操作的處理器可執(zhí)行指令,所述操作包括確定用戶控制臺(tái)會(huì)話的要與顯示解碼的第一屏幕數(shù)據(jù)同時(shí)播放的聲音; 用所述RPP編碼所述聲音;將編碼的聲音從所述用戶控制臺(tái)會(huì)話發(fā)送到所述目的計(jì)算機(jī),而不用通過第二用戶會(huì)話傳送所述編碼的聲音,使得所述目的計(jì)算機(jī)將與所述無(wú)線顯示器顯示解碼的第一屏幕數(shù)據(jù)同時(shí)地播放該聲音。
全文摘要
本發(fā)明涉及在無(wú)線顯示表面上顯示計(jì)算機(jī)桌面。提供了用于將計(jì)算機(jī)桌面克隆到無(wú)線顯示表面的技術(shù)。源計(jì)算機(jī)和與目的計(jì)算機(jī)通信的顯示器建立無(wú)線連接。源計(jì)算機(jī)的用戶控制臺(tái)會(huì)話具有對(duì)應(yīng)于該無(wú)線顯示器的虛擬顯示驅(qū)動(dòng)器??刂婆_(tái)會(huì)話的應(yīng)用指示虛擬顯示驅(qū)動(dòng)器將圖形呈現(xiàn)到顯示表面。源計(jì)算機(jī)取該圖形信息,該圖形信息在處理器上執(zhí)行時(shí)生成圖像、文本、聲音或輸入-源計(jì)算機(jī)用遠(yuǎn)程呈現(xiàn)協(xié)議編碼該圖形信息。通過用遠(yuǎn)程呈現(xiàn)協(xié)議編碼和解碼傳送到無(wú)線顯示器的圖像數(shù)據(jù)、文本、聲音和用戶控制臺(tái)會(huì)話的輸入,提高了保真度和交互性。
文檔編號(hào)G06F3/048GK102375687SQ20111026048
公開日2012年3月14日 申請(qǐng)日期2011年8月9日 優(yōu)先權(quán)日2010年8月10日
發(fā)明者C·德沃夏克, N·波特, S·R·內(nèi)魯?shù)?申請(qǐng)人:微軟公司