我不确定我是否理解音频中“位深度”的含义。
正如我在许多音频应用程序中看到的那样,音频样本值(未失真时)介于minValue = -1.0f;和之间maxValue = 1.0f;。
0.0f我需要知道一个样本旁边的最小可能值。
我认为“x 位深度”意味着一个样本可以用 2^16 个不同的值表示。我对吗?
那么这是否意味着最小可能的样本值变化是(maxValue - minValue) / (pow(2.0f, x))???那么对于16位深度是2.0f / pow(2.0f, 16.0f)吗?哪个是4.6566128742e-10?
我脑子里一团糟,因为我什至对简单的float变量也有问题。据我所知,它有 32 位。所以最大值应该是 2^31 (和一位符号),即2147483647. 因为int它有效,但是float最大值怎么可能3.40282e+38呢?这比2147483647.
所以让我们想象一下我有 32 位深度的音频。那么最小可能的样本值变化是2.0f / 2147483647.0f,或者可能是2.0f / 3.40282e+38???
另一个问题是:我应该真的分开(maxValue - minValue) / (pow(2.0f, x))- 这意味着位深度关注幅度。或者它关心获得 - 这意味着我应该计算它1.0f / (pow(2.0f, x))?
请帮助我理解它,因为我的数学计算(很多对数和幂)给了我很多“NaN”和“inf”。所以我需要缩小可能的输入和输出来避免这样的错误。但首先我需要了解如何做到这一点。
提前非常感谢任何帮助。最好的祝福