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