機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
MPEG聲音編碼的單片DSP實(shí)現(xiàn)
MPEG聲音編碼的單片DSP實(shí)現(xiàn)
 更新時(shí)間:2009-6-5 9:13:03  點(diǎn)擊數(shù):2
【字體: 字體顏色

摘 要 為了開發(fā)價(jià)廉的單片定點(diǎn)DSP聲音編碼器,對(duì)MPEG聲音編碼標(biāo)準(zhǔn)參考算法的運(yùn)算量和存儲(chǔ)量要求進(jìn)行了比較深入的分析,綜合考慮了編碼質(zhì)量和處理器速度的要求,結(jié)合計(jì)算機(jī)仿真結(jié)果,指出了使用單片定點(diǎn)DSP實(shí)現(xiàn)的關(guān)鍵所在.基于 AD公司的ADSP-2181,充分利用其為聲音處理優(yōu)化的硬件結(jié)構(gòu),設(shè)計(jì)實(shí)現(xiàn)了實(shí)時(shí)MPEG聲音第2層編碼的軟硬件方案.測(cè)試結(jié)果表明,在采用基于 MAC的濾波器精度擴(kuò)展和改進(jìn)的心理聲學(xué)模型算法的條件下,編碼質(zhì)量和實(shí)時(shí)性都能得到保證.
關(guān)鍵詞 壓縮編碼;聲音處理;數(shù)字信號(hào)處理

  MPEG[1]聲音壓縮算法是關(guān)于高保真數(shù)字聲音壓縮的第1個(gè)國際標(biāo)準(zhǔn),自1992年末國際標(biāo)準(zhǔn)化組織和國際電工委員會(huì)采納這項(xiàng)標(biāo)準(zhǔn)以來,它在數(shù)字聲音的存儲(chǔ)、Internet上的多媒體傳輸、聲音數(shù)字廣播(DAB)[2]等領(lǐng)域都得到了廣泛的應(yīng)用.然而,MPEG聲音編碼算法相當(dāng)復(fù)雜,它對(duì)運(yùn)算量和存儲(chǔ)量都有很高的要求,加上市場(chǎng)對(duì)編碼器的需求不大,因而到目前為止還沒有專門的ASIC芯片.現(xiàn)在常用的方法是采用通用的DSP完成MPEG聲音壓縮編碼,但是國外僅有DEC,Philips,Xingit等為數(shù)不多的幾家公司在單片DSP中完成了此算法,而且購買時(shí)費(fèi)用昂貴,沒有源碼;國內(nèi)也有使用兩片TI公司的TMS320C30實(shí)現(xiàn)MPEG聲音編碼第2層[3],但是使用兩片DSP不但協(xié)調(diào)控制電路復(fù)雜,而且加上片外存儲(chǔ)器價(jià)格仍然不菲.因此,研究具有自有產(chǎn)權(quán)并且價(jià)格便宜的軟硬件實(shí)現(xiàn)成為必然的選擇.

1 MPEG聲音編碼原理

  MPEG聲音編碼是一種基于人耳聽覺特性的子帶聲音編碼算法,它屬于一種感覺聲音編碼方法.感覺聲音編碼算法的基本結(jié)構(gòu)如圖1所示.根據(jù)編碼器著重于頻率分辨率還是時(shí)間分辨率,可分為子帶編碼器和變換編碼器.MPEG聲音第2層編碼算法在頻域上把聲音信號(hào)劃分為32個(gè)子帶,屬于一種子帶編碼器.在圖1 中,時(shí)頻映射也稱濾波器組,用于把輸入的聲音信號(hào)映射成亞抽樣的頻率分量.根據(jù)使用的濾波器組的性質(zhì),即濾波器組在頻域的分辨率的大小,這些頻率分量又可叫做子帶樣值或頻率線.

 

<!--StartFragment --> (a)


(b)
圖1 感覺聲音解碼器結(jié)構(gòu)框圖

<!--StartFragment -->濾波器的輸出或者與濾波器組并行的時(shí)頻變換的輸出,提供給心理聲學(xué)模型以估計(jì)時(shí)間相關(guān)的聲音掩蔽門限.心理聲學(xué)模型使用了人們所知的同時(shí)掩蔽效應(yīng),包括有調(diào)音的掩蔽特性和無調(diào)音的掩蔽特性.如果使用聲音的前后掩蔽效應(yīng),還可進(jìn)一步提高掩蔽門限估計(jì)的準(zhǔn)確性.子帶樣值或頻率線按照盡量保證量化噪聲的頻譜處于掩蔽門限以下的準(zhǔn)則進(jìn)行量化和編碼,這樣能保證被人耳感知的量化引入的噪聲最小.根據(jù)對(duì)復(fù)雜度的要求,可以使用塊壓擴(kuò)或熵編碼的分析合成方法.
  幀打包把量化編碼的輸出和相關(guān)邊信息按照規(guī)定的格式組合起來,以便供解碼器使用.

