Commit d2bf696e authored by James Zern's avatar James Zern
Browse files

vp9: pass entropy context directly to set_skip_context

this will allow for separate storage to be used in tile decoding

Change-Id: I025595d83118bdc82a545dae69bc6602e8d2a6e3
parent 88d79eab
...@@ -248,15 +248,18 @@ static int mi_cols_aligned_to_sb(int n_mis) { ...@@ -248,15 +248,18 @@ static int mi_cols_aligned_to_sb(int n_mis) {
return ALIGN_POWER_OF_TWO(n_mis, MI_BLOCK_SIZE_LOG2); return ALIGN_POWER_OF_TWO(n_mis, MI_BLOCK_SIZE_LOG2);
} }
static INLINE void set_skip_context(VP9_COMMON *cm, MACROBLOCKD *xd, static INLINE void set_skip_context(
MACROBLOCKD *xd,
ENTROPY_CONTEXT *above_context[MAX_MB_PLANE],
ENTROPY_CONTEXT left_context[MAX_MB_PLANE][16],
int mi_row, int mi_col) { int mi_row, int mi_col) {
const int above_idx = mi_col * 2; const int above_idx = mi_col * 2;
const int left_idx = (mi_row * 2) & 15; const int left_idx = (mi_row * 2) & 15;
int i; int i;
for (i = 0; i < MAX_MB_PLANE; i++) { for (i = 0; i < MAX_MB_PLANE; i++) {
struct macroblockd_plane *const pd = &xd->plane[i]; struct macroblockd_plane *const pd = &xd->plane[i];
pd->above_context = cm->above_context[i] + (above_idx >> pd->subsampling_x); pd->above_context = above_context[i] + (above_idx >> pd->subsampling_x);
pd->left_context = cm->left_context[i] + (left_idx >> pd->subsampling_y); pd->left_context = left_context[i] + (left_idx >> pd->subsampling_y);
} }
} }
......
...@@ -328,7 +328,7 @@ static void set_offsets(VP9D_COMP *pbi, BLOCK_SIZE bsize, ...@@ -328,7 +328,7 @@ static void set_offsets(VP9D_COMP *pbi, BLOCK_SIZE bsize,
// cannot be used. // cannot be used.
xd->last_mi = cm->prev_mi ? xd->prev_mi_8x8[0] : NULL; xd->last_mi = cm->prev_mi ? xd->prev_mi_8x8[0] : NULL;
set_skip_context(cm, xd, mi_row, mi_col); set_skip_context(xd, cm->above_context, cm->left_context, mi_row, mi_col);
// Distance of Mb to the various image edges. These are specified to 8th pel // Distance of Mb to the various image edges. These are specified to 8th pel
// as they are always compared to values that are in 1/8th pel units // as they are always compared to values that are in 1/8th pel units
......
...@@ -499,7 +499,7 @@ static void set_offsets(VP9_COMP *cpi, int mi_row, int mi_col, ...@@ -499,7 +499,7 @@ static void set_offsets(VP9_COMP *cpi, int mi_row, int mi_col,
const int idx_map = mb_row * cm->mb_cols + mb_col; const int idx_map = mb_row * cm->mb_cols + mb_col;
const struct segmentation *const seg = &cm->seg; const struct segmentation *const seg = &cm->seg;
set_skip_context(cm, xd, mi_row, mi_col); set_skip_context(xd, cm->above_context, cm->left_context, mi_row, mi_col);
// Activity map pointer // Activity map pointer
x->mb_activity_ptr = &cpi->mb_activity_map[idx_map]; x->mb_activity_ptr = &cpi->mb_activity_map[idx_map];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment