私は現在 IPP 8 を調査しており、biquad IIR のサポートにいくつかの問題があります。
ippsIIRInitAlloc は非推奨になりました。手動で割り当てることができます。ただし、フィルターの状態を変更せずに IIR タップを変更できるようにする必要があります。ippsIIRInit は遅延ラインを破壊するようで、使用できなくなります。したがって、非推奨の関数を使用せずにタップを変更する唯一の方法は、遅延線をコピーして ippsIIRInit で元に戻すことですが、これは受け入れられません。それで、私は何が欠けていますか?
多くの場合、同じフィルタの複数のインスタンスを使用します。同じタップを複数の信号で使用します。今のところ、各信号に IppsIIRState を割り当てる必要があるようです。これは、タップを複製することを意味します。それは常に単一のバイクワッドなので、大したことではありませんが...
ippMalloc と ippsIIRInit を使用して要求された「新しい」メソッドにより、IppsIIRState 構造体のサイズを確認することができました。これらは非常に大きく、単一の biquad フィルターの場合は 4k を超えています。4MB を作る 1000 個のフィルターの場合、特に 1 つの biquad だけが必要なため、効率が悪いように見えます。したがって、「2 つの数値」の状態構造 (プラスタップ、プラス最適化のためのものですが、それはほとんど 4k ではありません)。何か不足していますか、それともバグですか?