科普貼 關於Android的音頻SRC處理,音質問題

科普貼 關於Android的音頻SRC處理,音質問題

[複製帖子標題和鏈接]

72734

 
電梯直達跳轉到指定樓層
樓主只看該作者
 
旋律2014  獨步江湖  發表於 2014-2-17 17:52:39 來自:瀏覽器

最新回覆 2014-2-18 08:52:52

本帖最後由 九尾 於 2014-2-18 15:49 編輯

這文章是轉來的,最早是一年前數碼多上原創測試文章,最近看到論壇不少人關心聽音樂音質問題,重新從網上翻來,科普下.

喜歡音樂的,入個幾百塊的純音頻MP3吧,Android目前真心不合適聽音樂,音源,耳塞再牛逼也不行.

文章如下:

Android系統迅速崛起,超越iOS和Symbian成爲第一大智能設備操作系統,它的佔有率還有迅速擴張的趨勢,將有大量的多媒體設備採用這個系統,那麼Android是否適合作爲影音設備的操作系統使用呢?我們今天就來了解一下Android的音頻架構。 
▲安卓系統
Android 基於Linux,我們先來了解一下Linux的特點。Linux使用ALSA作爲其音頻架構,其全稱Advanced Linux SoundArchitecture,即高級Linux聲音架構的意思,在2.6核心之後,ALSA成爲了Linux系統默認的音頻子架構。取代了之前的OSS[Open Sound System,開放式聲音系統。  
▲Linux ALSA音頻架構示意
ALSA並不太好理解,它首先是一個驅動庫,包含了大量的聲卡設備的開源驅動,並提供了核心層API與ALSA庫通信,而ALSA庫則是應用程序訪問和操控音頻硬件的中間層,這個中間層有標準接口,開發者可以無須考慮硬件差異性進行開發,它對提升開發效率是大有幫助的。ALSA可以向下兼容OSS,因爲OSS已經被淘汰,其兼容的工作模式不再討論。 
▲Android 系統下的ALSA庫文件
  這個體系被繼承到了Android當中。在AndroiD2.2[含之前,系統文件夾中能找到一個LibAudioALSA.so的文件,這就是ALSA庫文件,其他應用程序調用它,與聲卡設備進行指令和數據通信。Android音頻架構與Linux的並無本質區別。
  在桌面版本的Linux當中,爲了兼容各類聲卡,Linux也設置了一個SRC[Sample RateConverter,採樣頻率轉換的環節,噹噹前採樣率低於48kHz時強制SRC到48kHz輸出。這個SRC環節位於ALSA的插件模塊中的混音器部分。Android針對這個進行了改進。
什麼是SRCSRC即Sample Rate Converter,中文意思爲採樣頻率轉換。它被聲卡愛好者所關注,大部分發燒友視SRC爲音質殺手。

Android增加了一個AudioFinger,這個可以簡單的理解爲Android的ALSA音頻子系統的標準化的插件模塊,它包含了AudioMixer[混音器、AudioResampler[重採樣等子模塊,AudioResampler即我們理解的SRC,Android換了一個新名稱而已。針對SRC,Android做了改進,但改進並不是以去除SRC爲目的,而是修改了默認的輸出頻率,Android的SRC目標採樣率爲44.1kHz,非該值的採樣率都將SRC處理。例如播放48kHz採樣率的信號,輸出的最終是44.1kHz,這對音質將產生負面影響。這個可以通過測試證明。 
▲Meizu 魅族 M9 智能手機-頻率掃描,錄音端增益20dB 
▲Meizu 魅族 M9 智能手機-48kHz頻率掃描,錄音端增益20dB  對比這一組結果就能看出SRC對音質的破壞性。  
▲Huawei 華爲 U8800 智能手機-48kHz頻率掃描 
▲Lenovo 聯想 樂Pad 平板電腦-48kHz頻率掃描 
▲Malata 萬利達 Zpad T8 平板電腦-48kHz頻率掃描 
▲SmartQ 智器 T10 平板電腦-48kHz頻率掃描  這問題不只是魅族 M9存在。幾乎存在於所有的Android設備當中。

ALSA是一個針對Linux 桌面版本設計的音頻架構,它實際上是不適合智能終端設備的,起碼裏面大量的開源驅動代碼是可以去除的,對與Android來說,這些都是廢代碼。從Android2.3起,啓用了一個新的音頻架構。它放棄了一直使用的ALSA架構,因此係統文件夾中,也不再有LibAudioALSA.so這個文件。 
▲Android2.3的系統文件夾下已經沒有了ALSA庫文件 
▲Android 2.3後的音頻架構示意
Android2.3起,架構已經做了修改,在針對內部代碼進行了優化,去除了冗餘代碼,理論上讓系統能變得更加高效,可以將新架構理解爲一個精簡的或者爲智能終端設備定製的ALSA架構。遺憾的是,它同樣存在SRC嚴重劣化的問題,通過測試可以證明。 
▲HTC HD2 @Android2.3 智能手機-48kHz頻率掃描  測試可以發現,Android 2.3的新架構對音質起不到正面作用。  
▲ASUS 華碩 Eee Pad Transformer TF101 平板電腦-48kHz頻率掃描 Android 3.0專門爲平板電腦設計,影音體驗變得更加重要了,是不是新系統在音質方面會有新的的進步呢,測試結果依然是令人失望的。

Android系統將採樣率同一爲44.1kHz輸出,這造成了諸多限制,它將無法實現96kHz、192kHz高清音頻節目的良好回放,大量視頻節目源自DVD或者藍光碟,其採用率多爲48kHz,Android設備在回放這些視頻節目時,音質也將大打折扣。 
▲安卓系統
  理論上軟件SRC可以通過更換算法來實現音質提升,但卻不太現實,智能終端所採用的CPU多爲ARM,ARM芯片的浮點運算力有限,而SRC需要大量的浮點運算的資源,即便有了高質量的SRC算法,其運算也是以犧牲設備性能和耗電量爲代價的,實用性差。
  從Android的音頻架構及流程分析,可以認爲,播放44.1kHz採樣率的音樂節目時,不會引發SRC,音質因此可以獲得保證,理論上確實如此。但它同樣存在問題,不管是之前的ALSA架構還是Android2.3之後改良的架構,其驅動庫都位於核心層,也就意味着音頻設備廠商、用戶無法象PC平臺那樣安裝驅動來改善音質。實際測試也表明,Android設備音質普遍偏差,Soomal有大量測試可以證明。
  我們再把目光投向iOS,iOS非常封閉,我們甚至無法獲知其架構的具體構成,但iOS設備不存在硬件設備多樣性的問題,因此要實現更好音質也會更加簡單。iOS可以實現針對性的開發和改良,以實現更好的音質。實際情況也是如此,目前爲止,還沒有一款Android設備的音質可以媲美任意一款iOS設備,這種差距,我們認爲不是來自硬件,而是操作系統。 
▲Android高清影音播放器
Android音頻架構的侷限性也使得其難以成爲優質的影音平臺,如果你希望設計一款基於Android的高清影音播放器,那麼首先需要做的不是設計硬件,而是去修改現有架構的不足,或者乾脆設計一個專用的架構來取代Android的通用架構。從源代碼分析,Android和原生的Linux底層能支持各種採樣率,開源也使得其具有改造基礎,因此,在技術實力強勁的公司手裏,Android也可以烏雞變鳳凰。 高通芯片組與Android音頻系統缺陷測評分析2011年07月14日17:18數碼多我要評論(5)
字號:T|T



Qualcomm高通公司是目前Android智能手機上最爲知名的ARM架構的處理器和芯片方案硬件提供商,高通公司的Snapdragon系列中的QSD8250是首個實現1GHz主頻的ARM處理器。在Android手機中,高通的方案最爲常見,在混亂的Android產品中高通芯片組擁有相對較好的兼容性。但是,經過我們對採用高通芯片的手機的測試發現,它的音頻子系統部分存在缺陷。而這個缺陷,在Android系統下又恰好、不幸的被無情放大。我們測試了包括摩托羅拉XT316[MSM7227,ARM11架構、華爲U8800[MSM7230,HTC Desire Z使用同樣芯片、HTC Desire HD[MSM8255]、聯想 樂Pad[QSD860A]、HTC Sensation[MSM8260]和一款特殊的HTC HD2[QSD8250WM6.5\WP7\Android 3操作系統共六款使用高通芯片的手機或平板電腦,覆蓋了高通從ARM11到全系列Snapdragon所有芯片[不包含因爲手機網絡制式不同的型號,如CDMA網絡。它們都存在同樣的問題。是什麼原因導致高通Snapdragon全系列都會存在如此問題?它會帶來怎樣的影響?與Android搭配的高通產品爲什麼問題會加重?我們來一一分析。 高通Qualcomm公司LOGO  

高通+Android=音質悲劇?我們的測試目的和方法發現高通芯片組音頻系統的缺陷,當然不是我們測試的目的,我們也沒有如此神通能無緣無故發現芯片級的設計缺陷。從2010年,Soomal進行耳機放大器、聲卡等測試以來,我們一直堅持使用一套固定的測試方法,對測試對象的信號輸出能力進行客觀分析測試。這套測試方法,雖然不能完全判斷它的系統是否足夠優秀,但對於系統缺陷的判斷則從原理、過程、客觀結果來說是準確無誤。大家可以簡單的理解,如果與我們測試的20Hz-20KHz頻率掃描信號的光譜圖發生重大偏差,它的系統一定存在問題,聲音表現不可能好,而至於問題嚴重性,是如何造成的,同樣可以通過一些特徵來分析。當我們測試第一款、甚至到第三款高通芯片組手機時,都並沒有確定它的問題所在,但通過Windows Phone 7、Windows Mobile系統,我們最終確定了結論。當然,我們發現問題,並不是要打擊高通,和使用高通芯片的手機,我們只是提出問題,並幸運的找到了問題出現的原因。作爲高通來說,修正這個缺陷並沒有太大難度。爲了更好閱讀文章,我們我們接下來再次講解一下頻率掃描光譜圖的閱讀方法。 

頻率掃描測試標準信號-20Hz-20KHz如圖所示,大家看到一張分爲上下兩部分[代表左右聲道的兩條具有一定角度的直線,它存在於一個橫座標爲時間縱座標爲頻率的二維座標空間內。它表示的是,一個標準測試信號的光頻譜分析圖。它是一個從20Hz-20KHz頻率範圍內的正弦波掃描圖,我們設置整個過程的時間爲10秒。而光的強度,代表了信號的強度。由於,大家看到這張圖是我們生成的標準信號,所以大家發現只有兩條光亮的直線,而沒有其他弱信號出現,而且大家注意,它的背景是非常黑的,這代表整個頻率範圍內,噪聲非常非常小。 

Apple蘋果iPodClassic1代80G-頻率掃描

再來看另一張圖,這是來自於iPod Classic的播放以上測試信號我們錄製得到的結果分析圖。與原信號相比,它出現了與主信號不同斜率的直線,這是諧波,但大家觀察它的顏色,偏淡藍色,說明信號強度很弱。而對比原始信號還發現,座標低頻部分會出現一些頻率很低的淡紅色噪聲。大家還可以在我們測試過的MP3播放器、耳機放大器等文章中看到比iPod Classic強度稍大一些的諧波分佈,但都在可接受範圍內。明白了我們的測試方法,我們來看看高通芯片組的表現。我們的測試,使用專業級聲卡錄入的形式,並使用RMAA軟件測試和頻率掃描信號光譜分析兩種分析方式進行測試。在這裏,我們不一一列舉RMAA的測試成績,大家可以參考每一款手機的音質測評報告,而我們列舉的是所有我們測試過高通芯片組的頻率光譜分析圖。由於圖片縮放變得較小,我們放大其中一張來說明它們的特徵。需要大家注意的是,這些測試均在16bit 44.1KHz規格下完成。  

Qualcomm高通芯片音頻子系統頻率掃描光譜圖 

HTCDesireHD[T-MobileG10]智能手機-頻率掃描從圖片很容易發現,高通所有芯片的噪聲都擁有同樣特殊的分佈規律,這種規律在便攜播放器、聲卡、耳放等我們測試過所有產品中從來沒有出現過。這種規律,主要表現在它會出現與主信號平行的噪聲分佈,且噪聲強度較強,在中高頻部分噪聲分佈也開始雜亂。我們最初並不能確定,這是Android的問題,或是高通的問題。直到我們進行以下兩個測試。第一,我們發現在Android系統下測試44.1KHz信號的Tegra2、AML8706等芯片的機器結果與高通芯片沒有任何相似之處;第二,來自於“神機”HTC HD2在Windows Phone 7和WindowsMobile6.5下的測試。 

HTCHD2WindowsPhone7-頻率掃描@16bit48KHzMP3 

[email protected]頻率掃描@16bit48KHz這裏看到的測試圖,與上兩張的測試環境不同,但與上圖中某個測試環境相同。它是HTC HD2手機在Windows Phone 7系統下,播放16bit 48KHz測試信號時的結果。同樣是HD2手機的QSD8250芯片,但高通芯片存在特有的噪聲分佈消失了。我們看到一張非常正常的頻率掃描光譜圖。原因非常明顯,高通芯片在硬件部分存在44.1KHz的src問題。如果大家還信不過HD2是因爲破解運行的Windows Phone 7,那就看看HD2在原生系統Windows Mobile 6.5下的表現,結果和Windows Phone 7一致。
 

高通音頻子系統於Android2.3的src示意圖 

高通音頻子系統@Android2.2[和更低版本的src示意圖大家也許已經發現問題是如何發生的。從工作流程圖來看,系統中軟件播放節目源,將信號轉交操作系統驅動層,操作系統輸出後,轉交硬件部分最後輸出。在高通芯片組的Android手機中,Android系統如果遇到48KHz信號,會發生強制src到44.1KHz,而後交給高通芯片,高通芯片硬件遇到44.1KHz信號,再強制src到48KHz輸出。這是最悲慘的過程。當你播放一段視頻時,大多會遇到這樣的情況,因爲目前視頻中音軌多數使用48KHz的採樣標準。另一種情況是,軟件播放的節目源爲44.1KHz,Android支持,自然沒有問題,但高通芯片硬件層不支持,它還是要強制src至48KHz輸出。所以,就看到了我們提供的那張測試“全家福”的慘劇。 

HTCDesireHD[T-MobileG10]智能手機-頻率掃描@16bit48KHz無論是Android操作系統強制src或是高通芯片強制src,都會帶來明顯的信號損失和大量噪聲產生。而Android的src問題顯然要比高通更爲嚴重,但高通芯片不支持44.1KHz輸出,發生的強制src,雖然從src過程來看遠好於Android操作系統軟件所做的,但仍是明顯缺陷和不足。作爲一款如此多移動設備使用的芯片組,竟然無法支持最常見的音樂製品採用的44.1KHz的標準,並採用src的方式提供支持,實在有些說不過去。而所有的44.1KHz信號都要通過src後來輸出,這是需要通過處理器計算完成的,必定增加芯片耗電量,這種設計實在是出力不討好。也許高通芯片組,本以爲自己的優勢在48KHz上,那播放視頻時自然不會有問題了?可惜!在Android上高通芯片硬件是無法得到它的。高通芯片組問題影響  

Motorola摩托羅拉XT316智能手機-Qualcomm高通MSM7227 
發佈了29 篇原創文章 · 獲贊 52 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章