Android 基於Linux,我們先來了解一下Linux的特點。Linux使用ALSA作為其音訊架構,其全稱Advanced Linux Sound Architecture,即高階Linux聲音架構的意思,在2.6核心之後,ALSA成為了Linux系統預設的音訊子架構。取代了之前的OSS[Open Sound System,開放式聲音系統]。
ALSA並不太好理解,它首先是一個驅動庫,包含了大量的音效卡裝置的開源驅動,並提供了核心層API與ALSA庫通訊,而ALSA庫則是應用程式訪問和操控音訊硬體的中間層,這個中間層有標準介面,開發者可以無須考慮硬體差異性進行開發,它對提升開發效率是大有幫助的。ALSA可以向下相容OSS,因為OSS已經被淘汰,其相容的工作模式不再討論。
這個體系被繼承到了Android當中。在Android2.2[含2,2]之前,系統資料夾中能找到一個LibAudioALSA.so的檔案,這就是ALSA庫檔案,其他應用程式呼叫它,與音效卡裝置進行指令和資料通訊。Android音訊架構與Linux的並無本質區別。
在桌面版本的Linux當中,為了相容各類音效卡,Linux也設定了一個SRC[Sample Rate Converter,取樣頻率轉換]的環節,噹噹前取樣率低於48kHz時強制SRC到48kHz輸出。這個SRC環節位於ALSA的外掛模組中的混音器部分。Android針對這個進行了改進。
什麼是SRC?SRC即Sample Rate Converter,中文意思為取樣頻率轉換。它被音效卡愛好者所關注,大部分發燒友視SRC為音質殺手。
Android增加了一個AudioFinger,這個可以簡單的理解為Android的ALSA音訊子系統的標準化的外掛模組,它包含了AudioMixer[混音器]、AudioResampler[重取樣]等子模組,AudioResampler即我們理解的SRC,Android換了一個新名稱而已。針對SRC,Android做了改進,但改進並不是以去除SRC為目的,而是修改了預設的輸出頻率,Android的SRC目標取樣率為44.1kHz,非該值的取樣率都將SRC處理。例如播放48kHz取樣率的訊號,輸出的最終是44.1kHz,這對音質將產生負面影響。
ALSA是一個針對Linux 桌面版本設計的音訊架構,它實際上是不適合智慧終端裝置的,起碼裡面大量的開源驅動程式碼是可以去除的,對與Android來說,這些都是廢程式碼。從Android2.3起,啟用了一個新的音訊架構。它放棄了一直使用的ALSA架構,因此係統資料夾中,也不再有LibAudioALSA.so這個檔案。
Android2.3起,架構已經做了修改,在針對內部程式碼進行了最佳化,去除了冗餘程式碼,理論上讓系統能變得更加高效,可以將新架構理解為一個精簡的或者為智慧終端裝置定製的ALSA架構。遺憾的是,它同樣存在SRC嚴重劣化的問題,透過測試可以證明。
Android 3.0專門為平板電腦設計,影音體驗變得更加重要了,是不是新系統在音質方面會有新的的進步呢,測試結果依然是令人失望的。
Android 基於Linux,我們先來了解一下Linux的特點。Linux使用ALSA作為其音訊架構,其全稱Advanced Linux Sound Architecture,即高階Linux聲音架構的意思,在2.6核心之後,ALSA成為了Linux系統預設的音訊子架構。取代了之前的OSS[Open Sound System,開放式聲音系統]。
ALSA並不太好理解,它首先是一個驅動庫,包含了大量的音效卡裝置的開源驅動,並提供了核心層API與ALSA庫通訊,而ALSA庫則是應用程式訪問和操控音訊硬體的中間層,這個中間層有標準介面,開發者可以無須考慮硬體差異性進行開發,它對提升開發效率是大有幫助的。ALSA可以向下相容OSS,因為OSS已經被淘汰,其相容的工作模式不再討論。
這個體系被繼承到了Android當中。在Android2.2[含2,2]之前,系統資料夾中能找到一個LibAudioALSA.so的檔案,這就是ALSA庫檔案,其他應用程式呼叫它,與音效卡裝置進行指令和資料通訊。Android音訊架構與Linux的並無本質區別。
在桌面版本的Linux當中,為了相容各類音效卡,Linux也設定了一個SRC[Sample Rate Converter,取樣頻率轉換]的環節,噹噹前取樣率低於48kHz時強制SRC到48kHz輸出。這個SRC環節位於ALSA的外掛模組中的混音器部分。Android針對這個進行了改進。
什麼是SRC?SRC即Sample Rate Converter,中文意思為取樣頻率轉換。它被音效卡愛好者所關注,大部分發燒友視SRC為音質殺手。
Android增加了一個AudioFinger,這個可以簡單的理解為Android的ALSA音訊子系統的標準化的外掛模組,它包含了AudioMixer[混音器]、AudioResampler[重取樣]等子模組,AudioResampler即我們理解的SRC,Android換了一個新名稱而已。針對SRC,Android做了改進,但改進並不是以去除SRC為目的,而是修改了預設的輸出頻率,Android的SRC目標取樣率為44.1kHz,非該值的取樣率都將SRC處理。例如播放48kHz取樣率的訊號,輸出的最終是44.1kHz,這對音質將產生負面影響。
ALSA是一個針對Linux 桌面版本設計的音訊架構,它實際上是不適合智慧終端裝置的,起碼裡面大量的開源驅動程式碼是可以去除的,對與Android來說,這些都是廢程式碼。從Android2.3起,啟用了一個新的音訊架構。它放棄了一直使用的ALSA架構,因此係統資料夾中,也不再有LibAudioALSA.so這個檔案。
Android2.3起,架構已經做了修改,在針對內部程式碼進行了最佳化,去除了冗餘程式碼,理論上讓系統能變得更加高效,可以將新架構理解為一個精簡的或者為智慧終端裝置定製的ALSA架構。遺憾的是,它同樣存在SRC嚴重劣化的問題,透過測試可以證明。
Android 3.0專門為平板電腦設計,影音體驗變得更加重要了,是不是新系統在音質方面會有新的的進步呢,測試結果依然是令人失望的。