DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 145|回复: 0
打印 上一主题 下一主题

基于DSP的MP3解码系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-18 00:35:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
随着数字视频和图像处理的发展,数字音频技术也正在提高,尤其是以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播放机功能,具有广阔的推广应用前景。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-31 04:17 , 耗时 0.082522 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表