From d5d7175691ea3cde7aa941886e3197763c1398c6 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Thu, 22 Jan 2009 06:41:57 +0000 Subject: Speed up HQ2x/HQ3x C versions by reordering tests in diffYUV: most likeliest to be taken now is first, least likely is last svn-id: r35996 --- graphics/scaler/intern.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'graphics') diff --git a/graphics/scaler/intern.h b/graphics/scaler/intern.h index 6fc0d6919b..5955aa1bac 100644 --- a/graphics/scaler/intern.h +++ b/graphics/scaler/intern.h @@ -115,11 +115,6 @@ static inline bool diffYUV(int yuv1, int yuv2) { int diff; int mask; - diff = ((yuv1 & Ymask) - (yuv2 & Ymask)); - mask = diff >> 31; // -1 if value < 0, 0 otherwise - diff = (diff ^ mask) - mask; //-1: ~value + 1; 0: value - if (diff > trY) return true; - diff = ((yuv1 & Umask) - (yuv2 & Umask)); mask = diff >> 31; // -1 if value < 0, 0 otherwise diff = (diff ^ mask) - mask; //-1: ~value + 1; 0: value @@ -130,6 +125,11 @@ static inline bool diffYUV(int yuv1, int yuv2) { diff = (diff ^ mask) - mask; //-1: ~value + 1; 0: value if (diff > trV) return true; + diff = ((yuv1 & Ymask) - (yuv2 & Ymask)); + mask = diff >> 31; // -1 if value < 0, 0 otherwise + diff = (diff ^ mask) - mask; //-1: ~value + 1; 0: value + if (diff > trY) return true; + return false; /* return -- cgit v1.2.3