《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于微型立體影院的智能車載播放系統(tǒng)
基于微型立體影院的智能車載播放系統(tǒng)
來(lái)源:電子技術(shù)應(yīng)用2013年第7期
楊克領(lǐng)
河南商丘師范學(xué)院 計(jì)算機(jī)與信息技術(shù)學(xué)院, 河南 商丘476000
摘要: 提出基于微型立體影院的智能車載播放系統(tǒng)方案。采用QNX硬實(shí)時(shí)系統(tǒng)作為終端軟件平臺(tái),利用分層邏輯構(gòu)建系統(tǒng)原型,降低模塊間的耦合性;引入FFMPEG解碼庫(kù)對(duì)多碼流立體視頻源進(jìn)行同步實(shí)時(shí)解碼,滿足立體眼鏡的快速聚焦;設(shè)計(jì)基于GLES2.0的多碼流立體渲染模型,實(shí)現(xiàn)圖像幀的實(shí)時(shí)渲染和顯示。實(shí)驗(yàn)表明,該方案能高效實(shí)現(xiàn)一個(gè)車載微型3D影院功能,進(jìn)而能有效提升車輛的品牌競(jìng)爭(zhēng)力。
中圖分類號(hào): TP391
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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)代消費(fèi)娛樂對(duì)車載娛樂的沖擊和滲透,給汽車娛樂業(yè)帶了前所未有的機(jī)遇和挑戰(zhàn)。依靠傳統(tǒng)DVD播放機(jī)已很難滿足未來(lái)高端車系的娛樂需求,因此,集成高端消費(fèi)娛樂電子產(chǎn)品的先進(jìn)技術(shù)構(gòu)建車載娛樂系統(tǒng),以及實(shí)現(xiàn)高端便攜設(shè)備與車載娛樂系統(tǒng)互連等新型設(shè)計(jì)理念,將成為車載娛樂系統(tǒng)未來(lái)新的發(fā)展趨勢(shì)。為此,本研究采用當(dāng)前先進(jìn)的硬實(shí)時(shí)系統(tǒng)QNX為軟件平臺(tái),提出一種新型的車載立體播放系統(tǒng)方案,以實(shí)現(xiàn)微型3D影院的車載化。該方案在提升汽車娛樂性的基礎(chǔ)上,對(duì)于提高汽車高端品味方面也具有極其重要的意義。

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

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

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

 


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

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

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

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