新聞中心

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

        ARM Cortex-M的音頻性能解析

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

        本文引用地址:http://www.104case.com/article/150353.htm

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

          

        圖3:均衡器框圖。(電子系統(tǒng)設(shè)計)

          圖3:均衡器框圖。

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

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

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

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

          音頻處理模塊類別

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

          

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

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

          MAC密集模塊

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

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

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

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

          分支推測:這些模塊有一個預(yù)定的代碼流。由于這些模塊需要對指令反復(fù)執(zhí)行運(yùn)算,簡單的分支推測有利于減少因流水線清空所產(chǎn)生的開銷。

          MAC和控制代碼混合模塊

          這些模塊同樣是計算密集型,但在MAC密集運(yùn)算中還涉及控制代碼運(yùn)算。快速傅里葉變換(FFT)、濾波器組等變換運(yùn)算是這一類型的典型例子。此類模塊的處理器要求為:

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

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

          壓縮數(shù)據(jù)處理:FFT等這類模塊的運(yùn)算一般使用稱為旋轉(zhuǎn)因子的16位系數(shù)。FFT基數(shù)越高,所涉及的旋轉(zhuǎn)因子越多,但相對復(fù)雜度越低。這些旋轉(zhuǎn)因子可通過打包成32位數(shù)據(jù)來降低內(nèi)核循環(huán)中的任何寄存器不足。或者可通過將旋轉(zhuǎn)因子載入到內(nèi)核循環(huán)以外的寄存器來避免重復(fù)負(fù)載的可能開銷。因此,能夠運(yùn)算壓縮數(shù)據(jù)的指令是提高效率的理想之選。

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

          控制代碼模塊

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

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

          精簡數(shù)據(jù),減少占位:這些模塊中的代碼流主要為數(shù)據(jù)依賴型,因此不是預(yù)定的。所以,精簡數(shù)據(jù)大小有助于減少緩存清空所引起的任何開銷。

          



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

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 潞西市| 竹北市| 尖扎县| 红原县| 叶城县| 南靖县| 彝良县| 井冈山市| 辽中县| 石林| 林芝县| 太保市| 革吉县| 上高县| 启东市| 伽师县| 乐山市| 上虞市| 西安市| 呼玛县| 安康市| 洪泽县| 礼泉县| 盘山县| 四平市| 墨竹工卡县| 苗栗县| 杭州市| 宁远县| 武汉市| 旬阳县| 富平县| 介休市| 阿拉善右旗| 肇庆市| 威海市| 北海市| 调兵山市| 杭锦旗| 岳普湖县| 庆阳市|