拙网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 279|回复: 0

有关“音质”、输出方式(DS、WASAPI、ASIO)

[复制链接]

949

主题

1001

帖子

3736

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3736
发表于 2018-7-18 16:21:44 | 显示全部楼层 |阅读模式
先说一下音质好坏,因为是用来听的,首先你要听得出。虽然我的耳朵不是很好,但是我相信会有人的耳朵十分地敏锐。不过为求严谨,还是可以先做一个测试,内容很简单,做一个普通CD音质的无损音轨和192k VBR(foobar转换器有预设的V2质量等级)mp3的ABX测试即可。你真的,能听出区别吗?
暂且不谈这个,因为有好的那就尽量用好的吧,我也会这么想。


接下来要说的是,音轨的构成,这里以普通CD质量音轨为例。我们知道,不论我们有的是未压缩的WAV / AIFF文件或者无损压缩的音轨,最终听到的都是两声道pcm音轨,那么这里涉及的要素无非就是:
bit depth(位深):16 bit
sample rate(采样率):44.1kHZ
在回放时,我们希望得到什么?
很简单,就是未经重采样,即位深和采样率不变的音频数据能到达声卡驱动端。如果仅仅如此,那么也很简单!如下设置即可,至少,不会重采样




下一点,延迟问题。关于这个,需要知道的是,你是在播放,而不是在实时做声音编辑,所以这一点真的很重要吗?我的观点是,完全不重要。
依旧是,暂且不谈这个。


下面说正题,即输出方式。关于这个,百度百科WASAPI条目有介绍,我看了之后感觉算是百科比较少见的较好的文章,当然其实看了底部参考链接发现其实是照搬他人的博文。本来我也了解得也不是很细致,不过为了写帖子查了一些资料(当然大部分看不懂...)


上图来源为MSDN,百科标注说是UAA架构图,但其实是User-Mode Audio Components条目配图。可以看到的是,上面有很多API供选择。关于什么是User mode、Kernel mode,大致如下所示,其实是有关process(进程)的内存使用方式,涉及到ring保护机制,我感觉这个已经远超作为普通用户所需要了解的内容了.....




输出方式的选择,其实就是foobar使用什么API来作为输出。
Directsound输出下,foobar会使用的directsound API来传输,解码数据经过shared mode(共享模式)路径到达系统音频引擎处理后输出。shared mode下,不同的声音大多都是通过directsound来输出,那么音频引擎会混音。如果采样率和位深与输出格式不同,那么就会重采样。这里需要注意的是,大多数情况下,除了个别系统音效,不会有别的声音出现;而输出端如我上面所述设置相应的匹配后也不会重采样


WASAPI,全称Windows Audio Session API,本身并不代表exclusive mode(独占模式)。事实上,Vista之后走Directsound其实本身就是相当于一个Audio session,走的是共享模式路径。Foobar的输出模式虽然没有写明,但是实际上WASAPI输出是特指独占模式。可以从User-Mode Audio Components图上看到,WASAPI是下层API,foobar选择这个输出之后,直接和这个API传输,走独占路径。显而易见的(好处?)是,windows系统音频引擎被绕过了。


绕过音频引擎的副作用,就是如果音频格式声卡驱动如果不支持,那么久无法播放。排除个别罕见格式,典型的例子就是多声道音频无法播放。


ASIO,“专业音频”的驱动,作为第三方声卡驱动存在,当然也会提供API。然而我看来看去,似乎好处总是在说低延迟。ASIO4ALL驱动?具体我没有了解,我也不感觉有必要去了解。不过有一点还是令人感到疑惑不已,就是它的实现方式,为何可以在任何声卡上做到?从其主页的部分内容可以看到,似乎用的是WDM audio driver,而WDM即Windows Driver Model,所以实际上用的依旧是windows的API,只不过没有使用UAA?WDM audio architecture是基于KS(Kernel Streaming)的东西,另外值得一提的是,微软的UAA是本着彻底替代WDM audio driver的打算来设计的,那么这个驱动的效果我不敢妄言,但是心存怀疑。


不论使用什么,你总得知道你自己在用什么和为什么要用
参看ASIO4ALL的FAQ第一条
问:这是做什么的?
答:如果你不知道你为什么需要ASIO驱动,那么可能你并不需要,或者你来到这里只是一场意外。


结尾的内容,我想就从别处照搬两点内容吧。下面的东西其实就是我最早看到的相关知识并且让我暂时不再深入研究输出方式的内容。(渣翻见谅)
hydrogenaudio wiki:Quality gains are questionable at least. In most cases the differences are irrelevant unless the output is digitally captured back and needs to be bit-exact for further processing.
音质提升至少说来是存有疑问的。一般说来区别无关紧要,除非是要精确数字捕捉之后进行下一步处理。


foobar component:ASIO output(作者:Peter Pawlowski)
Contrary to popular "audiophile" claims, there are NO benefits from using ASIO as far as music playback quality is concerned, while bugs in ASIO drivers may severely degrade the performance.
与“发烧友”常常宣称的不同,使用ASIO输出不能带来音质方面的提升,与此同时ASIO驱动的bug反而可能带来严重的反效果。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|抱朴守拙BBS

GMT+8, 2025-5-26 05:19 , Processed in 0.191054 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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