added encoder complexity option
[speexdsp.git] / libspeex / cb_search.h
1 /* Copyright (C) 2002 Jean-Marc Valin & David Rowe
2    File: cb_search.c
3    Overlapped codebook search
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9    
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14    
15    You should have received a copy of the GNU Lesser General Public
16    License along with this library; if not, write to the Free Software
17    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 */
19
20 #ifndef CB_SEARCH_H
21 #define CB_SEARCH_H
22
23 #include "speex_bits.h"
24
25 typedef struct split_cb_params {
26    int     subvect_size;
27    int     nb_subvect;
28    float  *shape_cb;
29    int     shape_bits;
30 } split_cb_params;
31
32
33 void split_cb_search_nogain(
34 float target[],                 /* target vector */
35 float ak[],                     /* LPCs for this subframe */
36 float awk1[],                   /* Weighted LPCs for this subframe */
37 float awk2[],                   /* Weighted LPCs for this subframe */
38 void *par,                      /* Codebook/search parameters*/
39 int   p,                        /* number of LPC coeffs */
40 int   nsf,                      /* number of samples in subframe */
41 float *exc,
42 SpeexBits *bits,
43 float *stack,
44 int   complexity
45 );
46
47 void split_cb_search_shape_sign(
48 float target[],                 /* target vector */
49 float ak[],                     /* LPCs for this subframe */
50 float awk1[],                   /* Weighted LPCs for this subframe */
51 float awk2[],                   /* Weighted LPCs for this subframe */
52 void *par,                      /* Codebook/search parameters*/
53 int   p,                        /* number of LPC coeffs */
54 int   nsf,                      /* number of samples in subframe */
55 float *exc,
56 SpeexBits *bits,
57 float *stack,
58 int   complexity
59 );
60
61 void split_cb_shape_sign_unquant(
62 float *exc,
63 void *par,                      /* non-overlapping codebook */
64 int   nsf,                      /* number of samples in subframe */
65 SpeexBits *bits,
66 float *stack
67 );
68
69 void split_cb_nogain_unquant(
70 float *exc,
71 void *par,                      /* non-overlapping codebook */
72 int   nsf,                      /* number of samples in subframe */
73 SpeexBits *bits,
74 float *stack
75 );
76
77 #endif