147 640, 640, 669, 480, 708, 354, 748, 257,
148 792, 198, 760, 143, 808, 101, 772, 72,
149 480, 669, 537, 537, 598, 416, 661, 316,
150 719, 250, 707, 185, 768, 134, 745, 97,
151 354, 708, 416, 598, 488, 488, 564, 388,
152 634, 317, 642, 241, 716, 179, 706, 132,
153 257, 748, 316, 661, 388, 564, 469, 469,
154 543, 395, 571, 311, 655, 238, 660, 180,
155 198, 792, 250, 719, 317, 634, 395, 543,
156 469, 469, 507, 380, 597, 299, 616, 231,
157 161, 855, 206, 788, 266, 710, 340, 623,
158 411, 548, 455, 455, 548, 366, 576, 288,
159 122, 972, 159, 914, 211, 842, 276, 758,
160 341, 682, 389, 584, 483, 483, 520, 390,
161 110, 1172, 144, 1107, 193, 1028, 254, 932,
162 317, 846, 366, 731, 458, 611, 499, 499,
338 const ptrdiff_t b_stride,
int quant)
341 int p0, p1, p2, p3, p4, p5, p6, p7, p8, p9;
342 int ql = (
quant + 10) >> 3;
344 for (
i = 0;
i < 8;
i++, ptr += b_stride) {
345 p0 = ptr[-5 * a_stride];
346 p1 = ptr[-4 * a_stride];
347 p2 = ptr[-3 * a_stride];
348 p3 = ptr[-2 * a_stride];
349 p4 = ptr[-1 * a_stride];
351 p6 = ptr[1 * a_stride];
352 p7 = ptr[2 * a_stride];
353 p8 = ptr[3 * a_stride];
354 p9 = ptr[4 * a_stride];
356 t = (
FFABS(p1 - p2) <= ql) +
357 (
FFABS(p2 - p3) <= ql) +
358 (
FFABS(p3 - p4) <= ql) +
359 (
FFABS(p4 - p5) <= ql);
363 t += (
FFABS(p5 - p6) <= ql) +
364 (
FFABS(p6 - p7) <= ql) +
365 (
FFABS(p7 - p8) <= ql) +
366 (
FFABS(p8 - p9) <= ql) +
367 (
FFABS(p0 - p1) <= ql);
388 ptr[-2 * a_stride] = (4 * p2 + 3 * p3 + 1 * p7 + 4) >> 3;
389 ptr[-1 * a_stride] = (3 * p2 + 3 * p4 + 2 * p7 + 4) >> 3;
390 ptr[0] = (2 * p2 + 3 * p5 + 3 * p7 + 4) >> 3;
391 ptr[1 * a_stride] = (1 * p2 + 3 * p6 + 4 * p7 + 4) >> 3;
401 x0 = (2 * p3 - 5 * p4 + 5 * p5 - 2 * p6 + 4) >> 3;
403 x1 = (2 * p1 - 5 * p2 + 5 * p3 - 2 * p4 + 4) >> 3;
404 x2 = (2 * p5 - 5 * p6 + 5 * p7 - 2 * p8 + 4) >> 3;
409 if (x > 0 && (m ^ x0) < 0) {
413 m = (m ^ sign) - sign;
421 x = (x ^ sign) - sign;
423 ptr[-1 * a_stride] -= x;
void(* v_loop_filter)(uint8_t *src, ptrdiff_t stride, int qscale)
void(* h_loop_filter)(uint8_t *src, ptrdiff_t stride, int qscale)
void(* spatial_compensation[12])(const uint8_t *restrict src, uint8_t *restrict dst, ptrdiff_t stride)
void(* setup_spatial_compensation)(const uint8_t *restrict src, uint8_t *restrict dst, ptrdiff_t stride, int *range, int *sum, int edges)