摘要:在分析MP3標準算法的基礎上,基于C單片機" title="51單片機" target="_blank">51單片機實現MP3的編解碼,并對MP3編碼進行了多方面的優(yōu)化;在單片機上的MP3算法中加入無線功能,設計成為一種校園自助導覽儀。經野外測試,效果良好。
關鍵詞:MP3編解碼;無線模塊;自助導覽
引言
MP3是MPEG-I的音頻標準第三層壓縮模式。雖然算法比較復雜,但壓縮比最大在低碼率條件下基本能達到CD的音質效果。其壓縮比例高、音質失真小的特點使之成為用于當前PC、網絡、PDA等最為流行的音頻格式。在嵌入式系統(tǒng)中實現MP3音頻編解碼常見的有兩種方案;一種是硬件解碼(即通過專用的MP3解碼硬件進行解碼),其特點是可以實現較高的性能和較低的功耗,目前大多數商用MP3都采用這種方案;另外一種是軟件解碼(即完全依賴于嵌入式微處理器或DSP的處理能力),通過對MP3定點或浮點解碼程序實現解碼過程,該方案對嵌人式微處理器或DSP處理能力要求較高。
本文采取硬件解碼方案,在單片機上實現了MP3的解碼,并加入無線功能,使其向產品靠攏,設計成為一種電子產品“校園自助導覽儀”。它的功能和導游一樣,具備自助和電子的要素。
本文還對MP3編碼進行優(yōu)化,除了算法優(yōu)化和高級語言的優(yōu)化之外,還進行了匯編級優(yōu)化,大大降低了算法的復雜性。
1 系統(tǒng)總體設計
本設計是基于校園的一種電子產品,將旅游景點的解說以MP3格式存儲,通過無線形式實現智能控制。該系統(tǒng)能根據觀眾的位置和需要自動確定解說的語言和內容,使得每個觀眾不但可以得到每個展位、景點的完整信息,而且能夠感受到高清晰、低噪聲的音響效果。同時,本設計產品還配有鍵盤,可以對播放的音頻文件進行控制,滿足人性化的要求。系統(tǒng)總體框架如圖1所示。
1.1 MP3編碼與實現
MP3采用的是頻域編碼,即音樂信號自適應譜感熵編碼ASPEC(Adaptive Spectral Perceptual Entropy Coding of High Quality Music Signal)。
MP3的數據是以幀流的形式存儲或傳輸的,每個幀有幀頭和幀尾。為獲取較高的數據壓縮比,根據音頻位流語法,采用了較為復雜的位流結構。MP3碼流是由很多幀組成,每一幀由幀頭、壓縮的音頻數據及輔助數據等組成。幀頭是一個32位長的數據,它包含輸入輸出采樣率、輸出比特率以及單雙聲道等信息。對每一幀的576(單聲道,立體聲為1152)個輸入音頻采樣壓縮而得到音頻數據。具體的壓縮后的比特數可以根據下式得到:
幀內比特數=幀內采樣數×位率/采樣率 (1)
圖2是MP3音頻信號的編碼過程。就單聲道而言,MP3的一個編碼框包含1152個聲音取樣,每個取樣為16位。MP3編碼時,首先將原始輸入的16位PCM信號經過濾波器分析(filer bank analysis),轉換成32個等頻寬的子頻帶信號(subband signal)。然后透過改良式離散余弦轉換(Modified I)iscrete CosineTransforln,MDCT),將每個子頻帶信號再細分為18個次頻帶,根據第二心理聲學模型(Psychoacoustic Mode ID所提供的信噪比(Signal-to-MaskRatio,SMR),對每個子頻帶信號進行位元分配及量化編碼。最后,只要將編碼后的資料依照MPEG-I定義的位元串的形式輸出即可。
數字音頻采樣通過由兩個濾波器組成的濾波器組輸入到心理聲學模型中,由心理聲學模型的輸出來控制音頻屏蔽等參數,最終通過量化和霍夫曼(Huffman)編碼得到輸出的比特流。
1.2 MP3解碼與實現
PCM信號進行MP3壓縮時,以1152個PCM采樣值為單位,封裝成具有固定長度的MP3數據幀(幀是MP3文件的最小組成單位)。在解碼時,利用數據幀里的信息就可以恢復出1152個PCM采樣值。這1152個采樣值被分為2個粒度組,每個粒度組包含576個采樣值。一個MP3數據幀分為5個部分:幀頭、CRC校驗值、邊信息、主數據、附加數據。在進行解碼時一般包含同步(Synchronization)、找到幀的開始位置、檢查錯誤(CRC)、霍夫曼解碼(Huffman decoding)、解包信息、輸出量化的頻率信息、再量化(Requantize)、用比例系數放大輸出信息、再排序(Reorder)、增加頻率后重新排序、頻率線立體聲合成(Stereodecoding)等過程。
MP3解碼器程序設計包括以下內容:
①定點算法設計。盡管定點單片機也支持浮點運算,但浮點運算會消耗大量的指令周期和內存,也會降低系統(tǒng)運行速度,不能應用于MP3實時解碼。在程序設計中,首先要將MP3浮點C解碼算法轉換為定點C解碼算法。浮點算法轉換成定點算法實現過程比較復雜,本文不再多述。
②在程序的頭部建立正確的運行頭(Run Time Header)文件。
③內存分頁/重疊。與ADSP-218X類似,FD216也是通過設置重疊存儲器選擇寄存器(PMOVLAY/DMOVLAY)來實現PM(CM)/DM存儲器分頁/重疊的。
2 無線模塊
無線遙控裝置已廣泛應用于車模、航模等領域,用來實現對靶機、驅動電機、玩具等的控制。在空間存在各個頻段、強弱變化的無線電波,因此無線遙控器在通信數據傳輸時容易受到干擾。為了提高通信數據傳輸的可靠性,必須在發(fā)送端對傳輸的數據進行編碼,而在接收端對接收的數據進行解碼,以提高抗干擾性。下面先介紹無線收發(fā)的特點,再將此無線功能加入MP3中,構成一個有無線功能的MP3,從而完成校園自助導覽儀的設計。
發(fā)射器一般由數據輸入模塊、編碼電路、調制電路、驅動電路、發(fā)射電路等部分組成。當有數據從輸入模塊輸入時,編碼電路產生相應的編碼信號(編碼指信號對載波進行調制),再由驅動電路進行功率放大后由發(fā)射電路向外發(fā)射。
接收器一般由接收電路、放大整形電路、調制電路、數據處理電路、驅動執(zhí)行電路等部分組成。接收電路接收發(fā)射器發(fā)送的調制編碼信號,經過放大整形電路處理后送至解調電路。解調電路對調制信號進行解調,即還原為編碼信號。數據處理電路對編碼數據進行解析,并控制執(zhí)行電路執(zhí)行相應的操作。
由上述可知,為了提高數據傳輸的可靠性,必須對發(fā)送數據及發(fā)送的脈沖格式進行編碼,然后在接收端對這些信號進行解碼?,F在市場上有很多用于編碼和解碼的專用芯片,例如PT2262/PT2272,它們都是通過硬件實現編碼和解碼的。在接收端,由于無線接收模塊收到的是脈沖信號,而不同的數據位其寬度不同,所以必須測量每個脈沖的寬度,以判別是哪個數字邏輯。在硬件上采用單片機的兩個外部中斷INT 0、INT1來捕捉脈沖的上升沿和下降沿,進而計算出脈沖寬度和數字邏輯。圖3是設計的校園自助導覽儀的無線收發(fā)場景。
如果旅游者佩戴我們設計的自助導覽儀進入校園游覽,每次到達校園景點時,會自動接收到校園景點發(fā)射的編碼信號,自助導覽儀進行解碼后會播放相應的MP3音頻文件進行景點的介紹。
為了檢驗自助導覽儀設備可靠性,進行了一些野外測試,效果良好:
①發(fā)射模塊距離可調,符合顯示各校園景點需要,基本上能通過控制天線長短和電壓高低得到理想距離;
②誤碼可能性極低;
③通過程序控制很好地實現了自動判斷同一景點播放完后是否重新播放。
3 MP3編碼優(yōu)化
心理模型的優(yōu)化可以分為兩個方面:心理聲學模型算法的優(yōu)化和心理聲學模型定點運算的優(yōu)化。心理模型對于長窗和短窗的運算均需要進行一系列的包含FFT的復雜運算,耗費大量運算周期。因此我們考慮這樣來實現心理聲學模型:首先進行窗體類型的判斷,依據判斷結果,只作對應窗口類型的FFT變換和后續(xù)的心理聲學模型計算,從而大大減輕運算負擔。經過測試統(tǒng)計發(fā)現,大多數的情況下,編碼器所采用的窗口類型均為長窗,因此在心理模型窗體計算時可以不考慮短窗。
另外一種優(yōu)化則是對定點運算進行優(yōu)化。由于在心理聲學模型中涉及到諸多復雜的運算(包括循環(huán)控制、對數運算、冪運算等),因此充分利用硬件功能和對運算的優(yōu)化成為了關鍵。MP3編碼器編碼過程中,量化編碼需要進行多次量化調整循環(huán),每一次的量化調整都會消耗很多周期,因此通常會占到60%~70%的運算周期。在實現時,為了達到實時的要求,對量化編碼模塊的循環(huán)進行了控制,得到了最佳的量化結果。
結語
對MP3的編解碼和無線模塊的整合,是設計電子產品的一個方向,對電子產品的多樣化有一定的推動作用。本文在單片機上通過對MP3的編解碼運算實現了MP3的播放,然后對其功能進行擴展,加入了無線模塊設計和液晶屏等,最終完成了校園自助導覽儀的設計。該系統(tǒng)設計完成后,在西南交通大學進行了多次實驗和推廣,取得很好的效果。
雖然我們對編碼進行了優(yōu)化,且對無線模塊進行了大量的通信測試,但不一定能達到惡劣環(huán)境的要求??梢愿鶕嶋H的需要,調整無線模塊的收發(fā)距離。此外,該MP3還可以進行更多的功能擴展,比如做成電子導游、公交報站器等多種電子產品。