Do not run TPL for filtered Key frames at speed 6
Skipped running TPL for filtered Key frames at speed 6.
Borg test results at speed 6:
avg_psnr: ovr_psnr: ssim: avg speed change:
hdres: 0.028 0.019 0.280 0.6%
midres: 0.005 0.010 0.070 0.9%
lowres: 0.079 0.070 0.169 0.6%
STATS_CHANGED
Change-Id: Ia68c6462384ee44d0ae57499737beafaa1a776b5
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index d98fc46..013bbfb 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -931,10 +931,12 @@
source_kf_buffer->metadata);
}
- if (frame_params->frame_type == KEY_FRAME && !is_stat_generation_stage(cpi) &&
- oxcf->enable_tpl_model && oxcf->gf_cfg.lag_in_frames > 0 &&
- frame_params->show_frame) {
- av1_tpl_setup_stats(cpi, 0, frame_params, frame_input);
+ if (!cpi->sf.tpl_sf.disable_filtered_key_tpl) {
+ if (frame_params->frame_type == KEY_FRAME &&
+ !is_stat_generation_stage(cpi) && oxcf->enable_tpl_model &&
+ oxcf->gf_cfg.lag_in_frames > 0 && frame_params->show_frame) {
+ av1_tpl_setup_stats(cpi, 0, frame_params, frame_input);
+ }
}
if (av1_encode(cpi, dest, frame_input, frame_params, frame_results) !=
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index e495d7e..83c8c6a 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -626,6 +626,7 @@
sf->mv_sf.simple_motion_subpel_force_stop = FULL_PEL;
sf->rd_sf.perform_coeff_opt = is_boosted_arf2_bwd_type ? 4 : 6;
sf->tpl_sf.subpel_force_stop = FULL_PEL;
+ sf->tpl_sf.disable_filtered_key_tpl = 1;
sf->tx_sf.tx_type_search.prune_tx_type_est_rd = 0;
}
}
@@ -933,6 +934,7 @@
tpl_sf->reduce_first_step_size = 0;
tpl_sf->skip_alike_starting_mv = 0;
tpl_sf->subpel_force_stop = EIGHTH_PEL;
+ tpl_sf->disable_filtered_key_tpl = 0;
}
static AOM_INLINE void init_gm_sf(GLOBAL_MOTION_SPEED_FEATURES *gm_sf) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 2798fce..37b5eef 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -315,6 +315,9 @@
// Prune starting mvs in TPL based on sad scores.
int prune_starting_mv;
+
+ // Not run TPL for filtered Key frame.
+ int disable_filtered_key_tpl;
} TPL_SPEED_FEATURES;
typedef struct GLOBAL_MOTION_SPEED_FEATURES {