亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于遠(yuǎn)程桌面協(xié)議的客戶端屏幕更新顯示方法與流程

文檔序號(hào):11843438閱讀:943來源:國(guó)知局

本發(fā)明涉及一種客戶端屏幕更新顯示方法,尤其是涉及一種基于遠(yuǎn)程桌面協(xié)議的客戶端屏幕更新顯示方法。



背景技術(shù):

遠(yuǎn)程桌面協(xié)議是將遠(yuǎn)程桌面的屏幕更新傳送到用戶客戶端顯示。在遠(yuǎn)程桌面運(yùn)行過程中會(huì)有很多屏幕更新的畫面是一樣的,比如將某一個(gè)窗口最小化后再恢復(fù),將一個(gè)窗口從后臺(tái)切換到前臺(tái),這些操作都會(huì)使得這些窗口的畫面進(jìn)行重繪,但是畫面的內(nèi)容其實(shí)是一樣的,或者只是有很小一部分發(fā)生了變化,存在大量冗余數(shù)據(jù)。如果每一次操作之后都要重繪窗口畫面,將會(huì)傳輸大量的冗余圖像信息數(shù)據(jù),會(huì)占用帶寬,降低網(wǎng)絡(luò)反應(yīng)速度。

現(xiàn)有技術(shù)采用的方案的缺點(diǎn)是:只緩存整幅的屏幕更新畫面,在畫面有少量更新時(shí)不緩存,因此就造成緩存失效;此外,用戶桌面屏幕畫面的更新沒有和具體應(yīng)用聯(lián)系起來,因此當(dāng)緩存的存儲(chǔ)空間已滿,需要替換緩存畫面時(shí)的準(zhǔn)確性相對(duì)較低,畫面重新繪制速度慢,使用戶感覺到屏幕畫面延遲。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于遠(yuǎn)程桌面協(xié)議的客戶端屏幕更新顯示方法。

本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):

一種基于遠(yuǎn)程桌面協(xié)議的客戶端屏幕更新顯示方法,該方法包括如下步驟:

(1)監(jiān)控服務(wù)器屏幕畫面變化,當(dāng)服務(wù)器屏幕發(fā)生變化后執(zhí)行步驟(2);

(2)將服務(wù)器屏幕變化映射到具體的應(yīng)用窗口,并根據(jù)各應(yīng)用窗口操作判斷是否影響緩存更新,若是執(zhí)行步驟(3),否則執(zhí)行步驟(4);

(3)判斷各影響緩存更新的應(yīng)用窗口更新區(qū)域大小是否超過設(shè)定值,若是則對(duì)該應(yīng)用窗口進(jìn)行服務(wù)器緩存和客戶端緩存的差異化更新,并在客戶端顯示服務(wù)器屏幕上的屏幕內(nèi)容,執(zhí)行步驟(5),否則進(jìn)行服務(wù)器緩存和客戶端緩存的合并更新,并在客戶端顯示服務(wù)器屏幕上的屏幕內(nèi)容,執(zhí)行步驟(5);

(4)從服務(wù)器緩存表中提取服務(wù)器屏幕上對(duì)應(yīng)的應(yīng)用窗口的緩存索引并發(fā)送至客戶端,,客戶端從客戶端緩存表中提取與緩存索引對(duì)應(yīng)的圖像并在客戶端顯示,執(zhí)行步驟(5);

(5)是否結(jié)束遠(yuǎn)程顯示,若是則結(jié)束,否則返回步驟(1)。

步驟(1)中監(jiān)控服務(wù)器屏幕畫面變化具體為:通過鏡像顯卡驅(qū)動(dòng)對(duì)服務(wù)器屏幕進(jìn)行監(jiān)控,當(dāng)某一應(yīng)用提交顯卡操作時(shí),鏡像顯卡驅(qū)動(dòng)獲取服務(wù)器屏幕畫面變化請(qǐng)求。

步驟(2)中將服務(wù)器屏幕變化映射到具體應(yīng)用的窗口具體為查找Windows的對(duì)象,從而將屏幕變化映射到具體的應(yīng)用窗口。

步驟(2)根據(jù)應(yīng)用窗口操作判斷是否影響緩存更新具體為:查找存儲(chǔ)的應(yīng)用-窗口屬性列表,判斷應(yīng)用窗口的屬性為可見窗口或不可見窗口,若為可見窗口則該應(yīng)用窗口影響緩存更新,若為不可見窗口則該應(yīng)用窗口不影響緩存更新。

步驟(3)中差異化更新具體為:

