79{
84 inverse_DCT_method_ptr method_ptr =
NULL;
86
89
91#ifdef IDCT_SCALING_SUPPORTED
92
93
94
95
96#ifndef PROVIDE_ISLOW_TABLES
97#define PROVIDE_ISLOW_TABLES
98#endif
99 case ((1 << 8) + 1):
100 method_ptr = jpeg_idct_1x1;
102 break;
103 case ((2 << 8) + 2):
104 method_ptr = jpeg_idct_2x2;
106 break;
107 case ((3 << 8) + 3):
108 method_ptr = jpeg_idct_3x3;
110 break;
111 case ((4 << 8) + 4):
112 method_ptr = jpeg_idct_4x4;
114 break;
115 case ((5 << 8) + 5):
116 method_ptr = jpeg_idct_5x5;
118 break;
119 case ((6 << 8) + 6):
120 method_ptr = jpeg_idct_6x6;
122 break;
123 case ((7 << 8) + 7):
124 method_ptr = jpeg_idct_7x7;
126 break;
127 case ((9 << 8) + 9):
128 method_ptr = jpeg_idct_9x9;
130 break;
131 case ((10 << 8) + 10):
132 method_ptr = jpeg_idct_10x10;
134 break;
135 case ((11 << 8) + 11):
136 method_ptr = jpeg_idct_11x11;
138 break;
139 case ((12 << 8) + 12):
140 method_ptr = jpeg_idct_12x12;
142 break;
143 case ((13 << 8) + 13):
144 method_ptr = jpeg_idct_13x13;
146 break;
147 case ((14 << 8) + 14):
148 method_ptr = jpeg_idct_14x14;
150 break;
151 case ((15 << 8) + 15):
152 method_ptr = jpeg_idct_15x15;
154 break;
155 case ((16 << 8) + 16):
156 method_ptr = jpeg_idct_16x16;
158 break;
159 case ((16 << 8) + 8):
160 method_ptr = jpeg_idct_16x8;
162 break;
163 case ((14 << 8) + 7):
164 method_ptr = jpeg_idct_14x7;
166 break;
167 case ((12 << 8) + 6):
168 method_ptr = jpeg_idct_12x6;
170 break;
171 case ((10 << 8) + 5):
172 method_ptr = jpeg_idct_10x5;
174 break;
175 case ((8 << 8) + 4):
176 method_ptr = jpeg_idct_8x4;
178 break;
179 case ((6 << 8) + 3):
180 method_ptr = jpeg_idct_6x3;
182 break;
183 case ((4 << 8) + 2):
184 method_ptr = jpeg_idct_4x2;
186 break;
187 case ((2 << 8) + 1):
188 method_ptr = jpeg_idct_2x1;
190 break;
191 case ((8 << 8) + 16):
192 method_ptr = jpeg_idct_8x16;
194 break;
195 case ((7 << 8) + 14):
196 method_ptr = jpeg_idct_7x14;
198 break;
199 case ((6 << 8) + 12):
200 method_ptr = jpeg_idct_6x12;
202 break;
203 case ((5 << 8) + 10):
204 method_ptr = jpeg_idct_5x10;
206 break;
207 case ((4 << 8) + 8):
208 method_ptr = jpeg_idct_4x8;
210 break;
211 case ((3 << 8) + 6):
212 method_ptr = jpeg_idct_3x6;
214 break;
215 case ((2 << 8) + 4):
216 method_ptr = jpeg_idct_2x4;
218 break;
219 case ((1 << 8) + 2):
220 method_ptr = jpeg_idct_1x2;
222 break;
223#endif
226#ifdef DCT_ISLOW_SUPPORTED
228#ifndef PROVIDE_ISLOW_TABLES
229#define PROVIDE_ISLOW_TABLES
230#endif
231 method_ptr = jpeg_idct_islow;
233 break;
234#endif
235#ifdef DCT_IFAST_SUPPORTED
237 method_ptr = jpeg_idct_ifast;
239 break;
240#endif
241#ifdef DCT_FLOAT_SUPPORTED
243 method_ptr = jpeg_idct_float;
245 break;
246#endif
247 default:
248 ERREXIT(cinfo, JERR_NOT_COMPILED);
249 }
250 break;
251 default:
254 }
255 idct->
pub.inverse_DCT[ci] = method_ptr;
256
257
258
259
260
261
262
264 continue;
267 continue;
270#ifdef PROVIDE_ISLOW_TABLES
272 {
273
274
275
279 }
280 }
281 break;
282#endif
283#ifdef DCT_IFAST_SUPPORTED
285 {
286
287
288
289
290
291
292
296
297 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
298 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270,
299 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906,
300 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315,
301 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
302 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552,
303 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446,
304 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247
305 };
307
313 }
314 }
315 break;
316#endif
317#ifdef DCT_FLOAT_SUPPORTED
319 {
320
321
322
323
324
325
326
329 static const double aanscalefactor[
DCTSIZE] = {
330 1.0, 1.387039845, 1.306562965, 1.175875602,
331 1.0, 0.785694958, 0.541196100, 0.275899379
332 };
333#if JPEG_DATA_PRECISION == BITS_IN_JSAMPLE
334
337 for (col = 0; col <
DCTSIZE; col++) {
339 aanscalefactor[
row] * aanscalefactor[col] * 0.125);
340#else
341 double extrafactor = 0.125;
342
343
344#if JPEG_DATA_PRECISION < BITS_IN_JSAMPLE
346 do { extrafactor *= 2.0; }
while (--
i);
347#else
349 do { extrafactor *= 0.5; }
while (--
i);
350#endif
351
354 for (col = 0; col <
DCTSIZE; col++) {
356 aanscalefactor[
row] * aanscalefactor[col] * extrafactor);
357#endif
359 }
360 }
361 }
362 break;
363#endif
364 default:
365 ERREXIT(cinfo, JERR_NOT_COMPILED);
366 }
367 }
368}
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
for(i=0;i< ARRAY_SIZE(offsets);i++)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
MULTIPLIER ISLOW_MULT_TYPE
MULTIPLIER IFAST_MULT_TYPE
#define MULTIPLY16V16(var1, var2)
FAST_FLOAT FLOAT_MULT_TYPE
#define ERREXIT2(cinfo, code, p1, p2)
#define JPEG_DATA_PRECISION