论G.729语音编码及在DSP上的实时实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论G.729语音编码及在DSP上的实时实现
[摘要]文章通过对语音编码算法和定点数字信号处理芯片tms320vc5416的研究,重点介绍了一个应用ds对语音编码进行实时处理的实验,并对程序进行优化,结果表明,得到了预期的8kb/s的低码速率、较低的算法时延。
[关键词]语音编码器;数字信号处理器;实时实现;算法优化[中
图分类号][文献标识码]a[文章编号][作者简介]贾迎新(1980—),女,河北石家庄人,石家庄铁道学院电气工程分院研究生,主要研究方向:计算机检测与控制。
语音信号是人类使用最多,最基本,也是最重要的信息载体。
语音信号处理是信息科学的一个分支,是以数字信号处理和语言学为基础发展起来的一门交叉学科。
语音编码技术就是其中的一个分支,其目的是在保证语音一定质量的前提下,将模拟的语音信号用尽可能少的比特实现数字化,以便在有限的传输带宽内让出更多的信道来传送图像、传真、文档、计算机文件和其他数据流,从而达到传输资源的有效利用和网络容量的提高。
而高度快速发展的ds技术为语音信号处理领域提供强有力的工具,使得实时实现各种各样的复杂算法成为可能。
语音编码算法是国际电信联盟itu制定的一种高质量的语音压缩标准,该标准是采用“共轭结构-代数码激励线性预测(cs-acel)”算法,
主要应用于i电话、移动通信、多媒体网络通信和数字卫星通信等领域。
使用混合编码算法,对电话带宽的语音信号编码的标准,对输入的模拟语音信号用8khz采样,16bi线性cm量化。
cs-acel是基于码激励线性预测(cel)的编码模式,每80个样点为1个语音帧,对语音信号进行分析并提取各种参数(线性预测滤波器系数、自适应码本和固定码本中码本序号、自适应码矢量增益和固定码矢量增益),对其进行编码并发送。
在解码端,将接收到的比特流进行解码生成对应的参数:用自适应码矢量序号从自适应码本中得到自适应码矢,用固定码矢序号从固定码本中得到固定码矢,分别乘以它们的增益按点相加后构成激励序列;用线性预测滤波器系数构成合成滤波器;用自适应码本方法实现长时或基音合成滤波,计算出合成语音后,用后置滤波器进一步增强音质。
编码算法在编码端需要进行线谱对(ls)参数量化、基音分析、固定码本和增益量化4个主要处理步骤。
具体流程如图1所示。
输入信号先经过高通滤波预处理,每10ms帧作一次l分析,计算l滤波器系数,这些参数转换为线谱对(ls)并用两段16bi矢量量化。
激励信号用abs(合成分析)方法搜索,以原始语音与合成语音的误差感知加权最小为测度进行搜索,而感知加权滤波器用未量化的l系数构造而成。
感知加权的量是以保证输入信号的频响是平的而进行的自适应调整。
激励参数(固定的和自适应的码书参数)每个子帧(5ms,40个样点)确定一次。
量化的和未量
化的l滤波器系数用于第二子帧,而在第一子帧使用内插的l 系数,根据感知加权语音信号每l0ms帧估计一次开环基音延时。
下面的操作每个子帧都重复进行。
解码算法首先从接收到的码流中提取参数序号,解码这些序号得到loms语音帧对应的编码参数。
这些参数是ls参数,两个分数基音延时,两个固定码本矢量与两组自适应和固定码本增益,每子帧ls参数被内插并转换为l滤波器系数,然后以每5ms子帧为单位合成语音。
合成步骤如下:(1)自适应和固定码本分别乘以各自的增益加起来构成激励。
(2)激励l合成滤波器重构语音。
(3)重构语音信号经过后置处理,包括长时后置滤波、短时合成滤波和高通滤波。
具体流程如图2所示。
2tms320vc5416数字信号处理芯片简介tms320vc5416是ti公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,先已广泛应用于无线电通信系统中。
具有的主要优点如下:(1)围绕一组程序总线、三组数据总线和四组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性。
(2)具有高度并行性和专用硬件逻辑的cu设计,提高了芯片的性能。
(3)具有完善的寻址方式和高度专业化指令系统,更适应于快速算法的实现和高级语音编程的优化。
(4)模块化结构设计,使派生器件得到了更快的发展。
(5)采用先进的ic制造工艺,降低了芯片的功耗,提高
了芯片的性能。
(6)采用先进的静态设计技术,进一步降低了功耗,使芯片具有更强的应用能力。
3实时系统的设计系[]统的组成该系统由5416芯片、模数转换电路、flash存储器和双口ram组成。
5416作为整个系统的核心,主要用来完成语音压缩和解压缩在内的所有软件功能。
a/d和d/a转换完成语音信号的模数和数模转换。
flash存储器用来存放系统程序和已初始化的数据,双口ram用来与外部交换语音压缩数据。
系统的工作过程(
1)系统加电ds芯片后,由其内部存储器固化的自引导程序(boot)将存于flash中的程序数据移入内部ram。
(2)程序数据进入内部ram后,ds芯片开始运行程序,执行语音编码算法。
每隔10ms运行一次编解码算法,并与双口ram交换一次数据。
(3)ds芯片将语音压缩编码后得到的数据写入双口ram,由外部系统读出并送至信道。
(4)外部系统将对双方的编码数据送至双口ram,由ds芯片从双口ram中读出,进行数据处理,还原成合成语音。
系统的软件设计及其优化(1)软件设计软件设计主要包括初始化程序、语音编解码程序、串行口中断服务程序、it0中断服务程序等。
初始化程序主要完成系统的初始化,语音编解码程序用来完成的算法,串行口中断服务程序完成语音样值的输入和输出,it0中断服务程序用于完成每10ms与双口ram交换一次编码数据。
(2)软件优化用c语言
编写的算法代码,若直接加载到ds软件开发平台中进行编译,生成的可执行文件会很庞大,一般很难与实际的ds硬件环境相匹配。
即使利用ds自带的优化编译器,虽然可将代码的容量及速度优化到原来的70左右,但效果仍不够理想,这就需要充分开发ds内部资源,优化算法。
在实际应用中,可以将定点运算中原来用c语言编写的加、减、乘、除、移位、乘加等基本运算的函数操作直接转化为宏汇编指令操作,这样不仅可以节省寄存器的占用,而且可以提高运算效率。
另外一些常调用的函数,如卷积、相关、fir滤波等可结合汇编编程的特点,直接用汇编编写,发出高效率的程序代码。
4结论在ds软件调试和开发过程中,采用了ti公司的集成开发环境tms320c5000ccs(codcomposrsudio),得到编解码算法在tms320vc5416上实时性实现的能力:占用程序存储空间为,数据存储空间为;编码算法复杂度约为,解码复杂度约为;编解码全双工计算时延小于10ms,压缩比为16:1。
编码器在定点ds 上的实时实现,产生出了性能价格比极高的语音编解码系统,在数字通信、保密通信、数字卫星系统、数字电路倍增设备、多媒体通信等领域有着较广泛的应用。
参考文献[1]张贤达.现代信号处理[m].北京:清华大学出版社,2002.[2]清源科技.tms320c54ds硬件开发教程[m].北京:机械工业出版社,2003.[3]张雄伟,曹铁勇.ds芯片的原理与开发应用[m].北京:电子工业出版社,2000.[4]胡广书.数字信号处理理论、算法与
实现[m].北京:清华大学出版社,2003.[5]丁玉美,高西全,彭学愚.数字信号处理[m].西安:西安电子科技大学出版社,1994.。