15 #define JPEG_INTERNALS 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 388 #define CONST_BITS 14 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;
my_fdct_controller * my_fdct_ptr
struct jpeg_forward_dct * fdct
forward_DCT_method_ptr do_dct[MAX_COMPONENTS]
JSAMPARRAY JDIMENSION start_col
struct jpeg_common_struct * j_common_ptr
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)
jinit_forward_dct(j_compress_ptr cinfo)
jpeg_component_info * compptr
JBLOCKROW JDIMENSION num_blocks
struct jpeg_forward_dct pub
#define ERREXIT1(cinfo, code, p1)
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
start_pass_fdctmgr(j_compress_ptr cinfo)
#define ERREXIT2(cinfo, code, p1, p2)
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
#define MULTIPLY16V16(var1, var2)