1引言MP3是目前世界上流行的音频格式之一,采用MPEG-1标准的AudioLayerⅢ压缩编码格式,具有高压缩率和保真度。MP3的解码功能大多以专用解码芯片的形式应用于多种消费类电子产品中。采用软解码的方式实现MP3实时播放功能可以充分利用硬件资源,节省芯片面积,有利于降低设计成本,同时软件方式可移植性好,解码质量可通过软件参数设定,具有更大的灵活性,便于系统升级。随着主流嵌入式微处理器ARM的处理能力越来越强,这种实现方
1 引 言
MP3是目前世界上流行的音频格式之一,采用MPEG-1标准的Audio LayerⅢ压缩编码格式,具有高压缩率和保真度。MP3的解码功能大多以专用解码芯片的形式应用于多种消费类电子产品中。采用软解码的方式实现MP3实时播放功能可以充分利用硬件资源,节省芯片面积,有利于降低设计成本,同时软件方式可移植性好,解码质量可通过软件参数设定,具有更大的灵活性,便于系统升级。随着主流嵌入式微处理器ARM的处理能力越来越强,这种实现方式也已经成为众多嵌入式设计公司研究的焦点。
与专用解码芯片相比,采用软件方式实现MP3实时解码的瓶颈在于解码效率。在多任务嵌入式系统中,单个任务的执行效率以及任务间的调度方式将直接影响整个系统在一定硬件资源条件下的实时响应速度。因此,在多任务嵌入式系统中采用软解码方式实现MP3实时播放,必须通过优化算法提高解码效率,在保证实时性的基础上降低对硬件资源的要求。
2 设计思想
MP3解码需要经过大量的数据处理。首先对MP3数据流进行帧同步并解出头信息和边信息供解码主数据使用,之后对主数据依次进行霍夫曼解码、反量化、IMDCT以及子带合成滤波,最终输出PCM码流。整个解码过程如图1所示。对定点化开源解码程序各模块执行时间进行测试,找出关键耗时模块并对其采用改进型快速算法;在保证一定音质的前提下,根据解码运算特征降低运算精度,从而在基于ARM926EJ-S处理器开发平台上实现对MP3音乐(码率为192 kb/s,采样率为44.1 kHz,立体声编码模式)的解码;在实时播放方面,提出双Buffer轮换DMA传送的设计方案,为高效任务调度的实现提供有利条件。