在众多的恩智浦i.MX RT跨界处理器当中,您可能会发现有些系列除了Arm内核之外还结合了高性能的DSP,利用集成DSP的技术优势,可提供高性能音频数字信号处理能力,并包含特定算法操作,可实现完全可编程方法,从而提供最大的灵活性,本篇将介绍适用于i.MX RT500和i.MX RT600 MCU的Xtensa音频框架(XAF)。
Xtensa音频框架是一个用来加速开发音频处理应用程序的框架,恩智浦以及Cadence提供了许多不同的音频组件(component),程序开发者可以从这林林总总的音频组件当中直接挑选套用。
下图中列出了SDK中所包含的各种音频组件。
下图中是一个范例,展示了开发者排列组合音频组件并与之串联在一起。
接下来,我们通过这个框图解释一下在一个完整的音频处理应用程序当中,Xtensa音频框架的组成和彼此相对应的关系。
绿色的部分就是所谓的Xtensa音频框架,其中包含了三个主要的区块,应用接口层(App Interface Layer)、行程间通讯(IPC)、DSP接口层(DSP Interface Layer),另外要提醒一下,灰色的RTOS和各种的音频组件,并不属于Xtensa音频框架的一部分。
Xtensa音频框架利用XAF Developer API来创建、配置以及执行音频组件之间的内存管理,还有音频组件之间的数据传输以及音频组件的处理调度。Xtensa音频框架当中的应用接口层负责依据需求创建与维护语音处理串行,行程间通讯(IPC)则负责沟通应用接口层与DSP接口层,而DSP接口层根据从应用接口层所收到的命令,执行具体的音频处理。
如下图所示,Xtensa音频框架当中应用接口层(App Interface Layer)与DSP接口层(DSP Interface Layer)利用进程间通讯(IPC)命令(command)与回复(response)的机制来传送控制与数据。
接下来提供几个串联音频组件的范例以供参考。
范例一:输入PCM音频数据调整讯号大小
范例二:输入MP3文件并做解码处理
范例三:解码两个MP3文件并做混音处理后输出
范例四:解码MP3的同时编码另一个PCM音频数据
范例五:实施音频采样率转换
范例六:解码AAC文件
范例七:解码MP3并提供给音频输出装置
范例八:从音频输入设备获取PCM音频数,然后调整信号大小
范例九:解码Ogg-Vorbis文件
范例十:解码两个MP3和一个AAC文件并输入至混音器,混音器输出两个PCM,并分送一个调整信号大小,另一个则实施音频采样率转换。
范例十一:使用渲染器的输出当成回音消除的输入或是参考样本
以上范例可以看出各个音频组件的种种应用。 另外也别忘了,除了恩智浦和Cadence所提供的音频组件之外,使用者也能够自己定义并开发私有的音频组件,而且所有的这些音频组件,都能借由Xtensa音频框架不断地重复套用。
审核编辑:郭婷
-
dsp
+关注
关注
552文章
7962浏览量
348187 -
恩智浦
+关注
关注
14文章
5825浏览量
106585
原文标题:适合i.MX RT的Xtensa音频框架简介
文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论