當前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于ARM7TDMI的SoC語音處理系統(tǒng)的設(shè)計

摘要:基于ARM7TDMI的SoC片內(nèi)AC97模塊和片外CODEC-UCB1400,采用ITU-T的G.721算法設(shè)計語音處理系統(tǒng);提出一種基于低端RISC核的語音系統(tǒng)設(shè)計方案。該方案結(jié)合SoC的片內(nèi)eSRAM模塊進行性能優(yōu)化;通過在流片后的實際樣機上驗證,編碼速率為19.88 KB/s,解碼速率為22.68 KB/s,達到了語音實時性要求。


關(guān)鍵詞:ARM7TDMI G.721 雙Buffer機制 eSRAM優(yōu)化

引 言

  隨著微電子和計算機技術(shù)的高速發(fā)展,許多嵌入式應(yīng)用系統(tǒng)應(yīng)運而生。其中,各種語音處理系統(tǒng)不斷被開發(fā)出來,在各行業(yè)得到廣泛應(yīng)用,如語音報站器、自動解說裝置、采訪錄音筆等,為人類的生產(chǎn)、生活提供了極大的便利。本文基于東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心自主研發(fā)的ARM7TDMI內(nèi)核的32位嵌入式SoC——SEP3203處理器,采用G.721標準ADPCM算法,實現(xiàn)了語音信號的軟件實時編解碼,為語音處理應(yīng)用提供了一種有效的嵌入式解決方案。

1 G.721標準概述

  1937年,A.H.Reeves提出脈沖編碼調(diào)制(PCM),開創(chuàng)了語音數(shù)字化通信的歷程。CCITT在20世紀80年代初,開始研究低于64 Kb/s的非PCM編碼算法,先后制定通過了G.721、G.728、 G.729等編碼標準。其中,G.721協(xié)議作為ADPCM的典型算法,不僅具有與PCM近乎相同的語音質(zhì)量,而且有簡單的算法結(jié)構(gòu)和優(yōu)良的抗誤碼性能,在衛(wèi)星、海纜及便攜式數(shù)字語音設(shè)備等方面都有廣泛應(yīng)用。G.721算法的簡化框圖如圖1所示。

  編碼過程:

  ① 計算Sl(k)與自適應(yīng)預(yù)測器輸出Se(k)的差值E(k)=Sl(k)-Se(k);
 ?、?通過自適應(yīng)量化模塊對E(k)進行量化,得到ADPCM碼字I(k);
 ?、?通過自適應(yīng)反量化模塊對I(k)計算得到量化差分預(yù)測信號Dq(k);
 ?、?根據(jù)重建信號Sr(k)=Se(k)+Dq(k)和Dq(k)更新預(yù)測濾波器系數(shù);?
  ⑤ 利用新的系數(shù),計算得到Se(k+1),重復(fù)上述5個步驟,壓縮下一個語音采樣數(shù)據(jù)。

  解碼過程:

  ① 通過自適應(yīng)反量化和自適應(yīng)預(yù)測得到Dq(k)和Se(k),得到語音重建信號Sr(k);?
 ?、?對重建信號Sr(k)進行PCM格式轉(zhuǎn)換,得到PCM碼字Sp(k);

  
              圖1 G.721編碼器和解碼器簡化框圖

  ③ 采用與編碼器相同的方法更新預(yù)測濾波器系數(shù);
  ④ 為實現(xiàn)雙向通信,同步調(diào)整Sp(k);
 ?、?利用新的濾波器系數(shù),重復(fù)上述5個步驟,解碼下一個I(k)。

