微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 虚拟网络计算在应用程序共享中的应用研究

虚拟网络计算在应用程序共享中的应用研究

时间:06-05 来源:电子技术应用 刘胜辉 舒友村 点击:

(1)假设其中一个成员矩形为arri,如果arri的长宽都小于32×32,则直接作为需重新发送的变化区域,保存到vnc_rgn中,否则对arri进行分析检测。
(2)首先定义一个新的矩形arrj(arri.left,0,arri.right,0),在arri中找到发生变化的行,记录该行的y坐标,记arrj.top=y,同时y+=16递增找到未发生变化行,暂时记arrj.bottom=y;然后从arrj底部y-=1进行比较,寻找内容发生变化的行,找到后将此行的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中寻找最先发生改变的列,找到后记录发生变化的区域的left、top坐标,arrn.left=x,arrn.top=y,分别对x、y轴方向循环遍历进行分析(记为x+=32,y+=32),如果此列屏幕像素数据改变,则x+=32继续比较;否则将记录arrn.right=x,对y轴方向进行同样的比较,y+=32,并记录arrn.bottom=y,最终得到需要发送的变化区域矩形坐标,并将此矩形保存到最终发送的矩形链表中,同时记录下arrk(arrn.right,arrn.top,arrj.right,arrn.bottom)、arrm(arrn.left,arrn.bottom,arrj.right,arrj.bottom),分别将arrk、arrm赋值给arrj进行类似分析检测,依次循环遍历整个arrj,直到结束。

通过此屏幕变化区域检测算法,对整个array_list链表的成员矩形进行遍历后得到需要重新发送的变化区域坐标信息。

4 实验结果

此改进方案已经应用于VcomOffice远程视频会议系统中。实验环境为:局域网内,中转服务器采用Linux操作系统,VNC Server和VNC Client端均采用Windows XP操作系统。

为了验证调用屏幕变化区域检测算法前后,VNCServer端对同一操作生成的数据量的变化,实验在100 M的局域网内进行,VNC Server采用的是VNC默认的tight编码[5],编码后经过zlib压缩[5]后发送给中转服务器,主要进行以下场景的测试:
(1)打开一个Word文档,剪切、复制、粘贴一段文字,图片保存到Word,在Word中输入一些内容;
(2)打开IE浏览器登录www.sina.com.cn主页;
(3)打开一个PDF文档后,拖动滚动条至底部;
(4)打开资源管理器,在屏幕上做拖动操作,之后将其最大化。
调用检测算法前后VNC Server发送数据量如图3所示。通过对比可以看到,在调用屏幕区域变化检测算法前后,VNC Server端发送的数据量都会有一定程度的下降。当执行相同的Word操作时,VNC Server端发送的数据量降低了12.21%,登录新浪网主页的过程中数据发送量只降低了4.82%,打开PDF文档并拖动滚动条至最底端的过程中,发送的数据总量降低了14.63%,在资源管理器的缩放过程中,数据发送量下降了22.19%。

测试结果表时,当VNC系统调用屏幕区域变化检测算法后,VNC Server端的发送数据量平均会有10%左右的下降。这在远程多点应用程序共享中,会大大减轻VNC Server端的发送压力,减少网络拥塞现象出现的概率,从而提高了应用程序共享时远程客户端响应速度。

本文介绍了在低速网络环境下远程视频会议系统中通过VNC协议进行应用程序共享时存在的问题,提出了一种新的改进方案,并结合新方案提出了一种新的屏幕区域变化检测算法。此外,对系统在调用新的屏幕区域变化检测算法前后进行了测试比较。该方案已经应用于大连浩视数字技术有限公司的VcomOffice远程视频会议系统。通过多个实验场景的测试,实验结果表明,采用新的屏幕变化区域检测算法后,VNC Server端的发送数据量出现了较大程度的下降,为低速网络环境下远程视频会议系统节省了网络带宽,提高了应用程序共享系统的实时性,从而实现了VNC在低速网络环境下的应用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top