ref: 004fab120a4f57881ef9f7431f91043748d7bf95
parent: 15ee8a8c4579b1cdb9fd4a1624b0803ab285a731
parent: c614164cb6b16bcf26f30ed761950d0276769779
author: Marco Paniconi <marpan@google.com>
date: Wed Apr 26 11:45:05 EDT 2017
Merge "vp9: SVC: Adjust some speed settings for temporal layers."
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -211,9 +211,7 @@
!(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,
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -530,7 +530,15 @@
// 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) {