0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

恩智浦MCU加油站 来源:恩智浦MCU加油站 作者:恩智浦MCU加油站 2022-11-10 09:39 次阅读

在众多的恩智浦i.MX RT跨界处理器当中,您可能会发现有些系列除了Arm内核之外还结合了高性能的DSP,利用集成DSP的技术优势,可提供高性能音频数字信号处理能力,并包含特定算法操作,可实现完全可编程方法,从而提供最大的灵活性,本篇将介绍适用于i.MX RT500和i.MX RT600 MCU的Xtensa音频框架(XAF)。

Xtensa音频框架是一个用来加速开发音频处理应用程序的框架,恩智浦以及Cadence提供了许多不同的音频组件(component),程序开发者可以从这林林总总的音频组件当中直接挑选套用。

下图中列出了SDK中所包含的各种音频组件。

8fc8a464-6090-11ed-8abf-dac502259ad0.png

9229175c-6090-11ed-8abf-dac502259ad0.png

下图中是一个范例,展示了开发者排列组合音频组件并与之串联在一起。

92c3aa88-6090-11ed-8abf-dac502259ad0.png

接下来,我们通过这个框图解释一下在一个完整的音频处理应用程序当中,Xtensa音频框架的组成和彼此相对应的关系。

92e9eb94-6090-11ed-8abf-dac502259ad0.png

绿色的部分就是所谓的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)的机制来传送控制与数据。

931a753e-6090-11ed-8abf-dac502259ad0.png

接下来提供几个串联音频组件的范例以供参考。

范例一:输入PCM音频数据调整讯号大小

93314278-6090-11ed-8abf-dac502259ad0.png

范例二:输入MP3文件并做解码处理

93565cd4-6090-11ed-8abf-dac502259ad0.png

范例三:解码两个MP3文件并做混音处理后输出

938464f8-6090-11ed-8abf-dac502259ad0.png

范例四:解码MP3的同时编码另一个PCM音频数据

93a2d6ae-6090-11ed-8abf-dac502259ad0.png

范例五:实施音频采样率转换

93bffd74-6090-11ed-8abf-dac502259ad0.png

范例六:解码AAC文件

93cc5704-6090-11ed-8abf-dac502259ad0.png

范例七:解码MP3并提供给音频输出装置

93f7b52a-6090-11ed-8abf-dac502259ad0.png

范例八:从音频输入设备获取PCM音频数,然后调整信号大小

9414950a-6090-11ed-8abf-dac502259ad0.png

范例九:解码Ogg-Vorbis文件

943503f8-6090-11ed-8abf-dac502259ad0.png

范例十:解码两个MP3和一个AAC文件并输入至混音器,混音器输出两个PCM,并分送一个调整信号大小,另一个则实施音频采样率转换。

94518cee-6090-11ed-8abf-dac502259ad0.png

范例十一:使用渲染器的输出当成回音消除的输入或是参考样本

94723dae-6090-11ed-8abf-dac502259ad0.png

以上范例可以看出各个音频组件的种种应用。 另外也别忘了,除了恩智浦和Cadence所提供的音频组件之外,使用者也能够自己定义并开发私有的音频组件,而且所有的这些音频组件,都能借由Xtensa音频框架不断地重复套用。

审核编辑:郭婷

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

    关注

    544

    文章

    7687

    浏览量

    344388
  • 恩智浦
    +关注

    关注

    14

    文章

    5715

    浏览量

    100783

