為什麼通常的聲音格式,每個採樣點都是用整形?

聲音的能量似乎是成指數上漲的,那麼用32位浮點應當是很自然的事情,為什麼常用的格式都是每個採樣點32位整數呢?

實際上,聽很多交響樂或者鋼琴曲,都會在音量強的地方有破擦音,明顯是錄製的時候強度超出限制。要是用浮點格式應當就不會了吧?


蟹妖

首先勘一個誤,現在終端用戶用的最多的,是16位的整數,製作方用的最多的,是24位的整數。32位整數用的其實很少。另外,音量強的地方有破擦音這個問題和聲音的保存方式其實沒什麼關係。

然後,這個問題可以分解開來。 分為聲學,聽覺上的問題,和工程應用上的問題兩方面來看。

1. 聲學,聽覺上的問題,在於人能感受到多大的動態範圍。

首先,自然界的聲音,從0dBSPL開始(人能聽到的最小的音量),到85dBSPL(人能夠長時間聆聽而不影響聽力的最大音量),動態範圍大約有85dB。 儘管人實際能夠聽到超過120dBSPL的聲音,但是那種環境會迅速造成耳聾甚至致死,我們暫時不考慮。

16位整數有65536個不同的取值,動態區間是96dB。 如果能夠完全利用起來,其實已經足以滿足人類對動態範圍的需求。

當然,由於輸入的音量太小,或者製作方或者用戶對聲音進行音效處理(壓限,EQ等等),還有製作方為了在進行音效處理時不會因為偶爾產生的過大音量造成破音而留出的保留位等等,這16位的整數並沒有被完全的利用起來。極端的情況甚至只用了8,9位或者更低。這樣就會造成動態區間不足而導致細節丟失,臨場感不足等等問題。

另一方面,整數格式的數字信號處理,不可避免的會產生誤差,在只利用8,9位整數的情況下,產生1位的誤差就會產生-50dB左右的噪音,如果誤差更大,噪音就更明顯。

所以,16位整數的保存方式確實帶來了很多問題。

為了解決這個問題,聲音素材的製作方,一般使用24位的整數作為保存格式,動態區間一下子擴展到了144dB,即使之前16位時實際只使用了8,9位,現在也能有96dB以上的動態範圍,基本解決了動態不足的問題。

不過,很顯然,單純的擴張位數,只是一種指標不治本的做法,現在很多音效處理插件,會對聲音作出很大的改變,所以,在pc,mac環境下的大部分音效處理軟體,以及他們的音效處理插件,都會在內部處理中先轉化成32位或者64位的浮點數再進行處理。

所以,使用浮點格式(或者至少是24位以上的整數格式)來保存聲音素材,對於正確還原聲音動態以及減小音效處理時產生的誤差,還是十分重要的。

2. 工程應用上的問題

在前面,我已經說到了,使用浮點格式來保存音頻信號,是有實際的需要的。

那麼,為什麼我們見到的聲音文件,大多數依然是16bit的呢?

這主要是由於三個工程應用方面的問題:技術標準問題,和製造成本問題,和技術原理問題。

首先來看技術標準問題。

在當年聲音信號的保存由模擬方式轉向數字方式時,產生了兩種非常有名的數字音頻保存格式,CD-DA格式CDDA和DAT格式Digital Audio Tape。

CD-DA格式也就是CD唱片所使用的格式,是目前世界上最常見,最流行的非壓縮聲音保存格式。CD-DA格式的定義中,就規定了聲音信號必須使用16位位深,44.1kHz頻率來進行記錄。

DAT格式,是數字音頻磁帶的保存格式。標準的DAT格式,規定聲音信號需要使用16位位深,48,44.1或者32kHz頻率來進行記錄。

而之後出現的絕大多數主流的的音頻壓縮格式(mp3,aac,ac3,dts),都是以CD或者DAT級別的聲音音質為參考的原聲的。既然原聲都是16bit,作為有損壓縮的它們,自然也沒有必要使用超過16bit的保存格式。

於是,我們看到的大多數的聲音文件,就都是16bit整數了。

所以,如果需要將16bit整數變為32bit浮點數,我們首先需要一個能夠保存32bit浮點數的標準格式,其次,我們需要推廣它來讓它被大眾接受。 對於前者,儘管已經有SACD,甚至完全不同體系的DSD等高精度保存格式,但他們都沒能成為通用的業界標準,而浮點格式的WAV文件,則由於並非面向實時傳輸,也很難被廣泛使用。

另外,由於真正完全利用16bit的情況下,已經可以滿足人的需求,所以,只要製作方有實力,不偷懶,不會搞出實際只用了8.9bit的聲音文件,16bit在實際應用中並不會有太大的困擾。

再加上音頻界並沒有微軟這樣的壟斷巨頭來強行推廣版本升級,廠家和媒體都不願意多花經費來進行升級,16bit也就這樣被大家一直沿用下來了。

第二,是製造,運用成本問題

CPU或者DSP執行浮點運算的複雜度,要遠遠大於整數運算的複雜度。反映到實際的製造,運用上,就是為了實現浮點運算,你必須要買更貴,更高級的DSP,同時,還要耗更多的電。這也就限制了大多數攜帶型媒體播放器,手機等移動設備很難實現浮點格式的音效處理,聲音播放。

最後,是最關鍵的技術原理問題。

