From 51c60a891e18a26e0c4a1052f61109507b20b705 Mon Sep 17 00:00:00 2001 From: Yaowu Xu <yaowu@google.com> Date: Wed, 16 Jul 2014 14:28:51 -0700 Subject: [PATCH] make default_interp_filter choice a speed feature This commit changed the hard-coded DEFAULT_INTERP_FILTER to a speed feature with the same default value: SWITCHABLE. Change-Id: I7f54f40f1bd3f5277841d04b85db7a84e47313f1 --- vp9/encoder/vp9_encoder.c | 6 ++---- vp9/encoder/vp9_speed_features.c | 1 + vp9/encoder/vp9_speed_features.h | 3 +++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 04d5181789..59a83785cb 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -51,8 +51,6 @@ void vp9_coef_tree_initialize(); -#define DEFAULT_INTERP_FILTER SWITCHABLE - #define SHARP_FILTER_QTHRESH 0 /* Q threshold for 8-tap sharp filter */ #define ALTREF_HIGH_PRECISION_MV 1 // Whether to use high precision mv @@ -636,7 +634,7 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) { rc->worst_quality = cpi->oxcf.worst_allowed_q; rc->best_quality = cpi->oxcf.best_allowed_q; - cm->interp_filter = DEFAULT_INTERP_FILTER; + cm->interp_filter = cpi->sf.default_interp_filter; cm->display_width = cpi->oxcf.width; cm->display_height = cpi->oxcf.height; @@ -2247,7 +2245,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, q = vp9_rc_pick_q_and_bounds(cpi, &bottom_index, &top_index); if (!frame_is_intra_only(cm)) { - cm->interp_filter = DEFAULT_INTERP_FILTER; + cm->interp_filter = cpi->sf.default_interp_filter; /* TODO: Decide this more intelligently */ vp9_set_high_precision_mv(cpi, q < HIGH_PRECISION_MV_QTHRESH); } diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index dc9bdeb8ca..e3951d5324 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -372,6 +372,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) { sf->elevate_newmv_thresh = 0; // Recode loop tolerence %. sf->recode_tolerance = 25; + sf->default_interp_filter = SWITCHABLE; switch (oxcf->mode) { case ONE_PASS_BEST: diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h index e6f4653808..bdbbe5888a 100644 --- a/vp9/encoder/vp9_speed_features.h +++ b/vp9/encoder/vp9_speed_features.h @@ -366,6 +366,9 @@ typedef struct SPEED_FEATURES { // In real time encoding, increase the threshold for NEWMV. int elevate_newmv_thresh; + + // default interp filter choice + INTERP_FILTER default_interp_filter; } SPEED_FEATURES; struct VP9_COMP; -- GitLab