Go to the documentation of this file.
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++) {
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];
288 for (
i = 0;
i < 8;
i++)
static void idct_col2(int16_t *col)
static double b1(void *priv, double x, double y)
void ff_simple_idct_put_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
void ff_simple_idct_add_axp(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
void ff_simple_idct_axp(int16_t *block)
static double b3(void *priv, double x, double y)
static int idct_row(int16_t *row)
static double b2(void *priv, double x, double y)
#define i(width, name, range_min, range_max)
void(* add_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels, ptrdiff_t line_size)
static void idct_col(int16_t *col)
The exact code depends on how similar the blocks are and how related they are to the block
static double b0(void *priv, double x, double y)
void(* put_pixels_clamped_axp_p)(const int16_t *block, uint8_t *pixels, ptrdiff_t line_size)