G711原理

G.711是國際電信聯盟ITU-T定製出來的一套語音壓縮標準,它代表了對數PCM(logarithmic pulse-code modulation)抽樣標準,是主流的波形聲音編解碼標準,主要用於電話。

  1. 主要用脈衝編碼調製對音頻採樣,採樣率爲8k每秒。它利用一個 64Kbps 未壓縮通道傳輸語音訊號。
  2. 壓縮率爲1:2, 即把16位成8位。

G.711 標準下主要有兩種壓縮算法。

  1. u-law algorithm (又稱u-law, ulaw, mu-law),主要運用於北美和日本。
  2. A-law algorithm,主要運用於歐洲和世界其他地區。特別設計用來方便計算機處理的。

G.711將14bit(uLaw)或者13bit(aLaw)採樣的PCM數據編碼成8bit的數據流,播放的時候在將此8bit的數據還原成14bit或者13bit進行播放,不同於MPEG這種對於整體或者一段數據進行考慮再進行編解碼的做法,G711是波形編解碼算法,就是一個sample對應一個編碼,所以壓縮比固定爲:

  • 8/14 = 57% (uLaw)
  • 8/13 = 62% (aLaw)

3. G.711原理

G.711是將語音模擬信號進行一種非線性量化, 詳細的資料可以在ITU 上下到相關的spec 。下面主要列出一些性能參數:
G.711(PCM方式)

  • 採樣率:8kHz
  • 信息量:64kbps/channel
  • 理論延遲:0.125msec
  • 品質:MOS值4.10

算法原理:
A-law的公式如下,一般採用A=87.6

 

image

畫出圖來則是如下圖,用x表示輸入的採樣值,F(x)表示通過A-law變換後的採樣值,y是對F(x)進行量化後的採樣值。

image

由此可見

  • 在輸入的x爲高值的時候,F(x)的變化是緩慢的,有較大範圍的x對應的F(x)最終被量化爲同一個y,精度較低。
  • 相反在低聲強區域,也就是x爲低值的時候,F(x)的變化很劇烈,有較少的不同x對應的F(x)被量化爲同一個y。意思就是說在聲音比較小的區域,精度較高。

對應反量化公式(即上面函數的反函數):

image

3.1 G.711A(A-LAW)壓縮十三折線法

G.711A輸入的是13位(S16的高13位),這種格式是經過特別設計的,便於數字設備進行快速運算。

  1. 取符號位並取反得到s。
  2. 獲取強度位eee,獲取方法如下圖所示
  3. 獲取高位樣本位wxyz
  4. 組合爲seeewxyz,將seeewxyz逢偶數爲取補數。

A-law如下表計算。

  • 第一列是採樣點,共13bit,最高位爲符號位。
  • 對於前兩行,折線斜率均爲1/2,跟負半段的相應區域位於同一段折線上。
  • 對於3到8行,斜率分別是1/4到1/128,共6段折線。
  • 總共13段折線,這就是所謂的A-law十三段折線法。

轉換表:
線性輸入代碼        壓縮碼
s0000000wxyz`a    s000wxyz
s0000001wxyz`a    s001wxyz
s000001wxyz`ab    s010wxyz
s00001wxyz`abc    s011wxyz
s0001wxyz`abcd    s100wxyz
s001wxyz`abcde    s101wxyz
s01wxyz`abcdef    s110wxyz
s1wxyz`abcdefg    s111wxyz

其中s是符號位,並倒引號標記後的位`被丟棄。

示例:

輸入pcm數據爲1234,二進制對應爲(0000 0100 1101 0010)
二進制變換下排列組合方式(0 00001 0011 010010)
1、獲取符號位最高位爲0,取反,s=1
2、獲取強度位00001,查表,編碼制應該是eee=011
3、獲取高位樣本wxyz=0011
4、組合爲10110011,逢偶數爲取反爲11100110,得到E6

3.2 G.711u(u-law)

使用在北美和日本,輸入的是14位,編碼算法就是查表,計算出:基礎值+平均偏移值

μ-law的公式如下,μ取值一般爲255

 

image

image

相應的μ-law的計算方法如下表

 

 

示例:
輸入pcm數據爲1234
1、取得範圍值,查表得 +2014 to +991 in 16 intervals of 64
2、得到基礎值爲0xA0
3、得到間隔數爲64
4、得到區間基本值2014
5、當前值1234和區間基本值差異2014-1234=780
6、偏移值=780/間隔數=780/64,取整得到12
7、輸出爲0xA0+12=0xAC

3.2 A-law和u-law對比

A-law和u-law畫在同一個座標軸中就能發現A-law在低強度信號下,精度要稍微高一些。

 

實際應用中,我們確實可以用浮點數計算的方式把F(x)結果計算出來,然後進行量化,但是這樣一來計算量會比較大,實際上對於A-law(A=87.6時),是採用13折線近似的方式來計算的,而μ-law(μ=255時)則是15段折線近似的方式。



 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章