Extend mb_wiener_variance into a struct
Change-Id: Ida8465df26ddb79092701b3c7b1634698d1844b2
diff --git a/av1/encoder/allintra_vis.c b/av1/encoder/allintra_vis.c
index 2fc6c28..c36b825 100644
--- a/av1/encoder/allintra_vis.c
+++ b/av1/encoder/allintra_vis.c
@@ -23,11 +23,11 @@
void av1_init_mb_wiener_var_buffer(AV1_COMP *cpi) {
AV1_COMMON *cm = &cpi->common;
- if (cpi->mb_wiener_variance) return;
+ if (cpi->mb_weber_stats) return;
- CHECK_MEM_ERROR(cm, cpi->mb_wiener_variance,
+ CHECK_MEM_ERROR(cm, cpi->mb_weber_stats,
aom_calloc(cpi->frame_info.mb_rows * cpi->frame_info.mb_cols,
- sizeof(*cpi->mb_wiener_variance)));
+ sizeof(*cpi->mb_weber_stats)));
}
static int get_window_wiener_var(AV1_COMP *const cpi, BLOCK_SIZE bsize,
@@ -48,8 +48,9 @@
continue;
mb_wiener_sum +=
- (int)cpi->mb_wiener_variance[(row / mi_step) * mb_stride +
- (col / mi_step)];
+ (int)cpi
+ ->mb_weber_stats[(row / mi_step) * mb_stride + (col / mi_step)]
+ .mb_wiener_variance;
++mb_count;
}
}
@@ -205,8 +206,8 @@
}
wiener_variance += tmp_coeff * tmp_coeff;
}
- cpi->mb_wiener_variance[mb_row * cpi->frame_info.mb_cols + mb_col] =
- wiener_variance / coeff_count;
+ cpi->mb_weber_stats[mb_row * cpi->frame_info.mb_cols + mb_col]
+ .mb_wiener_variance = wiener_variance / coeff_count;
++count;
}
}
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index d3f848b..d3df7590 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -1367,7 +1367,7 @@
aom_calloc((mi_params->mi_rows * mi_params->mi_cols) >> 2,
sizeof(*cpi->consec_zero_mv)));
- cpi->mb_wiener_variance = NULL;
+ cpi->mb_weber_stats = NULL;
{
const int bsize = BLOCK_16X16;
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index eefbce9..53374c0 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -30,6 +30,7 @@
#include "av1/common/resize.h"
#include "av1/common/thread_common.h"
#include "av1/common/timing.h"
+
#include "av1/encoder/aq_cyclicrefresh.h"
#include "av1/encoder/av1_quantize.h"
#include "av1/encoder/block.h"
@@ -2079,6 +2080,10 @@
int valid;
} MV_STATS;
+typedef struct WeberStats {
+ int64_t mb_wiener_variance;
+} WeberStats;
+
typedef struct {
struct loopfilter lf;
CdefInfo cdef_info;
@@ -3080,7 +3085,7 @@
/*!
* Buffer to store MB variance after Wiener filter.
*/
- int64_t *mb_wiener_variance;
+ WeberStats *mb_weber_stats;
/*!
* Frame level Wiener filter normalization.
diff --git a/av1/encoder/encoder_alloc.h b/av1/encoder/encoder_alloc.h
index 3fccc24..9ccac76 100644
--- a/av1/encoder/encoder_alloc.h
+++ b/av1/encoder/encoder_alloc.h
@@ -286,8 +286,8 @@
cpi->consec_zero_mv = NULL;
}
- aom_free(cpi->mb_wiener_variance);
- cpi->mb_wiener_variance = NULL;
+ aom_free(cpi->mb_weber_stats);
+ cpi->mb_weber_stats = NULL;
}
static AOM_INLINE void variance_partition_alloc(AV1_COMP *cpi) {