国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用VisualAudio實時架構開發音頻系統

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-04-03 08:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

VisualAudio設計和開發環境是用于設計和開發音頻系統的新軟件工具。其實時架構特別適合音頻產品開發的挑戰。本文簡要介紹VisualAudio,然后介紹其框架,音頻模塊和音頻產品開發應用。

音頻產品開發挑戰

今天,音頻系統開發人員面臨著越來越需要設計復雜的音頻系統 - 特別是家庭音頻/視頻接收器(AVR)和汽車信息娛樂系統 - 既快速又經濟。為什么?

正常使用的離散音頻通道數量從2增加到4到5.1,最近到 7.1 。

不同的,有時甚至是競爭的多聲道音頻格式的數量一直在迅速增加 - 包括杜比? Pro Logic ?,杜比數字,DTS ? 5.1,Dolby Digital Surround EX?和DTS-ES ?。

產品必須與數字網絡連接,例如 Media

消費者擁有定向系統傳輸(MOST ?)總線,需要網絡堆棧,內容加密和解密以及采樣率轉換。在頂級和主流產品中,我們期待復雜的后期處理功能,例如空間化,自動均衡和低音管理。

為了應對這些因素,開發人員正在轉向數字信號處理器DSP),因為他們的可編程性允許系統針對特定市場領域和應用進行定制。 ADI公司的SHARC ?處理器系列特別適合這項任務,因為它提供了大內部存儲器,浮點精度和高性能計算單元等功能。最近發布的第三代 SHARC處理器通過集成專門為促進音頻產品設計而引入的其他功能,更進了一步。這些功能包括硬件采樣率轉換器,加密和解密,復雜的數字音頻接口以及包含多個音頻解碼器的片上ROM

DSP用戶面臨的歷史挑戰是開發能夠最佳利用處理器時鐘周期和有效利用內存的軟件。在匯編語言中手動編碼音頻信號處理算法的長期使用和費力的方法變得越來越不可行。當大部分所需工作用于創建標準“清單”和“我也是”功能而不是專注于區分具有增值功能的產品時,尤其如此。需要一種更好的方法來開發音頻產品軟件。

為了滿足這一需求,ADI開發了一個圖形環境-VisualAudio,以幫助設計和開發使用SHARC處理器系列的音頻系統。 VisualAudio為音頻系統開發人員提供了大部分軟件構建模塊,以及圖1所示的直觀圖形界面,用于設計,開發,調整和測試音頻系統。

使用VisualAudio實時架構開發音頻系統

VisualAudio包括基于PC的圖形用戶界面(GUI,圖形工具),DSP 內核(框架),以及可擴展的音頻算法庫(音頻模塊)。結合ADI的VisualDSP ++ ? 集成開發和調試環境(IDDE),VisualAudio生成產品就緒代碼,該代碼針對速度,每秒數百萬條指令(MIPS)和內存使用情況。通過簡化開發復雜數字信號處理軟件的過程,VisualAudio降低了開發成本,風險和時間。因此,音頻系統開發人員能夠通過將其音頻產品與競爭對手區分開來,專注于增加價值。

VisualAudio的核心是一個處理音頻I / O和后處理的實時軟件架構。為了可行,生成的DSP代碼必須在MIPS和內存方面高效,并且足夠靈活以處理各種音頻產品類別。 VisualAudio實時架構如下所述,首先是框架,然后是音頻處理模塊。

框架

框架是部分處理系統初始化,音頻I / O,比特流檢測 1 ,實例化和調用音頻解碼器以及與主機通信的DSP代碼。 VisualAudio為其用戶提供了AVR和汽車音響系統框架的示例。通過編寫特定于平臺的驅動程序,VisualAudio用戶可以自定義框架的許多方面,以滿足特定的產品需求。在某些情況下,如果需要進行內部更改以獲得最佳性能,ADI還將為VisualAudio用戶提供框架源代碼。

