《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于微型立體影院的智能車載播放系統(tǒng)
基于微型立體影院的智能車載播放系統(tǒng)
來源:電子技術(shù)應(yīng)用2013年第7期
楊克領(lǐng)
河南商丘師范學(xué)院 計算機與信息技術(shù)學(xué)院, 河南 商丘476000
摘要: 提出基于微型立體影院的智能車載播放系統(tǒng)方案。采用QNX硬實時系統(tǒng)作為終端軟件平臺,利用分層邏輯構(gòu)建系統(tǒng)原型,降低模塊間的耦合性;引入FFMPEG解碼庫對多碼流立體視頻源進行同步實時解碼,滿足立體眼鏡的快速聚焦;設(shè)計基于GLES2.0的多碼流立體渲染模型,實現(xiàn)圖像幀的實時渲染和顯示。實驗表明,該方案能高效實現(xiàn)一個車載微型3D影院功能,進而能有效提升車輛的品牌競爭力。
中圖分類號: TP391
文獻標識碼: A
文章編號: 0258-7998(2013)07-0124-03
Vehicle smart player system based on the stereo minitheater
Yang Keling
Department of Computer and Information, Shangqiu Normal University, Shangqiu 476000, China
Abstract: A program of vehicle player system was proposed based on the Stereo Minitheater. The hardware real-time system of QNX was used to the terminal platform. Layer logic was used to build the system prototype, which reduced the coupling between modules. FFMPEG library was introduced to do a synchronized real-time decoding, to meet the fast focus of stereoscopic glasses. In order to achieve real-time rendering and display of image frames, a multi-stream stereoscopic rendering model was designed based on GLES 2.0, Experiments show that, this program not only improves the efficient implementation of the miniature 3D cinema function in the vehicle, but also effectively enhances the vehicle′s brand competitiveness.
Key words : vehicle entertainment; stereo theater; layer logic; stereoscopic glasses

    全球信息娛樂技術(shù)的快速發(fā)展以及現(xiàn)代消費娛樂對車載娛樂的沖擊和滲透,給汽車娛樂業(yè)帶了前所未有的機遇和挑戰(zhàn)。依靠傳統(tǒng)DVD播放機已很難滿足未來高端車系的娛樂需求,因此,集成高端消費娛樂電子產(chǎn)品的先進技術(shù)構(gòu)建車載娛樂系統(tǒng),以及實現(xiàn)高端便攜設(shè)備與車載娛樂系統(tǒng)互連等新型設(shè)計理念,將成為車載娛樂系統(tǒng)未來新的發(fā)展趨勢。為此,本研究采用當前先進的硬實時系統(tǒng)QNX為軟件平臺,提出一種新型的車載立體播放系統(tǒng)方案,以實現(xiàn)微型3D影院的車載化。該方案在提升汽車娛樂性的基礎(chǔ)上,對于提高汽車高端品味方面也具有極其重要的意義。

    娛樂系統(tǒng)作為區(qū)分所有車系品味高低的重要單元,乘客不僅能體驗到高品質(zhì)的視覺沖擊感,而且有助于減輕旅途疲勞。目前車載播放系統(tǒng)主要有以下3種模式:(1)完全采用DVD播放機進行音視頻解碼播放;(2)車載終端集成音視頻解碼芯片和存儲卡,實現(xiàn)硬解碼播放;(3)采用便攜設(shè)備與車載終端互連實現(xiàn)音視頻播放。傳統(tǒng)低中檔汽車內(nèi)部一般采用第一種模式構(gòu)建其娛樂系統(tǒng),由于傳輸?shù)囊粢曨l數(shù)據(jù)量龐大,極易造成視頻幀丟失和播放延時?,F(xiàn)代汽車播放系統(tǒng)設(shè)計突破傳統(tǒng)模式束縛,引進高性能音視頻解碼芯片實現(xiàn)網(wǎng)絡(luò)互連,使車載娛樂系統(tǒng)發(fā)生了質(zhì)的飛躍。2007年浙江大學(xué)的崔山在車載電腦DVD播放器系統(tǒng)軟件設(shè)計中[1],詳細闡述了傳統(tǒng)車載DVD播放系統(tǒng)的應(yīng)用現(xiàn)狀,并提出一種基于WinCE5.0的終端集成型DVD播放控制模塊,雖有效提高了音視頻播放質(zhì)量,但該系統(tǒng)平臺實時性較差。針對這些不足,2012年QNX軟件系統(tǒng)公司在互連汽車參考計劃一文中[2],前瞻性地提出便攜設(shè)備與車載終端互連的發(fā)展計劃,并為下一代車載娛樂系統(tǒng)設(shè)計了各種外圍接口,但該計劃成本龐大,仍處于評估和實驗階段。
     綜上,針對車載播放控制單元傳統(tǒng)應(yīng)用的問題,鑒于及現(xiàn)代應(yīng)用的混雜現(xiàn)狀,提出基于微型立體影院的智能車載播放系統(tǒng)架構(gòu)方案,采用分層邏輯和立體渲染模型的設(shè)計策略,不僅從系統(tǒng)原型和軟件建模方面進行了規(guī)范化的設(shè)計,而且引用成熟的開源庫進行解碼和渲染,有效降低了研發(fā)成本,提高了產(chǎn)品的市場競爭力。