原文标题:适合i.MX RT的Xtensa音频框架简介

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用i.MX RT500实现SPI/DMA AN14170应用指南

    电子发烧友网站提供《使用i.MX RT500实现SPI/DMA AN14170应用指南.pdf》资料免费下载
    发表于 02-01 10:05 0次下载
    使用<b class='flag-5'>i.MX</b> <b class='flag-5'>RT500</b>实现SPI/DMA AN14170应用指南

    I.MX RT1052代码执行在哪里?

    试用的开发板里有了I.MX RT1052 但是看I.MX RT1052有代码与数据的SPI Flash,还有SRAM,还有片上的TCM 代码可以执行在TCM上么?还是在SRAM上运行。
    发表于 11-09 06:49

    i.MX RT中FlexSPI外设不常用的读选通采样时钟源

    i.MX RT中FlexSPI外设不常用的读选通采样时钟源
    的头像 发表于 10-30 17:44 268次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>中FlexSPI外设不常用的读选通采样时钟源

    浅谈i.MX RT10xx系列MCU外接24MHz晶振的作用

    浅谈i.MX RT10xx系列MCU外接24MHz晶振的作用
    的头像 发表于 10-30 17:22 400次阅读
    浅谈<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>10xx系列<b class='flag-5'>MCU</b>外接24MHz晶振的作用

    i.MX RT1050上如何实现双大容量存储(MSC)设备

    i.MX RT1050上如何实现双大容量存储(MSC)设备
    的头像 发表于 10-30 17:08 336次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1050上如何实现双大容量存储(MSC)设备

    i.MX RT500/600系列上串行NOR Flash双程序可交替启动设计

    i.MX RT500/600系列上串行NOR Flash双程序可交替启动设计
    的头像 发表于 10-27 09:36 264次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT500</b>/<b class='flag-5'>600</b>系列上串行NOR Flash双程序可交替启动设计

    i.MX RT的FlexRAM配置问题

    i.MX RT的FlexRAM配置问题
    的头像 发表于 10-24 15:46 289次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FlexRAM配置问题

    基于NXP i.MX RT1021跨界MCU实现一个简单的波形采集

    基于NXP i.MX RT1021跨界MCU实现一个简单的波形采集,使用了RT1021设计了一个简单的核心板,然后使用信号发生器产生波形
    发表于 09-13 17:25 494次阅读
    基于NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1021跨界<b class='flag-5'>MCU</b>实现一个简单的波形采集

    i.MX RT的FreeRTOS MCUXpresso工程中添加runtime

    在调试 i.MX RT FreeRTOS MCUXpresso SDK工程的时候, 很多网友需要添加查看每个task的runtime功能。
    的头像 发表于 06-09 09:30 976次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的FreeRTOS MCUXpresso工程中添加runtime

    i.MX RT10xx使用FlexIO实现XY2-100振镜控制协议

    本文介绍了如何使用i.MX RT系列芯片上的FlexIO实现XY2-100激光振镜控制协议。FlexIO模块是NXP Kinetis和i.MX RT
    的头像 发表于 05-18 09:21 4029次阅读
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>10xx使用FlexIO实现XY2-100振镜控制协议

    i.MX RT系列(例如 RT1050/1060)有多少个PWM通道?

    i.MX RT 系列(例如 RT1050/1060)有多少个 PWM 通道? 我可以像在 KV58 MCU(两个 flexPWM 模块)上做同样的事情吗?
    发表于 05-18 07:07

    i.MX RT1170自定义引导加载程序,如何在i.MX RT处理器上完成?

    我将在我的自定义 i.MX RT1170 板上开发自定义引导加载程序。在我的例子中,闪存驱动程序将通过 USB 读取以更新主要应用程序。 我正在研究
    发表于 05-17 08:13

    i.MX RT1170评估套件快速入门:这份保姆级教程,请收藏!

    恩智浦官网精彩导览 i.MX RT1170评估套件快速入门 i.MX RT1170 是恩智浦推出的首款主频超过1GHz的跨界MCU,结合了强
    的头像 发表于 05-12 11:55 1620次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1170评估套件快速入门:这份保姆级教程,请收藏!

    i.MX RT1xxx从SD/eMMC启动

    最近在恩智浦官方社区上支持了一个关于i.MX RT从SD卡启动的案例,这让我想起了一年前写过的一篇《i.MX RT600从SD/eMMC启动》,那一篇重点
    的头像 发表于 05-11 14:34 754次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1xxx从SD/eMMC启动

    i.MX RT系列上是否有8个PWM通道可用?

    我使用 MKV58 通过 8 个 PWM 通道驱动 3 个 BLDC 和 1 个直流电机。 现在,我正在检查 i.MX RT 系列,只发现有 4 个 PWM 通道可供使用。 谁能告诉我 i.MX
    发表于 05-06 06:33