ウェーブレットに関して
離散Wavelet変換(Discrete Wavelet Transform : DWT)ライブラリ†
blitzwave†
blitz++の配列テンプレートライブラリ
上で動くライブラリでn次元配列のWavelet decompositionをWAILIと同等の速度で実行できる.
blitz++のArrayについては,blitz++のマニュアル参照.
blitzwaveをVisual Studio 2005(VS2005)で動かす†
blitz++をインストール済みの場合は1-5をスキップ.
- blitz++をダウンロード(blitz-0.9.tar.gzなど),解凍する.
- blitz++を解凍したフォルダ($BLITZ_HOMEとする)内のBlitz-VS.NET.zipを解凍する($BLITZ_HOMEに直接解凍.slnファイルなどが$BLITZ_HOMEに置かれるようにする).
- Blitz-Library.slnをVS2005で開く.変換ウィザードが出てきたらそのまま完了を押せばよい.
- Debug, Releaseでビルドする.-> 正常に完了していれば,libフォルダにblitz.lib, blitz_d.libができている.動作確認したいときは,Blitz-Examples.slnを試す.
- VS2005 or VSプロジェクトで$BLITZ_HOMEフォルダをインクルードフォルダに,$BLITZ_HOME\libをライブラリフォルダに設定,もしくは,
$BLITZ_HOME\blitzフォルダをインクルードできる場所に,blitz.lib, blitz_d.libを現在のライブラリフォルダにコピー.
- blitzwaveをダウンロード(blitzwave-0.7.1.tar.gzなど),解凍する(解凍フォルダを$BLITZWAVE_HOMEとする).
- 新規プロジェクトで構成の種類が"スタティックライブラリ(.lib)"となるように構成("空のプロジェクト"で作成後,プロジェクト設定で構成の種類を変えるなどでよい).プロジェクト名はここでは blitzwave とする.
- プロジェクトに$BLITZWAVE_HOME\srcの中の*-test.cxx以外の*.h, *.cxxを追加(arrayTools.h, arrayTools.cxx, Wavelet.h, Wavelet.cxx, WaveletDecomp.h, WaveletDecomp.cxx).
- WindowsのVSでは<sys/time.h>を使えないので,<time.h>のclock()で置き換える.
arrayTools.cxx内の
#include <sys/time.h>
をコメントアウトして,
#include <time.h>
を追加.そのすぐしたにある関数,
double runTime() {
timeval t;
gettimeofday(&t, 0);
return double(t.tv_sec) + double(t.tv_usec)/double(1000000);
}
をコメントアウトして,
double runTime() {
clock_t t;
t = clock();
return (double)(t/CLOCKS_PER_SEC);
}
を追加.clock()は1/100秒程度の精度しかないようなので,どこかで問題が出るかもしれない.
- Debug, Releaseでビルドする.動作確認したいときは,arrayTools-test.cxx,Wavelet-test.cxx,WaveletDecomp-test.cxx などを試すとよい
(arrayTools-test.cxxは<sys/time.h>を使っているので,9と同じような修正が必要).
- 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変換の章参照