女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]當前,Voice overIP(VoIP)技術正在不斷普及,通過Internet的語音通信量也日漸增加。目前VoIP中使用的低碼率語音壓縮標準主要有G.723.1和G.729兩種。隨著VoIP技術的不斷發(fā)展,要求產(chǎn)品的集成度與性能進一步提高,利用新一代高性能DSP芯片,實現(xiàn)單片DSP處理多路語音信號,是今后的發(fā)展趨勢。本文根據(jù)C6201芯片的特點,作了大量針對G.723.1標準本身的優(yōu)化,降低了運算量,滿足了多路信號的實時實現(xiàn)。

摘要:介紹了一種基于TMS320C6201的ITU-T G.723.1全雙工實時多通道語音編解碼的實現(xiàn)。首先簡要介紹了G.723.1標準和C6201的芯片結構,然后提出了基于C語言和匯編語言的各種優(yōu)化方法以降低計算量,最后給出了各個主要模塊的性能指標。該實現(xiàn)能夠在200MHz的C6201 DSP上實現(xiàn)16路語音信號的實時編解碼,完全符合ITU-T G.723.1標準的定點算法,通過了ITU-T的所有測試矢量。

關鍵詞:語音編碼 定點數(shù)字信號處理器 ITU標準

當前,Voice overIP(VoIP)技術正在不斷普及,通過Internet的語音通信量也日漸增加。目前VoIP中使用的低碼率語音壓縮標準主要有G.723.1和G.729兩種。隨著VoIP技術的不斷發(fā)展,要求產(chǎn)品的集成度與性能進一步提高,利用新一代高性能DSP芯片,實現(xiàn)單片DSP處理多路語音信號,是今后的發(fā)展趨勢。本文根據(jù)C6201芯片的特點,作了大量針對G.723.1標準本身的優(yōu)化,降低了運算量,滿足了多路信號的實時實現(xiàn)。

1 G.723.1標準介紹

G.723.1標準是ITU組織于1996年推出的一種低碼率編碼算法。主要用于對語音及其他多媒體聲音信號的壓縮,如可視電話系統(tǒng)、數(shù)字傳輸系統(tǒng)和高質語音壓縮系統(tǒng)等。

G.723.1標準可在6.3kbps和5.3kbps兩種碼率下工作。其中,高碼率算法具有較高的重建語音質量,而低碼率算法的計算復雜度則較低。與一般的低碼率語音編碼算法一樣,G.723.1標準采用線性預測的合成分析法(Analysis-by-Synthesis)。對激勵信號進行量化時,高碼率算法采用多脈沖最大似然量化(MP-MLQ),而低碼率算法則采用算術碼本激勵線性預測(ACELP)。目前,G.723.1已經(jīng)能在多種DSP芯片上實現(xiàn),如美國TI公司的TMS320C5x、TMS320C54x和朗訊科技公司的DSP16xx等。

G.723.1編碼器能對以8kHz采樣的話帶語音信號進行壓縮,其結構框圖見圖1(a)。從圖中可以看出,編碼器是基于線性預測合成分析法原理,其目的是最小化感知加權誤差信號。為了降低碼率,G.723.1采用了較長的幀尺寸,每幀240個樣值,即30毫秒幀長。每幀輸入信號首先通過一階高通濾波器濾除直流分量,然后將之分成四個60個樣值的子幀,每個子幀獨立進行LPC分析。為了提高LPC系數(shù)的連續(xù)性,采用了長度為180個樣值的重疊窗,即同時包含前后兩個子幀,這使算法引入60個樣值的超前時延,因此算法的總時延為37.5毫秒。LPC系數(shù)用線性譜頻率(LSF)表示,LSF參數(shù)采用預測分裂矢量量化,只對第四子幀進行。為了提高量化感知質量,高通濾波后的語音信號需通過共振峰感知加權濾波器和諧振峰噪聲整形濾波器以生成初始目標信號。前者參數(shù)由各子幀的未量化LPC系數(shù)構成,后者通過對每兩子幀進行開環(huán)基音周期估計得到,其中基音周期的范圍為18到142個樣值。LPC合成濾波器、共振峰感知加權濾波器和諧振峰噪聲整形濾波器用于系統(tǒng)零輸入響應計算和最佳激勵估計。G.723.1編碼器還包括一個五階基音預測器,其參數(shù)根據(jù)開環(huán)基音估計值和脈沖響應進行閉環(huán)基音搜尋得到。在進行最佳激勵估計時,需從初始目標信號中減去系統(tǒng)零輸入響應和基音預測器貢獻以得到最終目標信號,然后針對高低碼率分別采用MP-MLQ和ACELP方法進行量化。其中LSF參數(shù)、基音值和激勵參數(shù)需傳送給解碼器。

