関数 f(x, y)の2次元離散フーリエ変換(DFT)、離散フーリエ逆変換(IDFT)は次式で定義されます。●離散コサイン変換(Discrete Cosine Transform: DCT)
F (k, l) = x=0M-1y=0N-1 f (x, y)WM xk WN yl ・・・(式1-1)
f (x, y) = (1/(MN))k=0M-1l=0N-1 F (k, l)WM -xkWN -yl ・・・(式1-2)
ここで、
WM = e-j2π/M, WN = e-j2π/N
次のアプレットは、画像データを2次元信号 f(x, y) [ x = 0, 1, .., M-1 ] [ y = 0, 1, 2, .., N-1 ]と考えて、2次元離散フーリエ変換を行い、変換結果 F(k, l)の振幅スペクトル|F(k, l)|の強度を濃度値で示した図を表示します。
また、F(k, l)を逆変換して画像データを復元します。
・逆変換時には F(k, l)の低周波側から指定された次数 K(≦ N)を低周波成分側からとって、(式1-2)で計算されます(ローパスフィルタ、直流成分+K2項)。
・K = N の時は完全に元の画像が復元されますが、K < N の時はぼけた画像となります。
上のアプレットでは、離散フーリエ変換の他に、離散コサイン変換による画像処理も行うことができます。[参考文献]末松良一、他: 画像処理工学、コロナ社(2001)
離散コサイン変換の計算式は次のとおりです。
Fc (k, l) = C(k)C(l)x=0M-1y=0N-1 f (x, y) cos[(2x+1)kπ/(2M)] cos[(2y+1)lπ/(2N)]
f (x, y) = (4/(MN))k=0M-1l=0N-1C(k)C(l) Fc (k, l) cos[(2x+1)kπ/(2M)] cos[(2y+1)lπ/(2N)]
ここで、
C(p) = 1/√2 (p = 0)
= 1 (p ≠ 0)
離散コサイン変換は実数のみで演算でき、また高い圧縮率が得られることから、JPEGなどの画像圧縮アルゴリズムで頻繁に利用されています。