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