From 69aa303d9623b0317fcc20836c1f80bf1d87d28e Mon Sep 17 00:00:00 2001 From: Aaron Watry <awatry@gmail.com> Date: Thu, 29 Sep 2011 17:25:48 -0500 Subject: [PATCH] Reduce computational complexity of generic C loop filter. Change-Id: I1e7f9ed3cd907844a495b9e0073bc140b87e5c06 --- vp8/common/loopfilter_filters.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/vp8/common/loopfilter_filters.c b/vp8/common/loopfilter_filters.c index 10228ae09b..1412797c2b 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) */ -- GitLab