蔣建春+鄧露+陳慧玲



【摘 要】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.
[責任編輯:楊玉潔]