G.711編解碼原理

簡介

G.711是ITU-T標準音頻擴。它主要是在使用電話。該標準於1972年。它的正式名稱發佈的用法是脈衝編碼調製(PCM語音頻率)。它在許多技術的要求的標準,例如在H.320和H.323規格。它也可以用於傳真在IP網絡上的通信(如在定義T.38規範)。G.711,也被稱爲脈衝編碼調製(PCM),是一種很常用的波 ​​形編解碼器。G.711是窄帶音頻編解碼器,可提供長途電話質量的音頻,在64 kbit / s的。G.711通過在300-3400赫茲和他們的樣品以每秒8000採樣的速率範圍內的音頻信號,以在該速率50份每百萬份(ppm)的耐受性。非均勻(對數)量化與8位用於表示每個樣品,結果在64 kbit / s的比特率。有兩種不同的版本; μ-law,它們主要用於北美,和A-law,它們在使用中北美以外的其他大多數國家。
兩增強G.711已經出版:G.711.0利用無損數據壓縮,以減少帶寬使用和G.711.1通過增加帶寬增加音頻質量。


特點

  • 採樣頻率8千赫
  • 64 kbit / s的比特率(每個樣品8千赫採樣頻率×8位)
  • 典型的算法延遲爲0.125毫秒,沒有先行延遲
  • G.711是一個波形 的語音編碼器
  • G.711附錄I定義了一個丟包補償(PLC)算法來幫助隱藏傳輸損耗在分組網絡
  • G.711附錄II定義了一個連續傳輸(DTX)算法,使用語音活動檢測(VAD)和舒適噪音生成(CNG),以減少帶寬使用過程中的沉默期
  • PSQM理想條件下測試得出的平均意見得分 4.45爲G.711μ律,爲4.45 G.711 A律
  • PSQM網絡下的壓力測試得出的平均意見得分的4.13 G.711μ律,4.11 G.711 A律

類型

G.711定義了兩個主要的擴算法中,μ-law算法和A-law算法。兩者都是對數,但A-法律被專門設計爲簡單的計算機來處理。該標準還定義的重複碼值定義爲0的功率電平的一個序列分貝。
μ律和A律編碼算法,14位和13位有符號的線性PCM採樣(分別)爲對數8位採樣。因此,在G.711 編碼器將建立一個64千比特/秒的比特流用於取樣8kHz的信號。
G.711μ律往往給更高的分辨率更高範圍內的信號,而G.711 A律提供了更多的量化水平較低的信號電平。

A律

A律編碼從而需要一個13位有符號的線性音頻樣本作爲輸入,並把它轉換成一個8位的值如下:

