2011-02-01 64 views
3

任何人都可以说采样率和framesize是如何相关的?任何人都可以说采样率和帧尺寸是如何实现的?

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

Flex支持44.1kHz的,22.5 kHz和只有11.2千赫的速率。我想在解码过程中提高采样率。我知道如何在代码中做到这一点,但我猜应该增加框架大小。我不知道这两者之间的依赖关系。谁能帮忙?

+1

据http://tools.ietf.org/html/rfc5574,Speex编解码器不支持10千赫。 – unwind 2011-02-01 10:26:33

回答

3

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

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

另外,不需要仅仅因为稍后应用重采样而改变解码帧大小。

+0

'位/通道*通道'是否等于位? – 2016-08-31 07:16:23

0

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

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

在解码期间不能提高采样率,但是您可以重新采样解码音频。据推测,你实际上是重新编码数据发送给Flex?您需要查看您用于重新编码的编解码器。你使用哪种编解码器?

1

你混的两个独立的任务:SPEX解码和重新采样。提到的帧大小应该仅被视为包含PCM样本的缓冲区。这些PCM样本应传递给重采样器(例如SSRC:http://shibatch.sourceforge.net/)。不论使用的信道数的

0

,帧速率和采样率相同。因为这是TDM的目的。 在两个连续样本之间的间隙中引入新通道。随着通道数量的增加,每个通道分配的时间减少,每个通道占用的时间也会减少。但是任何通道的连续采样之间的差异将保持不变,并且将等于总帧时间。 即样本之间的时间间隔=帧时间,因此帧速率等于采样率。

相关问题