From 5aa2e01f585075cea6854897503f72fcb6f6a8a0 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Fri, 23 May 2014 15:13:39 +0200 Subject: Fix 695041: add special fast case for 8bpp TIFF predictor. --- source/fitz/filter-predict.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source/fitz/filter-predict.c') diff --git a/source/fitz/filter-predict.c b/source/fitz/filter-predict.c index 6862f8c9..3aaa6ee9 100644 --- a/source/fitz/filter-predict.c +++ b/source/fitz/filter-predict.c @@ -67,7 +67,19 @@ fz_predict_tiff(fz_predict *state, unsigned char *out, unsigned char *in, int le for (k = 0; k < state->colors; k++) left[k] = 0; - memset(out, 0, state->stride); + + /* special fast case */ + if (state->bpc == 8) + { + for (i = 0; i < state->columns; i++) + for (k = 0; k < state->colors; k++) + *out++ = left[k] = (*in++ + left[k]) & 0xFF; + return; + } + + /* putcomponent assumes zeroed memory for bpc < 8 */ + if (state->bpc < 8) + memset(out, 0, state->stride); for (i = 0; i < state->columns; i++) { -- cgit v1.2.3