再配布 > DCT2D

DCT2D・FHT2D


一次配布元 ver 同梱
51≫918 FHT|DCT2D 0.13 PMD_MTalmost bilateral
51≫390 FHT|DCT2D 0.12c
51≫379 FHT|DCT2D 0.12b
51≫330 FHT|DCT2D 0.12a IIR_FHT3DNRPMD_MT
51≫324 FHT|DCT2D 0.12
50≫838 FHT|DCT2D 0.1 IIR_3DNR
50≫363 DCT2D 0.05
FHT2D
49≫837 DCT2D 0.00a

  • 作者:スレ48≫989氏
  • 直行変換アルゴリズムの違いにより、DCT2DとFHT2Dの2種。ver 0.1で1つに統合。「これで完成、かな?」
    ver 0.05・0.1はIIR_3DNRを同梱。
    ver 0.12・0.12aはIIR_FHT3DNRPMD_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
+...
茂木氏作DCT-iDCTソースを利用して、8x8のブロックに対して、
  1. 離散コサイン変換
  2. (*)
  3. 逆離散コサイン変換
を順番に行う。

(*):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)
名前:
コメント:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。