|
原帖由 deitin 于 2008-10-20 12:35 发表 ![]()
; _3 {; ]5 Y3 v( P# w! w- c问题是44.1的音源没经过SRC是怎么输出192来的??SRC不是一个转换过程来的么??如果foobar选择KS输出的话音源不能进行任何的SRC,这时候驱动那里选择96或192来播放44.1的歌曲的话是会报错的哦!放不出歌来的哦。。
5 O. p- a- x( N R' e o" P- n' k3 N... ( Q8 ?6 h7 P! K" d) p- Z
' D! b7 h3 Y b& [# [8 p
没规定一定要SRC才能输出的2 N7 n1 t5 O) q* Z' T; A
首先, 要区分音源的采样频率及声卡输出的采样频率, 他们之间没有直接的联系的, 举个不那么通俗的例子(我想不出通俗的)) S6 H. ~- L/ `* P+ z7 e0 P
音源数据: 0001 0001 0001 0001 (0代表没声音,1代表有声音,假设它的采样率是48)% _. ~, n& C& u, z1 i
声卡工作频率: 0101 0101 0101 0101 (0代表休息, 1代表工作, 假设它的采样率是96) 1 f! \0 S5 F3 m" ^: P
从这个二进制码里不能看成, 每隔4位都有一次重叠, 所以不需要SRC也可以100%输出全部音乐0 T! ^( T) [& U8 }
但如果没有对应关系
1 D& v7 s) g |. ^ N6 J' @# q音源数据: 0010 0100 1001 0010$ d, u6 K/ ^3 m( e' K* c
声卡工作频率: 1010 1010 1010 1010
. v' H1 i( P* ]0 [就需要把音源SRC了, 也就是添油加醋把它硬弄成与声卡相同的声音频率才能不会失音, 但会失真.
+ W4 Z& X2 H9 J+ ~2 S因为它44.1完全是非规则的数码, 非2的倍数, 所以这个SRC就涉及到一个很复杂的数学算法, 导致很多人找来找去都想找出一个比较好的算法(SRC插件), 也因为算法复杂,所以SRC插件一般都会很耗费CPU资源.
5 |" X4 a: v$ J' v6 E忽然想到另外一个容易理解一点的例子..
" L6 H) q2 N' `$ u# U1 j0 Y% i电影院放电影, 投影机的投影频率是每秒48侦, 而影片却只有每秒44.1张图片,那投影出来的时候肯定有失侦(某张图片没放出来)0 l1 o4 J7 h A/ s3 ~
也许有人会问, 调一调投影机的速度不就得了? 嗯..投影机也许能调, 但声卡不能, 因为不是2的倍数决定了它调起来不是一般的困难,至于这里面涉及到多少技术难度技术细节我就没能力再说下去了.
1 i3 f1 W3 |& i) s6 r/ P* F4 \
# V2 r% N3 X9 x/ {( @% f7 ^更改声卡采样频率时要重新加截并初始化很多东西, 这里面会造成几秒钟停顿, 最正规的做法是重启声卡.
' K" M e% _5 h9 g, D但估计重启声卡很多人不愿意, 负责驱动的工程师就会去改,改到能不用重启声卡为止(但也有几秒停顿), 这样改是比较困难的一项工作, 通常的做法都是换驱动来解决, 也就是说44.1 48 96 176 192 都是不同的驱动.
Z' E% T% }$ p' F在放音乐的时候, 播放器都是会独占驱动一条通道的, 在工作时忽然换了驱动(好比汽车在开的时候忽然把引擎给瞬间换掉了)一个道理, 这个工作能做到完全不出问题就代表厂商软件技术实力够强, 出小问题也是理所当然的(据我所知创新的声卡在驱动上做得不错, 而其它厂商的驱动水平就差远了).
3 i* R6 N. d1 S4 R: b$ @
8 }% X2 T6 Z7 m# c2 q9 e你试试把windows默认声音设备改成那块声卡, 然后再从foobar里面输出设置为"主声卡驱动",看看这样更换声卡采样率时还会不会报错吧 |
|