ADVERTISEMENT
智慧型手機音訊處理架構剖析
智慧型手機音訊處理架構,因為不同作業系統而有很大的差異,同個作業系統但不版本號也有不小的差別,這個特徵在Android系統上非常明顯。為了讓程式開發者不需從驅動程式開始進行軟體開發,於是將硬體層和應用層藉由標準程序介面連結,是一個好的系統架構所必需具備的,這對於音訊處理也是相同重要。
Android系統音頻處理
Android系統本身是基於Linux,在舊版本的Android 2.1中,預設的音訊處理架構是OSS(Open Sound System),它是Unix和類Unix系統中廣泛使用的一種架構。但是由於對音訊設備的支持不足,並且缺乏對新特性支持的能力,於是在Android 2.2後,由目前Linux主流的ALSA(Advanced Linux Sound Architecture)音訊處理架構所取代。
ALSA支援更多和更複雜的應用程序介面(API,Application ProgrammingInterface),使得開發難度上有所上升。但是ALSA提供了1個專門的函式庫,給開發者簡化程序編寫流程,使得相較於OSS來說,ALSA支援更廣泛的音訊介面,並且相容舊的OSS架構。
▲Android軟體堆疊架構概要圖。
過渡時期架構ALSA
ALSA本身可以想成1個負責連結應用程序,和硬體控制層的中間介面,而ALSA擁有標準的應用程序介面,裡面包含Audio Mixer、Audio Resampler等外掛模組,使得開發者可以在不考慮硬體差異的情況下,進行應用程式開發。
由於Android智慧型手機在硬體配置上採用開放性政策,於是為了兼容各類音訊硬體,和解決可能發生取樣頻率不支援的問題,Android增加了1個取樣頻率轉換器(SRC,SampleRate Converter)音效外掛模組來解決這個問題。
SRC能將不同取樣頻率的音訊都轉換成44.1kHz輸出,但也在音訊處理過程中,帶入大量的延遲和系統資源的占用。並且由於Android 的SRC 運算品質不高,使得處理非44.1kHz音訊時,會產生嚴重的聲音劣化問題。
▲ALSA(Advanced Linux Sound Architecture)音訊處理架構。
TinyALSA架構仍有罩門
由於ALSA是為桌上型電腦設計的音訊處理架構,裡面擁有太多不需要的開源驅動代碼,並且對移動裝置的支援存在一些不足。於是在Android 2.3後,Android使用基於TinyALSA架構的AudioFlinger來替代ALSA,成為預設的音訊處理架構。
看到Tiny 這個字,就知道這是個精簡過,並且對移動裝置優化的ALSA架構。藉由刪減掉不常使用的音訊介面,再加上簡化音訊處理流程,理論上能夠獲得更高的效能,並且耗降低音訊延遲,
可惜AudioFlinger同樣擁有之前架構的SRC問題,即便新版本的Android,除了傳統的播放音樂的音訊介面,額外提供一個較高速、低緩存的即時音訊介面。但是由於Android應用程序介面還是對音訊進行了大量的後處理,所以延遲普遍還是高達100ms以上,使得Android在音訊處理應用上還是處於劣勢。
▲Android TinyALSA音訊處理架構。
iOS和Windows Phone系統
而iOS系統長期處於封閉的狀態,並且iOS設備硬體的完全由Apple所掌控,使得iOS可以針對少數硬體專門開發音訊處理介面。因此在程序和介面優化上更加輕易,對於實現高音質移動裝置有明顯的優勢,不過移動版iOS 也有其自身的問題存在。
像是為了兼容不同的iOS 移動裝置,移動版iOS目前只支援播放最高48kHz取樣的音樂格式,並且很可能在位元深度方面也和Android相同,最高只支援到16bit。對於想體驗高品質音樂的使用者來說,目前不論iOS 或是Android都不是最好的選擇,可能會有人問Windows Phone 系列呢?
由於Windows Phone產品數量和市占率較低,加上跟iOS同樣屬於封閉型架構和音訊架構資訊較少,可能先拉抬市占率,吸引其他廠商和開發者注意會是一個比較實在的做法。依目前的情況來看,Windows Phone作業統的智慧型手機在音質方面,也沒有特別出色。
智慧型平台未來發展
雖然有著眾多不利的因素,Android智慧型手機相較於可靠,但技術漸漸落後的iOS設備來說,在音質提升上有著更大的可能性。借助於彈性非常高的硬體搭配方案,Android智慧型手機將能夠搭載最新,且效能更好的音訊處理器晶片。再加上ESS和Wolfson近期都開始布局,媲美其自家高階DAC晶片的低功耗音訊處理晶片,其他傳統音訊半導體晶片廠商,也勢必會開始重視低功耗音訊處理晶片市場。
而且Android和Linux的底層核心,似乎都能支援不同取樣品率的音訊,從市場部分使用Android作為其操作系統的高階隨身播放器來看,例如iBasso Audio DX100,使用自家技術改寫音訊處理介面,來克服Android音訊處理系統的問題,也間接證明Android開放式架構的確有比iOS更高的可塑性。雖然目前可能有一些言之過早,但隨著技術上的突破和更多廠商的投入,也許不久的將來,就能夠出現音質接近高階播放器的Android智慧型手機產品。
本文同步刊載於電腦王雜誌
歡迎加入電腦王雜誌粉絲團
請問是哪部分
我真的不知道手機運算 哪裡比高階電腦強
已經解決src問題了=_=