18 #define JPEG_INTERNALS
61 #ifdef DCT_IFAST_SUPPORTED
64 #ifdef DCT_FLOAT_SUPPORTED
73 #ifdef DCT_ISLOW_SUPPORTED
74 #define PROVIDE_ISLOW_TABLES
76 #ifdef IDCT_SCALING_SUPPORTED
77 #define PROVIDE_ISLOW_TABLES
95 inverse_DCT_method_ptr method_ptr =
NULL;
98 for (ci = 0, compptr = cinfo->
comp_info; ci < cinfo->num_components;
101 switch (compptr->DCT_scaled_size) {
102 #ifdef IDCT_SCALING_SUPPORTED
104 method_ptr = jpeg_idct_1x1;
108 method_ptr = jpeg_idct_2x2;
112 method_ptr = jpeg_idct_4x4;
118 #ifdef DCT_ISLOW_SUPPORTED
120 method_ptr = jpeg_idct_islow;
124 #ifdef DCT_IFAST_SUPPORTED
126 method_ptr = jpeg_idct_ifast;
130 #ifdef DCT_FLOAT_SUPPORTED
137 ERREXIT(cinfo, JERR_NOT_COMPILED);
142 ERREXIT1(cinfo, JERR_BAD_DCTSIZE, compptr->DCT_scaled_size);
153 if (! compptr->component_needed || idct->
cur_method[ci] == method)
155 qtbl = compptr->quant_table;
160 #ifdef PROVIDE_ISLOW_TABLES
173 #ifdef DCT_IFAST_SUPPORTED
184 #define CONST_BITS 14
187 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
188 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270,
189 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906,
190 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315,
191 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520,
192 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552,
193 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446,
194 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247
207 #ifdef DCT_FLOAT_SUPPORTED
218 static const double aanscalefactor[
DCTSIZE] = {
219 1.0, 1.387039845, 1.306562965, 1.175875602,
220 1.0, 0.785694958, 0.541196100, 0.275899379
225 for (col = 0; col <
DCTSIZE; col++) {
228 aanscalefactor[
row] * aanscalefactor[col]);
236 ERREXIT(cinfo, JERR_NOT_COMPILED);
260 for (ci = 0, compptr = cinfo->
comp_info; ci < cinfo->num_components;
GLOBAL void jpeg_idct_float(j_decompress_ptr cinfo, jpeg_component_info *compptr, JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)
jpeg_component_info * comp_info
inverse_DCT_method_ptr inverse_DCT[MAX_COMPONENTS]
struct jpeg_common_struct * j_common_ptr
int cur_method[MAX_COMPONENTS]
#define ERREXIT(cinfo, code)
const int jpeg_zigzag_order[]
GLOBAL void jinit_inverse_dct(j_decompress_ptr cinfo)
my_idct_controller * my_idct_ptr
MULTIPLIER ISLOW_MULT_TYPE
FAST_FLOAT FLOAT_MULT_TYPE
#define ERREXIT1(cinfo, code, p1)
struct jpeg_inverse_dct pub
GLenum GLenum GLvoid * row
METHODDEF void start_pass(j_decompress_ptr cinfo)
struct jpeg_inverse_dct * idct
#define MEMZERO(target, size)
#define MULTIPLY16V16(var1, var2)