49#ifdef DCT_ISLOW_SUPPORTED
95#if BITS_IN_JSAMPLE <= 10 && JPEG_DATA_PRECISION <= 10
97#define PASS1_BITS (10 - BITS_IN_JSAMPLE)
98#define PASS2_BITS (10 - JPEG_DATA_PRECISION)
100#if BITS_IN_JSAMPLE <= 13 && JPEG_DATA_PRECISION <= 13
102#define PASS1_BITS (13 - BITS_IN_JSAMPLE)
103#define PASS2_BITS (13 - JPEG_DATA_PRECISION)
115#define FIX_0_298631336 ((INT32) 2446)
116#define FIX_0_390180644 ((INT32) 3196)
117#define FIX_0_541196100 ((INT32) 4433)
118#define FIX_0_765366865 ((INT32) 6270)
119#define FIX_0_899976223 ((INT32) 7373)
120#define FIX_1_175875602 ((INT32) 9633)
121#define FIX_1_501321110 ((INT32) 12299)
122#define FIX_1_847759065 ((INT32) 15137)
123#define FIX_1_961570560 ((INT32) 16069)
124#define FIX_2_053119869 ((INT32) 16819)
125#define FIX_2_562915447 ((INT32) 20995)
126#define FIX_3_072711026 ((INT32) 25172)
128#define FIX_0_298631336 FIX(0.298631336)
129#define FIX_0_390180644 FIX(0.390180644)
130#define FIX_0_541196100 FIX(0.541196100)
131#define FIX_0_765366865 FIX(0.765366865)
132#define FIX_0_899976223 FIX(0.899976223)
133#define FIX_1_175875602 FIX(1.175875602)
134#define FIX_1_501321110 FIX(1.501321110)
135#define FIX_1_847759065 FIX(1.847759065)
136#define FIX_1_961570560 FIX(1.961570560)
137#define FIX_2_053119869 FIX(2.053119869)
138#define FIX_2_562915447 FIX(2.562915447)
139#define FIX_3_072711026 FIX(3.072711026)
150#if BITS_IN_JSAMPLE <= 10 && JPEG_DATA_PRECISION <= 10
151#define MULTIPLY(var,const) MULTIPLY16C16(var,const)
153#define MULTIPLY(var,const) ((var) * (const))
160#define PASS1_OUTPUT(x) (DCTELEM) ((x) << PASS1_BITS)
162#define PASS1_OUTPUT(x) (DCTELEM) (x)
169#define PASS2_OUTPUT(x) (DCTELEM) RIGHT_SHIFT(x, PASS2_BITS)
171#define PASS2_OUTPUT(x) (DCTELEM) (x)
182 INT32 tmp0, tmp1, tmp2, tmp3;
183 INT32 tmp10, tmp11, tmp12, tmp13;
197 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
221 dataptr[4] = PASS1_OUTPUT(tmp10 - tmp11);
223 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
225 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
229 CONST_BITS-PASS1_BITS);
232 CONST_BITS-PASS1_BITS);
241 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
243 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
245 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
246 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
250 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
251 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
252 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
256 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
257 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
258 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
277 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
289 tmp10 = tmp0 + tmp3 + (
ONE << (PASS2_BITS-1));
292 tmp10 = tmp0 + tmp3 +
ONE;
309 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
311 z1 +=
ONE << (CONST_BITS+PASS2_BITS-1);
315 CONST_BITS+PASS2_BITS);
318 CONST_BITS+PASS2_BITS);
327 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
329 z1 +=
ONE << (CONST_BITS+PASS2_BITS-1);
331 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
332 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
336 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
337 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
338 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
342 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
343 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
344 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
357#ifdef DCT_SCALING_SUPPORTED
367 INT32 tmp0, tmp1, tmp2, tmp3;
368 INT32 tmp10, tmp11, tmp12;
385 for (ctr = 0; ctr < 7; ctr++) {
405 z1 = MULTIPLY(
z1,
FIX(0.353553391));
406 z2 = MULTIPLY(tmp0 - tmp2,
FIX(0.920609002));
407 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.314692123));
410 z2 = MULTIPLY(tmp0 - tmp1,
FIX(0.881747734));
413 CONST_BITS-PASS1_BITS);
418 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(0.935414347));
419 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.170262339));
422 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.378756276));
424 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.613604268));
426 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(1.870828693));
444 for (ctr = 0; ctr < 7; ctr++) {
459 CONST_BITS+PASS2_BITS);
463 z1 = MULTIPLY(
z1,
FIX(0.461784020));
464 z2 = MULTIPLY(tmp0 - tmp2,
FIX(1.202428084));
465 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.411026446));
468 z2 = MULTIPLY(tmp0 - tmp1,
FIX(1.151670509));
471 CONST_BITS+PASS2_BITS);
476 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.221765677));
477 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.222383464));
480 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.800824523));
482 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.801442310));
484 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(2.443531355));
502 INT32 tmp0, tmp1, tmp2;
503 INT32 tmp10, tmp11, tmp12;
519 for (ctr = 0; ctr < 6; ctr++) {
539 CONST_BITS-PASS1_BITS);
541 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(0.707106781)),
542 CONST_BITS-PASS1_BITS);
546 tmp10 =
DESCALE(MULTIPLY(tmp0 + tmp2,
FIX(0.366025404)),
547 CONST_BITS-PASS1_BITS);
571 for (ctr = 0; ctr < 6; ctr++) {
586 DESCALE(MULTIPLY(tmp10 + tmp11,
FIX(1.777777778)),
587 CONST_BITS+PASS2_BITS);
590 CONST_BITS+PASS2_BITS);
592 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(1.257078722)),
593 CONST_BITS+PASS2_BITS);
597 tmp10 = MULTIPLY(tmp0 + tmp2,
FIX(0.650711829));
600 DESCALE(tmp10 + MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
601 CONST_BITS+PASS2_BITS);
603 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp2,
FIX(1.777777778)),
604 CONST_BITS+PASS2_BITS);
606 DESCALE(tmp10 + MULTIPLY(tmp2 - tmp1,
FIX(1.777777778)),
607 CONST_BITS+PASS2_BITS);
621 INT32 tmp0, tmp1, tmp2;
640 for (ctr = 0; ctr < 5; ctr++) {
658 tmp11 = MULTIPLY(tmp11,
FIX(0.790569415));
660 tmp10 = MULTIPLY(tmp10,
FIX(0.353553391));
666 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(0.831253876));
669 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.513743148)),
670 CONST_BITS-PASS1_BITS-1);
672 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.176250899)),
673 CONST_BITS-PASS1_BITS-1);
687 for (ctr = 0; ctr < 5; ctr++) {
702 CONST_BITS+PASS2_BITS);
703 tmp11 = MULTIPLY(tmp11,
FIX(1.011928851));
705 tmp10 = MULTIPLY(tmp10,
FIX(0.452548340));
711 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(1.064004961));
714 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.657591230)),
715 CONST_BITS+PASS2_BITS);
717 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.785601151)),
718 CONST_BITS+PASS2_BITS);
750 for (ctr = 0; ctr < 4; ctr++) {
768 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
770 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-3);
773 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
774 CONST_BITS-PASS1_BITS-2);
776 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
777 CONST_BITS-PASS1_BITS-2);
789 for (ctr = 0; ctr < 4; ctr++) {
812 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
814 tmp0 +=
ONE << (CONST_BITS+PASS2_BITS-1);
817 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
818 CONST_BITS+PASS2_BITS);
820 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
821 CONST_BITS+PASS2_BITS);
835 INT32 tmp0, tmp1, tmp2;
853 for (ctr = 0; ctr < 3; ctr++) {
867 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(0.707106781)),
868 CONST_BITS-PASS1_BITS-2);
874 CONST_BITS-PASS1_BITS-2);
888 for (ctr = 0; ctr < 3; ctr++) {
897 DESCALE(MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
898 CONST_BITS+PASS2_BITS);
900 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(1.257078722)),
901 CONST_BITS+PASS2_BITS);
907 CONST_BITS+PASS2_BITS);
921 DCTELEM tmp0, tmp1, tmp2, tmp3;
951#if PASS2_BITS < PASS1_BITS + 4
953 (tmp0 + tmp2 - 4 *
CENTERJSAMPLE) << (4+PASS1_BITS-PASS2_BITS);
954 data[
DCTSIZE*1] = (tmp0 - tmp2) << (4+PASS1_BITS-PASS2_BITS);
957 data[
DCTSIZE*0+1] = (tmp1 + tmp3) << (4+PASS1_BITS-PASS2_BITS);
958 data[
DCTSIZE*1+1] = (tmp1 - tmp3) << (4+PASS1_BITS-PASS2_BITS);
994#define PASS1_DECR (PASS1_BITS - 1)
1000#define PASS1_OUTDEC(x) (DCTELEM) ((x) << PASS1_DECR)
1002#define PASS1_OUTDEC(x) (DCTELEM) (x)
1013 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
1014 INT32 tmp10, tmp11, tmp12, tmp13;
1047 z1 = tmp0 + tmp2 + tmp3;
1053 CONST_BITS-PASS1_DECR);
1054 z1 = MULTIPLY(tmp0 - tmp2,
FIX(1.328926049));
1055 z2 = MULTIPLY(tmp1 - tmp4 - tmp4,
FIX(0.707106781));
1057 DESCALE(MULTIPLY(tmp2 - tmp3,
FIX(1.083350441))
1058 +
z1 +
z2, CONST_BITS-PASS1_DECR);
1060 DESCALE(MULTIPLY(tmp3 - tmp0,
FIX(0.245575608))
1061 +
z1 -
z2, CONST_BITS-PASS1_DECR);
1066 DESCALE(MULTIPLY(tmp10 - tmp12 - tmp13,
FIX(1.224744871)),
1067 CONST_BITS-PASS1_DECR);
1069 tmp11 = MULTIPLY(tmp11,
FIX(1.224744871));
1070 tmp0 = MULTIPLY(tmp10 + tmp12,
FIX(0.909038955));
1071 tmp1 = MULTIPLY(tmp10 + tmp13,
FIX(0.483689525));
1074 DESCALE(tmp11 + tmp0 + tmp1, CONST_BITS-PASS1_DECR);
1076 tmp2 = MULTIPLY(tmp12 - tmp13,
FIX(1.392728481));
1079 DESCALE(tmp0 - tmp11 - tmp2, CONST_BITS-PASS1_DECR);
1081 DESCALE(tmp1 - tmp11 + tmp2, CONST_BITS-PASS1_DECR);
1103 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1117 z1 = tmp0 + tmp2 + tmp3;
1121 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1124 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1125 z1 = MULTIPLY(tmp0 - tmp2,
FIX(2.100031287));
1126 z2 = MULTIPLY(tmp1 - tmp4 - tmp4,
FIX(1.117403309));
1128 DESCALE(MULTIPLY(tmp2 - tmp3,
FIX(1.711961190))
1129 +
z1 +
z2, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1131 DESCALE(MULTIPLY(tmp3 - tmp0,
FIX(0.388070096))
1132 +
z1 -
z2, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1137 DESCALE(MULTIPLY(tmp10 - tmp12 - tmp13,
FIX(1.935399303)),
1138 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1140 tmp11 = MULTIPLY(tmp11,
FIX(1.935399303));
1141 tmp0 = MULTIPLY(tmp10 + tmp12,
FIX(1.436506004));
1142 tmp1 = MULTIPLY(tmp10 + tmp13,
FIX(0.764348879));
1145 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1147 tmp2 = MULTIPLY(tmp12 - tmp13,
FIX(2.200854883));
1150 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1152 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1167 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
1168 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
1195 tmp10 = tmp0 + tmp4;
1196 tmp13 = tmp0 - tmp4;
1197 tmp11 = tmp1 + tmp3;
1198 tmp14 = tmp1 - tmp3;
1211 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.144122806)) -
1212 MULTIPLY(tmp11 - tmp12,
FIX(0.437016024)),
1213 CONST_BITS-PASS1_DECR);
1214 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(0.831253876));
1216 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.513743148)),
1217 CONST_BITS-PASS1_DECR);
1219 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.176250899)),
1220 CONST_BITS-PASS1_DECR);
1224 tmp10 = tmp0 + tmp4;
1225 tmp11 = tmp1 - tmp3;
1226 dataptr[5] = PASS1_OUTDEC(tmp10 - tmp11 - tmp2);
1227 tmp2 <<= CONST_BITS;
1230 MULTIPLY(tmp1,
FIX(1.260073511)) + tmp2 +
1231 MULTIPLY(tmp3,
FIX(0.642039522)) +
1232 MULTIPLY(tmp4,
FIX(0.221231742)),
1233 CONST_BITS-PASS1_DECR);
1234 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(0.951056516)) -
1235 MULTIPLY(tmp1 + tmp3,
FIX(0.587785252));
1236 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.309016994)) +
1237 (tmp11 << (CONST_BITS - 1)) - tmp2;
1261 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1270 tmp10 = tmp0 + tmp4;
1271 tmp13 = tmp0 - tmp4;
1272 tmp11 = tmp1 + tmp3;
1273 tmp14 = tmp1 - tmp3;
1282 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(1.28)),
1283 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1286 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.464477191)) -
1287 MULTIPLY(tmp11 - tmp12,
FIX(0.559380511)),
1288 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1289 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(1.064004961));
1291 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.657591230)),
1292 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1294 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.785601151)),
1295 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1299 tmp10 = tmp0 + tmp4;
1300 tmp11 = tmp1 - tmp3;
1302 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp2,
FIX(1.28)),
1303 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1304 tmp2 = MULTIPLY(tmp2,
FIX(1.28));
1307 MULTIPLY(tmp1,
FIX(1.612894094)) + tmp2 +
1308 MULTIPLY(tmp3,
FIX(0.821810588)) +
1309 MULTIPLY(tmp4,
FIX(0.283176630)),
1310 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1311 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(1.217352341)) -
1312 MULTIPLY(tmp1 + tmp3,
FIX(0.752365123));
1313 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.395541753)) +
1314 MULTIPLY(tmp11,
FIX(0.64)) - tmp2;
1316 DESCALE(tmp12 + tmp13, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1318 DESCALE(tmp12 - tmp13, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1333 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
1334 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
1371 PASS1_OUTDEC(tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 - 11 *
CENTERJSAMPLE);
1378 z1 = MULTIPLY(tmp0 + tmp3,
FIX(1.356927976)) +
1379 MULTIPLY(tmp2 + tmp4,
FIX(0.201263574));
1380 z2 = MULTIPLY(tmp1 - tmp3,
FIX(0.926112931));
1381 z3 = MULTIPLY(tmp0 - tmp1,
FIX(1.189712156));
1384 - MULTIPLY(tmp4,
FIX(1.390975730)),
1385 CONST_BITS-PASS1_DECR);
1388 - MULTIPLY(tmp2,
FIX(1.356927976))
1389 + MULTIPLY(tmp4,
FIX(0.587485545)),
1390 CONST_BITS-PASS1_DECR);
1393 - MULTIPLY(tmp2,
FIX(0.788749120)),
1394 CONST_BITS-PASS1_DECR);
1398 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.286413905));
1399 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(1.068791298));
1400 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.764581576));
1401 tmp0 = tmp1 + tmp2 + tmp3 - MULTIPLY(tmp10,
FIX(1.719967871))
1402 + MULTIPLY(tmp14,
FIX(0.398430003));
1403 tmp4 = MULTIPLY(tmp11 + tmp12, -
FIX(0.764581576));
1404 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(1.399818907));
1405 tmp1 += tmp4 + tmp5 + MULTIPLY(tmp11,
FIX(1.276416582))
1406 - MULTIPLY(tmp14,
FIX(1.068791298));
1407 tmp10 = MULTIPLY(tmp12 + tmp13,
FIX(0.398430003));
1408 tmp2 += tmp4 + tmp10 - MULTIPLY(tmp12,
FIX(1.989053629))
1409 + MULTIPLY(tmp14,
FIX(1.399818907));
1410 tmp3 += tmp5 + tmp10 + MULTIPLY(tmp13,
FIX(1.305598626))
1411 - MULTIPLY(tmp14,
FIX(1.286413905));
1438 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1455 DESCALE(MULTIPLY(tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5,
1457 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1464 z1 = MULTIPLY(tmp0 + tmp3,
FIX(1.435427942)) +
1465 MULTIPLY(tmp2 + tmp4,
FIX(0.212906922));
1466 z2 = MULTIPLY(tmp1 - tmp3,
FIX(0.979689713));
1467 z3 = MULTIPLY(tmp0 - tmp1,
FIX(1.258538479));
1470 - MULTIPLY(tmp4,
FIX(1.471445400)),
1471 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1474 - MULTIPLY(tmp2,
FIX(1.435427942))
1475 + MULTIPLY(tmp4,
FIX(0.621472312)),
1476 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1479 - MULTIPLY(tmp2,
FIX(0.834379234)),
1480 CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1484 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.360834544));
1485 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(1.130622199));
1486 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.808813568));
1487 tmp0 = tmp1 + tmp2 + tmp3 - MULTIPLY(tmp10,
FIX(1.819470145))
1488 + MULTIPLY(tmp14,
FIX(0.421479672));
1489 tmp4 = MULTIPLY(tmp11 + tmp12, -
FIX(0.808813568));
1490 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(1.480800167));
1491 tmp1 += tmp4 + tmp5 + MULTIPLY(tmp11,
FIX(1.350258864))
1492 - MULTIPLY(tmp14,
FIX(1.130622199));
1493 tmp10 = MULTIPLY(tmp12 + tmp13,
FIX(0.421479672));
1494 tmp2 += tmp4 + tmp10 - MULTIPLY(tmp12,
FIX(2.104122847))
1495 + MULTIPLY(tmp14,
FIX(1.480800167));
1496 tmp3 += tmp5 + tmp10 + MULTIPLY(tmp13,
FIX(1.381129125))
1497 - MULTIPLY(tmp14,
FIX(1.360834544));
1500 DESCALE(tmp0, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1502 DESCALE(tmp1, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1504 DESCALE(tmp2, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1506 DESCALE(tmp3, CONST_BITS+PASS1_DECR+1+PASS2_BITS-PASS1_BITS);
1521 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
1522 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
1549 tmp10 = tmp0 + tmp5;
1550 tmp13 = tmp0 - tmp5;
1551 tmp11 = tmp1 + tmp4;
1552 tmp14 = tmp1 - tmp4;
1553 tmp12 = tmp2 + tmp3;
1554 tmp15 = tmp2 - tmp3;
1567 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.224744871)),
1570 DESCALE(tmp14 - tmp15 + MULTIPLY(tmp13 + tmp15,
FIX(1.366025404)),
1575 tmp10 = MULTIPLY(tmp1 + tmp4, FIX_0_541196100);
1576 tmp14 = tmp10 + MULTIPLY(tmp1, FIX_0_765366865);
1577 tmp15 = tmp10 - MULTIPLY(tmp4, FIX_1_847759065);
1578 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.121971054));
1579 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.860918669));
1580 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.580774953))
1581 + MULTIPLY(tmp5,
FIX(0.184591911));
1582 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.184591911));
1583 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.339493912))
1584 + MULTIPLY(tmp5,
FIX(0.860918669));
1585 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.725788011))
1586 - MULTIPLY(tmp5,
FIX(1.121971054));
1587 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.306562965))
1588 - MULTIPLY(tmp2 + tmp5, FIX_0_541196100);
1614 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1624 tmp10 = tmp0 + tmp5;
1625 tmp13 = tmp0 - tmp5;
1626 tmp11 = tmp1 + tmp4;
1627 tmp14 = tmp1 - tmp4;
1628 tmp12 = tmp2 + tmp3;
1629 tmp15 = tmp2 - tmp3;
1639 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(0.888888889)),
1640 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1642 DESCALE(MULTIPLY(tmp13 - tmp14 - tmp15,
FIX(0.888888889)),
1643 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1645 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.088662108)),
1646 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1648 DESCALE(MULTIPLY(tmp14 - tmp15,
FIX(0.888888889)) +
1649 MULTIPLY(tmp13 + tmp15,
FIX(1.214244803)),
1650 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1654 tmp10 = MULTIPLY(tmp1 + tmp4,
FIX(0.481063200));
1655 tmp14 = tmp10 + MULTIPLY(tmp1,
FIX(0.680326102));
1656 tmp15 = tmp10 - MULTIPLY(tmp4,
FIX(1.642452502));
1657 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(0.997307603));
1658 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.765261039));
1659 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.516244403))
1660 + MULTIPLY(tmp5,
FIX(0.164081699));
1661 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.164081699));
1662 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.079550144))
1663 + MULTIPLY(tmp5,
FIX(0.765261039));
1664 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.645144899))
1665 - MULTIPLY(tmp5,
FIX(0.997307603));
1666 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.161389302))
1667 - MULTIPLY(tmp2 + tmp5,
FIX(0.481063200));
1670 DESCALE(tmp10, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1672 DESCALE(tmp11, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1674 DESCALE(tmp12, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1676 DESCALE(tmp13, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1691 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
1692 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
1730 (tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 - 13 *
CENTERJSAMPLE);
1740 MULTIPLY(tmp1,
FIX(1.058554052)) +
1741 MULTIPLY(tmp2,
FIX(0.501487041)) -
1742 MULTIPLY(tmp3,
FIX(0.170464608)) -
1743 MULTIPLY(tmp4,
FIX(0.803364869)) -
1744 MULTIPLY(tmp5,
FIX(1.252223920)),
1746 z1 = MULTIPLY(tmp0 - tmp2,
FIX(1.155388986)) -
1747 MULTIPLY(tmp3 - tmp4,
FIX(0.435816023)) -
1748 MULTIPLY(tmp1 - tmp5,
FIX(0.316450131));
1749 z2 = MULTIPLY(tmp0 + tmp2,
FIX(0.096834934)) -
1750 MULTIPLY(tmp3 + tmp4,
FIX(0.937303064)) +
1751 MULTIPLY(tmp1 + tmp5,
FIX(0.486914739));
1758 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.322312651));
1759 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(1.163874945));
1760 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.937797057)) +
1761 MULTIPLY(tmp14 + tmp15,
FIX(0.338443458));
1762 tmp0 = tmp1 + tmp2 + tmp3 -
1763 MULTIPLY(tmp10,
FIX(2.020082300)) +
1764 MULTIPLY(tmp14,
FIX(0.318774355));
1765 tmp4 = MULTIPLY(tmp14 - tmp15,
FIX(0.937797057)) -
1766 MULTIPLY(tmp11 + tmp12,
FIX(0.338443458));
1767 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(1.163874945));
1768 tmp1 += tmp4 + tmp5 +
1769 MULTIPLY(tmp11,
FIX(0.837223564)) -
1770 MULTIPLY(tmp14,
FIX(2.341699410));
1771 tmp6 = MULTIPLY(tmp12 + tmp13, -
FIX(0.657217813));
1772 tmp2 += tmp4 + tmp6 -
1773 MULTIPLY(tmp12,
FIX(1.572116027)) +
1774 MULTIPLY(tmp15,
FIX(2.260109708));
1775 tmp3 += tmp5 + tmp6 +
1776 MULTIPLY(tmp13,
FIX(2.205608352)) -
1777 MULTIPLY(tmp15,
FIX(1.742345811));
1803 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1822 DESCALE(MULTIPLY(tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6,
1824 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1834 MULTIPLY(tmp1,
FIX(0.801745081)) +
1835 MULTIPLY(tmp2,
FIX(0.379824504)) -
1836 MULTIPLY(tmp3,
FIX(0.129109289)) -
1837 MULTIPLY(tmp4,
FIX(0.608465700)) -
1838 MULTIPLY(tmp5,
FIX(0.948429952)),
1839 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1840 z1 = MULTIPLY(tmp0 - tmp2,
FIX(0.875087516)) -
1841 MULTIPLY(tmp3 - tmp4,
FIX(0.330085509)) -
1842 MULTIPLY(tmp1 - tmp5,
FIX(0.239678205));
1843 z2 = MULTIPLY(tmp0 + tmp2,
FIX(0.073342435)) -
1844 MULTIPLY(tmp3 + tmp4,
FIX(0.709910013)) +
1845 MULTIPLY(tmp1 + tmp5,
FIX(0.368787494));
1848 DESCALE(
z1 +
z2, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1850 DESCALE(
z1 -
z2, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1854 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.001514908));
1855 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(0.881514751));
1856 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.710284161)) +
1857 MULTIPLY(tmp14 + tmp15,
FIX(0.256335874));
1858 tmp0 = tmp1 + tmp2 + tmp3 -
1859 MULTIPLY(tmp10,
FIX(1.530003162)) +
1860 MULTIPLY(tmp14,
FIX(0.241438564));
1861 tmp4 = MULTIPLY(tmp14 - tmp15,
FIX(0.710284161)) -
1862 MULTIPLY(tmp11 + tmp12,
FIX(0.256335874));
1863 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(0.881514751));
1864 tmp1 += tmp4 + tmp5 +
1865 MULTIPLY(tmp11,
FIX(0.634110155)) -
1866 MULTIPLY(tmp14,
FIX(1.773594819));
1867 tmp6 = MULTIPLY(tmp12 + tmp13, -
FIX(0.497774438));
1868 tmp2 += tmp4 + tmp6 -
1869 MULTIPLY(tmp12,
FIX(1.190715098)) +
1870 MULTIPLY(tmp15,
FIX(1.711799069));
1871 tmp3 += tmp5 + tmp6 +
1872 MULTIPLY(tmp13,
FIX(1.670519935)) -
1873 MULTIPLY(tmp15,
FIX(1.319646532));
1876 DESCALE(tmp0, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1878 DESCALE(tmp1, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1880 DESCALE(tmp2, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1882 DESCALE(tmp3, CONST_BITS+1+PASS2_BITS-PASS1_BITS);
1897 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
1898 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
1926 tmp10 = tmp0 + tmp6;
1927 tmp14 = tmp0 - tmp6;
1928 tmp11 = tmp1 + tmp5;
1929 tmp15 = tmp1 - tmp5;
1930 tmp12 = tmp2 + tmp4;
1931 tmp16 = tmp2 - tmp4;
1946 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.274162392)) +
1947 MULTIPLY(tmp11 - tmp13,
FIX(0.314692123)) -
1948 MULTIPLY(tmp12 - tmp13,
FIX(0.881747734)),
1951 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(1.105676686));
1954 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.273079590))
1955 + MULTIPLY(tmp16,
FIX(0.613604268)),
1958 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.719280954))
1959 - MULTIPLY(tmp16,
FIX(1.378756276)),
1964 tmp10 = tmp1 + tmp2;
1965 tmp11 = tmp5 - tmp4;
1967 tmp3 <<= CONST_BITS;
1968 tmp10 = MULTIPLY(tmp10, -
FIX(0.158341681));
1969 tmp11 = MULTIPLY(tmp11,
FIX(1.405321284));
1970 tmp10 += tmp11 - tmp3;
1971 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(1.197448846)) +
1972 MULTIPLY(tmp4 + tmp6,
FIX(0.752406978));
1974 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(2.373959773))
1975 + MULTIPLY(tmp4,
FIX(1.119999435)),
1977 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(1.334852607)) +
1978 MULTIPLY(tmp5 - tmp6,
FIX(0.467085129));
1980 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.424103948))
1981 - MULTIPLY(tmp5,
FIX(3.069855259)),
1984 DESCALE(tmp11 + tmp12 + tmp3 + tmp6 -
1985 MULTIPLY(tmp0 + tmp6,
FIX(1.126980169)),
2007 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2018 tmp10 = tmp0 + tmp6;
2019 tmp14 = tmp0 - tmp6;
2020 tmp11 = tmp1 + tmp5;
2021 tmp15 = tmp1 - tmp5;
2022 tmp12 = tmp2 + tmp4;
2023 tmp16 = tmp2 - tmp4;
2034 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12 + tmp13,
2036 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2039 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(0.832106052)) +
2040 MULTIPLY(tmp11 - tmp13,
FIX(0.205513223)) -
2041 MULTIPLY(tmp12 - tmp13,
FIX(0.575835255)),
2042 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2044 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(0.722074570));
2047 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.178337691))
2048 + MULTIPLY(tmp16,
FIX(0.400721155)),
2049 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2051 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.122795725))
2052 - MULTIPLY(tmp16,
FIX(0.900412262)),
2053 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2057 tmp10 = tmp1 + tmp2;
2058 tmp11 = tmp5 - tmp4;
2060 DESCALE(MULTIPLY(tmp0 - tmp10 + tmp3 - tmp11 - tmp6,
2062 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2063 tmp3 = MULTIPLY(tmp3 ,
FIX(0.653061224));
2064 tmp10 = MULTIPLY(tmp10, -
FIX(0.103406812));
2065 tmp11 = MULTIPLY(tmp11,
FIX(0.917760839));
2066 tmp10 += tmp11 - tmp3;
2067 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(0.782007410)) +
2068 MULTIPLY(tmp4 + tmp6,
FIX(0.491367823));
2070 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(1.550341076))
2071 + MULTIPLY(tmp4,
FIX(0.731428202)),
2072 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2073 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(0.871740478)) +
2074 MULTIPLY(tmp5 - tmp6,
FIX(0.305035186));
2076 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.276965844))
2077 - MULTIPLY(tmp5,
FIX(2.004803435)),
2078 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2081 - MULTIPLY(tmp0,
FIX(0.735987049))
2082 - MULTIPLY(tmp6,
FIX(0.082925825)),
2083 CONST_BITS+1+PASS2_BITS-PASS1_BITS);
2098 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
2099 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
2137 z1 = tmp0 + tmp4 + tmp5;
2138 z2 = tmp1 + tmp3 + tmp6;
2145 MULTIPLY(
z2 -
z3,
FIX(0.437016024)),
2147 tmp2 += ((tmp1 + tmp4) >> 1) - tmp7 - tmp7;
2148 z1 = MULTIPLY(tmp3 - tmp2,
FIX(1.531135173)) -
2149 MULTIPLY(tmp6 - tmp2,
FIX(2.238241955));
2150 z2 = MULTIPLY(tmp5 - tmp2,
FIX(0.798468008)) -
2151 MULTIPLY(tmp0 - tmp2,
FIX(0.091361227));
2152 z3 = MULTIPLY(tmp0 - tmp3,
FIX(1.383309603)) +
2153 MULTIPLY(tmp6 - tmp5,
FIX(0.946293579)) +
2154 MULTIPLY(tmp1 - tmp4,
FIX(0.790569415));
2161 tmp2 = MULTIPLY(tmp10 - tmp12 - tmp13 + tmp15 + tmp16,
2163 tmp1 = MULTIPLY(tmp10 - tmp14 - tmp15,
FIX(1.344997024)) +
2164 MULTIPLY(tmp11 - tmp13 - tmp16,
FIX(0.831253876));
2165 tmp12 = MULTIPLY(tmp12,
FIX(1.224744871));
2166 tmp4 = MULTIPLY(tmp10 - tmp16,
FIX(1.406466353)) +
2167 MULTIPLY(tmp11 + tmp14,
FIX(1.344997024)) +
2168 MULTIPLY(tmp13 + tmp15,
FIX(0.575212477));
2169 tmp0 = MULTIPLY(tmp13,
FIX(0.475753014)) -
2170 MULTIPLY(tmp14,
FIX(0.513743148)) +
2171 MULTIPLY(tmp16,
FIX(1.700497885)) + tmp4 + tmp12;
2172 tmp3 = MULTIPLY(tmp10, -
FIX(0.355500862)) -
2173 MULTIPLY(tmp11,
FIX(2.176250899)) -
2174 MULTIPLY(tmp15,
FIX(0.869244010)) + tmp4 - tmp12;
2200 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2220 z1 = tmp0 + tmp4 + tmp5;
2221 z2 = tmp1 + tmp3 + tmp6;
2225 CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2229 MULTIPLY(
z2 -
z3,
FIX(0.497227121)),
2230 CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2231 tmp2 += ((tmp1 + tmp4) >> 1) - tmp7 - tmp7;
2232 z1 = MULTIPLY(tmp3 - tmp2,
FIX(1.742091575)) -
2233 MULTIPLY(tmp6 - tmp2,
FIX(2.546621957));
2234 z2 = MULTIPLY(tmp5 - tmp2,
FIX(0.908479156)) -
2235 MULTIPLY(tmp0 - tmp2,
FIX(0.103948774));
2236 z3 = MULTIPLY(tmp0 - tmp3,
FIX(1.573898926)) +
2237 MULTIPLY(tmp6 - tmp5,
FIX(1.076671805)) +
2238 MULTIPLY(tmp1 - tmp4,
FIX(0.899492312));
2241 DESCALE(
z1 +
z3, CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2243 DESCALE(
z2 +
z3, CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2247 tmp2 = MULTIPLY(tmp10 - tmp12 - tmp13 + tmp15 + tmp16,
2249 tmp1 = MULTIPLY(tmp10 - tmp14 - tmp15,
FIX(1.530307725)) +
2250 MULTIPLY(tmp11 - tmp13 - tmp16,
FIX(0.945782187));
2251 tmp12 = MULTIPLY(tmp12,
FIX(1.393487498));
2252 tmp4 = MULTIPLY(tmp10 - tmp16,
FIX(1.600246161)) +
2253 MULTIPLY(tmp11 + tmp14,
FIX(1.530307725)) +
2254 MULTIPLY(tmp13 + tmp15,
FIX(0.654463974));
2255 tmp0 = MULTIPLY(tmp13,
FIX(0.541301207)) -
2256 MULTIPLY(tmp14,
FIX(0.584525538)) +
2257 MULTIPLY(tmp16,
FIX(1.934788705)) + tmp4 + tmp12;
2258 tmp3 = MULTIPLY(tmp10, -
FIX(0.404480980)) -
2259 MULTIPLY(tmp11,
FIX(2.476089912)) -
2260 MULTIPLY(tmp15,
FIX(0.989006518)) + tmp4 - tmp12;
2263 DESCALE(tmp0, CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2265 DESCALE(tmp1, CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2267 DESCALE(tmp2, CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2269 DESCALE(tmp3, CONST_BITS+2+PASS2_BITS-PASS1_BITS);
2284 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
2285 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17;
2315 tmp10 = tmp0 + tmp7;
2316 tmp14 = tmp0 - tmp7;
2317 tmp11 = tmp1 + tmp6;
2318 tmp15 = tmp1 - tmp6;
2319 tmp12 = tmp2 + tmp5;
2320 tmp16 = tmp2 - tmp5;
2321 tmp13 = tmp3 + tmp4;
2322 tmp17 = tmp3 - tmp4;
2335 PASS1_OUTPUT(tmp10 + tmp11 + tmp12 + tmp13 - 16 *
CENTERJSAMPLE);
2337 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
2338 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
2339 CONST_BITS-PASS1_BITS);
2341 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
2342 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
2345 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
2346 + MULTIPLY(tmp16,
FIX(2.172734804)),
2347 CONST_BITS-PASS1_BITS);
2349 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
2350 - MULTIPLY(tmp17,
FIX(1.061594338)),
2351 CONST_BITS-PASS1_BITS);
2355 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
2356 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
2357 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
2358 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
2359 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
2360 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
2361 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
2362 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
2363 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
2364 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
2365 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
2366 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
2367 tmp10 = tmp11 + tmp12 + tmp13 -
2368 MULTIPLY(tmp0,
FIX(2.286341144)) +
2369 MULTIPLY(tmp7,
FIX(0.779653625));
2370 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
2371 - MULTIPLY(tmp6,
FIX(1.663905119));
2372 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
2373 + MULTIPLY(tmp5,
FIX(1.227391138));
2374 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
2375 + MULTIPLY(tmp4,
FIX(2.167985692));
2401 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2413 tmp10 = tmp0 + tmp7;
2414 tmp14 = tmp0 - tmp7;
2415 tmp11 = tmp1 + tmp6;
2416 tmp15 = tmp1 - tmp6;
2417 tmp12 = tmp2 + tmp5;
2418 tmp16 = tmp2 - tmp5;
2419 tmp13 = tmp3 + tmp4;
2420 tmp17 = tmp3 - tmp4;
2432 DESCALE(tmp10 + tmp11 + tmp12 + tmp13, PASS2_BITS+2);
2434 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
2435 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
2436 CONST_BITS+PASS2_BITS+2);
2438 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
2439 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
2442 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
2443 + MULTIPLY(tmp16,
FIX(2.172734804)),
2444 CONST_BITS+PASS2_BITS+2);
2446 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
2447 - MULTIPLY(tmp17,
FIX(1.061594338)),
2448 CONST_BITS+PASS2_BITS+2);
2452 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
2453 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
2454 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
2455 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
2456 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
2457 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
2458 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
2459 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
2460 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
2461 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
2462 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
2463 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
2464 tmp10 = tmp11 + tmp12 + tmp13 -
2465 MULTIPLY(tmp0,
FIX(2.286341144)) +
2466 MULTIPLY(tmp7,
FIX(0.779653625));
2467 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
2468 - MULTIPLY(tmp6,
FIX(1.663905119));
2469 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
2470 + MULTIPLY(tmp5,
FIX(1.227391138));
2471 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
2472 + MULTIPLY(tmp4,
FIX(2.167985692));
2494 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
2495 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17;
2510 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
2524 tmp10 = tmp0 + tmp7;
2525 tmp14 = tmp0 - tmp7;
2526 tmp11 = tmp1 + tmp6;
2527 tmp15 = tmp1 - tmp6;
2528 tmp12 = tmp2 + tmp5;
2529 tmp16 = tmp2 - tmp5;
2530 tmp13 = tmp3 + tmp4;
2531 tmp17 = tmp3 - tmp4;
2544 PASS1_OUTPUT(tmp10 + tmp11 + tmp12 + tmp13 - 16 *
CENTERJSAMPLE);
2546 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
2547 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
2548 CONST_BITS-PASS1_BITS);
2550 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
2551 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
2554 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
2555 + MULTIPLY(tmp16,
FIX(2.172734804)),
2556 CONST_BITS-PASS1_BITS);
2558 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
2559 - MULTIPLY(tmp17,
FIX(1.061594338)),
2560 CONST_BITS-PASS1_BITS);
2564 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
2565 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
2566 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
2567 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
2568 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
2569 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
2570 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
2571 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
2572 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
2573 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
2574 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
2575 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
2576 tmp10 = tmp11 + tmp12 + tmp13 -
2577 MULTIPLY(tmp0,
FIX(2.286341144)) +
2578 MULTIPLY(tmp7,
FIX(0.779653625));
2579 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
2580 - MULTIPLY(tmp6,
FIX(1.663905119));
2581 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
2582 + MULTIPLY(tmp5,
FIX(1.227391138));
2583 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
2584 + MULTIPLY(tmp4,
FIX(2.167985692));
2602 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2614 tmp10 = tmp0 + tmp3 + (
ONE << PASS2_BITS);
2616 tmp10 = tmp0 + tmp3 +
ONE;
2618 tmp12 = tmp0 - tmp3;
2619 tmp11 = tmp1 + tmp2;
2620 tmp13 = tmp1 - tmp2;
2630 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
2632 z1 +=
ONE << (CONST_BITS+PASS2_BITS);
2636 CONST_BITS+PASS2_BITS+1);
2639 CONST_BITS+PASS2_BITS+1);
2645 tmp12 = tmp0 + tmp2;
2646 tmp13 = tmp1 + tmp3;
2648 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
2650 z1 +=
ONE << (CONST_BITS+PASS2_BITS);
2652 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
2653 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
2657 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
2658 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
2659 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
2663 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
2664 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
2665 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
2688 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
2689 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
2706 for (ctr = 0; ctr < 7; ctr++) {
2719 tmp10 = tmp0 + tmp6;
2720 tmp14 = tmp0 - tmp6;
2721 tmp11 = tmp1 + tmp5;
2722 tmp15 = tmp1 - tmp5;
2723 tmp12 = tmp2 + tmp4;
2724 tmp16 = tmp2 - tmp4;
2736 PASS1_OUTPUT(tmp10 + tmp11 + tmp12 + tmp13 - 14 *
CENTERJSAMPLE);
2739 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.274162392)) +
2740 MULTIPLY(tmp11 - tmp13,
FIX(0.314692123)) -
2741 MULTIPLY(tmp12 - tmp13,
FIX(0.881747734)),
2742 CONST_BITS-PASS1_BITS);
2744 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(1.105676686));
2747 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.273079590))
2748 + MULTIPLY(tmp16,
FIX(0.613604268)),
2749 CONST_BITS-PASS1_BITS);
2751 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.719280954))
2752 - MULTIPLY(tmp16,
FIX(1.378756276)),
2753 CONST_BITS-PASS1_BITS);
2757 tmp10 = tmp1 + tmp2;
2758 tmp11 = tmp5 - tmp4;
2759 dataptr[7] = PASS1_OUTPUT(tmp0 - tmp10 + tmp3 - tmp11 - tmp6);
2760 tmp3 <<= CONST_BITS;
2761 tmp10 = MULTIPLY(tmp10, -
FIX(0.158341681));
2762 tmp11 = MULTIPLY(tmp11,
FIX(1.405321284));
2763 tmp10 += tmp11 - tmp3;
2764 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(1.197448846)) +
2765 MULTIPLY(tmp4 + tmp6,
FIX(0.752406978));
2767 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(2.373959773))
2768 + MULTIPLY(tmp4,
FIX(1.119999435)),
2769 CONST_BITS-PASS1_BITS);
2770 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(1.334852607)) +
2771 MULTIPLY(tmp5 - tmp6,
FIX(0.467085129));
2773 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.424103948))
2774 - MULTIPLY(tmp5,
FIX(3.069855259)),
2775 CONST_BITS-PASS1_BITS);
2777 DESCALE(tmp11 + tmp12 + tmp3 + tmp6 -
2778 MULTIPLY(tmp0 + tmp6,
FIX(1.126980169)),
2779 CONST_BITS-PASS1_BITS);
2793 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2808 CONST_BITS+PASS2_BITS+1);
2812 z1 = MULTIPLY(
z1,
FIX(0.461784020));
2813 z2 = MULTIPLY(tmp0 - tmp2,
FIX(1.202428084));
2814 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.411026446));
2817 z2 = MULTIPLY(tmp0 - tmp1,
FIX(1.151670509));
2820 CONST_BITS+PASS2_BITS+1);
2825 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.221765677));
2826 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.222383464));
2829 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.800824523));
2831 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.801442310));
2833 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(2.443531355));
2853 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
2854 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
2870 for (ctr = 0; ctr < 6; ctr++) {
2882 tmp10 = tmp0 + tmp5;
2883 tmp13 = tmp0 - tmp5;
2884 tmp11 = tmp1 + tmp4;
2885 tmp14 = tmp1 - tmp4;
2886 tmp12 = tmp2 + tmp3;
2887 tmp15 = tmp2 - tmp3;
2899 dataptr[6] = PASS1_OUTPUT(tmp13 - tmp14 - tmp15);
2901 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.224744871)),
2902 CONST_BITS-PASS1_BITS);
2904 DESCALE(tmp14 - tmp15 + MULTIPLY(tmp13 + tmp15,
FIX(1.366025404)),
2905 CONST_BITS-PASS1_BITS);
2909 tmp10 = MULTIPLY(tmp1 + tmp4, FIX_0_541196100);
2910 tmp14 = tmp10 + MULTIPLY(tmp1, FIX_0_765366865);
2911 tmp15 = tmp10 - MULTIPLY(tmp4, FIX_1_847759065);
2912 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.121971054));
2913 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.860918669));
2914 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.580774953))
2915 + MULTIPLY(tmp5,
FIX(0.184591911));
2916 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.184591911));
2917 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.339493912))
2918 + MULTIPLY(tmp5,
FIX(0.860918669));
2919 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.725788011))
2920 - MULTIPLY(tmp5,
FIX(1.121971054));
2921 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.306562965))
2922 - MULTIPLY(tmp2 + tmp5, FIX_0_541196100);
2941 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2948 tmp10 = tmp0 + tmp2;
2949 tmp12 = tmp0 - tmp2;
2956 DESCALE(MULTIPLY(tmp10 + tmp11,
FIX(1.777777778)),
2957 CONST_BITS+PASS2_BITS+1);
2960 CONST_BITS+PASS2_BITS+1);
2962 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(1.257078722)),
2963 CONST_BITS+PASS2_BITS+1);
2967 tmp10 = MULTIPLY(tmp0 + tmp2,
FIX(0.650711829));
2970 DESCALE(tmp10 + MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
2971 CONST_BITS+PASS2_BITS+1);
2973 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp2,
FIX(1.777777778)),
2974 CONST_BITS+PASS2_BITS+1);
2976 DESCALE(tmp10 + MULTIPLY(tmp2 - tmp1,
FIX(1.777777778)),
2977 CONST_BITS+PASS2_BITS+1);
2993 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
2994 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
3010 for (ctr = 0; ctr < 5; ctr++) {
3021 tmp10 = tmp0 + tmp4;
3022 tmp13 = tmp0 - tmp4;
3023 tmp11 = tmp1 + tmp3;
3024 tmp14 = tmp1 - tmp3;
3037 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.144122806)) -
3038 MULTIPLY(tmp11 - tmp12,
FIX(0.437016024)),
3039 CONST_BITS-PASS1_BITS);
3040 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(0.831253876));
3042 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.513743148)),
3043 CONST_BITS-PASS1_BITS);
3045 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.176250899)),
3046 CONST_BITS-PASS1_BITS);
3050 tmp10 = tmp0 + tmp4;
3051 tmp11 = tmp1 - tmp3;
3052 dataptr[5] = PASS1_OUTPUT(tmp10 - tmp11 - tmp2);
3053 tmp2 <<= CONST_BITS;
3056 MULTIPLY(tmp1,
FIX(1.260073511)) + tmp2 +
3057 MULTIPLY(tmp3,
FIX(0.642039522)) +
3058 MULTIPLY(tmp4,
FIX(0.221231742)),
3059 CONST_BITS-PASS1_BITS);
3060 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(0.951056516)) -
3061 MULTIPLY(tmp1 + tmp3,
FIX(0.587785252));
3062 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.309016994)) +
3063 (tmp11 << (CONST_BITS - 1)) - tmp2;
3079 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
3086 tmp10 = tmp0 + tmp1;
3087 tmp11 = tmp0 - tmp1;
3094 CONST_BITS+PASS2_BITS);
3095 tmp11 = MULTIPLY(tmp11,
FIX(1.011928851));
3097 tmp10 = MULTIPLY(tmp10,
FIX(0.452548340));
3103 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(1.064004961));
3106 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.657591230)),
3107 CONST_BITS+PASS2_BITS);
3109 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.785601151)),
3110 CONST_BITS+PASS2_BITS);
3126 INT32 tmp0, tmp1, tmp2, tmp3;
3127 INT32 tmp10, tmp11, tmp12, tmp13;
3145 for (ctr = 0; ctr < 4; ctr++) {
3157 tmp10 = tmp0 + tmp3;
3158 tmp12 = tmp0 - tmp3;
3159 tmp11 = tmp1 + tmp2;
3160 tmp13 = tmp1 - tmp2;
3172 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
3174 z1 +=
ONE << (CONST_BITS-PASS1_BITS-2);
3178 CONST_BITS-PASS1_BITS-1);
3181 CONST_BITS-PASS1_BITS-1);
3187 tmp12 = tmp0 + tmp2;
3188 tmp13 = tmp1 + tmp3;
3190 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
3192 z1 +=
ONE << (CONST_BITS-PASS1_BITS-2);
3194 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
3195 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
3199 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
3200 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
3201 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
3205 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
3206 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
3207 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
3227 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
3250 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
3252 tmp0 +=
ONE << (CONST_BITS+PASS2_BITS-1);
3255 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
3256 CONST_BITS+PASS2_BITS);
3258 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
3259 CONST_BITS+PASS2_BITS);
3275 INT32 tmp0, tmp1, tmp2;
3276 INT32 tmp10, tmp11, tmp12;
3294 for (ctr = 0; ctr < 3; ctr++) {
3303 tmp10 = tmp0 + tmp2;
3304 tmp12 = tmp0 - tmp2;
3315 CONST_BITS-PASS1_BITS-1);
3317 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(0.707106781)),
3318 CONST_BITS-PASS1_BITS-1);
3322 tmp10 =
DESCALE(MULTIPLY(tmp0 + tmp2,
FIX(0.366025404)),
3323 CONST_BITS-PASS1_BITS-1);
3325 dataptr[1] = (
DCTELEM) (tmp10 + ((tmp0 + tmp1) << (PASS1_BITS+1)));
3327 dataptr[5] = (
DCTELEM) (tmp10 + ((tmp2 - tmp1) << (PASS1_BITS+1)));
3341 for (ctr = 0; ctr < 6; ctr++) {
3350 DESCALE(MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
3351 CONST_BITS+PASS2_BITS);
3353 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(1.257078722)),
3354 CONST_BITS+PASS2_BITS);
3360 CONST_BITS+PASS2_BITS);
3376 DCTELEM tmp0, tmp2, tmp10, tmp12, tmp4, tmp5;
3377 INT32 tmp1, tmp3, tmp11, tmp13;
3381#if PASS2_BITS > PASS1_BITS + 3
3402#if PASS2_BITS > PASS1_BITS + 3
3404#if PASS2_BITS > PASS1_BITS + 4
3405 tmp4 += 1 << (PASS2_BITS-PASS1_BITS-3-1);
3419 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
3421 z1 +=
ONE << (CONST_BITS+PASS2_BITS-PASS1_BITS-3-1);
3422 tmp1 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
3423 tmp3 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
3433 tmp10 = tmp4 + tmp5;
3434 tmp12 = tmp4 - tmp5;
3441 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
3442 tmp11 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
3443 tmp13 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
3453#if PASS2_BITS < PASS1_BITS + 3
3455 (tmp0 + tmp10 - 8 *
CENTERJSAMPLE) << (3+PASS1_BITS-PASS2_BITS);
3456 data[
DCTSIZE*1] = (tmp0 - tmp10) << (3+PASS1_BITS-PASS2_BITS);
3459 data[
DCTSIZE*0+2] = (tmp2 + tmp12) << (3+PASS1_BITS-PASS2_BITS);
3460 data[
DCTSIZE*1+2] = (tmp2 - tmp12) << (3+PASS1_BITS-PASS2_BITS);
3462#if PASS2_BITS == PASS1_BITS + 3
3472 PASS2_BITS-PASS1_BITS-3);
3486 RIGHT_SHIFT(tmp1 + tmp11, CONST_BITS+PASS2_BITS-PASS1_BITS-3);
3488 RIGHT_SHIFT(tmp1 - tmp11, CONST_BITS+PASS2_BITS-PASS1_BITS-3);
3492 RIGHT_SHIFT(tmp3 + tmp13, CONST_BITS+PASS2_BITS-PASS1_BITS-3);
3494 RIGHT_SHIFT(tmp3 - tmp13, CONST_BITS+PASS2_BITS-PASS1_BITS-3);
3526 (tmp0 + tmp1 - 2 *
CENTERJSAMPLE) << (5+PASS1_BITS-PASS2_BITS);
3530 data[1] = (tmp0 - tmp1) << (5+PASS1_BITS-PASS2_BITS);
3543 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
3544 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17;
3573 tmp10 = tmp0 + tmp3;
3574 tmp12 = tmp0 - tmp3;
3575 tmp11 = tmp1 + tmp2;
3576 tmp13 = tmp1 - tmp2;
3585 dataptr[4] = PASS1_OUTPUT(tmp10 - tmp11);
3587 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
3589 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
3593 CONST_BITS-PASS1_BITS);
3596 CONST_BITS-PASS1_BITS);
3602 tmp12 = tmp0 + tmp2;
3603 tmp13 = tmp1 + tmp3;
3605 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
3607 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
3609 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
3610 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
3614 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
3615 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
3616 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
3620 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
3621 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
3622 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
3650 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
3662 tmp10 = tmp0 + tmp7;
3663 tmp14 = tmp0 - tmp7;
3664 tmp11 = tmp1 + tmp6;
3665 tmp15 = tmp1 - tmp6;
3666 tmp12 = tmp2 + tmp5;
3667 tmp16 = tmp2 - tmp5;
3668 tmp13 = tmp3 + tmp4;
3669 tmp17 = tmp3 - tmp4;
3688 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
3689 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
3690 CONST_BITS+PASS2_BITS+1);
3692 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
3693 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
3696 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
3697 + MULTIPLY(tmp16,
FIX(2.172734804)),
3698 CONST_BITS+PASS2_BITS+1);
3700 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
3701 - MULTIPLY(tmp17,
FIX(1.061594338)),
3702 CONST_BITS+PASS2_BITS+1);
3706 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
3707 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
3708 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
3709 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
3710 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
3711 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
3712 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
3713 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
3714 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
3715 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
3716 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
3717 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
3718 tmp10 = tmp11 + tmp12 + tmp13 -
3719 MULTIPLY(tmp0,
FIX(2.286341144)) +
3720 MULTIPLY(tmp7,
FIX(0.779653625));
3721 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
3722 - MULTIPLY(tmp6,
FIX(1.663905119));
3723 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
3724 + MULTIPLY(tmp5,
FIX(1.227391138));
3725 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
3726 + MULTIPLY(tmp4,
FIX(2.167985692));
3748 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
3749 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
3789 z1 = MULTIPLY(
z1,
FIX(0.353553391));
3790 z2 = MULTIPLY(tmp0 - tmp2,
FIX(0.920609002));
3791 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.314692123));
3794 z2 = MULTIPLY(tmp0 - tmp1,
FIX(0.881747734));
3797 CONST_BITS-PASS1_BITS);
3802 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(0.935414347));
3803 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.170262339));
3806 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.378756276));
3808 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.613604268));
3810 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(1.870828693));
3836 for (ctr = 0; ctr < 7; ctr++) {
3847 tmp10 = tmp0 + tmp6;
3848 tmp14 = tmp0 - tmp6;
3849 tmp11 = tmp1 + tmp5;
3850 tmp15 = tmp1 - tmp5;
3851 tmp12 = tmp2 + tmp4;
3852 tmp16 = tmp2 - tmp4;
3863 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12 + tmp13,
3865 CONST_BITS+PASS2_BITS);
3868 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(0.832106052)) +
3869 MULTIPLY(tmp11 - tmp13,
FIX(0.205513223)) -
3870 MULTIPLY(tmp12 - tmp13,
FIX(0.575835255)),
3871 CONST_BITS+PASS2_BITS);
3873 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(0.722074570));
3876 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.178337691))
3877 + MULTIPLY(tmp16,
FIX(0.400721155)),
3878 CONST_BITS+PASS2_BITS);
3880 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.122795725))
3881 - MULTIPLY(tmp16,
FIX(0.900412262)),
3882 CONST_BITS+PASS2_BITS);
3886 tmp10 = tmp1 + tmp2;
3887 tmp11 = tmp5 - tmp4;
3889 DESCALE(MULTIPLY(tmp0 - tmp10 + tmp3 - tmp11 - tmp6,
3891 CONST_BITS+PASS2_BITS);
3892 tmp3 = MULTIPLY(tmp3 ,
FIX(0.653061224));
3893 tmp10 = MULTIPLY(tmp10, -
FIX(0.103406812));
3894 tmp11 = MULTIPLY(tmp11,
FIX(0.917760839));
3895 tmp10 += tmp11 - tmp3;
3896 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(0.782007410)) +
3897 MULTIPLY(tmp4 + tmp6,
FIX(0.491367823));
3899 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(1.550341076))
3900 + MULTIPLY(tmp4,
FIX(0.731428202)),
3901 CONST_BITS+PASS2_BITS);
3902 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(0.871740478)) +
3903 MULTIPLY(tmp5 - tmp6,
FIX(0.305035186));
3905 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.276965844))
3906 - MULTIPLY(tmp5,
FIX(2.004803435)),
3907 CONST_BITS+PASS2_BITS);
3910 - MULTIPLY(tmp0,
FIX(0.735987049))
3911 - MULTIPLY(tmp6,
FIX(0.082925825)),
3912 CONST_BITS+PASS2_BITS);
3929 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
3930 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
3958 tmp10 = tmp0 + tmp2;
3959 tmp12 = tmp0 - tmp2;
3969 CONST_BITS-PASS1_BITS);
3971 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(0.707106781)),
3972 CONST_BITS-PASS1_BITS);
3976 tmp10 =
DESCALE(MULTIPLY(tmp0 + tmp2,
FIX(0.366025404)),
3977 CONST_BITS-PASS1_BITS);
4009 for (ctr = 0; ctr < 6; ctr++) {
4019 tmp10 = tmp0 + tmp5;
4020 tmp13 = tmp0 - tmp5;
4021 tmp11 = tmp1 + tmp4;
4022 tmp14 = tmp1 - tmp4;
4023 tmp12 = tmp2 + tmp3;
4024 tmp15 = tmp2 - tmp3;
4034 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(0.888888889)),
4035 CONST_BITS+PASS2_BITS);
4037 DESCALE(MULTIPLY(tmp13 - tmp14 - tmp15,
FIX(0.888888889)),
4038 CONST_BITS+PASS2_BITS);
4040 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.088662108)),
4041 CONST_BITS+PASS2_BITS);
4043 DESCALE(MULTIPLY(tmp14 - tmp15,
FIX(0.888888889)) +
4044 MULTIPLY(tmp13 + tmp15,
FIX(1.214244803)),
4045 CONST_BITS+PASS2_BITS);
4049 tmp10 = MULTIPLY(tmp1 + tmp4,
FIX(0.481063200));
4050 tmp14 = tmp10 + MULTIPLY(tmp1,
FIX(0.680326102));
4051 tmp15 = tmp10 - MULTIPLY(tmp4,
FIX(1.642452502));
4052 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(0.997307603));
4053 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.765261039));
4054 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.516244403))
4055 + MULTIPLY(tmp5,
FIX(0.164081699));
4056 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.164081699));
4057 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.079550144))
4058 + MULTIPLY(tmp5,
FIX(0.765261039));
4059 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.645144899))
4060 - MULTIPLY(tmp5,
FIX(0.997307603));
4061 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.161389302))
4062 - MULTIPLY(tmp2 + tmp5,
FIX(0.481063200));
4084 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
4085 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
4113 tmp10 = tmp0 + tmp1;
4114 tmp11 = tmp0 - tmp1;
4121 tmp11 = MULTIPLY(tmp11,
FIX(0.790569415));
4123 tmp10 = MULTIPLY(tmp10,
FIX(0.353553391));
4129 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(0.831253876));
4132 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.513743148)),
4133 CONST_BITS-PASS1_BITS);
4135 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.176250899)),
4136 CONST_BITS-PASS1_BITS);
4158 for (ctr = 0; ctr < 5; ctr++) {
4167 tmp10 = tmp0 + tmp4;
4168 tmp13 = tmp0 - tmp4;
4169 tmp11 = tmp1 + tmp3;
4170 tmp14 = tmp1 - tmp3;
4179 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(1.28)),
4180 CONST_BITS+PASS2_BITS);
4183 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.464477191)) -
4184 MULTIPLY(tmp11 - tmp12,
FIX(0.559380511)),
4185 CONST_BITS+PASS2_BITS);
4186 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(1.064004961));
4188 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.657591230)),
4189 CONST_BITS+PASS2_BITS);
4191 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.785601151)),
4192 CONST_BITS+PASS2_BITS);
4196 tmp10 = tmp0 + tmp4;
4197 tmp11 = tmp1 - tmp3;
4199 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp2,
FIX(1.28)),
4200 CONST_BITS+PASS2_BITS);
4201 tmp2 = MULTIPLY(tmp2,
FIX(1.28));
4204 MULTIPLY(tmp1,
FIX(1.612894094)) + tmp2 +
4205 MULTIPLY(tmp3,
FIX(0.821810588)) +
4206 MULTIPLY(tmp4,
FIX(0.283176630)),
4207 CONST_BITS+PASS2_BITS);
4208 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(1.217352341)) -
4209 MULTIPLY(tmp1 + tmp3,
FIX(0.752365123));
4210 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.395541753)) +
4211 MULTIPLY(tmp11,
FIX(0.64)) - tmp2;
4230 INT32 tmp0, tmp1, tmp2, tmp3;
4231 INT32 tmp10, tmp11, tmp12, tmp13;
4250 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
4268 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
4270 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-2);
4273 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
4274 CONST_BITS-PASS1_BITS-1);
4276 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
4277 CONST_BITS-PASS1_BITS-1);
4289 for (ctr = 0; ctr < 4; ctr++) {
4301 tmp10 = tmp0 + tmp3 + (
ONE << (PASS2_BITS-1));
4304 tmp10 = tmp0 + tmp3 +
ONE;
4306 tmp10 = tmp0 + tmp3;
4309 tmp12 = tmp0 - tmp3;
4310 tmp11 = tmp1 + tmp2;
4311 tmp13 = tmp1 - tmp2;
4321 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
4323 z1 +=
ONE << (CONST_BITS+PASS2_BITS-1);
4327 CONST_BITS+PASS2_BITS);
4330 CONST_BITS+PASS2_BITS);
4336 tmp12 = tmp0 + tmp2;
4337 tmp13 = tmp1 + tmp3;
4339 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
4341 z1 +=
ONE << (CONST_BITS+PASS2_BITS-1);
4343 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
4344 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
4348 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
4349 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
4350 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
4354 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
4355 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
4356 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
4379 INT32 tmp0, tmp1, tmp2;
4380 INT32 tmp10, tmp11, tmp12;
4398 for (ctr = 0; ctr < 6; ctr++) {
4412 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(0.707106781)),
4413 CONST_BITS-PASS1_BITS-1);
4419 CONST_BITS-PASS1_BITS-1);
4433 for (ctr = 0; ctr < 3; ctr++) {
4440 tmp10 = tmp0 + tmp2;
4441 tmp12 = tmp0 - tmp2;
4448 DESCALE(MULTIPLY(tmp10 + tmp11,
FIX(1.777777778)),
4449 CONST_BITS+PASS2_BITS);
4452 CONST_BITS+PASS2_BITS);
4454 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(1.257078722)),
4455 CONST_BITS+PASS2_BITS);
4459 tmp10 = MULTIPLY(tmp0 + tmp2,
FIX(0.650711829));
4462 DESCALE(tmp10 + MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
4463 CONST_BITS+PASS2_BITS);
4465 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp2,
FIX(1.777777778)),
4466 CONST_BITS+PASS2_BITS);
4468 DESCALE(tmp10 + MULTIPLY(tmp2 - tmp1,
FIX(1.777777778)),
4469 CONST_BITS+PASS2_BITS);
4500 for (ctr = 0; ctr < 4; ctr++) {
4526 for (ctr = 0; ctr < 2; ctr++) {
4535#if PASS2_BITS < PASS1_BITS + 3
4537 ((tmp0 + tmp1) << (3+PASS1_BITS-PASS2_BITS));
4539 ((tmp0 - tmp1) << (3+PASS1_BITS-PASS2_BITS));
4541#if PASS2_BITS == PASS1_BITS + 3
4546 tmp0 +=
ONE << (PASS2_BITS-PASS1_BITS-3-1);
4549 RIGHT_SHIFT(tmp0 + tmp1, PASS2_BITS-PASS1_BITS-3);
4551 RIGHT_SHIFT(tmp0 - tmp1, PASS2_BITS-PASS1_BITS-3);
4557 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
4559 tmp0 +=
ONE << (CONST_BITS+PASS2_BITS-PASS1_BITS-3-1);
4562 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
4563 CONST_BITS+PASS2_BITS-PASS1_BITS-3);
4565 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
4566 CONST_BITS+PASS2_BITS-PASS1_BITS-3);
4601 (tmp0 + tmp1 - 2 *
CENTERJSAMPLE) << (5+PASS1_BITS-PASS2_BITS);
4605 data[
DCTSIZE*1] = (tmp0 - tmp1) << (5+PASS1_BITS-PASS2_BITS);
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define IRIGHT_SHIFT(x, shft)
JSAMPARRAY JDIMENSION start_col
#define GETJSAMPLE(value)
#define RIGHT_SHIFT(x, shft)
int const JOCTET * dataptr
static double float double int float z1
static double float double int float double float int float z3
static double float double int float double float z2
#define MEMZERO(addr, type, size)