shithub: libvpx

Download patch

ref: 8ccfcb765f4e9614cf5cd1d917a46132330d943c
parent: 39f95de83dd8cbdb42c84453f37bedab9ca8242d
author: Dmitry Kovalev <[email protected]>
date: Wed Mar 19 06:47:32 EDT 2014

Removing mi_stream.

Change-Id: If674140e30c223c88894b983fd22a583efb99dcf

--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -209,7 +209,6 @@
   // 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;
--- a/vp9/common/vp9_onyxc_int.h
+++ b/vp9/common/vp9_onyxc_int.h
@@ -153,10 +153,6 @@
   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;
 
--- a/vp9/decoder/vp9_decodeframe.c
+++ b/vp9/decoder/vp9_decodeframe.c
@@ -193,20 +193,8 @@
 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;
+  int i;
 
-  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];
-    }
-  }
-
   // 2 contexts per 'mi unit', so that we have one context per 4x4 txfm
   // block where mi unit size is 8x8.
   CHECK_MEM_ERROR(cm, pbi->above_context[0],
@@ -339,13 +327,11 @@
   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_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;
 }
--- a/vp9/decoder/vp9_decoder.c
+++ b/vp9/decoder/vp9_decoder.c
@@ -189,7 +189,6 @@
     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);