libg722_1 0.0.1
dct4_s.h
1/*
2 * g722_1 - a library for the G.722.1 and Annex C codecs
3 *
4 * dct4_s.h
5 *
6 * Adapted by Steve Underwood <steveu@coppice.org> from the reference
7 * code supplied with ITU G.722.1, which is:
8 *
9 * (C) 2004 Polycom, Inc.
10 * All rights reserved.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 */
16
17typedef struct
18{
19 int16_t cosine;
20 int16_t minus_sine;
22
23/***************************************************************************
24 The dct_core_s table was generated by the following code
25
26 for (i = 0; i < 10; ++i)
27 {
28 for (k = 0; k < 10; ++k)
29 {
30 dct_core_s[i][k] = (short) (FTOI(((.9*32768.)*cos(3.1415926*(k+0.5)*(i+0.5)/10.))));
31 }
32 }
33***************************************************************************/
34static const int16_t dct_core_s[10][10] =
35{
36 { 29400, 28676, 27246, 25145, 22425, 19153, 15409, 11286, 6885, 2314},
37 { 28676, 22425, 11286, -2314, -15409, -25145, -29400, -27246, -19153, -6885},
38 { 27246, 11286, -11286, -27246, -27246, -11286, 11286, 27246, 27246, 11286},
39 { 25145, -2314, -27246, -22425, 6885, 28676, 19153, -11286, -29400, -15409},
40 { 22425, -15409, -27246, 6885, 29400, 2314, -28676, -11286, 25145, 19153},
41 { 19153, -25145, -11286, 28676, 2314, -29400, 6885, 27246, -15409, -22425},
42 { 15409, -29400, 11286, 19153, -28676, 6885, 22425, -27246, 2314, 25145},
43 { 11286, -27246, 27246, -11286, -11286, 27246, -27246, 11286, 11286, -27246},
44 { 6885, -19153, 27246, -29400, 25145, -15409, 2314, 11286, -22425, 28676},
45 { 2314, -6885, 11286, -15409, 19153, -22425, 25145, -27246, 28676, -29400}
46};
47
48static const int16_t syn_bias_7khz[DCT_LENGTH] =
49{
50 -4, 4, -5, -2, 0, -4, 6, 2, -2, -4,
51 -3, 3, 0, 0, -2, 4, 0, 0, 3, -6,
52 8, 5, 4, 5, -8, 0, -2, 0, 0, -3,
53 3, 0, 0, 0, 1, -1, -2, 0, 0, 2,
54 -2, -5, -2, 3, 2, -1, -1, -6, 3, 1,
55 -7, 4, 4, 0, 1, 4, 1, 0, 1, -5,
56 -1, 1, -6, 0, -1, -1, 3, 0, -2, 1,
57 2, -4, 0, 9, 0, -3, 1, 1, 1, 0,
58 -3, -2, -1, -4, -2, 0, 5, 2, -3, 5,
59 0, -2, 4, 4, 0, -6, -4, 2, 0, 0,
60 0, -1, -1, -2, 0, 6, 1, 0, 0, -1,
61 0, -4, -1, 0, -4, 1, -1, -5, 0, 1,
62 2, 4, 0, -8, -4, 0, -2, -2, 2, 5,
63 -3, -1, 1, -4, 0, 0, 0, -1, -3, 0,
64 -5, -4, 0, -2, 0, 7, 1, 0, 5, -2,
65 -1, 2, 2, -2, 3, 7, -3, 4, 1, -4,
66 0, 0, 3, -7, -5, 0, 0, 4, 0, -2,
67 -1, 0, -5, 0, 2, 0, 11, 5, -1, 0,
68 2, 2, -2, -2, 5, 4, -3, 1, 0, -2,
69 1, 3, 2, 0, 1, 0, 0, 0, 5, 6,
70 -2, -1, 0, 2, 3, 2, 0, -3, 4, 5,
71 0, -1, 0, 3, 1, -2, -3, -2, -1, 2,
72 -1, -1, -2, -7, 4, 6, -5, -6, -3, -4,
73 0, 2, -5, -2, 3, 0, 0, 0, 2, -2,
74 -4, 3, 3, 1, 0, 0, 4, -1, 8, 13,
75 1, 2, 0, 2, 0, -1, 4, -3, 1, 0,
76 -1, 3, 0, 0, -5, 0, 6, 2, 4, 5,
77 2, -1, -1, 3, 6, 1, 1, 2, -4, 0,
78 -1, -6, -2, -2, 2, 1, 2, 6, 2, 0,
79 -2, -2, 0, -1, 2, 0, 0, 3, -2, 1,
80 3, 1, 2, -1, -2, 2, 2, -4, 0, 0,
81 -3, 0, -4, -3, 6, 7, 2, 2, 0, -3
82};
83
84static const int16_t dither[DCT_LENGTH] =
85{
86 1, 0, 0, 0, 1, 0, 0, 1, 1, 1,
87 1, 0, 0, 0, 1, 1, 1, 1, 1, 0,
88 0, 1, 1, 1, 0, 1, 1, 0, 0, 0,
89 1, 0, 0, 1, 0, 1, 0, 0, 1, 0,
90 1, 0, 0, 0, 1, 0, 1, 0, 0, 0,
91 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
92 0, 0, 1, 0, 0, 0, 1, 0, 0, 1,
93 1, 1, 1, 1, 1, 0, 1, 0, 0, 1,
94 1, 0, 0, 1, 0, 0, 0, 1, 0, 1,
95 0, 0, 1, 1, 0, 1, 0, 1, 1, 1,
96 1, 0, 0, 0, 0, 1, 1, 1, 1, 1,
97 0, 0, 0, 1, 0, 1, 0, 0, 0, 1,
98 1, 1, 0, 0, 1, 1, 1, 1, 1, 0,
99 0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
100 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
101 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
102 1, 1, 0, 1, 0, 0, 1, 0, 0, 1,
103 0, 0, 0, 1, 1, 0, 0, 1, 1, 1,
104 1, 0, 0, 0, 0, 0, 1, 1, 1, 1,
105 1, 0, 0, 1, 1, 0, 1, 1, 0, 0,
106 1, 1, 1, 0, 1, 1, 0, 1, 0, 1,
107 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
108 0, 1, 1, 1, 1, 0, 1, 1, 1, 0,
109 1, 1, 1, 0, 1, 1, 1, 0, 1, 0,
110 1, 1, 0, 0, 1, 0, 0, 1, 0, 1,
111 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
112 1, 0, 1, 0, 1, 0, 1, 1, 1, 1,
113 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
114 1, 0, 0, 0, 1, 0, 0, 1, 0, 1,
115 1, 0, 1, 1, 0, 0, 1, 1, 0, 1,
116 1, 0, 1, 1, 1, 1, 1, 1, 0, 1,
117 1, 1, 1, 0, 1, 0, 0, 0, 1, 0
118};
119
120static const int16_t max_dither[MAX_DCT_LENGTH] =
121{
122 1, 0, 1, 0, 1, 1, 0, 1, 0, 1,
123 1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
124 1, 1, 1, 0, 1, 1, 0, 0, 0, 1,
125 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
126 1, 1, 1, 0, 1, 0, 1, 1, 1, 1,
127 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
128 1, 0, 1, 1, 0, 1, 0, 0, 0, 1,
129 0, 1, 1, 1, 1, 1, 0, 1, 1, 0,
130 0, 0, 1, 1, 0, 0, 0, 1, 1, 1,
131 1, 0, 1, 1, 1, 1, 1, 0, 0, 0,
132 1, 0, 1, 0, 1, 0, 0, 0, 1, 1,
133 0, 1, 1, 1, 1, 1, 1, 0, 1, 0,
134 0, 0, 1, 0, 1, 0, 0, 0, 1, 0,
135 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
136 1, 0, 0, 1, 0, 1, 0, 0, 0, 1,
137 0, 1, 0, 0, 1, 1, 1, 1, 0, 1,
138 1, 0, 0, 0, 1, 1, 0, 1, 0, 1,
139 0, 1, 0, 1, 0, 1, 1, 1, 0, 1,
140 1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
141 1, 1, 1, 0, 1, 1, 0, 0, 0, 0,
142 1, 0, 1, 0, 0, 0, 0, 1, 1, 0,
143 1, 1, 0, 0, 0, 0, 1, 0, 0, 1,
144 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
145 0, 0, 1, 1, 1, 0, 1, 1, 1, 0,
146 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
147 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,
148 0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
149 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
150 0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
151 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
152 1, 1, 0, 0, 1, 1, 1, 1, 0, 0,
153 0, 0, 1, 1, 1, 1, 0, 0, 1, 1,
154 1, 1, 1, 0, 1, 0, 0, 0, 1, 0,
155 0, 1, 1, 1, 0, 1, 0, 1, 0, 0,
156 1, 1, 0, 1, 0, 1, 1, 0, 0, 0,
157 0, 1, 1, 0, 1, 1, 1, 0, 1, 1,
158 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
159 1, 1, 0, 0, 0, 1, 1, 1, 1, 0,
160 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
161 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
162 0, 1, 0, 0, 0, 1, 1, 0, 0, 1,
163 0, 0, 1, 1, 0, 1, 0, 1, 0, 1,
164 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
165 1, 0, 1, 0, 1, 0, 0, 1, 0, 0,
166 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
167 0, 1, 1, 0, 0, 0, 1, 1, 1, 0,
168 1, 1, 1, 0, 1, 1, 1, 0, 0, 0,
169 0, 0, 1, 0, 0, 1, 0, 0, 0, 1,
170 0, 0, 0, 1, 1, 0, 0, 1, 0, 1,
171 1, 1, 1, 1, 0, 0, 1, 0, 1, 0,
172 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
173 0, 0, 1, 0, 1, 0, 0, 1, 0, 1,
174 1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
175 1, 1, 1, 0, 1, 0, 0, 1, 1, 1,
176 0, 1, 0, 1, 0, 1, 0, 0, 0, 1,
177 1, 0, 0, 1, 0, 0, 1, 1, 0, 1,
178 1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
179 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
180 1, 0, 1, 0, 1, 1, 0, 0, 0, 1,
181 1, 0, 1, 0, 0, 1, 1, 1, 0, 1,
182 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
183 0, 1, 0, 1, 0, 0, 1, 0, 1, 0,
184 0, 1, 1, 1, 1, 0, 0, 0, 1, 0,
185 0, 1, 0, 1, 0, 1, 0, 0, 0, 0
186};
187
188
189/********************************************************************************
190 The s_cos_min tables were generated by the following code:
191 double angle, scale;
192 int index;
193
194 for (index = 0;index < length;index++)
195 {
196 angle = scale * ((double)index + 0.5);
197 table[index].cosine = (int16_t) (FTOI((18427)* cos(angle)));
198 table[index].minus_sine = (int16_t) (FTOI((18427)*(-sin(angle))));
199 }
200********************************************************************************/
201
202static const cos_msin_t s_cos_msin_2[DCT_LENGTH_DIV_32] =
203{
204 {18413, -723},
205 {18299, -2166},
206 {18073, -3595},
207 {17735, -5002},
208 {17288, -6378},
209 {16734, -7715},
210 {16077, -9004},
211 {15321, -10237},
212 {14471, -11408},
213 {13531, -12508}
214};
215
216static const cos_msin_t s_cos_msin_4[DCT_LENGTH_DIV_16] =
217{
218 {18423, -362},
219 {18395, -1085},
220 {18338, -1806},
221 {18253, -2525},
222 {18140, -3239},
223 {17999, -3949},
224 {17830, -4653},
225 {17634, -5349},
226 {17410, -6037},
227 {17159, -6716},
228 {16883, -7385},
229 {16580, -8042},
230 {16251, -8686},
231 {15898, -9318},
232 {15520, -9935},
233 {15118, -10536},
234 {14692, -11122},
235 {14244, -11690},
236 {13774, -12240},
237 {13283, -12772}
238};
239
240static const cos_msin_t s_cos_msin_8[DCT_LENGTH_DIV_8] =
241{
242 {18426, -181},
243 {18419, -543},
244 {18405, -904},
245 {18384, -1265},
246 {18355, -1626},
247 {18320, -1986},
248 {18277, -2345},
249 {18228, -2704},
250 {18171, -3061},
251 {18107, -3417},
252 {18037, -3772},
253 {17959, -4126},
254 {17875, -4477},
255 {17783, -4827},
256 {17685, -5176},
257 {17580, -5522},
258 {17468, -5866},
259 {17350, -6208},
260 {17225, -6547},
261 {17093, -6884},
262 {16954, -7219},
263 {16809, -7550},
264 {16658, -7879},
265 {16500, -8204},
266 {16336, -8526},
267 {16165, -8846},
268 {15988, -9161},
269 {15805, -9473},
270 {15616, -9782},
271 {15421, -10087},
272 {15220, -10387},
273 {15013, -10684},
274 {14801, -10977},
275 {14582, -11265},
276 {14358, -11550},
277 {14129, -11829},
278 {13894, -12104},
279 {13654, -12375},
280 {13408, -12641},
281 {13157, -12901}
282};
283
284static const cos_msin_t s_cos_msin_16[DCT_LENGTH_DIV_4] =
285{
286 {18427, -90},
287 {18425, -271},
288 {18421, -452},
289 {18416, -633},
290 {18409, -814},
291 {18400, -995},
292 {18389, -1175},
293 {18377, -1356},
294 {18363, -1536},
295 {18347, -1716},
296 {18329, -1896},
297 {18310, -2076},
298 {18288, -2256},
299 {18265, -2435},
300 {18241, -2614},
301 {18214, -2793},
302 {18186, -2972},
303 {18156, -3150},
304 {18124, -3328},
305 {18090, -3506},
306 {18055, -3684},
307 {18018, -3861},
308 {17979, -4037},
309 {17939, -4214},
310 {17897, -4390},
311 {17853, -4565},
312 {17807, -4740},
313 {17760, -4915},
314 {17710, -5089},
315 {17660, -5262},
316 {17607, -5436},
317 {17553, -5608},
318 {17497, -5780},
319 {17439, -5952},
320 {17380, -6123},
321 {17319, -6293},
322 {17257, -6463},
323 {17192, -6632},
324 {17126, -6800},
325 {17059, -6968},
326 {16990, -7135},
327 {16919, -7302},
328 {16846, -7467},
329 {16772, -7632},
330 {16696, -7797},
331 {16619, -7960},
332 {16540, -8123},
333 {16459, -8285},
334 {16377, -8446},
335 {16294, -8607},
336 {16208, -8766},
337 {16121, -8925},
338 {16033, -9083},
339 {15943, -9240},
340 {15852, -9396},
341 {15759, -9551},
342 {15664, -9705},
343 {15568, -9858},
344 {15471, -10011},
345 {15372, -10162},
346 {15271, -10313},
347 {15169, -10462},
348 {15066, -10610},
349 {14961, -10758},
350 {14854, -10904},
351 {14747, -11049},
352 {14637, -11194},
353 {14527, -11337},
354 {14415, -11479},
355 {14301, -11620},
356 {14187, -11760},
357 {14071, -11898},
358 {13953, -12036},
359 {13834, -12172},
360 {13714, -12308},
361 {13593, -12442},
362 {13470, -12575},
363 {13346, -12706},
364 {13220, -12837},
365 {13094, -12966}
366};
367
368static const cos_msin_t s_cos_msin_32[DCT_LENGTH_DIV_2] =
369{
370 {18427, -45},
371 {18427, -136},
372 {18426, -226},
373 {18424, -317},
374 {18423, -407},
375 {18420, -497},
376 {18418, -588},
377 {18415, -678},
378 {18411, -769},
379 {18407, -859},
380 {18403, -949},
381 {18398, -1040},
382 {18392, -1130},
383 {18387, -1220},
384 {18380, -1310},
385 {18374, -1401},
386 {18367, -1491},
387 {18359, -1581},
388 {18351, -1671},
389 {18343, -1761},
390 {18334, -1851},
391 {18324, -1941},
392 {18315, -2031},
393 {18305, -2121},
394 {18294, -2211},
395 {18283, -2301},
396 {18271, -2390},
397 {18259, -2480},
398 {18247, -2570},
399 {18234, -2659},
400 {18221, -2749},
401 {18207, -2838},
402 {18193, -2927},
403 {18178, -3017},
404 {18163, -3106},
405 {18148, -3195},
406 {18132, -3284},
407 {18116, -3373},
408 {18099, -3462},
409 {18082, -3551},
410 {18064, -3639},
411 {18046, -3728},
412 {18027, -3816},
413 {18009, -3905},
414 {17989, -3993},
415 {17969, -4081},
416 {17949, -4170},
417 {17928, -4258},
418 {17907, -4346},
419 {17886, -4434},
420 {17864, -4521},
421 {17841, -4609},
422 {17818, -4696},
423 {17795, -4784},
424 {17772, -4871},
425 {17747, -4958},
426 {17723, -5045},
427 {17698, -5132},
428 {17672, -5219},
429 {17647, -5306},
430 {17620, -5392},
431 {17594, -5479},
432 {17567, -5565},
433 {17539, -5651},
434 {17511, -5737},
435 {17483, -5823},
436 {17454, -5909},
437 {17425, -5994},
438 {17395, -6080},
439 {17365, -6165},
440 {17335, -6250},
441 {17304, -6335},
442 {17272, -6420},
443 {17241, -6505},
444 {17208, -6590},
445 {17176, -6674},
446 {17143, -6758},
447 {17110, -6842},
448 {17076, -6926},
449 {17042, -7010},
450 {17007, -7093},
451 {16972, -7177},
452 {16937, -7260},
453 {16901, -7343},
454 {16864, -7426},
455 {16828, -7509},
456 {16791, -7591},
457 {16753, -7674},
458 {16715, -7756},
459 {16677, -7838},
460 {16638, -7919},
461 {16599, -8001},
462 {16560, -8082},
463 {16520, -8164},
464 {16480, -8245},
465 {16439, -8325},
466 {16398, -8406},
467 {16357, -8486},
468 {16315, -8567},
469 {16272, -8647},
470 {16230, -8726},
471 {16187, -8806},
472 {16143, -8885},
473 {16100, -8964},
474 {16055, -9043},
475 {16011, -9122},
476 {15966, -9200},
477 {15920, -9279},
478 {15875, -9357},
479 {15829, -9435},
480 {15782, -9512},
481 {15735, -9589},
482 {15688, -9667},
483 {15640, -9744},
484 {15592, -9820},
485 {15544, -9897},
486 {15495, -9973},
487 {15446, -10049},
488 {15396, -10124},
489 {15347, -10200},
490 {15296, -10275},
491 {15246, -10350},
492 {15195, -10425},
493 {15143, -10499},
494 {15092, -10573},
495 {15040, -10647},
496 {14987, -10721},
497 {14934, -10794},
498 {14881, -10868},
499 {14828, -10941},
500 {14774, -11013},
501 {14719, -11086},
502 {14665, -11158},
503 {14610, -11230},
504 {14555, -11301},
505 {14499, -11372},
506 {14443, -11444},
507 {14387, -11514},
508 {14330, -11585},
509 {14273, -11655},
510 {14216, -11725},
511 {14158, -11795},
512 {14100, -11864},
513 {14041, -11933},
514 {13983, -12002},
515 {13924, -12070},
516 {13864, -12138},
517 {13804, -12206},
518 {13744, -12274},
519 {13684, -12341},
520 {13623, -12408},
521 {13562, -12475},
522 {13501, -12541},
523 {13439, -12608},
524 {13377, -12673},
525 {13314, -12739},
526 {13252, -12804},
527 {13189, -12869},
528 {13125, -12934},
529 {13062, -12998}
530};
531
532static const cos_msin_t s_cos_msin_64[DCT_LENGTH] =
533{
534 {18426, -21},
535 {18426, -66},
536 {18426, -110},
537 {18426, -154},
538 {18425, -198},
539 {18425, -242},
540 {18424, -286},
541 {18424, -331},
542 {18423, -374},
543 {18421, -419},
544 {18421, -463},
545 {18419, -507},
546 {18418, -552},
547 {18417, -595},
548 {18415, -639},
549 {18414, -684},
550 {18412, -728},
551 {18410, -772},
552 {18408, -816},
553 {18406, -860},
554 {18404, -904},
555 {18402, -949},
556 {18400, -992},
557 {18397, -1037},
558 {18394, -1081},
559 {18392, -1125},
560 {18389, -1169},
561 {18387, -1213},
562 {18384, -1257},
563 {18380, -1301},
564 {18378, -1345},
565 {18374, -1389},
566 {18371, -1433},
567 {18367, -1477},
568 {18364, -1521},
569 {18360, -1566},
570 {18356, -1609},
571 {18352, -1653},
572 {18348, -1697},
573 {18344, -1742},
574 {18339, -1785},
575 {18335, -1829},
576 {18331, -1873},
577 {18326, -1917},
578 {18322, -1961},
579 {18317, -2005},
580 {18312, -2049},
581 {18307, -2092},
582 {18302, -2137},
583 {18297, -2180},
584 {18292, -2224},
585 {18286, -2268},
586 {18281, -2312},
587 {18275, -2356},
588 {18270, -2399},
589 {18264, -2443},
590 {18258, -2487},
591 {18252, -2531},
592 {18246, -2574},
593 {18240, -2618},
594 {18233, -2662},
595 {18227, -2706},
596 {18220, -2749},
597 {18214, -2793},
598 {18207, -2836},
599 {18200, -2880},
600 {18193, -2924},
601 {18186, -2967},
602 {18179, -3011},
603 {18172, -3055},
604 {18164, -3098},
605 {18157, -3142},
606 {18149, -3185},
607 {18141, -3229},
608 {18134, -3272},
609 {18126, -3316},
610 {18118, -3359},
611 {18109, -3403},
612 {18101, -3446},
613 {18094, -3489},
614 {18085, -3533},
615 {18076, -3576},
616 {18068, -3619},
617 {18059, -3663},
618 {18050, -3706},
619 {18041, -3749},
620 {18032, -3792},
621 {18023, -3836},
622 {18014, -3879},
623 {18005, -3922},
624 {17995, -3965},
625 {17986, -4008},
626 {17975, -4051},
627 {17966, -4094},
628 {17956, -4138},
629 {17946, -4180},
630 {17936, -4224},
631 {17926, -4266},
632 {17916, -4309},
633 {17905, -4353},
634 {17895, -4395},
635 {17884, -4438},
636 {17874, -4481},
637 {17863, -4524},
638 {17852, -4567},
639 {17841, -4609},
640 {17830, -4652},
641 {17819, -4695},
642 {17807, -4738},
643 {17796, -4780},
644 {17784, -4823},
645 {17772, -4865},
646 {17761, -4908},
647 {17749, -4951},
648 {17738, -4993},
649 {17725, -5036},
650 {17713, -5078},
651 {17701, -5121},
652 {17689, -5163},
653 {17676, -5205},
654 {17664, -5248},
655 {17651, -5290},
656 {17638, -5333},
657 {17626, -5375},
658 {17613, -5417},
659 {17599, -5459},
660 {17586, -5501},
661 {17573, -5544},
662 {17560, -5586},
663 {17546, -5627},
664 {17533, -5670},
665 {17519, -5712},
666 {17505, -5753},
667 {17492, -5795},
668 {17478, -5837},
669 {17464, -5879},
670 {17450, -5921},
671 {17435, -5963},
672 {17421, -6005},
673 {17406, -6046},
674 {17392, -6088},
675 {17377, -6130},
676 {17363, -6172},
677 {17348, -6213},
678 {17333, -6254},
679 {17318, -6296},
680 {17303, -6338},
681 {17288, -6379},
682 {17272, -6420},
683 {17257, -6462},
684 {17241, -6503},
685 {17225, -6545},
686 {17210, -6586},
687 {17194, -6627},
688 {17178, -6668},
689 {17162, -6709},
690 {17145, -6750},
691 {17130, -6791},
692 {17113, -6832},
693 {17097, -6874},
694 {17080, -6915},
695 {17064, -6956},
696 {17047, -6996},
697 {17030, -7037},
698 {17013, -7078},
699 {16996, -7119},
700 {16979, -7159},
701 {16962, -7200},
702 {16945, -7241},
703 {16927, -7281},
704 {16910, -7322},
705 {16892, -7362},
706 {16874, -7403},
707 {16856, -7444},
708 {16838, -7484},
709 {16821, -7524},
710 {16802, -7564},
711 {16784, -7605},
712 {16766, -7645},
713 {16748, -7685},
714 {16729, -7725},
715 {16711, -7765},
716 {16692, -7805},
717 {16674, -7845},
718 {16654, -7885},
719 {16635, -7925},
720 {16616, -7964},
721 {16597, -8004},
722 {16578, -8044},
723 {16559, -8084},
724 {16539, -8124},
725 {16520, -8164},
726 {16500, -8203},
727 {16480, -8242},
728 {16461, -8282},
729 {16441, -8322},
730 {16421, -8361},
731 {16401, -8400},
732 {16380, -8440},
733 {16360, -8479},
734 {16340, -8518},
735 {16319, -8557},
736 {16299, -8597},
737 {16278, -8635},
738 {16257, -8674},
739 {16237, -8713},
740 {16215, -8752},
741 {16195, -8791},
742 {16173, -8829},
743 {16152, -8868},
744 {16131, -8907},
745 {16110, -8946},
746 {16088, -8985},
747 {16067, -9023},
748 {16045, -9061},
749 {16023, -9100},
750 {16001, -9138},
751 {15979, -9176},
752 {15957, -9215},
753 {15935, -9253},
754 {15913, -9291},
755 {15891, -9329},
756 {15868, -9367},
757 {15846, -9405},
758 {15823, -9443},
759 {15800, -9481},
760 {15778, -9519},
761 {15755, -9557},
762 {15732, -9595},
763 {15709, -9632},
764 {15686, -9670},
765 {15662, -9708},
766 {15639, -9745},
767 {15615, -9782},
768 {15592, -9820},
769 {15569, -9857},
770 {15544, -9894},
771 {15521, -9932},
772 {15497, -9969},
773 {15473, -10006},
774 {15449, -10043},
775 {15425, -10080},
776 {15401, -10117},
777 {15377, -10154},
778 {15352, -10191},
779 {15327, -10227},
780 {15303, -10264},
781 {15278, -10301},
782 {15254, -10337},
783 {15229, -10374},
784 {15204, -10411},
785 {15180, -10447},
786 {15154, -10483},
787 {15129, -10519},
788 {15104, -10556},
789 {15078, -10592},
790 {15053, -10628},
791 {15027, -10664},
792 {15002, -10700},
793 {14976, -10736},
794 {14950, -10772},
795 {14924, -10808},
796 {14898, -10844},
797 {14872, -10879},
798 {14846, -10915},
799 {14820, -10950},
800 {14794, -10985},
801 {14767, -11021},
802 {14741, -11056},
803 {14714, -11092},
804 {14687, -11127},
805 {14661, -11162},
806 {14635, -11197},
807 {14607, -11232},
808 {14581, -11267},
809 {14554, -11302},
810 {14526, -11337},
811 {14499, -11372},
812 {14472, -11407},
813 {14444, -11441},
814 {14417, -11476},
815 {14389, -11511},
816 {14362, -11545},
817 {14334, -11579},
818 {14306, -11614},
819 {14278, -11648},
820 {14251, -11682},
821 {14222, -11716},
822 {14194, -11750},
823 {14166, -11784},
824 {14137, -11818},
825 {14109, -11852},
826 {14081, -11886},
827 {14053, -11919},
828 {14023, -11953},
829 {13995, -11987},
830 {13966, -12020},
831 {13937, -12054},
832 {13909, -12087},
833 {13879, -12120},
834 {13851, -12153},
835 {13821, -12187},
836 {13792, -12220},
837 {13763, -12253},
838 {13733, -12286},
839 {13704, -12319},
840 {13674, -12351},
841 {13645, -12385},
842 {13615, -12417},
843 {13585, -12450},
844 {13555, -12482},
845 {13525, -12514},
846 {13495, -12546},
847 {13465, -12579},
848 {13435, -12611},
849 {13405, -12644},
850 {13374, -12676},
851 {13345, -12708},
852 {13314, -12739},
853 {13283, -12772}
854};
855
856static const cos_msin_t *s_cos_msin_table[] =
857{
858 s_cos_msin_2,
859 s_cos_msin_4,
860 s_cos_msin_8,
861 s_cos_msin_16,
862 s_cos_msin_32,
863 s_cos_msin_64
864};
865
866/*- End of file ------------------------------------------------------------*/
Definition dct4.c:35