任何人都可以说采样率和帧大小是如何相关的?

时间:2011-02-01 10:15:53

标签: c audio

有谁可以说采样率和帧大小是如何相关的?

我将spx文件解码为wav,采样率为10 kHz且为16位。在解码过程中应用的帧大小为640。 解码后的文件可在vlc中播放。但我想在Flex中播放该文件。

Flex仅支持44.1 kHz,22.5 kHz和11.2 kHz的速率。我想在解码过程中提高采样率。我知道如何在代码中做到这一点,但我想帧数也应该增加。我不知道这两者之间的依赖关系。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:3)

帧大小和采样率通常是正交概念。除非特定格式要求,否则它们不需要相互影响。

对于PCM .wav,帧大小始终为比特/通道*通道。在您的情况下,单声道16位,立体声32位。

此外,无需更改解码帧大小,因为您稍后应用重新采样。

答案 1 :(得分:1)

您混合了两个独立的任务:spex解码和重新采样。所提到的帧大小应仅被视为包含PCM样本的缓冲区。这些PCM样本应传递给重采样器(例如SSRC:http://shibatch.sourceforge.net/)。

答案 2 :(得分:0)

帧大小取决于用于压缩原始数据的编解码器。它将包含整数个样本(在这种情况下为320)。

如果我认为原始音频的帧大小等于样本大小是正确的。但是,一些编解码器会对一系列样本执行压缩。通常,帧大小越大,压缩数据所需的内存就越多,但可以实现更好的压缩。

您无法在解码过程中提高采样率,但您可以对已解码的音频进行重新采样。大概你实际上是在重新编码数据以将其发送给Flex?您需要查看用于重新编码的编解码器。您使用的是哪种编解码器?

答案 3 :(得分:0)

无论使用的通道数量如何,帧速率和采样率都相同。 因为那是TDM的目的。 在两个连续样本之间的间隙中引入了新的通道。 随着通道数量的增加,分配给每个通道的时间随着每个位所花费的时间而减少。 但是任何通道的连续样本之间的驯服间隙将保持不变,并且它将等于总帧时间。 即样本之间的时间间隔=帧时间,因此帧速率等于采样率。