解碼器首先根據(jù)得到的LSF參數(shù)重建LPC合成濾波器,然后根據(jù)基音值和激勵參數(shù)得到自適應碼本激勵信號和固定碼本激勵信號。為了提高重建語音的主觀質量,解碼器還包括一個后濾波器,后濾波器由共振峰和基音后濾波器組成。激勵信號依次通過基音后濾波器、合成濾波器和共振峰后濾波器合成重建語音,其結構框圖見圖1(b)。

2 TMS320C6201芯片結構簡介

TMS320C6201是一種32位的定點DSP,工作頻率最高達200MHz。它有兩組運算單元,每組4個,共8個。除M單元只能作乘法外,其他單元都可以靈活使用,如D單元可以做Load、Store和加減操作,S單元可以進行移位和加減。C6201有32個通用寄存器,分為A、B兩側。兩側的寄存器有交叉通路,同一指令可以同時訪問雙側的寄存器。C6201采用了超長指令字結構,一次最多可以同時執(zhí)行8條指令(每個單元一條)。它有11級流水,所有的指令都是精簡指令。C6201允許使用緩存(Cache)模式,可以運行大型程序而不降低速度。圖2是C6201的結構。

3 標準的實現(xiàn)

用C6201實現(xiàn)G.723.1標準的最大優(yōu)勢在于它極強的并行處理能力,用一塊DSP可以實現(xiàn)多路語音的壓縮,大大簡化了硬件的設計。C6201是TI公司推出的第一種支持C編譯器的DSP芯片。通常,C編譯器能完成整個工作的70%,而30%的進一步優(yōu)化必須通過手寫匯編來實現(xiàn),所以對整個程序的優(yōu)化分為C語言級和匯編語言級兩部分。

3.1 C語言級的優(yōu)化

3.1.1 循環(huán)展開(loop-unrolling)

使用具有并行能力的DSP開發(fā)軟件時,一個重要的思想就是充分利用DSP的字長和數(shù)目眾多的運算單元,盡量把循環(huán)體展開。通過增加每次循環(huán)中執(zhí)行的指令數(shù)來減少總的循環(huán)次數(shù),可使得在同樣的時鐘周期內(nèi)能運行更多的指令,提高了循環(huán)的效率。

3.1.2 提高寄存器的利用率

DSP芯片內(nèi)部的運算單元運行效率非常高,但如果寄存器和數(shù)據(jù)總線之間的數(shù)據(jù)交換頻繁,將使DSP的執(zhí)行效率大打折扣。因為DSP在進行內(nèi)存操作時,往往需要若干周期的延遲,如Load指令要有4個周期的延遲,Store指令需要2個周期的延遲。為了減少耗時的內(nèi)存操作,可以在程序進入循環(huán)體之前,將要頻繁使用的數(shù)據(jù)預先放入寄存器,然后反復調用,實踐證明這種方法可以提高一部分效率。

3.1.3 使用內(nèi)在函數(shù)(Intrinsic)

內(nèi)在函數(shù)是在某些C6201DSP的匯編指令前加上“_”構成?它可以方便地實現(xiàn)某些需若干C語句才能實現(xiàn)的功能。它是一種非常簡便高效的優(yōu)化方法,它的調用格式和普通C函數(shù)一樣,但在編譯時編譯器會自動將Intrinsic用對應的匯編指令替代。C6201指令集中絕大多數(shù)的運算邏輯指令都可以這樣使用,比如飽和絕對值、飽和加、飽和減、飽和乘、兩個字中的對應半字同時加或同時減、兩個字中的對應半字同時乘或交叉乘、歸一化及位操作等。經(jīng)過此步優(yōu)化后,大部分循環(huán)體都可以生成較為有效的流水內(nèi)核(piplinedkernel)。用Intrinsic替代G.723.1原先的C代碼,運算量下降為原來的1/10。

3.1.4 對算法的冗余部分合理精簡

經(jīng)過檢查,發(fā)現(xiàn)ITU-T G.723.1的C代碼存在冗余部分。象6.3k碼率的MP-MLQ搜索模塊中,只需要用到偶數(shù)位置的脈沖響應的自相關,所以對奇數(shù)位置的脈沖響應自相關計算可以省略。

另外,在G.723.1標準中存在大量的10階FIR和10階IIR濾波器運算,如編碼部分的感知加權、零輸入響應、解碼部分綜合濾波器和后濾波等,FIR和IIR的通用形式可以表示為:


每次循環(huán),FIR濾波器內(nèi)存要用新的輸入值更新,IIR濾波器內(nèi)存要用新的輸出值更新,使用按標準提供的算法,要專門用一個10階循環(huán)更新內(nèi)存。如果用一個10單位大小的循環(huán)緩存區(qū),每次用新值覆蓋最老的樣值,動態(tài)調整循環(huán)緩存區(qū)的頭指針,可以節(jié)省原先用于內(nèi)存更新的cycle。

3.2 匯編級優(yōu)化

由于C編譯器只能完成70%的工作?且對于復雜的循環(huán),C編譯器無法生成高效率的代碼,所以對運算量大的模塊只能用手寫匯編。

3.2.1 字長優(yōu)化

C6201的字長為32位,它支持按字節(jié)、半字、字存取。對于16位的數(shù)組,當它在內(nèi)存中連續(xù)排列時,用32位讀寫指令LDW或STW替代16位讀寫指令LDH或STH,循環(huán)次數(shù)可減少一半。另外,C6201的匯編指令支持兩個32位寄存器的高16位和低16位之間互乘,結果分別放到不同的寄存器中,互不影響。具體指令為SMPY(L×L)、SMPYH(H×H)、SMPYHL(H×L)和SMPYLH(L×H)。通過字長優(yōu)化,可以大大提高程序的運行效率。必須注意的是,在使用字長優(yōu)化時,數(shù)組在內(nèi)存中的位置必須對齊32位邊界。

3.2.2 對外循環(huán)的優(yōu)化

C6201的C編譯器對多重循環(huán)的最內(nèi)層一般能較好地優(yōu)化到一句到兩句,但對外循環(huán)的優(yōu)化效率則差很多。手寫匯編時,可以先將內(nèi)循環(huán)展開,再把外循環(huán)的指令并入其中,可以減少所耗費的cycle數(shù)。

C6201的循環(huán)一般分前導(Prolog)、內(nèi)核(Kernel)及排空(Epilog)三部分。代碼的并行程度從Prolog開始不斷提高,Kernel內(nèi)的并行程度最高,Epilog與Prolog相反,并行性逐漸降低。在多重循環(huán)中,如果盡量把內(nèi)循環(huán)前導部分的指令與填入排空部分未用的單元,一起執(zhí)行,可以在執(zhí)行本次循環(huán)的排空語句的同時執(zhí)行下次循環(huán)的前導語句。這樣可不多花cycle而提高整個循環(huán)的效率。

4 實現(xiàn)結果

經(jīng)過C語言級和匯編級的多種優(yōu)化,最后實現(xiàn)了一路G.723.1的編解碼需要花費10.6MCPS,整個代碼的程序空間為208K byte(程序中包括了部分c6201的庫函數(shù)),數(shù)據(jù)空間為8K byte,碼本大?。玻埃?byte,多通道的上下文數(shù)據(jù)為1.48K byte。200MHz的C6201每秒可以實時編解碼16路語音信號。所有代碼全部通過了ITU-T測試矢量的測試。表1是各主要模塊的運算量。

表1 G.723.1各主要模塊運算量

函數(shù)名每次調用所費Cycle編碼部分AtoLsp
Lsp_Svq
Estim_Pitch
Find_Acbk
Find_Best
D4i64_LBC5975
7507
11250
21891
26760
25267G7231_Coder283944(at 6.3kbps)
286258(at 5.3kbps)解碼部分G7231_Decoder34483(at 6.3kbps)
32270(at 5.3kbps)總計Codec10.6MCPS

本文提出的利用C6201 DSP進行ITU-T G.723.1全雙工?實時多通道語音編解碼的實現(xiàn)。該實現(xiàn)可以在IP電話、視頻會議中得到廣泛應用。

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

為增進大家對嵌入式的認識,本文將對嵌入式開發(fā)以及學習嵌入式需要注意的事項予以介紹。

關鍵字: 嵌入式 指數(shù) 嵌入式開發(fā)

中國上海,2025年4月7日 — 全球領先的嵌入式系統(tǒng)開發(fā)軟件解決方案供應商IAR正式發(fā)布全新云就緒平臺,為嵌入式開發(fā)團隊提供企業(yè)級的可擴展性、安全性和自動化能力。該平臺于在德國紐倫堡舉辦的embedded world...

關鍵字: 自動化 嵌入式開發(fā) RISC-V

在嵌入式系統(tǒng)開發(fā)領域,VS Code(Visual Studio Code)作為一款輕量級但功能強大的代碼編輯器,正逐漸成為開發(fā)者的首選工具。本文將詳細介紹如何在VS Code上搭建嵌入式開發(fā)環(huán)境,并分享一些調試技巧。

關鍵字: VS Code 嵌入式開發(fā)

隨著汽車電子化、智能化程度的不斷提高,車載以太網(wǎng)(Automotive Ethernet)作為新一代車載網(wǎng)絡通信技術,正逐漸成為汽車內(nèi)部通信的主干網(wǎng)絡。它以其高帶寬、低延遲和強抗干擾能力,為汽車提供了更加高效、可靠的數(shù)據(jù)...

關鍵字: 車載以太網(wǎng) 嵌入式開發(fā)

隨著物聯(lián)網(wǎng)技術的飛速發(fā)展,嵌入式系統(tǒng)對實時性、低功耗和可擴展性的要求越來越高。Zephyr RTOS(實時操作系統(tǒng))作為一款專為資源受限設備設計的開源RTOS,憑借其輕量級、模塊化和高可擴展性,在嵌入式開發(fā)領域得到了廣泛...

關鍵字: 嵌入式開發(fā) Zephyr RTOS 物聯(lián)網(wǎng)

嵌入式開發(fā),作為電子工程和計算機科學交叉領域的重要分支,對于構建穩(wěn)定、高效的軟件系統(tǒng)提出了獨特挑戰(zhàn)。本文將深入探討嵌入式開發(fā)的可靠方法論,結合實例與代碼,為開發(fā)者提供一套系統(tǒng)化的指導原則。

關鍵字: 嵌入式開發(fā) 計算機科學

嵌入式開發(fā),作為電子工程和計算機科學的交匯點,對軟件系統(tǒng)的穩(wěn)定性和效率提出了極高的要求。本文將結合具體案例,深入探討嵌入式開發(fā)中的可靠方法論,為開發(fā)者提供一套系統(tǒng)化的指導原則。

關鍵字: 嵌入式開發(fā) 智能家居

在科技日新月異的今天,嵌入式開發(fā)作為連接硬件與軟件的橋梁,在物聯(lián)網(wǎng)、智能設備、工業(yè)自動化等領域扮演著至關重要的角色。對于許多技術愛好者而言,自學嵌入式開發(fā)既是一個充滿魅力的挑戰(zhàn),也是一條通往創(chuàng)新實踐的必由之路。然而,這條...

關鍵字: 嵌入式開發(fā) 物聯(lián)網(wǎng)

在科技日新月異的今天,嵌入式開發(fā)與Java開發(fā)作為軟件開發(fā)領域的兩大重要分支,各自展現(xiàn)出了獨特的發(fā)展軌跡和市場前景。近年來,關于嵌入式開發(fā)是否會像Java開發(fā)一樣“卷”的討論日益增多,這背后既反映了市場對技術趨勢的敏銳洞...

關鍵字: 嵌入式開發(fā) Java開發(fā)

現(xiàn)在在嵌入式開發(fā)MCU中,八塊MCU仍占據(jù)三分之一以上的份額,在工業(yè)控制,安全,物聯(lián)網(wǎng),消費電子等諸多領域,八塊MCU依然隨處可見。

關鍵字: 嵌入式開發(fā) MCU
關閉