引 言
随着微电子和计算机技术的高速发展,许多嵌入式应用系统应运而生。其中,各种语音处理系统不断被开发出来,在各行业得到广泛应用,如语音报站器、自动解说装置、采访录音笔等,为人类的生产、生活提供了极大的便利。本文基于东南大学国家专用集成电路的32位嵌入式SoC——SEP3203处理器,采用G.721标准ADPCM算法,实现了语音信号的软件实时编解码,为语音处理应用提供了一种有效的嵌入式解决方案。
1、G.721标准概述
1937年,A.H.Reeves提出脉冲编码调制(PCM),开创了语音数字化通信的历程。CCITT在20世纪80年代初,开始研究低于64 Kb/s的非PCM编码算法,先后制定通过了G.721、G.728、 G.729等编码标准。其中,G.721协议作为ADPCM的典型算法,不仅具有与PCM近乎相同的语音质量,而且有简单的算法结构和优良的抗误码性能,在卫星、海缆及便携式数字语音设备等方面都有广泛应用。G.721算法的简化框图如图1所示。
编码过程:
① 计算Sl(k)与自适应预测器输出Se(k)的差值E(k)=Sl(k)-Se(k);
② 通过自适应量化模块对E(k)进行量化,得到ADPCM码字I(k);
③ 通过自适应反量化模块对I(k)计算得到量化差分预测信号Dq(k);
④ 根据重建信号Sr(k)=Se(k)+Dq(k)和Dq(k)更新预测滤波器系数;?
⑤ 利用新的系数,计算得到Se(k+1),重复上述5个步骤,压缩下一个语音采样数据。
解码过程:
① 通过自适应反量化和自适应预测得到Dq(k)和Se(k),得到语音重建信号Sr(k);?
② 对重建信号Sr(k)进行PCM格式转换,得到PCM码字Sp(k);
表5 eSRAM优化后的编解码速度
结语
在设计一款面向多媒体应用的嵌入式系统时,实时性能非常重要。本文提出了一种基于ARM7TDMI内核的SoC中语音处理系统的设计方案,并根据该款SoC具有eSRAM的特点,进行了系统性能的优化。对样机的测试表明系统在主频70 MHz、有操作系统的情况下编码速率为19.88 KB/s,解码速率为22.68 KB/s,达到了语音系统的实时性要求。而且,如果语音处理作为样机的子系统应用,其硬件设计也支持MP3播放和LCD触摸屏
的功能,实现了系统板面积减小、整机成本降低的目的,不失为一种高效价廉的设计方案。
参考文献
1 凌明.基于ARM7TDMI的低成本手持多媒体设备处理器.南京:东南大学国家ASIC工程中心,2004
2 苟大举,杨启刚.基于ADPCM 编码的语音录放系统开发平台.四川大学学报(自然科学版), 1998.4, Vol.35 No.2:178~182
3 傅秋良,袁宗宝.纯软件实现ADPCM语音压缩算法.电信科学, 1994.10, Vol.10 No.10:21~24
4 Gibson Jerry D. 多媒体数字压缩原理与标准.李煜晖译.北京:电子工业 出版社,2002
5 CCITT. Recommendation G.721: A 32kbit/s Adaptive Differential Pulse?Code?Modulation, Red Book,1984
6 CCITT. Recommendation G.711: General Aspects of Digital Transmission Systems and Terminal Equipments, Blue Book, 1988
① 开发工具用的是Tornado2.2 for arm;
② 参考资料有BSP Kit、S3C4510B DataSheet;
③ 参考Tornado2.2 for ARM下自带的wrSBCarm7 BSP;
④ 烧写程序采用编程器。
通常在开发BSP的时候,我们需要在Tornado原带BSP目录下找一个与我们所用的处理器相同或相近。与BSP相关的文件有:romInit.s、sysAlib.s、bootInit.c、bootConfig.c、sysLib.c、config.h、configNet.h、makefile以及与我们硬件相关的,如串口sysSerial.c等。由于篇幅所限,具体的文件作用在此就不说了。下面主要根据