基于MirrorLink的VNC屏幕映射方法改进与实现

2016-07-12 12:23蒋建春邓露陈慧玲
科技视界 2016年6期

蒋建春+邓露+陈慧玲

【摘 要】MirrorLink是汽车行业里推出的唯一统一标准,旨在规范手机与车机互联,给用户带来方便实用的体验效果,但是MirrorLink的VNC在传输多媒体数据的时候帧率低,卡顿现象严重,且不支持语音控制,这严重影响了用户的体验效果。针对这个不足,课题组修改了VNC传输协议方法,设计出了一种新的多媒体传输方案。实验结果表明,VNC实时性有所增强,在多媒体传输中视频能够流畅播放,同时有效地降低了CPU利用率。

【关键词】MirrorLink;VNC;屏幕映射;多媒体传输

【Abstract】MirrorLink is the automotive industrys only uniform standard, it is designed to regulate the mobile phone and the

vehicle connecting, and give users a convenient and practical experience. But the frame rate is low in the VNC of MirrorLink in the transmission of multimedia data, and it cannot supports voice control, which will seriously impact the users experience.To modify this

deficiency, our research group changed the VNC transport protocol method into a new multimedia transmission program, we also input a voice control system in the VNC transport protocol. The results show that the function of VNC has been strengthen. Videos can be

played smoothly in the multimedia transmission,in addition,the CPU utilization was reduced, and the voice control function was

implemented successfully.

【Key words】MirrorLink; Vnc; Voice control; Screen mapping; Multimedia transmission

0 引言

屏幕映射属于一种新的显示方法,也就是说它能将完整的窗口界面通过网络,映射到另一台计算机的屏幕上,主要解决不同设备之间的互操作与资源共享问题。苹果公司最早提出的图形用户界面GUI (Graphic User Interface)为屏幕映射技术的产生和发展奠定了基础[1]。伴随着物联网的快速发展,车联网也呼之欲出,车机互联也逐步成为车联网研究的重要应用之一。

在车联网车载终端应用过程中,由于车载终端硬件设备更新换代较慢,部分功能不能满足发展的需要,迫切需要一种替代的功能更新方案,屏幕映射技术的出现解决了车载终端硬件功能不足的问题。将移动终端屏幕内容镜像到车载大屏幕,让我们可以利用移动终端的硬件与软件的强大功能,解决车载终端的不足,同时,利用车载终端的大屏幕显示移动终端的内容,不用看着移动终端屏幕,只需要用车载上的物理按键或语音命令就能控制手机,给驾乘人员带来更多的便利与舒适。目前屏幕映射主要有3种互联方案:

(1)MirrorLink。MirrorLink最大的优势是平台独立独立性和开放性,MirrorLink有更好的兼容性,除了iOS设备外,几乎所有的主流智能手机系统都能支持[2]。MirrorLink支持无线和有线连接,能够实现屏幕双向控制等。但是,MirrorLink也存在播放视频延时,不支持语音控制等缺陷。

(2)AirPlay。AirPlay拥有流畅清晰的画面,美中不足的是没法实现双向控制,支持的视频格式有限,连接不方便等缺点。

(3)Miracast。Miracast[2]的技术优势是其视频播放的流畅度,但是Miracast方案也有显著的缺点:无法双向控制、延迟明显、车机需要自带wifi、耗电现象严重等。

由于MirrorLink概念提出时间早且是唯一的行业内推出的统一标准,平台独立性与开放性,兼容性好等优点,目前大多数汽车厂商都采用此方案。课题组针对MirrorLink的不足,融合了Miracast在视频传输的优点,设计出了一套新的车机互联方案。

1 MirrorLink工作原理

MirrorLink是智能手机和车载系统之间连接的开放式行业标准,由全球车联盟(Car Connectivity Consortium,CCC)发起建立[3]。在MirrorLink的环境下,客服端与服务端的运行环境将完全一样,并通过车机屏幕播放移动终端界面,更主要的是车载终端可以通过触摸屏、按钮等去控制移动设备界面等。

