48 int a0,
a1,
a2,
a3, b0, b1, b2, b3, t;
58 if (((l & ~0xffffUL) |
r) == 0) {
160 a0 =
W4 * col[8 * 0];
161 a1 =
W4 * col[8 * 0];
162 a2 =
W4 * col[8 * 0];
163 a3 =
W4 * col[8 * 0];
166 a0 +=
W2 * col[8 * 2];
167 a1 +=
W6 * col[8 * 2];
168 a2 -=
W6 * col[8 * 2];
169 a3 -=
W2 * col[8 * 2];
173 a0 +=
W4 * col[8 * 4];
174 a1 -=
W4 * col[8 * 4];
175 a2 -=
W4 * col[8 * 4];
176 a3 +=
W4 * col[8 * 4];
180 a0 +=
W6 * col[8 * 6];
181 a1 -=
W2 * col[8 * 6];
182 a2 +=
W2 * col[8 * 6];
183 a3 -=
W6 * col[8 * 6];
187 b0 =
W1 * col[8 * 1];
188 b1 =
W3 * col[8 * 1];
189 b2 =
W5 * col[8 * 1];
190 b3 =
W7 * col[8 * 1];
199 b0 +=
W3 * col[8 * 3];
200 b1 -=
W7 * col[8 * 3];
201 b2 -=
W1 * col[8 * 3];
202 b3 -=
W5 * col[8 * 3];
206 b0 +=
W5 * col[8 * 5];
207 b1 -=
W1 * col[8 * 5];
208 b2 +=
W7 * col[8 * 5];
209 b3 +=
W3 * col[8 * 5];
213 b0 +=
W7 * col[8 * 7];
214 b1 -=
W5 * col[8 * 7];
215 b2 +=
W3 * col[8 * 7];
216 b3 -=
W1 * col[8 * 7];
236 for (i = 0; i < 8; ++i) {
243 l =
ldq(col + 0 * 4); r =
ldq(col + 1 * 4);
244 stq(l, col + 2 * 4);
stq(r, col + 3 * 4);
245 stq(l, col + 4 * 4);
stq(r, col + 5 * 4);
246 stq(l, col + 6 * 4);
stq(r, col + 7 * 4);
247 stq(l, col + 8 * 4);
stq(r, col + 9 * 4);
248 stq(l, col + 10 * 4);
stq(r, col + 11 * 4);
249 stq(l, col + 12 * 4);
stq(r, col + 13 * 4);
250 stq(l, col + 14 * 4);
stq(r, col + 15 * 4);
258 int rowsConstant = 1;
260 for (i = 0; i < 8; i++) {
261 int sparseness =
idct_row(block + 8 * i);
263 if (i > 0 && sparseness > 0)
271 }
else if (rowsConstant) {
273 for (i = 0; i < 8; i += 2) {
274 uint64_t v = (uint16_t) block[0];
275 uint64_t
w = (uint16_t) block[8];
281 stq(v, block + 0 * 4);
282 stq(v, block + 1 * 4);
283 stq(w, block + 2 * 4);
284 stq(w, block + 3 * 4);
288 for (i = 0; i < 8; i++)
static void idct_col2(int16_t *col)
void ff_simple_idct_add_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
void ff_simple_idct_put_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
void(* put_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels, ptrdiff_t line_size)
static int idct_row(int16_t *row)
void ff_simple_idct_axp(int16_t *block)
static void idct_col(int16_t *col)
void(* add_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels, ptrdiff_t line_size)