/*************************************************************************** * Func: inv_dct * * * * Desc: performs an inverse Discrete Cosine Transform on an MxN array * * * * Params: DCT - MxN array of data for inverse transform * * inverse - MxN array of inverse transformed data * ***************************************************************************/ void inv_dct(double DCT[M][N], double inverse[M][N]) { int u, v; /* frequency domain variables */ int x, y; /* spatial domain variables */ double accum; /* accumulator */ double twoN; /* 2 times N */ double twoM; /* 2 times M */ double scale; /* 2 / square_root(MN) */ double Cu, Cv; /* C(u) and C(v) */ twoN = 2.0 * N; twoM = 2.0 * M; scale = 2.0 / sqrt((double)N*M); for(x=0; x