|
原帖由 王逸驰 于 2007-2-15 18:03 发表
; `% D1 X% @, f( c. | W唉,越吵越凶。
, |" u5 S, q g( T& w4 Kxtal的理论基本正确,只是口气无法接受。
+ ~1 Y Q/ R+ n% ]; B( K' m1 q% z" sLZ的方案想法很好,但是有两点商榷
' y* t8 D. n* X: Q1。USB总线恰恰是所有总线中最不适合音频的,具体信息可以参见USB谋杀音质的文章。* e' X0 D2 a3 R9 e/ _; Y! X" i
2。关于使用高精度元器件的问 ... # Y7 R9 m+ L% @3 K0 `
google了一下“USB谋杀音质”。终于明白了为什么会有这种说法了。
7 A" y: y# }( m3 R/ i6 t+ F! h, ?7 S0 I
7 f5 n' }& w: D, I9 [8 `- A c看了“Sample Clock Jitter and Real-time Audio Over the IEEE1394 High Performance Serial Bus”,知道了流言的源头。
7 X; e* H; k* x, t( P其实看这篇文章的第一句话就已经有结果了“The asynchronuous clocks within the IEE1394 high performance serial bus present challenges for sample timing recovery in conjustion with the transmission of digital audio",而这中间的三个字“sample timing recovery"彻底决定了jitter的来源。如果想通过USB或1394中的数据中还原出时钟的话,那毫无疑问,jitter会很大。而USB的延时比1394要大,所以造成了jitter比1394更大。这种方法是所谓的同步方式。要通过USB和1394同步音频时钟当然是问题多多。0 y! k( V }5 y; |* F5 q
( K4 g, H7 b' u7 c4 A- x其实我在11楼回答sd-iori时就把问题讲清楚了。作为声卡有DSP,输入等等的功能,对延时有很严格的要求。所以声卡上的音频流的采样率是由数据中恢复出来的。这样就可以保持同步的操作。
3 {% ~! l. v/ E( m# E9 H! V
7 e' v& c( p! ^% ], Z( Y我的这个方案是USB DAC,而并不是USB声卡。对延时没有什么要求。所以可以用fifo这种异步的方法彻底隔绝jitter。缺点呢?也就是你按了播放器的停止键后,它还会放个1-2秒的音乐才会停止。" D$ J$ B8 y) U/ i/ g2 ?8 T
8 x6 }& ~$ y2 L2 I4 t+ v6 X就象我们在网上看电影一样,如果网速不理想的话,看到的画面就是一顿一顿的。但如果我们愿意等的话,就可以把电影下载到硬盘上看,等下载完了,自然看起来就不是一顿一顿的了。当然,有些人是不能等的,比如他是个翻译,需要把这个电影同声翻译给所有正在看电影的人。对他来说,网络的延时就可以要他的命。
1 e! J* l; D6 {' W
* X; y3 ~5 k/ [作为USB DAC,而不是USB声卡。USB只是一个下载的途径而已。等于把wave文件下载过去再播放。我相信短短的延时和jitter来比的话,对于发烧友来讲还是愿意忍受那点延时的。 |
|