第13章 2次元高速フーリエ変換

目次

13.1. 画像
13.2. 2次元への適用アルゴリズム
13.3. PNG画像の高域フィルターをCPUで実装
13.3.1. 高域フィルターの出力
13.4. 実装例(GPGPU)
13.5. 2次元カーネルの実装
13.5.1. 全体の流れ
13.6. GPGPUへの修正点(メモリストライド・Bank Conflict対策)
13.7. FFT-2Dで画像処理

注記

前の項目で解説した1次元高速フーリエ変換の理解が前提となります。

2次元の高速フーリエ変換の最も一般的な例としては、「Low pass filter」(低域フィルター)、「High pass filter」(高域フィルター)の2つがあります。

高域フィルターは高周波のみを通過させて、残りの周波数を除きます。局所的な変化を保存し、グローバルな変化が画像から取り除かれます。低域フィルターはその逆を行います。

この項目では「フィルターの実装」を解説します。フィルターの解説というより、2次元以上の高速フーリエ変換を可視化し、読者が直感的に覚えられるようにするためなので、読者には長めのソースコードを理解するより、古典的なフーリエ変換をデータ並列プログラミングにするためのアルゴリズムに集中頂くことを前提としています。

基本となる並列化部分だけしか解説しませんが、再結合(recombination)を行うなどの改良余地はあります。

Copyright 2018-2019, by Masaki Komatsu