音效卡輸出音質測試計畫

音效卡的問題在此討論。

版主: DearHoney

TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

有一點我搞不太懂,SRC 的步驟是在哪一個部分完成的?
作業系統?(軟體)
音效晶片?
還是 Codec?
DearHoney
神人
文章: 6487
註冊時間: 2001-01-03 08:00
聯繫:

文章 DearHoney »

AC97 的音效卡,CODEC 比較不太會去做 SRC 的事情,因為進出都是 48k 的資料。音效晶片與軟體甚至作業系統都可以負責 SRC,看廠商替音效卡規劃的架構囉!
TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

感謝站長的回答。
想了一下,Codec 上面應該是需要一個 SRC,因為 AC'97 限制,AC'97 Codec 和 AC'97 Controller 之間,只能以 48k 傳送訊號,所以對於數位輸入,必須要有一個 SRC 來將所有數位輸入的訊號轉成 48k,這樣在傳送給音效晶片時才不會有問題。
(好像曾看過這樣的資料,就算以 48k 數位輸入,還是會過 SRC,resample 成 96k,再轉回 48k)

作業系統這邊,也應該會有一個 SRC,像使用 DirectSound,因為要混合多個 wave 檔,所以所有 wave 在混音前必須先轉成同樣的取樣頻率(48k?),再以 32bit 混音。如果這個動作可以交給音效晶片去作,那麼就有可能使用音效晶片硬體的 SRC?

OS -->(SRC) Sound Chip (48k)<------>(48k) Codec (SRC)<-- Digital Input
////////////////////////////AC Link///////////////////////////////////

不知道我這樣想對不對?

因為對於換不同的驅動程式會對音質有影響感到疑惑,如果是因為軟體 SRC 的關係也許可以解釋,不過不知有無方法可以證明...

如果播放 48k 的 wave,應該就不會再過 OS/Sound Chip 的 SRC 了吧?
因為 APS 的說明書中說 EMU10K1 音效晶片內部純以 48k 運作,所以建議使用者先用軟體將所有要處理的 wave 轉成 48k(還附了一個 SRC 的程式),所以我想播放 48k wave 傳給 EMU10K1 應該就不會經過 SRC 了吧,否則叫使用者先轉就沒有意義了呀。

所以我作了一個實驗,用 Cool Edit 作了一個數位靜音的 wave,播放,然後以 48k 錄 wave in,把數位訊號錄回來,結果可以得到完美的數位靜音。(如果是以 44k 錄音,則會產生許多雜訊,相信是因為 SRC 的關係)
為了作對照組,我將原始的數位靜音用 Cool Edit upsampling 到 96k(品質最高),再轉回 48k(模擬 SRC 的動作),結果也產生了許多雜訊。\r
所以以 48k 播放時,是不會過 OS/Sound Chip 的 SRC 的。
(雖然改測試 1k sine wave 錄進來的訊號會和原始不同,不過那是因為即使我將錄音的 level 調到最高,錄進來的聲音還是較原始訊號小一點,音量經過衰減,所以才產生的不同)

這樣的話不妨測試不同驅動程式播放同一個 48k wave 的音質表現,如果兩個不同驅動程式播放 44k 表現有差,但是播放 48k 則表現接近,則可以證明不同驅動程式的音質差異是在 SRC 身上。若是兩者播放同一個 48k wave 表現還是有差,那.... 就得再想想其他會造成音質差異的理由了 [b13]
DearHoney
神人
文章: 6487
註冊時間: 2001-01-03 08:00
聯繫:

文章 DearHoney »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>想了一下,Codec 上面應該是需要一個 SRC,因為 AC'97 限制,AC'97 Codec 和 AC'97 Controller 之間,只能以 48k 傳送訊號,所以對於數位輸入,必須要有一個 SRC 來將所有數位輸入的訊號轉成 48k</FONT><!-- BBCode Quote End -->

喔不,數位輸入是不需要經過 CODEC 的,通常都是直接進入音效晶片的,專業音效卡會安排 Digital Input Buffer 原件,再進入音效晶片,我們見過的清一色都是 Crystal CS84XX 的產品,連 SB Live!/Audigy 在用的 Drive 都有安排這樣的零件在裡面,ONKYO SE-120PCI 也有。不過絕大部分的娛樂音效卡本身是不會這樣處理的,成本高且不實用,數位訊號都是直接進入音效晶片的。

CODEC 之意,乃是 Coder/Decoder,也可以看成是 ADC/DAC,是用來將數位與類比訊號相互轉換之用,但是沒有負責數位訊號的接收。

您另外對於 48k 數位訊號資訊很寶貴也很重要,謝謝。 :)
TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

