2880 {
2881 int
2882 b1, b3, b4, b6, b7, tmp1, tmp2, m0,
2883 x0, x1, x2, x3, x4, y3, y4, y5, y6, y7;
2884
2885
2886 for (int i = 0; i < 8; ++i) {
2887 b1 = block[4 * 8 + i];
2888 b3 = block[2 * 8 + i] + block[6 * 8 + i];
2889 b4 = block[5 * 8 + i] - block[3 * 8 + i];
2890 tmp1 = block[1 * 8 + i] + block[7 * 8 + i];
2891 tmp2 = block[3 * 8 + i] + block[5 * 8 + i];
2892 b6 = block[1 * 8 + i] - block[7 * 8 + i];
2893 b7 = tmp1 + tmp2;
2894 m0 = block[0 * 8 + i];
2895 x4 = ((b6 * 473 - b4 * 196 + 128) >> 8) - b7;
2896 x0 = x4 - (((tmp1 - tmp2) * 362 + 128) >> 8);
2897 x1 = m0 - b1;
2898 x2 = (((block[2 * 8 + i] - block[6 * 8 + i]) * 362 + 128) >> 8) - b3;
2899 x3 = m0 + b1;
2900 y3 = x1 + x2;
2901 y4 = x3 + b3;
2902 y5 = x1 - x2;
2903 y6 = x3 - b3;
2904 y7 = -x0 - ((b4 * 473 + b6 * 196 + 128) >> 8);
2905 block[0 * 8 + i] = b7 + y4;
2906 block[1 * 8 + i] = x4 + y3;
2907 block[2 * 8 + i] = y5 - x0;
2908 block[3 * 8 + i] = y6 - y7;
2909 block[4 * 8 + i] = y6 + y7;
2910 block[5 * 8 + i] = x0 + y5;
2911 block[6 * 8 + i] = y3 - x4;
2912 block[7 * 8 + i] = y4 - b7;
2913 }
2914
2915
2916 for (int i = 0; i < 64; i += 8) {
2917 b1 = block[4 + i];
2918 b3 = block[2 + i] + block[6 + i];
2919 b4 = block[5 + i] - block[3 + i];
2920 tmp1 = block[1 + i] + block[7 + i];
2921 tmp2 = block[3 + i] + block[5 + i];
2922 b6 = block[1 + i] - block[7 + i];
2923 b7 = tmp1 + tmp2;
2924 m0 = block[0 + i];
2925 x4 = ((b6 * 473 - b4 * 196 + 128) >> 8) - b7;
2926 x0 = x4 - (((tmp1 - tmp2) * 362 + 128) >> 8);
2927 x1 = m0 - b1;
2928 x2 = (((block[2 + i] - block[6 + i]) * 362 + 128) >> 8) - b3;
2929 x3 = m0 + b1;
2930 y3 = x1 + x2;
2931 y4 = x3 + b3;
2932 y5 = x1 - x2;
2933 y6 = x3 - b3;
2934 y7 = -x0 - ((b4 * 473 + b6 * 196 + 128) >> 8);
2935 block[0 + i] = (b7 + y4 + 128) >> 8;
2936 block[1 + i] = (x4 + y3 + 128) >> 8;
2937 block[2 + i] = (y5 - x0 + 128) >> 8;
2938 block[3 + i] = (y6 - y7 + 128) >> 8;
2939 block[4 + i] = (y6 + y7 + 128) >> 8;
2940 block[5 + i] = (x0 + y5 + 128) >> 8;
2941 block[6 + i] = (y3 - x4 + 128) >> 8;
2942 block[7 + i] = (y4 - b7 + 128) >> 8;
2943 }
2944}