summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vp9/encoder/vp9_ratectrl.c2
-rw-r--r--vp9/encoder/vp9_speed_features.c2
-rw-r--r--vp9/encoder/vp9_speed_features.h3
3 files changed, 6 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c
index e39c18cd6..768f3682f 100644
--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -986,7 +986,7 @@ int vp9_rc_pick_q_and_bounds(const VP9_COMP *cpi,
if (q == 0)
q++;
if (cpi->sf.force_ref_frame == 1)
- q -= 15;
+ q -= cpi->sf.max_delta_qindex;
if (q < *bottom_index)
*bottom_index = q;
diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c
index 6a5c4e998..3629f76ce 100644
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -254,6 +254,7 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
sf->force_ref_frame =
(cm->current_video_frame %
(sf->last_partitioning_redo_frequency << 1) == 1);
+ sf->max_delta_qindex = 15;
sf->partition_search_type = REFERENCE_PARTITION;
sf->use_nonrd_pick_mode = 1;
sf->search_method = FAST_DIAMOND;
@@ -307,6 +308,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf->disable_split_mask = 0;
sf->mode_search_skip_flags = 0;
sf->force_ref_frame = 0;
+ sf->max_delta_qindex = 0;
sf->disable_split_var_thresh = 0;
sf->disable_filter_search_var_thresh = 0;
for (i = 0; i < TX_SIZES; i++) {
diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h
index 78bf40f45..ed0eb3d46 100644
--- a/vp9/encoder/vp9_speed_features.h
+++ b/vp9/encoder/vp9_speed_features.h
@@ -256,6 +256,9 @@ typedef struct {
// partition type search.
int force_ref_frame;
+ // Maximally allowed base quantization index fluctuation.
+ int max_delta_qindex;
+
// Implements various heuristics to skip searching modes
// The heuristics selected are based on flags
// defined in the MODE_SEARCH_SKIP_HEURISTICS enum