IP电话中的低速率语音编解码器的实现
发布时间:2007/8/29 0:00:00 访问次数:932
摘要:G.729.A在TMS320C6201DSP上的实现方法及提高G.729.A编码器的运行速度的优化方法和编程技巧。并介绍了该编码器的测试结果。
关键词:ITU-T G.729.A IP电话 编码器
最近几年,IP电话技术突飞猛进,已从当初PC到PC的机连接方式发展到IP电话网关方式,通过IP电话网关可以将PBX与因特网连接起来,从而实现普通话机通过因特网进行通信。因此,IP电话网关是近年来计算机和通信领域中研究的一个热点。IP电话网关的一个最主要性能指标是它的处理密度(即能同时算是的话路数)。而IP电话网关的处理密度主要取决于它所使用的语音编解码器处理一帧数据的延迟大小。目前,IP电话所遵循的标准是H.323,而H.323标准首选语音编码器是ITU-T G.729.A。ITU-T G.729.A是用于语音和其它声音信号的压缩编解码算法建议,它是G.729的简化版本,编码速率为8Kbps,并且有很高的语音质量。但是,该编码器的算法复杂,一帧语音的处理延迟较大,在很大程度上影响IP电话网关的处理密度。因此,为了提高IP电话网关的处理密度,本文在实现ITU-T G.729.A语音编解码器时,采用了目前性能最好的DSP,即TMS320C6201;针对TMS320C6201并行性和流水等特点,深入研究了在TMS320C6201上实现G.729.A的编解码器的编程技巧;归纳出一系列减少编解码器处理延迟的优化方法。采用这些优先方法和编程技巧,可以将ITU-T G.729.A的每帧编码运行时间减少到0.47毫秒(按TMS320C6201工作在200MHz计算),从而可以实现单片TMS320C6201能同时处理20路路语音。这一指标已到达了国际上最先进的水平;而且,该编解码器已成功地运用在笔者开发的IP电话网关中。
1 G.729.A编解码器的算法
1.1 编码算法
ITU-T G.729.A标准采用一种称为"共轭结构代数码本激励线性预测"(Conjugate Structure Algebraic-Code-Excited Linear-Prediction,CS-ACELP)算法来对语音信号进行编码。
在开始编码之前,先要对输入的模拟信号进行电话带滤波,然后以8kHz频率对其进行采样,再将其转换为16位线性PCM码,作为编码器的输入。
编码器处理语音的单位是帧,1帧为10毫秒语音,包括80个声音样本(采样频率为8kHz)。编码器对每一帧语音信号进行分析,抽取出其中的CPLD模型的参数(线性预测滤器参数),自适应和固定码本索引和增益),对这些参数进行编码和传送。其编码过程如图1所示。
在预处理阶段,输入信号经高通滤波并乘以比例因子,然后对每一帧预处理之后的信号进行一次线性预测分析,计算出线性预测滤波器系数,其中,线性预测滤波器系数定义为:。这些系数被转化成线谱对(LSP,Line Spectrum Pairs)并用可预测二阶矢量量化法量化成18位。使用合成分析搜索过程选定激励信号,使得原始信号和重构信号之间的误差在感觉加权失真测量中最小。
对每个子帧(5毫秒,包括40个样本)求出其激励参数(固定和自适应码本参数)。本帧的量化和未量化的线性插值系数。每一帧根据感觉加权语音信号估计出开环基音延迟。多面手对每一子帧进行以下操作:将线性预测残差通过加权合成滤波器的冲击响应h(n),使用目标信号x(n)和冲击响应h(n)在开环基音延迂回通过周围搜索,并进行闭环基音分析(得出自适应码本延迟和增益)。第一个子帧的基音延迟编码为8位,第二个子帧采用差分方法编码为5位。通过减去(滤波后的)自适应码本贡献来更新目标信号x(n),新目标x'(n)在固定码本搜索中使用以找到最优激励。固定码本激励使用一个17位的代数码本。自
摘要:G.729.A在TMS320C6201DSP上的实现方法及提高G.729.A编码器的运行速度的优化方法和编程技巧。并介绍了该编码器的测试结果。
关键词:ITU-T G.729.A IP电话 编码器
最近几年,IP电话技术突飞猛进,已从当初PC到PC的机连接方式发展到IP电话网关方式,通过IP电话网关可以将PBX与因特网连接起来,从而实现普通话机通过因特网进行通信。因此,IP电话网关是近年来计算机和通信领域中研究的一个热点。IP电话网关的一个最主要性能指标是它的处理密度(即能同时算是的话路数)。而IP电话网关的处理密度主要取决于它所使用的语音编解码器处理一帧数据的延迟大小。目前,IP电话所遵循的标准是H.323,而H.323标准首选语音编码器是ITU-T G.729.A。ITU-T G.729.A是用于语音和其它声音信号的压缩编解码算法建议,它是G.729的简化版本,编码速率为8Kbps,并且有很高的语音质量。但是,该编码器的算法复杂,一帧语音的处理延迟较大,在很大程度上影响IP电话网关的处理密度。因此,为了提高IP电话网关的处理密度,本文在实现ITU-T G.729.A语音编解码器时,采用了目前性能最好的DSP,即TMS320C6201;针对TMS320C6201并行性和流水等特点,深入研究了在TMS320C6201上实现G.729.A的编解码器的编程技巧;归纳出一系列减少编解码器处理延迟的优化方法。采用这些优先方法和编程技巧,可以将ITU-T G.729.A的每帧编码运行时间减少到0.47毫秒(按TMS320C6201工作在200MHz计算),从而可以实现单片TMS320C6201能同时处理20路路语音。这一指标已到达了国际上最先进的水平;而且,该编解码器已成功地运用在笔者开发的IP电话网关中。
1 G.729.A编解码器的算法
1.1 编码算法
ITU-T G.729.A标准采用一种称为"共轭结构代数码本激励线性预测"(Conjugate Structure Algebraic-Code-Excited Linear-Prediction,CS-ACELP)算法来对语音信号进行编码。
在开始编码之前,先要对输入的模拟信号进行电话带滤波,然后以8kHz频率对其进行采样,再将其转换为16位线性PCM码,作为编码器的输入。
编码器处理语音的单位是帧,1帧为10毫秒语音,包括80个声音样本(采样频率为8kHz)。编码器对每一帧语音信号进行分析,抽取出其中的CPLD模型的参数(线性预测滤器参数),自适应和固定码本索引和增益),对这些参数进行编码和传送。其编码过程如图1所示。
在预处理阶段,输入信号经高通滤波并乘以比例因子,然后对每一帧预处理之后的信号进行一次线性预测分析,计算出线性预测滤波器系数,其中,线性预测滤波器系数定义为:。这些系数被转化成线谱对(LSP,Line Spectrum Pairs)并用可预测二阶矢量量化法量化成18位。使用合成分析搜索过程选定激励信号,使得原始信号和重构信号之间的误差在感觉加权失真测量中最小。
对每个子帧(5毫秒,包括40个样本)求出其激励参数(固定和自适应码本参数)。本帧的量化和未量化的线性插值系数。每一帧根据感觉加权语音信号估计出开环基音延迟。多面手对每一子帧进行以下操作:将线性预测残差通过加权合成滤波器的冲击响应h(n),使用目标信号x(n)和冲击响应h(n)在开环基音延迂回通过周围搜索,并进行闭环基音分析(得出自适应码本延迟和增益)。第一个子帧的基音延迟编码为8位,第二个子帧采用差分方法编码为5位。通过减去(滤波后的)自适应码本贡献来更新目标信号x(n),新目标x'(n)在固定码本搜索中使用以找到最优激励。固定码本激励使用一个17位的代数码本。自