Re: [討論] Dither (in數位音訊)
※ 引述《exFREEzy (~RadicalDreamer~)》之銘言:
: Dither 果然是好主題 這篇作為延伸閱讀和總結
: (沒意外的話 往後延伸閱讀 都是分享相關的英文資訊
: 有養分的中文資訊 會作節錄後排版轉貼至看板文章中)
: 一樣先從 teamJDK 的「看圖理解音訊 dither」節錄出來
: ---------------------------------------
: 這個網頁有各家 dither 技術的比較,包括 SONY 的 SBM
: http://audio.rightmark.org/lukin/dither/dither.htm
: 以上是很簡單的介紹,對詳細原理有興趣的人請看
: (連結失效)http://www.glowingcoast.co.uk/audio/theory/dither/
: ---------------------------------------
: 另外是相關不錯的網頁連結
: http://en.wikipedia.org/wiki/Dithering#Digital_audio
: What is Dither? http://www.hifi-writer.com/he/dvdaudio/dither.htm
: Q&A http://www.earlevel.com/Digital%20Audio/Dither.html
: http://www.digido.com/bob-katz/dither.html
: 我想再列下去…我自己也看煩了這樣 o(一︿一+)o
: 關於 Dither 總結幾句話:
: 在以類比音樂為比較對象的前提下
: 基本上 Dither 對於數位音訊 在聽感上會比較有幫助
: 至少從科學角度上來說 應該是成功地欺騙大腦了
: 但換個講法
: Dither 如此『加料』的作法
: 即使聲明是 隨機方式 加入 white noise 白噪音
: 但這種模糊聽感的手法 有些人還是不太能接受
: 不啟用 Dither 能節省不少 CPU 運算
: 我想對我來說這是最大的好處
: 各位可以比較看看
: 有無 Dither 開啟時的 CPU 使用程度 :)
: 網路討論中有看到對於數位音訊更深入的 Dither 比較
: 像是對於 Lossy v.s. Lossless 的影響
: (有損破壞性壓縮) (無損壓縮格式)
針對這裡來回一下好了,其實簡單的說,dither最實用的地方在於,
當因為一些原因,要將一串高精度(譬如24bit)的音訊流(audio stream)
down到低精度格式來播放(譬如16bit最常見)時.原本最簡單的做法就是,
砍掉第17-24bit的資料,例如101110101110010101011101,把他砍成
101110101110010101
就變成16bit了,但是相對的16bit以上所保留的資訊也會被犧牲掉,所以這
是最粗糙的方式,一般也不會這樣幹.此時就可以使用dither,透過在高頻段
參入雜訊的方式,可以讓一些高位元精度的資訊down到低位元精度.如此在
降轉之後能保留更多的有效資訊.日本JVC公司有名的K2編碼器也是利用這
樣的原理,透過dither將原始母帶高於16bit的資訊儘量多的down進16bit
的標準CD用pcm格式,所以他家才會以20bit/24bit作為行銷口號,最後產生
集大成(JVC龜毛技術大成XD)的XRCD.
所以,相較於在不改變格式的情況下,加入dither好還是不好,這個有爭議的問題.
在非降轉不可的情況下,使用適當的dither方式來保留高精度的音樂資訊應該確
實會是比較好的方式.
回到lossy vs lossless的播放這邊,播放這兩種不同類型的檔案,在位元深度上
(bit depth)會有一些不同.lossless因為是數學上的無損,所以解碼後會得到和
原始音樂檔案(CD是44.1/16bit的wave檔)相同的data,此時加入dither就變成
"在不改變格式的情況下,加入dither好還是不好?" 這樣的情況,因此不太推薦.
但是對於lossy(mp3 mpc ogg...etc)檔案,由於他們的編碼方式和pcm不同,是先
將音樂轉換成各種不同頻率的波形組合後,再根據各自的模型刪除高頻與低頻.
因此他們會造成波形的失真,解碼後的結果雖然一樣是pcm格式,但卻很可能出現
高於16bit的結果(用個很爛的例子,我現在有10跟15兩筆資料,但是我現在想縮減
成一個,所以我把他們做平均,得到新資料12.5,此時雖然資料少了一半,但是需要
的位元深度卻增加了,當然我可以直接再砍掉0.5變成12就好,不過顯然這又是一次
失真的來源),此時我們就必須決定,留不留下這些高於16bit的數據.foobar內部的
運算精度是64bit,所以如果我們決定保留的話,foobar是沒有任何問題的,它最高支
援32bit的資料輸出.但是問題會出在你後端的音效裝置,一般的音效卡,他可能只支
援最標準的44.1/16bit,這表示即使您透過foobar send 32bit的資料給音效卡,他
也會自己砍掉後面多出來的16bit,這樣的話,一開始就在foobar的playback那裡設定
成16bit輸出並加上dither會是比較好的方法.再來我們考慮音效卡支援24/96的d/a
解碼,理論上,這時候就應該直接丟32bit資料讓音效卡處理(foobar的dither只能在
16bit以下使用),但是這時候還有一個問題,就是音效卡能讓24bit的資訊發揮多少.
這個部分比較難解釋,比較簡單的說法是,越高精度的d/a解碼,在音響工程上的難度就
越高,這很直關也很好理解,所以即時我們給他send了高精度資料,他也receive了沒問
題,但能發揮多少就是一個很大的問題,所以這時候是不是乾脆先用dither降轉,直接
給他16bit的資料(16bit的解碼一來難度較低 二來技術成熟多了),反而會有更好的效
果也不一定.
所以結論出來了,如果你只聽無損,那dither沒有打開的意義,如果你常聽lossy檔案,
那很可能你要自己玩看看,打開/關掉dither試試.如果聽不出來,那就別開吧,省點運
算資源.
再補充一下,有些音效卡標示著大大的"24/96" "24/192",但是那很多時候是指主I/O
晶片(via的envy24 emu的xxxx等)有支援24/96 24/192的i/o,能不能支援24bit的解碼
還得看他上面的da chip.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.78.194
推
04/21 16:12, , 1F
04/21 16:12, 1F
推
04/21 16:12, , 2F
04/21 16:12, 2F
推
04/21 16:13, , 3F
04/21 16:13, 3F
推
04/21 16:13, , 4F
04/21 16:13, 4F
推
04/21 16:13, , 5F
04/21 16:13, 5F
推
04/21 16:13, , 6F
04/21 16:13, 6F
推
04/21 16:13, , 7F
04/21 16:13, 7F
推
04/21 16:13, , 8F
04/21 16:13, 8F
推
04/21 16:13, , 9F
04/21 16:13, 9F
推
04/21 16:13, , 10F
04/21 16:13, 10F
討論串 (同標題文章)
AudioPlayer 近期熱門文章
PTT數位生活區 即時熱門文章