近年来,便携式音乐播放器大放异彩,备受人们喜爱。其中的原因有很多,例如海量的压缩音乐内容,数据存储成本不断下降、操作简便和轻松访问不同流行元素的在线音乐内容。消费者对下一代音乐播放器日益挑剔,期盼更长的音频播放时间、更丰富的聆听体验。
由此诞生了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位流
“Entropy&Inv Q”模块执行霍夫曼解码和反向量化
“IMDCT”模块对此数据进行反向修改离散余弦变换
“Overlap and Add”模块执行窗口化、重叠和加法运算
“Synthesis Filter Bank”从滤波器组域数据中重构时域样本
关键字:ARM Cortex-M 音频 性能解析
编辑:神话 引用地址:ARM Cortex-M的音频性能解析
推荐阅读最新更新时间:2023-10-12 20:30
ARM片外FIash存储器IAP解决方案
引 言
以ARM芯片为处理器核的嵌入式应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。在应用编程IAP(InApplicatAion Program)就是这样的自修改程序。它先在RAM存储器中写人数据值,然后使PC指向该存储段,把该段作为程序段来执行。很多ARM7芯片自带IAP处理器,应用其自带的IAP处理器可以方便地对其片内集成的Flash存储器进行在应用编程,但几乎所有的ARM核芯片均不支持片外IAP处理,因为片外Flash存储器是用户选型的,芯片生产厂家无法先知先觉,而不同Flash存储器其编程时序也不尽相同,导致芯片生产厂家无法提供通用的IAP代码。那么
[单片机]
ARM基础知识连载之七
*************************************************************
ARM编译器支持的数据类型
************************************************************
数据类型 长度(位) 对齐特性
Char 8 1(字节对齐)
short 16 2(百字对齐)
Int 32 4(字对齐)
Long 32 4(字对齐)
Longlong 64 4(字对齐)
Float 32 4(字对齐)
[单片机]
ARM下浮点数Middle-Endian问题的处理
摘要:本文描述了嵌入式GIS软件从X86平台移植到ARM体系结构平台的过程中遇到的浮点数存储字节顺序问题,并对该问题进行了详细分析,最终确定是ARM体系结构下浮点数的Middle-Endian存储问题,并提供了解决方案。 随着嵌入式微处理器芯片性能的日益提高,嵌入式设备也得到了广泛的应用。随着应用的扩展,嵌入式软件的开发也呈现出功能多样化、平台多样化和体系结构多样化等特点。 由于可移植性好,相当一部分嵌入式软件都是用C/C++语言开发的,而C/C++语言编写的程序中数据存储字节顺序是与编译平台所用的CPU相关的,所以嵌入式软件移植过程中,数据存储字节顺序是需要重点处理的地方。 在嵌入式GIS软件从X86体系
[单片机]
ARM 汇编 LDR STR MOV
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个地址写到某寄存器中,比如:ldr
[单片机]
mini2440----keil for ARM系列之串口
先说明一下为什么做了点灯我就做串口了,原因是我觉得串口调试通了在做以后的会更加容易,因为有些东西可以通过串口进行打印出来,这样就可以看到自己那里出错了,对于LED程序当然是第一需要做的。因为在中断中是不允许进行打印输出的,所以到时候调试中断就需要用点灯的方式来进行调试。 因此整个流程的实现:先搭建开发环境---------- 再进行一些初始程序的编写(LED与Uart便于以后调试)------------ 各个模块的裸机程序的编写---------------------- 以一个小型项目的形式把所用到的模块都结合起来。 串口的编写: 最最要注意的就是时钟的配置,由于这个问题在我做串口的过程中纠结的时间真的很长,而且没有使用示
[单片机]
英特尔能成功挑战ARM移动市场霸主地位吗?
过去20年,手机的角色已经由打电话的设备演变成我们数字生活的中心。由于兼具PC的部分优势和移动设备的便利性,2010年问世的 苹果 iPad使平板电脑风靡市场,市场上充斥同类产品证明平板电脑越来越受到人们欢迎。 在宏观经济低迷的情况下,尽管PC市场增速放慢,智能手机和平板电脑销售却在大幅增长,而且预计未来还将增长。
过去20年, 英特尔 一直主导着PC处理器市场。但是,为了成为全球技术革命的领跑者,与不断变化的消费者爱好保持一致,英特尔今年早些时候高调宣布进军智能手机和平板电脑芯片市场。
尽管英特尔在PC芯片市场上的唯一主要竞争对手是 AMD ,但在移动芯片市场上却面临 高通 、 英伟达 、德州仪
[手机便携]
ARM嵌入式平台的VGA接口设计
大多数嵌入式产品的显示终端都选择LCD,但在某些需要大屏幕显示的应用中,工业级LCD的价格比较昂贵,且现有的大屏幕显示器(包括CRT显示器和LCD显示器)一般都采用统一的15针VGA显示接口。三星公司ARM9芯片S3C2410以其强大的功能和高性价比在目前嵌入式产品中得到广泛的应用。笔者在开发基于ARM嵌入式平台的血液流变测试仪的过程中,成功地利用高性能视频D/A转换芯片ADV7120,将S3C2410自带的LCD扫描式接口转换为VGA接口,使之能够驱动VGA接口的显示器。
1 VGA接口介绍
近年来,业界制定出了众多数字化的显示接口协议,较为典型的是DVI(Digital Visual Interface)。由于数字
[嵌入式]
Actel为嵌入ARM7功能的FPGA推出开发工具套装
Actel公司宣布推出CoreMP7开发工具套装,这是完整的软、硬件开发环境,针对该公司CoreMP7软ARM7处理器内核的执行而设。CoreMP7开发工具套装包含屡获殊荣的CoreMP7、具Actel ARM7功能的M7 ProASIC3器件和FPGA开发工具,为用户提供了一切所需工具,可以快速和简便地评估及设计以FPGA为基础的系统级芯片 (SoC) 应用。
Actel IP市务经理Mike Thompson称:“CoreMP7开发工具充分发挥了FPGA的灵活性结合快速推向市场和业界标准ARM7处理器技术的优势,简化了复杂SoC芯片的评估和开发工作。这套开发工具是一个完善的开发环境,包含构件组装、行为仿真、电路综合、布局
[新品]