好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

浅谈ARM Cortex-M的音频性能.docx

6页
  • 卖家[上传人]:无***
  • 文档编号:305694792
  • 上传时间:2022-06-08
  • 文档格式:DOCX
  • 文档大小:19.27KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Word浅谈ARM Cortex-M的音频性能 近年来,便携式音乐播放器大放异彩,备受人们宠爱其中的缘由有许多,例如海量的压缩音乐内容,数据存储成本不断下降、操作简便和轻松访问不同流行元素的音乐内容消费者对下一代音乐播放器日益挑剔,期盼更长的音频播放时间、更丰富的倾听体验 由此诞生了Cortex-M系列,这是新一代ARM低成本微处理器,采纳低功耗设计Cortex-M3内核和最近发布的Cortex-M4内核基于哈佛架构的3级流水线并采纳Thumb-2指令集架构(ISA),内存要求更低但这些MCU能否胜任音频处理任务?它们能否打造更精彩的倾听体验,满意人们的期望? 为了分析这些处理器是否适合处理音频,首先我们以MP3解码器和均衡器为例,大致了解一下音频解码器和后处理等音频部件中常用音频处理模块实施方案,然后根据高效实现这些模块对处理器指令集架构的要求,对模块加以分类 我们重点从指令集角度来探讨Cortex-M3和Cortex-M4内核在音频处理方面的优势为此,我们先争论不同音频部件的一些模块代码示例,随后分析这些处理器在循环和指令方面的独到优势,最终,将展现流行音频编解码器和音频后处理部件的典型性能指标以佐证这些处理器内核的音频力量。

      音频处理模块的功能块 为了分析音频处理器要求,现先从音频处理模块所涉及的功能块,即音频编解码器和音频后处理部件谈起本节框图中的模块用颜色标为3种不同类别绿色表示乘加(MAC)密集模块、红色表示MAC和掌握代码混合模块、蓝色表示掌握代码模块 音频编解码器 互联网供应了大量压缩音频数据,必定要求音乐播放器支持多种流行的音频解码器音频编码器的处理功能涉及一系列功能块,我们接下来回顾一下 图1:典型音频编码器框图 音频编码器:音频编解码器的用途是实现音频数据压缩,同时在给定比特率的限制下努力获得保真音质典型编码器如图1所示一般来说,音频编码器采纳如下三步完成压缩:首先,通过数据滤波调整音频数据然后,通过窗口化和重叠对音频数据进行帧化,等待进一步处理;接着,将此数据变换至频域,消退时域内的冗余使专心理声学原理,对可能引入的、听不见的量化噪声数量进行计算;最终,对此数据进行量化并通过熵编码实现进一步 无损压缩此编码数据经紧密打包成为位流尽管所实现的压缩有些损耗,但听觉难以辨别微小差别 音频解码器:将上述关于音频编码器的过程反向,即是音频解码器从位流中还原音频数据的原理。

      这里以MP3解码器为例进行争论,高层模块分解如图2所示框图以MP3文件格式的压缩音频作为输入并输出PCM格式的非压缩音频 这些模块以功能命名,并代表各自执行的操作 图2:MP3解码器框图 “Bit Stream Demux”模块解析MP3位流 “EntropyInv Q”模块执行霍夫曼解码和反向量化 “IMDCT”模块对此数据进行反向修改离散余弦变换 “Overlap and Add”模块执行窗口化、重叠和加法运算 “Synthesis Filter Bank”从滤波器组域数据中重构时域样本 音频后处理 两种状况肯定需要音频数据后处理首先,要求供应丰富的倾听体验例如,可使用立体声加宽等空间定位器(Spatializer)来消退长时间使用耳机的听觉疲惫即使是基本的音频播放,也需要后处理例如,音乐播放器的DAC假如仅支持有限系列采样率的状况下,可能需要对音频数据进行重新采样 图3:均衡器框图 我们以均衡器为例,探讨后处理器中用到的典型模块均衡器一般是为了满意倾听者的偏好,同时也可用于校正耳机或扬声器的频响图3所示为基本参数均衡器的高层模块分解。

      下列模块用于仅修改一小段音频频谱,详细做法是利用增益值、带宽和中心/截止频率的可控参数供应增益或衰减要获得所需频响,可将多个此类二阶IIR滤波器级联 低频(LF)斜率滤波器:一种用于修改音频频谱低音部分的滤波器 峰化滤波器:一种用于修改音频频谱中频范围的滤波器 高频(HF)斜率滤波器:一种用于修改音频频谱高音部分的滤波器 音频处理模块类别 依据特性,音频处理模块广义上分为三类我们将具体争论每种模块及其特性,然后进一步分析高效实现这些模块对处理器的要求表1概述了本节所述音频处理的处理器要求 表1:音频处理模块及其处理器要求 MAC密集模块 这些模块属于计算密集型,主要执行乘加(MAC)运算,通常有一个预定的代码流滤波(FIR、IIR滤波器)、窗口化、相关性及卷积等信号处理运算属于此类别的典型例子此类模块的处理器要求稍后论述 高精度MAC:这些模块正常工作需要高精度乘加法例如,IIR滤波器的稳定性要求 高精度运算输出的保真度和精度直接取决于MAC指令的精度尽管可使用低精度指令来某些仿真高精度MAC指令(例如32位乘以32位,在64位结果内累加),但最好是使用高精度MAC指令来获得高效实现。

      SIMD力量:这些模块内的运算往往是少量指令的反复执行,从而产生精简循环内核单指令多数据(SIMD)力量对于此类模块的高效执行最为抱负内置此功能的处理器更有利于处理此类模块 饱和算法:某些运算需要使用饱和算法例如,当在运行时产生窗口系数或在产生PCM输出数据到所需位宽时针对饱和算术的需求可以削减,但无法完全避开,由于中间结果的位宽更高因此,支持饱和算法的指令是高效实现的抱负之选 分支推想:这些模块有一个预定的代码流由于这些模块需要对指令反复执行运算,简洁的分支推想有利于削减因流水线清空所产生的开销 MAC和掌握代码混合模块 这些模块同样是计算密集型,但在MAC密集运算中还涉及掌握代码运算快速傅里叶变换(FFT)、滤波器组等变换运算是这一类型的典型例子此类模块的处理器要求为: DSP指令:由于上述两类模块(MAC密集模块和MAC和掌握代码混合模块)主要涉及MAC运算,因此,假如只有MAC和MLS(乘法和减法)指令而无运算累加的开销,肯定能提高效率 混合位宽运算:运算对象的最小位宽取决于各种因素例如,在滤波运算中,输出精度和滤波器稳定性打算滤波器系数的位宽所以高效实现离不开能够处理混合位宽运算对象的指令。

      压缩数据处理:FFT等这类模块的运算一般使用称为旋转因子的16位系数FFT基数越高,所涉及的旋转因子越多,但相对简单度越低这些旋转因子可通过打包成32位数据来降低内核循环中的任何寄存器不足或者可通过将旋转因子载入到内核循环以外的寄存器来避开重复负载的可能开销因此,能够运算压缩数据的指令是提高效率的抱负之选 - 6 -。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.