适用于i.MX RT500和i.MX RT600 MCU的Xtensa音频框架介绍

描述

在众多的恩智浦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音频框架不断地重复套用。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分