Digital Signal Processing Reference
In-Depth Information
second term in equation (3.67). Then, corresponding gain values given by
(3.66) are computed and quantized. Finally, each shape vector scaled by its
quantized gain is compared with the input vector. This whole process can be
simplified with only a small increase in the quantization error by computing
the second part of equation (3.67) for all k to select the best shape vector
without quantizing its gain (assuming that gain quantization noise will not,
in general, render other vectors more favourable). In this case only one shape
vector is considered which does not require further comparisons after the
gain quantization process.
Adaptive Codebooks
The above discussed codebooks do not vary with time. Therefore, it is
extremely important to train these codebooks for optimal performance with
varying time and hence varying input vector characteristics. One way of
making a codebook track the input vector characteristics with time is to
make the codebook adaptive. As in the case of an adaptive scalar quantizer,
the adaptation of a codebook can be achieved using either forward or
backward schemes.
In a forward adaptive vector quantizer, the codebook is updated with
respect to the input vectors before the quantization process, which requires
some side information to be transmitted to the de-quantizer for compatible
adaptation necessary for correct recovery of the signal.
In the case of a backward adaptive quantizer, the codebook is updated by
the appropriately transformed most recent quantizer output vectors. In this
case, no side information is needed since the same update process can be
performed at the de-quantizer using the previously recovered vectors.
An adaptive codebook is usually used in cascade with other (generally,
fixed) codebooks, which provide the initial vectors to the adaptive codebook
as well as helping to speed up adaptation when significant signal variations
occur. An adaptive codebook in a two-stage cascaded vector quantizer is
shown in Figure 3.14. The first stage can be an adaptive codebook followed
by a fixed second stage codebook. The adaptive codebooks used in these
configurations are called predictor codebooks and the whole process is called
predictive or differential vector quantization .
3.4.4 Training, TestingandCodebookRobustness
An important part of the codebook design is the training process used to
populate the codebook. The training process simply optimizes a codebook
for given training data by calculating the centroids of the cells. Because the
K-means algorithm is not guaranteed to result in a codebook that is globally
optimum, it is often suggested that one repeats the algorithm with a number
of different initial sets of codebook vectors [19].
Search WWH ::




Custom Search