Moving mi_streams from VP9Decompressor to VP9Common.
Change-Id: I7ad79c061ad4efbc4914ac49723b48183fdbdd47
This commit is contained in:
parent
29beeff11d
commit
dff81e6c7a
@ -153,6 +153,10 @@ typedef struct VP9Common {
|
|||||||
MODE_INFO **prev_mi_grid_base;
|
MODE_INFO **prev_mi_grid_base;
|
||||||
MODE_INFO **prev_mi_grid_visible;
|
MODE_INFO **prev_mi_grid_visible;
|
||||||
|
|
||||||
|
// Each tile column has its own MODE_INFO stream. This array indexes them by
|
||||||
|
// tile column index.
|
||||||
|
MODE_INFO **mi_streams;
|
||||||
|
|
||||||
// Persistent mb segment id map used in prediction.
|
// Persistent mb segment id map used in prediction.
|
||||||
unsigned char *last_frame_seg_map;
|
unsigned char *last_frame_seg_map;
|
||||||
|
|
||||||
|
@ -195,16 +195,15 @@ static void alloc_tile_storage(VP9D_COMP *pbi, int tile_rows, int tile_cols) {
|
|||||||
const int aligned_mi_cols = mi_cols_aligned_to_sb(cm->mi_cols);
|
const int aligned_mi_cols = mi_cols_aligned_to_sb(cm->mi_cols);
|
||||||
int i, tile_row, tile_col;
|
int i, tile_row, tile_col;
|
||||||
|
|
||||||
CHECK_MEM_ERROR(cm, pbi->mi_streams,
|
CHECK_MEM_ERROR(cm, cm->mi_streams,
|
||||||
vpx_realloc(pbi->mi_streams, tile_rows * tile_cols *
|
vpx_realloc(cm->mi_streams, tile_rows * tile_cols *
|
||||||
sizeof(*pbi->mi_streams)));
|
sizeof(*cm->mi_streams)));
|
||||||
for (tile_row = 0; tile_row < tile_rows; ++tile_row) {
|
for (tile_row = 0; tile_row < tile_rows; ++tile_row) {
|
||||||
for (tile_col = 0; tile_col < tile_cols; ++tile_col) {
|
for (tile_col = 0; tile_col < tile_cols; ++tile_col) {
|
||||||
TileInfo tile;
|
TileInfo tile;
|
||||||
vp9_tile_init(&tile, cm, tile_row, tile_col);
|
vp9_tile_init(&tile, cm, tile_row, tile_col);
|
||||||
pbi->mi_streams[tile_row * tile_cols + tile_col] =
|
cm->mi_streams[tile_row * tile_cols + tile_col] =
|
||||||
&cm->mi[tile.mi_row_start * cm->mode_info_stride
|
&cm->mi[tile.mi_row_start * cm->mode_info_stride + tile.mi_col_start];
|
||||||
+ tile.mi_col_start];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -735,9 +734,11 @@ static void setup_frame_size_with_refs(VP9D_COMP *pbi,
|
|||||||
|
|
||||||
static void setup_tile_context(VP9D_COMP *const pbi, MACROBLOCKD *const xd,
|
static void setup_tile_context(VP9D_COMP *const pbi, MACROBLOCKD *const xd,
|
||||||
int tile_row, int tile_col) {
|
int tile_row, int tile_col) {
|
||||||
|
VP9_COMMON *const cm = &pbi->common;
|
||||||
|
const int tile_cols = 1 << cm->log2_tile_cols;
|
||||||
int i;
|
int i;
|
||||||
const int tile_cols = 1 << pbi->common.log2_tile_cols;
|
|
||||||
xd->mi_stream = pbi->mi_streams[tile_row * tile_cols + tile_col];
|
xd->mi_stream = cm->mi_streams[tile_row * tile_cols + tile_col];
|
||||||
|
|
||||||
for (i = 0; i < MAX_MB_PLANE; ++i) {
|
for (i = 0; i < MAX_MB_PLANE; ++i) {
|
||||||
xd->above_context[i] = pbi->above_context[i];
|
xd->above_context[i] = pbi->above_context[i];
|
||||||
|
@ -189,7 +189,7 @@ void vp9_remove_decompressor(VP9D_COMP *pbi) {
|
|||||||
vp9_loop_filter_dealloc(lf_sync, sb_rows);
|
vp9_loop_filter_dealloc(lf_sync, sb_rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
vpx_free(pbi->mi_streams);
|
vpx_free(pbi->common.mi_streams);
|
||||||
vpx_free(pbi->above_context[0]);
|
vpx_free(pbi->above_context[0]);
|
||||||
vpx_free(pbi->above_seg_context);
|
vpx_free(pbi->above_seg_context);
|
||||||
vpx_free(pbi);
|
vpx_free(pbi);
|
||||||
|
@ -73,10 +73,6 @@ typedef struct VP9Decompressor {
|
|||||||
|
|
||||||
VP9LfSync lf_row_sync;
|
VP9LfSync lf_row_sync;
|
||||||
|
|
||||||
/* Each tile column has its own MODE_INFO stream. This array indexes them by
|
|
||||||
tile column index. */
|
|
||||||
MODE_INFO **mi_streams;
|
|
||||||
|
|
||||||
ENTROPY_CONTEXT *above_context[MAX_MB_PLANE];
|
ENTROPY_CONTEXT *above_context[MAX_MB_PLANE];
|
||||||
PARTITION_CONTEXT *above_seg_context;
|
PARTITION_CONTEXT *above_seg_context;
|
||||||
} VP9D_COMP;
|
} VP9D_COMP;
|
||||||
|
Loading…
Reference in New Issue
Block a user