1.1 MirrorLink协议架构

MirrorLink协议的组成结构如图1所示,它们分别是:

(1)连接协议,以IP(Internet Protocol)为基础的面向有线(USB)和无线 (WIFI)的连接,用于传输网络数据。

(2)UPnP服务协议,提供广播机制通知ML(MirrorLink)客服端服务端的状态。

(3)VNC协议,将ML服务端界面复制到客户端,客服端可以反馈控制信息到服务端。此协议是基于RFB(Remote Frame Buffer)协议,并提供了压缩技术。

(4)用于传输音频的协议,其中主要包括RTP(Real-time Transport Protocol),蓝牙的HFP(Hands-free Profile)和A2DP(Advanced Audio Distribution Profile),用于音频数据的传输。

(5)安全机制协议,用于MirrorLink的认证与保密[4]。

2 MirrorLink的VNC协议

VNC(Virtual Network Computer)架构实现了两个功能,一是将移动终端屏幕上的内容转移到客户端,屏幕上的拷贝操作可以通过RFB协议来复制移动端设备显示卡(Framebuffer 副本)中的内容,将其进过一定的处理(旋转,压缩,色彩转换等), 再传入到客户端的Framebuffer,从而在客户端的显示设备上能出现移动设备上的界面[3]。二是服务端被动的允许客户端控制它,客户端传送事件消息到服务端。

2.1 VNC的核心协议RFB协议

VNC协议是基于RFB协议的,RFB (远程帧缓冲)是一个用于远程访问图形用户接口的简单协议[5]。它是建立在TCP/IP传输协议基础之上的一个简单的图形界面传输协议。

2.1.1 显示协议

RFB显示协议原理可简单的归结为:把像素数据放在一个由 x,y 定位的矩形内,通过这些小矩形内的像素更新来完成整个帧缓存的更新,服务器每次只发送变化的矩形块。

2.1.2 输入协议

RFB客户端将用户通过触摸屏、按键、鼠标等I\O设备的输入作为事件请求发送至服务端。服务端接收消息后根据不同的输入事件执行相对应的逻辑操作,响应RFB客户端提出的事件请求。

2.1.3 像素与图形编码

RFB客户端和RFB服务端首次会话的时候将会协商具体的像素数据格式以及传输的编码方式。

像素数据格式指的是像素颜色值的表示方法,通常我们使用的是24位或者16位真彩色的像素格式。编码指的是矩形区域的像素数据通过什么形式在网络中传输。目前 RFB 中定义的编码类型有原始编码、 复制矩形编码、 二维行程(RRE)编码和,Hextile 编码,ZRLE编码[4]。可以新增编码方式对协议进行扩展。比如JPEG、MPEG等等。

通过对RFB协议的分析,RFB显示协议采用被动更新方式,将使画面有一定的延迟效果;特别在视频传输时,延迟效果极大。

3 VNC协议改进

对于VNC显示协议,服务端采用被动更新方式将会给画面带来延迟效果,本文将采用服务端主动更新方式;由于移动硬件设备的限制,压缩算法的缺陷等原因,导致了VNC在视频传输中,视频播放延迟非常大,在客户端看到的图像就如同幻灯片一样,无法给用户提供流畅视频图像[6]。与此同时在VNC环境下,手机与车机的画面是完全同步的,这样就使得在车载终端观看视频的时候,手机无法单独操控,因为操作手机,导致手机画面变化,车载终端也会同样跟着手机画面;这样会导致手机只是一台服务器,我们无法在视频传输的时候使用手机的功能,本文针对这种不足设计了一种新的多媒体传输方案。

3.1 新的多媒体传输方案

