嵌入式GPS語(yǔ)音導航系統中MP3的解碼與播放
哈夫曼解碼時(shí),MP3的音頻數據將分為兩節(gxanule),這兩節在過(guò)程編解碼時(shí)相對獨立,每一節中可以解碼出576個(gè)PCM采樣數據,兩節可解出1152個(gè)采樣數據。從二進(jìn)制101……碼流中得到我們所需要的信息的第一步就是解哈夫曼碼。解哈夫曼碼是一個(gè)查表過(guò)程,這576個(gè)值代表576個(gè)頻率線(xiàn)上的值,其在不同的塊中(如)有不同的含義,可根據不同的比例因子和頻帶查找相應的碼表并解出576個(gè)值。
反量化過(guò)程就是根據反量化公式和幀邊信息來(lái)對于長(cháng)塊、短塊和混合塊采用不同的反量化公式,以恢復576條頻率線(xiàn)的真實(shí)值。反重排序的作用是為了讓MP3編碼器使霍夫曼編碼更加有效率,而對某些塊進(jìn)行重排序。立體聲解碼部分的功能是在兩個(gè)音頻通道非獨立編碼時(shí),進(jìn)行立體聲解碼。
混疊消除是為了避免兩個(gè)相鄰子頻帶之間的混疊,而在解碼過(guò)程中進(jìn)行的混疊消除。IMDCT的作用首先是對長(cháng)塊進(jìn)行18點(diǎn)到36點(diǎn)的IMDCT變換,并對短塊進(jìn)行3個(gè)G點(diǎn)到12點(diǎn)的IMDCT變換;其次是根據塊類(lèi)型的不同,分別使用不同的窗類(lèi)型進(jìn)行加窗。同時(shí)把這36個(gè)值的前半部分與上一幀的后半部分相疊加。而把當前塊的后半部分存儲起來(lái)用于和下一塊疊加。頻率反轉補償是在進(jìn)入下一步之前對多項濾波器組進(jìn)行的頻率反轉補償,即對奇數子帶的奇數時(shí)間樣點(diǎn)取反。
子帶合成濾波是將32個(gè)等頻帶寬內的頻域信號反變換成時(shí)域信號,然后再經(jīng)過(guò)加窗運算,以得到32個(gè)PCM值。
2 硬件設計
2.1 系統硬件設計
在處理器的選擇上,本系統選用SAMSUNG公司的S3C2410。它是基于A(yíng)RM920T內核的16/32位精簡(jiǎn)指令集微控制器,是為手持設備和通用設備提供的一款低成本、高效率的微控制器。整個(gè)系統硬件的設計過(guò)程中主要應用S3C2410 ARM芯片,存儲設備外擴SD或MMC存儲卡模塊,并外接320x240象素的真彩TFT LCD屏進(jìn)行顯示,操控采用四線(xiàn)電阻觸摸屏并輔以GPIO外擴的鍵盤(pán)。
2.2 音頻硬件設計
IIS(Inter-IC Sound)總線(xiàn)是Philips公司提出的串行數字音頻總線(xiàn)協(xié)議。它是一種面向多媒體應用的音頻總線(xiàn),專(zhuān)用于音頻設備之間的數據傳輸,即把PCM音頻數據傳至標準編解碼器(CODEC)。IIS總線(xiàn)只處理聲音數據,其他信號(如控制信號)必須單獨傳輸。為了使電路的引出引腳盡可能少,IIS只使用了3條串行總線(xiàn),即提供分時(shí)復用功能的數據線(xiàn)、左右聲道選擇線(xiàn)和時(shí)鐘信號線(xiàn)。
CODEC芯片主要負責模擬信號和數字信號的相互轉換。對于本系統來(lái)說(shuō),更加關(guān)心的是將數字PCM信號換為模擬信號,主要是將要播放的文件的音頻數字信號通過(guò)SC2410的IIS送給CODEC芯片,然后將其轉換為模擬信號,進(jìn)而通過(guò)音箱或者耳機等設備輸出。
根據采樣定理,采樣頻率至少要是信號頻率的2倍以上,再就是要支持IIS接口標準,因為本系統是通過(guò)IIS總線(xiàn)向CODEC芯片傳輸數據的。在本系統的CODEC選用Philips公司的U-DA1341,該芯片采用3.0 V電壓供電,并對ADC和DAC分別供電,系統的時(shí)鐘頻率可選256fs、348fs和512fs,采樣頻率從16 kHz到48 kHz,由于是采用數字音質(zhì)控制,因此具有重低音效果,并支持IIS總線(xiàn),可確保高保真的立體聲輸出。圖3所示是UDA1341的工作原理框圖。
整個(gè)音頻系統的硬件設計主要是S3C2410的IIS總線(xiàn)接口和CODEC的連接與實(shí)現。其具體電路如圖4所示。本系統采用Philips基于IIS音頻總線(xiàn)的UDA1341型音頻CODEC芯片。該CODEC支持ⅡS總線(xiàn)數據格式,并采用位元流轉換技術(shù)進(jìn)行信號處理,具有可編程增益放大器(PGA)和數字自動(dòng)增益控制器(AGC)。
S3C2410內置IIS總線(xiàn)接口,可直接外接8/16比特的立體聲CODEC,還可以給FIFO通道提供DMA傳輸模式而非中斷模式,從而使數據發(fā)送和接收同時(shí)進(jìn)行。該IIS接口有3種工作方式,可以通過(guò)設置IIS的CON寄存器來(lái)選擇。本文介紹的硬件框架主要基于傳輸和接收模式。在這種模式下,IIS數據線(xiàn)將通過(guò)雙通道DMA同時(shí)接收和發(fā)送音頻數據,其DMA服務(wù)請求可由FIFO只讀寄存器自動(dòng)完成。
圖4中,S3C2410的IIS總線(xiàn)信號與UDA1341的IIS信號直接相連,L3接口引腳L3MODE、L3CLOCK和L3DATA分別連接到S3-C2410的GP-B1、GPB2和GPB3三個(gè)通用數據輸出引腳。U-DA1341對外可提供兩組音頻信號輸入接口,每組包括左右2個(gè)聲道。
3 軟件設計
3.1 系統平臺的選擇
目前主流的嵌入式平臺主要有嵌入式Linux和Windows CE兩大系列。
Linux是一個(gè)類(lèi)似于Unix的操作系統。它起源于芬蘭一個(gè)名為L(cháng)inus Torvalds的業(yè)余愛(ài)好者,但是現在已經(jīng)是最為流行的一款開(kāi)放源代碼的免費操作系統。Linux從1991年問(wèn)世到現在,已發(fā)展成為一個(gè)功能強大、設計完善的操作系統。伴隨著(zhù)網(wǎng)絡(luò )技術(shù)進(jìn)步而發(fā)展起來(lái)的Linux OS已成為Mi-crosoft公司W(wǎng)indows系統的強勁對手。Linux系統不僅能夠運行于PC平臺,還可在嵌入式系統方面大放光芒,很多嵌入式平臺都用Linux作為其操作系統。
評論