ARM Cortex-M的音頻性能解析
近年來,便攜式音樂播放器大放異彩,備受人們喜愛。其中的原因有很多,例如海量的壓縮音樂內(nèi)容,數(shù)據(jù)存儲成本不斷下降、操作簡便和輕松訪問不同流行元素的在線音樂內(nèi)容。消費者對下一代音樂播放器日益挑剔,期盼更長的音頻播放時間、更豐富的聆聽體驗。
本文引用地址:http://2s4d.com/article/150353.htm 由此誕生了Cortex-M系列,這是新一代ARM低成本微處理器,采用低功耗設計。Cortex-M3內(nèi)核和最近發(fā)布的Cortex-M4內(nèi)核基于哈佛架構的3級流水線并采用Thumb-2指令集架構(ISA),內(nèi)存要求更低。但這些MCU能否勝任音頻處理任務?它們能否打造更出色的傾聽體驗,滿足人們的期望?
為了分析這些處理器是否適合處理音頻,首先我們以MP3解碼器和均衡器為例,大致了解一下音頻解碼器和后處理等音頻部件中常用音頻處理模塊實施方案,然后按照高效實現(xiàn)這些模塊對處理器指令集架構的要求,對模塊加以分類。
我們重點從指令集角度來探討Cortex-M3和Cortex-M4內(nèi)核在音頻處理方面的優(yōu)勢。為此,我們先討論不同音頻部件的一些模塊代碼示例,隨后分析這些處理器在循環(huán)和指令方面的獨到優(yōu)勢,最后,將展示流行音頻編解碼器和音頻后處理部件的典型性能指標以佐證這些處理器內(nèi)核的音頻能力。
音頻處理模塊的功能塊
為了分析音頻處理器要求,現(xiàn)先從音頻處理模塊所涉及的功能塊,即音頻編解碼器和音頻后處理部件談起。本節(jié)框圖中的模塊用顏色標為3種不同類別。綠色表示乘加(MAC)密集模塊、紅色表示MAC和控制代碼混合模塊、藍色表示控制代碼模塊。
音頻編解碼器
互聯(lián)網(wǎng)提供了大量壓縮音頻數(shù)據(jù),必然要求音樂播放器支持多種流行的音頻解碼器。音頻編碼器的處理功能涉及一系列功能塊,我們接下來回顧一下。
圖1:典型音頻編碼器框圖。
音頻編碼器:音頻編解碼器的用途是實現(xiàn)音頻數(shù)據(jù)壓縮,同時在給定比特率的限制下努力獲得保真音質(zhì)。典型編碼器如圖1所示。一般來說,音頻編碼器采用如下三步完成壓縮:首先,通過數(shù)據(jù)濾波調(diào)節(jié)音頻數(shù)據(jù)。然后,通過窗口化和重疊對音頻數(shù)據(jù)進行幀化,等待進一步處理;接著,將此數(shù)據(jù)變換至頻域,消除時域內(nèi)的冗余。使用心理聲學原理,對可能引入的、聽不見的量化噪聲數(shù)量進行計算;最后,對此數(shù)據(jù)進行量化并通過熵編碼實現(xiàn)進一步無損壓縮。此編碼數(shù)據(jù)經(jīng)緊密打包成為位流。盡管所實現(xiàn)的壓縮有些損耗,但聽覺難以分辨細微差別。
音頻解碼器:將上述關于音頻編碼器的過程反向,即是音頻解碼器從位流中還原音頻數(shù)據(jù)的原理。這里以MP3解碼器為例進行討論,高層模塊分解如圖2所示??驁D以MP3文件格式的壓縮音頻作為輸入并輸出PCM格式的非壓縮音頻。
這些模塊以功能命名,并代表各自執(zhí)行的操作
圖2:MP3解碼器框圖。
“Bit Stream Demux”模塊解析MP3位流
“EntropyInv Q”模塊執(zhí)行霍夫曼解碼和反向量化
“IMDCT”模塊對此數(shù)據(jù)進行反向修改離散余弦變換
“Overlap and Add”模塊執(zhí)行窗口化、重疊和加法運算
“Synthesis Filter Bank”從濾波器組域數(shù)據(jù)中重構時域樣本
評論