>
首页 » 业界动态 » 基于DSP处理器的MP3解码器的优化

基于DSP处理器的MP3解码器的优化

作者:吴全玉, 杨燕翔  时间:2006-08-10 22:17  来源:
摘 要: 音频格式MP3 (第三层) 是现在非常流行的一种数字音频压缩技术, 适应于微小的移动设备, 如MP3 播放器和手机等。它们内置的解码器大多或者是基于DSP , 或者是RISC 处理器,虽然基于汇编语言的解码程序已经很成熟高效, 但是不方便移植。文中提出的优化解码程序是基于标准C 语言的, 只要添加不同类型的DSP 头文件, 就可以移植应用。已经成功解出MP3(44. 1kHz ,128kbps) , 并且满足国际音频组要求的限制精度。
关键词: MP3 解码器; DSP 处理器; 优化; C 程序

引言

MP3 (MPEG Layer 3) 格式是基于MPEG(MotionPicture Expert Group 电影专家组系统) 压缩标准的一种声音文件格式,其压缩比根据采样频率、压缩位率和声音模式的不同而有所变化。MP3 是现在非常流行的一种数字音频的压缩技术,它能够用12 :1 的压缩比将高保真的数字音频进行压缩,使得一张MP3光盘上能够存放十几张激光唱片的歌曲,而保证回放质量依然和激光唱盘一样。现在不光是计算机能够播放MP3 ,国内不少超级VCD 厂家也纷纷推出了具有播放MP3 碟片功能的超级VCD。

MP3 是感知音频编码的方案,它是为人耳设计的一种声音工具,它力图维持原始声音质量。通过使用MPEG提出的此音频编码方案,可以用1 :12 的压缩比来大大缩减CD 上的原始声音数据而不会影响声音质量。即使是1 :24 甚至更高的压缩比也依然能够保持声音质量,比靠降低采样频率来获得的样本要好的多。MP3 解码器大多是基于DSP 或者是RISC 处理器,虽然基于汇编语言的解码程序已经很成熟高效,但是不方便移植。本文提出的优化解码程序是基于标准C 语言的,只要添加不同类型的DSP 头文件,就可以移植应用。

1  DSP 处理器

FD230 是一片类似于ADSP - 2100 系列的数字信号处理器,它的目标是方便应用于嵌入式系统,支持16 ,20 和24 位配置,片上集成24k 程序存储器(PM) 和16k 数据存储器(DM) ,2 个串口,一个时间计算器, 12 个程控的I/O 口, 还有IDMA ( internalDMA) ,BDMA(Byte DMA) ,AHB ,JTAG ICE 和存储器扩展等接口。FD230 拥有指令cache 和六级流水线结构,最高频率达200MHz (0. 18um) ,低功耗和低成本的特点,适合集成在SOC 系统里。

2 MP3 算法

解码MP3 的算法相对于第一、二层的算法要复杂些,它采用了混合滤波器以提高分辨率,还用到非均匀量化、自适应分块及熵编码技术。解码的过程主要包括同步信号、附加信息和主数据的检测与提取缩放因子、哈夫曼解码、逆量化器、全缩放模块、重排序模块、立体声处理、合成滤波器组和混叠信号的消除模块等。MP3 (layer3) 标准要求的解码详细流程如图1。

图1  MP3 解码流程框图

3  算法的优化

在C 代码中,由于Hybrid 函数中包括IMDCT 和Windowing 两个函数,因此需要很多的乘法器,采用了优化的算法;使乘法器的数量至少比原来减少一半。下面简单介绍一下优化的算法。



4  代码优化

由于解码MP3 程序中用得最多的是乘加运算,就从此入手,专门做了一个乘法器和一个乘加的汇编程序段嵌进去: 下面的程序完成D = X *Y 的计算:
. entry MUL_ ;
MUL _:
  my1 = ay1 ;
  mr1 = 0 ;
  mr0 = 0x1000 ;
  mr = mr + ar*my1 (ss) ;
  sr = lshift mr0 by - 13 (lo) ;
  sr = sr or ashift mr1 by - 13 (hi) ;
  ar = sr0 ;
  rts ;
下面的程序完成D = D + X* Y的计算:
. entry MAD ;
MAD :
   mr1 = 0 ;
   mr0 = 0x1000 ;
   mr = mr + ax1*ay1 (ss) ;
   sr = lshift + mr0 by - 13(lo) ;
   sr = sr or ashift mr1 by - 13(hi) ;
   ar = ar + sr0 ;
 rts ;

另外,还优化了许多小的地方,如删除多余的语句,拼并一些语句,使其在一个时钟周期内完成。能用查表的地方,为了提高程序速度,都用其表,如pow_ 2 , pow_ 43 , huff_ treedata , imdct_ win , Sub-SynTab 等。

5  结论

当在FD230 型号的DSP 处理器上成功解出MP3(44. 1kHz ,128kbps) 数据时,统计各个主要模块在程序中复杂度所占的百分比如表1。

由以上分析可见,如对解码程序做进一步的完善,该系统应用于实际中将会产生很大的经济效益。

相关推荐

高通首款64位处理器或改变手机市场格局

高通  处理器  2013-12-17

高通将推出骁龙410处理器参考设计版本

高通  处理器  2013-12-12

三星仍是苹果A系列处理器唯一代工厂

三星  处理器  2013-11-14

ARM第三财季净利润7830万美元 同比涨17%

ARM  处理器  2013-10-23

14纳米64位Exynos 6处理器 三星欲超苹果?

三星  处理器  2013-10-18

英特尔Q3业绩不及预期 新处理器或库存失衡

英特尔  处理器  2013-10-17
在线研讨会
焦点