Set mbmi_ext's tcoeff to size MAX_SB_SQUARE
This a simple implementation.
We will use a more precise buffer size for tcoeff once the
experiment functions correctly.
Change-Id: Ib561974f21ee1b8d72ce407882ea2be3cf0b069f
diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index ed8289d..056e740 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -68,7 +68,8 @@
int_mv ref_mvs[MODE_CTX_REF_FRAMES][MAX_MV_REF_CANDIDATES];
int16_t mode_context[MODE_CTX_REF_FRAMES];
#if CONFIG_LV_MAP
- tran_low_t *tcoeff[MAX_MB_PLANE];
+ // TODO(angiebird): Reduce the buffer size according to sb_type
+ tran_low_t tcoeff[MAX_MB_PLANE][MAX_SB_SQUARE];
uint16_t eobs[MAX_MB_PLANE][MAX_SB_SQUARE / (TX_SIZE_W_MIN * TX_SIZE_H_MIN)];
uint8_t txb_skip_ctx[MAX_MB_PLANE]
[MAX_SB_SQUARE / (TX_SIZE_W_MIN * TX_SIZE_H_MIN)];
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 7bc9710..f3157c4 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -931,9 +931,6 @@
NULL);
memset(cpi->mbmi_ext_base, 0,
cm->mi_rows * cm->mi_cols * sizeof(*cpi->mbmi_ext_base));
-#if CONFIG_LV_MAP
- av1_reset_txb_buf(cpi);
-#endif
set_tile_info(cpi);
}
diff --git a/av1/encoder/encodetxb.c b/av1/encoder/encodetxb.c
index d83cb26..b2f561d 100644
--- a/av1/encoder/encodetxb.c
+++ b/av1/encoder/encodetxb.c
@@ -17,6 +17,7 @@
#include "av1/encoder/tokenize.h"
void av1_alloc_txb_buf(AV1_COMP *cpi) {
+#if 0
AV1_COMMON *cm = &cpi->common;
int mi_block_size = 1 << MI_SIZE_LOG2;
// TODO(angiebird): Make sure cm->subsampling_x/y is set correctly, and then
@@ -29,42 +30,20 @@
cm, cpi->tcoeff_buf[i],
aom_malloc(sizeof(*cpi->tcoeff_buf[i]) * pixel_stride * pixel_height));
}
-}
-
-void av1_reset_txb_buf(AV1_COMP *cpi) {
- AV1_COMMON *cm = &cpi->common;
- int mi_block_size = 1 << MI_SIZE_LOG2;
- int plane;
- for (plane = 0; plane < MAX_MB_PLANE; ++plane) {
- // TODO(angiebird): Set the subsampling_x/y to cm->subsampling_x/y
- int subsampling_x = 0;
- int subsampling_y = 0;
- int pixel_stride = (mi_block_size * cm->mi_cols) >> subsampling_x;
- int pixel_height = (mi_block_size * cm->mi_rows) >> subsampling_y;
-
- // TODO(angiebird): Check if we really need this initialization
- memset(cpi->tcoeff_buf[plane], 0,
- pixel_stride * pixel_height * sizeof(*cpi->tcoeff_buf[plane]));
-
- int mi_row, mi_col;
- for (mi_row = 0; mi_row < cm->mi_rows; ++mi_row) {
- for (mi_col = 0; mi_col < cm->mi_cols; ++mi_col) {
- MB_MODE_INFO_EXT *mbmi_ext =
- cpi->mbmi_ext_base + mi_row * cm->mi_cols + mi_col;
- int pixel_row = (mi_block_size * mi_row) >> subsampling_y;
- int pixel_col = (mi_block_size * mi_col) >> subsampling_x;
- mbmi_ext->tcoeff[plane] =
- cpi->tcoeff_buf[plane] + pixel_row * pixel_stride + pixel_col;
- }
- }
- }
+#else
+ (void)cpi;
+#endif
}
void av1_free_txb_buf(AV1_COMP *cpi) {
+#if 0
int i;
for (i = 0; i < MAX_MB_PLANE; ++i) {
aom_free(cpi->tcoeff_buf[i]);
}
+#else
+ (void)cpi;
+#endif
}
static void write_golomb(aom_writer *w, int level) {
diff --git a/av1/encoder/encodetxb.h b/av1/encoder/encodetxb.h
index 45c0659..15977b2 100644
--- a/av1/encoder/encodetxb.h
+++ b/av1/encoder/encodetxb.h
@@ -23,7 +23,6 @@
extern "C" {
#endif
void av1_alloc_txb_buf(AV1_COMP *cpi);
-void av1_reset_txb_buf(AV1_COMP *cpi);
void av1_free_txb_buf(AV1_COMP *cpi);
void av1_write_coeffs_txb(const AV1_COMMON *const cm, MACROBLOCKD *xd,
aom_writer *w, int block, int plane,