耳机俱乐部论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6778|回复: 1

[解码] Waveout、DirectSound、Kernel Streaming、WASAPI和ASIO工作原理归纳

[复制链接]

0

主题

0

帖子

0

积分

新手上路

Rank: 1

积分
0
注册时间
2022-5-8
发表于 2022-5-23 20:09:59 | 显示全部楼层 |阅读模式

感谢关注耳机俱乐部网站,注册后有更多权限。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 yangcan 于 2022-5-23 20:32 编辑

我把HIFI发烧友常用音频播放软件(Album Player或foobar2000)的输出模式大体归纳为两类:

  • 一、ASIO专用音频通道(第三方的音频流输入输出规范)
       Audio Stream Input Output 专业的音频流输入输出接口, 由Steinberg提出这个标准规范主要目的是降低音频数据延迟,同时作为系统中独立的音频通道可以避开DirectSound或其他通道,使得ASIO下的程序可以不受系统中正在运行的其它程序的干扰,本质上是为摆脱OS对硬件的集中控制,以实现在音频处理软件与硬件之间进行多通道传输的同时将系统对音频流的响应时间降至最短。


  • 二、WDM音频通道微软的规范)

  • WaveOut(微软早期提出的波形音频流输出方式,兼容性最好)
  • DirectSound(直接声音,简称DS, 微软Direct X的一个组合部分, 兼容性也不错,并且在有多个程序需要播放音频的时候能提供高可靠的保障)
  • Kernel Streaming(内核流,简称KS, 是微软底层使用的音频流方式,实际上它是以设法绕过Windows操作系统对硬件设备的控制,直接与硬件端口取得通讯的思路来实现提高响应速度的目的,能够起到输出效率高、输出延时低的效果
  • WASAPIWindows Audio Session API,Win7之上版本均已集成, WASAPI允许传输未经修改的比特流到音频设备,从而避开SRC(Sample Rate Conversion,取样率转换器)的干扰。 也就是说,图里的KMixer(混音器)已经被微软淘汰了,微软想让WASAPI做的其实就是想让它像ASIO那样,运行在它下面的程序可以不受系统中正在运行的其它程序的干扰。
[size=14.6667px]

工作原理图

工作原理图

工作原理图(google翻译)

打个比方好理解,音频数据流是车辆,Windows上的音频输出模式是道路,那么:


WaveOut、DirectSound就好比最一般的通用车道,各类车型混行(音乐播放软件、系统提示音、浏览器音频等可以混合发声),音乐播放软件的音频流必然受到其它音频的干扰,损害音质。

Kernel Streaming 或 WASAPI好比微软在通用车道上规划出的一条公交车专用车道,只允许公交车走,不允许其它车辆走,公交车就是Album Player或foobar2000之类专业音频软件的音频流,减少了其它车辆的干扰。


ASIO好比是轨道交通公司在现有的城市道路上新建了一条全封闭的公交专用车道BRT,专供BRT公交车使用,拒绝其它一切车辆驶入,Album Player或foobar2000之类专业音频软件的音频流就行驶在BRT专线上,完全排除了其它车辆的干扰。

注:
查看原帖请移步 中关村在线  李靖
的文章
https://sound.zol.com.cn/528/5283168_all.html


回复

使用道具 举报

10

主题

2119

帖子

13

积分

中级会员

Rank: 3Rank: 3Rank: 3

积分
13
注册时间
2003-6-11
发表于 2022-5-26 08:30:44 | 显示全部楼层
现在已经都转到网播去了。
感觉PC Low-fi的人越来越少了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

耳机俱乐部微信
耳机俱乐部微信

联系我们|有害信息举报:010-60152166 邮箱:zx@jd-bbs.com|手机版|Archiver|黑名单|中国耳机爱好者俱乐部 ( 京ICP备09075138号 )

GMT+8, 2024-11-9 10:46 , Processed in 0.072459 second(s), 33 queries , Gzip On.

快速回复 返回顶部 返回列表