diff options
author | Marco <marpan@google.com> | 2017-10-02 14:00:18 -0700 |
---|---|---|
committer | Marco <marpan@google.com> | 2017-10-02 19:04:03 -0700 |
commit | 33e10dfa7e1e5071e9866999830e996026fa9da4 (patch) | |
tree | 811deb3679ba0e662492bb73794fb90355f01a90 /vp9/encoder/vp9_pickmode.c | |
parent | c8f6e7b99efc8e873ef3ef9cfa5232ff1ee596bb (diff) | |
download | libvpx-33e10dfa7e1e5071e9866999830e996026fa9da4.tar libvpx-33e10dfa7e1e5071e9866999830e996026fa9da4.tar.gz libvpx-33e10dfa7e1e5071e9866999830e996026fa9da4.tar.bz2 libvpx-33e10dfa7e1e5071e9866999830e996026fa9da4.zip |
ARF in 1 pass vbr: modify skip ref_frame in nonrd_pickmode.
Speedup of ~2-3% on 1080p clips speed 6.
Neutral/negligible loss in metrics on ytlive.
Change-Id: I7ac47a4d8b58c566920bae29a94a0e8d59c36dee
Diffstat (limited to 'vp9/encoder/vp9_pickmode.c')
-rw-r--r-- | vp9/encoder/vp9_pickmode.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 21fe70272..4528910f7 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -1567,7 +1567,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data, } #endif - if (cpi->rc.frames_since_golden == 0 && !cpi->use_svc) { + if (cpi->rc.frames_since_golden == 0 && !cpi->use_svc && + !cpi->rc.alt_ref_gf_group && !cpi->rc.last_frame_is_src_altref) { usable_ref_frame = LAST_FRAME; } else { usable_ref_frame = GOLDEN_FRAME; @@ -1581,6 +1582,15 @@ 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 (cpi->rc.frames_since_key == 1) { + usable_ref_frame = LAST_FRAME; + skip_ref_find_pred[GOLDEN_FRAME] = 1; + skip_ref_find_pred[ALTREF_FRAME] = 1; + } + } } // For svc mode, on spatial_layer_id > 0: if the reference has different scale |