x->e_mbd.plane[2].subsampling_y);
}
+static INLINE void set_partition_seg_context(VP9_COMP *cpi,
+ int mi_row, int mi_col) {
+ VP9_COMMON *const cm = &cpi->common;
+ MACROBLOCKD *const xd = &cpi->mb.e_mbd;
+
+ xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
+ xd->left_seg_context = cm->left_seg_context + ((mi_row >> CONFIG_SB8X8) & 3);
+}
+
static void set_offsets(VP9_COMP *cpi,
int mi_row, int mi_col, BLOCK_SIZE_TYPE bsize) {
MACROBLOCK *const x = &cpi->mb;
}
// partition contexts
- xd->above_seg_context = cm->above_seg_context + mb_col;
- xd->left_seg_context = cm->left_seg_context + (mb_row & 3);
+ set_partition_seg_context(cpi, mi_row, mi_col);
// Activity map pointer
x->mb_activity_ptr = &cpi->mb_activity_map[idx_map];
BLOCK_SIZE_TYPE bsize = BLOCK_SIZE_SB32X32;
int pl;
- xd->left_seg_context =
- cm->left_seg_context + ((mi_row >> CONFIG_SB8X8) & 0x03);
- xd->above_seg_context =
- cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row, mi_col);
pl = partition_plane_context(xd, bsize);
if (is_sb == BLOCK_SIZE_SB32X32) {
}
}
- xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
- xd->left_seg_context = cm->left_seg_context + ((mi_row >> CONFIG_SB8X8) & 3);
+ set_partition_seg_context(cpi, mi_row, mi_col);
update_partition_context(xd, is_sb, BLOCK_SIZE_SB32X32);
// debug output
BLOCK_SIZE_TYPE bsize = BLOCK_SIZE_SB64X64;
int pl;
- xd->left_seg_context = cm->left_seg_context + ((mi_row >> CONFIG_SB8X8) & 3);
- xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row, mi_col);
pl = partition_plane_context(xd, bsize);
if (is_sb[0] == BLOCK_SIZE_SB64X64) {
}
if (is_sb[0] > BLOCK_SIZE_SB32X32) {
- xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
- xd->left_seg_context =
- cm->left_seg_context + ((mi_row >> CONFIG_SB8X8) & 3);
+ set_partition_seg_context(cpi, mi_row, mi_col);
update_partition_context(xd, is_sb[0], BLOCK_SIZE_SB64X64);
}
}
sizeof(ENTROPY_CONTEXT) * 8 >> xd->plane[p].subsampling_x);
}
- xd->left_seg_context = cm->left_seg_context + (y_idx >> CONFIG_SB8X8);
- xd->above_seg_context =
- cm->above_seg_context + ((mi_col + x_idx) >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row + y_idx, mi_col + x_idx);
pl = partition_plane_context(xd, BLOCK_SIZE_SB32X32);
sb32_rate += x->partition_cost[pl][PARTITION_SPLIT];
d += d2;
}
- xd->left_seg_context = cm->left_seg_context + (y_idx >> CONFIG_SB8X8);
- xd->above_seg_context =
- cm->above_seg_context + ((mi_col + x_idx) >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row + y_idx, mi_col + x_idx);
pl = partition_plane_context(xd, BLOCK_SIZE_SB32X32);
r += x->partition_cost[pl][PARTITION_HORZ];
d += d2;
}
- xd->left_seg_context =
- cm->left_seg_context + (y_idx >> CONFIG_SB8X8);
- xd->above_seg_context =
- cm->above_seg_context + ((mi_col + x_idx) >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row + y_idx, mi_col + x_idx);
pl = partition_plane_context(xd, BLOCK_SIZE_SB32X32);
r += x->partition_cost[pl][PARTITION_VERT];
tp, &r, &d, BLOCK_SIZE_SB32X32,
&x->sb32_context[xd->sb_index]);
- xd->left_seg_context = cm->left_seg_context + (y_idx >> CONFIG_SB8X8);
- xd->above_seg_context =
- cm->above_seg_context + ((mi_col + x_idx) >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row + y_idx, mi_col + x_idx);
pl = partition_plane_context(xd, BLOCK_SIZE_SB32X32);
r += x->partition_cost[pl][PARTITION_NONE];
sizeof(seg_a));
memcpy(cm->left_seg_context, &seg_l, sizeof(seg_l));
- xd->left_seg_context = cm->left_seg_context;
- xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row, mi_col);
pl = partition_plane_context(xd, BLOCK_SIZE_SB64X64);
sb64_rate += x->partition_cost[pl][PARTITION_SPLIT];
d += d2;
}
- xd->left_seg_context = cm->left_seg_context;
- xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row, mi_col);
pl = partition_plane_context(xd, BLOCK_SIZE_SB64X64);
r += x->partition_cost[pl][PARTITION_HORZ];
d += d2;
}
- xd->left_seg_context = cm->left_seg_context;
- xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row, mi_col);
pl = partition_plane_context(xd, BLOCK_SIZE_SB64X64);
r += x->partition_cost[pl][PARTITION_VERT];
pick_sb_modes(cpi, mi_row, mi_col, tp, &r, &d,
BLOCK_SIZE_SB64X64, &x->sb64_context);
- xd->left_seg_context = cm->left_seg_context;
- xd->above_seg_context = cm->above_seg_context + (mi_col >> CONFIG_SB8X8);
+ set_partition_seg_context(cpi, mi_row, mi_col);
pl = partition_plane_context(xd, BLOCK_SIZE_SB64X64);
r += x->partition_cost[pl][PARTITION_NONE];