·上一文章:嵌入式AU1200无线车载终端播放器设计实现
·下一文章:嵌入式系统的知识体系、学习误区及学习建议
4.2 语音编解码模块
该模块主要是对G.723.1的代码处理。系统若直接使用ITU提供的定点C源代码, C5509A完成1帧的编码需要53 400 912个周期,即使C5509A工作在最高频率200 MHz,也需要267 ms。所以代码必须经过优化,且优化后的代码占用DSP的资源不能过高,这样才能保证DSP有足够的资源对后续的基带数字化进行实时处理。本设计主要从编译器、C语言级、汇编级和算法级4个方面对G.723.1的定点C代码进行优化。本文主要对算法级优化进行介绍。
在对G.723.1算法进行仿真的过程中发现,基音估计、自适应码本搜索、固定码本搜索和代数码本搜索等模块占语音编解码的总时间超过70%,因此优化措施应着重对这几个模块的算法进行优化。
①开环基音估测函数Estim_Pitch()中,计算图1f[n]中的互相关值COL(j):
寻找使得COL(j)max,开环基音周期j的搜索范围18~142。在基音周期较短时,基音频率较大;对语音信号编码质量影响较大,而基音周期较长时,基音频率较小,对语音信号编码质量较小。所以18~58之间基音周期采用逐点计算搜索,而59~142之间以采用隔点计算,可以减少运算量。