一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

使用VisualAudio實時架構(gòu)開發(fā)音頻系統(tǒng)

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

掃碼添加小助手

加入工程師交流群

VisualAudio設計和開發(fā)環(huán)境是用于設計和開發(fā)音頻系統(tǒng)的新軟件工具。其實時架構(gòu)特別適合音頻產(chǎn)品開發(fā)的挑戰(zhàn)。本文簡要介紹VisualAudio,然后介紹其框架,音頻模塊和音頻產(chǎn)品開發(fā)應用。

音頻產(chǎn)品開發(fā)挑戰(zhàn)

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

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

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

產(chǎn)品必須與數(shù)字網(wǎng)絡連接,例如 Media

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

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

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

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

使用VisualAudio實時架構(gòu)開發(fā)音頻系統(tǒng)

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

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

框架

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

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

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

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

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

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

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

使用VisualAudio實時架構(gòu)開發(fā)音頻系統(tǒng)

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

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

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

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

音頻接收中斷- 將音頻分隔為不同的流。執(zhí)行DTCP解密并將編碼數(shù)據(jù)打包到幀中。適當時,在用戶中斷1內(nèi)觸發(fā)音頻解碼器。

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

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

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

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

使用VisualAudio實時架構(gòu)開發(fā)音頻系統(tǒng)

VisualAudio分配主機微控制器和DSP之間的控制功能。這種劃分是任意的,甚至可以支持沒有專用主機微控制器的系統(tǒng)。如上所述,UCC以最低優(yōu)先級執(zhí)行 - 使用中斷處理程序未消耗的任何空閑周期。框架使用消息和通知定期調(diào)用UCC。

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

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

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

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

每個VisualAudio框架都有一個關聯(lián)的XML平臺描述目標平臺到VisualAudio應用程序的功能的文件,還包含構(gòu)建可執(zhí)行文件所需的源,對象和庫文件的列表。軟件設計和開發(fā)通常從現(xiàn)成的評估或開發(fā)平臺開始,例如ADI的EZ-KIT Lite評估套件,然后在完成后遷移到實際的目標硬件。 VisualAudio的變更平臺向?qū)ё詣踊谟布脚_之間遷移軟件的過程。

音頻模塊

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

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

使用VisualAudio實時架構(gòu)開發(fā)音頻系統(tǒng)

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

幅度應用于輸入

amp

- 1.0

1.0

1.0

《用法type =“string”》參數(shù)

true

true

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

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

typedef struct

{

AMF_Module b; //通用5字頭

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

} AMF_Scaler;

VisualAudio中的音頻處理功能遵循統(tǒng)一的調(diào)用序列。使用三個參數(shù)調(diào)用每個函數(shù):指向?qū)嵗龜?shù)據(jù)結(jié)構(gòu)的指針,指向輸入和輸出緩沖區(qū)指針數(shù)組的指針(首先是輸入緩沖區(qū),然后是輸出緩沖區(qū)),以及指定塊大小的整數(shù)。繼續(xù)縮放器的示例,其實時處理函數(shù)定義如下。

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 函數(shù)是用優(yōu)化的匯編語言編寫的,以提高執(zhí)行速度。

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

    關注

    68

    文章

    19890

    瀏覽量

    235113
  • dsp
    dsp
    +關注

    關注

    556

    文章

    8157

    瀏覽量

    357417
  • 音頻
    +關注

    關注

    30

    文章

    3042

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    高清音頻系統(tǒng)的基礎是什么?

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

    SHARC處理器在音頻系統(tǒng)中的典型應用

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

    如何利用實時Java設計數(shù)字音頻系統(tǒng)

    如何利用實時Java設計數(shù)字音頻系統(tǒng)?
    發(fā)表于 06-02 06:51

    怎么實現(xiàn)基于智能接口的音頻系統(tǒng)設計?

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

    Android音頻系統(tǒng)的相關資料分享

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

    基于VxWorks的音頻系統(tǒng)的設計與實現(xiàn)

    基于VxWorks的音頻系統(tǒng)的設計與實現(xiàn)
    發(fā)表于 03-29 12:28 ?17次下載

    基于VxWorks的音頻系統(tǒng)的設計與實現(xiàn)

    摘要:利用CS428l在Intel x86平臺和實時操作系統(tǒng)VxWorks上實現(xiàn)音頻系統(tǒng)。由于CS428l高度集成使其外圍電路很簡單,從而便于硬件設計和附加功能集成。作為當今世界上最優(yōu)秀的實時
    發(fā)表于 07-25 21:24 ?26次下載

    基于ARM9的音頻系統(tǒng)設計

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

    以數(shù)字音頻系統(tǒng)為例介紹音頻系統(tǒng)的構(gòu)建

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

    如何使用新數(shù)字總線架構(gòu)降低音頻系統(tǒng)的成本

    電子發(fā)燒友網(wǎng)站提供《如何使用新數(shù)字總線架構(gòu)降低音頻系統(tǒng)的成本.pdf》資料免費下載
    發(fā)表于 11-26 04:18 ?12次下載

    高清音頻系統(tǒng)的基礎是什么?

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

    使用可視音頻設計高效、實時音頻系統(tǒng)

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

    音頻系統(tǒng)解決方案

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

    音頻系統(tǒng)解決方案

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

    無線音頻系統(tǒng)介紹

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