[Speex-dev] Attempting to shrink speex: Are these functions necessary?

Michael Jacobson Michael.Jacobson at ultratec.com
Mon Aug 6 08:05:34 PDT 2007


Hi,
 
I am using speex 1.2beta2 on a narrowband 16-bit, 8khz system that has
a severe program space problem and will not fit speex in its normal
operation.  In an attempt to shrink speex I placed a breakpoint in every
function and ran a decode and encode and removed the breakpoints that I
hit.  in the functions that had a breakpoint that I didn't hit I
commented out those functions (as well as some functions that I know I
won't hit).  
 
I am aware that some of these functions are only not called because I
don't do a GET_ in the ctl functions or don't use ALLOC to initialize
the bit buffer, but some of these I am not entirely sure why they would
or would not be used.  I would like to know if they are just rarely
called functions and that I could be breaking the codec by removing them
or if all that I removed is just fine.
 
I did get a .patch file from Jim Crichton as well to shrink nb_celp,
but is there anything else I can do to shrink the code or am I reaching
my limit? Thanks.
 
 
these are the functions that I removed:
 
In bits.c:
speex_bits_init
speex_bits_init_buffer
speex_bits_destroy
speex_bits_reset
speex_bits_rewind
speex_bits_read_from
speex_bits_flush
speex_bits_read_whole_bytes
speex_bits_write
speex_bits_write_whole_bytes
speex_bits_unpack_signed
speex_bits_peek_unsigned
speex_bits_peek
speex_bits_nbytes
speex_bits_insert_terminator
 
In cd_search.c:
noise_codebook_quant
noise_codebook_unquant
 
In filters.c:
compute_rms
syn_percep_zero16
qmf_decomp
qmf_synth
 
In ltp.c:
forced_pitch_quant
forced_pitch_unquant
 
In math_approx.c:
spx_ilog2
_spx_cos_pi_2
spx_cos_norm
spx_exp2
spx_atan
 
In nb_celp.c:
nb_encoder_destroy
nb_decoder_destroy
 
In quant_lsp.c:
lsp_quant_nb
lsp_unquant_nb
lsp_quant_high
lsp_unquant_high
 
In speex.c:
speex_encoder_destroy
speex_decoder_destroy
speex_encode
speex_decode
nb_mode_query
wb_mode_query
speex_lib_ctl
 
In speex_callbacks.c:
speex_inband_handler
speex_std_mode_request_handler
speex_std_low_mode_request_handler
speex_std_high_mode_request_handler
speex_std_vbr_request_handler
speex_std_enh_request_handler
speex_std_vbr_quality_request_handler
speex_std_char_handler
speex_default_user_handler
 
In vbr.c:
vbr_analysis
vbr_destroy
 
In vq.c:
vq_index
vq_nbest_sign
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070806/81ab5672/attachment.htm


More information about the Speex-dev mailing list