Disable LAST2 and ALTREF2 reference frames in speed 6.
selective_ref_frame speed feature is extended to
disable LAST2_FRAME and ALTREF2_FRAME reference
frames for speed 6.
Instruction Count BD-Rate Loss(%)
cpu-used Reduction(%) avg.psnr ovr.psnr ssim
6 1.465 0.0953 0.1053 0.0918
Change-Id: Iadf6e581e6ec1b902dbd8a6d5fdcbb61dafb5857
diff --git a/av1/encoder/encodeframe_utils.h b/av1/encoder/encodeframe_utils.h
index a08b89e..7bdfad5 100644
--- a/av1/encoder/encodeframe_utils.h
+++ b/av1/encoder/encodeframe_utils.h
@@ -344,8 +344,11 @@
unsigned int num_refs_to_disable = 0;
if (cpi->sf.inter_sf.selective_ref_frame >= 3) {
num_refs_to_disable++;
- if (cpi->sf.inter_sf.selective_ref_frame >= 5 &&
- *ref_frame_flags & av1_ref_frame_flag_list[LAST2_FRAME]) {
+ if (cpi->sf.inter_sf.selective_ref_frame >= 6) {
+ // Disable LAST2_FRAME and ALTREF2_FRAME
+ num_refs_to_disable += 2;
+ } else if (cpi->sf.inter_sf.selective_ref_frame == 5 &&
+ *ref_frame_flags & av1_ref_frame_flag_list[LAST2_FRAME]) {
const int last2_frame_dist = av1_encoder_get_relative_dist(
ref_display_order_hint[LAST2_FRAME - LAST_FRAME],
cur_frame_display_index);
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 02deb3b..0847bab 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1013,6 +1013,7 @@
sf->inter_sf.prune_inter_modes_based_on_tpl = boosted ? 0 : 3;
sf->inter_sf.prune_nearmv_using_neighbors = 1;
+ sf->inter_sf.selective_ref_frame = 6;
sf->intra_sf.chroma_intra_pruning_with_hog = 4;
sf->intra_sf.intra_pruning_with_hog = 4;
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index a09a326..b58f2d6 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -605,7 +605,7 @@
int prune_inter_modes_if_skippable;
// Drop less likely to be picked reference frames in the RD search.
- // Has six levels for now: 0, 1, 2, 3, 4 and 5, where higher levels prune
+ // Has seven levels for now: 0, 1, 2, 3, 4, 5 and 6 where higher levels prune
// more aggressively than lower ones. (0 means no pruning).
int selective_ref_frame;