summaryrefslogtreecommitdiff
path: root/vp9/common/vp9_alloccommon.c
diff options
context:
space:
mode:
authorhkuang <hkuang@google.com>2014-09-11 15:37:08 -0700
committerhkuang <hkuang@google.com>2014-09-19 21:27:11 -0700
commitc70cea97acd577f17f88394da2c76f693ee67c75 (patch)
tree3b20e1dc07f8b4c7b1746efa880c949360af937d /vp9/common/vp9_alloccommon.c
parent77caad4ff1cd9099efe6adb2f0fa6867cfca0c80 (diff)
downloadlibvpx-c70cea97acd577f17f88394da2c76f693ee67c75.tar
libvpx-c70cea97acd577f17f88394da2c76f693ee67c75.tar.gz
libvpx-c70cea97acd577f17f88394da2c76f693ee67c75.tar.bz2
libvpx-c70cea97acd577f17f88394da2c76f693ee67c75.zip
Remove mi_grid_* structures.
mi_grid_* are arrays of pointer to pointer. They save the pointers that point to the MIs in cm->mi. But they are unnecessary and complicated. The original goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer inside MODE_INFO_t, same goal could be achieved. This commit totally removes the mi_grid_* structures. But there are still many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit will do on-demand MODE_INFO_t allocation in order to save these memories. Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
Diffstat (limited to 'vp9/common/vp9_alloccommon.c')
-rw-r--r--vp9/common/vp9_alloccommon.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/vp9/common/vp9_alloccommon.c b/vp9/common/vp9_alloccommon.c
index 21ae8d575..8b3b9dbe0 100644
--- a/vp9/common/vp9_alloccommon.c
+++ b/vp9/common/vp9_alloccommon.c
@@ -44,14 +44,8 @@ void vp9_set_mb_mi(VP9_COMMON *cm, int width, int height) {
static void setup_mi(VP9_COMMON *cm) {
cm->mi = cm->mip + cm->mi_stride + 1;
cm->prev_mi = cm->prev_mip + cm->mi_stride + 1;
- cm->mi_grid_visible = cm->mi_grid_base + cm->mi_stride + 1;
- cm->prev_mi_grid_visible = cm->prev_mi_grid_base + cm->mi_stride + 1;
vpx_memset(cm->mip, 0, cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->mip));
-
- vpx_memset(cm->mi_grid_base, 0, cm->mi_stride * (cm->mi_rows + 1) *
- sizeof(*cm->mi_grid_base));
-
clear_mi_border(cm, cm->prev_mip);
}
@@ -63,11 +57,6 @@ static int alloc_mi(VP9_COMMON *cm, int mi_size) {
(MODE_INFO *)vpx_calloc(mi_size, sizeof(MODE_INFO));
if (cm->mip_array[i] == NULL)
return 1;
-
- cm->mi_grid_base_array[i] =
- (MODE_INFO **)vpx_calloc(mi_size, sizeof(MODE_INFO*));
- if (cm->mi_grid_base_array[i] == NULL)
- return 1;
}
cm->mi_alloc_size = mi_size;
@@ -78,8 +67,6 @@ static int alloc_mi(VP9_COMMON *cm, int mi_size) {
cm->mip = cm->mip_array[cm->mi_idx];
cm->prev_mip = cm->mip_array[cm->prev_mi_idx];
- cm->mi_grid_base = cm->mi_grid_base_array[cm->mi_idx];
- cm->prev_mi_grid_base = cm->mi_grid_base_array[cm->prev_mi_idx];
return 0;
}
@@ -90,14 +77,10 @@ static void free_mi(VP9_COMMON *cm) {
for (i = 0; i < 2; ++i) {
vpx_free(cm->mip_array[i]);
cm->mip_array[i] = NULL;
- vpx_free(cm->mi_grid_base_array[i]);
- cm->mi_grid_base_array[i] = NULL;
}
cm->mip = NULL;
cm->prev_mip = NULL;
- cm->mi_grid_base = NULL;
- cm->prev_mi_grid_base = NULL;
}
void vp9_free_ref_frame_buffers(VP9_COMMON *cm) {
@@ -224,12 +207,8 @@ void vp9_swap_mi_and_prev_mi(VP9_COMMON *cm) {
// Current mip will be the prev_mip for the next frame.
cm->mip = cm->mip_array[cm->mi_idx];
cm->prev_mip = cm->mip_array[cm->prev_mi_idx];
- cm->mi_grid_base = cm->mi_grid_base_array[cm->mi_idx];
- cm->prev_mi_grid_base = cm->mi_grid_base_array[cm->prev_mi_idx];
// Update the upper left visible macroblock ptrs.
cm->mi = cm->mip + cm->mi_stride + 1;
cm->prev_mi = cm->prev_mip + cm->mi_stride + 1;
- cm->mi_grid_visible = cm->mi_grid_base + cm->mi_stride + 1;
- cm->prev_mi_grid_visible = cm->prev_mi_grid_base + cm->mi_stride + 1;
}