刷新虛擬桌面客戶端屏顯的方法及虛擬桌面系統的製作方法
2023-07-02 01:23:46 1
專利名稱:刷新虛擬桌面客戶端屏顯的方法及虛擬桌面系統的製作方法
技術領域:
本發明涉及網絡優化技術,尤其涉及一種刷新虛擬桌面客戶端屏顯的方法以及一種虛擬桌面系統。
背景技術:
當前的虛擬化技術不只是基礎的伺服器虛擬化,高層次的桌面虛擬化和應用虛擬化技術也已經獲得了蓬勃的發展和廣泛的關注。但不同於伺服器的虛擬化技術,桌面虛擬化和應用虛擬化對網絡具有極大的依賴性,在網絡條件並不能得到充分保障的今天,這種對網絡的依賴性成為大力發展和推廣桌面虛擬化和應用虛擬化技術的重大桎梏。目前的桌面虛擬化和應用虛擬化技術主要受制於網絡,在目前不足以提供優質而穩定的網絡環境下,各大虛擬化廠商只能通過使用其他如優化、壓縮等手段來達到降低帶寬佔用的目的,利用緩存機制就是其中一種普遍使用的手段。目前,Microsoft, VMware, Citrix等廠商的桌面虛擬化產品都已經實現了伺服器端的緩存機制,其中Citrix和 VMware更是提供了客戶端緩存。通過使用緩存機制,可以將最近的顯示數據進行短期保存,更新時可以避免對全屏顯示數據進行重新編碼傳輸,有利於減輕CPU或GPU (Graphic Processing Unit,圖形處理器)的負荷,而且能夠減少數據的傳輸量。通過對Microsoft、VMware, Citrix等廠商通過緩存機制刷新屏幕技術的研究,可以總結出目前市場上各種桌面產品的屏幕刷新技術的基本思想,如圖1所示,現有技術中的虛擬桌面系統一般包括伺服器和客戶端,其中,伺服器包括伺服器緩存器、傳輸器、伺服器處理模塊、比對器,客戶端包括客戶端緩存器、接收器、客戶端處理模塊、顯示屏。下面描述虛擬桌面系統進行屏幕刷新的具體處理過程在伺服器端,首先從發起屏幕刷新事件開始,伺服器端將刷新前的那一張屏顯數據替入伺服器緩存器中並處理完成屏幕刷新事件,伺服器處理模塊向比對器發送待更新的屏顯數據(同時伺服器處理模塊還向傳輸器發送指定的模式數據,該模式數據中包括傳輸通道、加密算法等信息),然後將刷新後的屏顯與伺服器緩存器中刷新前的屏顯在比對器中進行對比,獲得前後兩張屏顯的差異區域,然後將該差異區域上的更新屏顯數據傳輸給傳輸器,最後,傳輸器對接收的屏顯數據進行編碼打包,通過指定的傳輸通道傳輸給客戶端的接收器,同時在伺服器端完成刷新後的屏顯;在客戶端,接收器接收到來自虛擬通道的刷屏請求信號,將本次刷新前的屏顯數據替入客戶端緩存器中,並繼續接收來自虛擬通道編碼打包後的更新屏顯數據,進行拆包解碼,然後發送給客戶端處理模塊,客戶端處理模塊從客戶端緩存器中獲取之前的屏顯數據,並結合拆包解碼後的更新屏顯數據,即可重構出新的屏顯數據,最後將重構出的屏顯數據發送給顯示屏,完成屏幕顯示。根據理論分析,只要從客戶端緩存器中讀取的原有屏顯數據和從伺服器緩存中讀取的原有屏顯數據一致,重構的屏顯與伺服器端刷新的屏顯應該也具有一致性。上述技術在網絡帶寬不受限制的情況下並沒有什麼明顯的缺點。然而,就目前普遍的網絡環境而言,一方面我們能夠獲得的網絡帶寬普遍是不穩定且受限的;而另一方面, 大規模的部署桌面虛擬化產品又需要佔用相當多的網絡帶寬。這樣一來,就會導致部分的虛擬桌面用戶因為帶寬受限無法及時接收從伺服器端發送過來的無損桌面數據,從而降低了虛擬桌面的用戶體驗。那麼,是否能夠通過充分利用緩存技術所帶來的便利,進一步減少伺服器端與客戶端之間數據的傳輸量,從而提高虛擬桌面的用戶體驗呢?解決這個問題對桌面虛擬化和應用虛擬化技術的普及具有重大意義。
發明內容
為解決上述問題,本發明提供一種刷新虛擬桌面客戶端屏顯的方法及一種虛擬桌面系統,能夠減少伺服器端與客戶端之間不必要的數據傳輸,避免在客戶端中已經存有的數據通過網絡再次重發,從而有效地節約了網絡帶寬。為實現上述目的,本發明採用如下的技術方案一種刷新虛擬桌面客戶端屏顯的方法,包括以下步驟伺服器端發起屏幕刷新事件,將刷新前的屏顯數據替入伺服器緩存器中並處理完成伺服器端的屏幕刷新事件,然後將刷新後的屏顯與刷新前的屏顯進行對比,獲得前後兩張屏顯的差異區域,並以像素為基本單位,在所述差異區域上進行像素點/像素塊的移動檢測,檢測在所述差異區域中是否存在有位置改變但像素相同的像素點/像素塊,並將這些像素點/像素塊的位置變化通過移動描述來進行表述,然後將能夠通過移動描述的像素點/像素塊的移動描述命令、不能通過移動描述的像素點/像素塊的更新數據分別進行編碼、打包處理,並通過不同的虛擬通道傳輸給客戶端;客戶端對從不同虛擬通道傳送過來的移動描述命令包與更新數據包進行識別、拆包、解碼,然後從客戶端緩存器中獲取之前的屏顯數據,根據移動描述命令進行像素點/像素塊的移動,並結合所述更新數據,重構出新的屏顯數據,完成屏幕顯示。一種虛擬桌面系統,包括伺服器和客戶端,所述伺服器包括伺服器處理模塊、伺服器緩存器、比對器、傳輸器;所述客戶端包括接收器、客戶端緩存器、客戶端處理模塊、顯示屏;所述伺服器還包括移動檢測模塊;所述伺服器處理模塊用於發起屏幕刷新事件並處理完成伺服器端的屏幕刷新事件後,向所述比對器發送刷新後的屏顯數據;所述伺服器緩存器用於存儲刷新前的屏顯數據;所述比對器用於將刷新後的屏顯與刷新前的屏顯進行對比,獲得前後兩張屏顯的差異區域;所述移動檢測模塊用於以像素為基本單位,在所述差異區域上進行像素點/像素塊的移動檢測,檢測在所述差異區域中是否存在有位置改變但像素相同的像素點/像素塊,並將這些像素點/像素塊的位置變化通過移動描述來進行表述;所述傳輸器用於將能夠通過移動描述的像素點/像素塊的移動描述命令、不能通過移動描述的像素點/像素塊的更新數據分別進行編碼、打包處理,並通過不同的虛擬通道傳輸給所述接收器;所述接收器用於對從不同虛擬通道傳送過來的移動描述命令包與更新數據包進行識別、拆包、解碼,處理完成後發送給所述客戶端處理模塊;所述客戶端處理模塊用於從所述客戶端緩存器中獲取之前的屏顯數據,根據移動描述命令進行像素點/像素塊的移動,並結合所述更新數據,重構出新的屏顯數據,發送給所述顯示屏以完成屏幕顯示。由以上方案可以看出,本發明的刷新虛擬桌面客戶端屏顯的方法及虛擬桌面系統,在移動檢測過程和減少數據傳輸量上有著明顯的優勢,其通過使用像素點/像素塊的移動描述命令來指示客戶端已有屏顯數據的移動,避免了客戶端緩存中的已有像素通過網絡再次發送,有效取代了對部分差異區域單點像素進行逐個更新的過程,粗化了處理對象的粒度,也減少了需要傳輸的數據量,在當前帶寬受限的網絡環境下,採用上述做法可以有效減少對網絡帶寬的消耗,降低虛擬化技術對網絡資源的依賴性,從而極大擴展了遠程顯示協議的廣泛適用性並提高了用戶體驗。
圖1為傳統的虛擬桌面系統結構示意圖;圖2為實施例一中的一種刷新虛擬桌面客戶端屏顯的方法流程示意圖;圖3為實施例二中的一種刷新虛擬桌面客戶端屏顯的方法流程示意圖;圖4為實施例三中的一種虛擬桌面系統結構示意圖。
具體實施例方式本發明提供一種刷新虛擬桌面客戶端屏顯的方法及虛擬桌面系統,以解決現有技術中需要對差異區域數據進行逐個更新從而導致的數據傳輸量大、不能有效節約網絡帶寬的問題。下面結合附圖對本發明的具體實施例作進一步的描述。實施例一本實施例以移動描述的對象為像素點為例進行說明,如圖2所示,一種刷新虛擬桌面客戶端屏顯的方法,包括兩個部分,即伺服器端的處理過程和客戶端的處理過程在伺服器端,伺服器端發起屏幕刷新事件,將刷新前的屏顯數據替入伺服器緩存器中並處理完成伺服器端的屏幕刷新事件,然後將刷新後的屏顯與刷新前的屏顯進行對比,獲得前後兩張屏顯的差異區域,並以像素為基本單位,在所述差異區域上進行像素點的移動檢測,檢測在所述差異區域中是否存在有位置改變但像素相同的像素點,如果有則將這些像素點的位置變化通過移動描述來進行表述,然後將能夠通過移動描述的像素點的移動描述命令、不能通過移動描述的像素點的更新數據分別進行編碼、打包處理,並通過不同的虛擬通道傳輸給客戶端;在客戶端,客戶端對從不同虛擬通道傳送過來的移動描述命令包與更新數據包進行識別、拆包、解碼,然後從客戶端緩存器中獲取之前的屏顯數據,根據移動描述命令進行像素點的移動,並結合所述更新數據,重構出新的屏顯數據,完成屏幕顯示。將本發明的方案與現有技術進行對比可知,本發明的刷新虛擬桌面客戶端屏顯的方法,最重要的是在伺服器端增加了一個移動檢測過程,移動檢測主要是在比對器工作的基礎上,將緩存在伺服器緩存器中的原有屏顯數據和刷新後的屏顯數據的差異區域進行進一步的分析。
6
移動檢測的基本算法思想描述如下像素P是由顯示數據X和顯示位置y所確定的二元組,可以表示為P(x,y)。另外,屏顯本身是由若干的像素點構成,因此一個屏顯也可以看作若干像素點的集合。這裡我們將舊的(刷新前)屏顯稱SS1,新的(刷新後)屏顯 SSyS1 η &表示S1和&中相同像素點的集合,即是兩張屏顯的不變區域。以像素為基本單位,移動檢測算法將檢測在新舊兩張屏顯的差異區域(即為 ^)中是否存在有位置改變但像素相同的像素點。若存在這樣的點a,則我們可以把其歸入移動檢測點集合Q = (PjP1 e S1, P2 e s2,P1 — X = P2 — X,P1 — y 乒 P2 — y}中,並且將 P1 — y 到 P2 — y 的位置變化通過移動描述即一個表述函數f來進行表述,f可表述為fi = T1(PjP2-Y)jP e Q表示將P移動到P2的位置。通過移動檢測確定了能夠通過移動描述的像素點之後,我們就只需要將這些像素點的移動描述進行編碼打包處理,並利用Transmitter (傳輸器)新開一個虛擬通道專門用於傳輸這些移動描述的命令包。而其他的像素點數據(即不能通過移動描述的像素點的更新數據)則使用原來的技術,通過傳統的用於屏幕刷新的虛擬通道進行傳輸。完成伺服器端的傳輸改良之後,我們還需要在客戶端上進行接收數據的改良處理,以識別從新建虛擬通道傳送過來的移動描述命令包。客戶端接收到來自虛擬通道的刷屏請求信號,將刷新前的屏顯數據替入客戶端緩存,並繼續接收來自虛擬通道的數據包,依傳遞虛擬通道的不同,識別為普通的用於屏幕刷新的更新數據包和移動描述命令包。通過使用不同的拆包解碼算法,分別獲得原始的更新數據和一組移動描述命令。對移動描述命令包的識別、拆包、解碼的過程都需要在重構屏顯前完成,作為一個較好的實施例,可將上述處理過程均放在Receiver (接收器)中進行實現。進行識別的過程非常簡單,由於採取了虛擬通道技術,只需要將用於傳送移動描述命令包的虛擬通道數據提取出來,即可實現命令包與其他更新數據包的分離。而拆包和解碼的過程則只需要配備一個對應於伺服器端將移動描述進行編碼打包過程的模塊即可在客戶端獲得原始的移動描述命令。獲得的移動描述命令和通過原有屏幕刷新通道傳輸的更新數據事實上都是通過 Receiver (接收器)接收,然後傳遞給具有處理功能的客戶端處理模塊。客戶端處理模塊從客戶端緩存器中讀取原有屏顯數據,利用移動描述命令進行像素點的移動,並結合更新數據進行其他變化區域的更新,從而達到完全重構屏顯的目的。根據理論分析,只要從客戶端緩存器中讀取的原有屏顯數據和從伺服器緩存器中讀取的原有屏顯數據一致,重構的屏顯與伺服器端刷新的屏顯應該也具有一致性。實施例二本實施例與實施例一的區別在於本實施例中移動描述的對象為像素塊而非像素點。如圖3所示,一種刷新虛擬桌面客戶端屏顯的方法,包括以下步驟伺服器端發起屏幕刷新事件,將刷新前的屏顯數據替入伺服器緩存器中並處理完成伺服器端的屏幕刷新事件,然後將刷新後的屏顯與刷新前的屏顯進行對比,獲得前後兩張屏顯的差異區域,並以像素為基本單位,在所述差異區域上進行像素塊的移動檢測,檢測在所述差異區域中是否存在有位置改變但像素相同的像素塊,如果有則將這些像素塊的位置變化通過移動描述來進行表述,然後將能夠通過移動描述的像素塊的移動描述命令、不能通過移動描述的像素塊的更新數據分別進行編碼、打包處理,並通過不同的虛擬通道傳輸給客戶端;客戶端對從不同虛擬通道傳送過來的移動描述命令包與更新數據包進行識別、拆包、解碼,然後從客戶端緩存器中獲取之前的屏顯數據,根據移動描述命令進行像素塊的移動,並結合所述更新數據,重構出新的屏顯數據,完成屏幕顯示。可以想像,如果把屏幕上所有的像素點都進行單獨的移動檢測和移動描述,那移動檢測將是一個非常密集的CPU運算過程(如一個19X10的屏幕上所有的像素可能有二百萬以上)。事實上,可以想到,移動其實很多時候是一個連續的過程,根據之前的屏幕移動狀態,我們可以對接下來可能發生的移動進行估計,這種對過去經驗的積累,我們稱作學習。伺服器端的伺服器處理模塊將通過學習來對將要發生的移動進行估計,這部分內容通過VMware與Teradici共同開發的PCoIP協議已經完全實現了(本發明借用這方面的思想,但是並不做贅述)。對於本發明的移動描述,對單個的像素點進行移動描述比較簡單,通過上面的f\ 即可完成,但宏觀上講,如果需要對大量的單點進行移動描述,那總體的表述數據量就將非常大,這不符合本發明的初衷。因此,本發明還對實施例一中的移動描述進行了改良,將移動描述的對象從像素點變為像素塊,該像素塊可以設定一定的要求,如該像素塊由至少設定個數像素點所組成。檢測在所述差異區域中是否存在有位置改變但像素相同的像素塊的過程即為尋找能夠通過移動描述的像素塊的過程,因為發生位置變化的像素塊必然可以通過移動描述來進行表述。尋找能夠通過移動描述的像素塊的方法有很多,作為一個較好的實施例,本發明提出兩種比較成熟的方法其一是將屏幕顯示在圖像應用層時就進行分離,確認出各種類型,此時的圖像未被分解成位圖,可以直接將整體圖像元素(如窗體,圖標等)進行記錄,利用新舊屏顯的記錄,確定成為位圖後可以綁定處理的像素塊,即獲得了能夠通過移動描述的像素塊。這種在圖像的應用層就將圖像元素分離出來進行匹配的方法,可以有效減少在像素形式下進行匹配的工作量,能大大降低伺服器CPU的工作負擔。另外一種方法是根據像素點進行處理,將新舊屏顯中適應的像素匹配(利用目前已有的很多成熟算法都可以實現,這裡不做重點討論。),找到成塊的像素,獲得能夠通過移動描述的像素塊。通過以上任意一種方式獲得的綁定像素塊都是確認在新舊屏顯中進行了移動的像素塊,事實上,重新進行的移動描述已經可以初步擴展了,不但可以描述平動像素塊,也可以進行特定角度轉動的描述,因此,我們的移動描述表述函數可以變更為f = f(P,P2 — y,m,θ ),P e Q,m = 1,2其中,m= 1表示像素塊的平動,即當m= 1時,f表示將P移動到P2的位置,同時整個像素塊都隨著P平移;m = 2表示像素塊的轉動,即當m = 2時,f表示將P以P2為中心逆時針轉動θ°角度,可以取0、90、180或270等值,同時整個像素塊都隨著P平移。以上的兩種移動描述還只是最簡單的移動描述,事實上,像素塊的位置變化除了包括平動、轉動之外,還可以包括以上二種移動描述的組合,以擴展像素塊的移動描述。以前單點的P變成現在用於表示區域的L,且有
1)對任意 P G L,f = f(P,P2 — y,m,θ ) e F = F (L,P2 — y,m,θ )成立;2)對任意 Ptl e LjP1 e L,若有 P。Φ P1,則 f(P0,P2 — y,m,θ )興 f(P1,P2 — y,m, θ);反之也成立;3)對任意 P0 e L,P1 e L,若有 f (PQ,P2 — y,m,θ ) = f(P17 P2 - y, m, θ ),貝丨J P0 =P1 ;反之也成立。利用上述方式,在處理大像素塊移動時,可以僅使用簡單的移動描述來代替大規模的區域像素更新,數據傳輸量將大大減少。而且即使沒有可以使用的大像素塊出現,這也不會給網絡增加額外的負擔。本實施例中的其它技術特徵與實施例一相同,在此不予贅述。實施例三與上述兩個實施例中的刷新虛擬桌面客戶端屏顯的方法相對應的,本發明還提供一種虛擬桌面系統,如圖4所示,包括伺服器和客戶端,所述伺服器包括伺服器處理模塊、 伺服器緩存器、比對器、傳輸器;所述客戶端包括接收器、客戶端緩存器、客戶端處理模塊、 顯示屏;另外,所述伺服器還包括移動檢測模塊;所述伺服器處理模塊用於發起屏幕刷新事件並處理完成伺服器端的屏幕刷新事件後,向所述比對器發送刷新後的屏顯數據;所述伺服器緩存器用於存儲刷新前的屏顯數據;所述比對器用於將刷新後的屏顯與刷新前的屏顯進行對比,獲得前後兩張屏顯的差異區域;所述移動檢測模塊用於以像素為基本單位,在所述差異區域上進行像素點/像素塊的移動檢測,檢測在所述差異區域中是否存在有位置改變但像素相同的像素點/像素塊,並將這些像素點/像素塊的位置變化通過移動描述來進行表述;所述傳輸器用於將能夠通過移動描述的像素點/像素塊的移動描述命令、不能通過移動描述的像素點/像素塊的更新數據分別進行編碼、打包處理,並通過不同的虛擬通道傳輸給所述接收器;所述接收器用於對從不同虛擬通道傳送過來的移動描述命令包與更新數據包進行識別、拆包、解碼,處理完成後發送給所述客戶端處理模塊;所述客戶端處理模塊用於從所述客戶端緩存器中獲取之前的屏顯數據,根據移動描述命令進行像素點/像素塊的移動,並結合所述更新數據,重構出新的屏顯數據,發送給所述顯示屏以完成屏幕顯示。優選的,所述伺服器處理模塊還可以用於向所述傳輸器發送指定的模式數據,該模式數據包括傳輸通道信息和加密算法等信息,以指定傳輸器進行數據傳輸時的傳輸通道以及進行編碼時的加密算法。優選的,所述客戶端緩存器用於當客戶端接收到從虛擬通道傳輸過來的刷屏請求信號後,將完成本次刷新處理前的屏顯數據進行存儲(即為客戶端處理模塊所讀取的「之前的屏顯數據」)。優選的,所述像素塊由至少設定個數的像素點所組成。優選的,所述移動檢測模塊可以包括第一檢測子模塊,用於檢測在所述差異區域中是否存在有位置改變但像素相同的像素塊,具體為將屏幕顯示在圖像應用層進行分離,確認出各種類型,將整體圖像元素進行記錄,利用新舊屏顯的記錄,獲得成為位圖後能夠通過移動描述的像素塊。或者,所述移動檢測模塊可以包括第二檢測子模塊,用於檢測在所述差異區域中是否存在有位置改變但像素相同的像素塊,具體為根據像素點進行處理,將新舊屏顯中適應的像素匹配,獲得能夠通過移動描述的像素塊。本發明的一種虛擬桌面系統中的其它技術特徵與本發明的一種刷新虛擬桌面客戶端屏顯的方法相同,在此不予贅述。通過以上幾個實施例可以看出,本發明的刷新虛擬桌面客戶端屏顯的方法及虛擬桌面系統,充分利用了客戶端緩存的便利,其通過使用像素點/像素塊的移動描述命令來指示客戶端已有屏顯數據的移動,避免了客戶端緩存中的已有像素通過網絡再次發送,有效取代了對部分差異區域單點像素進行逐個更新的過程,粗化了處理對象的粒度,也減少了需要傳輸的數據量,在當前帶寬受限的網絡環境下,採用上述做法可以有效減少對網絡帶寬的消耗,降低虛擬化技術對網絡資源的依賴性,從而極大擴展了遠程顯示協議的廣泛適用性並提高了用戶體驗。以上所述的本發明實施方式,並不構成對本發明保護範圍的限定。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明的權利要求保護範圍之內。
權利要求
1.一種刷新虛擬桌面客戶端屏顯的方法,其特徵在於,包括以下步驟伺服器端發起屏幕刷新事件,將刷新前的屏顯數據替入伺服器緩存器中並處理完成伺服器端的屏幕刷新事件,然後將刷新後的屏顯與刷新前的屏顯進行對比,獲得前後兩張屏顯的差異區域,並以像素為基本單位,在所述差異區域上進行像素點/像素塊的移動檢測, 檢測在所述差異區域中是否存在有位置改變但像素相同的像素點/像素塊,並將這些像素點/像素塊的位置變化通過移動描述來進行表述,然後將能夠通過移動描述的像素點/像素塊的移動描述命令、不能通過移動描述的像素點/像素塊的更新數據分別進行編碼、打包處理,並通過不同的虛擬通道傳輸給客戶端;客戶端對從不同虛擬通道傳送過來的移動描述命令包與更新數據包進行識別、拆包、 解碼,然後從客戶端緩存器中獲取之前的屏顯數據,根據移動描述命令進行像素點/像素塊的移動,並結合所述更新數據,重構出新的屏顯數據,完成屏幕顯示。
2.根據權利要求1所述的刷新虛擬桌面客戶端屏顯的方法,其特徵在於,所述像素塊由至少設定個數的像素點所組成。
3.根據權利要求2所述的刷新虛擬桌面客戶端屏顯的方法,其特徵在於,檢測在所述差異區域中是否存在有位置改變但像素相同的像素塊的過程具體包括將屏幕顯示在圖像應用層進行分離,確認出各種類型,將整體圖像元素進行記錄,利用新舊屏顯的記錄,獲得成為位圖後能夠通過移動描述的像素塊。
4.根據權利要求2所述的刷新虛擬桌面客戶端屏顯的方法,其特徵在於,檢測在所述差異區域中是否存在有位置改變但像素相同的像素塊的過程具體包括根據像素點進行處理,將新舊屏顯中適應的像素匹配,獲得能夠通過移動描述的像素塊。
5.根據權利要求3或4所述的刷新虛擬桌面客戶端屏顯的方法,其特徵在於,所述像素塊的位置變化包括像素塊的平動、像素區域的轉動或者二者的組合。
6.一種虛擬桌面系統,包括伺服器和客戶端,所述伺服器包括伺服器處理模塊、伺服器緩存器、比對器、傳輸器;所述客戶端包括接收器、客戶端緩存器、客戶端處理模塊、顯示屏; 其特徵在於,所述伺服器還包括移動檢測模塊;所述伺服器處理模塊用於發起屏幕刷新事件並處理完成伺服器端的屏幕刷新事件後, 向所述比對器發送刷新後的屏顯數據;所述伺服器緩存器用於存儲刷新前的屏顯數據;所述比對器用於將刷新後的屏顯與刷新前的屏顯進行對比,獲得前後兩張屏顯的差異區域;所述移動檢測模塊用於以像素為基本單位,在所述差異區域上進行像素點/像素塊的移動檢測,檢測在所述差異區域中是否存在有位置改變但像素相同的像素點/像素塊,並將這些像素點/像素塊的位置變化通過移動描述來進行表述;所述傳輸器用於將能夠通過移動描述的像素點/像素塊的移動描述命令、不能通過移動描述的像素點/像素塊的更新數據分別進行編碼、打包處理,並通過不同的虛擬通道傳輸給所述接收器;所述接收器用於對從不同虛擬通道傳送過來的移動描述命令包與更新數據包進行識別、拆包、解碼,處理完成後發送給所述客戶端處理模塊;所述客戶端處理模塊用於從所述客戶端緩存器中獲取之前的屏顯數據,根據移動描述命令進行像素點/像素塊的移動,並結合所述更新數據,重構出新的屏顯數據,發送給所述顯示屏以完成屏幕顯示。
7.根據權利要求6所述的虛擬桌面系統,其特徵在於,所述伺服器處理模塊還用於向所述傳輸器發送指定的模式數據,所述模式數據包括傳輸通道信息和加密算法信息;和/或所述客戶端緩存器用於當客戶端接收到刷屏請求信號後,將刷新前的屏顯數據進行存儲。
8.根據權利要求6所述的虛擬桌面系統,其特徵在於,所述像素塊由至少設定個數的像素點所組成。
9.根據權利要求8所述的虛擬桌面系統,其特徵在於,所述移動檢測模塊包括第一檢測子模塊,用於將屏幕顯示在圖像應用層進行分離,確認出各種類型,將整體圖像元素進行記錄,利用新舊屏顯的記錄,獲得成為位圖後能夠通過移動描述的像素塊。
10.根據權利要求8所述的虛擬桌面系統,其特徵在於,所述移動檢測模塊包括第二檢測子模塊,用於根據像素點進行處理,將新舊屏顯中適應的像素匹配,獲得能夠通過移動描述的像素塊。
全文摘要
本發明提供一種刷新虛擬桌面客戶端屏顯的方法及虛擬桌面系統,該虛擬桌面系統包括伺服器和客戶端,所述伺服器包括伺服器處理模塊、伺服器緩存器、比對器、傳輸器;所述客戶端包括接收器、客戶端緩存器、客戶端處理模塊、顯示屏、移動檢測模塊。本發明的刷新虛擬桌面客戶端屏顯的方法及虛擬桌面系統在移動檢測過程和減少數據傳輸量上有著明顯的優勢,其通過使用像素點/像素塊的移動描述命令來指示客戶端已有屏顯數據的移動,避免了客戶端緩存中的已有像素通過網絡再次發送,有效取代了對部分差異區域單點像素進行逐個更新的過程,減少了需要傳輸的數據量,在當前帶寬受限的網絡環境下,採用上述做法可以有效減少對網絡帶寬的消耗並提高用戶體驗。
文檔編號H04L29/08GK102566910SQ20111041964
公開日2012年7月11日 申請日期2011年12月14日 優先權日2011年12月14日
發明者何利明 申請人:廣州傑賽科技股份有限公司