基于ARM946E处理器的MP3解码优化设计
1/2 12下一页尾页
4.3 ARM DSP扩展指令的运用
ARM946E处理器支持ARMDSP扩展指令,主要包括3个类型:
(1)单周http://www.szmzhg.com/一体成型贴片电感期的16×16和32×16 MAC操作;
(2)对原有的算术运算指令增加了饱和处理扩展;
(3)前导零(CLZ)运算指令,提高归一化、浮点运算以及除法操作的性能。
ARM处理器不支持浮点运算,经过测试及分析,定点运算中数值的截断误差选择为28 b,其可以达到较好的解码音质,不会因为爆音过多而影响播放效果。
完成类似的乘法功能,ARM的SMULL(32×32)指令需要3个周期,而ARMDSP扩展指令SMULWT(32×16)只需要1个周期。从数据的准确性上分析,由于乘数的精度为16 b,最终结果有些差异,但由于MP3解码运算都是基于28 b的定点数值的,所以通常的运算都是一个运算结果跟某一个固定定点表中的数据相乘的。若选择固定定点表中数据的高16 b数据进行运算,运算的结果误差在1 b以内。
为了验证使用ARMDSP扩展
指令的优化效果,在系统120 MHz主频下,以128 Kb/s的压缩速率进行编码测试,采用的测试文件如表4所示。
上述3个MP3测试文件的比特率均为128 Kb/s,使用这三首MP3歌曲进行解码分析结果如图3所示。
实验表明,使用ARM DSP扩展指令比使用ARM一般指令解码性能平均提高17.5%,主观听觉上音质效果无差异。
5 结 语
这里充分利用ARM946E处理器的DSP扩展指令特点提高程序代码的执行效率,对3个关键模块:Huff-man解码,IMDCT运算,合成子带滤波进行算法优化及简化处理,减少了各模块的运算量,同