Merge "Skip intra mode tests depending on inter residuals"
This commit is contained in:
commit
bac0268716
@ -2794,6 +2794,10 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ref_frame == INTRA_FRAME) {
|
if (ref_frame == INTRA_FRAME) {
|
||||||
|
if (cpi->sf.adaptive_mode_search)
|
||||||
|
if ((x->source_variance << num_pels_log2_lookup[bsize]) > best_intra_rd)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!(intra_y_mode_mask & (1 << this_mode)))
|
if (!(intra_y_mode_mask & (1 << this_mode)))
|
||||||
continue;
|
continue;
|
||||||
if (this_mode != DC_PRED) {
|
if (this_mode != DC_PRED) {
|
||||||
@ -2966,6 +2970,8 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
|
|||||||
/* required for left and above block mv */
|
/* required for left and above block mv */
|
||||||
mbmi->mv[0].as_int = 0;
|
mbmi->mv[0].as_int = 0;
|
||||||
max_plane = 1;
|
max_plane = 1;
|
||||||
|
} else {
|
||||||
|
best_intra_rd = x->pred_sse[ref_frame];
|
||||||
}
|
}
|
||||||
|
|
||||||
*returnrate = rate2;
|
*returnrate = rate2;
|
||||||
|
@ -144,6 +144,7 @@ static void set_good_speed_feature(VP9_COMP *cpi, VP9_COMMON *cm,
|
|||||||
sf->disable_split_mask = DISABLE_ALL_INTER_SPLIT;
|
sf->disable_split_mask = DISABLE_ALL_INTER_SPLIT;
|
||||||
}
|
}
|
||||||
sf->adaptive_pred_interp_filter = 0;
|
sf->adaptive_pred_interp_filter = 0;
|
||||||
|
sf->adaptive_mode_search = 1;
|
||||||
sf->cb_partition_search = !boosted;
|
sf->cb_partition_search = !boosted;
|
||||||
sf->cb_pred_filter_search = 1;
|
sf->cb_pred_filter_search = 1;
|
||||||
sf->alt_ref_search_fp = 1;
|
sf->alt_ref_search_fp = 1;
|
||||||
@ -386,6 +387,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
|
|||||||
sf->use_lp32x32fdct = 0;
|
sf->use_lp32x32fdct = 0;
|
||||||
sf->adaptive_motion_search = 0;
|
sf->adaptive_motion_search = 0;
|
||||||
sf->adaptive_pred_interp_filter = 0;
|
sf->adaptive_pred_interp_filter = 0;
|
||||||
|
sf->adaptive_mode_search = 0;
|
||||||
sf->cb_pred_filter_search = 0;
|
sf->cb_pred_filter_search = 0;
|
||||||
sf->cb_partition_search = 0;
|
sf->cb_partition_search = 0;
|
||||||
sf->motion_field_mode_search = 0;
|
sf->motion_field_mode_search = 0;
|
||||||
|
@ -291,6 +291,9 @@ typedef struct SPEED_FEATURES {
|
|||||||
// was selected, and 2 means we use 8 tap if no 8x8 filter mode was selected.
|
// was selected, and 2 means we use 8 tap if no 8x8 filter mode was selected.
|
||||||
int adaptive_pred_interp_filter;
|
int adaptive_pred_interp_filter;
|
||||||
|
|
||||||
|
// Adaptive prediction mode search
|
||||||
|
int adaptive_mode_search;
|
||||||
|
|
||||||
// Chessboard pattern prediction filter type search
|
// Chessboard pattern prediction filter type search
|
||||||
int cb_pred_filter_search;
|
int cb_pred_filter_search;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user