線性輸入代碼 壓縮碼
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是符號位,並且在後的位反引號標記`被丟棄。因此,例如,1000000010101映射到10001010(根據表中的第一行),並0000000110101映射到00011010(根據第二)。
這可以看作是一個浮點與4位的數尾數和3位指數。
此外,該標準規定,所有得到的偶數比特被反轉的八位位組被髮送之前。這是爲了提供充足的0/1躍遷便於時鐘恢復過程中的PCM接收機。因此,一個無聲的A律PCM編碼通道已在八位編碼,而不是將0x55的0×00的8位樣本(或0xD5如果符號位恰好是設定)。
注意,國際電聯定義位1爲具有值128,位8到具有值1。
在更廣泛的接受習慣有7位= 128位0 = 1。
需要注意的是,當數據被髮送E0(G.703),MSB(signbit)首先發送和LSB是最後發送。
ITU-T的STL定義的算法如下:
void            alaw_expand(lseg, logbuf, linbuf)
  long            lseg;
  short          *linbuf;
  short          *logbuf;
{
  short           ix, mant, iexp;
  long            n;

  for (n = 0; n < lseg; n++)
  {
    ix = logbuf[n] ^ (0x0055);  /* re-toggle toggled bits */

    ix &= (0x007F);         /* remove sign bit */
    iexp = ix >> 4;               /* extract exponent */
    mant = ix & (0x000F);   /* now get mantissa */
    if (iexp > 0)
      mant = mant + 16;         /* add leading '1', if exponent > 0 */

    mant = (mant << 4) + (0x0008);        /* now mantissa left justified and */
    /* 1/2 quantization step added */
    if (iexp > 1)            /* now left shift according exponent */
      mant = mant << (iexp - 1);

    linbuf[n] = logbuf[n] > 127      /* invert, if negative sample */
      ? mant
      : -mant;
  }
}
注意:實際的實現是從上面所列的不同。
請特別注意,有一個“1/2量化步長增加”,“尾數左對齊”和怪異的符號位的使用情況(“反轉,如果陰性樣品”)。
另請參見“ITU-T軟件工具庫2009用戶手冊”,可以在這裏找到。

mu律

μ律(有時稱爲ULAW,G.711Mu或G.711μ)編碼需要一個14位有符號的線性音頻樣本作爲輸入,由32(二進制100000)增加的幅度,並將其轉換爲一個8位的值如下:
線性輸入代碼 壓縮碼
s00000001wxyz`a s000wxyz
s0000001wxyz`ab s001wxyz
s000001wxyz`abc s010wxyz
s00001wxyz`abcd s011wxyz
s0001wxyz`abcde s100wxyz
s001wxyz`abcdef s101wxyz
s01wxyz`abcdefg s110wxyz
s1wxyz`abcdefgh s111wxyz
其中s是符號位,並倒引號標記後的位`被丟棄。
此外,該標準規定,所有結果位反轉的八位位組被髮送之前。因此,一個無聲的μ律PCM編碼通道已在八位編碼0xFF的,而不是爲0x00的8位採樣。
加入32是必要的,這樣所有的值落入一個壓縮組。它被加回到在接收到倒8位值。這意味着μ律不編碼的所有14位值; 輸入必須在±8159。

G.711.0 

G.711.0,也稱爲G.711 LLC,利用無損數據壓縮多達50%,以減少帶寬的使用。的的G.711脈衝編碼調製無損壓縮標準於9月批准由ITU-T 2009. 


G.711.1 

G.711.1是一個擴展到G.711,2008年3月出版的ITU-T建議G.711.1它的正式名稱是對G.711脈衝編碼調製寬帶嵌入式擴展。
G.711.1,允許添加的窄帶和/或寬帶(16000樣本/秒)的增強,每處(包括)基的G.711比特流的比特率的25%,從而導致64個,80個或96千位的數據速率/秒。
G.711.1與G.711兼容在64 kbit / s的,因此一個有效的部署在現有的G.711基於IP語音(VoIP的)基礎設施被預見的。在G.711.1編碼器可以在16kHz的編碼信號用的50-7000赫茲,在80和96 kbit / s的帶寬,並且爲8千赫採樣的輸出可以產生具有一個帶寬範圍從50至4000赫茲的信號,操作在64和80 kbit / s的。
在G.711.1編碼器創建構建在對應於三個可用比特率三層的嵌入比特流:64,80和96 kbit / s的。比特流不包含哪些圖層包含的任何信息,實現將需要帶外信令上層可用。三個G.711.1層是:登錄較低波段的壓擴脈衝編碼調製(PCM),其包括噪聲反饋,嵌入的PCM延用自適應位分配用於增強在較低頻帶中的基本層的質量,以及加權的矢量量化編碼高頻段基於修正離散餘弦變換(MDCT)。
計劃在2010年的兩個擴展G.711.1:superwideband擴展(帶寬爲14000赫茲)和無損壓縮碼流


(以上是wiki下對G.711的介紹的中文版,google翻譯的)

wiki上關於G.711的介紹以及A-law和mu-law原理解釋

http://en.wikipedia.org/wiki/G.711

bing翻譯的,對比google一下

http://www.microsofttranslator.com/bv.aspx?from=&to=zh-CHS&a=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FG.711

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