X位深度到底是什么意思?

信息处理 位深度
2022-02-13 15:03:52

我不确定我是否理解音频中“位深度”的含义。

正如我在许多音频应用程序中看到的那样,音频样本值(未失真时)介于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”。所以我需要缩小可能的输入和输出来避免这样的错误。但首先我需要了解如何做到这一点。

提前非常感谢任何帮助。最好的祝福

1个回答

位深度通常应用于定点表示。16 位意味着数字可以从 -2^15 到 2^15-1,因此从 -32768 到 +32767。对于 -128 到 +127 的 8 位。

如果将最大值标准化为 1,则最低有效位 (LSB) 值只是相反的值,16 位为 1/32678 = 3.0518e-05 或 8 位为 1/128 = 0.0078125

浮点的工作方式完全不同。32 位浮点数具有 24 位尾数和 8 位指数。所以它基本上是一个 24 位整数与一个 8 位比例因子相结合,得到“优化”并在每个浮点运算上重新计算。https://en.wikipedia.org/wiki/Floating-point_arithmetic