簡易測試SRC優劣的方法- udial.wav

討論MP3、WAV、MIDI、WMA甚至其他數位音訊的播放、製作、轉換等。

版主: DearHoney

bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

用 limiter 是不能根治 clipping 的, limiter 只不過是將 clipping 所造成的失真柔化而已, 用 replaygain 和 foobar 內的 volume control 把音量降低才是杜絕 clipping 的方法。

而聲音離開了 foobar 後才修改音量是無用的 (即 windows 音量控制), 因為要 clip 的一早已經 clip 了, 而且視乎音效卡 driver 和硬體的質素, 把 windows 音量控制調得太低還可能會增加失真。

音訊用的 resampler 目標是讓頻譜在 src 前和 src 後盡量做到一樣, 而不會理會 src 前後的波形峰值是否一樣, 所以我上一頁早已經說過 udial.wav 的音量太接近 0dB (是 -0.02dB), 所以會出現雜音也不一定和 src 品質差有關

之前稍為有用過 foobar 0.9.3, 但發現了他沒有 show clipping warnings 的功能, 而 volume control 亦不在 DSP 插件之列, 而是已經內建了。

foobar 的 replaygain 和 volume control 有什麼分別和關係? 它的流程見圖 (0.8.3)

replaygain 是放在 DSP 之前, 而 resampler 和 volume control 是 DSP 插件, 即音訊會先經過 replaygain 然後才過 resampler 和 volume control。所以即使在經過 replaygain 時沒有偵測到 clipping, 但在經過屬於 DSP 插件的 resampler 處理時, clipping 又可能會再次出現。而把 volume control 放在 DSP 裡則可防止 replaygain 偵測不到的 clipping 出現。

試試附件裡的 clip.wav (注意大音量), 它的音量要衰減至少 11.5 至 12dB 才不會破音, 基本上用家可以用 foobar 的 volume control 或/和 replaygain 做衰減, 總之衰減的總和有 11.5dB 以上就可以, 例如 replaygain -7dB, volume control -5dB。但如果不在 foobar 衰減音量, 輸出到 windows mixer 才衰減的話就已經沒用了, 因為即使衰減了, 破音仍然存在。這是因為 foobar 是內部 floating point 運算的, floating point 可防止 clipping 出現, 但一離開 foobar 後, 它就是 fixed point 了, fixed point 是無法防止破音的。因為音效卡接受的都是 fixed point 格式, 所以新版 foobar 都沒有把 floating point 格式列出來了。

如果有細心留意 clip.wav 的格式的話, 會看見是 floating point, 2822kbps 的, 因為只有存成 floating point 才能把經我「惡意」增大的音量還原, 原始檔是 16-bit fixed point 的。而實際上, foobar 在播放一般 16-bit fixed point 的 CD 音訊時, 也是先轉成 64-bit floating point 才進行其他處理的。附圖裡的 convert to output data format 意思就是把 64-bit floating point 轉回音效卡可以接受的 16/24/32-bit fixed point 才送至音效卡。

建議未用過, 或者忘了 foobar2000 0.8.3 是怎樣的人, 把 0.8.3 裝一次看看, 不是說 0.8.3 的音質或者什麼比較好, 而是有些流程和選項在新版裡已經隱藏了, 用舊版可以更了解它是怎樣運作的。想再進一步了解正確控制音量的重要性的話可 google "0dBFS+ Levels in Digital Mastering"

====================
我接著幾天都應該不能用電腦, 所以不能再回文啦!
附加檔案
clip.rar
(951.56 KiB) 已下載 241 次
Image.png
Image.png (14.64 KiB) 已瀏覽 5294 次
最後由 bennetng 於 2006-09-30 06:02 編輯,總共編輯了 1 次。
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

bennetng 寫: 音訊用的 resampler 目標是讓頻譜在 src 前和 src 後盡量做到一樣, 而不會理會 src 前後的波形峰值是否一樣, 所以我上一頁早已經說過 udial.wav 的音量太接近 0dB (是 -0.02dB), 所以會出現雜音也不一定和 src 品質差有關
如果各位有任何可以檢視波形的軟件, 把附件裡的 wav 檔 resample 一次看看就明白了。但記著波形變化的大小和音質無直接關係, 頻譜才是影響音質的直接因素, 所以不要因為有些 resampler 在處理此檔案後波形變化不及另一個大就以為某 resampler 的音質比另一個好。

另一個導致破音的因素, 是喇叭不能承受音效卡的輸出音量, 但這純粹是類比問題, 和數位無關了, 至少我用的喇叭就沒有這個問題
http://forums.dearhoney.idv.tw/viewtopic.php?t=53824
附加檔案
src 前
src 前
before.png (19.1 KiB) 已瀏覽 5291 次
src 後
src 後
after.png (47.4 KiB) 已瀏覽 5292 次
squaresweep.rar
測試檔
(112 KiB) 已下載 189 次
頭像
hclin
大師
文章: 168
註冊時間: 2003-03-21 19:01
來自: Taipei City
聯繫:

文章 hclin »

hclin 寫:我在筆電上測試(Crystal CS4281)
foobar2000 0.9.4 → Kernel Streaming

udial的測試結果很混雜,我在某個條件下,甚至有開PPHS還比不開時的瑕玼大
最後的測試結果是:
Windows的主音量不能調到最大
同時foobar2000的音量也不行
這兩點都做到後,才避免了之前很離譜的瑕玼
想必是clipping的影響
(也想試試能不能從replay gain或limiter下手)
避開clipping的干擾後,才能好好的測試SRC的效果呀
再補一些資料
Alessandro Music Series One ← Thinkpad X20 耳機孔(鍵盤上仍有一組獨立於Windows的音量控制)
Windows 2000 pro,電腦同時裝了電池和變壓器

Windows的音量控制,除了主音量外,全數靜音(包括「波形」在內)
另外,控制台中的「取樣頻率轉換品質」也在我的測試中發生效果
我剛開始測試時,並不知道我的效果沒設到最佳
設成最佳時,的確有改善

我的推測是:
Kernel Streaming在我的電腦上
是將foobar2000的音訊直接送到主音量,而不需送到「波形」的channel
「取樣頻率轉換品質」則是在主音量,或其之後發生作用
(將波形靜音並不會影響到fb2k+ks,但將主音量靜音則有影響)

避開clipping後,倒是忘了回頭再試「取樣頻率轉換品質」
電腦不在手邊,下次再來試

測試時真的是手忙腳亂
一直聽到誇張的瑕玼實在是令人緊張
一堆想法同時浮出來:要不要試這個,要不要試那個
試完以後,問題沒解決
又變成剛剛試過這個了沒,試過那個了沒
好在最後仍然能擠出一點點報告出來 [b05]
Sennheiser HD 650
foobar2000
E-MU 1212m -> KECES DAC1739 -> KECES HA-711(OPA2132PA)
純銀KingCable IC PC
fullcity數位線
兩隻會動的耳朵
回覆文章