论文部分内容阅读
近几年来,IP电话、无线通信和数字卫星系统等语音应用服务业不断涌现,语音编码技术取得了许多突破性的发展,研究人员提出的实用编码方案如G.711、G.721、G.729等等,通过对这几个方案的比较,本文采用了G.729的简化编码方案G.729A。G.729算法采用共轭结构-代数码激励线性预测(CS-ACELP)语音编码,码率为8kb/s。它的简化算法G.729A将算法复杂度减少了几乎一半。虽然G729A相对于G.729简化了算法,但复杂度仍比较高,不能直接应用在实时性要求较高的实际应用当中,解决的方法就是对算法进行优化。本文的工作内容和创新点主要包括以下几个方面:(1)通过对G.729A算法整个模块的分析可知,编码器主要分为预处理、LP分析、开环音调搜索、闭环音调搜索、固定码书搜索以及存储器修正,而运算峰值主要集中在LP参数运算和码本搜索上,占据了60%以上的时间。因此,本文主要针对码本搜索中的开环音调搜索和闭环音调搜索算法分别进行了优化,在分析了算法结构之后,改进了自适应码本搜索模型,并利用4:1的抽取方法对采样信号点和最佳延时搜索点进行抽取。另外,源代码中将语音数据经过了串行化的处理,使编码后的数据不是理论上的16:1,本文做了去除串行化模块中1bit向Word16的数据转换处理。(2)对G.729A进行优化后通过平台来实现。通过调查研究可知国内外现有的研究实现平台大多数都是基于DSP等硬件平台,成本较高;而基于软件实现相对来说比较灵活,而且成本低。结合现有的资源条件,本文采用了iOS平台对G.729A的优化进行实现,即开发了一款iPhone手机语音通话软件。最后,将G.729A移植到iOS平台上之后,应用在通话软件中并进行测试,从本文最后的测试结果与分析来看,论文提出的改进方法降低了G.729A算法的复杂度,改善了编码时间,在语音质量稍微有所下降的基础上,提高了语音实时性。