本文借鉴了Miracast在传输视频方面的优势,设计了一种针对车载智能终端与手机新的多媒体传输方案,如图2所示。VNC 采用服务器被动更新策略,客户端判断帧缓存有变化才向服务器申请帧缓存更新,这种模式下两条显示更新之间的间隔至少是客户端与服务器间网络的 RTT 时间,再加上计算帧缓存变化所需要的时间,显示更新就更慢了[7],为了不影响人机交互的实时性,本文采用服务器主动更新。即在正常模式下,VNC服务端采用主动更新策略,即服务端帧缓冲变化马上发送更新请求,减少不必要的交互过程;如果服务端捕获到屏幕快速变化或者是打开视频文件,VNC将切换到流媒体模式,VNC服务端将快速变换的图像通过H.264编码(如果是传输视频文件,此时将挂起屏幕映射功能,只压缩传输视频数据),然后通过RTP/RTCP协议传输到VNC客户端,客户端完成解码,将图像数据组装成图片显示(如果是视频文件将会直接调用视频播放器进行播放)。多媒体传输系统整体架构如图2所示。

4 功能对比与实验结果分析

为了验证方案的正确性,本文在一部GALAXY S3手机和一部NOTE 3手机上进行了测试,为了保证网络环境的一致性,本文在传统的VNC上引进了Wifi Direct技术,同时改进的VNC也采用了Wifi Direct技术。在正常模式下采用被动更新策略,通过监测客户端发送RfbFramebufferUpdateReques-t消息到客户端接收到RfbFramebuffer Update消息并绘出图片所需要的时间;在正常模式下采用主动更新策略,通过测量Server发出RfbFramebufferUpdate消息到客户端绘出图片所需时间,对此2种情况的实时性进行了统计,如图3实时性对比图所示。在流媒体模式下,由于VNC不支持视频传输,与本文方法无法进行对比,所以本文只对视频播放的流畅性和VNC Sever端CPU利用率进行了测试,如图4所示。

从图3中可以发现,VNC实时性不是很好,都在零点几秒,这对于实时性要求高的场合是无法满足要求的。本文设计的VNC普通模式就是针对这种实时性要求不高的场合,而且采用了主动更新策略使实时性平均大致提升了0.25秒,能够满足我们正常的需求。

VNC Server把图像数据(或视频文件)通过H.264压缩由RTP协议把实时数据传输到客户端,客户端在本地解码播放。通过实验观察,视频流畅性相当好,没有一点的卡顿现象,由图4可知CPU的负载也不高,大致在30%左右。

本文改进的VNC方法,在正常模式下,实时性得以提升,满足正常的需求;在流媒体模式下,视频播放流畅,到达了完美的播放效果。

5 结语

本文介绍了MirrorLink协议,详细介绍了VNC的RFB协议。针对车载智能终端与手机的多媒体传输方案,在分析了现有的方案基础上结合了Miracast视频传输的优势,本文设计了一种新的多媒体传输方案,然后在Android手机上实现了该方案。试验结果表明,在非视频传输的情况,采用VNC主动更新,可以提高一定的实时性;在视频传输的情况下,通过H.264编码采用RTP协议直接传输视频文件,有效地控制了CPU利用率,视频能够完美播放。

【参考文献】

[1]郭代,宴坚,王文江.新型屏幕共享系统设计与实现[J].计算机应用研究,2007, 24(6):299-301.

[2]赵国辉.车联方案哪家强?聊聊MirrorLink、CarPlay和Android Auto | oh!百科[EB/OL].http://www.qu55.com/qiche/6522.html.

[3]邱程.手机、车机互联_MirrorLink解析[EB/OL]. http://shuoke.autohome.com.cn/article/24184.html.

[4]张元文,陈玮.车载系统MirrorLink方案的研究[J].信息技术,2013(2):55-58.

[5]吴筱桉.VNC系统中RFB协议分析及视频播放性能改进[D].南开大学,2008.

[6]Deboosere L, De Wachter J, Simoens P, et al. Thin Client Computing Solutions in Low-and High-Motion Scenarios[C]//Networking and Services, 2007, ICNS. Third International Conference onIEEE, 2007: 38-38.

[7]李超.基于流媒体的Android远程桌面的设计与实现[D].广州:华南理工大学,2012.

[责任编辑:杨玉洁]