zpfbj0 发表于 2012-11-26 04:03

讨论采样频率、采样深度(位深)、音量调节对音质的影响

   最近看了好多文章,学习了一下采样频率、采样深度(位深)、音量调节等的概念和相关内容。于是有了以下想法和大家讨论学习一下。以Windows 7系统为基础。

   我手上的高质量音频来源主要有两类,一是CD音质,主要是无损音乐APE、FLAC格式的,采样频率44.1KHz,位深16bit;另一类是DVD音质,主要是dvdiso或dvdrip视频里面包含的音频,采样频率48Khz,位深16bit。

   一般比较公认的是如果声卡设置了不同于播放音源的目标输出频率,就会发生src(重采样),此时如果src不是整数倍的就必然会失真影响音质。如声卡输出设置为16bit,48KHz,则播放CD音质的音乐会发生从44.1KHz到48KHz的src产生失真;但如果声卡输出设置为16bit,96KHz,而播放的又是DVD音质的话,scr是从48KHz到96KHz的,虽然增加了处理过程,但不会失真影响音质。

   那么关于位深又是怎样的呢,如果音源是16bit,而声卡输出设置为24bit,位深增加的过程会不会产生失真影响音质呢?采样频率记录的是波形,如果重采样不是整数倍的那么重采样的取点就不对称,则会影响到波形引起失真。根据以上原理,则位深增加的过程如果不是整数倍也会引起失真。但位深记录的是声音的强度,其定义就是2的XX次幂,如16bit即2的16次幂=65536。即便只增加一位,也是2倍,因此无论怎样增加都是整数倍。所以单纯的位深增加不会失真影响音质。当然降低位深是会引起失真的,因为是从高精度到低精度,高位深原本存储的数据“没地方”放了。

   上面提到位深是为了引出下一个主题:音量。相关文章说播放器、系统音量等数字音量的调节是靠改变位深的值;并且音量的调节是衰减的,即100%音量是音源原始的值。前面提到了位深记录的是声音的强度,那么我把音量调节到50%时就是把位深的值都除以2减半。根据这个理论,调节音量也会引起失真,因为会有除不尽的情况,同时等于把精度也减少了(变成15bit了)。如16bit下某点原来的值为17/65536,音量调节到50%要除以2,变成8.5/32768。本来是能记录65536个级别的强度,现在变成32768级了,17/2除不尽,8.5要么上取整近似为9,要么下取整近似为8,总之都不是精确值,和原来有差别了。有些文章据此理论建议只调节音箱上的音量调节旋钮,电脑上的播放器如foobar2000和Window系统音量都放在最大,这样才能对音质影响最小。但又有文章称系统音量的调节不同于播放器软件,是通过声卡驱动调节的声卡上的模块,而且不同声卡的0db衰减不一定就是系统音量的100%,调节到100%反而会强制放大声音引起失真。而且还真的有些声卡给出了说明系统音量为xx%为0db,100%时为+xxdb。还有人称实际测试foobar2000音量放在xx%,系统音量放在xx%时音质最好,不过不知道是否盲测得出的结果有参考价值。

   关于音量的说法真是把我弄糊涂了。此外根据数字音量调节的理论,我又想到了一点,那就是看似无意义的增加位深是有意义的,其在调节音量时能减少精度损失。16bit的音源以16bit输出时,如果音量调到50%,则位深变为15bit;但如果以24位输出,同样音量调到50%,则位深变为23bit,精度明显要高得多!这一理论成立的前提是先增加位深再调节音量,否则就没意义了。不知道数字音量的调节是怎么个顺序,是否位深的提高在前呢?播放器音量怎样?系统音量又怎样?使用WASAPI独占模式时怎样?通过DirectSound使用共享模式时又怎样?

   另外还有一点,就是关于DVD音频的质量,按标准DVD如果是AC3编码应该是24bit,但我手头的无论dvdiso还是dvdrip都是16bit,不知是什么原因。一开始我还怀疑过是否解码有问题(播放器为potplayer),但后来使用MediaInfo查看也都是16bit,48Khz,没有24bit的。

   以上就是我对采样频率、采样深度(位深)、音量调节对音质的影响的看法,供大家讨论。期望能有高人解惑,如果能有这个领域的软件设计人员出面解释一下就更棒了。谢谢。

