41#ifdef DCT_IFAST_SUPPORTED
77#if JPEG_DATA_PRECISION <= 10 && BITS_IN_JSAMPLE <= 13
79#define PASS1_BITS (10 - JPEG_DATA_PRECISION)
80#define PASS2_BITS (13 - BITS_IN_JSAMPLE)
82#if JPEG_DATA_PRECISION <= 13 && BITS_IN_JSAMPLE <= 16
84#define PASS1_BITS (13 - JPEG_DATA_PRECISION)
85#define PASS2_BITS (16 - BITS_IN_JSAMPLE)
97#define FIX_1_082392200 ((INT32) 277)
98#define FIX_1_414213562 ((INT32) 362)
99#define FIX_1_847759065 ((INT32) 473)
100#define FIX_2_613125930 ((INT32) 669)
102#define FIX_1_082392200 FIX(1.082392200)
103#define FIX_1_414213562 FIX(1.414213562)
104#define FIX_1_847759065 FIX(1.847759065)
105#define FIX_2_613125930 FIX(2.613125930)
114#ifndef USE_ACCURATE_ROUNDING
116#define DESCALE(x,n) RIGHT_SHIFT(x, n)
124#define MULTIPLY(var,const) ((DCTELEM) DESCALE((var) * (const), CONST_BITS))
133#if JPEG_DATA_PRECISION <= 10 && BITS_IN_JSAMPLE <= 13
134#define DEQUANTIZE(coef,quantval) (((IFAST_MULT_TYPE) (coef)) * (quantval))
136#define DEQUANTIZE(coef,quantval) \
137 DESCALE((coef)*(quantval), IFAST_SCALE_BITS-PASS1_BITS)
144#define FINAL_OUTPUT(x) \
145 range_limit[(int) IRIGHT_SHIFT(x, PASS2_BITS) & RANGE_MASK]
147#define FINAL_OUTPUT(x) range_limit[(int) (x) & RANGE_MASK]
162 DCTELEM tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
163 DCTELEM tmp10, tmp11, tmp12, tmp13;
223 tmp12 = MULTIPLY(tmp1 - tmp3, FIX_1_414213562) - tmp13;
225 tmp0 = tmp10 + tmp13;
226 tmp3 = tmp10 - tmp13;
227 tmp1 = tmp11 + tmp12;
228 tmp2 = tmp11 - tmp12;
243 tmp11 = MULTIPLY(z11 - z13, FIX_1_414213562);
245 z5 = MULTIPLY(z10 + z12, FIX_1_847759065);
246 tmp10 =
z5 - MULTIPLY(z12, FIX_1_082392200);
247 tmp12 =
z5 - MULTIPLY(z10, FIX_2_613125930);
273 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
296#ifndef NO_ZERO_ROW_TEST
297 if (wsptr[1] == 0 && wsptr[2] == 0 && wsptr[3] == 0 && wsptr[4] == 0 &&
298 wsptr[5] == 0 && wsptr[6] == 0 && wsptr[7] == 0) {
323 FIX_1_414213562) - tmp13;
325 tmp0 = tmp10 + tmp13;
326 tmp3 = tmp10 - tmp13;
327 tmp1 = tmp11 + tmp12;
328 tmp2 = tmp11 - tmp12;
338 tmp11 = MULTIPLY(z11 - z13, FIX_1_414213562);
340 z5 = MULTIPLY(z10 + z12, FIX_1_847759065);
341 tmp10 =
z5 - MULTIPLY(z12, FIX_1_082392200);
342 tmp12 =
z5 - MULTIPLY(z10, FIX_2_613125930);
350 outptr[0] = FINAL_OUTPUT(tmp0 + tmp7);
351 outptr[7] = FINAL_OUTPUT(tmp0 - tmp7);
352 outptr[1] = FINAL_OUTPUT(tmp1 + tmp6);
353 outptr[6] = FINAL_OUTPUT(tmp1 - tmp6);
354 outptr[2] = FINAL_OUTPUT(tmp2 + tmp5);
355 outptr[5] = FINAL_OUTPUT(tmp2 - tmp5);
356 outptr[3] = FINAL_OUTPUT(tmp3 + tmp4);
357 outptr[4] = FINAL_OUTPUT(tmp3 - tmp4);
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
for(i=0;i< ARRAY_SIZE(offsets);i++)
jpeg_component_info JCOEFPTR coef_block
MULTIPLIER IFAST_MULT_TYPE
jpeg_component_info JCOEFPTR JSAMPARRAY JDIMENSION output_col
jpeg_component_info * compptr
#define IDCT_range_limit(cinfo)
jpeg_component_info JCOEFPTR JSAMPARRAY output_buf
static double float double int float double float int float double float int double int float z5