<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM Cortex-M的音頻性能解析

ARM Cortex-M的音頻性能解析

作者: 時(shí)間:2011-08-15 來(lái)源:網(wǎng)絡(luò ) 收藏
后處理

本文引用地址:http://dyxdggzs.com/article/150353.htm

  兩種情況一定需要數據后處理。首先,要求提供豐富的聆聽(tīng)體驗。例如,可使用立體聲加寬等空間定位器(Spatializer)來(lái)消除長(cháng)時(shí)間使用耳機的聽(tīng)覺(jué)疲勞。即使是基本的播放,也需要后處理。例如,音樂(lè )播放器的DAC如果僅支持有限系列采樣率的情況下,可能需要對音頻數據進(jìn)行重新采樣。

  

圖3:均衡器框圖。(電子系統設計)

  圖3:均衡器框圖。

  我們以均衡器為例,探討后處理器中用到的典型模塊。均衡器一般是為了滿(mǎn)足聆聽(tīng)者的偏好,同時(shí)也可用于校正耳機或揚聲器的頻響。圖3所示為基本參數均衡器的高層模塊分解。下列模塊用于僅修改一小段音頻頻譜,具體做法是利用增益值、帶寬和中心/截止頻率的可控參數提供增益或衰減。要獲得所需頻響,可將多個(gè)此類(lèi)二階IIR濾波器級聯(lián)。

  低頻(LF)斜率濾波器:一種用于修改音頻頻譜低音部分的濾波器

  峰化濾波器:一種用于修改音頻頻譜中頻范圍的濾波器

  高頻(HF)斜率濾波器:一種用于修改音頻頻譜高音部分的濾波器

  音頻處理模塊類(lèi)別

  根據特性,音頻處理模塊廣義上分為三類(lèi)。我們將詳細討論每種模塊及其特性,然后進(jìn)一步分析高效實(shí)現這些模塊對處理器的要求。表1概述了本節所述音頻處理的處理器要求。

  

表1:音頻處理模塊及其處理器要求。(電子系統設計)

  表1:音頻處理模塊及其處理器要求。

  MAC密集模塊

  這些模塊屬于計算密集型,主要執行乘加(MAC)運算,通常有一個(gè)預定的代碼流。濾波(FIR、IIR濾波器)、窗口化、相關(guān)性及卷積等信號處理運算屬于此類(lèi)別的典型例子。此類(lèi)模塊的處理器要求稍后論述。

  高精度MAC:這些模塊正常工作需要高精度乘加法。例如,IIR濾波器的穩定性要求高精度運算。輸出的保真度和精度直接取決于MAC指令的精度。盡管可使用低精度指令來(lái)某些仿真高精度MAC指令(例如32位乘以32位,在64位結果內累加),但最好是使用高精度MAC指令來(lái)獲得高效實(shí)現。

  SIMD能力:這些模塊內的運算往往是少量指令的反復執行,從而產(chǎn)生精簡(jiǎn)循環(huán)內核。單指令多數據(SIMD)能力對于此類(lèi)模塊的高效執行最為理想。內置此功能的處理器更有利于處理此類(lèi)模塊。

  飽和算法:某些運算需要使用飽和算法。例如,當在運行時(shí)產(chǎn)生窗口系數或在產(chǎn)生PCM輸出數據到所需位寬時(shí)。針對飽和算術(shù)的需求可以減少,但無(wú)法完全避免,因為中間結果的位寬更高。因此,支持飽和算法的指令是高效實(shí)現的理想之選。

  分支推測:這些模塊有一個(gè)預定的代碼流。由于這些模塊需要對指令反復執行運算,簡(jiǎn)單的分支推測有利于減少因流水線(xiàn)清空所產(chǎn)生的開(kāi)銷(xiāo)。

  MAC和控制代碼混合模塊

  這些模塊同樣是計算密集型,但在MAC密集運算中還涉及控制代碼運算??焖俑道锶~變換(FFT)、濾波器組等變換運算是這一類(lèi)型的典型例子。此類(lèi)模塊的處理器要求為:

  DSP指令:由于上述兩類(lèi)模塊(MAC密集模塊和MAC和控制代碼混合模塊)主要涉及MAC運算,因此,如果只有MAC和MLS(乘法和減法)指令而無(wú)運算累加的開(kāi)銷(xiāo),一定能提高效率。

  混合位寬運算:運算對象的最小位寬取決于各種因素。例如,在濾波運算中,輸出精度和濾波器穩定性決定濾波器系數的位寬。所以高效實(shí)現離不開(kāi)能夠處理混合位寬運算對象的指令。

  壓縮數據處理:FFT等這類(lèi)模塊的運算一般使用稱(chēng)為旋轉因子的16位系數。FFT基數越高,所涉及的旋轉因子越多,但相對復雜度越低。這些旋轉因子可通過(guò)打包成32位數據來(lái)降低內核循環(huán)中的任何寄存器不足?;蛘呖赏ㄟ^(guò)將旋轉因子載入到內核循環(huán)以外的寄存器來(lái)避免重復負載的可能開(kāi)銷(xiāo)。因此,能夠運算壓縮數據的指令是提高效率的理想之選。

  位反轉:能夠執行位反轉的指令有利于需要位反轉尋址的FFT等關(guān)鍵模塊。

  控制代碼模塊

  這些模塊主要涉及控制代碼且代碼流為數據依賴(lài)型。位流解復用器和熵解碼運算就屬于此類(lèi)。例如,MP3解碼器采用霍夫曼解碼,而WMA解碼器采用游程解碼。接下來(lái)討論此類(lèi)模塊的處理器要求。

  無(wú)符和按位運算:這些模塊需要處理打包的數據流,而這需要數據提取。因此,能夠執行按位運算、提取、打包、解包的指令和能夠處理無(wú)符運算對象的指令都是高效實(shí)現所需要的。

  精簡(jiǎn)數據,減少占位:這些模塊中的代碼流主要為數據依賴(lài)型,因此不是預定的。所以,精簡(jiǎn)數據大小有助于減少緩存清空所引起的任何開(kāi)銷(xiāo)。

  



關(guān)鍵詞: 解析 性能 音頻 Cortex-M ARM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>