Added LSP quantization for SB-CELP
[speexdsp.git] / libspeex / quant_lsp.h
1 /* Copyright (C) 2002 Jean-Marc Valin 
2    File: quant_lsp.h
3    LSP vector quantization
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 QUANT_LSP_H
21 #define QUANT_LSP_H
22
23 #include "bits.h"
24
25 #define MAX_LSP_SIZE 20
26
27 #define NB_CDBK_SIZE 64
28 #define NB_CDBK_SIZE_LOW1 64
29 #define NB_CDBK_SIZE_LOW2 64
30 #define NB_CDBK_SIZE_HIGH1 64
31 #define NB_CDBK_SIZE_HIGH2 64
32
33 /*Narrowband codebooks*/
34 extern float cdbk_nb[];
35 extern float cdbk_nb_low1[];
36 extern float cdbk_nb_low2[];
37 extern float cdbk_nb_high1[];
38 extern float cdbk_nb_high2[];
39
40 /* Quantizes narrowband LSPs with 30 bits */
41 void lsp_quant_nb(float *lsp, float *qlsp, int order, FrameBits *bits);
42
43 /* Decodes quantized narrowband LSPs */
44 void lsp_unquant_nb(float *lsp, int order, FrameBits *bits);
45
46 /* Quantizes wideband LSPs with 50 bits */
47 void lsp_quant_wb(float *lsp, float *qlsp, int order, FrameBits *bits);
48
49 /* Decodes quantized wideband LSPs */
50 void lsp_unquant_wb(float *lsp, int order, FrameBits *bits);
51
52 /* Quantizes high-band LSPs with 12 bits */
53 void lsp_quant_high(float *lsp, float *qlsp, int order, FrameBits *bits);
54
55 #endif