- 注册时间
- 2012-7-22
- 最后登录
- 2018-11-30
- 阅读权限
- 200
- 积分
- 791
- 帖子
- 735
- 精华
- 4
- UID
- 2
  
|
从存储器上的二进制文件,到声卡发出声音,这其中有一个数据流动转换的过程。不管声卡的界面是PCI还是PCI-E,或者是USB的,它们的工作流程基本一样。本篇着重讲讲声卡的工作流程。1 i9 H$ c: J: m9 w) [
0 }2 S4 {% n; u# W. e
模拟输出# O; @9 \% |! K) @2 J, u% [$ l0 C ]
) H) y- M7 ?& q9 i " `$ B8 {7 }. t, ?5 |# @
声卡模拟输出流程示意图) K3 K0 S' d) S1 O* a5 R" i
+ ^% i9 n' x8 z( O( E模拟在港台称为类比。模拟输出是我们使用得最多的输出方式,相比数字输出方式,它无需外接任何解码设备就能完成声音的输出。系统通过系统总线(例如PCI)传送数据到主芯片(I/O控制器或者音频控制器),然后输出数字信号到Codec或者DAC进行数字信号到模拟的转换,再通过声卡上的模拟输出插座输出。1 D) U6 O/ `- _! h* ?
整个过程为,总线->主芯片->Codec或DAC->输出。在最后一个环节,会有运放参与其中的工作,对信号进行放大,但这个环节,并不是一定需要的。
* ^% c' ]( l+ s F$ O7 t: S0 Z5 B% g0 z; L! {/ p& Y) }
, s& ]/ V% h' k* {+ n0 o# V
1 G# v' K5 J, \# w. W6 X1 X& |. D
数字输出
B0 S; K w: I; M, x) Y, `' T" P 4 e8 h- S2 U2 O& }' p
声卡数字输出示意图& u- t, @! a z9 _! T( l6 P/ l T9 U
- K. Z% b+ p5 x
相对模拟输出方式,数字输出少了一个数字信号到模拟的转换过程,直接由声卡的光纤或者同轴输出端子和外置DAC通讯,数字模拟信号的转换过程交给了外置组件。
$ j. z# }% F/ r: [, z% l
( r' O" p5 a! v/ q0 x9 O) P0 j' ~4 H
- \, W6 ?3 }, V* [* ~: C/ c模拟输入
& [0 m' a* z- u% F
- y) ?( W `) @( K' G9 s- h
+ A6 |3 W) C6 m8 }- j 声卡模拟输入流程示意图
# f" [8 [# S9 @& s7 G( x; m插上麦克风录歌就是一种单纯的模拟信号输入的过程。在这个过程中,Codec和在输出的任务不一样,而是完全相反的,麦克风只能提供模拟信号,要被主芯片接受必须经过模拟信号到数字信号的转换,这个转换过程被称为ADC(注:ADC在用于硬件名称时,是指的模拟数字信号转换器),主芯片接受信号后传递给系统总线。Codec在此流程中担当的工作也可被专用的ADC芯片取代。
9 i w) F( J3 E4 Z. i) f2 k. [
. q, k! b- v& ?# D* F+ w; Y0 B9 B数字输入$ R# _, m9 ?+ {) A
$ _) v( [3 e# N# ~2 U2 f; c3 u

. p( h* A, y; t- y3 {1 R 声卡数字输入流程示意图
+ ]/ B5 R, p6 Z- f/ e例如要录取MD的音乐节目,就需要使用到数字输入方式。在某些录音棚中,会有外置的ADC与声卡相连,此时录音,声卡也需要用到数字输入方式。数字输入的流程很简单,将输入的信号变成文件保存,其关键流程就是经过主芯片的转换并传送到系统总线。
- ]3 D# c: U, o6 k9 e: Q& A$ n' ?" q: Z. K
回放方式
* i. C1 h3 a+ d
% ^8 ~0 O! g# u( a' w: J 声卡回路方式的流程示意图8 R( O0 ]& U$ W: {! a1 P
7 B& r0 Y. O0 S5 w' H; i e使用一根双3.5mm头的线材将声卡的模拟输出和模拟输入(Line in)连接起来的方式被成为回路,主要用于测试声卡的一些指标,可以看成是模拟输出加模拟输入的流程集合,这种方式不具备实用价值,除了测试之外没有人会这么用。这种流程太长,双3.5mm头的线材的质量会严重影响测试结果,其实很难测试到声卡的真实表现。
9 B0 a4 }7 Q2 ?, [; z0 _+ S- z1 h, f2 o0 ]3 p. Z0 m
内录
& y3 A0 R. p5 I. A9 @/ b/ Y1 q
9 p& `8 J( X; |5 ?: k声卡内录方式的流程示意图0 h9 ? _& y9 w7 D6 m! x, G
/ t# k( Z9 V3 G/ {, ?$ v( @
: F- Z* B0 |/ ]) N; \6 F
( E! X: I% }( Q2 r6 T捕捉当前播放的数字信号的过程通常被成为内录,内录常常使用于测试,用于检测声卡的数字信号处理质量相当好用。在日常应用中,也可能用到内录,例如你录制实时播放的数字电台节目,就需要用到内录。6 ]$ Y. ^5 d3 ]
) Y2 o8 w7 ?, G% n1 j+ k) l0 z: J
$ U5 i- k8 F6 Z h5 H% K) ^' NUSB声卡的模拟输出
% Z3 l0 ]- d$ a 7 V1 h$ b/ ^8 u7 Q8 D6 i* D4 t2 a
USB声卡模拟输出示意图$ \% R- U/ _1 L
9 E) i. @4 s* [2 a, e Z
其实与内置声卡相比,外置的USB声卡在模拟输出时,其工作流程也大同小异,只不过是总线由PCI或者PCI-E变成了USB,其他流程完全一致。同样是经过主芯片到Codec或DAC后输出。也有少量的火线声卡,其工作方式同样与内置声卡相似,总线不同罢了。' \0 C! O1 F1 z
以上讲述的几个例子都是基本的流程,在不同的主芯片内部,进行数据处理时,其内部流程也会有所不同。) q: v: o5 \/ W2 y8 N
1 K' l5 |7 G: j# V. t: N6 q! w7 v: j8 z. K
主芯片内部的流程% f* z& Y9 r2 T1 |' k" a4 t
 - p2 n, ^% `1 r8 j
音频加速器和纯I/O控制器的工作流程对比示意图
: t9 e \% a! a, e2 Y
6 [+ J+ C$ R, ~2 Q/ b7 K2 g& S$ ?9 d, E/ k, w
在《声卡入门·2009版 元件篇·认识主芯片》[作者: 夏昆冈 ] 一文中我们说到,主芯片又分音频加速器和I/O控制器两类,音频加速器集成了I/O控制器和DSP,这也导致了它们内部的信号流程会有所不同。I/O控制器很简单,就是输出和输出,而音频处理器的内部流程可能更为复杂,信号可能经过内部的DSP,也可能不经过,这需要看不同场合下声卡驱动的设定。在很多时候,不能依靠简单的硬件来区别其工作流程,因为软件可以让CPU来模拟DSP的工作,即便使用的是基于纯I/O控制器的声卡,它在打游戏的时候,其输出流程中一样会出现一个基于CPU模拟的DSP模块。
+ e4 X+ u6 o, u3 @ w( O: ^
. M( b( S- X+ c$ e( u. q: `- l3 j媒体播放器位于流程的什么位置?
6 K6 N9 z3 W' C: E) `# j' J
* M% |1 R. u3 X3 Q' Y+ K- ?( t声音的输出,不能单纯依赖硬件得以实现,其中播放器是非常重要的一个环节,但这个环节,有位于整个流程的什么位置?
% Q) j- \3 t$ u$ h6 \/ W T4 M ?/ g7 Q2 t3 b
播放器到声卡示意图
V( a, A9 M7 v. Q0 Z O( i( t; l
, l5 x ~( l9 U' J: M" V! L: ?
: K6 _5 m/ p; J
这个环节位于输入到声卡之前。播放器读取存储器上的文件,并进行解码,然后输出到设定的声卡。在这之后,声音的处理均与播放器无关。
: I& t8 M9 D9 h4 d% ]9 n播放器的DSP 插件,又位于流程的什么位置?& y; B9 u' ]! ]1 E( Y9 Z3 o' S. h
8 M6 \1 Q8 E0 C, x
Foobar2000音频播放器的工作流程示意图. i+ W: n- Q1 \+ D. k0 h
& p; v* m: c2 m$ Z# T$ A @
3 t) N+ y/ Y* d* j( t% e# G6 X D, m' l
以Foobar2000为例,在其读入存储器文件数据后并完成解码后会直接输出,如果加载了DSP插件,就会多一次处理。假设你使用的是X-Fi声卡并开启了环境音效,使用Foobar2000也开启了某个DSP插件,此时,你听到声音,是经过2次DSP处理过的,一次处理,是对输入声卡之前的信号进行处理,即Foobar2000的DSP处理,另外一次就是来自声卡主芯片内部的处理。% o3 }; G$ ^% D& A6 \
流程暂且讲到这里,下一篇重点是一个与流程密切相关的环节,SRC。6 ~6 q7 z% j3 f! e
; _5 B# g$ H8 N; \6 j% d
仅供学习交流之用,版权归原作者公司所有,
U G0 o* i3 o& Y) e m不可用于商业盈利用途,否则一切后果自行承担!) D( [' k$ F: O! N6 ~* b
9 v2 s- A. K; ]. P
4 K! D3 ^ V3 k! E6 O; x, W
& a, F0 i' f: A9 \. o9 R& R
9 o1 d0 h$ c" s, u* ?7 b
# [% h) U* f' z( v+ g3 I0 J* s8 b |
|