FG8 combined test: Test 22 and Test 23 Combined tests for FG8 context reduction activity: Tests 22 and 23 STATS_CHANGED
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index 15c1f0d..83dda29 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -628,10 +628,15 @@ #if CONFIG_WARP_PRECISION if (max_coded_index >= WARP_DELTA_NUMSYMBOLS_LOW && coded_value >= (WARP_DELTA_NUMSYMBOLS_LOW - 1)) { +#if CONFIG_BYPASS_WARP_PARAM_HIGH + coded_value = + 7 + aom_read_literal(r, WARP_DELTA_NUMSYMBOLS_HIGH, ACCT_INFO()); +#else coded_value = 7 + aom_read_symbol(r, xd->tile_ctx->warp_delta_param_high_cdf[index_type], WARP_DELTA_NUMSYMBOLS_HIGH, ACCT_INFO()); +#endif // } #endif // CONFIG_WARP_PRECISION @@ -695,8 +700,13 @@ decoded_delta_param[index] = coded_value; // decode sign if (coded_value) { +#if CONFIG_BYPASS_WARP_PARAM_SIGN + int sign = aom_read_bit(r, ACCT_INFO()); +#else + int sign = aom_read_symbol(r, xd->tile_ctx->warp_param_sign_cdf, 2, ACCT_INFO()); +#endif decoded_delta_param[index] = sign ? -coded_value : coded_value; } #else
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index 428cf9e..5102cbb 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -688,9 +688,14 @@ #if CONFIG_WARP_PRECISION if (max_coded_index >= WARP_DELTA_NUMSYMBOLS_LOW && coded_value >= coded_value_low_max) { +#if CONFIG_BYPASS_WARP_PARAM_HIGH + aom_write_literal(w, coded_value - 7, WARP_DELTA_NUMSYMBOLS_HIGH); + +#else aom_write_symbol(w, coded_value - 7, xd->tile_ctx->warp_delta_param_high_cdf[index_type], WARP_DELTA_NUMSYMBOLS_HIGH); +#endif } #endif // CONFIG_WARP_PRECISION } @@ -744,8 +749,12 @@ max_coded_index); // Code sign if (coded_delta_param[index]) { +#if CONFIG_BYPASS_WARP_PARAM_SIGN + aom_write_bit(w, coded_delta_param[index] < 0); +#else aom_write_symbol(w, coded_delta_param[index] < 0, xd->tile_ctx->warp_param_sign_cdf, 2); +#endif } #else coded_delta_param[index] = (value / step_size) + max_coded_index;
diff --git a/av1/encoder/partition_search.c b/av1/encoder/partition_search.c index 3982479..17b1d74 100644 --- a/av1/encoder/partition_search.c +++ b/av1/encoder/partition_search.c
@@ -1232,6 +1232,10 @@ #endif // CONFIG_WARP_PRECISION ) { +#if CONFIG_BYPASS_WARP_PARAM_HIGH + (void)max_coded_index; +#endif + assert(2 <= index && index <= 5); int index_type = (index == 2 || index == 5) ? 0 : 1; int coded_value_low_max = (WARP_DELTA_NUMSYMBOLS_LOW - 1); @@ -1244,11 +1248,13 @@ WARP_DELTA_NUMSYMBOLS_LOW); #if CONFIG_WARP_PRECISION +#if !CONFIG_BYPASS_WARP_PARAM_HIGH if (max_coded_index >= WARP_DELTA_NUMSYMBOLS_LOW && coded_value >= coded_value_low_max) { update_cdf(fc->warp_delta_param_high_cdf[index_type], coded_value - 7, WARP_DELTA_NUMSYMBOLS_HIGH); } +#endif #endif // CONFIG_WARP_PRECISION #if CONFIG_ENTROPY_STATS @@ -1312,10 +1318,12 @@ counts, #endif // CONFIG_ENTROPY_STATS fc, max_coded_index); +#if !CONFIG_BYPASS_WARP_PARAM_SIGN // update sign context if (coded_value) { update_cdf(fc->warp_param_sign_cdf, coded_value < 0, 2); } +#endif #else int coded_value = (value / step_size) + max_coded_index; update_warp_delta_param_stats(index, coded_value,
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake index 3c05cbd..9e5e145 100644 --- a/build/cmake/aom_config_defaults.cmake +++ b/build/cmake/aom_config_defaults.cmake
@@ -158,6 +158,9 @@ 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") + # AV2 experiment flags. set_aom_config_var(CONFIG_IMPROVEIDTX 1 "AV2 enable improved identity transform coding.")