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

你可能感兴趣的:(G.711编解码原理)