自然界並不存在數字音頻信號,要將自然界的聲音轉化為數字音頻信號(錄音)或者反過來(播放),我們還需要數模/模數轉換器(AD/DA),然而,在原理上,ADDA均只支持整數格式的數字信號。雖然不知道未來會怎樣,但至少當前,市面上沒有一款能直接支持浮點數的AD/DA存在。

也就是說,就算你用了浮點數保存,在你實際要去聽他們的時候,你還是得把浮點數轉化為整數,才能進行數模轉換,而得到揚聲器能夠播放的模擬信號。於是,浮點數的存在價值也就大大降低了。

總結,就是,浮點數作為聲音處理的中間階段的數據格式,有存在的意義,也應該存在,但是由於實際的成本問題,有時候沒有實現。而作為始點和終端(錄音後和播放前)的數據格式,它沒有什麼太大的意義。


為什麼音樂格式要使用定點?因為播放時需要用到的 DAC 只接受整形數據啊——就好像即便使用了矢量格式的圖片,你也沒法讓液晶顯示器顯示出矢量圖片投射在兩個像素之間的點一樣(最後還是得柵格化),這個是硬體限制。同樣的,如果硬體不支持的話,作為 DSD 採樣的音頻流使用電腦播放時也是需要先在軟體內轉換為 PCM 採樣才能輸出至 DAC 的。

採用浮點作為數據表達方法的好處在於進行音頻處理時,其結果會更加精確,所以專業軟體中會使用浮點數作為中間數據保存結果。這個在 @闞歐禮 老師的答案(千千靜聽、Winamp、Foobar2000 誰的音質更好?)中有詳細的論述。

但即便是使用了專業軟體,最後輸出的音頻流信息依然只能是整形。


1. 常用的格式是16bit的,不是32bit的

2. 其實也有浮點類型呀(以後可以擴展說)

3. 聽很多交響樂或者鋼琴曲,都會在音量強的地方有破擦音,明顯是錄製的時候強度超出限制。

這句話是錯的。

「音量強」有可能是動態範圍超出了16bit的精度(96dB),但很有可能也是回放系統導致的問題。

如果24bit的採樣精度,音量強到你耳朵聾都不會有破擦音。

錄製的時候超出限制,可能性微乎其微,錄音師混音的時候會注意調整的,錄出來的成品有爆音,基本上是不可能的。

你聽到的音量是有多種因素決定的,數字音頻的採樣精度影響的是聲音的動態範圍,從數字信號到你聽到的模擬信號,還會有功率放大器、喇叭等諸多因素影響,你聽到的應該破擦音很可能是功放和喇叭回放系統引入的。


主要還是硬體受限,數字(digital)的精度再高也受限於模擬(analog)設備的精度。現在好的音頻數模轉換器有130dB的動態範圍就很好了,24bit整形理論上可以表現約144dB的動態(實際可能只有120+dB),基本適用硬體的精度,沒有必要再上浮點。


第一,把模擬信號變換成數字信號的ADC只輸出整數。

第二,為了防止錄音的時候clip,一般都要留出12dB的head room,你要用16比特ADC的話就只用了11-12比特了。所以用24比特ADC或者1比特Delta-Sigma ADC會大大提高採樣的精度。

第三,錄音採集取樣的數據格式跟後續編輯製作期間的格式並不需要保持一致。在製作過程中使用32位浮點格式什麼的都很正常,盡最大可能保留原始素材數據的精度,並給各種數據運算留下計算的餘量和空間。

第四,最後製作完了,再搞一次歸一化,把最高電平調整到0dBFS,也就是把32位浮點數映射變換成16比特整數,拿去出版CD即可。


聲音最初的介面是通過ADC進來的。ADC是在一個非常小的時間間隔里,採樣聲強,然後用這種方式把這個聲音的波形拼出來。ADC輸出一般是16bits.18bits,24bits,它本身就是個整數。


repost from audiofamily

- 目前最理想的解決方案就是使用32位浮點運算格式的音頻格式(最先由SonicFoundry制定). 這種格式並不是說採樣是32位的, 而是指內部運算是32位浮點的. 這種格式可以完美記錄下任何一個採樣點, 一旦CLIP也不做任何削波處理, 而是記錄下CLIP數據在0dB以上的真實情況並且保留下來.

  - 儘管32位浮點運算格式的音頻數據在電平大於0dB時候也會顯示Clip. 但此時僅僅是提醒你有波形大於0dB了. 由於多數情況下我們不會將32位浮點運算格式的音頻數據做為最終產品, 所以clip問題總是要解決的. 由於0dB以上的採樣點沒有被破壞, 所以只要簡單地使用壓縮,EQ等簡單手段就可以保證最終產品不會有clip.

  - 32位浮點運算格式的音頻數據,其真實採樣深度由你的硬體設置決定的!!!!!!! 所以它並不會象24bit錄音那樣得到比16bit錄音更好的質量.

  - 32位浮點運算格式的音頻數據會要求更多硬碟空間


現在音頻ADC最強的SFDR不過132dB,省省吧,這樣的SFDR,24bit足夠表達所有它能夠測量的信號大小了。


推薦閱讀:

如何搭配萬元以下麥克風與音效卡做唱歌錄音與樂器錄音用?
Steinberg ur242和Focusrite 2i4 哪個音效卡好呢??
iPhone在使用內置播放器原裝耳機的情況下,有沒有必要聽無損音樂?
索尼在音頻(特指耳機)方面的實力如何?與森海塞爾、AKG、鐵三角等品牌是否有差距?
Adobe Audition有什麼技巧讓你相見恨晚?

TAG:多媒體 | 數字信號處理 | 音頻 |