国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

淺談ARM Cortex-M的音頻性能

發布時間:2015-1-12 10:23    發布者:designapp

        近年來,便攜式音樂播放器大放異彩,備受人們喜愛。其中的原因有很多,例如海量的壓縮音樂內容,數據存儲成本不斷下降、操作簡便和輕松訪問不同流行元素的在線音樂內容。消費者對下一代音樂播放器日益挑剔,期盼更長的音頻播放時間、更豐富的聆聽體驗。
由此誕生了Cortex-M系列,這是新一代ARM低成本微處理器,采用低功耗設計。Cortex-M3內核和最近發布的Cortex-M4內核基于哈佛架構的3級流水線并采用Thumb-2指令集架構(ISA),內存要求更低。但這些MCU能否勝任音頻處理任務?它們能否打造更出色的傾聽體驗,滿足人們的期望?
為了分析這些處理器是否適合處理音頻,首先我們以MP3解碼器和均衡器為例,大致了解一下音頻解碼器和后處理等音頻部件中常用音頻處理模塊實施方案,然后按照高效實現這些模塊對處理器指令集架構的要求,對模塊加以分類。
我們重點從指令集角度來探討Cortex-M3和Cortex-M4內核在音頻處理方面的優勢。為此,我們先討論不同音頻部件的一些模塊代碼示例,隨后分析這些處理器在循環和指令方面的獨到優勢,最后,將展示流行音頻編解碼器和音頻后處理部件的典型性能指標以佐證這些處理器內核的音頻能力。
音頻處理模塊的功能塊
為了分析音頻處理器要求,現先從音頻處理模塊所涉及的功能塊,即音頻編解碼器和音頻后處理部件談起。本節框圖中的模塊用顏色標為3種不同類別。綠色表示乘加(MAC)密集模塊、紅色表示MAC和控制代碼混合模塊、藍色表示控制代碼模塊。
音頻編解碼器
互聯網提供了大量壓縮音頻數據,必然要求音樂播放器支持多種流行的音頻解碼器。音頻編碼器的處理功能涉及一系列功能塊,我們接下來回顧一下。




音頻編碼器:音頻編解碼器的用途是實現音頻數據壓縮,同時在給定比特率的限制下努力獲得保真音質。典型編碼器如圖1所示。一般來說,音頻編碼器采用如下三步完成壓縮:首先,通過數據濾波調節音頻數據。然后,通過窗口化和重疊對音頻數據進行幀化,等待進一步處理;接著,將此數據變換至頻域,消除時域內的冗余。使用心理聲學原理,對可能引入的、聽不見的量化噪聲數量進行計算;最后,對此數據進行量化并通過熵編碼實現進一步無損壓縮。此編碼數據經緊密打包成為位流。盡管所實現的壓縮有些損耗,但聽覺難以分辨細微差別。
音頻解碼器:將上述關于音頻編碼器的過程反向,即是音頻解碼器從位流中還原音頻數據的原理。這里以MP3解碼器為例進行討論,高層模塊分解如圖2所示。框圖以MP3文件格式的壓縮音頻作為輸入并輸出PCM格式的非壓縮音頻。
這些模塊以功能命名,并代表各自執行的操作




“Bit Stream Demux”模塊解析MP3位流
“Entropy&Inv Q”模塊執行霍夫曼解碼和反向量化
“IMDCT”模塊對此數據進行反向修改離散余弦變換
“Overlap and Add”模塊執行窗口化、重疊和加法運算
“Synthesis Filter Bank”從濾波器組域數據中重構時域樣本
音頻后處理
兩種情況一定需要音頻數據后處理。首先,要求提供豐富的聆聽體驗。例如,可使用立體聲加寬等空間定位器(Spatializer)來消除長時間使用耳機的聽覺疲勞。即使是基本的音頻播放,也需要后處理。例如,音樂播放器的DAC如果僅支持有限系列采樣率的情況下,可能需要對音頻數據進行重新采樣。




