论文部分内容阅读
当前,嵌入式系统得到了快速的发展,移动平台成为多媒体技术应用的新的关注点。目前移动平台上采用的主流处理器是ARM处理器,因为其有限的性能,所以研究音频解码优化对于移动平台来说,有着很重要的实际应用价值。ARM Cortex-A8作为一款基于ARMv7架构的ARM处理器,因为其特有的NEON协处理器,使得并行处理音视频及图形数据成为可能。Opus是一款最新推出的音频编码标准,与AAC、OGG等其它有损格式相比,Opus有更好的压缩比,且在音质上的表现非常优秀,必将引起移动多媒体领域更多的关注。因此针对采用ARM Cortex-A8处理器的移动设备,使用NEON技术对Opus解码器进行优化,应用前景很广阔。在介绍Cortex-A8的各项新技术的基础之上,深入分析了Cortex-A8处理器中两条流水线,包括13级传统ARM核流水线和10级NEON协处理单元的并行处理流水线,并提出一些实用的ARM系统流水线策略,应用在Opus音频解码的NEON汇编优化过程中。深入解析Opus的解码流程,结合Opus解码器的性能测试结果,对其中的两大解码层中的一些复杂模块进行了算法分析。针对适合并行优化的模块,利用NEON核流水线并行处理机制和ARM汇编指令对其中一些运算密集型的热点函数进行汇编级的优化;针对其他模块,如熵解码模块中区间解码运算则采用ARMv7的汇编指令进行传统的优化,并对指令进行重新排序,减少流水线停顿。最终的实验运行在iPad1平台上,针对不同的Opus音频文件进行性能测试,根据实验结果可知,优化后Opus解码器的SILK解码层和CELT解码层的整体解码性能分别提升了60%和78%左右。