26 #define JPEG_INTERNALS
31 #ifdef DCT_ISLOW_SUPPORTED
39 Sorry,
this code only copes with 8x8 DCTs.
77 #if BITS_IN_JSAMPLE == 8
93 #define FIX_0_298631336 ((INT32) 2446)
94 #define FIX_0_390180644 ((INT32) 3196)
95 #define FIX_0_541196100 ((INT32) 4433)
96 #define FIX_0_765366865 ((INT32) 6270)
97 #define FIX_0_899976223 ((INT32) 7373)
98 #define FIX_1_175875602 ((INT32) 9633)
99 #define FIX_1_501321110 ((INT32) 12299)
100 #define FIX_1_847759065 ((INT32) 15137)
101 #define FIX_1_961570560 ((INT32) 16069)
102 #define FIX_2_053119869 ((INT32) 16819)
103 #define FIX_2_562915447 ((INT32) 20995)
104 #define FIX_3_072711026 ((INT32) 25172)
106 #define FIX_0_298631336 FIX(0.298631336)
107 #define FIX_0_390180644 FIX(0.390180644)
108 #define FIX_0_541196100 FIX(0.541196100)
109 #define FIX_0_765366865 FIX(0.765366865)
110 #define FIX_0_899976223 FIX(0.899976223)
111 #define FIX_1_175875602 FIX(1.175875602)
112 #define FIX_1_501321110 FIX(1.501321110)
113 #define FIX_1_847759065 FIX(1.847759065)
114 #define FIX_1_961570560 FIX(1.961570560)
115 #define FIX_2_053119869 FIX(2.053119869)
116 #define FIX_2_562915447 FIX(2.562915447)
117 #define FIX_3_072711026 FIX(3.072711026)
128 #if BITS_IN_JSAMPLE == 8
129 #define MULTIPLY(var,const) MULTIPLY16C16(var,const)
131 #define MULTIPLY(var,const) ((var) * (const))
142 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
143 INT32 tmp10, tmp11, tmp12, tmp13;
144 INT32 z1, z2, z3, z4, z5;
154 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
155 tmp0 = dataptr[0] + dataptr[7];
156 tmp7 = dataptr[0] - dataptr[7];
157 tmp1 = dataptr[1] + dataptr[6];
158 tmp6 = dataptr[1] - dataptr[6];
159 tmp2 = dataptr[2] + dataptr[5];
160 tmp5 = dataptr[2] - dataptr[5];
161 tmp3 = dataptr[3] + dataptr[4];
162 tmp4 = dataptr[3] - dataptr[4];
173 dataptr[0] = (
DCTELEM) ((tmp10 + tmp11) << PASS1_BITS);
174 dataptr[4] = (
DCTELEM) ((tmp10 - tmp11) << PASS1_BITS);
176 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
177 dataptr[2] = (
DCTELEM)
DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865),
178 CONST_BITS-PASS1_BITS);
179 dataptr[6] = (
DCTELEM)
DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065),
180 CONST_BITS-PASS1_BITS);
191 z5 = MULTIPLY(z3 + z4, FIX_1_175875602);
193 tmp4 = MULTIPLY(tmp4, FIX_0_298631336);
194 tmp5 = MULTIPLY(tmp5, FIX_2_053119869);
195 tmp6 = MULTIPLY(tmp6, FIX_3_072711026);
196 tmp7 = MULTIPLY(tmp7, FIX_1_501321110);
197 z1 = MULTIPLY(z1, - FIX_0_899976223);
198 z2 = MULTIPLY(z2, - FIX_2_562915447);
199 z3 = MULTIPLY(z3, - FIX_1_961570560);
200 z4 = MULTIPLY(z4, - FIX_0_390180644);
205 dataptr[7] = (
DCTELEM)
DESCALE(tmp4 + z1 + z3, CONST_BITS-PASS1_BITS);
206 dataptr[5] = (
DCTELEM)
DESCALE(tmp5 + z2 + z4, CONST_BITS-PASS1_BITS);
207 dataptr[3] = (
DCTELEM)
DESCALE(tmp6 + z2 + z3, CONST_BITS-PASS1_BITS);
208 dataptr[1] = (
DCTELEM)
DESCALE(tmp7 + z1 + z4, CONST_BITS-PASS1_BITS);
219 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
241 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
243 CONST_BITS+PASS1_BITS);
245 CONST_BITS+PASS1_BITS);
256 z5 = MULTIPLY(z3 + z4, FIX_1_175875602);
258 tmp4 = MULTIPLY(tmp4, FIX_0_298631336);
259 tmp5 = MULTIPLY(tmp5, FIX_2_053119869);
260 tmp6 = MULTIPLY(tmp6, FIX_3_072711026);
261 tmp7 = MULTIPLY(tmp7, FIX_1_501321110);
262 z1 = MULTIPLY(z1, - FIX_0_899976223);
263 z2 = MULTIPLY(z2, - FIX_2_562915447);
264 z3 = MULTIPLY(z3, - FIX_1_961570560);
265 z4 = MULTIPLY(z4, - FIX_0_390180644);
271 CONST_BITS+PASS1_BITS);
273 CONST_BITS+PASS1_BITS);
275 CONST_BITS+PASS1_BITS);
277 CONST_BITS+PASS1_BITS);
GLsizei GLsizei GLenum GLenum const GLvoid * data