23 #define JPEG_INTERNALS
28 #ifdef IDCT_SCALING_SUPPORTED
36 Sorry,
this code only copes with 8x8 DCTs.
42 #if BITS_IN_JSAMPLE == 8
58 #define FIX_0_211164243 ((INT32) 1730)
59 #define FIX_0_509795579 ((INT32) 4176)
60 #define FIX_0_601344887 ((INT32) 4926)
61 #define FIX_0_720959822 ((INT32) 5906)
62 #define FIX_0_765366865 ((INT32) 6270)
63 #define FIX_0_850430095 ((INT32) 6967)
64 #define FIX_0_899976223 ((INT32) 7373)
65 #define FIX_1_061594337 ((INT32) 8697)
66 #define FIX_1_272758580 ((INT32) 10426)
67 #define FIX_1_451774981 ((INT32) 11893)
68 #define FIX_1_847759065 ((INT32) 15137)
69 #define FIX_2_172734803 ((INT32) 17799)
70 #define FIX_2_562915447 ((INT32) 20995)
71 #define FIX_3_624509785 ((INT32) 29692)
73 #define FIX_0_211164243 FIX(0.211164243)
74 #define FIX_0_509795579 FIX(0.509795579)
75 #define FIX_0_601344887 FIX(0.601344887)
76 #define FIX_0_720959822 FIX(0.720959822)
77 #define FIX_0_765366865 FIX(0.765366865)
78 #define FIX_0_850430095 FIX(0.850430095)
79 #define FIX_0_899976223 FIX(0.899976223)
80 #define FIX_1_061594337 FIX(1.061594337)
81 #define FIX_1_272758580 FIX(1.272758580)
82 #define FIX_1_451774981 FIX(1.451774981)
83 #define FIX_1_847759065 FIX(1.847759065)
84 #define FIX_2_172734803 FIX(2.172734803)
85 #define FIX_2_562915447 FIX(2.562915447)
86 #define FIX_3_624509785 FIX(3.624509785)
97 #if BITS_IN_JSAMPLE == 8
98 #define MULTIPLY(var,const) MULTIPLY16C16(var,const)
100 #define MULTIPLY(var,const) ((var) * (const))
109 #define DEQUANTIZE(coef,quantval) (((ISLOW_MULT_TYPE) (coef)) * (quantval))
122 INT32 tmp0, tmp2, tmp10, tmp12;
123 INT32 z1, z2, z3, z4;
138 for (ctr =
DCTSIZE; ctr > 0; inptr++, quantptr++, wsptr++, ctr--) {
197 for (ctr = 0; ctr < 4; ctr++) {
201 #ifndef NO_ZERO_ROW_TEST
202 if (wsptr[1] == 0 && wsptr[2] == 0 && wsptr[3] == 0 &&
203 wsptr[5] == 0 && wsptr[6] == 0 && wsptr[7] == 0) {
230 z1 = (
INT32) wsptr[7];
231 z2 = (
INT32) wsptr[5];
232 z3 = (
INT32) wsptr[3];
233 z4 = (
INT32) wsptr[1];
247 outptr[0] = range_limit[(
int)
DESCALE(tmp10 + tmp2,
250 outptr[3] = range_limit[(
int)
DESCALE(tmp10 - tmp2,
253 outptr[1] = range_limit[(
int)
DESCALE(tmp12 + tmp0,
256 outptr[2] = range_limit[(
int)
DESCALE(tmp12 - tmp0,
275 INT32 tmp0, tmp10, z1;
290 for (ctr =
DCTSIZE; ctr > 0; inptr++, quantptr++, wsptr++, ctr--) {
330 for (ctr = 0; ctr < 2; ctr++) {
334 #ifndef NO_ZERO_ROW_TEST
335 if (wsptr[1] == 0 && wsptr[3] == 0 && wsptr[5] == 0 && wsptr[7] == 0) {
361 outptr[0] = range_limit[(
int)
DESCALE(tmp10 + tmp0,
364 outptr[1] = range_limit[(
int)
DESCALE(tmp10 - tmp0,