ref: 186bd4eb5234d22aa8e9f0a6a27d40743195b89c
parent: 9d41313e4bd28d3c504c26079cbe4a499e7eceb7
author: Yaowu Xu <yaowu@google.com>
date: Mon Jun 30 08:48:21 EDT 2014
change to not force interp_type as SWITCHABLE Encoder still uses SWITCHABLE as default via DEFAULT_INTERP_FILTER, but does not override the default if it is not SWITCHABLE. Change-Id: I3c0f6653bd228381a623a026c66599b0a87d01d5
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -3275,7 +3275,6 @@
}
} else {
cm->reference_mode = SINGLE_REFERENCE;
- cm->interp_filter = SWITCHABLE;
encode_frame_internal(cpi);
}
}
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -333,10 +333,10 @@
const int *const rd_thresh_freq_fact = cpi->rd.thresh_freq_fact[bsize];
// Mode index conversion form THR_MODES to PREDICTION_MODE for a ref frame.
int mode_idx[MB_MODE_COUNT] = {0};
- INTERP_FILTER filter_ref = SWITCHABLE;
+ INTERP_FILTER filter_ref = cm->interp_filter;
int bsl = mi_width_log2_lookup[bsize];
- const int pred_filter_search = (((mi_row + mi_col) >> bsl) +
- get_chessboard_index(cm)) % 2;
+ const int pred_filter_search = cm->interp_filter == SWITCHABLE ?
+ (((mi_row + mi_col) >> bsl) + get_chessboard_index(cm)) % 2 : 0;
int const_motion[MAX_REF_FRAMES] = { 0 };
// For speed 6, the result of interp filter is reused later in actual encoding