summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2013-06-09 21:17:47 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-06-09 21:17:47 -0700
commit2e1fd0a4974f24a65721d3daeb4e7127edbd8c76 (patch)
treed62f2130479ddd75680d7349f4d0752568e5bb9f
parentc3f9b070ca02f492fd007bcad1eade9493807cf0 (diff)
parent5c5223860a7cd0361ff8c6cb32e8f67cbb9734d9 (diff)
downloadlibvpx-2e1fd0a4974f24a65721d3daeb4e7127edbd8c76.tar
libvpx-2e1fd0a4974f24a65721d3daeb4e7127edbd8c76.tar.gz
libvpx-2e1fd0a4974f24a65721d3daeb4e7127edbd8c76.tar.bz2
libvpx-2e1fd0a4974f24a65721d3daeb4e7127edbd8c76.zip
Merge "Modified loop filter edge skipping" into experimental
-rw-r--r--vp9/common/vp9_loopfilter.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/vp9/common/vp9_loopfilter.c b/vp9/common/vp9_loopfilter.c
index 30fc278c5..131188e2e 100644
--- a/vp9/common/vp9_loopfilter.c
+++ b/vp9/common/vp9_loopfilter.c
@@ -684,8 +684,14 @@ static void filter_block_plane(VP9_COMMON *cm, MACROBLOCKD *xd,
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;
- const int skip_this_c = skip_this && skip_left;
- const int skip_this_r = skip_this && skip_above;
+ // 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;
+ // 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 TX_SIZE tx_size = plane ? get_uv_tx_size(xd) : mi[c].mbmi.txfm_size;
// Filter level can vary per MI