vp9: Modify usage of force_skip under low temporal variance in non-rd pickmode.
For short_circuit set to level 1, skip newmv for 64x64 blocks if the low temporal variance flag is set. Also modify threshold for 64x64 split in variance partitioning. Overall speed-up on noisy clips of 2-4%. Only affect speed >= 7. Change-Id: I384b3772007e84de6f8707e480d2ddf1fe1f907d
This commit is contained in:
parent
ee5b29ae30
commit
0f9760ab6f
@ -1193,7 +1193,7 @@ static int choose_partitioning(VP9_COMP *cpi, const TileInfo *const tile,
|
||||
// variance over the sub-32x32 blocks, then force this block to split.
|
||||
// Only checking this for noise level >= medium for now.
|
||||
if (!is_key_frame && noise_level >= kMedium &&
|
||||
vt.part_variances.none.variance > (5 * avg_32x32) >> 4)
|
||||
vt.part_variances.none.variance > (9 * avg_32x32) >> 5)
|
||||
force_split[0] = 1;
|
||||
// Else if the maximum 32x32 variance minus the miniumum 32x32 variance in
|
||||
// a 64x64 block is greater than threshold and the maximum 32x32 variance is
|
||||
|
@ -1577,8 +1577,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
|
||||
continue;
|
||||
}
|
||||
|
||||
if (cpi->sf.short_circuit_low_temp_var >= 2 && force_skip_low_temp_var &&
|
||||
ref_frame == LAST_FRAME && this_mode == NEWMV) {
|
||||
if ((cpi->sf.short_circuit_low_temp_var >= 2 ||
|
||||
(cpi->sf.short_circuit_low_temp_var == 1 && bsize == BLOCK_64X64)) &&
|
||||
force_skip_low_temp_var && ref_frame == LAST_FRAME &&
|
||||
this_mode == NEWMV) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user