2 芯片簡介

  SEP3203芯片為系統(tǒng)處理核心,總體結(jié)構(gòu)框圖如圖2所示。該芯片是東南大學(xué)國家專用集成電路系統(tǒng)工程技術(shù)研究中心自主設(shè)計的基于ARM7TDMI的32位SoC,采用AMBA2.0標準,0.25μmCMOS工藝,主要面向嵌入式中低端手持設(shè)備。片上提供AC97控制器、外存接口EMI、6通道DMAC、TIMER、PMU、INTC等模塊。其中,語音系統(tǒng)使用的模塊有:EMI,負責控制對外存的訪問;片上存儲器eSRAM,用于優(yōu)化耗時的核心代碼;AC97,提供AC97標準的音頻接口;DMAC,用于實現(xiàn)大數(shù)據(jù)量的DMA傳送。

  
                圖2 SEP3203芯片結(jié)構(gòu)框圖

3 系統(tǒng)設(shè)計

  3.1 硬件系統(tǒng)

  硬件系統(tǒng)框圖如圖3所示。虛線框內(nèi)是片內(nèi)模塊;框外為片外器件,包括外存(SDRAM/SRAM/Flash等)、CODEC等。Philips公司的UCB1400作為CODEC。以下為系統(tǒng)工作過程。?

  
                圖3 語音處理硬件系統(tǒng)框圖

 ?、?編碼。CODEC采樣語音數(shù)據(jù),暫存在AC97的輸入FIFO中。然后,由DMAC通過中斷方式,將數(shù)據(jù)傳送到指定存儲區(qū)域。在ARM7TDMI的控制下,運行G.721編碼程序,將語音PCM數(shù)據(jù)壓縮為ADPCM碼。
 ?、?解碼。運行G.721解碼程序,把存儲器中的?ADPCM碼解碼為PCM碼。每解滿1幀數(shù)據(jù)后,由DMAC通過中斷方式把數(shù)據(jù)傳送到AC97的輸出FIFO,通過CODEC驅(qū)動放音設(shè)備(耳機、揚聲器等)。

  根據(jù)語音實時性的需要,設(shè)置UCB1400采樣速率為8 kb/s。該芯片用16位表示一個采樣點,故采樣速率為128 kb/s。編碼后,每個采樣點用4位表示,故傳輸率為32 kb/s。

  3.2 軟件系統(tǒng)

  軟件流程如圖4所示。每幀數(shù)據(jù)為64個采樣點,共計為128字節(jié)、16位表示的PCM碼,編碼后為32字節(jié)、4位表示的ADPCM碼。

    
                圖4 編解碼的軟件流程

  (1) 編碼

  首先對系統(tǒng)初始化,包括對AC97、CODEC、DMAC等模塊配置,以及有關(guān)狀態(tài)變量的初始化。然后,采樣第1幀語音數(shù)據(jù),采樣結(jié)束進入DMA中斷,在中斷處理中再次配置DMAC,觸發(fā)新的采樣傳輸,并對剛采樣的數(shù)據(jù)編碼。由于編碼由內(nèi)核執(zhí)行,采樣由CODEC和DMA完成,故對第K幀編碼和對第K+1幀采樣是并發(fā)進行的。

 ?。?) 解碼

  同編碼過程類似,首先對系統(tǒng)進行初始化,然后解碼第1幀音頻數(shù)據(jù)。解碼完配置DMAC,觸發(fā)數(shù)據(jù)傳送至AC97輸出FIFO,通過放音設(shè)備播放錄音。同樣,解碼第K+1幀數(shù)據(jù)與播放第K幀數(shù)據(jù)并發(fā)進行。

  本設(shè)計采用“雙Buffer”機制緩沖數(shù)據(jù)?!半pBuffer”是指:開辟兩個幀緩沖區(qū)為Buf0、Buf1,緩沖標志Flg初始為0。編碼時,采樣第1幀數(shù)據(jù),DMA從AC97輸入FIFO向Buf0傳輸數(shù)據(jù),傳輸完后,設(shè)置Flg=1,編碼器從Buf0中取數(shù)據(jù)編碼;同時,DMA向Buf1中傳送新數(shù)據(jù)。周而復(fù)始,每幀數(shù)據(jù)采樣完,設(shè)置Flg=!Flg,編碼器從Buf!Flg緩沖區(qū)取數(shù)據(jù)編碼,DMA傳送采樣數(shù)據(jù)的目的地址為Buf Flg,從而實現(xiàn)了第K+1幀數(shù)據(jù)采樣和第K幀數(shù)據(jù)編碼并發(fā)。只要編碼速度高于采樣速度,就不會出現(xiàn)數(shù)據(jù)的覆蓋。處理過程如下(解碼時的情況類似):

  Flg=0;?
  Psmp=Buf Flg;?
  Run_Sample(Psmp);//采樣第1幀數(shù)據(jù)?
  While(1) { ?
    Flg=! Flg;?
    Penc=Buf !Flg;//編碼指針指向緩沖區(qū)Buf !Flg??
    Psmp=Buf Flg;//采樣指針指向緩沖區(qū)Buf Flg??
    Run_Sampler(Psmp); Run_Encoder(Penc); ?
             //啟動采樣器和編碼器,兩者并發(fā)?
  }


