|
ASIO & Kernel Streaming (内核流)
理论上, ASIO的主要目的是降低音频数据延迟, 同时作为系统中独立的音频通道可以避开DS或其他通道, 使得ASIO下的程序可以不受系统中正在运行的其它程序的干扰. 本质上是为摆脱OS对硬件的集中控制, 以实现在音频处理软件与硬件之间进行多通道传输的同时将系统对音频流的响应时间降至最短.
另外, ASIO与KS比较相似, 都是以设法绕过Windows操作系统对硬件设备的控制, 直接与硬件端口取得通讯的思路来实现提高响应速度的目的. 不过ASIO要比KS做得更彻底些, 有人把KS比成用高级语言实现的程序,把ASIO比为用汇编代码构成的程序. 毕竟ASIO不仅在通道上更为直接, 还需要硬件芯片的支持, 从这一点上讲, 延迟比KS低, 效率相对也更高. Windows 自有的 MME 驱动程式其延迟时间为 200~500 毫秒, DirectSound 为 50~100 ms, Mac OS 的 Sound Manager 则为 20~50 ms, 使用 ASIO 的情况下, 缓冲器依照设定的不同可以小于10 ms, 也有因环境较佳而达到1 ms的情况. 因此, 在录音作业与音乐制作上, 理论上可达到实时处理的效果.
关于几个ASIO版本的主要区别:
ASIO 2.0: ASIO 1.0的后继规格, 最大的不同点是支援输入信号在合适的音频硬件中直接监听, 以达到零延迟的效果.
ASIO 2.1: 由于SONY桑的影响, 增加DSD对应, 除此之外并没有其它的变更...
所以, 能用ASIO就用ASIO, 前提是你的硬件能支持ASIO, 而不是光加一个ASIO驱动能放声就完事, 4ALL其实没多大意义.
ASIO & ASIO 4ALL
还有一个是关于ASIO4ALL的, 因为老是有人分不清和AISO的区别, 这里提醒一下. 它其实是让不支持ASIO的设备通过模拟的方式支持ASIO的一个驱动程式而已, 换句话说, 只具有AISO软性方面的优势, 也就是说与KS并没有本质上的不同. Wuschel倒是声称ASIO4ALL能使几乎所有的声卡以及AC97板载声卡都能支持ASIO, 达到专业音频卡才能达到的低延迟. 其实这里有个小模糊, 应该说是"看起来像是用了所谓的ASIO, 但是并不完全独立"... 所以, ASIO4ALL并不是让声卡硬性支持ASIO, 从这点上讲, 必然要比ASIO差.
ASIO & WAS API (不知道有没有人念瓦萨匹...)
WAS API (Windows Audio Session API) Windows Vista开始加入的UAA(Universal Audio Architecture) 音频架构所属的API, 主要为避开SRC(Sample Rate Conversion取样率转换器)的干扰. 好比在OS的公共音频通道上划出一条专用通道并只允许自己一辆车走. 虽然还在公用道上, 但没有其它车辆干扰, 即程序独占. 如果你设置fb用WAS API, 那么fb独占WAS API通道, 别的程序进不来, 也干扰不了. ASIO就像不铺设在国道上的自家专用车道(好比自己从家门口修一条路回老家, 别的车还不能走), 即不经过OS公共音频通道.
所以, 在WinXP(NT6.X以下)环境中, WaveOut / DS < ASIO4ALL / KS < ASIO < Direct Drive;
在Win7(NT6.X以上)环境中, WaveOut / DS < ASIO4ALL / KS < WAS API < ASIO < Direct Drive.
不过影响最终听感和音质的不仅仅是通道自身特点, 例如软硬件的设置和匹配问题(催化剂 CPU 文件参数 解码器耳放设置等), 有时影响反而比通道本身要大得多.
ASIO最有价值的地方在于录音, 它的最大特点在于声音数据在通道里传输快, 延时小. 毕竟音频在现有的以电子为信号传递介质的计算机上也是需要若干毫秒传输时间的, 精确录音和声音混音合成在这点上变得非常敏感. 但在播放上, 它的贡献也就是信号干扰小, 较纯净, 相对保真. 即便是这样, 也要比所谓的WASAPI KS等对音质和延迟来得优秀.
DirectSound、Kernel Streaming、WASAPI 都是API中的一种. WaveOut、DirectSound、Kernel Streaming属于WDM通道. 当然, 最好的方式是用直驱式播放器->独立解码器(胆机/石机)->电源外置的独立耳放->耳机/音箱, 连通道都省了. 不过以目前主流的播放器来说, 包括fb, cPlay等没有一款是直驱播放器(耳机大家坛有网友个人作品 我看了以后发现使用限制较大 所以没推荐), 因此, 有条件ASIO的尽量ASIO.
Universal Audio Architecture
下图为UAA架构图(感谢度娘), 作为一种总线驱动(Bus Driver for High Definition Audio, belong to PCI Device), Microsoft要求所有音频设备的厂商必须遵循UAA的架构来开发驱动程式,为了配合UAA架构,Vista重建了音讯处理流程,原本需要写在Kernel Mode里以支持声卡工作的许多功能, 现在都必须改写到User Mode里, 进而增加了系统的稳定性. 大家也可以看出User Mode和Kernel Mode的重大区别. UAA驱动的微软补丁号为KB888111.
关于ASIO,ASIO4ALL,KS,WASAPI的主要区别及UAA的介绍
从图中我们可以看出从Windows Vista开始的音频架构发生了大幅变化, 主要的Kernel Mode只剩下音效驱动的部分, 而过去微软所制定出来的MME以及DirectSound API 便不再起直接作用, 取而代之是以WASAPI来模拟这些旧有的API. 因此, 若系统不是XP, 并不建议在后续的WinOS中继续使用KS和DS通道, 而直驱仅利用解码器和耳放驱动对音频实现硬解码, 仍是最佳的选择.
|
|