声卡入门·2009版 声卡的基本工作流程
夏昆冈 于 2010.03.01 09:26:34 | 源自:www.soomal.com | 版权:原创 | 平均/总评分:09.40/47

从存储器上的二进制文件,到声卡发出声音,这其中有一个数据流动转换的过程。不管声卡的界面是PCI还是PCI-E,或者是USB的,它们的工作流程基本一样。本篇着重讲讲声卡的工作流程。

模拟输出

  • 模拟在港台称为类比。模拟输出是我们使用得最多的输出方式,相比数字输出方式,它无需外接任何解码设备就能完成声音的输出。系统通过系统总线(例如PCI)传送数据到主芯片(I/O控制器或者音频控制器),然后输出数字信号到Codec或者DAC进行数字信号到模拟的转换,再通过声卡上的模拟输出插座输出。

    整个过程为,总线->主芯片->Codec或DAC->输出。在最后一个环节,会有运放参与其中的工作,对信号进行放大,但这个环节,并不是一定需要的。

    数字输出

  • 相对模拟输出方式,数字输出少了一个数字信号到模拟的转换过程,直接由声卡的光纤或者同轴输出端子和外置DAC通讯,数字模拟信号的转换过程交给了外置组件。

    模拟输入

  • 插上麦克风录歌就是一种单纯的模拟信号输入的过程。在这个过程中,Codec和在输出的任务不一样,而是完全相反的,麦克风只能提供模拟信号,要被主芯片接受必须经过模拟信号到数字信号的转换,这个转换过程被称为ADC(注:ADC在用于硬件名称时,是指的模拟数字信号转换器),主芯片接受信号后传递给系统总线。Codec在此流程中担当的工作也可被专用的ADC芯片取代。

    数字输入

  • 例如要录取MD的音乐节目,就需要使用到数字输入方式。在某些录音棚中,会有外置的ADC与声卡相连,此时录音,声卡也需要用到数字输入方式。数字输入的流程很简单,将输入的信号变成文件保存,其关键流程就是经过主芯片的转换并传送到系统总线。

    回路方式

  • 使用一根双3.5mm头的线材将声卡的模拟输出和模拟输入(Line in)连接起来的方式被成为回路,主要用于测试声卡的一些指标,可以看成是模拟输出加模拟输入的流程集合,这种方式不具备实用价值,除了测试之外没有人会这么用。这种流程太长,双3.5mm头的线材的质量会严重影响测试结果,其实很难测试到声卡的真实表现。

    内录

  • 捕捉当前播放的数字信号的过程通常被成为内录,内录常常使用于测试,用于检测声卡的数字信号处理质量相当好用。在日常应用中,也可能用到内录,例如你录制实时播放的数字电台节目,就需要用到内录。

    USB声卡的模拟输出

  • 其实与内置声卡相比,外置的USB声卡在模拟输出时,其工作流程也大同小异,只不过是总线由PCI或者PCI-E变成了USB,其他流程完全一致。同样是经过主芯片到Codec或DAC后输出。也有少量的火线声卡,其工作方式同样与内置声卡相似,总线不同罢了。

    以上讲述的几个例子都是基本的流程,在不同的主芯片内部,进行数据处理时,其内部流程也会有所不同。

    主芯片内部的流程

  • 在《声卡入门·2009版 元件篇·认识主芯片》[作者:夏昆冈 ] 一文中我们说到,主芯片又分音频加速器和I/O控制器两类,音频加速器集成了I/O控制器和DSP,这也导致了它们内部的信号流程会有所不同。I/O控制器很简单,就是输出和输出,而音频处理器的内部流程可能更为复杂,信号可能经过内部的DSP,也可能不经过,这需要看不同场合下声卡驱动的设定。在很多时候,不能依靠简单的硬件来区别其工作流程,因为软件可以让CPU来模拟DSP的工作,即便使用的是基于纯I/O控制器的声卡,它在打游戏的时候,其输出流程中一样会出现一个基于CPU模拟的DSP模块。

    媒体播放器位于流程的什么位置?

    声音的输出,不能单纯依赖硬件得以实现,其中播放器是非常重要的一个环节,但这个环节,有位于整个流程的什么位置?

  • 这个环节位于输入到声卡之前。播放器读取存储器上的文件,并进行解码,然后输出到设定的声卡。在这之后,声音的处理均与播放器无关。

    播放器的DSP 插件,又位于流程的什么位置?

  • 以Foobar2000为例,在其读入存储器文件数据后并完成解码后会直接输出,如果加载了DSP插件,就会多一次处理。假设你使用的是X-Fi声卡并开启了环境音效,使用Foobar2000也开启了某个DSP插件,此时,你听到声音,是经过2次DSP处理过的,一次处理,是对输入声卡之前的信号进行处理,即Foobar2000的DSP处理,另外一次就是来自声卡主芯片内部的处理。

    流程暂且讲到这里,下一篇重点是一个与流程密切相关的环节,SRC。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    210.021.043.***
    210.021.043.***
    发表于2013.12.04 08:35:37
    19
    03
    发表于2010.04.14 13:26:36
    17
    03
    发表于2010.03.02 09:13:23
    16
    03
    图文并茂啊
    发表于2010.03.01 20:31:08
    15
    03
    发表于2010.03.01 19:37:52
    14
    10
    内含嵌入式文章,系统自动隐藏——详细阅读
    发表于2010.03.01 17:00:28
    13
    “整个过程为,总线->主芯片->Codec或DAC->输出。在最后一个环节,会有运放参与其中的工作,对信号进行放大,但这个环节,并不是一定需要的。”

    DAC之后的模拟输出电路,运放确实不是必须的,甚至个别较低档次的DAC会集成运放(例如TDA1305,官方文档推荐的其中一些输出电路就是不使用运放的)。但假如模拟输出电路有运放的话,对于模拟信号来说是一种很好的缓冲--提高输出电压、提供更大的输出电流,这对于使用长信号线和直接推耳机的用户来说是十分必要的(可以确保低频的质量)。当然,增加运放就意味着增加成本,所以,一些使用VIA Codec的低端声卡,其模拟输出电路是没有运放的。
    发表于2010.03.01 15:50:46
    11
    假如你对帝盟MX400有非常深刻的了解的话,你就会知道主模拟声道输出是靠PCM1725(在ESS Codec右上方的,长方形的小芯片)这个DAC的,而不是靠ESS的Codec。也就是说,正确的主声道的模拟输出流程应该是DSP->PCM1725->运放->主声道的模拟输出接口。

    对于3、4声道来说,第一张图的信号流程是正确的。
    发表于2010.03.01 15:42:25
    10
    发表于2010.03.01 13:55:13
    9
    03
    发表于2010.03.01 12:00:17
    8
    03
    发表于2010.03.01 11:22:26
    7
    发表于2010.03.01 10:31:45
    4
    谢谢。
    发表于2010.03.01 10:12:40
    3
    10
    发表于2010.03.01 09:41:56
    2
    夏老师,声卡有货了能发申通快递吗?
    发表于2010.03.01 09:29:54
    1
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    9485 为防止广告机贴垃圾,不得已而为之
    表情
    正文