喔!感謝站長的解說,原來 Codec 是不負責數位訊號的接收的,果然我胡思亂想想錯了。難怪總覺得用上兩個 SRC,音效晶片和 Codec 各一組,這種設計非常奇怪 [b05]
(結果是我自己搞錯了....)

謝謝站長快速的答覆 :)
JamesT
神人
文章: 1347
註冊時間: 2001-01-04 08:00

文章 JamesT »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>
如果播放 48k 的 wave,應該就不會再過 OS/Sound Chip 的 SRC 了吧?
因為 APS 的說明書中說 EMU10K1 音效晶片內部純以 48k 運作,所以建議使用者先用軟體將所有要處理的 wave 轉成 48k(還附了一個 SRC 的程式),所以我想播放 48k wave 傳給 EMU10K1 應該就不會經過 SRC 了吧,否則叫使用者先轉就沒有意義了呀。

所以我作了一個實驗,用 Cool Edit 作了一個數位靜音的 wave,播放,然後以 48k 錄 wave in,把數位訊號錄回來,結果可以得到完美的數位靜音。(如果是以 44k 錄音,則會產生許多雜訊,相信是因為 SRC 的關係)
為了作對照組,我將原始的數位靜音用 Cool Edit upsampling 到 96k(品質最高),再轉回 48k(模擬 SRC 的動作),結果也產生了許多雜訊。\r
所以以 48k 播放時,是不會過 OS/Sound Chip 的 SRC 的。
(雖然改測試 1k sine wave 錄進來的訊號會和原始不同,不過那是因為即使我將錄音的 level 調到最高,錄進來的聲音還是較原始訊號小一點,音量經過衰減,所以才產生的不同)
</FONT><!-- BBCode Quote End -->
錯了。

即使是 48K 的訊號, 在 EMU10K1 還是會過 SRC resample。請看 http://www.ne.jp/asahi/fa/efu/fsconv/fsconv_3.html

叫使用者先轉成 48K 為何沒有意義? 當然還是有意義, 因為 44K 轉 48K 太差了, 48K 轉 48K 還算可接受。

另外你所做的 SRC 實驗 ( 所謂「模擬 SRC 的動作」) 並不具代表性, 充其量只是顯示了 Cool Edit 的性能。SRC 優劣差很多, 而且有許多不同的參數加以評量。\n<!-- Edit Notice Start -->

<font size=-1>[ 這篇文章在 2002-01-04 21:22 被 JamesT 編輯過 ]</font><!-- Edit Notice End -->
DearHoney
神人
文章: 6487
註冊時間: 2001-01-03 08:00
聯繫:

文章 DearHoney »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>另外你所做的 SRC 實驗 ( 所謂「模擬 SRC 的動作」) 並不具代表性, 充其量只是顯示了 Cool Edit 的性能。SRC 優劣差很多, 而且有許多不同的參數加以評量。</FONT><!-- BBCode Quote End -->

JamesT 啊..... 多給人家一點鼓勵吧..... [b07] 我覺得你最近的文章都好冷酷..... [b12] 網友有這樣的實驗精神,不是盲目的接受我們餵給他們的資料,這真的很值得鼓勵啊!就算是有什麼觀念不對或是綜合出了錯誤的結論,其實也沒什麼關係啊!大家在錯誤中學習到的經驗往往印象深刻,也更能釐清事情的真相,而且這邊有很多高手,有什麼錯誤的東西應該很快就能被指出來,我相信在這邊對一些東西實驗一番,會幫助大家成長的。
JamesT
神人
文章: 1347
註冊時間: 2001-01-04 08:00

文章 JamesT »

了解!

真是對不起! 對不起! [XD]
TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>
了解!

真是對不起! 對不起! [XD]
</FONT><!-- BBCode Quote End -->
呃,不會,沒關係啦,有批評才有進步 :)
非常感謝提供網頁資訊,

