shithub: libvpx

Download patch

ref: 2aa408524cd578985cd6aae53834eee0455f823d
parent: 48b1917112ce96321a76166d790c5b80a0821a62
parent: 69aa303d9623b0317fcc20836c1f80bf1d87d28e
author: Johann <johannkoenig@google.com>
date: Fri Sep 30 12:17:56 EDT 2011

Merge "Reduce computational complexity of generic C loop filter."

--- a/vp8/common/loopfilter_filters.c
+++ b/vp8/common/loopfilter_filters.c
@@ -29,15 +29,14 @@
                                      uc q0, uc q1, uc q2, uc q3)
 {
     signed char mask = 0;
-    mask |= (abs(p3 - p2) > limit) * -1;
-    mask |= (abs(p2 - p1) > limit) * -1;
-    mask |= (abs(p1 - p0) > limit) * -1;
-    mask |= (abs(q1 - q0) > limit) * -1;
-    mask |= (abs(q2 - q1) > limit) * -1;
-    mask |= (abs(q3 - q2) > limit) * -1;
-    mask |= (abs(p0 - q0) * 2 + abs(p1 - q1) / 2  > blimit) * -1;
-    mask = ~mask;
-    return mask;
+    mask |= (abs(p3 - p2) > limit);
+    mask |= (abs(p2 - p1) > limit);
+    mask |= (abs(p1 - p0) > limit);
+    mask |= (abs(q1 - q0) > limit);
+    mask |= (abs(q2 - q1) > limit);
+    mask |= (abs(q3 - q2) > limit);
+    mask |= (abs(p0 - q0) * 2 + abs(p1 - q1) / 2  > blimit);
+    return mask - 1;
 }
 
 /* is there high variance internal edge ( 11111111 yes, 00000000 no) */