DCT2D・FHT2D
- 作者:スレ48≫989氏
- 直行変換アルゴリズムの違いにより、DCT2DとFHT2Dの2種。ver 0.1で1つに統合。「これで完成、かな?」
ver 0.05・0.1はIIR_3DNRを同梱。
ver 0.12・0.12aはIIR_FHT3DNR・PMD_MTを同梱。
説明
- DCT:Discrete Cosine Transform 離散コサイン変換
- FHT:Fast Hadamard Transform 高速アダマール変換
- (FFT:Fast Fourier Transform 高速フーリエ変換)
付属テキストが無いver0.05 light版に関しての、ソースコードを読んでの簡単な解説 by 41991
+
|
... |
8x8のブロックに対して直行変換を行った結果得られる係数(block[0][0]~block[7][7])に対し、 15個のトラックバーの設定値(track[0]~track[14])を用いて
block[x][y] - track[x+y] / block[x][y] (ただしblock[0][0]は除く)
という演算を行い、逆変換して元に戻すのが基本的な処理内容。
通常版・light版共に、8x8ブロックの位置をずらしながら上の処理をn_shift回行うが、 通常版がn_shift回の平均を取るのに対し、 light版は上の処理を行った結果にさらに同じ処理を繰り返す。
|
付属テキストが無いver0.00aに関しての、ソースコードを読んでの簡単な解説 by 41991
+
|
... |
- 離散コサイン変換
- (*)
- 逆離散コサイン変換
を順番に行う。
(*):2次元離散コサイン変換の結果得られる係数(block[0][0]~block[7][7])に対し、 15個のトラックバーの設定値(track[0]~track[14])を用いて
block[x][y] * (128 - track[x+y]) / 128 (ただしblock[0][0]は除く)
という演算を行う。
つまり、下のトラックバーの値を大きくするほど、高周波成分を減らしていることになる。
|
- これらが全部整数演算だけで実装されてるなんて…。
茂木氏のソースなんて、何をやってるのかさっぱり分からないorz
defineされる定数が、なんでそんな名前になるのか、なんでそんな値になるのか…? -- 41991 (2008-10-14 02:30:49)
- 48≫989氏、説明の内容が間違っているならば、ツッコミを入れるなりしていただけると助かります。 -- 41991 (2008-11-25 00:25:00)
- ウォルシュ某氏は、Joseph Leonard Walshtという名前らしいです。 -- 41991 (2008-12-03 01:50:00)
- 48≫989氏…そろそろお名前を… -- 41991 (2008-12-03 01:55:00)
- それだけ。→ -- 汗 (2012-05-24 13:05:09)
最終更新:2012年05月24日 13:05