アーカイブ

‘画像間演算’ タグのついている投稿

GDALとBLASで激速画像間演算

2008 年 8 月 29 日 コメントはありません

きまぐれにGDALを使ったCプログラミングをやってみた.久々のCプログラミングだったが,意外とすんなりとモノを作ることができた.

作っていたのは,画像間演算をするためのプログラムで,NDVIなどを計算するもの.GDAL経由で読み込んだ画像データに対して,for( i = 0; i < XSize * YSize; i++)といった繰り返しで,ピクセルごとに計算させていたわけだが...

この手の行列計算は,RやMatlabにもあるように,forで計算させるよりも速くする手順があるはず,と思って,BLAS (Basic Linear Algebra Subprograms)という線形代数計算ライブラリがあることを思い出した.これなら僕の要求に答えてくれるはずだ!と思って試してみた.

試行計算は,2つの5076*4770の8bit画像を足し合わせて,16bitで出力するというもの.3回の時間計測の結果,以下のようになった.

(BLASなし,BLASありの順,単位は秒)
1回目:25.873,6.545
2回目:21.293,5.297
3回目:25.030,5.425

BLASの導入で確実に速くなっている!さらに,シンプルな関数でコードもすっきりして一石二鳥.

なお,関数のレファレンスはここここがよさげ.

カテゴリー: GIS/RS タグ: , ,