10 #define JPEG_INTERNALS 15 #ifdef DCT_IFAST_SUPPORTED 23 Sorry,
this code only copes with 8x8 DCTs.
51 #if BITS_IN_JSAMPLE == 8 67 #define FIX_1_082392200 ((INT32) 277) 68 #define FIX_1_414213562 ((INT32) 362) 69 #define FIX_1_847759065 ((INT32) 473) 70 #define FIX_2_613125930 ((INT32) 669) 72 #define FIX_1_082392200 FIX(1.082392200) 73 #define FIX_1_414213562 FIX(1.414213562) 74 #define FIX_1_847759065 FIX(1.847759065) 75 #define FIX_2_613125930 FIX(2.613125930) 84 #ifndef USE_ACCURATE_ROUNDING 86 #define DESCALE(x,n) RIGHT_SHIFT(x, n) 94 #define MULTIPLY(var,const) ((DCTELEM) DESCALE((var) * (const), CONST_BITS)) 103 #if BITS_IN_JSAMPLE == 8 104 #define DEQUANTIZE(coef,quantval) (((IFAST_MULT_TYPE) (coef)) * (quantval)) 106 #define DEQUANTIZE(coef,quantval) \ 107 DESCALE((coef)*(quantval), IFAST_SCALE_BITS-PASS1_BITS) 115 #ifdef RIGHT_SHIFT_IS_UNSIGNED 116 #define ISHIFT_TEMPS DCTELEM ishift_temp; 117 #if BITS_IN_JSAMPLE == 8 118 #define DCTELEMBITS 16 120 #define DCTELEMBITS 32 122 #define IRIGHT_SHIFT(x,shft) \ 123 ((ishift_temp = (x)) < 0 ? \ 124 (ishift_temp >> (shft)) | ((~((DCTELEM) 0)) << (DCTELEMBITS-(shft))) : \ 125 (ishift_temp >> (shft))) 128 #define IRIGHT_SHIFT(x,shft) ((x) >> (shft)) 131 #ifdef USE_ACCURATE_ROUNDING 132 #define IDESCALE(x,n) ((int) IRIGHT_SHIFT((x) + (1 << ((n)-1)), n)) 134 #define IDESCALE(x,n) ((int) IRIGHT_SHIFT(x, n)) 147 DCTELEM tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
148 DCTELEM tmp10, tmp11, tmp12, tmp13;
149 DCTELEM z5, z10, z11, z12, z13;
165 for (ctr =
DCTSIZE; ctr > 0; ctr--) {
210 tmp0 = tmp10 + tmp13;
211 tmp3 = tmp10 - tmp13;
212 tmp1 = tmp11 + tmp12;
213 tmp2 = tmp11 - tmp12;
238 wsptr[
DCTSIZE*0] = (int) (tmp0 + tmp7);
239 wsptr[
DCTSIZE*7] = (int) (tmp0 - tmp7);
240 wsptr[
DCTSIZE*1] = (int) (tmp1 + tmp6);
241 wsptr[
DCTSIZE*6] = (int) (tmp1 - tmp6);
242 wsptr[
DCTSIZE*2] = (int) (tmp2 + tmp5);
243 wsptr[
DCTSIZE*5] = (int) (tmp2 - tmp5);
244 wsptr[
DCTSIZE*4] = (int) (tmp3 + tmp4);
245 wsptr[
DCTSIZE*3] = (int) (tmp3 - tmp4);
257 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
267 #ifndef NO_ZERO_ROW_TEST 268 if (wsptr[1] == 0 && wsptr[2] == 0 && wsptr[3] == 0 && wsptr[4] == 0 &&
269 wsptr[5] == 0 && wsptr[6] == 0 && wsptr[7] == 0) {
297 tmp0 = tmp10 + tmp13;
298 tmp3 = tmp10 - tmp13;
299 tmp1 = tmp11 + tmp12;
300 tmp2 = tmp11 - tmp12;
#define IDCT_range_limit(cinfo)
jpeg_component_info JCOEFPTR coef_block
jpeg_component_info * compptr
jpeg_component_info JCOEFPTR JSAMPARRAY JDIMENSION output_col
#define MULTIPLY(var, const)
jpeg_idct_ifast(j_decompress_ptr cinfo, jpeg_component_info *compptr, JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)
#define DEQUANTIZE(coef, quantval)