以應(yīng)用窗口的左上角為坐標(biāo)原點(diǎn),將整個(gè)應(yīng)用窗口劃分為多個(gè)大小相同的網(wǎng)格,從服務(wù)器緩存表中提取該應(yīng)用窗口的原緩存畫面,將各網(wǎng)格與原緩存畫面中對(duì)應(yīng)網(wǎng)格部位進(jìn)行對(duì)比,提取不一致的網(wǎng)格對(duì)應(yīng)的坐標(biāo)并生成網(wǎng)格更新列表,所述的網(wǎng)格更新列表包括應(yīng)用窗口對(duì)應(yīng)網(wǎng)格坐標(biāo)以及對(duì)應(yīng)的畫面RGB數(shù)據(jù),進(jìn)而進(jìn)行服務(wù)器緩存和客戶端緩存的更新。

步驟(3)中合并更新具體為:獲取應(yīng)用窗口的整體畫面RGB數(shù)據(jù),進(jìn)行服務(wù)器緩存和客戶端緩存的更新。

步驟(4)中服務(wù)器緩存表為哈希表,該哈希表包括哈希索引和對(duì)應(yīng)的畫面RGB數(shù)據(jù),所述的哈希索引即為緩存索引,所述的客戶端緩存表為與服務(wù)器緩存表相一致的哈希表。

與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn):

(1)本發(fā)明的客戶端屏幕更新顯示方法中當(dāng)服務(wù)器屏幕畫面變化時(shí)查找相應(yīng)的應(yīng)用,并將根據(jù)應(yīng)用窗口為可見窗口或不可見窗口來判斷屏幕畫面變化是否影響緩存更新,若影響緩存更新對(duì)服務(wù)器緩存和客戶端緩存進(jìn)行更新,否則直接通過緩存索引調(diào)用客戶端中的緩存進(jìn)行客戶端屏幕的顯示,去除數(shù)據(jù)傳輸過程中的大量冗余數(shù)據(jù),大大減小數(shù)據(jù)傳輸量,節(jié)省網(wǎng)絡(luò)帶寬、提高網(wǎng)絡(luò)反應(yīng)速度,減小用戶屏幕畫面延遲時(shí)間的目的;

(2)本發(fā)明判斷屏幕更新區(qū)域大小,對(duì)于更新區(qū)域大的應(yīng)用采用差異化更新,以減少全屏更新帶來的網(wǎng)絡(luò)數(shù)據(jù)量大和屏幕顯示慢的缺點(diǎn),對(duì)應(yīng)更新區(qū)域小的采用合并更新,以減少多次小更新帶來的網(wǎng)絡(luò)數(shù)據(jù)包過多以及客戶端計(jì)算資源浪費(fèi)的缺點(diǎn)。

附圖說明

圖1為本發(fā)明基于遠(yuǎn)程桌面協(xié)議的客戶端屏幕更新顯示方法的流程框圖。

具體實(shí)施方式

下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。

實(shí)施例

如圖1所示,一種基于遠(yuǎn)程桌面協(xié)議的客戶端屏幕更新顯示方法,該方法包括如下步驟:

步驟1:監(jiān)控服務(wù)器屏幕畫面變化,具體地:通過鏡像顯卡驅(qū)動(dòng)對(duì)服務(wù)器屏幕進(jìn)行監(jiān)控,當(dāng)某一應(yīng)用提交顯卡操作時(shí),鏡像顯卡驅(qū)動(dòng)獲取服務(wù)器屏幕畫面變化請(qǐng)求,執(zhí)行步驟2;

步驟2:判斷服務(wù)器屏幕畫面是否發(fā)生變化,具體地鏡像顯卡驅(qū)動(dòng)是否獲取到服務(wù)器屏幕畫面變化請(qǐng)求,若是則執(zhí)行步驟3,否則返回步驟1;

步驟3:將服務(wù)器屏幕變化映射到具體的應(yīng)用窗口,具體為查找Windows的對(duì)象,從而將屏幕變化映射到具體的應(yīng)用窗口,執(zhí)行步驟4;

步驟4:根據(jù)各應(yīng)用窗口操作判斷是否影響緩存更新,若是則執(zhí)行步驟5,否則執(zhí)行步驟8;

步驟5:判斷各影響緩存更新的應(yīng)用窗口更新區(qū)域大小是否超過設(shè)定值,若是執(zhí)行步驟6,否則執(zhí)行步驟7;

步驟6:對(duì)于該應(yīng)用窗口進(jìn)行服務(wù)器緩存和客戶端緩存的差異化更新,并在客戶端顯示服務(wù)器屏幕上的屏幕內(nèi)容,執(zhí)行步驟9;

