[Speex-dev] Double codebook

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Sun Jul 23 07:38:22 PDT 2006

> Kind of interesingly to me, with that plain command-line-call mentioned
> above, double_codebook is turned on.
> Since I haven't found anything in the manpages: how can I turn this off?
> Would you consider turning this off useful?

double_codebook isn't a feature. It's just an internal parameter that
describes how the encoding is done at different bit-rate. In practice,
it's only enabled at very high bit-rate.

> The second thing you immediately see when using none of these fancy
> options is that the codebook entries found in
> libspeex/cb_search.c::split_cb_search_shape_sign and written into the
> stream by speex_bits_pack are (in one subframe) very often the same
> (I've seen the numbers 63, 45 and 171 being written into the stream very
> often

I do expect some to be more common than others, but I don't think it's
only a handful of entries that get used.

> Has anybody ever examined this statistically? There seems to be some
> redundancy (this might be also because I of course look at the beginning
> of the coding output, which might be silence). Should I try at least
> using -vad to reduce this redundancy (the less redundancy there is, the
> better this is for my task, which is still a steganographic extension to
> speex).

I don't see what -vad would have to do with that... In any case, yes
there is some redundancy. Speex uses VQ, but it doesn't use any form of
entropy coding on the symbols. This makes it easy to get CBR, but of
course, there's a bit of redundancy left (I would expect about 10%).


More information about the Speex-dev mailing list