From c60de26099532e8d8753ae39948de053c09a891d Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 4 Mar 2014 00:00:40 +0100 Subject: [PATCH] ~3-4% faster lossless encoding by re-arranging some code from SkipRepeatedPixel() Change-Id: I6c1fd7cd9af22cd9be4234217ff67d7b94f44137 --- src/dsp/lossless.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/dsp/lossless.c b/src/dsp/lossless.c index 263f61e5..91f8e152 100644 --- a/src/dsp/lossless.c +++ b/src/dsp/lossless.c @@ -884,16 +884,18 @@ static WEBP_INLINE uint8_t TransformColorBlue(uint8_t green_to_blue, static WEBP_INLINE int SkipRepeatedPixels(const uint32_t* const argb, int ix, int xsize) { const uint32_t v = argb[ix]; - if (ix >= xsize + 3) { - if (v == argb[ix - xsize] && - argb[ix - 1] == argb[ix - xsize - 1] && - argb[ix - 2] == argb[ix - xsize - 2] && - argb[ix - 3] == argb[ix - xsize - 3]) { + if (ix >= 3) { + if (v == argb[ix - 3] && v == argb[ix - 2] && v == argb[ix - 1]) { return 1; } - return v == argb[ix - 3] && v == argb[ix - 2] && v == argb[ix - 1]; - } else if (ix >= 3) { - return v == argb[ix - 3] && v == argb[ix - 2] && v == argb[ix - 1]; + if (ix >= xsize + 3) { + if (v == argb[ix - xsize] && + argb[ix - 3] == argb[ix - xsize - 3] && + argb[ix - 2] == argb[ix - xsize - 2] && + argb[ix - 1] == argb[ix - xsize - 1]) { + return 1; + } + } } return 0; }