<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 互連技術 > 正文

    使用音頻增強型 DMA 加速復雜的音頻 DSP 算法

    發布時間:2023-07-31 責任編輯:lina

    【導讀】音頻工程師面臨的挑戰是設計設備,提供更好的音頻保真度,支持更多音頻通道,處理更高的采樣率和位深度,同時保持緊張的實時處理預算。


    音頻工程師面臨的挑戰是設計設備,提供更好的音頻保真度,支持更多音頻通道,處理更高的采樣率和位深度,同時保持緊張的實時處理預算。

    在許多音頻應用中,系統性能的主要瓶頸是音頻數據的高效移動。多年來,數字信號處理器 (DSP) 架構引入了各種創新,從 DSP 內核卸載了許多 I/O 或數據移動任務,使其能夠專注于信號處理任務。

    直接內存訪問 (DMA) 引擎是當今大多數高性能 DSP 的關鍵組件。DSP 可以配置 DMA 引擎來訪問片上和片外資源,并促進它們之間的傳輸,而不必顯式訪問存儲器或外設。這些 DMA 傳輸可以與關鍵 DSP 內核處理并行執行,以獲得性能。

    標準 DMA 引擎非常適合傳統的一維和二維算法處理,例如塊復制和基本數據排序。但是,許多音頻算法需要更復雜的數據傳輸。延遲線就是一個例子,它由前一個時間點的音頻樣本組成,用于創建所需的音頻效果(例如回聲)。傳統的 DMA 性能對于管理延遲線來說并不是的,需要對 DMA 架構進行創新,以有效地處理所需的音頻算法。

    是否需要DMA加速?

    這個問題的答案是肯定的,原因有兩個。首先,許多高性能 DSP 引擎中的 DMA 通道數量限制了 (pro) 音頻應用。其次,由于對高質量音頻的需求,音頻應用中的傳統DMA通常需要更多的CPU參與


    使用音頻增強型 DMA 加速復雜的音頻 DSP 算法
    圖1。音頻應用框圖


    上面的框圖描述了典型音頻應用中的數據流。每個效果獲取前一個效果的輸出,處理數據,并將其輸出轉發到數據處理鏈中的下一個效果(例如,Phaser 效果的輸出被輸入到 Delay 效果,Delay 效果的輸出被發送到混響) 。

    上圖所示的數字音頻效果依賴于延遲線來實現。在描述完整的效果系統時,需要多個延遲線。改變設計中使用的延遲長度會改變音頻效果的質量。

    延遲線是線性時不變系統,其輸出信號是延遲了 x 個樣本的輸入信號的副本。在 DSP 上實現延遲線的有效方法是使用循環緩沖器。循環緩沖區存儲在線性存儲器的專用部分中;當緩沖區被填滿時,新的數據被寫入,從緩沖區的開頭開始。

    循環緩沖區數據由一個進程寫入,由另一個進程讀取,這需要單獨的讀寫指針。讀寫指針不允許交叉,這樣未讀數據就不會被新數據覆蓋。循環緩沖區的大小由效果所需的延遲決定。在本文中,先進先出 (FIFO) 和循環緩沖區名稱可以互換使用。

    當使用傳統的 DMA 引擎在基于延遲的音頻效果中移動數據時,會為信號處理鏈中的每個效果分配一個單獨的循環緩沖區。饋送到特定音頻效果的輸入數據存儲在分配給該效果的循環緩沖區中。下面的框圖顯示了更詳細的數據流。在下面圖 2 的框圖中,循環緩沖區由環表示。使用循環緩沖區的環形表示,因為它顯示分配給循環緩沖區的線性地址空間的包裝。當指針通過循環緩沖區前進時,地址將增加,直到遇到回繞條件,導致指針重置到內存地址或循環緩沖區的起始點。


    使用音頻增強型 DMA 加速復雜的音頻 DSP 算法
    圖2. 使用傳統DMA引擎時的Pro音頻應用數據流框圖


    為了產生不同的延遲,DMA 必須從延遲線內的不同位置檢索延遲數據。如果使用塊處理,則會檢索一組數據而不是僅一個樣本。

    傳統的 DMA 引擎通常允許程序員指定幾個完整描述所需傳輸的參數。通常,這些參數是源地址、目標地址、源和目標的索引以及傳輸計數。每次 DMA 傳輸將需要一個典型 DMA 總體功能的通道。

    在上面的框圖中,有五個循環緩沖區。傳統的 DMA 引擎必須經過編程才能將數據移入和移出每個緩沖區。在上面所示的應用中,處理一個數據塊至少需要 11 次 DMA 傳輸。

    這是所需的 DMA 傳輸的數量,假設從每個循環緩沖區中只檢索每個效果的一個延遲。在典型應用中,每個數據塊的 DMA 傳輸數量會高得多。例如,混響效果的實現總是需要來自其循環緩沖區的多個延遲。

    隨著實現的音頻效果數量的增加,所需的傳統 DMA 傳輸數量也會增加。因此,系統中可用的傳統 DMA 通道的數量會限制可實現的音頻效果的數量。

    傳統 DMA 在音頻應用中的局限性

    標準 DMA 引擎在以連續或固定間隔移動長數據塊時表現良好。固定間隔傳輸的一個示例是 DMA 引擎訪問延遲線的每四個數據樣本。

    當訪問不連續或以固定間隔進行時,典型的 DMA 性能并不是的。當傳統的 DMA 引擎移動循環緩沖區數據以生成數字音頻效果時,CPU 在處理一個數據塊時必須干預至少兩次對 DMA 參數進行編程。當數據訪問環繞環形緩沖區邊界時,CPU 需要對 DMA 參數進行編程,并干預管理延遲線。


    使用音頻增強型 DMA 加速復雜的音頻 DSP 算法
    圖3. 合唱框圖


    合唱效果是說明這一點的一個簡單算法示例,如上圖 3 所示。合唱效果通常用于改變樂器的聲音,使其聽起來像是多個樂器在演奏,如果樂器中有人聲,那么此效果往往會使單個聲音聽起來像合唱團。我們感知多個聲音或樂器,因為當多個聲音或樂器同時演奏時,總是存在不的同步和輕微的音高變化。這些是合唱效果的主要特征。

    在圖 3 中,Chorus 顯示為輸入與其兩個延遲副本的組合。音調偏差是通過延遲輸入副本中緩慢變化的延遲量來建模的。延遲緩慢變化,偏差量及其頻率由低頻振蕩器 (LFO) 控制。

    如下圖4中的Chorus實現圖所示,延遲線是通過使用環形緩沖區(由兩個同心圓表示)來實現的。圖 4 中呈現的合唱實現意味著使用塊處理。此合唱示例中的塊大小是四個樣本。傳入的樣本按順時針方向存儲到循環緩沖區中。


    使用音頻增強型 DMA 加速復雜的音頻 DSP 算法
    圖4. Chorus 實現框圖


    塊處理同時管理數據塊(多個樣本),而不是只管理一個樣本。在此示例中,CPU 等待四個輸入樣本可用,然后計算四個輸出樣本。它通過將輸入樣本塊與從循環緩沖區獲取的兩個延遲數據塊相結合來處理這些樣本。

    在使用傳統 DMA 控制器的情況下(如下圖 5),每次輸入數據塊準備就緒時,CPU 都會收到中斷通知。然后CPU計算合唱輸出。


    使用音頻增強型 DMA 加速復雜的音頻 DSP 算法
    圖5. 采用傳統 DMA 時 Chorus 實現時間表


    本例中的 DMA 引擎分配必須執行兩個關鍵操作:

    1) 將一塊輸入樣本存儲到循環緩沖區(以供將來參考)2) 從循環緩沖區檢索兩塊延遲數據(為下一個輸入樣本塊準備延遲數據)。

    在這種情況下,CPU 必須通過跟蹤和編程源地址和目標地址來協助 DMA,并在數據訪問繞過緩沖區邊界時進行干預。這需要在每次傳輸之前配置 DMA 引擎。

    在 CPU 重新配置 DMA 之前,每個偏移量必須由 CPU 計算(或從預先計算的表中獲取)。CPU 帶寬得到利用,因為它必須在每次傳輸之前重新配置 DMA 引擎。在圖 5 中,CPU 時間線活動顯示為兩行:行顯示了處理合唱效果所需的 CPU 活動,第二行顯示了配置 DMA 所需的 CPU 活動。

    在復雜的數字音頻效果(例如混響)的情況下,必須從循環緩沖器中檢索的延遲塊的數量可以達到256或更多。此外,這些延遲塊中的每一個都不是固定間隔的,并且隨著算法運行,偏移量不斷變化。隨著循環緩沖區中數據訪問量的急劇增加,更復雜的數字音頻效果算法(如混響)將需要更多的 CPU 周期。這使得可用于實際應用程序的 CPU 帶寬減少。

    當多個數字音頻效果相繼出現時(如圖 1 所示),CPU 將必須協助 DMA 移動每個處理階段所需和產生的數據。在這些任務期間,CPU 和 DMA 必須同步。同步由 DMA 促進,它會中斷 CPU。

    因此,系統中的中斷數量會隨著系統復雜度的增加而增加。這些中斷會帶來很高的開銷,因為必須保存寄存器以保留上下文。除此之外,中斷還會經過處理管道并破壞指令緩存的微妙效率。保留上下文會消耗大量周期,并進一步改變指令緩存的性能。管道的過度中斷也直接影響整體性能。


    免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。


    推薦閱讀:

    利用智能交流控制設計方法實現更好的家電安全

    使用模糊邏輯設計基于 DSP 的電機控制

    兩個開關正激變換器

    低價校準服務伴隨儀器隱性成本增加

    具有延遲和報警的高低壓切斷

    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    少女视频在线观看完整版中文| 麻豆亚洲AV永久无码精品久久| 人妻少妇看A偷人无码精品| 免费无码又爽又刺激网站直播| 中文字幕人妻丝袜乱一区三区| 日韩免费无码一区二区三区| 色综合久久中文字幕综合网| 亚洲中文精品久久久久久不卡| 成?∨人片在线观看无码| 亚洲AV无码久久| 亚洲自偷自偷偷色无码中文| 日韩精品一区二三区中文| 日韩精品久久无码中文字幕| 亚洲国产av无码精品| 少妇极品熟妇人妻无码| 97无码免费人妻超| 国产乱人伦Av在线无码| 无码中文人妻在线一区二区三区| 国产成人无码区免费内射一片色欲| 日韩电影免费在线观看中文字幕| 中文字幕网伦射乱中文| 亚洲AV无码一区二区一二区| 狠狠精品久久久无码中文字幕| 国产在线拍偷自揄拍无码| 无码人妻精品一区二区三区在线| 中文字幕乱码无码人妻系列蜜桃| 日韩人妻无码一区二区三区综合部| 久久久网中文字幕| √天堂中文www官网在线 | 无码人妻一区二区三区免费n鬼沢| 成人麻豆日韩在无码视频| 人妻系列AV无码专区| 久久久久精品国产亚洲AV无码| 免费无码又爽又刺激高潮软件| 中文有无人妻vs无码人妻激烈| 国模无码人体一区二区 | 日日摸夜夜添无码AVA片| 无码国产精品一区二区免费| 亚洲日韩精品无码一区二区三区 | 亚洲成a人片在线观看无码 | 亚洲Av无码专区国产乱码DVD|