// 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) {
// With row based multi-threading, the following speed features
// have to be disabled to guarantee that bitstreams encoded with single thread
// and multiple threads match
- if (cpi->oxcf.row_mt_bit_exact) {
- sf->adaptive_rd_thresh = 0;
- sf->adaptive_pred_interp_filter = 0;
- }
+ if (cpi->row_mt_bit_exact) sf->adaptive_rd_thresh = 0;
// This is only used in motion vector unit test.
if (cpi->oxcf.motion_vector_unit_test == 1)
// With row based multi-threading, the following speed features
// have to be disabled to guarantee that bitstreams encoded with single thread
// and multiple threads match
- if (cpi->oxcf.row_mt_bit_exact) {
- sf->adaptive_rd_thresh = 0;
- sf->adaptive_pred_interp_filter = 0;
- }
+ if (cpi->row_mt_bit_exact) sf->adaptive_rd_thresh = 0;
// This is only used in motion vector unit test.
if (cpi->oxcf.motion_vector_unit_test == 1)