看網頁上的測試,作者是先將原始訊號數位輸出給 DAT,再輸入給能正確錄進數位訊號的音效卡(作者是用 DAL Digital Only CardD 這張卡)作測試。(我覺得有點奇怪,為什麼不直接輸出給 DAL 錄音就好了,還要經過 DAT 這道手續?不曉得是什麼原因)
(我因為沒有專業的音效卡,所以只能用錄自己的 wave in 作測試 [b10]

看網頁最下方的圖(最後兩排的圖),48khz --> 48khz,和原始圖形可以說是非常地相像。(不過還是不一樣)
尤其是第一張 1khz sine wave,差異非常的小,作者下方的文字說明是:「48khz 的場合,圖形看起來非常近似(只是音量大小的差異?)」
根據我自己測試,Live! 錄自己的 wave in 時,音量會比原始訊號小一點(前面有提到),所以測試 1khz sine wave 時,波形會和原始訊號有些不同,這種不同在頻譜上看起來,就是雜訊量會增加。(可以用 Cool Edit 調整 Amplitude 來模擬,將一個 wave 檔降低 3dB 的音量,雜訊會明顯增加。音量大小的改變看起來是非線性的,不論是放大或縮小音量,都會對原始 wave 的頻譜造成改變。雖然這種改變微乎其微,人耳大概是聽不出來)

所以從網頁上的圖看起來,我還是很難判斷 48khz --> 48khz 的差異,到底是經過 SRC,還是只是音量大小些微的改變?
(如果作者附的圖,縱座標的 dB 值範圍能夠設成 160dB 就好了,經過 SRC 的話很明顯,幾乎全頻帶都有極低音量的雜訊顯示,和降低些微音量後的雜訊分佈有明顯不同。)

還有在純數位領域如果要對 48khz 再 resample 成 48khz 的話,要怎麼 resample?
(再 resample 一次不是還是一樣?)
(用 Cool Edit 模擬的話,開啟 48khz 的 wave,Adjust Sample Rate 還是選 48khz,按下轉換後,轉換速度非常快,看起來是根本沒有轉換 :P 。將這個轉換後的 wave 存檔,作分析,可以發現這是和原來一模一樣的 wave。)
所以我能夠想像的就是,可能先整數倍轉換成 96khz,再轉回 48khz。不過作這樣的轉換非常的奇怪而不自然,根本是多此一舉(而且會對音質造成破壞),所以我才會懷疑,真的是這樣嗎?

以上是我的推論,如果哪裡有錯誤請不吝指正 :o
TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

呼~~花了一個晚上翻了一遍站上的討論區和說明文件,原來我上面說的東西早就已經有討論了... [b12]
(原諒我,這個站東西實在太多,看不完 [b13]

首先非常抱歉,我上面說 SB Live! 錄 wave in 總是比較小聲,這是錯的,其實是可以調成相等,甚至是比較大聲,我原來的操作不當,結果搞錯了,真是非常抱歉。
因為我已經改動過錄音的 Level 了,現在調不回去,怎麼調都是可以很逼近相等,但是還是不太相等,我又不知道要改哪裡的登錄資訊才能使錄音的 Level 回復到 0dB,所以所做的測試會有誤差。

下面把圖貼上來:
原始數位靜音訊號
圖檔
SB Live! 播放的同時用 44khz 錄 wave in 錄回來
圖檔
有雜訊,相信是因為 SRC 的緣故。

SB Live! 播放的同時用 48khz 錄 wave in 錄回來
圖檔
是完美的數位靜音。

因為 Cool Edit 作 48khz --> 48khz resample(重新取樣)時似乎是沒有動作,resample 之後的 wave 檔還是和原來一模一樣。其他我也找不到能作 48khz 對 48khz 轉換的軟體,所以無法作 48khz --> 48khz 轉換的模擬。
假設 SRC 是作 48khz --> 96khz --> 48khz 這樣的處理,則用 Cool Edit 開最高的品質轉換模擬
圖檔
即使是數位靜音,經過這樣轉換,還是會有極細微的雜音產生,而不會是原來的數位靜音。

原始 23khz sine wave -15dB
圖檔
音量降低 1dB
圖檔
SB Live! 播放的同時用 48khz 錄 wave in 錄回來
圖檔
Cool Edit 48-96-48 轉換
圖檔

因為我改動了錄音的 Level,結果發生以下悽慘的事件:
把這個 23khz sine wave 的音量拉高到 0dB 呢?
原始 23khz sine wave 0dB
圖檔
SB Live! 播放的同時用 48khz 錄 wave in 錄回來
圖檔
非常悽慘。

Cool Edit 48-96-48 轉換
圖檔
沒有 SB Live! 所發生的嚴重奇次諧波失真的現象。

我觀察了一下錄進來的波形,結果..
原始 23khz sine wave 的波形
圖檔
SB Live! 播放的同時用 48khz 錄 wave in 錄回來的波形
圖檔
很明顯的,波形被切割了,綠色的面積變得比較小,sample 只到 +/- 30000 附近。
放大圖:
圖檔
可以看到波形的頂端已經被 Cilp(切截)掉了,變得平坦,而不是原來 sine 波形的曲線。
和原始波形放大圖的比較:
圖檔
所以那個 wave in 的錄音音量沒事不要去動他比較好(如果預設值是 +/-0dB 的話)...嗚嗚~我改不回來了...
回覆文章