ref: 7b480ee90c28e8775cba628bff1039229d15dded
parent: c539ec022fdffc6aba1cfea1fc7f3fceabe66362
parent: 922af194bcba1b5e7ea0a5e84deda59f424e9d77
author: James Zern <[email protected]>
date: Fri Jun 19 21:43:53 EDT 2015
Merge "Add dynamic range comment to vp9_int_pro_row"
--- a/vp9/encoder/vp9_avg.c
+++ b/vp9/encoder/vp9_avg.c
@@ -128,15 +128,18 @@
}
// Integer projection onto row vectors.
-void vp9_int_pro_row_c(int16_t *hbuf, uint8_t const *ref,
+// height: value range {16, 32, 64}.
+void vp9_int_pro_row_c(int16_t hbuf[16], uint8_t const *ref,
const int ref_stride, const int height) {
int idx;
- const int norm_factor = MAX(8, height >> 1);
+ const int norm_factor = height >> 1;
for (idx = 0; idx < 16; ++idx) {
int i;
hbuf[idx] = 0;
+ // hbuf[idx]: 14 bit, dynamic range [0, 16320].
for (i = 0; i < height; ++i)
hbuf[idx] += ref[i * ref_stride];
+ // hbuf[idx]: 9 bit, dynamic range [0, 510].
hbuf[idx] /= norm_factor;
++ref;
}