dloveao 发表于 2022-11-9 23:36

我最近也被调节音量苦恼。
是楼主的研究太过专业了?竟然没有跟帖..

genius_xp 发表于 2022-11-10 00:22

哈哈,这里比较少有人能回答你的问题了,原来研究技术的论坛关闭了,绿坛还是初哥多。
其实你看似的问题,你自己都给出答案了啊,音量问题就是你研究那个结论,有的系统是100%是0db,有的系统会增益,这个需要用设备实测,100%出来的电平是多少,有的系统100%出来还是负几db,还需要前级进行补偿。DVD是有24bit的,但是大部分资源是16bit,还有你用potplayer内置的解码其实是ffmpeg,这个ffmpeg的确会出现把24bit解析成16bit的问题,这个我在用蓝光盘源码输出时候就发现了,但是也有说法既然是源码输出了,16bit还是24bit都是传输数据流,实际位宽还是由前级解码来还原,可惜我前级控制界面看不到输入的码流是多少位宽的,所以无法印证这个问题。但是我发现用power dvd输出的音频质量要比potplayer 内置的ffmpeg强很多,动态范围大。但是power dvd画质不如potplayer+lav+madvr,madvr可玩性很大,尤其看低清视频时候,优化好后会很好。总结电脑作为音源时候,会碰到很多问题会影响音质。
wasapi模式时候,系统声音被使用wasapi接口的程序独占,当然现在wasapi也开放了共享模式(该模式非独占,其他声音也会混入),但是一般认为使用独占模式,独占音量完全受使用的程序音量控制,系统音量此时不生效。
Direct Sound模式系统会经过操作系统音频处理,会结果处理层,windows自带了一套声效滤镜,默认不开,但是经过改滤镜即使没处理也会对音频做一些量化加工,会损失一些弱细节,还有增加jitter,所以一般听歌优选wasapi,或者专业的ASIO api,但是ASIO很考研音频设备厂的驱动设计能力,差的驱动还不如wasapi来的稳定好听。
wasapi 还区分event 和push两种模式,前者细节多,后者韵味好,本质还是wasapi对音频流进行了的处理。
总结就是电脑要出好声,难度还是非常大的,软件层就有很多处理的坑就要过了。
至于音量,我一般都是100%,然后功放的前级调音量。如果你觉得100%过了,适当调低音量也未尝不可,因为功放的前级音量一般是电位器来限制电平的,步进式的话会分若干档,如16档,27档,甚至更高,这类电平变化不是线性的,是阶梯的,可能出现一档声音不够小,一档声音又偏大的情况,这时候通过系统音量稍微衰减可能会获得一个适中的响度,虽然软电平降低了精度,但是因为调整的幅度较小如95%,所以影响的听感还不大。如果是电子电位器,那么精度可以更高,可以实现100级甚至200级的调整范围,此时基本不需要系统端调整音量了,直接满电平输出就行。
碳膜电位器可以平滑调节,但是精度其实不足,也可以实现类似原理,但是左右声道的平衡度是一个大问题,导致被众多高级设备抛弃,但是也有少数HiEnd设备使用,他们使用的都是经过筛选的平衡度极好的碳膜电位器,碳膜电位器因为其出色的音乐质感,所以也有设备采用,只是测试成本大增。
其实最终不用在乎音量放多少了,还是根据自己听感来,没有绝对的正确,记住音响是为耳朵服务的,而不是视觉。

genius_xp 发表于 2022-11-10 00:25

补充,外接dac的话,有些ASIO设置后,可以让系统音量失效,你无论怎么调,都不会影响音量,这时候音量都是在dac端调整,或者去到功放前级调整。总之你想系统音量生效的话,其实是经过操作系统处理了,会劣化音质

