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