杨亮,宋喜佳,邓春健
(电子科技大学 中山学院,广东 中山 528402)
在近年来随着科技的快速发展以及智能设备的普及,人们工作生活中的多媒体设备已经从传统的以个人电脑和电视机为主,转变成桌面电脑、智能手机、平板电脑和电视机共同存在[1-2]。越来越多的电子设备已摆脱了“有线”的制约,能够通过无线的方式实现互联及信息传递,然而在传统的教学课堂及办公会议等需要进行演示及内容分享的场合,屏与屏之间的信息交互还是采用有线的方式进行连接,演讲者通常需要坐在特定的位置以方便通过线缆与投影设备相连,如果有其他演讲者需要使用投影设备,则经常需要换位置重新连接投影设备才能完成演讲者的切换,另一方面现有一些成熟的屏幕内容共享系统,例如微软的远程桌面协议、x系统[3]、虚拟网络计算[4],主要针对PC机与PC机之间的屏幕共享,硬件成本较高。
针对以上问题,文中提出了一种基于ARM平台交互式演示系统的设计方法与具体实现,该系统由基于ARM平台的演示终端、基于PC平台内容共享端及智能遥控终端三部分组成,其中演示终端基于ARM平台,通过HDMI或VGA接口与投影仪等显示设备相连接;基于PC平台内容共享端采用多线程并发设计,将视频的接收、解码、显示分线程独立处理,在提高程序的健壮性的同时并降低了程序的耦合性,智能遥控终端则是一个运行在智能手机平台的应用软件,能够通过蓝牙与PC机实现互联,从而实现远程控的功能,以达到摆脱线缆束缚、降低成本、提高画质的目的。
本系统由基于ARM平台的演示终端、基于PC平台内容共享端及智能遥控终端三部分组成,其中演示终端通过WiFi网络与内容共享端相连,从而彻底摆脱了“线缆”的束缚,其系统架构图如图1所示。
图1 系统网络架构图Fig.1 The system architecture
为降低系统运行成本,演示终端采用的就是带图形加速功能的嵌入式多媒体应用处理器BCM2835作为演示终端的主控芯片,上面搭载嵌入式Linux操作系统,主要完成内容的接收、解码、显示等功能,能够通过hdmi、DVI、VGA等多种接口连接智能电视、液晶显示器等屏幕。另一方面,基于PC平台内容共享端采用跨平台设计,整个软件构建在QT平台之上,借助QT平台良好的跨平台特性,通过捕获屏幕,并将内容通过改进的RFB协议发送给演示终端,从而达到屏幕共享的目的。
另一方面,为方便用户远程控制需要分享的内容,本系统提供了一个支持Android/Windows Phone平台的远程软件,通过在智能手机上安装该,将智能手机变成了一个名副其实的“电子教鞭”,从而达到远程控制、翻页等功能。
基于ARM平台的交互式演示系统主要分为3个部分:基于ARM平台的演示终端、基于PC平台内容共享端、智能遥控终端。
1)其中的基于PC平台内容共享端是整个系统的核心,所有的数据交互都是通过这个服务实现的,换句话说这个服务器也就是整个系统的核心大脑,它负责捕捉和封装PC的桌面图像和发送帧缓冲刷新。
2)基于ARM平台的演示终端采用改进后的RFB协议来接收帧缓冲更新投影机的桌面图像,通过对帧缓冲数据进行解码再经过图像显示模块把图像显示出来。
3)智能遥控终端通过无线局域网与运行在PC平台的内容共享端进行交互,共享端收到指令后,能够实现ppt翻页、全屏等功能。
图2 整体软件架构设计Fig.2 High level design of software
图2 所示是系统主要的两大块内容和其内部的详细模块结构图,从图中可以看出每个实体部分所包含的子模块和子模块的负责的功能。
演示终端与基于PC平台的内容共享端通过信息交互模块采用RFB协议实现互联互通,内容共享端首先需要发连接请求到演示终端,双方进行协议交互验证后,连接成功后,基于PC平台内容共享端通过图像捕捉模块来获取窗口界面信息,并经过图像编码后发送到演示终端,演示终端接收到数据后通过数据解析模块进行图像解码,调用调色板等操作,并将解码后的图像信息通过图像显示模块显示在大屏幕上,为节约带宽,实时更新模块负责监控共享内容是否发生了变化,如果发生了,则只发生发生内容改变的矩形区域信息给演示终端,从而达到节约带宽的目的。
智能遥控终端为基于ARM平台的交互式演示系统增添了远程控制的优点,从而可以实现远程控制PC端中的PPT翻页等行为,由于只需安装一个APP软件就可以将Android/Windows phone手机变成一个远程遥控端,实现远程控制,因而使用非常便捷。
RFB是一个远程图形用户的简单协议,由于工作在帧缓存级别上,故可用于所有的窗口系统,目前不少屏幕共享软件就采用该协议,如VNC,但由于RFB协议没有对应用场景进行优化,因此存在占用带宽较大的缺点。另一方面,由于在屏幕共享过程中大部分场景主要是文字、图片的内容共享。
针对传统RFB协议占用带宽大的问题,提出一种根据针对文字、图片内容共享的更新机制,其更新思想为,仅同步内容已发生变化的区域,具体的说,就是通过检测前一帧图像数据与当前帧数据的梯度变化信息,找出需要更新的数据,再将需要更新的区域内容传递给对端。区域更新算法如下:
Function ContentUpdate()
while i<Image.size
if compareColor(PreImage,Current,i) > threshold
record(UpdateZone,i);
else
i++;
end
end
SyncContent(UpdateZone);
end
函数ContentUpdate通过检测前后两帧图片各相素点的梯度变化情况,当梯度变化大于指定阈值时,说明内容发生了变化,则通过record函数记录像素点的位置信息,并将需要同步的内容发送给对端,即演示终端。
考虑到成本,选用树莓派作为演示终端的硬件平台,树莓派是由英国树莓派基金会所开发,目的以低价硬件及自由软件刺激在学校的基本的电脑科学教育,该平台销售价格仅为 35美元,却拥有 ARM1176JZF-S核心(ARM11系列),配有视频输出RCA视频,支持PAL和NTSC制式,支持HDMI(1.3和1.4),分辨率为 640 x 350至 1920 x 1200支持 PAL和NTSC制式,可以方便的与投影机、显示器、电视机等图像显示设备连接,下图3为演示终端硬件连接图。
图3 基于ARM平台的演示终端硬件示意图Fig.3 The schematic diagram of demo terminal based on ARM platform
如图3所示,演示终端支持HDMI接口,也可通过转换器将HDMI转为VGA接口,以向下兼容。平台运行Linux 2.6.30内核,布置非常简单,仅需通过替换SD卡上的内核文件即可达到升级系统的目的;
演示终端负责的主要功能包括:1)信息交互模块,接受局域网内服务器的请求,通过三次握手建立TCP/IP连接,验证服务器发送过来的RFB协议版本号等信息;2)数据解析模块,接受服务器端发送过来的屏幕帧缓冲的更新消息,将得到的消息进行解码;3)实时更新模块,把解码后的数据送到显示缓存,还原并在显示设备上显示服务器的桌面信息;4)更新请求模块,更具配置客户端主动请求更新,其具体流程图如图4所示。
基于PC平台内容共享端采用跨平台设计,其软件架构图如图4所示。
图4 基于PC平台内容共享端软件架构图Fig.4 The software architecture based on PCsharing platform
由于整个软件构建在QT平台之上,因此不需要更改代码,仅需要重新编译即可支持包括Windows、Linux在内的多个平台,其中各个模块的功能描述如下:1)信息交互模块:这个模块主要负责处理与演示终端建立连接、数据的发送接受、终止连接等,以及相关信息的验证;2)图像捕捉模块:这个模块主要负责捕捉桌面图像,并把图像传给图像处理模块;3)图像处理模块:这个模块的主要功能是把屏幕图像信息进行压缩编码处理,然后把信息传给信息交互模块;4)实时更新模块:通过设定计时器定时获取屏幕的信息进行处理,每隔一定时间检查有没有更新,如果有更新则把更新区域通过图像处理模块处理后再传送给信息交互模块;5)网络通信模块:这个模块主要完成RFB协议中的网络连接部分工作;6)远程控制模块:连接建立后,手机控制终端通过按钮控制PPT翻页;
考虑到目前智能手机的广泛使用以及远程控制的实际需求,我们设计了一个APP软件,该软件目前支持Android及Windows phone平台,该软件主要包括界面、远程连接模块两部分,该软件具有自动发现演示终端的功能,能够自动检测到在同一局域网内的正在运行内容共享端,当检测到有多个共享端运行时,可根据用户的输入进行选择,并与之建立连接,从而达到远程控制的目的。
为更好的说明本系统的演示效果,本文设计了三组实验进行测试:1)演示功能测试,包括word文档、ppt文档的内容共享效果测试;2)手机远程控制功能测试;3)与目前现有屏幕共享软件的性能比较测试。
具体测试环境如下:54M无线路由器一台,用于搭建无线局域网,用于屏幕内容分享演示的笔记本两台,均采用Windows平台、1280x800的屏幕分辨率,通过WiFi信号连入同一个网络;智能手机一台,上面安装了远程控制端APP。
根据实验计划,分别测试了word文档、ppt文档的演示效果及手机远程控制功能,其测试流程如下:
1)打开基于ARM平台的演示终端,并通过VGA接口与显示器相连,同时演示终端通过tcp/ip网络与无线路由器A相连,并在显示器上显示演示终端目前获取的动态IP地址。
2)笔记本运行内容共享端软件,并输入演示终端的IP地址
3)分别运行word及ppt文档,检测与演示终端相连显示器上的内容是否与笔记本上的内容一致。
4)在手机上运行远程控制软件,执行翻页功能,观察执行效果。
其测试结果分别如图5、图6、图7所示。图中树莓派通过hdmi转VGA接口与液晶显示器相连接,笔记本通过网络将屏幕上的内容共享至树莓派连接的显示器上。
图5 word文档共享测试效果图Fig.5 Test result of word sharing
图6 PPT共享测试效果图Fig.6 Test result of ppt sharing
为有效评估在各个应用场景下各软件带宽占用率的不同,测试内容分为文字为主和以视频播放为主的屏幕内容共享[6-8],为保证测试结果的可比性,测试时采用同一个路由器,具体测试用例描述如下
表1 与现有屏幕共享软件的性能比较Tab.1 Comparison of performance with existing screen-shared software
测试结果表明:该交互式演示系统能够彻底摆脱线缆的束缚,实现方便快捷的内容共享,与传统屏幕共享软件相比,具有延时小的优点。
本文详细介绍了一种基于ARM平台交互式演示系统的设计方法。该系统使用户彻底摆脱了线缆的束缚,能够在较低的成本下通过无线网络无缝的将需要共享的内容投射到指定的屏幕如液晶电视、投影仪等显示设备。实验表明,具有使用方便、成本低、占用带宽小、实时性高的优点,能够满足日常会议等场合内容共享的需求,具有一定的应用前景与推广价值。
[1]杨红生,田地,王丰贵,等.基于 Hook和轮询检测机制的屏幕共享技术[J].计算机工程与应用,2009,45(5):29-31.YANG Hong-sheng,TIAN Di,WANG Feng-gui,et al.Sharing technology based on hook and polling detection[J].Computer Engineering and Applications,2009,45(5):29-31.
[2]张磊.无线传屏系统的研究与实现[D].成都:电子科技大学,2013.
[3]Scheifler R W,Gettys J.The X Window System[J].ACM Transactions on Graphics,1986,5(2):79-109.
[4]Richardson T,Stafford-Fraser Q, Wood K R,et al.Virtual Network Computing[J].IEEE Internet Computing,1998,2(1):33-38.
[5]吴燕燕,贺锋涛.基于 ARM9平台上 Qt/Embedded的移植与开发[J].液晶与显示,2013,28(2):261-265.WU Yan-yan,HE Feng-tao.Qt/Embedded transplantation and development based on ARM9 platform[J].Chinese Journal of Liquid Crystals and Displays,2013,28(2):261-265.
[6]杨亮,邓春健,宋喜佳.一种基于嵌入式平台屏幕内容分享系统的设计与实现[J].液晶与显示,2014,29(6):69-74.YANG Liang,DENG Chun-jian,SONG Xi-jia.Design and implementation of a screen sharing system based on[J].Chinese Journal of Liquid Crystals and Displays,2014,29(6):69-74.
[7]贾佳.基于LabVIEW的PCI数据采集系统设计[J].工业仪表与自动化装置,2012(6):69-71.JIA Jia.Design of PCI data acquisition system based on LabVIEW[J].Industrial Instrumentation& Automation ,2012(6):69-71.
[8]阳建华,郑莹娜,旷雪梅,等.基于PCI-1220U的电动助力转向器性能测试系统研究 [J].工业仪表与自动化装置,2013(2):22-26.YANG Jian-hua,ZHENG Ying-na,KUANG Xue-mei,et al.Research on performance test of electric power steering system based on PCI-1220U[J].Industrial Instrumentation&Automation,2013(2):22-26.