虛擬機(jī)桌面顯示方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬桌面技術(shù)領(lǐng)域,尤其涉及一種虛擬機(jī)桌面顯示方法及裝置。
【背景技術(shù)】
[0002]虛擬桌面是一種典型的云計(jì)算應(yīng)用,包括云計(jì)算服務(wù)者提供的服務(wù)器端以及通過網(wǎng)絡(luò)與所述服務(wù)器連接的客戶端。通過服務(wù)器端集中管理和運(yùn)行用戶所需要的虛擬操作系統(tǒng)、應(yīng)用、程序和數(shù)據(jù),并通過桌面顯示協(xié)議將虛擬機(jī)操作系統(tǒng)的桌面視圖傳送到用戶的客戶端設(shè)備上進(jìn)行顯示,同時(shí)將客戶端接收到的用戶輸入操作通過網(wǎng)絡(luò)傳送到服務(wù)器端的虛擬機(jī)操作系統(tǒng)進(jìn)行處理??梢宰層脩敉ㄟ^任何設(shè)備在任何地點(diǎn)、任何時(shí)間訪問網(wǎng)絡(luò)上屬于個(gè)人的桌面系統(tǒng)。
[0003]目前虛擬及桌面顯示普遍采用截屏的方式獲取虛擬機(jī)桌面的顯示數(shù)據(jù),并將虛擬機(jī)桌面的顯示數(shù)據(jù)以位圖的形式傳輸給客戶端顯示,采用這種方式不僅由于位圖的數(shù)據(jù)量很大,使得虛擬機(jī)端與客戶端之間的網(wǎng)絡(luò)傳輸數(shù)據(jù)量非常大,而且通過應(yīng)用層截屏的方式獲取虛擬機(jī)桌面的顯示數(shù)據(jù),效率十分低下。并且在播放視頻時(shí),由于將視頻按一幀一幀的位圖數(shù)據(jù)進(jìn)行傳輸和顯示,使得視頻播放不流暢,且存在虛擬機(jī)端與客戶端之間的網(wǎng)絡(luò)數(shù)據(jù)傳輸量大的問題。
[0004]上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于解決現(xiàn)有的虛擬機(jī)桌面顯示中,通過截屏的方式獲取虛擬機(jī)桌面顯示數(shù)據(jù),并以位圖的形式傳輸給客戶端顯示,使得運(yùn)行效率低且虛擬機(jī)端與客戶端之間網(wǎng)絡(luò)傳輸數(shù)據(jù)量大的問題。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種虛擬機(jī)桌面顯示方法,所述虛擬機(jī)桌面顯示方法包括以下步驟:
[0007]監(jiān)聽并獲取虛擬機(jī)操作系統(tǒng)內(nèi)操作虛擬機(jī)桌面變化的操作數(shù)據(jù);
[0008]當(dāng)所述操作數(shù)據(jù)為位圖數(shù)據(jù)時(shí),對(duì)所述位圖數(shù)據(jù)進(jìn)行視頻檢測(cè);
[0009]若所述位圖數(shù)據(jù)為視頻數(shù)據(jù),則根據(jù)虛擬機(jī)節(jié)點(diǎn)的資源情況選擇視頻編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼,得到編碼后的視頻數(shù)據(jù);
[0010]將編碼后的視頻數(shù)據(jù)發(fā)送到客戶端,由客戶端還原為桌面數(shù)據(jù)并顯示。
[0011]優(yōu)選的,所述的根據(jù)虛擬機(jī)節(jié)點(diǎn)的資源情況選擇視頻編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼的步驟包括:
[0012]獲取虛擬機(jī)節(jié)點(diǎn)與客戶端之間的網(wǎng)絡(luò)帶寬值,并將所述網(wǎng)絡(luò)帶寬值與預(yù)設(shè)的網(wǎng)絡(luò)帶寬閾值進(jìn)行比對(duì);
[0013]若所述網(wǎng)絡(luò)帶寬值大于所述網(wǎng)絡(luò)帶寬閾值,則選擇CPU消耗低的視頻編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼;
[0014]若所述網(wǎng)絡(luò)帶寬值小于所述網(wǎng)絡(luò)帶寬閾值,則獲取所述虛擬機(jī)節(jié)點(diǎn)的CPU負(fù)載量,并將所述CPU負(fù)載量與預(yù)設(shè)的CPU負(fù)載閾值進(jìn)行比對(duì);
[0015]若所述CPU負(fù)載量大于所述CPU負(fù)載閾值,則選擇CPU消耗低的視頻編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼;
[0016]若所述CPU負(fù)載量小于所述CPU負(fù)載閾值,則選擇CPU消耗高的編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼。
[0017]優(yōu)選的,所述的對(duì)所述位圖數(shù)據(jù)進(jìn)行視頻檢測(cè)的步驟包括:
[0018]判斷所述位圖數(shù)據(jù)是否為連續(xù)的位圖數(shù)據(jù);
[0019]若所述位圖數(shù)據(jù)是連續(xù)的,則確定所述位圖數(shù)據(jù)為視頻數(shù)據(jù);
[0020]若所述位圖數(shù)據(jù)是不連續(xù)的,則確定所述位圖數(shù)據(jù)為離散位圖數(shù)據(jù)。
[0021]優(yōu)選的,所述確定所述位圖數(shù)據(jù)為離散位圖數(shù)據(jù)的步驟之后,還包括:
[0022]若所述位圖數(shù)據(jù)確定為離散位圖數(shù)據(jù),則對(duì)所述離散位圖數(shù)據(jù)進(jìn)行壓縮,得到壓縮后的離散位圖數(shù)據(jù);
[0023]將壓縮后的離散位圖數(shù)據(jù)發(fā)送給客戶端,由所述客戶端還原為桌面數(shù)據(jù)并顯示。
[0024]優(yōu)選的,所述的監(jiān)聽并獲取虛擬機(jī)操作系統(tǒng)內(nèi)操作虛擬機(jī)桌面變化的操作數(shù)據(jù)的步驟之后,還包括:
[0025]當(dāng)所述操作數(shù)據(jù)為圖形操作指令時(shí),將所述圖形操作指令轉(zhuǎn)換為可被客戶端識(shí)別的圖形指令;
[0026]將所述圖形指令發(fā)送給客戶端,由客戶端還原為桌面數(shù)據(jù)并顯示。
[0027]此外為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種虛擬機(jī)桌面顯示裝置,所述虛擬機(jī)桌面顯示裝置包括:
[0028]監(jiān)聽模塊,用于監(jiān)聽并獲取虛擬機(jī)操作系統(tǒng)內(nèi)操作虛擬機(jī)桌面變化的操作數(shù)據(jù);
[0029]檢測(cè)模塊,用于當(dāng)所述操作數(shù)據(jù)為位圖數(shù)據(jù)時(shí),對(duì)所述位圖數(shù)據(jù)進(jìn)行視頻檢測(cè);
[0030]編碼模塊,用于若所述位圖數(shù)據(jù)為視頻數(shù)據(jù),則根據(jù)虛擬機(jī)節(jié)點(diǎn)的資源情況選擇視頻編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼,得到編碼后的視頻數(shù)據(jù);
[0031]發(fā)送模塊,用于將編碼后的視頻數(shù)據(jù)發(fā)送到客戶端,由客戶端還原為桌面數(shù)據(jù)并顯不O
[0032]優(yōu)選的,所述編碼模塊包括比對(duì)單元和編碼單元;
[0033]所述比對(duì)單元,用于獲取虛擬機(jī)節(jié)點(diǎn)與客戶端之間的網(wǎng)絡(luò)帶寬值,并將所述網(wǎng)絡(luò)帶寬值與預(yù)設(shè)的網(wǎng)絡(luò)帶寬閾值進(jìn)行比對(duì);
[0034]所述編碼單元,用于若所述網(wǎng)絡(luò)帶寬值大于所述網(wǎng)絡(luò)帶寬閾值,則選擇CPU消耗低的視頻編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼;
[0035]所述比對(duì)單元,還用于若所述網(wǎng)絡(luò)帶寬值小于所述網(wǎng)絡(luò)帶寬閾值,則獲取所述虛擬機(jī)節(jié)點(diǎn)的CPU負(fù)載量,并將所述CPU負(fù)載量與預(yù)設(shè)的CPU負(fù)載閾值進(jìn)行比對(duì);
[0036]所述編碼單元,還用于若所述CPU負(fù)載量大于所述CPU負(fù)載閾值,則選擇CPU消耗低的視頻編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼;
[0037]所述編碼單元,還用于若所述CPU負(fù)載量小于所述CPU負(fù)載閾值,則選擇CPU消耗高的編碼算法對(duì)所述視頻數(shù)據(jù)進(jìn)行編碼。
[0038]優(yōu)選的,所述檢測(cè)模塊包括判斷單元和檢測(cè)單元;
[0039]所述判斷單元,用于判斷所述位圖數(shù)據(jù)是否為連續(xù)的位圖數(shù)據(jù);
[0040]所述檢測(cè)單元,用于若所述位圖數(shù)據(jù)是連續(xù)的,則確定所述位圖數(shù)據(jù)為視頻數(shù)據(jù);
[0041]所述檢測(cè)單元,還用于若所述位圖數(shù)據(jù)是不連續(xù)的,則確定所述位圖數(shù)據(jù)為離散位圖數(shù)據(jù)。
[0042]優(yōu)選的,所述虛擬機(jī)桌面顯示裝置還包括壓縮模塊;
[0043]所述壓縮模塊,用于若所述位圖數(shù)據(jù)確定為離散位圖數(shù)據(jù),則對(duì)所述離散位圖數(shù)據(jù)進(jìn)行壓縮,得到壓縮后的離散位圖數(shù)據(jù);
[0044]所述發(fā)送模塊,還用于將壓縮后的離散位圖數(shù)據(jù)發(fā)送給客戶端,由所述客戶端還原為桌面數(shù)據(jù)并顯示。
[0045]優(yōu)選的,所述虛擬機(jī)桌面顯示裝置還包括轉(zhuǎn)換模塊;
[0046]所述轉(zhuǎn)換模塊,用于當(dāng)所述操作數(shù)據(jù)為圖形操作指令時(shí),將所述圖形操作指令轉(zhuǎn)換為可被客戶端識(shí)別的圖形指令;
[0047]所述發(fā)送模塊,還用于將所述圖形指令發(fā)送給客戶端,由客戶端還原為桌面數(shù)據(jù)并顯示。
[0048]本發(fā)明通過監(jiān)聽虛擬機(jī)操作系統(tǒng)內(nèi)操作虛擬機(jī)桌面變化的操作數(shù)據(jù),來獲取虛擬機(jī)桌面顯示的數(shù)據(jù),從而省去了通過操作數(shù)據(jù)在虛擬機(jī)內(nèi)顯示再截屏的步驟,提高了虛擬機(jī)桌面顯示的效率。同時(shí),將視頻數(shù)據(jù)進(jìn)行編碼后發(fā)送給客戶端,降低了虛擬機(jī)端與客戶端之間網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
【附圖說明】
[0049]圖1為本發(fā)明虛擬桌面顯示系統(tǒng)的總體框架示意圖;
[0050]圖2為本發(fā)明虛擬機(jī)桌面顯示方法的第一實(shí)施例的流程示意圖;
[0051]圖3為本發(fā)明虛擬機(jī)桌面顯示方法的第二實(shí)施例的流程示意圖;
[0052]圖4為圖2中步驟S30的細(xì)化流程示意圖;
[0053]圖5為圖2中步驟S20的細(xì)化流程示意圖;
[0054]圖6為圖4中步驟S23之后的流程示意圖;
[0055]圖7為本發(fā)明虛擬機(jī)桌面顯示裝置的第一實(shí)施例的功能模塊示意圖;
[0056]圖8為本發(fā)明虛擬機(jī)桌面顯示裝置的第二實(shí)施例的功能模塊示意圖;
[0057]圖9為圖7中編碼模塊的細(xì)化功能模塊示意圖;
[0058]圖10為圖7中檢測(cè)模塊的細(xì)化功能模塊示意圖。
[0059]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
【具體實(shí)施方式】
[0060]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0061]本發(fā)明實(shí)施例的主要解決方案是:監(jiān)聽并獲取虛擬機(jī)操作系統(tǒng)內(nèi)操作虛擬機(jī)桌面變化的操作數(shù)據(jù);當(dāng)所述操作數(shù)據(jù)為位圖數(shù)據(jù)時(shí),對(duì)所述