Re: Query DCT and DFT



A few more points about the DCT:
* From an information theoretic point of view, the best transformation is one that reduces the redundancy in the image to the maximum extent. From this perspective, KLT (Karhunen Loeve Transform) is the most optimal. However, this requires image dependent basis functions. It has been shown that for locally correlated images(neighboring pixels are similar), DCT provides a very good approximation of the KLT without the disadvantage of having image-specific basis functions. DCT has global basis functions. In this sense it is more optimal that FFT, which just employs a low-pass filtering approach to compression.
* Several Integer-to-Integer transform implementation exists for DCT that make it very fast



Regards Sharat Christian Gollwitzer wrote:
MJ wrote:

Hi
This is true that in DCT,it real value exponetioal function and in DFT
, it is complex value exponentioal function.


I don't understand this sentence, it's garbled.

But how DCT is more
useful in compression



DCT is better for lossy compression. To see that, you need to recall that both DCT and DFT stem from fourier series that analyze functions mapping from R ->R and are periodic. The input of DCT and DFT, however, is finite sequence of samples. So to compute the fourier series, it is necessary to continue the function onto R by assuming what the values outside the given range are. For DFT, the assumption is thath the finite sequence repeats. For DCT, the sequence is mirrored and then repeated. So if you have an input signal like this:


^
|   .
|  .
| .
|.
-------------->

this is the assumption of DFT:

^
|   .   .   .
|  .   .   .
| .   .   .
|.   .   .
-------------->


whereas DCT assumes

^
|   .     .
|  . .   . .
| .   . .   .
|.     .     .
-------------->


If you are a bit familiar with fourier series, you know, that the dsicontinuity at DFT's assumption is evil and leads to very bad convergence of the series. However, quantizing means suppressing small coefficents. It's clear, that this will distort the signal more in the case with discontinuities.


So DCT is more robust against quantization because it avoids the discontinuites at the edges. You can look at this also from the viewpoint of phase shifts: In DCT all cosine waves have always the same phase, whereas, if you treat DFT's coefficients individually, it may change the phase which has a strong impact.

Christian


--
Sharat Chikkerur
http://www.eng.buffalo.edu/~ssc5


"If you love your job, you haven't worked a day in your life." --Tommy Lasorda
.




Relevant Pages

  • Re: having trouble with Discrete Cosine Transform program
    ... out with no transform; I say 'if you can' because the code seems pretty ... Jon C. ... 256x256 pixels of image, the output comes out so ridiculously. ... there's something wrong with my looping for DCT and IDCT functions. ...
    (comp.graphics.algorithms)
  • Re: Sign Prediction for DCT coefficients
    ... terms of forming better video compression standards. ... not pure DCT but a variant of DCT (integer transform) which gained much ... you also need to consider that video does motion ...
    (comp.compression)
  • Re: Query DCT and DFT
    ... This is true that in DCT,it real value exponetioal function and in DFT ... you need to recall that both DCT and DFT stem from fourier series that analyze functions mapping from R ->R and are periodic. ...
    (sci.image.processing)
  • Re: having trouble with Discrete Cosine Transform program
    ... out with no transform; I say 'if you can' because the code seems pretty ... Can you restrict the program to DCTing just one 8x8 block? ... there's something wrong with my looping for DCT and IDCT functions. ... coefficients with the image pixels on 8x8 blocks. ...
    (comp.graphics.algorithms)
  • Re: having trouble with Discrete Cosine Transform program
    ... out with no transform; I say 'if you can' because the code seems pretty ... Jon C. ... 256x256 pixels of image, the output comes out so ridiculously. ... there's something wrong with my looping for DCT and IDCT functions. ...
    (comp.graphics.algorithms)