summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2013-04-23 14:12:08 -0700
committerRonald S. Bultje <rbultje@google.com>2013-04-24 09:45:43 -0700
commit5b57580cd9620d3cd372ea30340c7e7fe3312948 (patch)
tree65eb66d926b9a856fb2025054cd9a4f9716ca059 /vp9
parente0fc9201fe3965e80f92af39d309e788ffb472b6 (diff)
downloadlibvpx-5b57580cd9620d3cd372ea30340c7e7fe3312948.tar
libvpx-5b57580cd9620d3cd372ea30340c7e7fe3312948.tar.gz
libvpx-5b57580cd9620d3cd372ea30340c7e7fe3312948.tar.bz2
libvpx-5b57580cd9620d3cd372ea30340c7e7fe3312948.zip
Change chroma loopfilter to skip inner SB edges for tx16x16 also.
Change-Id: I6ea9e110b5c5b07ab7d092886dbd51a6eccc0217
Diffstat (limited to 'vp9')
-rw-r--r--vp9/common/vp9_loopfilter.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/vp9/common/vp9_loopfilter.c b/vp9/common/vp9_loopfilter.c
index 0ce41be54..0bb79689d 100644
--- a/vp9/common/vp9_loopfilter.c
+++ b/vp9/common/vp9_loopfilter.c
@@ -308,7 +308,8 @@ static void lpf_sb32(VP9_COMMON *cm, const MODE_INFO *mode_info_context,
do_left_v = !(wbl >= 3 /* 32x16 or >=32x32 */ && (tx_size >= TX_32X32 ||
sb_mb_lf_skip(mode_info_context, mi)));
do_above_h = (mb_row > 0);
- do_left_v_mbuv = do_left_v;
+ do_left_v_mbuv = !(wbl >= 3 /* 32x16 or >=32x32 */ && (tx_size >= TX_16X16 ||
+ sb_mb_lf_skip(mode_info_context, mi)));
do_above_h_mbuv = !(sb_type >= BLOCK_SIZE_SB64X64 &&
tx_size >= TX_32X32 && (mb_row & 2));
lpf_mb(cm, mi, do_left_v, do_above_h,
@@ -325,7 +326,8 @@ static void lpf_sb32(VP9_COMMON *cm, const MODE_INFO *mode_info_context,
sb_mb_lf_skip(mode_info_context, mi)));
do_left_v_mbuv = !(sb_type >= BLOCK_SIZE_SB64X64 &&
tx_size >= TX_32X32 && (mb_col & 2));
- do_above_h_mbuv = do_above_h;
+ do_above_h_mbuv = !(hbl >= 3 /* 16x32 or >=32x32 */ && (tx_size >= TX_16X16 ||
+ sb_mb_lf_skip(mode_info_context, mi)));
lpf_mb(cm, mi, do_left_v, do_above_h,
do_left_v_mbuv, do_above_h_mbuv,
y_ptr + 16 * y_stride,
@@ -339,8 +341,10 @@ static void lpf_sb32(VP9_COMMON *cm, const MODE_INFO *mode_info_context,
sb_mb_lf_skip(mi - 1, mi)));
do_above_h = !(hbl >= 3 /* 16x32 or >=32x32 */ && (tx_size >= TX_32X32 ||
sb_mb_lf_skip(mode_info_context + 1, mi)));
- do_left_v_mbuv = do_left_v;
- do_above_h_mbuv = do_above_h;
+ do_left_v_mbuv = (wbl >= 3 /* 32x16 or >=32x32 */ && (tx_size >= TX_16X16 ||
+ sb_mb_lf_skip(mi - 1, mi)));
+ do_above_h_mbuv = !(hbl >= 3 /* 16x32 or >=32x32 */ && (tx_size >= TX_16X16 ||
+ sb_mb_lf_skip(mode_info_context + 1, mi)));
lpf_mb(cm, mi, do_left_v, do_above_h,
do_left_v_mbuv, do_above_h_mbuv,
y_ptr + 16 * y_stride + 16,