音頻基礎(chǔ)知識(shí)
前段時(shí)間在閃存區(qū)發(fā)了一篇關(guān)于解碼與音質(zhì)的帖子,漏洞百出,在小小了解了音樂(lè)CD的原理之后,重作此文。
本文參考了維基和一些資料。
全文結(jié)構(gòu)較亂,本來(lái)準(zhǔn)備再整理,看到有研究wav和ape之類(lèi)的帖子,決定提前發(fā)。
下面簡(jiǎn)述音樂(lè)從制作到變成聲音進(jìn)入我們耳朵的流程:
歌手在錄音棚里唱歌,對(duì)于這些聲音,專(zhuān)業(yè)設(shè)備每秒采樣44100次,以16個(gè)二進(jìn)制數(shù)表示電壓(44100Hz,16bit,另外196KHz之類(lèi)同理),將聲音(模擬信號(hào))轉(zhuǎn)換為數(shù)字信號(hào),稱(chēng)為AD(模數(shù)轉(zhuǎn)換)。由于聲音要后期處理,這些數(shù)字信號(hào)還要再DA(數(shù)模轉(zhuǎn)換),AD多次,最終還是數(shù)字形式保存。
這些數(shù)字信號(hào)具體形式為一串串16位的二進(jìn)制數(shù)字(中間包括定位符),稱(chēng)為線(xiàn)性PCM,DAC只認(rèn)識(shí)這些東西。
對(duì)于CD機(jī),它們讀取CD碟中的二進(jìn)制數(shù)字,然后每隔1/44100秒輸出一組16位的二進(jìn)制數(shù)字(PCM)到到DAC。
DAC負(fù)責(zé)數(shù)模轉(zhuǎn)換,它把PCM轉(zhuǎn)換為電壓值。每次轉(zhuǎn)盤(pán)給他一組16位的二進(jìn)制數(shù)字,他就輸出一個(gè)電壓(根據(jù)這16個(gè)二進(jìn)制數(shù)字里的定位符確定左右聲道)。對(duì)于mp3播放器,DAC出來(lái)的一個(gè)個(gè)電壓值直接進(jìn)入運(yùn)算放大器(運(yùn)放),就是Line Out口。
還有一條路是DAC出來(lái)進(jìn)入信號(hào)放大電路,這就是Phone Out口。
上述過(guò)程中有一個(gè)很重大問(wèn)題,名曰Jitter。二進(jìn)制數(shù)字在傳輸過(guò)程中不可能出現(xiàn)一丁點(diǎn)錯(cuò)誤(0,1的世界里有完善的糾錯(cuò)體制),那么理論而言CD機(jī)輸出的數(shù)字信號(hào)是完全正確的。但由于世界上沒(méi)有精準(zhǔn)的時(shí)鐘,每隔1/44100秒輸出的那個(gè)數(shù)字信號(hào)雖然完全正確,但時(shí)間不對(duì),本來(lái)要在1s時(shí)的PCM變成了1s+50ps的PCM,最后輸出的模擬信號(hào)波形是變形的!比如大家高中描點(diǎn)畫(huà)正弦波形,x=1對(duì)應(yīng)Y=1,結(jié)果變成x=1+5*10^(-11)對(duì)應(yīng)Y=1,波形就不對(duì)了。Jitter在錄音棚里就產(chǎn)生,由于人家的家伙很貴,Jitter都是ps級(jí)別的。到了CD機(jī)之類(lèi)的,就是ns級(jí)別的,甚至更高(當(dāng)然貴CD的就?。?,所以CD輸出到DAC的信號(hào)變形不小,mp3播放器之類(lèi)就更悲劇了。(ps為皮秒,10^(-12)秒;ns為納秒,10^(-9)秒)
每一個(gè)過(guò)程都會(huì)產(chǎn)生jitter,第一步錄制就有jitter(這個(gè)很?。?,CD轉(zhuǎn)盤(pán)輸出也有jitter,到DAC也有jitter。。。。。最后播放也有jitter。包括自己刻錄盤(pán)也jitter,jitter無(wú)處不在。所以刻錄盤(pán)和原版CD的區(qū)別是有的,就是刻錄機(jī)產(chǎn)生的jitter,而0101001這樣的二進(jìn)制數(shù)字當(dāng)然沒(méi)有變化。jitter的實(shí)質(zhì)就是在不準(zhǔn)確的時(shí)間輸出了正確的數(shù)(這是俺的理解,嘻嘻)。
對(duì)于44100hz,16bit的音樂(lè)文件,DAC一秒鐘要轉(zhuǎn)換44100串16位數(shù)字,然后輸出,苦也。至于一些196Khz,32bit的音樂(lè),卻不是要了很多MP3的DAC的命?要知道很多mp3解碼DAC都是一個(gè)主控里面的,就那點(diǎn)電壓和空間。所以很多時(shí)候一些碼率高的無(wú)損放不了(當(dāng)然,不能播放不一定是這個(gè)問(wèn)題),DAC表示鴨梨很大!
下面介紹音頻文件。本來(lái)那一串串的數(shù)字,叫PCM,或者叫.wav文件,是的,就是CD抓軌的東西(還有一種wav是dts的,不予討論)。wav是老子,兒子分兩種,一種是有損格式mp3,wma,aac之類(lèi)的,還有一種無(wú)損,如flac,ape之類(lèi)的。
Mp3流行的背景,是人們發(fā)現(xiàn)wav太肥了,一首歌要50MB+。大家經(jīng)歷過(guò)128MB的mp3的時(shí)代,那個(gè)時(shí)候閃存貴啊,128MB和256MB價(jià)格差很多!于是大家就用mp3格式來(lái)存儲(chǔ)。mp3是根據(jù)一種算法(MPEG-3),把wav簡(jiǎn)化,比如去掉20Hz以下和20000Hz以上的頻率(一般人耳聽(tīng)不到)和心理上忽略的,最后把體積減小到十二分之一,音質(zhì)卻沒(méi)有劣化太多,wma貌似加上了版權(quán)之類(lèi)的。
無(wú)損之類(lèi)的就是很多人發(fā)現(xiàn)mp3的音質(zhì)不滿(mǎn)足他們要求,于是通過(guò)算法把wav壓縮,就像zip壓縮一樣,但沒(méi)有一個(gè)字節(jié)的損失。所以播放無(wú)損不用懷疑音質(zhì)和原始wav有任何一點(diǎn)點(diǎn)區(qū)別!當(dāng)然耗電。在這里,無(wú)損格式推薦flac,由于只涉及整數(shù)運(yùn)算,而且支持硬解碼之類(lèi),解碼簡(jiǎn)單,ape則涉及浮點(diǎn)運(yùn)算。很多人發(fā)現(xiàn)一些無(wú)損無(wú)法播放的一個(gè)原因就是壓縮率太高(使用footbar2000轉(zhuǎn)化無(wú)損格式的話(huà)可以看到"最大壓縮"和"最快解碼")。
Flac官網(wǎng)的形容就是"為音頻文件優(yōu)化的zip壓縮",播放前解壓縮,因?yàn)镈AC只認(rèn)識(shí)那一串串的PCM。具體流程參考被壓縮成zip的word文件,你雙擊那個(gè)word文件,于是先有一個(gè)提示框解壓縮,然后打開(kāi)word。而且,對(duì)于無(wú)損播放前的轉(zhuǎn)換,再垃圾的mp3都能不出一點(diǎn)錯(cuò)誤地轉(zhuǎn)換為線(xiàn)性PCM,沒(méi)有一點(diǎn)錯(cuò)誤!這就是強(qiáng)大的數(shù)字世界。你解壓縮zip文件,如果出錯(cuò)而又不能修復(fù),就會(huì)提示錯(cuò)誤,道理一樣。無(wú)損和wav之間可以無(wú)限次地轉(zhuǎn)換而不出一個(gè)字節(jié)的錯(cuò)誤,就像你可以把一個(gè)文件無(wú)數(shù)次地壓縮解壓而不會(huì)改變文件一樣。
Wav是一個(gè)容器,不代表無(wú)損,很多人遇到所謂的"假無(wú)損",就是wav已經(jīng)劣化為了mp3,大量細(xì)節(jié)已經(jīng)丟失。mp3此時(shí)仍然可以轉(zhuǎn)化為wav(下面介紹這個(gè)過(guò)程),無(wú)損,由于編碼原因,體積成倍增加,但是音質(zhì)已經(jīng)劣化,這就是"假無(wú)損"。
對(duì)于上述mp3轉(zhuǎn)wav過(guò)程,在直接播放有損音頻時(shí)都要遇到。一個(gè)mp3播放器在播放mp3文件時(shí)流程如下:從內(nèi)存讀取文件,解碼芯片根據(jù)算法,對(duì)其進(jìn)行近似,潤(rùn)色,修補(bǔ),最后輸出線(xiàn)性PCM(wav)。你可能會(huì)問(wèn):俺直接播放無(wú)損不就行了?對(duì),就是這樣,如果直接播放無(wú)損,這一步就沒(méi)有,所謂的"飛芯"的音頻解碼沒(méi)有用!另外有人發(fā)現(xiàn)一些老式或低端播放器不支持wav格式,這是因?yàn)樗麄兊木彺嫣?,廠(chǎng)家為了提高效率,省電,不支持wav。
最后還是回到我們的mp3播放器。
主控是整個(gè)播放器的核心,指揮整個(gè)運(yùn)作。他要負(fù)責(zé)控制音頻解碼芯片解碼,輸出PCM,指揮DAC輸出模擬信號(hào),還有負(fù)責(zé)最后的運(yùn)算放大,潤(rùn)色,根據(jù)算法體現(xiàn)各種EQ,而且他還要插手電源管理,所以主控是大腦。
DAC是核心(反正這種小型播放器Jitter都是一個(gè)級(jí)別),DAC直接決定Lo的質(zhì)量,決定Po到放大電路信號(hào)的純度,他要保證及時(shí)準(zhǔn)確地輸出純凈的模擬信號(hào)。反正,DAC應(yīng)該決定所謂的"素質(zhì)"。DAC的供電也至關(guān)重要,DAC供電不足是無(wú)法達(dá)到理論的水平的,而QA350則采用了所謂的各部分獨(dú)立供電。
至于Po的放大電路,這里決定聽(tīng)感,一部分調(diào)音,一部分EQ都在這里完成。
還有一個(gè)很重要的地方是電路設(shè)計(jì),我拆開(kāi)過(guò)國(guó)產(chǎn)平板,真是慘不忍睹,一塌糊涂。mp3的電路設(shè)計(jì)很大程度上也決定了他的素質(zhì)和續(xù)航(電源管理),電路走向,電容的質(zhì)量都至關(guān)重要,這也是sony,創(chuàng)新機(jī)子能夠如此牛逼的一個(gè)原因,看看njb里面密密麻麻的電容,再看看國(guó)產(chǎn)的,嘖嘖,用料就不是一個(gè)級(jí)別啊。
最后介紹一下隨身播放器調(diào)音和EQ。我認(rèn)為調(diào)音和EQ幾乎沒(méi)有的就是所謂的錄音筆,這是高素質(zhì)的代表,完全靠強(qiáng)大的電路和元件把回放做到了極致。
調(diào)音過(guò)程不僅僅是模擬放大電路的功勞,DSP處理過(guò)程中就已經(jīng)開(kāi)始參與調(diào)音了。
EQ分為兩種,通俗來(lái)講就是硬件EQ和軟件EQ,在隨身里,前者往往是被植入到DAC芯片中的,歐勝的CODEC,比如WM8750、8970等,都有這個(gè)功能的。軟件EQ就非常常見(jiàn)了,什么BBE,SRS之類(lèi)的算是比較高級(jí)的,簡(jiǎn)單的自定義EQ也是軟EQ,這些EQ通過(guò)DSP運(yùn)算,對(duì)音頻數(shù)字信號(hào)進(jìn)行簡(jiǎn)單或者復(fù)雜的處理來(lái)實(shí)現(xiàn)調(diào)音。
Po口一定可以實(shí)現(xiàn)EQ,而Lo口則不一定(新款一般都有),T51和艾利和的H120等,EQ改變,LO輸出的聲音也會(huì)改變。而老款的sony HD5在這方便做了優(yōu)化,在采用LO輸出的時(shí)候,EQ被強(qiáng)制使用了“正?!倍也荒芨?。
總之在播放器中的各個(gè)環(huán)節(jié)都遵循木桶原理,任何一方面偷工減料都將直接影響到最終聲音的輸出。盡情佩服那些設(shè)計(jì)出好聲播放器的設(shè)計(jì)者吧,好的聲音一定需要技術(shù)的沉淀與積累!