音效卡輸出音質測試計畫

音效卡的問題在此討論。

版主: DearHoney

JamesT
神人
文章: 1347
註冊時間: 2001-01-04 08:00

文章 JamesT »

to TMNEXT

首先我必須說一下, 你的實驗確實不夠嚴謹, 你沒有先假設, 沒有先推論, 然後以觀察實驗結果來取得答案, 這是錯誤的實驗方法。

接下來要對你的實驗的缺點加以說明。

首先, 用接近 1/2 fs ( sample frequency ) 的訊號來做這些實驗是不明智的。任何這方面的數位運算, 若 complexity 在 O(n), 則到 0.45 fs 的時候都已經快不行了。23/48~0.48, 這樣做出來是不具代表性的。

第二, 48-96-48 是不能代表 SRC 的。試問 96 如何轉 44.1。基本上 SRC 概略的運作方法是用 O(n) 的做法來做很高倍的插補 ( ex: 128倍 ) 而後重取。概念上 O(n) 的插補可以想見其效果必然是滿不理想的, 因為 FFT 的 complexity 是 n 的二點多次方, 不過藉由種種 trick, 結果總是還不錯。像 CoolEdit 這樣一個音效編輯軟體, 實在無法模擬 SRC。因為用 CoolEdit 跑 48-96-48 的過程其實是 48-SRC-96-SRC-48。而且 SRC 演算法太多種, 尤其是 O(n) 的, 更不知道它用了什麼 trick。

硬體 SRC 當遇到同頻輸入輸出時, 會不會做 resample, 不一定, 看它設計。也許你覺得不 resample 才合理, 但是有時候這要增加成本。因為它還要多一道 feedback 來控制, 然後還要多一些 comparator 之類的 ( 簡而言之它要「看懂」你的來源頻率 )。然後它還要多一條路讓你 bypass ( 否則它的 SRC 又要設計得更加複雜 )。

如果你用 CoolEdit 來想像 SRC, 那就很難體會了。CoolEdit 如果你要它同頻轉同頻, 它只消幾行 if 的程式便看懂你在做無意義的事, 但硬體的 SRC 不是這樣。
TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>
to TMNEXT

首先我必須說一下, 你的實驗確實不夠嚴謹, 你沒有先假設, 沒有先推論, 然後以觀察實驗結果來取得答案, 這是錯誤的實驗方法。
</FONT><!-- BBCode Quote End -->
[b05]
我在想的時候,確實不是很嚴謹,有很多只是猜測... [b12]
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
接下來要對你的實驗的缺點加以說明。

首先, 用接近 1/2 fs ( sample frequency ) 的訊號來做這些實驗是不明智的。任何這方面的數位運算, 若 complexity 在 O(n), 則到 0.45 fs 的時候都已經快不行了。23/48~0.48, 這樣做出來是不具代表性的。
</FONT><!-- BBCode Quote End -->
是因為會失真嗎?
其實我原來是用 1khz 作的實驗,後來才想到試試看 23khz,本來是希望 SRC 會因此發生嚴重的失真,藉此凸顯、確認,的確是有經過 SRC,要不看圖形我真的分辨不出來那是不是音量差異所造成的結果。
不過我失望了,23khz 和 1khz 作出來的圖形"巨觀"看起來差不多,還是無法分辨是否經過 SRC 的作用。
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
第二, 48-96-48 是不能代表 SRC 的。試問 96 如何轉 44.1。基本上 SRC 概略的運作方法是用 O(n) 的做法來做很高倍的插補 ( ex: 128倍 ) 而後重取。概念上 O(n) 的插補可以想見其效果必然是滿不理想的, 因為 FFT 的 complexity 是 n 的二點多次方, 不過藉由種種 trick, 結果總是還不錯。像 CoolEdit 這樣一個音效編輯軟體, 實在無法模擬 SRC。因為用 CoolEdit 跑 48-96-48 的過程其實是 48-SRC-96-SRC-48。而且 SRC 演算法太多種, 尤其是 O(n) 的, 更不知道它用了什麼 trick。
</FONT><!-- BBCode Quote End -->
努力看了好久,好像看懂了一點點 :P
感謝您說明 SRC 的運作方式。
會想到用 48-96-48 來模擬,是因為以前看過的 Codec 說明文件,提到 48k 輸入時,SRC 會作這樣的動作。不過我看的只是表面的文字說明,實際上是不清楚 SRC 到底真正作了什麼。至於 Cool Edit SRC 的運算法,我也無從得知,不過看起來品質還不錯 :)
軟體的算法和硬體的作法大概還是有一段差距,您說得不錯,用 Cool Edit 模擬,恐怕沒法近似真正的硬體 SRC 的表現。
另外我想再請問一下,Cool Edit 作的 48(upsampling)--> 96(downsampling)-->48 的動作,和 高倍插補-->重取 是完全不同的兩種計算方式?還是類似?
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
硬體 SRC 當遇到同頻輸入輸出時, 會不會做 resample, 不一定, 看它設計。也許你覺得不 resample 才合理, 但是有時候這要增加成本。因為它還要多一道 feedback 來控制, 然後還要多一些 comparator 之類的 ( 簡而言之它要「看懂」你的來源頻率 )。然後它還要多一條路讓你 bypass ( 否則它的 SRC 又要設計得更加複雜 )。

如果你用 CoolEdit 來想像 SRC, 那就很難體會了。CoolEdit 如果你要它同頻轉同頻, 它只消幾行 if 的程式便看懂你在做無意義的事, 但硬體的 SRC 不是這樣。
</FONT><!-- BBCode Quote End -->
瞭解了。
EMU10K1 我猜他應該有 bypass 的設計,不然我們就無法輸出正確的 Dolby Digital 的音訊給外部的解碼器了。不過播放 48khz 時會不會去用,以我現有的設備,還是實驗不出來... [XD]
JamesT
神人
文章: 1347
註冊時間: 2001-01-04 08:00

文章 JamesT »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>
是因為會失真嗎?
</FONT><!-- BBCode Quote End -->
大概很多人都知道取樣理論最基本的就是 1/2 fs 有效。若講精確一點, 應該是 1/2 fs 以上無效。問題是, 這個基本理論, 是假設你擁有無限的計算力和解析度, 而實際上是不可能的。實際上, 離散的計算, 愈接近 1/2 fs 愈不準。當然, 前人們已經發展出許多良好的演算法, 可以做到很逼近 1/2 fs 都還很有效。不過總而言之, 用極為接近 1/2 fs 的頻率來做實驗, 通常是用來「考驗、測試」一個新開發的演算法 ( 看它能撐到哪裡 ), 而不是用來「驗證是否存在」。
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
另外我想再請問一下,Cool Edit 作的 48(upsampling)--> 96(downsampling)-->48 的動作,和 高倍插補-->重取 是完全不同的兩種計算方式?還是類似?
</FONT><!-- BBCode Quote End -->
關於軟體 SRC 我沒有研究, 不曉得軟體是怎麼做的。不過基本上你還是可以大概確定它是用 O(n) 的演算法 ( 用 complexity 超過 n 一次方的演算法應該是沒人能接受的, 遇到大檔案會死 ), 也就是說仍然不是最好的解。
<!-- BBCode Quote Start --><FONT COLOR=GREEN>
EMU10K1 我猜他應該有 bypass 的設計,不然我們就無法輸出正確的 Dolby Digital 的音訊給外部的解碼器了。不過播放 48khz 時會不會去用,以我現有的設備,還是實驗不出來... [XD]
</FONT><!-- BBCode Quote End -->
能夠數位輸出 DD/DTS 的音效晶片當然都有所謂 bypass mode ( 應該稱為 native mode 比較正確, 因為此時數位輸出的每一個 bit 都要由程式決定的 ), 這是沒錯的。很久以前我也曾異想天開地希望 WINDVD 能在播放 CD 的時候以 native mode 數位輸出不經 SRC 的原始數位訊號, 不過我想 InterVideo 大概對這不會有興趣的, 因為還要用到 CD-ROM RAW READ ( 要讀 sub-channel )......有點麻煩。

至於 48K 數位輸出, 這必定是有過 SRC, 不可能為了 48K 的 PCM 還要隨時偵測並且切換到 native mode ( 最重要的是 native mode 不會幫你建立 SPDIF frame data! 這是重點...... )。其實 DearHoney 早就驗證過了。我記得他以前曾經製做過 48K DTS 訊號的「假 wave 檔」然後輸出, 結果爆掉, 這個實驗確實證明了 48-48 還是會過 SRC。
LukeLo
神人
文章: 2100
註冊時間: 2001-01-04 08:00

文章 LukeLo »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>
至於 Cool Edit SRC 的運算法,我也無從得知,不過看起來品質還不錯 :)
軟體的算法和硬體的作法大概還是有一段差距,您說得不錯,用 Cool Edit 模擬,恐怕沒法近似真正的硬體 SRC 的表現。
</FONT><!-- BBCode Quote End -->
這裡有一些軟體與硬體SRC評比。
http://www.ne.jp/asahi/fa/efu/fsconv/fsconv_2.html
DearHoney
神人
文章: 6487
註冊時間: 2001-01-03 08:00
聯繫:

文章 DearHoney »

<!-- BBCode Quote Start --><FONT COLOR=GREEN>在剛裝好driver而還沒安裝Diamond的相關軟體與A3D調整程式前,測試數據非常差勁,頻響抖來抖去相當有趣,放在下面讓大家作為警惕,裝driver不要只裝一半。不知道SB Live!系列和Audigy如果只裝driver不安裝肥大的AudioHQ是否也會發生同樣的慘況。

<a href="http://mp3.dearhoney.idv.tw/MX300/Monst ... 搞笑的Output1 44100Hz</a>
<a href="http://mp3.dearhoney.idv.tw/MX300/Monst ... 搞笑的Output1 48000Hz</a></FONT><!-- BBCode Quote End -->

我現在也用 Diamond 1.02 版來測試 MX300,但是即使我把驅動程式安裝好了,不論開機幾次怎麼測,都是你現在這種搞笑的數據,而且,可以視為一樣的成績,成績太接近了。為此我也重新 ghost 系統,還是一樣。

怎麼會這樣?

這讓我想到 AU8810 的成績,大家都是出在頻率響應圖上,起起伏伏的有如萬重山巒般的美麗,真怪.....
<!-- Edit Notice Start -->

<font size=-1>[ 這篇文章在 2002-01-06 21:55 被 DearHoney 編輯過 ]</font><!-- Edit Notice End -->
LukeLo
神人
文章: 2100
註冊時間: 2001-01-04 08:00

文章 LukeLo »

這真奇怪了,請問您有沒有拿出原廠的Diamond MX300 Driver光碟讓程式安裝相關軟體呢?我這個數據是在開機的時候把目錄指向從老伯抓的1.02 Win9x版driver目錄後測得,執行該目錄內的STARTW9X.EXE並重開機就正常了。
kyo
初學者
文章: 7
註冊時間: 2001-01-16 08:00

文章 kyo »

DIAMOND Monster Sound MX200!!!!!!
[b01]
TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

抱歉又把這篇挖出來,因為有一個很嚴重的錯誤必須更正 ^^;;
前面我說 SB Live! 的錄音音量可以調成相等,甚至是比較大聲,
這是錯的 ^^|||
事實上即使將錄音音量調到最大,SB Live! 錄進來的音量還是較原來小聲一點。
這一點,和 Bennet 兄所作的測試結果是相同的:
http://bennetng.uhome.net/AudigyDE/AudigyDE.htm
最下面的 後記/感想

不過在 AC'97 Codec 裡面,可以打開一個 Rec Gain 的選項,
增益 Wave in 的音量,我沒試過,或許會有幫助。\r
這個選項可以用 CrosStudio 來打開
http://crosstudio0.tripod.com/SBliveTTT/

另外關於 Live! 錄數位靜音會有雜訊的問題(不管是 44KHz 或 48KHz),
最後終於證實...... 是 dithering ... Live! 加了 dithering .... :P
挖咧,不該錯信廣告,誤我一生... :P
這個 dithering 的選項可以關掉,不過我很奇怪為什麼 APSLive Driver
預設是叫人關掉 dithering,不是加了 dithering 會比較好嗎?....
TMNEXT
神人
文章: 271
註冊時間: 2002-01-02 08:00
來自: 人畜同樂促進會

文章 TMNEXT »

挖咧,實在是越想越不甘心,被 DAL 騙那麼多年,
說什麼是世界唯一硬體 dithering 的音效卡,
結果雖然 Live! 數位靜音的雜訊,看起來就像加了 noise shaping
的樣子(高頻的 noise 隆起),我還是不疑有它,結果....
嗚嗚嗚...被騙了.... [b10]

現在想想也對,Live! 所有的 audio sources 都要經過 Effects Processor
Effects Processor 是以 32-bit 運作的,要有高品質的效果器輸出,
非得要用 dithering 不可....
我真是太傻了... [b10]

另外想請站長測試一下 Live! 後置輸出的聲音品質,
因為網路上有傳說 Live! 的後置輸出用的是 I2S 的 Codec,
輸出品質比前置用的 AC'97 Codec 好很多,我自己接的結果是
接上後置輸出之後喇叭低音全無 [b12]
不過這個應該是我自己設備的問題,如果站長有空請幫忙試一下
網路上的傳言是否為真。
DearHoney
神人
文章: 6487
註冊時間: 2001-01-03 08:00
聯繫:

文章 DearHoney »

關於有 dithering 會比較好的前提是,你進來的資料是高密度的格式,想要降轉成低密度的,例如 24bit 96kHz 降成 16bit 48kHz 就可能會比直接錄成 16bit 48kHz 要來得佳。

但是 SB Live!/Audigy 進來的格式都是 16bit 48kHz,在這裡使用直接使用 dithering 的意義就不大了,所以這是我猜 APS Live! 預設要關閉的原因。但是以 SB Live!/Audigy 本身原本的遊戲需求規劃,先 upmix 成 32bit 格式做完運算後,再用 dithering 降回 16bit,是有其考量沒錯。

<!-- BBCode Quote Start --><FONT COLOR=GREEN>挖咧,實在是越想越不甘心,被 DAL 騙那麼多年,說什麼是世界唯一硬體 dithering 的音效卡</FONT><!-- BBCode Quote End -->

不太可能吧?世上的專業音效卡何其多,CardDeluxe 不可能是唯一的一張。

<!-- BBCode Quote Start --><FONT COLOR=GREEN>另外想請站長測試一下 Live! 後置輸出的聲音品質,因為網路上有傳說 Live! 的後置輸出用的是 I2S 的 Codec,輸出品質比前置用的 AC'97 Codec 好很多</FONT><!-- BBCode Quote End -->

這個不是傳言吧..... SB Live! 全系列總是在後置輸出用額外的 PHILIPS DAC 來做輸出..... 我們網站有講過啊.....

但是品質會因此比較好嗎?難講..... 真的是要測了才知道。

<!-- BBCode Quote Start --><FONT COLOR=GREEN>我自己接的結果是接上後置輸出之後喇叭低音全無</FONT><!-- BBCode Quote End -->

你遇上了阻抗匹配的問題..... 印象中那一顆 PHILIPS 的 DAC 在輸出推力上比一般 AC97 CODEC 來得大,但是忘記有沒有如前置輸出一樣再去搭配一個 OP,可能問題是出在這裡。
回覆文章