基于ARM946E处理器的MP3解码优化设计
如图2所示,存储器子系统包含1个存储器保护单元(MPU)、高速缓存(Cache)和写缓冲(Write Buffer);CPU通过该子系统与系统存储器相连。
相对于ARM7,ARM9E性能上的提高主要表现在工作频率、改进的硬件特性及优化的指令执行效率。另外,ARM9E集成了轻量级的DSP处理能力,以很小的成本(CPU增加功能需要增加硬件)换来非常实用的DSP性能。充分利用好芯片资源是实现MP3解码优化的关键。
3 算法优化
针对MP3中涉及较大运算的Huffman解码与反量化、IMDCT和子带合成,分别提出算法优化处理。3.1 定长查找冗余表Huffman解码算法Huffman解码器可以通过从头至尾逐一检测各符号,以查表比较的方式进行解码。即从一维的bit流中分辨出各个长度不同的Huffman码字,然后进行复杂的匹配。
由于LayeIⅢ中的Huffman码表组长度不一,会增加码字的搜索时间。定长查找冗余表法扩充Huff_man查找表,每次选取定长N bit码流作为查找索引。查找表中包括跳转指针和编码值。若节点索引值为跳转指针时,将通过扩充Huf贴片电感 f-man查找表得知此Huffman编码的后续 bit数,并跳转到另外一个节点;然后再根据后续bit数从码流中取值;接着从上次跳转节点开始查找,如此重复直到找出对应huffman编码的内容。查找表利用Union数据结构实现,可减小Huffman表占用的空间。假设一Huff-man编码长度为l,采用传统算法需要1次移位操作和1次比较,使用定长查找法只需[z/N]次查找和[l/N]次比较操作。
表1,表2是Huffman解码的举例说明: