
—————— 前情提要 ——————
JW75大在該討論串21樓提到:
我曾經拿同一台電腦跟同一台DAC,分別接三個不同的USB介面做比對。三個介面都是USB非同步傳輸,其中A是純粹非同步但沒數位訊號重整;B是非同步加數位訊號重整;C是非同步、數位訊號重整加USB隔離,三台放出來的音質等級都差很多,多到根本就像三台不同的DAC,並不是只要有USB非同步傳輸,後面的數位訊號重整跟USB隔離都沒差。而這A、B、C三台不管接那一台,最後都比不上CD座機直接給DAC的音質最好。這沒有對錯的問題,就純粹分享我自己的經驗。
JW75大在該討論串23樓提到:
ABC三者之中,A跟B的差別在於B多了FPGA跟獨立晶振,透過內建演算法聽得出de-jitter效果。B與A相較之下,可以聽得出來解析度提高,音色也更細膩,是有感的升級,但音場跟聲音的質感並沒有太大的差異。
而C與B相比除了FPGA及獨立晶振外,又多USB隔離,這個差距最為明顯,宛如升級一台完全不同級的DAC。相較於B,C的聲音像是揭開一層紗,三頻是全面性的更為立體清晰且均衡,這不單只是解析提高而已,整個音場、聲音立體感、厚度、重量,音色的質感跟泛音的空氣感都向外打出去一大圈。大金彰的雙9038 pro這台DAC原本(使用內建B時)的聲音其實有點平庸,高音稍嫌過亮聲音有點偏瘦不夠厚實,剛買時坦白講是有點失望,但換了C以後聲音是全方面的升級。
我後來還買過一套USB光纖隔離給大金彰這台DAC用,光纖隔離可以從物理上斷絕一切電氣聯繫,理論上是隔絕雜訊效果最好的方式,但缺點是因為有光電轉換,會犧牲增加多一點jitter。B+光纖隔離後的效果一樣驚人,可以直接跟C掰手腕毫不遜色。依我自己上述經驗,雜訊跟時基錯誤之間如果二選一的話,雜訊影響比時基錯誤大的多,時基錯誤影響的主要是聲音的解析度跟音色,但聲音的基底跟質感差別沒那麼大,還是聽得出是相同的聲線。但雜訊的影響則是全面性的,尤其是對聲音的音場及質感差異最大。
—————— 後續討論整理 ——————
JW75 wrote:
SPDIF跟i2s只是訊號格式不同而已,spdif是線路傳輸的格式,而i2s則是DAC晶片直接吃的格式...(恕刪)
謝謝JW75大詳細的回覆,我試著收集更多資訊,並依據您的建議重新整理一下論述。整個運作方式,也稍稍有點感覺了。
先說左半DDC這部分:

DDC三者的功能都很單純一致,就是將PC經由USB傳過來的PCM資料,經由SPDIF或I2S送到DAC。這裡先簡化所有箭頭都向右,也就是都是由DDC將clock及data送出,DAC單純是接收的角色。(I2S的clock也可反過來送,這最後再來談這題,先簡化都是單向)
I2S有三根訊號組成:SCK, WS, SD。(參考wiki)

也有資料將這三個稱為SCLK, LRCK, SDATA。因為USB是以packet形式封裝PCM資料傳輸,無法傳送clock資訊,所以在DDC就必須要用一些辦法來”回復”或”regen” clock,這點毋庸置疑得做。
先回頭看看SPDIF,參考NI網頁說明:

只使用一條線,利用bi-phase mark modulation,將clock及data混入一條線傳。clock資訊就在訊號轉態的edge。所以可視為跟I2S一樣,仍是把clock及data向DAC傳,只是DAC收到要稍作處理,才能回復出data及clock。
既然SPDIF及I2S都需傳遞clock給DAC,在DDC這裡就一定要想辦法產生clock。我沒有找到A, B, C三者如何運作的細節,先以您提供的資訊來推想:
「A是在USB接收端完全沒優化,直接走SPDIF丟到DAC,他的時脈就是從電腦USB來的,因為A壓根沒有重建時脈功能。」
A得要重建時脈,不然沒辦法打出SPDIF訊號。但USB的時脈是USB packet用的,定頻12MHz, 480MGz, 5GHz or 10GHz,視跑的是USB哪個速度。packet也不會乖乖對齊在哪些地方。
想要由USB資料回復clock,最直覺的辦法就是拿USB packet的SOF(start of frame),利用時脈回復電路去對齊SOF。如EDN下圖:

這就是所謂的USB sync mode。但因為USB及電腦送出USB packet的時間不確定性,clock品質很難做得好。至於Asynchronous mode,待A, B, C都先過一次後,再一起看。
「B、C則是在數位級先做一次優化,然後再丟到DAC、B跟C用的時鐘,是在幫電腦USB來的音樂訊號重打時脈做優化」
剛剛談A時,就留下一個問號「何謂優化?」我先假設是DDC只做格式轉換,不會對PCM資料內容做變更。這可經由將DDC後面不接DAC,改接SPDIF or I2C receiver(例如Hifime S2 Digi )錄下轉出PCM資料就能確認。若我的認知有誤,還請更正。
那麼B, C的數位級優化若不是優化資料內容,就只能優化clock了。至於跟B跟C用的時鐘有什麼關係?XMOS XU208 data sheet給了應用電路範例:

它本身就需要一個24MHz(or 12MHz)的Oscillator來解碼USB訊號。所以猜想您提到的,是其他的時鐘,如下NAJLEPSZE ODTWARZACZE找到的圖:

Clean side左下角那兩顆, audiophonics 網站有放大的照片,下圖左上角:

配合上FPGA,用來輸出同軸SPDIF訊號。推測是針對不同的44.1kHz, 48kHz的倍數,會選用不同的oscillator 最佳化輸出SPDIF上面載的clock資訊的jitter。
然而若是還是要對齊SOF,勢必會將SOF的不理想性,引入送給DAC的output clock。要clock乾淨,最好只依賴local free running oscillator,不要參考SOF。這就是asynchronous mode能幫上忙的。


ElectronicDesign這篇有更明確的敘述:

重點在於後面的DAC,要與I2S使用相同的clock。
問題就會出現在DDC這部分,I2S clock(或經由SPDIF抽取clock)得經過線傳輸到DAC,這過程中若是clock受到汙染,或是signal/ground noise進到DAC,就白搞了。

但這已經是使用DDC架構的極限,要再進一步優化只能靠DAC上再進一步去jitter或ASRC來幫忙。這部分會在接下來DAC這塊探討。至於有沒有最佳解,則留到文章最末端來談。
回到這張圖右邊的DAC:

因為是同一個DAC,且前面談過,SPDIF同時帶有clock及data資訊,可轉換回I2S。所以可視為DAC要面臨的挑戰都一樣:一個可能帶有clock jitter的資料。而USB audio synchronous mode下,會比asynchronous mode更髒。
以下是ES9038的block diagram:

JW75 wrote:
你畫ABC三個圖沒有錯,但我覺得有問題的是這句「 DAC收到SPDIF數位訊號(內含clock資訊),就得重建clock」...(恕刪)
先來說明我這句話的想法。
首先我用「重建clock」這個說法的確是有問題,因為以ES9038而言,並不一定需要重建clock。比較精確的描述,應該要說是「抽取clock資訊進行ASRC&Jitter reduction」。
上圖左下角雖然ES9038有自己很乾淨的clock,這個clock如您所說的,也最重要。但前面DDC進來的clock是含有jitter的,而且一定跟這裡local的clock頻率不可能一模一樣。畢竟DDC跟DAC用的clock不是同一顆。
舉例來說(只是方便說明,實際內部運作更複雜),若DDC的clock若是47.999kHz~48.001kHz,而這裡給DAC的clock是精準的48kHz。不修正的話對輸出類比波形而言,就是一個抖動。
因此進DAC前,還要進一步做ASRC&Jitter reduction。這不論是面對A, B, C三種DDC任一個,都要處理的事。前面提到進來的資料都一樣,只差在clock。DDC給的clock品質越糟,這裡的挑戰越大,DAC輸出品質越堪憂。此外走同軸的SPDIF或I2S,還會衍生signal/ground noise coupling問題,就看這裡數位類比的noise隔離做的好不好了。
到這裡都與您分享的一致,就算有asynchronous mode,仍然有許多挑戰要克服。而CD player由CD讀取電路轉換成I2S訊號,接到DAC這些過程,面臨的挑戰其實也一摸一樣。CD中的DAC,若內部走I2S介面,同樣得處理I2S的clock jitter&noise coupling。
只是如您所述,CD player是專為音樂而生,電路對於noise, clock quality會特別在意,若能處理好,出好聲的機率就高了。
————— 理想解法 —————
聊到這裡,USB終極最佳解決辦法也呼之欲出了。就是「I2S改用DAC的clock,不要使用DDC的clock (或是兩者共用clock)」,如以下示意圖:

因為DAC看到的data與clock都沒有jitter,就沒有額外的jitter問題要處理。反向回送到I2S的clock也不需太細心照料,只要jitter不要造成數位data錯誤就好。Buffer水位以asynchronous mode方式,跟USB host(PC)做好流量控制,就搞定了。
此終極解法下,clock jitter、時基誤差等等已不是問題。剩下最重要的,是每個音訊電路共同的功課:顧好其他路徑上的「雜訊」。
只是這個做法跟傳統的I2S做法截然不同,不知道哪一台USB DAC有做到呢?

————— 延伸問題討論 —————
Q1. A壓根沒有重建時脈功能—> 我認為有,或是對於重建時脈的定義我倆定義不同
JW75回覆:
你可以看一下TI的這篇文章,裡面有說明時脈重建的原理。
https://www.ti.com.cn/general/cn/docs/gencontent.tsp?contentId=145788
要重建時脈,就是要拋棄前端訊號來源的主時鐘,用字時鐘及位時鐘透過DSP計算,用本地時鐘校驗出新的主時鐘替代,來降低前端訊號來源時基錯誤的影響。A的電路板上沒有FPGA,也沒有本地時鐘,客觀上就不具備重建時脈的功能。他能做的只是把前端USB送來的訊號,照著收到的時間直接轉到後面給DAC處理。B跟C的電路上有FPGA、有韌體控制的DSP運算、也有本地時鐘,他們才有能力做重建時脈的動作。
而數位音樂訊號,音頻資料本身是0與1原則上不會出錯,所以數位級優化歸根究底就是做兩件事,消除(a)時基誤差及(b)雜訊干擾。從最簡單幾千塊到最昂貴幾十萬的DDC、數位轉盤講白了就全都是在做這兩件事,只是看花多少成本,成果能做到什麼程度而已。就這兩件事基本上A什麼都沒做;B做的是(a)消除時基誤差;而C做的則是(a)跟(b)都做。
Goldbingo回應:
您提到「A的電路板上沒有FPGA,也沒有本地時鐘,客觀上就不具備重建時脈的功能」這點是有疑慮的。但我沒有看過A電路長什麼樣子,只能提出我的看法:
1. 理論上USB的接收電路,很難不用本地時鐘就做得出來。USB控制器內部運作就像是個小電腦(micro controller),得要有clock來運作。也許是用了晶片內建簡單震盪器來實作節省成本,所以外部PCB沒看到本地時鐘。
2. 時脈重建不一定要用FPGA,要看想要做多好、多複雜。但為了要打出SPDIF訊號,就一定得要有時脈,不然打不出去。只差在時脈的品質,若有FPGA可以做更多運算,有機會產生較高品質的時脈。
想細部觀察了解運作的話,量測SPDIF中的轉態edge,就會知道其時脈品質,可利用一些儀器量測(例如示波器)跟計算來得到。但這就要再多花點心力了。
由您的推測來說,的確很可能A重建出來的時脈品質,會較B,C來得差。

Q2. B、C則是在數位級先做一次優化 —> 我認為數位級優化仍是針對clock,您對此優化的定義是?
JW75回覆:
另外,即使DDC或DAC有重建時脈或隔離雜訊的功能,他也只能降低而無法100%消除前端訊號來源時基錯誤及雜訊干擾的影響。就像那篇TI文章寫的,不管你DSP重建時脈的能力再怎麼強,本地時鐘再怎麼精準低噪訊,前端送來的訊號的品質還是很重要的,就像您不能把爛泥打磨光亮一樣。
沒錯,大金彰的DAC採用ESS最尖端的ASRC技術及crystek 575算是已經很對得起買家的本地時鐘,能夠消除前端訊號時基錯誤的影響,但隨著A、B、C處理數位訊號優化的能力及程度不同,這三台給DAC的數位訊號品質有差異,DAC轉出來的音質還是有明顯的高低之分。
因此,數位訊號的處理其實是門大學問,並不是說我只要有USB非同步、有ASRC運算或有隔離就可以解決一切問題,這東西基本上還是砸多少錢處理才能有多少效果。而相較之下,要追求數位訊號品質最省成本的辦法,其實是聽CD,因為他音樂訊號的路徑短,中間會受到(a)時基錯誤及(b)雜訊干擾的影響都最低,因此你即使任何數位級優化都沒做,CD座機數位輸出訊號品質天生就會比電腦好太多。
Goldbingo回應:
您提到「不管你DSP重建時脈的能力再怎麼強,本地時鐘再怎麼精準低噪訊,前端送來的訊號的品質還是很重要的,就像您不能把爛泥打磨光亮一樣。」這點一針見血。
前端送來的clock得要夠好,後端運算要處理的不理想性少,輸出品質自然好。
目前DDC架構下的USB非同步模式解決了一半的問題,只拿掉了USB時基誤差的不理想性。但仍然是使用放在DDC的時鐘,不是用DAC本地時鐘。
但若進化到前述文末提到的最佳理想做法,由DAC本地時鐘提供給前端的I2S用,就有機會釜底抽薪解決掉整個架構性問題,不再受到前端送來的clock品質影響。
這解法不單單對USB有用,對CD、Ethernet、本地硬碟、串流都可用一樣的原理來處理。很期待能看到更多優秀的產品出現。
————— 感想 —————
音響及其背後的原理是個有趣的題目,結合聽感與理論相互呼應更讓討論深入,也期待與其他有興趣的網友能夠有更多交流。
