Digital Signal Processing Reference
In-Depth Information
is set to 1 if it is positive, left as zero if it is zero and set to
1ifitis
negative. This is especially useful in fixed point implementations. In addition
to the above versions, one other popular version of the standard codebooks
is called the sparse codebook, where each nonzero vector element is fol-
lowed by a fixed number of zeros. This is very similar to regular pulse
excited LPC.
Overlapping codebooks are useful in reducing the computation of the
codebook search as well as requiring less storage. The fact that the adjacent
vectors have similarities can be used to reduce the convolution (filtering)
process to generate the synthetic output. If h(n) represents the combined
impulse response of the LPC and perceptual-weighting filters, the synthesized
vector
s k (n) due to the k th excitation vector x k (n) of a single shift codebook is,
ˆ
n
s k (n)
ˆ
=
x k (n
i)h(i)
(7.64)
=
i
0
(When the pitch filter is implemented as an adaptive codebook for D < L ,
it can be assumed to be parallel with the fixed codebook since it is not
considered during the codebook search and hence will not affect the code-
book search process.) In a single shift codebook, the difference between two
consecutive vectors is only one sample at either end of the two vectors and
the synthesized vector
ˆ
ˆ
s k + 1 canbewrittenintermsof
s k as,
ˆ
s k + 1 (n)
=
x k + 1 ( 0 )h(n)
+ ˆ
s k (n
1 )
(7.65)
where
0. As can be seen from the above expression, by shifting
the previous output by one sample and adding this to the impulse response
h(n) scaled by the new sample, most of the convolution computations can be
simplified. As the number of shifts in the codebook increases, however, com-
plexity increases, and when the shift equals the vector size, the overlapping
codebook becomes a standard codebook containing independent vectors.
Note that if centre-clipping is used, the zero values of x k (n) in equation (7.64)
will not need multiplication with h(i) , and hence will reduce computational
complexity. However, once the first vector is fully synthesized, more sav-
ings will be made using equation (7.65). Every time a zero-valued excitation
sample helps to produce the new vector, the first term of equation (7.65)
will be zero, which means that the new synthetic vector is simply the shifted
version of the previous with its first sample set to zero. Using an unquantized
CELP coder as defined by Table 7.3, four different versions of the standard
Gaussian codebook were compared. The results are shown in Table 7.4 (the
overlapping codebooks have a two-sample shift). Subjective listening shows
that the speech quality is generally improved with centre-clipping compared
with standard Gaussian codebooks. The difference between the overlap-
ping and nonoverlapping codebooks of the same type is negligible. Coupled
ˆ
s k (
1 )
=
Search WWH ::




Custom Search