我們以均衡器為例,探討后處理器中用到的典型模塊。均衡器一般是為了滿足聆聽者的偏好,同時也可用于校正耳機或揚聲器的頻響。圖3所示為基本參數均衡器的高層模塊分解。下列模塊用于僅修改一小段音頻頻譜,具體做法是利用增益值、帶寬和中心/截止頻率的可控參數提供增益或衰減。要獲得所需頻響,可將多個此類二階IIR濾波器級聯。
低頻(LF)斜率濾波器:一種用于修改音頻頻譜低音部分的濾波器
峰化濾波器:一種用于修改音頻頻譜中頻范圍的濾波器
高頻(HF)斜率濾波器:一種用于修改音頻頻譜高音部分的濾波器
音頻處理模塊類別
根據特性,音頻處理模塊廣義上分為三類。我們將詳細討論每種模塊及其特性,然后進一步分析高效實現這些模塊對處理器的要求。表1概述了本節所述音頻處理的處理器要求。








       
MAC密集模塊
這些模塊屬于計算密集型,主要執行乘加(MAC)運算,通常有一個預定的代碼流。濾波(FIR、IIR濾波器)、窗口化、相關性及卷積等信號處理運算屬于此類別的典型例子。此類模塊的處理器要求稍后論述。
高精度MAC:這些模塊正常工作需要高精度乘加法。例如,IIR濾波器的穩定性要求高精度運算。輸出的保真度和精度直接取決于MAC指令的精度。盡管可使用低精度指令來某些仿真高精度MAC指令(例如32位乘以32位,在64位結果內累加),但最好是使用高精度MAC指令來獲得高效實現。
SIMD能力:這些模塊內的運算往往是少量指令的反復執行,從而產生精簡循環內核。單指令多數據(SIMD)能力對于此類模塊的高效執行最為理想。內置此功能的處理器更有利于處理此類模塊。
飽和算法:某些運算需要使用飽和算法。例如,當在運行時產生窗口系數或在產生PCM輸出數據到所需位寬時。針對飽和算術的需求可以減少,但無法完全避免,因為中間結果的位寬更高。因此,支持飽和算法的指令是高效實現的理想之選。
分支推測:這些模塊有一個預定的代碼流。由于這些模塊需要對指令反復執行運算,簡單的分支推測有利于減少因流水線清空所產生的開銷。
MAC和控制代碼混合模塊
這些模塊同樣是計算密集型,但在MAC密集運算中還涉及控制代碼運算。快速傅里葉變換(FFT)、濾波器組等變換運算是這一類型的典型例子。此類模塊的處理器要求為:
DSP指令:由于上述兩類模塊(MAC密集模塊和MAC和控制代碼混合模塊)主要涉及MAC運算,因此,如果只有MAC和MLS(乘法和減法)指令而無運算累加的開銷,一定能提高效率。
混合位寬運算:運算對象的最小位寬取決于各種因素。例如,在濾波運算中,輸出精度和濾波器穩定性決定濾波器系數的位寬。所以高效實現離不開能夠處理混合位寬運算對象的指令。
壓縮數據處理:FFT等這類模塊的運算一般使用稱為旋轉因子的16位系數。FFT基數越高,所涉及的旋轉因子越多,但相對復雜度越低。這些旋轉因子可通過打包成32位數據來降低內核循環中的任何寄存器不足。或者可通過將旋轉因子載入到內核循環以外的寄存器來避免重復負載的可能開銷。因此,能夠運算壓縮數據的指令是提高效率的理想之選。
位反轉:能夠執行位反轉的指令有利于需要位反轉尋址的FFT等關鍵模塊。
控制代碼模塊
這些模塊主要涉及控制代碼且代碼流為數據依賴型。位流解復用器和熵解碼運算就屬于此類。例如,MP3解碼器采用霍夫曼解碼,而WMA解碼器采用游程解碼。接下來討論此類模塊的處理器要求。
無符和按位運算:這些模塊需要處理打包的數據流,而這需要數據提取。因此,能夠執行按位運算、提取、打包、解包的指令和能夠處理無符運算對象的指令都是高效實現所需要的。
精簡數據,減少占位:這些模塊中的代碼流主要為數據依賴型,因此不是預定的。所以,精簡數據大小有助于減少緩存清空所引起的任何開銷。
ARM Cortex-M3和Cortex-M4處理器
本節將探討ARM低功耗高性能微控制器Cortex-M3內核的功能,然后討論Cortex-M系列的最新處理器內核M4的功能。Cortex-M系列內核的功能及示例指令和循環如表2所列。
Cortex-M3功能:采用高精度MAC單元,可提供最高32位乘以32位數據的乘法精度,得出64位累加結果。其他有利功能包括DSP指令、范數計算輔助指令、分支推測、因Thumb-2的高代碼密度以及硬件除法指令。這些功能都有利于音頻處理。
Cortex-M4功能:Cortex-M4內核是Cortex-M3的升級產品,除了繼承全部現有功能外,還增加了單循環MAC單元和浮點單元(FPU)等額外功能。MAC單元只需要1個循環,即使對于最高精度運算也是如此,將32位乘以32位,得出64位累加結果。增加了具有SIMD功能的DSP指令和高精度MAC單元等新功能,Cortex-M4就是一種具有DSP功能的微控制器,即數字信號控制器(DSC)。這些功能對于音頻處理非常有利,因為需要高精度來保持透澈的音質。




音頻處理傳統上在數字信號處理器(DSP)上實施,而由通用處理器(GPP)負責系統相關的功能。隨著Cortex-M系列的問世,由于這些處理器完全適合音頻處理應用,音頻可在這些內核上獲得高效實施而無需DSP。
音頻模塊代碼示例
現在,我們將展示一些不同音頻處理部件(音頻解碼器、編碼器、后處理及通用信號處理等)的例程的代碼示例。代碼段內用粗體字表示的指令是最新引入Cortex-M4的。每條指令的循環次數在括號中給出。表格概述了每個示例所用的總循環、所需的指令數及所用的寄存器。




       
窗口重疊加法模塊
重疊加法窗口化是大多數音頻解碼器采用的典型模塊。它以MAC運算為主,屬于計算密集型。圖4所示為此模塊的運算處理流程。此例的實施方案在等式1中給出。




