FG8 combined test: CT3 code cleanup and macro reordering changes are lossless in this commit
diff --git a/av1/common/entropy.c b/av1/common/entropy.c index ee46d8f..deca7ac 100644 --- a/av1/common/entropy.c +++ b/av1/common/entropy.c
@@ -409,9 +409,9 @@ #if CONFIG_AIMC RESET_CDF_COUNTER(fc->y_mode_set_cdf, INTRA_MODE_SETS); RESET_CDF_COUNTER(fc->y_mode_idx_cdf_0, FIRST_MODE_COUNT); -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE RESET_CDF_COUNTER(fc->y_mode_idx_cdf_1, SECOND_MODE_COUNT); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE #else RESET_CDF_COUNTER(fc->y_mode_cdf, INTRA_MODES); #endif // CONFIG_AIMC
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c index b109c52..57df654 100644 --- a/av1/common/entropymode.c +++ b/av1/common/entropymode.c
@@ -246,7 +246,7 @@ 29340, 31013, 31870), 75 }, }; -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE static const aom_cdf_prob default_y_second_mode_cdf[Y_MODE_CONTEXTS][CDF_SIZE(SECOND_MODE_COUNT)] = { { AOM_CDF16(2614, 4872, 7327, 9645, 11546, 13349, 15504, 17424, 19397, @@ -259,7 +259,7 @@ 19690, 21835, 25356, 27731, 29157, 30362), 76 }, }; -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE static const aom_cdf_prob default_uv_mode_cdf[UV_MODE_CONTEXTS][CDF_SIZE(UV_INTRA_MODES - 1)] = { { AOM_CDF13(13848, 18930, 20641, 22133, 23986, 25450, 28075, 28950, 29740, @@ -287,7 +287,7 @@ { AOM_CDF13(7000, 12000, 14000, 16000, 17000, 22000, 26000, 27000, 28000, 29000, 30000, 31000) } }; -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE static const aom_cdf_prob default_y_second_mode_cdf[Y_MODE_CONTEXTS][CDF_SIZE(SECOND_MODE_COUNT)] = { { AOM_CDF16(2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, @@ -297,7 +297,7 @@ { AOM_CDF16(2048, 4096, 6144, 8192, 10240, 12288, 14336, 16384, 18432, 20480, 22528, 24576, 26624, 28672, 30720) } }; -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE static const aom_cdf_prob default_uv_mode_cdf[UV_MODE_CONTEXTS][CDF_SIZE(UV_INTRA_MODES - 1)] = { { AOM_CDF13(20545, 22597, 24087, 24753, 24995, 25621, 26273, 27089, 28510, @@ -8558,9 +8558,9 @@ #if CONFIG_AIMC av1_copy(fc->y_mode_set_cdf, default_y_mode_set_cdf); av1_copy(fc->y_mode_idx_cdf_0, default_y_first_mode_cdf); -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE av1_copy(fc->y_mode_idx_cdf_1, default_y_second_mode_cdf); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE #else av1_copy(fc->y_mode_cdf, default_if_y_mode_cdf); #endif // CONFIG_AIMC @@ -9089,10 +9089,10 @@ INTRA_MODE_SETS); CUMULATIVE_AVERAGE_CDF(ctx_left->y_mode_idx_cdf_0, ctx_tr->y_mode_idx_cdf_0, FIRST_MODE_COUNT); -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE CUMULATIVE_AVERAGE_CDF(ctx_left->y_mode_idx_cdf_1, ctx_tr->y_mode_idx_cdf_1, SECOND_MODE_COUNT); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE #else CUMULATIVE_AVERAGE_CDF(ctx_left->y_mode_cdf, ctx_tr->y_mode_cdf, INTRA_MODES); #endif // CONFIG_AIMC @@ -9517,9 +9517,9 @@ #if CONFIG_AIMC SHIFT_CDF(ctx_ptr->y_mode_set_cdf, INTRA_MODE_SETS); SHIFT_CDF(ctx_ptr->y_mode_idx_cdf_0, FIRST_MODE_COUNT); -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE SHIFT_CDF(ctx_ptr->y_mode_idx_cdf_1, SECOND_MODE_COUNT); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE #else SHIFT_CDF(ctx_ptr->y_mode_cdf, INTRA_MODES); #endif // CONFIG_AIMC @@ -9988,10 +9988,10 @@ INTRA_MODE_SETS); AVERAGE_CDF(ctx_left->y_mode_idx_cdf_0, ctx_tr->y_mode_idx_cdf_0, FIRST_MODE_COUNT); -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE AVERAGE_CDF(ctx_left->y_mode_idx_cdf_1, ctx_tr->y_mode_idx_cdf_1, SECOND_MODE_COUNT); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE #else AVERAGE_CDF(ctx_left->y_mode_cdf, ctx_tr->y_mode_cdf, INTRA_MODES); #endif // CONFIG_AIMC
diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h index 8a6778a..6eedc4c 100644 --- a/av1/common/entropymode.h +++ b/av1/common/entropymode.h
@@ -581,9 +581,9 @@ // y mode cdf aom_cdf_prob y_mode_set_cdf[CDF_SIZE(INTRA_MODE_SETS)]; aom_cdf_prob y_mode_idx_cdf_0[Y_MODE_CONTEXTS][CDF_SIZE(FIRST_MODE_COUNT)]; -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE aom_cdf_prob y_mode_idx_cdf_1[Y_MODE_CONTEXTS][CDF_SIZE(SECOND_MODE_COUNT)]; -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE aom_cdf_prob uv_mode_cdf[UV_MODE_CONTEXTS][CDF_SIZE(UV_INTRA_MODES - 1)]; aom_cdf_prob cfl_cdf[CFL_CONTEXTS][CDF_SIZE(2)]; #endif // CONFIG_AIMC
diff --git a/av1/common/enums.h b/av1/common/enums.h index 3df0fa9..90dc0e6 100644 --- a/av1/common/enums.h +++ b/av1/common/enums.h
@@ -29,8 +29,6 @@ #undef MAX_SB_SIZE -#define TEST_27 1 // literal coding of y_second_mode - #define BAWP_BUGFIX 1 #define ADJUST_SUPER_RES_Q 1
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index 72f2836..a7a9ba1 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -2154,13 +2154,13 @@ ACCT_INFO("mode_idx", "y_mode_idx_cdf_0")); } else { mode_idx = FIRST_MODE_COUNT + (mode_set_index - 1) * SECOND_MODE_COUNT + -#if TEST_27 +#if CONFIG_CTX_Y_SECOND_MODE aom_read_literal(r, 4, ACCT_INFO("mode_idx")); #else aom_read_symbol(r, ec_ctx->y_mode_idx_cdf_1[context], SECOND_MODE_COUNT, ACCT_INFO("mode_idx", "y_mode_idx_cdf_1")); -#endif // TEST_27 +#endif // CONFIG_CTX_Y_SECOND_MODE } assert(mode_idx < LUMA_MODE_COUNT); get_y_intra_mode_set(mbmi, xd);
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index 8e86f44..89bceeb 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -2125,7 +2125,7 @@ aom_write_symbol(w, mode_idx, ec_ctx->y_mode_idx_cdf_0[context], FIRST_MODE_COUNT); } else { -#if TEST_27 +#if CONFIG_CTX_Y_SECOND_MODE aom_write_literal( w, mode_idx - FIRST_MODE_COUNT - (mode_set_index - 1) * SECOND_MODE_COUNT, @@ -2135,7 +2135,7 @@ w, mode_idx - FIRST_MODE_COUNT - (mode_set_index - 1) * SECOND_MODE_COUNT, ec_ctx->y_mode_idx_cdf_1[context], SECOND_MODE_COUNT); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE } if (mbmi->joint_y_mode_delta_angle < NON_DIRECTIONAL_MODES_COUNT) assert(mbmi->joint_y_mode_delta_angle == mbmi->y_mode_idx);
diff --git a/av1/encoder/block.h b/av1/encoder/block.h index 93fca27..ca13d1b 100644 --- a/av1/encoder/block.h +++ b/av1/encoder/block.h
@@ -985,9 +985,9 @@ //! y first mode cost int y_first_mode_costs[Y_MODE_CONTEXTS][FIRST_MODE_COUNT]; //! y second mode cost -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE int y_second_mode_costs[Y_MODE_CONTEXTS][SECOND_MODE_COUNT]; -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE //! uv mode cost int intra_uv_mode_cost[UV_MODE_CONTEXTS][UV_INTRA_MODES - 1]; //! CFL mode cost
diff --git a/av1/encoder/encodeframe_utils.c b/av1/encoder/encodeframe_utils.c index 24434c4..3ab02ac 100644 --- a/av1/encoder/encodeframe_utils.c +++ b/av1/encoder/encodeframe_utils.c
@@ -599,7 +599,7 @@ #endif update_cdf(fc->y_mode_idx_cdf_0[context], mode_idx, FIRST_MODE_COUNT); } -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE else { const int mode_idx_in_set = mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1); @@ -609,7 +609,7 @@ update_cdf(fc->y_mode_idx_cdf_1[context], mode_idx_in_set, SECOND_MODE_COUNT); } -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE } else { update_cdf(fc->dpcm_vert_horz_cdf, mbmi->dpcm_mode_y, 2); } @@ -628,7 +628,7 @@ #endif update_cdf(fc->y_mode_idx_cdf_0[context], mode_idx, FIRST_MODE_COUNT); } -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE else { const int mode_idx_in_set = mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1); @@ -638,7 +638,7 @@ update_cdf(fc->y_mode_idx_cdf_1[context], mode_idx_in_set, SECOND_MODE_COUNT); } -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE } #else // CONFIG_LOSSLESS_DPCM const int context = get_y_mode_idx_ctx(xd); @@ -655,7 +655,7 @@ #endif update_cdf(fc->y_mode_idx_cdf_0[context], mode_idx, FIRST_MODE_COUNT); } -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE else { const int mode_idx_in_set = mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1); @@ -665,7 +665,7 @@ update_cdf(fc->y_mode_idx_cdf_1[context], mode_idx_in_set, SECOND_MODE_COUNT); } -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE #endif // CONFIG_LOSSLESS_DPCM update_fsc_cdf(cm, xd, #if CONFIG_ENTROPY_STATS @@ -1746,10 +1746,10 @@ INTRA_MODE_SETS); AVERAGE_CDF(ctx_left->y_mode_idx_cdf_0, ctx_tr->y_mode_idx_cdf_0, FIRST_MODE_COUNT); -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE AVERAGE_CDF(ctx_left->y_mode_idx_cdf_1, ctx_tr->y_mode_idx_cdf_1, SECOND_MODE_COUNT); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE #else AVERAGE_CDF(ctx_left->y_mode_cdf, ctx_tr->y_mode_cdf, INTRA_MODES); #endif // CONFIG_AIMC
diff --git a/av1/encoder/intra_mode_search.c b/av1/encoder/intra_mode_search.c index 35ba94c..bc751c4 100644 --- a/av1/encoder/intra_mode_search.c +++ b/av1/encoder/intra_mode_search.c
@@ -1532,7 +1532,7 @@ mode_cost += x->mode_costs.y_first_mode_costs[context][mbmi->y_mode_idx]; } else { -#if TEST_27 +#if CONFIG_CTX_Y_SECOND_MODE mode_cost += av1_cost_literal(4); #else mode_cost += @@ -1540,7 +1540,7 @@ .y_second_mode_costs[context] [mbmi->y_mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1)]; -#endif // TEST_27 +#endif // CONFIG_CTX_Y_SECOND_MODE } mode_cost += ref_frame_cost; mode_cost += mrl_idx_cost; @@ -1556,7 +1556,7 @@ if (mbmi->y_mode_idx < FIRST_MODE_COUNT) { mode_cost += x->mode_costs.y_first_mode_costs[context][mbmi->y_mode_idx]; } else { -#if TEST_27 +#if CONFIG_CTX_Y_SECOND_MODE mode_cost += av1_cost_literal(4); #else mode_cost += @@ -1564,7 +1564,7 @@ .y_second_mode_costs[context] [mbmi->y_mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1)]; -#endif // TEST_27 +#endif // CONFIG_CTX_Y_SECOND_MODE } mode_cost += ref_frame_cost; mode_cost += mrl_idx_cost; @@ -1577,7 +1577,7 @@ if (mbmi->y_mode_idx < FIRST_MODE_COUNT) { mode_cost += x->mode_costs.y_first_mode_costs[context][mbmi->y_mode_idx]; } else { -#if TEST_27 +#if CONFIG_CTX_Y_SECOND_MODE mode_cost += av1_cost_literal(4); #else mode_cost += @@ -1585,7 +1585,7 @@ .y_second_mode_costs[context] [mbmi->y_mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1)]; -#endif // TEST_27 +#endif // CONFIG_CTX_Y_SECOND_MODE } #if CONFIG_EXTENDED_SDP if (mbmi->region_type != INTRA_REGION) @@ -1947,13 +1947,13 @@ if (mode_idx < FIRST_MODE_COUNT) { mode_costs += x->mode_costs.y_first_mode_costs[context][mode_idx]; } else { -#if TEST_27 +#if CONFIG_CTX_Y_SECOND_MODE mode_costs += av1_cost_literal(4); #else mode_costs += x->mode_costs.y_second_mode_costs [context][mbmi->y_mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1)]; -#endif // TEST_27 +#endif // CONFIG_CTX_Y_SECOND_MODE } #if CONFIG_LOSSLESS_DPCM } else { @@ -2272,13 +2272,13 @@ if (mode_idx < FIRST_MODE_COUNT) { mode_costs += x->mode_costs.y_first_mode_costs[context][mode_idx]; } else { -#if TEST_27 +#if CONFIG_CTX_Y_SECOND_MODE mode_costs += av1_cost_literal(4); #else mode_costs += x->mode_costs.y_second_mode_costs [context][mbmi->y_mode_idx - FIRST_MODE_COUNT - SECOND_MODE_COUNT * (mode_set_index - 1)]; -#endif // TEST_27 +#endif // CONFIG_CTX_Y_SECOND_MODE } #if CONFIG_LOSSLESS_DPCM } else {
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c index 75c660c..d8a0d7c 100644 --- a/av1/encoder/rd.c +++ b/av1/encoder/rd.c
@@ -208,10 +208,10 @@ // y mode costs av1_cost_tokens_from_cdf(mode_costs->y_first_mode_costs[i], fc->y_mode_idx_cdf_0[i], NULL); -#if !TEST_27 +#if !CONFIG_CTX_Y_SECOND_MODE av1_cost_tokens_from_cdf(mode_costs->y_second_mode_costs[i], fc->y_mode_idx_cdf_1[i], NULL); -#endif // !TEST_27 +#endif // !CONFIG_CTX_Y_SECOND_MODE } #else for (i = 0; i < KF_MODE_CONTEXTS; ++i)
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake index 89287c2..047f63e 100644 --- a/build/cmake/aom_config_defaults.cmake +++ b/build/cmake/aom_config_defaults.cmake
@@ -146,20 +146,24 @@ set_aom_config_var(CONFIG_PARAKIT_COLLECT_DATA 0 "enables data collection for ParaKit training.") +# FG8 context simplification tests set_aom_config_var(CONFIG_CTX_V_AC_SIGN 1 "FG8-Test1.") set_aom_config_var(CONFIG_CTX_MV_SHELL_OFFSET_OTHER 1 "FG8-Test3.") set_aom_config_var(CONFIG_EOB_PT_CTX_REDUCTION 1 "FG8-Test4.") +set_aom_config_var(CONFIG_COEFF_BR_LF_UV_BYPASS 1 + "AV2 experiment flag to bypass UV LF syntax. FG8-Test9.") +set_aom_config_var(CONFIG_COEFF_BR_PH_BYPASS 1 + "AV2 experiment flag to bypass BR PH syntax. FG8-Test10.") set_aom_config_var(CONFIG_BY_PASS_V_SIGN 1 "FG8-Test11.") set_aom_config_var(CONFIG_CTX_WARP_REFIDX_REDUCTION 7 "FG8-Test19, Test20, Test21") - -set_aom_config_var(CONFIG_PLT_DIR_CTX 1 "by-pass PLT dir coding. FG8-Test24") - -set_aom_config_var(CONFIG_MERGE_PARA_CTX 1 - "by-pass merge para coding. FG8-Test26") - set_aom_config_var(CONFIG_BYPASS_WARP_PARAM_HIGH 1 "bypass coding FG8-Test22") set_aom_config_var(CONFIG_BYPASS_WARP_PARAM_SIGN 1 "bypass coding FG8-Test23") +set_aom_config_var(CONFIG_PLT_DIR_CTX 1 "by-pass PLT dir coding. FG8-Test24") +set_aom_config_var(CONFIG_BYPASS_INTRABC_DRL_IDX 1 "bypass coding FG8-Test25") +set_aom_config_var(CONFIG_MERGE_PARA_CTX 1 + "by-pass merge para coding. FG8-Test26") +set_aom_config_var(CONFIG_CTX_Y_SECOND_MODE 1 "bypass coding FG8-Test27") # AV2 experiment flags. set_aom_config_var(CONFIG_IMPROVEIDTX 1 @@ -200,7 +204,6 @@ 1 "AV2 remove 2-stage search and early termination in neighbors for DMVR with 16-neighbor full search" ) -set_aom_config_var(CONFIG_BYPASS_INTRABC_DRL_IDX 1 "bypass coding FG8-Test25") set_aom_config_var( CONFIG_IDIF 1 "AV2 experiment flag to enable Intra Directional Interpolation Filter.") @@ -223,12 +226,6 @@ CONFIG_CONTEXT_DERIVATION 1 "AV2 experiment flag to enable modified context derivation : CWG-B065.") -set_aom_config_var(CONFIG_COEFF_BR_LF_UV_BYPASS 1 - "AV2 experiment flag to bypass UV LF syntax. FG8-Test9.") - -set_aom_config_var(CONFIG_COEFF_BR_PH_BYPASS 1 - "AV2 experiment flag to bypass BR PH syntax. FG8-Test10.") - set_aom_config_var(CONFIG_EXTENDED_SDP 1 "Enable SDP for intra blocks in inter frame") set_aom_config_var(