音頻產品具有管理框架設計的特定要求。每個音頻產品有兩個主要功能:(1)實時音頻處理,以及(2)控制此處理。這兩個功能的時間尺度差別很大。實時處理(所有內部操作都已完成)必須以采樣率進行,否則輸出音頻中會出現不可接受的彈出和咔嗒聲??刂乒δ芸梢砸愿乃俾剩?0 Hz至100 Hz)發生,并且仍然可以接受。因此,大部分 MIPS使用在實時處理中發生,而軟件復雜性的大部分在控制功能內。為了簡化產品設計和開發,VisualAudio將實時和控制功能分離為單獨的線程。通過手動優化的實時音頻處理模塊實現效率,同時通過允許開發人員在C中編寫并在單獨的線程中運行來管理控制代碼的復雜性。

傳統上,采用了兩種不同的音頻處理方法。在流處理中,音頻樣本在到達時一次處理一個,而在塊處理中,緩沖幾個音頻樣本,然后作為一組進行處理。每種方法都有明顯的優點和缺點。流處理在數據存儲器方面是有效的,因為不需要緩沖音頻數據。流處理的主要限制是不能容忍多個函數調用的開銷。這迫使音頻處理代碼通常以匯編語言在線寫入。這樣的代碼很難模塊化和維護。

塊處理需要額外的緩沖內存用于I / O和暫存內存。典型的塊大小在32到256個樣本的范圍內。由于一次處理許多樣本,因此函數調用的開銷在大量樣本上分攤。這導致MIPS高效的實現 - 以額外的存儲器為代價 - 但是是優選的,因為可以采用結構化編程方法。塊處理也非常適合生成音頻塊的音頻解碼器。例如,Dolby Digital和DTS解碼器都以256個樣本塊生成音頻。

塊處理是VisualAudio使用的方法,還有幾個額外的優點。 VisualAudio中的所有音頻I / O都是雙緩沖的,并使用直接內存訪問(DMA)進行管理。處理器每個塊接收一次中斷 - 每個樣本不接收一次 - 導致比流處理少得多的中斷開銷。此外,通過利用SHARC處理器的鏈式DMA功能,雙緩沖由DMA控制器管理,顯著增加了服務音頻輸入/輸出(I / O)中斷時的允許延遲。

VisualAudio框架以塊為單位向后處理網絡傳送音頻。塊大小有一些限制。首先,由于某些音頻模塊的單指令,多數據(SIMD)行為,它必須是偶數。其次,最小塊大小為8個樣本 - 由于某些音頻模塊中的流水線操作。最后,在具有音頻解碼器的系統中,后處理塊大小必須是解碼器塊大小的因子。例如,對于Dolby Digital,可能的塊大小為8,16,32,64,128和256個樣本。

在VisualAudio汽車框架的示例中可以看到音頻I / O和緩沖,如圖2所示,音頻從MOST網絡或A / D轉換器到達,并分成多個流。主要娛樂流由DVD播放器生成,并且遠程信息處理系統或通過鐘聲產生額外的單聲道流。 DVD數據首先經歷數字傳輸復制檢測(DTCP)解密,然后被饋送到比特流檢測器。比特流檢測器的輸出被打包成塊;當完整的數據幀可用時,執行音頻解碼器。 DVD播放器生成自己的采樣率,這與后處理使用的采樣率不同。因此,音頻解碼器的輸出必須通過異步采樣率轉換器。該塊將所有輸入數據流轉換為固定的輸出采樣率。此時,音頻后處理以32個樣本的固定塊大小執行。最后一步,音頻通道被饋送到D / A轉換器或返回到MOST網絡。

使用VisualAudio實時架構開發音頻系統

汽車框架包含多個音頻解碼器,其中只有一個是有效的。為了降低解碼器內存要求,VisualAudio管理一個在所有可能的解碼器之間共享的解碼器內存池。解碼器的輸出被饋送到后處理網絡;這就驅動了D / A轉換器。

