Remove experimental flag of NEW_MULTISYMBOL This experiment has been adopted, we can simplify the code by dropping the associated preprocessor conditionals. Change-Id: I6ac62c2825eabcba8f854cfa25c84638d9a73872
diff --git a/av1/common/entropy.c b/av1/common/entropy.c index 18f3598..bc568cf 100644 --- a/av1/common/entropy.c +++ b/av1/common/entropy.c
@@ -38,7 +38,6 @@ }; /* clang-format on */ -#if CONFIG_NEW_MULTISYMBOL /* Extra bits coded from LSB to MSB */ const aom_cdf_prob av1_cat1_cdf0[CDF_SIZE(2)] = { AOM_CDF2(20352) }; const aom_cdf_prob *av1_cat1_cdf[] = { av1_cat1_cdf0 }; @@ -78,7 +77,6 @@ const aom_cdf_prob *av1_cat6_cdf[] = { av1_cat6_cdf0, av1_cat6_cdf1, av1_cat6_cdf2, av1_cat6_cdf3, av1_cat6_cdf4 }; -#endif /* Extra bits coded from MSB to LSB */ const aom_prob av1_cat1_prob[] = { 159 }; const aom_prob av1_cat2_prob[] = { 165, 145 }; @@ -1658,13 +1656,11 @@ AVERAGE_TILE_CDFS(nmvc[j].comps[k].classes_cdf) AVERAGE_TILE_CDFS(nmvc[j].comps[k].class0_fp_cdf) AVERAGE_TILE_CDFS(nmvc[j].comps[k].fp_cdf) -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(nmvc[j].comps[k].sign_cdf) AVERAGE_TILE_CDFS(nmvc[j].comps[k].hp_cdf) AVERAGE_TILE_CDFS(nmvc[j].comps[k].class0_hp_cdf) AVERAGE_TILE_CDFS(nmvc[j].comps[k].class0_cdf) AVERAGE_TILE_CDFS(nmvc[j].comps[k].bits_cdf) -#endif } } } @@ -1689,10 +1685,8 @@ #if CONFIG_LOOP_RESTORATION AVERAGE_TILE_CDFS(switchable_restore_cdf) -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(wiener_restore_cdf) AVERAGE_TILE_CDFS(sgrproj_restore_cdf) -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_LOOP_RESTORATION } @@ -1711,9 +1705,7 @@ AVERAGE_TILE_CDFS(inter_ext_tx_cdf) AVERAGE_TILE_CDFS(seg.tree_cdf) -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(seg.pred_cdf) -#endif AVERAGE_TILE_CDFS(uv_mode_cdf) #if CONFIG_CFL @@ -1731,10 +1723,8 @@ #endif #endif -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(skip_cdfs) AVERAGE_TILE_CDFS(txfm_partition_cdf) -#endif // CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(palette_y_size_cdf) AVERAGE_TILE_CDFS(palette_uv_size_cdf) AVERAGE_TILE_CDFS(palette_y_color_index_cdf) @@ -1746,10 +1736,8 @@ #if CONFIG_MRC_TX AVERAGE_TILE_CDFS(mrc_mask_intra_cdf) #endif // CONFIG_MRC_TX -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(palette_y_mode_cdf) AVERAGE_TILE_CDFS(palette_uv_mode_cdf) -#endif #if CONFIG_LPF_SB AVERAGE_TILE_CDFS(lpf_reuse_cdf); AVERAGE_TILE_CDFS(lpf_delta_cdf); @@ -1771,13 +1759,10 @@ #endif aom_cdf_prob *fc_cdf_ptr; -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(comp_inter_cdf) AVERAGE_TILE_CDFS(comp_ref_cdf) AVERAGE_TILE_CDFS(comp_bwdref_cdf) -#endif -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(single_ref_cdf) AVERAGE_TILE_CDFS(newmv_cdf) @@ -1788,7 +1773,6 @@ AVERAGE_TILE_CDFS(uni_comp_ref_cdf) AVERAGE_TILE_CDFS(comp_ref_type_cdf) #endif -#endif // FIXME: cdfs not defined for super_tx @@ -1796,10 +1780,8 @@ AVERAGE_TILE_CDFS(compound_type_cdf) -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(interintra_cdf) AVERAGE_TILE_CDFS(wedge_interintra_cdf) -#endif AVERAGE_TILE_CDFS(interintra_mode_cdf) /* NB: kf_y_cdf is discarded after use, so no need @@ -1809,11 +1791,9 @@ if (cm->interp_filter == SWITCHABLE) { AVERAGE_TILE_CDFS(switchable_interp_cdf) } -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(intra_inter_cdf) AVERAGE_TILE_CDFS(motion_mode_cdf) AVERAGE_TILE_CDFS(obmc_cdf) -#endif #if CONFIG_MRC_TX AVERAGE_TILE_CDFS(mrc_mask_inter_cdf) #endif // CONFIG_MRC_TX @@ -1827,8 +1807,6 @@ for (j = 0; j < Q_SEGMENT_CDF_COUNT; j++) AVERAGE_TILE_CDFS(seg.q_seg_cdf[j]); #endif #if CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL AVERAGE_TILE_CDFS(compound_index_cdf); -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_JNT_COMP }
diff --git a/av1/common/entropy.h b/av1/common/entropy.h index 2df25d8..3b61b4c 100644 --- a/av1/common/entropy.h +++ b/av1/common/entropy.h
@@ -143,23 +143,17 @@ DECLARE_ALIGNED(16, extern const uint8_t, av1_cat4_prob[4]); DECLARE_ALIGNED(16, extern const uint8_t, av1_cat5_prob[5]); DECLARE_ALIGNED(16, extern const uint8_t, av1_cat6_prob[18]); -#if CONFIG_NEW_MULTISYMBOL extern const aom_cdf_prob *av1_cat1_cdf[]; extern const aom_cdf_prob *av1_cat2_cdf[]; extern const aom_cdf_prob *av1_cat3_cdf[]; extern const aom_cdf_prob *av1_cat4_cdf[]; extern const aom_cdf_prob *av1_cat5_cdf[]; extern const aom_cdf_prob *av1_cat6_cdf[]; -#endif #define EOB_MODEL_TOKEN 3 typedef struct { -#if CONFIG_NEW_MULTISYMBOL const aom_cdf_prob **cdf; -#else - const aom_prob *prob; -#endif int len; int base_val; const int16_t *cost; @@ -177,10 +171,8 @@ #endif int tx_offset = (int)(tx_size - TX_4X4); int bits = (int)bit_depth + 3 + tx_offset; -#if CONFIG_NEW_MULTISYMBOL // Round up bits = AOMMIN((int)sizeof(av1_cat6_prob), ((bits + 3) & ~3)); -#endif assert(bits <= (int)sizeof(av1_cat6_prob)); return bits; }
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c index dc045bc..75b8094 100644 --- a/av1/common/entropymode.c +++ b/av1/common/entropymode.c
@@ -705,7 +705,6 @@ static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS] = { 119, 128, 189, 134, 128, }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_newmv_cdf[NEWMV_MODE_CONTEXTS][CDF_SIZE(2)] = { { AOM_CDF2(128 * 155) }, { AOM_CDF2(128 * 116) }, { AOM_CDF2(128 * 94) }, { AOM_CDF2(128 * 32) }, { AOM_CDF2(128 * 96) }, { AOM_CDF2(128 * 56) }, @@ -725,7 +724,6 @@ { AOM_CDF2(128 * 134) }, { AOM_CDF2(128 * 128) } }; -#endif static const aom_prob default_inter_compound_mode_probs [INTER_MODE_CONTEXTS][INTER_COMPOUND_MODES - 1] = { @@ -792,13 +790,11 @@ static const aom_prob default_interintra_prob[BLOCK_SIZE_GROUPS] = { 128, 226, 244, 254, }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_interintra_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE( 2)] = { { AOM_CDF2(128 * 128) }, { AOM_CDF2(226 * 128) }, { AOM_CDF2(244 * 128) }, { AOM_CDF2(254 * 128) } }; -#endif static const aom_prob default_interintra_mode_prob[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1] = { @@ -826,7 +822,6 @@ #endif // CONFIG_EXT_PARTITION }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_wedge_interintra_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = { { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, @@ -844,7 +839,6 @@ { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) }, #endif // CONFIG_EXT_PARTITION }; -#endif // CONFIG_NEW_MULTISYMBOL const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = { -SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -WARPED_CAUSAL, @@ -899,7 +893,6 @@ #endif // CONFIG_EXT_PARTITION }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = { { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, @@ -916,7 +909,6 @@ { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) }, #endif // CONFIG_EXT_PARTITION }; -#endif // CONFIG_NEW_MULTISYMBOL static const aom_prob default_delta_q_probs[DELTA_Q_PROBS] = { 220, 220, 220 }; static const aom_cdf_prob default_delta_q_cdf[CDF_SIZE(DELTA_Q_PROBS + 1)] = { @@ -969,7 +961,6 @@ 6, 97, 151, 205, }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_intra_inter_cdf[INTRA_INTER_CONTEXTS] [CDF_SIZE(2)] = { { AOM_CDF2(768) }, @@ -977,20 +968,17 @@ { AOM_CDF2(19328) }, { AOM_CDF2(26240) } }; -#endif static const aom_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = { 190, 156, 91, 77, 22 }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_comp_inter_cdf[COMP_INTER_CONTEXTS][CDF_SIZE( 2)] = { { AOM_CDF2(24290) }, { AOM_CDF2(19956) }, { AOM_CDF2(11641) }, { AOM_CDF2(9804) }, { AOM_CDF2(2842) } }; -#endif // CONFIG_NEW_MULTISYMBOL #if CONFIG_EXT_COMP_REFS static const aom_prob default_comp_ref_type_p[COMP_REF_TYPE_CONTEXTS] = { @@ -1001,7 +989,6 @@ { 88, 30, 28 }, { 218, 97, 105 }, { 254, 180, 196 } }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_comp_ref_type_cdf[COMP_REF_TYPE_CONTEXTS] [CDF_SIZE(2)] = { { AOM_CDF2(8 * 128) }, @@ -1021,7 +1008,6 @@ { { AOM_CDF2(254 * 128) }, { AOM_CDF2(180 * 128) }, { AOM_CDF2(196 * 128) } } }; -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_EXT_COMP_REFS static const aom_prob default_comp_ref_p[REF_CONTEXTS][FWD_REFS - 1] = { @@ -1036,7 +1022,6 @@ { 22, 13 }, { 140, 124 }, { 241, 239 }, { 128, 128 }, { 128, 128 } }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_comp_ref_cdf[REF_CONTEXTS][FWD_REFS - 1][CDF_SIZE(2)] = { { { AOM_CDF2(3556) }, { AOM_CDF2(1217) }, { AOM_CDF2(988) } }, @@ -1054,7 +1039,6 @@ { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } }, { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } } }; -#endif // CONFIG_NEW_MULTISYMBOL static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = { { 36, 16, 32, 57, 11, 14 }, @@ -1064,7 +1048,6 @@ { 224, 128, 230, 242, 208, 128 } }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1] [CDF_SIZE(2)] = { { { AOM_CDF2(4623) }, @@ -1098,7 +1081,6 @@ { AOM_CDF2(26676) }, { AOM_CDF2(32768) } } }; -#endif // CONFIG_NEW_MULTISYMBOL // TODO(huisu): tune these cdfs const aom_cdf_prob @@ -1150,7 +1132,6 @@ 253, 229 }; -#if CONFIG_NEW_MULTISYMBOL const aom_cdf_prob default_palette_y_mode_cdf[PALETTE_BLOCK_SIZES] [PALETTE_Y_MODE_CONTEXTS] [CDF_SIZE(2)] = { @@ -1190,7 +1171,6 @@ default_palette_uv_mode_cdf[PALETTE_UV_MODE_CONTEXTS][CDF_SIZE(2)] = { { AOM_CDF2(128 * 253) }, { AOM_CDF2(128 * 229) } }; -#endif const aom_cdf_prob default_palette_y_color_index_cdf [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = { @@ -1421,13 +1401,11 @@ static const aom_cdf_prob default_switchable_restore_cdf[CDF_SIZE( RESTORE_SWITCHABLE_TYPES)] = { AOM_CDF3(32 * 128, 144 * 128) }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_wiener_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2( 64 * 128) }; static const aom_cdf_prob default_sgrproj_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2( 64 * 128) }; -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_LOOP_RESTORATION #define NUM_PALETTE_NEIGHBORS 3 // left, top-left and top. @@ -1522,7 +1500,6 @@ 250, 231, 212, 241, 166, 66, 241, 230, 135, 243, 154, 64, 248, 161, 63, 128 #endif // CONFIG_TX64X64 }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_txfm_partition_cdf[TXFM_PARTITION_CONTEXTS][CDF_SIZE(2)] = { #if CONFIG_TX64X64 @@ -1543,9 +1520,7 @@ { AOM_CDF2(128 * 128) }, #endif // CONFIG_TX64X64 }; -#endif // CONFIG_NEW_MULTISYMBOL -#if CONFIG_NEW_MULTISYMBOL #if CONFIG_EXT_SKIP static const aom_cdf_prob default_skip_mode_cdfs[SKIP_MODE_CONTEXTS][CDF_SIZE( 2)] = { { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) } }; @@ -1553,16 +1528,8 @@ static const aom_cdf_prob default_skip_cdfs[SKIP_CONTEXTS][CDF_SIZE(2)] = { { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) } }; -#else // !CONFIG_NEW_MULTISYMBOL -#if CONFIG_EXT_SKIP -static const aom_prob default_skip_mode_probs[SKIP_MODE_CONTEXTS] = { 192, 128, - 64 }; -#endif // CONFIG_EXT_SKIP -static const aom_prob default_skip_probs[SKIP_CONTEXTS] = { 192, 128, 64 }; -#endif // CONFIG_NEW_MULTISYMBOL #if CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_compound_idx_cdfs[COMP_INDEX_CONTEXTS][CDF_SIZE(2)] = { { AOM_ICDF(24576), AOM_ICDF(32768), 0 }, @@ -1572,7 +1539,6 @@ { AOM_ICDF(16384), AOM_ICDF(32768), 0 }, { AOM_ICDF(8192), AOM_ICDF(32768), 0 }, }; -#endif // CONFIG_NEW_MULTISYMBOL static const aom_prob default_compound_idx_probs[COMP_INDEX_CONTEXTS] = { 192, 128, 64, 192, 128, 64 }; @@ -1599,14 +1565,12 @@ static const aom_prob default_segment_pred_probs[PREDICTION_PROBS] = { 128, 128, 128 }; -#if CONFIG_NEW_MULTISYMBOL static const aom_cdf_prob default_segment_pred_cdf[PREDICTION_PROBS][CDF_SIZE(2)] = { { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) } }; -#endif // clang-format on #if CONFIG_DUAL_FILTER #if USE_EXTRA_FILTER @@ -3047,23 +3011,17 @@ av1_copy(fc->mrc_mask_inter_cdf, default_mrc_mask_inter_cdf); av1_copy(fc->mrc_mask_intra_cdf, default_mrc_mask_intra_cdf); #endif // CONFIG_MRC_TX -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->comp_inter_cdf, default_comp_inter_cdf); -#endif // CONFIG_NEW_MULTISYMBOL #if CONFIG_EXT_COMP_REFS av1_copy(fc->comp_ref_type_prob, default_comp_ref_type_p); av1_copy(fc->uni_comp_ref_prob, default_uni_comp_ref_p); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->comp_ref_type_cdf, default_comp_ref_type_cdf); av1_copy(fc->uni_comp_ref_cdf, default_uni_comp_ref_cdf); -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_EXT_COMP_REFS av1_copy(fc->comp_ref_prob, default_comp_ref_p); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->palette_y_mode_cdf, default_palette_y_mode_cdf); av1_copy(fc->palette_uv_mode_cdf, default_palette_uv_mode_cdf); av1_copy(fc->comp_ref_cdf, default_comp_ref_cdf); -#endif #if CONFIG_LV_MAP av1_copy(fc->txb_skip, default_txb_skip); av1_copy(fc->nz_map, default_nz_map); @@ -3086,66 +3044,48 @@ av1_init_txb_probs(fc); #endif av1_copy(fc->comp_bwdref_prob, default_comp_bwdref_p); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->comp_bwdref_cdf, default_comp_bwdref_cdf); -#endif av1_copy(fc->single_ref_prob, default_single_ref_p); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->single_ref_cdf, default_single_ref_cdf); -#endif av1_copy(fc->txfm_partition_prob, default_txfm_partition_probs); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->txfm_partition_cdf, default_txfm_partition_cdf); -#endif #if CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->compound_index_cdf, default_compound_idx_cdfs); -#endif // CONFIG_NEW_MULTISYMBOL av1_copy(fc->compound_index_probs, default_compound_idx_probs); #endif // CONFIG_JNT_COMP av1_copy(fc->newmv_prob, default_newmv_prob); av1_copy(fc->zeromv_prob, default_zeromv_prob); av1_copy(fc->refmv_prob, default_refmv_prob); av1_copy(fc->drl_prob, default_drl_prob); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->newmv_cdf, default_newmv_cdf); av1_copy(fc->zeromv_cdf, default_zeromv_cdf); av1_copy(fc->refmv_cdf, default_refmv_cdf); av1_copy(fc->drl_cdf, default_drl_cdf); -#endif av1_copy(fc->motion_mode_prob, default_motion_mode_prob); av1_copy(fc->motion_mode_cdf, default_motion_mode_cdf); av1_copy(fc->obmc_prob, default_obmc_prob); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->obmc_cdf, default_obmc_cdf); -#endif av1_copy(fc->inter_compound_mode_probs, default_inter_compound_mode_probs); av1_copy(fc->inter_compound_mode_cdf, default_inter_compound_mode_cdf); av1_copy(fc->compound_type_prob, default_compound_type_probs); av1_copy(fc->compound_type_cdf, default_compound_type_cdf); av1_copy(fc->interintra_prob, default_interintra_prob); av1_copy(fc->wedge_interintra_prob, default_wedge_interintra_prob); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->interintra_cdf, default_interintra_cdf); av1_copy(fc->wedge_interintra_cdf, default_wedge_interintra_cdf); -#endif // CONFIG_NEW_MULTISYMBOL av1_copy(fc->interintra_mode_prob, default_interintra_mode_prob); av1_copy(fc->interintra_mode_cdf, default_interintra_mode_cdf); av1_copy(fc->seg.tree_probs, default_segment_tree_probs); av1_copy(fc->seg.pred_probs, default_segment_pred_probs); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->seg.pred_cdf, default_segment_pred_cdf); -#endif #if CONFIG_FILTER_INTRA av1_copy(fc->filter_intra_cdfs, default_filter_intra_cdfs); av1_copy(fc->filter_intra_mode_cdf, default_filter_intra_mode_cdf); #endif // CONFIG_FILTER_INTRA #if CONFIG_LOOP_RESTORATION av1_copy(fc->switchable_restore_cdf, default_switchable_restore_cdf); -#if CONFIG_NEW_MULTISYMBOL av1_copy(fc->wiener_restore_cdf, default_wiener_restore_cdf); av1_copy(fc->sgrproj_restore_cdf, default_sgrproj_restore_cdf); -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_LOOP_RESTORATION av1_copy(fc->y_mode_cdf, default_if_y_mode_cdf); av1_copy(fc->uv_mode_cdf, default_uv_mode_cdf); @@ -3153,18 +3093,11 @@ av1_copy(fc->partition_cdf, default_partition_cdf); av1_copy(fc->intra_ext_tx_cdf, default_intra_ext_tx_cdf); av1_copy(fc->inter_ext_tx_cdf, default_inter_ext_tx_cdf); -#if CONFIG_NEW_MULTISYMBOL #if CONFIG_EXT_SKIP av1_copy(fc->skip_mode_cdfs, default_skip_mode_cdfs); #endif // CONFIG_EXT_SKIP av1_copy(fc->skip_cdfs, default_skip_cdfs); av1_copy(fc->intra_inter_cdf, default_intra_inter_cdf); -#else // !CONFIG_NEW_MULTISYMBOL -#if CONFIG_EXT_SKIP - av1_copy(fc->skip_mode_probs, default_skip_mode_probs); -#endif // CONFIG_EXT_SKIP - av1_copy(fc->skip_probs, default_skip_probs); -#endif // CONFIG_NEW_MULTISYMBOL av1_copy(fc->seg.tree_cdf, default_seg_tree_cdf); #if CONFIG_Q_SEGMENTATION for (int i = 0; i < Q_SEGMENT_CDF_COUNT; i++) @@ -3304,17 +3237,6 @@ pre_fc->txfm_partition_prob[i], counts->txfm_partition[i]); } -#if !CONFIG_NEW_MULTISYMBOL -#if CONFIG_EXT_SKIP - for (i = 0; i < SKIP_MODE_CONTEXTS; ++i) - fc->skip_mode_probs[i] = av1_mode_mv_merge_probs(pre_fc->skip_mode_probs[i], - counts->skip_mode[i]); -#endif // CONFIG_EXT_SKIP - for (i = 0; i < SKIP_CONTEXTS; ++i) - fc->skip_probs[i] = - av1_mode_mv_merge_probs(pre_fc->skip_probs[i], counts->skip[i]); -#endif // !CONFIG_NEW_MULTISYMBOL - if (cm->seg.temporal_update) { for (i = 0; i < PREDICTION_PROBS; i++) fc->seg.pred_probs[i] = av1_mode_mv_merge_probs(pre_fc->seg.pred_probs[i],
diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h index e63a7c1..540b5da 100644 --- a/av1/common/entropymode.h +++ b/av1/common/entropymode.h
@@ -181,12 +181,10 @@ aom_prob zeromv_prob[GLOBALMV_MODE_CONTEXTS]; aom_prob refmv_prob[REFMV_MODE_CONTEXTS]; aom_prob drl_prob[DRL_MODE_CONTEXTS]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob newmv_cdf[NEWMV_MODE_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob zeromv_cdf[GLOBALMV_MODE_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob refmv_cdf[REFMV_MODE_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob drl_cdf[DRL_MODE_CONTEXTS][CDF_SIZE(2)]; -#endif aom_prob inter_compound_mode_probs[INTER_MODE_CONTEXTS] [INTER_COMPOUND_MODES - 1]; @@ -197,18 +195,14 @@ aom_prob interintra_prob[BLOCK_SIZE_GROUPS]; aom_prob wedge_interintra_prob[BLOCK_SIZES_ALL]; aom_prob interintra_mode_prob[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob interintra_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(2)]; aom_cdf_prob wedge_interintra_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)]; -#endif aom_cdf_prob interintra_mode_cdf[BLOCK_SIZE_GROUPS] [CDF_SIZE(INTERINTRA_MODES)]; aom_prob motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1]; aom_cdf_prob motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)]; aom_prob obmc_prob[BLOCK_SIZES_ALL]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)]; -#endif // CONFIG_NEW_MULTISYMBOL aom_prob intra_inter_prob[INTRA_INTER_CONTEXTS]; aom_prob comp_inter_prob[COMP_INTER_CONTEXTS]; aom_cdf_prob palette_y_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(PALETTE_SIZES)]; @@ -226,51 +220,34 @@ aom_cdf_prob mrc_mask_intra_cdf[PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS] [CDF_SIZE(PALETTE_COLORS)]; #endif // CONFIG_MRC_TX -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob palette_y_mode_cdf[PALETTE_BLOCK_SIZES][PALETTE_Y_MODE_CONTEXTS] [CDF_SIZE(2)]; aom_cdf_prob palette_uv_mode_cdf[PALETTE_UV_MODE_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob comp_inter_cdf[COMP_INTER_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1][CDF_SIZE(2)]; -#endif #if CONFIG_EXT_COMP_REFS aom_prob comp_ref_type_prob[COMP_REF_TYPE_CONTEXTS]; aom_prob uni_comp_ref_prob[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob comp_ref_type_cdf[COMP_REF_TYPE_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1] [CDF_SIZE(2)]; -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_EXT_COMP_REFS aom_prob single_ref_prob[REF_CONTEXTS][SINGLE_REFS - 1]; aom_prob comp_ref_prob[REF_CONTEXTS][FWD_REFS - 1]; aom_prob comp_bwdref_prob[REF_CONTEXTS][BWD_REFS - 1]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob comp_ref_cdf[REF_CONTEXTS][FWD_REFS - 1][CDF_SIZE(2)]; aom_cdf_prob comp_bwdref_cdf[REF_CONTEXTS][BWD_REFS - 1][CDF_SIZE(2)]; -#endif aom_prob txfm_partition_prob[TXFM_PARTITION_CONTEXTS]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob txfm_partition_cdf[TXFM_PARTITION_CONTEXTS][CDF_SIZE(2)]; -#endif #if CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob compound_index_cdf[COMP_INDEX_CONTEXTS][CDF_SIZE(2)]; -#endif // CONFIG_NEW_MULTISYMBOL aom_prob compound_index_probs[COMP_INDEX_CONTEXTS]; #endif // CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL #if CONFIG_EXT_SKIP aom_cdf_prob skip_mode_cdfs[SKIP_CONTEXTS][CDF_SIZE(2)]; #endif // CONFIG_EXT_SKIP aom_cdf_prob skip_cdfs[SKIP_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob intra_inter_cdf[INTRA_INTER_CONTEXTS][CDF_SIZE(2)]; -#else // !CONFIG_NEW_MULTISYMBOL -#if CONFIG_EXT_SKIP - aom_prob skip_mode_probs[SKIP_CONTEXTS]; -#endif // CONFIG_EXT_SKIP - aom_prob skip_probs[SKIP_CONTEXTS]; -#endif // CONFIG_NEW_MULTISYMBOL nmv_context nmvc[NMV_CONTEXTS]; #if CONFIG_INTRABC nmv_context ndvc; @@ -284,10 +261,8 @@ #endif // CONFIG_FILTER_INTRA #if CONFIG_LOOP_RESTORATION aom_cdf_prob switchable_restore_cdf[CDF_SIZE(RESTORE_SWITCHABLE_TYPES)]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob wiener_restore_cdf[CDF_SIZE(2)]; aom_cdf_prob sgrproj_restore_cdf[CDF_SIZE(2)]; -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_LOOP_RESTORATION aom_cdf_prob y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTRA_MODES)]; aom_cdf_prob uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)];
diff --git a/av1/common/entropymv.c b/av1/common/entropymv.c index 95c673a..563cc47 100644 --- a/av1/common/entropymv.c +++ b/av1/common/entropymv.c
@@ -59,7 +59,6 @@ { AOM_CDF4(8192, 17408, 21248) }, // fp_cdf 160, // class0_hp bit 128, // hp -#if CONFIG_NEW_MULTISYMBOL { AOM_CDF2(128 * 128) }, { AOM_CDF2(160 * 128) }, { AOM_CDF2(128 * 128) }, @@ -74,7 +73,6 @@ { AOM_CDF2(128 * 234) }, { AOM_CDF2(128 * 234) }, { AOM_CDF2(128 * 240) } }, // bits_cdf -#endif }, { // Horizontal component @@ -91,7 +89,6 @@ { AOM_CDF4(8192, 17408, 21248) }, // fp_cdf 160, // class0_hp bit 128, // hp -#if CONFIG_NEW_MULTISYMBOL { AOM_CDF2(128 * 128) }, { AOM_CDF2(160 * 128) }, { AOM_CDF2(128 * 128) }, @@ -106,7 +103,6 @@ { AOM_CDF2(128 * 234) }, { AOM_CDF2(128 * 234) }, { AOM_CDF2(128 * 240) } }, // bits_cdf -#endif } }, };
diff --git a/av1/common/entropymv.h b/av1/common/entropymv.h index 09ef926..49183a9 100644 --- a/av1/common/entropymv.h +++ b/av1/common/entropymv.h
@@ -66,9 +66,7 @@ #define CLASS0_BITS 1 /* bits at integer precision for class 0 */ #define CLASS0_SIZE (1 << CLASS0_BITS) #define MV_OFFSET_BITS (MV_CLASSES + CLASS0_BITS - 2) -#if CONFIG_NEW_MULTISYMBOL #define MV_BITS_CONTEXTS 6 -#endif #define MV_FP_SIZE 4 #define MV_MAX_BITS (MV_CLASSES + CLASS0_BITS + 2) @@ -96,13 +94,11 @@ aom_cdf_prob fp_cdf[CDF_SIZE(MV_FP_SIZE)]; aom_prob class0_hp; aom_prob hp; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob sign_cdf[CDF_SIZE(2)]; aom_cdf_prob class0_hp_cdf[CDF_SIZE(2)]; aom_cdf_prob hp_cdf[CDF_SIZE(2)]; aom_cdf_prob class0_cdf[CDF_SIZE(CLASS0_SIZE)]; aom_cdf_prob bits_cdf[MV_OFFSET_BITS][CDF_SIZE(2)]; -#endif } nmv_component; typedef struct {
diff --git a/av1/common/onyxc_int.h b/av1/common/onyxc_int.h index b163aa6..a920b4a 100644 --- a/av1/common/onyxc_int.h +++ b/av1/common/onyxc_int.h
@@ -1383,11 +1383,7 @@ static INLINE int use_compressed_header(const AV1_COMMON *cm) { (void)cm; -#if CONFIG_NEW_MULTISYMBOL return 0; -#else - return 1; -#endif // CONFIG_NEW_MULTISYMBOL } #ifdef __cplusplus
diff --git a/av1/common/pred_common.h b/av1/common/pred_common.h index 77c19f8..7a7d990 100644 --- a/av1/common/pred_common.h +++ b/av1/common/pred_common.h
@@ -129,12 +129,10 @@ } #endif // CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_pred_cdf_seg_id( struct segmentation_probs *segp, const MACROBLOCKD *xd) { return segp->pred_cdf[av1_get_pred_context_seg_id(xd)]; } -#endif #if CONFIG_EXT_SKIP static INLINE int av1_get_skip_mode_context(const MACROBLOCKD *xd) { @@ -177,12 +175,10 @@ const MACROBLOCKD *xd) { return cm->fc->comp_inter_prob[av1_get_reference_mode_context(cm, xd)]; } -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_reference_mode_cdf(const AV1_COMMON *cm, const MACROBLOCKD *xd) { return xd->tile_ctx->comp_inter_cdf[av1_get_reference_mode_context(cm, xd)]; } -#endif #if CONFIG_EXT_COMP_REFS int av1_get_comp_reference_type_context(const MACROBLOCKD *xd); @@ -216,7 +212,6 @@ return cm->fc->uni_comp_ref_prob[pred_context][2]; } -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_comp_reference_type_cdf( const MACROBLOCKD *xd) { const int pred_context = av1_get_comp_reference_type_context(xd); @@ -240,19 +235,16 @@ const int pred_context = av1_get_pred_context_uni_comp_ref_p2(xd); return xd->tile_ctx->uni_comp_ref_cdf[pred_context][2]; } -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_EXT_COMP_REFS int av1_get_pred_context_comp_ref_p(const AV1_COMMON *cm, const MACROBLOCKD *xd); -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_pred_cdf_comp_ref_p(const AV1_COMMON *cm, const MACROBLOCKD *xd) { const int pred_context = av1_get_pred_context_comp_ref_p(cm, xd); return xd->tile_ctx->comp_ref_cdf[pred_context][0]; } -#endif static INLINE aom_prob av1_get_pred_prob_comp_ref_p(const AV1_COMMON *cm, const MACROBLOCKD *xd) { @@ -263,13 +255,11 @@ int av1_get_pred_context_comp_ref_p1(const AV1_COMMON *cm, const MACROBLOCKD *xd); -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_pred_cdf_comp_ref_p1( const AV1_COMMON *cm, const MACROBLOCKD *xd) { const int pred_context = av1_get_pred_context_comp_ref_p1(cm, xd); return xd->tile_ctx->comp_ref_cdf[pred_context][1]; } -#endif // CONFIG_NEW_MULTISYMBOL static INLINE aom_prob av1_get_pred_prob_comp_ref_p1(const AV1_COMMON *cm, const MACROBLOCKD *xd) { @@ -280,13 +270,11 @@ int av1_get_pred_context_comp_ref_p2(const AV1_COMMON *cm, const MACROBLOCKD *xd); -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_pred_cdf_comp_ref_p2( const AV1_COMMON *cm, const MACROBLOCKD *xd) { const int pred_context = av1_get_pred_context_comp_ref_p2(cm, xd); return xd->tile_ctx->comp_ref_cdf[pred_context][2]; } -#endif // CONFIG_NEW_MULTISYMBOL static INLINE aom_prob av1_get_pred_prob_comp_ref_p2(const AV1_COMMON *cm, const MACROBLOCKD *xd) { @@ -297,13 +285,11 @@ int av1_get_pred_context_comp_bwdref_p(const AV1_COMMON *cm, const MACROBLOCKD *xd); -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_pred_cdf_comp_bwdref_p( const AV1_COMMON *cm, const MACROBLOCKD *xd) { const int pred_context = av1_get_pred_context_comp_bwdref_p(cm, xd); return xd->tile_ctx->comp_bwdref_cdf[pred_context][0]; } -#endif // CONFIG_NEW_MULTISYMBOL static INLINE aom_prob av1_get_pred_prob_comp_bwdref_p(const AV1_COMMON *cm, const MACROBLOCKD *xd) { @@ -314,13 +300,11 @@ int av1_get_pred_context_comp_bwdref_p1(const AV1_COMMON *cm, const MACROBLOCKD *xd); -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_pred_cdf_comp_bwdref_p1( const AV1_COMMON *cm, const MACROBLOCKD *xd) { const int pred_context = av1_get_pred_context_comp_bwdref_p1(cm, xd); return xd->tile_ctx->comp_bwdref_cdf[pred_context][1]; } -#endif // CONFIG_NEW_MULTISYMBOL static INLINE aom_prob av1_get_pred_prob_comp_bwdref_p1(const AV1_COMMON *cm, const MACROBLOCKD *xd) { @@ -370,7 +354,6 @@ return cm->fc->single_ref_prob[av1_get_pred_context_single_ref_p6(xd)][5]; } -#if CONFIG_NEW_MULTISYMBOL static INLINE aom_cdf_prob *av1_get_pred_cdf_single_ref_p1( const AV1_COMMON *cm, const MACROBLOCKD *xd) { (void)cm; @@ -407,7 +390,6 @@ return xd->tile_ctx ->single_ref_cdf[av1_get_pred_context_single_ref_p6(xd)][5]; } -#endif // CONFIG_NEW_MULTISYMBOL // Returns a context number for the given MB prediction signal // The mode info data structure has a one element border above and to the
diff --git a/av1/common/seg_common.h b/av1/common/seg_common.h index 6b0675a..6830dba 100644 --- a/av1/common/seg_common.h +++ b/av1/common/seg_common.h
@@ -76,16 +76,10 @@ aom_prob tree_probs[SEG_TREE_PROBS]; aom_cdf_prob tree_cdf[CDF_SIZE(MAX_SEGMENTS)]; aom_prob pred_probs[PREDICTION_PROBS]; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob pred_cdf[PREDICTION_PROBS][CDF_SIZE(2)]; #if CONFIG_Q_SEGMENTATION aom_cdf_prob q_seg_cdf[Q_SEGMENT_CDF_COUNT][CDF_SIZE(MAX_SEGMENTS)]; #endif -#else -#if CONFIG_Q_SEGMENTATION - aom_prob q_seg_cdf[Q_SEGMENT_CDF_COUNT][CDF_SIZE(MAX_SEGMENTS)]; -#endif -#endif }; static INLINE int segfeature_active(const struct segmentation *seg,
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c index 9029a7a..0fc9b84 100644 --- a/av1/decoder/decodeframe.c +++ b/av1/decoder/decodeframe.c
@@ -147,20 +147,6 @@ } #endif // CONFIG_SIMPLIFY_TX_MODE -#if !CONFIG_NEW_MULTISYMBOL -static void read_inter_mode_probs(FRAME_CONTEXT *fc, aom_reader *r) { - int i; - for (i = 0; i < NEWMV_MODE_CONTEXTS; ++i) - av1_diff_update_prob(r, &fc->newmv_prob[i], ACCT_STR); - for (i = 0; i < GLOBALMV_MODE_CONTEXTS; ++i) - av1_diff_update_prob(r, &fc->zeromv_prob[i], ACCT_STR); - for (i = 0; i < REFMV_MODE_CONTEXTS; ++i) - av1_diff_update_prob(r, &fc->refmv_prob[i], ACCT_STR); - for (i = 0; i < DRL_MODE_CONTEXTS; ++i) - av1_diff_update_prob(r, &fc->drl_prob[i], ACCT_STR); -} -#endif - static REFERENCE_MODE read_frame_reference_mode( const AV1_COMMON *cm, struct aom_read_bit_buffer *rb) { if (is_compound_reference_allowed(cm)) { @@ -176,63 +162,6 @@ } } -#if !CONFIG_NEW_MULTISYMBOL -static void read_frame_reference_mode_probs(AV1_COMMON *cm, aom_reader *r) { - FRAME_CONTEXT *const fc = cm->fc; - int i; - - if (cm->reference_mode == REFERENCE_MODE_SELECT) - for (i = 0; i < COMP_INTER_CONTEXTS; ++i) - av1_diff_update_prob(r, &fc->comp_inter_prob[i], ACCT_STR); - - if (cm->reference_mode != COMPOUND_REFERENCE) { - for (i = 0; i < REF_CONTEXTS; ++i) { - int j; - for (j = 0; j < (SINGLE_REFS - 1); ++j) { - av1_diff_update_prob(r, &fc->single_ref_prob[i][j], ACCT_STR); - } - } - } - - if (cm->reference_mode != SINGLE_REFERENCE) { -#if CONFIG_EXT_COMP_REFS - for (i = 0; i < COMP_REF_TYPE_CONTEXTS; ++i) - av1_diff_update_prob(r, &fc->comp_ref_type_prob[i], ACCT_STR); - - for (i = 0; i < UNI_COMP_REF_CONTEXTS; ++i) { - int j; - for (j = 0; j < (UNIDIR_COMP_REFS - 1); ++j) - av1_diff_update_prob(r, &fc->uni_comp_ref_prob[i][j], ACCT_STR); - } -#endif // CONFIG_EXT_COMP_REFS - - for (i = 0; i < REF_CONTEXTS; ++i) { - int j; - for (j = 0; j < (FWD_REFS - 1); ++j) - av1_diff_update_prob(r, &fc->comp_ref_prob[i][j], ACCT_STR); - for (j = 0; j < (BWD_REFS - 1); ++j) - av1_diff_update_prob(r, &fc->comp_bwdref_prob[i][j], ACCT_STR); - } - } -} - -static void update_mv_probs(aom_prob *p, int n, aom_reader *r) { - int i; - for (i = 0; i < n; ++i) av1_diff_update_prob(r, &p[i], ACCT_STR); -} - -static void read_mv_probs(nmv_context *ctx, int allow_hp, aom_reader *r) { - int i; - if (allow_hp) { - for (i = 0; i < 2; ++i) { - nmv_component *const comp_ctx = &ctx->comps[i]; - update_mv_probs(&comp_ctx->class0_hp, 1, r); - update_mv_probs(&comp_ctx->hp, 1, r); - } - } -} -#endif - static void inverse_transform_block(MACROBLOCKD *xd, int plane, const TX_TYPE tx_type, const TX_SIZE tx_size, uint8_t *dst, @@ -1257,22 +1186,14 @@ default: assert(rui->restoration_type == RESTORE_NONE); break; } } else if (rsi->frame_restoration_type == RESTORE_WIENER) { -#if CONFIG_NEW_MULTISYMBOL if (aom_read_symbol(r, xd->tile_ctx->wiener_restore_cdf, 2, ACCT_STR)) { -#else - if (aom_read(r, RESTORE_NONE_WIENER_PROB, ACCT_STR)) { -#endif // CONFIG_NEW_MULTISYMBOL rui->restoration_type = RESTORE_WIENER; read_wiener_filter(wiener_win, &rui->wiener_info, wiener_info, r); } else { rui->restoration_type = RESTORE_NONE; } } else if (rsi->frame_restoration_type == RESTORE_SGRPROJ) { -#if CONFIG_NEW_MULTISYMBOL if (aom_read_symbol(r, xd->tile_ctx->sgrproj_restore_cdf, 2, ACCT_STR)) { -#else - if (aom_read(r, RESTORE_NONE_SGRPROJ_PROB, ACCT_STR)) { -#endif // CONFIG_NEW_MULTISYMBOL rui->restoration_type = RESTORE_SGRPROJ; read_sgrproj_filter(&rui->sgrproj_info, sgrproj_info, r); } else { @@ -3333,74 +3254,10 @@ static int read_compressed_header(AV1Decoder *pbi, const uint8_t *data, size_t partition_size) { -#if CONFIG_NEW_MULTISYMBOL (void)pbi; (void)data; (void)partition_size; return 0; -#else - AV1_COMMON *const cm = &pbi->common; - aom_reader r; - FRAME_CONTEXT *const fc = cm->fc; - -#if CONFIG_ANS && ANS_MAX_SYMBOLS - r.window_size = 1 << cm->ans_window_size_log2; -#endif - if (aom_reader_init(&r, data, partition_size, pbi->decrypt_cb, - pbi->decrypt_state)) - aom_internal_error(&cm->error, AOM_CODEC_MEM_ERROR, - "Failed to allocate bool decoder 0"); - - if (cm->tx_mode == TX_MODE_SELECT) - for (int i = 0; i < TXFM_PARTITION_CONTEXTS; ++i) - av1_diff_update_prob(&r, &fc->txfm_partition_prob[i], ACCT_STR); - for (int i = 0; i < SKIP_CONTEXTS; ++i) - av1_diff_update_prob(&r, &fc->skip_probs[i], ACCT_STR); - -#if CONFIG_JNT_COMP - for (int i = 0; i < COMP_INDEX_CONTEXTS; ++i) - av1_diff_update_prob(&r, &fc->compound_index_probs[i], ACCT_STR); -#endif // CONFIG_JNT_COMP - - if (!frame_is_intra_only(cm)) { - read_inter_mode_probs(fc, &r); - - if (cm->reference_mode != COMPOUND_REFERENCE && - cm->allow_interintra_compound) { - for (int i = 0; i < BLOCK_SIZE_GROUPS; i++) { - if (is_interintra_allowed_bsize_group(i)) { - av1_diff_update_prob(&r, &fc->interintra_prob[i], ACCT_STR); - } - } -#if CONFIG_EXT_PARTITION_TYPES - int block_sizes_to_update = BLOCK_SIZES_ALL; -#else - int block_sizes_to_update = BLOCK_SIZES; -#endif - for (int i = 0; i < block_sizes_to_update; i++) { - if (is_interintra_allowed_bsize(i) && is_interintra_wedge_used(i)) { - av1_diff_update_prob(&r, &fc->wedge_interintra_prob[i], ACCT_STR); - } - } - } - - for (int i = 0; i < INTRA_INTER_CONTEXTS; i++) - av1_diff_update_prob(&r, &fc->intra_inter_prob[i], ACCT_STR); - - read_frame_reference_mode_probs(cm, &r); - -#if CONFIG_AMVR - if (cm->cur_frame_force_integer_mv == 0) { -#endif - for (int i = 0; i < NMV_CONTEXTS; ++i) - read_mv_probs(&fc->nmvc[i], cm->allow_high_precision_mv, &r); -#if CONFIG_AMVR - } -#endif - } - - return aom_reader_has_error(&r); -#endif // CONFIG_NEW_MULTISYMBOL } #ifdef NDEBUG @@ -3815,9 +3672,6 @@ if (!frame_is_intra_only(cm)) { av1_adapt_inter_frame_probs(cm); -#if !CONFIG_NEW_MULTISYMBOL - av1_adapt_mv_probs(cm, cm->allow_high_precision_mv); -#endif av1_average_tile_inter_cdfs(&pbi->common, pbi->common.fc, tile_ctxs, cdf_ptrs, num_bwd_ctxs); av1_average_tile_mv_cdfs(pbi->common.fc, tile_ctxs, cdf_ptrs,
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index 8558313..b89fe1e 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -187,11 +187,7 @@ FRAME_COUNTS *counts = xd->counts; int16_t mode_ctx = ctx & NEWMV_CTX_MASK; int is_newmv, is_zeromv, is_refmv; -#if CONFIG_NEW_MULTISYMBOL is_newmv = aom_read_symbol(r, ec_ctx->newmv_cdf[mode_ctx], 2, ACCT_STR) == 0; -#else - is_newmv = aom_read(r, ec_ctx->newmv_prob[mode_ctx], ACCT_STR) == 0; -#endif if (is_newmv) { if (counts) ++counts->newmv_mode[mode_ctx][0]; return NEWMV; @@ -199,12 +195,8 @@ if (counts) ++counts->newmv_mode[mode_ctx][1]; if (ctx & (1 << ALL_ZERO_FLAG_OFFSET)) return GLOBALMV; mode_ctx = (ctx >> GLOBALMV_OFFSET) & GLOBALMV_CTX_MASK; -#if CONFIG_NEW_MULTISYMBOL is_zeromv = aom_read_symbol(r, ec_ctx->zeromv_cdf[mode_ctx], 2, ACCT_STR) == 0; -#else - is_zeromv = aom_read(r, ec_ctx->zeromv_prob[mode_ctx], ACCT_STR) == 0; -#endif if (is_zeromv) { if (counts) ++counts->zeromv_mode[mode_ctx][0]; return GLOBALMV; @@ -214,11 +206,7 @@ if (ctx & (1 << SKIP_NEARESTMV_OFFSET)) mode_ctx = 6; if (ctx & (1 << SKIP_NEARMV_OFFSET)) mode_ctx = 7; if (ctx & (1 << SKIP_NEARESTMV_SUB8X8_OFFSET)) mode_ctx = 8; -#if CONFIG_NEW_MULTISYMBOL is_refmv = aom_read_symbol(r, ec_ctx->refmv_cdf[mode_ctx], 2, ACCT_STR) == 0; -#else - is_refmv = aom_read(r, ec_ctx->refmv_prob[mode_ctx], ACCT_STR) == 0; -#endif if (is_refmv) { if (counts) ++counts->refmv_mode[mode_ctx][0]; return NEARESTMV; @@ -237,11 +225,7 @@ for (idx = 0; idx < 2; ++idx) { if (xd->ref_mv_count[ref_frame_type] > idx + 1) { uint8_t drl_ctx = av1_drl_ctx(xd->ref_mv_stack[ref_frame_type], idx); -#if CONFIG_NEW_MULTISYMBOL int drl_idx = aom_read_symbol(r, ec_ctx->drl_cdf[drl_ctx], 2, ACCT_STR); -#else - int drl_idx = aom_read(r, ec_ctx->drl_prob[drl_ctx], ACCT_STR); -#endif mbmi->ref_mv_idx = idx + drl_idx; if (xd->counts) ++xd->counts->drl_mode[drl_ctx][drl_idx]; if (!drl_idx) return; @@ -256,11 +240,7 @@ for (idx = 1; idx < 3; ++idx) { if (xd->ref_mv_count[ref_frame_type] > idx + 1) { uint8_t drl_ctx = av1_drl_ctx(xd->ref_mv_stack[ref_frame_type], idx); -#if CONFIG_NEW_MULTISYMBOL int drl_idx = aom_read_symbol(r, ec_ctx->drl_cdf[drl_ctx], 2, ACCT_STR); -#else - int drl_idx = aom_read(r, ec_ctx->drl_prob[drl_ctx], ACCT_STR); -#endif mbmi->ref_mv_idx = idx + drl_idx - 1; if (xd->counts) ++xd->counts->drl_mode[drl_ctx][drl_idx]; if (!drl_idx) return; @@ -272,9 +252,7 @@ static MOTION_MODE read_motion_mode(AV1_COMMON *cm, MACROBLOCKD *xd, MODE_INFO *mi, aom_reader *r) { MB_MODE_INFO *mbmi = &mi->mbmi; -#if CONFIG_NEW_MULTISYMBOL (void)cm; -#endif const MOTION_MODE last_motion_mode_allowed = motion_mode_allowed(0, xd->global_motion, xd, mi); @@ -284,12 +262,8 @@ if (last_motion_mode_allowed == SIMPLE_TRANSLATION) return SIMPLE_TRANSLATION; if (last_motion_mode_allowed == OBMC_CAUSAL) { -#if CONFIG_NEW_MULTISYMBOL motion_mode = aom_read_symbol(r, xd->tile_ctx->obmc_cdf[mbmi->sb_type], 2, ACCT_STR); -#else - motion_mode = aom_read(r, cm->fc->obmc_prob[mbmi->sb_type], ACCT_STR); -#endif if (counts) ++counts->obmc[mbmi->sb_type][motion_mode]; return (MOTION_MODE)(SIMPLE_TRANSLATION + motion_mode); } else { @@ -388,13 +362,8 @@ return 0; } -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob *pred_cdf = segp->q_seg_cdf[cdf_num]; int coded_id = aom_read_symbol(r, pred_cdf, 8, ACCT_STR); -#else - const aom_prob pred_cdf = segp->q_seg_cdf[cdf_num]; - int coded_id = aom_read(r, pred_cdf, ACCT_STR); -#endif int segment_id = neg_deinterleave(coded_id, pred, seg->q_lvls); @@ -410,10 +379,8 @@ MB_MODE_INFO *mbmi, FRAME_COUNTS *counts, TX_SIZE tx_size, int depth, int blk_row, int blk_col, aom_reader *r) { -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; (void)cm; -#endif int is_split = 0; const int tx_row = blk_row >> 1; const int tx_col = blk_col >> 1; @@ -441,11 +408,7 @@ return; } -#if CONFIG_NEW_MULTISYMBOL is_split = aom_read_symbol(r, ec_ctx->txfm_partition_cdf[ctx], 2, ACCT_STR); -#else - is_split = aom_read(r, cm->fc->txfm_partition_prob[ctx], ACCT_STR); -#endif if (is_split) { const TX_SIZE sub_txs = sub_tx_size_map[tx_size]; @@ -619,13 +582,8 @@ if (seg->temporal_update) { const int ctx = av1_get_pred_context_seg_id(xd); -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob *pred_cdf = segp->pred_cdf[ctx]; mbmi->seg_id_predicted = aom_read_symbol(r, pred_cdf, 2, ACCT_STR); -#else - const aom_prob pred_prob = segp->pred_probs[ctx]; - mbmi->seg_id_predicted = aom_read(r, pred_prob, ACCT_STR); -#endif if (counts) ++counts->seg.pred[ctx][mbmi->seg_id_predicted]; if (mbmi->seg_id_predicted) { segment_id = predicted_segment_id; @@ -651,13 +609,9 @@ return 0; } else { const int ctx = av1_get_skip_mode_context(xd); -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; const int skip_mode = aom_read_symbol(r, ec_ctx->skip_mode_cdfs[ctx], 2, ACCT_STR); -#else - const int skip_mode = aom_read(r, cm->fc->skip_mode_probs[ctx], ACCT_STR); -#endif // CONFIG_NEW_MULTISYMBOL FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->skip_mode[ctx][skip_mode]; @@ -674,12 +628,8 @@ return 1; } else { const int ctx = av1_get_skip_context(xd); -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; const int skip = aom_read_symbol(r, ec_ctx->skip_cdfs[ctx], 2, ACCT_STR); -#else - const int skip = aom_read(r, cm->fc->skip_probs[ctx], ACCT_STR); -#endif FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->skip[ctx][skip]; return skip; @@ -818,17 +768,10 @@ palette_y_mode_ctx += (left_mi->mbmi.palette_mode_info.palette_size[0] > 0); } -#if CONFIG_NEW_MULTISYMBOL modev = aom_read_symbol( r, xd->tile_ctx->palette_y_mode_cdf[block_palette_idx][palette_y_mode_ctx], 2, ACCT_STR); -#else - modev = aom_read( - r, - av1_default_palette_y_mode_prob[block_palette_idx][palette_y_mode_ctx], - ACCT_STR); -#endif if (modev) { pmi->palette_size[0] = aom_read_symbol(r, @@ -845,13 +788,8 @@ } if (mbmi->uv_mode == UV_DC_PRED) { const int palette_uv_mode_ctx = (pmi->palette_size[0] > 0); -#if CONFIG_NEW_MULTISYMBOL modev = aom_read_symbol( r, xd->tile_ctx->palette_uv_mode_cdf[palette_uv_mode_ctx], 2, ACCT_STR); -#else - modev = aom_read(r, av1_default_palette_uv_mode_prob[palette_uv_mode_ctx], - ACCT_STR); -#endif if (modev) { pmi->palette_size[1] = aom_read_symbol(r, @@ -1241,33 +1179,21 @@ #endif // CONFIG_INTRABC || CONFIG_AMVR int usehp) { int mag, d, fr, hp; -#if CONFIG_NEW_MULTISYMBOL const int sign = aom_read_symbol(r, mvcomp->sign_cdf, 2, ACCT_STR); -#else - const int sign = aom_read(r, mvcomp->sign, ACCT_STR); -#endif const int mv_class = aom_read_symbol(r, mvcomp->classes_cdf, MV_CLASSES, ACCT_STR); const int class0 = mv_class == MV_CLASS_0; // Integer part if (class0) { -#if CONFIG_NEW_MULTISYMBOL d = aom_read_symbol(r, mvcomp->class0_cdf, CLASS0_SIZE, ACCT_STR); -#else - d = aom_read(r, mvcomp->class0[0], ACCT_STR); -#endif mag = 0; } else { int i; const int n = mv_class + CLASS0_BITS - 1; // number of bits d = 0; -#if CONFIG_NEW_MULTISYMBOL for (i = 0; i < n; ++i) d |= aom_read_symbol(r, mvcomp->bits_cdf[i], 2, ACCT_STR) << i; -#else - for (i = 0; i < n; ++i) d |= aom_read(r, mvcomp->bits[i], ACCT_STR) << i; -#endif mag = CLASS0_SIZE << (mv_class + 2); } @@ -1278,16 +1204,11 @@ fr = aom_read_symbol(r, class0 ? mvcomp->class0_fp_cdf[d] : mvcomp->fp_cdf, MV_FP_SIZE, ACCT_STR); -// High precision part (if hp is not used, the default value of the hp is 1) -#if CONFIG_NEW_MULTISYMBOL + // High precision part (if hp is not used, the default value of the hp is 1) hp = usehp ? aom_read_symbol( r, class0 ? mvcomp->class0_hp_cdf : mvcomp->hp_cdf, 2, ACCT_STR) : 1; -#else - hp = usehp ? aom_read(r, class0 ? mvcomp->class0_hp : mvcomp->hp, ACCT_STR) - : 1; -#endif #if CONFIG_INTRABC || CONFIG_AMVR } else { fr = 3; @@ -1334,13 +1255,8 @@ if (!is_comp_ref_allowed(xd->mi[0]->mbmi.sb_type)) return SINGLE_REFERENCE; if (cm->reference_mode == REFERENCE_MODE_SELECT) { const int ctx = av1_get_reference_mode_context(cm, xd); -#if CONFIG_NEW_MULTISYMBOL const REFERENCE_MODE mode = (REFERENCE_MODE)aom_read_symbol( r, xd->tile_ctx->comp_inter_cdf[ctx], 2, ACCT_STR); -#else - const REFERENCE_MODE mode = - (REFERENCE_MODE)aom_read(r, cm->fc->comp_inter_prob[ctx], ACCT_STR); -#endif FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->comp_inter[ctx][mode]; return mode; // SINGLE_REFERENCE or COMPOUND_REFERENCE @@ -1356,27 +1272,18 @@ if (cm->reference_mode == REFERENCE_MODE_SELECT) { assert(mode == SINGLE_REFERENCE || mode == COMPOUND_REFERENCE); const int ctx = av1_get_reference_mode_context(cm, xd); -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(xd->tile_ctx->comp_inter_cdf[ctx], mode, 2); -#endif // CONFIG_NEW_MULTISYMBOL FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->comp_inter[ctx][mode]; } } #endif // CONFIG_EXT_SKIP -#if CONFIG_NEW_MULTISYMBOL #define READ_REF_BIT(pname) \ aom_read_symbol(r, av1_get_pred_cdf_##pname(cm, xd), 2, ACCT_STR) #define READ_REF_BIT2(pname) \ aom_read_symbol(r, av1_get_pred_cdf_##pname(xd), 2, ACCT_STR) -#else -#define READ_REF_BIT(pname) \ - aom_read(r, av1_get_pred_prob_##pname(cm, xd), ACCT_STR) -#define READ_REF_BIT2(pname) \ - aom_read(r, av1_get_pred_prob_##pname(cm, xd), ACCT_STR) -#endif #if CONFIG_EXT_COMP_REFS static COMP_REFERENCE_TYPE read_comp_reference_type(AV1_COMMON *cm, @@ -1384,14 +1291,9 @@ aom_reader *r) { const int ctx = av1_get_comp_reference_type_context(xd); COMP_REFERENCE_TYPE comp_ref_type; -#if CONFIG_NEW_MULTISYMBOL (void)cm; comp_ref_type = (COMP_REFERENCE_TYPE)aom_read_symbol( r, xd->tile_ctx->comp_ref_type_cdf[ctx], 2, ACCT_STR); -#else - comp_ref_type = (COMP_REFERENCE_TYPE)aom_read( - r, cm->fc->comp_ref_type_prob[ctx], ACCT_STR); -#endif FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->comp_ref_type[ctx][comp_ref_type]; return comp_ref_type; // UNIDIR_COMP_REFERENCE or BIDIR_COMP_REFERENCE @@ -1407,10 +1309,8 @@ comp_ref_type == BIDIR_COMP_REFERENCE); (void)cm; const int ctx = av1_get_comp_reference_type_context(xd); -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(xd->tile_ctx->comp_ref_type_cdf[ctx], comp_ref_type, 2); -#endif // CONFIG_NEW_MULTISYMBOL FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->comp_ref_type[ctx][comp_ref_type]; } @@ -1434,17 +1334,11 @@ #endif // CONFIG_EXT_COMP_REFS // Update stats for both forward and backward references -#if CONFIG_NEW_MULTISYMBOL #define UPDATE_REF_BIT(bname, pname, cname, iname) \ if (allow_update_cdf) \ update_cdf(av1_get_pred_cdf_##pname(cm, xd), bname, 2); \ if (counts) \ ++counts->comp_##cname[av1_get_pred_context_##pname(cm, xd)][iname][bname]; -#else -#define UPDATE_REF_BIT(bname, pname, cname, iname) \ - if (counts) \ - ++counts->comp_##cname[av1_get_pred_context_##pname(cm, xd)][iname][bname]; -#endif // CONFIG_NEW_MULTISYMBOL FRAME_COUNTS *counts = xd->counts; @@ -1915,13 +1809,9 @@ return get_segdata(&cm->seg, segment_id, SEG_LVL_REF_FRAME) != INTRA_FRAME; } else { const int ctx = av1_get_intra_inter_context(xd); -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; const int is_inter = aom_read_symbol(r, ec_ctx->intra_inter_cdf[ctx], 2, ACCT_STR); -#else - const int is_inter = aom_read(r, cm->fc->intra_inter_prob[ctx], ACCT_STR); -#endif FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->intra_inter[ctx][is_inter]; return is_inter; @@ -1935,10 +1825,8 @@ uint8_t allow_update_cdf) { if (!segfeature_active(&cm->seg, segment_id, SEG_LVL_REF_FRAME)) { const int ctx = av1_get_intra_inter_context(xd); -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; if (allow_update_cdf) update_cdf(ec_ctx->intra_inter_cdf[ctx], is_inter, 2); -#endif // CONFIG_NEW_MULTISYMBOL FRAME_COUNTS *counts = xd->counts; if (counts) ++counts->intra_inter[ctx][is_inter]; } @@ -2025,13 +1913,8 @@ #if CONFIG_JNT_COMP if (is_compound) { const int comp_index_ctx = get_comp_index_context(cm, xd); -#if CONFIG_NEW_MULTISYMBOL mbmi->compound_idx = aom_read_symbol( r, ec_ctx->compound_index_cdf[comp_index_ctx], 2, ACCT_STR); -#else - mbmi->compound_idx = - aom_read(r, ec_ctx->compound_index_probs[comp_index_ctx], ACCT_STR); -#endif // CONFIG_NEW_MULTISYMBOL if (xd->counts) ++xd->counts->compound_index[comp_index_ctx][mbmi->compound_idx]; } @@ -2254,13 +2137,8 @@ if (cm->reference_mode != COMPOUND_REFERENCE && cm->allow_interintra_compound && is_interintra_allowed(mbmi)) { const int bsize_group = size_group_lookup[bsize]; -#if CONFIG_NEW_MULTISYMBOL const int interintra = aom_read_symbol(r, ec_ctx->interintra_cdf[bsize_group], 2, ACCT_STR); -#else - const int interintra = - aom_read(r, cm->fc->interintra_prob[bsize_group], ACCT_STR); -#endif if (xd->counts) xd->counts->interintra[bsize_group][interintra]++; assert(mbmi->ref_frame[1] == NONE_FRAME); if (interintra) { @@ -2277,13 +2155,8 @@ mbmi->filter_intra_mode_info.use_filter_intra_mode[1] = 0; #endif // CONFIG_FILTER_INTRA if (is_interintra_wedge_used(bsize)) { -#if CONFIG_NEW_MULTISYMBOL mbmi->use_wedge_interintra = aom_read_symbol( r, ec_ctx->wedge_interintra_cdf[bsize], 2, ACCT_STR); -#else - mbmi->use_wedge_interintra = - aom_read(r, cm->fc->wedge_interintra_prob[bsize], ACCT_STR); -#endif if (xd->counts) xd->counts->wedge_interintra[bsize][mbmi->use_wedge_interintra]++; if (mbmi->use_wedge_interintra) {
diff --git a/av1/decoder/detokenize.c b/av1/decoder/detokenize.c index f3482d0..d8635a5 100644 --- a/av1/decoder/detokenize.c +++ b/av1/decoder/detokenize.c
@@ -39,7 +39,6 @@ if (counts) ++coef_counts[band][ctx][token]; \ } while (0) -#if CONFIG_NEW_MULTISYMBOL #define READ_COEFF(counts, prob_name, cdf_name, num, r) \ read_coeff(counts, cdf_name, num, r); static INLINE int read_coeff(FRAME_COUNTS *counts, @@ -59,21 +58,6 @@ } return val; } -#else -#define READ_COEFF(counts, prob_name, cdf_name, num, r) \ - read_coeff(counts, prob_name, num, r); -static INLINE int read_coeff(FRAME_COUNTS *counts, const aom_prob *probs, int n, - aom_reader *r) { -#if !CONFIG_SYMBOLRATE - (void)counts; -#endif - int i, val = 0; - for (i = 0; i < n; ++i) - val = (val << 1) | av1_read_record(counts, r, probs[i], ACCT_STR); - return val; -} - -#endif static int token_to_value(FRAME_COUNTS *counts, aom_reader *const r, int token, TX_SIZE tx_size, int bit_depth) {
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index 825abc5..2644452 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -113,11 +113,7 @@ FRAME_CONTEXT *ec_ctx, const int16_t mode_ctx) { const int16_t newmv_ctx = mode_ctx & NEWMV_CTX_MASK; -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, mode != NEWMV, ec_ctx->newmv_cdf[newmv_ctx], 2); -#else - aom_write(w, mode != NEWMV, ec_ctx->newmv_prob[newmv_ctx]); -#endif if (mode != NEWMV) { if (mode_ctx & (1 << ALL_ZERO_FLAG_OFFSET)) { @@ -127,11 +123,7 @@ const int16_t zeromv_ctx = (mode_ctx >> GLOBALMV_OFFSET) & GLOBALMV_CTX_MASK; -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, mode != GLOBALMV, ec_ctx->zeromv_cdf[zeromv_ctx], 2); -#else - aom_write(w, mode != GLOBALMV, ec_ctx->zeromv_prob[zeromv_ctx]); -#endif if (mode != GLOBALMV) { int16_t refmv_ctx = (mode_ctx >> REFMV_OFFSET) & REFMV_CTX_MASK; @@ -139,11 +131,7 @@ if (mode_ctx & (1 << SKIP_NEARESTMV_OFFSET)) refmv_ctx = 6; if (mode_ctx & (1 << SKIP_NEARMV_OFFSET)) refmv_ctx = 7; if (mode_ctx & (1 << SKIP_NEARESTMV_SUB8X8_OFFSET)) refmv_ctx = 8; -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, mode != NEARESTMV, ec_ctx->refmv_cdf[refmv_ctx], 2); -#else - aom_write(w, mode != NEARESTMV, ec_ctx->refmv_prob[refmv_ctx]); -#endif } } } @@ -162,12 +150,8 @@ uint8_t drl_ctx = av1_drl_ctx(mbmi_ext->ref_mv_stack[ref_frame_type], idx); -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, mbmi->ref_mv_idx != idx, ec_ctx->drl_cdf[drl_ctx], 2); -#else - aom_write(w, mbmi->ref_mv_idx != idx, ec_ctx->drl_prob[drl_ctx]); -#endif if (mbmi->ref_mv_idx == idx) return; } } @@ -181,12 +165,8 @@ if (mbmi_ext->ref_mv_count[ref_frame_type] > idx + 1) { uint8_t drl_ctx = av1_drl_ctx(mbmi_ext->ref_mv_stack[ref_frame_type], idx); -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, mbmi->ref_mv_idx != (idx - 1), ec_ctx->drl_cdf[drl_ctx], 2); -#else - aom_write(w, mbmi->ref_mv_idx != (idx - 1), ec_ctx->drl_prob[drl_ctx]); -#endif if (mbmi->ref_mv_idx == (idx - 1)) return; } } @@ -213,10 +193,8 @@ const MB_MODE_INFO *mbmi, TX_SIZE tx_size, int depth, int blk_row, int blk_col, aom_writer *w) { -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; (void)cm; -#endif const int tx_row = blk_row >> 1; const int tx_col = blk_col >> 1; const int max_blocks_high = max_block_high(xd, mbmi->sb_type, 0); @@ -237,11 +215,7 @@ const int write_txfm_partition = tx_size == mbmi->inter_tx_size[tx_row][tx_col]; if (write_txfm_partition) { -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, 0, ec_ctx->txfm_partition_cdf[ctx], 2); -#else - aom_write(w, 0, cm->fc->txfm_partition_prob[ctx]); -#endif txfm_partition_update(xd->above_txfm_context + blk_col, xd->left_txfm_context + blk_row, tx_size, tx_size); @@ -251,11 +225,7 @@ const int bsw = tx_size_wide_unit[sub_txs]; const int bsh = tx_size_high_unit[sub_txs]; -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, 1, ec_ctx->txfm_partition_cdf[ctx], 2); -#else - aom_write(w, 1, cm->fc->txfm_partition_prob[ctx]); -#endif if (sub_txs == TX_4X4) { txfm_partition_update(xd->above_txfm_context + blk_col, @@ -274,16 +244,6 @@ } } -#if !CONFIG_NEW_MULTISYMBOL -static void update_txfm_partition_probs(AV1_COMMON *cm, aom_writer *w, - FRAME_COUNTS *counts, int probwt) { - int k; - for (k = 0; k < TXFM_PARTITION_CONTEXTS; ++k) - av1_cond_prob_diff_update(w, &cm->fc->txfm_partition_prob[k], - counts->txfm_partition[k], probwt); -} -#endif // CONFIG_NEW_MULTISYMBOL - static void write_selected_tx_size(const AV1_COMMON *cm, const MACROBLOCKD *xd, aom_writer *w) { const MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi; @@ -309,26 +269,6 @@ } } -#if !CONFIG_NEW_MULTISYMBOL -static void update_inter_mode_probs(AV1_COMMON *cm, aom_writer *w, - FRAME_COUNTS *counts) { - int i; - const int probwt = cm->num_tg; - for (i = 0; i < NEWMV_MODE_CONTEXTS; ++i) - av1_cond_prob_diff_update(w, &cm->fc->newmv_prob[i], counts->newmv_mode[i], - probwt); - for (i = 0; i < GLOBALMV_MODE_CONTEXTS; ++i) - av1_cond_prob_diff_update(w, &cm->fc->zeromv_prob[i], - counts->zeromv_mode[i], probwt); - for (i = 0; i < REFMV_MODE_CONTEXTS; ++i) - av1_cond_prob_diff_update(w, &cm->fc->refmv_prob[i], counts->refmv_mode[i], - probwt); - for (i = 0; i < DRL_MODE_CONTEXTS; ++i) - av1_cond_prob_diff_update(w, &cm->fc->drl_prob[i], counts->drl_mode[i], - probwt); -} -#endif - static int write_skip(const AV1_COMMON *cm, const MACROBLOCKD *xd, int segment_id, const MODE_INFO *mi, aom_writer *w) { if (segfeature_active(&cm->seg, segment_id, SEG_LVL_SKIP)) { @@ -336,12 +276,8 @@ } else { const int skip = mi->mbmi.skip; const int ctx = av1_get_skip_context(xd); -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; aom_write_symbol(w, skip, ec_ctx->skip_cdfs[ctx], 2); -#else - aom_write(w, skip, cm->fc->skip_probs[ctx]); -#endif return skip; } } @@ -350,12 +286,8 @@ int segment_id, aom_writer *w, const int is_inter) { if (!segfeature_active(&cm->seg, segment_id, SEG_LVL_REF_FRAME)) { const int ctx = av1_get_intra_inter_context(xd); -#if CONFIG_NEW_MULTISYMBOL FRAME_CONTEXT *ec_ctx = xd->tile_ctx; aom_write_symbol(w, is_inter, ec_ctx->intra_inter_cdf[ctx], 2); -#else - aom_write(w, is_inter, cm->fc->intra_inter_prob[ctx]); -#endif } } @@ -368,13 +300,8 @@ switch (last_motion_mode_allowed) { case SIMPLE_TRANSLATION: break; case OBMC_CAUSAL: -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, mbmi->motion_mode == OBMC_CAUSAL, xd->tile_ctx->obmc_cdf[mbmi->sb_type], 2); -#else - aom_write(w, mbmi->motion_mode == OBMC_CAUSAL, - cm->fc->obmc_prob[mbmi->sb_type]); -#endif break; default: aom_write_symbol(w, mbmi->motion_mode, @@ -445,18 +372,6 @@ } #endif // CONFIG_EXT_DELTA_Q -#if !CONFIG_NEW_MULTISYMBOL -static void update_skip_probs(AV1_COMMON *cm, aom_writer *w, - FRAME_COUNTS *counts) { - int k; - const int probwt = cm->num_tg; - for (k = 0; k < SKIP_CONTEXTS; ++k) { - av1_cond_prob_diff_update(w, &cm->fc->skip_probs[k], counts->skip[k], - probwt); - } -} -#endif - static void pack_map_tokens(aom_writer *w, const TOKENEXTRA **tp, int n, int num) { const TOKENEXTRA *p = *tp; @@ -471,7 +386,6 @@ } #if !CONFIG_LV_MAP -#if CONFIG_NEW_MULTISYMBOL static INLINE void write_coeff_extra(const aom_cdf_prob *const *cdf, int val, int n, aom_writer *w) { // Code the extra bits from LSB to MSB in groups of 4 @@ -485,19 +399,6 @@ count += size; } } -#else -static INLINE void write_coeff_extra(const aom_prob *pb, int value, - int num_bits, int skip_bits, aom_writer *w, - TOKEN_STATS *token_stats) { - // Code the extra bits from MSB to LSB 1 bit at a time - int index; - for (index = skip_bits; index < num_bits; ++index) { - const int shift = num_bits - index - 1; - const int bb = (value >> shift) & 1; - aom_write_record(w, bb, pb[index], token_stats); - } -} -#endif // CONFIG_NEW_MULTISYMBOL static void pack_mb_tokens(aom_writer *w, const TOKENEXTRA **tp, const TOKENEXTRA *const stop, @@ -556,13 +457,8 @@ assert(!(bit_string >> (bit_string_length - skip_bits + 1))); if (bit_string_length > 0) -#if CONFIG_NEW_MULTISYMBOL write_coeff_extra(extra_bits->cdf, bit_string >> 1, bit_string_length - skip_bits, w); -#else - write_coeff_extra(extra_bits->prob, bit_string >> 1, bit_string_length, - skip_bits, w, token_stats); -#endif aom_write_bit_record(w, bit_string & 1, token_stats); } @@ -756,13 +652,8 @@ int coded_id = neg_interleave(mbmi->q_segment_id, pred, seg->q_lvls); -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob *pred_cdf = segp->q_seg_cdf[cdf_num]; aom_write_symbol(w, coded_id, pred_cdf, 8); -#else - aom_prob pred_cdf = segp->q_seg_cdf[cdf_num]; - aom_write(w, coded_id, pred_prob); -#endif set_q_segment_id(cm, cm->q_seg_map, bsize, mi_row, mi_col, mbmi->q_segment_id); @@ -776,17 +667,10 @@ } } -#if CONFIG_NEW_MULTISYMBOL #define WRITE_REF_BIT(bname, pname) \ aom_write_symbol(w, bname, av1_get_pred_cdf_##pname(cm, xd), 2) #define WRITE_REF_BIT2(bname, pname) \ aom_write_symbol(w, bname, av1_get_pred_cdf_##pname(xd), 2) -#else -#define WRITE_REF_BIT(bname, pname) \ - aom_write(w, bname, av1_get_pred_prob_##pname(cm, xd)) -#define WRITE_REF_BIT2(bname, pname) \ - aom_write(w, bname, av1_get_pred_prob_##pname(cm, xd)) -#endif // This function encodes the reference frame static void write_ref_frames(const AV1_COMMON *cm, const MACROBLOCKD *xd, @@ -816,11 +700,7 @@ // (if not specified at the frame/segment level) if (cm->reference_mode == REFERENCE_MODE_SELECT) { if (is_comp_ref_allowed(mbmi->sb_type)) -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, is_compound, av1_get_reference_mode_cdf(cm, xd), 2); -#else - aom_write(w, is_compound, av1_get_reference_mode_prob(cm, xd)); -#endif // CONFIG_NEW_MULTISYMBOL } else { assert((!is_compound) == (cm->reference_mode == SINGLE_REFERENCE)); } @@ -830,12 +710,8 @@ const COMP_REFERENCE_TYPE comp_ref_type = has_uni_comp_refs(mbmi) ? UNIDIR_COMP_REFERENCE : BIDIR_COMP_REFERENCE; -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, comp_ref_type, av1_get_comp_reference_type_cdf(xd), 2); -#else - aom_write(w, comp_ref_type, av1_get_comp_reference_type_prob(cm, xd)); -#endif if (comp_ref_type == UNIDIR_COMP_REFERENCE) { const int bit = mbmi->ref_frame[0] == BWDREF_FRAME; @@ -1141,16 +1017,10 @@ palette_y_mode_ctx += (left_mi->mbmi.palette_mode_info.palette_size[0] > 0); } -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol( w, n > 0, xd->tile_ctx->palette_y_mode_cdf[block_palette_idx][palette_y_mode_ctx], 2); -#else - aom_write( - w, n > 0, - av1_default_palette_y_mode_prob[block_palette_idx][palette_y_mode_ctx]); -#endif if (n > 0) { aom_write_symbol(w, n - PALETTE_MIN_SIZE, xd->tile_ctx->palette_y_size_cdf[block_palette_idx], @@ -1174,12 +1044,8 @@ if (uv_dc_pred) { const int n = pmi->palette_size[1]; const int palette_uv_mode_ctx = (pmi->palette_size[0] > 0); -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, n > 0, xd->tile_ctx->palette_uv_mode_cdf[palette_uv_mode_ctx], 2); -#else - aom_write(w, n > 0, av1_default_palette_uv_mode_prob[palette_uv_mode_ctx]); -#endif if (n > 0) { aom_write_symbol(w, n - PALETTE_MIN_SIZE, xd->tile_ctx->palette_uv_size_cdf[block_palette_idx], @@ -1333,13 +1199,8 @@ if (seg->update_map) { if (seg->temporal_update) { const int pred_flag = mbmi->seg_id_predicted; -#if CONFIG_NEW_MULTISYMBOL aom_cdf_prob *pred_cdf = av1_get_pred_cdf_seg_id(segp, xd); aom_write_symbol(w, pred_flag, pred_cdf, 2); -#else - aom_prob pred_prob = av1_get_pred_prob_seg_id(segp, xd); - aom_write(w, pred_flag, pred_prob); -#endif if (!pred_flag) write_segment_id(w, seg, segp, segment_id); } else { write_segment_id(w, seg, segp, segment_id); @@ -1439,19 +1300,11 @@ write_ref_frames(cm, xd, w); #if CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL if (has_second_ref(mbmi)) { const int comp_index_ctx = get_comp_index_context(cm, xd); aom_write_symbol(w, mbmi->compound_idx, ec_ctx->compound_index_cdf[comp_index_ctx], 2); } -#else - if (has_second_ref(mbmi)) { - const int comp_index_ctx = get_comp_index_context(cm, xd); - aom_write(w, mbmi->compound_idx, - ec_ctx->compound_index_probs[comp_index_ctx]); - } -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_JNT_COMP if (is_compound) @@ -1510,23 +1363,14 @@ cpi->common.allow_interintra_compound && is_interintra_allowed(mbmi)) { const int interintra = mbmi->ref_frame[1] == INTRA_FRAME; const int bsize_group = size_group_lookup[bsize]; -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, interintra, ec_ctx->interintra_cdf[bsize_group], 2); -#else - aom_write(w, interintra, cm->fc->interintra_prob[bsize_group]); -#endif if (interintra) { aom_write_symbol(w, mbmi->interintra_mode, ec_ctx->interintra_mode_cdf[bsize_group], INTERINTRA_MODES); if (is_interintra_wedge_used(bsize)) { -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, mbmi->use_wedge_interintra, ec_ctx->wedge_interintra_cdf[bsize], 2); -#else - aom_write(w, mbmi->use_wedge_interintra, - cm->fc->wedge_interintra_prob[bsize]); -#endif if (mbmi->use_wedge_interintra) { aom_write_literal(w, mbmi->interintra_wedge_index, get_wedge_bits_lookup(bsize)); @@ -2564,22 +2408,14 @@ default: assert(unit_rtype == RESTORE_NONE); break; } } else if (frame_rtype == RESTORE_WIENER) { -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, unit_rtype != RESTORE_NONE, xd->tile_ctx->wiener_restore_cdf, 2); -#else - aom_write(w, unit_rtype != RESTORE_NONE, RESTORE_NONE_WIENER_PROB); -#endif // CONFIG_NEW_MULTISYMBOL if (unit_rtype != RESTORE_NONE) { write_wiener_filter(wiener_win, &rui->wiener_info, wiener_info, w); } } else if (frame_rtype == RESTORE_SGRPROJ) { -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, unit_rtype != RESTORE_NONE, xd->tile_ctx->sgrproj_restore_cdf, 2); -#else - aom_write(w, unit_rtype != RESTORE_NONE, RESTORE_NONE_SGRPROJ_PROB); -#endif // CONFIG_NEW_MULTISYMBOL if (unit_rtype != RESTORE_NONE) { write_sgrproj_filter(&rui->sgrproj_info, sgrproj_info, w); } @@ -4377,10 +4213,6 @@ FRAME_CONTEXT *const fc = cm->fc; aom_writer *header_bc; -#if !CONFIG_NEW_MULTISYMBOL - FRAME_COUNTS *counts = cpi->td.counts; -#endif - const int probwt = cm->num_tg; (void)probwt; (void)fc; @@ -4392,100 +4224,10 @@ #endif aom_start_encode(header_bc, data); -#if !CONFIG_NEW_MULTISYMBOL - if (cm->tx_mode == TX_MODE_SELECT) - update_txfm_partition_probs(cm, header_bc, counts, probwt); -#endif - -#if !CONFIG_NEW_MULTISYMBOL - update_skip_probs(cm, header_bc, counts); -#if CONFIG_JNT_COMP - for (int k = 0; k < COMP_INDEX_CONTEXTS; ++k) - av1_cond_prob_diff_update(header_bc, &cm->fc->compound_index_probs[k], - counts->compound_index[k], probwt); -#endif // CONFIG_JNT_COMP -#endif - if (!frame_is_intra_only(cm)) { -#if !CONFIG_NEW_MULTISYMBOL - update_inter_mode_probs(cm, header_bc, counts); -#endif if (cm->reference_mode != COMPOUND_REFERENCE && cm->allow_interintra_compound) { -#if !CONFIG_NEW_MULTISYMBOL - for (int i = 0; i < BLOCK_SIZE_GROUPS; i++) { - if (is_interintra_allowed_bsize_group(i)) { - av1_cond_prob_diff_update(header_bc, &fc->interintra_prob[i], - cm->counts.interintra[i], probwt); - } - } -#endif -#if !CONFIG_NEW_MULTISYMBOL -#if CONFIG_EXT_PARTITION_TYPES - int block_sizes_to_update = BLOCK_SIZES_ALL; -#else - int block_sizes_to_update = BLOCK_SIZES; -#endif - for (int i = 0; i < block_sizes_to_update; i++) { - if (is_interintra_allowed_bsize(i) && is_interintra_wedge_used(i)) - av1_cond_prob_diff_update(header_bc, &fc->wedge_interintra_prob[i], - cm->counts.wedge_interintra[i], probwt); - } -#endif // !CONFIG_NEW_MULTISYMBOL } - -#if !CONFIG_NEW_MULTISYMBOL - for (int i = 0; i < INTRA_INTER_CONTEXTS; i++) - av1_cond_prob_diff_update(header_bc, &fc->intra_inter_prob[i], - counts->intra_inter[i], probwt); -#endif - -#if !CONFIG_NEW_MULTISYMBOL - if (cpi->allow_comp_inter_inter) { - const int use_hybrid_pred = cm->reference_mode == REFERENCE_MODE_SELECT; - if (use_hybrid_pred) - for (int i = 0; i < COMP_INTER_CONTEXTS; i++) - av1_cond_prob_diff_update(header_bc, &fc->comp_inter_prob[i], - counts->comp_inter[i], probwt); - } - - if (cm->reference_mode != COMPOUND_REFERENCE) { - for (int i = 0; i < REF_CONTEXTS; i++) { - for (int j = 0; j < (SINGLE_REFS - 1); j++) { - av1_cond_prob_diff_update(header_bc, &fc->single_ref_prob[i][j], - counts->single_ref[i][j], probwt); - } - } - } - - if (cm->reference_mode != SINGLE_REFERENCE) { -#if CONFIG_EXT_COMP_REFS - for (int i = 0; i < COMP_REF_TYPE_CONTEXTS; i++) - av1_cond_prob_diff_update(header_bc, &fc->comp_ref_type_prob[i], - counts->comp_ref_type[i], probwt); - - for (int i = 0; i < UNI_COMP_REF_CONTEXTS; i++) - for (int j = 0; j < (UNIDIR_COMP_REFS - 1); j++) - av1_cond_prob_diff_update(header_bc, &fc->uni_comp_ref_prob[i][j], - counts->uni_comp_ref[i][j], probwt); -#endif // CONFIG_EXT_COMP_REFS - - for (int i = 0; i < REF_CONTEXTS; i++) { - for (int j = 0; j < (FWD_REFS - 1); j++) { - av1_cond_prob_diff_update(header_bc, &fc->comp_ref_prob[i][j], - counts->comp_ref[i][j], probwt); - } - for (int j = 0; j < (BWD_REFS - 1); j++) { - av1_cond_prob_diff_update(header_bc, &fc->comp_bwdref_prob[i][j], - counts->comp_bwdref[i][j], probwt); - } - } - } -#endif // CONFIG_NEW_MULTISYMBOL - -#if !CONFIG_NEW_MULTISYMBOL - av1_write_nmv_probs(cm, cm->allow_high_precision_mv, header_bc, counts->mv); -#endif } aom_stop_encode(header_bc); assert(header_bc->pos <= 0xffff);
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c index 2cde80a..5456b8b 100644 --- a/av1/encoder/encodeframe.c +++ b/av1/encoder/encodeframe.c
@@ -644,12 +644,6 @@ av1_copy_frame_mvs(cm, mi, mi_row, mi_col, x_mis, y_mis); #if CONFIG_JNT_COMP -#if !CONFIG_NEW_MULTISYMBOL - if (has_second_ref(mbmi)) { - const int comp_index_ctx = get_comp_index_context(cm, xd); - ++td->counts->compound_index[comp_index_ctx][mbmi->compound_idx]; - } -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_JNT_COMP } @@ -1030,9 +1024,7 @@ if (!seg_ref_active) { const int skip_ctx = av1_get_skip_context(xd); td->counts->skip[skip_ctx][mbmi->skip]++; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(fc->skip_cdfs[skip_ctx], mbmi->skip, 2); -#endif // CONFIG_NEW_MULTISYMBOL } if (cm->delta_q_present_flag && (bsize != cm->sb_size || !mbmi->skip) && @@ -1095,11 +1087,9 @@ const int inter_block = is_inter_block(mbmi); if (!seg_ref_active) { counts->intra_inter[av1_get_intra_inter_context(xd)][inter_block]++; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(fc->intra_inter_cdf[av1_get_intra_inter_context(xd)], inter_block, 2); -#endif // If the segment reference feature is enabled we have only a single // reference frame allowed for the segment so exclude it from // the reference frame counts used to work out probabilities. @@ -1117,11 +1107,9 @@ if (is_comp_ref_allowed(mbmi->sb_type)) { counts->comp_inter[av1_get_reference_mode_context(cm, xd)] [has_second_ref(mbmi)]++; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(av1_get_reference_mode_cdf(cm, xd), has_second_ref(mbmi), 2); -#endif // CONFIG_NEW_MULTISYMBOL } } @@ -1197,28 +1185,22 @@ const int bsize_group = size_group_lookup[bsize]; if (mbmi->ref_frame[1] == INTRA_FRAME) { counts->interintra[bsize_group][1]++; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(fc->interintra_cdf[bsize_group], 1, 2); -#endif counts->interintra_mode[bsize_group][mbmi->interintra_mode]++; if (allow_update_cdf) update_cdf(fc->interintra_mode_cdf[bsize_group], mbmi->interintra_mode, INTERINTRA_MODES); if (is_interintra_wedge_used(bsize)) { counts->wedge_interintra[bsize][mbmi->use_wedge_interintra]++; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(fc->wedge_interintra_cdf[bsize], mbmi->use_wedge_interintra, 2); -#endif } } else { counts->interintra[bsize_group][0]++; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(fc->interintra_cdf[bsize_group], 0, 2); -#endif } } @@ -1233,11 +1215,9 @@ MOTION_MODES); } else if (motion_allowed == OBMC_CAUSAL) { counts->obmc[mbmi->sb_type][mbmi->motion_mode == OBMC_CAUSAL]++; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(fc->obmc_cdf[mbmi->sb_type], mbmi->motion_mode == OBMC_CAUSAL, 2); -#endif } } @@ -1304,14 +1284,12 @@ } #if CONFIG_JNT_COMP -#if CONFIG_NEW_MULTISYMBOL if (has_second_ref(mbmi)) { const int comp_index_ctx = get_comp_index_context(cm, xd); ++counts->compound_index[comp_index_ctx][mbmi->compound_idx]; update_cdf(fc->compound_index_cdf[comp_index_ctx], mbmi->compound_idx, 2); } -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_JNT_COMP } } @@ -4499,7 +4477,6 @@ update_cdf(fc->uv_mode_cdf[y_mode], uv_mode, UV_INTRA_MODES); } -#if CONFIG_NEW_MULTISYMBOL // TODO(anybody) We can add stats accumulation here to train entropy models for // palette modes static void update_palette_cdf(MACROBLOCKD *xd, const MODE_INFO *mi) { @@ -4534,7 +4511,6 @@ update_cdf(fc->palette_uv_mode_cdf[palette_uv_mode_ctx], n > 0, 2); } } -#endif static void update_txfm_count(MACROBLOCK *x, MACROBLOCKD *xd, FRAME_COUNTS *counts, TX_SIZE tx_size, int depth, @@ -4563,10 +4539,8 @@ if (tx_size == plane_tx_size) { ++counts->txfm_partition[ctx][0]; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(xd->tile_ctx->txfm_partition_cdf[ctx], 0, 2); -#endif mbmi->tx_size = tx_size; txfm_partition_update(xd->above_txfm_context + blk_col, xd->left_txfm_context + blk_row, tx_size, tx_size); @@ -4576,10 +4550,8 @@ const int bsh = tx_size_high_unit[sub_txs]; ++counts->txfm_partition[ctx][1]; -#if CONFIG_NEW_MULTISYMBOL if (allow_update_cdf) update_cdf(xd->tile_ctx->txfm_partition_cdf[ctx], 1, 2); -#endif ++x->txb_split_count; if (sub_txs == TX_4X4) { @@ -4790,11 +4762,9 @@ sum_intra_stats(td->counts, xd, mi, xd->above_mi, xd->left_mi, frame_is_intra_only(cm), mi_row, mi_col, tile_data->allow_update_cdf); -#if CONFIG_NEW_MULTISYMBOL if (av1_allow_palette(cm->allow_screen_content_tools, bsize) && tile_data->allow_update_cdf) update_palette_cdf(xd, mi); -#endif } if (bsize >= BLOCK_8X8) {
diff --git a/av1/encoder/encodemv.c b/av1/encoder/encodemv.c index 5adf317..f35aaf9 100644 --- a/av1/encoder/encodemv.c +++ b/av1/encoder/encodemv.c
@@ -42,32 +42,20 @@ assert(comp != 0); -// Sign -#if CONFIG_NEW_MULTISYMBOL + // Sign aom_write_symbol(w, sign, mvcomp->sign_cdf, 2); -#else - aom_write(w, sign, mvcomp->sign); -#endif // Class aom_write_symbol(w, mv_class, mvcomp->classes_cdf, MV_CLASSES); // Integer bits if (mv_class == MV_CLASS_0) { -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol(w, d, mvcomp->class0_cdf, CLASS0_SIZE); -#else - aom_write(w, d, mvcomp->class0[0]); -#endif } else { int i; const int n = mv_class + CLASS0_BITS - 1; // number of bits -#if CONFIG_NEW_MULTISYMBOL for (i = 0; i < n; ++i) aom_write_symbol(w, (d >> i) & 1, mvcomp->bits_cdf[i], 2); -#else - for (i = 0; i < n; ++i) aom_write(w, (d >> i) & 1, mvcomp->bits[i]); -#endif } // Fractional bits #if CONFIG_INTRABC || CONFIG_AMVR @@ -82,13 +70,9 @@ // High precision bit if (precision > MV_SUBPEL_LOW_PRECISION) -#if CONFIG_NEW_MULTISYMBOL aom_write_symbol( w, hp, mv_class == MV_CLASS_0 ? mvcomp->class0_hp_cdf : mvcomp->hp_cdf, 2); -#else - aom_write(w, hp, mv_class == MV_CLASS_0 ? mvcomp->class0_hp : mvcomp->hp); -#endif } static void build_nmv_component_cost_table(int *mvcost, @@ -100,25 +84,11 @@ int class0_fp_cost[CLASS0_SIZE][MV_FP_SIZE], fp_cost[MV_FP_SIZE]; int class0_hp_cost[2], hp_cost[2]; -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(sign_cost, mvcomp->sign_cdf, NULL); -#else - sign_cost[0] = av1_cost_zero(mvcomp->sign); - sign_cost[1] = av1_cost_one(mvcomp->sign); -#endif // CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(class_cost, mvcomp->classes_cdf, NULL); -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(class0_cost, mvcomp->class0_cdf, NULL); -#else - av1_cost_tokens(class0_cost, mvcomp->class0, av1_mv_class0_tree); -#endif // CONFIG_NEW_MULTISYMBOL for (i = 0; i < MV_OFFSET_BITS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(bits_cost[i], mvcomp->bits_cdf[i], NULL); -#else - bits_cost[i][0] = av1_cost_zero(mvcomp->bits[i]); - bits_cost[i][1] = av1_cost_one(mvcomp->bits[i]); -#endif // CONFIG_NEW_MULTISYMBOL } for (i = 0; i < CLASS0_SIZE; ++i) @@ -126,15 +96,8 @@ av1_cost_tokens_from_cdf(fp_cost, mvcomp->fp_cdf, NULL); if (precision > MV_SUBPEL_LOW_PRECISION) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(class0_hp_cost, mvcomp->class0_hp_cdf, NULL); av1_cost_tokens_from_cdf(hp_cost, mvcomp->hp_cdf, NULL); -#else - class0_hp_cost[0] = av1_cost_zero(mvcomp->class0_hp); - class0_hp_cost[1] = av1_cost_one(mvcomp->class0_hp); - hp_cost[0] = av1_cost_zero(mvcomp->hp); - hp_cost[1] = av1_cost_one(mvcomp->hp); -#endif // CONFIG_NEW_MULTISYMBOL } mvcost[0] = 0; for (v = 1; v <= MV_MAX; ++v) { @@ -173,40 +136,6 @@ } } -#if !CONFIG_NEW_MULTISYMBOL -static void update_mv(aom_writer *w, const unsigned int ct[2], aom_prob *cur_p, - aom_prob upd_p) { - (void)upd_p; - // Just use the default maximum number of tile groups to avoid passing in the - // actual - // number - av1_cond_prob_diff_update(w, cur_p, ct, DEFAULT_MAX_NUM_TG); -} - -void av1_write_nmv_probs(AV1_COMMON *cm, int usehp, aom_writer *w, - nmv_context_counts *const nmv_counts) { - int i; - int nmv_ctx = 0; -#if CONFIG_AMVR - if (cm->cur_frame_force_integer_mv) { - return; - } -#endif - for (nmv_ctx = 0; nmv_ctx < NMV_CONTEXTS; ++nmv_ctx) { - nmv_context *const mvc = &cm->fc->nmvc[nmv_ctx]; - nmv_context_counts *const counts = &nmv_counts[nmv_ctx]; - - if (usehp) { - for (i = 0; i < 2; ++i) { - update_mv(w, counts->comps[i].class0_hp, &mvc->comps[i].class0_hp, - MV_UPDATE_PROB); - update_mv(w, counts->comps[i].hp, &mvc->comps[i].hp, MV_UPDATE_PROB); - } - } - } -} -#endif - void av1_encode_mv(AV1_COMP *cpi, aom_writer *w, const MV *mv, const MV *ref, nmv_context *mvctx, int usehp) { const MV diff = { mv->row - ref->row, mv->col - ref->col };
diff --git a/av1/encoder/encodemv.h b/av1/encoder/encodemv.h index 8689cec..116b291 100644 --- a/av1/encoder/encodemv.h +++ b/av1/encoder/encodemv.h
@@ -20,11 +20,6 @@ void av1_entropy_mv_init(void); -#if !CONFIG_NEW_MULTISYMBOL -void av1_write_nmv_probs(AV1_COMMON *cm, int usehp, aom_writer *w, - nmv_context_counts *const counts); -#endif - void av1_encode_mv(AV1_COMP *cpi, aom_writer *w, const MV *mv, const MV *ref, nmv_context *mvctx, int usehp);
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c index e57d3d3..a15afb9 100644 --- a/av1/encoder/encoder.c +++ b/av1/encoder/encoder.c
@@ -5685,9 +5685,6 @@ if (!frame_is_intra_only(cm)) { if (cm->refresh_frame_context == REFRESH_FRAME_CONTEXT_BACKWARD) { av1_adapt_inter_frame_probs(cm); -#if !CONFIG_NEW_MULTISYMBOL - av1_adapt_mv_probs(cm, cm->allow_high_precision_mv); -#endif // !CONFIG_NEW_MULTISYMBOL av1_average_tile_inter_cdfs(&cpi->common, cpi->common.fc, tile_ctxs, cdf_ptrs, num_bwd_ctxs); av1_average_tile_mv_cdfs(cpi->common.fc, tile_ctxs, cdf_ptrs,
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c index ff3b799..d511812 100644 --- a/av1/encoder/rd.c +++ b/av1/encoder/rd.c
@@ -94,12 +94,7 @@ } for (i = 0; i < SKIP_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->skip_cost[i], fc->skip_cdfs[i], NULL); -#else - x->skip_cost[i][0] = av1_cost_bit(fc->skip_probs[i], 0); - x->skip_cost[i][1] = av1_cost_bit(fc->skip_probs[i], 1); -#endif // CONFIG_NEW_MULTISYMBOL } #if CONFIG_KF_CTX @@ -136,28 +131,14 @@ av1_cost_tokens_from_cdf(x->palette_uv_size_cost[i], fc->palette_uv_size_cdf[i], NULL); for (j = 0; j < PALETTE_Y_MODE_CONTEXTS; ++j) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->palette_y_mode_cost[i][j], fc->palette_y_mode_cdf[i][j], NULL); -#else - x->palette_y_mode_cost[i][j][0] = - av1_cost_bit(av1_default_palette_y_mode_prob[i][j], 0); - x->palette_y_mode_cost[i][j][1] = - av1_cost_bit(av1_default_palette_y_mode_prob[i][j], 1); -#endif } } for (i = 0; i < PALETTE_UV_MODE_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->palette_uv_mode_cost[i], fc->palette_uv_mode_cdf[i], NULL); -#else - x->palette_uv_mode_cost[i][0] = - av1_cost_bit(av1_default_palette_uv_mode_prob[i], 0); - x->palette_uv_mode_cost[i][1] = - av1_cost_bit(av1_default_palette_uv_mode_prob[i], 1); -#endif } for (i = 0; i < PALETTE_SIZES; ++i) { @@ -206,13 +187,8 @@ NULL); for (i = 0; i < TXFM_PARTITION_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->txfm_partition_cost[i], fc->txfm_partition_cdf[i], NULL); -#else - x->txfm_partition_cost[i][0] = av1_cost_bit(fc->txfm_partition_prob[i], 0); - x->txfm_partition_cost[i][1] = av1_cost_bit(fc->txfm_partition_prob[i], 1); -#endif } for (i = TX_4X4; i < EXT_TX_SIZES; ++i) { @@ -243,17 +219,10 @@ #if CONFIG_LOOP_RESTORATION av1_cost_tokens_from_cdf(x->switchable_restore_cost, fc->switchable_restore_cdf, NULL); -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->wiener_restore_cost, fc->wiener_restore_cdf, NULL); av1_cost_tokens_from_cdf(x->sgrproj_restore_cost, fc->sgrproj_restore_cdf, NULL); -#else - x->wiener_restore_cost[0] = av1_cost_bit(RESTORE_NONE_WIENER_PROB, 0); - x->wiener_restore_cost[1] = av1_cost_bit(RESTORE_NONE_WIENER_PROB, 1); - x->sgrproj_restore_cost[0] = av1_cost_bit(RESTORE_NONE_SGRPROJ_PROB, 0); - x->sgrproj_restore_cost[1] = av1_cost_bit(RESTORE_NONE_SGRPROJ_PROB, 1); -#endif // CONFIG_NEW_MULTISYMBOL #endif // CONFIG_LOOP_RESTORATION #if CONFIG_INTRABC av1_cost_tokens_from_cdf(x->intrabc_cost, fc->intrabc_cdf, NULL); @@ -261,49 +230,24 @@ if (!frame_is_intra_only(cm)) { for (i = 0; i < INTRA_INTER_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->intra_inter_cost[i], fc->intra_inter_cdf[i], NULL); -#else - x->intra_inter_cost[i][0] = av1_cost_bit(fc->intra_inter_prob[i], 0); - x->intra_inter_cost[i][1] = av1_cost_bit(fc->intra_inter_prob[i], 1); -#endif } for (i = 0; i < NEWMV_MODE_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->newmv_mode_cost[i], fc->newmv_cdf[i], NULL); -#else - x->newmv_mode_cost[i][0] = av1_cost_bit(fc->newmv_prob[i], 0); - x->newmv_mode_cost[i][1] = av1_cost_bit(fc->newmv_prob[i], 1); -#endif } for (i = 0; i < GLOBALMV_MODE_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->zeromv_mode_cost[i], fc->zeromv_cdf[i], NULL); -#else - x->zeromv_mode_cost[i][0] = av1_cost_bit(fc->zeromv_prob[i], 0); - x->zeromv_mode_cost[i][1] = av1_cost_bit(fc->zeromv_prob[i], 1); -#endif } for (i = 0; i < REFMV_MODE_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->refmv_mode_cost[i], fc->refmv_cdf[i], NULL); -#else - x->refmv_mode_cost[i][0] = av1_cost_bit(fc->refmv_prob[i], 0); - x->refmv_mode_cost[i][1] = av1_cost_bit(fc->refmv_prob[i], 1); -#endif } for (i = 0; i < DRL_MODE_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->drl_mode_cost0[i], fc->drl_cdf[i], NULL); -#else - x->drl_mode_cost0[i][0] = av1_cost_bit(fc->drl_prob[i], 0); - x->drl_mode_cost0[i][1] = av1_cost_bit(fc->drl_prob[i], 1); -#endif } for (i = 0; i < INTER_MODE_CONTEXTS; ++i) av1_cost_tokens_from_cdf(x->inter_compound_mode_cost[i], @@ -312,48 +256,26 @@ av1_cost_tokens_from_cdf(x->compound_type_cost[i], fc->compound_type_cdf[i], NULL); for (i = 0; i < BLOCK_SIZE_GROUPS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->interintra_cost[i], fc->interintra_cdf[i], NULL); -#else - x->interintra_cost[i][0] = av1_cost_bit(fc->interintra_prob[i], 0); - x->interintra_cost[i][1] = av1_cost_bit(fc->interintra_prob[i], 1); -#endif av1_cost_tokens_from_cdf(x->interintra_mode_cost[i], fc->interintra_mode_cdf[i], NULL); } for (i = 0; i < BLOCK_SIZES_ALL; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->wedge_interintra_cost[i], fc->wedge_interintra_cdf[i], NULL); -#else - x->wedge_interintra_cost[i][0] = - av1_cost_bit(fc->wedge_interintra_prob[i], 0); - x->wedge_interintra_cost[i][1] = - av1_cost_bit(fc->wedge_interintra_prob[i], 1); -#endif } for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; i++) { av1_cost_tokens_from_cdf(x->motion_mode_cost[i], fc->motion_mode_cdf[i], NULL); } for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; i++) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->motion_mode_cost1[i], fc->obmc_cdf[i], NULL); -#else - x->motion_mode_cost1[i][0] = av1_cost_bit(fc->obmc_prob[i], 0); - x->motion_mode_cost1[i][1] = av1_cost_bit(fc->obmc_prob[i], 1); -#endif } #if CONFIG_JNT_COMP for (i = 0; i < COMP_INDEX_CONTEXTS; ++i) { -#if CONFIG_NEW_MULTISYMBOL av1_cost_tokens_from_cdf(x->comp_idx_cost[i], fc->compound_index_cdf[i], NULL); -#else - x->comp_idx_cost[i][0] = av1_cost_bit(fc->compound_index_probs[i], 0); - x->comp_idx_cost[i][1] = av1_cost_bit(fc->compound_index_probs[i], 1); -#endif // CONFIG_NEW_MULTISYMBOL } #endif // CONFIG_JNT_COMP }
diff --git a/av1/encoder/segmentation.c b/av1/encoder/segmentation.c index 59a16a0..2424de9 100644 --- a/av1/encoder/segmentation.c +++ b/av1/encoder/segmentation.c
@@ -311,9 +311,6 @@ aom_prob no_pred_tree[SEG_TREE_PROBS]; aom_prob t_pred_tree[SEG_TREE_PROBS]; -#if !CONFIG_NEW_MULTISYMBOL - aom_prob t_nopred_prob[PREDICTION_PROBS]; -#endif (void)xd; @@ -358,23 +355,6 @@ calc_segtree_probs(t_unpred_seg_counts, t_pred_tree, segp->tree_probs, probwt); t_pred_cost = cost_segmap(t_unpred_seg_counts, t_pred_tree); -#if !CONFIG_NEW_MULTISYMBOL - // Add in the cost of the signaling for each prediction context. - int i; - for (i = 0; i < PREDICTION_PROBS; i++) { - const int count0 = temporal_predictor_count[i][0]; - const int count1 = temporal_predictor_count[i][1]; - - t_nopred_prob[i] = get_binary_prob(count0, count1); - av1_prob_diff_update_savings_search( - temporal_predictor_count[i], segp->pred_probs[i], &t_nopred_prob[i], - DIFF_UPDATE_PROB, probwt); - - // Add in the predictor signaling cost - t_pred_cost += count0 * av1_cost_zero(t_nopred_prob[i]) + - count1 * av1_cost_one(t_nopred_prob[i]); - } -#endif } // Now choose which coding method to use.
diff --git a/av1/encoder/tokenize.c b/av1/encoder/tokenize.c index e92ce9d..1f7d2e1 100644 --- a/av1/encoder/tokenize.c +++ b/av1/encoder/tokenize.c
@@ -232,7 +232,6 @@ 0, 3, 6, 9, 12, 18, 24, 30 }; -#if CONFIG_NEW_MULTISYMBOL const av1_extra_bit av1_extra_bits[ENTROPY_TOKENS] = { { 0, 0, 0, zero_cost }, // ZERO_TOKEN { 0, 0, 1, sign_cost }, // ONE_TOKEN @@ -247,22 +246,6 @@ { av1_cat6_cdf, 18, CAT6_MIN_VAL, 0 }, // CATEGORY6_TOKEN { 0, 0, 0, zero_cost } // EOB_TOKEN }; -#else -const av1_extra_bit av1_extra_bits[ENTROPY_TOKENS] = { - { 0, 0, 0, zero_cost }, // ZERO_TOKEN - { 0, 0, 1, sign_cost }, // ONE_TOKEN - { 0, 0, 2, sign_cost }, // TWO_TOKEN - { 0, 0, 3, sign_cost }, // THREE_TOKEN - { 0, 0, 4, sign_cost }, // FOUR_TOKEN - { av1_cat1_prob, 1, CAT1_MIN_VAL, cat1_cost }, // CATEGORY1_TOKEN - { av1_cat2_prob, 2, CAT2_MIN_VAL, cat2_cost }, // CATEGORY2_TOKEN - { av1_cat3_prob, 3, CAT3_MIN_VAL, cat3_cost }, // CATEGORY3_TOKEN - { av1_cat4_prob, 4, CAT4_MIN_VAL, cat4_cost }, // CATEGORY4_TOKEN - { av1_cat5_prob, 5, CAT5_MIN_VAL, cat5_cost }, // CATEGORY5_TOKEN - { av1_cat6_prob, 18, CAT6_MIN_VAL, 0 }, // CATEGORY6_TOKEN - { 0, 0, 0, zero_cost } // EOB_TOKEN -}; -#endif static void cost_coeffs_b(int plane, int block, int blk_row, int blk_col, BLOCK_SIZE plane_bsize, TX_SIZE tx_size, void *arg) {
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake index 1525cc9..726022a 100644 --- a/build/cmake/aom_config_defaults.cmake +++ b/build/cmake/aom_config_defaults.cmake
@@ -169,7 +169,6 @@ set(CONFIG_MRC_TX 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_MV_COMPRESS 1 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_NCOBMC 0 CACHE NUMBER "AV1 experiment flag.") -set(CONFIG_NEW_MULTISYMBOL 1 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_NEW_QUANT 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_NO_FRAME_CONTEXT_SIGNALING 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_OBU 0 CACHE NUMBER "AV1 experiment flag.")
diff --git a/configure b/configure index c450b2c..0c76cd6 100755 --- a/configure +++ b/configure
@@ -305,7 +305,6 @@ mv_compress segment_globalmv frame_superres - new_multisymbol aom_qm ext_qm ext_comp_refs @@ -504,7 +503,6 @@ soft_enable loop_restoration soft_enable ext_partition soft_enable ext_partition_types - soft_enable new_multisymbol # Provisional adopted soft_enable q_adapt_probs