From: Aaron Watry Date: Thu, 29 Sep 2011 22:25:48 +0000 (-0500) Subject: Reduce computational complexity of generic C loop filter. X-Git-Tag: v1.0.0~133^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=69aa303d9623b0317fcc20836c1f80bf1d87d28e;p=libvpx Reduce computational complexity of generic C loop filter. Change-Id: I1e7f9ed3cd907844a495b9e0073bc140b87e5c06 --- diff --git a/vp8/common/loopfilter_filters.c b/vp8/common/loopfilter_filters.c index 10228ae09..1412797c2 100644 --- a/vp8/common/loopfilter_filters.c +++ b/vp8/common/loopfilter_filters.c @@ -29,15 +29,14 @@ static __inline signed char vp8_filter_mask(uc limit, uc blimit, 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) */