[Speex-dev] 11kbps narrowband on a 24bit DSP

Barr, Russell rbarr at vocollect.com
Mon Aug 6 12:27:43 PDT 2007


Hi,

 

I am using speex 1.2beta2 on a 24bit DSP that has a severe program and
data space limitations. I am only interested in the speex decoder for
11kbps narrowband implementation. 

 

I am using the following parameters and structures

 

160,    /*frameSize*/

  40,     /*subframeSize*/

  10,     /*lpcSize*/

  17,     /*pitchStart*/

  144,    /*pitchEnd*/ 

 

/* 11 kbps medium bit-rate mode */

static const SpeexSubmode nb_submode4 = {

   -1,

   0,

   1,

   0,

   /*LSP quantization*/

   lsp_quant_lbr,

   lsp_unquant_lbr,

   /*Pitch quantization*/

   pitch_search_3tap,

   pitch_unquant_3tap,

   &ltp_params_med,

   /*Innovation quantization*/

   split_cb_search_shape_sign,

   split_cb_shape_sign_unquant,

   &split_cb_nb_med,

   QCONST16(.45,15),

   220

};

 

/* Parameters for Long-Term Prediction (LTP)*/

static const ltp_params ltp_params_lbr = {

   gain_cdbk_lbr,

   5,

   7

};

 

/* Split-VQ innovation parameters narrowband */

static const split_cb_params split_cb_nb_med = {

   8,               /*subvect_size*/

   5,               /*nb_subvect*/

   exc_8_128_table, /*shape_cb*/

   7,               /*shape_bits*/

   0,

 

 

 

I have three problems.

 

1.	My DSP has 24 bits register and memory with a 24 X 24 = 48 bit
multiply and a 56 bit accumulator. I see scaling shifts when using 32
bit registers. Can anyone tell me what scaling values like 

 

#define LPC_SCALING  8192

#define SIG_SCALING  16384

#define LSP_SCALING  8192.

#define GAMMA_SCALING 32768.

#define GAIN_SCALING 64

#define GAIN_SCALING_1 0.015625

 

#define LPC_SHIFT    13

#define LSP_SHIFT    13

#define SIG_SHIFT    14

 

            Would be required for a 24 bit register?  

 

2.	I would like to only include only the data tables as required to
support 11kbps narrowband mode. I think they would be the following
signed byte tables

cdbk_nb[640]

cdbk_nb_low1[320]

cdbk_nb_high1[320]

gain_cdbk_lbr[128]

exc_8_128_table[1024]

            Have I missed any?

 

3.	I would like to estimate the code space and duty cycle
requirements using fix point 11kbps narrowband decode. I think I have
identified most of the routines that use most of the duty cycle but I am
not sure if I have found them all. 

speex_bits_unpack_unsigned()

peex_bits_unpack_signed()

split_cb_shape_sign_unquant()

pitch_unquant_3tap()

lsp_unquant_lbr()

            I will be porting there routines to assembly and would like
to know that I have a chance of fitting them in the 2K I have free.  

            Is there a minimal list of decode routines that are
required?

 

 

Thanks for any help possible

 

Russell Barr

Vocollect, Inc

703 Rodi Road

Pittsburgh, Pa 15235

 

Phone: 412-349-2581

Fax:     412-829-0972

Email:  rbarr at vocollect.com <mailto:rbarr at vocollect.com> 

 

www.vocollect.com <http://www.vocollect.com>  

 

Vocollect Voice-Directed Work

-CONFIDENTIAL, PRIVILEGED COMMUNICATION-

This e-mail transmission is private and intended for the addressee(s)
only.  It may contain information that is privileged and/or
confidential.  If you have received this transmission in error, you are
not authorized to read, copy, disclose or disseminate it in any manner.
If you have received it in error, please delete it and all copies
(including backup copies) that have been made, and transmit a reply
message informing the sender that it was misdirected.

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070806/daaf22e2/attachment.html


More information about the Speex-dev mailing list