Home > Archive > Compression > May 2005 > Want to know why vector quantization is better algorithm than others
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Want to know why vector quantization is better algorithm than others
|
|
| shayantan 2005-05-13, 3:56 pm |
| Can anyone in this group inform about vector quantization. Why it
better algorithm to use than any other algorithm. I want a comparative
analysis of the algorithm also. Whether It is good to implement the
algorithm in C language.
| |
| Jim Leonard 2005-05-13, 3:56 pm |
| shayantan wrote:
> Can anyone in this group inform about vector quantization. Why it
> better algorithm to use than any other algorithm. I want a
comparative
> analysis of the algorithm also. Whether It is good to implement the
> algorithm in C language.
Try poking around www.multimedia.cx for a bit, and read up on vector
quantization codecs like Cinepak. If you still have questions, ask
here again.
| |
| Thomas Richter 2005-05-13, 3:56 pm |
| Hi,
> Can anyone in this group inform about vector quantization. Why it
> better algorithm to use than any other algorithm. I want a comparative
> analysis of the algorithm also. Whether It is good to implement the
> algorithm in C language.
Vector quantization is not "better than any other algorithm". It
is a quantization method that is better than scalar quantization
because, unlike scalar quantization, it is able to take correlations
within the data source into consideration. Scalar quantization
picks one source value at a time, quantizes it by a static algorithm
and outputs a symbol describing its quantization buckets. Every other
algorithm is by definition vector quantization, though this says
little.
Classical example: A signal is first DCT transformed, then (scalar)
quantized. The full system (DCT + scalar) is a special form of
vector quantization, called "transform quantization".
Another example: A source emmits pairs of values (x,y) that are
quantized by a scalar quantizer using buckets \Delta_i. That is, the
real axis is divided into intervals of size \Delta_i, then for each
source signal only the bucket number gets transfered in which the
signal lies (x \in \Delta_i, y \in \Delta_j) -> Output is (i,j). If
you look at this quantization rule, you'd see that you effectively
divide the real plane R^2 into rectangles representing the quantization
buckets of a quantizer applied to both signals at once. Is this
separation of R^2 into rectangles optimal? Depends, but in most cases
it is not. The optimal figure in the sense of "maximal volume at
minimal diameter" that is able to cover the R^2 is the hexagon.
According to this rule one can define a vector quantizer in R^2 that
has less distortion at the same output rate. This effect here
is called the "space filling loss" of scalar quantizers. It can
be shown that even a purely i.i.d source with Gaussian distribution
can be quantized to a lower distortion with an R^2 vector quantizer
than a scalar one. (Though not much, something around 0.1dB IIRC).
Third example: The "trellis quantizer" quantizes signals by
finding an optimal path towards quantization buckets such that the
overall distortion becomes minimal.
Vector quantization is a broad field. As said, everything that is not
a scalar quantizer is a vector quantizer, and as such there are many
ideas to be tried. Quantization with arbitrary buckets in R^n is very
complex and computationally expensive, it is usually not done; one has
to restrict oneself to simpler constructions, e.g. transform
quantization or trellis quantization, and some other.
To get an overview to the field of quantization (and thus vector
quantization) I would recommend the following as a starter:
"Quantization" by "Robert M. Gray, David L. Neuhoff" appeared in
IEEE Transactions on Information Theory, Vol. 44, No. 6,
October 1998.
So long,
Thomas
|
|
|
|
|