ref: 69aa303d9623b0317fcc20836c1f80bf1d87d28e
parent: 6f9457ec12a98b3aceefbcb79783c084268d0b36
author: Aaron Watry <awatry@gmail.com>
date: Thu Sep 29 13:25:48 EDT 2011
Reduce computational complexity of generic C loop filter. Change-Id: I1e7f9ed3cd907844a495b9e0073bc140b87e5c06
--- 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) */
--
⑨