71 #define EIGHT_BIT_SAMPLES
78 #define RIGHT_SHIFT(x, n) ((x) >> (n))
89 Sorry,
this code only copes with 8x8 DCTs.
129 #ifdef EIGHT_BIT_SAMPLES
135 #define ONE ((int32_t) 1)
137 #define CONST_SCALE (ONE << CONST_BITS)
146 #define FIX(x) ((int32_t) ((x) * CONST_SCALE + 0.5))
153 #define DESCALE(x,n) RIGHT_SHIFT((x) + (ONE << ((n)-1)), n)
166 #ifdef EIGHT_BIT_SAMPLES
167 #ifdef SHORTxSHORT_32
168 #define MULTIPLY(var,const) (((int16_t) (var)) * ((int16_t) (const)))
170 #ifdef SHORTxLCONST_32
171 #define MULTIPLY(var,const) (((int16_t) (var)) * ((int32_t) (const)))
176 #define MULTIPLY(var,const) ((var) * (const))
184 #define FIX_0_211164243 1730
185 #define FIX_0_275899380 2260
186 #define FIX_0_298631336 2446
187 #define FIX_0_390180644 3196
188 #define FIX_0_509795579 4176
189 #define FIX_0_541196100 4433
190 #define FIX_0_601344887 4926
191 #define FIX_0_765366865 6270
192 #define FIX_0_785694958 6436
193 #define FIX_0_899976223 7373
194 #define FIX_1_061594337 8697
195 #define FIX_1_111140466 9102
196 #define FIX_1_175875602 9633
197 #define FIX_1_306562965 10703
198 #define FIX_1_387039845 11363
199 #define FIX_1_451774981 11893
200 #define FIX_1_501321110 12299
201 #define FIX_1_662939225 13623
202 #define FIX_1_847759065 15137
203 #define FIX_1_961570560 16069
204 #define FIX_2_053119869 16819
205 #define FIX_2_172734803 17799
206 #define FIX_2_562915447 20995
207 #define FIX_3_072711026 25172
215 int32_t tmp0, tmp1, tmp2, tmp3;
216 int32_t tmp10, tmp11, tmp12, tmp13;
218 int32_t d0, d1, d2, d3, d4, d5, d6, d7;
219 register int16_t *dataptr;
228 for (rowctr =
DCTSIZE-1; rowctr >= 0; rowctr--) {
238 register uint8_t *idataptr = (uint8_t*)dataptr;
251 if ((d1 | d2 | d3 | d4 | d5 | d6 | d7) == 0) {
255 int16_t dcval = (int16_t) (d0 * (1 <<
PASS1_BITS));
256 register int v = (dcval & 0xffff) | ((dcval * (1 << 16)) & 0xffff0000);
572 tmp0 = tmp1 = tmp2 = tmp3 = 0;
597 for (rowctr =
DCTSIZE-1; rowctr >= 0; rowctr--) {
918 tmp0 = tmp1 = tmp2 = tmp3 = 0;
953 int32_t tmp0, tmp1, tmp2, tmp3;
954 int32_t tmp10, tmp11, tmp12, tmp13;
957 register int16_t *dataptr;
968 for (rowctr =
DCTSIZE-1; rowctr >= 0; rowctr--) {
978 register uint8_t *idataptr = (uint8_t*)dataptr;
985 if ((d2 | d4 | d6) == 0) {
990 register int v = (dcval & 0xffff) | ((dcval << 16) & 0xffff0000);
1012 tmp10 = tmp0 + tmp3;
1013 tmp13 = tmp0 - tmp3;
1014 tmp11 = tmp1 + tmp2;
1015 tmp12 = tmp1 - tmp2;
1024 tmp10 = tmp0 + tmp3;
1025 tmp13 = tmp0 - tmp3;
1026 tmp11 = tmp1 + tmp2;
1027 tmp12 = tmp1 - tmp2;
1038 tmp10 = tmp0 + tmp3;
1039 tmp13 = tmp0 - tmp3;
1040 tmp11 = tmp1 + tmp2;
1041 tmp12 = tmp1 - tmp2;
1064 for (rowctr =
DCTSIZE-1; rowctr >= 0; rowctr--) {
1090 tmp10 = tmp0 + tmp3;
1091 tmp13 = tmp0 - tmp3;
1092 tmp11 = tmp1 + tmp2;
1093 tmp12 = tmp1 - tmp2;
1102 tmp10 = tmp0 + tmp3;
1103 tmp13 = tmp0 - tmp3;
1104 tmp11 = tmp1 + tmp2;
1105 tmp12 = tmp1 - tmp2;
1116 tmp10 = tmp0 + tmp3;
1117 tmp13 = tmp0 - tmp3;
1118 tmp11 = tmp1 + tmp2;
1119 tmp12 = tmp1 - tmp2;
1139 int d00, d01, d10, d11;