用低价型DSP实现MP3解码.docxVIP

  • 7
  • 0
  • 约6.23千字
  • 约 7页
  • 2019-04-26 发布于江苏
  • 举报
用低价型DSP实现MP3解码 吴海华, 王剑虹, 陈 健 【摘 要】 首先介绍了MPEG-2音频layer Ⅲ(MP3)的解码算法,详细地叙述进行定点C语言仿真的技巧。基于TI公司的’C549 DSP芯片进行汇编工作,在TMS320C549 EVM板上实现了网上MP3文件的连续播放,效果满意。经过对算法和程序的优化使所需的运算量和存储空间都很低,使能在TI公司的低价型’C5402 DSP上实现。 【关键词】 数字音频; 声音压缩; MPEG 【Abstract】 A study on MPEG-2 Audio layer Ⅲ(MP3) algorithm is described first in this paper, then the skill of the fixed point C simulation has been discussed in detail. The main points of this praper are real time MP3 continuous decoding implementation on TMS320C549 EVM board, the result is ideal. Through the optimization of the operational quantity and storage capacity,so the cheap chip TMS320C5402 DSP is ideal candidate. 【Key words】 digital audio; audio compression; MPEG 1 概述   随着人们对视听效果要求的不断提升,收听CD音质的Hi-Fi音乐成为日常生活中的一种需要,但CD的数码率高达1.4MB/s,无论是广播、国际互连网,以至存储都难以接受,必须进行压缩。在此背景下,一种基本达到CD音质效果,但码率被大大降低的音频压缩算法应运而生,这就是当前在互联网上非常流行的MP3压缩格式。   MP3是MPEG-2音频layer Ⅲ的简称,它是Hi-Fi级音频压缩的国际标准。编号为ISO/IEC ISO 13813-3,它有Layer Ⅰ,Layer Ⅱ,Layer Ⅲ三个不同层次的编码方案。Layer Ⅲ结合了MUSICAM(掩蔽型通用子带综合编码和复用)算法和ASPEC(自适应谱分析听觉熵编码)算法两者的优势,算法最为复杂,但它的压缩比最大。在采用64 kbps/声道的码率时(大约12倍压缩比),仍能保证高品质的音响效果,特别适合应用于ISDN网络的传输和存储。   当前在PC上实现MP3编解码的软件已经非常流行,但作为随身听的MP3解码器需要进行脱机工作。最近,国际著名的多媒体制造商Diamond,Creative相继推出了以闪存(Flash Memory)为存储媒质的MP3随身听,通过与PC的数据接口,可从PC上载入MP3源文件,并具有随时更新歌曲的能力。笔者采用了通用的DSP芯片进行MP3硬件解码,在播放时脱离了微机,可随身携带。作为普及型的消费类电子产品,要求尽可能低的成本。为此设法对程序算法进行优化,使其可以在TI公司廉价的TMS320C5402芯片上实现。 2 MPEG/AUDIO Layer Ⅲ解码的DSP实现   Layer Ⅲ采用了较复杂的比特流结构。解码软件的流程图如图1所示。首先获得每一帧的同步字,取得头信息,从而获得各相应参数,根据对头信息的解析进而获得实际的一帧音频数据。读取主数据获得缩放因子数据和霍夫曼码字,接着根据边信息中霍夫曼码本的选择信息进行霍夫曼解码,然后进行反量化,根据帧头的立体声信息(单、双声道,联合立体声、强度立体声),对反量化结果进行立体声处理。最后通过混叠处理、IMDCT和合成滤波器重建数字音频信号。 图1MP3截码流程图 2.1 头信息的读取及相应处理   由于MP3为了获取更高的数据压缩比,采用了较为复杂的比特流结构。当然处理帧的主数据(包含缩放因子和霍夫曼码字)起始位置一般不在该帧边信息后,而是根据边信息中参数main-data-begin的值决定主数据起始位置的前移字节数。由于main-data-begin为9 bit,其最大值可达511,典型的Layer Ⅲ码流如图2所示。由于   而对于Layer Ⅲ每帧有1 152个采样,采样率有44.1kHz,48kHz,32kHz三种,码率可从32kbps到320kbps不等。故而一帧内最大字节数达到1152×320k/(32k×8)=1440B。根据main-data-begin和当前帧字节数可确定数据缓冲区的内容和大小。在读取帧数据时,只需将比例因子和霍夫曼码字送入缓冲区即可,而边信息中的参数(霍夫曼参数和反量化参数)则

文档评论(0)

1亿VIP精品文档

相关文档