|
原帖由 王逸驰 于 2007-2-15 18:03 发表4 n; [9 E/ b3 v& o5 m
唉,越吵越凶。
% X3 C% K: s1 G: |xtal的理论基本正确,只是口气无法接受。* b7 {! o3 ? @8 o' v
LZ的方案想法很好,但是有两点商榷6 n8 J- _& T4 t2 X
1。USB总线恰恰是所有总线中最不适合音频的,具体信息可以参见USB谋杀音质的文章。& |6 M( S* N0 b0 D! L, n
2。关于使用高精度元器件的问 ...
3 Y& m' ` ?+ W, T! e, V7 E/ J* ^google了一下“USB谋杀音质”。终于明白了为什么会有这种说法了。
' ]7 S! R3 S, m- S5 t/ N3 H7 G$ z
% \7 ~" Q1 x( |5 D+ A看了“Sample Clock Jitter and Real-time Audio Over the IEEE1394 High Performance Serial Bus”,知道了流言的源头。+ C- J5 ~2 T c5 R) z9 r8 L+ R
其实看这篇文章的第一句话就已经有结果了“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同步音频时钟当然是问题多多。
) P' \1 s+ a/ Y3 x) s
: x5 o& u, S+ w5 Q/ U' A( t2 k其实我在11楼回答sd-iori时就把问题讲清楚了。作为声卡有DSP,输入等等的功能,对延时有很严格的要求。所以声卡上的音频流的采样率是由数据中恢复出来的。这样就可以保持同步的操作。
& A& b* g8 Q0 h. J& |3 F; K
7 C$ R9 Y5 r, h$ q# O我的这个方案是USB DAC,而并不是USB声卡。对延时没有什么要求。所以可以用fifo这种异步的方法彻底隔绝jitter。缺点呢?也就是你按了播放器的停止键后,它还会放个1-2秒的音乐才会停止。
) L% {: b# J4 P$ @! I% Y2 o$ G, K) Z8 A: d- E
就象我们在网上看电影一样,如果网速不理想的话,看到的画面就是一顿一顿的。但如果我们愿意等的话,就可以把电影下载到硬盘上看,等下载完了,自然看起来就不是一顿一顿的了。当然,有些人是不能等的,比如他是个翻译,需要把这个电影同声翻译给所有正在看电影的人。对他来说,网络的延时就可以要他的命。
' q+ O+ h8 t( z" t/ ]* q$ Q* f% C, |' p
作为USB DAC,而不是USB声卡。USB只是一个下载的途径而已。等于把wave文件下载过去再播放。我相信短短的延时和jitter来比的话,对于发烧友来讲还是愿意忍受那点延时的。 |
|