ref: 2da8d24e8f3872e7564ba207281843a3566c006e
parent: a9f55e832440ff03a30650590c191b172a546803
 parent: acc481eaaefa62bbbd4d5d159a733eaa84bb6331
	author: James Zern <jzern@google.com>
	date: Wed Jun  3 21:59:09 EDT 2015
	
Merge "vp9_reconintra: simplify d45_predictor"
--- a/vp9/common/vp9_reconintra.c
+++ b/vp9/common/vp9_reconintra.c
@@ -472,14 +472,17 @@
static INLINE void d45_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
                                  const uint8_t *above, const uint8_t *left) {- int r, c;
- (void) left;
-  for (r = 0; r < bs; ++r) {- for (c = 0; c < bs; ++c)
- dst[c] = r + c + 2 < bs * 2 ? ROUND_POWER_OF_TWO(above[r + c] +
- above[r + c + 1] * 2 +
- above[r + c + 2], 2)
- : above[bs * 2 - 1];
+ const uint8_t above_right = above[bs - 1];
+ int x, size;
+ uint8_t avg[31]; // TODO(jzern): this could be block size specific
+ (void)left;
+
+  for (x = 0; x < bs - 1; ++x) {+ avg[x] = AVG3(above[x], above[x + 1], above[x + 2]);
+ }
+  for (x = 0, size = bs - 1; x < bs; ++x, --size) {+ memcpy(dst, avg + x, size);
+ memset(dst + size, above_right, x + 1);
dst += stride;
}
}
--
⑨