基于多任务嵌入式应用的MP3实时解码系统设计.docVIP

  • 1
  • 0
  • 约3.7千字
  • 约 7页
  • 2018-03-10 发布于北京
  • 举报

基于多任务嵌入式应用的MP3实时解码系统设计.doc

基于多任务嵌入式应用的MP3实时解码系统设计   摘要:给出一种基于多任务嵌入式应用的MP3实时解码系统设计方法及实现过程。该系统针对以ARM926EJ―S处理器为核心的SoC硬件平台,通过对MP3解码过程中的关键耗时模块进行算法优化,提高解码效率,达到实时播放的要求。实验结果证明,该系统可在处理器主频仅为36 MHz的条件下流畅播放MP3音乐(码率为192 kb/s)。该设计特点为根据子带合成滤波中乘法运算的数据特征,巧妙地对操作数进行预移位操作,从而在保证一定数据精度的基础上缩短乘法运算的指令周期,实现解码效率的大幅度提升。提出一种利于高效任务调度的实时播放方案,对于高实时性、低功耗多任务嵌入式系统设计具有很好的参考意义。   关键词:多任务;MP3;ARM;算法优化;实时播放   中图分类号:TN409,TP37   文献标识码:B   文章编号:1004―373X(2008)04―029―03      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传送的设计方案,为高效任务调度的实现提供有利条件。         3 系统实现过程      3.1硬件系统   本文采用的嵌入式系统是以ARM926EJ-S处理器为核心的SoC开发平台,最高运行主频为190 MHz,支持ARMv5T指令集,存储器包括SDRAM和NAND FLASHROM,外围设备包括DMA控制器、中断控制器、USB控制器、UART控制器、I2S控制器以及定时/计数器。整个硬件系统的架构如图2所示。   MP3文件和程序代码通过UbB线下载并分别存放入NAND FLASH ROM和SDRAM;解码MP3文件得到的PCM码流送入I2S控制器输出;UART控制器可实现串口打印输出调试信息,跟踪程序运行状态;定时/计数器用于测试解码时间,对解码各个模块进行耗时分析。      3.2代码移植   搭建好硬件平台后,对各硬件模块进行初始化,并加载文件系统,完成软件平台的搭建。将开源的MP3解码程序代码移植到软件平台上,这一过程主要是针对平台的文件系统,对文件读写函数进行替换,并将屏幕打印替换为串口打印操作。移植后的代码实现对MP3文件进行解码,并输出为PCM码流文件。利用CoolEdit对输出PCM码流文件进行测试播放,输出音质良好。      3.3耗时分析   成功移植后,对代码进行耗时分析,找出耗时最大的功能模块,确定重点优化对象。该系统采用硬件定时/计数器作为测试工具,将计数器的计数频率调配为1 MHz,可实现1μs的测试精度。在ARM工作主频为150 MHz的条件下,对100帧MP3数据的解码过程进行耗时测试,测试结果如表1所示。根据表1测试数据可知,子带合成滤波占了整个解码时间的60%以上,是决定解码速度的最关键模块;其次是长块IMDCT运算,占了整个解码时间的10%以上。因此,子带合成滤波与长块IMDCT成为优化重点。         3.4解码算法分析与优化   3.4.1 子带合成滤波算法优化   子带合成滤波是MP3解码过程中最耗时的关键流程,该解码系统采用Konstan

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档