What are the differences between KLT and SVD? It looks more or less similar to me. Did I misunderstand the concepts? Explain me more about SVD and if possible provide me the link for SVD (Image Processing). Thank you.
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
From the direct implementations of the two, SVD and KLT are different since $S$ in SVD is a diagonal matrix, while $C$ in KLT is not. Besides, KLT is originally used to describe a stationary process. In its expansion, an infinite number of basis functions is required to form a complete set. Yet for a random vector $X$, it can be rephreased in terms of a linear combination of orthonornal basis vectors, then covariance matrix $C$ is furtherly derived.
For a 2D image, we can view it as $M$ realizations of stochastic process $x$ where $M$ is the row of the image. And the assumption is that all rows have the same row covariance matrix $C$, then the KLT can be somehow converted to the form of SVD. In other words, when considering a multivariate stochastic process, the SVD and the KLT are computationally equivalent. That's why in most cases people view the both as the same. For mathematical details, refer to The KL transform and eigenimages.
In the application of image compression, the global KLT is used for the whole image, while SVD is better applied to each block. In Patrick et al's Hybrid KLT-SVD Image Compression, they combined the two method to implement the adaptive transform on the blocks to achieve a better coding efficiency.
KLT and SVD are essentially the same, except KLT is applied to continuous linear operators, and SVD is applied to finite-variable linear operators (matrices).
The principal idea is the same: given a linear function (or operator), we find a basis representation for the inputs in such a way that every component of this basis would get multiplied by a number. This is more simply knows as eigenvalue decomposition.