dloveao 发表于 2022-11-14 05:40

genius_xp 发表于 2022-11-10 00:25
补充,外接dac的话,有些ASIO设置后,可以让系统音量失效,你无论怎么调,都不会影响音量,这时候音量都是 ...

我准备做一个只有一档的电位器,直接在线上焊电阻 帮忙看下可行吗?
http://erji.net/forum.php?mod=viewthread&tid=2285527

genius_xp 发表于 2022-11-15 22:43

dloveao 发表于 2022-11-14 05:40
我准备做一个只有一档的电位器,直接在线上焊电阻 帮忙看下可行吗?
http://erji.net/forum.php?mod=vie ...

不好,不同音乐的电平不同。在乎音质的选步进式电位器就可以了。电位器是分压电路,所以你至少要要有2个电阻才能做一个声道。步进式就是多个电阻做成的阶梯。

dloveao 发表于 2022-11-16 07:10

genius_xp 发表于 2022-11-15 22:43
不好,不同音乐的电平不同。在乎音质的选步进式电位器就可以了。电位器是分压电路,所以你至少要要有2个 ...

是的 就是两个电阻 参考了 shunt分流的实现了但只做一档。718厂 千分精度的电阻怎样?

dloveao 发表于 2022-11-16 07:16

genius_xp 发表于 2022-11-15 22:43
不好,不同音乐的电平不同。在乎音质的选步进式电位器就可以了。电位器是分压电路,所以你至少要要有2个 ...

是的 就是两个电阻 参考了 shunt分流的实现了但只做一档。718厂 千分精度的电阻怎样?

genius_xp 发表于 2022-11-17 03:10

dloveao 发表于 2022-11-16 07:16
是的 就是两个电阻 参考了 shunt分流的实现了但只做一档。718厂 千分精度的电阻怎样?

不清楚,不建议在线材上加电阻,会破坏线材,传输,引入新的emi。而且线材输入输出端有阻抗适配电路,并不是很好的处理办法,还是在原来电位器位置加入最好,你可以自己做步进式电位器,来做音量控制。

dloveao 发表于 2022-11-17 10:06

genius_xp 发表于 2022-11-17 03:10
不清楚,不建议在线材上加电阻,会破坏线材,传输,引入新的emi。而且线材输入输出端有阻抗适配电路,并 ...

谢谢,准备用秋叶原的单芯线试一下 再怎么折腾应该不会更差了 顺便拆开看看线的质量怎样

寂寞党 发表于 2022-11-17 10:21

讲的很好,但都是不重要的,外接解码,ASIO搞定,源码输出即可,HQ升频DSD,也是16/24升到1bit,所以都不重要!!!听歌,要么源码输出,要么升DSD输出!

genius_xp 发表于 2022-11-17 20:47

dloveao 发表于 2022-11-17 10:06
谢谢,准备用秋叶原的单芯线试一下 再怎么折腾应该不会更差了 顺便拆开看看线的质量怎样

信号线适合用多芯线,单芯线一般用在电源线上的多,不过HiFi电源线其实还是多芯的更全面。

test莱曼 发表于 2023-9-2 22:22

对于X-Fi声卡,比如Onkyo SE-300PCIE,Windows系统100%主音量的时候就是0dBFS,任何设置小于100%的音量都会损失bit depth。
然后怎么调音箱或者耳机音量呢?最好的就是用被动监听控制器passive monitor controller,推荐Heritage Audio Baby RAM,模拟音量电位器是4连平衡调节的。
通过上面的配置,同样的衰减,用监听控制器可以比用Windows减低音量听到更多的细节。

test莱曼 发表于 2023-9-16 21:11

声卡输出就选:1. ASIO源码输出;2. HQPlayer上混成DSD512.
页: [1]
查看完整版本: 讨论采样频率、采样深度(位深)、音量调节对音质的影响