Commit c022dbc4 authored by James Zern's avatar James Zern
Browse files

vp9_reconintra: specialize d207 4x4

based on webp's HU4()

Change-Id: I2401ef307cd94e70cc7904f55954af04290c8af9
parent 2276eb16
...@@ -363,6 +363,23 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride, ...@@ -363,6 +363,23 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride,
#define AVG3(a, b, c) (((a) + 2 * (b) + (c) + 2) >> 2) #define AVG3(a, b, c) (((a) + 2 * (b) + (c) + 2) >> 2)
#define AVG2(a, b) (((a) + (b) + 1) >> 1) #define AVG2(a, b) (((a) + (b) + 1) >> 1)
void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) {
const int I = left[0];
const int J = left[1];
const int K = left[2];
const int L = left[3];
(void)above;
DST(0, 0) = AVG2(I, J);
DST(2, 0) = DST(0, 1) = AVG2(J, K);
DST(2, 1) = DST(0, 2) = AVG2(K, L);
DST(1, 0) = AVG3(I, J, K);
DST(3, 0) = DST(1, 1) = AVG3(J, K, L);
DST(3, 1) = DST(1, 2) = AVG3(K, L, L);
DST(3, 2) = DST(2, 2) =
DST(0, 3) = DST(1, 3) = DST(2, 3) = DST(3, 3) = L;
}
static INLINE void d207_predictor(uint8_t *dst, ptrdiff_t stride, int bs, static INLINE void d207_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
const uint8_t *above, const uint8_t *left) { const uint8_t *above, const uint8_t *left) {
int r, c; int r, c;
...@@ -390,7 +407,7 @@ static INLINE void d207_predictor(uint8_t *dst, ptrdiff_t stride, int bs, ...@@ -390,7 +407,7 @@ static INLINE void d207_predictor(uint8_t *dst, ptrdiff_t stride, int bs,
for (c = 0; c < bs - 2; ++c) for (c = 0; c < bs - 2; ++c)
dst[r * stride + c] = dst[(r + 1) * stride + c - 2]; dst[r * stride + c] = dst[(r + 1) * stride + c - 2];
} }
intra_pred_allsizes(d207) intra_pred_no_4x4(d207)
void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { const uint8_t *above, const uint8_t *left) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment