diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/fitz/filter-predict.c | 14 |
1 files changed, 13 insertions, 1 deletions
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++) { |