2 編碼質(zhì)量和DSP速度

  單片ADSP-2181實(shí)現(xiàn)MPEG聲音編碼關(guān)鍵需要解決兩個(gè)問題:一是如何保證聲音編碼質(zhì)量;其次是如何充分利用DSP的運(yùn)算速度.而這兩個(gè)問題往往又是一對(duì)矛盾,需要找到其最佳結(jié)合點(diǎn).
  一般而言,決定MPEG聲音編碼器的優(yōu)劣主要是聲學(xué)模型的好壞.但是,對(duì)于使用單片
16bit定點(diǎn)DSP的應(yīng)用而言,這個(gè)結(jié)論就不再適用了.分析表明,此時(shí)有限字長效應(yīng)對(duì)編碼質(zhì)量的影響成了主要矛盾.特別是分析濾波器組,截尾效應(yīng)竟帶來了33倍于16bitAD轉(zhuǎn)換量化誤差的噪聲,而窗系數(shù)的有限長度表示則使本來高達(dá)96dB旁瓣衰減的濾波器響應(yīng)降低到不到70dB.因此,要保證聲音編碼質(zhì)量,分析濾波器組算法必須進(jìn)行精度擴(kuò)展.
  關(guān)于速度問題,首先想到的是使用快速算法,我們也嘗試了在子帶濾波中使用快速算法[4]. 但是,實(shí)踐證明,這些快速算法使用在DSP上效果并不理想,其原因有以下3條:(1)只考慮了加法和乘法的次數(shù),而對(duì)附值、尋址等操作毫不關(guān)心,但對(duì)所有指令都是單周期的DSP而言,乘法和加法的次數(shù)相對(duì)其他操作并不顯得特別重要;(2)沒有考慮DSP的硬件特點(diǎn),其算法不能充分發(fā)揮DSP的乘累加器(MAC)并行處理的能力;(3)ADSP-2181是為16位算法操作優(yōu)化的,在需要精度擴(kuò)展的情況下,運(yùn)算量將以數(shù)量級(jí)的速度急劇增加.
  基于以上質(zhì)量和速度要求的分析,我們選用了適合DSP乘累加指令的多相結(jié)構(gòu)濾波器組實(shí)現(xiàn)方式,且采用基于MAC結(jié)構(gòu)的精度擴(kuò)展方法,較好地解決了編碼質(zhì)量和DSP速度之間的矛盾.另外,對(duì)抽樣數(shù)據(jù)的輸入方式、心理聲學(xué)模型、比例因子編碼都進(jìn)行了適于ADSP-2181的改進(jìn),減少了運(yùn)算量,保證了實(shí)時(shí)性.

3 算法的軟件設(shè)計(jì)

  軟件設(shè)計(jì)是MPEG聲音編碼的單片DSP實(shí)現(xiàn)的核心,編碼質(zhì)量和速度的要求都需要通過精心設(shè)計(jì)DSP軟件才能實(shí)現(xiàn).
  (1)基于MAC結(jié)構(gòu)的精度擴(kuò)展 MPEG聲音編碼的分析濾波器組可以有許多種實(shí)現(xiàn)方式,多相結(jié)構(gòu)是MPEG標(biāo)準(zhǔn)推薦的一種,其數(shù)學(xué)表示為

<!--StartFragment -->


圖2 多相濾波的滑動(dòng)窗技術(shù)

<!--插入廣告JS代碼-->

               (1)
                           (2)

分析表明,對(duì)Yk進(jìn)行雙字?jǐn)U展可將截尾效應(yīng)帶來的噪聲降低33倍.但是,考慮到ADSP-2181只支持16bit的乘累加運(yùn)算,需要對(duì)式(1)進(jìn)行轉(zhuǎn)化,即
                 Yk=HYk+2-16LYk                 (3)

            (4)

這樣,就可利用DSP的乘累加器結(jié)構(gòu),運(yùn)算量只增加約1倍,存儲(chǔ)量只增加64個(gè)字.
  (2)輸入數(shù)據(jù)的組織 輸入數(shù)據(jù)的組織不但要考慮方便地從數(shù)模轉(zhuǎn)換器取得聲音原始數(shù)據(jù),還要考慮輸入數(shù)據(jù)在片內(nèi)數(shù)據(jù)RAM的存儲(chǔ)適合作為多相濾波器組和聲學(xué)模型的FFT運(yùn)算的輸入.多相濾波器組每次移入32個(gè)新的聲音數(shù)據(jù),移出32個(gè)舊的樣值,操作如下:
                Xi=Xi-32,i=511,510,…,32
            Xi=next-input-audio-sample,i=31,30,…,0
然而ADSP-2181并不適于實(shí)現(xiàn)數(shù)據(jù)的移動(dòng),每個(gè)賦值運(yùn)算需要兩個(gè)指令才能完成,每次分析濾波操作需要1024個(gè)指令周期.如果利用ADSP- 2181的多通道自動(dòng)緩沖串口及間接尋址能力,適當(dāng)?shù)亟M織輸入聲音數(shù)據(jù),就可利用滑動(dòng)窗的方法實(shí)現(xiàn)數(shù)據(jù)的移入和移出,如圖2所示.

  為了保證幀邊界處理的連續(xù)性,輸入數(shù)據(jù)緩存應(yīng)該設(shè)計(jì)成圓緩沖的形式,其長度應(yīng)能存儲(chǔ)兩幀聲音輸入數(shù)據(jù).當(dāng)DSP在處理一幀數(shù)據(jù)時(shí),輸入數(shù)據(jù)可以緩沖到另一幀.這樣,數(shù)據(jù)移動(dòng)的開銷就節(jié)約了.同時(shí),輸入數(shù)據(jù)的組織還要利于聲學(xué)模型的FFT運(yùn)算,F(xiàn)FT需要利用ADSP-2181的地址反轉(zhuǎn)尋址模式.由于 FFT計(jì)算和輸入數(shù)據(jù)的緩存是同時(shí)進(jìn)行的,所以FFT計(jì)算的指針需要地址反轉(zhuǎn),而輸入緩沖的指針卻不能地址反轉(zhuǎn),否則會(huì)導(dǎo)致輸入聲音數(shù)據(jù)排列混亂. ADSP-2181提供這種能力,它的第一地址指針組I0,I1,I2,I3有地址反轉(zhuǎn)能力,而第二地址指針組I4,I5,I6,I7卻不受地址反轉(zhuǎn)模式的影響.所以從第二地址指針組中選擇指針進(jìn)行輸入緩沖,從第一地址指針組中選擇指針進(jìn)行FFT計(jì)算.
  (3)聲學(xué)模型的改進(jìn) 用DSP實(shí)現(xiàn)心理聲學(xué)模型的一個(gè)難題是其中有大量的對(duì)數(shù)運(yùn)算,雖然可以用多項(xiàng)式逼近求得其近似值,但是其巨大的運(yùn)算量說明這不是一個(gè)明智的選擇.在改進(jìn)的心理聲學(xué)模型中,F(xiàn)FT運(yùn)算后并不立即換算到對(duì)數(shù)域,而是用分段折線逼近線性域的掩蔽效應(yīng)曲線.為簡(jiǎn)單起見,使用與標(biāo)準(zhǔn)一致的分段方法.逼近采用取指數(shù)的多項(xiàng)式展開的一次項(xiàng)的方法,這種方法雖然比較粗糙,但正如前面分析的那樣,聲學(xué)模型在16bit定點(diǎn)實(shí)現(xiàn)時(shí)不是主要矛盾,因而還是可以接受的.
  得到掩蔽門限以后,為計(jì)算信掩比供比特分配使用,還是需要從線性域轉(zhuǎn)換到對(duì)數(shù)域.這時(shí),我們采用一種利用ADSP-2181移位器的近似計(jì)算方法.通過EXP指令,可以提取2進(jìn)制補(bǔ)碼小數(shù)的指數(shù),對(duì)能量而言又有1bit約3dB.因而指數(shù)值乘3就近似得到該補(bǔ)碼小數(shù)的dB值,尾數(shù)部分的影響忽略不計(jì).
  (4)比例因子的編碼 MPEG聲音編碼標(biāo)準(zhǔn)中一共給出了63個(gè)比例因子,但是并不是所有這些比例因子都可以用16bit的2進(jìn)制數(shù)表示.如果用雙字進(jìn)行精度擴(kuò)展,在量化時(shí)又將面臨雙字除法的巨大開銷,因此,只使用其中可以用16bit的2進(jìn)制補(bǔ)碼小數(shù)精確表示的子集,即序號(hào)為3的倍數(shù)且小于等于45 的比例因子.
  采用比例因子子集后,比例因子編碼就可以不再通過比較的方法得到,而可以直接通過計(jì)算子帶最大幅度的指數(shù)獲得,簡(jiǎn)化了比例因子的編碼.
  (5)軟件仿真結(jié)果 結(jié)合上述各項(xiàng)算法改進(jìn),根據(jù)ADSP-2181的特點(diǎn)和MPEG標(biāo)準(zhǔn),用AD公司的開發(fā)軟件進(jìn)行了軟件仿真.表1列出了仿真得到的各個(gè)模塊對(duì)運(yùn)算量和存儲(chǔ)量要求進(jìn)行的估算結(jié)果.仿真在抽樣率為48kHz,編碼模式為立體聲,輸入信號(hào)為頻率為1kHz的正弦波,輸出碼率為 192kbit/s的情況下進(jìn)行.
  由表1可知,ADSP-2181的性能得到了較充分的利用.仿真結(jié)果表明,在以上的條件下,解碼輸出的信噪比可達(dá)80dB左右.可見,所作的算法改進(jìn)是比較有效的.

表1 各模塊的運(yùn)算量和存儲(chǔ)量要求

 運(yùn)算量/(106指令/s)程序存儲(chǔ)量/103數(shù)據(jù)存儲(chǔ)量/103
子帶濾波183.06.5
聲學(xué)模型103.51.5
比特分配和量化22.0
格式化比特流10.51.0

4 硬件設(shè)計(jì)

  硬件結(jié)構(gòu)框圖如圖3所示.各模塊的基本功能如下:

  DSP核:除完成所有編碼算法以外,還要完成對(duì)模數(shù)轉(zhuǎn)換電路的初始化配置;通過輔助控制電路選擇抽樣時(shí)鐘,通過接口電路接受主機(jī)的編碼參數(shù).
  輔助控制電路:由FPGA及附屬電路實(shí)現(xiàn),完成時(shí)鐘的產(chǎn)生、FIFO狀態(tài)的監(jiān)測(cè)、地址譯碼等功能.
  輸出緩沖:編碼碼流的暫時(shí)存儲(chǔ)區(qū),同時(shí)提供完全異步的輸出接口方式.在需要實(shí)現(xiàn)圖象聲音唇形同步的應(yīng)用中特別有用.
  外部存儲(chǔ)器:包括BDMA空間、I/O空間.
  模數(shù)轉(zhuǎn)換電路:完成聲音的數(shù)字化,直接與DSP的串口0連接.抽樣頻率由外部提供的256倍抽樣時(shí)鐘的頻率決定,正常工作前需要進(jìn)行初始化.
  接口電路:接口電路分為兩部分,一部分是編碼輸出接口,另一部分是與主機(jī)連接的接口.主機(jī)接口使用RS232接口芯片完成DSP串口1與主機(jī)串口的連接,DSP使用中斷和內(nèi)部計(jì)時(shí)器實(shí)現(xiàn)異步串型通信.
  上述方案已經(jīng)在“九五”科技攻關(guān)項(xiàng)目中實(shí)現(xiàn),實(shí)時(shí)編解碼的聲音通過了主觀測(cè)試.

*國家“九五”重點(diǎn)科技攻關(guān)資助項(xiàng)目
作者單位:林勝 門愛東 北京郵電大學(xué)電信工程學(xué)院,北京100876;第一作者25歲,男,博士生

參考文獻(xiàn)

 [1] ISO/IEC 11172-3-1993 Coding of moving pictures and associated audio for digital storage media at up to about 1.5 Mbit/s——part 3: audio
 [2] Brandenburg K, Dehéry Y F, Johnston J D, et al. ISO-MPEG-1 audio: a generic standard for coding of high-quality digital audio. J Audio Eng Soc, 1994, 42 (10): 780
791
 [3] 王建昕,董在望,印日方強(qiáng)MPEG音頻編碼算法的研究與實(shí)時(shí)實(shí)現(xiàn)清華大學(xué)學(xué)報(bào), 199737(10)45
48
 [4] Konstantinides K, Fast subband filtering in MPEG audio coding. IEEE Signal Processing Letters, 
1994,
1(2): 26
28

  • 上一篇: DSP在動(dòng)液面深度測(cè)試中的應(yīng)用
  • 下一篇: 用DSP實(shí)現(xiàn)MPEG音頻層III壓縮的加速方法
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1