29 #if BITS_IN_JSAMPLE == 8
32 typedef IJG_INT32 DCTELEM;
35 typedef JMETHOD(
void, forward_DCT_method_ptr, (DCTELEM * data));
36 typedef JMETHOD(
void, float_DCT_method_ptr, (FAST_FLOAT * data));
56 typedef MULTIPLIER ISLOW_MULT_TYPE;
57 #if BITS_IN_JSAMPLE == 8
58 typedef MULTIPLIER IFAST_MULT_TYPE;
59 #define IFAST_SCALE_BITS 2
61 typedef IJG_INT32 IFAST_MULT_TYPE;
62 #define IFAST_SCALE_BITS 13
64 typedef FAST_FLOAT FLOAT_MULT_TYPE;
76 #define IDCT_range_limit(cinfo) ((cinfo)->sample_range_limit + CENTERJSAMPLE)
78 #define RANGE_MASK (MAXJSAMPLE * 4 + 3)
83 #ifdef NEED_SHORT_EXTERNAL_NAMES
84 #define jpeg_fdct_islow jpeg16_fdct_islow
85 #define jpeg_fdct_ifast jpeg16_fdct_ifast
86 #define jpeg_fdct_float jpeg16_fdct_float
87 #define jpeg_idct_islow jpeg16_idct_islow
88 #define jpeg_idct_ifast jpeg16_idct_ifast
89 #define jpeg_idct_float jpeg16_idct_float
90 #define jpeg_idct_4x4 jpeg16_idct_4x4
91 #define jpeg_idct_2x2 jpeg16_idct_2x2
92 #define jpeg_idct_1x1 jpeg16_idct_1x1
97 EXTERN(
void) jpeg_fdct_islow JPP((DCTELEM * data));
98 EXTERN(
void) jpeg_fdct_ifast JPP((DCTELEM * data));
99 EXTERN(
void) jpeg_fdct_float JPP((FAST_FLOAT * data));
101 EXTERN(
void) jpeg_idct_islow
103 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
104 EXTERN(
void) jpeg_idct_ifast
106 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
107 EXTERN(
void) jpeg_idct_float
109 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
110 EXTERN(
void) jpeg_idct_4x4
112 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
113 EXTERN(
void) jpeg_idct_2x2
115 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
116 EXTERN(
void) jpeg_idct_1x1
118 JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col));
131 #define ONE ((IJG_INT32) 1)
132 #define CONST_SCALE (ONE << CONST_BITS)
139 #define FIX(x) ((IJG_INT32) ((x) * CONST_SCALE + 0.5))
146 #define DESCALE(x,n) RIGHT_SHIFT((x) + (ONE << ((n)-1)), n)
157 #ifdef SHORTxSHORT_32
158 #define MULTIPLY16C16(var,const) (((INT16) (var)) * ((INT16) (const)))
160 #ifdef SHORTxLCONST_32
161 #define MULTIPLY16C16(var,const) (((INT16) (var)) * ((IJG_INT32) (const)))
164 #ifndef MULTIPLY16C16
165 #define MULTIPLY16C16(var,const) ((var) * (const))
170 #ifdef SHORTxSHORT_32
171 #define MULTIPLY16V16(var1,var2) (((INT16) (var1)) * ((INT16) (var2)))
174 #ifndef MULTIPLY16V16
175 #define MULTIPLY16V16(var1,var2) ((var1) * (var2))