ウェーブレットに関して



離散Wavelet変換(Discrete Wavelet Transform : DWT)ライブラリ

blitzwave

blitz++の配列テンプレートライブラリ 上で動くライブラリでn次元配列のWavelet decompositionをWAILIと同等の速度で実行できる. blitz++のArrayについては,blitz++のマニュアル参照.

blitzwaveをVisual Studio 2005(VS2005)で動かす

blitz++をインストール済みの場合は1-5をスキップ.

  1. blitz++をダウンロード(blitz-0.9.tar.gzなど),解凍する.
  2. blitz++を解凍したフォルダ($BLITZ_HOMEとする)内のBlitz-VS.NET.zipを解凍する($BLITZ_HOMEに直接解凍.slnファイルなどが$BLITZ_HOMEに置かれるようにする).
  3. Blitz-Library.slnをVS2005で開く.変換ウィザードが出てきたらそのまま完了を押せばよい.
  4. Debug, Releaseでビルドする.-> 正常に完了していれば,libフォルダにblitz.lib, blitz_d.libができている.動作確認したいときは,Blitz-Examples.slnを試す.
  5. VS2005 or VSプロジェクトで$BLITZ_HOMEフォルダをインクルードフォルダに,$BLITZ_HOME\libをライブラリフォルダに設定,もしくは, $BLITZ_HOME\blitzフォルダをインクルードできる場所に,blitz.lib, blitz_d.libを現在のライブラリフォルダにコピー.
  6. blitzwaveをダウンロード(blitzwave-0.7.1.tar.gzなど),解凍する(解凍フォルダを$BLITZWAVE_HOMEとする).
  7. 新規プロジェクトで構成の種類が"スタティックライブラリ(.lib)"となるように構成("空のプロジェクト"で作成後,プロジェクト設定で構成の種類を変えるなどでよい).プロジェクト名はここでは blitzwave とする.
  8. プロジェクトに$BLITZWAVE_HOME\srcの中の*-test.cxx以外の*.h, *.cxxを追加(arrayTools.h, arrayTools.cxx, Wavelet.h, Wavelet.cxx, WaveletDecomp.h, WaveletDecomp.cxx).
  9. WindowsのVSでは<sys/time.h>を使えないので,<time.h>のclock()で置き換える. arrayTools.cxx内の
      1
    
     #include <sys/time.h>
    をコメントアウトして,
      1
    
     #include <time.h>
    を追加.そのすぐしたにある関数,
      1
      2
      3
      4
      5
    
    double runTime() {
        timeval t;
        gettimeofday(&t, 0);
        return double(t.tv_sec) + double(t.tv_usec)/double(1000000);
    }
    をコメントアウトして,
      1
      2
      3
      4
      5
    
    double runTime() {
        clock_t t;
        t = clock();
        return (double)(t/CLOCKS_PER_SEC);
    }
    を追加.clock()は1/100秒程度の精度しかないようなので,どこかで問題が出るかもしれない.
  10. Debug, Releaseでビルドする.動作確認したいときは,arrayTools-test.cxx,Wavelet-test.cxx,WaveletDecomp-test.cxx などを試すとよい (arrayTools-test.cxxは<sys/time.h>を使っているので,9と同じような修正が必要).
  11. blitzwave.libをライブラリフォルダへ,arrayTools.h, Wavelet.h, WaveletDecomp.hをインクルードフォルダにコピーする.

Predefined Wavelets

  • WL_CDF_1_1 : Cohen-Daubechies-Feauveau CDF(1,1) wavelet (= Haar wavelet)
  • WL_CDF_2_2 : CDF(2,2) biorthogonal wavelet (= LeGall(5,3))(JPEG2000標準)
  • WL_CDF_3_1 : CDF(3,1) biorthogonal wavelet
  • WL_CDF_3_3 : CDF(3,3) biorthogonal wavelet
  • WL_CDF_4_2 : CDF(4,2) biorthogonal wavelet
  • WL_CDF_97 : CDF(9,7) biorthogonal wavelet (JPEG2000標準, Daubechies(9,7) もしくは 9/7-filter とも呼ばれる)
  • WL_HAAR : Haar wavelet
  • WL_LEG_5_3 : LeGall(5,3) biorthogonal wavelet (= CDF(2,2))(JPEG2000標準)
  • WL_CUBIC_SPLINE : cubic-spline biorthogonal wavelet (= CDF(4,2))
  • WL_D_4 : Daubechies D4 wavelet

WAILI - Wavelets with Integer Lifting

GSL - GNU Scientific Library

GNU General Publict Licenseで配布される数値計算ライブラリ. この中にDWTを実行する機能が含まれる. 詳しくは,GSLのマニュアルのWavelet変換の章参照


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-27 (木) 15:09:16