49#ifdef DCT_ISLOW_SUPPORTED
95#if BITS_IN_JSAMPLE == 8
111#define FIX_0_298631336 ((INT32) 2446)
112#define FIX_0_390180644 ((INT32) 3196)
113#define FIX_0_541196100 ((INT32) 4433)
114#define FIX_0_765366865 ((INT32) 6270)
115#define FIX_0_899976223 ((INT32) 7373)
116#define FIX_1_175875602 ((INT32) 9633)
117#define FIX_1_501321110 ((INT32) 12299)
118#define FIX_1_847759065 ((INT32) 15137)
119#define FIX_1_961570560 ((INT32) 16069)
120#define FIX_2_053119869 ((INT32) 16819)
121#define FIX_2_562915447 ((INT32) 20995)
122#define FIX_3_072711026 ((INT32) 25172)
124#define FIX_0_298631336 FIX(0.298631336)
125#define FIX_0_390180644 FIX(0.390180644)
126#define FIX_0_541196100 FIX(0.541196100)
127#define FIX_0_765366865 FIX(0.765366865)
128#define FIX_0_899976223 FIX(0.899976223)
129#define FIX_1_175875602 FIX(1.175875602)
130#define FIX_1_501321110 FIX(1.501321110)
131#define FIX_1_847759065 FIX(1.847759065)
132#define FIX_1_961570560 FIX(1.961570560)
133#define FIX_2_053119869 FIX(2.053119869)
134#define FIX_2_562915447 FIX(2.562915447)
135#define FIX_3_072711026 FIX(3.072711026)
146#if BITS_IN_JSAMPLE == 8
147#define MULTIPLY(var,const) MULTIPLY16C16(var,const)
149#define MULTIPLY(var,const) ((var) * (const))
160 INT32 tmp0, tmp1, tmp2, tmp3;
161 INT32 tmp10, tmp11, tmp12, tmp13;
175 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
201 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
203 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
207 CONST_BITS-PASS1_BITS);
210 CONST_BITS-PASS1_BITS);
219 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
221 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
223 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
224 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
228 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
229 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
230 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
234 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
235 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
236 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
255 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
266 tmp10 = tmp0 + tmp3 + (
ONE << (PASS1_BITS-1));
279 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
281 z1 +=
ONE << (CONST_BITS+PASS1_BITS-1);
285 CONST_BITS+PASS1_BITS);
288 CONST_BITS+PASS1_BITS);
297 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
299 z1 +=
ONE << (CONST_BITS+PASS1_BITS-1);
301 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
302 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
306 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
307 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
308 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
312 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
313 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
314 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
327#ifdef DCT_SCALING_SUPPORTED
337 INT32 tmp0, tmp1, tmp2, tmp3;
338 INT32 tmp10, tmp11, tmp12;
355 for (ctr = 0; ctr < 7; ctr++) {
376 z1 = MULTIPLY(z1,
FIX(0.353553391));
377 z2 = MULTIPLY(tmp0 - tmp2,
FIX(0.920609002));
378 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.314692123));
381 z2 = MULTIPLY(tmp0 - tmp1,
FIX(0.881747734));
383 DESCALE(z2 + z3 - MULTIPLY(tmp1 - tmp3,
FIX(0.707106781)),
384 CONST_BITS-PASS1_BITS);
389 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(0.935414347));
390 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.170262339));
393 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.378756276));
395 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.613604268));
397 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(1.870828693));
415 for (ctr = 0; ctr < 7; ctr++) {
429 DESCALE(MULTIPLY(z1 + tmp1 + tmp3,
FIX(1.306122449)),
430 CONST_BITS+PASS1_BITS);
434 z1 = MULTIPLY(z1,
FIX(0.461784020));
435 z2 = MULTIPLY(tmp0 - tmp2,
FIX(1.202428084));
436 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.411026446));
439 z2 = MULTIPLY(tmp0 - tmp1,
FIX(1.151670509));
441 DESCALE(z2 + z3 - MULTIPLY(tmp1 - tmp3,
FIX(0.923568041)),
442 CONST_BITS+PASS1_BITS);
447 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.221765677));
448 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.222383464));
451 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.800824523));
453 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.801442310));
455 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(2.443531355));
473 INT32 tmp0, tmp1, tmp2;
474 INT32 tmp10, tmp11, tmp12;
490 for (ctr = 0; ctr < 6; ctr++) {
511 CONST_BITS-PASS1_BITS);
513 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(0.707106781)),
514 CONST_BITS-PASS1_BITS);
518 tmp10 =
DESCALE(MULTIPLY(tmp0 + tmp2,
FIX(0.366025404)),
519 CONST_BITS-PASS1_BITS);
537 for (ctr = 0; ctr < 6; ctr++) {
552 DESCALE(MULTIPLY(tmp10 + tmp11,
FIX(1.777777778)),
553 CONST_BITS+PASS1_BITS);
556 CONST_BITS+PASS1_BITS);
558 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(1.257078722)),
559 CONST_BITS+PASS1_BITS);
563 tmp10 = MULTIPLY(tmp0 + tmp2,
FIX(0.650711829));
566 DESCALE(tmp10 + MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
567 CONST_BITS+PASS1_BITS);
569 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp2,
FIX(1.777777778)),
570 CONST_BITS+PASS1_BITS);
572 DESCALE(tmp10 + MULTIPLY(tmp2 - tmp1,
FIX(1.777777778)),
573 CONST_BITS+PASS1_BITS);
587 INT32 tmp0, tmp1, tmp2;
606 for (ctr = 0; ctr < 5; ctr++) {
624 tmp11 = MULTIPLY(tmp11,
FIX(0.790569415));
626 tmp10 = MULTIPLY(tmp10,
FIX(0.353553391));
632 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(0.831253876));
635 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.513743148)),
636 CONST_BITS-PASS1_BITS-1);
638 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.176250899)),
639 CONST_BITS-PASS1_BITS-1);
653 for (ctr = 0; ctr < 5; ctr++) {
668 CONST_BITS+PASS1_BITS);
669 tmp11 = MULTIPLY(tmp11,
FIX(1.011928851));
671 tmp10 = MULTIPLY(tmp10,
FIX(0.452548340));
677 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(1.064004961));
680 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.657591230)),
681 CONST_BITS+PASS1_BITS);
683 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.785601151)),
684 CONST_BITS+PASS1_BITS);
716 for (ctr = 0; ctr < 4; ctr++) {
734 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
736 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-3);
739 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
740 CONST_BITS-PASS1_BITS-2);
742 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
743 CONST_BITS-PASS1_BITS-2);
755 for (ctr = 0; ctr < 4; ctr++) {
770 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
772 tmp0 +=
ONE << (CONST_BITS+PASS1_BITS-1);
775 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
776 CONST_BITS+PASS1_BITS);
778 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
779 CONST_BITS+PASS1_BITS);
793 INT32 tmp0, tmp1, tmp2;
811 for (ctr = 0; ctr < 3; ctr++) {
825 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(0.707106781)),
826 CONST_BITS-PASS1_BITS-2);
832 CONST_BITS-PASS1_BITS-2);
846 for (ctr = 0; ctr < 3; ctr++) {
855 DESCALE(MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
856 CONST_BITS+PASS1_BITS);
858 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(1.257078722)),
859 CONST_BITS+PASS1_BITS);
865 CONST_BITS+PASS1_BITS);
879 DCTELEM tmp0, tmp1, tmp2, tmp3;
945 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
946 INT32 tmp10, tmp11, tmp12, tmp13;
980 z1 = tmp0 + tmp2 + tmp3;
985 DESCALE(MULTIPLY(z1 - z2 - z2,
FIX(0.707106781)),
987 z1 = MULTIPLY(tmp0 - tmp2,
FIX(1.328926049));
988 z2 = MULTIPLY(tmp1 - tmp4 - tmp4,
FIX(0.707106781));
990 DESCALE(MULTIPLY(tmp2 - tmp3,
FIX(1.083350441))
991 + z1 + z2, CONST_BITS-1);
993 DESCALE(MULTIPLY(tmp3 - tmp0,
FIX(0.245575608))
994 + z1 - z2, CONST_BITS-1);
999 DESCALE(MULTIPLY(tmp10 - tmp12 - tmp13,
FIX(1.224744871)),
1002 tmp11 = MULTIPLY(tmp11,
FIX(1.224744871));
1003 tmp0 = MULTIPLY(tmp10 + tmp12,
FIX(0.909038955));
1004 tmp1 = MULTIPLY(tmp10 + tmp13,
FIX(0.483689525));
1008 tmp2 = MULTIPLY(tmp12 - tmp13,
FIX(1.392728481));
1032 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1046 z1 = tmp0 + tmp2 + tmp3;
1052 DESCALE(MULTIPLY(z1 - z2 - z2,
FIX(1.117403309)),
1054 z1 = MULTIPLY(tmp0 - tmp2,
FIX(2.100031287));
1055 z2 = MULTIPLY(tmp1 - tmp4 - tmp4,
FIX(1.117403309));
1057 DESCALE(MULTIPLY(tmp2 - tmp3,
FIX(1.711961190))
1058 + z1 + z2, CONST_BITS+2);
1060 DESCALE(MULTIPLY(tmp3 - tmp0,
FIX(0.388070096))
1061 + z1 - z2, CONST_BITS+2);
1066 DESCALE(MULTIPLY(tmp10 - tmp12 - tmp13,
FIX(1.935399303)),
1069 tmp11 = MULTIPLY(tmp11,
FIX(1.935399303));
1070 tmp0 = MULTIPLY(tmp10 + tmp12,
FIX(1.436506004));
1071 tmp1 = MULTIPLY(tmp10 + tmp13,
FIX(0.764348879));
1074 DESCALE(tmp11 + tmp0 + tmp1, CONST_BITS+2);
1076 tmp2 = MULTIPLY(tmp12 - tmp13,
FIX(2.200854883));
1079 DESCALE(tmp0 - tmp11 - tmp2, CONST_BITS+2);
1081 DESCALE(tmp1 - tmp11 + tmp2, CONST_BITS+2);
1096 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
1097 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
1125 tmp10 = tmp0 + tmp4;
1126 tmp13 = tmp0 - tmp4;
1127 tmp11 = tmp1 + tmp3;
1128 tmp14 = tmp1 - tmp3;
1141 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.144122806)) -
1142 MULTIPLY(tmp11 - tmp12,
FIX(0.437016024)),
1144 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(0.831253876));
1146 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.513743148)),
1149 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.176250899)),
1154 tmp10 = tmp0 + tmp4;
1155 tmp11 = tmp1 - tmp3;
1157 tmp2 <<= CONST_BITS;
1160 MULTIPLY(tmp1,
FIX(1.260073511)) + tmp2 +
1161 MULTIPLY(tmp3,
FIX(0.642039522)) +
1162 MULTIPLY(tmp4,
FIX(0.221231742)),
1164 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(0.951056516)) -
1165 MULTIPLY(tmp1 + tmp3,
FIX(0.587785252));
1166 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.309016994)) +
1167 (tmp11 << (CONST_BITS - 1)) - tmp2;
1190 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1199 tmp10 = tmp0 + tmp4;
1200 tmp13 = tmp0 - tmp4;
1201 tmp11 = tmp1 + tmp3;
1202 tmp14 = tmp1 - tmp3;
1211 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(1.28)),
1215 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.464477191)) -
1216 MULTIPLY(tmp11 - tmp12,
FIX(0.559380511)),
1218 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(1.064004961));
1220 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.657591230)),
1223 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.785601151)),
1228 tmp10 = tmp0 + tmp4;
1229 tmp11 = tmp1 - tmp3;
1231 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp2,
FIX(1.28)),
1233 tmp2 = MULTIPLY(tmp2,
FIX(1.28));
1236 MULTIPLY(tmp1,
FIX(1.612894094)) + tmp2 +
1237 MULTIPLY(tmp3,
FIX(0.821810588)) +
1238 MULTIPLY(tmp4,
FIX(0.283176630)),
1240 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(1.217352341)) -
1241 MULTIPLY(tmp1 + tmp3,
FIX(0.752365123));
1242 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.395541753)) +
1243 MULTIPLY(tmp11,
FIX(0.64)) - tmp2;
1260 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
1261 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
1299 ((tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 - 11 *
CENTERJSAMPLE) << 1);
1306 z1 = MULTIPLY(tmp0 + tmp3,
FIX(1.356927976)) +
1307 MULTIPLY(tmp2 + tmp4,
FIX(0.201263574));
1308 z2 = MULTIPLY(tmp1 - tmp3,
FIX(0.926112931));
1309 z3 = MULTIPLY(tmp0 - tmp1,
FIX(1.189712156));
1311 DESCALE(z1 + z2 - MULTIPLY(tmp3,
FIX(1.018300590))
1312 - MULTIPLY(tmp4,
FIX(1.390975730)),
1315 DESCALE(z2 + z3 + MULTIPLY(tmp1,
FIX(0.062335650))
1316 - MULTIPLY(tmp2,
FIX(1.356927976))
1317 + MULTIPLY(tmp4,
FIX(0.587485545)),
1320 DESCALE(z1 + z3 - MULTIPLY(tmp0,
FIX(1.620527200))
1321 - MULTIPLY(tmp2,
FIX(0.788749120)),
1326 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.286413905));
1327 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(1.068791298));
1328 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.764581576));
1329 tmp0 = tmp1 + tmp2 + tmp3 - MULTIPLY(tmp10,
FIX(1.719967871))
1330 + MULTIPLY(tmp14,
FIX(0.398430003));
1331 tmp4 = MULTIPLY(tmp11 + tmp12, -
FIX(0.764581576));
1332 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(1.399818907));
1333 tmp1 += tmp4 + tmp5 + MULTIPLY(tmp11,
FIX(1.276416582))
1334 - MULTIPLY(tmp14,
FIX(1.068791298));
1335 tmp10 = MULTIPLY(tmp12 + tmp13,
FIX(0.398430003));
1336 tmp2 += tmp4 + tmp10 - MULTIPLY(tmp12,
FIX(1.989053629))
1337 + MULTIPLY(tmp14,
FIX(1.399818907));
1338 tmp3 += tmp5 + tmp10 + MULTIPLY(tmp13,
FIX(1.305598626))
1339 - MULTIPLY(tmp14,
FIX(1.286413905));
1365 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1382 DESCALE(MULTIPLY(tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5,
1391 z1 = MULTIPLY(tmp0 + tmp3,
FIX(1.435427942)) +
1392 MULTIPLY(tmp2 + tmp4,
FIX(0.212906922));
1393 z2 = MULTIPLY(tmp1 - tmp3,
FIX(0.979689713));
1394 z3 = MULTIPLY(tmp0 - tmp1,
FIX(1.258538479));
1396 DESCALE(z1 + z2 - MULTIPLY(tmp3,
FIX(1.077210542))
1397 - MULTIPLY(tmp4,
FIX(1.471445400)),
1400 DESCALE(z2 + z3 + MULTIPLY(tmp1,
FIX(0.065941844))
1401 - MULTIPLY(tmp2,
FIX(1.435427942))
1402 + MULTIPLY(tmp4,
FIX(0.621472312)),
1405 DESCALE(z1 + z3 - MULTIPLY(tmp0,
FIX(1.714276708))
1406 - MULTIPLY(tmp2,
FIX(0.834379234)),
1411 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.360834544));
1412 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(1.130622199));
1413 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.808813568));
1414 tmp0 = tmp1 + tmp2 + tmp3 - MULTIPLY(tmp10,
FIX(1.819470145))
1415 + MULTIPLY(tmp14,
FIX(0.421479672));
1416 tmp4 = MULTIPLY(tmp11 + tmp12, -
FIX(0.808813568));
1417 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(1.480800167));
1418 tmp1 += tmp4 + tmp5 + MULTIPLY(tmp11,
FIX(1.350258864))
1419 - MULTIPLY(tmp14,
FIX(1.130622199));
1420 tmp10 = MULTIPLY(tmp12 + tmp13,
FIX(0.421479672));
1421 tmp2 += tmp4 + tmp10 - MULTIPLY(tmp12,
FIX(2.104122847))
1422 + MULTIPLY(tmp14,
FIX(1.480800167));
1423 tmp3 += tmp5 + tmp10 + MULTIPLY(tmp13,
FIX(1.381129125))
1424 - MULTIPLY(tmp14,
FIX(1.360834544));
1444 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
1445 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
1472 tmp10 = tmp0 + tmp5;
1473 tmp13 = tmp0 - tmp5;
1474 tmp11 = tmp1 + tmp4;
1475 tmp14 = tmp1 - tmp4;
1476 tmp12 = tmp2 + tmp3;
1477 tmp15 = tmp2 - tmp3;
1490 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.224744871)),
1493 DESCALE(tmp14 - tmp15 + MULTIPLY(tmp13 + tmp15,
FIX(1.366025404)),
1498 tmp10 = MULTIPLY(tmp1 + tmp4, FIX_0_541196100);
1499 tmp14 = tmp10 + MULTIPLY(tmp1, FIX_0_765366865);
1500 tmp15 = tmp10 - MULTIPLY(tmp4, FIX_1_847759065);
1501 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.121971054));
1502 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.860918669));
1503 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.580774953))
1504 + MULTIPLY(tmp5,
FIX(0.184591911));
1505 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.184591911));
1506 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.339493912))
1507 + MULTIPLY(tmp5,
FIX(0.860918669));
1508 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.725788011))
1509 - MULTIPLY(tmp5,
FIX(1.121971054));
1510 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.306562965))
1511 - MULTIPLY(tmp2 + tmp5, FIX_0_541196100);
1537 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1547 tmp10 = tmp0 + tmp5;
1548 tmp13 = tmp0 - tmp5;
1549 tmp11 = tmp1 + tmp4;
1550 tmp14 = tmp1 - tmp4;
1551 tmp12 = tmp2 + tmp3;
1552 tmp15 = tmp2 - tmp3;
1562 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(0.888888889)),
1565 DESCALE(MULTIPLY(tmp13 - tmp14 - tmp15,
FIX(0.888888889)),
1568 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.088662108)),
1571 DESCALE(MULTIPLY(tmp14 - tmp15,
FIX(0.888888889)) +
1572 MULTIPLY(tmp13 + tmp15,
FIX(1.214244803)),
1577 tmp10 = MULTIPLY(tmp1 + tmp4,
FIX(0.481063200));
1578 tmp14 = tmp10 + MULTIPLY(tmp1,
FIX(0.680326102));
1579 tmp15 = tmp10 - MULTIPLY(tmp4,
FIX(1.642452502));
1580 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(0.997307603));
1581 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.765261039));
1582 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.516244403))
1583 + MULTIPLY(tmp5,
FIX(0.164081699));
1584 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.164081699));
1585 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.079550144))
1586 + MULTIPLY(tmp5,
FIX(0.765261039));
1587 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.645144899))
1588 - MULTIPLY(tmp5,
FIX(0.997307603));
1589 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.161389302))
1590 - MULTIPLY(tmp2 + tmp5,
FIX(0.481063200));
1610 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
1611 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
1649 (tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 - 13 *
CENTERJSAMPLE);
1659 MULTIPLY(tmp1,
FIX(1.058554052)) +
1660 MULTIPLY(tmp2,
FIX(0.501487041)) -
1661 MULTIPLY(tmp3,
FIX(0.170464608)) -
1662 MULTIPLY(tmp4,
FIX(0.803364869)) -
1663 MULTIPLY(tmp5,
FIX(1.252223920)),
1665 z1 = MULTIPLY(tmp0 - tmp2,
FIX(1.155388986)) -
1666 MULTIPLY(tmp3 - tmp4,
FIX(0.435816023)) -
1667 MULTIPLY(tmp1 - tmp5,
FIX(0.316450131));
1668 z2 = MULTIPLY(tmp0 + tmp2,
FIX(0.096834934)) -
1669 MULTIPLY(tmp3 + tmp4,
FIX(0.937303064)) +
1670 MULTIPLY(tmp1 + tmp5,
FIX(0.486914739));
1677 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.322312651));
1678 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(1.163874945));
1679 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.937797057)) +
1680 MULTIPLY(tmp14 + tmp15,
FIX(0.338443458));
1681 tmp0 = tmp1 + tmp2 + tmp3 -
1682 MULTIPLY(tmp10,
FIX(2.020082300)) +
1683 MULTIPLY(tmp14,
FIX(0.318774355));
1684 tmp4 = MULTIPLY(tmp14 - tmp15,
FIX(0.937797057)) -
1685 MULTIPLY(tmp11 + tmp12,
FIX(0.338443458));
1686 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(1.163874945));
1687 tmp1 += tmp4 + tmp5 +
1688 MULTIPLY(tmp11,
FIX(0.837223564)) -
1689 MULTIPLY(tmp14,
FIX(2.341699410));
1690 tmp6 = MULTIPLY(tmp12 + tmp13, -
FIX(0.657217813));
1691 tmp2 += tmp4 + tmp6 -
1692 MULTIPLY(tmp12,
FIX(1.572116027)) +
1693 MULTIPLY(tmp15,
FIX(2.260109708));
1694 tmp3 += tmp5 + tmp6 +
1695 MULTIPLY(tmp13,
FIX(2.205608352)) -
1696 MULTIPLY(tmp15,
FIX(1.742345811));
1722 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1741 DESCALE(MULTIPLY(tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6,
1753 MULTIPLY(tmp1,
FIX(0.801745081)) +
1754 MULTIPLY(tmp2,
FIX(0.379824504)) -
1755 MULTIPLY(tmp3,
FIX(0.129109289)) -
1756 MULTIPLY(tmp4,
FIX(0.608465700)) -
1757 MULTIPLY(tmp5,
FIX(0.948429952)),
1759 z1 = MULTIPLY(tmp0 - tmp2,
FIX(0.875087516)) -
1760 MULTIPLY(tmp3 - tmp4,
FIX(0.330085509)) -
1761 MULTIPLY(tmp1 - tmp5,
FIX(0.239678205));
1762 z2 = MULTIPLY(tmp0 + tmp2,
FIX(0.073342435)) -
1763 MULTIPLY(tmp3 + tmp4,
FIX(0.709910013)) +
1764 MULTIPLY(tmp1 + tmp5,
FIX(0.368787494));
1771 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.001514908));
1772 tmp2 = MULTIPLY(tmp10 + tmp12,
FIX(0.881514751));
1773 tmp3 = MULTIPLY(tmp10 + tmp13,
FIX(0.710284161)) +
1774 MULTIPLY(tmp14 + tmp15,
FIX(0.256335874));
1775 tmp0 = tmp1 + tmp2 + tmp3 -
1776 MULTIPLY(tmp10,
FIX(1.530003162)) +
1777 MULTIPLY(tmp14,
FIX(0.241438564));
1778 tmp4 = MULTIPLY(tmp14 - tmp15,
FIX(0.710284161)) -
1779 MULTIPLY(tmp11 + tmp12,
FIX(0.256335874));
1780 tmp5 = MULTIPLY(tmp11 + tmp13, -
FIX(0.881514751));
1781 tmp1 += tmp4 + tmp5 +
1782 MULTIPLY(tmp11,
FIX(0.634110155)) -
1783 MULTIPLY(tmp14,
FIX(1.773594819));
1784 tmp6 = MULTIPLY(tmp12 + tmp13, -
FIX(0.497774438));
1785 tmp2 += tmp4 + tmp6 -
1786 MULTIPLY(tmp12,
FIX(1.190715098)) +
1787 MULTIPLY(tmp15,
FIX(1.711799069));
1788 tmp3 += tmp5 + tmp6 +
1789 MULTIPLY(tmp13,
FIX(1.670519935)) -
1790 MULTIPLY(tmp15,
FIX(1.319646532));
1810 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
1811 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
1839 tmp10 = tmp0 + tmp6;
1840 tmp14 = tmp0 - tmp6;
1841 tmp11 = tmp1 + tmp5;
1842 tmp15 = tmp1 - tmp5;
1843 tmp12 = tmp2 + tmp4;
1844 tmp16 = tmp2 - tmp4;
1859 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.274162392)) +
1860 MULTIPLY(tmp11 - tmp13,
FIX(0.314692123)) -
1861 MULTIPLY(tmp12 - tmp13,
FIX(0.881747734)),
1864 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(1.105676686));
1867 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.273079590))
1868 + MULTIPLY(tmp16,
FIX(0.613604268)),
1871 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.719280954))
1872 - MULTIPLY(tmp16,
FIX(1.378756276)),
1877 tmp10 = tmp1 + tmp2;
1878 tmp11 = tmp5 - tmp4;
1880 tmp3 <<= CONST_BITS;
1881 tmp10 = MULTIPLY(tmp10, -
FIX(0.158341681));
1882 tmp11 = MULTIPLY(tmp11,
FIX(1.405321284));
1883 tmp10 += tmp11 - tmp3;
1884 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(1.197448846)) +
1885 MULTIPLY(tmp4 + tmp6,
FIX(0.752406978));
1887 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(2.373959773))
1888 + MULTIPLY(tmp4,
FIX(1.119999435)),
1890 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(1.334852607)) +
1891 MULTIPLY(tmp5 - tmp6,
FIX(0.467085129));
1893 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.424103948))
1894 - MULTIPLY(tmp5,
FIX(3.069855259)),
1897 DESCALE(tmp11 + tmp12 + tmp3 + tmp6 -
1898 MULTIPLY(tmp0 + tmp6,
FIX(1.126980169)),
1920 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
1931 tmp10 = tmp0 + tmp6;
1932 tmp14 = tmp0 - tmp6;
1933 tmp11 = tmp1 + tmp5;
1934 tmp15 = tmp1 - tmp5;
1935 tmp12 = tmp2 + tmp4;
1936 tmp16 = tmp2 - tmp4;
1947 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12 + tmp13,
1952 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(0.832106052)) +
1953 MULTIPLY(tmp11 - tmp13,
FIX(0.205513223)) -
1954 MULTIPLY(tmp12 - tmp13,
FIX(0.575835255)),
1957 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(0.722074570));
1960 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.178337691))
1961 + MULTIPLY(tmp16,
FIX(0.400721155)),
1964 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.122795725))
1965 - MULTIPLY(tmp16,
FIX(0.900412262)),
1970 tmp10 = tmp1 + tmp2;
1971 tmp11 = tmp5 - tmp4;
1973 DESCALE(MULTIPLY(tmp0 - tmp10 + tmp3 - tmp11 - tmp6,
1976 tmp3 = MULTIPLY(tmp3 ,
FIX(0.653061224));
1977 tmp10 = MULTIPLY(tmp10, -
FIX(0.103406812));
1978 tmp11 = MULTIPLY(tmp11,
FIX(0.917760839));
1979 tmp10 += tmp11 - tmp3;
1980 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(0.782007410)) +
1981 MULTIPLY(tmp4 + tmp6,
FIX(0.491367823));
1983 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(1.550341076))
1984 + MULTIPLY(tmp4,
FIX(0.731428202)),
1986 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(0.871740478)) +
1987 MULTIPLY(tmp5 - tmp6,
FIX(0.305035186));
1989 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.276965844))
1990 - MULTIPLY(tmp5,
FIX(2.004803435)),
1994 - MULTIPLY(tmp0,
FIX(0.735987049))
1995 - MULTIPLY(tmp6,
FIX(0.082925825)),
2011 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
2012 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
2050 z1 = tmp0 + tmp4 + tmp5;
2051 z2 = tmp1 + tmp3 + tmp6;
2057 DESCALE(MULTIPLY(z1 - z3,
FIX(1.144122806)) -
2058 MULTIPLY(z2 - z3,
FIX(0.437016024)),
2060 tmp2 += ((tmp1 + tmp4) >> 1) - tmp7 - tmp7;
2061 z1 = MULTIPLY(tmp3 - tmp2,
FIX(1.531135173)) -
2062 MULTIPLY(tmp6 - tmp2,
FIX(2.238241955));
2063 z2 = MULTIPLY(tmp5 - tmp2,
FIX(0.798468008)) -
2064 MULTIPLY(tmp0 - tmp2,
FIX(0.091361227));
2065 z3 = MULTIPLY(tmp0 - tmp3,
FIX(1.383309603)) +
2066 MULTIPLY(tmp6 - tmp5,
FIX(0.946293579)) +
2067 MULTIPLY(tmp1 - tmp4,
FIX(0.790569415));
2074 tmp2 = MULTIPLY(tmp10 - tmp12 - tmp13 + tmp15 + tmp16,
2076 tmp1 = MULTIPLY(tmp10 - tmp14 - tmp15,
FIX(1.344997024)) +
2077 MULTIPLY(tmp11 - tmp13 - tmp16,
FIX(0.831253876));
2078 tmp12 = MULTIPLY(tmp12,
FIX(1.224744871));
2079 tmp4 = MULTIPLY(tmp10 - tmp16,
FIX(1.406466353)) +
2080 MULTIPLY(tmp11 + tmp14,
FIX(1.344997024)) +
2081 MULTIPLY(tmp13 + tmp15,
FIX(0.575212477));
2082 tmp0 = MULTIPLY(tmp13,
FIX(0.475753014)) -
2083 MULTIPLY(tmp14,
FIX(0.513743148)) +
2084 MULTIPLY(tmp16,
FIX(1.700497885)) + tmp4 + tmp12;
2085 tmp3 = MULTIPLY(tmp10, -
FIX(0.355500862)) -
2086 MULTIPLY(tmp11,
FIX(2.176250899)) -
2087 MULTIPLY(tmp15,
FIX(0.869244010)) + tmp4 - tmp12;
2113 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2133 z1 = tmp0 + tmp4 + tmp5;
2134 z2 = tmp1 + tmp3 + tmp6;
2137 DESCALE(MULTIPLY(z1 + z2 + z3,
FIX(1.137777778)),
2141 DESCALE(MULTIPLY(z1 - z3,
FIX(1.301757503)) -
2142 MULTIPLY(z2 - z3,
FIX(0.497227121)),
2144 tmp2 += ((tmp1 + tmp4) >> 1) - tmp7 - tmp7;
2145 z1 = MULTIPLY(tmp3 - tmp2,
FIX(1.742091575)) -
2146 MULTIPLY(tmp6 - tmp2,
FIX(2.546621957));
2147 z2 = MULTIPLY(tmp5 - tmp2,
FIX(0.908479156)) -
2148 MULTIPLY(tmp0 - tmp2,
FIX(0.103948774));
2149 z3 = MULTIPLY(tmp0 - tmp3,
FIX(1.573898926)) +
2150 MULTIPLY(tmp6 - tmp5,
FIX(1.076671805)) +
2151 MULTIPLY(tmp1 - tmp4,
FIX(0.899492312));
2158 tmp2 = MULTIPLY(tmp10 - tmp12 - tmp13 + tmp15 + tmp16,
2160 tmp1 = MULTIPLY(tmp10 - tmp14 - tmp15,
FIX(1.530307725)) +
2161 MULTIPLY(tmp11 - tmp13 - tmp16,
FIX(0.945782187));
2162 tmp12 = MULTIPLY(tmp12,
FIX(1.393487498));
2163 tmp4 = MULTIPLY(tmp10 - tmp16,
FIX(1.600246161)) +
2164 MULTIPLY(tmp11 + tmp14,
FIX(1.530307725)) +
2165 MULTIPLY(tmp13 + tmp15,
FIX(0.654463974));
2166 tmp0 = MULTIPLY(tmp13,
FIX(0.541301207)) -
2167 MULTIPLY(tmp14,
FIX(0.584525538)) +
2168 MULTIPLY(tmp16,
FIX(1.934788705)) + tmp4 + tmp12;
2169 tmp3 = MULTIPLY(tmp10, -
FIX(0.404480980)) -
2170 MULTIPLY(tmp11,
FIX(2.476089912)) -
2171 MULTIPLY(tmp15,
FIX(0.989006518)) + tmp4 - tmp12;
2191 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
2192 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17;
2222 tmp10 = tmp0 + tmp7;
2223 tmp14 = tmp0 - tmp7;
2224 tmp11 = tmp1 + tmp6;
2225 tmp15 = tmp1 - tmp6;
2226 tmp12 = tmp2 + tmp5;
2227 tmp16 = tmp2 - tmp5;
2228 tmp13 = tmp3 + tmp4;
2229 tmp17 = tmp3 - tmp4;
2242 ((tmp10 + tmp11 + tmp12 + tmp13 - 16 *
CENTERJSAMPLE) << PASS1_BITS);
2244 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
2245 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
2246 CONST_BITS-PASS1_BITS);
2248 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
2249 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
2252 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
2253 + MULTIPLY(tmp16,
FIX(2.172734804)),
2254 CONST_BITS-PASS1_BITS);
2256 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
2257 - MULTIPLY(tmp17,
FIX(1.061594338)),
2258 CONST_BITS-PASS1_BITS);
2262 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
2263 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
2264 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
2265 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
2266 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
2267 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
2268 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
2269 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
2270 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
2271 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
2272 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
2273 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
2274 tmp10 = tmp11 + tmp12 + tmp13 -
2275 MULTIPLY(tmp0,
FIX(2.286341144)) +
2276 MULTIPLY(tmp7,
FIX(0.779653625));
2277 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
2278 - MULTIPLY(tmp6,
FIX(1.663905119));
2279 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
2280 + MULTIPLY(tmp5,
FIX(1.227391138));
2281 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
2282 + MULTIPLY(tmp4,
FIX(2.167985692));
2308 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2320 tmp10 = tmp0 + tmp7;
2321 tmp14 = tmp0 - tmp7;
2322 tmp11 = tmp1 + tmp6;
2323 tmp15 = tmp1 - tmp6;
2324 tmp12 = tmp2 + tmp5;
2325 tmp16 = tmp2 - tmp5;
2326 tmp13 = tmp3 + tmp4;
2327 tmp17 = tmp3 - tmp4;
2339 DESCALE(tmp10 + tmp11 + tmp12 + tmp13, PASS1_BITS+2);
2341 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
2342 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
2343 CONST_BITS+PASS1_BITS+2);
2345 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
2346 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
2349 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
2350 + MULTIPLY(tmp16,
FIX(2.172734804)),
2351 CONST_BITS+PASS1_BITS+2);
2353 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
2354 - MULTIPLY(tmp17,
FIX(1.061594338)),
2355 CONST_BITS+PASS1_BITS+2);
2359 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
2360 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
2361 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
2362 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
2363 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
2364 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
2365 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
2366 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
2367 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
2368 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
2369 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
2370 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
2371 tmp10 = tmp11 + tmp12 + tmp13 -
2372 MULTIPLY(tmp0,
FIX(2.286341144)) +
2373 MULTIPLY(tmp7,
FIX(0.779653625));
2374 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
2375 - MULTIPLY(tmp6,
FIX(1.663905119));
2376 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
2377 + MULTIPLY(tmp5,
FIX(1.227391138));
2378 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
2379 + MULTIPLY(tmp4,
FIX(2.167985692));
2401 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
2402 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17;
2417 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
2431 tmp10 = tmp0 + tmp7;
2432 tmp14 = tmp0 - tmp7;
2433 tmp11 = tmp1 + tmp6;
2434 tmp15 = tmp1 - tmp6;
2435 tmp12 = tmp2 + tmp5;
2436 tmp16 = tmp2 - tmp5;
2437 tmp13 = tmp3 + tmp4;
2438 tmp17 = tmp3 - tmp4;
2451 ((tmp10 + tmp11 + tmp12 + tmp13 - 16 *
CENTERJSAMPLE) << PASS1_BITS);
2453 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
2454 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
2455 CONST_BITS-PASS1_BITS);
2457 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
2458 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
2461 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
2462 + MULTIPLY(tmp16,
FIX(2.172734804)),
2463 CONST_BITS-PASS1_BITS);
2465 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
2466 - MULTIPLY(tmp17,
FIX(1.061594338)),
2467 CONST_BITS-PASS1_BITS);
2471 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
2472 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
2473 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
2474 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
2475 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
2476 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
2477 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
2478 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
2479 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
2480 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
2481 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
2482 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
2483 tmp10 = tmp11 + tmp12 + tmp13 -
2484 MULTIPLY(tmp0,
FIX(2.286341144)) +
2485 MULTIPLY(tmp7,
FIX(0.779653625));
2486 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
2487 - MULTIPLY(tmp6,
FIX(1.663905119));
2488 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
2489 + MULTIPLY(tmp5,
FIX(1.227391138));
2490 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
2491 + MULTIPLY(tmp4,
FIX(2.167985692));
2509 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2519 tmp10 = tmp0 + tmp3;
2520 tmp12 = tmp0 - tmp3;
2521 tmp11 = tmp1 + tmp2;
2522 tmp13 = tmp1 - tmp2;
2532 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
2534 DESCALE(z1 + MULTIPLY(tmp12, FIX_0_765366865),
2535 CONST_BITS+PASS1_BITS+1);
2537 DESCALE(z1 - MULTIPLY(tmp13, FIX_1_847759065),
2538 CONST_BITS+PASS1_BITS+1);
2544 tmp12 = tmp0 + tmp2;
2545 tmp13 = tmp1 + tmp3;
2547 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
2548 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
2549 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
2553 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
2554 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
2555 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
2559 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
2560 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
2561 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
2584 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
2585 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
2602 for (ctr = 0; ctr < 7; ctr++) {
2615 tmp10 = tmp0 + tmp6;
2616 tmp14 = tmp0 - tmp6;
2617 tmp11 = tmp1 + tmp5;
2618 tmp15 = tmp1 - tmp5;
2619 tmp12 = tmp2 + tmp4;
2620 tmp16 = tmp2 - tmp4;
2632 ((tmp10 + tmp11 + tmp12 + tmp13 - 14 *
CENTERJSAMPLE) << PASS1_BITS);
2635 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.274162392)) +
2636 MULTIPLY(tmp11 - tmp13,
FIX(0.314692123)) -
2637 MULTIPLY(tmp12 - tmp13,
FIX(0.881747734)),
2638 CONST_BITS-PASS1_BITS);
2640 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(1.105676686));
2643 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.273079590))
2644 + MULTIPLY(tmp16,
FIX(0.613604268)),
2645 CONST_BITS-PASS1_BITS);
2647 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.719280954))
2648 - MULTIPLY(tmp16,
FIX(1.378756276)),
2649 CONST_BITS-PASS1_BITS);
2653 tmp10 = tmp1 + tmp2;
2654 tmp11 = tmp5 - tmp4;
2655 dataptr[7] = (
DCTELEM) ((tmp0 - tmp10 + tmp3 - tmp11 - tmp6) << PASS1_BITS);
2656 tmp3 <<= CONST_BITS;
2657 tmp10 = MULTIPLY(tmp10, -
FIX(0.158341681));
2658 tmp11 = MULTIPLY(tmp11,
FIX(1.405321284));
2659 tmp10 += tmp11 - tmp3;
2660 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(1.197448846)) +
2661 MULTIPLY(tmp4 + tmp6,
FIX(0.752406978));
2663 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(2.373959773))
2664 + MULTIPLY(tmp4,
FIX(1.119999435)),
2665 CONST_BITS-PASS1_BITS);
2666 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(1.334852607)) +
2667 MULTIPLY(tmp5 - tmp6,
FIX(0.467085129));
2669 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.424103948))
2670 - MULTIPLY(tmp5,
FIX(3.069855259)),
2671 CONST_BITS-PASS1_BITS);
2673 DESCALE(tmp11 + tmp12 + tmp3 + tmp6 -
2674 MULTIPLY(tmp0 + tmp6,
FIX(1.126980169)),
2675 CONST_BITS-PASS1_BITS);
2689 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2703 DESCALE(MULTIPLY(z1 + tmp1 + tmp3,
FIX(1.306122449)),
2704 CONST_BITS+PASS1_BITS+1);
2708 z1 = MULTIPLY(z1,
FIX(0.461784020));
2709 z2 = MULTIPLY(tmp0 - tmp2,
FIX(1.202428084));
2710 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.411026446));
2713 z2 = MULTIPLY(tmp0 - tmp1,
FIX(1.151670509));
2715 DESCALE(z2 + z3 - MULTIPLY(tmp1 - tmp3,
FIX(0.923568041)),
2716 CONST_BITS+PASS1_BITS+1);
2721 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(1.221765677));
2722 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.222383464));
2725 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.800824523));
2727 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.801442310));
2729 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(2.443531355));
2749 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
2750 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
2766 for (ctr = 0; ctr < 6; ctr++) {
2778 tmp10 = tmp0 + tmp5;
2779 tmp13 = tmp0 - tmp5;
2780 tmp11 = tmp1 + tmp4;
2781 tmp14 = tmp1 - tmp4;
2782 tmp12 = tmp2 + tmp3;
2783 tmp15 = tmp2 - tmp3;
2794 ((tmp10 + tmp11 + tmp12 - 12 *
CENTERJSAMPLE) << PASS1_BITS);
2797 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.224744871)),
2798 CONST_BITS-PASS1_BITS);
2800 DESCALE(tmp14 - tmp15 + MULTIPLY(tmp13 + tmp15,
FIX(1.366025404)),
2801 CONST_BITS-PASS1_BITS);
2805 tmp10 = MULTIPLY(tmp1 + tmp4, FIX_0_541196100);
2806 tmp14 = tmp10 + MULTIPLY(tmp1, FIX_0_765366865);
2807 tmp15 = tmp10 - MULTIPLY(tmp4, FIX_1_847759065);
2808 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.121971054));
2809 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.860918669));
2810 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.580774953))
2811 + MULTIPLY(tmp5,
FIX(0.184591911));
2812 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.184591911));
2813 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.339493912))
2814 + MULTIPLY(tmp5,
FIX(0.860918669));
2815 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.725788011))
2816 - MULTIPLY(tmp5,
FIX(1.121971054));
2817 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.306562965))
2818 - MULTIPLY(tmp2 + tmp5, FIX_0_541196100);
2837 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2844 tmp10 = tmp0 + tmp2;
2845 tmp12 = tmp0 - tmp2;
2852 DESCALE(MULTIPLY(tmp10 + tmp11,
FIX(1.777777778)),
2853 CONST_BITS+PASS1_BITS+1);
2856 CONST_BITS+PASS1_BITS+1);
2858 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(1.257078722)),
2859 CONST_BITS+PASS1_BITS+1);
2863 tmp10 = MULTIPLY(tmp0 + tmp2,
FIX(0.650711829));
2866 DESCALE(tmp10 + MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
2867 CONST_BITS+PASS1_BITS+1);
2869 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp2,
FIX(1.777777778)),
2870 CONST_BITS+PASS1_BITS+1);
2872 DESCALE(tmp10 + MULTIPLY(tmp2 - tmp1,
FIX(1.777777778)),
2873 CONST_BITS+PASS1_BITS+1);
2889 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
2890 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
2906 for (ctr = 0; ctr < 5; ctr++) {
2917 tmp10 = tmp0 + tmp4;
2918 tmp13 = tmp0 - tmp4;
2919 tmp11 = tmp1 + tmp3;
2920 tmp14 = tmp1 - tmp3;
2930 ((tmp10 + tmp11 + tmp12 - 10 *
CENTERJSAMPLE) << PASS1_BITS);
2933 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.144122806)) -
2934 MULTIPLY(tmp11 - tmp12,
FIX(0.437016024)),
2935 CONST_BITS-PASS1_BITS);
2936 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(0.831253876));
2938 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.513743148)),
2939 CONST_BITS-PASS1_BITS);
2941 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.176250899)),
2942 CONST_BITS-PASS1_BITS);
2946 tmp10 = tmp0 + tmp4;
2947 tmp11 = tmp1 - tmp3;
2949 tmp2 <<= CONST_BITS;
2952 MULTIPLY(tmp1,
FIX(1.260073511)) + tmp2 +
2953 MULTIPLY(tmp3,
FIX(0.642039522)) +
2954 MULTIPLY(tmp4,
FIX(0.221231742)),
2955 CONST_BITS-PASS1_BITS);
2956 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(0.951056516)) -
2957 MULTIPLY(tmp1 + tmp3,
FIX(0.587785252));
2958 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.309016994)) +
2959 (tmp11 << (CONST_BITS - 1)) - tmp2;
2975 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
2982 tmp10 = tmp0 + tmp1;
2983 tmp11 = tmp0 - tmp1;
2990 CONST_BITS+PASS1_BITS);
2991 tmp11 = MULTIPLY(tmp11,
FIX(1.011928851));
2993 tmp10 = MULTIPLY(tmp10,
FIX(0.452548340));
2999 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(1.064004961));
3002 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.657591230)),
3003 CONST_BITS+PASS1_BITS);
3005 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.785601151)),
3006 CONST_BITS+PASS1_BITS);
3022 INT32 tmp0, tmp1, tmp2, tmp3;
3023 INT32 tmp10, tmp11, tmp12, tmp13;
3041 for (ctr = 0; ctr < 4; ctr++) {
3053 tmp10 = tmp0 + tmp3;
3054 tmp12 = tmp0 - tmp3;
3055 tmp11 = tmp1 + tmp2;
3056 tmp13 = tmp1 - tmp2;
3068 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
3070 z1 +=
ONE << (CONST_BITS-PASS1_BITS-2);
3073 RIGHT_SHIFT(z1 + MULTIPLY(tmp12, FIX_0_765366865),
3074 CONST_BITS-PASS1_BITS-1);
3076 RIGHT_SHIFT(z1 - MULTIPLY(tmp13, FIX_1_847759065),
3077 CONST_BITS-PASS1_BITS-1);
3083 tmp12 = tmp0 + tmp2;
3084 tmp13 = tmp1 + tmp3;
3086 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
3088 z1 +=
ONE << (CONST_BITS-PASS1_BITS-2);
3090 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
3091 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
3095 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
3096 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
3097 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
3101 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
3102 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
3103 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
3123 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
3138 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
3140 tmp0 +=
ONE << (CONST_BITS+PASS1_BITS-1);
3143 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
3144 CONST_BITS+PASS1_BITS);
3146 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
3147 CONST_BITS+PASS1_BITS);
3163 INT32 tmp0, tmp1, tmp2;
3164 INT32 tmp10, tmp11, tmp12;
3182 for (ctr = 0; ctr < 3; ctr++) {
3191 tmp10 = tmp0 + tmp2;
3192 tmp12 = tmp0 - tmp2;
3203 CONST_BITS-PASS1_BITS-1);
3205 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(0.707106781)),
3206 CONST_BITS-PASS1_BITS-1);
3210 tmp10 =
DESCALE(MULTIPLY(tmp0 + tmp2,
FIX(0.366025404)),
3211 CONST_BITS-PASS1_BITS-1);
3213 dataptr[1] = (
DCTELEM) (tmp10 + ((tmp0 + tmp1) << (PASS1_BITS+1)));
3215 dataptr[5] = (
DCTELEM) (tmp10 + ((tmp2 - tmp1) << (PASS1_BITS+1)));
3229 for (ctr = 0; ctr < 6; ctr++) {
3238 DESCALE(MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
3239 CONST_BITS+PASS1_BITS);
3241 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(1.257078722)),
3242 CONST_BITS+PASS1_BITS);
3248 CONST_BITS+PASS1_BITS);
3264 DCTELEM tmp0, tmp2, tmp10, tmp12, tmp4, tmp5;
3265 INT32 tmp1, tmp3, tmp11, tmp13;
3295 z1 = MULTIPLY(z2 + z3, FIX_0_541196100);
3297 z1 +=
ONE << (CONST_BITS-3-1);
3298 tmp1 = z1 + MULTIPLY(z2, FIX_0_765366865);
3299 tmp3 = z1 - MULTIPLY(z3, FIX_1_847759065);
3309 tmp10 = tmp4 + tmp5;
3310 tmp12 = tmp4 - tmp5;
3317 z1 = MULTIPLY(z2 + z3, FIX_0_541196100);
3318 tmp11 = z1 + MULTIPLY(z2, FIX_0_765366865);
3319 tmp13 = z1 - MULTIPLY(z3, FIX_1_847759065);
3376 data[1] = (tmp0 - tmp1) << 5;
3389 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
3390 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17;
3419 tmp10 = tmp0 + tmp3;
3420 tmp12 = tmp0 - tmp3;
3421 tmp11 = tmp1 + tmp2;
3422 tmp13 = tmp1 - tmp2;
3433 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
3435 DESCALE(z1 + MULTIPLY(tmp12, FIX_0_765366865),
3436 CONST_BITS-PASS1_BITS);
3438 DESCALE(z1 - MULTIPLY(tmp13, FIX_1_847759065),
3439 CONST_BITS-PASS1_BITS);
3445 tmp12 = tmp0 + tmp2;
3446 tmp13 = tmp1 + tmp3;
3448 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
3449 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
3450 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
3454 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
3455 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
3456 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
3460 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
3461 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
3462 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
3490 for (ctr =
DCTSIZE-1; ctr >= 0; ctr--) {
3502 tmp10 = tmp0 + tmp7;
3503 tmp14 = tmp0 - tmp7;
3504 tmp11 = tmp1 + tmp6;
3505 tmp15 = tmp1 - tmp6;
3506 tmp12 = tmp2 + tmp5;
3507 tmp16 = tmp2 - tmp5;
3508 tmp13 = tmp3 + tmp4;
3509 tmp17 = tmp3 - tmp4;
3521 DESCALE(tmp10 + tmp11 + tmp12 + tmp13, PASS1_BITS+1);
3523 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(1.306562965)) +
3524 MULTIPLY(tmp11 - tmp12, FIX_0_541196100),
3525 CONST_BITS+PASS1_BITS+1);
3527 tmp10 = MULTIPLY(tmp17 - tmp15,
FIX(0.275899379)) +
3528 MULTIPLY(tmp14 - tmp16,
FIX(1.387039845));
3531 DESCALE(tmp10 + MULTIPLY(tmp15,
FIX(1.451774982))
3532 + MULTIPLY(tmp16,
FIX(2.172734804)),
3533 CONST_BITS+PASS1_BITS+1);
3535 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(0.211164243))
3536 - MULTIPLY(tmp17,
FIX(1.061594338)),
3537 CONST_BITS+PASS1_BITS+1);
3541 tmp11 = MULTIPLY(tmp0 + tmp1,
FIX(1.353318001)) +
3542 MULTIPLY(tmp6 - tmp7,
FIX(0.410524528));
3543 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(1.247225013)) +
3544 MULTIPLY(tmp5 + tmp7,
FIX(0.666655658));
3545 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(1.093201867)) +
3546 MULTIPLY(tmp4 - tmp7,
FIX(0.897167586));
3547 tmp14 = MULTIPLY(tmp1 + tmp2,
FIX(0.138617169)) +
3548 MULTIPLY(tmp6 - tmp5,
FIX(1.407403738));
3549 tmp15 = MULTIPLY(tmp1 + tmp3, -
FIX(0.666655658)) +
3550 MULTIPLY(tmp4 + tmp6, -
FIX(1.247225013));
3551 tmp16 = MULTIPLY(tmp2 + tmp3, -
FIX(1.353318001)) +
3552 MULTIPLY(tmp5 - tmp4,
FIX(0.410524528));
3553 tmp10 = tmp11 + tmp12 + tmp13 -
3554 MULTIPLY(tmp0,
FIX(2.286341144)) +
3555 MULTIPLY(tmp7,
FIX(0.779653625));
3556 tmp11 += tmp14 + tmp15 + MULTIPLY(tmp1,
FIX(0.071888074))
3557 - MULTIPLY(tmp6,
FIX(1.663905119));
3558 tmp12 += tmp14 + tmp16 - MULTIPLY(tmp2,
FIX(1.125726048))
3559 + MULTIPLY(tmp5,
FIX(1.227391138));
3560 tmp13 += tmp15 + tmp16 + MULTIPLY(tmp3,
FIX(1.065388962))
3561 + MULTIPLY(tmp4,
FIX(2.167985692));
3583 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
3584 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
3625 z1 = MULTIPLY(z1,
FIX(0.353553391));
3626 z2 = MULTIPLY(tmp0 - tmp2,
FIX(0.920609002));
3627 z3 = MULTIPLY(tmp1 - tmp2,
FIX(0.314692123));
3630 z2 = MULTIPLY(tmp0 - tmp1,
FIX(0.881747734));
3632 DESCALE(z2 + z3 - MULTIPLY(tmp1 - tmp3,
FIX(0.707106781)),
3633 CONST_BITS-PASS1_BITS);
3638 tmp1 = MULTIPLY(tmp10 + tmp11,
FIX(0.935414347));
3639 tmp2 = MULTIPLY(tmp10 - tmp11,
FIX(0.170262339));
3642 tmp2 = MULTIPLY(tmp11 + tmp12, -
FIX(1.378756276));
3644 tmp3 = MULTIPLY(tmp10 + tmp12,
FIX(0.613604268));
3646 tmp2 += tmp3 + MULTIPLY(tmp12,
FIX(1.870828693));
3672 for (ctr = 0; ctr < 7; ctr++) {
3683 tmp10 = tmp0 + tmp6;
3684 tmp14 = tmp0 - tmp6;
3685 tmp11 = tmp1 + tmp5;
3686 tmp15 = tmp1 - tmp5;
3687 tmp12 = tmp2 + tmp4;
3688 tmp16 = tmp2 - tmp4;
3699 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12 + tmp13,
3701 CONST_BITS+PASS1_BITS);
3704 DESCALE(MULTIPLY(tmp10 - tmp13,
FIX(0.832106052)) +
3705 MULTIPLY(tmp11 - tmp13,
FIX(0.205513223)) -
3706 MULTIPLY(tmp12 - tmp13,
FIX(0.575835255)),
3707 CONST_BITS+PASS1_BITS);
3709 tmp10 = MULTIPLY(tmp14 + tmp15,
FIX(0.722074570));
3712 DESCALE(tmp10 + MULTIPLY(tmp14,
FIX(0.178337691))
3713 + MULTIPLY(tmp16,
FIX(0.400721155)),
3714 CONST_BITS+PASS1_BITS);
3716 DESCALE(tmp10 - MULTIPLY(tmp15,
FIX(1.122795725))
3717 - MULTIPLY(tmp16,
FIX(0.900412262)),
3718 CONST_BITS+PASS1_BITS);
3722 tmp10 = tmp1 + tmp2;
3723 tmp11 = tmp5 - tmp4;
3725 DESCALE(MULTIPLY(tmp0 - tmp10 + tmp3 - tmp11 - tmp6,
3727 CONST_BITS+PASS1_BITS);
3728 tmp3 = MULTIPLY(tmp3 ,
FIX(0.653061224));
3729 tmp10 = MULTIPLY(tmp10, -
FIX(0.103406812));
3730 tmp11 = MULTIPLY(tmp11,
FIX(0.917760839));
3731 tmp10 += tmp11 - tmp3;
3732 tmp11 = MULTIPLY(tmp0 + tmp2,
FIX(0.782007410)) +
3733 MULTIPLY(tmp4 + tmp6,
FIX(0.491367823));
3735 DESCALE(tmp10 + tmp11 - MULTIPLY(tmp2,
FIX(1.550341076))
3736 + MULTIPLY(tmp4,
FIX(0.731428202)),
3737 CONST_BITS+PASS1_BITS);
3738 tmp12 = MULTIPLY(tmp0 + tmp1,
FIX(0.871740478)) +
3739 MULTIPLY(tmp5 - tmp6,
FIX(0.305035186));
3741 DESCALE(tmp10 + tmp12 - MULTIPLY(tmp1,
FIX(0.276965844))
3742 - MULTIPLY(tmp5,
FIX(2.004803435)),
3743 CONST_BITS+PASS1_BITS);
3746 - MULTIPLY(tmp0,
FIX(0.735987049))
3747 - MULTIPLY(tmp6,
FIX(0.082925825)),
3748 CONST_BITS+PASS1_BITS);
3765 INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
3766 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
3794 tmp10 = tmp0 + tmp2;
3795 tmp12 = tmp0 - tmp2;
3806 CONST_BITS-PASS1_BITS);
3808 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(0.707106781)),
3809 CONST_BITS-PASS1_BITS);
3813 tmp10 =
DESCALE(MULTIPLY(tmp0 + tmp2,
FIX(0.366025404)),
3814 CONST_BITS-PASS1_BITS);
3840 for (ctr = 0; ctr < 6; ctr++) {
3850 tmp10 = tmp0 + tmp5;
3851 tmp13 = tmp0 - tmp5;
3852 tmp11 = tmp1 + tmp4;
3853 tmp14 = tmp1 - tmp4;
3854 tmp12 = tmp2 + tmp3;
3855 tmp15 = tmp2 - tmp3;
3865 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(0.888888889)),
3866 CONST_BITS+PASS1_BITS);
3868 DESCALE(MULTIPLY(tmp13 - tmp14 - tmp15,
FIX(0.888888889)),
3869 CONST_BITS+PASS1_BITS);
3871 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.088662108)),
3872 CONST_BITS+PASS1_BITS);
3874 DESCALE(MULTIPLY(tmp14 - tmp15,
FIX(0.888888889)) +
3875 MULTIPLY(tmp13 + tmp15,
FIX(1.214244803)),
3876 CONST_BITS+PASS1_BITS);
3880 tmp10 = MULTIPLY(tmp1 + tmp4,
FIX(0.481063200));
3881 tmp14 = tmp10 + MULTIPLY(tmp1,
FIX(0.680326102));
3882 tmp15 = tmp10 - MULTIPLY(tmp4,
FIX(1.642452502));
3883 tmp12 = MULTIPLY(tmp0 + tmp2,
FIX(0.997307603));
3884 tmp13 = MULTIPLY(tmp0 + tmp3,
FIX(0.765261039));
3885 tmp10 = tmp12 + tmp13 + tmp14 - MULTIPLY(tmp0,
FIX(0.516244403))
3886 + MULTIPLY(tmp5,
FIX(0.164081699));
3887 tmp11 = MULTIPLY(tmp2 + tmp3, -
FIX(0.164081699));
3888 tmp12 += tmp11 - tmp15 - MULTIPLY(tmp2,
FIX(2.079550144))
3889 + MULTIPLY(tmp5,
FIX(0.765261039));
3890 tmp13 += tmp11 - tmp14 + MULTIPLY(tmp3,
FIX(0.645144899))
3891 - MULTIPLY(tmp5,
FIX(0.997307603));
3892 tmp11 = tmp15 + MULTIPLY(tmp0 - tmp3,
FIX(1.161389302))
3893 - MULTIPLY(tmp2 + tmp5,
FIX(0.481063200));
3915 INT32 tmp0, tmp1, tmp2, tmp3, tmp4;
3916 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
3944 tmp10 = tmp0 + tmp1;
3945 tmp11 = tmp0 - tmp1;
3953 tmp11 = MULTIPLY(tmp11,
FIX(0.790569415));
3955 tmp10 = MULTIPLY(tmp10,
FIX(0.353553391));
3961 tmp10 = MULTIPLY(tmp0 + tmp1,
FIX(0.831253876));
3964 DESCALE(tmp10 + MULTIPLY(tmp0,
FIX(0.513743148)),
3965 CONST_BITS-PASS1_BITS);
3967 DESCALE(tmp10 - MULTIPLY(tmp1,
FIX(2.176250899)),
3968 CONST_BITS-PASS1_BITS);
3990 for (ctr = 0; ctr < 5; ctr++) {
3999 tmp10 = tmp0 + tmp4;
4000 tmp13 = tmp0 - tmp4;
4001 tmp11 = tmp1 + tmp3;
4002 tmp14 = tmp1 - tmp3;
4011 DESCALE(MULTIPLY(tmp10 + tmp11 + tmp12,
FIX(1.28)),
4012 CONST_BITS+PASS1_BITS);
4015 DESCALE(MULTIPLY(tmp10 - tmp12,
FIX(1.464477191)) -
4016 MULTIPLY(tmp11 - tmp12,
FIX(0.559380511)),
4017 CONST_BITS+PASS1_BITS);
4018 tmp10 = MULTIPLY(tmp13 + tmp14,
FIX(1.064004961));
4020 DESCALE(tmp10 + MULTIPLY(tmp13,
FIX(0.657591230)),
4021 CONST_BITS+PASS1_BITS);
4023 DESCALE(tmp10 - MULTIPLY(tmp14,
FIX(2.785601151)),
4024 CONST_BITS+PASS1_BITS);
4028 tmp10 = tmp0 + tmp4;
4029 tmp11 = tmp1 - tmp3;
4031 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp2,
FIX(1.28)),
4032 CONST_BITS+PASS1_BITS);
4033 tmp2 = MULTIPLY(tmp2,
FIX(1.28));
4036 MULTIPLY(tmp1,
FIX(1.612894094)) + tmp2 +
4037 MULTIPLY(tmp3,
FIX(0.821810588)) +
4038 MULTIPLY(tmp4,
FIX(0.283176630)),
4039 CONST_BITS+PASS1_BITS);
4040 tmp12 = MULTIPLY(tmp0 - tmp4,
FIX(1.217352341)) -
4041 MULTIPLY(tmp1 + tmp3,
FIX(0.752365123));
4042 tmp13 = MULTIPLY(tmp10 + tmp11,
FIX(0.395541753)) +
4043 MULTIPLY(tmp11,
FIX(0.64)) - tmp2;
4062 INT32 tmp0, tmp1, tmp2, tmp3;
4063 INT32 tmp10, tmp11, tmp12, tmp13;
4082 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
4100 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
4102 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-2);
4105 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
4106 CONST_BITS-PASS1_BITS-1);
4108 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
4109 CONST_BITS-PASS1_BITS-1);
4121 for (ctr = 0; ctr < 4; ctr++) {
4132 tmp10 = tmp0 + tmp3 + (
ONE << (PASS1_BITS-1));
4133 tmp12 = tmp0 - tmp3;
4134 tmp11 = tmp1 + tmp2;
4135 tmp13 = tmp1 - tmp2;
4145 z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100);
4147 z1 +=
ONE << (CONST_BITS+PASS1_BITS-1);
4150 RIGHT_SHIFT(z1 + MULTIPLY(tmp12, FIX_0_765366865),
4151 CONST_BITS+PASS1_BITS);
4153 RIGHT_SHIFT(z1 - MULTIPLY(tmp13, FIX_1_847759065),
4154 CONST_BITS+PASS1_BITS);
4160 tmp12 = tmp0 + tmp2;
4161 tmp13 = tmp1 + tmp3;
4163 z1 = MULTIPLY(tmp12 + tmp13, FIX_1_175875602);
4165 z1 +=
ONE << (CONST_BITS+PASS1_BITS-1);
4167 tmp12 = MULTIPLY(tmp12, - FIX_0_390180644);
4168 tmp13 = MULTIPLY(tmp13, - FIX_1_961570560);
4172 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
4173 tmp0 = MULTIPLY(tmp0, FIX_1_501321110);
4174 tmp3 = MULTIPLY(tmp3, FIX_0_298631336);
4178 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
4179 tmp1 = MULTIPLY(tmp1, FIX_3_072711026);
4180 tmp2 = MULTIPLY(tmp2, FIX_2_053119869);
4203 INT32 tmp0, tmp1, tmp2;
4204 INT32 tmp10, tmp11, tmp12;
4222 for (ctr = 0; ctr < 6; ctr++) {
4236 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp1,
FIX(0.707106781)),
4237 CONST_BITS-PASS1_BITS-1);
4243 CONST_BITS-PASS1_BITS-1);
4257 for (ctr = 0; ctr < 3; ctr++) {
4264 tmp10 = tmp0 + tmp2;
4265 tmp12 = tmp0 - tmp2;
4272 DESCALE(MULTIPLY(tmp10 + tmp11,
FIX(1.777777778)),
4273 CONST_BITS+PASS1_BITS);
4276 CONST_BITS+PASS1_BITS);
4278 DESCALE(MULTIPLY(tmp10 - tmp11 - tmp11,
FIX(1.257078722)),
4279 CONST_BITS+PASS1_BITS);
4283 tmp10 = MULTIPLY(tmp0 + tmp2,
FIX(0.650711829));
4286 DESCALE(tmp10 + MULTIPLY(tmp0 + tmp1,
FIX(1.777777778)),
4287 CONST_BITS+PASS1_BITS);
4289 DESCALE(MULTIPLY(tmp0 - tmp1 - tmp2,
FIX(1.777777778)),
4290 CONST_BITS+PASS1_BITS);
4292 DESCALE(tmp10 + MULTIPLY(tmp2 - tmp1,
FIX(1.777777778)),
4293 CONST_BITS+PASS1_BITS);
4324 for (ctr = 0; ctr < 4; ctr++) {
4350 for (ctr = 0; ctr < 2; ctr++) {
4364 tmp0 = MULTIPLY(tmp10 + tmp11, FIX_0_541196100);
4366 tmp0 +=
ONE << (CONST_BITS-3-1);
4369 RIGHT_SHIFT(tmp0 + MULTIPLY(tmp10, FIX_0_765366865),
4372 RIGHT_SHIFT(tmp0 - MULTIPLY(tmp11, FIX_1_847759065),
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
JSAMPARRAY JDIMENSION start_col
#define GETJSAMPLE(value)
#define RIGHT_SHIFT(x, shft)
int const JOCTET * dataptr
#define MEMZERO(addr, type, size)