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

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

版主: DearHoney

Percy
初學者
文章: 14
註冊時間: 2006-03-18 11:12

文章 Percy »

bennetng 寫:但你說「將OUTPUT 改為Kernel streaming,照理說繞過Kernal mixer後,取樣率品質的調整不應該再造成影響,但結果卻仍有影響」這情況是不是也影響到 48k 的聲音? 如果是的話就很可惜了, 因為那只是 [任何音效檔 (包括 48k)]-->[48k SSRC]-->[驅動層 SRC]-->[輸出].........結果還是受污染吧, 加個 ssrc 除了浪費 cpu time 外根本沒有好處

耳測充其量只可量度 src 的好壞, 而不能證明有無 src, 要證明有無 src 需要用其他方法
同意您的說法,就算將48000hz的pcm流交給這張卡的驅動,仍會經過它的src的處理,並無法略過,這就是大部分音效卡的通病吧!

不過既然它的SRC在耳聽可接受的範圍內,我決定接受您的建議,把ssrc關閉了.

感謝前輩的熱心指導!! [b05]
SamLin
大師
文章: 91
註冊時間: 2001-01-05 08:00
來自: 楓之國度

文章 SamLin »

Percy 寫: 同意您的說法,就算將48000hz的pcm流交給這張卡的驅動,仍會經過它的src的處理,並無法略過,這就是大部分音效卡的通病吧!

不過既然它的SRC在耳聽可接受的範圍內,我決定接受您的建議,把ssrc關閉了.

感謝前輩的熱心指導!! [b05]
可以看看DH站大之前測的RMAA資料庫
Vibra128 44KHZ跟48KHZ之間的差距
至少48KHZ的頻響好多了,聽音樂的話還是開SSRC吧
Percy
初學者
文章: 14
註冊時間: 2006-03-18 11:12

文章 Percy »

SamLin 寫:
Percy 寫: 同意您的說法,就算將48000hz的pcm流交給這張卡的驅動,仍會經過它的src的處理,並無法略過,這就是大部分音效卡的通病吧!

不過既然它的SRC在耳聽可接受的範圍內,我決定接受您的建議,把ssrc關閉了.

感謝前輩的熱心指導!! [b05]
可以看看DH站大之前測的RMAA資料庫
Vibra128 44KHZ跟48KHZ之間的差距
至少48KHZ的頻響好多了,聽音樂的話還是開SSRC吧
也許是WDM驅動架構較差,現在我測起來這張卡44100和48000已經是半斤八兩,與Win98用VxD驅動時不能比了....殘念
附加檔案
RightMark Audio Analyzer test comparison.rar
(45.2 KiB) 已下載 206 次
SamLin
大師
文章: 91
註冊時間: 2001-01-05 08:00
來自: 楓之國度

文章 SamLin »

Percy 寫:也許是WDM驅動架構較差,現在我測起來這張卡44100和48000已經是半斤八兩,與Win98用VxD驅動時不能比了....殘念
以前有一篇BL大測的vibra128的RMAA成績
可惜現在圖都已經沒辦法看了...經過測試
2065版的驅動是wdm下比較好的選擇
或許您可以試試看
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

Percy 兄你現在用的 driver 應該是有 bug 才會在 48k 也 src 吧, 也許 DH站長和 BL兄用的才是比較正常的 driver

MSDN 的文章解釋了 kmixer 及其 src 的一些運作原則, 雖然 vibra 128 也許不是用 kmixer 做 src 但也可參考看看

http://msdn.microsoft.com/library/en-us ... 6e.xml.asp
Percy
初學者
文章: 14
註冊時間: 2006-03-18 11:12

文章 Percy »

十分感謝bennetng兄,這篇技術文章講的相當清楚,令我豁然開朗,
現在我大概了解(以這篇文章加上之前的經驗):

1.wave out和direct sound都會過Kmixer做混音,再交給音效driver, direct sounds能指定音量,而waveout不能

2.當kmixer必須做src時,它才會做,例如音頻流取樣率超過音效driver可接受的範圍,或是有多個取樣率不同的音頻流必須混音的時候

3.directsound若開啟硬體加速,且音效驅動尚有剩餘的加速通道,且音頻流格式在音效卡驅動可接受的範圍,則這個音頻流就可直接送至音效卡驅動作硬體混音,而不必經過Kmixer

4.KS可將音頻流直接送至音效卡驅動而不過kmixer,因此用KS送出音效卡驅動無法處理的音頻流時(如取樣率過高),會出現錯誤訊息

另外,我用的驅動正是2065版的驅動,不知為何測出來與前輩結果不同?
附加檔案
rmaa results.rar
(62.24 KiB) 已下載 222 次
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

你的錄音方式是類比自錄 (line-out>line-in) 還是數位內錄? 看起來像是類比自錄吧!

DH 和 BL 應該是用一些高質錄音卡去做類比錄音, 但你只是用 vibra 128 去錄吧, 當然有差, 也許差的其實是 line-in 也說不定, 這樣的話 line-out 怎樣好也測不出了

看圖的話我的 sblive + kx driver 類比自錄都已經比你好了
http://www.geocities.co.jp/anothergs/kX ... 0_Rear.htm

src 造成的是數位失真, 比較適合用數位內錄去測

看看 sblive + kx driver 數位內錄的成績...
http://www.geocities.co.jp/anothergs/kX ... Dither.htm

==========
或者試試 asio4all 如何? 雖然有些人說根本沒用, 但試試也無害吧, 反正每個人用的軟硬體/driver 不盡相同, 不能一概而論, 我自己就未用過, 因為我的所有音效裝置本身已經有 asio driver
頭像
hclin
大師
文章: 168
註冊時間: 2003-03-21 19:01
來自: Taipei City
聯繫:

文章 hclin »

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

手上有flac音樂檔,和udial
原本udial.wav一直有誇張明顯、不能接受的瑕玼
但flac音樂檔我一直覺得效果很好
這樣的結果並不合理

udial的測試結果很混雜,我在某個條件下,甚至有開PPHS還比不開時的瑕玼大
最後的測試結果是:
Windows的主音量不能調到最大
同時foobar2000的音量也不行
這兩點都做到後,才避免了之前很離譜的瑕玼
想必是clipping的影響
(也想試試能不能從replay gain或limiter下手)
避開clipping的干擾後,才能好好的測試SRC的效果呀

也許大家可以幫自己的音效卡翻案看看

udial這個檔案有必要重新產生嗎?
Sennheiser HD 650
foobar2000
E-MU 1212m -> KECES DAC1739 -> KECES HA-711(OPA2132PA)
純銀KingCable IC PC
fullcity數位線
兩隻會動的耳朵
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) 已下載 265 次
Image.png
Image.png (14.64 KiB) 已瀏覽 5498 次
最後由 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) 已瀏覽 5495 次
src 後
src 後
after.png (47.4 KiB) 已瀏覽 5496 次
squaresweep.rar
測試檔
(112 KiB) 已下載 213 次
回覆文章