10 #define JPEG_INTERNALS 15 #ifdef DCT_FLOAT_SUPPORTED 23 Sorry,
this code only copes with 8x8 DCTs.
31 #define DEQUANTIZE(coef,quantval) (((FAST_FLOAT) (coef)) * (quantval)) 43 FAST_FLOAT tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
44 FAST_FLOAT tmp10, tmp11, tmp12, tmp13;
45 FAST_FLOAT z5, z10, z11, z12, z13;
60 for (ctr =
DCTSIZE; ctr > 0; ctr--) {
103 tmp12 = (tmp1 - tmp3) * ((FAST_FLOAT) 1.414213562) - tmp13;
105 tmp0 = tmp10 + tmp13;
106 tmp3 = tmp10 - tmp13;
107 tmp1 = tmp11 + tmp12;
108 tmp2 = tmp11 - tmp12;
123 tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562);
125 z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065);
126 tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5;
127 tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5;
133 wsptr[
DCTSIZE*0] = tmp0 + tmp7;
134 wsptr[
DCTSIZE*7] = tmp0 - tmp7;
135 wsptr[
DCTSIZE*1] = tmp1 + tmp6;
136 wsptr[
DCTSIZE*6] = tmp1 - tmp6;
137 wsptr[
DCTSIZE*2] = tmp2 + tmp5;
138 wsptr[
DCTSIZE*5] = tmp2 - tmp5;
139 wsptr[
DCTSIZE*4] = tmp3 + tmp4;
140 wsptr[
DCTSIZE*3] = tmp3 - tmp4;
151 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
161 tmp10 = wsptr[0] + wsptr[4];
162 tmp11 = wsptr[0] - wsptr[4];
164 tmp13 = wsptr[2] + wsptr[6];
165 tmp12 = (wsptr[2] - wsptr[6]) * ((FAST_FLOAT) 1.414213562) - tmp13;
167 tmp0 = tmp10 + tmp13;
168 tmp3 = tmp10 - tmp13;
169 tmp1 = tmp11 + tmp12;
170 tmp2 = tmp11 - tmp12;
174 z13 = wsptr[5] + wsptr[3];
175 z10 = wsptr[5] - wsptr[3];
176 z11 = wsptr[1] + wsptr[7];
177 z12 = wsptr[1] - wsptr[7];
180 tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562);
182 z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065);
183 tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5;
184 tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5;
192 outptr[0] = range_limit[(int)
DESCALE((
INT32) (tmp0 + tmp7), 3)
194 outptr[7] = range_limit[(int)
DESCALE((
INT32) (tmp0 - tmp7), 3)
196 outptr[1] = range_limit[(int)
DESCALE((
INT32) (tmp1 + tmp6), 3)
198 outptr[6] = range_limit[(int)
DESCALE((
INT32) (tmp1 - tmp6), 3)
200 outptr[2] = range_limit[(int)
DESCALE((
INT32) (tmp2 + tmp5), 3)
202 outptr[5] = range_limit[(int)
DESCALE((
INT32) (tmp2 - tmp5), 3)
204 outptr[4] = range_limit[(int)
DESCALE((
INT32) (tmp3 + tmp4), 3)
206 outptr[3] = range_limit[(int)
DESCALE((
INT32) (tmp3 - tmp4), 3)
#define IDCT_range_limit(cinfo)
jpeg_component_info JCOEFPTR coef_block
jpeg_component_info * compptr
jpeg_component_info JCOEFPTR JSAMPARRAY JDIMENSION output_col
FAST_FLOAT FLOAT_MULT_TYPE
#define DEQUANTIZE(coef, quantval)
jpeg_idct_float(j_decompress_ptr cinfo, jpeg_component_info *compptr, JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)