嵌入式AU1200無線車載終端播放器設計實現(xiàn)
(1)MAI:是一個流媒體的架構(gòu),用于對多媒體的管理。MAI由視頻解碼的元素庫構(gòu)成,包括用于多媒體文件的讀取解析、解復用、解碼等工作的元素庫。MAI Engine會接收由輸入設備輸入的媒體信息,根據(jù)多媒體文件的類型連接MAI相應的解碼算法文件處理該媒體流,并將其輸出到視頻或音頻設備。MAIEngine對媒體流的控制主要包括以下幾個方面:
①預覽媒體流以確定格式;
②載入并連接所需的各獨立元素用于對媒體流的解碼等工作;
③處理播放的命令:如暫停、播放、定位等;
④整理播放進度以及錯誤信息并向應用程序報告。
(2)播放器應用層:包括:播放器應用程序,MAIEngine的引擎函數(shù),MAI針對各種格式的多媒體文件的元素庫。
(3)音視頻解碼:播放器軟件解碼程序的流圖如圖4所示。在多媒體文件解碼過程中,首先播放器應用程序分別調(diào)用播放文件函數(shù):Player_PlayFile()和引擎函數(shù)MAIengine_QuerySupport()進行對多媒體文件的讀取和多媒體文件類型的檢測,支持此過程完成的庫函數(shù)是Libmaifilereader.so。接下來,播放器應用程序調(diào)用引擎函數(shù)MAIengine AutoConnect(),該函數(shù)會根據(jù)多媒體文件的類型調(diào)用庫文件對多媒體文件進行解復用,支持解復用的庫文件包括Libmaimpeg2demux.so和Lib-maimpeg4demux.so等;再根據(jù)解復用后的音視頻格式調(diào)用庫文件進行音視頻的解碼,播放器可解碼的音頻格式有MP3,OGG,WAV等,可解碼的視頻格式有MPEG1,MPEG2,MPEG4等;支持解碼的庫函數(shù)主要包括Lib-maimp3dec.so,Libmaimpeg2dec.so等;解碼后分別通過調(diào)用庫文件Libmaiaudrend.so和Libmaividrend.so對音視頻數(shù)據(jù)進行渲染。至此,音頻數(shù)據(jù)便可送至揚聲器輸出,視頻數(shù)據(jù)送至MAE進行硬件解碼。
(4)MAE:是一種能解碼的基于塊的視頻格式的硬件加速單元,它主要負責對上層軟件解碼出來的可變長度編碼進行解碼。在AlchemyTM AU1200TM proces-sor承擔了視頻解碼、縮放、顏色空間轉(zhuǎn)換和過濾功能的片上硬件。通過在硬件上完成大部分的視頻解碼任務,因此省掉了外部DSP電路,MAE把MIPS32TM處理器核解放出來去執(zhí)行用戶交互,音頻處理和其他任務。同時,因為處理器上運行的軟件將不同長度的解碼信息傳遞給MAE。MAE硬件上被分為前端和后端,各自執(zhí)行特定的任務。MAE的前端獨立執(zhí)行最為復雜和繁重的解碼任務,包括反向量化,反向余弦轉(zhuǎn)換,運動補償?shù)?。MAE后端執(zhí)行一次性地水平和垂直縮放,可編程顏色空間處理,和過濾功能。當不執(zhí)行視頻解碼時,MAE后端功能可以被其他數(shù)據(jù)源使用如處理從片上攝像頭接口模塊來的CMOS/CCD或NTSC/PAL數(shù)據(jù)。
(5)外設驅(qū)動:AU1200將上層軟件解析出來的視頻宏塊數(shù)據(jù)寫回給DDR存儲器;然后通過DMA控制MAE從DDR存儲器取出視頻宏塊數(shù)據(jù),將其解壓縮成RGB數(shù)字信號,并將RGB數(shù)字信號再寫回到DDR存儲器,然后由LCD控制器從DDR存儲器中取出該數(shù)據(jù)輸人輸出到數(shù)/模轉(zhuǎn)換器ADV 7123,經(jīng)ADV 7123轉(zhuǎn)換為R,G,B三原色信號和行、場同步信號,信號通過VGA接口輸?shù)斤@示設備中,至此,便完成了視頻的播放。
4 結(jié) 語
無線車載多媒體終端系統(tǒng)是目前研究的熱點之一,這里提供了一種基于AU1200的嵌入式車載終端播放器的設計實現(xiàn)方案,具有功耗低,軟硬件解碼,省略外部DSP電路,通過Wi-Fi網(wǎng)絡進行數(shù)據(jù)的無線下載,節(jié)目源的更新,且功能模塊化,便于升級等,具有較大的實用價值。
評論