mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-12-18 03:04:06 +00:00
Use the new PDPC filtering in angular intra
This commit is contained in:
parent
5bebb18943
commit
cb0d7c340a
|
@ -199,9 +199,21 @@ static void kvz_angular_pred_generic(
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: replace latter width with height
|
// TODO: replace latter width with height
|
||||||
int scale = ((kvz_math_floor_log2(width) - 2 + kvz_math_floor_log2(width) - 2 + 2) >> 2);
|
int scale = MIN(2,kvz_math_floor_log2(width) - (kvz_math_floor_log2(3* modedisp2invsampledisp[abs(mode_disp)] - 2 ) - 8));
|
||||||
|
|
||||||
// PDPC
|
// PDPC
|
||||||
|
if (pred_mode == 2 || pred_mode == 66 || sample_disp == 0 || sample_disp >= 12) {
|
||||||
|
int inv_angle_sum = 256;
|
||||||
|
for (int x = 0; x < MIN(3 << scale, width); x++) {
|
||||||
|
inv_angle_sum += modedisp2invsampledisp[abs(mode_disp)];
|
||||||
|
|
||||||
|
int wL = 32 >> (2 * x >> scale);
|
||||||
|
const kvz_pixel left = ref_side[y + (inv_angle_sum >> 9) + 1];
|
||||||
|
dst[y * width + x] = dst[y * width + x] + ((wL * (left - dst[y * width + x]) + 32) >> 6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (pred_mode == 2 || pred_mode == 66) {
|
if (pred_mode == 2 || pred_mode == 66) {
|
||||||
int wT = 16 >> MIN(31, ((y << 1) >> scale));
|
int wT = 16 >> MIN(31, ((y << 1) >> scale));
|
||||||
for (int x = 0; x < width; x++) {
|
for (int x = 0; x < width; x++) {
|
||||||
|
@ -231,7 +243,7 @@ static void kvz_angular_pred_generic(
|
||||||
kvz_pixel left = p[delta_frac_0 >> 5];
|
kvz_pixel left = p[delta_frac_0 >> 5];
|
||||||
dst[y * width + x] = CLIP_TO_PIXEL((wL * left + (64 - wL) * dst[y * width + x] + 32) >> 6);
|
dst[y * width + x] = CLIP_TO_PIXEL((wL * left + (64 - wL) * dst[y * width + x] + 32) >> 6);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
Loading…
Reference in a new issue