嵌入式GPS語音導航系統(tǒng)中MP3的解碼與播放
近年來,電子技術的迅猛發(fā)展,使得嵌入式系統(tǒng)在越來越廣泛的領域得到應用。嵌入式系統(tǒng)平臺的功能也越來越強大,復雜度也越來越高,同時對其開發(fā)的難度和要求也越來越高。在開發(fā)過程中需要將應用軟件和系統(tǒng)軟件作為一個整體考慮,而且軟件和硬件的聯(lián)系也更加密切。所以,嵌入式系統(tǒng)的開發(fā)是一個復雜的過程。隨著嵌入式系統(tǒng)性能的大幅度提高,老式的GPS導航儀已開始向嵌入式方向發(fā)展。嵌入式GPs導航儀已越來越便攜,功能越來越強大,語音導航和媒體功能已成為嵌入式GPS導航儀的一大突出的亮點。所以,MP3音頻解碼與播放技術現(xiàn)已成為嵌入式GPS導航系統(tǒng)中的一項基本技術。MP3的全稱是MPEG Audio Layer 3,是目前流行的一種音頻編碼方案。它是1992年制定的MPEG-1標準的一部分,MPEG標準由系統(tǒng)、視頻和伴音三部分組成。其中伴音標準共分三層,MP3作為其中的第三層,是運算復雜度最高而壓縮效果最好的一層。比起傳統(tǒng)的CD格式來,其音效已相差無幾,但數(shù)據(jù)量卻不及CD的十分之一。同時,MP3播放器的便攜性和續(xù)航能力都比CD有大幅度的提高。MP3最初應用于數(shù)字音頻廣播以及數(shù)字電視伴音等;之后,隨著其流行程度的提高,在其他場合,尤其是互聯(lián)網(wǎng)音樂和便攜式娛樂設備上也開始大量使用MP3格式;現(xiàn)在,幾乎所有便攜式語音導航設備都采用MP3作為其音頻媒體格式。本文主要介紹了基于ARM核心的嵌入式GPS導航系統(tǒng)平臺下MP3音頻文件的解碼技術。以便利用自行設計的方案在Windows CE.NET系統(tǒng)下運用三星公司S3C2410平臺,從而實現(xiàn)MP3的解碼播放功能。
1 MP3解碼原理
1.1 MP3的文件格式
MP3文件由數(shù)量不等且相互獨立的幀(frame)組成,每個幀包含1152個采樣信息,一個MP3每幀包含幀頭、錯誤校驗、音頻數(shù)據(jù)和輔助數(shù)據(jù)四部分。圖1所示是MP3的幀結構示意圖。MP3文件的最后128字節(jié)通常包含有ID3v1標簽,并附加有用戶定制的文件附加內(nèi)容,如歌曲名稱、演唱者、風格說明等。
1.2 MP3解碼流程
原始PCM(脈沖編碼調(diào)制)音頻數(shù)據(jù)在經(jīng)過壓縮編碼之后將得到MP3碼流,MP3解碼就是把MP3碼流恢復成原始的PCM數(shù)據(jù)。MP3數(shù)據(jù)以幀為單位,解碼應首先根據(jù)同步信息及錯誤校驗CRC模塊找出MP3幀在碼流中的位置,并由此確定幀頭、CRC校驗、音頻數(shù)據(jù)及輔助數(shù)據(jù)的所在位置。
圖2所示是MP3的解碼流程,它主要包括哈夫曼解碼、反量化、反重排序、立體聲解碼、混疊消除、IMDCT、頻率反轉(zhuǎn)補償、子帶合成濾波等。圖2中的預處理的作用是讀取頭部數(shù)據(jù)并將需要的信息按結構存放起來,以便后續(xù)解碼。
評論