1 系統(tǒng)分層邏輯架構(gòu)
    整個系統(tǒng)方案采用分層邏輯的設(shè)計策略,上層負責(zé)接口邏輯調(diào)度,下層負責(zé)接口功能實現(xiàn)。主要由解碼模塊、渲染模塊和人機交互模塊組成,模塊間以消息觸發(fā)方式實現(xiàn)通信邏輯。其核心處理流程如下:
    (1)解碼視頻流:調(diào)用FFMPEG庫函數(shù),打開源視頻流文件,根據(jù)頭信息判斷視頻流的有效性。若為可識別視頻流,以時間戳為單位實時讀取包數(shù)據(jù),并以國際規(guī)范組幀到緩存區(qū)。
    (2)渲染圖形幀:以幀為單位,采用GLES圖形渲染函數(shù)實時繪制左右視頻圖形幀數(shù)據(jù),并按時間戳顯示圖形到車載終端界面。
    (3)播放控制:用戶通過終端播放控制界面,觸發(fā)各功能按鈕指令,實現(xiàn)對整個播放系統(tǒng)的功能控制和狀態(tài)監(jiān)測。
    整套播放系統(tǒng)分層邏輯架構(gòu)原型如圖1所示。

    另外,該播放控制系統(tǒng)設(shè)計了專門的消息處理機制來協(xié)同播放控制指令和內(nèi)部消息,以保證系統(tǒng)消息的實時處理和用戶指令的快速響應(yīng)。消息處理機制如圖2所示。

    由于車載播放控制單元對軟件系統(tǒng)平臺的實時性和可靠性有較高的要求,本方案選用實時性在微秒級的QNX軟件系統(tǒng)平臺,其調(diào)度策略采用高優(yōu)先級搶占模式,確保任何時刻占用CPU都是優(yōu)先級最高的任務(wù)。同時,所有運行于該系統(tǒng)的進程都采用內(nèi)存空間保護策略,獨立于其他進程單獨執(zhí)行,進而保證一個進程的崩潰不會影響其他空間執(zhí)行的進程??梢?,選用的軟件系統(tǒng)平臺不僅以微秒級的延遲提高了視頻圖形幀渲染的實時性,而且充分利用現(xiàn)代新型技術(shù)來保證其內(nèi)核的穩(wěn)定性和安全性。
  綜合以上幾方向,該播放控制系統(tǒng)方案不僅從軟件平臺上保證了系統(tǒng)的實時性和可靠性,而且采用分層邏輯和渲染模型構(gòu)建系統(tǒng)原型,有效提升了整個系統(tǒng)的模塊獨立性。