4 性能優(yōu)化

  語音處理的實時性要求很高,否則,若數(shù)據(jù)處理速度跟不上語音變化速度,就會在錄音時出現(xiàn)剛采樣的數(shù)據(jù)覆蓋了先采入但未處理的數(shù)據(jù);在放音時,出現(xiàn)播放的速度比實際語音慢。當然,如果用足夠大的緩沖,可以避免錄音出現(xiàn)的問題,但放音出現(xiàn)的問題是無法避免的。同時,鑒于存儲資源對于嵌入式系統(tǒng)是很寶貴的,故此方案沒有實際價值。上文介紹的“雙Buffer”機制,能夠使采樣和編碼之間、解碼和播放之間分別互不影響、并發(fā)執(zhí)行,易于控制;但要滿足實時性要求,還要使編解碼速度符合采樣和播放的要求。語音速率是8 KB/s,而系統(tǒng)中一個采樣點用16位表示,故編解碼速度不能低于16 KB/s(即每秒至少編碼16 KB的PCM碼,每秒至少解出16 KB的PCM碼)。表1是未對系統(tǒng)優(yōu)化前,測試裸機無操作系統(tǒng)情況下,處理512 KB的PCM碼(對應(yīng)128 KB的ADPCM碼)所用時間。該測試是使用SoC內(nèi)部定時器TIMER進行的,見參考文獻[1]。測試結(jié)果顯示,系統(tǒng)優(yōu)化前沒有滿足語音實時性要求。

    
                 表1 優(yōu)化前編解碼速度

  到此,系統(tǒng)目標代碼都是在SDRAM中運行的。SEP3203提供了一個很有用的模塊——片內(nèi)高速存儲器eSRAM。eSRAM存取速度非??欤蛇_到0.89 MIPS/MHz,所以對系統(tǒng)性能有很大的優(yōu)化作用,而SDRAM卻只能有其性能的1/3左右。表2是在50 MHz時鐘、32位ARM指令情況下,SDRAM和eSRAM的性能比較。各項指標的意義見參考文獻[1]。

    
                表2 eSRAM和SDRAM性能比較
  
  但是,SEP3203的20K的eSRAM資源是有限的,不可能也不必要將所有代碼都放在其中執(zhí)行。ARM集成開發(fā)工具提供了Profile功能,可以對整個程序進行統(tǒng)計分析,得到各部分代碼(主要以標準C函數(shù)為單位)所耗時間占系統(tǒng)總時間的百分比。通過對軟件系統(tǒng)做Profile分析,得到各編解碼庫函數(shù)在總編解碼時間內(nèi)所占的百分比,其中主要部分如表3所列。

    
                表3 最耗費時間的庫函數(shù)

  以上三個函數(shù)在總編解碼時間內(nèi)占用了近80 %的時間(Quan()、Fmult()、Update()的功能分別為量化表查找、定點化的浮點數(shù)乘法、狀態(tài)變量更新),對這些代碼優(yōu)化就會明顯提高編解碼速度。把這些函數(shù)代碼整合到文件rec_esram.c中,然后加載remap.scf文件進行內(nèi)存映像(*.scf文件是ARM ADS集成開發(fā)工具提供的鏈接腳本文件)。下面是remap.scf文件的內(nèi)容:

  FLASH 0x30002000 0x1000000
  {?
    FLASH 0x30002000?
            //系統(tǒng)初始化入口及其他代碼存放地址
    {?
      init_ice.o (INIT, +First)?
      * (+RO,+RW,+ZI)?
    }?
    32bitRAM 0x00000000 //中斷向量表入口地址?
    {?
      boot_gfd.o (BOOT, +First)?
    } ?
    ESRAM 0x1fff0000 0x600 //核心庫代碼存放地址,在eSRAM中?
    {?
      rec_esram.o (+RO,+RW,+ZI)?
    }?
    /*堆棧設(shè)置部分*/
  }

  進行內(nèi)存映像后,rec_esram.c的目標代碼rec_esram.o(約為1.5KB)就加載到eSRAM(起始地址為0x1fff0000)中執(zhí)行了。表4是經(jīng)過eSRAM優(yōu)化后編解碼速度測試結(jié)果。

    
              表4 eSRAM優(yōu)化后的編解碼速度

  在有操作系統(tǒng)的情況下,也對語音系統(tǒng)性能進行了測試,如表5所列。該操作系統(tǒng)為東南大學(xué)專用集成電路系統(tǒng)工程技術(shù)與研究中心自主研發(fā)的面向嵌入式應(yīng)用的ASIXOS,提供圖形用戶界面、網(wǎng)絡(luò)、時鐘、實時中斷管理等支持和清晰的應(yīng)用程序開發(fā)接口。語音系統(tǒng)為該OS環(huán)境中的一個應(yīng)用,有獨立的用戶界面和底層服務(wù)。限于篇幅,本文不再詳述。

   從以上測試可以看出,在經(jīng)過eSRAM優(yōu)化后,無論是在裸機上還是在有操作系統(tǒng)的情況下,編解碼速度都能滿足語音實時性的需要,達到了設(shè)計要求。

    
              表5 eSRAM優(yōu)化后的編解碼速度

