使用24位音频的“标准方式”是什么?嗯,没有24位数据类型,真的。以下是我脑海中浮现的方法:
你是怎么解决这个问题的?
发布于 2013-07-05 05:59:58
将它们存储为32位或64位的signed int
s或float
或double
,除非您有空间意识并关心将它们包装到尽可能小的空间中。
音频样本通常显示为24位音频硬件,因为这通常是DACs和ADC的分辨率--尽管在大多数计算机硬件上,发现4位中的最后3位随机地受到噪声的撞击并不奇怪。
数字信号处理操作--这通常是在获取样本的下游发生的--所有操作都需要添加加权和样本。存储在整数类型中的样本可以被认为是定点二进制,而隐含的二进制点位于任意点--您可以战略性地选择这个位置来保持尽可能多的精度。
例如,两个24位整数之和产生一个25位的结果.在8个这样的添加后,32位类型将溢出,您将需要通过舍入和右移来重新正常化。
因此,如果您使用整数类型来存储您的样本,请使用您所能使用的最大值,并以最不重要的24位开始。
浮点类型当然照顾这个细节为你,虽然你有较少的选择什么时候发生肾畸形。在硬件支持的情况下,它们是音频处理的常用选择。单精度float
具有24位尾数,因此可以在不丢失精度的情况下保存24位样本。
浮点样本通常存储在范围-1.0f < x < 1.0f
中。
https://stackoverflow.com/questions/17489158
复制