summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2014-07-16 19:12:22 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-07-16 19:12:22 -0700
commit42a68e6701f277abdbdb8cd02364d8130cf4e4f8 (patch)
tree8fc7ad9d70679e4ef0838b611e3f0e85f61d8d5e /vp9
parent422acd0a071aa40f46e4a6251567a39543767600 (diff)
parent51c60a891e18a26e0c4a1052f61109507b20b705 (diff)
downloadlibvpx-42a68e6701f277abdbdb8cd02364d8130cf4e4f8.tar
libvpx-42a68e6701f277abdbdb8cd02364d8130cf4e4f8.tar.gz
libvpx-42a68e6701f277abdbdb8cd02364d8130cf4e4f8.tar.bz2
libvpx-42a68e6701f277abdbdb8cd02364d8130cf4e4f8.zip
Merge "make default_interp_filter choice a speed feature"
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_encoder.c6
-rw-r--r--vp9/encoder/vp9_speed_features.c1
-rw-r--r--vp9/encoder/vp9_speed_features.h3
3 files changed, 6 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 04d518178..59a83785c 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 dc9bdeb8c..e3951d532 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 e6f465380..bdbbe5888 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;