Disable one sided compound mode
Disabled one sided compound mode at speed 5.
avg_psnr: ovr_psnr: ssim: avg speedup:
midres: 0.167 0.170 0.194 1.6%
hdres: 0.121 0.125 0.145 1.1%
STATS_CHANGED
Change-Id: If3e28cc4fe78137539c35dc9c456b3a7f1479055
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 00f0a3e..c9b7eed 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -11596,7 +11596,8 @@
return;
}
- if (!cpi->oxcf.enable_onesided_comp && cpi->all_one_sided_refs) {
+ if ((!cpi->oxcf.enable_onesided_comp || cpi->sf.disable_onesided_comp) &&
+ cpi->all_one_sided_refs) {
return;
}
@@ -12403,7 +12404,8 @@
}
const int comp_pred = ref_frame[1] > INTRA_FRAME;
- if (!cpi->oxcf.enable_onesided_comp && comp_pred && cpi->all_one_sided_refs) {
+ if ((!cpi->oxcf.enable_onesided_comp || cpi->sf.disable_onesided_comp) &&
+ comp_pred && cpi->all_one_sided_refs) {
return 1;
}
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 38cf4a7..0635169 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -480,6 +480,7 @@
sf->disable_obmc = 1;
sf->disable_interinter_wedge = 1;
sf->disable_smooth_interintra = 1;
+ sf->disable_onesided_comp = 1;
}
}
@@ -919,7 +920,7 @@
sf->disable_lr_filter = 0;
sf->inter_mode_rd_model_estimation = 0;
sf->prune_compound_using_single_ref = 0;
-
+ sf->disable_onesided_comp = 0;
sf->prune_mode_search_simple_translation = 0;
sf->obmc_full_pixel_search_level = 0;
sf->skip_sharp_interp_filter_search = 0;
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index eca84e9..e650af8 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -761,6 +761,9 @@
// the single reference modes, it is one of the two best performers.
int prune_compound_using_single_ref;
+ // Disable one sided compound modes.
+ int disable_onesided_comp;
+
// Use CNN with luma pixels on source frame on each of the 64x64 subblock to
// perform split/no_split decision on intra-frames.
int intra_cnn_split;