新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DSP的G.729语音编解码器设计

基于DSP的G.729语音编解码器设计

作者: 时间:2011-05-31 来源:网络 收藏


3 系统软件
系统软件部分主要包括音频接口模块、数字接口模块、CPLD控制模块及处理模块等。音频接口模块主要完成对TMS320VC5416的多通道缓冲串口McBSP0、McBSP1的配置及对音频接口芯片的初始化等;数字接口模块作为与外部信道的接口,在输出码流的同时提供帧同步与位同步信号,的重点在于McBSP2的配置,尤其是其内部采样率发生器的配置;CPLD控制模块完成TMS320VC5416各个控制信号和地址线的逻辑组合,以扩展外围存储器SRAM和FLASH,开发环境为QuartusⅡ。处理模块是本的核心,将在下面重点介绍。
3.1 语音处理模块软件设计
语音处理模块由完成,软件流程图如图2所示。

本文引用地址:https://www.eepw.com.cn/article/150672.htm

b.jpg


系统上电后,首先完成内部寄存器、变量、外围设备、音频编解码芯片的初始化,当McBSP有数据输入时,McBSP产生一个事件报告DMA控制器,触发DMA通道以后台形式将数据传输到接收缓冲区;接收缓冲区每收到一定单元的数据,触发DMA中断,CPU响应该中断进入中断服务程序,提取数据,完成数据的编码或解码处理;然后再将处理后的数据送至发送缓冲区,由DMA传送给多通道缓冲串口。
编解码算法采用G.729算法,ITU为G.729算法提供了标准C源代码,并采用模块化设计,具有可读性强、便于维护等优点,但该算法复杂度较高,而芯片资源有限,处理延时很大。在实际应用中,语音编对算法实时性要求非常高,因此必须对原始代码进行算法精简和代码优化,这也是本文的重要工作之一。

3.2 编解码算法优化
G.729算法是经过长时间不断的研究与讨论,最终制定出的一个标准算法,对算法本身再进行大幅度优化是很困难的。不过,可以在算法的细节和具体实现方法上进行精简。
3.2.1 码本搜索算法精简
在10维LSP量化码本搜索中,需要找到一个码矢量,使得它与输入矢量的均方误差最小,如式(1)所示。
c.jpg

在ITU提供的标准算法中,程序每次搜索时,先计算完本次的均方误差,然后再与之前的最小值进行比较。实际上,如果本次未计算完的均方误差已经大于之前保存的最小值时,可以直接停止本次计算进入到下一次计算中,这样能节省大量乘和累加运算。



评论


相关推荐

技术专区

关闭