EC_ADAPT: use tile context for switchable filter. Change-Id: I7bbd3c62341ede45628641766b8683b77f3a7efb
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index 105d3f1..25c7eac 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -1104,6 +1104,12 @@ MB_MODE_INFO *const mbmi, aom_reader *r) { FRAME_COUNTS *counts = xd->counts; +#if CONFIG_EC_ADAPT + FRAME_CONTEXT *ec_ctx = xd->tile_ctx; +#else + FRAME_CONTEXT *ec_ctx = cm->fc; +#endif + #if CONFIG_DUAL_FILTER int dir; if (cm->interp_filter != SWITCHABLE) { @@ -1119,11 +1125,11 @@ #if CONFIG_EC_MULTISYMBOL mbmi->interp_filter[dir] = (InterpFilter)av1_switchable_interp_inv[aom_read_symbol( - r, cm->fc->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS, + r, ec_ctx->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS, ACCT_STR)]; #else mbmi->interp_filter[dir] = (InterpFilter)aom_read_tree( - r, av1_switchable_interp_tree, cm->fc->switchable_interp_prob[ctx], + r, av1_switchable_interp_tree, ec_ctx->switchable_interp_prob[ctx], ACCT_STR); #endif if (counts) ++counts->switchable_interp[ctx][mbmi->interp_filter[dir]]; @@ -1143,11 +1149,11 @@ #if CONFIG_EC_MULTISYMBOL mbmi->interp_filter = (InterpFilter)av1_switchable_interp_inv[aom_read_symbol( - r, cm->fc->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS, + r, ec_ctx->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS, ACCT_STR)]; #else mbmi->interp_filter = (InterpFilter)aom_read_tree( - r, av1_switchable_interp_tree, cm->fc->switchable_interp_prob[ctx], + r, av1_switchable_interp_tree, ec_ctx->switchable_interp_prob[ctx], ACCT_STR); #endif if (counts) ++counts->switchable_interp[ctx][mbmi->interp_filter];
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index 4687944..286e97c 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -1072,6 +1072,11 @@ aom_writer *w) { AV1_COMMON *const cm = &cpi->common; const MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi; +#if CONFIG_EC_ADAPT + FRAME_CONTEXT *ec_ctx = xd->tile_ctx; +#else + FRAME_CONTEXT *ec_ctx = cm->fc; +#endif if (cm->interp_filter == SWITCHABLE) { #if CONFIG_DUAL_FILTER @@ -1087,7 +1092,7 @@ has_subpel_mv_component(xd->mi[0], xd, dir + 2))) { const int ctx = av1_get_pred_context_switchable_interp(xd, dir); av1_write_token(w, av1_switchable_interp_tree, - cm->fc->switchable_interp_prob[ctx], + ec_ctx->switchable_interp_prob[ctx], &switchable_interp_encodings[mbmi->interp_filter[dir]]); ++cpi->interp_filter_selected[0][mbmi->interp_filter[dir]]; } @@ -1097,10 +1102,10 @@ const int ctx = av1_get_pred_context_switchable_interp(xd); #if CONFIG_EC_MULTISYMBOL aom_write_symbol(w, av1_switchable_interp_ind[mbmi->interp_filter], - cm->fc->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS); + ec_ctx->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS); #else av1_write_token(w, av1_switchable_interp_tree, - cm->fc->switchable_interp_prob[ctx], + ec_ctx->switchable_interp_prob[ctx], &switchable_interp_encodings[mbmi->interp_filter]); #endif ++cpi->interp_filter_selected[0][mbmi->interp_filter];