29#ifdef DCT_FLOAT_SUPPORTED
47#ifdef DCT_FLOAT_SUPPORTED
56#ifdef DCT_ISLOW_SUPPORTED
57#define PROVIDE_ISLOW_TABLES
59#ifdef DCT_SCALING_SUPPORTED
60#define PROVIDE_ISLOW_TABLES
96 register JCOEFPTR output_ptr = coef_blocks[bi];
114#define DIVIDE_BY(a,b) a /= b
116#define DIVIDE_BY(a,b) if (a >= b) a /= b; else a = 0
134#ifdef DCT_FLOAT_SUPPORTED
157 {
register FAST_FLOAT
temp;
159 register JCOEFPTR output_ptr = coef_blocks[bi];
163 temp = workspace[
i] * divisors[
i];
170 output_ptr[
i] = (
JCOEF) ((
int) (
temp + (FAST_FLOAT) 16384.5) - 16384);
198 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
202#ifdef DCT_SCALING_SUPPORTED
204 fdct->
do_dct[ci] = jpeg_fdct_1x1;
208 fdct->
do_dct[ci] = jpeg_fdct_2x2;
212 fdct->
do_dct[ci] = jpeg_fdct_3x3;
216 fdct->
do_dct[ci] = jpeg_fdct_4x4;
220 fdct->
do_dct[ci] = jpeg_fdct_5x5;
224 fdct->
do_dct[ci] = jpeg_fdct_6x6;
228 fdct->
do_dct[ci] = jpeg_fdct_7x7;
232 fdct->
do_dct[ci] = jpeg_fdct_9x9;
235 case ((10 << 8) + 10):
236 fdct->
do_dct[ci] = jpeg_fdct_10x10;
239 case ((11 << 8) + 11):
240 fdct->
do_dct[ci] = jpeg_fdct_11x11;
243 case ((12 << 8) + 12):
244 fdct->
do_dct[ci] = jpeg_fdct_12x12;
247 case ((13 << 8) + 13):
248 fdct->
do_dct[ci] = jpeg_fdct_13x13;
251 case ((14 << 8) + 14):
252 fdct->
do_dct[ci] = jpeg_fdct_14x14;
255 case ((15 << 8) + 15):
256 fdct->
do_dct[ci] = jpeg_fdct_15x15;
259 case ((16 << 8) + 16):
260 fdct->
do_dct[ci] = jpeg_fdct_16x16;
263 case ((16 << 8) + 8):
264 fdct->
do_dct[ci] = jpeg_fdct_16x8;
267 case ((14 << 8) + 7):
268 fdct->
do_dct[ci] = jpeg_fdct_14x7;
271 case ((12 << 8) + 6):
272 fdct->
do_dct[ci] = jpeg_fdct_12x6;
275 case ((10 << 8) + 5):
276 fdct->
do_dct[ci] = jpeg_fdct_10x5;
280 fdct->
do_dct[ci] = jpeg_fdct_8x4;
284 fdct->
do_dct[ci] = jpeg_fdct_6x3;
288 fdct->
do_dct[ci] = jpeg_fdct_4x2;
292 fdct->
do_dct[ci] = jpeg_fdct_2x1;
295 case ((8 << 8) + 16):
296 fdct->
do_dct[ci] = jpeg_fdct_8x16;
299 case ((7 << 8) + 14):
300 fdct->
do_dct[ci] = jpeg_fdct_7x14;
303 case ((6 << 8) + 12):
304 fdct->
do_dct[ci] = jpeg_fdct_6x12;
307 case ((5 << 8) + 10):
308 fdct->
do_dct[ci] = jpeg_fdct_5x10;
312 fdct->
do_dct[ci] = jpeg_fdct_4x8;
316 fdct->
do_dct[ci] = jpeg_fdct_3x6;
320 fdct->
do_dct[ci] = jpeg_fdct_2x4;
324 fdct->
do_dct[ci] = jpeg_fdct_1x2;
329 switch (cinfo->dct_method) {
330#ifdef DCT_ISLOW_SUPPORTED
332 fdct->
do_dct[ci] = jpeg_fdct_islow;
336#ifdef DCT_IFAST_SUPPORTED
338 fdct->
do_dct[ci] = jpeg_fdct_ifast;
342#ifdef DCT_FLOAT_SUPPORTED
344 fdct->do_float_dct[ci] = jpeg_fdct_float;
349 ERREXIT(cinfo, JERR_NOT_COMPILED);
361 cinfo->quant_tbl_ptrs[qtblno] ==
NULL)
362 ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, qtblno);
363 qtbl = cinfo->quant_tbl_ptrs[qtblno];
366#ifdef PROVIDE_ISLOW_TABLES
379#ifdef DCT_IFAST_SUPPORTED
391 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
392 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270,
393 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906,
394 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315,
395 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
396 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552,
397 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446,
398 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247
413#ifdef DCT_FLOAT_SUPPORTED
426 static const double aanscalefactor[
DCTSIZE] = {
427 1.0, 1.387039845, 1.306562965, 1.175875602,
428 1.0, 0.785694958, 0.541196100, 0.275899379
433 for (col = 0; col <
DCTSIZE; col++) {
434 fdtbl[
i] = (FAST_FLOAT)
435 (1.0 / ((
double) qtbl->quantval[
i] *
436 aanscalefactor[
row] * aanscalefactor[col] *
442 fdct->
pub.forward_DCT[ci] = forward_DCT_float;
446 ERREXIT(cinfo, JERR_NOT_COMPILED);
467 cinfo->fdct = &fdct->
pub;
470 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
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
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
jinit_forward_dct(j_compress_ptr cinfo)
forward_DCT(j_compress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY sample_data, JBLOCKROW coef_blocks, JDIMENSION start_row, JDIMENSION start_col, JDIMENSION num_blocks)
start_pass_fdctmgr(j_compress_ptr cinfo)
my_fdct_controller * my_fdct_ptr
#define MULTIPLY16V16(var1, var2)
JSAMPARRAY JDIMENSION start_col
jpeg_component_info * compptr
#define ERREXIT1(cinfo, code, p1)
#define ERREXIT2(cinfo, code, p1, p2)
JBLOCKROW JDIMENSION num_blocks
struct jpeg_common_struct * j_common_ptr
struct jpeg_forward_dct * fdct
struct jpeg_forward_dct pub
forward_DCT_method_ptr do_dct[MAX_COMPONENTS]