この項目の2次元FFTはCPUのアルゴリズムですが、FFTの実装部をOpenCL実装に変えるだけで、GPGPUに適したデータ並列化が可能です。
2次元高速フーリエ変換は、前の項目で解説したFFT/IFFTをそのまま使います。
基本的な手順は「図:2次元FFTの手順」(図13.2「図:2次元FFTの手順」)にある通りです。
まず各走査線(生データの行部分)をスキャンし、各行(スライス)のフーリエ変換をします。全ての走査線のFFTが終了したら、変換した行列の列スキャンを行い、各列に対してフーリエ変換を行います。
筆者の使う擬似コードのエディターが日本語対応していないため、英語で記述しましたが、以下が英文の意味です。
注意点として、この擬似コードでは、実数部分と虚数部分を別の変数としていないので、実際のコードでは配列の記憶域は2倍となり、変数の更新も若干異なります。
Copyright 2018-2019, by Masaki Komatsu