g723编解码简述
先寫個簡單的吧,過段時間再把g723代碼詳細分析
?
g723針對8k采樣,16bit量化的pcm信號進行編碼,30ms的延遲,意味著每個數據塊是240個采樣
?
首先對信號進行低通濾波,為的是去掉低頻分量
接下來是lpc10分析,提取出10lpc系數,沿著單位圓暴力搜索出對應的lsf系數,這一段為
各種語音編解碼共有的,過段時間筆者再對lpc做一個代碼級的詳細分析吧.
?
完成了lpc分析之后,就剩對激勵的編碼了,這就是各種編解碼的不同之處,
當然在這之前,g723會根據lpc系數對信號進行感知加權,
對激勵源的編碼也是針對感知加權后的信號進行的
?
這里簡述一下5.3k速率的激勵源編碼
?
對信號進行基音周期分析(自相關法)
?
編碼分兩級進行,首先目標信號先得經過自適應激勵,
所謂自適應激勵,就是把歷史的激勵保存下來,
?
在基音周期附近,搜索自適應激勵,
每個激勵樣值是由五個歷史激勵與增益碼本里的系數乘積得到的
最佳自適應的取值標準是按歐式距離最短的方式得到的
?
自適應激勵之后,得到了殘差信號,對其在一個偽隨機的碼本搜索固定碼本
g723對固定碼本做了新的定義,隨將偽隨機沖激信號分成4個,每個只在固定的
位置出現,這樣就簡化的固定碼本搜索的運算量.
碼字為沖激信號的位置(所有的激勵信號可以同時移動一個位置,這需要一個額位的bit位來編碼)
,符號,并且在這一步算出固定碼本的增益
?
完成了固定碼本的搜索之后,
g723做一些同步內存更新,將當前解碼后和自適應激勵保存下來,作為之后最佳自適應激勵的碼本
?
?
g723解碼...看懂編碼,解碼自然也就懂了,編解碼雙方都保存有自適應碼本,做個語音合成
總結
- 上一篇: CSU 1646: HearthSton
- 下一篇: CAS 票根‘ST-xxxxx‘不符合目