Scale 4x4 Hadamard transform
Lower the dynamic range in HDR setting.
Temporary solution for
BUG=aomedia:2973
Follow up work will re-design Hadamard transforms
for later experiments.
STATS_CHANGED
Change-Id: Ia87954851017ef233e34ccbf884215ad7ebc4285
diff --git a/aom_dsp/avg.c b/aom_dsp/avg.c
index 0ec21fb..b88d48c 100644
--- a/aom_dsp/avg.c
+++ b/aom_dsp/avg.c
@@ -90,10 +90,10 @@
static void hadamard_col4(const int16_t *src_diff, ptrdiff_t src_stride,
int16_t *coeff) {
- int16_t b0 = src_diff[0 * src_stride] + src_diff[1 * src_stride];
- int16_t b1 = src_diff[0 * src_stride] - src_diff[1 * src_stride];
- int16_t b2 = src_diff[2 * src_stride] + src_diff[3 * src_stride];
- int16_t b3 = src_diff[2 * src_stride] - src_diff[3 * src_stride];
+ int16_t b0 = (src_diff[0 * src_stride] + src_diff[1 * src_stride]) >> 1;
+ int16_t b1 = (src_diff[0 * src_stride] - src_diff[1 * src_stride]) >> 1;
+ int16_t b2 = (src_diff[2 * src_stride] + src_diff[3 * src_stride]) >> 1;
+ int16_t b3 = (src_diff[2 * src_stride] - src_diff[3 * src_stride]) >> 1;
coeff[0] = b0 + b2;
coeff[1] = b1 + b3;