【導讀】低延時(shí)、實(shí)時(shí)聲學(xué)處理是許多嵌入式處理應用的關(guān)鍵因素,其中包括語(yǔ)音預處理、語(yǔ)音識別和主動(dòng)降噪(ANC)。隨著(zhù)這些應用領(lǐng)域對實(shí)時(shí)性能的要求穩步提高,開(kāi)發(fā)人員需要以戰略思維來(lái)妥善應對這些要求。
低延時(shí)、實(shí)時(shí)聲學(xué)處理是許多嵌入式處理應用的關(guān)鍵因素,其中包括語(yǔ)音預處理、語(yǔ)音識別和主動(dòng)降噪(ANC)。隨著(zhù)這些應用領(lǐng)域對實(shí)時(shí)性能的要求穩步提高,開(kāi)發(fā)人員需要以戰略思維來(lái)妥善應對這些要求。由于許多大型系統都由芯片提供可觀(guān)的性能,因此我們往往會(huì )將出現的任何額外任務(wù)都加載到這些設備上,但我們需要知道,延時(shí)和其確定性是非常關(guān)鍵的因素,如果未仔細考慮,很容易引發(fā)重大的實(shí)時(shí)系統問(wèn)題。本文將探討設計人員在選擇SoC和專(zhuān)用音頻DSP時(shí)應考慮的問(wèn)題,以避免實(shí)時(shí)聲學(xué)系統出現令人不快的意外。
低延時(shí)聲學(xué)系統的應用非常廣泛。例如,單單是在汽車(chē)領(lǐng)域,低延時(shí)對于個(gè)人音頻區域、路噪降噪和車(chē)內通訊系統等都至關(guān)重要。
隨著(zhù)汽車(chē)電氣化趨勢涌現,路噪降噪變得更加重要,因為沒(méi)有內燃機產(chǎn)生明顯噪音。所以,與汽車(chē)道路接觸相關(guān)的噪音會(huì )變得更明顯、更擾人。減少這種噪音不僅能帶來(lái)更舒適的駕駛體驗,還能減少駕駛員疲勞感。與在專(zhuān)用音頻DSP上部署低延時(shí)聲學(xué)系統相比,在SoC上部署會(huì )面臨諸多挑戰。這些問(wèn)題包括延時(shí)、可擴展性、可升級性、算法考量、硬件加速和客戶(hù)支持。我們來(lái)逐一進(jìn)行介紹。
延時(shí)
在實(shí)時(shí)聲學(xué)處理系統中,延時(shí)問(wèn)題非常重要。如果處理器跟不上系統的實(shí)時(shí)數據搬運和計算需求,會(huì )導致不可接受的音頻斷續。
一般來(lái)說(shuō),SoC會(huì )配備小型片內SRAM,因此,大部分本地存儲器訪(fǎng)問(wèn)必須依賴(lài)緩存。這導致代碼和數據的使用具有不確定性,還會(huì )增大處理延時(shí)。對于A(yíng)NC這樣的實(shí)時(shí)應用來(lái)說(shuō),單是這一點(diǎn)就無(wú)法接受。但是,事實(shí)上,SoC也會(huì )運行管理繁重的多任務(wù)非實(shí)時(shí)操作系統。這會(huì )放大系統的不確定性操作特性,使其很難在多任務(wù)環(huán)境中支持相對復雜的聲學(xué)處理。
圖1顯示了一個(gè)運行實(shí)時(shí)音頻處理負載的SoC的具體示例,在處理更高優(yōu)先級的SoC任務(wù)時(shí),CPU負載出現峰值。例如,在執行以SoC為中心的任務(wù)時(shí),包括在系統上進(jìn)行媒體渲染、瀏覽或執行應用,可能會(huì )出現這些峰值。當峰值超過(guò)100% CPU負載時(shí),SoC將不再實(shí)時(shí)運行,這會(huì )導致音頻丟失。
圖1. 除了運行其他任務(wù)外,運行高音頻負載處理的典型SoC的瞬時(shí)CPU負載。
另一方面,音頻DSP的架構是為了在整個(gè)信號處理路徑(從采樣音頻輸入到處理(例如,音效+噪聲抑制)到揚聲器輸出)中實(shí)現低延時(shí)。L1指令和數據SRAM是最接近處理器內核的單周期存儲器,足以支持多個(gè)處理算法,無(wú)需將中間數據轉存到片外存儲器。此外,片內L2存儲器(離內核較遠,但訪(fǎng)問(wèn)速度仍然比片外DRAM快得多)可以在L1 SRAM的存儲容量不夠時(shí),提供中間數據操作緩存。最后,音頻DSP通常運行實(shí)時(shí)操作系統(RTOS),確??梢栽谛螺斎霐祿竭_之前完成輸入數據處理并將其搬移到目標位置,從而確保數據緩沖區在實(shí)時(shí)操作期間不會(huì )上溢。
系統啟動(dòng)時(shí)的實(shí)際延時(shí)(通常通過(guò)啟動(dòng)發(fā)聲來(lái)表征)也是重要指標,尤其是對于汽車(chē)系統,它要求在啟動(dòng)后的某個(gè)窗口內播報提示音。在SoC領(lǐng)域,通常采用很長(cháng)的啟動(dòng)時(shí)序,其中包括啟動(dòng)整個(gè)設備的操作系統,所以很難或無(wú)法滿(mǎn)足這個(gè)啟動(dòng)要求。另一方面,可以對運行自己的RTOS、不受其他無(wú)關(guān)的系統優(yōu)先級影響的獨立式音頻DSP實(shí)施優(yōu)化,以加快其啟動(dòng)速度,從而滿(mǎn)足啟動(dòng)發(fā)聲要求。
可擴展性
雖然在諸如噪聲控制等應用中,對于SoC來(lái)說(shuō),延時(shí)是個(gè)問(wèn)題,但對于想要執行聲學(xué)處理的SoC來(lái)說(shuō),可擴展性是另一個(gè)缺點(diǎn)。換句話(huà)說(shuō),控制具有許多不同子系統的大型系統(例如汽車(chē)多媒體主機和儀表盤(pán))的SoC無(wú)法輕易從低端擴展到滿(mǎn)足高端音頻需求,這是因為每個(gè)子系統組件的可擴展性需求之間始終存在沖突,需要在整體SoC利用率方面進(jìn)行權衡。例如,如果前端SoC連接到遠端收音模組,并且適配多種車(chē)型,那么該收音模組需要從幾個(gè)通道擴展到多個(gè)通道,而每個(gè)通道都會(huì )加劇之前提到的實(shí)時(shí)問(wèn)題。這是因為SoC控制下的每個(gè)附加特性都會(huì )改變SoC的實(shí)時(shí)行為,以及多個(gè)功能所使用的關(guān)鍵架構組件的資源可用性。這些資源包括存儲器帶寬、處理器內核周期和系統總線(xiàn)結構仲裁槽等方面。
除了有關(guān)連接到多任務(wù)SoC的其他子系統的問(wèn)題外,聲學(xué)系統本身也存在擴展性問(wèn)題。其中涉及低端到高端的擴展(例如,增加ANC應用中麥克風(fēng)和揚聲器通道的數量),也涉及音頻體驗擴展,從基本的音頻解碼和立體聲播放一直到3D虛擬化和其他高級功能。雖然這些要求不具有ANC系統的實(shí)時(shí)限制,但它們與系統音頻處理器的選擇直接相關(guān)。
使用一個(gè)單獨的音頻DSP作為SoC的協(xié)處理器是解決音頻可擴展性問(wèn)題的極佳解決方案,可以實(shí)現模塊化的系統設計和成本優(yōu)化的解決方案。SoC可以減少對大型系統實(shí)時(shí)聲學(xué)處理需求的關(guān)注,將這種處理需求轉移到低延時(shí)音頻DSP上進(jìn)行。此外,音頻DSP提供代碼兼容和引腳兼容選項,涵蓋幾種不同的價(jià)格/性能/存儲容量等級,讓系統設計人員能夠最大限度地靈活選擇適合給定產(chǎn)品層級的音頻性能產(chǎn)品。
圖2. ADSP-2156x DSP,高度可擴展的音頻處理器。
可升級性
隨著(zhù)如今的汽車(chē)越來(lái)越普遍地采用OTA,通過(guò)發(fā)布關(guān)鍵補丁或提供新功能進(jìn)行升級變得越來(lái)越重要。由于其各個(gè)子系統之間的依賴(lài)性增加,這可能會(huì )導致SoC的關(guān)鍵問(wèn)題。首先,多個(gè)處理和數據移動(dòng)線(xiàn)程會(huì )在SoC上爭奪資源。在添加新功能時(shí),尤其是在處于活動(dòng)高峰期間時(shí),這會(huì )加劇處理器MIPS和存儲空間的競爭。從音頻的角度來(lái)看,其他SoC控制域中的新增特性可能會(huì )對實(shí)時(shí)聲學(xué)性能產(chǎn)生無(wú)法預測的影響。這種情況帶來(lái)的一個(gè)負面影響是:新功能必須在所有操作平面上進(jìn)行交叉測試,導致彼此競爭的子系統的各種操作模式之間出現無(wú)數排列組合。所以,每個(gè)升級包的軟件驗證次數都會(huì )成倍增加。
從另一個(gè)角度來(lái)看,可以說(shuō)除了受SoC控制的其他子系統的功能圖譜外,SoC音頻性能的改善還取決于可用的SoC MIPS。
算法開(kāi)發(fā)與性能
顯然,在開(kāi)發(fā)實(shí)時(shí)聲學(xué)算法時(shí),音頻DSP旨在達成任務(wù)目標。與SoC的顯著(zhù)區別在于,獨立音頻DSP可以提供圖形化開(kāi)發(fā)環(huán)境,讓缺乏DSP編碼經(jīng)驗的工程師能夠在其設計中集成高質(zhì)量的聲學(xué)處理。這種類(lèi)型的工具可以在不犧牲質(zhì)量和性能的情況下通過(guò)縮短開(kāi)發(fā)時(shí)間來(lái)降低開(kāi)發(fā)成本。
例如,ADI的SigmaStudio?圖形音頻開(kāi)發(fā)環(huán)境提供多種集成至直觀(guān)的圖形用戶(hù)界面(GUI)的信號處理算法,從而能夠創(chuàng )建復雜的音頻信號流。它還支持采用圖形A2B配置進(jìn)行音頻傳輸,非常有助于加快實(shí)時(shí)聲學(xué)系統開(kāi)發(fā)。
音頻輔助硬件特性
除了專(zhuān)為高效并行浮點(diǎn)計算和數據訪(fǎng)問(wèn)而設計的處理器內核架構外,音頻DSP通常還采用專(zhuān)用的多通道加速器來(lái)運行通用算法,例如快速傅立葉變換(FFT)、有限和無(wú)限脈沖響應(FIR和IIR)濾波,以及異步采樣速率轉換(ASRC)。這樣允許在內核CPU之外進(jìn)行實(shí)時(shí)音頻濾波、采樣和頻域轉換,從而提高內核的有效性能。此外,由于它們采用優(yōu)化的架構,提供數據流管理功能,所以有助于構建靈活且方便用戶(hù)使用的編程模型。
由于音頻通道數量、濾波器流、采樣速率等增加,我們需要使用配置程度最高的引腳接口,以支持在線(xiàn)采樣速率轉換、精密時(shí)鐘和同步高速串行端口來(lái)高效的路由數據,避免導致延時(shí)或外部接口邏輯增加。ADI的SHARC?系列處理器的數字音頻互連口(DAI)就展現了這種能力,如圖4所示。
圖3. ADI公司的SigmaStudio圖形開(kāi)發(fā)環(huán)境。
圖4. 數字音頻互連(DAI)框圖。
客戶(hù)支持
在使用嵌入式處理器進(jìn)行開(kāi)發(fā)時(shí),我們常常會(huì )忽略一點(diǎn),即客戶(hù)對設備的支持。
盡管SoC供應商提倡在他們的內置DSP產(chǎn)品上運行聲學(xué)算法,但在實(shí)際使用時(shí)這會(huì )帶來(lái)一些負擔。一方面,供應商的支持通常更復雜,因為SoC應用開(kāi)發(fā)領(lǐng)域一般不涉及聲學(xué)專(zhuān)業(yè)知識。因此,往往很難為想要基于SoC的片內DSP技術(shù)開(kāi)發(fā)自己的聲學(xué)算法的客戶(hù)提供支持。而是由供應商提供標準算法,并收取可觀(guān)的NRE費用,然后將聲學(xué)算法移植到SoC的一個(gè)或多個(gè)內核中。即使如此,也無(wú)法保證一定能成功,在供應商無(wú)法提供成熟、低延時(shí)的框架軟件時(shí)更是如此。最后,適合基于SoC的聲學(xué)處理的第三方生態(tài)系統往往相當脆弱,因為這個(gè)領(lǐng)域不是SoC關(guān)注的重點(diǎn)。
顯然,專(zhuān)用音頻DSP可為開(kāi)發(fā)復雜的聲學(xué)系統提供更強大的生態(tài)系統,從優(yōu)化的算法庫和設備驅動(dòng)程序到實(shí)時(shí)操作系統和易于使用的開(kāi)發(fā)工具。此外,有助于加快產(chǎn)品上市的以音頻為主的參考平臺(例如ADI的SHARC音頻模塊平臺,如圖5所示)對于SoC來(lái)說(shuō)比較少見(jiàn),但在獨立音頻DSP領(lǐng)域卻很常見(jiàn)。
圖5. SHARC音頻模塊(SAM)開(kāi)發(fā)平臺。
總之,很明顯,設計實(shí)時(shí)聲學(xué)系統需要細致、戰略性的規劃系統資源,不能單單通過(guò)在多任務(wù)SoC上分配處理裕量來(lái)進(jìn)行管理。相反,針對低延時(shí)處理而優(yōu)化獨立的音頻DSP有望提高其耐用性,縮短開(kāi)發(fā)時(shí)間,實(shí)現出色的可擴展性,以適應未來(lái)的系統需求和性能等級。
(來(lái)源:亞德諾半導體)
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請電話(huà)或者郵箱editor@52solution.com聯(lián)系小編進(jìn)行侵刪。
推薦閱讀: