summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_pickmode.c
diff options
context:
space:
mode:
authorMarco <marpan@google.com>2017-10-02 14:00:18 -0700
committerMarco <marpan@google.com>2017-10-02 19:04:03 -0700
commit33e10dfa7e1e5071e9866999830e996026fa9da4 (patch)
tree811deb3679ba0e662492bb73794fb90355f01a90 /vp9/encoder/vp9_pickmode.c
parentc8f6e7b99efc8e873ef3ef9cfa5232ff1ee596bb (diff)
downloadlibvpx-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.c12
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