Updated on 2009-03-26 (木) 12:16:34
1次元N点高速DCT関数†N=4,8,16 の高速DCTルーチンです。 入力用と出力用の二つのdoubleの配列を引数にして呼びます。 正規化はしてないので、必要なら適宜実行してください。 なお、この関数はChenによって提案された高速DCT回路に梅津が若干の修正を加えたものです。 それなりにチューニングしてありますが、できればコンパイルオプションでも最適化を効かせて下さい。
3次元DCTは単純に実行するとO(N^6)になりますが、 この関数を利用すればO(N^3logN)になります。 数日が数分になるくらいの違いが出ることもあり得ます。 参考†
|