摘要:基于ARM7TDMI的SoC片内AC97模块和片外CODEC-UCB1400,采用ITU-T的G.721算法设计语音处理系统;提出一种基于低端RISC核的语音系统设计方案。该方案结合SoC的片内eSRAM模块进行性能优化;通过在流片后的实际样机上验证,编码速率为19.88 KB/s,解码速率为22.68 KB/s,达到了语音实时性要求。
关键词:ARM7TDMI G.721 双Buffer机制 eSRAM优化
关键词:ARM7TDMI G.721 双Buffer机制 eSRAM优化
引 言
随着微电子和计算机技术的高速发展,许多嵌入式应用系统应运而生。其中,各种语音处理系统不断被开发出来,在各行业得到广泛应用,如语音报站器、自动解说装置、采访录音笔等,为人类的生产、生活提供了极大的便利。本文基于东南大学国家专用集成电路系统工程技术研究中心自主研发的ARM7TDMI内核的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近乎相同的语音质量CONTROL ENGINEERING China版权所有,而且有简单的算法结构和优良的抗误码性能www.cechina.cn,在卫星、海缆及便携式数字语音设备等方面都有广泛应用。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);
![图1G721编码器和解码器简化框图 ③采用与编码器相同的方法更新预测滤波器系数; ④为实现双向通信同步调整Spk; …](http://www.21ic.com/news/upload/2005_11/051125145184271.gif)
图1 G.721编码器和解码器简化框图
③ 采用与编码器相同的方法更新预测滤波器系数;
④ 为实现双向通信,同步调整Sp(k);
⑤ 利用新的滤波器系数,重复上述5个步骤,解码下一个I(k)。
2 芯片简介
SEP3203芯片为系统处理核心,总体结构框图如图2所示。该芯片是东南大学国家专用集成电路系统工程技术研究中心自主设计的基于ARM7TDMI的32位SoC,采用AMBA2.0标准,0.25μmCMOS工艺,主要面向嵌入式中低端手持设备。片上提供AC97控制器、外存接口EMI、6通道DMAC、TIMER、PMU、INTC等模块。其中,语音系统使用的模块有:EMI,负责控制对外存的访问;片上存储器eSRAMwww.cechina.cn,用于优化耗时的核心代码;AC97,提供AC97标准的音频接口;DMAC,用于实现大数据量的DMA传送。
![图2SEP3203芯片结构框图 3系统设计 31硬件系统 硬件系统框图如图3所示虚线框内是片内模块;框外为片外…](http://www.21ic.com/news/upload/2005_11/051125145184272.gif)
图2 SEP3203芯片结构框图
3 系统设计
3.1 硬件系统
硬件系统框图如图3所示。虚线框内是片内模块;框外为片外器件,包括外存(SDRAM/SRAM/Flash等)、CODEC等。Philips公司的UCB1400作为CODEC。以下为系统工作过程。
![图3 语音处理硬件系统…如图3](http://www.21ic.com/news/upload/2005_11/051125145184273.gif)
图3 语音处理硬件系统框图
① 编码。CODEC采样语音数据,暂存在AC97的输入FIFO中。然后,由DMAC通过中断方式,将数据传送到指定存储区域。在ARM7TDMI的控制下,运行G.721编码程序,将语音PCM数据压缩为ADPCM码。
② 解码。运行G.721解码程序,把存储器中的ADPCM码解码为PCM码。每解满1帧数据后,由DMAC通过中断方式把数据传送到AC97的输出FIFO,通过CODEC驱动放音设备(耳机、扬声器等)。
根据语音实时性的需要,设置UCB1400采样速率为8 kb/s。该芯片用16位表示一个采样点,故采样速率为128 kb/s。编码后CONTROL ENGINEERING China版权所有,每个采样点用4位表示,故传输率为32 kb/s。
3.2 软件系统
软件流程如图4所示。每帧数据为64个采样点,共计为128字节、16位表示的PCM码,编码后为32字节、4位表示的ADPCM码。
![图4 编解码的软件流程…如图4](http://210.51.184.98/buaa1/dpj/html/magazine/2005_10/3-4.gif)
图4 编解码的软件流程
(1) 编码
首先对系统初始化,包括对AC97、CODEC、DMAC等模块配置,以及有关状态变量的初始化。然后,采样
随着微电子和计算机技术的高速发展,许多嵌入式应用系统应运而生。其中,各种语音处理系统不断被开发出来,在各行业得到广泛应用,如语音报站器、自动解说装置、采访录音笔等,为人类的生产、生活提供了极大的便利。本文基于东南大学国家专用集成电路系统工程技术研究中心自主研发的ARM7TDMI内核的32位嵌入式SoC——SEP3203处理器,采用G.721标准ADPCM算法,实现了语音信号的软件实时编解码,为语音处理应用提供了一种有效的嵌入式解决方案。
1 G.721标准概述
1937年,A.H.Reeves提出脉冲编码调制(PCM),开创了语音数字
编码过程:
① 计算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);
![图1G721编码器和解码器简化框图 ③采用与编码器相同的方法更新预测滤波器系数; ④为实现双向通信同步调整Spk; …](http://www.21ic.com/news/upload/2005_11/051125145184271.gif)
图1 G.721编码器和解码器简化框图
③ 采用与编码器相同的方法更新预测滤波器系数;
④ 为实现双向通信,同步调整Sp(k);
⑤ 利用新的滤波器系数,重复上述5个步骤,解码下一个I(k)。
2 芯片简介
SEP3203芯片为系统处理核心,总体结构框图如图2所示。该芯片是东南大学国家专用集成电路系统工程技术研究中心自主设计的基于ARM7TDMI的32位SoC,采用AMBA2.0标准,0.25μmCMOS工艺,主要面向嵌入式中低端手持设备。片上提供AC97控制器、外存接口EMI、6通道DMAC、TIMER、PMU、INTC等模块。其中,语音系统使用的模块有:EMI,负责控制对外存的访问;片上存储器eSRAMwww.cechina.cn,用于优化耗时的核心代码;AC97,提供AC97标准的音频接口;DMAC,用于实现大数据量的DMA传送。
![图2SEP3203芯片结构框图 3系统设计 31硬件系统 硬件系统框图如图3所示虚线框内是片内模块;框外为片外…](http://www.21ic.com/news/upload/2005_11/051125145184272.gif)
图2 SEP3203芯片结构框图
3 系统设计
3.1 硬件系统
硬件系统框图如图3所示。虚线框内是片内模块;框外为片外器件,包括外存(SDRAM/SRAM/Flash等)、CODEC等。Philips公司的UCB1400作为CODEC。以下为系统工作过程。
![图3 语音处理硬件系统…如图3](http://www.21ic.com/news/upload/2005_11/051125145184273.gif)
图3 语音处理硬件系统框图
① 编码。CODEC采样语音数据,暂存在AC97的输入FIFO中。然后,由DMAC通过中断方式,将数据传送到指定存储区域。在ARM7TDMI的控制下,运行G.721编码程序,将语音PCM数据压缩为ADPCM码。
② 解码。运行G.721解码程序,把存储器中的ADPCM码解码为PCM码。每解满1帧数据后,由DMAC通过中断方式把数据传送到AC97的输出FIFO,通过CODEC驱动放音设备(耳机、扬声器等)。
根据语音实时性的需要,设置UCB1400采样速率为8 kb/s。该芯片用16位表示一个采样点,故采样速率为128 kb/s。编码后CONTROL ENGINEERING China版权所有,每个采样点用4位表示,故传输率为32 kb/s。
3.2 软件系统
软件流程如图4所示。每帧数据为64个采样点,共计为128字节、16位表示的PCM码,编码后为32字节、4位表示的ADPCM码。
![图4 编解码的软件流程…如图4](http://210.51.184.98/buaa1/dpj/html/magazine/2005_10/3-4.gif)
图4 编解码的软件流程
(1) 编码
首先对系统初始化,包括对AC97、CODEC、DMAC等模块配置,以及有关状态变量的初始化。然后,采样