来自libffmpeg的简单fft示例

时间:2016-01-03 08:49:51

标签: ffmpeg

我目前有自己的FFT代码原型是

void doFFT(short* data, int nSamples);

参数data的大小为2*nSamples。输出返回到同一个变量中。

我想用libffmpeg替换我的FFT代码。我在https://ffmpeg.org/doxygen/trunk/fft-test_8c-source.html处查看了FFT的测试样本。但是,我不清楚如何正确使用它。我想知道是否有人可以分享一些伪代码或指出我正确的方向。

1 个答案:

答案 0 :(得分:1)

在FFmpeg的on2avc解码器中查看例如this代码,在循环中调用permute / calc(并且每次调用init / end)。每次FFT迭代都在2 ^ nbits样本上,其中nbits是FFT的大小。如果你想在n_samples上大于nbits的n_samples进行FFT,你通常会在2 ^ nbits样本上进行FFT迭代,直到你对所有样本完成FFT。重叠等取决于你,可能取决于原始代码的作用。