1

我目前正在调查 IPP 8,但在 biquad IIR 支持方面存在一些问题:

  • ippsIIRInitAlloc 现在已弃用,我很好,我们可以手动分配。但是,我需要能够在不更改滤波器状态的情况下更改 IIR 抽头。ippsIIRInit 似乎破坏了延迟线,使其无法使用。因此,在不使用已弃用函数的情况下更改抽头的唯一方法是复制延迟线并使用 ippsIIRInit 将其设置回来,这是不可接受的。那么我错过了什么?

  • 在许多情况下,我使用相同滤波器的多个实例——相同的抽头,但用于多个信号。现在看来我需要为每个信号分配 IppsIIRState,这意味着重复抽头。它总是只是一个双二阶,所以没什么大不了的,但是......

  • 使用 ippMalloc 和 ippsIIRInit 请求的“新”方法让我检查了 IppsIIRState 结构的大小,这些结构非常大 - 就像单个双二阶滤波器超过 4k 一样!对于产生 4MB 的 1000 个过滤器来说,这看起来几乎没有效率,特别是因为我只需要一个双二阶,所以状态结构为“2 个数字”(加上抽头,加上任何用于优化的东西,但这几乎不可能是 4k)。我错过了什么还是一个错误?

4

0 回答 0