基于DSP的MP3解碼系統(tǒng)設計
隨著數(shù)字視頻和圖像處理的發(fā)展,數(shù)字音頻技術也正在提高,尤其是以ISO/IEC為基礎的MPEG技術。MP3是MPEGAudioLayerⅢ的縮寫,它是Hi-Fi級音頻壓縮的國際標準。目前,市場上的MP3解碼基本上都是采用專用芯片解碼,采用專用芯片解碼體積大,支持的音頻格式有限。我們采用在DSP芯片上用C語言進行軟解碼,軟解碼比較靈活,可移植性好,易于升級,解碼質(zhì)量可通過軟件參數(shù)設定,通用性好。
硬件系統(tǒng)結構
DSP的MP3解碼系統(tǒng)硬件框圖如圖1所示,我們采用了低功耗的DSP芯片TMS32VC5416進行軟件解碼,32M的CF卡作為存儲MP3文件的媒介,USB接口作為與PC機進行通訊接口,傳輸數(shù)據(jù)速度快,可以在PC機下載、上傳MP3,可編程邏輯器件CPLD(選用EPM7128SL84)用于產(chǎn)生CF卡與USB接口芯片的片選以及控制其讀寫。
TMS320VC5416定點DSP
TI公司的TMS320VC5416定點運算數(shù)字信號處理器(DSP),其功耗低,性能高,內(nèi)部采用一種改進型的哈佛總線結構:一條程序總線,3條數(shù)據(jù)總線,數(shù)據(jù)總線寬度為16位。分開的數(shù)據(jù)和指令空間使該芯片具有高度的并行操作能力,在單周期內(nèi)允許指令和數(shù)據(jù)同時存取,再加上其高度優(yōu)化的指令集,使得該芯片具有很高的運算速度,最高可達160MIPS。
音頻傳輸、播放系統(tǒng)
TLV320AIC23介紹
D/A采用TLV320AIC23芯片,TLV320AIC23(以下簡稱AIC23)是一款高性能的立體聲音頻Codec芯片,內(nèi)置耳機輸出放大器,支持MIC和LINEIN兩種輸入方式(二選一),且對輸入和輸出都具有可編程增益調(diào)節(jié)。AIC23的模數(shù)轉(zhuǎn)換(ADCs)和數(shù)模轉(zhuǎn)換(DACs)部件高度集成在芯片內(nèi)部,采用了先進的Sigma-delta過采樣技術,可以在8K到96K的頻率范圍內(nèi)20、24bit和32bit的采樣,ADC和DAC的輸出信噪比分別可以達到90dB和100dB。與此同時,AIC23還具有很低的能耗,回放模式下功率僅為23mW,省電模式下更是小于15uW。由于具有上述優(yōu)點,使得AIC23是一款非常理想的音頻模擬I/O器件。
AIC23與DSP的數(shù)字音頻接口設計
DSP與AIC23連接如圖2所示,利用USB1.1接口器件PDIUSBD12可編程的時鐘頻率輸出12M作為立體聲音頻Codec芯片AIC23的時鐘輸入CLK12M。AIC23的配置接口支持IαC模式,也支持SPI模式,系統(tǒng)采用DSP的一個McBSP用SPI模式跟AIC23連接。DSP配置為主模式,AIC23配置為從模式。AIC23輸出串行數(shù)據(jù),DSP的MCBSP串口6個引腳使數(shù)據(jù)通路和控制通路與AIC23相連。數(shù)據(jù)由BDX0、BDR0傳輸,同步信號的控制由BFSX0、BFSR0、BCLKX0來實現(xiàn)。數(shù)字音頻接口采用DSP模式,該模式與TI公司DSP的MCBSP串口兼容,該模式時序如圖3。由圖知,在LRCIN/LRCOUT信號的下降沿開始進行數(shù)據(jù)的傳輸,先左聲道數(shù)據(jù)傳輸,然后右聲道數(shù)據(jù)傳輸。
DSP需要處理來自和發(fā)向AIC23的數(shù)據(jù),從而達到采集和播放聲音。McBSP與CPU通信用DMA方式,通過DMA收到或發(fā)送完一組單元,再給CPU中斷。采用DMA的方式,即串口每發(fā)送或接收到一個單元,都會自動觸發(fā)DMA將其搬送到一個內(nèi)部的Buffer,等Buffer滿了再通過中斷方式告訴CPU處理。在DMA的中斷服務程序中為了可靠可以把這個Buffer的數(shù)據(jù)再拷貝到另一個待處理的空間,即兩級Buffer,然后置標志位,CPU在主程序中查詢標志位然后作出相應的處理。DMA操作的Buffer可以通過寄存器配置。
USB接口實現(xiàn)
USB接口采用高性能、并行總線的USB接口器件PDIUSBD12(以下簡稱D12),D12符合通用串行總線USB1.1版規(guī)范,可與DSP微控制器實現(xiàn)高速并行接口,D12與DSP連接如圖4所示。
由CPLD產(chǎn)生D12的片選、以及控制對D12的讀寫;ALE接低電平,表示一個獨立的地址和數(shù)據(jù)總線配置;D12的A0腳與DSP的A0相連,控制D12的命令和數(shù)據(jù)狀態(tài)。
CF卡接口設計
CF卡是一種小型化、大容量、低功耗、智能型的存儲媒體,在便攜式設備中應用廣泛。以FlashMemory(閃爍存儲器)為主要載體,內(nèi)部用微處理器進行時序控制和存儲管理。CF卡與DSP連接如下圖5所示。
CF卡的A3~A0為數(shù)據(jù)、命令、或狀態(tài)寄存器地址線,D15~D0為數(shù)據(jù)總線,可16位或8位訪問,當片選信號CE1#和CE2#同時為低電平時,為16位訪問格式;當CE1#置高,CE2#為低電平時,為8位訪問格式。CF的存取方式有三種:Memory方式、I/O方式、TrueIDE方式,該系統(tǒng)中CF卡工作模式選取上電默認方式,即:Memory方式,片選CE1#、CE2#由可編程邏輯器件EPM7128SL84對DSP的8位地址A15~A22譯碼產(chǎn)生。CF卡工作電壓為5V或3.3V,設計選用3.3V工作電壓,便于數(shù)據(jù)輸出與地址可直接與DSP相接。
MP3解碼的DSP實現(xiàn)
MP3文件的格式
MP3是目前世界上最流行的音頻格式之一,其采用了MPEG-1Ⅲ層標準壓縮編碼格式。遵循MP3標準的音樂具有很高的壓縮率和較高的保真度,其壓縮比可達1:10~12,即1分鐘CD音質(zhì)的音樂經(jīng)過MP3壓縮編碼后,可以壓縮到1兆左右而基本保持不真。MP3的壓縮率很高,失真也較小,但它的算法也較為復雜。MP3文件的內(nèi)容是音頻位流數(shù)據(jù)文件,它由若干個數(shù)據(jù)幀組成,每個數(shù)據(jù)幀的構成如圖6所示。每幀中的音頻數(shù)據(jù)含有1152個原始音頻信號的采樣信息,并且經(jīng)過霍夫曼編碼形成。數(shù)據(jù)幀的其它內(nèi)容分別為:
頭標信息:音頻位流的一部分,它包含同步和狀態(tài)信息。
校驗字:音頻位流的一部分,它包含用于錯誤檢測的信息。
輔助信息:音頻位流的一部分,它包含每幀中可用于解碼的相關信息。
縮放因子信息:音頻位流的一部分,它包含用于計算音頻數(shù)據(jù)量化比例因子的信息。
霍夫曼編碼數(shù)據(jù):音頻位流的一部分,它包含每幀中所有原始音頻采樣數(shù)據(jù)的霍夫曼編碼。
附加數(shù)據(jù):音頻位流的一部分,它可包含一系列用戶定義的輔助數(shù)據(jù)。
MP3解碼
LayerⅢ采用了較復雜的比特流結構。解碼程序的流程圖如圖7所示。首先獲得每一幀的同步字,取得頭信息,從而獲得各相應參數(shù),根據(jù)對頭信息的解析進而得到實際的一幀音頻數(shù)據(jù)。讀取主數(shù)據(jù)獲得比例因子數(shù)據(jù),對樣本進行解碼,然后對解碼樣本順序進行倒置,如果塊類型(BlockSplit_type)和標志類型(Flag_typ)都為1時,對樣本進行重新排序,根據(jù)邊信息中霍夫曼碼本的選擇信息進行霍夫曼解碼,然后進行反量化,根據(jù)幀頭的立體聲信息,對反量化結果進行立體聲處理。最后通過混迭處理、IMDCT和合成濾波器重建數(shù)字音頻信號。
結束語
系統(tǒng)采用了高性能的芯片及性能優(yōu)良的模擬接口,具有很強的信號處理能力,可以高質(zhì)量地完成立體聲的解碼算法。在系統(tǒng)的軟硬件的基礎上,顯示器和鍵盤等,可以增加用戶接口。該系統(tǒng)可以集成在數(shù)碼相機等產(chǎn)品中增加MP3播放機功能,具有廣闊的推廣應用前景。