楊克領
(河南商丘師范學院 計算機與信息技術學院,河南 商丘476000)
全球信息娛樂技術的快速發(fā)展以及現(xiàn)代消費娛樂對車載娛樂的沖擊和滲透,給汽車娛樂業(yè)帶了前所未有的機遇和挑戰(zhàn)。依靠傳統(tǒng)DVD播放機已很難滿足未來高端車系的娛樂需求,因此,集成高端消費娛樂電子產(chǎn)品的先進技術構建車載娛樂系統(tǒng),以及實現(xiàn)高端便攜設備與車載娛樂系統(tǒng)互連等新型設計理念,將成為車載娛樂系統(tǒng)未來新的發(fā)展趨勢。為此,本研究采用當前先進的硬實時系統(tǒng)QNX為軟件平臺,提出一種新型的車載立體播放系統(tǒng)方案,以實現(xiàn)微型3D影院的車載化。該方案在提升汽車娛樂性的基礎上,對于提高汽車高端品味方面也具有極其重要的意義。
娛樂系統(tǒng)作為區(qū)分所有車系品味高低的重要單元,乘客不僅能體驗到高品質的視覺沖擊感,而且有助于減輕旅途疲勞。目前車載播放系統(tǒng)主要有以下3種模式:(1)完全采用DVD播放機進行音視頻解碼播放;(2)車載終端集成音視頻解碼芯片和存儲卡,實現(xiàn)硬解碼播放;(3)采用便攜設備與車載終端互連實現(xiàn)音視頻播放。傳統(tǒng)低中檔汽車內(nèi)部一般采用第一種模式構建其娛樂系統(tǒng),由于傳輸?shù)囊粢曨l數(shù)據(jù)量龐大,極易造成視頻幀丟失和播放延時。現(xiàn)代汽車播放系統(tǒng)設計突破傳統(tǒng)模式束縛,引進高性能音視頻解碼芯片實現(xiàn)網(wǎng)絡互連,使車載娛樂系統(tǒng)發(fā)生了質的飛躍。2007年浙江大學的崔山在車載電腦DVD播放器系統(tǒng)軟件設計中[1],詳細闡述了傳統(tǒng)車載DVD播放系統(tǒng)的應用現(xiàn)狀,并提出一種基于WinCE5.0的終端集成型DVD播放控制模塊,雖有效提高了音視頻播放質量,但該系統(tǒng)平臺實時性較差。針對這些不足,2012年QNX軟件系統(tǒng)公司在互連汽車參考計劃一文中[2],前瞻性地提出便攜設備與車載終端互連的發(fā)展計劃,并為下一代車載娛樂系統(tǒng)設計了各種外圍接口,但該計劃成本龐大,仍處于評估和實驗階段。
綜上,針對車載播放控制單元傳統(tǒng)應用的問題,鑒于及現(xiàn)代應用的混雜現(xiàn)狀,提出基于微型立體影院的智能車載播放系統(tǒng)架構方案,采用分層邏輯和立體渲染模型的設計策略,不僅從系統(tǒng)原型和軟件建模方面進行了規(guī)范化的設計,而且引用成熟的開源庫進行解碼和渲染,有效降低了研發(fā)成本,提高了產(chǎn)品的市場競爭力。
整個系統(tǒng)方案采用分層邏輯的設計策略,上層負責接口邏輯調度,下層負責接口功能實現(xiàn)。主要由解碼模塊、渲染模塊和人機交互模塊組成,模塊間以消息觸發(fā)方式實現(xiàn)通信邏輯。其核心處理流程如下:
(1)解碼視頻流:調用FFMPEG庫函數(shù),打開源視頻流文件,根據(jù)頭信息判斷視頻流的有效性。若為可識別視頻流,以時間戳為單位實時讀取包數(shù)據(jù),并以國際規(guī)范組幀到緩存區(qū)。
(2)渲染圖形幀:以幀為單位,采用 GLES圖形渲染函數(shù)實時繪制左右視頻圖形幀數(shù)據(jù),并按時間戳顯示圖形到車載終端界面。
(3)播放控制:用戶通過終端播放控制界面,觸發(fā)各功能按鈕指令,實現(xiàn)對整個播放系統(tǒng)的功能控制和狀態(tài)監(jiān)測。
整套播放系統(tǒng)分層邏輯架構原型如圖1所示。
圖1 系統(tǒng)分層架構原型圖
另外,該播放控制系統(tǒng)設計了專門的消息處理機制來協(xié)同播放控制指令和內(nèi)部消息,以保證系統(tǒng)消息的實時處理和用戶指令的快速響應。消息處理機制如圖2所示。
由于車載播放控制單元對軟件系統(tǒng)平臺的實時性和可靠性有較高的要求,本方案選用實時性在微秒級的QNX軟件系統(tǒng)平臺,其調度策略采用高優(yōu)先級搶占模式,確保任何時刻占用CPU都是優(yōu)先級最高的任務。同時,所有運行于該系統(tǒng)的進程都采用內(nèi)存空間保護策略,獨立于其他進程單獨執(zhí)行,進而保證一個進程的崩潰不會影響其他空間執(zhí)行的進程??梢?,選用的軟件系統(tǒng)平臺不僅以微秒級的延遲提高了視頻圖形幀渲染的實時性,而且充分利用現(xiàn)代新型技術來保證其內(nèi)核的穩(wěn)定性和安全性。
圖2 消息處理機制
綜合以上幾方向,該播放控制系統(tǒng)方案不僅從軟件平臺上保證了系統(tǒng)的實時性和可靠性,而且采用分層邏輯和渲染模型構建系統(tǒng)原型,有效提升了整個系統(tǒng)的模塊獨立性。
針對當前車載播放控制系統(tǒng)高昂的開發(fā)成本和較長的開發(fā)周期,本系統(tǒng)選用當前成熟的FFMPEG開源庫作為視頻源的解碼模塊,采用底層圖形渲染庫GLES完成視頻圖形幀的高效渲染。
視頻源解碼模塊作為整個播放控制系統(tǒng)的核心處理單元,主要負責解析已編碼壓縮的視頻源文件。解碼后的包數(shù)據(jù)以幀為單位保存到緩存區(qū),供后端圖形渲染模型實時提取繪制。其核心處理流程如下:
(1)注冊所有容器格式和編解碼器類型;(2)打開視頻流源文件;(3)從文件中提取流信息;(4)窮舉所有流,查找其中的視頻流類型;(5)查找視頻流對應的解碼器;(6)打開編解碼器,并為解碼幀分配內(nèi)存;(7)從碼流中循環(huán)提取幀數(shù)據(jù);(8)判斷圖形幀類型,并送入視頻解碼器;(9)解碼完后,釋放解碼器;(10)關閉視頻流源文件。
整個視頻流解碼邏輯的偽代碼如下:
可見,系統(tǒng)視頻解碼邏輯裁剪了大部分冗余處理流程,有效避免了因解碼繁雜而造成的延時和丟幀現(xiàn)象,真正做到了解碼幀率可控的目的。另外,在設計早期即可通過幀率測試器充分論證圖形渲染效率的高低,為快速研發(fā)高性能車載視頻解碼器提供有力的技術保障。
系統(tǒng)設計基于GLES2.0的立體渲染模型對視頻圖形幀進行實時渲染,主要功能邏輯模塊包括紋理處理、圖形渲染和視域設置,以完成圖形數(shù)據(jù)的預處理、視頻幀的渲染和圖形顯示域的設定。其核心處理流程如下:
(1)開啟圖形渲染專用線程,并行渲染解碼圖形幀數(shù)據(jù);
(2)初始化圖形庫相關參數(shù)并獲取渲染參數(shù);
(3)不斷向立體渲染模型輸入圖形幀數(shù)據(jù),完成圖形的實時繪制;
(4)收到結束指令后,退出渲染模型;
(5)釋放已申請的所有內(nèi)存資源。
由于3D立體視頻源包括多碼流圖形幀數(shù)據(jù),渲染模型根據(jù)源碼流頭信息確定分配的渲染模型個數(shù),每個模型以輸入的渲染參數(shù)組織圖形數(shù)據(jù),以同步的方式進行輪詢實時渲染,進而滿足3D眼鏡對多碼流視頻源的同步實時聚焦,單個模型邏輯結構如圖3所示。
圖3 立體渲染邏輯模型
從渲染邏輯模型可見,該設計理念以模塊的獨立性和復用性為基礎,實時獲取當前播放器的各項參數(shù)信息,并根據(jù)當前系統(tǒng)屬性,傳遞最新參數(shù)到渲染容器,以保證用戶和系統(tǒng)消息的快速響應,并提高渲染容器對龐大圖形數(shù)據(jù)的處理效率。
渲染模塊以GLES2.0為基礎,融入實時邏輯設計理念,封裝了一個高效的立體渲染模型,把復雜的計算過程分解到GPU中,顯著提高了模塊的實時性和復用性。
本系統(tǒng)采用飛思卡爾車規(guī)級新型處理器i.MX6Q系列作為硬件平臺,該芯片技術參數(shù)為:1 GHz CPU主頻,1 GB×32 DDR3(400 MHz),32 MB 16 bit 并行 NOR Flash,可擴充的NAND Flash接口,LVDS數(shù)字圖形輸出接口,并集成了基于GLES2.0的GPU圖形硬加速處理單元。軟件平臺選用加拿大哈曼公司開發(fā)的QNX硬實時操作系統(tǒng),并利用其最新的IDE6.5嵌入式開發(fā)套件進行邏輯設計和代碼測試。
實驗采用德爾福集團公司某車型提供的車載信息娛樂終端系統(tǒng),集成了所研究的立體播放控制單元。立體播放控制單元作為整個娛樂系統(tǒng)終端的一個節(jié)點,乘客可通過佩戴特定立體眼鏡實現(xiàn)對3D視頻的欣賞。輸入的多碼流視頻源經(jīng)立體播放控制單元解碼、渲染、顯示等處理邏輯后,左右眼畫面同步疊加輸出。經(jīng)立體眼鏡過濾,左眼只能看到左放映畫面,右眼只能看到右放映畫面,這些畫面經(jīng)大腦綜合后,即可產(chǎn)生立體視覺。其界面顯示效果如圖4所示。
圖4 3D左右視頻播放效果圖
表1 2D與3D播放模塊性能指標對比
本研究針對2D和3D兩類車載視頻播放單元進行實驗對比及社會調查分析,實驗結果如表1所示。當其他條件完全相同時,3D模塊播放幀率略低于2D模塊,但在人的視感范圍內(nèi),畫面質量幾乎不受影響;在CPU占用率方面,3D模塊近似于2D模塊,對整個系統(tǒng)的負載不造成任何影響。另外,社會抽樣調查結果顯示,人們普遍青睞于3D的超炫視覺體驗,在條件許可的情況下,近80%的人更愿意配備3D播放控制單元。因此,所做研究和實驗不僅大膽改變傳統(tǒng)設計理念,而且以先進的立體科技為依托,為未來車載娛樂的發(fā)展提供了重要參考依據(jù)。
在現(xiàn)代車載娛樂系統(tǒng)向立體化、集成化、智能化快速轉型的背景下,以探索現(xiàn)代高端汽車娛樂系統(tǒng)的高品質、高科技和人性化為研究目標,設計了一套以微型立體影院為基礎的智能車載3D播放系統(tǒng)。采用以實時性和安全性著稱的QNX系統(tǒng)為軟件運行平臺,提出分層邏輯方案構建系統(tǒng)原型;引入FFMPEG解碼庫對多碼流視頻源進行同步實時解碼;設計基于GLES2.0的多碼流渲染模型,實現(xiàn)圖形幀的實時渲染和顯示。下一步工作是豐富立體顯示模式,滿足更多3D片源格式。
[1]崔山.車載電腦DVD播放器系統(tǒng)軟件設計[D].杭州∶浙江大學,2007.
[2]QNX軟件系統(tǒng)公司.QNX互連汽車參考(CAR)計劃[EB/OL].[2012-06].http∶//www.qnx.com.