在眾多的恩智浦i.MX RT跨界處理器當(dāng)中,您可能會(huì)發(fā)現(xiàn)有些系列除了Arm內(nèi)核之外還結(jié)合了高性能的DSP,利用集成DSP的技術(shù)優(yōu)勢(shì),可提供高性能音頻數(shù)字信號(hào)處理能力,并包含特定算法操作,可實(shí)現(xiàn)完全可編程方法,從而提供最大的靈活性,本篇將介紹適用于i.MX RT500和i.MX RT600 MCU的Xtensa音頻框架(XAF)。
Xtensa音頻框架是一個(gè)用來(lái)加速開(kāi)發(fā)音頻處理應(yīng)用程序的框架,恩智浦以及Cadence提供了許多不同的音頻組件(component),程序開(kāi)發(fā)者可以從這林林總總的音頻組件當(dāng)中直接挑選套用。
下圖中列出了SDK中所包含的各種音頻組件。
下圖中是一個(gè)范例,展示了開(kāi)發(fā)者排列組合音頻組件并與之串聯(lián)在一起。
接下來(lái),我們通過(guò)這個(gè)框圖解釋一下在一個(gè)完整的音頻處理應(yīng)用程序當(dāng)中,Xtensa音頻框架的組成和彼此相對(duì)應(yīng)的關(guān)系。
綠色的部分就是所謂的Xtensa音頻框架,其中包含了三個(gè)主要的區(qū)塊,應(yīng)用接口層(App Interface Layer)、行程間通訊(IPC)、DSP接口層(DSP Interface Layer),另外要提醒一下,灰色的RTOS和各種的音頻組件,并不屬于Xtensa音頻框架的一部分。
Xtensa音頻框架利用XAF Developer API來(lái)創(chuàng)建、配置以及執(zhí)行音頻組件之間的內(nèi)存管理,還有音頻組件之間的數(shù)據(jù)傳輸以及音頻組件的處理調(diào)度。Xtensa音頻框架當(dāng)中的應(yīng)用接口層負(fù)責(zé)依據(jù)需求創(chuàng)建與維護(hù)語(yǔ)音處理串行,行程間通訊(IPC)則負(fù)責(zé)溝通應(yīng)用接口層與DSP接口層,而DSP接口層根據(jù)從應(yīng)用接口層所收到的命令,執(zhí)行具體的音頻處理。
如下圖所示,Xtensa音頻框架當(dāng)中應(yīng)用接口層(App Interface Layer)與DSP接口層(DSP Interface Layer)利用進(jìn)程間通訊(IPC)命令(command)與回復(fù)(response)的機(jī)制來(lái)傳送控制與數(shù)據(jù)。
接下來(lái)提供幾個(gè)串聯(lián)音頻組件的范例以供參考。
范例一:輸入PCM音頻數(shù)據(jù)調(diào)整訊號(hào)大小
范例二:輸入MP3文件并做解碼處理
范例三:解碼兩個(gè)MP3文件并做混音處理后輸出
范例四:解碼MP3的同時(shí)編碼另一個(gè)PCM音頻數(shù)據(jù)
范例五:實(shí)施音頻采樣率轉(zhuǎn)換
范例六:解碼AAC文件
范例七:解碼MP3并提供給音頻輸出裝置
范例八:從音頻輸入設(shè)備獲取PCM音頻數(shù),然后調(diào)整信號(hào)大小
范例九:解碼Ogg-Vorbis文件
范例十:解碼兩個(gè)MP3和一個(gè)AAC文件并輸入至混音器,混音器輸出兩個(gè)PCM,并分送一個(gè)調(diào)整信號(hào)大小,另一個(gè)則實(shí)施音頻采樣率轉(zhuǎn)換。
范例十一:使用渲染器的輸出當(dāng)成回音消除的輸入或是參考樣本
以上范例可以看出各個(gè)音頻組件的種種應(yīng)用。 另外也別忘了,除了恩智浦和Cadence所提供的音頻組件之外,使用者也能夠自己定義并開(kāi)發(fā)私有的音頻組件,而且所有的這些音頻組件,都能借由Xtensa音頻框架不斷地重復(fù)套用。
審核編輯:郭婷
-
dsp
+關(guān)注
關(guān)注
556文章
8155瀏覽量
357277 -
恩智浦
+關(guān)注
關(guān)注
14文章
5978瀏覽量
116377
原文標(biāo)題:適合i.MX RT的Xtensa音頻框架簡(jiǎn)介
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于恩智浦i.MX RT芯片內(nèi)部RAM運(yùn)行LVGL工程

如何實(shí)現(xiàn)安卓與恩智浦i.MX RT1170的無(wú)線投屏與控制

i.MX RT系列中FlexSPI DQS信號(hào)引腳配置GPIO方法

NXP i.MX RT1060移植TinyUSB:快速擴(kuò)展大量USB Class示例

如何禁用i.MX RT1170 MCU中的M4內(nèi)核?
恩智浦推出FRDM i.MX 93開(kāi)發(fā)板
在i.MX RT處理器上使用PXP實(shí)現(xiàn)縮放和旋轉(zhuǎn)組合操作

恩智浦i.MX 94應(yīng)用處理器如何變革工業(yè)和汽車連接
恩智浦i.MX RT700系列MCU的優(yōu)勢(shì)
NXP專為邊緣AI打造的i.MX RT700跨界MCU到底強(qiáng)在哪?

如何在i.MX RT微控制器上初始化LWIP協(xié)議棧

恩智浦推出全新i.MX RT700跨界MCU系列
i.MX Linux開(kāi)發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開(kāi)發(fā)板
恩智浦半導(dǎo)體發(fā)布i.MX RT700系列MCU,賦能智能AI邊緣設(shè)備
恩智浦i.MX RT1170 uSDHC eMMC啟動(dòng)時(shí)間

評(píng)論