雙二階IIR濾波器模塊
雙二階濾波器是二階IIR濾波器的常用名,是均衡器等音頻編碼器和后處理器模塊的一種典型例程。本質上屬于計算密集型,以MAC運算為主。圖5所示為此模塊的Direct Form-1版本。此例的實施方案在等式-2中給出。在此例中,兩種處理器的寄存器用途和指令數完全相同。




基2 FFT蝶形器模塊
FFT是一種通用信號處理運算。音頻處理模塊一般都需要FFT運算進行頻域變換。它計算密集型,以MAC和控制代碼混合運算為主。此例僅說明基2時間抽取算法(DIT)蝶形運算。輸入輸出數據的精度均為16位。圖6所示為此模塊的運算處理流程。此例的實施方案在等式3中給出。




FIR濾波器模塊
FIR濾波器是一種典型的信號處理運算,常用于后處理模塊。此模塊也是計算密集型,以MAC運算為主。圖7所示為此模塊的運算處理流程。在此例中的實施方案在等式4中給出。








       
基于ARM Cortex-M處理器的音頻解決方案
Ittiam公司基于Cortex-M處理器的音頻解決方案包含低功率音頻編解碼器和高品質后處理部件。表3列出了Cortex-M3和Cortex-M4處理器所選的代表性音頻部件的典型性能。
處理器的音頻功能:該音頻編解碼器進一步優化了性能,充分發揮了Cortex-M3的DSP指令和Cortex-M4的SIMD潛能。這款優化的音頻解決方案提高了處理器頻率的使用效率,延長了音頻播放時間。音頻后處理器部件通過高效利用高精度MAC單元來實現卓越音質。借助Cortex-M處理器的這些功能,Ittiam音頻解決方案實現了低功耗、高音質。
音頻能力:這些典型性能指標針對立體聲模式和44.1kHz采樣率。解碼器和編碼器采用128kbps配置。參數均衡器采用3頻帶配置。所有性能指標假設零等待狀態內存配置。硬件性能會隨實際內存配置而有所不同。




為了計算處理器的負載百分比,假設Cortex-M3的時鐘頻率為100MHz,Cortex-M4為150MHz。執行一次音頻解碼并施加兩個效應(例如MP3解碼以及隨后的均衡器和立體聲加寬)的一般處理器負載在Cortex-M3上約為40%,而在Cortex-M4上約為15%。這表明這些處理器不僅音頻能力超高,還可增強聆聽體驗。




內存占用更小:表4列出了Cortex-M3和Cortex-M4處理器所選的代表性音頻部件的內存要求。這些內存資源要求分別針對RAM和ROM內存。由于Cortex-M4功能更先進,所以ROM要求比Cortex-M3更低。Cortex-M系列處理器的Thumb-2功能使音頻部件的內存占用更小,內存要求低,因而成本更低。
本文小結
通過對各種音頻處理模塊的分析以及對音頻處理的處理器要求的分析,我們可以看出,ARM Cortex-M3和Cortex-M4處理器內核的功能和能力可以實現高效的音頻處理。由于低功耗、高性能,Cortex-M處理器非常適合音頻應用。這些處理器超強的音頻能力可用于低功耗產品設計,實現更長的音頻播放時間,同時提供更豐富的聆聽體驗。










本文地址:http://m.qingdxww.cn/thread-144292-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜福利免费视频921000电影| 日韩成人中文字幕| 青草视频在线看| 色综合天天网| 亚洲男人天堂网| 亚洲国产精品自在现线让你爽 | 国产精品久久久久久搜索| 欧美整片华人play| 张开腿我尝尝你的草莓| 三级a黄| 日本不卡在线观看| 亚洲精品老司机福利在线播放| 亚洲成a人伦理| 99久久免费国内精品| 人人澡人人擦人人免费| 手机看片99| 日韩精品一区二区三区中文精品| 四虎在线网址入口2022| 在线观看精品视频看看播放| 国产婷婷一区二区在线观看| 亚洲色图激情文学| 一级毛片a免费播放王色| 四虎影视免费永久在线观看| 色欲都市| 中国老妇另类videos| 九九久久精品| 亚洲人成电影网站| 青草综合| 王者天下第五季在线观看| 天天影院成人免费观看| 中文字幕日本在线| 欧美又粗又大AAAA片| 亚洲资源在线视频| 午夜视频观看| 亚洲精品久久午夜香蕉| 成人免费视频在| 日本老妇一级特黄aa大片| 亚洲欧美成人综合在线| 五月天堂婷婷| 怡红院视频视频在线观看| 花季v3.0.2黄在线观看|