基于DSP的多路语音实时采集与压缩处理系统设计
扫描二维码
随时随地手机看文章
在语音的数字通信和数字存储等应用领域,需要对多路语音信号进行实时采集和压缩处理。如某语音记录设备,需要对8路语音信号进行实时采集和压缩处理,而且要求对采集到的语音数据的压缩率尽量高。一般地,当要求语音数据压缩后的码流在10 Kbps左右时,需要采用语音的模型编码技术。而模型编码算法的运算量很大。因此,如一方面要求对多达8路的语音信号进行实时采集,另一方面又要求对各路的语音信号进行较高压缩率的实时压缩处理,对数据采集和处理系统提出了更高的要求。
由于VLSI技术的迅速发展,DSP(Digitalsig-nal processor数字信号处理器)的性能价格比得到了很大的提高,使得利用DSP的高速数据管理能力和处理能力来实现高速数据采集和处理成为实时数据采集和处理的一个新的发展方向。基于此,本文介绍的多路语音实时采集与压缩处理系统采用了高速DSP技术。
1 系统结构与工作原理
1.1 系统主要性能指标
采集语音信号通道数:8
语音信号带宽:300~3 400 Hz
采样速率:8 000 Hz
语音回放通道数:1
每路语音信号压缩后码流:13 Kbps
扩展ISA总线接口
系统在结构上包括三个主要部分,即8通道A/D和1通道D/A部分,DSP最小系统及DSP的DMA与ISA总线的接口。如图1所示。
1.2 A/D及D/A
该部分由9片A-Law CODEC芯片TP3057组成。其中8片构成8通道A/D转换器,另一片构成D/A转换器,直接由DSP控制。该芯片采样数据是8 000×8 bit A-Law PCM数据,每通道数字信号的输入和输出是64 KbpsPCM同步串行码流。数据传输码流速率是2.048 Mb/s。8片A-Law CODEC均挂接在同一2.048 Mb/s的同步串行数据总线上,2.048 Mb/s的数据分为32个时隙,每个通道的64Kbps数据的传输占用32个时隙中的一个。具体占用那一个时隙由时隙分配控制电路确定。
1.3 DSP最小系统
DSP是本系统核心部分,它完成对2.048 Mb/s的同步串行数据总线的控制,及对高达2.048 Mb/s串行数据码流的采集、8路输入语音的压缩处理和1路语音的解压缩处理。本系统采用的DSP是AnalogDevice公司的定点DSP,即ADSP-2181,其主要功能与特点如下:
(1)外接16.67 MHz晶振,指令周期为30 ns,33 MIPS运算速度,所有指令单周期执行。
(2)提供一个16位的DMA(IDMA)口,用于高速存取片内存储器及装载数据和程序。
(3)提供一个8位自举DMA(BDMA)口,用于从自举程序存储器中装载数据和程序。
(4)程序RAM 24Bit×16 K,数据RAM 16Bit×16 K。
(5)16位字长运算精度。
(6)提供两个双缓冲区的串口,具有硬件A/u律编解码和自动缓冲(Auto-buffer)能力,其中的串口0具有多通道(Multichannel)的功能。
(7)提供6个外部中断、13个可编程I/O引脚和JTAG仿真引脚。
由于DSP的上述功能和特点,使得DSP与A/D及D/A电路实现了无缝连接。其中串口0连接8路A/D的2.048 Mb/s的同步串行数据总线,串口1连接D/A CODEC电路。由于DSP具有16 K的程序RAM和16 K的数据RAM,所以对于本系统无需外扩存储器,即由单片DSP就构成了本系统所需的最小DSP系统。
1.4 DSP的DMA与ISA总线的接口
ADSP2181片内集成了一个直接访问其内部存储器的16位DMA端口(IDMA PORT)。主机通过此接口可以直接访问ADSP2181片内的程序和数据存储器的任一单元。因而主机可以通过此端口对DSP加载程序、下载程序、读取片内执行的状态、实现与DSP的数据传输等操作。IDMA端口总线的16位数据和地址是复用的。由于DSP的程序存储器是24位的,而DMA的数据总线宽度是16位,故对程序存储器操作时,分为两次,先对高16位操作,然后接着对最低8位操作。通过IDMA端口的存、取操作分如下两步进行:
·IDMA地址锁定操作
通过IDMA的地址锁存信号(IAL),将14比特的地址信息和1比特的存储器类型信息通过IDMA总线,在地址锁存信号(IAL)的降沿时被锁入到DSP片内的IDMA地址锁存器。14比特地址信息确定了ADSP片内的存储器地址,而存储器类型位用来区分操作是对程序存储器或数据存储器。
·数据存、取操作
当地址信息被放入到IDMAA寄存器中后,通过加IDMA的IWR,IRD信号,实现对片内的指定地址的信息进行读、写操作。每次读、写操作后存储器的地址值将自动的递增,为下一次的读写操作做好准备。
本系统中通过ISA总线的I/O操作及IDMA口对DSP的内部存储器进行访问的。通过硬件译码满足IDMA时序要求的控制信号IAL,IWR,IRD等及DSP的复位信号(RESET)。该接口占用了16个I/O地址空间。
1.5 通过IDMA端口装载程序
ADSP2181通过两种机制在上电、复位后自动装载DSP程序。两种机制由MMAP和BMODE两个引脚的电平控制。当MMAP=0,BMODE=1时,ADSP2181自动在系统复位时,通过IDMA端口由主机加载DSP程序。主机首先必须装载除程序的第一条指令外其它程序和数据到DSP的片内程序存储器,最后才写入对应程序RAM第一个单元的第一条指令。一当程序存储器的0地址被写入程序代码后,DSP立即从地址0开始执行程序。
2 8路语音信号的数据采集
8路语音数字信号通过一2.048 Mb/s的同步串行数据总线传输到DSP。其中每个通道的数据是64 Kbps,每个通道占用2.048 Mb/s的同步串行数据总线的32个时隙中的一个,因此,共占用8个时隙。DSP通过对时隙分配电路的控制给8个通道各分配一个时隙。这样,8个通道的每个通道的数据都在由DSP指定的时隙中传输。
DSP的串口0是一个可编程的最大数据传输速率能达到4.096 Mb/s的同步串行口。DSP串口0的操作在接收到一个WORD或发送完一个WORD的数据时,从DSP内部RAM读、写一个WORD的数据需要占用DSP的一个机器周期(33 ns),在接收和发送过程中不占用DSP的处理时间。由此可见,DSP的串口0具有很强的数据采集与控制能力。
利用串口0的较强的数据采集与控制能力,很容易实现通过2.048 Mb/s的同步串行数据总线对8通道语音数字信号的采集与控制。首先,编程DSP的串口0的同步时钟信号及帧同步信号分别为2 048 kHz和8 kHz,这两个信号控制CODEC的A/D转换速率和位传送速率,同时同步时钟信号还可供CODEC的A/D转换的时钟。再者,编程DSP的串口0工作于多通道模式,打开32个时隙中对应的8通道的时隙接收,使对应的每通道字(WORD)长为8位,选择A-Law压/扩,并打开自动缓冲功能并设置自动缓冲指针。当如上对串口0初始化并打开串口0的接收中断后,串口0将接收到的8 WORD的按A-Law解压的数据存放在自动缓冲指针指向的长度为8的缓冲区中,自动缓冲指针自动回位,同时产生一个硬件接收中断。
3 多路语音实时压缩处理
3.1 压缩算法
考虑到压缩率的要求和实时的要求,在本系统中采用13 Kb/sRPE-LTP-LP编解码算法[GSM],该算法的特点是在模型编码算法中较为简单,语音质量高达到了通信等级,同时具有较高的压缩率。该算法的编码算法包括以下几个主要部分:
3.1.1 预处理部分
去除原始语音信号S0(n)中的直流分量得到S0f(n),再通过一阶的FIR滤波器进行高频预加重,得到信号S(n)。
3.1.2 LPC分析
按每160个样本点将信号S(n)进行分帧,对每帧数据计算出8个LPC反射系数γ(i),i=0,1,2,…,7;再转换成对数面积比参数LAR(i),i=1,2…7;并对所得的LAR(i)进行量化编码得到LARC。
3.1.3 短时分析滤波
短时分析滤波是一个8级格型滤波器,通过短时分析滤波,得到线性预测(LP)余量d(n)。
3.1.4 长时预测
利用长时预测综合对LP短时余量信号d(n)处理以进一步的去除冗余度。长时预测是按子帧进行处理的,每一帧分成4个子帧。
3.1.5 规则脉冲编码
对经过短时、长时预测后得到的LP余量信号,进行加权滤波、规则脉冲提取和量化编码。
在本系统的DSP上该算法实时实现性能如下:
·码流速率13 Kb/s
·编码运算量 3 MIPS
·解码运算量 0.7 MIPS
·程序量 2 KWORD
·占用数据RAM 1 KWORD
3.2 多路语音实时压缩处理的软件实现
由于实时实现13 Kb/sRPE-LTP-LP编码算法只占用了DSP的3MIPS的运算量,而解码运算量为0.7 MIPS故在本系统的具有33 MIPS的运算速度的DSP上,可软件实时实现多达10通道的13Kb/sRPE-LTP-LP编码算法和1通道的解码算法。同时,还有2MIPS的运算速度用于系统控制与管理。根据本系统的要求,已成功实现了8通道的13Kb/sRPE-LTP-LP编码算法和1通道的解码算法。因此,本系统的DSP在完成要求的多路语音采集与压缩处理任务的条件下,还有一定的处理能力用于系统其它的扩展处理上。本系统的多路语音实时压缩处理的系统软件框图如图2所示。
由图2可以看出,软件设计主要包括4大部分:
·命令解释与控制模块
·13 Kb/sRPE-LTP-LP编解码模块
·多通道语音编解码控制模块
·接口功能模块
3.2.1 命令解释与控制模块
命令解释与控制模块主要是用于解释由PC机通过IDMA口发来的各种命令,如发送或接收编解码数据、设置PC机与DSP的数据传输数据量的大小、查询编解码状态以及启动,停止编解码操作等。该模块不直接与PC机打交道,而是通过接口功能模块,间接实现与主CPU的数据信息交换。
3.2.2 13 Kb/sRPE-LTP-LP编解码模块
该模块是一个单通道13 Kb/sRPE-LTP-LP语音编解码模块。它是本系统的语音压缩处理的核心部分,为使该模块具有通用性,为该模块单独形成一个ADSP-2100系列语言库,可与任何其它ADSP-2100系列模块相连。
3.2.3 多通道语音编解码控制模块
该模块基于单通道13 Kb/sRPE-LTP-LP语音编解码模块,实现多通道语音编码和单通道语音解码。对于多通道语音编码,一方面,当某通道采集到一帧160点的语音数据时,调用语音编码模块对该帧进行编码,并将编码后的语音数据按约定的格式存放到各通道的编码数据缓冲区中;另一方面,由于语音的模型编码是前后帧相关联的,所以该模块还必须将当前通道的当前帧编码后的必须保存的数据和状态进行保存,以及在调用语音编码模块对当前帧进行编码前,恢复上一帧编码后的数据和状态。对于单通道语音解码,则只需在接收到由PC机传送来的压缩数据后,调用解码模块,然后将解码后的160点语音数据送到D/A的串口1发送缓冲区。
3.2.4 接口功能模块
该模块实现DSP与PC机的数据的实际交换工作,同时也实现DSP的数据采集与控制。由于它是软件设计中唯一与硬件相关的模块,故该模块在设计上尽量与其它模块独立。这样,当硬件有所改变时,可不必改变其他模块。
4 结 论
本系统由于采用了DSP技术,使得多路语音的采集和压缩处理得以实时实现。同时还使系统具有较高的可编程性能。基于该系统的某语音记录仪已经通过省、部级的鉴定。本系统的成功设计说明数据采集与处理系统采用基于DSP技术,将大大提高系统的高速数据的实时采集和实时处理的能力。而且,当今的DSP的处理速度和数据管理能力还在迅速地提高,其价格也降到能应用于一般的应用场合。如ADSP-21061,40 MIPS的运算速度,10个DMA控制器,40位浮点运算精度,数据管理能力可达240Mbytes/s,其售价也只有30~40美元。因此,开发和研究基于DSP技术的数据采集与处理系统具有重要的实际意义。