From c614164cb6b16bcf26f30ed761950d0276769779 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 25 Apr 2017 16:11:19 -0700 Subject: [PATCH] vp9: SVC: Adjust some speed settings for temporal layers. Make some speed setting changes for temporal enhancement layers, and remove the switch in subpel_force_stop for the aggressive_base_mv in non-rd pickmode. Gain some 2-3% speed with little/negligible quality loss. Change-Id: I3e2a7f80ff45f38c0a6ceb01b34dbca2f53edbf0 --- vp9/encoder/vp9_pickmode.c | 4 +--- vp9/encoder/vp9_speed_features.c | 10 +++++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index c82930f56..23982d057 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -211,9 +211,7 @@ static int combined_motion_search(VP9_COMP *cpi, MACROBLOCK *x, !(RDCOST(x->rdmult, x->rddiv, (*rate_mv + rate_mode), 0) > best_rd_sofar); if (rv) { - const int subpel_force_stop = use_base_mv && cpi->sf.base_mv_aggressive - ? 2 - : cpi->sf.mv.subpel_force_stop; + const int subpel_force_stop = cpi->sf.mv.subpel_force_stop; cpi->find_fractional_mv_step( x, &tmp_mv->as_mv, &ref_mv, cpi->common.allow_high_precision_mv, x->errorperbit, &cpi->fn_ptr[bsize], subpel_force_stop, diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index fbf13969e..5bfd3f26d 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -530,7 +530,15 @@ static void set_rt_speed_feature_framesize_independent( // Enable short circuit for low temporal variance. sf->short_circuit_low_temp_var = 1; } - if (cpi->use_svc) sf->base_mv_aggressive = 1; + if (cpi->svc.temporal_layer_id > 0) { + sf->adaptive_rd_thresh = 4; + sf->limit_newmv_early_exit = 0; + sf->mv.subpel_force_stop = (cpi->svc.temporal_layer_id == 1) ? 1 : 2; + sf->base_mv_aggressive = + (cpi->svc.temporal_layer_id == cpi->svc.number_temporal_layers - 1) + ? 1 + : 0; + } } if (speed >= 7) { -- 2.40.0