Merge "Loopfilter: use the current block only for skip" into experimental

This commit is contained in:
Yaowu Xu 2013-06-09 21:17:54 -07:00 committed by Gerrit Code Review
commit 9c44ce9f4b

View File

@ -677,21 +677,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