基于ARM平台交互式演示系统的设计与实现
,实时更新模块负责监控共享内容是否发生了变化,如果发生了,则只发生发生内容改变的矩形区域信息给演示终端,从而达到节约带宽的目的。
智能遥控终端为基于ARM平台的交互式演示系统增添了远程控制的优点,从而可以实现远程控制PC端中的PPT翻页等行为,由于只需安装一个APP软件就可以将Android/Wind ows phone手机变成一个远程遥控端,实现远程控制,因而使用非常便捷。
2.2 RFB协议的改进
RFB是一个远程图形用户的简单协议,由于工作在帧缓存级别上,故可用于所有的窗口系统,目前不少屏幕共享软件就采用该协议,如VNC,但由于RFB协议没有对应用场景进行优化,因此存在占用带宽较大的缺点。另一方面,由于在屏幕共享过程中大部分场景主要是文字、图片的内容共享。
针对传统RFB协议占用带宽大的问题,提出一种根据针对文字、图片内容共享的更新机制,其更新思想为,仅同步内容已发生变化的区域,具体的说,就是通过检测前一帧图像数据与当前帧数据的梯度变化信息,找出需要更新的数据,再将需要更新的区域内容传递给对端。区域更新算法如下:
函数ContentUpdate通过检测前后两帧图片各相素点的梯度变化情况,当梯度变化大于指定阈值时,说明内容发生了变化,则通过record函数记录像素点的位置信息,并将需要同步的内容发送给对端,即演示终端。
2.3 演示终端的实现
考虑到成本,选用树莓派作为演示终端的硬件平台,树莓派是由英国树莓派基金会所开发,目的以低价硬件及自由软件刺激在学校的基本的电脑科学教育,该平台销售价格仅为35美元,却拥有ARM1176JZF-S核心(ARM11系列),配有视频输出RCA视频,支持PAL和NTSC制式,支持HDMI(1.3和1.4),分辨率为640 x 350至1920 x 1200支持PAL和NTSC制式,可以方便的与投影机、显示器、电视机等图像显示设备连接,下图3为演示终端硬件连接图。
如图3所示,演示终端支持HDMI接口,也可通过转换器将HDMI转为VGA接口,以向下兼容。平台运行Linux2.6.30内核,布置非常简单,仅需通过替换SD卡上的内核文件即可达到升级系统的目的;
演示终端负责的主要功能包括:1)信息交互模块,接受局域网内服务器的请求,通过三次握手建立TCP/IP连接,验证服务器发送过来的RFB协议版本号等信息;2)数据解析模块,接受服务器端发送过来的屏幕帧缓冲的更新消息,将得到的消息进行解码;3)实时更新模块,把解码后的数据送到显示缓存,还原并在显示设备上显示服务器的桌面信息;4)更新请求模块,更具配置客户端主动请求更新,其具体流程图如图4所示。
2.4 基于PC平台内容共享端的实现
基于PC平台内容共享端采用跨平台设计,其软件架构图如图4所示。
由于整个软件构建在QT平台之上,因此不需要更改代码,仅需要重新编译即可支持包括Windows、Linux在内的多个平台,其中各个模块的功能描述如下:1)信息交互模块:这个模块主要负责处理与演示终端建立连接、数据的发送接受、终止连接等,以及相关信息的验证;2)图像捕捉模块:这个模块主要负责捕捉桌面图像,并把图像传给图像处理模块;3)图像处理模块:这个模块的主要功能是把屏幕图像信息进行压缩编码处理,然后把信息传给信息交互模块;4)实时更新模块:通过设定计时器定时获取屏幕的信息进行处理,每隔一定时间检查有没有更新,如果有更新则把更新区域通过图像处理模块处理后再传送给信息交互模块;5)网络通信模块:这个模块主要完成RFB协议中的网络连接部分工作;6)远程控制模块:连接建立后,手机控制终端通过按钮控制PPT翻页。
2.5 智能遥控终端的实现
考虑到目前智能手机的广泛使用以及远程控制的实际需求,我们设计了一个APP软件,该软件目前支持Android及Windows phone平台,该软件主要包括界面、远程连接模块两部分,该软件具有自动发现演示终端的功能,能够自动检测到在同一局域网内的正在运行内容共享端,当检测到有多个共享端运行时,可根据用户的输入进行选择,并与之建立连接,从而达到远程控制的目的。
3 系统测试结果
3.1 测试环境准备
为更好的说明本系统的演示效果,本文设计了三组实验进行测试:1)演示功能测试,包括word文档、ppt文档的内容共享效果测试;2)手机远程控制功能测试;3)与目前现有屏幕共享软件的性能比较测试。
具体测试环境如下:54M无线路由器一台,用于搭建无线局域网,用于屏幕内容分享演示的笔记本两台,均采用Windows平台、1280x800的屏幕分辨率,通过WiFi信号连入同一个网络;智能手机一台,上面安装了远程控制端APP。
3.2 功能测试及结果
根据实验计划,分别测试了word文档、ppt文档的演示效果及手
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)