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