DSPRelated.com
Forums

how is the discrete cosine transform matrix transform equivalent to the standard dct definition (DCT-II)

Started by wallge June 14, 2007
Can some one explain or point me to a paper with the proof of how the
DCT matrix transformation

Y=DCT(X) = AXA' (where A is the DCT transform matrix, X is the input
data matrix, Y is the transformed
data coeff's)

A(u,v) = (1/N)^(1/2) for u =0
A(u,v) = (2/N)^(1/2) * cos(PI*(2v+1)*u/(2*N))  for u >0

is equivalent to the DCT def:

                                           N-1  N-1
Y(u,v) = alpha(u) * alpha (v) * sum sum  X(x,y) * cos(PI*(2x+1)*u/
(2*N)) * cos(PI*(2y+1)*v/(2*N))
                                             x     y

 with alpha(u) = (1/N)^(1/2) for u =0
        alpha(u) = (2/N)^(1/2) for u > 0


thanks in advance

wallge wrote:

> Can some one explain or point me to a paper with the proof of how the > DCT matrix transformation > > Y=DCT(X) = AXA' (where A is the DCT transform matrix, X is the input > data matrix, Y is the transformed > data coeff's) > > A(u,v) = (1/N)^(1/2) for u =0 > A(u,v) = (2/N)^(1/2) * cos(PI*(2v+1)*u/(2*N)) for u >0 > > is equivalent to the DCT def: > > N-1 N-1 > Y(u,v) = alpha(u) * alpha (v) * sum sum X(x,y) * cos(PI*(2x+1)*u/ > (2*N)) * cos(PI*(2y+1)*v/(2*N)) > x y > > with alpha(u) = (1/N)^(1/2) for u =0 > alpha(u) = (2/N)^(1/2) for u > 0
If you rewrite AXA' as (AX)A', and consider what's happening in each matrix multiplication (and also consider how a 2D DCT is formed from 1D DCTs), it should become apparent how the two are equivalent. -- Oli