<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 虛擬網(wǎng)絡計算在應用程序共享中的應用研究

          虛擬網(wǎng)絡計算在應用程序共享中的應用研究

          作者: 時間:2010-06-24 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/163022.htm

          3.2 屏幕變化檢測算法
          屏幕變化檢測算法性能的好壞將直接影響到VNC Server端發(fā)送的數(shù)據(jù)量,一種高效的屏幕檢測算法將大大降低傳輸?shù)臄?shù)據(jù)量,節(jié)省帶寬,從而提高系統(tǒng)的實時效果。VNC默認的屏幕變化檢測機制是通過消息鉤子機制獲取區(qū)域的坐標信息后,再將坐標區(qū)域的屏幕像素數(shù)據(jù)發(fā)送給各VNC Client。此檢測方法使得大量沒有發(fā)生改變的屏幕數(shù)據(jù)也被發(fā)送,增加了發(fā)送的數(shù)據(jù)量,在低速環(huán)境中容易造成網(wǎng)絡擁塞,影響系統(tǒng)的性能。因此,本文在此基礎上提出了一種新的屏幕變化區(qū)域檢測算法。
          VNC機制通過采用消息鉤子機制截獲系統(tǒng)屏幕重繪區(qū)域信息,將得到的區(qū)域拆分成一個矩形鏈表(遍歷鏈表)來存儲區(qū)域坐標信息,記為array_list,定義一個變化區(qū)域記為vnc_rgn,專門保存需要重新發(fā)送的區(qū)域位置信息,對array_list每個成員矩形調用此檢測算法進行變化區(qū)域檢測。具體的算法流程圖如圖2所示。

          (1)假設其中一個成員矩形為arri,如果arri的長寬都小于32×32,則直接作為需重新發(fā)送的變化區(qū)域,保存到vnc_rgn中,否則對arri進行分析檢測。
          (2)首先定義一個新的矩形arrj(arri.left,0,arri.right,0),在arri中找到發(fā)生變化的行,記錄該行的y坐標,記arrj.top=y,同時y+=16遞增找到未發(fā)生變化行,暫時記arrj.bottom=y;然后從arrj底部y-=1進行比較,尋找內容發(fā)生變化的行,找到后將此行的y坐標設置成arrj.bottom=y。至此確定了變化矩形arrj的最終的top、bottom坐標。同時將arri的值設為arri(arri.left,arrj.bottom,arri.right,arri.bottom)。在對arrj分析完畢后接著對arri遍歷分析直至結束。
          (3)確定矩形arrj后,對矩形arrj進行分析。首先定義一個矩形arrn(0,0,0,0),在arrj中尋找最先發(fā)生改變的列,找到后記錄發(fā)生變化的區(qū)域的left、top坐標,arrn.left=x,arrn.top=y,分別對x、y軸方向循環(huán)遍歷進行分析(記為x+=32,y+=32),如果此列屏幕像素數(shù)據(jù)改變,則x+=32繼續(xù)比較;否則將記錄arrn.right=x,對y軸方向進行同樣的比較,y+=32,并記錄arrn.bottom=y,最終得到需要發(fā)送的變化區(qū)域矩形坐標,并將此矩形保存到最終發(fā)送的矩形鏈表中,同時記錄下arrk(arrn.right,arrn.top,arrj.right,arrn.bottom)、arrm(arrn.left,arrn.bottom,arrj.right,arrj.bottom),分別將arrk、arrm賦值給arrj進行類似分析檢測,依次循環(huán)遍歷整個arrj,直到結束。
          通過此屏幕變化區(qū)域檢測算法,對整個array_list鏈表的成員矩形進行遍歷后得到需要重新發(fā)送的變化區(qū)域坐標信息。
          4 實驗結果
          此改進方案已經(jīng)于VcomOffice遠程視頻會議系統(tǒng)中。實驗環(huán)境為:局域網(wǎng)內,中轉服務器采用Linux操作系統(tǒng),VNC Server和VNC Client端均采用Windows XP操作系統(tǒng),具體的軟硬件配置如表1所示。

          為了驗證調用屏幕變化區(qū)域檢測算法前后,VNCServer端對同一操作生成的數(shù)據(jù)量的變化,實驗在100 M的局域網(wǎng)內進行,VNC Server采用的是VNC默認的tight編碼[5],編碼后經(jīng)過zlib壓縮[5]后發(fā)送給中轉服務器,主要進行以下場景的測試:
          (1)打開一個Word文檔,剪切、復制、粘貼一段文字,圖片保存到Word,在Word中輸入一些內容;
          (2)打開IE瀏覽器登錄www.sina.com.cn主頁;
          (3)打開一個PDF文檔后,拖動滾動條至底部;
          (4)打開資源管理器,在屏幕上做拖動操作,之后將其最大化。
          調用檢測算法前后VNC Server發(fā)送數(shù)據(jù)量如圖3所示。通過對比可以看到,在調用屏幕區(qū)域變化檢測算法前后,VNC Server端發(fā)送的數(shù)據(jù)量都會有一定程度的下降。當執(zhí)行相同的Word操作時,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%。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();