Skip to content
Snippets Groups Projects
Commit 9831f205 authored by John Koleszar's avatar John Koleszar
Browse files

Disallow wide loopfilter on some chroma borders

Don't do the 15 tap filter if there aren't 8 pixels below/right of the
edge.

Change-Id: I62f16437c1d9ba59b6901a5fe71ddb2f472da344
parent 551f37d6
No related branches found
No related tags found
No related merge requests found
......@@ -299,6 +299,7 @@ static void filter_block_plane(VP9_COMMON *cm, MACROBLOCKD *xd,
const TX_SIZE tx_size = plane ? get_uv_tx_size(&mi[c].mbmi)
: mi[c].mbmi.txfm_size;
const int skip_border_4x4_c = ss_x && mi_col + c == cm->mi_cols - 1;
const int skip_border_4x4_r = ss_y && mi_row + r == cm->mi_rows - 1;
// Filter level can vary per MI
if (!build_lfi(cm, &mi[c].mbmi,
......@@ -307,15 +308,31 @@ static void filter_block_plane(VP9_COMMON *cm, MACROBLOCKD *xd,
// Build masks based on the transform size of each block
if (tx_size == TX_32X32) {
if (!skip_this_c && ((c >> ss_x) & 3) == 0)
mask_16x16_c |= 1 << (c >> ss_x);
if (!skip_this_r && ((r >> ss_y) & 3) == 0)
mask_16x16[r] |= 1 << (c >> ss_x);
if (!skip_this_c && ((c >> ss_x) & 3) == 0) {
if (!skip_border_4x4_c)
mask_16x16_c |= 1 << (c >> ss_x);
else
mask_8x8_c |= 1 << (c >> ss_x);
}
if (!skip_this_r && ((r >> ss_y) & 3) == 0) {
if (!skip_border_4x4_r)
mask_16x16[r] |= 1 << (c >> ss_x);
else
mask_8x8[r] |= 1 << (c >> ss_x);
}
} else if (tx_size == TX_16X16) {
if (!skip_this_c && ((c >> ss_x) & 1) == 0)
mask_16x16_c |= 1 << (c >> ss_x);
if (!skip_this_r && ((r >> ss_y) & 1) == 0)
mask_16x16[r] |= 1 << (c >> ss_x);
if (!skip_this_c && ((c >> ss_x) & 1) == 0) {
if (!skip_border_4x4_c)
mask_16x16_c |= 1 << (c >> ss_x);
else
mask_8x8_c |= 1 << (c >> ss_x);
}
if (!skip_this_r && ((r >> ss_y) & 1) == 0) {
if (!skip_border_4x4_r)
mask_16x16[r] |= 1 << (c >> ss_x);
else
mask_8x8[r] |= 1 << (c >> ss_x);
}
} else {
// force 8x8 filtering on 32x32 boundaries
if (!skip_this_c) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment