论文部分内容阅读
VoIP业务是当前计算机网络技术和通信技术研究的热点之一,也是因特网增长最快的业务之一,指的是以数据封包的形式在IP分组网络的环境下进行语音信号的传输。与传统的电路交换网络相比,IP分组网络存在带宽资源有限,丢包和延时抖动的问题,因此需要研究和实现适合于分组网络传输环境的语音编解码算法,来完成VoIP中的终端编解码功能。通过对各种语音算法的分析和研究发现,ILBC、Speex等语音编解码算法不仅编码速率低,而且有多种模式可以根据网络状况灵活选择,同时增加了丢包隐藏,去延时抖动等模块,非常适用于因特网上的语音传输。另外ILBC、Speex算法不需要交专利费,因此有很大的商业应用价值。根据对语音编码器的分类标准,编码速率介于4.6kb/s~24kb/s的语音编码器称为中速率语音编码器,因此ILBC,G729以及Speex大部分模式下的编码算法均为中速率语音编码算法。课题以研究和实现以ILBC为主的适合于分组网络的几种中速率语音编解码算法为目标,借助PalmADSP、Visual C++等仿真和开发软件,经过了由浮点C语言代码到定点C语言代码,再到定点DSP代码的转换过程,并对代码进行了系统的测试和优化,最后将代码嵌入到DSP芯片中,完成了算法向DSP芯片的搬移。工程实践中主要解决了以下两个问题:一、定点化过程中,如何选择合适的定标值以保证数据的动态范围和精度,二、在芯片的数据存储空间和程序存储空间有限的情况下,如何对代码进行系统的优化以提高程序执行效率,压缩数据和代码占用的空间。最终,课题通过ILBC等算法的定点化工作总结出了一套适用于各种语音算法的定点化方法,并通过具体的工程实践提出了针对DSP开发和应用的代码转换和优化方法。在AR168G话机上的实际通话测试结果表明,课题中实现的几种语音算法能很好地运用于VoIP系统,对各种网络状况具有很好的适应性,获得了良好的通话质量。