Modify early exit for alt_ref in nonrd_pickmode.

For 1 pass vbr mode:
On no-show_frame/ARF: instead of skipping alt_ref_frame
completely in mode testing, allow for checking (0, 0) on alt_ref.

Small gain in metrics, ~0.18%, no change in speed.

Change-Id: I32a3c24faca64ab70dd5091071a0dc301db7dd1e
This commit is contained in:
Marco 2017-10-04 11:41:52 -07:00
parent 98dbf31c87
commit 77e51e2035

View File

@ -1582,9 +1582,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
skip_ref_find_pred[LAST_FRAME] = 1;
skip_ref_find_pred[GOLDEN_FRAME] = 1;
}
if (cm->show_frame == 0) {
usable_ref_frame = GOLDEN_FRAME;
skip_ref_find_pred[ALTREF_FRAME] = 1;
if (!cm->show_frame) {
if (cpi->rc.frames_since_key == 1) {
usable_ref_frame = LAST_FRAME;
skip_ref_find_pred[GOLDEN_FRAME] = 1;
@ -1681,6 +1679,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data,
frame_mv[this_mode][ref_frame].as_int != 0))
continue;
if (!cm->show_frame && ref_frame == ALTREF_FRAME &&
frame_mv[this_mode][ref_frame].as_int != 0)
continue;
if (cpi->rc.alt_ref_gf_group && cm->show_frame &&
cpi->rc.frames_since_golden > (cpi->rc.baseline_gf_interval >> 1) &&
ref_frame == GOLDEN_FRAME &&