From 8ccfcb765f4e9614cf5cd1d917a46132330d943c Mon Sep 17 00:00:00 2001 From: Dmitry Kovalev <dkovalev@google.com> Date: Wed, 19 Mar 2014 10:47:32 -0700 Subject: [PATCH] Removing mi_stream. Change-Id: If674140e30c223c88894b983fd22a583efb99dcf --- vp9/common/vp9_blockd.h | 1 - vp9/common/vp9_onyxc_int.h | 4 ---- vp9/decoder/vp9_decodeframe.c | 26 ++++---------------------- vp9/decoder/vp9_decoder.c | 1 - 4 files changed, 4 insertions(+), 28 deletions(-) diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h index b9e30fe9ad..ca5a0c2b7f 100644 --- a/vp9/common/vp9_blockd.h +++ b/vp9/common/vp9_blockd.h @@ -209,7 +209,6 @@ typedef struct macroblockd { // A NULL indicates that the 8x8 is not part of the image MODE_INFO **mi_8x8; MODE_INFO **prev_mi_8x8; - MODE_INFO *mi_stream; int up_available; int left_available; diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h index 024b197a1b..52889f75f4 100644 --- a/vp9/common/vp9_onyxc_int.h +++ b/vp9/common/vp9_onyxc_int.h @@ -153,10 +153,6 @@ typedef struct VP9Common { MODE_INFO **prev_mi_grid_base; 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. unsigned char *last_frame_seg_map; diff --git a/vp9/decoder/vp9_decodeframe.c b/vp9/decoder/vp9_decodeframe.c index 728d92dfbf..69266575b8 100644 --- a/vp9/decoder/vp9_decodeframe.c +++ b/vp9/decoder/vp9_decodeframe.c @@ -193,19 +193,7 @@ static void setup_plane_dequants(VP9_COMMON *cm, MACROBLOCKD *xd, int q_index) { static void alloc_tile_storage(VP9D_COMP *pbi, int tile_rows, int tile_cols) { VP9_COMMON *const cm = &pbi->common; const int aligned_mi_cols = mi_cols_aligned_to_sb(cm->mi_cols); - int i, tile_row, tile_col; - - CHECK_MEM_ERROR(cm, cm->mi_streams, - vpx_realloc(cm->mi_streams, tile_rows * tile_cols * - sizeof(*cm->mi_streams))); - for (tile_row = 0; tile_row < tile_rows; ++tile_row) { - for (tile_col = 0; tile_col < tile_cols; ++tile_col) { - TileInfo tile; - vp9_tile_init(&tile, cm, tile_row, tile_col); - cm->mi_streams[tile_row * tile_cols + tile_col] = - &cm->mi[tile.mi_row_start * cm->mode_info_stride + tile.mi_col_start]; - } - } + int i; // 2 contexts per 'mi unit', so that we have one context per 4x4 txfm // block where mi unit size is 8x8. @@ -339,13 +327,11 @@ static void set_offsets(VP9_COMMON *const cm, MACROBLOCKD *const xd, const int x_mis = MIN(bw, cm->mi_cols - mi_col); const int y_mis = MIN(bh, cm->mi_rows - mi_row); const int offset = mi_row * cm->mode_info_stride + mi_col; - const int tile_offset = tile->mi_row_start * cm->mode_info_stride + - tile->mi_col_start; int x, y; xd->mi_8x8 = cm->mi_grid_visible + offset; xd->prev_mi_8x8 = cm->prev_mi_grid_visible + offset; - xd->mi_8x8[0] = xd->mi_stream + offset - tile_offset; + xd->mi_8x8[0] = &cm->mi[offset]; xd->mi_8x8[0]->mbmi.sb_type = bsize; for (y = 0; y < y_mis; ++y) for (x = !y; x < x_mis; ++x) @@ -730,15 +716,11 @@ static void setup_frame_size_with_refs(VP9D_COMP *pbi, static void setup_tile_context(VP9D_COMP *const pbi, MACROBLOCKD *const xd, int tile_row, int tile_col) { - VP9_COMMON *const cm = &pbi->common; - const int tile_cols = 1 << cm->log2_tile_cols; int i; - 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]; - } + // see note in alloc_tile_storage(). xd->above_seg_context = pbi->above_seg_context; } diff --git a/vp9/decoder/vp9_decoder.c b/vp9/decoder/vp9_decoder.c index 3aedbef37b..ebb329cdb0 100644 --- a/vp9/decoder/vp9_decoder.c +++ b/vp9/decoder/vp9_decoder.c @@ -189,7 +189,6 @@ void vp9_remove_decompressor(VP9D_COMP *pbi) { vp9_loop_filter_dealloc(lf_sync, sb_rows); } - vpx_free(pbi->common.mi_streams); vpx_free(pbi->above_context[0]); vpx_free(pbi->above_seg_context); vpx_free(pbi); -- GitLab