結(jié)語

  在設(shè)計一款面向多媒體應(yīng)用的嵌入式系統(tǒng)時,實時性能非常重要。本文提出了一種基于ARM7TDMI內(nèi)核的SoC中語音處理系統(tǒng)的設(shè)計方案,并根據(jù)該款SoC具有eSRAM的特點,進行了系統(tǒng)性能的優(yōu)化。對樣機的測試表明系統(tǒng)在主頻70 MHz、有操作系統(tǒng)的情況下編碼速率為19.88 KB/s,解碼速率為22.68 KB/s,達到了語音系統(tǒng)的實時性要求。而且,如果語音處理作為樣機的子系統(tǒng)應(yīng)用,其硬件設(shè)計也支持MP3播放和LCD觸摸屏的功能,實現(xiàn)了系統(tǒng)板面積減小、整機成本降低的目的,不失為一種高效價廉的設(shè)計方案。

                 參考文獻

1 凌明.基于ARM7TDMI的低成本手持多媒體設(shè)備處理器.南京:東南大學(xué)國家ASIC工程中心,2004
2 茍大舉,楊啟剛.基于ADPCM 編碼的語音錄放系統(tǒng)開發(fā)平臺.四川大學(xué)學(xué)報(自然科學(xué)版), 1998.4, Vol.35 No.2:178~182
3 傅秋良,袁宗寶.純軟件實現(xiàn)ADPCM語音壓縮算法.電信科學(xué), 1994.10, Vol.10 No.10:21~24
4 Gibson Jerry D. 多媒體數(shù)字壓縮原理與標準.李煜暉譯.北京:電子工業(yè)出版社,2002
5 CCITT. Recommendation G.721: A 32kbit/s Adaptive Differential Pulse?Code?Modulation, Red Book,1984
6 CCITT. Recommendation G.711: General Aspects of Digital Transmission Systems and Terminal Equipments, Blue Book, 1988

張兵:碩士研究生,主要研究方向為嵌入式多媒體音頻技術(shù)研究。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