国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種遠(yuǎn)程桌面圖像的合成方法和裝置的制造方法

      文檔序號:8445435閱讀:665來源:國知局
      一種遠(yuǎn)程桌面圖像的合成方法和裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明實施例涉及計算機(jī)技術(shù),特別是一種遠(yuǎn)程桌面圖像的合成方法、系統(tǒng)和裝置。
      【背景技術(shù)】
      [0002]遠(yuǎn)程桌面是目前企業(yè)辦公環(huán)境的一種流行技術(shù),常用來將一臺計算機(jī)屏幕顯示的內(nèi)容傳送到另外一處的顯示屏顯示,通常我們使用的windows遠(yuǎn)程登錄程序(mstsc.exe)是最常見遠(yuǎn)程桌面程序,可以方便的登錄另外的遠(yuǎn)程計算機(jī)。目前大多數(shù)的遠(yuǎn)程桌面系統(tǒng)都是基于IP網(wǎng)絡(luò)來傳送遠(yuǎn)程桌面。遠(yuǎn)程桌面并不僅指遠(yuǎn)程的屏幕顯示,還可以包含遠(yuǎn)程聲音傳送、可插拔硬件映射等技術(shù)。遠(yuǎn)程桌面又可以稱為虛擬桌面。在虛擬桌面場景下至少存在一臺服務(wù)器和一臺客戶機(jī),通過客戶機(jī)上安裝的虛擬桌面客戶端軟件登陸到服務(wù)器上。
      [0003]當(dāng)用戶使用遠(yuǎn)程桌面時,如果有三維(three-dimens1nal, 3D)圖像需要處理的時候,就需要我們提供的虛擬桌面有圖形處理器(Graphic Processing Unit, GPU)進(jìn)行圖形處理,而GPU虛擬化技術(shù)就是讓多臺遠(yuǎn)程主機(jī)(如虛擬機(jī))共享使用一塊或多塊GPU進(jìn)行圖形運(yùn)算。目前,業(yè)界存在多種3D繪圖編程接口,例如Direct3D和OpenGl (Open GraphicsLibrary)。在采用GPU軟件虛擬化方案中,由于Direct3D和OpenGl兩種繪圖接口的不同,因此在GPU中需要分別進(jìn)行渲染實現(xiàn)。
      [0004]現(xiàn)有技術(shù)中的一種遠(yuǎn)程桌面GPU虛擬化方案中Direct3D和OpenGL渲染圖像結(jié)果融合的方法,是服務(wù)端虛擬機(jī)將Direct3D和OpenGL指令和數(shù)據(jù)分別發(fā)送到渲染服務(wù)器上進(jìn)行分開渲染,虛擬機(jī)獲取到兩種渲染后的圖像后,在虛擬機(jī)中進(jìn)行融合并形成桌面圖像并發(fā)送到客戶端顯示。該方案的缺陷是Direct3D和OpenGL分別渲染后的圖像在虛擬機(jī)進(jìn)行融合效率不高,特別是在虛擬桌面開啟Windows Aero特效的情況下,OpenGL渲染后的圖像會從虛擬機(jī)再次發(fā)送到Direct3D所在的渲染服務(wù)器進(jìn)行再次渲染,效率不高。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明實施例提出了一種遠(yuǎn)程桌面圖像的合成方法、裝置和系統(tǒng),用于在GPU虛擬化中將Direct3D和OpenGL分別渲染后圖像快速融合,以獲得遠(yuǎn)程桌面圖像。
      [0006]第一方面,本發(fā)明實施例提出了一種遠(yuǎn)程桌面圖像的合成方法,客戶端通過遠(yuǎn)程桌面協(xié)議接入到虛擬機(jī),所述虛擬機(jī)與渲染服務(wù)器通信以獲得所述客戶端的遠(yuǎn)程桌面圖像,所述渲染服務(wù)器包括Direct3D渲染模塊和OpenGL渲染模塊,所述方法包括:
      [0007]所述渲染服務(wù)器接收所述虛擬機(jī)發(fā)送的Direct3D渲染指令,所述Direct3D渲染指令包含Direct3D的渲染指令和第一圖像數(shù)據(jù);
      [0008]所述渲染服務(wù)器接收所述虛擬機(jī)發(fā)送的OpenGL渲染指令,所述OpenGL渲染指令包含OpenGL的渲染指令和第二圖像數(shù)據(jù);
      [0009]所述渲染服務(wù)器采用所述Direct3D渲染模塊根據(jù)所述Direct3D的渲染指令對所述第一圖像數(shù)據(jù)進(jìn)行渲染,得到第三圖像數(shù)據(jù);
      [0010]所述渲染服務(wù)器采用所述OpenGL渲染模塊根據(jù)所述OpenGL的渲染指令對所述第二圖像數(shù)據(jù)進(jìn)行渲染,得到第四圖像數(shù)據(jù);
      [0011]所述渲染服務(wù)器將所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)組合成所述虛擬機(jī)的遠(yuǎn)程桌面圖像;
      [0012]所述渲染服務(wù)器將所述遠(yuǎn)程桌面圖像發(fā)送給所述虛擬機(jī)
      [0013]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述渲染服務(wù)器將所述遠(yuǎn)程桌面圖像編碼為桌面視頻流數(shù)據(jù);
      [0014]所述渲染服務(wù)器向所述虛擬機(jī)發(fā)送所述桌面視頻流數(shù)據(jù)。
      [0015]結(jié)合第一方面或第一方面的第一種可能,在第二種可能的實現(xiàn)方式中,所述將所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)組合成所述虛擬機(jī)的遠(yuǎn)程桌面圖像包括:
      [0016]所述OpenGL渲染模塊向所述虛擬機(jī)發(fā)送所述第四圖像數(shù)據(jù)的地址和桌面顯示位置信息;
      [0017]所述Direct3D渲染模塊獲取所述虛擬機(jī)轉(zhuǎn)發(fā)的所述第四圖像數(shù)據(jù)的地址和桌面顯示位置信息;
      [0018]所述Direct3D渲染模塊根據(jù)所述第四圖像數(shù)據(jù)的地址從所述OpenGL渲染模塊獲取所述第四圖像數(shù)據(jù);
      [0019]所述Direct3D渲染模塊根據(jù)所述第三圖像數(shù)據(jù)的桌面顯示位置信息和所述第四圖像數(shù)據(jù)的桌面顯示位置信息,將所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)繪制成所述遠(yuǎn)程桌面圖像。
      [0020]結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述將所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)組合成所述虛擬機(jī)的遠(yuǎn)程桌面圖像包括:
      [0021]所述Direct3D渲染模塊獲取并保存所述第三圖像數(shù)據(jù)繪制在所述虛擬機(jī)的遠(yuǎn)程桌面的桌面窗口句柄;
      [0022]所述OpenGL渲染模塊從所述Direct3D渲染模塊獲取所述Direct3D渲染模塊正在繪制的所述虛擬機(jī)的遠(yuǎn)程桌面圖像的窗口句柄;
      [0023]所述OpenGL渲染模塊根據(jù)獲得的所述遠(yuǎn)程桌面圖像的窗口句柄繪制所述第四圖像數(shù)據(jù);
      [0024]所述Direct3D渲染模塊獲得由所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)組合成的遠(yuǎn)程桌面圖像。
      [0025]第二方面,本發(fā)明實施例提出了一種渲染服務(wù)器,客戶端通過遠(yuǎn)程桌面協(xié)議接入到虛擬機(jī),所述渲染服務(wù)器與所述虛擬機(jī)通信以獲得所述客戶端的遠(yuǎn)程桌面圖像,包括:
      [0026]接收單元,用于接收所述虛擬機(jī)發(fā)送的Direct3D渲染指令,所述Direct3D渲染指令包含Direct3D的渲染指令和第一圖像數(shù)據(jù),以及接收所述虛擬機(jī)發(fā)送的OpenGL渲染指令,所述OpenGL渲染指令包含OpenGL的渲染指令和第二圖像數(shù)據(jù);
      [0027]Direct3D渲染模塊,用于根據(jù)所述Direct3D的渲染指令對所述第一圖像數(shù)據(jù)進(jìn)行渲染,得到第三圖像數(shù)據(jù);
      [0028]OpenGL渲染模塊,用于根據(jù)所述OpenGL的渲染指令對所述第二圖像數(shù)據(jù)進(jìn)行渲染,得到第四圖像數(shù)據(jù);
      [0029]所述Direct3D渲染模塊,還用于將所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)組合成所述虛擬機(jī)的遠(yuǎn)程桌面圖像;
      [0030]發(fā)送單元,用于將所述遠(yuǎn)程桌面圖像發(fā)送給所述虛擬機(jī)。
      [0031]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述發(fā)送單元具體用于:將所述遠(yuǎn)程桌面圖像編碼為桌面視頻流數(shù)據(jù),向所述虛擬機(jī)發(fā)送所述桌面視頻流數(shù)據(jù)。
      [0032]結(jié)合第二方面或第二方面的第一種可能,在第二種可能的實現(xiàn)方式中,所述OpenGL渲染模塊還用于向所述虛擬機(jī)發(fā)送所述第四圖像數(shù)據(jù)的地址和桌面顯示位置信息;
      [0033]所述Direct3D渲染模塊還用于獲取所述虛擬機(jī)轉(zhuǎn)發(fā)的所述第四圖像數(shù)據(jù)的地址和桌面顯示位置信息;以及,根據(jù)所述第四圖像數(shù)據(jù)的地址從所述OpenGL渲染模塊獲取所述第四圖像數(shù)據(jù),根據(jù)所述第三圖像數(shù)據(jù)的桌面顯示位置信息和所述第四圖像數(shù)據(jù)的桌面顯示位置信息,將所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)繪制成所述遠(yuǎn)程桌面圖像。
      [0034]結(jié)合第二方面或者第一方面的第一或二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,還包括:
      [0035]結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述Direct3D渲染模塊具體用于獲取并保存所述第三圖像數(shù)據(jù)繪制在所述虛擬機(jī)的遠(yuǎn)程桌面的桌面窗口句柄;
      [0036]所述OpenGL渲染模塊具體用于從所述Direct3D渲染模塊獲取所述Direct3D渲染模塊正在繪制的所述虛擬機(jī)的遠(yuǎn)程桌面圖像的窗口句柄,根據(jù)獲得的所述遠(yuǎn)程桌面圖像的窗口句柄繪制所述第四圖像數(shù)據(jù);
      [0037]所述Direct3D渲染模塊具體用于獲得由所述第三圖像數(shù)據(jù)和第四圖像數(shù)據(jù)組合成的所述遠(yuǎn)程桌面圖像。
      [0038]第三方面,本發(fā)明實施例提出了一種遠(yuǎn)程桌面服務(wù)器系統(tǒng),包括:
      [0039]虛擬機(jī),用于與客戶端通過遠(yuǎn)程桌面協(xié)議建立遠(yuǎn)程會話連接,接收客戶端的遠(yuǎn)程桌面獲取請求,根據(jù)所述遠(yuǎn)程桌面獲取請求生成Direct3D渲染指令和OpenGL渲染指令,所述Direct3D渲染指令包含Direct3D的渲染指令和第一圖像數(shù)據(jù),所述OpenGL渲染指令包含OpenGL的渲染指令和第二圖像數(shù)據(jù);
      [0040]渲染服務(wù)器,用于接收所述虛擬機(jī)發(fā)送的所述Direct
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1