diff options
author | Yaowu Xu <yaowu@google.com> | 2014-04-03 16:51:49 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2014-04-03 16:51:49 -0700 |
commit | 6ca6073b6d3474f4470a02aa041e9ecab5c83723 (patch) | |
tree | 5af8026ef17b8ce90d06fe628c9a3078853f9392 /vp9/encoder/vp9_encodeframe.c | |
parent | 30a15633f8bd3d2ce54bced94f0be83b07ab43ef (diff) | |
parent | 009ee2b737404c92bd2517dc6df4e2020ecb272a (diff) | |
download | libvpx-6ca6073b6d3474f4470a02aa041e9ecab5c83723.tar libvpx-6ca6073b6d3474f4470a02aa041e9ecab5c83723.tar.gz libvpx-6ca6073b6d3474f4470a02aa041e9ecab5c83723.tar.bz2 libvpx-6ca6073b6d3474f4470a02aa041e9ecab5c83723.zip |
Merge "Fix complexity Aq mode."
Diffstat (limited to 'vp9/encoder/vp9_encodeframe.c')
-rw-r--r-- | vp9/encoder/vp9_encodeframe.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 42e1ac88f..0d064848d 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -856,13 +856,22 @@ static void update_state(VP9_COMP *cpi, PICK_MODE_CONTEXT *ctx, *mi_addr = *mi; - // For in frame adaptive Q, check for reseting the segment_id and updating - // the cyclic refresh map. - if ((cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ) && seg->enabled && - output_enabled) { - vp9_cyclic_refresh_update_segment(cpi, &xd->mi[0]->mbmi, - mi_row, mi_col, bsize, 1); - vp9_init_plane_quantizers(cpi, x); + // If segmentation in use + if (seg->enabled && output_enabled) { + // For in frame complexity AQ copy the segment id from the segment map. + if (cpi->oxcf.aq_mode == COMPLEXITY_AQ) { + const uint8_t *const map = seg->update_map ? cpi->segmentation_map + : cm->last_frame_seg_map; + mi_addr->mbmi.segment_id = + vp9_get_segment_id(cm, map, bsize, mi_row, mi_col); + } + // Else for cyclic refresh mode update the segment map, set the segment id + // and then update the quantizer. + else if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ) { + vp9_cyclic_refresh_update_segment(cpi, &xd->mi[0]->mbmi, + mi_row, mi_col, bsize, 1); + vp9_init_plane_quantizers(cpi, x); + } } max_plane = is_inter_block(mbmi) ? MAX_MB_PLANE : 1; |