基于PXA270平臺的嵌入式流媒體播放器設計
系統(tǒng)實現(xiàn)可以被分為以下幾個步驟:
1) 嵌入式Linux 內核的移植和編譯、文件系統(tǒng)的安裝;
2) 視頻圖像解壓縮模塊的實現(xiàn);
3) 播放模塊的實現(xiàn);
嵌入式Linux 內核的移植和文件系統(tǒng)、圖形界面系統(tǒng)的安裝
工作在sophia 板上的嵌入式Linux 內核對boot-loader、內核、文件系統(tǒng)的加載步驟和交叉編譯環(huán)境的建立方法與其它嵌入式平臺的開發(fā)步驟相似具有一定的通用性,具體的建立方法可以參考文獻。但是有兩點要注意:
1) 在使用make menuconfig定制內核時要讓內核支持無線網卡,具體步驟是在USB Support 配置菜單中選擇USB network devices,再于子菜單中選擇wireless,使得在內核中加入對USB 無線網卡的驅動支持。
2) 在圖形界面系統(tǒng)的編譯與安裝中注意建立工程后,要將選項中的gettext 選項勾掉,否則程序無法順利編譯。
視頻圖像解壓模塊的實現(xiàn)
由網絡控制模塊獲取的數據在系統(tǒng)中是以流數據的形式存在的,因此,首先要對流式文件進行解壓。同時,為了提高傳輸效率從而提高視頻圖像質量,網絡上傳輸的原始視頻圖像都進行了壓縮編碼,所以,還需要根據編碼格式進行相應解碼。本系統(tǒng)不但支持常見的MP1、MP2、MP3 和WAV 音頻文件格式,還可以對先進的MPEG- 4視頻圖像壓縮編碼文件解壓縮。
流式文件的解壓縮
按照播放器所接入的車載導航網絡的要求,本方案要為當前主流的流文件格式:ASF、RM提供解壓能力。
ASF 文件解壓
ASF文件基本的組織單元叫做ASF 對象,每個對象由三個域組成:128 位的全球唯一的對象標識符域、64 位整數的對象大小域和可變長的對象數據域。ASF 文件的高層邏輯結構也包含三部分:頭對象、數據對象和索引對象。其中頭對象是必需的并且必須放在每一個ASF 文件的開頭部分,它包含了許多全局信息,一定要在數據對象之前被接收方接收并解釋;數據對象也是必需的,且一般情況下緊跟在頭對象之后,包含了所有待播放的數據;索引對象是可選的。
RM文件解壓
組成RM文件的基本部件是塊,每個塊包括三個字段:指明塊標識符的四字符編碼、塊中限定數據大小的32 位數值和數據塊部分。塊標識符用來唯一的標識每一個塊。同樣地,RM文件的高層邏輯結構也由三部分組成:文件報頭部分、文件數據部分和文件索引部分。因為RealMedia 文件格式是一種加標志的文件格式,塊的順序沒有明確規(guī)定,但RealMedia 文件報頭必須是文件的第一個塊。
MPEG- 4 視頻圖像的解壓
在幾種開放源代碼的MPEG- 4 解碼軟件中,作者選擇xvidcore 作為系統(tǒng)中視頻圖像解壓模塊的核心算法。xvid 是一個高效且可移植的編碼軟件,系統(tǒng)采用的是目前最新的版本xvidcore- 1.1.0。xvid 支持SimpleProfile 和Advanced Profile,支持I/P Frames、B -Frames、Interlacing 和GMC,是目前比較流行的MPEG- 4 編碼軟件。對xvidcore- 1.0.1 進行交叉編譯有以下主要步驟:
評論