summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-03-26 11:08:34 -0700
committerDmitry Kovalev <dkovalev@google.com>2013-03-26 11:09:58 -0700
commitd7209b3a0a6c760d1757cbdc904dcc8d41a36dc0 (patch)
treebc7e7367fee9fe032c5e584c9830530a6958af41
parent8e1c368486672a191e12b52b8aa3d3c2aab6d07a (diff)
downloadlibvpx-d7209b3a0a6c760d1757cbdc904dcc8d41a36dc0.tar
libvpx-d7209b3a0a6c760d1757cbdc904dcc8d41a36dc0.tar.gz
libvpx-d7209b3a0a6c760d1757cbdc904dcc8d41a36dc0.tar.bz2
libvpx-d7209b3a0a6c760d1757cbdc904dcc8d41a36dc0.zip
Cleaning up loopfilter code.
Lower case variable names, removing redundant variables, declaration and initialization on the same line. Change-Id: Ie0c6c95b14103990eb6a9d7784f8259c662e1251
-rw-r--r--vp9/common/vp9_loopfilter_filters.c297
1 files 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;
}
}