《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 一款專用可編程語音壓縮芯片的設計

一款專用可編程語音壓縮芯片的設計

2008-04-03
作者:韓大晗1, 崔慧娟1, 唐 昆1

  摘 要: 基于SELP算法模型原理,設計了一款高質量多速率語音專用處理器芯片。芯片使用可重構" title="可重構">可重構體系結構和超長指令字系統設計方法,將復雜度高的子程序" title="子程序">子程序進行優化,能夠顯著提高指令并行度。仿真結果表明,在該芯片上實現語音壓縮編碼算法,執行效率高于相同工藝水平的通用DSP,并保持原有編碼質量。該處理器能夠實現多種類型的語音壓縮算法" title="壓縮算法">壓縮算法,可以達到對語音算法的高保密性、低復雜度和易開發性。
  關鍵詞: 語音壓縮 專用芯片 可重構體系結構 超長指令字


  在通信過程中,為了適應多種應用目的,需要使用不同的語音壓縮編碼算法。如果利用DSP進行編程[1],存在編程難、保密性差、成本高等缺點;如果使用ASIC完成算法實現,只能用于實現單一算法,不能擴展到其他算法,難以進行二次開發[2][3]
  利用可重構體系結構[4],可以將各類語音算法常用的功能模塊使用專用指令集邏輯化實現,而對算法的可變成分仍使用基本指令集編寫,能大幅度降低程序量和編程工作量。片內FLASH(包括程序區與數據區)對外不可見,只能通過注入方式進行修改而不能讀取。這樣,既可以有效地達到算法的保密性,又能在固化的專用指令基礎上方便進行算法的改進,同時保持專用芯片制造成本低的特點。基于此思路開發了一種可編程專用語音編解碼芯片TR100。
1 SELP算法介紹
  壓縮算法采用實驗室自行開發的基于SELP(Sinusoidal Excitation Linear Prediction)的多幀聯合編碼算法[5],在線性預測正弦激勵模型的基礎上,引入多幀參數聯合矢量量化" title="矢量量化">矢量量化方法,進一步壓縮幀間冗余,使語音譜包絡信息和余量信號得到較好表示,在0.6kbps的極低速率下,獲得了很好的重建語音質量,可懂度達到90%以上。

?


  算法原理如圖1和圖2所示。輸入8kHz采樣率的語音信號以200個樣點為一幀,首先經過預處理后進行線性預測分析,對每幀語音提取預測系數、基音周期、子帶清濁音度和余量信號短時能量等參數。解碼器端采用多帶混合正弦激勵,分別通過由清濁音信息調制的帶通濾波器合成激勵信號,而后進行合成濾波和后濾波產生合成語音。
  在0.6kbps速率運行時采用多幀聯合量化編碼技術,將相鄰的3個語音幀聯合起來形成一個超幀。將預測系數轉化成線譜對系數,采用基于模式的余量分裂多級矩陣量化P-RS-MSMQ算法來量化3幀聯合的線譜對(LSP)參數。模式信息來自于帶通濁音度參數量化結果,用在LSP參數的矢量量化算法上,能夠提高量化性能。LSP參數量化分三個步驟:均值去除、模式預測和對LSP殘差子矩陣進行多級矩陣量化。用于模式預測的系數矢量是基于超幀模式的轉移,由前一超幀和當前超幀確定。預測的殘差矢量就是余量LSP參數矢量。將當前超幀各子幀的無偏LSP預測殘差矢量組成一個3×10的矩陣,然后分別進行三級矩陣量化,各級量化比特數分別為7、6、6、5。
  根據不同的信道狀況與質量要求,算法包括0.8kbps、1.2kbps和2.4kbps的三種速率壓縮方式,流程與0.6kbps算法基本相同,僅增加對余量信號的提取與編碼過程,其中需要進行512點FFT運算。
