From d7209b3a0a6c760d1757cbdc904dcc8d41a36dc0 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalev Date: Tue, 26 Mar 2013 11:08:34 -0700 Subject: Cleaning up loopfilter code. Lower case variable names, removing redundant variables, declaration and initialization on the same line. Change-Id: Ie0c6c95b14103990eb6a9d7784f8259c662e1251 --- vp9/common/vp9_loopfilter_filters.c | 297 ++++++++++++++---------------------- 1 file changed, 117 insertions(+), 180 deletions(-) diff --git a/vp9/common/vp9_loopfilter_filters.c b/vp9/common/vp9_loopfilter_filters.c index 6f434dafe..a473cf742 100644 --- a/vp9/common/vp9_loopfilter_filters.c +++ b/vp9/common/vp9_loopfilter_filters.c @@ -49,47 +49,36 @@ static INLINE int8_t hevmask(uint8_t thresh, uint8_t p1, uint8_t p0, static INLINE void filter(int8_t mask, uint8_t hev, uint8_t *op1, uint8_t *op0, uint8_t *oq0, uint8_t *oq1) { - int8_t ps0, qs0; - int8_t ps1, qs1; - int8_t filter, Filter1, Filter2; - int8_t u; - - ps1 = (int8_t) *op1 ^ 0x80; - ps0 = (int8_t) *op0 ^ 0x80; - qs0 = (int8_t) *oq0 ^ 0x80; - qs1 = (int8_t) *oq1 ^ 0x80; - - /* add outer taps if we have high edge variance */ - filter = signed_char_clamp(ps1 - qs1); - filter &= hev; - - /* inner taps */ - filter = signed_char_clamp(filter + 3 * (qs0 - ps0)); - filter &= mask; + int8_t filter1, filter2; - /* save bottom 3 bits so that we round one side +4 and the other +3 - * if it equals 4 we'll set to adjust by -1 to account for the fact - * we'd round 3 the other way - */ - Filter1 = signed_char_clamp(filter + 4); - Filter2 = signed_char_clamp(filter + 3); - Filter1 >>= 3; - Filter2 >>= 3; - u = signed_char_clamp(qs0 - Filter1); - *oq0 = u ^ 0x80; - u = signed_char_clamp(ps0 + Filter2); - *op0 = u ^ 0x80; - filter = Filter1; - - /* outer tap adjustments */ + const int8_t ps1 = (int8_t) *op1 ^ 0x80; + const int8_t ps0 = (int8_t) *op0 ^ 0x80; + const int8_t qs0 = (int8_t) *oq0 ^ 0x80; + const int8_t qs1 = (int8_t) *oq1 ^ 0x80; + + // add outer taps if we have high edge variance + int8_t filter = signed_char_clamp(ps1 - qs1) & hev; + + // inner taps + filter = signed_char_clamp(filter + 3 * (qs0 - ps0)) & mask; + + // save bottom 3 bits so that we round one side +4 and the other +3 + // if it equals 4 we'll set to adjust by -1 to account for the fact + // we'd round 3 the other way + filter1 = signed_char_clamp(filter + 4) >> 3; + filter2 = signed_char_clamp(filter + 3) >> 3; + + *oq0 = signed_char_clamp(qs0 - filter1) ^ 0x80; + *op0 = signed_char_clamp(ps0 + filter2) ^ 0x80; + filter = filter1; + + // outer tap adjustments filter += 1; filter >>= 1; filter &= ~hev; - u = signed_char_clamp(qs1 - filter); - *oq1 = u ^ 0x80; - u = signed_char_clamp(ps1 + filter); - *op1 = u ^ 0x80; + *oq1 = signed_char_clamp(qs1 - filter) ^ 0x80; + *op1 = signed_char_clamp(ps1 + filter) ^ 0x80; } void vp9_loop_filter_horizontal_edge_c(uint8_t *s, @@ -176,21 +165,16 @@ static INLINE void mbfilter(int8_t mask, uint8_t hev, uint8_t flat, uint8_t *op1, uint8_t *op0, uint8_t *oq0, uint8_t *oq1, uint8_t *oq2, uint8_t *oq3) { - /* use a 7 tap filter [1, 1, 1, 2, 1, 1, 1] for flat line */ + // use a 7 tap filter [1, 1, 1, 2, 1, 1, 1] for flat line if (flat && mask) { - uint8_t p0, q0; - uint8_t p1, q1; - uint8_t p2, q2; - uint8_t p3, q3; - - p3 = *op3; - p2 = *op2; - p1 = *op1; - p0 = *op0; - q0 = *oq0; - q1 = *oq1; - q2 = *oq2; - q3 = *oq3; + const uint8_t p3 = *op3; + const uint8_t p2 = *op2; + const uint8_t p1 = *op1; + const uint8_t p0 = *op0; + const uint8_t q0 = *oq0; + const uint8_t q1 = *oq1; + const uint8_t q2 = *oq2; + const uint8_t q3 = *oq3; *op2 = (p3 + p3 + p3 + p2 + p2 + p1 + p0 + q0 + 4) >> 3; *op1 = (p3 + p3 + p2 + p1 + p1 + p0 + q0 + q1 + 4) >> 3; @@ -199,44 +183,33 @@ static INLINE void mbfilter(int8_t mask, uint8_t hev, uint8_t flat, *oq1 = (p1 + p0 + q0 + q1 + q1 + q2 + q3 + q3 + 4) >> 3; *oq2 = (p0 + q0 + q1 + q2 + q2 + q3 + q3 + q3 + 4) >> 3; } else { - int8_t ps0, qs0; - int8_t ps1, qs1; - int8_t filter, Filter1, Filter2; - int8_t u; - - ps1 = (int8_t) *op1 ^ 0x80; - ps0 = (int8_t) *op0 ^ 0x80; - qs0 = (int8_t) *oq0 ^ 0x80; - qs1 = (int8_t) *oq1 ^ 0x80; - - /* add outer taps if we have high edge variance */ - filter = signed_char_clamp(ps1 - qs1); - filter &= hev; - - /* inner taps */ - filter = signed_char_clamp(filter + 3 * (qs0 - ps0)); - filter &= mask; - - Filter1 = signed_char_clamp(filter + 4); - Filter2 = signed_char_clamp(filter + 3); - Filter1 >>= 3; - Filter2 >>= 3; - - u = signed_char_clamp(qs0 - Filter1); - *oq0 = u ^ 0x80; - u = signed_char_clamp(ps0 + Filter2); - *op0 = u ^ 0x80; - filter = Filter1; - - /* outer tap adjustments */ + int8_t filter1, filter2; + + const int8_t ps1 = (int8_t) *op1 ^ 0x80; + const int8_t ps0 = (int8_t) *op0 ^ 0x80; + const int8_t qs0 = (int8_t) *oq0 ^ 0x80; + const int8_t qs1 = (int8_t) *oq1 ^ 0x80; + + // add outer taps if we have high edge variance + int8_t filter = signed_char_clamp(ps1 - qs1) & hev; + + // inner taps + filter = signed_char_clamp(filter + 3 * (qs0 - ps0)) & mask; + + filter1 = signed_char_clamp(filter + 4) >> 3; + filter2 = signed_char_clamp(filter + 3) >> 3; + + *oq0 = signed_char_clamp(qs0 - filter1) ^ 0x80; + *op0 = signed_char_clamp(ps0 + filter2) ^ 0x80; + filter = filter1; + + // outer tap adjustments filter += 1; filter >>= 1; filter &= ~hev; - u = signed_char_clamp(qs1 - filter); - *oq1 = u ^ 0x80; - u = signed_char_clamp(ps1 + filter); - *op1 = u ^ 0x80; + *oq1 = signed_char_clamp(qs1 - filter) ^ 0x80; + *op1 = signed_char_clamp(ps1 + filter) ^ 0x80; } } @@ -304,38 +277,28 @@ void vp9_mbloop_filter_vertical_edge_c(uint8_t *s, static INLINE int8_t simple_filter_mask(uint8_t blimit, uint8_t p1, uint8_t p0, uint8_t q0, uint8_t q1) { - /* Why does this cause problems for win32? - * error C2143: syntax error : missing ';' before 'type' - * (void) limit; - */ - int8_t mask = (abs(p0 - q0) * 2 + abs(p1 - q1) / 2 <= blimit) * -1; - return mask; + return (abs(p0 - q0) * 2 + abs(p1 - q1) / 2 <= blimit) * -1; } static INLINE void simple_filter(int8_t mask, uint8_t *op1, uint8_t *op0, uint8_t *oq0, uint8_t *oq1) { - int8_t filter, Filter1, Filter2; - int8_t p1 = (int8_t) *op1 ^ 0x80; - int8_t p0 = (int8_t) *op0 ^ 0x80; - int8_t q0 = (int8_t) *oq0 ^ 0x80; - int8_t q1 = (int8_t) *oq1 ^ 0x80; - int8_t u; - - filter = signed_char_clamp(p1 - q1); + int8_t filter1, filter2; + const int8_t p1 = (int8_t) *op1 ^ 0x80; + const int8_t p0 = (int8_t) *op0 ^ 0x80; + const int8_t q0 = (int8_t) *oq0 ^ 0x80; + const int8_t q1 = (int8_t) *oq1 ^ 0x80; + + int8_t filter = signed_char_clamp(p1 - q1); filter = signed_char_clamp(filter + 3 * (q0 - p0)); filter &= mask; - /* save bottom 3 bits so that we round one side +4 and the other +3 */ - Filter1 = signed_char_clamp(filter + 4); - Filter1 >>= 3; - u = signed_char_clamp(q0 - Filter1); - *oq0 = u ^ 0x80; + // save bottom 3 bits so that we round one side +4 and the other +3 + filter1 = signed_char_clamp(filter + 4) >> 3; + *oq0 = signed_char_clamp(q0 - filter1) ^ 0x80; - Filter2 = signed_char_clamp(filter + 3); - Filter2 >>= 3; - u = signed_char_clamp(p0 + Filter2); - *op0 = u ^ 0x80; + filter2 = signed_char_clamp(filter + 3) >> 3; + *op0 = signed_char_clamp(p0 + filter2) ^ 0x80; } void vp9_loop_filter_simple_horizontal_edge_c(uint8_t *s, @@ -495,33 +458,24 @@ static INLINE void wide_mbfilter(int8_t mask, uint8_t hev, uint8_t *oq1, uint8_t *oq2, uint8_t *oq3, uint8_t *oq4, uint8_t *oq5, uint8_t *oq6, uint8_t *oq7) { - /* use a 15 tap filter [1,1,1,1,1,1,1,2,1,1,1,1,1,1,1] for flat line */ + // use a 15 tap filter [1,1,1,1,1,1,1,2,1,1,1,1,1,1,1] for flat line if (flat2 && flat && mask) { - uint8_t p0, q0; - uint8_t p1, q1; - uint8_t p2, q2; - uint8_t p3, q3; - uint8_t p4, q4; - uint8_t p5, q5; - uint8_t p6, q6; - uint8_t p7, q7; - - p7 = *op7; - p6 = *op6; - p5 = *op5; - p4 = *op4; - p3 = *op3; - p2 = *op2; - p1 = *op1; - p0 = *op0; - q0 = *oq0; - q1 = *oq1; - q2 = *oq2; - q3 = *oq3; - q4 = *oq4; - q5 = *oq5; - q6 = *oq6; - q7 = *oq7; + const uint8_t p7 = *op7; + const uint8_t p6 = *op6; + const uint8_t p5 = *op5; + const uint8_t p4 = *op4; + const uint8_t p3 = *op3; + const uint8_t p2 = *op2; + const uint8_t p1 = *op1; + const uint8_t p0 = *op0; + const uint8_t q0 = *oq0; + const uint8_t q1 = *oq1; + const uint8_t q2 = *oq2; + const uint8_t q3 = *oq3; + const uint8_t q4 = *oq4; + const uint8_t q5 = *oq5; + const uint8_t q6 = *oq6; + const uint8_t q7 = *oq7; *op6 = (p7 * 7 + p6 * 2 + p5 + p4 + p3 + p2 + p1 + p0 + q0 + 8) >> 4; @@ -552,19 +506,14 @@ static INLINE void wide_mbfilter(int8_t mask, uint8_t hev, *oq6 = (p0 + q0 + q1 + q2 + q3 + q4 + q5 + q6 * 2 + q7 * 7 + 8) >> 4; } else if (flat && mask) { - unsigned char p0, q0; - unsigned char p1, q1; - unsigned char p2, q2; - unsigned char p3, q3; - - p3 = *op3; - p2 = *op2; - p1 = *op1; - p0 = *op0; - q0 = *oq0; - q1 = *oq1; - q2 = *oq2; - q3 = *oq3; + const uint8_t p3 = *op3; + const uint8_t p2 = *op2; + const uint8_t p1 = *op1; + const uint8_t p0 = *op0; + const uint8_t q0 = *oq0; + const uint8_t q1 = *oq1; + const uint8_t q2 = *oq2; + const uint8_t q3 = *oq3; *op2 = (p3 + p3 + p3 + p2 + p2 + p1 + p0 + q0 + 4) >> 3; *op1 = (p3 + p3 + p2 + p1 + p1 + p0 + q0 + q1 + 4) >> 3; @@ -573,44 +522,32 @@ static INLINE void wide_mbfilter(int8_t mask, uint8_t hev, *oq1 = (p1 + p0 + q0 + q1 + q1 + q2 + q3 + q3 + 4) >> 3; *oq2 = (p0 + q0 + q1 + q2 + q2 + q3 + q3 + q3 + 4) >> 3; } else { - signed char ps0, qs0; - signed char ps1, qs1; - signed char filter, Filter1, Filter2; - signed char u; - - ps1 = (signed char) * op1 ^ 0x80; - ps0 = (signed char) * op0 ^ 0x80; - qs0 = (signed char) * oq0 ^ 0x80; - qs1 = (signed char) * oq1 ^ 0x80; - - /* add outer taps if we have high edge variance */ - filter = signed_char_clamp(ps1 - qs1); - filter &= hev; - - /* inner taps */ - filter = signed_char_clamp(filter + 3 * (qs0 - ps0)); - filter &= mask; - - Filter1 = signed_char_clamp(filter + 4); - Filter2 = signed_char_clamp(filter + 3); - Filter1 >>= 3; - Filter2 >>= 3; - - u = signed_char_clamp(qs0 - Filter1); - *oq0 = u ^ 0x80; - u = signed_char_clamp(ps0 + Filter2); - *op0 = u ^ 0x80; - filter = Filter1; - - /* outer tap adjustments */ + int8_t filter1, filter2; + + const int8_t ps1 = (int8_t) * op1 ^ 0x80; + const int8_t ps0 = (int8_t) * op0 ^ 0x80; + const int8_t qs0 = (int8_t) * oq0 ^ 0x80; + const int8_t qs1 = (int8_t) * oq1 ^ 0x80; + + // add outer taps if we have high edge variance + int8_t filter = signed_char_clamp(ps1 - qs1) & hev; + + // inner taps + filter = signed_char_clamp(filter + 3 * (qs0 - ps0)) & mask; + filter1 = signed_char_clamp(filter + 4) >> 3; + filter2 = signed_char_clamp(filter + 3) >> 3; + + *oq0 = signed_char_clamp(qs0 - filter1) ^ 0x80; + *op0 = signed_char_clamp(ps0 + filter2) ^ 0x80; + filter = filter1; + + // outer tap adjustments filter += 1; filter >>= 1; filter &= ~hev; - u = signed_char_clamp(qs1 - filter); - *oq1 = u ^ 0x80; - u = signed_char_clamp(ps1 + filter); - *op1 = u ^ 0x80; + *oq1 = signed_char_clamp(qs1 - filter) ^ 0x80; + *op1 = signed_char_clamp(ps1 + filter) ^ 0x80; } } -- cgit v1.2.3