处理 24 位音频的“标准方式”是什么?嗯,真的没有可用的 24 位数据类型。以下是我想到的方法:
你如何解决这个问题?
最佳答案
将它们存储为 32 位或 64 位 signed int
s 或 float
或 double
除非您有空间意识并关心将它们打包到尽可能小的空间中。
音频样本通常显示为 24 位进出音频硬件,因为这通常是 DAC 和 ADC 的分辨率 - 尽管在大多数计算机硬件上,如果发现 4 位中的底部 3 位随机出现噪音,请不要感到惊讶。
数字信号处理操作——这通常发生在采样采集的下游——都涉及样本加权和的相加。以整数类型存储的样本可以被视为定点二进制,在某个任意点隐含二进制点 - 您可以战略性地选择其位置以保持尽可能多的精度。
例如,两个 24 位整数的和产生 25 位的结果。在 8 次这样的加法之后,32 位类型会溢出,您需要通过四舍五入和右移来重新规范化。
因此,如果您使用整数类型来存储您的样本,请使用最大的并从最低有效 24 位的样本开始。
浮点类型当然会为您处理这些细节,尽管您对何时进行重整化的选择较少。它们是可用硬件支持的音频处理的常用选择。单精度 float
具有 24 位尾数,因此可以保存 24 位样本而不会损失精度。
通常浮点样本存储在 -1.0f < x < 1.0f
范围内。
关于audio - 处理 24 位音频样本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17489158/