int var = cpi->fn_ptr[bs].vf(p->src.buf, p->src.stride,
pd->dst.buf, pd->dst.stride, &sse);
- vp9_model_rd_from_var_lapndz(var + sse, 1 << num_pels_log2_lookup[bs],
+ vp9_model_rd_from_var_lapndz(sse + var, 1 << num_pels_log2_lookup[bs],
pd->dequant[1] >> 3, &rate, &dist);
-
*out_rate_sum = rate;
*out_dist_sum = dist << 3;
}
q /= 3;
if (q == 0)
q++;
- if (cpi->sf.partition_check == 1)
- q -= 10;
+ if (cpi->sf.force_ref_frame == 1)
+ q -= 15;
if (q < *bottom_index)
*bottom_index = q;
sf->min_partition_size = BLOCK_8X8;
sf->partition_check =
(cm->current_video_frame % sf->last_partitioning_redo_frequency == 1);
+ sf->force_ref_frame =
+ (cm->current_video_frame %
+ (sf->last_partitioning_redo_frequency << 1) == 1);
sf->partition_search_type = REFERENCE_PARTITION;
sf->use_nonrd_pick_mode = 1;
sf->search_method = FAST_DIAMOND;
sf->last_partitioning_redo_frequency = 4;
sf->disable_split_mask = 0;
sf->mode_search_skip_flags = 0;
+ sf->force_ref_frame = 0;
sf->disable_split_var_thresh = 0;
sf->disable_filter_search_var_thresh = 0;
for (i = 0; i < TX_SIZES; i++) {
// encoding process for RTC.
int partition_check;
+ // Use finer quantizer in every other few frames that run variable block
+ // partition type search.
+ int force_ref_frame;
+
// Implements various heuristics to skip searching modes
// The heuristics selected are based on flags
// defined in the MODE_SEARCH_SKIP_HEURISTICS enum