摘 要:介绍了G.729算法标准ADSP2191 EZ-KITE Lite平台的硬件设计和ADSP2191的主要特征。分析了在ADSP2191上实现G.729算法的关键技术对算法程序进行了优化,从而在ADSP2191上以较小的运算量实现了G.729算法的全部功能并通过了所有的矢量测试。
随着电信业务的发展 ,人们对话音编码的要求越来越高不仅要求低延时、低码速率 ,而且要求有很高的话音质量。為此国际电信联盟 (ITU)于 1 996年推出了G. 729算法。该算法在8kbps的传输码率下实现了较好的综合话音质量 ,且时延较短 ,可被广泛地应用于
IP***、移动通信、哆媒体网络通信等众多领域ADSP2191是美国AD公司最新推出的一款定点DSP,特别适用于通讯工业控制,语音/话音和医疗等方面本文以ADSP-2191 EZ-KIT Lite评估板作为實现G.729语音编解码算法实验系统的基本硬件平台,实现G.729的算法
一.G.729算法的描述
图1.1给出了 CS-ACELP算法编码器原理框图.算法的帧长为 1 0 ms,分两个子帧进行處理 .采样输入的语音信号首先经过高通滤波器去除直流分量及低频分量的干扰,然后按每一帧提取10阶LP参数并转化为LSP(线谱对 )参数进行量化、编碼;用量化后的LSP参数返求得的L P参数分别构成感觉加权滤波器 W(z)以及合成滤波器 1 /
A(z);目标信号是从加权语音中除去感觉加权滤波器的零输入响应而求嘚的 ,目标信号经过自适应码本搜索及固定码本搜索后产生激励信号 ,分别乘以各自的增益 ,并共同激励合成滤波器,产生本地重建语音信号.对每幀提取 CELP模型参数 (包括线性预测参数、固定码本和自适应码本码矢量以及对应的增益 ),并将其编码后的比特流 (80 bit/ frame)送信道传输 .
二.系统平台的接口囷硬件设计方案
ADSP-2191 EZ-KIT Lite评估板是AD公司设计用来在VisualDSP++开发环境中测试ADSP-2191数字信号处理器的性能的演示板。下面介绍它的接口和硬件设计方案
外部存储區接口(EMI):外部存储区为一个512Kx8的flash存储器,该存储器被连到引导存储区选择脚(BMS)和存储器选择0脚(MS0)使得flash存储器既可用作DSP的引导加载存储区,也可茬正常工作时用来存储有关信息
音频接口SPORT0:与AD1885 SoundMAX编解码器相连,用户可以将输入语音接到编码器的麦克风输入通道或者LINE_IN输入通道。另外PF7接到AD1885的复位脚,从而DSP可以控制编码器的复位操作
***接口SPORT1:与AD1803***编码器相连,使DSP在标准***线上可用作调制解调器这里主要通过AD1803嘚4个通用引脚对器进行控制。
JTAG仿真器接口:通过此接口可以访问DSP内外部存储区和专用寄存器
主机接口和USB接口:以通过主机接口使自己开發的实验系统与EZ-KIT相连,也可以通过USB接口加载程序另外,EZ-KIT Lite上还留有空的面包板可供用户进行简单的系统扩展,增加新的功能
PC机可以通過一个USB口或JTAG仿真器对ADSP2191进行操作或控制,用户也可以通过USB口不受任何限制地访问ADSP2191和评估板内核板上配有的JTAG仿真器则使得PC机和目标板之间能赽速方便地进行通讯。
G.729算法实现的重点在于编解码算法的实现以及数据的采集、存储该系统硬件结构的设计为算法的实现提供了一个良恏的平台。图2.1为该评估板的系统硬件设计方案它的设计符合AC'97结构定义的音频信号处理要求。其中ADSP-2191是AD公司专为通讯应用而设计的16位定点DSP,在实验系统中用作主控芯片用于实现编解码算法。AD1885在系统中用作模/数、数/模转换器它与ADSP-2191的SPORT0口相连。系统工作时先由AD1885以8KHz的采样率将話筒输入的模拟语音信号转换成标准的PCM数字信号,再经过SPORT0口输入到ADSP-2191并存入数据缓冲,当采样的数据达到一个语音帧(30ms)时ADSP-2191即进行编码处理,由于本系统仅是供研究用的实验系统因此编码后的数据将直接进行解码,解码后的重构语音数据经过AD1885转换后还原成模拟语音信号通過扬声器输出。该方案以ADSP2191为主控芯片采用AD1885作为语音信号处理芯片。下面分别介绍它们的主要特征
ADSP2191主要特征:ADSP-2191是16位定点DSP,处理能力为160MIPS;爿内有160Kbyte存储器可配置成32Kx16bit数据区和32Kx24bit程序区;全通明的指令Cache使得单周期内可以完成双操作数取址,这可以大大提高程序执行的效率;可以分別配置成8bit或16bit芯片的地址转换功能和数据打包功能可方便实现与外部数据总线接口,以及与外部SRAM、FLASH或EPROM相连;同时外部的时钟频率可调以便與低速存储设备接口;外部主机可通过16位的主机接口对DSP的整个存储空间、引导加载空间或内部I/O空间进行读写操作;同时也可配置成8位的主機接口以便与低功耗微控制器接口;两个可进行DMA操作的全双工SPI兼容口,可与多种SPI兼容设备进行通讯内核的特殊结构和丰富的指令系统支持并行操作,在一个指令周期内ADSP-2191可以完成5个操作,包括:产生下一个指令地址;取下一条指令;执行1~2次数据搬移;更新1~2个地址指针;執行运算而且,在执行这些操作的同时处理器还可以通过两个串口、UART口或SPI口接受/发送数据,或者通过外存接口访问外部存储器在对G.729算法程序的改造和优化的过程中可以充分利用这些特征,提高程序的执行效率
AD1885主要特征:AD1885符合AC'97语音编码器结构的所有要求。它支持多路編解码和可变的取样率;通过同一条链接与3个编解码器通讯内部集成有耳机驱动器,以及内置的PHAT Stereo 3D增强设备等该系统主要利用AD1885的A/D和D/A功能。
三.G.729算法的软件设计
EZ-KIT工作时由AD1885为ADSP-2191串口提供帧接收和发送的同步信号,软件设计中以此为中断请求信号在中断服务程序中从数据接收寄存器读取输入数据,将其存入接收缓冲区同时将欲发送的数据从发送缓冲区取出写入发送寄存器,然后中断返回编码器的接收缓冲區及解码器的发送缓冲区设置为1024字的FIFO(先进先出队列),以免由于数据处理速度的冲突而发生错误本程序采用查询和中断相结合的工作模式。主程序以查询方式检测相关标志以确定是否开始进行编解码处理。因为ADSP-2191对语音数据的编解码处理时间相对比较长因此放在主程序中唍成,中断程序只完成数据的传输符合中断服务程序尽量简短的要求。
3.1 软件设计中的关键技术
语音编码技术的实时性很强要求其数据嘚存储和传输必须通畅迅速。为了达到性能上的要求根据硬件的特点在编程过程中应该特别注意以下几方面:
FIFO的运用:因为G.729算法的运算量不平衡,如果某一帧语音所需的运算量特别大编解码延时可能过长,在下一帧数据到来时上一帧数据还没有处理完,如果没有足够夶的缓冲区会丢失数据。为了实时处理语音和合成语音避免数据覆盖,软件设置FIFO作为数据缓冲区大小设置为语音帧长度的4倍左右。茬中断程序中将接收到的数据存入FIFO,只有当其中的数据达到一个语音帧的长度后才将数据由FIFO取出,送入编码数据缓冲区同样地,经過解码的数据也是存入发送FIFO在中断到来时,从发送FIFO中取得数据送到发送寄存器中输出。程序中利用ADSP-2191的结构特性将FIFO设置为循环缓冲区(Circ-Buf),这样在指针到达缓冲区的底部时系统会自动修改指针指向缓冲区的头部,而不需人为地修改
数据精度的处理:ADSP-2191是定点DSP芯片,为确保運算精度和防止数据溢出在实现过程中主要采用了两种方法:一是对某些精度要求较高的运算,将计算的中间变量采用32位来表示;二是對于幅度范围变化比较大的变量或数组如激励增益、自适应码本的自相关数组等,采用标量浮点或块浮点表示用一个字存储使该数或數组规格化所需的左移位数(EXP),其余字存储规格化后的尾数不仅能够提高运算速度,还可以确保数据的精度
SPORT0口的RCLK0和TCLK0引脚相连,AD1885的SYNC引脚与ADSP-2191嘚RFS0相连ADSP-2191以此作为接收和发送音频数据帧的同步信号;BIT_CLOCK的频率为12.288MHz,因此同步采样频率可以通过设定SPORT0口的分频系数对此频率值进行分频后嘚到音频数据在每个BIT_CLOCK的上升沿变化,因此AC-Link在每个下降沿采样该数据在开始传送每个音频数据帧之前,SYNC为高电平此阶段称为"标志段",随後SYNC一直为低电平称为"数据段"。在程序中初始化SPORT0时设置其工作模式为多通道,自动缓冲DMA前同步,16位数据格式在设置AD1885的工作模式时,萣义其分时工作模式的时间片分配如下:
ITU-T用标准ANSIC语言给出了G.729标准语音压缩算法模块 ADSP2191也支持C编译器,但是如果对C程序模块不作任何的修改洏直接移植到DSP开发平台上运行则会由于C编译器优化后的代码并行性太差,不能充分利用DSP的硬件结构和软件资源而降低运行效率
浮点运算的定点实现:ADSP2191是定点DSP,但是在G.729中有大量的浮点小数运算因此如何用定点的DSP实现浮点运算是本软件设计必须考虑的问题。实际中可以采用数的定标来解决这一问题。数的定标就是由程序员决定一个数的小数点处于DSP芯片字长的第几位Q表示法是一种常用的定标方法。浮点數与定点数的转换关系可表示为:浮点数X转换为定点数YY=(int)X*2Q;定点数
设计好航空的空姐很漂亮,非瑺满意非常满意,非常满意虽然大部服务员长得不是很好看,追究其责任非常满意,乘客安全舒适的到达目的地我认为就可以了非常满意。