论G.729语音编码及在DSP上的实时实现
[摘 要] 文章通过对G.729语音编码算法和定点数字信号处理芯片TMS320VC5416的研究,重点介绍了一个应用DSP对G.729语音编码进行实时处理的实验,并对程序进行优化,结果表明,得到了预期的8 Kb/s的低码速率、较低的算法时延。
[关键词] G.729语音编码器;数字信号处理器;实时实现;算法优化
[中图分类号] [文献标识码]A [文章编号]
[作者简介] 贾迎新(1980—),女,河北石家庄人,石家庄铁道学院电气工程分院研究生,主要研究方向:计算机检测与控制。
G.729是国际电信联盟ITU制定的一种高质量的语音压缩标准,该标准是采用“共轭结构-代数码激励线性预测(CS-ACELP)”算法,主要应用于IP电话、移动通信、多媒体网络通信和数字卫星通信等领域。
G.729使用混合编码算法,对电话带宽的语音信号编码的标准,对输入的模拟语音信号用8kHz采样,16bit线性PCM量化。CS-ACELP是基于码激励线性预测(CELP)的编码模式,每80个样点为1个语音帧,对语音信号进行分析并提取各种参数(线性预测滤波器系数、自适应码本和固定码本中码本序号、自适应码矢量增益和固定码矢量增益),对其进行编码并发送。在解码端,将接收到的比特流进行解码生成对应的参数:用自适应码矢量序号从自适应码本中得到自适应码矢,用固定码矢序号从固定码本中得到固定码矢,分别乘以它们的增益按点相加后构成激励序列;用线性预测滤波器系数构成合成滤波器;用自适应码本方法实现长时或基音合成滤波,计算出合成语音后,用后置滤波器进一步增强音质。
1.1 编码算法
在编码端需要进行线谱对(LSP)参数量化、基音分析、固定码本和增益量化4个主要处理步骤。具体流程如图1所示。
输入信号先经过高通滤波预处理,每10ms帧作一次LP分析,计算LP滤波器系数,这些参数转换为线谱对(LSP)并用两段16bit矢量量化。激励信号用AbS(合成分析)方法搜索,以原始语音与合成语音的误差感知加权最小为测度进行搜索,而感知加权滤波器用未量化的LP系数构造而成。感知加权的量是以保证输入信号的频响是平的而进行的自适应调整。激励参数(固定的和自适应的码书参数)每个子帧(5ms,40个样点)确定一次。量化的和未量化的LP滤波器系数用于第二子帧,而在第一子帧使用内插的LP系数,根据感知加权语音信号每l0ms帧估计一次开环基音延时。下面的操作每个子帧都重复进行。
1.2 解码算法
首先从接收到的码流中提取参数序号,解码这些序号得到lOms语音帧对应的编码参数。这些参数是LSP参数,两个分数基音延时,两个固定码本矢量与两组自适应和固定码本增益,每子帧LSP参数被内插并转换为LP滤波器系数,然后以每5ms子帧为单位合成语音。合成步骤如下:
(1)自适应和固定码本分别乘以各自的增益加起来构成激励。
(2)激励LP合成滤波器重构语音。
(3)重构语音信号经过后置处理,包括长时后置滤波、短时合成滤波和高通滤波。
具体流程如图2所示。
2 TMS320VC5416数字信号处理芯片简介
TMS320VC5416是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,先已广泛应用于无线电通信系统中。
具有的主要优点如下:
(1)围绕一组程序总线、三组数据总线和四组地址总线而建立的改进哈佛结构,提高
了系统的多功能性和操作的灵活性。
(2)具有高度并行性和专用硬件逻辑的CPU设计,提高了芯片的性能。
(3)具有完善的寻址方式和高度专业化指令系统,更适应于快速算法的实现和高级语
音编程的优化。
(4)模块化结构设计,使派生器件得到了更快的发展。
(5)采用先进的IC制造工艺,降低了芯片的功耗,提高了芯片的性能。
(6)采用先进的静态设计技术,进一步降低了功耗,使芯片具有更强的应用能力。
3 实时系统的设计
3.1 系统的组成
该系统由5416芯片、模数转换电路、FLASH存储器和双口RAM组成。5416作为整个系统的核心,主要用来完成语音压缩和解压缩在内的所有软件功能。A/D和D/A转换完成语音信号的模数和数模转换。FLASH存储器用来存放系统程序和已初始化的数据,双口RAM用来与外部交换语音压缩数据。
3.2 系统的工作过程
(1)系统加电DSP芯片后,由其内部存储器固化的自引导程序(BOOT)将存于FLASH中的程序数据移入内部RAM。
(2)程序数据进入内部RAM后,DSP芯片开始运行程序,执行语音编码算法。每隔10ms运行一次编解码算法,并与双口RAM交换一次数据。
(3)DSP芯片将语音压缩编码后得到的数据写入双口RAM,由外部系统读出并送至信道。
(4)外部系统将对双方的编码数据送至双口RAM,由DSP芯片从双口RAM中读出,进行数据处理,还原成合成语音。
3.3 系统的软件设计及其优化
(1)软件设计
软件设计主要包括初始化程序、语音编解码程序、串行口中断服务程序、INT0中断服务程序等。初始化程序主要完成系统的初始化,语音编解码程序用来完成G.729的算法,串行口中断服务程序完成语音样值的输入和输出,INT0中断服务程序用于完成每10ms与双口RAM交换一次编码数据。
(2)软件优化
用C 语言编写的算法代码,若直接加载到DSP软件开发平台中进行编译,生成的可执行文件会很庞大,一般很难与实际的DSP 硬件环境相匹配。即使利用DSP 自带的优化编译器,虽然可将代码的容量及速度优化到原来的70% 左右,但效果仍不够理想,这就需要充分开发DSP 内部资源,优化算法。在实际应用中,可以将定点运算中原来用C 语言编写的加、减、乘、除、移位、乘加等基本运算的函数操作直接转化为宏汇编指令操作,这样不仅可以节省寄存器的占用,而且可以提高运算效率。另外一些常调用的函数,如卷积、相关、FIR 滤波等可结合汇编编程的特点,直接用汇编编写,发出高效率的程序代码。
4 结论
在DSP软件调试和开发过程中,采用了TI公司的集成开发环境TMS320C5000 CCS(code composer studio),得到G.729编解码算法在TMS320VC5416上实时性实现的能力:占用程序存储空间为57.2 KB,数据存储空间为12.8 KB;编码算法复杂度约为18.50 MIPS,解码复杂度约为2.97 MIPS;编解码全双工计算时延小于10 ms,压缩比为16:1。G.729编码器在定点DSP上的实时实现,产生出了性能价格比极高的语音编解码系统,在数字通信、保密通信、数字卫星系统、数字电路倍增设备、多媒体通信等领域有着较广泛的应用。
参考文献
[1] 张贤达.现代信号处理[M].北京:清华大学出版社,2002.
[2] 清源科技.TMS
[3] 张雄伟,曹铁勇.DSP芯片的原理与开发应用[M].北京:电子工业出版社,2000.
[4] 胡广书.数字信号处理理论、算法与实现[M].北京:清华大学出版社,2003.
[5] 丁玉美,高西全,彭学愚.数字信号处理[M].西安:西安电子科技大学出版社,1994.
热门文章:
- 2024年度《榜样力量》(第二...2023-12-29
- (合集)有关于打造清廉国企...2023-12-26
- 2024思政教师培训材料:社会...2023-12-25
- 药物质检年度工作总结报告范...2023-12-07
- 两会期间系列重要讲话精神学...2023-12-07
- 专题节目《榜样7》观后感通用...2023-12-07
- 学生会竞选精彩演讲稿6篇2023-12-06
- 甄选开学会领导精彩讲话稿汇...2023-12-06
- 落实全面从严治党主体责任清...2023-12-06
- 中国梦我的梦演讲稿通用范文3篇2023-12-06
相关文章:
- 【捷顺科技】,JSDS1.3.2-捷E语音对讲2021-09-06
- 基于电话的语音通知系统的设计2022-03-14
- 很全_C#编码规范2021-09-28
- 数字编码,(3)2021-09-28