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