近年来,便携式音乐播放器大放异彩,备受人们喜爱。其中的原因有很多,例如海量的压缩音乐内容,数据存储成本不断下降、操作简便和轻松访问不同流行元素的在线音乐内容。消费者对下一代音乐播放器日益挑剔,期盼更长的音频播放时间、更丰富的聆听体验。
由此诞生了Cortex-M系列,这是新一代ARM低成本微处理器,采用低功耗设计。Cortex-M3内核和最近发布的Cortex-M4内核基于哈佛架构的3级流水线并采用Thumb-2指令集架构(ISA),内存要求更低。但这些MCU能否胜任音频处理任务?它们能否打造更出色的倾听体验,满足人们的期望?
为了分析这些处理器是否适合处理音频,首先我们以MP3×××和均衡器为例,大致了解一下音频×××和后处理等音频部件中常用音频处理模块实施方案,然后按照高效实现这些模块对处理器指令集架构的要求,对模块加以分类。
我们重点从指令集角度来探讨Cortex-M3和Cortex-M4内核在音频处理方面的优势。为此,我们先讨论不同音频部件的一些模块代码示例,随后分析这些处理器在循环和指令方面的独到优势,最后,将展示流行音频编×××和音频后处理部件的典型性能指标以佐证这些处理器内核的音频能力。
音频处理模块的功能块
为了分析音频处理器要求,现先从音频处理模块所涉及的功能块,即音频编×××和音频后处理部件谈起。本节框图中的模块用颜色标为3种不同类别。绿色表示乘加(MAC)密集模块、红色表示MAC和控制代码混合模块、蓝色表示控制代码模块。
音频编×××
互联网提供了大量压缩音频数据,必然要求音乐播放器支持多种流行的音频×××。音频编码器的处理功能涉及一系列功能块,我们接下来回顾一下。