2 系統(tǒng)功能模塊

 


    針對當前車載播放控制系統(tǒng)高昂的開發(fā)成本和較長的開發(fā)周期,本系統(tǒng)選用當前成熟的FFMPEG開源庫作為視頻源的解碼模塊,采用底層圖形渲染庫GLES完成視頻圖形幀的高效渲染。
2.1 視頻源解碼模塊
    視頻源解碼模塊作為整個播放控制系統(tǒng)的核心處理單元,主要負責(zé)解析已編碼壓縮的視頻源文件。解碼后的包數(shù)據(jù)以幀為單位保存到緩存區(qū),供后端圖形渲染模型實時提取繪制。其核心處理流程如下:
    (1)注冊所有容器格式和編解碼器類型;(2)打開視頻流源文件;(3)從文件中提取流信息;(4)窮舉所有流,查找其中的視頻流類型;(5)查找視頻流對應(yīng)的解碼器;(6)打開編解碼器,并為解碼幀分配內(nèi)存;(7)從碼流中循環(huán)提取幀數(shù)據(jù);(8)判斷圖形幀類型,并送入視頻解碼器;(9)解碼完后,釋放解碼器;    (10)關(guān)閉視頻流源文件。
    整個視頻流解碼邏輯的偽代碼如下:
  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();                 //尋找相應(yīng)的解碼器
         avcodec_open();                        //打開解碼器
         avcodec_alloc_frame();              //給視頻幀分配空間
         while(av_read_frame()>=0)                         //讀數(shù)據(jù)
         {
           if(stream_index==videoStream)                 //判斷流
      {
        avcodec_decode_video();                              //解碼
        if(frameFinished)
         {
        img_convert();                              //轉(zhuǎn)換圖像數(shù)據(jù)        SaveFrame();                           //保存數(shù)據(jù)
            }
       }
     av_free_packet(&packet);            //釋放分配給包的空間
           }
    av_free(pFrame);                     //釋放已分配的內(nèi)存
    avcodec_close(pCodecCtx);               //關(guān)閉編解碼器
    av_close_input_file(pFormatCtx);           //關(guān)閉視頻文件
}
    可見,系統(tǒng)視頻解碼邏輯裁剪了大部分冗余處理流程,有效避免了因解碼繁雜而造成的延時和丟幀現(xiàn)象,真正做到了解碼幀率可控的目的。另外,在設(shè)計早期即可通過幀率測試器充分論證圖形渲染效率的高低,為快速研發(fā)高性能車載視頻解碼器提供有力的技術(shù)保障。
2.2 視頻圖形渲染模型
    系統(tǒng)設(shè)計基于GLES2.0的立體渲染模型對視頻圖形幀進行實時渲染,主要功能邏輯模塊包括紋理處理、圖形渲染和視域設(shè)置,以完成圖形數(shù)據(jù)的預(yù)處理、視頻幀的渲染和圖形顯示域的設(shè)定。其核心處理流程如下:
    (1)開啟圖形渲染專用線程,并行渲染解碼圖形幀數(shù)據(jù);
    (2)初始化圖形庫相關(guān)參數(shù)并獲取渲染參數(shù);
    (3)不斷向立體渲染模型輸入圖形幀數(shù)據(jù),完成圖形的實時繪制;
    (4)收到結(jié)束指令后,退出渲染模型;
    (5)釋放已申請的所有內(nèi)存資源。
    由于3D立體視頻源包括多碼流圖形幀數(shù)據(jù),渲染模型根據(jù)源碼流頭信息確定分配的渲染模型個數(shù),每個模型以輸入的渲染參數(shù)組織圖形數(shù)據(jù),以同步的方式進行輪詢實時渲染,進而滿足3D眼鏡對多碼流視頻源的同步實時聚焦,單個模型邏輯結(jié)構(gòu)如圖3所示。

    從渲染邏輯模型可見,該設(shè)計理念以模塊的獨立性和復(fù)用性為基礎(chǔ),實時獲取當前播放器的各項參數(shù)信息,并根據(jù)當前系統(tǒng)屬性,傳遞最新參數(shù)到渲染容器,以保證用戶和系統(tǒng)消息的快速響應(yīng),并提高渲染容器對龐大圖形數(shù)據(jù)的處理效率。
    渲染模塊以GLES2.0為基礎(chǔ),融入實時邏輯設(shè)計理念,封裝了一個高效的立體渲染模型,把復(fù)雜的計算過程分解到GPU中,顯著提高了模塊的實時性和復(fù)用性。
