[Speex-dev] Questions about "Complexity"

Aninda Bhattacharya aninda at neo.tamu.edu
Mon Mar 7 13:20:40 PST 2005


Hi all!

Speex can encode voice in eight different bit-rates that can be invoked by 
setting the "Quality" parameter. Another parameter that is of importance to 
what I am trying to achieve is "Complexity". My questions deal with 
"Complexity". I know that the CPU requirements for complexity 10 is about 5 
times higher than for complexity 1. I have verified it while performing my 
experiments.

Complexity is being actively used in the following functions in the libspeex 
library for Win32:
File: cb_search.c
split_cb_search_shape_sign
-----vq_nbest_sign
-----vq_nbest

File: ltp.c
Function:
pitch_search_3tap
-----open_loop_nbest_pitch

1) What is "Complexity" used for? What is its role in the codebook search 
algorithm besides allocating the stack sizes?
2) How does "Complexity" effect the search through the codebook to encode 
the residual coming out of the short-term predictor?
3) How does "Complexity" effect the calculation of pitch and pitch gains for 
a 3 tap filter for the long-term predictor?
4) Can I manipulate "Complexity" in some fashion so that I can keep the 
quality of the voice constant while varying the bit-rate by changing the 
"Quality" parameter?
5) What changes do I have to make in the existing libspeex.lib files in 
order to have a "Complexity" greater than 10?

Thanks a lot for helping me out. I am having a bit of difficulty in 
understanding the underlying logic within the functions mentioned above.

Sincerely,
Aninda



More information about the Speex-dev mailing list