42 a7 =
W7 *
b[1] -
W1 *
b[7];
43 a5 =
W5 *
b[5] +
W3 *
b[3];
46 a6 =
W6 *
b[2] -
W2 *
b[6];
48 a4 =
W0 *
b[0] -
W0 *
b[4];
51 s1 = (int)(181U * (
a1 - a5 + a7 -
a3) + 128) >> 8;
52 s2 = (int)(181U * (
a1 - a5 - a7 +
a3) + 128) >> 8;
55 b[0] = (
a0 +
a2 +
a1 + a5 + (1 << 7)) >> 8;
56 b[1] = (a4 + a6 + s1 + (1 << 7)) >> 8;
57 b[2] = (a4 - a6 + s2 + (1 << 7)) >> 8;
58 b[3] = (
a0 -
a2 + a7 +
a3 + (1 << 7)) >> 8;
59 b[4] = (
a0 -
a2 - a7 -
a3 + (1 << 7)) >> 8;
60 b[5] = (a4 - a6 - s2 + (1 << 7)) >> 8;
61 b[6] = (a4 + a6 - s1 + (1 << 7)) >> 8;
62 b[7] = (
a0 +
a2 -
a1 - a5 + (1 << 7)) >> 8;
71 a1 = (
W1 *
b[8 * 1] +
W7 *
b[8 * 7] + 4) >> 3;
72 a7 = (
W7 *
b[8 * 1] -
W1 *
b[8 * 7] + 4) >> 3;
73 a5 = (
W5 *
b[8 * 5] +
W3 *
b[8 * 3] + 4) >> 3;
74 a3 = (
W3 *
b[8 * 5] -
W5 *
b[8 * 3] + 4) >> 3;
75 a2 = (
W2 *
b[8 * 2] +
W6 *
b[8 * 6] + 4) >> 3;
76 a6 = (
W6 *
b[8 * 2] -
W2 *
b[8 * 6] + 4) >> 3;
77 a0 = (
W0 *
b[8 * 0] +
W0 *
b[8 * 4] ) >> 3;
78 a4 = (
W0 *
b[8 * 0] -
W0 *
b[8 * 4] ) >> 3;
81 s1 = (int)(181U * (
a1 - a5 + a7 -
a3) + 128) >> 8;
82 s2 = (int)(181U * (
a1 - a5 - a7 +
a3) + 128) >> 8;
85 b[8 * 0] = (
a0 +
a2 +
a1 + a5 + (1 << 13)) >> 14;
86 b[8 * 1] = (a4 + a6 + s1 + (1 << 13)) >> 14;
87 b[8 * 2] = (a4 - a6 + s2 + (1 << 13)) >> 14;
88 b[8 * 3] = (
a0 -
a2 + a7 +
a3 + (1 << 13)) >> 14;
90 b[8 * 4] = (
a0 -
a2 - a7 -
a3 + (1 << 13)) >> 14;
91 b[8 * 5] = (a4 - a6 - s2 + (1 << 13)) >> 14;
92 b[8 * 6] = (a4 + a6 - s1 + (1 << 13)) >> 14;
93 b[8 * 7] = (
a0 +
a2 -
a1 - a5 + (1 << 13)) >> 14;
100 for (
i = 0;
i < 64;
i += 8)
102 for (
i = 0;
i < 8;
i++)
105 for (
i = 0;
i < 8;
i++) {
123 for (
i = 0;
i < 64;
i += 8)
125 for (
i = 0;
i < 8;
i++)
128 for (
i = 0;
i < 8;
i++) {
#define i(width, name, range_min, range_max)
common internal and external API header
av_cold void ff_init_scantable_permutation(uint8_t *idct_permutation, enum idct_permutation_type perm_type)
Macro definitions for various function/variable attributes.
static double a0(void *priv, double x, double y)
static double a3(void *priv, double x, double y)
static double a2(void *priv, double x, double y)
static double a1(void *priv, double x, double y)
static void wmv2_idct_col(short *b)
av_cold void ff_wmv2dsp_init(IDCTDSPContext *c)
static void wmv2_idct_add_c(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
static void wmv2_idct_put_c(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
static void wmv2_idct_row(short *b)
av_cold void ff_wmv2dsp_init_mips(IDCTDSPContext *c)