(DCT) A technique for expressing a waveform as a weighted sum of cosines. The DCT is central to many kinds of signal processing, especially video compression. Given data A(i), where i is an integer in the range 0 to N-1, the forward DCT (which would be used e.g. by an encoder) is: B(k) = sum A(i) cos((pi k/N) (2 i + 1)/2)
i=0 to N-1 B(k) is defined for all values of the frequency-space variable k, but we only care about integer k in the range 0 to N-1. The inverse DCT (which would be used e.g. by a decoder) is: AA(i)= sum B(k) (2-delta(k-0)) cos((pi k/N)(2 i + 1)/2) k=0 to N-1 where delta(k) is the kronecker delta. The main difference between this and a discrete fourier transform (DFT) is that the DFT traditionally assumes that the data A(i) is periodically continued with a period of N, whereas the DCT assumes that the data is continued with its mirror image, then periodically continued with a period of 2N. Mathematically, this transform pair is exact, i.e. AA(i) == A(i), resulting in lossless coding; only when some of the coefficients are approximated does compression occur. There exist fast DCT algorithms in analogy to the fast fourier transform. |