AVX2 优化 C++ 混响算法

这里 是一份 C++ 混响算法的实现,修正掉索引下溢 BUG 后大概是这样:

1
2
3
4
5
6
7
8
9
size_t samples = file.file_size / 4;
size_t ir_samples = sizeof(ir) / 4;
for (size_t i = 0; i < samples; ++i)
{
for (size_t j = 0; j < ir_samples && i >= j; ++j)
{
file.out_file_data[i] += file.in_file_data[i - j] * ir[j];
}
}

在我的 Intel i7-7700 4 核机器上,混响一段 60s、单声道、float 采样的 pcm 音频需要 12452 ms 的时间。

阅读更多