掃描二維碼
隨時(shí)隨地手機(jī)看文章
3.2 屏幕變化檢測算法
屏幕變化檢測算法性能的好壞將直接影響到VNC Server端發(fā)送的數(shù)據(jù)量,一種高效的屏幕檢測算法將大大降低傳輸?shù)臄?shù)據(jù)量,節(jié)省網(wǎng)絡(luò)帶寬,從而提高系統(tǒng)的實(shí)時(shí)效果。VNC默認(rèn)的屏幕變化檢測機(jī)制是通過消息鉤子機(jī)制獲取區(qū)域的坐標(biāo)信息后,再將坐標(biāo)區(qū)域的屏幕像素?cái)?shù)據(jù)發(fā)送給各VNC Client。此檢測方法使得大量沒有發(fā)生改變的屏幕數(shù)據(jù)也被發(fā)送,增加了網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量,在低速網(wǎng)絡(luò)環(huán)境中容易造成網(wǎng)絡(luò)擁塞,影響系統(tǒng)的性能。因此,本文在此基礎(chǔ)上提出了一種新的屏幕變化區(qū)域檢測算法。
VNC機(jī)制通過采用消息鉤子機(jī)制截獲系統(tǒng)屏幕重繪區(qū)域信息,將得到的區(qū)域拆分成一個(gè)矩形鏈表(遍歷鏈表)來存儲區(qū)域坐標(biāo)信息,記為array_list,定義一個(gè)變化區(qū)域記為vnc_rgn,專門保存需要重新發(fā)送的區(qū)域位置信息,對array_list每個(gè)成員矩形調(diào)用此檢測算法進(jìn)行變化區(qū)域檢測。具體的算法流程圖如圖2所示。
(1)假設(shè)其中一個(gè)成員矩形為arri,如果arri的長寬都小于32×32,則直接作為需重新發(fā)送的變化區(qū)域,保存到vnc_rgn中,否則對arri進(jìn)行分析檢測。
(2)首先定義一個(gè)新的矩形arrj(arri.left,0,arri.right,0),在arri中找到發(fā)生變化的行,記錄該行的y坐標(biāo),記arrj.top=y,同時(shí)y+=16遞增找到未發(fā)生變化行,暫時(shí)記arrj.bottom=y;然后從arrj底部y-=1進(jìn)行比較,尋找內(nèi)容發(fā)生變化的行,找到后將此行的y坐標(biāo)設(shè)置成arrj.bottom=y。至此確定了變化矩形arrj的最終的top、bottom坐標(biāo)。同時(shí)將arri的值設(shè)為arri(arri.left,arrj.bottom,arri.right,arri.bottom)。在對arrj分析完畢后接著對arri遍歷分析直至結(jié)束。
(3)確定矩形arrj后,對矩形arrj進(jìn)行分析。首先定義一個(gè)矩形arrn(0,0,0,0),在arrj中尋找最先發(fā)生改變的列,找到后記錄發(fā)生變化的區(qū)域的left、top坐標(biāo),arrn.left=x,arrn.top=y,分別對x、y軸方向循環(huán)遍歷進(jìn)行分析(記為x+=32,y+=32),如果此列屏幕像素?cái)?shù)據(jù)改變,則x+=32繼續(xù)比較;否則將記錄arrn.right=x,對y軸方向進(jìn)行同樣的比較,y+=32,并記錄arrn.bottom=y,最終得到需要發(fā)送的變化區(qū)域矩形坐標(biāo),并將此矩形保存到最終發(fā)送的矩形鏈表中,同時(shí)記錄下arrk(arrn.right,arrn.top,arrj.right,arrn.bottom)、arrm(arrn.left,arrn.bottom,arrj.right,arrj.bottom),分別將arrk、arrm賦值給arrj進(jìn)行類似分析檢測,依次循環(huán)遍歷整個(gè)arrj,直到結(jié)束。
通過此屏幕變化區(qū)域檢測算法,對整個(gè)array_list鏈表的成員矩形進(jìn)行遍歷后得到需要重新發(fā)送的變化區(qū)域坐標(biāo)信息。
4 實(shí)驗(yàn)結(jié)果
此改進(jìn)方案已經(jīng)應(yīng)用于VcomOffice遠(yuǎn)程視頻會議系統(tǒng)中。實(shí)驗(yàn)環(huán)境為:局域網(wǎng)內(nèi),中轉(zhuǎn)服務(wù)器采用Linux操作系統(tǒng),VNC Server和VNC Client端均采用Windows XP操作系統(tǒng),具體的軟硬件配置如表1所示。
為了驗(yàn)證調(diào)用屏幕變化區(qū)域檢測算法前后,VNCServer端對同一操作生成的數(shù)據(jù)量的變化,實(shí)驗(yàn)在100 M的局域網(wǎng)內(nèi)進(jìn)行,VNC Server采用的是VNC默認(rèn)的tight編碼[5],編碼后經(jīng)過zlib壓縮[5]后發(fā)送給中轉(zhuǎn)服務(wù)器,主要進(jìn)行以下場景的測試:
(1)打開一個(gè)Word文檔,剪切、復(fù)制、粘貼一段文字,圖片保存到Word,在Word中輸入一些內(nèi)容;
(2)打開IE瀏覽器登錄www.sina.com.cn主頁;
(3)打開一個(gè)PDF文檔后,拖動滾動條至底部;
(4)打開資源管理器,在屏幕上做拖動操作,之后將其最大化。
調(diào)用檢測算法前后VNC Server發(fā)送數(shù)據(jù)量如圖3所示。通過對比可以看到,在調(diào)用屏幕區(qū)域變化檢測算法前后,VNC Server端發(fā)送的數(shù)據(jù)量都會有一定程度的下降。當(dāng)執(zhí)行相同的Word操作時(shí),VNC Server端發(fā)送的數(shù)據(jù)量降低了12.21%,登錄新浪網(wǎng)主頁的過程中數(shù)據(jù)發(fā)送量只降低了4.82%,打開PDF文檔并拖動滾動條至最底端的過程中,發(fā)送的數(shù)據(jù)總量降低了14.63%,在資源管理器的縮放過程中,數(shù)據(jù)發(fā)送量下降了22.19%。
測試結(jié)果表時(shí),當(dāng)VNC系統(tǒng)調(diào)用屏幕區(qū)域變化檢測算法后,VNC Server端的發(fā)送數(shù)據(jù)量平均會有10%左右的下降。這在遠(yuǎn)程多點(diǎn)應(yīng)用程序共享中,會大大減輕VNC Server端的發(fā)送壓力,減少網(wǎng)絡(luò)擁塞現(xiàn)象出現(xiàn)的概率,從而提高了應(yīng)用程序共享時(shí)遠(yuǎn)程客戶端響應(yīng)速度。
本文介紹了在低速網(wǎng)絡(luò)環(huán)境下遠(yuǎn)程視頻會議系統(tǒng)中通過VNC協(xié)議進(jìn)行應(yīng)用程序共享時(shí)存在的問題,提出了一種新的改進(jìn)方案,并結(jié)合新方案提出了一種新的屏幕區(qū)域變化檢測算法。此外,對系統(tǒng)在調(diào)用新的屏幕區(qū)域變化檢測算法前后進(jìn)行了測試比較。該方案已經(jīng)應(yīng)用于大連浩視數(shù)字技術(shù)有限公司的VcomOffice遠(yuǎn)程視頻會議系統(tǒng)。通過多個(gè)實(shí)驗(yàn)場景的測試,實(shí)驗(yàn)結(jié)果表明,采用新的屏幕變化區(qū)域檢測算法后,VNC Server端的發(fā)送數(shù)據(jù)量出現(xiàn)了較大程度的下降,為低速網(wǎng)絡(luò)環(huán)境下遠(yuǎn)程視頻會議系統(tǒng)節(jié)省了網(wǎng)絡(luò)帶寬,提高了應(yīng)用程序共享系統(tǒng)的實(shí)時(shí)性,從而實(shí)現(xiàn)了VNC在低速網(wǎng)絡(luò)環(huán)境下的應(yīng)用,應(yīng)用程序共享使地理位置分散的用戶通過計(jì)算機(jī)網(wǎng)絡(luò)的連接共享某一應(yīng)用程序,在互聯(lián)網(wǎng)辦公、遠(yuǎn)程視頻會議系統(tǒng)、遠(yuǎn)程協(xié)助等方面有著不可替代的作用,具有相當(dāng)廣闊的發(fā)展前景。
衛(wèi)星通信系統(tǒng)將接入多個(gè)衛(wèi)星網(wǎng)絡(luò),速度高達(dá)100Mb/秒 美國亞利桑那州鳳凰城2022年10月19日 /美通社/ -- 霍尼韋爾(納斯達(dá)克代碼:HON)正在開發(fā)其新一代的JetWave衛(wèi)星通信系統(tǒng),將實(shí)現(xiàn)機(jī)上高速寬帶互聯(lián)...
關(guān)鍵字: 霍尼韋爾 衛(wèi)星通信系統(tǒng) 網(wǎng)絡(luò) 飛機(jī)李寧官方微博19日發(fā)布聲明稱,近日,網(wǎng)絡(luò)上出現(xiàn)對于“逐夢行”秀款部分產(chǎn)品的討論,李寧公司對此高度關(guān)注。此次相關(guān)產(chǎn)品的設(shè)計(jì)及造型給大家?guī)砹死Щ蠛鸵蓱],我們表示誠摯的歉意。本次“逐夢行”秀款產(chǎn)品的設(shè)計(jì)以“飛行”為主題,從飛...
關(guān)鍵字: 防護(hù) 網(wǎng)絡(luò)北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...
關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心東京2022年10月18日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國際物流有限公司(Nipp...
關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP