色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>DSP>語音編解碼算法G.723.1在DSP上的優化

語音編解碼算法G.723.1在DSP上的優化

2017-11-01 | rar | 0.4 MB | 次下載 | 1積分

資料介紹

1 引言
  G.723.1是刪組織于1996年推出的一種低碼率的語音編碼算法標準,也是目前該組織頒布的語音壓縮標準中碼率最低的一種標準。G.723.1主要用于對語音及其它多媒體聲音信號的壓縮,目前在一些數字音視頻傳輸、高質量語音壓縮等系統中都得到廣泛應用。
  2 G.723.1算法的復雜度分析
  將G.723.1移植到TMS320C64xx后,就可借助TI集成開發工具CCS(Code Composer Studio)的Profile功能來評估其各個子程序或函數的執行運算量,從而把程序的優化集中在對程序性能影響最大的代碼上去。
  通過分析可以看出,在G.723.1的編解碼算法中,碼本搜索所花費的運算量是比較大的,如Find_Best(),Find_Fcbk(),Find_Acbk():另外,在LPC分析和LSP參數的計算上也有運算量比較大的,如Comp_Lpc(),Lsp_Qnt(),Lsp_Svq()。
  3 代碼的優化
  代碼優化的工作有兩大目的:一是執行速度提高,實現實時;二是盡量不擴大程序體積(Code Size),使之在內存允許的范圍內。顯然,兩者存在一定的矛盾,當今超大規模集成電路的發展使RAM資源不再是系統的瓶頸,因此該部分工作的主要任務是怎樣提高執行速度。代碼的優化工作主要在CCS環境中進行。優化的原則是要充分考慮C64xx處理器超長指令字、多個運算單元和深度流水線的結構特點,以及避免過多的讀寫內存指令和程序轉移指令,充分發揮其強大的運算能力。具體方法包括(次序有先后):
  3.1基本運算集的優化
  G.723.1算法程序是用定點運算完成浮點運算,為了防止定點運算時可能溢出,許多運算需要進行飽和判斷,為此程序專門定義了基本運算集,實現諸如飽和加法、飽和乘法、除法和移位等操作。在程序中這些操作調用相當頻繁,經CCS的profile工具測試,基本運算函數集的調用占用了95%以上的CPU時間。因此,我們要從基本運算集的優化開始。在熟悉掌握C64xx指令集的前提下,分析基本運算集中各個函數完成的悉掌握C64xx指令集的前提下,分析基本運算集中各個函數完成的功能和對全局變量產生的影響,用C64xx指令取而代之或加以改編。其中包括對跳轉和流水線的優化討論、對乘積的飽和調整和全局變量OveRFlow的相關操作。
  由于基本運算集以函數形式存在,兩次跳轉f函數的調用與返回1必不可少,將引起流水線的兩次打斷,表現為12個指令周期的占用。將這嶁基本運算函數集改成宏的形式,即將基本運算內嵌(inline)至lJ調用程序中,由此町以消除跳轉和流水線打斷帶來的指令周期占用,提高執行速度。雖然這樣做增加了代碼長度,多占用了一些內存,但由于基本運算函數體積均較小,再經過一定的代碼優化,在程序體積上的犧牲幾乎町以忽略。
  基本運算的函數定義在BASIC.C文件里面,如果能夠對這些簡單甬數進行內聯指令(intrinsic)的優化,就能達到事半功倍的效果。內聯指令是匯編指令的直接映射,具有很高的效率。與此同時帶來的一個問題是溢出保護位Overflow的判斷,這是基本函數里用來標識溢出的全局變量,它的作用等同于CSR(Control Status Register)寄存器的SAT(Saturation)位,當數據溢出時,SAT位被系統自動設置為1,所以編解碼函數里對Overflow的判斷可以轉化成對SAT位的判斷。引用CSR寄存器時需要在最開始的時候聲明extem cregister volatile ansigned int CSR。
  C64xx指令提供了飽和乘法指令SMPY,實現16“16位的乘法與飽和結果調整,其執行操作如下:
  if(cond){
  if((src 1*src2《《1)!=0x80000000)
  dst=((src 1*src2)《《1);
  else
  dst=0x7ffffff;
  }
  else
  nop;
  將原指令中的乘法指令改為SMPY.就可以完成乘法和飽和調整兩種計算,這樣可以省去飽和調整3條指令。與此類似,其它的飽和運算,C64xx都提供了相應的指令實現,將普通運算指令替換為飽和運算指令,飽和結果調整部分的運算均可以省去。
  3.2主程序的優化
  主程序的優化手段主要采用了以下幾種方法:
  (1)使用內聯函數(intrinsics)
  內聯函數是可直接映射為C64xx指令的特殊函數,它在指令前加上”_”表示。例如:
  #define L_add(L_var1,L_var2) _sadd(L_var1,L_var2)
  #define L_mult(var1,vat2) _smpy(var1,var2)
  等,基本函數的內聯優化需要對原函數的定義和內聯指令都比較熟悉。
  使用內聯函數代替相應的C語句是一種非常簡便高效的優化方法。如上面提到的飽和乘法,在C語句中。我們通常要使用兩個嵌套的條件判斷語句來檢查結果是否溢出,而指令int_smpy(int a.int b) 則在完成乘b的運算后,再做一次飽和處理,這樣一條DSP指令就可完成C語言中多條語句才能完成的計算,可以節省很多時鐘周期。
  (2)循環展開(loop—unrolling)
  程序中的有很多的雙重循環和多暈循環(比如代數碼本搜索計算),由于C64xx優化器在優化時只在最內層循環中形成一個指令流水(最多可以達到8級流水),這樣循環語句就不能充分利用軟件流水線,而且對于內部循環次數較少的情況,消耗在prolog和eplog上的時鐘周期也不可忽視。針對這種情況,一個有效的辦法就是將雙重或多重循環展開,降低循環次數。這樣雖然代碼長度增加了,但有更多的運算能夠參加到pipeline中。由于減少了流水線排空和提高了功能單元的利用率,程序執行速度會大大提高。
  (3)減少分支和調用指令,減少判斷指令
  程序中的分支、調用以及判斷指令會引起程序的跳轉,而每個跳轉指令都有5個延遲間隙。因此延長了程序執行時間;另外,循環內跳轉也會使軟件流水受到阻塞,降低了代碼執行效率。優化中,可以使用內嵌、合并判斷語句來減少判斷次數或用邏輯指令替代判斷的方法盡可能的消除中斷流水線指令帶來的影響。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1489次下載  |  免費
  3. 2單片機典型實例介紹
  4. 18.19 MB  |  91次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關電源原理及各功能電路詳解
  10. 0.38 MB  |  9次下載  |  免費
  11. 6基于AT89C2051/4051單片機編程器的實驗
  12. 0.11 MB  |  4次下載  |  免費
  13. 7基于單片機和 SG3525的程控開關電源設計
  14. 0.23 MB  |  3次下載  |  免費
  15. 8基于單片機的紅外風扇遙控
  16. 0.23 MB  |  3次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30319次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關電源設計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537791次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費
主站蜘蛛池模板: 一个人免费观看在线视频播放 | 91精品乱码一区二区三区| 俄罗斯12x13x处| 小黄鸭YELLOWDUCK7596| 久久99亚洲AV无码四区碰碰| 99国产精品偷窥熟女精品视频| 蓝男色gay| 久久视频在线视频观看精品15| 国产午夜人做人免费视频中文| 99久久99久久久99精品齐| 真人裸交有声性动态图| 区一区二视频免费观看| 双手绑在床头调教乳尖| 一个人在线观看免费视频| 无限好资源免费观看| 色偷偷亚洲男人天堂| 伊人网青青草| 国产精品青青青高清在线密亚| 亚洲黄色片免费看| 美丽的姑娘BD在线观看| 国产白丝JK被疯狂输出视频| 亚洲中文字幕日本在线观看| 青年医生插曲| 黄桃AV无码免费一区二区三区| 97超碰免费人妻中文| 亚在线观看免费视频入口| 美女pk精子4| 中文国产在线观看| yellow在线观看免费直播| 国产国产乱老熟女视频网站97| 星空无限传媒视频在线观看视频| 伊人久久亚洲综合天堂| JAPANBABES11学生老师| 久久视频在线视频观品15| 恋老视频 国产国佬| 日韩美女爱爱| 亚洲视频中文字幕在线| 男女床上黄色| 人妻换人妻AA视频| 伊人精品在线| 边做边爱免费视频播放|