From f7e4b72df8a0cd615660e9f9e3f443c8754134f1 Mon Sep 17 00:00:00 2001 From: John Koleszar Date: Fri, 7 Jun 2013 11:21:35 -0700 Subject: [PATCH] Loopfilter: use the current block only for skip Use the current block's skip flag to determine edge skipping. Change-Id: I4ba81f899286afbc3f6bb83eba2ef146a01b6fa4 --- vp9/common/vp9_loopfilter.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/vp9/common/vp9_loopfilter.c b/vp9/common/vp9_loopfilter.c index 643233c..62fcf42 100644 --- a/vp9/common/vp9_loopfilter.c +++ b/vp9/common/vp9_loopfilter.c @@ -676,21 +676,15 @@ static void filter_block_plane(VP9_COMMON *cm, MACROBLOCKD *xd, // Determine the vertical edges that need filtering for (c = 0; c < 64 / MI_SIZE && mi_col + c < cm->mi_cols; c += col_step) { const MODE_INFO const *mi = xd->mode_info_context; - const MODE_INFO const *mi_above = xd->mode_info_context - - cm->mode_info_stride; - const int skip_above = - (r + mi_row > 0) ? mi_above[c].mbmi.mb_skip_coeff : 0; - const int skip_left = - (c + mi_col > 0) ? mi[c - 1].mbmi.mb_skip_coeff : 0; const int skip_this = mi[c].mbmi.mb_skip_coeff; // left edge of current unit is block/partition edge -> no skip const int block_edge_left = b_width_log2(mi->mbmi.sb_type) ? !(c & ((1 << (b_width_log2(mi->mbmi.sb_type)-1)) - 1)) : 1; - const int skip_this_c = skip_this && skip_left && !block_edge_left; + const int skip_this_c = skip_this && !block_edge_left; // top edge of current unit is block/partition edge -> no skip const int block_edge_above = b_height_log2(mi->mbmi.sb_type) ? !(r & ((1 << (b_height_log2(mi->mbmi.sb_type)-1)) - 1)) : 1; - const int skip_this_r = skip_this && skip_above && !block_edge_above; + const int skip_this_r = skip_this && !block_edge_above; const TX_SIZE tx_size = plane ? get_uv_tx_size(xd) : mi[c].mbmi.txfm_size; // Filter level can vary per MI -- 2.7.4