27 const pixel *lut = _lut;
29 dst_stride /=
sizeof(
pixel);
31 for (
int y = 0; y <
height; y++) {
32 for (
int x = 0; x <
width; x++)
49 const int vb_above = vb_pos - 4;
50 const int vb_below = vb_pos + 3;
52 dst_stride /=
sizeof(
pixel);
53 src_stride /=
sizeof(
pixel);
57 const pixel *s0 =
src + y * src_stride + x;
58 const pixel *s1 = s0 + src_stride;
59 const pixel *s2 = s0 - src_stride;
60 const pixel *s3 = s1 + src_stride;
61 const pixel *s4 = s2 - src_stride;
62 const pixel *s5 = s3 + src_stride;
63 const pixel *s6 = s4 - src_stride;
68 const pixel *p0 = s0 +
i * src_stride;
69 const pixel *p1 = s1 +
i * src_stride;
70 const pixel *p2 = s2 +
i * src_stride;
71 const pixel *p3 = s3 +
i * src_stride;
72 const pixel *p4 = s4 +
i * src_stride;
73 const pixel *p5 = s5 +
i * src_stride;
74 const pixel *p6 = s6 +
i * src_stride;
76 const int is_near_vb_above = (y +
i < vb_pos) && (y +
i >= vb_pos - 1);
77 const int is_near_vb_below = (y +
i >= vb_pos) && (y +
i <= vb_pos);
78 const int is_near_vb = is_near_vb_above || is_near_vb_below;
80 if ((y +
i < vb_pos) && ((y +
i) > vb_above)) {
81 p1 = (y +
i == vb_pos - 1) ? p0 : p1;
82 p3 = (y +
i >= vb_pos - 2) ? p1 : p3;
83 p5 = (y +
i >= vb_pos - 3) ? p3 : p5;
85 p2 = (y +
i == vb_pos - 1) ? p0 : p2;
86 p4 = (y +
i >= vb_pos - 2) ? p2 : p4;
87 p6 = (y +
i >= vb_pos - 3) ? p4 : p6;
88 }
else if ((y +
i >= vb_pos) && ((y +
i) < vb_below)) {
89 p2 = (y +
i == vb_pos ) ? p0 : p2;
90 p4 = (y +
i <= vb_pos + 1) ? p2 : p4;
91 p6 = (y +
i <= vb_pos + 2) ? p4 : p6;
93 p1 = (y +
i == vb_pos ) ? p0 : p1;
94 p3 = (y +
i <= vb_pos + 1) ? p1 : p3;
95 p5 = (y +
i <= vb_pos + 2) ? p3 : p5;
100 const pixel curr = *p0;
118 sum = (sum + (1 << ((
shift + 3) - 1))) >> (
shift + 3);
143 const int vb_above = vb_pos - 2;
144 const int vb_below = vb_pos + 1;
146 dst_stride /=
sizeof(
pixel);
147 src_stride /=
sizeof(
pixel);
151 const pixel *s0 =
src + y * src_stride + x;
152 const pixel *s1 = s0 + src_stride;
153 const pixel *s2 = s0 - src_stride;
154 const pixel *s3 = s1 + src_stride;
155 const pixel *s4 = s2 - src_stride;
160 const pixel *p0 = s0 +
i * src_stride;
161 const pixel *p1 = s1 +
i * src_stride;
162 const pixel *p2 = s2 +
i * src_stride;
163 const pixel *p3 = s3 +
i * src_stride;
164 const pixel *p4 = s4 +
i * src_stride;
166 const int is_near_vb_above = (y +
i < vb_pos) && (y +
i >= vb_pos - 1);
167 const int is_near_vb_below = (y +
i >= vb_pos) && (y +
i <= vb_pos);
168 const int is_near_vb = is_near_vb_above || is_near_vb_below;
170 if ((y +
i < vb_pos) && ((y +
i) >= vb_above)) {
171 p1 = (y +
i == vb_pos - 1) ? p0 : p1;
172 p3 = (y +
i >= vb_pos - 2) ? p1 : p3;
174 p2 = (y +
i == vb_pos - 1) ? p0 : p2;
175 p4 = (y +
i >= vb_pos - 2) ? p2 : p4;
176 }
else if ((y +
i >= vb_pos) && ((y +
i) <= vb_below)) {
177 p2 = (y +
i == vb_pos ) ? p0 : p2;
178 p4 = (y +
i <= vb_pos + 1) ? p2 : p4;
180 p1 = (y +
i == vb_pos ) ? p0 : p1;
181 p3 = (y +
i <= vb_pos + 1) ? p1 : p3;
186 const pixel curr = *p0;
198 sum = (sum + (1 << ((
shift + 3) - 1))) >> (
shift + 3);
213 static void FUNC(
alf_filter_cc)(uint8_t *
_dst, ptrdiff_t dst_stride,
const uint8_t *_luma,
const ptrdiff_t luma_stride,
214 const int width,
const int height,
const int hs,
const int vs,
const int16_t *
filter,
const int vb_pos)
216 const ptrdiff_t
stride = luma_stride /
sizeof(
pixel);
218 dst_stride /=
sizeof(
pixel);
220 for (
int y = 0; y <
height; y++) {
221 for (
int x = 0; x <
width; x++) {
231 const int pos = y << vs;
232 if (!vs && (
pos == vb_pos ||
pos == vb_pos + 1))
235 if (
pos == (vb_pos - 2) ||
pos == (vb_pos + 1))
237 else if (
pos == (vb_pos - 1) ||
pos == vb_pos)
255 #define ALF_DIR_VERT 0
256 #define ALF_DIR_HORZ 1
257 #define ALF_DIR_DIGA0 2
258 #define ALF_DIR_DIGA1 3
260 static void FUNC(
alf_get_idx)(
int *class_idx,
int *transpose_idx,
const int *sum,
const int ac)
262 static const int arg_var[] = {0, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4 };
264 int hv0, hv1, dir_hv, d0, d1, dir_d, hvd1, hvd0, sum_hv, dir1;
275 dir1 = (uint64_t)d1 * hv0 <= (uint64_t)hv1 * d0;
276 hvd1 = dir1 ? hv1 : d1;
277 hvd0 = dir1 ? hv0 : d0;
281 if (hvd1 * 2 > 9 * hvd0)
282 *class_idx += ((dir1 << 1) + 2) * 5;
283 else if (hvd1 > 2 * hvd0)
284 *class_idx += ((dir1 << 1) + 1) * 5;
286 *transpose_idx = dir_d * 2 + dir_hv;
290 const uint8_t *
_src,
const ptrdiff_t _src_stride,
const int width,
const int height,
291 const int vb_pos,
int *gradient_tmp)
301 const ptrdiff_t src_stride = _src_stride /
sizeof(
pixel);
306 const pixel *s0 =
src + y * src_stride;
307 const pixel *s1 = s0 + src_stride;
308 const pixel *s2 = s1 + src_stride;
309 const pixel *s3 = s2 + src_stride;
319 const pixel *p0 = s1 + x;
321 const int val0 = (*p0) << 1;
324 const pixel *p1 = s2 + x + 1;
326 const int val1 = (*p1) << 1;
343 }
else if (y == vb_pos) {
354 for (
int i = start;
i < end;
i++) {
355 for (
int j = 0; j <
size; j++) {
374 const int *class_idx,
const int *transpose_idx,
const int size,
375 const int16_t *coeff_set,
const uint8_t *clip_idx_set,
const uint8_t *class_to_filt)
378 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
379 { 9, 4, 10, 8, 1, 5, 11, 7, 3, 0, 2, 6 },
380 { 0, 3, 2, 1, 8, 7, 6, 5, 4, 9, 10, 11 },
381 { 9, 8, 10, 4, 3, 7, 11, 5, 1, 0, 2, 6 },
384 const int16_t clip_set[] = {
388 for (
int i = 0;
i <
size;
i++) {
393 const int idx =
index[transpose_idx[
i]][j];
394 *
coeff++ = src_coeff[idx];
395 *
clip++ = clip_set[clip_idx[idx]];
406 #define P7 pix[-8 * xstride]
407 #define P6 pix[-7 * xstride]
408 #define P5 pix[-6 * xstride]
409 #define P4 pix[-5 * xstride]
410 #define P3 pix[-4 * xstride]
411 #define P2 pix[-3 * xstride]
412 #define P1 pix[-2 * xstride]
413 #define P0 pix[-1 * xstride]
414 #define Q0 pix[0 * xstride]
415 #define Q1 pix[1 * xstride]
416 #define Q2 pix[2 * xstride]
417 #define Q3 pix[3 * xstride]
418 #define Q4 pix[4 * xstride]
419 #define Q5 pix[5 * xstride]
420 #define Q6 pix[6 * xstride]
421 #define Q7 pix[7 * xstride]
422 #define P(x) pix[(-(x)-1) * xstride]
423 #define Q(x) pix[(x) * xstride]
426 #define TP7 pix[-8 * xstride + 3 * ystride]
427 #define TP6 pix[-7 * xstride + 3 * ystride]
428 #define TP5 pix[-6 * xstride + 3 * ystride]
429 #define TP4 pix[-5 * xstride + 3 * ystride]
430 #define TP3 pix[-4 * xstride + 3 * ystride]
431 #define TP2 pix[-3 * xstride + 3 * ystride]
432 #define TP1 pix[-2 * xstride + 3 * ystride]
433 #define TP0 pix[-1 * xstride + 3 * ystride]
434 #define TQ0 pix[0 * xstride + 3 * ystride]
435 #define TQ1 pix[1 * xstride + 3 * ystride]
436 #define TQ2 pix[2 * xstride + 3 * ystride]
437 #define TQ3 pix[3 * xstride + 3 * ystride]
438 #define TQ4 pix[4 * xstride + 3 * ystride]
439 #define TQ5 pix[5 * xstride + 3 * ystride]
440 #define TQ6 pix[6 * xstride + 3 * ystride]
441 #define TQ7 pix[7 * xstride + 3 * ystride]
442 #define TP(x) pix[(-(x)-1) * xstride + 3 * ystride]
443 #define TQ(x) pix[(x) * xstride + 3 * ystride]
445 #define FP3 pix[-4 * xstride + 1 * ystride]
446 #define FP2 pix[-3 * xstride + 1 * ystride]
447 #define FP1 pix[-2 * xstride + 1 * ystride]
448 #define FP0 pix[-1 * xstride + 1 * ystride]
449 #define FQ0 pix[0 * xstride + 1 * ystride]
450 #define FQ1 pix[1 * xstride + 1 * ystride]
451 #define FQ2 pix[2 * xstride + 1 * ystride]
452 #define FQ3 pix[3 * xstride + 1 * ystride]
457 const uint8_t no_p,
const uint8_t no_q,
const uint8_t max_len_p,
const uint8_t max_len_q)
459 for (
int d = 0; d < 4; d++) {
475 if (max_len_p == 5 && max_len_q == 5)
476 m = (p4 + p3 + 2 * (p2 + p1 + p0 +
q0 +
q1 + q2) + q3 + q4 + 8) >> 4;
477 else if (max_len_p == max_len_q)
478 m = (p6 + p5 + p4 + p3 + p2 + p1 + 2 * (p0 +
q0) +
q1 + q2 + q3 + q4 + q5 + q6 + 8) >> 4;
479 else if (max_len_p + max_len_q == 12)
480 m = (p5 + p4 + p3 + p2 + 2 * (p1 + p0 +
q0 +
q1) + q2 + q3 + q4 + q5 + 8) >> 4;
481 else if (max_len_p + max_len_q == 8)
482 m = (p3 + p2 + p1 + p0 +
q0 +
q1 + q2 + q3 + 4) >> 3;
483 else if (max_len_q == 7)
484 m = (2 * (p2 + p1 + p0 +
q0) + p0 + p1 +
q1 + q2 + q3 + q4 + q5 + q6 + 8) >> 4;
486 m = (p6 + p5 + p4 + p3 + p2 + p1 + 2 * (q2 +
q1 +
q0 + p0) +
q0 +
q1 + 8) >> 4;
488 const int refp = (
P(max_len_p) +
P(max_len_p - 1) + 1) >> 1;
489 if (max_len_p == 3) {
490 P0 = p0 +
av_clip(((m * 53 + refp * 11 + 32) >> 6) - p0, -(tc * 6 >> 1), (tc * 6 >> 1));
491 P1 = p1 +
av_clip(((m * 32 + refp * 32 + 32) >> 6) - p1, -(tc * 4 >> 1), (tc * 4 >> 1));
492 P2 = p2 +
av_clip(((m * 11 + refp * 53 + 32) >> 6) - p2, -(tc * 2 >> 1), (tc * 2 >> 1));
493 }
else if (max_len_p == 5) {
494 P0 = p0 +
av_clip(((m * 58 + refp * 6 + 32) >> 6) - p0, -(tc * 6 >> 1), (tc * 6 >> 1));
495 P1 = p1 +
av_clip(((m * 45 + refp * 19 + 32) >> 6) - p1, -(tc * 5 >> 1), (tc * 5 >> 1));
496 P2 = p2 +
av_clip(((m * 32 + refp * 32 + 32) >> 6) - p2, -(tc * 4 >> 1), (tc * 4 >> 1));
497 P3 = p3 +
av_clip(((m * 19 + refp * 45 + 32) >> 6) - p3, -(tc * 3 >> 1), (tc * 3 >> 1));
498 P4 = p4 +
av_clip(((m * 6 + refp * 58 + 32) >> 6) - p4, -(tc * 2 >> 1), (tc * 2 >> 1));
500 P0 = p0 +
av_clip(((m * 59 + refp * 5 + 32) >> 6) - p0, -(tc * 6 >> 1), (tc * 6 >> 1));
501 P1 = p1 +
av_clip(((m * 50 + refp * 14 + 32) >> 6) - p1, -(tc * 5 >> 1), (tc * 5 >> 1));
502 P2 = p2 +
av_clip(((m * 41 + refp * 23 + 32) >> 6) - p2, -(tc * 4 >> 1), (tc * 4 >> 1));
503 P3 = p3 +
av_clip(((m * 32 + refp * 32 + 32) >> 6) - p3, -(tc * 3 >> 1), (tc * 3 >> 1));
504 P4 = p4 +
av_clip(((m * 23 + refp * 41 + 32) >> 6) - p4, -(tc * 2 >> 1), (tc * 2 >> 1));
505 P5 = p5 +
av_clip(((m * 14 + refp * 50 + 32) >> 6) - p5, -(tc * 1 >> 1), (tc * 1 >> 1));
506 P6 = p6 +
av_clip(((m * 5 + refp * 59 + 32) >> 6) - p6, -(tc * 1 >> 1), (tc * 1 >> 1));
510 const int refq = (
Q(max_len_q) +
Q(max_len_q - 1) + 1) >> 1;
511 if (max_len_q == 3) {
512 Q0 =
q0 +
av_clip(((m * 53 + refq * 11 + 32) >> 6) -
q0, -(tc * 6 >> 1), (tc * 6 >> 1));
513 Q1 =
q1 +
av_clip(((m * 32 + refq * 32 + 32) >> 6) -
q1, -(tc * 4 >> 1), (tc * 4 >> 1));
514 Q2 = q2 +
av_clip(((m * 11 + refq * 53 + 32) >> 6) - q2, -(tc * 2 >> 1), (tc * 2 >> 1));
515 }
else if (max_len_q == 5) {
516 Q0 =
q0 +
av_clip(((m * 58 + refq * 6 + 32) >> 6) -
q0, -(tc * 6 >> 1), (tc * 6 >> 1));
517 Q1 =
q1 +
av_clip(((m * 45 + refq * 19 + 32) >> 6) -
q1, -(tc * 5 >> 1), (tc * 5 >> 1));
518 Q2 = q2 +
av_clip(((m * 32 + refq * 32 + 32) >> 6) - q2, -(tc * 4 >> 1), (tc * 4 >> 1));
519 Q3 = q3 +
av_clip(((m * 19 + refq * 45 + 32) >> 6) - q3, -(tc * 3 >> 1), (tc * 3 >> 1));
520 Q4 = q4 +
av_clip(((m * 6 + refq * 58 + 32) >> 6) - q4, -(tc * 2 >> 1), (tc * 2 >> 1));
522 Q0 =
q0 +
av_clip(((m * 59 + refq * 5 + 32) >> 6) -
q0, -(tc * 6 >> 1), (tc * 6 >> 1));
523 Q1 =
q1 +
av_clip(((m * 50 + refq * 14 + 32) >> 6) -
q1, -(tc * 5 >> 1), (tc * 5 >> 1));
524 Q2 = q2 +
av_clip(((m * 41 + refq * 23 + 32) >> 6) - q2, -(tc * 4 >> 1), (tc * 4 >> 1));
525 Q3 = q3 +
av_clip(((m * 32 + refq * 32 + 32) >> 6) - q3, -(tc * 3 >> 1), (tc * 3 >> 1));
526 Q4 = q4 +
av_clip(((m * 23 + refq * 41 + 32) >> 6) - q4, -(tc * 2 >> 1), (tc * 2 >> 1));
527 Q5 = q5 +
av_clip(((m * 14 + refq * 50 + 32) >> 6) - q5, -(tc * 1 >> 1), (tc * 1 >> 1));
528 Q6 = q6 +
av_clip(((m * 5 + refq * 59 + 32) >> 6) - q6, -(tc * 1 >> 1), (tc * 1 >> 1));
537 const int32_t *_beta,
const int32_t *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q,
538 const uint8_t *_max_len_p,
const uint8_t *_max_len_q,
const int hor_ctu_edge)
540 const ptrdiff_t xstride = _xstride /
sizeof(
pixel);
541 const ptrdiff_t ystride = _ystride /
sizeof(
pixel);
543 for (
int i = 0;
i < 2;
i++) {
555 const int d0 = dp0 + dq0;
556 const int d3 = dp3 + dq3;
557 const int tc25 = ((tc * 5 + 1) >> 1);
559 const int no_p = _no_p[
i];
560 const int no_q = _no_q[
i];
562 int max_len_p = _max_len_p[
i];
563 int max_len_q = _max_len_q[
i];
565 const int large_p = (max_len_p > 3 && !hor_ctu_edge);
566 const int large_q = max_len_q > 3;
569 const int beta_3 = beta >> 3;
570 const int beta_2 = beta >> 2;
572 if (large_p || large_q) {
573 const int dp0l = large_p ? ((dp0 +
abs(
P5 - 2 *
P4 +
P3) + 1) >> 1) : dp0;
574 const int dq0l = large_q ? ((dq0 +
abs(
Q5 - 2 *
Q4 +
Q3) + 1) >> 1) : dq0;
575 const int dp3l = large_p ? ((dp3 +
abs(
TP5 - 2 *
TP4 +
TP3) + 1) >> 1) : dp3;
576 const int dq3l = large_q ? ((dq3 +
abs(
TQ5 - 2 *
TQ4 +
TQ3) + 1) >> 1) : dq3;
577 const int d0l = dp0l + dq0l;
578 const int d3l = dp3l + dq3l;
579 const int beta53 = beta * 3 >> 5;
580 const int beta_4 = beta >> 4;
581 max_len_p = large_p ? max_len_p : 3;
582 max_len_q = large_q ? max_len_q : 3;
584 if (d0l + d3l < beta) {
589 const int sp0 = large_p ? ((sp0l +
abs(
P3 -
P(max_len_p)) + 1) >> 1) : sp0l;
590 const int sp3 = large_p ? ((sp3l +
abs(
TP3 -
TP(max_len_p)) + 1) >> 1) : sp3l;
591 const int sq0 = large_q ? ((sq0l +
abs(
Q3 -
Q(max_len_q)) + 1) >> 1) : sq0l;
592 const int sq3 = large_q ? ((sq3l +
abs(
TQ3 -
TQ(max_len_q)) + 1) >> 1) : sq3l;
593 if (sp0 + sq0 < beta53 &&
abs(
P0 -
Q0) < tc25 &&
594 sp3 + sq3 < beta53 &&
abs(
TP0 -
TQ0) < tc25 &&
595 (d0l << 1) < beta_4 && (d3l << 1) < beta_4) {
601 if (d0 + d3 < beta) {
602 if (max_len_p > 2 && max_len_q > 2 &&
605 (d0 << 1) < beta_2 && (d3 << 1) < beta_2) {
610 if (max_len_p > 1 && max_len_q > 1) {
611 if (dp0 + dp3 < ((beta + (beta >> 1)) >> 3))
613 if (dq0 + dq3 < ((beta + (beta >> 1)) >> 3))
624 const int size,
const int32_t tc,
const uint8_t no_p,
const uint8_t no_q)
626 for (
int d = 0; d <
size; d++) {
636 P0 =
av_clip((p3 + p2 + p1 + 2 * p0 +
q0 +
q1 + q2 + 4) >> 3, p0 - tc, p0 + tc);
637 P1 =
av_clip((2 * p3 + p2 + 2 * p1 + p0 +
q0 +
q1 + 4) >> 3, p1 - tc, p1 + tc);
638 P2 =
av_clip((3 * p3 + 2 * p2 + p1 + p0 +
q0 + 4) >> 3, p2 - tc, p2 + tc );
643 Q2 =
av_clip((p0 +
q0 +
q1 + 2 * q2 + 3 * q3 + 4) >> 3, q2 - tc, q2 + tc);
650 const int size,
const int32_t tc,
const uint8_t no_p,
const uint8_t no_q)
652 for (
int d = 0; d <
size; d++) {
660 P0 =
av_clip((3 * p1 + 2 * p0 +
q0 +
q1 + q2 + 4) >> 3, p0 - tc, p0 + tc);
665 Q2 =
av_clip((p0 +
q0 +
q1 + 2 * q2 + 3 * q3 + 4) >> 3, q2 - tc, q2 + tc);
672 const int32_t *_beta,
const int32_t *_tc,
const uint8_t *_no_p,
const uint8_t *_no_q,
673 const uint8_t *_max_len_p,
const uint8_t *_max_len_q,
const int shift)
675 const ptrdiff_t xstride = _xstride /
sizeof(
pixel);
676 const ptrdiff_t ystride = _ystride /
sizeof(
pixel);
678 const int end = 8 /
size;
680 for (
int i = 0;
i < end;
i++) {
688 const uint8_t no_p = _no_p[
i];
689 const uint8_t no_q = _no_q[
i];
692 const int beta_3 = beta >> 3;
693 const int beta_2 = beta >> 2;
695 const int tc25 = ((tc * 5 + 1) >> 1);
697 uint8_t max_len_p = _max_len_p[
i];
698 uint8_t max_len_q = _max_len_q[
i];
700 if (!max_len_p || !max_len_q)
705 const int p2n = max_len_p == 1 ? p1n : (
shift ?
FP2 :
TP2);
710 const int p3 = max_len_p == 1 ?
P1 :
P3;
711 const int p2 = max_len_p == 1 ?
P1 :
P2;
714 const int dp0 =
abs(p2 - 2 * p1 + p0);
717 const int dp1 =
abs(p2n - 2 * p1n + p0n);
718 const int dq1 =
abs(q2n - 2 * q1n + q0n);
719 const int d0 = dp0 + dq0;
720 const int d1 = dp1 + dq1;
722 if (d0 + d1 < beta) {
723 const int p3n = max_len_p == 1 ? p1n : (
shift ?
FP3 :
TP3);
725 const int dsam0 = (d0 << 1) < beta_2 && (
abs(p3 - p0) +
abs(
Q0 -
Q3) < beta_3) &&
727 const int dsam1 = (d1 << 1) < beta_2 && (
abs(p3n - p0n) +
abs(q0n - q3n) < beta_3) &&
728 abs(p0n - q0n) < tc25;
729 if (!dsam0 || !dsam1)
730 max_len_p = max_len_q = 1;
732 max_len_p = max_len_q = 1;
736 if (max_len_p == 3 && max_len_q == 3)
738 else if (max_len_q == 3)
747 const int32_t *beta,
const int32_t *tc,
const uint8_t *no_p,
const uint8_t *no_q,
748 const uint8_t *max_len_p,
const uint8_t *max_len_q,
int shift)
751 no_p, no_q, max_len_p, max_len_q,
shift);
755 const int32_t *beta,
const int32_t *tc,
const uint8_t *no_p,
const uint8_t *no_q,
756 const uint8_t *max_len_p,
const uint8_t *max_len_q,
int shift)
759 no_p, no_q, max_len_p, max_len_q,
shift);
763 const int32_t *beta,
const int32_t *tc,
const uint8_t *no_p,
const uint8_t *no_q,
764 const uint8_t *max_len_p,
const uint8_t *max_len_q,
const int hor_ctu_edge)
767 no_p, no_q, max_len_p, max_len_q, hor_ctu_edge);
771 const int32_t *beta,
const int32_t *tc,
const uint8_t *no_p,
const uint8_t *no_q,
772 const uint8_t *max_len_p,
const uint8_t *max_len_q,
const int hor_ctu_edge)
775 no_p, no_q, max_len_p, max_len_q, hor_ctu_edge);
781 const ptrdiff_t xstride = _xstride /
sizeof(
pixel);
782 const ptrdiff_t ystride = _ystride /
sizeof(
pixel);