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 
17 typedef struct
18 {
19  int16_t cosine;
20  int16_t minus_sine;
21 } cos_msin_t;
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 ***************************************************************************/
34 static 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 
48 static 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 
84 static 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 
120 static 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 
202 static 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 
216 static 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 
240 static 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 
284 static 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 
368 static 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 
532 static 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 
856 static 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:34