基于DSP的MP3解码系统设计
扫描二维码
随时随地手机看文章
随着数字视频和图像处理的发展,数字音频技术也正在提高,尤其是以ISO/IEC为基础的MPEG技术。MP3是MPEGAudioLayerⅢ的缩写,它是Hi-Fi级音频压缩的国际标准。
目前,市场上的MP3解码基本上都是采用专用芯片解码,采用专用芯片解码体积大,支持的音频格式有限。我们采用在DSP芯片上用C语言进行软解码,软解码比较灵活,可移植性好,易于升级,解码质量可通过软件参数设定,通用性好。
硬件系统结构
DSP的MP3解码系统硬件框图如图1所示,我们采用了低功耗的DSP芯片TMS32VC5416进行软件解码,32M的CF卡作为存储MP3文件的媒介,USB接口作为与PC机进行通讯接口,传输数据速度快,可以在PC机下载、上传MP3,可编程逻辑器件CPLD(选用EPM7128SL84)用于产生CF卡与USB接口芯片的片选以及控制其读写。
TMS320VC5416定点DSP
TI公司的TMS320VC5416定点运算数字信号处理器(DSP),其功耗低,性能高,内部采用一种改进型的哈佛总线结构:一条程序总线,3条数据总线,数据总线宽度为16位。分开的数据和指令空间使该芯片具有高度的并行操作能力,在单周期内允许指令和数据同时存取,再加上其高度优化的指令集,使得该芯片具有很高的运算速度,最高可达160MIPS。
音频传输、播放系统
TLV320AIC23介绍
D/A采用TLV320AIC23芯片,TLV320AIC23(以下简称AIC23)是一款高性能的立体声音频Codec芯片,内置耳机输出放大器,支持MIC和LINEIN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术,可以在8K到96K的频率范围内20、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。与此同时,AIC23还具有很低的能耗,回放模式下功率仅为23mW,省电模式下更是小于15uW。由于具有上述优点,使得AIC23是一款非常理想的音频模拟I/O器件。
AIC23与DSP的数字音频接口设计
DSP与AIC23连接如图2所示,利用USB1.1接口器件PDIUSBD12可编程的时钟频率输出12M作为立体声音频Codec芯片AIC23的时钟输入CLK12M。AIC23的配置接口支持IαC模式,也支持SPI模式,系统采用DSP的一个McBSP用SPI模式跟AIC23连接。DSP配置为主模式,AIC23配置为从模式。AIC23输出串行数据,DSP的MCBSP串口6个引脚使数据通路和控制通路与AIC23相连。数据由BDX0、BDR0传输,同步信号的控制由BFSX0、BFSR0、BCLKX0来实现。数字音频接口采用DSP模式,该模式与TI公司DSP的MCBSP串口兼容,该模式时序如图3。由图知,在LRCIN/LRCOUT信号的下降沿开始进行数据的传输,先左声道数据传输,然后右声道数据传输。
DSP需要处理来自和发向AIC23的数据,从而达到采集和播放声音。McBSP与CPU通信用DMA方式,通过DMA收到或发送完一组单元,再给CPU中断。采用DMA的方式,即串口每发送或接收到一个单元,都会自动触发DMA将其搬送到一个内部的Buffer,等Buffer满了再通过中断方式告诉CPU处理。在DMA的中断服务程序中为了可靠可以把这个Buffer的数据再拷贝到另一个待处理的空间,即两级Buffer,然后置标志位,CPU在主程序中查询标志位然后作出相应的处理。DMA操作的Buffer可以通过寄存器配置。
USB接口实现
USB接口采用高性能、并行总线的USB接口器件PDIUSBD12(以下简称D12),D12符合通用串行总线USB1.1版规范,可与DSP微控制器实现高速并行接口,D12与DSP连接如图4所示。
由CPLD产生D12的片选、以及控制对D12的读写;ALE接低电平,表示一个独立的地址和数据总线配置;D12的A0脚与DSP的A0相连,控制D12的命令和数据状态。
CF卡接口设计
CF卡是一种小型化、大容量、低功耗、智能型的存储媒体,在便携式设备中应用广泛。以FlashMemory(闪烁存储器)为主要载体,内部用微处理器进行时序控制和存储管理。CF卡与DSP连接如下图5所示。
CF卡的A3~A0为数据、命令、或状态寄存器地址线,D15~D0为数据总线,可16位或8位访问,当片选信号CE1#和CE2#同时为低电平时,为16位访问格式;当CE1#置高,CE2#为低电平时,为8位访问格式。CF的存取方式有三种:Memory方式、I/O方式、TrueIDE方式,该系统中CF卡工作模式选取上电默认方式,即:Memory方式,片选CE1#、CE2#由可编程逻辑器件EPM7128SL84对DSP的8位地址A15~A22译码产生。CF卡工作电压为5V或3.3V,设计选用3.3V工作电压,便于数据输出与地址可直接与DSP相接。
MP3解码的DSP实现
MP3文件的格式
MP3是目前世界上最流行的音频格式之一,其采用了MPEG-1Ⅲ层标准压缩编码格式。遵循MP3标准的音乐具有很高的压缩率和较高的保真度,其压缩比可达1:10~12,即1分钟CD音质的音乐经过MP3压缩编码后,可以压缩到1兆左右而基本保持不真。MP3的压缩率很高,失真也较小,但它的算法也较为复杂。MP3文件的内容是音频位流数据文件,它由若干个数据帧组成,每个数据帧的构成如图6所示。每帧中的音频数据含有1152个原始音频信号的采样信息,并且经过霍夫曼编码形成。数据帧的其它内容分别为:
头标信息:音频位流的一部分,它包含同步和状态信息。
校验字:音频位流的一部分,它包含用于错误检测的信息。
辅助信息:音频位流的一部分,它包含每帧中可用于解码的相关信息。
缩放因子信息:音频位流的一部分,它包含用于计算音频数据量化比例因子的信息。
霍夫曼编码数据:音频位流的一部分,它包含每帧中所有原始音频采样数据的霍夫曼编码。
附加数据:音频位流的一部分,它可包含一系列用户定义的辅助数据。
MP3解码
LayerⅢ采用了较复杂的比特流结构。解码程序的流程图如图7所示。首先获得每一帧的同步字,取得头信息,从而获得各相应参数,根据对头信息的解析进而得到实际的一帧音频数据。读取主数据获得比例因子数据,对样本进行解码,然后对解码样本顺序进行倒置,如果块类型(BlockSplit_type)和标志类型(Flag_typ)都为1时,对样本进行重新排序,根据边信息中霍夫曼码本的选择信息进行霍夫曼解码,然后进行反量化,根据帧头的立体声信息,对反量化结果进行立体声处理。最后通过混迭处理、IMDCT和合成滤波器重建数字音频信号。
结束语
系统采用了高性能的芯片及性能优良的模拟接口,具有很强的信号处理能力,可以高质量地完成立体声的解码算法。在系统的软硬件的基础上,显示器和键盘等,可以增加用户接口。该系统可以集成在数码相机等产品中增加MP3播放机功能,具有广阔的推广应用前景。