步驟7:對(duì)于該應(yīng)用窗口進(jìn)行服務(wù)器緩存和客戶端緩存的合并更新,并在客戶端顯示服務(wù)器屏幕上的屏幕內(nèi)容,執(zhí)行步驟9;

步驟8:從服務(wù)器緩存表中提取屏幕上對(duì)應(yīng)的應(yīng)用窗口的緩存索引并發(fā)送至客戶端,客戶端從客戶端緩存表中提取與緩存索引對(duì)應(yīng)的圖像并在客戶端顯示,執(zhí)行步驟9,其中服務(wù)器緩存表為哈希表,該哈希表包括哈希索引和對(duì)應(yīng)的畫面RGB數(shù)據(jù),所述的哈希索引即為緩存索引,所述的客戶端緩存表為與服務(wù)器緩存表相一致的哈希表;

步驟9:判斷是否結(jié)束遠(yuǎn)程顯示,若是則結(jié)束,否則返回步驟1。

其中步驟4中根據(jù)應(yīng)用窗口判斷是否影響緩存更新具體為:查找存儲(chǔ)的應(yīng)用-窗口屬性列表,判斷應(yīng)用窗口的屬性為可見窗口或不可見窗口,若為可見窗口則該應(yīng)用窗口影響緩存更新,若為不可見窗口則該應(yīng)用窗口不影響緩存更新。

步驟6中差異化更新具體為:以服務(wù)器屏幕上顯示的應(yīng)用窗口左上角為坐標(biāo)原點(diǎn),將整個(gè)應(yīng)用窗口劃分為多個(gè)大小相同的網(wǎng)格,從服務(wù)器緩存表中提取該應(yīng)用窗口的原緩存畫面,將各網(wǎng)格與原緩存畫面中對(duì)應(yīng)網(wǎng)格部位進(jìn)行對(duì)比,提取不一致的網(wǎng)格對(duì)應(yīng)的坐標(biāo)并生成網(wǎng)格更新列表,所述的網(wǎng)格更新列表包括應(yīng)用窗口對(duì)應(yīng)網(wǎng)格坐標(biāo)以及對(duì)應(yīng)的畫面RGB數(shù)據(jù),進(jìn)而進(jìn)行服務(wù)器緩存和客戶端緩存的更新。

步驟7中合并更新具體為:獲取服務(wù)器屏幕更新區(qū)域所在應(yīng)用窗口的整體畫面RGB數(shù)據(jù),進(jìn)行服務(wù)器緩存和客戶端緩存的更新。

步驟6、步驟7實(shí)現(xiàn)了兩種不同的窗口更新方式,對(duì)于更新區(qū)域大的應(yīng)用窗口采用差異化更新,以減少全屏更新帶來的網(wǎng)絡(luò)數(shù)據(jù)量大和屏幕顯示慢的缺點(diǎn),對(duì)更新區(qū)域小的采用合并更新,以減少多次小更新帶來的網(wǎng)絡(luò)數(shù)據(jù)包過多以及客戶端計(jì)算資源浪費(fèi)的缺點(diǎn)。

在進(jìn)行畫面服務(wù)器緩存或客戶端緩存更新時(shí),如果緩存空間已滿,主要采用FIFO、LRU、LFU等緩存替換算法進(jìn)行緩存替換。

其中:FIFO(First IN First Out)算法:是先進(jìn)先出算法,它總是替換最先調(diào)入緩存的畫面,即替換在緩存中駐留時(shí)間最長(zhǎng)的畫面,認(rèn)為駐留時(shí)間最長(zhǎng)的畫面不再被使用的可能性較大。

LRU(Least Recently Used)算法:將最近一段時(shí)間最少使用的畫面替換出緩存,它是基于程序局部性原理來考慮的,認(rèn)為那些剛被使用過的畫面可能還要立即被使用,而那些在較長(zhǎng)時(shí)間內(nèi)未被使用的畫面可能不會(huì)立即被使用。

LFU(Lease Frequently Used)算法:即最不經(jīng)常使用置換算法,將訪問次數(shù)最少的內(nèi)容替換出緩存,要求在畫面置換時(shí)置換引用計(jì)數(shù)最小的畫面,因?yàn)榻?jīng)常被使用的畫面應(yīng)該有一個(gè)較大的引用次數(shù)。但是有些畫面在開始時(shí)使用次數(shù)很多,但以后就不再使用,這類畫面將會(huì)長(zhǎng)時(shí)間留在緩存中,因此可以將引用計(jì)數(shù)寄存器定時(shí)右移一位,形成指數(shù)衰減的平均使用次數(shù)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1