3 實驗結(jié)果及評價
    本系統(tǒng)采用飛思卡爾車規(guī)級新型處理器i.MX6Q系列作為硬件平臺,該芯片技術(shù)參數(shù)為:1 GHz CPU主頻,1 GB&times;32 DDR3(400 MHz),32 MB 16 bit 并行NOR Flash,可擴充的NAND Flash接口,LVDS數(shù)字圖形輸出接口,并集成了基于GLES2.0的GPU圖形硬加速處理單元。軟件平臺選用加拿大哈曼公司開發(fā)的QNX硬實時操作系統(tǒng),并利用其最新的IDE6.5嵌入式開發(fā)套件進行邏輯設(shè)計和代碼測試。
    實驗采用德爾福集團公司某車型提供的車載信息娛樂終端系統(tǒng),集成了所研究的立體播放控制單元。立體播放控制單元作為整個娛樂系統(tǒng)終端的一個節(jié)點,乘客可通過佩戴特定立體眼鏡實現(xiàn)對3D視頻的欣賞。輸入的多碼流視頻源經(jīng)立體播放控制單元解碼、渲染、顯示等處理邏輯后,左右眼畫面同步疊加輸出。經(jīng)立體眼鏡過濾,左眼只能看到左放映畫面,右眼只能看到右放映畫面,這些畫面經(jīng)大腦綜合后,即可產(chǎn)生立體視覺。其界面顯示效果如圖4所示。

    本研究針對2D和3D兩類車載視頻播放單元進行實驗對比及社會調(diào)查分析,實驗結(jié)果如表1所示。當其他條件完全相同時,3D模塊播放幀率略低于2D模塊,但在人的視感范圍內(nèi),畫面質(zhì)量幾乎不受影響;在CPU占用率方面,3D模塊近似于2D模塊,對整個系統(tǒng)的負載不造成任何影響。另外,社會抽樣調(diào)查結(jié)果顯示,人們普遍青睞于3D的超炫視覺體驗,在條件許可的情況下,近80%的人更愿意配備3D播放控制單元。因此,所做研究和實驗不僅大膽改變傳統(tǒng)設(shè)計理念,而且以先進的立體科技為依托,為未來車載娛樂的發(fā)展提供了重要參考依據(jù)。
    在現(xiàn)代車載娛樂系統(tǒng)向立體化、集成化、智能化快速轉(zhuǎn)型的背景下,以探索現(xiàn)代高端汽車娛樂系統(tǒng)的高品質(zhì)、高科技和人性化為研究目標,設(shè)計了一套以微型立體影院為基礎(chǔ)的智能車載3D播放系統(tǒng)。采用以實時性和安全性著稱的QNX系統(tǒng)為軟件運行平臺,提出分層邏輯方案構(gòu)建系統(tǒng)原型;引入FFMPEG解碼庫對多碼流視頻源進行同步實時解碼;設(shè)計基于GLES2.0的多碼流渲染模型,實現(xiàn)圖形幀的實時渲染和顯示。下一步工作是豐富立體顯示模式,滿足更多3D片源格式。
參考文獻
[1] 崔山.車載電腦DVD播放器系統(tǒng)軟件設(shè)計[D].杭州:浙江大學(xué), 2007.
[2] QNX軟件系統(tǒng)公司. QNX互連汽車參考(CAR)計劃[EB/OL]. [2012-06]. http://www.qnx.com.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。