2 TR100芯片體系結構設計
  芯片設計工作主頻為20MHz,采用取指-譯碼-執行3級流水線設計。語音接口與PCM采樣芯片連接,壓縮數據接口使用RS232標準。內部結構如圖3所示。


  設計中采用了可重構體系的思想。所謂可重構體系結構,是指某一計算系統能夠利用可重用的硬件資源,根據不同的應用需求,靈活地改變自身的體系結構,以便為每個特定的應用需求提供與之相匹配的體系結構。TR100芯片采用粗粒度可重構體系結構,基本的可重構硬件單元包括存儲系統、運算單元、程序調度控制、寄存器和數據通路等類型。
  存儲系統包括FLASH和RAM兩部分,為避免數據存儲瓶頸,芯片內部包含2個16K×16位數據FLASH、5個2K×16位數據RAM,6個地址寄存器可以獨立對各個存儲器進行單周期" title="單周期">單周期讀寫操作,3個地址運算單元可以完成地址變換功能。
  在運算單元設計上,芯片內部包括2個32位增強型算術邏輯單元ALU,能夠完成以加減運算為中心、包括規格化、算術移位、四舍五入等輔助邏輯的復雜運算功能;1個32位乘法器MUL;1個40位乘累加器MAC;1個16位除法器DIV。除法運算需要10個周期,其他運算單元均為單周期執行。
  程序調度控制包括程序存儲器、2級硬循環、比較跳轉部件、比較設置部件、調用/返回部件、溢出判斷等單元。程序分兩部分存儲:程序FLASH存儲功能相對簡單、指令長度較短的部分,而程序RAM存儲功能較為復雜、占用運算量較大、指令長度較長的部分。這種設計方法稱為專用指令集設計,一方面保證了大多數語音壓縮算法可以在TR100芯片上可重組實時實現,另一方面也因為完成了不同算法的通用模塊而方便二次開發。
  輔助系統包括一個二組多層寄存器,每組包括19個32位寄存器,兩個寄存器組可以被同時訪問; 6個32位選通器作為數據通路將存儲系統與運算部件進行互聯,在保證數據連接靈活性的同時可以有效減少數據線寬;存儲器選通寄存器,用于設置指令訪問不同存儲器,以滿足多次調用相同子程序而使用不同數據的要求。
  小結一下該芯片的主要特性:
  1. 50ns運算周期,20MHz主頻;
  2. 2個32位增強型ALU, 1個32位乘法器,1個40位乘累加器;
  3. 6個地址寄存器,3個地址變換部件;
  4. 雙重硬件循環;
  5. 38×32bit雙寄存器組,支持分層窗口式訪問;
  6. 5×2K字數據RAM,2×16K字數據FLASH;
  7. 2K×256bit程序RAM;8K×64bit程序FLASH。
3 超長指令字格式設計
  為解決RISC體系結構下,隨著并行操作能力增強而導致的內部控制邏輯趨向復雜的問題,在七十年代開始,超長指令字(VLIW)體系結構開始進入研究領域。它的目的是既能支持較高指令級并行性,又能使硬件控制邏輯比較簡單[6]
  在針對語音編碼算法的專用處理器設計中,VLIW方法是非常適用的。而VLIW體系結構能在低復雜度的控制邏輯水平上產生較高指令并行性,從而使芯片在低主頻下就能夠實現語音運算算法,這是優于通用DSP的方面。由于算法中對資源并行度要求較高的程序模塊數量不大,可以通過全遍歷所有運算量較大的模塊,提取所有可用的指令并行模式,在硬件控制邏輯復雜度增加很小的前提下實現超長指令譯碼。
  本文設計的VLIW指令系統包括兩種形態:基本指令形態和專用指令形態。基本指令形態包括16位、32位、48位和64位四種指令長度,并行程度較低,用于設計對資源并行性要求不高的子程序。專用指令形態包括128位、192位和256位三種指令長度,并行程度較高,用于設計算法中時間復雜度較高、對資源并行性要求大的子程序。基本指令形態和專用指令形態均使用相同的指令格式,區別僅在于長度不同,這樣就可以使用相同的譯碼器進行譯碼,從而簡化了電路設計。在編解碼程序運行過程中,基本指令模塊直接從程序FLASH中取指,專用指令模塊從程序RAM中取指,均能做到單周期取指-單周期譯碼-單周期執行(除法運算除外)。
  具體指令格式如表1。


  其中,CBLength惟一確定本條指令的長度;CBSF惟一確定本長度下選用的指令子格式;CBCFi為第i個算子段的控制域,其編碼標識第i個算子編碼段所對應的算子;OPi為第i個算子編碼段編碼,其含義由CBCFi惟一確定。指令格式中的算子是指由硬件資源確定的指令字中的最小并行單元。
4 算法程序向芯片指令的移植
  各類語音編碼算法中,會有一些子程序是通用的功能模塊。表2是在TR100上實現這些常用程序的執行效率。


  可以看到,整個壓縮算法中運算量較大的模塊,如濾波器、點積、矢量量化等,TR100的運行效率均明顯高于DSP,甚至能夠達到2倍以上。這是由于對于運算、存儲單元訪問密集的模塊,硬件體系結構中各個獨立的ALU、乘法器、乘累加器與7個存儲體在指令系統中也有相應的指令格式進行并行訪問,保證可以單周期進行兩加兩乘運算同時可以向存儲器中進行兩讀一寫的操作。而對LPC參數計算與轉換、數學函數等雖然運算量不大、但各種語音算法都要使用的模塊,TR100的運行效率也與DSP基本相當。這就保證了在TR100芯片上移植各類語音算法時,受程序執行效率的限制較小,而可以專注于算法功能的開發。同時,芯片的注入功能可以對基本指令與專用指令進行修改,開發者如果需要對現有專用指令進行擴充,可以很方便地進行注入更改。
  下面以加權矢量量化為例,說明芯片的運算效率。在低速率語音算法中,由于線譜對系數常使用多幀聯合矢量量化,使得碼本的維數與規模都大為增加,導致搜索碼本的運算量非常巨大。在本文SELP算法中,600速率使用的多級LSP碼本最大是30維×128個的規模,搜索時需要計算全部碼本與當前系數的最小加權距離:
  
  循環內需要進行減法和2次乘法。對于一些有并行功能的DSP,使用流水線方式進行循環內的操作。由于指令寬度的限制,循環體內至少需要3個周期才能完成操作。
  在TR100芯片中,專用指令集長度可以達到256位,因此能夠將循環體內的操作使用一條指令:
  REPEAT 30
    ALUR1=R2-R3 || MULR=R1*ALUR1 ||
    ALUR2=ALUR1*MULR || LD1 *(AR1+) ||
    LD2 *(AR2+) || LD3 *(AR3+) ;
  循環開始前進行數據準備,循環內只要將所有運算和取數操作并行起來即可正確完成求加權矢量誤差的計算。在循環體內的一個操作周期相當于每秒87萬次運算。與通用DSP的實現相比,本芯片可以在循環體內減少5次運算,對矢量搜索模塊的優化超過4MIPS。
5 芯片性能
  存儲器的使用情況如表3,需要注意的是數據FLASH中存儲的是4個速率的不同碼本,因此規模較大。

?


  600bps速率算法各子模塊的運算量如表4。
  與C54x系列DSP實現結果相比,TR100芯片完成編解碼的運算復雜度為12.5MIPS,明顯低于C54xDSP所需要的40MIPS。TR100芯片需要9.7K字變量存儲空間與28K字碼本存儲空間,與C54xDSP所需的變量存儲空間與碼本存儲空間相當。
  為了驗證芯片編解碼工作的正確性,對比了浮點C程序、定點C程序以及芯片仿真三種情況下各個參數的重建誤差。表5中列出了三種情況下的各種結果,采用91 280幀中國軍標語音測試數據,可以看出芯片運算結果達到了計算機C程序仿真的水平。


  對于語音壓縮算法,由于基本算法模型相同,因此可以使用相同的專用處理器結構進行設計,在保證各類算法均可實現的前提下,提高運行效率。減少運算復雜度的意義在于能夠降低芯片功耗和工藝要求。即使不同算法有各自專用的處理模塊,也可以很方便地通過注入新的專用指令來進行修改。與DSP實現相比,專用處理器的運行效率更高,開發難度更低,保密度更好,更容易降低芯片規模。
參考文獻
1 賈志科, 崔慧娟, 唐 昆等. 低速率語音編解碼專用芯片的設計[J]. 清華大學學報,1999;39(5):73~76
2 McDonough J , Chang C , Kantak P, et al. A single chip QCELP vocoder for CDMA digital cellular[A]. Proceedings of IEEE Custom Integrated Circuits Conference[C]. New York, NY: IEEE, 1994;211~214
3 Byun K J, Hahn M, Kim K S. Implementation of 13 kbps QCELP vocoder ASIC[A]. Proceedings of AP-ASIC′99: The First IEEE Asia-Pacific Conference on ASICs[C]. Piscat-away, NJ: IEEE, 1999;258~261
4 王昭順, 王 沁, 曲英杰. 可重構計算機體系結構[J]. 北京科技大學學報,2001;23(4):386~388
5 李軍林, 崔慧娟, 杜 松等. 0.8kb/s高質量聲碼器算法[J]. 清華大學學報,2003;43(1):12~15
6 王 沁. VLIW體系結構微處理器設計考慮. 微計算機信息,1999;15(5):6~7

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 久久综合欧美成人 | 欧美亚洲综合在线 | 亚洲国产七七久久桃花 | 亚洲精品高清国产一线久久97 | 亚洲欧美另类日韩 | 伊人影视在线观看日韩区 | 亚洲欧美日韩一区二区在线观看 | 在线观看国产精品日本不卡网 | 成年在线视频 | 成人亚洲综合 | 天天操天天操天天操天天操 | 午夜激情视频在线 | 成人久久伊人精品伊人 | 午夜看片未满十八勿进 | 一级aa 毛片高清免费看 | 精品国产免费人成网站 | 国产成人亚综合91精品首页 | 天天摸天天碰天天爽天天弄 | 97色噜噜 | 一区 在线播放 | 午夜湿影院多多影院 | 日韩在线播放视频 | 免费簧片在线观看 | 日韩免费观看视频 | 中文字幕一区在线观看 | 99久9在线 | 免费 | 啪啪色网 | 黄色一级毛片免费看 | 亚洲欧美在线视频免费 | 亚洲男女免费视频 | wwwwxxxx国产| 欧美精品日韩一区二区三区 | 日韩视频在线观看免费 | 曰本三级香港三级三级人 | 色综合天天综合网国产成人网 | 日本欧美一区二区三区不卡视频 | www在线视频| 欧美激情国内自拍偷 | 国产一区二区视频在线观看 | 97精品伊人久久久大香线焦 | 日韩精品一区二区三区中文 |