傳輸硬件渲染的圖形數(shù)據(jù)的制作方法
【專利說明】傳輸硬件渲染的圖形數(shù)據(jù)
[0001]其它申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求2013年9月19日提交的、序列號(hào)為61/879,764的、題目為“傳輸硬件清染的圖形數(shù)據(jù)(Transmitting Hardware-Rendered Graphical Data) ” 的未決美國(guó)申請(qǐng)的優(yōu)先權(quán)。
[0003]領(lǐng)域
[0004]本公開涉及用于托管的應(yīng)用的用戶界面。本公開還涉及將遠(yuǎn)程托管的應(yīng)用集成到本地計(jì)算設(shè)備中的桌面環(huán)境的方法和系統(tǒng)。另外,本公開涉及用于將在主機(jī)計(jì)算設(shè)備上生成的數(shù)據(jù)傳輸?shù)娇蛻舳擞?jì)算設(shè)備的方法和系統(tǒng)。
[0005]背景
[0006]遠(yuǎn)程應(yīng)用和/或遠(yuǎn)程桌面被廣泛地用于消費(fèi)者和企業(yè)應(yīng)用中。消費(fèi)者通常更喜歡遠(yuǎn)程應(yīng)用或桌面,因?yàn)樗鼈兲峁┝吮镜刈远x安裝的安全簡(jiǎn)單的替代方案,其可證明在技術(shù)上要求高的或易受惡意軟件的攻擊。企業(yè)管理者通常由于其可擴(kuò)展性、安全性和與平臺(tái)無關(guān)的可訪問性而選擇遠(yuǎn)程應(yīng)用或桌面而不是本地安裝。
[0007]來自遠(yuǎn)程應(yīng)用和/或遠(yuǎn)程桌面的數(shù)據(jù)可要求圖形數(shù)據(jù)被從遠(yuǎn)程主機(jī)設(shè)備傳輸?shù)娇蛻舳嗽O(shè)備。例如,遠(yuǎn)程主機(jī)可渲染最終在顯示設(shè)備上顯示的圖形數(shù)據(jù)。在傳輸?shù)娇蛻舳嗽O(shè)備前,可能需要在遠(yuǎn)程主機(jī)設(shè)備上處理、渲染或以其他方式獲得圖形數(shù)據(jù)。例如,遠(yuǎn)程主機(jī)可包括被配置為將圖形數(shù)據(jù)渲染成桌面或應(yīng)用的圖像的圖形處理單元(GPU)設(shè)備。然而,GPU習(xí)慣上被設(shè)計(jì)和生產(chǎn)用于將輸出引導(dǎo)到本地連接的顯示設(shè)備,如監(jiān)視器。GPU習(xí)慣上并不像在遠(yuǎn)程訪問環(huán)境中的情況一樣被設(shè)計(jì)為通過網(wǎng)絡(luò)連接發(fā)送圖形數(shù)據(jù)用于經(jīng)由客戶端設(shè)備的輸出。因此,對(duì)從主機(jī)設(shè)備被傳輸?shù)娇蛻舳嗽O(shè)備的圖形數(shù)據(jù)的處理、渲染和封裝可能要求主機(jī)設(shè)備執(zhí)行到/來自主機(jī)設(shè)備的系統(tǒng)存儲(chǔ)器的大量的存儲(chǔ)和取回操作。執(zhí)行這些操作可能是時(shí)間密集型和計(jì)算密集型任務(wù),導(dǎo)致系統(tǒng)的低效率。
[0008]簡(jiǎn)要概述
[0009]下文呈現(xiàn)本文所述的各個(gè)方面的簡(jiǎn)要概述。該概述并非廣泛綜述,且并不旨在標(biāo)識(shí)主要或關(guān)鍵元素或描繪任何權(quán)利要求的范圍。以下概述僅僅以簡(jiǎn)化形式呈現(xiàn)一些概念,作為對(duì)以下提供的更詳細(xì)描述的介紹性前序。
[0010]為克服上述現(xiàn)有技術(shù)中的限制,并克服在閱讀和理解本說明書時(shí)將變得明顯的其他限制,本文所述方面涉及更快且更有效地從諸如GPU的渲染設(shè)備傳輸圖形數(shù)據(jù)。換句話說,存在對(duì)用于遠(yuǎn)程主機(jī)將GPU數(shù)據(jù)傳輸給客戶端設(shè)備以供客戶端設(shè)備在渲染諸如應(yīng)用和桌面的遠(yuǎn)程訪問服務(wù)時(shí)使用的有效方式的需求。本文描述的方面滿足該需求和解決現(xiàn)有技術(shù)的其他不足。
[0011]本文描述的第一方面提供用于將來自主機(jī)設(shè)備的圖形數(shù)據(jù)傳遞給客戶端設(shè)備的方法。具有系統(tǒng)存儲(chǔ)器的主機(jī)設(shè)備的第一處理器可確定要傳輸給客戶端設(shè)備的數(shù)據(jù)部分。當(dāng)隨后確定數(shù)據(jù)部分是圖形數(shù)據(jù)時(shí),該圖形數(shù)據(jù)可被傳遞用于例如通過諸如硬件渲染器渲染。然后,基于被渲染的圖形數(shù)據(jù)的一個(gè)或多個(gè)圖形數(shù)據(jù)包可通過第二處理器生成,而不將所渲染的圖形數(shù)據(jù)或圖形數(shù)據(jù)包提供給系統(tǒng)存儲(chǔ)器或以其他方式涉及系統(tǒng)存儲(chǔ)器。然后,圖形數(shù)據(jù)包可被發(fā)送給客戶端設(shè)備,且也不將所渲染的圖形數(shù)據(jù)或圖形數(shù)據(jù)包提供給系統(tǒng)存儲(chǔ)器或以其他方式涉及系統(tǒng)存儲(chǔ)器。
[0012]本文描述的第二方面提供具有圖形處理單元、網(wǎng)絡(luò)接口、處理器和存儲(chǔ)器的裝置。該處理器可接收數(shù)據(jù)部分并確定該數(shù)據(jù)部分是否是圖形數(shù)據(jù)。如果是,該處理器可將圖形數(shù)據(jù)傳遞給圖形處理單元進(jìn)行處理。在處理后,可基于圖形數(shù)據(jù)生成一個(gè)或多個(gè)圖形數(shù)據(jù)包,而不將圖形數(shù)據(jù)或圖形數(shù)據(jù)包提供給系統(tǒng)存儲(chǔ)器或以其他方式涉及系統(tǒng)存儲(chǔ)器。然后,可使用網(wǎng)絡(luò)接口將圖形數(shù)據(jù)包傳輸?shù)竭h(yuǎn)程設(shè)備。
[0013]本文描述的一些方面提供諸如通過在兩個(gè)非圖形數(shù)據(jù)包之間將一個(gè)或多個(gè)圖形數(shù)據(jù)包插入數(shù)據(jù)包流來發(fā)送圖形數(shù)據(jù)包的方法。其它方面提供諸如通過打開設(shè)備之間的第一和第二連接來發(fā)送圖形數(shù)據(jù)包的方法。第一連接可被配置用于傳輸非圖形數(shù)據(jù),而第二連接可被配置用于傳輸圖形數(shù)據(jù)。可使用第二連接傳輸圖形數(shù)據(jù)。其它方面提供用于截取已經(jīng)存在于數(shù)據(jù)包流中的一個(gè)或多個(gè)占位符圖形數(shù)據(jù)包并將一個(gè)或多個(gè)占位符圖形數(shù)據(jù)包替換為一個(gè)或多個(gè)所生成的圖形數(shù)據(jù)包。
[0014]附圖描述
[0015]可通過參照下面結(jié)合附圖考慮的描述獲得對(duì)本文描述的方面和其優(yōu)勢(shì)的更充分的理解,在附圖中相似的參考數(shù)字表示相似的特征,且其中:
[0016]圖1描繪的是可依據(jù)本文描述的一個(gè)或多個(gè)方面使用的說明性計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。
[0017]圖2描繪的是可依據(jù)本文描述的一個(gè)或多個(gè)方面使用的說明性遠(yuǎn)程訪問系統(tǒng)結(jié)構(gòu)。
[0018]圖3描繪的是可依據(jù)本文描述的一個(gè)或多個(gè)方面使用的說明性計(jì)算機(jī)系統(tǒng)框圖。
[0019]圖4A描繪的是可依據(jù)本文描述的一個(gè)或多個(gè)方面使用的示例性控制器系統(tǒng)結(jié)構(gòu)。
[0020]圖4B描繪的是可依據(jù)本文描述的一個(gè)或多個(gè)方面使用的示例性軟件組件。
[0021]圖5描繪的是,依據(jù)本文描述的一個(gè)或多個(gè)方面,通過將圖形數(shù)據(jù)包插進(jìn)數(shù)據(jù)流來傳輸圖形數(shù)據(jù)的說明性方法。
[0022]圖6描繪的是,依據(jù)本文描述的一個(gè)或多個(gè)方面,通過在主機(jī)計(jì)算設(shè)備和客戶端計(jì)算設(shè)備之間打開的第二連接來傳輸圖形數(shù)據(jù)的說明性方法。
[0023]圖7描繪的是,依據(jù)本文描述的一個(gè)或多個(gè)方面,通過截取數(shù)據(jù)流中的占位符數(shù)據(jù)包并將它們替換為圖形數(shù)據(jù)包來傳輸圖形數(shù)據(jù)的說明性方法。
[0024]圖8描繪的是,依據(jù)本文描述的一個(gè)或多個(gè)方面,圖形數(shù)據(jù)通過圖形數(shù)據(jù)處理和傳輸系統(tǒng)的說明性數(shù)據(jù)流。
[0025]詳細(xì)描述
[0026]在各個(gè)實(shí)施方案的下列描述中,參考了上面確認(rèn)并形成各個(gè)實(shí)施方案的一部分的附圖,并且其中以說明各個(gè)實(shí)施方案的方式示出,本文所描述的各方面可在各個(gè)實(shí)施方案中被實(shí)踐。應(yīng)當(dāng)理解的是,可利用其他實(shí)施方案,并且在不脫離本文所描述的范圍的情況下可做出結(jié)構(gòu)和功能的修改。各種方面能夠是其他實(shí)施方案并能夠以各種不同的方式實(shí)踐或執(zhí)行。
[0027]作為對(duì)下面更詳細(xì)的描述的主題的概括介紹,本文描述的各方面通過在一些方面確定傳輸給客戶端設(shè)備的數(shù)據(jù)部分是圖形數(shù)據(jù)還是非圖形數(shù)據(jù)來提供從主機(jī)計(jì)算設(shè)備的圖形渲染器到客戶端設(shè)備更快且更有效的圖形數(shù)據(jù)傳輸。如果數(shù)據(jù)是圖形數(shù)據(jù),該數(shù)據(jù)被傳遞給圖形渲染器。具有與主機(jī)計(jì)算設(shè)備的通用處理器不同的處理器的控制器基于所渲染的數(shù)據(jù)生成一個(gè)或多個(gè)圖形數(shù)據(jù)包。然后,所生成的圖形數(shù)據(jù)包被發(fā)送給客戶端設(shè)備。
[0028]在生成一個(gè)或多個(gè)圖形數(shù)據(jù)包之后,控制器可準(zhǔn)備用于傳輸給客戶端設(shè)備的一個(gè)或多個(gè)圖形數(shù)據(jù)包。在一些方面,該準(zhǔn)備可通過將圖形數(shù)據(jù)包插進(jìn)將被從主機(jī)計(jì)算設(shè)備傳輸?shù)臄?shù)據(jù)流中而進(jìn)行。在一些方面,該準(zhǔn)備可包括截取數(shù)據(jù)流中的占位符數(shù)據(jù)包并將占位符數(shù)據(jù)包替換為所生成的數(shù)據(jù)包。在一些方面,該準(zhǔn)備可包括準(zhǔn)備用于通過被配置用于圖形數(shù)據(jù)的連接的傳輸?shù)膱D形數(shù)據(jù),該用于圖形數(shù)據(jù)的連接與用于非圖形數(shù)據(jù)的連接分離。
[0029]應(yīng)當(dāng)理解的是,本文所使用的短語和術(shù)語是出于描述的目的,并且不應(yīng)被視為限制性的。更確切地說,本文所使用的短語和術(shù)語被給出它們最廣泛的解釋和意義。“包括”和“包含”及其變型的使用旨在包括下文中列出的項(xiàng)目及其等效物以及附加項(xiàng)目及其等效物。術(shù)語“安裝”、“連接”、“耦合”、“定位”、“嚙合”和類似術(shù)語的使用旨在包括直接和間接的安裝、連接、耦合、定位和嚙合。
[0030]計(jì)算機(jī)軟件、硬件和網(wǎng)絡(luò)可用于多種不同的系統(tǒng)環(huán)境中,除了別的之外,包括單機(jī)、連網(wǎng)、遠(yuǎn)程訪問(又叫做遠(yuǎn)程桌面)、虛擬化和/或基于云的環(huán)境。圖1示出系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)處理設(shè)備的一個(gè)示例,其可用于在單機(jī)和/或聯(lián)網(wǎng)環(huán)境中實(shí)施本發(fā)明的一個(gè)或多個(gè)說明性方面。各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)103、105、107和109可經(jīng)由諸如互聯(lián)網(wǎng)的廣域網(wǎng)(WAN) 101進(jìn)行互連。還可使用或可選地使用其他網(wǎng)絡(luò),包括私有內(nèi)聯(lián)網(wǎng)、企業(yè)網(wǎng)絡(luò)、LAN、城域網(wǎng)(MAN)無線網(wǎng)、個(gè)人網(wǎng)絡(luò)(PAN)等。網(wǎng)絡(luò)101用于說明的目的并且可以用更少或附加的計(jì)算機(jī)網(wǎng)絡(luò)來代替。局域網(wǎng)(LAN)可具有任何已知的LAN拓?fù)渲械囊粋€(gè)或多個(gè),并且可使用多種不同協(xié)議中的一個(gè)或多個(gè),諸如以太網(wǎng)。設(shè)備103、105、107、109和其他設(shè)備(未示出)可經(jīng)由雙絞線、同軸電纜、光纖、無線電波或其他通信媒介連接到一個(gè)或多個(gè)網(wǎng)絡(luò)。
[0031]本文所使用以及附圖中所描述的術(shù)語“網(wǎng)絡(luò)”不僅指其中遠(yuǎn)程存儲(chǔ)設(shè)備經(jīng)由一個(gè)或多個(gè)通信路徑耦合在一起的系統(tǒng),還指有時(shí)可耦合到該類系統(tǒng)的具有存儲(chǔ)能力的單機(jī)設(shè)備。因此,術(shù)語“網(wǎng)絡(luò)”不僅包括“物理網(wǎng)絡(luò)”還包括“內(nèi)容網(wǎng)絡(luò)”,其由單個(gè)實(shí)體引起的、駐留在所有的物理網(wǎng)絡(luò)上的數(shù)據(jù)組成。
[0032]組件可包括數(shù)據(jù)服務(wù)器103、網(wǎng)絡(luò)服務(wù)器105和客戶端計(jì)算機(jī)107、109。數(shù)據(jù)服務(wù)器103提供對(duì)數(shù)據(jù)庫和控制軟件的總體訪問、控制和管理,以用于執(zhí)行本文所描述的發(fā)明的一個(gè)或多個(gè)說明性方面。數(shù)據(jù)服務(wù)器103可連接到網(wǎng)絡(luò)服務(wù)器105,其中用戶通過該網(wǎng)絡(luò)服務(wù)器105根據(jù)請(qǐng)求與數(shù)據(jù)交互并獲得數(shù)據(jù)。可選地,數(shù)據(jù)服務(wù)器103可充當(dāng)網(wǎng)絡(luò)服務(wù)器本身,并直接地連接到互聯(lián)網(wǎng)。數(shù)據(jù)服務(wù)器103可通過網(wǎng)絡(luò)101 (例如,互聯(lián)網(wǎng))經(jīng)由直接或間接連接或經(jīng)由一些其他網(wǎng)絡(luò)連接到網(wǎng)絡(luò)服務(wù)器105。用戶可使用遠(yuǎn)程計(jì)算機(jī)107、109與數(shù)據(jù)服務(wù)器103交互,如使用經(jīng)由網(wǎng)絡(luò)服務(wù)器105托管的一個(gè)或多個(gè)對(duì)外公開的網(wǎng)站連接至數(shù)據(jù)服務(wù)器103的網(wǎng)絡(luò)瀏覽器??蛻舳擞?jì)算機(jī)107、109可用于與數(shù)據(jù)服務(wù)器合作以訪問存儲(chǔ)在其中的數(shù)據(jù),或可用于其它目的。例如,如本領(lǐng)域中已知的,用戶可使用互聯(lián)網(wǎng)瀏覽器從客戶端設(shè)備107訪問網(wǎng)絡(luò)服務(wù)器105,或通過執(zhí)行經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)(如互聯(lián)網(wǎng))與網(wǎng)絡(luò)服務(wù)器105和/或數(shù)據(jù)服務(wù)器103通信的軟件應(yīng)用來訪問網(wǎng)絡(luò)服務(wù)器105。
[0033]服務(wù)器和應(yīng)用可被組合在相同的物理機(jī)器上,并且保留不同的虛擬或邏輯地址,或可駐留在不同的物理機(jī)器上。圖1僅示出可以被使用的網(wǎng)絡(luò)結(jié)構(gòu)的一個(gè)示例,并且本領(lǐng)域中的技術(shù)人員應(yīng)當(dāng)理解,如在本文進(jìn)一步所描述的,所使用的特定網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)處理設(shè)備可以改變,并且對(duì)于它們提供的功能來說是次要的。例如,通過網(wǎng)絡(luò)服務(wù)器105和數(shù)據(jù)服務(wù)器103提供的服務(wù)可被組合在單一服務(wù)器上。
[0034]每個(gè)組件103、105、107、109可以是任何類型的已知計(jì)算機(jī)、服務(wù)器或數(shù)據(jù)處理設(shè)備。例如,數(shù)據(jù)服務(wù)器103可包括控制速率服務(wù)器103的總體操作的處理器111。數(shù)據(jù)服務(wù)