Fix to cylcic refresh: use correct/chosen mode for update_segment.
Fix so that vp9_update_segment_aq() will use the correct (i..e, chosen) encoding mode (from ctx struct) in update_state. Change-Id: Icc4b66f3935fad5ec4516a4d57e843d12c365e64
This commit is contained in:
parent
ca6151f132
commit
eeed7e2953
@ -896,22 +896,17 @@ static void update_state(VP9_COMP *cpi, PICK_MODE_CONTEXT *ctx,
|
||||
|
||||
assert(mi->mbmi.sb_type == bsize);
|
||||
|
||||
// For in frame adaptive Q copy over the chosen segment id into the
|
||||
// mode innfo context for the chosen mode / partition.
|
||||
if ((cpi->oxcf.aq_mode == COMPLEXITY_AQ ||
|
||||
cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ) &&
|
||||
output_enabled) {
|
||||
// Check for reseting segment_id and update cyclic map.
|
||||
if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && seg->enabled) {
|
||||
vp9_update_segment_aq(cpi, &xd->mi_8x8[0]->mbmi,
|
||||
mi_row, mi_col, bsize, 1);
|
||||
vp9_init_plane_quantizers(cpi, x);
|
||||
}
|
||||
mi->mbmi.segment_id = xd->mi_8x8[0]->mbmi.segment_id;
|
||||
}
|
||||
|
||||
*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_update_segment_aq(cpi, &xd->mi_8x8[0]->mbmi,
|
||||
mi_row, mi_col, bsize, 1);
|
||||
vp9_init_plane_quantizers(cpi, x);
|
||||
}
|
||||
|
||||
max_plane = is_inter_block(mbmi) ? MAX_MB_PLANE : 1;
|
||||
for (i = 0; i < max_plane; ++i) {
|
||||
p[i].coeff = ctx->coeff_pbuf[i][1];
|
||||
|
Loading…
Reference in New Issue
Block a user