G711(G711a+g711u)編碼原理及代碼


G711編碼的聲音清晰度好,語音自然度高,但壓縮效率低,數據量大常在32Kbps以上。常用於電話語音(推薦使用64Kbps),sampling rate為8K,壓縮率為2,即把S16格式的數據壓縮為8bit,分為a-law和u-law。

a-law也叫g711a,輸入的是13位(其實是S16的高13位),使用在歐洲和其他地區,這種格式是經過特別設計的,便於數字設備進行快速運算。

運算過程如下:

(1)      取符號位並取反得到s,

(2)      獲取強度位eee,獲取方法如圖所示

(3)      獲取高位樣本位wxyz

(4)      組合為seeewxyz,將seeewxyz逢偶數為取補數,編碼完畢

示例:

輸入pcm數據為3210,二進制對應為(0000 1100 1000 1010)

二進制變換下排列組合方式(0 0001 1001 0001010)

(1)      獲取符號位最高位為0,取反,s=1

(2)      獲取強度位0001,查表,編碼制應該是eee=100

(3)      獲取高位樣本wxyz=1001

(4)      組合為11001001,逢偶數為取反為10011100

編碼完畢。

 

u-law也叫g711u,使用在北美和日本,輸入的是14位,編碼算法就是查表,沒啥復雜算法,就是基礎值+平均偏移值,具體示例如下:

pcm=2345

(1)取得范圍值

+4062 to +2015 in 16 intervals of 128

  

(2)得到基礎值0x90,

(3)間隔數128,

(4)區間基本值4062,

(5)當前值2345和區間基本值差異4062-2345=1717,

(6)偏移值=1717/間隔數=1717/128,取整得到13,

(7)輸出為0x90+13=0x9D

參考https://blog.csdn.net/szfhy/article/details/52448906


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM