Move segmentation info to segmentation struct
Moves spatial segmentation variables to the main segmentation struct, in preparation
to have segment features be kept in sync with the segmentation map.
Change-Id: Id372d26c2d37443f282f2e7b29161d030df40481
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 1c8766c..39c5437 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -487,7 +487,7 @@
}
int coded_id =
- neg_interleave(mbmi->segment_id, pred, cm->last_active_segid + 1);
+ neg_interleave(mbmi->segment_id, pred, seg->last_active_segid + 1);
aom_cdf_prob *pred_cdf = segp->spatial_pred_seg_cdf[cdf_num];
aom_write_symbol(w, coded_id, pred_cdf, 8);
@@ -948,9 +948,9 @@
if (seg->update_map) {
#if CONFIG_SPATIAL_SEGMENTATION
if (preskip) {
- if (!cm->preskip_segid) return;
+ if (!seg->preskip_segid) return;
} else {
- if (cm->preskip_segid) return;
+ if (seg->preskip_segid) return;
if (skip) {
write_segment_id(cpi, mbmi, w, seg, segp, mi_row, mi_col, 1);
if (seg->temporal_update) ((MB_MODE_INFO *)mbmi)->seg_id_predicted = 0;
@@ -1273,7 +1273,7 @@
const PREDICTION_MODE mode = mbmi->mode;
#if CONFIG_SPATIAL_SEGMENTATION
- if (cm->preskip_segid && seg->update_map)
+ if (seg->preskip_segid && seg->update_map)
write_segment_id(cpi, mbmi, w, seg, segp, mi_row, mi_col, 0);
#else
if (seg->update_map) write_segment_id(w, seg, segp, mbmi->segment_id);
@@ -1282,7 +1282,7 @@
const int skip = write_skip(cm, xd, mbmi->segment_id, mi, w);
#if CONFIG_SPATIAL_SEGMENTATION
- if (!cm->preskip_segid && seg->update_map)
+ if (!seg->preskip_segid && seg->update_map)
write_segment_id(cpi, mbmi, w, seg, segp, mi_row, mi_col, skip);
#endif
@@ -2156,7 +2156,7 @@
static void encode_segmentation(AV1_COMMON *cm, MACROBLOCKD *xd,
struct aom_write_bit_buffer *wb) {
int i, j;
- const struct segmentation *seg = &cm->seg;
+ struct segmentation *seg = &cm->seg;
aom_wb_write_bit(wb, seg->enabled);
if (!seg->enabled) return;
@@ -2180,7 +2180,7 @@
}
#if CONFIG_SPATIAL_SEGMENTATION
- cm->preskip_segid = 0;
+ seg->preskip_segid = 0;
#endif
// Segmentation data
@@ -2192,8 +2192,8 @@
aom_wb_write_bit(wb, active);
if (active) {
#if CONFIG_SPATIAL_SEGMENTATION
- cm->preskip_segid |= j >= SEG_LVL_REF_FRAME;
- cm->last_active_segid = i;
+ seg->preskip_segid |= j >= SEG_LVL_REF_FRAME;
+ seg->last_active_segid = i;
#endif
const int data_max = av1_seg_feature_data_max(j);
const int data_min = -data_max;