发新话题
打印

[其他] 解码器的数字音量衰减有损音质吗? 需要加前级吗?

简单点可以用这个

TOP

引用:
原帖由 宇文元夕 于 2019-3-28 15:28 发表

我的理解是量化误差会造成信噪比降低,是全频段的信噪比,不仅是高频。
错误

一个正常的音量衰减做法,是在超高频加入一定量的噪音,通过噪音来实现量化误差的最小化。

这其实也是DSD的思路,DSD只有一比特,低得不能再低了,但为什么我们听不到毛刺?噪音全部在高频区。一样可以获得良好的细节。

所以,我认为,对数字衰减的恐惧,属于无良商家的教育,和某些不良产品实现的共同后果。技术上,根本不存在任何问题。

TOP

引用:
原帖由 吴渭 于 2019-3-28 23:19 发表

这个理解起来有点绕,能不能多聊聊?
信号处理的基本常识。降bit有无数种方法。

1:最傻的,直接在每个采样减位数,也就是楼上有人说的降低“全频段的信噪比”:


2:聪明一点的,和上图同样的比特数,通过引入高频噪音,来保留低频细节:


数字音量衰减,只要不是用最傻的办法来做,采用正确的Gain Structure,完全可以获得完美的音质。

如果数字降bit的算法基石有问题,那DSD早该死了。DSD就是数字比特数衰减到极限1bit,同时高频噪音增加到极限的结果。一比特理论上信噪比只有6db,但通过高频噪音抖动之后,人耳可闻频段信噪比可以达到140db。

PCM没有那么多的高频空间可利用(尤其是44.1的,基本噪音只能集中在16k ~ 20khz),因此PCM在升频之后做数字衰减更合适一些。

TOP

引用:
原帖由 空山秋雨 于 2019-3-29 10:15 发表
很不幸,PChifi玩家最常用的软件调音与OS音量调节正是第一种最愚蠢的直接降低位深方式,只能做升频处理或者改用解码器音量调节。
我不确定,需要看foobar源代码。

你这个说法有任何证据?

TOP

引用:
原帖由 la2ygoo 于 2019-3-30 19:33 发表
pcm格式其实就是按采样率记录数字,16bit记录范围是0到65535,32bit是0到4294967295。减音量就是减少这个数字,比如-20db就是除10,-40db就是除100。每除一次小数点后的数就被丢弃了,这就是所谓的丢bit。
比如要减60db的音量,某16bit采样记录的数字是11111(0010101101100111),-60db就变成了11111/1000≈11,再+60db就是11000。这和原始采样不同,就是所谓的量化噪音。
如果转成32bit就是11111*65536=728170496(00101011011001110000000000000000,多了16个0),再-60db就是728170496/1000≈728170,再+60db就是728170000,转回16bit是728170000/65536=11110.992431641≈11111。看到了吗?无损!
不考虑Noise shaping,谈数字精度,就是很傻很天真

做个思考题:
1比特的DSD能不能做数字衰减?
如果有的话,算法大概是什么?

TOP

引用:
原帖由 la2ygoo 于 2019-3-31 00:46 发表

噪声整形不了解,一般播放软件减少衰减音量时信噪比损耗的手段是抖动吧,高比特时不是那么必要吧?foobar都只有16bit的时候才有抖动,24bit和32bit的时候,应该就是我说的那种最原始的方法。 24bit时,量化噪音就比一般dac底噪 ...
如果不了解噪声整形,就没法理解数字音频。数字音频绝不是直接丢个尾bit那么简单。16bit音频的可闻动态完全可以超过96db的理论极限。

下面最基本的例子。8比特的音频,使用噪声整形,-66dbfs的时候还能听清楚人声,而8比特的理论动态只有-48db。如果按你的naive(天真)的算法,-66db的时候去bit早就已经降为0了。
https://www.audiocheck.net/audiotests_dithering.php

可以理解的是,对数字音量的恐惧来自于:

你不知道你的数字音量是用最傻的算法,还是用最聪明的算法。

如果是最傻的算法,比如32楼描述的那种,当然有损音质。不但有量化噪音,而且有量化失真。

如果是最聪明的算法,唯一的副作用就是一些噪音,而这个引入的噪音完全可以和模拟器件相媲美。

TOP

引用:
原帖由 wjh19810517 于 2019-3-31 02:18 发表
从头看到尾,而且看了两遍,还是没看明白有没有必要加个单独前级。
潜水多年,今天第一次发问,我想加个胆前级,不知可行否。
胆前级,当然可以

既然是调味党,就是一个摸索的乐趣。

TOP

引用:
原帖由 la2ygoo 于 2019-3-31 09:10 发表

如果降bit了,当然需要厉害的算法减少失真,比如32bit音频只用32bit来衰减144db音量(其实就是文件体积限制,为什么费尽心思搞mp3、aac、各种蓝牙、mqa?为了压缩数据嘛,简单粗暴傻的wav音质完爆这些格式)。但是16bit文件按24b ...
总结一下,你的观点就是“bit多了就随便降都不要紧”。这不是我儿子都会的计算机水平么。。

问题是
1:你举的例子算精度是错的,你那个是计算机初级基本常识,不是数字音频的初级基本常识。数字音频的实践和你的例子没有太大关系。
2:需不需要厉害的算法不是你说的算的。按你的算法,就算16bit按24bit来播放,只有音量恰好翻倍或者减半的情况下才能无损播放。其他的情况会产生量化失真,或者叫Aliasing。

信号处理的常识比计算机基本常识还是要高一点的。我看你基础不错,有兴趣可以多了解一点,而不是做无谓之争。至少先了解一下DSD怎么实现超过6db动态再聊数字音频吧?

TOP

引用:
原帖由 la2ygoo 于 2019-4-1 22:21 发表

实际就是那个网页的8bit的文件在windows里用高bit播放,降低音量没明显的失真和噪音啊。
我刚才自己转了一个8bit的音乐,用32bit播放,低音量对比高音量也没有明显的失真和噪音。
我用Audacity设置采样率转换器:低质量( ...
听出什么效果取决于听力和器材,他用什么算法,只能依靠分析。

这里有一篇Win10 Mixer的音质分析。简单总结,Windows的DS混音/音量实测效果很烂,但很多人一样觉得听起来没大问题(包括我自己)

http://archimago.blogspot.com/20 ... 10-audio-stack.html

TOP

引用:
原帖由 la2ygoo 于 2019-4-1 23:03 发表

16bit文件用32bit衰减音量再提高,确实是可以无损还原。
只用16bit不可能吧?
理论上确实是这样。

但“衰减音量再提高”这个操作本身类似于碰瓷。。。也不是音量衰减的本意。音量衰减,本身就是降低音量的意思。

这么说吧,假设不采用噪音整形之类的增加实际信噪比的手段,仅仅是用尽96db的理论信噪比,也够用了。一般人听音位的环境底噪就是30db左右,加上96db可以达到126db SPL@0dbfs。远远大于正常人的听音音量。

TOP

发新话题