diff options
Diffstat (limited to 'vp9/encoder/vp9_encodeframe.c')
-rw-r--r-- | vp9/encoder/vp9_encodeframe.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 6b352924a..dbfa518bd 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -1338,7 +1338,9 @@ static void rd_pick_sb_modes(VP9_COMP *cpi, TileDataEnc *tile_data, if (aq_mode == VARIANCE_AQ) { const int energy = bsize <= BLOCK_16X16 ? x->mb_energy : vp9_block_energy(cpi, x, bsize); + if (cm->frame_type == KEY_FRAME || cpi->refresh_alt_ref_frame || + cpi->force_update_segmentation || (cpi->refresh_golden_frame && !cpi->rc.is_src_frame_alt_ref)) { mi->segment_id = vp9_vaq_segment_id(energy); } else { @@ -1348,7 +1350,7 @@ static void rd_pick_sb_modes(VP9_COMP *cpi, TileDataEnc *tile_data, } x->rdmult = set_segment_rdmult(cpi, x, mi->segment_id); } else if (aq_mode == EQUATOR360_AQ) { - if (cm->frame_type == KEY_FRAME) { + if (cm->frame_type == KEY_FRAME || cpi->force_update_segmentation) { mi->segment_id = vp9_360aq_segment_id(mi_row, cm->mi_rows); } else { const uint8_t *const map = |