我目前正在调查IPP 8并且在biquad IIR支持方面遇到一些问题:
ippsIIRInitAlloc现已弃用,我很好,我们可以手动分配。但是我需要能够在不改变滤波器状态的情况下改变IIR分接头。 ippsIIRInit似乎破坏了延迟线,这使得它无法使用。因此,在不使用弃用函数的情况下更改抽头的唯一方法是复制延迟线并使用ippsIIRInit将其设置回来,这是不可接受的。那我错过了什么?
在许多情况下,我使用相同滤波器的多个实例 - 相同的抽头,但用于多个信号。现在似乎我需要为每个信号分配IppsIIRState,这意味着复制了这些信号。它总是只是一个双二阶,所以没什么大不了的,但是......
所要求的"新"使用ippMalloc和ippsIIRInit的方法让我检查了IppsIIRState结构的大小,这些都是巨大的 - 就像单个双二阶滤波器超过4k一样!对于1000个4MB的过滤器来说,这看起来效率不高,特别是因为我只需要一个双二阶,所以状态结构为" 2个数字" (加上水龙头,加上任何优化的东西,但这几乎不是4k)。我错过了什么或者它是一个错误吗?