- 注册时间
- 2012-7-22
- 最后登录
- 2018-11-30
- 阅读权限
- 200
- 积分
- 791
- 帖子
- 735
- 精华
- 4
- UID
- 2
  
|
从存储器上的二进制文件,到声卡发出声音,这其中有一个数据流动转换的过程。不管声卡的界面是PCI还是PCI-E,或者是USB的,它们的工作流程基本一样。本篇着重讲讲声卡的工作流程。$ {+ x( a6 R) ^; Y9 u4 i
0 }* d$ ^( H/ A# _) N3 Z6 c, l模拟输出8 Y$ V& B( Y+ ^7 d5 D
/ T5 B( O+ `: X: `8 ?
; r1 W9 O: |- g8 D; i 声卡模拟输出流程示意图
1 y& O5 G9 h2 _! g# T/ l' b% D6 N- e+ L+ G# S
模拟在港台称为类比。模拟输出是我们使用得最多的输出方式,相比数字输出方式,它无需外接任何解码设备就能完成声音的输出。系统通过系统总线(例如PCI)传送数据到主芯片(I/O控制器或者音频控制器),然后输出数字信号到Codec或者DAC进行数字信号到模拟的转换,再通过声卡上的模拟输出插座输出。9 c7 N+ h6 N/ `! B
整个过程为,总线->主芯片->Codec或DAC->输出。在最后一个环节,会有运放参与其中的工作,对信号进行放大,但这个环节,并不是一定需要的。" p+ ~! U" p- u, b W+ m2 v
/ p1 U" A% g$ l( w/ U& W
i7 X! {% X: m0 E+ u; J A( B: g; k4 p/ N+ w
数字输出
5 @8 S8 N% W& m3 R 3 m& G- F& F2 X
声卡数字输出示意图
% y! x) z% R' c3 N- o; W# ^2 \# T
" M8 Q- A9 J# T: y相对模拟输出方式,数字输出少了一个数字信号到模拟的转换过程,直接由声卡的光纤或者同轴输出端子和外置DAC通讯,数字模拟信号的转换过程交给了外置组件。
- @0 R9 d9 `' ` ~
( ~9 J" P4 |2 I, f$ }, T8 w) h) v+ L5 j! E. Z
模拟输入) I4 |! c* t N2 f% X. u& i
7 ~' {0 G8 [, ], r; l I* D# K9 @

& a% f* O- _/ v+ r) j; y 声卡模拟输入流程示意图; N4 z# D1 @. R) X8 K" b: L9 c
插上麦克风录歌就是一种单纯的模拟信号输入的过程。在这个过程中,Codec和在输出的任务不一样,而是完全相反的,麦克风只能提供模拟信号,要被主芯片接受必须经过模拟信号到数字信号的转换,这个转换过程被称为ADC(注:ADC在用于硬件名称时,是指的模拟数字信号转换器),主芯片接受信号后传递给系统总线。Codec在此流程中担当的工作也可被专用的ADC芯片取代。
6 |2 ]$ E! R' ]0 f# {$ ~% q8 i0 p- q* _( x
数字输入
& U+ @, |1 k$ y3 z' a! x0 i% A
& }: f' x" W6 k2 _' J6 ? 1 t6 | q6 M* C: d! H
声卡数字输入流程示意图
( A1 ^6 [# j! z9 T; e: B1 ]% A9 U例如要录取MD的音乐节目,就需要使用到数字输入方式。在某些录音棚中,会有外置的ADC与声卡相连,此时录音,声卡也需要用到数字输入方式。数字输入的流程很简单,将输入的信号变成文件保存,其关键流程就是经过主芯片的转换并传送到系统总线。% _! H7 F' d# B' {+ V8 k5 _
: ^2 E* z* [! P, f
回放方式
& X K$ }% h1 [+ E/ X
% @3 V% K8 m3 M7 _ J) J 声卡回路方式的流程示意图1 B3 K% J. S- |* s0 C
+ a& p% T+ E/ a- F6 i6 o! J" N8 k使用一根双3.5mm头的线材将声卡的模拟输出和模拟输入(Line in)连接起来的方式被成为回路,主要用于测试声卡的一些指标,可以看成是模拟输出加模拟输入的流程集合,这种方式不具备实用价值,除了测试之外没有人会这么用。这种流程太长,双3.5mm头的线材的质量会严重影响测试结果,其实很难测试到声卡的真实表现。- Y5 z' N6 |! n: n
! j3 a/ s3 [) @! m
内录
% {- w; @/ t" Y" ]: z, X; ~& Z
) K3 b. ^0 b' \声卡内录方式的流程示意图
4 c5 a9 f# t2 K* |% ~6 \7 W" c. ]/ E4 i8 m K, q# W8 o
8 d; z+ w" S* G! ^2 }% f$ R' h* m" o; i
+ }& i) }! z, [5 |7 V
捕捉当前播放的数字信号的过程通常被成为内录,内录常常使用于测试,用于检测声卡的数字信号处理质量相当好用。在日常应用中,也可能用到内录,例如你录制实时播放的数字电台节目,就需要用到内录。& A3 v3 k/ S6 {! z( l: E
( I2 V# n4 g' x0 j; k7 J* ]! G8 f
) o5 l: T- G+ M4 | {
USB声卡的模拟输出2 @, H k" S' v. e
- w2 S. Y! J- \) B0 }( ]5 e; J4 I" ]! X
USB声卡模拟输出示意图
$ G% E' @% }: A7 q+ r3 w( ^& e$ `' t( j2 p0 {3 |$ x+ m
其实与内置声卡相比,外置的USB声卡在模拟输出时,其工作流程也大同小异,只不过是总线由PCI或者PCI-E变成了USB,其他流程完全一致。同样是经过主芯片到Codec或DAC后输出。也有少量的火线声卡,其工作方式同样与内置声卡相似,总线不同罢了。1 p3 q B) L8 i5 e8 R8 N8 S
以上讲述的几个例子都是基本的流程,在不同的主芯片内部,进行数据处理时,其内部流程也会有所不同。
8 w6 ?( l, q0 }. a8 `6 d1 G( Y& N0 x7 o* r' m. s0 z: ~/ B
2 v8 }6 a/ I1 k9 h7 q% _4 r* p主芯片内部的流程
$ B7 P! E" _& {, @. p g) m% n
`3 @8 n2 Y6 L; {音频加速器和纯I/O控制器的工作流程对比示意图; _3 Z' a7 k& M: j
7 @2 }- [+ S6 a# |) ?! z1 }5 y
0 n5 W5 c" t q. \' E 在《声卡入门·2009版 元件篇·认识主芯片》[作者: 夏昆冈 ] 一文中我们说到,主芯片又分音频加速器和I/O控制器两类,音频加速器集成了I/O控制器和DSP,这也导致了它们内部的信号流程会有所不同。I/O控制器很简单,就是输出和输出,而音频处理器的内部流程可能更为复杂,信号可能经过内部的DSP,也可能不经过,这需要看不同场合下声卡驱动的设定。在很多时候,不能依靠简单的硬件来区别其工作流程,因为软件可以让CPU来模拟DSP的工作,即便使用的是基于纯I/O控制器的声卡,它在打游戏的时候,其输出流程中一样会出现一个基于CPU模拟的DSP模块。
$ y t! C; S4 ]6 j
! Y, ~5 t. O9 x, F媒体播放器位于流程的什么位置?/ \6 G! A3 d( {' ]
& |2 a) ]1 W5 v+ y
声音的输出,不能单纯依赖硬件得以实现,其中播放器是非常重要的一个环节,但这个环节,有位于整个流程的什么位置?! O! V/ ~' `; }1 P$ u
2 u! r! R9 { o
播放器到声卡示意图) } B$ d, A1 m
# U% Y3 E) O1 o8 H7 n1 q# R. [
( @. p1 Z9 K" E+ u8 K
2 ?, a/ w9 M3 G4 [; q; `这个环节位于输入到声卡之前。播放器读取存储器上的文件,并进行解码,然后输出到设定的声卡。在这之后,声音的处理均与播放器无关。) @% o% C9 a) I& J J; T
播放器的DSP 插件,又位于流程的什么位置?
, f" ?- e2 r& ~8 r4 `4 _
* M% D7 D" U- q+ k" }) A. v2 X& FFoobar2000音频播放器的工作流程示意图! ]- P3 M1 ~2 S R7 u1 D, |% q7 ~
/ n/ \* s) K9 a7 ]/ H1 i1 t3 P% ]# i: d5 x. M
以Foobar2000为例,在其读入存储器文件数据后并完成解码后会直接输出,如果加载了DSP插件,就会多一次处理。假设你使用的是X-Fi声卡并开启了环境音效,使用Foobar2000也开启了某个DSP插件,此时,你听到声音,是经过2次DSP处理过的,一次处理,是对输入声卡之前的信号进行处理,即Foobar2000的DSP处理,另外一次就是来自声卡主芯片内部的处理。
% N2 Q% R: O4 \* b% t9 X$ D& X: Q流程暂且讲到这里,下一篇重点是一个与流程密切相关的环节,SRC。
* {: B- ~ F1 z- w( b
) Q b3 Y& N( ?& E) x: @仅供学习交流之用,版权归原作者公司所有,
" R) a* L" q! x& F* |不可用于商业盈利用途,否则一切后果自行承担!2 D; p+ T' F: \1 v
/ H& [$ r. @6 b, |, P/ p* r
# d* q8 J+ s, D; C7 P1 Q
, t# x& b; |( {
- y! X0 i: t% X% K" f
& g7 @% X$ S6 @. o* P p$ J/ } |
|