Cleanup get_energy_distribution_fine
- normalize casts
- remove unused array
- add consts
- declare variables late
BUG=aomedia:450
Change-Id: I2d3bc6ba2a9b05c779d3b451907abb3fc747d79a
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 327748e..e149395 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -626,27 +626,24 @@
#endif // CONFIG_DAALA_DIST
static void get_energy_distribution_fine(const AV1_COMP *cpi, BLOCK_SIZE bsize,
- uint8_t *src, int src_stride,
- uint8_t *dst, int dst_stride,
+ const uint8_t *src, int src_stride,
+ const uint8_t *dst, int dst_stride,
double *hordist, double *verdist) {
- int bw = block_size_wide[bsize];
- int bh = block_size_high[bsize];
+ const int bw = block_size_wide[bsize];
+ const int bh = block_size_high[bsize];
unsigned int esq[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
- unsigned int var[16];
- double total = 0;
const int f_index = bsize - BLOCK_16X16;
if (f_index < 0) {
- int i, j, index;
- int w_shift = bw == 8 ? 1 : 2;
- int h_shift = bh == 8 ? 1 : 2;
+ const int w_shift = bw == 8 ? 1 : 2;
+ const int h_shift = bh == 8 ? 1 : 2;
#if CONFIG_HIGHBITDEPTH
if (cpi->common.use_highbitdepth) {
- uint16_t *src16 = CONVERT_TO_SHORTPTR(src);
- uint16_t *dst16 = CONVERT_TO_SHORTPTR(dst);
- for (i = 0; i < bh; ++i)
- for (j = 0; j < bw; ++j) {
- index = (j >> w_shift) + ((i >> h_shift) << 2);
+ const uint16_t *src16 = CONVERT_TO_SHORTPTR(src);
+ const uint16_t *dst16 = CONVERT_TO_SHORTPTR(dst);
+ for (int i = 0; i < bh; ++i)
+ for (int j = 0; j < bw; ++j) {
+ const int index = (j >> w_shift) + ((i >> h_shift) << 2);
esq[index] +=
(src16[j + i * src_stride] - dst16[j + i * dst_stride]) *
(src16[j + i * src_stride] - dst16[j + i * dst_stride]);
@@ -654,9 +651,9 @@
} else {
#endif // CONFIG_HIGHBITDEPTH
- for (i = 0; i < bh; ++i)
- for (j = 0; j < bw; ++j) {
- index = (j >> w_shift) + ((i >> h_shift) << 2);
+ for (int i = 0; i < bh; ++i)
+ for (int j = 0; j < bw; ++j) {
+ const int index = (j >> w_shift) + ((i >> h_shift) << 2);
esq[index] += (src[j + i * src_stride] - dst[j + i * dst_stride]) *
(src[j + i * src_stride] - dst[j + i * dst_stride]);
}
@@ -664,90 +661,61 @@
}
#endif // CONFIG_HIGHBITDEPTH
} else {
- var[0] = cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[0]);
- var[1] = cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4,
- dst_stride, &esq[1]);
- var[2] = cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2,
- dst_stride, &esq[2]);
- var[3] = cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride,
- dst + 3 * bw / 4, dst_stride, &esq[3]);
+ cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[0]);
+ cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4, dst_stride,
+ &esq[1]);
+ cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2, dst_stride,
+ &esq[2]);
+ cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride, dst + 3 * bw / 4,
+ dst_stride, &esq[3]);
src += bh / 4 * src_stride;
dst += bh / 4 * dst_stride;
- var[4] = cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[4]);
- var[5] = cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4,
- dst_stride, &esq[5]);
- var[6] = cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2,
- dst_stride, &esq[6]);
- var[7] = cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride,
- dst + 3 * bw / 4, dst_stride, &esq[7]);
+ cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[4]);
+ cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4, dst_stride,
+ &esq[5]);
+ cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2, dst_stride,
+ &esq[6]);
+ cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride, dst + 3 * bw / 4,
+ dst_stride, &esq[7]);
src += bh / 4 * src_stride;
dst += bh / 4 * dst_stride;
- var[8] = cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[8]);
- var[9] = cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4,
- dst_stride, &esq[9]);
- var[10] = cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2,
- dst_stride, &esq[10]);
- var[11] = cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride,
- dst + 3 * bw / 4, dst_stride, &esq[11]);
+ cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[8]);
+ cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4, dst_stride,
+ &esq[9]);
+ cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2, dst_stride,
+ &esq[10]);
+ cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride, dst + 3 * bw / 4,
+ dst_stride, &esq[11]);
src += bh / 4 * src_stride;
dst += bh / 4 * dst_stride;
- var[12] =
- cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[12]);
- var[13] = cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4,
- dst_stride, &esq[13]);
- var[14] = cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2,
- dst_stride, &esq[14]);
- var[15] = cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride,
- dst + 3 * bw / 4, dst_stride, &esq[15]);
+ cpi->fn_ptr[f_index].vf(src, src_stride, dst, dst_stride, &esq[12]);
+ cpi->fn_ptr[f_index].vf(src + bw / 4, src_stride, dst + bw / 4, dst_stride,
+ &esq[13]);
+ cpi->fn_ptr[f_index].vf(src + bw / 2, src_stride, dst + bw / 2, dst_stride,
+ &esq[14]);
+ cpi->fn_ptr[f_index].vf(src + 3 * bw / 4, src_stride, dst + 3 * bw / 4,
+ dst_stride, &esq[15]);
}
- total = esq[0] + esq[1] + esq[2] + esq[3] + esq[4] + esq[5] + esq[6] +
- esq[7] + esq[8] + esq[9] + esq[10] + esq[11] + esq[12] + esq[13] +
- esq[14] + esq[15];
+ double total = (double)esq[0] + esq[1] + esq[2] + esq[3] + esq[4] + esq[5] +
+ esq[6] + esq[7] + esq[8] + esq[9] + esq[10] + esq[11] +
+ esq[12] + esq[13] + esq[14] + esq[15];
if (total > 0) {
const double e_recip = 1.0 / total;
- hordist[0] =
- ((double)esq[0] + (double)esq[4] + (double)esq[8] + (double)esq[12]) *
- e_recip;
- hordist[1] =
- ((double)esq[1] + (double)esq[5] + (double)esq[9] + (double)esq[13]) *
- e_recip;
- hordist[2] =
- ((double)esq[2] + (double)esq[6] + (double)esq[10] + (double)esq[14]) *
- e_recip;
- verdist[0] =
- ((double)esq[0] + (double)esq[1] + (double)esq[2] + (double)esq[3]) *
- e_recip;
- verdist[1] =
- ((double)esq[4] + (double)esq[5] + (double)esq[6] + (double)esq[7]) *
- e_recip;
- verdist[2] =
- ((double)esq[8] + (double)esq[9] + (double)esq[10] + (double)esq[11]) *
- e_recip;
+ hordist[0] = ((double)esq[0] + esq[4] + esq[8] + esq[12]) * e_recip;
+ hordist[1] = ((double)esq[1] + esq[5] + esq[9] + esq[13]) * e_recip;
+ hordist[2] = ((double)esq[2] + esq[6] + esq[10] + esq[14]) * e_recip;
+ verdist[0] = ((double)esq[0] + esq[1] + esq[2] + esq[3]) * e_recip;
+ verdist[1] = ((double)esq[4] + esq[5] + esq[6] + esq[7]) * e_recip;
+ verdist[2] = ((double)esq[8] + esq[9] + esq[10] + esq[11]) * e_recip;
} else {
hordist[0] = verdist[0] = 0.25;
hordist[1] = verdist[1] = 0.25;
hordist[2] = verdist[2] = 0.25;
}
- (void)var[0];
- (void)var[1];
- (void)var[2];
- (void)var[3];
- (void)var[4];
- (void)var[5];
- (void)var[6];
- (void)var[7];
- (void)var[8];
- (void)var[9];
- (void)var[10];
- (void)var[11];
- (void)var[12];
- (void)var[13];
- (void)var[14];
- (void)var[15];
}
static int adst_vs_flipadst(const AV1_COMP *cpi, BLOCK_SIZE bsize, uint8_t *src,