Add an expt to remove allow high precision mv flag Change-Id: I3873acafcd9539da96f67328cdb8faf7798be90f
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c index 2bf8918..1d79c80 100644 --- a/av1/decoder/decodeframe.c +++ b/av1/decoder/decodeframe.c
@@ -3112,10 +3112,18 @@ if (cm->cur_frame_force_integer_mv) { cm->allow_high_precision_mv = 0; } else { +#if CONFIG_EIGHTH_PEL_MV_ONLY + cm->allow_high_precision_mv = 1; +#else cm->allow_high_precision_mv = aom_rb_read_bit(rb); +#endif // CONFIG_EIGHTH_PEL_MV_ONLY } #else +#if CONFIG_EIGHTH_PEL_MV_ONLY + cm->allow_high_precision_mv = 1; +#else cm->allow_high_precision_mv = aom_rb_read_bit(rb); +#endif // CONFIG_EIGHTH_PEL_MV_ONLY #endif cm->interp_filter = read_frame_interp_filter(rb); #if CONFIG_TEMPMV_SIGNALING
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index 41ae432..2e6ccb0 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -4030,10 +4030,14 @@ if (cm->cur_frame_force_integer_mv) { cm->allow_high_precision_mv = 0; } else { +#if !CONFIG_EIGHTH_PEL_MV_ONLY aom_wb_write_bit(wb, cm->allow_high_precision_mv); +#endif // !CONFIG_EIGHTH_PEL_MV_ONLY } #else +#if !CONFIG_EIGHTH_PEL_MV_ONLY aom_wb_write_bit(wb, cm->allow_high_precision_mv); +#endif // !CONFIG_EIGHTH_PEL_MV_ONLY #endif fix_interp_filter(cm, cpi->td.counts); write_frame_interp_filter(cm->interp_filter, wb);
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c index ff0695e..b65392d 100644 --- a/av1/encoder/encoder.c +++ b/av1/encoder/encoder.c
@@ -2480,9 +2480,9 @@ set_compound_tools(cm); av1_reset_segment_features(cm); #if CONFIG_AMVR - set_high_precision_mv(cpi, 0, 0); + set_high_precision_mv(cpi, 1, 0); #else - set_high_precision_mv(cpi, 0); + set_high_precision_mv(cpi, 1); #endif set_rc_buffer_sizes(rc, &cpi->oxcf); @@ -4121,10 +4121,18 @@ if (!frame_is_intra_only(cm)) { #if CONFIG_AMVR +#if CONFIG_EIGHTH_PEL_MV_ONLY + set_high_precision_mv(cpi, 1, cpi->common.cur_frame_force_integer_mv); +#else set_high_precision_mv(cpi, (*q) < HIGH_PRECISION_MV_QTHRESH, cpi->common.cur_frame_force_integer_mv); +#endif // CONFIG_EIGHTH_PEL_MV_ONLY +#else +#if CONFIG_EIGHTH_PEL_MV_ONLY + set_high_precision_mv(cpi, 1); #else set_high_precision_mv(cpi, (*q) < HIGH_PRECISION_MV_QTHRESH); +#endif // CONFIG_EIGHTH_PEL_MV_ONLY #endif } @@ -6165,9 +6173,17 @@ aom_usec_timer_start(&cmptimer); #if CONFIG_AMVR +#if CONFIG_EIGHTH_PEL_MV_ONLY + set_high_precision_mv(cpi, 1, 0); +#else set_high_precision_mv(cpi, ALTREF_HIGH_PRECISION_MV, 0); +#endif // CONFIG_EIGHTH_PEL_MV_ONLY +#else +#if CONFIG_EIGHTH_PEL_MV_ONLY + set_high_precision_mv(cpi, 1); #else set_high_precision_mv(cpi, ALTREF_HIGH_PRECISION_MV); +#endif // CONFIG_EIGHTH_PEL_MV_ONLY #endif // Is multi-arf enabled.
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake index be7b770..9b176f2 100644 --- a/build/cmake/aom_config_defaults.cmake +++ b/build/cmake/aom_config_defaults.cmake
@@ -130,6 +130,7 @@ set(CONFIG_DEPENDENT_HORZTILES 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_DIST_8X8 1 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_DUAL_FILTER 1 CACHE NUMBER "AV1 experiment flag.") +set(CONFIG_EIGHTH_PEL_MV_ONLY 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_ENTROPY_STATS 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_EOB_FIRST 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_EXT_COMP_REFS 1 CACHE NUMBER "AV1 experiment flag.")
diff --git a/configure b/configure index 5bd5a49..28c0649 100755 --- a/configure +++ b/configure
@@ -342,6 +342,7 @@ horzonly_frame_superres simple_bwd_adapt eob_first + eighth_pel_mv_only " CONFIG_LIST=" dependency_tracking