29#ifdef DCT_FLOAT_SUPPORTED
47#ifdef DCT_FLOAT_SUPPORTED
81 register JCOEFPTR output_ptr = coef_blocks[bi];
99#define DIVIDE_BY(a,b) a /= b
101#define DIVIDE_BY(a,b) if (a >= b) a /= b; else a = 0
119#ifdef DCT_FLOAT_SUPPORTED
139 {
register FAST_FLOAT
temp;
141 register JCOEFPTR output_ptr = coef_blocks[bi];
145 temp = workspace[
i] * divisors[
i];
152 output_ptr[
i] = (
JCOEF) ((
int) (
temp + (FAST_FLOAT) 16384.5) - 16384);
180 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
184#ifdef DCT_SCALING_SUPPORTED
189#ifndef PROVIDE_ISLOW_TABLES
190#define PROVIDE_ISLOW_TABLES
193 fdct->
do_dct[ci] = jpeg_fdct_1x1;
197 fdct->
do_dct[ci] = jpeg_fdct_2x2;
201 fdct->
do_dct[ci] = jpeg_fdct_3x3;
205 fdct->
do_dct[ci] = jpeg_fdct_4x4;
209 fdct->
do_dct[ci] = jpeg_fdct_5x5;
213 fdct->
do_dct[ci] = jpeg_fdct_6x6;
217 fdct->
do_dct[ci] = jpeg_fdct_7x7;
221 fdct->
do_dct[ci] = jpeg_fdct_9x9;
224 case ((10 << 8) + 10):
225 fdct->
do_dct[ci] = jpeg_fdct_10x10;
228 case ((11 << 8) + 11):
229 fdct->
do_dct[ci] = jpeg_fdct_11x11;
232 case ((12 << 8) + 12):
233 fdct->
do_dct[ci] = jpeg_fdct_12x12;
236 case ((13 << 8) + 13):
237 fdct->
do_dct[ci] = jpeg_fdct_13x13;
240 case ((14 << 8) + 14):
241 fdct->
do_dct[ci] = jpeg_fdct_14x14;
244 case ((15 << 8) + 15):
245 fdct->
do_dct[ci] = jpeg_fdct_15x15;
248 case ((16 << 8) + 16):
249 fdct->
do_dct[ci] = jpeg_fdct_16x16;
252 case ((16 << 8) + 8):
253 fdct->
do_dct[ci] = jpeg_fdct_16x8;
256 case ((14 << 8) + 7):
257 fdct->
do_dct[ci] = jpeg_fdct_14x7;
260 case ((12 << 8) + 6):
261 fdct->
do_dct[ci] = jpeg_fdct_12x6;
264 case ((10 << 8) + 5):
265 fdct->
do_dct[ci] = jpeg_fdct_10x5;
269 fdct->
do_dct[ci] = jpeg_fdct_8x4;
273 fdct->
do_dct[ci] = jpeg_fdct_6x3;
277 fdct->
do_dct[ci] = jpeg_fdct_4x2;
281 fdct->
do_dct[ci] = jpeg_fdct_2x1;
284 case ((8 << 8) + 16):
285 fdct->
do_dct[ci] = jpeg_fdct_8x16;
288 case ((7 << 8) + 14):
289 fdct->
do_dct[ci] = jpeg_fdct_7x14;
292 case ((6 << 8) + 12):
293 fdct->
do_dct[ci] = jpeg_fdct_6x12;
296 case ((5 << 8) + 10):
297 fdct->
do_dct[ci] = jpeg_fdct_5x10;
301 fdct->
do_dct[ci] = jpeg_fdct_4x8;
305 fdct->
do_dct[ci] = jpeg_fdct_3x6;
309 fdct->
do_dct[ci] = jpeg_fdct_2x4;
313 fdct->
do_dct[ci] = jpeg_fdct_1x2;
318 switch (cinfo->dct_method) {
319#ifdef DCT_ISLOW_SUPPORTED
321#ifndef PROVIDE_ISLOW_TABLES
322#define PROVIDE_ISLOW_TABLES
324 fdct->
do_dct[ci] = jpeg_fdct_islow;
328#ifdef DCT_IFAST_SUPPORTED
330#if BITS_IN_JSAMPLE < JPEG_DATA_PRECISION || \
331 BITS_IN_JSAMPLE > JPEG_DATA_PRECISION + 8
337#ifndef PROVIDE_ISLOW_TABLES
338#define PROVIDE_ISLOW_TABLES
340 fdct->
do_dct[ci] = jpeg_fdct_islow;
343#ifndef PROVIDE_IFAST_TABLES
344#define PROVIDE_IFAST_TABLES
346 fdct->
do_dct[ci] = jpeg_fdct_ifast;
351#ifdef DCT_FLOAT_SUPPORTED
353 fdct->do_float_dct[ci] = jpeg_fdct_float;
358 ERREXIT(cinfo, JERR_NOT_COMPILED);
368 cinfo->quant_tbl_ptrs[qtblno] ==
NULL)
369 ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, qtblno);
370 qtbl = cinfo->quant_tbl_ptrs[qtblno];
373#ifdef PROVIDE_ISLOW_TABLES
386#ifdef PROVIDE_IFAST_TABLES
399 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
400 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270,
401 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906,
402 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315,
403 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
404 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552,
405 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446,
406 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247
430#ifdef DCT_FLOAT_SUPPORTED
444 static const double aanscalefactor[
DCTSIZE] = {
445 1.0, 1.387039845, 1.306562965, 1.175875602,
446 1.0, 0.785694958, 0.541196100, 0.275899379
448#if BITS_IN_JSAMPLE == JPEG_DATA_PRECISION
452 for (col = 0; col <
DCTSIZE; col++) {
453 fdtbl[
i] = (FAST_FLOAT)
454 (1.0 / ((
double) qtbl->quantval[
i] *
455 aanscalefactor[
row] * aanscalefactor[col] *
461#if BITS_IN_JSAMPLE < JPEG_DATA_PRECISION
463 do { extrafactor *= 0.5; }
while (--
i);
466 do { extrafactor *= 2.0; }
while (--
i);
471 for (col = 0; col <
DCTSIZE; col++) {
472 fdtbl[
i] = (FAST_FLOAT)
473 (1.0 / ((
double) qtbl->quantval[
i] *
474 aanscalefactor[
row] * aanscalefactor[col] *
481 fdct->
pub.forward_DCT[ci] = forward_DCT_float;
485 ERREXIT(cinfo, JERR_NOT_COMPILED);
504 cinfo->fdct = &fdct->
pub;
507 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
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
forward_DCT(j_compress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY sample_data, JBLOCKROW coef_blocks, JDIMENSION start_col, JDIMENSION num_blocks)
jinit_forward_dct(j_compress_ptr cinfo)
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)
#define JPEG_DATA_PRECISION
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]