Digital Signal Processing Reference
In-Depth Information
5.7.2 Multi-StageVectorQuantization
In an Multi-Stage Vector Quantizer (MSVQ), the input vector is quantized
as a sum of vectors from a number of codebooks. Each of these codebooks
can therefore be of relatively small size, making the storage requirements
reasonable. That is, an input vector f is represented by a vector f given by:
y i 0
y i 1
y i K 1
f
=
+
+
...
+
(5.68)
K
1
where K is the number of stages and i k is the codebook index for the k th stage.
It can easily be seen that SVQ systems are a particular type of MSVQ system,
where the codebook vectors for a given stage contain nonzero elements only
in the locations corresponding to the SVQ subvectors. This is illustrated in
the following example, where it is easily seen that an SVQ codebook can be
mapped onto an MSVQ codebook.
y i 0
y i 0 ( 0 ) y i 0 ( 1 )
={
0
0
... ...
0
0
}
y i 1
y i 1 ( 2 ) y i 1 ( 3 ) ... ...
={
0
0
0
0
}
.
.
.
={
0
0
0
0
0
0
}
y i K 1
... ... y i K 1
2 ) y i K 1
={
0
0
0
0
1 (p
1 (p
1 )
}
K
1
K
K
This obviously implies that an MSVQ systemwill have a performance at least
equivalent to that of an SVQ system and probably much higher, as the SVQ
imposes a strong constraint on the structure of the codebook. On the other
hand, complexity and memory requirements for the MSVQ will be higher,
i.e. the sparse structure of the SVQ codebook significantly reduces the storage
requirement and a sequential search for each subvector is equivalent to an
exhaustive search, which is not the case for MSVQ. Examples of typical bit
allocations for MSVQ codebooks are illustrated in Table 5.6, including the bit
allocation for the 2.4 kb/s MELP coder [12].
Table 5.6 Typical examples of MSVQ LSF
quantizers (24-25 bits/frame)
Stages
Bit allocation
Total number of bits
2
12,12
24
3
8,8,8
24
4
6,6,6,6
24
4
7,6,6,6
25
5
5,5,5,5,4
24
Search WWH ::




Custom Search