int content_state) {
VP9_COMMON *const cm = &cpi->common;
const int is_key_frame = frame_is_intra_only(cm);
- const int threshold_multiplier = is_key_frame ? 20 : 1;
+ const int threshold_multiplier =
+ is_key_frame ? 20 : cpi->sf.variance_part_thresh_mult;
int64_t threshold_base =
(int64_t)(threshold_multiplier * cpi->y_dequant[q][1]);
sf->enhanced_full_pixel_motion_search = 0;
sf->use_accurate_subpel_search = USE_2_TAPS;
sf->nonrd_use_ml_partition = 0;
+ sf->variance_part_thresh_mult = 1;
if (speed >= 1) {
sf->allow_txfm_domain_distortion = 1;
sf->disable_16x16part_nonkey = 1;
// Allow for disabling GOLDEN reference, for CBR mode.
if (cpi->oxcf.rc_mode == VPX_CBR) sf->disable_golden_ref = 1;
- sf->default_interp_filter = BILINEAR;
+ if (cpi->rc.avg_frame_low_motion < 70) sf->default_interp_filter = BILINEAR;
+ if (cm->width * cm->height >= 640 * 360) sf->variance_part_thresh_mult = 2;
}
if (sf->nonrd_use_ml_partition)
// Use machine learning based partition search.
int nonrd_use_ml_partition;
+
+ // Multiplier for base thresold for variance partitioning.
+ int variance_part_thresh_mult;
} SPEED_FEATURES;
struct VP9_COMP;