56#ifdef DCT_ISLOW_SUPPORTED
100#if JPEG_DATA_PRECISION <= 10 && BITS_IN_JSAMPLE <= 13
102#define PASS1_BITS (10 - JPEG_DATA_PRECISION)
103#define PASS2_BITS (13 - BITS_IN_JSAMPLE)
105#if JPEG_DATA_PRECISION <= 13 && BITS_IN_JSAMPLE <= 16
107#define PASS1_BITS (13 - JPEG_DATA_PRECISION)
108#define PASS2_BITS (16 - BITS_IN_JSAMPLE)
120#define FIX_0_298631336 ((INT32) 2446)
121#define FIX_0_390180644 ((INT32) 3196)
122#define FIX_0_541196100 ((INT32) 4433)
123#define FIX_0_765366865 ((INT32) 6270)
124#define FIX_0_899976223 ((INT32) 7373)
125#define FIX_1_175875602 ((INT32) 9633)
126#define FIX_1_501321110 ((INT32) 12299)
127#define FIX_1_847759065 ((INT32) 15137)
128#define FIX_1_961570560 ((INT32) 16069)
129#define FIX_2_053119869 ((INT32) 16819)
130#define FIX_2_562915447 ((INT32) 20995)
131#define FIX_3_072711026 ((INT32) 25172)
133#define FIX_0_298631336 FIX(0.298631336)
134#define FIX_0_390180644 FIX(0.390180644)
135#define FIX_0_541196100 FIX(0.541196100)
136#define FIX_0_765366865 FIX(0.765366865)
137#define FIX_0_899976223 FIX(0.899976223)
138#define FIX_1_175875602 FIX(1.175875602)
139#define FIX_1_501321110 FIX(1.501321110)
140#define FIX_1_847759065 FIX(1.847759065)
141#define FIX_1_961570560 FIX(1.961570560)
142#define FIX_2_053119869 FIX(2.053119869)
143#define FIX_2_562915447 FIX(2.562915447)
144#define FIX_3_072711026 FIX(3.072711026)
155#if JPEG_DATA_PRECISION <= 10 && BITS_IN_JSAMPLE <= 13
156#define MULTIPLY(var,const) MULTIPLY16C16(var,const)
158#define MULTIPLY(var,const) ((var) * (const))
167#define DEQUANTIZE(coef,quantval) (((ISLOW_MULT_TYPE) (coef)) * (quantval))
173#define PASS2_OFFSET \
174 ((((INT32) RANGE_CENTER) << PASS2_BITS) + (ONE << (PASS2_BITS-1)))
177#define PASS2_OFFSET ((((INT32) RANGE_CENTER) << 1) + ONE)
179#define PASS2_OFFSET (INT32) RANGE_CENTER
196 INT32 tmp0, tmp1, tmp2, tmp3;
197 INT32 tmp10, tmp11, tmp12, tmp13;
232 int dcval = DEQUANTIZE(inptr[
DCTSIZE*0], quantptr[
DCTSIZE*0]) << PASS1_BITS;
261 z2 +=
ONE << (CONST_BITS-PASS1_BITS-1);
269 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
270 tmp2 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
271 tmp3 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
290 z1 = MULTIPLY(
z2 +
z3, FIX_1_175875602);
291 z2 = MULTIPLY(
z2, - FIX_1_961570560);
292 z3 = MULTIPLY(
z3, - FIX_0_390180644);
296 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
297 tmp0 = MULTIPLY(tmp0, FIX_0_298631336);
298 tmp3 = MULTIPLY(tmp3, FIX_1_501321110);
302 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
303 tmp1 = MULTIPLY(tmp1, FIX_2_053119869);
304 tmp2 = MULTIPLY(tmp2, FIX_3_072711026);
330 for (ctr = 0; ctr <
DCTSIZE; ctr++) {
334 z2 = (
INT32) wsptr[0] + PASS2_OFFSET;
344#ifndef NO_ZERO_ROW_TEST
345 if (wsptr[1] == 0 && wsptr[2] == 0 && wsptr[3] == 0 && wsptr[4] == 0 &&
346 wsptr[5] == 0 && wsptr[6] == 0 && wsptr[7] == 0) {
378 z2 +=
ONE << (CONST_BITS-1);
387 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
388 tmp2 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
389 tmp3 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
400 tmp0 = (
INT32) wsptr[7];
401 tmp1 = (
INT32) wsptr[5];
402 tmp2 = (
INT32) wsptr[3];
403 tmp3 = (
INT32) wsptr[1];
408 z1 = MULTIPLY(
z2 +
z3, FIX_1_175875602);
409 z2 = MULTIPLY(
z2, - FIX_1_961570560);
410 z3 = MULTIPLY(
z3, - FIX_0_390180644);
414 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
415 tmp0 = MULTIPLY(tmp0, FIX_0_298631336);
416 tmp3 = MULTIPLY(tmp3, FIX_1_501321110);
420 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
421 tmp1 = MULTIPLY(tmp1, FIX_2_053119869);
422 tmp2 = MULTIPLY(tmp2, FIX_3_072711026);
429 CONST_BITS+PASS2_BITS)
432 CONST_BITS+PASS2_BITS)
435 CONST_BITS+PASS2_BITS)
438 CONST_BITS+PASS2_BITS)
441 CONST_BITS+PASS2_BITS)
444 CONST_BITS+PASS2_BITS)
447 CONST_BITS+PASS2_BITS)
450 CONST_BITS+PASS2_BITS)
457#ifdef IDCT_SCALING_SUPPORTED
473 INT32 tmp0, tmp1, tmp2, tmp10, tmp11, tmp12, tmp13;
489 for (ctr = 0; ctr < 7; ctr++, inptr++, quantptr++, wsptr++) {
493 tmp13 <<= CONST_BITS;
495 tmp13 +=
ONE << (CONST_BITS-PASS1_BITS-1);
501 tmp10 = MULTIPLY(
z2 -
z3,
FIX(0.881747734));
502 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.314692123));
503 tmp11 = tmp10 + tmp12 + tmp13 - MULTIPLY(
z2,
FIX(1.841218003));
506 tmp0 = MULTIPLY(tmp0,
FIX(1.274162392)) + tmp13;
507 tmp10 += tmp0 - MULTIPLY(
z3,
FIX(0.077722536));
508 tmp12 += tmp0 - MULTIPLY(
z1,
FIX(2.470602249));
509 tmp13 += MULTIPLY(
z2,
FIX(1.414213562));
517 tmp1 = MULTIPLY(
z1 +
z2,
FIX(0.935414347));
518 tmp2 = MULTIPLY(
z1 -
z2,
FIX(0.170262339));
521 tmp2 = MULTIPLY(
z2 +
z3, -
FIX(1.378756276));
523 z2 = MULTIPLY(
z1 +
z3,
FIX(0.613604268));
525 tmp2 +=
z2 + MULTIPLY(
z3,
FIX(1.870828693));
529 wsptr[7*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp0, CONST_BITS-PASS1_BITS);
530 wsptr[7*6] = (
int)
RIGHT_SHIFT(tmp10 - tmp0, CONST_BITS-PASS1_BITS);
531 wsptr[7*1] = (
int)
RIGHT_SHIFT(tmp11 + tmp1, CONST_BITS-PASS1_BITS);
532 wsptr[7*5] = (
int)
RIGHT_SHIFT(tmp11 - tmp1, CONST_BITS-PASS1_BITS);
533 wsptr[7*2] = (
int)
RIGHT_SHIFT(tmp12 + tmp2, CONST_BITS-PASS1_BITS);
534 wsptr[7*4] = (
int)
RIGHT_SHIFT(tmp12 - tmp2, CONST_BITS-PASS1_BITS);
541 for (ctr = 0; ctr < 7; ctr++) {
547 tmp13 = (
INT32) wsptr[0] + PASS2_OFFSET;
548 tmp13 <<= CONST_BITS;
550 tmp13 +=
ONE << (CONST_BITS-1);
557 tmp10 = MULTIPLY(
z2 -
z3,
FIX(0.881747734));
558 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.314692123));
559 tmp11 = tmp10 + tmp12 + tmp13 - MULTIPLY(
z2,
FIX(1.841218003));
562 tmp0 = MULTIPLY(tmp0,
FIX(1.274162392)) + tmp13;
563 tmp10 += tmp0 - MULTIPLY(
z3,
FIX(0.077722536));
564 tmp12 += tmp0 - MULTIPLY(
z1,
FIX(2.470602249));
565 tmp13 += MULTIPLY(
z2,
FIX(1.414213562));
573 tmp1 = MULTIPLY(
z1 +
z2,
FIX(0.935414347));
574 tmp2 = MULTIPLY(
z1 -
z2,
FIX(0.170262339));
577 tmp2 = MULTIPLY(
z2 +
z3, -
FIX(1.378756276));
579 z2 = MULTIPLY(
z1 +
z3,
FIX(0.613604268));
581 tmp2 +=
z2 + MULTIPLY(
z3,
FIX(1.870828693));
586 CONST_BITS+PASS2_BITS)
589 CONST_BITS+PASS2_BITS)
592 CONST_BITS+PASS2_BITS)
595 CONST_BITS+PASS2_BITS)
598 CONST_BITS+PASS2_BITS)
601 CONST_BITS+PASS2_BITS)
604 CONST_BITS+PASS2_BITS)
625 INT32 tmp0, tmp1, tmp2, tmp10, tmp11, tmp12;
641 for (ctr = 0; ctr < 6; ctr++, inptr++, quantptr++, wsptr++) {
647 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-1);
649 tmp10 = MULTIPLY(tmp2,
FIX(0.707106781));
651 tmp11 =
RIGHT_SHIFT(tmp0 - tmp10 - tmp10, CONST_BITS-PASS1_BITS);
653 tmp0 = MULTIPLY(tmp10,
FIX(1.224744871));
662 tmp1 = MULTIPLY(
z1 +
z3,
FIX(0.366025404));
663 tmp0 = tmp1 + ((
z1 +
z2) << CONST_BITS);
664 tmp2 = tmp1 + ((
z3 -
z2) << CONST_BITS);
666 tmp1 = (
z1 -
z2 -
z3) << PASS1_BITS;
673 wsptr[6*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp0, CONST_BITS-PASS1_BITS);
674 wsptr[6*5] = (
int)
RIGHT_SHIFT(tmp10 - tmp0, CONST_BITS-PASS1_BITS);
675 wsptr[6*1] = (
int) (tmp11 + tmp1);
676 wsptr[6*4] = (
int) (tmp11 - tmp1);
677 wsptr[6*2] = (
int)
RIGHT_SHIFT(tmp12 + tmp2, CONST_BITS-PASS1_BITS);
678 wsptr[6*3] = (
int)
RIGHT_SHIFT(tmp12 - tmp2, CONST_BITS-PASS1_BITS);
684 for (ctr = 0; ctr < 6; ctr++) {
690 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
693 tmp0 +=
ONE << (CONST_BITS-1);
695 tmp2 = (
INT32) wsptr[4];
696 tmp10 = MULTIPLY(tmp2,
FIX(0.707106781));
698 tmp11 = tmp0 - tmp10 - tmp10;
699 tmp10 = (
INT32) wsptr[2];
700 tmp0 = MULTIPLY(tmp10,
FIX(1.224744871));
709 tmp1 = MULTIPLY(
z1 +
z3,
FIX(0.366025404));
710 tmp0 = tmp1 + ((
z1 +
z2) << CONST_BITS);
711 tmp2 = tmp1 + ((
z3 -
z2) << CONST_BITS);
712 tmp1 = (
z1 -
z2 -
z3) << CONST_BITS;
717 CONST_BITS+PASS2_BITS)
720 CONST_BITS+PASS2_BITS)
723 CONST_BITS+PASS2_BITS)
726 CONST_BITS+PASS2_BITS)
729 CONST_BITS+PASS2_BITS)
732 CONST_BITS+PASS2_BITS)
753 INT32 tmp0, tmp1, tmp10, tmp11, tmp12;
769 for (ctr = 0; ctr < 5; ctr++, inptr++, quantptr++, wsptr++) {
773 tmp12 <<= CONST_BITS;
775 tmp12 +=
ONE << (CONST_BITS-PASS1_BITS-1);
778 z1 = MULTIPLY(tmp0 + tmp1,
FIX(0.790569415));
779 z2 = MULTIPLY(tmp0 - tmp1,
FIX(0.353553391));
790 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
791 tmp0 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
792 tmp1 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
796 wsptr[5*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp0, CONST_BITS-PASS1_BITS);
797 wsptr[5*4] = (
int)
RIGHT_SHIFT(tmp10 - tmp0, CONST_BITS-PASS1_BITS);
798 wsptr[5*1] = (
int)
RIGHT_SHIFT(tmp11 + tmp1, CONST_BITS-PASS1_BITS);
799 wsptr[5*3] = (
int)
RIGHT_SHIFT(tmp11 - tmp1, CONST_BITS-PASS1_BITS);
806 for (ctr = 0; ctr < 5; ctr++) {
812 tmp12 = (
INT32) wsptr[0] + PASS2_OFFSET;
813 tmp12 <<= CONST_BITS;
815 tmp12 +=
ONE << (CONST_BITS-1);
817 tmp0 = (
INT32) wsptr[2];
818 tmp1 = (
INT32) wsptr[4];
819 z1 = MULTIPLY(tmp0 + tmp1,
FIX(0.790569415));
820 z2 = MULTIPLY(tmp0 - tmp1,
FIX(0.353553391));
831 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
832 tmp0 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
833 tmp1 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
838 CONST_BITS+PASS2_BITS)
841 CONST_BITS+PASS2_BITS)
844 CONST_BITS+PASS2_BITS)
847 CONST_BITS+PASS2_BITS)
850 CONST_BITS+PASS2_BITS)
871 INT32 tmp0, tmp2, tmp10, tmp12;
887 for (ctr = 0; ctr < 4; ctr++, inptr++, quantptr++, wsptr++) {
894 tmp10 = (tmp0 + tmp2) << PASS1_BITS;
895 tmp12 = (tmp0 - tmp2) << PASS1_BITS;
907 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
909 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
911 CONST_BITS-PASS1_BITS);
913 CONST_BITS-PASS1_BITS);
917 wsptr[4*0] = (
int) (tmp10 + tmp0);
918 wsptr[4*3] = (
int) (tmp10 - tmp0);
919 wsptr[4*1] = (
int) (tmp12 + tmp2);
920 wsptr[4*2] = (
int) (tmp12 - tmp2);
926 for (ctr = 0; ctr < 4; ctr++) {
932 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
933 tmp2 = (
INT32) wsptr[2];
937 tmp0 +=
ONE << (CONST_BITS-1);
949 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
950 tmp0 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
951 tmp2 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
956 CONST_BITS+PASS2_BITS)
959 CONST_BITS+PASS2_BITS)
962 CONST_BITS+PASS2_BITS)
965 CONST_BITS+PASS2_BITS)
986 INT32 tmp0, tmp2, tmp10, tmp12;
1001 for (ctr = 0; ctr < 3; ctr++, inptr++, quantptr++, wsptr++) {
1005 tmp0 <<= CONST_BITS;
1007 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-1);
1009 tmp12 = MULTIPLY(tmp2,
FIX(0.707106781));
1010 tmp10 = tmp0 + tmp12;
1011 tmp2 = tmp0 - tmp12 - tmp12;
1016 tmp0 = MULTIPLY(tmp12,
FIX(1.224744871));
1020 wsptr[3*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp0, CONST_BITS-PASS1_BITS);
1021 wsptr[3*2] = (
int)
RIGHT_SHIFT(tmp10 - tmp0, CONST_BITS-PASS1_BITS);
1028 for (ctr = 0; ctr < 3; ctr++) {
1034 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
1035 tmp0 <<= CONST_BITS;
1037 tmp0 +=
ONE << (CONST_BITS-1);
1039 tmp2 = (
INT32) wsptr[2];
1040 tmp12 = MULTIPLY(tmp2,
FIX(0.707106781));
1041 tmp10 = tmp0 + tmp12;
1042 tmp2 = tmp0 - tmp12 - tmp12;
1046 tmp12 = (
INT32) wsptr[1];
1047 tmp0 = MULTIPLY(tmp12,
FIX(1.224744871));
1052 CONST_BITS+PASS2_BITS)
1055 CONST_BITS+PASS2_BITS)
1058 CONST_BITS+PASS2_BITS)
1078 DCTELEM tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
1092#if PASS2_BITS > PASS1_BITS
1094#if PASS2_BITS > PASS1_BITS + 1
1096 (1 << (PASS2_BITS-PASS1_BITS-1));
1117 PASS2_BITS-PASS1_BITS)
1120 PASS2_BITS-PASS1_BITS)
1127 PASS2_BITS-PASS1_BITS)
1130 PASS2_BITS-PASS1_BITS)
1133#if PASS2_BITS == PASS1_BITS
1143 tmp4 <<= (PASS1_BITS-PASS2_BITS);
1144 tmp5 <<= (PASS1_BITS-PASS2_BITS);
1155 tmp4 <<= (PASS1_BITS-PASS2_BITS);
1156 tmp5 <<= (PASS1_BITS-PASS2_BITS);
1198 dcval = DEQUANTIZE(
coef_block[0], quantptr[0]);
1200#if PASS2_BITS > PASS1_BITS
1202#if PASS2_BITS > PASS1_BITS + 1
1204 (1 << (PASS2_BITS-PASS1_BITS-1));
1212#if PASS2_BITS < PASS1_BITS
1213 dcval <<= (PASS1_BITS-PASS2_BITS);
1235 INT32 tmp0, tmp1, tmp2, tmp3, tmp10, tmp11, tmp12, tmp13, tmp14;
1251 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
1255 tmp0 <<= CONST_BITS;
1257 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-1);
1263 tmp3 = MULTIPLY(
z3,
FIX(0.707106781));
1265 tmp2 = tmp0 - tmp3 - tmp3;
1267 tmp0 = MULTIPLY(
z1 -
z2,
FIX(0.707106781));
1268 tmp11 = tmp2 + tmp0;
1269 tmp14 = tmp2 - tmp0 - tmp0;
1271 tmp0 = MULTIPLY(
z1 +
z2,
FIX(1.328926049));
1272 tmp2 = MULTIPLY(
z1,
FIX(1.083350441));
1273 tmp3 = MULTIPLY(
z2,
FIX(0.245575608));
1275 tmp10 = tmp1 + tmp0 - tmp3;
1276 tmp12 = tmp1 - tmp0 + tmp2;
1277 tmp13 = tmp1 - tmp2 + tmp3;
1286 z2 = MULTIPLY(
z2, -
FIX(1.224744871));
1288 tmp2 = MULTIPLY(
z1 +
z3,
FIX(0.909038955));
1289 tmp3 = MULTIPLY(
z1 +
z4,
FIX(0.483689525));
1290 tmp0 = tmp2 + tmp3 -
z2;
1291 tmp1 = MULTIPLY(
z3 -
z4,
FIX(1.392728481));
1294 tmp1 = MULTIPLY(
z1 -
z3 -
z4,
FIX(1.224744871));
1298 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp0, CONST_BITS-PASS1_BITS);
1299 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp10 - tmp0, CONST_BITS-PASS1_BITS);
1300 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp11 + tmp1, CONST_BITS-PASS1_BITS);
1301 wsptr[8*7] = (
int)
RIGHT_SHIFT(tmp11 - tmp1, CONST_BITS-PASS1_BITS);
1302 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp12 + tmp2, CONST_BITS-PASS1_BITS);
1303 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp12 - tmp2, CONST_BITS-PASS1_BITS);
1304 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp13 + tmp3, CONST_BITS-PASS1_BITS);
1305 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp13 - tmp3, CONST_BITS-PASS1_BITS);
1312 for (ctr = 0; ctr < 9; ctr++) {
1318 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
1319 tmp0 <<= CONST_BITS;
1321 tmp0 +=
ONE << (CONST_BITS-1);
1328 tmp3 = MULTIPLY(
z3,
FIX(0.707106781));
1330 tmp2 = tmp0 - tmp3 - tmp3;
1332 tmp0 = MULTIPLY(
z1 -
z2,
FIX(0.707106781));
1333 tmp11 = tmp2 + tmp0;
1334 tmp14 = tmp2 - tmp0 - tmp0;
1336 tmp0 = MULTIPLY(
z1 +
z2,
FIX(1.328926049));
1337 tmp2 = MULTIPLY(
z1,
FIX(1.083350441));
1338 tmp3 = MULTIPLY(
z2,
FIX(0.245575608));
1340 tmp10 = tmp1 + tmp0 - tmp3;
1341 tmp12 = tmp1 - tmp0 + tmp2;
1342 tmp13 = tmp1 - tmp2 + tmp3;
1351 z2 = MULTIPLY(
z2, -
FIX(1.224744871));
1353 tmp2 = MULTIPLY(
z1 +
z3,
FIX(0.909038955));
1354 tmp3 = MULTIPLY(
z1 +
z4,
FIX(0.483689525));
1355 tmp0 = tmp2 + tmp3 -
z2;
1356 tmp1 = MULTIPLY(
z3 -
z4,
FIX(1.392728481));
1359 tmp1 = MULTIPLY(
z1 -
z3 -
z4,
FIX(1.224744871));
1364 CONST_BITS+PASS2_BITS)
1367 CONST_BITS+PASS2_BITS)
1370 CONST_BITS+PASS2_BITS)
1373 CONST_BITS+PASS2_BITS)
1376 CONST_BITS+PASS2_BITS)
1379 CONST_BITS+PASS2_BITS)
1382 CONST_BITS+PASS2_BITS)
1385 CONST_BITS+PASS2_BITS)
1388 CONST_BITS+PASS2_BITS)
1409 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
1410 INT32 tmp20, tmp21, tmp22, tmp23, tmp24;
1418 int workspace[8*10];
1426 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
1432 z3 +=
ONE << (CONST_BITS-PASS1_BITS-1);
1434 z1 = MULTIPLY(
z4,
FIX(1.144122806));
1435 z2 = MULTIPLY(
z4,
FIX(0.437016024));
1440 CONST_BITS-PASS1_BITS);
1445 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
1446 tmp12 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
1447 tmp13 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
1449 tmp20 = tmp10 + tmp12;
1450 tmp24 = tmp10 - tmp12;
1451 tmp21 = tmp11 + tmp13;
1452 tmp23 = tmp11 - tmp13;
1464 tmp12 = MULTIPLY(tmp13,
FIX(0.309016994));
1465 z5 =
z3 << CONST_BITS;
1467 z2 = MULTIPLY(tmp11,
FIX(0.951056516));
1470 tmp10 = MULTIPLY(
z1,
FIX(1.396802247)) +
z2 +
z4;
1471 tmp14 = MULTIPLY(
z1,
FIX(0.221231742)) -
z2 +
z4;
1473 z2 = MULTIPLY(tmp11,
FIX(0.587785252));
1474 z4 =
z5 - tmp12 - (tmp13 << (CONST_BITS - 1));
1477 tmp12 = (
z1 - tmp13 -
z3) << PASS1_BITS;
1479 tmp12 =
z1 - tmp13 -
z3;
1482 tmp11 = MULTIPLY(
z1,
FIX(1.260073511)) -
z2 -
z4;
1483 tmp13 = MULTIPLY(
z1,
FIX(0.642039522)) -
z2 +
z4;
1487 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
1488 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
1489 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
1490 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
1491 wsptr[8*2] = (
int) (tmp22 + tmp12);
1492 wsptr[8*7] = (
int) (tmp22 - tmp12);
1493 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp13, CONST_BITS-PASS1_BITS);
1494 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp23 - tmp13, CONST_BITS-PASS1_BITS);
1495 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
1496 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
1502 for (ctr = 0; ctr < 10; ctr++) {
1508 z3 = (
INT32) wsptr[0] + PASS2_OFFSET;
1511 z3 +=
ONE << (CONST_BITS-1);
1514 z1 = MULTIPLY(
z4,
FIX(1.144122806));
1515 z2 = MULTIPLY(
z4,
FIX(0.437016024));
1519 tmp22 =
z3 - ((
z1 -
z2) << 1);
1524 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
1525 tmp12 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
1526 tmp13 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
1528 tmp20 = tmp10 + tmp12;
1529 tmp24 = tmp10 - tmp12;
1530 tmp21 = tmp11 + tmp13;
1531 tmp23 = tmp11 - tmp13;
1544 tmp12 = MULTIPLY(tmp13,
FIX(0.309016994));
1546 z2 = MULTIPLY(tmp11,
FIX(0.951056516));
1549 tmp10 = MULTIPLY(
z1,
FIX(1.396802247)) +
z2 +
z4;
1550 tmp14 = MULTIPLY(
z1,
FIX(0.221231742)) -
z2 +
z4;
1552 z2 = MULTIPLY(tmp11,
FIX(0.587785252));
1553 z4 =
z3 - tmp12 - (tmp13 << (CONST_BITS - 1));
1555 tmp12 = ((
z1 - tmp13) << CONST_BITS) -
z3;
1557 tmp11 = MULTIPLY(
z1,
FIX(1.260073511)) -
z2 -
z4;
1558 tmp13 = MULTIPLY(
z1,
FIX(0.642039522)) -
z2 +
z4;
1563 CONST_BITS+PASS2_BITS)
1566 CONST_BITS+PASS2_BITS)
1569 CONST_BITS+PASS2_BITS)
1572 CONST_BITS+PASS2_BITS)
1575 CONST_BITS+PASS2_BITS)
1578 CONST_BITS+PASS2_BITS)
1581 CONST_BITS+PASS2_BITS)
1584 CONST_BITS+PASS2_BITS)
1587 CONST_BITS+PASS2_BITS)
1590 CONST_BITS+PASS2_BITS)
1611 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
1612 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25;
1620 int workspace[8*11];
1628 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
1632 tmp10 <<= CONST_BITS;
1634 tmp10 +=
ONE << (CONST_BITS-PASS1_BITS-1);
1640 tmp20 = MULTIPLY(
z2 -
z3,
FIX(2.546640132));
1641 tmp23 = MULTIPLY(
z2 -
z1,
FIX(0.430815045));
1643 tmp24 = MULTIPLY(
z4, -
FIX(1.155664402));
1645 tmp25 = tmp10 + MULTIPLY(
z4,
FIX(1.356927976));
1646 tmp21 = tmp20 + tmp23 + tmp25 -
1647 MULTIPLY(
z2,
FIX(1.821790775));
1648 tmp20 += tmp25 + MULTIPLY(
z3,
FIX(2.115825087));
1649 tmp23 += tmp25 - MULTIPLY(
z1,
FIX(1.513598477));
1651 tmp22 = tmp24 - MULTIPLY(
z3,
FIX(0.788749120));
1652 tmp24 += MULTIPLY(
z2,
FIX(1.944413522)) -
1653 MULTIPLY(
z1,
FIX(1.390975730));
1654 tmp25 = tmp10 - MULTIPLY(
z4,
FIX(1.414213562));
1664 tmp14 = MULTIPLY(tmp11 +
z3 +
z4,
FIX(0.398430003));
1665 tmp11 = MULTIPLY(tmp11,
FIX(0.887983902));
1666 tmp12 = MULTIPLY(
z1 +
z3,
FIX(0.670361295));
1667 tmp13 = tmp14 + MULTIPLY(
z1 +
z4,
FIX(0.366151574));
1668 tmp10 = tmp11 + tmp12 + tmp13 -
1669 MULTIPLY(
z1,
FIX(0.923107866));
1670 z1 = tmp14 - MULTIPLY(
z2 +
z3,
FIX(1.163011579));
1671 tmp11 +=
z1 + MULTIPLY(
z2,
FIX(2.073276588));
1672 tmp12 +=
z1 - MULTIPLY(
z3,
FIX(1.192193623));
1673 z1 = MULTIPLY(
z2 +
z4, -
FIX(1.798248910));
1675 tmp13 +=
z1 + MULTIPLY(
z4,
FIX(2.102458632));
1676 tmp14 += MULTIPLY(
z2, -
FIX(1.467221301)) +
1677 MULTIPLY(
z3,
FIX(1.001388905)) -
1678 MULTIPLY(
z4,
FIX(1.684843907));
1682 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
1683 wsptr[8*10] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
1684 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
1685 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
1686 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
1687 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
1688 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp13, CONST_BITS-PASS1_BITS);
1689 wsptr[8*7] = (
int)
RIGHT_SHIFT(tmp23 - tmp13, CONST_BITS-PASS1_BITS);
1690 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
1691 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
1698 for (ctr = 0; ctr < 11; ctr++) {
1704 tmp10 = (
INT32) wsptr[0] + PASS2_OFFSET;
1705 tmp10 <<= CONST_BITS;
1707 tmp10 +=
ONE << (CONST_BITS-1);
1714 tmp20 = MULTIPLY(
z2 -
z3,
FIX(2.546640132));
1715 tmp23 = MULTIPLY(
z2 -
z1,
FIX(0.430815045));
1717 tmp24 = MULTIPLY(
z4, -
FIX(1.155664402));
1719 tmp25 = tmp10 + MULTIPLY(
z4,
FIX(1.356927976));
1720 tmp21 = tmp20 + tmp23 + tmp25 -
1721 MULTIPLY(
z2,
FIX(1.821790775));
1722 tmp20 += tmp25 + MULTIPLY(
z3,
FIX(2.115825087));
1723 tmp23 += tmp25 - MULTIPLY(
z1,
FIX(1.513598477));
1725 tmp22 = tmp24 - MULTIPLY(
z3,
FIX(0.788749120));
1726 tmp24 += MULTIPLY(
z2,
FIX(1.944413522)) -
1727 MULTIPLY(
z1,
FIX(1.390975730));
1728 tmp25 = tmp10 - MULTIPLY(
z4,
FIX(1.414213562));
1738 tmp14 = MULTIPLY(tmp11 +
z3 +
z4,
FIX(0.398430003));
1739 tmp11 = MULTIPLY(tmp11,
FIX(0.887983902));
1740 tmp12 = MULTIPLY(
z1 +
z3,
FIX(0.670361295));
1741 tmp13 = tmp14 + MULTIPLY(
z1 +
z4,
FIX(0.366151574));
1742 tmp10 = tmp11 + tmp12 + tmp13 -
1743 MULTIPLY(
z1,
FIX(0.923107866));
1744 z1 = tmp14 - MULTIPLY(
z2 +
z3,
FIX(1.163011579));
1745 tmp11 +=
z1 + MULTIPLY(
z2,
FIX(2.073276588));
1746 tmp12 +=
z1 - MULTIPLY(
z3,
FIX(1.192193623));
1747 z1 = MULTIPLY(
z2 +
z4, -
FIX(1.798248910));
1749 tmp13 +=
z1 + MULTIPLY(
z4,
FIX(2.102458632));
1750 tmp14 += MULTIPLY(
z2, -
FIX(1.467221301)) +
1751 MULTIPLY(
z3,
FIX(1.001388905)) -
1752 MULTIPLY(
z4,
FIX(1.684843907));
1757 CONST_BITS+PASS2_BITS)
1760 CONST_BITS+PASS2_BITS)
1763 CONST_BITS+PASS2_BITS)
1766 CONST_BITS+PASS2_BITS)
1769 CONST_BITS+PASS2_BITS)
1772 CONST_BITS+PASS2_BITS)
1775 CONST_BITS+PASS2_BITS)
1778 CONST_BITS+PASS2_BITS)
1781 CONST_BITS+PASS2_BITS)
1784 CONST_BITS+PASS2_BITS)
1787 CONST_BITS+PASS2_BITS)
1808 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
1809 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25;
1817 int workspace[8*12];
1825 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
1831 z3 +=
ONE << (CONST_BITS-PASS1_BITS-1);
1834 z4 = MULTIPLY(
z4,
FIX(1.224744871));
1840 z4 = MULTIPLY(
z1,
FIX(1.366025404));
1852 tmp20 = tmp10 + tmp12;
1853 tmp25 = tmp10 - tmp12;
1857 tmp22 = tmp11 + tmp12;
1858 tmp23 = tmp11 - tmp12;
1867 tmp11 = MULTIPLY(
z2,
FIX(1.306562965));
1868 tmp14 = MULTIPLY(
z2, - FIX_0_541196100);
1871 tmp15 = MULTIPLY(tmp10 +
z4,
FIX(0.860918669));
1872 tmp12 = tmp15 + MULTIPLY(tmp10,
FIX(0.261052384));
1873 tmp10 = tmp12 + tmp11 + MULTIPLY(
z1,
FIX(0.280143716));
1874 tmp13 = MULTIPLY(
z3 +
z4, -
FIX(1.045510580));
1875 tmp12 += tmp13 + tmp14 - MULTIPLY(
z3,
FIX(1.478575242));
1876 tmp13 += tmp15 - tmp11 + MULTIPLY(
z4,
FIX(1.586706681));
1877 tmp15 += tmp14 - MULTIPLY(
z1,
FIX(0.676326758)) -
1878 MULTIPLY(
z4,
FIX(1.982889723));
1882 z3 = MULTIPLY(
z1 +
z2, FIX_0_541196100);
1883 tmp11 =
z3 + MULTIPLY(
z1, FIX_0_765366865);
1884 tmp14 =
z3 - MULTIPLY(
z2, FIX_1_847759065);
1888 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
1889 wsptr[8*11] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
1890 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
1891 wsptr[8*10] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
1892 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
1893 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
1894 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp13, CONST_BITS-PASS1_BITS);
1895 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp23 - tmp13, CONST_BITS-PASS1_BITS);
1896 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
1897 wsptr[8*7] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
1898 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp15, CONST_BITS-PASS1_BITS);
1899 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp25 - tmp15, CONST_BITS-PASS1_BITS);
1905 for (ctr = 0; ctr < 12; ctr++) {
1911 z3 = (
INT32) wsptr[0] + PASS2_OFFSET;
1914 z3 +=
ONE << (CONST_BITS-1);
1918 z4 = MULTIPLY(
z4,
FIX(1.224744871));
1924 z4 = MULTIPLY(
z1,
FIX(1.366025404));
1936 tmp20 = tmp10 + tmp12;
1937 tmp25 = tmp10 - tmp12;
1941 tmp22 = tmp11 + tmp12;
1942 tmp23 = tmp11 - tmp12;
1951 tmp11 = MULTIPLY(
z2,
FIX(1.306562965));
1952 tmp14 = MULTIPLY(
z2, - FIX_0_541196100);
1955 tmp15 = MULTIPLY(tmp10 +
z4,
FIX(0.860918669));
1956 tmp12 = tmp15 + MULTIPLY(tmp10,
FIX(0.261052384));
1957 tmp10 = tmp12 + tmp11 + MULTIPLY(
z1,
FIX(0.280143716));
1958 tmp13 = MULTIPLY(
z3 +
z4, -
FIX(1.045510580));
1959 tmp12 += tmp13 + tmp14 - MULTIPLY(
z3,
FIX(1.478575242));
1960 tmp13 += tmp15 - tmp11 + MULTIPLY(
z4,
FIX(1.586706681));
1961 tmp15 += tmp14 - MULTIPLY(
z1,
FIX(0.676326758)) -
1962 MULTIPLY(
z4,
FIX(1.982889723));
1966 z3 = MULTIPLY(
z1 +
z2, FIX_0_541196100);
1967 tmp11 =
z3 + MULTIPLY(
z1, FIX_0_765366865);
1968 tmp14 =
z3 - MULTIPLY(
z2, FIX_1_847759065);
1973 CONST_BITS+PASS2_BITS)
1976 CONST_BITS+PASS2_BITS)
1979 CONST_BITS+PASS2_BITS)
1982 CONST_BITS+PASS2_BITS)
1985 CONST_BITS+PASS2_BITS)
1988 CONST_BITS+PASS2_BITS)
1991 CONST_BITS+PASS2_BITS)
1994 CONST_BITS+PASS2_BITS)
1997 CONST_BITS+PASS2_BITS)
2000 CONST_BITS+PASS2_BITS)
2003 CONST_BITS+PASS2_BITS)
2006 CONST_BITS+PASS2_BITS)
2027 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
2028 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26;
2036 int workspace[8*13];
2044 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
2050 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
2059 tmp12 = MULTIPLY(tmp10,
FIX(1.155388986));
2060 tmp13 = MULTIPLY(tmp11,
FIX(0.096834934)) +
z1;
2062 tmp20 = MULTIPLY(
z2,
FIX(1.373119086)) + tmp12 + tmp13;
2063 tmp22 = MULTIPLY(
z2,
FIX(0.501487041)) - tmp12 + tmp13;
2065 tmp12 = MULTIPLY(tmp10,
FIX(0.316450131));
2066 tmp13 = MULTIPLY(tmp11,
FIX(0.486914739)) +
z1;
2068 tmp21 = MULTIPLY(
z2,
FIX(1.058554052)) - tmp12 + tmp13;
2069 tmp25 = MULTIPLY(
z2, -
FIX(1.252223920)) + tmp12 + tmp13;
2071 tmp12 = MULTIPLY(tmp10,
FIX(0.435816023));
2072 tmp13 = MULTIPLY(tmp11,
FIX(0.937303064)) -
z1;
2074 tmp23 = MULTIPLY(
z2, -
FIX(0.170464608)) - tmp12 - tmp13;
2075 tmp24 = MULTIPLY(
z2, -
FIX(0.803364869)) + tmp12 - tmp13;
2077 tmp26 = MULTIPLY(tmp11 -
z2,
FIX(1.414213562)) +
z1;
2086 tmp11 = MULTIPLY(
z1 +
z2,
FIX(1.322312651));
2087 tmp12 = MULTIPLY(
z1 +
z3,
FIX(1.163874945));
2089 tmp13 = MULTIPLY(tmp15,
FIX(0.937797057));
2090 tmp10 = tmp11 + tmp12 + tmp13 -
2091 MULTIPLY(
z1,
FIX(2.020082300));
2092 tmp14 = MULTIPLY(
z2 +
z3, -
FIX(0.338443458));
2093 tmp11 += tmp14 + MULTIPLY(
z2,
FIX(0.837223564));
2094 tmp12 += tmp14 - MULTIPLY(
z3,
FIX(1.572116027));
2095 tmp14 = MULTIPLY(
z2 +
z4, -
FIX(1.163874945));
2097 tmp13 += tmp14 + MULTIPLY(
z4,
FIX(2.205608352));
2098 tmp14 = MULTIPLY(
z3 +
z4, -
FIX(0.657217813));
2101 tmp15 = MULTIPLY(tmp15,
FIX(0.338443458));
2102 tmp14 = tmp15 + MULTIPLY(
z1,
FIX(0.318774355)) -
2103 MULTIPLY(
z2,
FIX(0.466105296));
2104 z1 = MULTIPLY(
z3 -
z2,
FIX(0.937797057));
2106 tmp15 +=
z1 + MULTIPLY(
z3,
FIX(0.384515595)) -
2107 MULTIPLY(
z4,
FIX(1.742345811));
2111 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
2112 wsptr[8*12] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
2113 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
2114 wsptr[8*11] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
2115 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
2116 wsptr[8*10] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
2117 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp13, CONST_BITS-PASS1_BITS);
2118 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp23 - tmp13, CONST_BITS-PASS1_BITS);
2119 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
2120 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
2121 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp15, CONST_BITS-PASS1_BITS);
2122 wsptr[8*7] = (
int)
RIGHT_SHIFT(tmp25 - tmp15, CONST_BITS-PASS1_BITS);
2129 for (ctr = 0; ctr < 13; ctr++) {
2135 z1 = (
INT32) wsptr[0] + PASS2_OFFSET;
2138 z1 +=
ONE << (CONST_BITS-1);
2148 tmp12 = MULTIPLY(tmp10,
FIX(1.155388986));
2149 tmp13 = MULTIPLY(tmp11,
FIX(0.096834934)) +
z1;
2151 tmp20 = MULTIPLY(
z2,
FIX(1.373119086)) + tmp12 + tmp13;
2152 tmp22 = MULTIPLY(
z2,
FIX(0.501487041)) - tmp12 + tmp13;
2154 tmp12 = MULTIPLY(tmp10,
FIX(0.316450131));
2155 tmp13 = MULTIPLY(tmp11,
FIX(0.486914739)) +
z1;
2157 tmp21 = MULTIPLY(
z2,
FIX(1.058554052)) - tmp12 + tmp13;
2158 tmp25 = MULTIPLY(
z2, -
FIX(1.252223920)) + tmp12 + tmp13;
2160 tmp12 = MULTIPLY(tmp10,
FIX(0.435816023));
2161 tmp13 = MULTIPLY(tmp11,
FIX(0.937303064)) -
z1;
2163 tmp23 = MULTIPLY(
z2, -
FIX(0.170464608)) - tmp12 - tmp13;
2164 tmp24 = MULTIPLY(
z2, -
FIX(0.803364869)) + tmp12 - tmp13;
2166 tmp26 = MULTIPLY(tmp11 -
z2,
FIX(1.414213562)) +
z1;
2175 tmp11 = MULTIPLY(
z1 +
z2,
FIX(1.322312651));
2176 tmp12 = MULTIPLY(
z1 +
z3,
FIX(1.163874945));
2178 tmp13 = MULTIPLY(tmp15,
FIX(0.937797057));
2179 tmp10 = tmp11 + tmp12 + tmp13 -
2180 MULTIPLY(
z1,
FIX(2.020082300));
2181 tmp14 = MULTIPLY(
z2 +
z3, -
FIX(0.338443458));
2182 tmp11 += tmp14 + MULTIPLY(
z2,
FIX(0.837223564));
2183 tmp12 += tmp14 - MULTIPLY(
z3,
FIX(1.572116027));
2184 tmp14 = MULTIPLY(
z2 +
z4, -
FIX(1.163874945));
2186 tmp13 += tmp14 + MULTIPLY(
z4,
FIX(2.205608352));
2187 tmp14 = MULTIPLY(
z3 +
z4, -
FIX(0.657217813));
2190 tmp15 = MULTIPLY(tmp15,
FIX(0.338443458));
2191 tmp14 = tmp15 + MULTIPLY(
z1,
FIX(0.318774355)) -
2192 MULTIPLY(
z2,
FIX(0.466105296));
2193 z1 = MULTIPLY(
z3 -
z2,
FIX(0.937797057));
2195 tmp15 +=
z1 + MULTIPLY(
z3,
FIX(0.384515595)) -
2196 MULTIPLY(
z4,
FIX(1.742345811));
2201 CONST_BITS+PASS2_BITS)
2204 CONST_BITS+PASS2_BITS)
2207 CONST_BITS+PASS2_BITS)
2210 CONST_BITS+PASS2_BITS)
2213 CONST_BITS+PASS2_BITS)
2216 CONST_BITS+PASS2_BITS)
2219 CONST_BITS+PASS2_BITS)
2222 CONST_BITS+PASS2_BITS)
2225 CONST_BITS+PASS2_BITS)
2228 CONST_BITS+PASS2_BITS)
2231 CONST_BITS+PASS2_BITS)
2234 CONST_BITS+PASS2_BITS)
2237 CONST_BITS+PASS2_BITS)
2258 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
2259 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26;
2267 int workspace[8*14];
2275 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
2281 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
2283 z2 = MULTIPLY(
z4,
FIX(1.274162392));
2284 z3 = MULTIPLY(
z4,
FIX(0.314692123));
2285 z4 = MULTIPLY(
z4,
FIX(0.881747734));
2292 CONST_BITS-PASS1_BITS);
2297 z3 = MULTIPLY(
z1 +
z2,
FIX(1.105676686));
2299 tmp13 =
z3 + MULTIPLY(
z1,
FIX(0.273079590));
2300 tmp14 =
z3 - MULTIPLY(
z2,
FIX(1.719280954));
2301 tmp15 = MULTIPLY(
z1,
FIX(0.613604268)) -
2302 MULTIPLY(
z2,
FIX(1.378756276));
2304 tmp20 = tmp10 + tmp13;
2305 tmp26 = tmp10 - tmp13;
2306 tmp21 = tmp11 + tmp14;
2307 tmp25 = tmp11 - tmp14;
2308 tmp22 = tmp12 + tmp15;
2309 tmp24 = tmp12 - tmp15;
2317 tmp13 =
z4 << CONST_BITS;
2320 tmp11 = MULTIPLY(
z1 +
z2,
FIX(1.334852607));
2321 tmp12 = MULTIPLY(tmp14,
FIX(1.197448846));
2322 tmp10 = tmp11 + tmp12 + tmp13 - MULTIPLY(
z1,
FIX(1.126980169));
2323 tmp14 = MULTIPLY(tmp14,
FIX(0.752406978));
2324 tmp16 = tmp14 - MULTIPLY(
z1,
FIX(1.061150426));
2326 tmp15 = MULTIPLY(
z1,
FIX(0.467085129)) - tmp13;
2329 z4 = MULTIPLY(
z2 +
z3, -
FIX(0.158341681)) - tmp13;
2330 tmp11 +=
z4 - MULTIPLY(
z2,
FIX(0.424103948));
2331 tmp12 +=
z4 - MULTIPLY(
z3,
FIX(2.373959773));
2332 z4 = MULTIPLY(
z3 -
z2,
FIX(1.405321284));
2333 tmp14 +=
z4 + tmp13 - MULTIPLY(
z3,
FIX(1.6906431334));
2334 tmp15 +=
z4 + MULTIPLY(
z2,
FIX(0.674957567));
2337 tmp13 = (
z1 -
z3) << PASS1_BITS;
2344 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
2345 wsptr[8*13] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
2346 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
2347 wsptr[8*12] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
2348 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
2349 wsptr[8*11] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
2350 wsptr[8*3] = (
int) (tmp23 + tmp13);
2351 wsptr[8*10] = (
int) (tmp23 - tmp13);
2352 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
2353 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
2354 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp15, CONST_BITS-PASS1_BITS);
2355 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp25 - tmp15, CONST_BITS-PASS1_BITS);
2356 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp26 + tmp16, CONST_BITS-PASS1_BITS);
2357 wsptr[8*7] = (
int)
RIGHT_SHIFT(tmp26 - tmp16, CONST_BITS-PASS1_BITS);
2363 for (ctr = 0; ctr < 14; ctr++) {
2369 z1 = (
INT32) wsptr[0] + PASS2_OFFSET;
2372 z1 +=
ONE << (CONST_BITS-1);
2375 z2 = MULTIPLY(
z4,
FIX(1.274162392));
2376 z3 = MULTIPLY(
z4,
FIX(0.314692123));
2377 z4 = MULTIPLY(
z4,
FIX(0.881747734));
2383 tmp23 =
z1 - ((
z2 +
z3 -
z4) << 1);
2388 z3 = MULTIPLY(
z1 +
z2,
FIX(1.105676686));
2390 tmp13 =
z3 + MULTIPLY(
z1,
FIX(0.273079590));
2391 tmp14 =
z3 - MULTIPLY(
z2,
FIX(1.719280954));
2392 tmp15 = MULTIPLY(
z1,
FIX(0.613604268)) -
2393 MULTIPLY(
z2,
FIX(1.378756276));
2395 tmp20 = tmp10 + tmp13;
2396 tmp26 = tmp10 - tmp13;
2397 tmp21 = tmp11 + tmp14;
2398 tmp25 = tmp11 - tmp14;
2399 tmp22 = tmp12 + tmp15;
2400 tmp24 = tmp12 - tmp15;
2411 tmp11 = MULTIPLY(
z1 +
z2,
FIX(1.334852607));
2412 tmp12 = MULTIPLY(tmp14,
FIX(1.197448846));
2413 tmp10 = tmp11 + tmp12 +
z4 - MULTIPLY(
z1,
FIX(1.126980169));
2414 tmp14 = MULTIPLY(tmp14,
FIX(0.752406978));
2415 tmp16 = tmp14 - MULTIPLY(
z1,
FIX(1.061150426));
2417 tmp15 = MULTIPLY(
z1,
FIX(0.467085129)) -
z4;
2419 tmp13 = MULTIPLY(
z2 +
z3, -
FIX(0.158341681)) -
z4;
2420 tmp11 += tmp13 - MULTIPLY(
z2,
FIX(0.424103948));
2421 tmp12 += tmp13 - MULTIPLY(
z3,
FIX(2.373959773));
2422 tmp13 = MULTIPLY(
z3 -
z2,
FIX(1.405321284));
2423 tmp14 += tmp13 +
z4 - MULTIPLY(
z3,
FIX(1.6906431334));
2424 tmp15 += tmp13 + MULTIPLY(
z2,
FIX(0.674957567));
2426 tmp13 = ((
z1 -
z3) << CONST_BITS) +
z4;
2431 CONST_BITS+PASS2_BITS)
2434 CONST_BITS+PASS2_BITS)
2437 CONST_BITS+PASS2_BITS)
2440 CONST_BITS+PASS2_BITS)
2443 CONST_BITS+PASS2_BITS)
2446 CONST_BITS+PASS2_BITS)
2449 CONST_BITS+PASS2_BITS)
2452 CONST_BITS+PASS2_BITS)
2455 CONST_BITS+PASS2_BITS)
2458 CONST_BITS+PASS2_BITS)
2461 CONST_BITS+PASS2_BITS)
2464 CONST_BITS+PASS2_BITS)
2467 CONST_BITS+PASS2_BITS)
2470 CONST_BITS+PASS2_BITS)
2491 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
2492 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27;
2500 int workspace[8*15];
2508 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
2514 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
2520 tmp10 = MULTIPLY(
z4,
FIX(0.437016024));
2521 tmp11 = MULTIPLY(
z4,
FIX(1.144122806));
2525 z1 -= (tmp11 - tmp10) << 1;
2529 tmp10 = MULTIPLY(
z3,
FIX(1.337628990));
2530 tmp11 = MULTIPLY(
z4,
FIX(0.045680613));
2531 z2 = MULTIPLY(
z2,
FIX(1.439773946));
2533 tmp20 = tmp13 + tmp10 + tmp11;
2534 tmp23 = tmp12 - tmp10 + tmp11 +
z2;
2536 tmp10 = MULTIPLY(
z3,
FIX(0.547059574));
2537 tmp11 = MULTIPLY(
z4,
FIX(0.399234004));
2539 tmp25 = tmp13 - tmp10 - tmp11;
2540 tmp26 = tmp12 + tmp10 - tmp11 -
z2;
2542 tmp10 = MULTIPLY(
z3,
FIX(0.790569415));
2543 tmp11 = MULTIPLY(
z4,
FIX(0.353553391));
2545 tmp21 = tmp12 + tmp10 + tmp11;
2546 tmp24 = tmp13 - tmp10 + tmp11;
2549 tmp27 =
z1 - tmp11 - tmp11;
2556 z3 = MULTIPLY(
z4,
FIX(1.224744871));
2560 tmp15 = MULTIPLY(
z1 + tmp13,
FIX(0.831253876));
2561 tmp11 = tmp15 + MULTIPLY(
z1,
FIX(0.513743148));
2562 tmp14 = tmp15 - MULTIPLY(tmp13,
FIX(2.176250899));
2564 tmp13 = MULTIPLY(
z2, -
FIX(0.831253876));
2565 tmp15 = MULTIPLY(
z2, -
FIX(1.344997024));
2567 tmp12 =
z3 + MULTIPLY(
z2,
FIX(1.406466353));
2569 tmp10 = tmp12 + MULTIPLY(
z4,
FIX(2.457431844)) - tmp15;
2570 tmp16 = tmp12 - MULTIPLY(
z1,
FIX(1.112434820)) + tmp13;
2571 tmp12 = MULTIPLY(
z2,
FIX(1.224744871)) -
z3;
2572 z2 = MULTIPLY(
z1 +
z4,
FIX(0.575212477));
2573 tmp13 +=
z2 + MULTIPLY(
z1,
FIX(0.475753014)) -
z3;
2574 tmp15 +=
z2 - MULTIPLY(
z4,
FIX(0.869244010)) +
z3;
2578 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
2579 wsptr[8*14] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
2580 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
2581 wsptr[8*13] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
2582 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
2583 wsptr[8*12] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
2584 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp13, CONST_BITS-PASS1_BITS);
2585 wsptr[8*11] = (
int)
RIGHT_SHIFT(tmp23 - tmp13, CONST_BITS-PASS1_BITS);
2586 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
2587 wsptr[8*10] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
2588 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp15, CONST_BITS-PASS1_BITS);
2589 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp25 - tmp15, CONST_BITS-PASS1_BITS);
2590 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp26 + tmp16, CONST_BITS-PASS1_BITS);
2591 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp26 - tmp16, CONST_BITS-PASS1_BITS);
2598 for (ctr = 0; ctr < 15; ctr++) {
2604 z1 = (
INT32) wsptr[0] + PASS2_OFFSET;
2607 z1 +=
ONE << (CONST_BITS-1);
2614 tmp10 = MULTIPLY(
z4,
FIX(0.437016024));
2615 tmp11 = MULTIPLY(
z4,
FIX(1.144122806));
2619 z1 -= (tmp11 - tmp10) << 1;
2623 tmp10 = MULTIPLY(
z3,
FIX(1.337628990));
2624 tmp11 = MULTIPLY(
z4,
FIX(0.045680613));
2625 z2 = MULTIPLY(
z2,
FIX(1.439773946));
2627 tmp20 = tmp13 + tmp10 + tmp11;
2628 tmp23 = tmp12 - tmp10 + tmp11 +
z2;
2630 tmp10 = MULTIPLY(
z3,
FIX(0.547059574));
2631 tmp11 = MULTIPLY(
z4,
FIX(0.399234004));
2633 tmp25 = tmp13 - tmp10 - tmp11;
2634 tmp26 = tmp12 + tmp10 - tmp11 -
z2;
2636 tmp10 = MULTIPLY(
z3,
FIX(0.790569415));
2637 tmp11 = MULTIPLY(
z4,
FIX(0.353553391));
2639 tmp21 = tmp12 + tmp10 + tmp11;
2640 tmp24 = tmp13 - tmp10 + tmp11;
2643 tmp27 =
z1 - tmp11 - tmp11;
2650 z3 = MULTIPLY(
z4,
FIX(1.224744871));
2654 tmp15 = MULTIPLY(
z1 + tmp13,
FIX(0.831253876));
2655 tmp11 = tmp15 + MULTIPLY(
z1,
FIX(0.513743148));
2656 tmp14 = tmp15 - MULTIPLY(tmp13,
FIX(2.176250899));
2658 tmp13 = MULTIPLY(
z2, -
FIX(0.831253876));
2659 tmp15 = MULTIPLY(
z2, -
FIX(1.344997024));
2661 tmp12 =
z3 + MULTIPLY(
z2,
FIX(1.406466353));
2663 tmp10 = tmp12 + MULTIPLY(
z4,
FIX(2.457431844)) - tmp15;
2664 tmp16 = tmp12 - MULTIPLY(
z1,
FIX(1.112434820)) + tmp13;
2665 tmp12 = MULTIPLY(
z2,
FIX(1.224744871)) -
z3;
2666 z2 = MULTIPLY(
z1 +
z4,
FIX(0.575212477));
2667 tmp13 +=
z2 + MULTIPLY(
z1,
FIX(0.475753014)) -
z3;
2668 tmp15 +=
z2 - MULTIPLY(
z4,
FIX(0.869244010)) +
z3;
2673 CONST_BITS+PASS2_BITS)
2676 CONST_BITS+PASS2_BITS)
2679 CONST_BITS+PASS2_BITS)
2682 CONST_BITS+PASS2_BITS)
2685 CONST_BITS+PASS2_BITS)
2688 CONST_BITS+PASS2_BITS)
2691 CONST_BITS+PASS2_BITS)
2694 CONST_BITS+PASS2_BITS)
2697 CONST_BITS+PASS2_BITS)
2700 CONST_BITS+PASS2_BITS)
2703 CONST_BITS+PASS2_BITS)
2706 CONST_BITS+PASS2_BITS)
2709 CONST_BITS+PASS2_BITS)
2712 CONST_BITS+PASS2_BITS)
2715 CONST_BITS+PASS2_BITS)
2736 INT32 tmp0, tmp1, tmp2, tmp3, tmp10, tmp11, tmp12, tmp13;
2737 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27;
2745 int workspace[8*16];
2753 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
2757 tmp0 <<= CONST_BITS;
2759 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-1);
2762 tmp1 = MULTIPLY(
z1,
FIX(1.306562965));
2763 tmp2 = MULTIPLY(
z1, FIX_0_541196100);
2765 tmp10 = tmp0 + tmp1;
2766 tmp11 = tmp0 - tmp1;
2767 tmp12 = tmp0 + tmp2;
2768 tmp13 = tmp0 - tmp2;
2773 z4 = MULTIPLY(
z3,
FIX(0.275899379));
2774 z3 = MULTIPLY(
z3,
FIX(1.387039845));
2776 tmp0 =
z3 + MULTIPLY(
z2, FIX_2_562915447);
2777 tmp1 =
z4 + MULTIPLY(
z1, FIX_0_899976223);
2778 tmp2 =
z3 - MULTIPLY(
z1,
FIX(0.601344887));
2779 tmp3 =
z4 - MULTIPLY(
z2,
FIX(0.509795579));
2781 tmp20 = tmp10 + tmp0;
2782 tmp27 = tmp10 - tmp0;
2783 tmp21 = tmp12 + tmp1;
2784 tmp26 = tmp12 - tmp1;
2785 tmp22 = tmp13 + tmp2;
2786 tmp25 = tmp13 - tmp2;
2787 tmp23 = tmp11 + tmp3;
2788 tmp24 = tmp11 - tmp3;
2799 tmp1 = MULTIPLY(
z1 +
z2,
FIX(1.353318001));
2800 tmp2 = MULTIPLY(tmp11,
FIX(1.247225013));
2801 tmp3 = MULTIPLY(
z1 +
z4,
FIX(1.093201867));
2802 tmp10 = MULTIPLY(
z1 -
z4,
FIX(0.897167586));
2803 tmp11 = MULTIPLY(tmp11,
FIX(0.666655658));
2804 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.410524528));
2805 tmp0 = tmp1 + tmp2 + tmp3 -
2806 MULTIPLY(
z1,
FIX(2.286341144));
2807 tmp13 = tmp10 + tmp11 + tmp12 -
2808 MULTIPLY(
z1,
FIX(1.835730603));
2809 z1 = MULTIPLY(
z2 +
z3,
FIX(0.138617169));
2810 tmp1 +=
z1 + MULTIPLY(
z2,
FIX(0.071888074));
2811 tmp2 +=
z1 - MULTIPLY(
z3,
FIX(1.125726048));
2812 z1 = MULTIPLY(
z3 -
z2,
FIX(1.407403738));
2813 tmp11 +=
z1 - MULTIPLY(
z3,
FIX(0.766367282));
2814 tmp12 +=
z1 + MULTIPLY(
z2,
FIX(1.971951411));
2816 z1 = MULTIPLY(
z2, -
FIX(0.666655658));
2818 tmp3 +=
z1 + MULTIPLY(
z4,
FIX(1.065388962));
2819 z2 = MULTIPLY(
z2, -
FIX(1.247225013));
2820 tmp10 +=
z2 + MULTIPLY(
z4,
FIX(3.141271809));
2822 z2 = MULTIPLY(
z3 +
z4, -
FIX(1.353318001));
2825 z2 = MULTIPLY(
z4 -
z3,
FIX(0.410524528));
2831 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp0, CONST_BITS-PASS1_BITS);
2832 wsptr[8*15] = (
int)
RIGHT_SHIFT(tmp20 - tmp0, CONST_BITS-PASS1_BITS);
2833 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp1, CONST_BITS-PASS1_BITS);
2834 wsptr[8*14] = (
int)
RIGHT_SHIFT(tmp21 - tmp1, CONST_BITS-PASS1_BITS);
2835 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp2, CONST_BITS-PASS1_BITS);
2836 wsptr[8*13] = (
int)
RIGHT_SHIFT(tmp22 - tmp2, CONST_BITS-PASS1_BITS);
2837 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp3, CONST_BITS-PASS1_BITS);
2838 wsptr[8*12] = (
int)
RIGHT_SHIFT(tmp23 - tmp3, CONST_BITS-PASS1_BITS);
2839 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp10, CONST_BITS-PASS1_BITS);
2840 wsptr[8*11] = (
int)
RIGHT_SHIFT(tmp24 - tmp10, CONST_BITS-PASS1_BITS);
2841 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp11, CONST_BITS-PASS1_BITS);
2842 wsptr[8*10] = (
int)
RIGHT_SHIFT(tmp25 - tmp11, CONST_BITS-PASS1_BITS);
2843 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp26 + tmp12, CONST_BITS-PASS1_BITS);
2844 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp26 - tmp12, CONST_BITS-PASS1_BITS);
2845 wsptr[8*7] = (
int)
RIGHT_SHIFT(tmp27 + tmp13, CONST_BITS-PASS1_BITS);
2846 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp27 - tmp13, CONST_BITS-PASS1_BITS);
2852 for (ctr = 0; ctr < 16; ctr++) {
2858 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
2859 tmp0 <<= CONST_BITS;
2861 tmp0 +=
ONE << (CONST_BITS-1);
2865 tmp1 = MULTIPLY(
z1,
FIX(1.306562965));
2866 tmp2 = MULTIPLY(
z1, FIX_0_541196100);
2868 tmp10 = tmp0 + tmp1;
2869 tmp11 = tmp0 - tmp1;
2870 tmp12 = tmp0 + tmp2;
2871 tmp13 = tmp0 - tmp2;
2876 z4 = MULTIPLY(
z3,
FIX(0.275899379));
2877 z3 = MULTIPLY(
z3,
FIX(1.387039845));
2879 tmp0 =
z3 + MULTIPLY(
z2, FIX_2_562915447);
2880 tmp1 =
z4 + MULTIPLY(
z1, FIX_0_899976223);
2881 tmp2 =
z3 - MULTIPLY(
z1,
FIX(0.601344887));
2882 tmp3 =
z4 - MULTIPLY(
z2,
FIX(0.509795579));
2884 tmp20 = tmp10 + tmp0;
2885 tmp27 = tmp10 - tmp0;
2886 tmp21 = tmp12 + tmp1;
2887 tmp26 = tmp12 - tmp1;
2888 tmp22 = tmp13 + tmp2;
2889 tmp25 = tmp13 - tmp2;
2890 tmp23 = tmp11 + tmp3;
2891 tmp24 = tmp11 - tmp3;
2902 tmp1 = MULTIPLY(
z1 +
z2,
FIX(1.353318001));
2903 tmp2 = MULTIPLY(tmp11,
FIX(1.247225013));
2904 tmp3 = MULTIPLY(
z1 +
z4,
FIX(1.093201867));
2905 tmp10 = MULTIPLY(
z1 -
z4,
FIX(0.897167586));
2906 tmp11 = MULTIPLY(tmp11,
FIX(0.666655658));
2907 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.410524528));
2908 tmp0 = tmp1 + tmp2 + tmp3 -
2909 MULTIPLY(
z1,
FIX(2.286341144));
2910 tmp13 = tmp10 + tmp11 + tmp12 -
2911 MULTIPLY(
z1,
FIX(1.835730603));
2912 z1 = MULTIPLY(
z2 +
z3,
FIX(0.138617169));
2913 tmp1 +=
z1 + MULTIPLY(
z2,
FIX(0.071888074));
2914 tmp2 +=
z1 - MULTIPLY(
z3,
FIX(1.125726048));
2915 z1 = MULTIPLY(
z3 -
z2,
FIX(1.407403738));
2916 tmp11 +=
z1 - MULTIPLY(
z3,
FIX(0.766367282));
2917 tmp12 +=
z1 + MULTIPLY(
z2,
FIX(1.971951411));
2919 z1 = MULTIPLY(
z2, -
FIX(0.666655658));
2921 tmp3 +=
z1 + MULTIPLY(
z4,
FIX(1.065388962));
2922 z2 = MULTIPLY(
z2, -
FIX(1.247225013));
2923 tmp10 +=
z2 + MULTIPLY(
z4,
FIX(3.141271809));
2925 z2 = MULTIPLY(
z3 +
z4, -
FIX(1.353318001));
2928 z2 = MULTIPLY(
z4 -
z3,
FIX(0.410524528));
2935 CONST_BITS+PASS2_BITS)
2938 CONST_BITS+PASS2_BITS)
2941 CONST_BITS+PASS2_BITS)
2944 CONST_BITS+PASS2_BITS)
2947 CONST_BITS+PASS2_BITS)
2950 CONST_BITS+PASS2_BITS)
2953 CONST_BITS+PASS2_BITS)
2956 CONST_BITS+PASS2_BITS)
2959 CONST_BITS+PASS2_BITS)
2962 CONST_BITS+PASS2_BITS)
2965 CONST_BITS+PASS2_BITS)
2968 CONST_BITS+PASS2_BITS)
2971 CONST_BITS+PASS2_BITS)
2974 CONST_BITS+PASS2_BITS)
2977 CONST_BITS+PASS2_BITS)
2980 CONST_BITS+PASS2_BITS)
3000 INT32 tmp0, tmp1, tmp2, tmp3, tmp10, tmp11, tmp12, tmp13;
3001 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27;
3037 int dcval = DEQUANTIZE(inptr[
DCTSIZE*0], quantptr[
DCTSIZE*0]) << PASS1_BITS;
3066 z2 +=
ONE << (CONST_BITS-PASS1_BITS-1);
3074 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
3075 tmp2 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
3076 tmp3 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
3078 tmp10 = tmp0 + tmp2;
3079 tmp13 = tmp0 - tmp2;
3080 tmp11 = tmp1 + tmp3;
3081 tmp12 = tmp1 - tmp3;
3095 z1 = MULTIPLY(
z2 +
z3, FIX_1_175875602);
3096 z2 = MULTIPLY(
z2, - FIX_1_961570560);
3097 z3 = MULTIPLY(
z3, - FIX_0_390180644);
3101 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
3102 tmp0 = MULTIPLY(tmp0, FIX_0_298631336);
3103 tmp3 = MULTIPLY(tmp3, FIX_1_501321110);
3107 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
3108 tmp1 = MULTIPLY(tmp1, FIX_2_053119869);
3109 tmp2 = MULTIPLY(tmp2, FIX_3_072711026);
3134 for (ctr = 0; ctr < 8; ctr++) {
3140 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
3141 tmp0 <<= CONST_BITS;
3143 tmp0 +=
ONE << (CONST_BITS-1);
3147 tmp1 = MULTIPLY(
z1,
FIX(1.306562965));
3148 tmp2 = MULTIPLY(
z1, FIX_0_541196100);
3150 tmp10 = tmp0 + tmp1;
3151 tmp11 = tmp0 - tmp1;
3152 tmp12 = tmp0 + tmp2;
3153 tmp13 = tmp0 - tmp2;
3158 z4 = MULTIPLY(
z3,
FIX(0.275899379));
3159 z3 = MULTIPLY(
z3,
FIX(1.387039845));
3161 tmp0 =
z3 + MULTIPLY(
z2, FIX_2_562915447);
3162 tmp1 =
z4 + MULTIPLY(
z1, FIX_0_899976223);
3163 tmp2 =
z3 - MULTIPLY(
z1,
FIX(0.601344887));
3164 tmp3 =
z4 - MULTIPLY(
z2,
FIX(0.509795579));
3166 tmp20 = tmp10 + tmp0;
3167 tmp27 = tmp10 - tmp0;
3168 tmp21 = tmp12 + tmp1;
3169 tmp26 = tmp12 - tmp1;
3170 tmp22 = tmp13 + tmp2;
3171 tmp25 = tmp13 - tmp2;
3172 tmp23 = tmp11 + tmp3;
3173 tmp24 = tmp11 - tmp3;
3184 tmp1 = MULTIPLY(
z1 +
z2,
FIX(1.353318001));
3185 tmp2 = MULTIPLY(tmp11,
FIX(1.247225013));
3186 tmp3 = MULTIPLY(
z1 +
z4,
FIX(1.093201867));
3187 tmp10 = MULTIPLY(
z1 -
z4,
FIX(0.897167586));
3188 tmp11 = MULTIPLY(tmp11,
FIX(0.666655658));
3189 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.410524528));
3190 tmp0 = tmp1 + tmp2 + tmp3 -
3191 MULTIPLY(
z1,
FIX(2.286341144));
3192 tmp13 = tmp10 + tmp11 + tmp12 -
3193 MULTIPLY(
z1,
FIX(1.835730603));
3194 z1 = MULTIPLY(
z2 +
z3,
FIX(0.138617169));
3195 tmp1 +=
z1 + MULTIPLY(
z2,
FIX(0.071888074));
3196 tmp2 +=
z1 - MULTIPLY(
z3,
FIX(1.125726048));
3197 z1 = MULTIPLY(
z3 -
z2,
FIX(1.407403738));
3198 tmp11 +=
z1 - MULTIPLY(
z3,
FIX(0.766367282));
3199 tmp12 +=
z1 + MULTIPLY(
z2,
FIX(1.971951411));
3201 z1 = MULTIPLY(
z2, -
FIX(0.666655658));
3203 tmp3 +=
z1 + MULTIPLY(
z4,
FIX(1.065388962));
3204 z2 = MULTIPLY(
z2, -
FIX(1.247225013));
3205 tmp10 +=
z2 + MULTIPLY(
z4,
FIX(3.141271809));
3207 z2 = MULTIPLY(
z3 +
z4, -
FIX(1.353318001));
3210 z2 = MULTIPLY(
z4 -
z3,
FIX(0.410524528));
3217 CONST_BITS+PASS2_BITS)
3220 CONST_BITS+PASS2_BITS)
3223 CONST_BITS+PASS2_BITS)
3226 CONST_BITS+PASS2_BITS)
3229 CONST_BITS+PASS2_BITS)
3232 CONST_BITS+PASS2_BITS)
3235 CONST_BITS+PASS2_BITS)
3238 CONST_BITS+PASS2_BITS)
3241 CONST_BITS+PASS2_BITS)
3244 CONST_BITS+PASS2_BITS)
3247 CONST_BITS+PASS2_BITS)
3250 CONST_BITS+PASS2_BITS)
3253 CONST_BITS+PASS2_BITS)
3256 CONST_BITS+PASS2_BITS)
3259 CONST_BITS+PASS2_BITS)
3262 CONST_BITS+PASS2_BITS)
3282 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
3283 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26;
3301 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
3305 tmp23 <<= CONST_BITS;
3307 tmp23 +=
ONE << (CONST_BITS-PASS1_BITS-1);
3313 tmp20 = MULTIPLY(
z2 -
z3,
FIX(0.881747734));
3314 tmp22 = MULTIPLY(
z1 -
z2,
FIX(0.314692123));
3315 tmp21 = tmp20 + tmp22 + tmp23 - MULTIPLY(
z2,
FIX(1.841218003));
3318 tmp10 = MULTIPLY(tmp10,
FIX(1.274162392)) + tmp23;
3319 tmp20 += tmp10 - MULTIPLY(
z3,
FIX(0.077722536));
3320 tmp22 += tmp10 - MULTIPLY(
z1,
FIX(2.470602249));
3321 tmp23 += MULTIPLY(
z2,
FIX(1.414213562));
3329 tmp11 = MULTIPLY(
z1 +
z2,
FIX(0.935414347));
3330 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.170262339));
3331 tmp10 = tmp11 - tmp12;
3333 tmp12 = MULTIPLY(
z2 +
z3, -
FIX(1.378756276));
3335 z2 = MULTIPLY(
z1 +
z3,
FIX(0.613604268));
3337 tmp12 +=
z2 + MULTIPLY(
z3,
FIX(1.870828693));
3341 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
3342 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
3343 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
3344 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
3345 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
3346 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
3355 for (ctr = 0; ctr < 7; ctr++) {
3361 z1 = (
INT32) wsptr[0] + PASS2_OFFSET;
3364 z1 +=
ONE << (CONST_BITS-1);
3367 z2 = MULTIPLY(
z4,
FIX(1.274162392));
3368 z3 = MULTIPLY(
z4,
FIX(0.314692123));
3369 z4 = MULTIPLY(
z4,
FIX(0.881747734));
3375 tmp23 =
z1 - ((
z2 +
z3 -
z4) << 1);
3380 z3 = MULTIPLY(
z1 +
z2,
FIX(1.105676686));
3382 tmp13 =
z3 + MULTIPLY(
z1,
FIX(0.273079590));
3383 tmp14 =
z3 - MULTIPLY(
z2,
FIX(1.719280954));
3384 tmp15 = MULTIPLY(
z1,
FIX(0.613604268)) -
3385 MULTIPLY(
z2,
FIX(1.378756276));
3387 tmp20 = tmp10 + tmp13;
3388 tmp26 = tmp10 - tmp13;
3389 tmp21 = tmp11 + tmp14;
3390 tmp25 = tmp11 - tmp14;
3391 tmp22 = tmp12 + tmp15;
3392 tmp24 = tmp12 - tmp15;
3403 tmp11 = MULTIPLY(
z1 +
z2,
FIX(1.334852607));
3404 tmp12 = MULTIPLY(tmp14,
FIX(1.197448846));
3405 tmp10 = tmp11 + tmp12 +
z4 - MULTIPLY(
z1,
FIX(1.126980169));
3406 tmp14 = MULTIPLY(tmp14,
FIX(0.752406978));
3407 tmp16 = tmp14 - MULTIPLY(
z1,
FIX(1.061150426));
3409 tmp15 = MULTIPLY(
z1,
FIX(0.467085129)) -
z4;
3411 tmp13 = MULTIPLY(
z2 +
z3, -
FIX(0.158341681)) -
z4;
3412 tmp11 += tmp13 - MULTIPLY(
z2,
FIX(0.424103948));
3413 tmp12 += tmp13 - MULTIPLY(
z3,
FIX(2.373959773));
3414 tmp13 = MULTIPLY(
z3 -
z2,
FIX(1.405321284));
3415 tmp14 += tmp13 +
z4 - MULTIPLY(
z3,
FIX(1.6906431334));
3416 tmp15 += tmp13 + MULTIPLY(
z2,
FIX(0.674957567));
3418 tmp13 = ((
z1 -
z3) << CONST_BITS) +
z4;
3423 CONST_BITS+PASS2_BITS)
3426 CONST_BITS+PASS2_BITS)
3429 CONST_BITS+PASS2_BITS)
3432 CONST_BITS+PASS2_BITS)
3435 CONST_BITS+PASS2_BITS)
3438 CONST_BITS+PASS2_BITS)
3441 CONST_BITS+PASS2_BITS)
3444 CONST_BITS+PASS2_BITS)
3447 CONST_BITS+PASS2_BITS)
3450 CONST_BITS+PASS2_BITS)
3453 CONST_BITS+PASS2_BITS)
3456 CONST_BITS+PASS2_BITS)
3459 CONST_BITS+PASS2_BITS)
3462 CONST_BITS+PASS2_BITS)
3482 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
3483 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25;
3501 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
3505 tmp10 <<= CONST_BITS;
3507 tmp10 +=
ONE << (CONST_BITS-PASS1_BITS-1);
3509 tmp20 = MULTIPLY(tmp12,
FIX(0.707106781));
3510 tmp11 = tmp10 + tmp20;
3511 tmp21 =
RIGHT_SHIFT(tmp10 - tmp20 - tmp20, CONST_BITS-PASS1_BITS);
3513 tmp10 = MULTIPLY(tmp20,
FIX(1.224744871));
3514 tmp20 = tmp11 + tmp10;
3515 tmp22 = tmp11 - tmp10;
3522 tmp11 = MULTIPLY(
z1 +
z3,
FIX(0.366025404));
3523 tmp10 = tmp11 + ((
z1 +
z2) << CONST_BITS);
3524 tmp12 = tmp11 + ((
z3 -
z2) << CONST_BITS);
3526 tmp11 = (
z1 -
z2 -
z3) << PASS1_BITS;
3533 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
3534 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
3535 wsptr[8*1] = (
int) (tmp21 + tmp11);
3536 wsptr[8*4] = (
int) (tmp21 - tmp11);
3537 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
3538 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
3546 for (ctr = 0; ctr < 6; ctr++) {
3552 z3 = (
INT32) wsptr[0] + PASS2_OFFSET;
3555 z3 +=
ONE << (CONST_BITS-1);
3559 z4 = MULTIPLY(
z4,
FIX(1.224744871));
3565 z4 = MULTIPLY(
z1,
FIX(1.366025404));
3577 tmp20 = tmp10 + tmp12;
3578 tmp25 = tmp10 - tmp12;
3582 tmp22 = tmp11 + tmp12;
3583 tmp23 = tmp11 - tmp12;
3592 tmp11 = MULTIPLY(
z2,
FIX(1.306562965));
3593 tmp14 = MULTIPLY(
z2, - FIX_0_541196100);
3596 tmp15 = MULTIPLY(tmp10 +
z4,
FIX(0.860918669));
3597 tmp12 = tmp15 + MULTIPLY(tmp10,
FIX(0.261052384));
3598 tmp10 = tmp12 + tmp11 + MULTIPLY(
z1,
FIX(0.280143716));
3599 tmp13 = MULTIPLY(
z3 +
z4, -
FIX(1.045510580));
3600 tmp12 += tmp13 + tmp14 - MULTIPLY(
z3,
FIX(1.478575242));
3601 tmp13 += tmp15 - tmp11 + MULTIPLY(
z4,
FIX(1.586706681));
3602 tmp15 += tmp14 - MULTIPLY(
z1,
FIX(0.676326758)) -
3603 MULTIPLY(
z4,
FIX(1.982889723));
3607 z3 = MULTIPLY(
z1 +
z2, FIX_0_541196100);
3608 tmp11 =
z3 + MULTIPLY(
z1, FIX_0_765366865);
3609 tmp14 =
z3 - MULTIPLY(
z2, FIX_1_847759065);
3614 CONST_BITS+PASS2_BITS)
3617 CONST_BITS+PASS2_BITS)
3620 CONST_BITS+PASS2_BITS)
3623 CONST_BITS+PASS2_BITS)
3626 CONST_BITS+PASS2_BITS)
3629 CONST_BITS+PASS2_BITS)
3632 CONST_BITS+PASS2_BITS)
3635 CONST_BITS+PASS2_BITS)
3638 CONST_BITS+PASS2_BITS)
3641 CONST_BITS+PASS2_BITS)
3644 CONST_BITS+PASS2_BITS)
3647 CONST_BITS+PASS2_BITS)
3667 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
3668 INT32 tmp20, tmp21, tmp22, tmp23, tmp24;
3686 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
3690 tmp12 <<= CONST_BITS;
3692 tmp12 +=
ONE << (CONST_BITS-PASS1_BITS-1);
3695 z1 = MULTIPLY(tmp13 + tmp14,
FIX(0.790569415));
3696 z2 = MULTIPLY(tmp13 - tmp14,
FIX(0.353553391));
3707 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
3708 tmp13 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
3709 tmp14 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
3713 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp13, CONST_BITS-PASS1_BITS);
3714 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp10 - tmp13, CONST_BITS-PASS1_BITS);
3715 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp11 + tmp14, CONST_BITS-PASS1_BITS);
3716 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp11 - tmp14, CONST_BITS-PASS1_BITS);
3725 for (ctr = 0; ctr < 5; ctr++) {
3731 z3 = (
INT32) wsptr[0] + PASS2_OFFSET;
3734 z3 +=
ONE << (CONST_BITS-1);
3737 z1 = MULTIPLY(
z4,
FIX(1.144122806));
3738 z2 = MULTIPLY(
z4,
FIX(0.437016024));
3742 tmp22 =
z3 - ((
z1 -
z2) << 1);
3747 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
3748 tmp12 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
3749 tmp13 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
3751 tmp20 = tmp10 + tmp12;
3752 tmp24 = tmp10 - tmp12;
3753 tmp21 = tmp11 + tmp13;
3754 tmp23 = tmp11 - tmp13;
3767 tmp12 = MULTIPLY(tmp13,
FIX(0.309016994));
3769 z2 = MULTIPLY(tmp11,
FIX(0.951056516));
3772 tmp10 = MULTIPLY(
z1,
FIX(1.396802247)) +
z2 +
z4;
3773 tmp14 = MULTIPLY(
z1,
FIX(0.221231742)) -
z2 +
z4;
3775 z2 = MULTIPLY(tmp11,
FIX(0.587785252));
3776 z4 =
z3 - tmp12 - (tmp13 << (CONST_BITS - 1));
3778 tmp12 = ((
z1 - tmp13) << CONST_BITS) -
z3;
3780 tmp11 = MULTIPLY(
z1,
FIX(1.260073511)) -
z2 -
z4;
3781 tmp13 = MULTIPLY(
z1,
FIX(0.642039522)) -
z2 +
z4;
3786 CONST_BITS+PASS2_BITS)
3789 CONST_BITS+PASS2_BITS)
3792 CONST_BITS+PASS2_BITS)
3795 CONST_BITS+PASS2_BITS)
3798 CONST_BITS+PASS2_BITS)
3801 CONST_BITS+PASS2_BITS)
3804 CONST_BITS+PASS2_BITS)
3807 CONST_BITS+PASS2_BITS)
3810 CONST_BITS+PASS2_BITS)
3813 CONST_BITS+PASS2_BITS)
3833 INT32 tmp0, tmp1, tmp2, tmp3;
3834 INT32 tmp10, tmp11, tmp12, tmp13;
3853 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
3860 tmp10 = (tmp0 + tmp2) << PASS1_BITS;
3861 tmp12 = (tmp0 - tmp2) << PASS1_BITS;
3863 tmp10 = tmp0 + tmp2;
3864 tmp12 = tmp0 - tmp2;
3873 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
3875 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
3877 CONST_BITS-PASS1_BITS);
3879 CONST_BITS-PASS1_BITS);
3883 wsptr[8*0] = (
int) (tmp10 + tmp0);
3884 wsptr[8*3] = (
int) (tmp10 - tmp0);
3885 wsptr[8*1] = (
int) (tmp12 + tmp2);
3886 wsptr[8*2] = (
int) (tmp12 - tmp2);
3896 for (ctr = 0; ctr < 4; ctr++) {
3904 z2 = (
INT32) wsptr[0] + PASS2_OFFSET;
3910 z2 +=
ONE << (CONST_BITS-1);
3919 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
3920 tmp2 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
3921 tmp3 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
3923 tmp10 = tmp0 + tmp2;
3924 tmp13 = tmp0 - tmp2;
3925 tmp11 = tmp1 + tmp3;
3926 tmp12 = tmp1 - tmp3;
3932 tmp0 = (
INT32) wsptr[7];
3933 tmp1 = (
INT32) wsptr[5];
3934 tmp2 = (
INT32) wsptr[3];
3935 tmp3 = (
INT32) wsptr[1];
3940 z1 = MULTIPLY(
z2 +
z3, FIX_1_175875602);
3941 z2 = MULTIPLY(
z2, - FIX_1_961570560);
3942 z3 = MULTIPLY(
z3, - FIX_0_390180644);
3946 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
3947 tmp0 = MULTIPLY(tmp0, FIX_0_298631336);
3948 tmp3 = MULTIPLY(tmp3, FIX_1_501321110);
3952 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
3953 tmp1 = MULTIPLY(tmp1, FIX_2_053119869);
3954 tmp2 = MULTIPLY(tmp2, FIX_3_072711026);
3961 CONST_BITS+PASS2_BITS)
3964 CONST_BITS+PASS2_BITS)
3967 CONST_BITS+PASS2_BITS)
3970 CONST_BITS+PASS2_BITS)
3973 CONST_BITS+PASS2_BITS)
3976 CONST_BITS+PASS2_BITS)
3979 CONST_BITS+PASS2_BITS)
3982 CONST_BITS+PASS2_BITS)
4002 INT32 tmp0, tmp1, tmp2, tmp10, tmp11, tmp12;
4020 for (ctr = 0; ctr < 6; ctr++, inptr++, quantptr++, wsptr++) {
4024 tmp0 <<= CONST_BITS;
4026 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-1);
4028 tmp12 = MULTIPLY(tmp2,
FIX(0.707106781));
4029 tmp10 = tmp0 + tmp12;
4030 tmp2 = tmp0 - tmp12 - tmp12;
4035 tmp0 = MULTIPLY(tmp12,
FIX(1.224744871));
4039 wsptr[6*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp0, CONST_BITS-PASS1_BITS);
4040 wsptr[6*2] = (
int)
RIGHT_SHIFT(tmp10 - tmp0, CONST_BITS-PASS1_BITS);
4049 for (ctr = 0; ctr < 3; ctr++) {
4055 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
4056 tmp0 <<= CONST_BITS;
4058 tmp0 +=
ONE << (CONST_BITS-1);
4060 tmp2 = (
INT32) wsptr[4];
4061 tmp10 = MULTIPLY(tmp2,
FIX(0.707106781));
4062 tmp1 = tmp0 + tmp10;
4063 tmp11 = tmp0 - tmp10 - tmp10;
4064 tmp10 = (
INT32) wsptr[2];
4065 tmp0 = MULTIPLY(tmp10,
FIX(1.224744871));
4066 tmp10 = tmp1 + tmp0;
4067 tmp12 = tmp1 - tmp0;
4074 tmp1 = MULTIPLY(
z1 +
z3,
FIX(0.366025404));
4075 tmp0 = tmp1 + ((
z1 +
z2) << CONST_BITS);
4076 tmp2 = tmp1 + ((
z3 -
z2) << CONST_BITS);
4077 tmp1 = (
z1 -
z2 -
z3) << CONST_BITS;
4082 CONST_BITS+PASS2_BITS)
4085 CONST_BITS+PASS2_BITS)
4088 CONST_BITS+PASS2_BITS)
4091 CONST_BITS+PASS2_BITS)
4094 CONST_BITS+PASS2_BITS)
4097 CONST_BITS+PASS2_BITS)
4117 INT32 tmp0, tmp2, tmp10, tmp12;
4125 INT32 workspace[4*2];
4133 for (ctr = 0; ctr < 4; ctr++, inptr++, quantptr++, wsptr++) {
4144 wsptr[4*0] = tmp10 + tmp0;
4145 wsptr[4*1] = tmp10 - tmp0;
4154 for (ctr = 0; ctr < 2; ctr++) {
4163#if PASS2_BITS > PASS1_BITS
4164#if PASS2_BITS > PASS1_BITS + 1
4166 (
ONE << (PASS2_BITS-PASS1_BITS-1));
4170 tmp0 <<= CONST_BITS;
4172#if PASS2_BITS == PASS1_BITS
4174 tmp0 <<= CONST_BITS;
4175 tmp0 +=
ONE << (CONST_BITS-1);
4177 tmp0 <<= CONST_BITS;
4179 (
ONE << (CONST_BITS+PASS2_BITS-PASS1_BITS-1));
4183 tmp2 <<= CONST_BITS;
4185 tmp10 = tmp0 + tmp2;
4186 tmp12 = tmp0 - tmp2;
4194 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
4195 tmp0 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
4196 tmp2 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
4202 CONST_BITS+PASS2_BITS-PASS1_BITS)
4206 CONST_BITS+PASS2_BITS-PASS1_BITS)
4210 CONST_BITS+PASS2_BITS-PASS1_BITS)
4214 CONST_BITS+PASS2_BITS-PASS1_BITS)
4249 tmp0 = DEQUANTIZE(
coef_block[0], quantptr[0]);
4253 tmp1 = DEQUANTIZE(
coef_block[1], quantptr[1]);
4257#if PASS2_BITS > PASS1_BITS
4259#if PASS2_BITS > PASS1_BITS + 1
4261 (1 << (PASS2_BITS-PASS1_BITS-1));
4267 PASS2_BITS-PASS1_BITS)
4270 PASS2_BITS-PASS1_BITS)
4273#if PASS2_BITS < PASS1_BITS
4274 tmp0 <<= (PASS1_BITS-PASS2_BITS);
4275 tmp1 <<= (PASS1_BITS-PASS2_BITS);
4298 INT32 tmp0, tmp1, tmp2, tmp3, tmp10, tmp11, tmp12, tmp13;
4299 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27;
4307 int workspace[8*16];
4317 for (ctr = 0; ctr < 8; ctr++, inptr++, quantptr++, wsptr++) {
4321 tmp0 <<= CONST_BITS;
4323 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-1);
4326 tmp1 = MULTIPLY(
z1,
FIX(1.306562965));
4327 tmp2 = MULTIPLY(
z1, FIX_0_541196100);
4329 tmp10 = tmp0 + tmp1;
4330 tmp11 = tmp0 - tmp1;
4331 tmp12 = tmp0 + tmp2;
4332 tmp13 = tmp0 - tmp2;
4337 z4 = MULTIPLY(
z3,
FIX(0.275899379));
4338 z3 = MULTIPLY(
z3,
FIX(1.387039845));
4340 tmp0 =
z3 + MULTIPLY(
z2, FIX_2_562915447);
4341 tmp1 =
z4 + MULTIPLY(
z1, FIX_0_899976223);
4342 tmp2 =
z3 - MULTIPLY(
z1,
FIX(0.601344887));
4343 tmp3 =
z4 - MULTIPLY(
z2,
FIX(0.509795579));
4345 tmp20 = tmp10 + tmp0;
4346 tmp27 = tmp10 - tmp0;
4347 tmp21 = tmp12 + tmp1;
4348 tmp26 = tmp12 - tmp1;
4349 tmp22 = tmp13 + tmp2;
4350 tmp25 = tmp13 - tmp2;
4351 tmp23 = tmp11 + tmp3;
4352 tmp24 = tmp11 - tmp3;
4363 tmp1 = MULTIPLY(
z1 +
z2,
FIX(1.353318001));
4364 tmp2 = MULTIPLY(tmp11,
FIX(1.247225013));
4365 tmp3 = MULTIPLY(
z1 +
z4,
FIX(1.093201867));
4366 tmp10 = MULTIPLY(
z1 -
z4,
FIX(0.897167586));
4367 tmp11 = MULTIPLY(tmp11,
FIX(0.666655658));
4368 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.410524528));
4369 tmp0 = tmp1 + tmp2 + tmp3 -
4370 MULTIPLY(
z1,
FIX(2.286341144));
4371 tmp13 = tmp10 + tmp11 + tmp12 -
4372 MULTIPLY(
z1,
FIX(1.835730603));
4373 z1 = MULTIPLY(
z2 +
z3,
FIX(0.138617169));
4374 tmp1 +=
z1 + MULTIPLY(
z2,
FIX(0.071888074));
4375 tmp2 +=
z1 - MULTIPLY(
z3,
FIX(1.125726048));
4376 z1 = MULTIPLY(
z3 -
z2,
FIX(1.407403738));
4377 tmp11 +=
z1 - MULTIPLY(
z3,
FIX(0.766367282));
4378 tmp12 +=
z1 + MULTIPLY(
z2,
FIX(1.971951411));
4380 z1 = MULTIPLY(
z2, -
FIX(0.666655658));
4382 tmp3 +=
z1 + MULTIPLY(
z4,
FIX(1.065388962));
4383 z2 = MULTIPLY(
z2, -
FIX(1.247225013));
4384 tmp10 +=
z2 + MULTIPLY(
z4,
FIX(3.141271809));
4386 z2 = MULTIPLY(
z3 +
z4, -
FIX(1.353318001));
4389 z2 = MULTIPLY(
z4 -
z3,
FIX(0.410524528));
4395 wsptr[8*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp0, CONST_BITS-PASS1_BITS);
4396 wsptr[8*15] = (
int)
RIGHT_SHIFT(tmp20 - tmp0, CONST_BITS-PASS1_BITS);
4397 wsptr[8*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp1, CONST_BITS-PASS1_BITS);
4398 wsptr[8*14] = (
int)
RIGHT_SHIFT(tmp21 - tmp1, CONST_BITS-PASS1_BITS);
4399 wsptr[8*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp2, CONST_BITS-PASS1_BITS);
4400 wsptr[8*13] = (
int)
RIGHT_SHIFT(tmp22 - tmp2, CONST_BITS-PASS1_BITS);
4401 wsptr[8*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp3, CONST_BITS-PASS1_BITS);
4402 wsptr[8*12] = (
int)
RIGHT_SHIFT(tmp23 - tmp3, CONST_BITS-PASS1_BITS);
4403 wsptr[8*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp10, CONST_BITS-PASS1_BITS);
4404 wsptr[8*11] = (
int)
RIGHT_SHIFT(tmp24 - tmp10, CONST_BITS-PASS1_BITS);
4405 wsptr[8*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp11, CONST_BITS-PASS1_BITS);
4406 wsptr[8*10] = (
int)
RIGHT_SHIFT(tmp25 - tmp11, CONST_BITS-PASS1_BITS);
4407 wsptr[8*6] = (
int)
RIGHT_SHIFT(tmp26 + tmp12, CONST_BITS-PASS1_BITS);
4408 wsptr[8*9] = (
int)
RIGHT_SHIFT(tmp26 - tmp12, CONST_BITS-PASS1_BITS);
4409 wsptr[8*7] = (
int)
RIGHT_SHIFT(tmp27 + tmp13, CONST_BITS-PASS1_BITS);
4410 wsptr[8*8] = (
int)
RIGHT_SHIFT(tmp27 - tmp13, CONST_BITS-PASS1_BITS);
4420 for (ctr = 0; ctr < 16; ctr++) {
4428 z2 = (
INT32) wsptr[0] + PASS2_OFFSET;
4434 z2 +=
ONE << (CONST_BITS-1);
4443 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
4444 tmp2 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
4445 tmp3 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
4447 tmp10 = tmp0 + tmp2;
4448 tmp13 = tmp0 - tmp2;
4449 tmp11 = tmp1 + tmp3;
4450 tmp12 = tmp1 - tmp3;
4456 tmp0 = (
INT32) wsptr[7];
4457 tmp1 = (
INT32) wsptr[5];
4458 tmp2 = (
INT32) wsptr[3];
4459 tmp3 = (
INT32) wsptr[1];
4464 z1 = MULTIPLY(
z2 +
z3, FIX_1_175875602);
4465 z2 = MULTIPLY(
z2, - FIX_1_961570560);
4466 z3 = MULTIPLY(
z3, - FIX_0_390180644);
4470 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
4471 tmp0 = MULTIPLY(tmp0, FIX_0_298631336);
4472 tmp3 = MULTIPLY(tmp3, FIX_1_501321110);
4476 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
4477 tmp1 = MULTIPLY(tmp1, FIX_2_053119869);
4478 tmp2 = MULTIPLY(tmp2, FIX_3_072711026);
4485 CONST_BITS+PASS2_BITS)
4488 CONST_BITS+PASS2_BITS)
4491 CONST_BITS+PASS2_BITS)
4494 CONST_BITS+PASS2_BITS)
4497 CONST_BITS+PASS2_BITS)
4500 CONST_BITS+PASS2_BITS)
4503 CONST_BITS+PASS2_BITS)
4506 CONST_BITS+PASS2_BITS)
4526 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16;
4527 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26;
4535 int workspace[7*14];
4545 for (ctr = 0; ctr < 7; ctr++, inptr++, quantptr++, wsptr++) {
4551 z1 +=
ONE << (CONST_BITS-PASS1_BITS-1);
4553 z2 = MULTIPLY(
z4,
FIX(1.274162392));
4554 z3 = MULTIPLY(
z4,
FIX(0.314692123));
4555 z4 = MULTIPLY(
z4,
FIX(0.881747734));
4562 CONST_BITS-PASS1_BITS);
4567 z3 = MULTIPLY(
z1 +
z2,
FIX(1.105676686));
4569 tmp13 =
z3 + MULTIPLY(
z1,
FIX(0.273079590));
4570 tmp14 =
z3 - MULTIPLY(
z2,
FIX(1.719280954));
4571 tmp15 = MULTIPLY(
z1,
FIX(0.613604268)) -
4572 MULTIPLY(
z2,
FIX(1.378756276));
4574 tmp20 = tmp10 + tmp13;
4575 tmp26 = tmp10 - tmp13;
4576 tmp21 = tmp11 + tmp14;
4577 tmp25 = tmp11 - tmp14;
4578 tmp22 = tmp12 + tmp15;
4579 tmp24 = tmp12 - tmp15;
4587 tmp13 =
z4 << CONST_BITS;
4590 tmp11 = MULTIPLY(
z1 +
z2,
FIX(1.334852607));
4591 tmp12 = MULTIPLY(tmp14,
FIX(1.197448846));
4592 tmp10 = tmp11 + tmp12 + tmp13 - MULTIPLY(
z1,
FIX(1.126980169));
4593 tmp14 = MULTIPLY(tmp14,
FIX(0.752406978));
4594 tmp16 = tmp14 - MULTIPLY(
z1,
FIX(1.061150426));
4596 tmp15 = MULTIPLY(
z1,
FIX(0.467085129)) - tmp13;
4599 z4 = MULTIPLY(
z2 +
z3, -
FIX(0.158341681)) - tmp13;
4600 tmp11 +=
z4 - MULTIPLY(
z2,
FIX(0.424103948));
4601 tmp12 +=
z4 - MULTIPLY(
z3,
FIX(2.373959773));
4602 z4 = MULTIPLY(
z3 -
z2,
FIX(1.405321284));
4603 tmp14 +=
z4 + tmp13 - MULTIPLY(
z3,
FIX(1.6906431334));
4604 tmp15 +=
z4 + MULTIPLY(
z2,
FIX(0.674957567));
4607 tmp13 = (
z1 -
z3) << PASS1_BITS;
4614 wsptr[7*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
4615 wsptr[7*13] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
4616 wsptr[7*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
4617 wsptr[7*12] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
4618 wsptr[7*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
4619 wsptr[7*11] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
4620 wsptr[7*3] = (
int) (tmp23 + tmp13);
4621 wsptr[7*10] = (
int) (tmp23 - tmp13);
4622 wsptr[7*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
4623 wsptr[7*9] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
4624 wsptr[7*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp15, CONST_BITS-PASS1_BITS);
4625 wsptr[7*8] = (
int)
RIGHT_SHIFT(tmp25 - tmp15, CONST_BITS-PASS1_BITS);
4626 wsptr[7*6] = (
int)
RIGHT_SHIFT(tmp26 + tmp16, CONST_BITS-PASS1_BITS);
4627 wsptr[7*7] = (
int)
RIGHT_SHIFT(tmp26 - tmp16, CONST_BITS-PASS1_BITS);
4635 for (ctr = 0; ctr < 14; ctr++) {
4641 tmp23 = (
INT32) wsptr[0] + PASS2_OFFSET;
4642 tmp23 <<= CONST_BITS;
4644 tmp23 +=
ONE << (CONST_BITS-1);
4651 tmp20 = MULTIPLY(
z2 -
z3,
FIX(0.881747734));
4652 tmp22 = MULTIPLY(
z1 -
z2,
FIX(0.314692123));
4653 tmp21 = tmp20 + tmp22 + tmp23 - MULTIPLY(
z2,
FIX(1.841218003));
4656 tmp10 = MULTIPLY(tmp10,
FIX(1.274162392)) + tmp23;
4657 tmp20 += tmp10 - MULTIPLY(
z3,
FIX(0.077722536));
4658 tmp22 += tmp10 - MULTIPLY(
z1,
FIX(2.470602249));
4659 tmp23 += MULTIPLY(
z2,
FIX(1.414213562));
4667 tmp11 = MULTIPLY(
z1 +
z2,
FIX(0.935414347));
4668 tmp12 = MULTIPLY(
z1 -
z2,
FIX(0.170262339));
4669 tmp10 = tmp11 - tmp12;
4671 tmp12 = MULTIPLY(
z2 +
z3, -
FIX(1.378756276));
4673 z2 = MULTIPLY(
z1 +
z3,
FIX(0.613604268));
4675 tmp12 +=
z2 + MULTIPLY(
z3,
FIX(1.870828693));
4680 CONST_BITS+PASS2_BITS)
4683 CONST_BITS+PASS2_BITS)
4686 CONST_BITS+PASS2_BITS)
4689 CONST_BITS+PASS2_BITS)
4692 CONST_BITS+PASS2_BITS)
4695 CONST_BITS+PASS2_BITS)
4698 CONST_BITS+PASS2_BITS)
4718 INT32 tmp10, tmp11, tmp12, tmp13, tmp14, tmp15;
4719 INT32 tmp20, tmp21, tmp22, tmp23, tmp24, tmp25;
4727 int workspace[6*12];
4737 for (ctr = 0; ctr < 6; ctr++, inptr++, quantptr++, wsptr++) {
4743 z3 +=
ONE << (CONST_BITS-PASS1_BITS-1);
4746 z4 = MULTIPLY(
z4,
FIX(1.224744871));
4752 z4 = MULTIPLY(
z1,
FIX(1.366025404));
4764 tmp20 = tmp10 + tmp12;
4765 tmp25 = tmp10 - tmp12;
4769 tmp22 = tmp11 + tmp12;
4770 tmp23 = tmp11 - tmp12;
4779 tmp11 = MULTIPLY(
z2,
FIX(1.306562965));
4780 tmp14 = MULTIPLY(
z2, - FIX_0_541196100);
4783 tmp15 = MULTIPLY(tmp10 +
z4,
FIX(0.860918669));
4784 tmp12 = tmp15 + MULTIPLY(tmp10,
FIX(0.261052384));
4785 tmp10 = tmp12 + tmp11 + MULTIPLY(
z1,
FIX(0.280143716));
4786 tmp13 = MULTIPLY(
z3 +
z4, -
FIX(1.045510580));
4787 tmp12 += tmp13 + tmp14 - MULTIPLY(
z3,
FIX(1.478575242));
4788 tmp13 += tmp15 - tmp11 + MULTIPLY(
z4,
FIX(1.586706681));
4789 tmp15 += tmp14 - MULTIPLY(
z1,
FIX(0.676326758)) -
4790 MULTIPLY(
z4,
FIX(1.982889723));
4794 z3 = MULTIPLY(
z1 +
z2, FIX_0_541196100);
4795 tmp11 =
z3 + MULTIPLY(
z1, FIX_0_765366865);
4796 tmp14 =
z3 - MULTIPLY(
z2, FIX_1_847759065);
4800 wsptr[6*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
4801 wsptr[6*11] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
4802 wsptr[6*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
4803 wsptr[6*10] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
4804 wsptr[6*2] = (
int)
RIGHT_SHIFT(tmp22 + tmp12, CONST_BITS-PASS1_BITS);
4805 wsptr[6*9] = (
int)
RIGHT_SHIFT(tmp22 - tmp12, CONST_BITS-PASS1_BITS);
4806 wsptr[6*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp13, CONST_BITS-PASS1_BITS);
4807 wsptr[6*8] = (
int)
RIGHT_SHIFT(tmp23 - tmp13, CONST_BITS-PASS1_BITS);
4808 wsptr[6*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
4809 wsptr[6*7] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
4810 wsptr[6*5] = (
int)
RIGHT_SHIFT(tmp25 + tmp15, CONST_BITS-PASS1_BITS);
4811 wsptr[6*6] = (
int)
RIGHT_SHIFT(tmp25 - tmp15, CONST_BITS-PASS1_BITS);
4819 for (ctr = 0; ctr < 12; ctr++) {
4825 tmp10 = (
INT32) wsptr[0] + PASS2_OFFSET;
4826 tmp10 <<= CONST_BITS;
4828 tmp10 +=
ONE << (CONST_BITS-1);
4830 tmp12 = (
INT32) wsptr[4];
4831 tmp20 = MULTIPLY(tmp12,
FIX(0.707106781));
4832 tmp11 = tmp10 + tmp20;
4833 tmp21 = tmp10 - tmp20 - tmp20;
4834 tmp20 = (
INT32) wsptr[2];
4835 tmp10 = MULTIPLY(tmp20,
FIX(1.224744871));
4836 tmp20 = tmp11 + tmp10;
4837 tmp22 = tmp11 - tmp10;
4844 tmp11 = MULTIPLY(
z1 +
z3,
FIX(0.366025404));
4845 tmp10 = tmp11 + ((
z1 +
z2) << CONST_BITS);
4846 tmp12 = tmp11 + ((
z3 -
z2) << CONST_BITS);
4847 tmp11 = (
z1 -
z2 -
z3) << CONST_BITS;
4852 CONST_BITS+PASS2_BITS)
4855 CONST_BITS+PASS2_BITS)
4858 CONST_BITS+PASS2_BITS)
4861 CONST_BITS+PASS2_BITS)
4864 CONST_BITS+PASS2_BITS)
4867 CONST_BITS+PASS2_BITS)
4887 INT32 tmp10, tmp11, tmp12, tmp13, tmp14;
4888 INT32 tmp20, tmp21, tmp22, tmp23, tmp24;
4896 int workspace[5*10];
4906 for (ctr = 0; ctr < 5; ctr++, inptr++, quantptr++, wsptr++) {
4912 z3 +=
ONE << (CONST_BITS-PASS1_BITS-1);
4914 z1 = MULTIPLY(
z4,
FIX(1.144122806));
4915 z2 = MULTIPLY(
z4,
FIX(0.437016024));
4920 CONST_BITS-PASS1_BITS);
4925 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
4926 tmp12 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
4927 tmp13 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
4929 tmp20 = tmp10 + tmp12;
4930 tmp24 = tmp10 - tmp12;
4931 tmp21 = tmp11 + tmp13;
4932 tmp23 = tmp11 - tmp13;
4944 tmp12 = MULTIPLY(tmp13,
FIX(0.309016994));
4945 z5 =
z3 << CONST_BITS;
4947 z2 = MULTIPLY(tmp11,
FIX(0.951056516));
4950 tmp10 = MULTIPLY(
z1,
FIX(1.396802247)) +
z2 +
z4;
4951 tmp14 = MULTIPLY(
z1,
FIX(0.221231742)) -
z2 +
z4;
4953 z2 = MULTIPLY(tmp11,
FIX(0.587785252));
4954 z4 =
z5 - tmp12 - (tmp13 << (CONST_BITS - 1));
4957 tmp12 = (
z1 - tmp13 -
z3) << PASS1_BITS;
4959 tmp12 =
z1 - tmp13 -
z3;
4962 tmp11 = MULTIPLY(
z1,
FIX(1.260073511)) -
z2 -
z4;
4963 tmp13 = MULTIPLY(
z1,
FIX(0.642039522)) -
z2 +
z4;
4967 wsptr[5*0] = (
int)
RIGHT_SHIFT(tmp20 + tmp10, CONST_BITS-PASS1_BITS);
4968 wsptr[5*9] = (
int)
RIGHT_SHIFT(tmp20 - tmp10, CONST_BITS-PASS1_BITS);
4969 wsptr[5*1] = (
int)
RIGHT_SHIFT(tmp21 + tmp11, CONST_BITS-PASS1_BITS);
4970 wsptr[5*8] = (
int)
RIGHT_SHIFT(tmp21 - tmp11, CONST_BITS-PASS1_BITS);
4971 wsptr[5*2] = (
int) (tmp22 + tmp12);
4972 wsptr[5*7] = (
int) (tmp22 - tmp12);
4973 wsptr[5*3] = (
int)
RIGHT_SHIFT(tmp23 + tmp13, CONST_BITS-PASS1_BITS);
4974 wsptr[5*6] = (
int)
RIGHT_SHIFT(tmp23 - tmp13, CONST_BITS-PASS1_BITS);
4975 wsptr[5*4] = (
int)
RIGHT_SHIFT(tmp24 + tmp14, CONST_BITS-PASS1_BITS);
4976 wsptr[5*5] = (
int)
RIGHT_SHIFT(tmp24 - tmp14, CONST_BITS-PASS1_BITS);
4984 for (ctr = 0; ctr < 10; ctr++) {
4990 tmp12 = (
INT32) wsptr[0] + PASS2_OFFSET;
4991 tmp12 <<= CONST_BITS;
4993 tmp12 +=
ONE << (CONST_BITS-1);
4995 tmp13 = (
INT32) wsptr[2];
4996 tmp14 = (
INT32) wsptr[4];
4997 z1 = MULTIPLY(tmp13 + tmp14,
FIX(0.790569415));
4998 z2 = MULTIPLY(tmp13 - tmp14,
FIX(0.353553391));
5009 z1 = MULTIPLY(
z2 +
z3,
FIX(0.831253876));
5010 tmp13 =
z1 + MULTIPLY(
z2,
FIX(0.513743148));
5011 tmp14 =
z1 - MULTIPLY(
z3,
FIX(2.176250899));
5016 CONST_BITS+PASS2_BITS)
5019 CONST_BITS+PASS2_BITS)
5022 CONST_BITS+PASS2_BITS)
5025 CONST_BITS+PASS2_BITS)
5028 CONST_BITS+PASS2_BITS)
5048 INT32 tmp0, tmp1, tmp2, tmp3;
5049 INT32 tmp10, tmp11, tmp12, tmp13;
5069 for (ctr = 4; ctr > 0; ctr--) {
5085 int dcval = DEQUANTIZE(inptr[
DCTSIZE*0], quantptr[
DCTSIZE*0]) << PASS1_BITS;
5114 z2 +=
ONE << (CONST_BITS-PASS1_BITS-1);
5122 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
5123 tmp2 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
5124 tmp3 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
5126 tmp10 = tmp0 + tmp2;
5127 tmp13 = tmp0 - tmp2;
5128 tmp11 = tmp1 + tmp3;
5129 tmp12 = tmp1 - tmp3;
5143 z1 = MULTIPLY(
z2 +
z3, FIX_1_175875602);
5144 z2 = MULTIPLY(
z2, - FIX_1_961570560);
5145 z3 = MULTIPLY(
z3, - FIX_0_390180644);
5149 z1 = MULTIPLY(tmp0 + tmp3, - FIX_0_899976223);
5150 tmp0 = MULTIPLY(tmp0, FIX_0_298631336);
5151 tmp3 = MULTIPLY(tmp3, FIX_1_501321110);
5155 z1 = MULTIPLY(tmp1 + tmp2, - FIX_2_562915447);
5156 tmp1 = MULTIPLY(tmp1, FIX_2_053119869);
5157 tmp2 = MULTIPLY(tmp2, FIX_3_072711026);
5163 wsptr[4*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp3, CONST_BITS-PASS1_BITS);
5164 wsptr[4*7] = (
int)
RIGHT_SHIFT(tmp10 - tmp3, CONST_BITS-PASS1_BITS);
5165 wsptr[4*1] = (
int)
RIGHT_SHIFT(tmp11 + tmp2, CONST_BITS-PASS1_BITS);
5166 wsptr[4*6] = (
int)
RIGHT_SHIFT(tmp11 - tmp2, CONST_BITS-PASS1_BITS);
5167 wsptr[4*2] = (
int)
RIGHT_SHIFT(tmp12 + tmp1, CONST_BITS-PASS1_BITS);
5168 wsptr[4*5] = (
int)
RIGHT_SHIFT(tmp12 - tmp1, CONST_BITS-PASS1_BITS);
5169 wsptr[4*3] = (
int)
RIGHT_SHIFT(tmp13 + tmp0, CONST_BITS-PASS1_BITS);
5170 wsptr[4*4] = (
int)
RIGHT_SHIFT(tmp13 - tmp0, CONST_BITS-PASS1_BITS);
5183 for (ctr = 0; ctr < 8; ctr++) {
5189 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
5190 tmp2 = (
INT32) wsptr[2];
5191 tmp0 <<= CONST_BITS;
5192 tmp2 <<= CONST_BITS;
5194 tmp0 +=
ONE << (CONST_BITS-1);
5197 tmp10 = tmp0 + tmp2;
5198 tmp12 = tmp0 - tmp2;
5206 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
5207 tmp0 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
5208 tmp2 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
5213 CONST_BITS+PASS2_BITS)
5216 CONST_BITS+PASS2_BITS)
5219 CONST_BITS+PASS2_BITS)
5222 CONST_BITS+PASS2_BITS)
5242 INT32 tmp0, tmp1, tmp2, tmp10, tmp11, tmp12;
5260 for (ctr = 0; ctr < 3; ctr++, inptr++, quantptr++, wsptr++) {
5264 tmp0 <<= CONST_BITS;
5266 tmp0 +=
ONE << (CONST_BITS-PASS1_BITS-1);
5268 tmp10 = MULTIPLY(tmp2,
FIX(0.707106781));
5269 tmp1 = tmp0 + tmp10;
5270 tmp11 =
RIGHT_SHIFT(tmp0 - tmp10 - tmp10, CONST_BITS-PASS1_BITS);
5272 tmp0 = MULTIPLY(tmp10,
FIX(1.224744871));
5273 tmp10 = tmp1 + tmp0;
5274 tmp12 = tmp1 - tmp0;
5281 tmp1 = MULTIPLY(
z1 +
z3,
FIX(0.366025404));
5282 tmp0 = tmp1 + ((
z1 +
z2) << CONST_BITS);
5283 tmp2 = tmp1 + ((
z3 -
z2) << CONST_BITS);
5285 tmp1 = (
z1 -
z2 -
z3) << PASS1_BITS;
5292 wsptr[3*0] = (
int)
RIGHT_SHIFT(tmp10 + tmp0, CONST_BITS-PASS1_BITS);
5293 wsptr[3*5] = (
int)
RIGHT_SHIFT(tmp10 - tmp0, CONST_BITS-PASS1_BITS);
5294 wsptr[3*1] = (
int) (tmp11 + tmp1);
5295 wsptr[3*4] = (
int) (tmp11 - tmp1);
5296 wsptr[3*2] = (
int)
RIGHT_SHIFT(tmp12 + tmp2, CONST_BITS-PASS1_BITS);
5297 wsptr[3*3] = (
int)
RIGHT_SHIFT(tmp12 - tmp2, CONST_BITS-PASS1_BITS);
5305 for (ctr = 0; ctr < 6; ctr++) {
5311 tmp0 = (
INT32) wsptr[0] + PASS2_OFFSET;
5312 tmp0 <<= CONST_BITS;
5314 tmp0 +=
ONE << (CONST_BITS-1);
5316 tmp2 = (
INT32) wsptr[2];
5317 tmp12 = MULTIPLY(tmp2,
FIX(0.707106781));
5318 tmp10 = tmp0 + tmp12;
5319 tmp2 = tmp0 - tmp12 - tmp12;
5323 tmp12 = (
INT32) wsptr[1];
5324 tmp0 = MULTIPLY(tmp12,
FIX(1.224744871));
5329 CONST_BITS+PASS2_BITS)
5332 CONST_BITS+PASS2_BITS)
5335 CONST_BITS+PASS2_BITS)
5355 INT32 tmp0, tmp2, tmp10, tmp12;
5363 INT32 workspace[2*4];
5374 for (ctr = 0; ctr < 2; ctr++, inptr++, quantptr++, wsptr++) {
5380 tmp10 = (tmp0 + tmp2) << CONST_BITS;
5381 tmp12 = (tmp0 - tmp2) << CONST_BITS;
5389 z1 = MULTIPLY(
z2 +
z3, FIX_0_541196100);
5390 tmp0 =
z1 + MULTIPLY(
z2, FIX_0_765366865);
5391 tmp2 =
z1 - MULTIPLY(
z3, FIX_1_847759065);
5395 wsptr[2*0] = tmp10 + tmp0;
5396 wsptr[2*3] = tmp10 - tmp0;
5397 wsptr[2*1] = tmp12 + tmp2;
5398 wsptr[2*2] = tmp12 - tmp2;
5404 for (ctr = 0; ctr < 4; ctr++) {
5412 (
ONE << (CONST_BITS+PASS2_BITS-PASS1_BITS-1)));
5422 CONST_BITS+PASS2_BITS-PASS1_BITS)
5426 CONST_BITS+PASS2_BITS-PASS1_BITS)
5465#if PASS2_BITS > PASS1_BITS
5467#if PASS2_BITS > PASS1_BITS + 1
5469 (1 << (PASS2_BITS-PASS1_BITS-1));
5481#if PASS2_BITS < PASS1_BITS
5482 tmp0 <<= (PASS1_BITS-PASS2_BITS);
5483 tmp1 <<= (PASS1_BITS-PASS2_BITS);
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
for(i=0;i< ARRAY_SIZE(offsets);i++)
#define IRIGHT_SHIFT(x, shft)
MULTIPLIER ISLOW_MULT_TYPE
jpeg_component_info JCOEFPTR coef_block
jpeg_component_info JCOEFPTR JSAMPARRAY JDIMENSION output_col
jpeg_component_info * compptr
#define IDCT_range_limit(cinfo)
jpeg_component_info JCOEFPTR JSAMPARRAY output_buf
#define RIGHT_SHIFT(x, shft)
static double float double int float double float int float double float int double int float z5
static double float double int float double float int float double float z4
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