论文部分内容阅读
随着嵌入式系统的迅猛发展,各种多媒体技术的应用越来越多地出现在移动设备上。目前,移动设备大多是采用ARM处理器,但音频解码时计算量大,ARM处理器性能有限,对音频解码的优化有很重要的意义。ARM Cortex-A8是由ARM公司推出的基于ARMv7架构的应用处理器,它引入了专门处理音视频、图形的NEON媒体处理引擎,可以并行的处理音频数据。AAC是一种具有高压缩率、高音质、多采样率和多声道的高级音频编码标准。与MP3、AC3等音频编码标准相比,在相同的音质下AAC的码率更低,因而使得它在互联网、移动多媒体等领域得到越来越广泛的应用。在Cortex-A8平台上对AAC解码器的优化,有着重要的应用前景。针对AAC的解码流程、解码的关键模块以及NEON媒体引擎进行了分析,通过对LC-AAC解码器的测试得出主要耗时模块为Huffman解码,反量化和滤波器组,对这三个模块的算法进行了分析和优化。针对Huffman解码模块,研究了escape方式的Huffman解码在Cortex-A8平台下的并行策略;反量化模块实现了部分查表法和带修正函数的线性插值法相结合的算法;对滤波器组模块,结合NEON的并行机制和IMDCT算法的密集型特点,使用NEON指令集对IMDCT算法进行了优化。以iPhone3GS平台作为性能测试环境,通过测试不同采样率的音频文件,得到实验结果。实验结果表明,使用了NEON汇编代码优化后整体的解码性能提升了70%以上。