ref: ade3bbf8be16405ceae2dcb586b849b7a24c826f
parent: 2d403737b88f76ce8410237a8eb682cc556ac302
author: Jerome Jiang <jianj@google.com>
date: Tue Feb 26 06:01:23 EST 2019
Set segment ID from ROI map if enabled. Segment ID was overwritten. Change-Id: I99603dce02a94f3a9076d1743b108a81289ad0e5
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -235,6 +235,10 @@
break;
}
+ // Set segment index from ROI map if it's enabled.
+ if (cpi->roi.enabled)
+ mi->segment_id = get_segment_id(cm, map, bsize, mi_row, mi_col);
+
vp9_init_plane_quantizers(cpi, x);
}
@@ -2440,17 +2444,15 @@
*(xd->mi[0]) = ctx->mic;
*(x->mbmi_ext) = ctx->mbmi_ext;
- if (seg->enabled && cpi->oxcf.aq_mode != NO_AQ) {
- // For in frame complexity AQ or variance AQ, copy segment_id from
- // segmentation_map.
- if (cpi->oxcf.aq_mode != CYCLIC_REFRESH_AQ) {
+ if (seg->enabled && (cpi->oxcf.aq_mode != NO_AQ || cpi->roi.enabled)) {
+ // Setting segmentation map for cyclic_refresh.
+ if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ) {
+ vp9_cyclic_refresh_update_segment(cpi, mi, mi_row, mi_col, bsize,
+ ctx->rate, ctx->dist, x->skip, p);
+ } else {
const uint8_t *const map =
seg->update_map ? cpi->segmentation_map : cm->last_frame_seg_map;
mi->segment_id = get_segment_id(cm, map, bsize, mi_row, mi_col);
- } else {
- // Setting segmentation map for cyclic_refresh.
- vp9_cyclic_refresh_update_segment(cpi, mi, mi_row, mi_col, bsize,
- ctx->rate, ctx->dist, x->skip, p);
}
vp9_init_plane_quantizers(cpi, x);
}