Jack 中的“32 位浮点单声道音频”
Posted
技术标签:
【中文标题】Jack 中的“32 位浮点单声道音频”【英文标题】:"32 bit float mono audio" in Jack 【发布时间】:2011-09-05 02:18:39 【问题描述】:我在玩Jack,我注意到默认音频类型JACK_DEFAULT_AUDIO_TYPE
设置为“32 位浮点单声道音频”。
我有点困惑:IEEE 定义了大约从 3.4E–38 到 3.4E+38 的 32 位 C 浮点范围,我想知道 jack_default_audio_sample_t
可以的最大和最小“未失真”幅度是多少持有该音频类型。例如,如果某个 DSP 算法给了我 [0,1] 范围内的样本,我该如何正确地在它们和 Jack 的格式之间进行转换?
【问题讨论】:
浮点音频被标准化为范围 –1..+1。 【参考方案1】:在浮点数中进行信号处理操作是很常见的,然后将结果缩放并转换为 16 位或 24 位整数,然后再将它们发送到 ADC。例如,在浮点中实现 IIR 滤波器意味着您可以降低对系数量化的敏感度。或者,如果您正在执行 FFT,则可以通过浮点计算获得更大的动态范围。
对于 16 位编解码器,通常的转换方式是在数据来自 ADC 时执行x_float = x_int * (1.0/SHRT_MAX)
,在发送到 DAC 时执行y_int = y_float * SHRT_MAX
。对于 24 位编解码器,您需要定义 ADC_MAX = (1 << 24) - 1
。
在使用 JACK 的情况下,我猜框架会为您处理这种转换,因此您应该看到 +/-1 范围内的浮点值,并将其反馈回相同范围内的值。
【讨论】:
以上是关于Jack 中的“32 位浮点单声道音频”的主要内容,如果未能解决你的问题,请参考以下文章