190{
197
200
202#ifdef DCT_SCALING_SUPPORTED
203 case ((1 << 8) + 1):
204 fdct->
do_dct[ci] = jpeg_fdct_1x1;
206 break;
207 case ((2 << 8) + 2):
208 fdct->
do_dct[ci] = jpeg_fdct_2x2;
210 break;
211 case ((3 << 8) + 3):
212 fdct->
do_dct[ci] = jpeg_fdct_3x3;
214 break;
215 case ((4 << 8) + 4):
216 fdct->
do_dct[ci] = jpeg_fdct_4x4;
218 break;
219 case ((5 << 8) + 5):
220 fdct->
do_dct[ci] = jpeg_fdct_5x5;
222 break;
223 case ((6 << 8) + 6):
224 fdct->
do_dct[ci] = jpeg_fdct_6x6;
226 break;
227 case ((7 << 8) + 7):
228 fdct->
do_dct[ci] = jpeg_fdct_7x7;
230 break;
231 case ((9 << 8) + 9):
232 fdct->
do_dct[ci] = jpeg_fdct_9x9;
234 break;
235 case ((10 << 8) + 10):
236 fdct->
do_dct[ci] = jpeg_fdct_10x10;
238 break;
239 case ((11 << 8) + 11):
240 fdct->
do_dct[ci] = jpeg_fdct_11x11;
242 break;
243 case ((12 << 8) + 12):
244 fdct->
do_dct[ci] = jpeg_fdct_12x12;
246 break;
247 case ((13 << 8) + 13):
248 fdct->
do_dct[ci] = jpeg_fdct_13x13;
250 break;
251 case ((14 << 8) + 14):
252 fdct->
do_dct[ci] = jpeg_fdct_14x14;
254 break;
255 case ((15 << 8) + 15):
256 fdct->
do_dct[ci] = jpeg_fdct_15x15;
258 break;
259 case ((16 << 8) + 16):
260 fdct->
do_dct[ci] = jpeg_fdct_16x16;
262 break;
263 case ((16 << 8) + 8):
264 fdct->
do_dct[ci] = jpeg_fdct_16x8;
266 break;
267 case ((14 << 8) + 7):
268 fdct->
do_dct[ci] = jpeg_fdct_14x7;
270 break;
271 case ((12 << 8) + 6):
272 fdct->
do_dct[ci] = jpeg_fdct_12x6;
274 break;
275 case ((10 << 8) + 5):
276 fdct->
do_dct[ci] = jpeg_fdct_10x5;
278 break;
279 case ((8 << 8) + 4):
280 fdct->
do_dct[ci] = jpeg_fdct_8x4;
282 break;
283 case ((6 << 8) + 3):
284 fdct->
do_dct[ci] = jpeg_fdct_6x3;
286 break;
287 case ((4 << 8) + 2):
288 fdct->
do_dct[ci] = jpeg_fdct_4x2;
290 break;
291 case ((2 << 8) + 1):
292 fdct->
do_dct[ci] = jpeg_fdct_2x1;
294 break;
295 case ((8 << 8) + 16):
296 fdct->
do_dct[ci] = jpeg_fdct_8x16;
298 break;
299 case ((7 << 8) + 14):
300 fdct->
do_dct[ci] = jpeg_fdct_7x14;
302 break;
303 case ((6 << 8) + 12):
304 fdct->
do_dct[ci] = jpeg_fdct_6x12;
306 break;
307 case ((5 << 8) + 10):
308 fdct->
do_dct[ci] = jpeg_fdct_5x10;
310 break;
311 case ((4 << 8) + 8):
312 fdct->
do_dct[ci] = jpeg_fdct_4x8;
314 break;
315 case ((3 << 8) + 6):
316 fdct->
do_dct[ci] = jpeg_fdct_3x6;
318 break;
319 case ((2 << 8) + 4):
320 fdct->
do_dct[ci] = jpeg_fdct_2x4;
322 break;
323 case ((1 << 8) + 2):
324 fdct->
do_dct[ci] = jpeg_fdct_1x2;
326 break;
327#endif
330#ifdef DCT_ISLOW_SUPPORTED
332 fdct->
do_dct[ci] = jpeg_fdct_islow;
334 break;
335#endif
336#ifdef DCT_IFAST_SUPPORTED
338 fdct->
do_dct[ci] = jpeg_fdct_ifast;
340 break;
341#endif
342#ifdef DCT_FLOAT_SUPPORTED
344 fdct->do_float_dct[ci] = jpeg_fdct_float;
346 break;
347#endif
348 default:
349 ERREXIT(cinfo, JERR_NOT_COMPILED);
350 break;
351 }
352 break;
353 default:
356 break;
357 }
359
362 ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, qtblno);
364
366#ifdef PROVIDE_ISLOW_TABLES
368
369
370
375 }
377 break;
378#endif
379#ifdef DCT_IFAST_SUPPORTED
381 {
382
383
384
385
386
387
388#define CONST_BITS 14
390
391 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
392 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270,
393 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906,
394 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315,
395 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
396 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552,
397 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446,
398 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247
399 };
401
408 }
409 }
411 break;
412#endif
413#ifdef DCT_FLOAT_SUPPORTED
415 {
416
417
418
419
420
421
422
423
426 static const double aanscalefactor[
DCTSIZE] = {
427 1.0, 1.387039845, 1.306562965, 1.175875602,
428 1.0, 0.785694958, 0.541196100, 0.275899379
429 };
430
433 for (col = 0; col <
DCTSIZE; col++) {
434 fdtbl[
i] = (FAST_FLOAT)
435 (1.0 / ((
double) qtbl->quantval[
i] *
436 aanscalefactor[
row] * aanscalefactor[col] *
439 }
440 }
441 }
442 fdct->
pub.forward_DCT[ci] = forward_DCT_float;
443 break;
444#endif
445 default:
446 ERREXIT(cinfo, JERR_NOT_COMPILED);
447 break;
448 }
449 }
450}
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
forward_DCT(j_compress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY sample_data, JBLOCKROW coef_blocks, JDIMENSION start_row, JDIMENSION start_col, JDIMENSION num_blocks)
#define MULTIPLY16V16(var1, var2)
#define ERREXIT1(cinfo, code, p1)
#define ERREXIT2(cinfo, code, p1, p2)
JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]