多くの画像の各行に畳み込みフィルターを適用する必要があります。クラシックは1024x1024ピクセルの360画像です。私の使用例では、720画像560x600ピクセルです。
問題は、私のコードが記事で宣伝されているものよりもはるかに遅いことです。
素朴な畳み込みを実装しましたが、2分30秒かかります。次に、fftwを使用してFFTに切り替えました。複合体2複合体を使用し、各変換で2つの行をフィルタリングしました。今は20代くらいです。
問題は、記事が約10代を宣伝し、古典的な状態ではさらに少ないということです。ですから、畳み込みを計算するより速い方法があるかどうか、ここの専門家に尋ねたいと思います。
数値レシピは、dftで行われるソートを回避し、それに応じて周波数領域フィルター関数を適応させることを提案しています。しかし、これを行う方法のコード例はありません。
たぶん私はデータをコピーするのに時間を失うでしょう。実数2の実数変換を使用すると、データを複合値にコピーする必要はありません。しかし、とにかく0で埋める必要があります。
編集:進捗状況のフィードバックとこの問題の解決に関する詳細については、以下の私自身の回答を参照してください。
質問(正確な再定式化):
離散非周期関数(512から2048の値)に非常に高速な畳み込みを適用するためのアルゴリズムまたはコードを探しています。どうやら、離散時間フーリエ変換が進むべき道です。ただし、データのコピーと複雑な変換は避け、バタフライの並べ替えは避けたいと思います。