decoder excitation now in 16-bit precision (was 32), which saves quite a bit
[speexdsp.git] / libspeex / lsp_tables_nb.c
1 /* Copyright (C) 2002 Jean-Marc Valin 
2    File: lsp_tables_nb.c
3    Codebooks for LSPs in narrowband CELP mode
4   
5    Redistribution and use in source and binary forms, with or without
6    modification, are permitted provided that the following conditions are
7    met:
8
9    1. Redistributions of source code must retain the above copyright notice,
10    this list of conditions and the following disclaimer.  
11
12    2. Redistributions in binary form must reproduce the above copyright
13    notice, this list of conditions and the following disclaimer in the
14    documentation and/or other materials provided with the distribution.
15
16    3. The name of the author may not be used to endorse or promote products
17    derived from this software without specific prior written permission.
18
19    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22    DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
23    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
28    ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29    POSSIBILITY OF SUCH DAMAGE.
30 */
31
32 const signed char cdbk_nb[640]={
33 30,19,38,34,40,32,46,43,58,43,
34 5,-18,-25,-40,-33,-55,-52,20,34,28,
35 -20,-63,-97,-92,61,53,47,49,53,75,
36 -14,-53,-77,-79,0,-3,-5,19,22,26,
37 -9,-53,-55,66,90,72,85,68,74,52,
38 -4,-41,-58,-31,-18,-31,27,32,30,18,
39 24,3,8,5,-12,-3,26,28,74,63,
40 -2,-39,-67,-77,-106,-74,59,59,73,65,
41 44,40,71,72,82,83,98,88,89,60,
42 -6,-31,-47,-48,-13,-39,-9,7,2,79,
43 -1,-39,-60,-17,87,81,65,50,45,19,
44 -21,-67,-91,-87,-41,-50,7,18,39,74,
45 10,-31,-28,39,24,13,23,5,56,45,
46 29,10,-5,-13,-11,-35,-18,-8,-10,-8,
47 -25,-71,-77,-21,2,16,50,63,87,87,
48 5,-32,-40,-51,-68,0,12,6,54,34,
49 5,-12,32,52,68,64,69,59,65,45,
50 14,-16,-31,-40,-65,-67,41,49,47,37,
51 -11,-52,-75,-84,-4,57,48,42,42,33,
52 -11,-51,-68,-6,13,0,8,-8,26,32,
53 -23,-53,0,36,56,76,97,105,111,97,
54 -1,-28,-39,-40,-43,-54,-44,-40,-18,35,
55 16,-20,-19,-28,-42,29,47,38,74,45,
56 3,-29,-48,-62,-80,-104,-33,56,59,59,
57 10,17,46,72,84,101,117,123,123,106,
58 -7,-33,-49,-51,-70,-67,-27,-31,70,67,
59 -16,-62,-85,-20,82,71,86,80,85,74,
60 -19,-58,-75,-45,-29,-33,-18,-25,45,57,
61 -12,-42,-5,12,28,36,52,64,81,82,
62 13,-9,-27,-28,22,3,2,22,26,6,
63 -6,-44,-51,2,15,10,48,43,49,34,
64 -19,-62,-84,-89,-102,-24,8,17,61,68,
65 39,24,23,19,16,-5,12,15,27,15,
66 -8,-44,-49,-60,-18,-32,-28,52,54,62,
67 -8,-48,-77,-70,66,101,83,63,61,37,
68 -12,-50,-75,-64,33,17,13,25,15,77,
69 1,-42,-29,72,64,46,49,31,61,44,
70 -8,-47,-54,-46,-30,19,20,-1,-16,0,
71 16,-12,-18,-9,-26,-27,-10,-22,53,45,
72 -10,-47,-75,-82,-105,-109,8,25,49,77,
73 50,65,114,117,124,118,115,96,90,61,
74 -9,-45,-63,-60,-75,-57,8,11,20,29,
75 0,-35,-49,-43,40,47,35,40,55,38,
76 -24,-76,-103,-112,-27,3,23,34,52,75,
77 8,-29,-43,12,63,38,35,29,24,8,
78 25,11,1,-15,-18,-43,-7,37,40,21,
79 -20,-56,-19,-19,-4,-2,11,29,51,63,
80 -2,-44,-62,-75,-89,30,57,51,74,51,
81 50,46,68,64,65,52,63,55,65,43,
82 18,-9,-26,-35,-55,-69,3,6,8,17,
83 -15,-61,-86,-97,1,86,93,74,78,67,
84 -1,-38,-66,-48,48,39,29,25,17,-1,
85 13,13,29,39,50,51,69,82,97,98,
86 -2,-36,-46,-27,-16,-30,-13,-4,-7,-4,
87 25,-5,-11,-6,-25,-21,33,12,31,29,
88 -8,-38,-52,-63,-68,-89,-33,-1,10,74,
89 -2,-15,59,91,105,105,101,87,84,62,
90 -7,-33,-50,-35,-54,-47,25,17,82,81,
91 -13,-56,-83,21,58,31,42,25,72,65,
92 -24,-66,-91,-56,9,-2,21,10,69,75,
93 2,-24,11,22,25,28,38,34,48,33,
94 7,-29,-26,17,15,-1,14,0,-2,0,
95 -6,-41,-67,6,-2,-9,19,2,85,74,
96 -22,-67,-84,-71,-50,3,11,-9,2,62};
97
98 const signed char cdbk_nb_low1[320]={
99 -34,-52,-15,45,2,
100 23,21,52,24,-33,
101 -9,-1,9,-44,-41,
102 -13,-17,44,22,-17,
103 -6,-4,-1,22,38,
104 26,16,2,50,27,
105 -35,-34,-9,-41,6,
106 0,-16,-34,51,8,
107 -14,-31,-49,15,-33,
108 45,49,33,-11,-37,
109 -62,-54,45,11,-5,
110 -72,11,-1,-12,-11,
111 24,27,-11,-43,46,
112 43,33,-12,-9,-1,
113 1,-4,-23,-57,-71,
114 11,8,16,17,-8,
115 -20,-31,-41,53,48,
116 -16,3,65,-24,-8,
117 -23,-32,-37,-32,-49,
118 -10,-17,6,38,5,
119 -9,-17,-46,8,52,
120 3,6,45,40,39,
121 -7,-6,-34,-74,31,
122 8,1,-16,43,68,
123 -11,-19,-31,4,6,
124 0,-6,-17,-16,-38,
125 -16,-30,2,9,-39,
126 -16,-1,43,-10,48,
127 3,3,-16,-31,-3,
128 62,68,43,13,3,
129 -10,8,20,-56,12,
130 12,-2,-18,22,-15,
131 -40,-36,1,7,41,
132 0,1,46,-6,-62,
133 -4,-12,-2,-11,-83,
134 -13,-2,91,33,-10,
135 0,4,-11,-16,79,
136 32,37,14,9,51,
137 -21,-28,-56,-34,0,
138 21,9,-26,11,28,
139 -42,-54,-23,-2,-15,
140 31,30,8,-39,-66,
141 -39,-36,31,-28,-40,
142 -46,35,40,22,24,
143 33,48,23,-34,14,
144 40,32,17,27,-3,
145 25,26,-13,-61,-17,
146 11,4,31,60,-6,
147 -26,-41,-64,13,16,
148 -26,54,31,-11,-23,
149 -9,-11,-34,-71,-21,
150 -34,-35,55,50,29,
151 -22,-27,-50,-38,57,
152 33,42,57,48,26,
153 11,0,-49,-31,26,
154 -4,-14,5,78,37,
155 17,0,-49,-12,-23,
156 26,14,2,2,-43,
157 -17,-12,10,-8,-4,
158 8,18,12,-6,20,
159 -12,-6,-13,-25,34,
160 15,40,49,7,8,
161 13,20,20,-19,-22,
162 -2,-8,2,51,-51};
163
164 const signed char cdbk_nb_low2[320]={
165 -6,53,-21,-24,4,
166 26,17,-4,-37,25,
167 17,-36,-13,31,3,
168 -6,27,15,-10,31,
169 28,26,-10,-10,-40,
170 16,-7,15,13,41,
171 -9,0,-4,50,-6,
172 -7,14,38,22,0,
173 -48,2,1,-13,-19,
174 32,-3,-60,11,-17,
175 -1,-24,-34,-1,35,
176 -5,-27,28,44,13,
177 25,15,42,-11,15,
178 51,35,-36,20,8,
179 -4,-12,-29,19,-47,
180 49,-15,-4,16,-29,
181 -39,14,-30,4,25,
182 -9,-5,-51,-14,-3,
183 -40,-32,38,5,-9,
184 -8,-4,-1,-22,71,
185 -3,14,26,-18,-22,
186 24,-41,-25,-24,6,
187 23,19,-10,39,-26,
188 -27,65,45,2,-7,
189 -26,-8,22,-12,16,
190 15,16,-35,-5,33,
191 -21,-8,0,23,33,
192 34,6,21,36,6,
193 -7,-22,8,-37,-14,
194 31,38,11,-4,-3,
195 -39,-32,-8,32,-23,
196 -6,-12,16,20,-28,
197 -4,23,13,-52,-1,
198 22,6,-33,-40,-6,
199 4,-62,13,5,-26,
200 35,39,11,2,57,
201 -11,9,-20,-28,-33,
202 52,-5,-6,-2,22,
203 -14,-16,-48,35,1,
204 -58,20,13,33,-1,
205 -74,56,-18,-22,-31,
206 12,6,-14,4,-2,
207 -9,-47,10,-3,29,
208 -17,-5,61,14,47,
209 -12,2,72,-39,-17,
210 92,64,-53,-51,-15,
211 -30,-38,-41,-29,-28,
212 27,9,36,9,-35,
213 -42,81,-21,20,25,
214 -16,-5,-17,-35,21,
215 15,-28,48,2,-2,
216 9,-19,29,-40,30,
217 -18,-18,18,-16,-57,
218 15,-20,-12,-15,-37,
219 -15,33,-39,21,-22,
220 -13,35,11,13,-38,
221 -63,29,23,-27,32,
222 18,3,-26,42,33,
223 -64,-66,-17,16,56,
224 2,36,3,31,21,
225 -41,-39,8,-57,14,
226 37,-2,19,-36,-19,
227 -23,-29,-16,1,-3,
228 -8,-10,31,64,-65};
229
230 const signed char cdbk_nb_high1[320]={
231 -26,-8,29,21,4,
232 19,-39,33,-7,-36,
233 56,54,48,40,29,
234 -4,-24,-42,-66,-43,
235 -60,19,-2,37,41,
236 -10,-37,-60,-64,18,
237 -22,77,73,40,25,
238 4,19,-19,-66,-2,
239 11,5,21,14,26,
240 -25,-86,-4,18,1,
241 26,-37,10,37,-1,
242 24,-12,-59,-11,20,
243 -6,34,-16,-16,42,
244 19,-28,-51,53,32,
245 4,10,62,21,-12,
246 -34,27,4,-48,-48,
247 -50,-49,31,-7,-21,
248 -42,-25,-4,-43,-22,
249 59,2,27,12,-9,
250 -6,-16,-8,-32,-58,
251 -16,-29,-5,41,23,
252 -30,-33,-46,-13,-10,
253 -38,52,52,1,-17,
254 -9,10,26,-25,-6,
255 33,-20,53,55,25,
256 -32,-5,-42,23,21,
257 66,5,-28,20,9,
258 75,29,-7,-42,-39,
259 15,3,-23,21,6,
260 11,1,-29,14,63,
261 10,54,26,-24,-51,
262 -49,7,-23,-51,15,
263 -66,1,60,25,10,
264 0,-30,-4,-15,17,
265 19,59,40,4,-5,
266 33,6,-22,-58,-70,
267 -5,23,-6,60,44,
268 -29,-16,-47,-29,52,
269 -19,50,28,16,35,
270 31,36,0,-21,6,
271 21,27,22,42,7,
272 -66,-40,-8,7,19,
273 46,0,-4,60,36,
274 45,-7,-29,-6,-32,
275 -39,2,6,-9,33,
276 20,-51,-34,18,-6,
277 19,6,11,5,-19,
278 -29,-2,42,-11,-45,
279 -21,-55,57,37,2,
280 -14,-67,-16,-27,-38,
281 69,48,19,2,-17,
282 20,-20,-16,-34,-17,
283 -25,-61,10,73,45,
284 16,-40,-64,-17,-29,
285 -22,56,17,-39,8,
286 -11,8,-25,-18,-13,
287 -19,8,54,57,36,
288 -17,-26,-4,6,-21,
289 40,42,-4,20,31,
290 53,10,-34,-53,31,
291 -17,35,0,15,-6,
292 -20,-63,-73,22,25,
293 29,17,8,-29,-39,
294 -69,18,15,-15,-5};
295
296 const signed char cdbk_nb_high2[320]={
297 11,47,16,-9,-46,
298 -32,26,-64,34,-5,
299 38,-7,47,20,2,
300 -73,-99,-3,-45,20,
301 70,-52,15,-6,-7,
302 -82,31,21,47,51,
303 39,-3,9,0,-41,
304 -7,-15,-54,2,0,
305 27,-31,9,-45,-22,
306 -38,-24,-24,8,-33,
307 23,5,50,-36,-17,
308 -18,-51,-2,13,19,
309 43,12,-15,-12,61,
310 38,38,7,13,0,
311 6,-1,3,62,9,
312 27,22,-33,38,-35,
313 -9,30,-43,-9,-32,
314 -1,4,-4,1,-5,
315 -11,-8,38,31,11,
316 -10,-42,-21,-37,1,
317 43,15,-13,-35,-19,
318 -18,15,23,-26,59,
319 1,-21,53,8,-41,
320 -50,-14,-28,4,21,
321 25,-28,-40,5,-40,
322 -41,4,51,-33,-8,
323 -8,1,17,-60,12,
324 25,-41,17,34,43,
325 19,45,7,-37,24,
326 -15,56,-2,35,-10,
327 48,4,-47,-2,5,
328 -5,-54,5,-3,-33,
329 -10,30,-2,-44,-24,
330 -38,9,-9,42,4,
331 6,-56,44,-16,9,
332 -40,-26,18,-20,10,
333 28,-41,-21,-4,13,
334 -18,32,-30,-3,37,
335 15,22,28,50,-40,
336 3,-29,-64,7,51,
337 -19,-11,17,-27,-40,
338 -64,24,-12,-7,-27,
339 3,37,48,-1,2,
340 -9,-38,-34,46,1,
341 27,-6,19,-13,26,
342 10,34,20,25,40,
343 50,-6,-7,30,9,
344 -24,0,-23,71,-61,
345 22,58,-34,-4,2,
346 -49,-33,25,30,-8,
347 -6,-16,77,2,38,
348 -8,-35,-6,-30,56,
349 78,31,33,-20,13,
350 -39,20,22,4,21,
351 -8,4,-6,10,-83,
352 -41,9,-25,-43,15,
353 -7,-12,-34,-39,-37,
354 -33,19,30,16,-33,
355 42,-25,25,-68,44,
356 -15,-11,-4,23,50,
357 14,4,-39,-43,20,
358 -30,60,9,-20,7,
359 16,19,-33,37,29,
360 16,-35,7,38,-27};