VisualAudio使用簡單的中斷驅動內核來管理多個線程。例如,樣本汽車框架包含總共六個線程。從最高優先級到最低優先級,它們是:

主機通信- 通過SPI與主機交換消息。消息在DSP 用戶控制代碼中進行緩沖和解釋(如下所述)。

音頻發送中斷- 由串行端口中斷觸發。將輸出DMA管理到DAC,并格式化要返回MOST網絡的數據。在用戶中斷0中觸發音頻處理。

音頻接收中斷- 將音頻分隔為不同的流。執行DTCP解密并將編碼數據打包到幀中。適當時,在用戶中斷1內觸發音頻解碼器。

音頻處理(用戶中斷0)- 對32個樣本塊執行后處理。大部分處理都發生在這個線程中。

音頻解碼器(用戶中斷1)- 執行音頻解碼功能。

DSP用戶控制代碼(UCC)- 在沒有中斷活動時運行并充當應用程序的主循環。用戶產品的控制功能發生在該線程中。

示例AVR框架中的典型線程活動如圖3所示。每個水平切片代表一個不同的線程。音頻I / O,解碼器和后處理定期運行,UCC以最低優先級運行。請注意,當處理器忙于音頻處理時,UCC可能無法運行幾毫秒。

使用VisualAudio實時架構開發音頻系統

