]> granicus.if.org Git - libvpx/commitdiff
make default_interp_filter choice a speed feature
authorYaowu Xu <yaowu@google.com>
Wed, 16 Jul 2014 21:28:51 +0000 (14:28 -0700)
committerYaowu Xu <yaowu@google.com>
Wed, 16 Jul 2014 21:28:51 +0000 (14:28 -0700)
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
vp9/encoder/vp9_speed_features.c
vp9/encoder/vp9_speed_features.h

index 04d5181789f675d69c08eea5bb43c542131b8ba6..59a83785cb68422caffcf902be9f38959f246f5e 100644 (file)
@@ -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);
   }
index dc9bdeb8ca0b9ffb24fcaa20e3a15cdaa5b3863e..e3951d53245b7ea65f3dda03926b7c2912804813 100644 (file)
@@ -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:
index e6f4653808ceb16abb254ae32c0cb3133c1a0e8a..bdbbe5888a67fb950de2822851dd563b8f8dd82b 100644 (file)
@@ -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;