G.711和G.729协议是两对用于语音压缩的编码方案,两者具有一些相似之处,但不同于完全自由使用的G.711,使用G.729是需要付费的,而且,对于使用G.729的情况,CPU占有时间大约为G.711的4倍,因此大多数情况下,G.711的使用要广泛于G.729,但G.729也有其独特的优秀之处,G.729占用带宽小,使用普通编码的语音通讯需要占用64Kbps的带宽,而G.729仅仅需要8Kbps。
G.711也称为PCM(脉冲编码调制),是ITU-T订定出来的一套语音压缩标准,主要用于电话。它主要用脉冲编码调制对音频采样,采样率为8k每秒。它利用一个 64Kbps 未压缩通道传输语音讯号。起压缩率为1:2,即把16位数据压缩成8位。G.711是主流的波形声音编解码器。G.711 标准下主要有两种压缩算法:U-law algorithm和A-law algorithm,其中,后者是特别设计用来方便计算机处理的。
G.729编码方案是电话带宽的语音信号编码的标准,对输入语音性质的模拟信号用8kHz采样,16比特线性PCM量化。G.729A是ITU最新推出的语音编码标准G.729的简化版本。G.729协议使用的算法是共轭结构的算术码本激励线性预测(CS-ACELP),它基于CELP编码模型。由于G.729编解码器具有很高的语音质量和很低的延时,被广泛地应用在数据通信的各个领域,如VoIP和H.323网上多媒体通信系统等。
G.729协议编解码算法:电话线路上的模拟语音信号,经话路带宽滤波(符合ITU-T G.712建议)后,被8kHz采样,量化成16bit线性PCM数字信号输入到编码器。该编码器是基于线性预测分析合成技术,尽量减少实际语音与合成语音之间经听觉加权后差分信号的能量为准则来进行编码的。编码器的其主要部分有:线性预测分析和LPC系数的量化、开环基音周期估计、自适应码本搜索、固定码本搜索和码本增益量化。
G.729解码算法:G.729的解码也是按帧进行的,主要是对符合G.729协议的码流进行解码,得到相应的参数,根据语音产生的机理,合成语音。解码过程主要分为:参数解码;后滤波处理。并且具有线性预测分析和LPC系数的量化、开环基音周期估计、自适应码本搜索、固定码本搜索、码本增益量化的特点。
首先解码得到线谱对参数,并将线谱对参数转换为线性预测系数。然后解码出基音周期,获得自适应码本矢量V(n)。解码出固定码本矢量的四个脉冲的位置和符号,计算出固定码本矢量c(n)。解码出固定本预测增益gc和固定码本增益,接着得到激励信号。最后将激励信号输入到线性预测合成滤波器中,计算出重构语音。
后滤波处理主要是自适应后滤波。自适应后置滤波器是由三个滤波器级连而成:长时后置滤波器Hp(z),短时后置滤波器Hf(z),频谱倾斜补偿滤波器Ht(z),后面接着进行一个自适应增益控制过程。后置 滤波器的系数每一个子帧更新一次。后置滤波能够有效地改善合成出的语音质量。