summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.c
diff options
context:
space:
mode:
authorMarco <marpan@google.com>2015-03-05 17:26:52 -0800
committerMarco <marpan@google.com>2015-03-10 10:54:00 -0700
commitfb31aa09e245bdc24ebee252b5acf4093bc9213b (patch)
treea51cb163803f316aee090449f1f3a3b776deef51 /vp9/encoder/vp9_encoder.c
parent78df71221656b0a0d37bff6c16efd743347fa30d (diff)
downloadlibvpx-fb31aa09e245bdc24ebee252b5acf4093bc9213b.tar
libvpx-fb31aa09e245bdc24ebee252b5acf4093bc9213b.tar.gz
libvpx-fb31aa09e245bdc24ebee252b5acf4093bc9213b.tar.bz2
libvpx-fb31aa09e245bdc24ebee252b5acf4093bc9213b.zip
Modify update golden reference update under aq-mode=3 mode.
For non-SVC 1 pass CBR: make the GF update interval a multiple of the cyclic refresh period, and use encoding stats to prevent GF update at certain times. Change-Id: I4c44cacc2f70f1d27391a47644837e1eaa065017
Diffstat (limited to 'vp9/encoder/vp9_encoder.c')
-rw-r--r--vp9/encoder/vp9_encoder.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 249c2363d..32bf88061 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2843,6 +2843,14 @@ static void encode_without_recode_loop(VP9_COMP *cpi) {
// transform / motion compensation build reconstruction frame
vp9_encode_frame(cpi);
+ // Update some stats from cyclic refresh, and check if we should not update
+ // golden reference, for non-SVC 1 pass CBR.
+ if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ &&
+ cm->frame_type != KEY_FRAME &&
+ !cpi->use_svc &&
+ (cpi->oxcf.pass == 0 && cpi->oxcf.rc_mode == VPX_CBR))
+ vp9_cyclic_refresh_check_golden_update(cpi);
+
// Update the skip mb flag probabilities based on the distribution
// seen in the last encoder iteration.
// update_base_skip_probs(cpi);
@@ -3220,7 +3228,6 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
TX_SIZE t;
set_ext_overrides(cpi);
-
vp9_clear_system_state();
// Set the arf sign bias for this frame.