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