VisualAudio分配主機微控制器和DSP之間的控制功能。這種劃分是任意的,甚至可以支持沒有專用主機微控制器的系統。如上所述,UCC以最低優先級執行 - 使用中斷處理程序未消耗的任何空閑周期??蚣苁褂孟⒑屯ㄖㄆ谡{用UCC。

消息是從主機微控制器發送到DSP的命令。這些命令用于控制音頻處理(例如,“將音量設置為-20 dB”,“將低音音調控制設置為+3 dB”)或查詢音頻處理的狀態(例如,“系統是否”限制?”)。 VisualAudio框架在內部處理一些命令,而其余命令則傳遞給UCC。在每個時間點,主機和DSP之間只能有一條待處理消息 - 并且DSP必須在處理完每個命令后發送確認。

通知是由框架異步生成并在幾種條件下發生。在啟用任何實時處理之前,在系統初始化期間發生第一個通知。此時可以完成系統或應用程序特定的初始化。以大約200Hz的速率周期性地生成的第二通知用于控制實時音頻處理,例如,自動增益控制(AGC)計算和更新。響應于編碼比特流的變化,音頻解碼器生成最后一類通知。當采樣率改變,輸入通道數改變,或者在輸入比特流中檢測到循環冗余校驗(CRC)錯誤時,會發生此類通知。這些通知允許UCC對音頻處理進行適當的更改。

由于UCC被實時音頻處理搶占,它可能直到幾毫秒才被執行 - 如圖所示圖3. VisualAudio包含幾個簡化寫入UCC的功能,這些UCC將不斷受到中斷。首先,由于主機通信接口僅允許單個主機消息在主機和DSP之間掛起,因此不存在消息緩沖區溢出或主機消息相互覆蓋的危險。另一個功能是通知隊列,其中相同類型的通知互相覆蓋。例如,如果在執行UCC之前在時間上緊密間隔地生成兩個采樣率通知,則UCC將僅接收第二通知 - 最終采樣率。此外,由于通知數量有限,通知隊列必須具有有限的長度。

還必須仔細編寫UCC以更新某些音頻模塊參數。某些模塊參數(例如無限脈沖響應(IIR)濾波器系數)必須自動更新,而不會被音頻處理中斷。

每個VisualAudio框架都有一個關聯的XML平臺描述目標平臺到VisualAudio應用程序的功能的文件,還包含構建可執行文件所需的源,對象和庫文件的列表。軟件設計和開發通常從現成的評估或開發平臺開始,例如ADI的EZ-KIT Lite評估套件,然后在完成后遷移到實際的目標硬件。 VisualAudio的變更平臺向導自動化在硬件平臺之間遷移軟件的過程。

音頻模塊

VisualAudio包含大約100個音頻處理模塊庫,這些模塊已針對SHARC處理器進行了優化。按功能分類的模塊包括音量控制,音調控制,濾波器,混音器等 - 足以開發各種音頻產品的功能類型。這些標準音頻模塊可以通過實現專有后處理功能的自定義模塊進行擴充。

圖4展示了10階IIR濾波器的塊處理效率 - 實現為五個雙二階濾波器的級聯。將每個樣本的操作數繪制為塊大小的函數。 64個樣本塊實現了大多數效率增益,大塊的回報遞減。對于這個濾波器,核心內環每個樣本包含21個乘法累加(MAC);但是通過使用同時對兩個數據進行操作的SIMD指令,循環減少到大約15個周期。

使用VisualAudio實時架構開發音頻系統

每個音頻模塊都由相關的XML文件描述給VisualAudio應用程序。該文件包含模塊內存數據結構,內存分配規則,輸入和輸出音頻通道列表,高級接口變量(顯示在模塊的圖形表示或檢查器)的描述,和設計方程。 XML語言由標記結構化數據的標記組成。例如,考慮一個簡單的音頻模塊,通過固定增益來縮放單聲道信號。該模塊將包含一個渲染變量放大器 - 指定要應用的增益。在模塊的XML文件中,變量 amp 由下面顯示的XML代碼描述:

幅度應用于輸入

amp

- 1.0

1.0

1.0

《用法type =“string”》參數

true

true

description標簽提供變量的簡短摘要。 name標記表示數據結構中的變量名稱。該變量被描述為浮點數,具有可修改的默認范圍[-1 + 1],默認值為1.0。 VisualAudio將此變量視為設計可設置和可調參數,允許在設計時進行修改,之后在實時調整期間進行修改。這個單聲道固定增益示例說明了可由VisualAudio XML格式描述的眾多變量類型之一。

VisualAudio為后處理布局中的每個音頻模塊實例創建單獨的數據結構。所有數據結構共享一個共同的5字頭,描述模塊與框架的運行時接口。接下來是模塊特定的參數和-state變量。例如,上述縮放器模塊的數據結構的類型聲明是:

typedef struct

{

AMF_Module b; //通用5字頭

float amp; //特定于實例的變量

} AMF_Scaler;

VisualAudio中的音頻處理功能遵循統一的調用序列。使用三個參數調用每個函數:指向實例數據結構的指針,指向輸入和輸出緩沖區指針數組的指針(首先是輸入緩沖區,然后是輸出緩沖區),以及指定塊大小的整數。繼續縮放器的示例,其實時處理函數定義如下。

void AMF_Scaler_Render(AMF_Scaler * instance,float ** buffers,int blockSize){

int i;

float * in = buffers [0];

float * out = buffers [1];

float amp = instance-》 amp;

for(i = 0; i

out [i] = in [i] * amp;

}

}

請注意,此示例用C語言來澄清其描述。 VisualAudio中包含的實際 render 函數是用優化的匯編語言編寫的,以提高執行速度。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    20256

    瀏覽量

    252437
  • dsp
    dsp
    +關注

    關注

    561

    文章

    8247

    瀏覽量

    366754
  • 音頻
    +關注

    關注

    31

    文章

    3188

    瀏覽量

    85596
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    高清音頻系統的基礎是什么?

    為響應客戶對頂級音頻質量的需求,音頻系統設計人員正在研究高分辨率或高清(HD)音頻,因為越來越多的中端系統買家需要以前只能在高端系統中使用的
    發表于 08-21 14:18

    SHARC處理器在音頻系統中的典型應用

    專用編譯器能夠充分發揮SHARC的SIMD架構優勢,而且支持單周期執行的浮點運算,VisualDSP++中的仿真器無需硬件就能支持應用軟件的開發。VisualDSP++中還包含了VDK或實時操作
    發表于 12-29 14:15

    高清音頻系統設計最重要的是什么

    為響應客戶對頂級音頻質量的需求,音頻系統設計人員正在研究高分辨率或高清(HD)音頻,因為越來越多的中端系統買家需要以前只能在高端系統中使用的
    發表于 03-25 06:45

    如何利用實時Java設計數字音頻系統?

    如何利用實時Java設計數字音頻系統?
    發表于 06-02 06:51

    怎么實現基于智能接口的音頻系統設計?

    本文提出了一種智能多接口的全硬件音頻系統的解決方案,使音頻系統的擴展性進一步增強,原則上來說可以連接目前大多數主流存儲設備,實現了一臺設備多種用途的擴展。
    發表于 06-04 06:53

    Android音頻系統的相關資料分享

    對于安卓音頻系統,在前面我們已經講了大致框架,嵌入式Android底層開發(六)Android音頻系統_總體框架本專欄將對Android音頻系統進行更細致的闡述,同時這些也是我的學習筆
    發表于 12-24 07:31

    基于VxWorks的音頻系統的設計與實現

    基于VxWorks的音頻系統的設計與實現
    發表于 03-29 12:28 ?17次下載

    基于ARM9的音頻系統設計

    本文利用 ATMEL公司 的 AT91RM9200型微處理器 和 Philips公司的 UDA1341型立體聲音頻編解碼器設計了一種嵌入式音頻系統。該嵌入式音頻系統硬件部分采用基于IIS總線的
    發表于 09-19 16:37 ?2285次閱讀
    基于ARM9的<b class='flag-5'>音頻系統</b>設計

    以數字音頻系統為例介紹音頻系統的構建

    音頻系統音頻環境的構建包括兩個方面,即記錄采集(錄音)和擴聲回放(放音),下面以數字音頻系統為例進行介紹。
    發表于 01-26 11:11 ?5114次閱讀
    以數字<b class='flag-5'>音頻系統</b>為例介紹<b class='flag-5'>音頻系統</b>的構建

    如何使用新數字總線架構降低音頻系統的成本

    電子發燒友網站提供《如何使用新數字總線架構降低音頻系統的成本.pdf》資料免費下載
    發表于 11-26 04:18 ?12次下載

    高清音頻系統的基礎是什么?

    高清音頻系統的基礎是什么?
    發表于 11-01 08:27 ?0次下載
    高清<b class='flag-5'>音頻系統</b>的基礎是什么?

    使用可視音頻設計高效、實時音頻系統

    如今,音頻系統開發人員面臨著設計復雜音頻系統(尤其是家庭音頻/視頻接收器 (AVR) 和汽車信息娛樂系統)的需求日益增加,既要快速且經濟高效。為什么?
    的頭像 發表于 02-03 11:03 ?1847次閱讀
    使用可視<b class='flag-5'>音頻</b>設計高效、<b class='flag-5'>實時</b>的<b class='flag-5'>音頻系統</b>

    音頻系統解決方案

    音頻系統解決方案
    發表于 03-15 20:33 ?0次下載
    <b class='flag-5'>音頻系統</b>解決方案

    音頻系統解決方案

    音頻系統解決方案
    發表于 07-06 19:45 ?0次下載
    <b class='flag-5'>音頻系統</b>解決方案

    無線音頻系統介紹

    無線音頻系統是一種通過無線信號傳輸音頻數據的技術,旨在消除傳統有線連接的限制,提供更大的靈活性和便利性。無線音頻系統廣泛應用于消費電子、專業音頻、家庭娛樂和公共廣播等領域。
    的頭像 發表于 08-09 17:48 ?2827次閱讀
    無線<b class='flag-5'>音頻系統</b>介紹