这段代码实现了G.729A和G.729B标准下的语音信号压缩与解压缩功能,采用ANSI C编写,适用于多种平台的高效语音通信。
G.729的全名是Code Excited Linear Prediction Model (CELP) 和 Conjugate-Structure Algebraic CELP (CS-ACELP), 其中文名称为共轭结构代数码激励线性预测编码。G.729家族包括三个版本:G.729, G.729A和G.729B,以及一种组合形式的G.729AB: G.729是该系列的第一个版本;相对于原始版,G.729A简化了算法。而G.729B在此基础上增加了静音压缩功能;同时,G.729Ab则为G.729A加入了同样的静音压缩机制。
这种编码方式属于合成分析类型的语音编码方法,在中低比特率下能够提供较为理想的语音质量表现。它以10ms的语音帧进行处理,采样率为8KHz,并包含有80个样本点。每帧提取CELP模型的相关参数(包括LP滤波器系数、自适应码书和固定码书指针及增益)并对其进行编码传输,在解码端利用这些信息恢复激励信号与合成滤波器的参数,最终通过LP合成滤波器重构出语音信号。
具体而言,80个16位样本在经过G.729a处理后会被压缩为10个8位编码串。我曾使用过G.729a版本进行测试,发现对于通话质量来说表现尚可,但对音乐的播放效果则不尽人意。
商业用途中,每个许可需支付10美元费用以支持一路通话功能。目前是否依然如此收费未予以确认。