a negative height if they are stored in top-down order, but such files are
rare and not supported by libjpeg-turbo.)
+[2] Fixed an issue whereby, under certain circumstances, libjpeg-turbo would
+incorrectly encode certain JPEG images when quality=100 and the fast integer
+forward DCT were used. This was known to cause 'make test' to fail when the
+library was built with '-march=haswell' on x86 systems.
+
1.4.1
=====
* libjpeg-turbo Modifications:
* Copyright (C) 1999-2006, MIYASAKA Masaru.
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2011, 2014 D. R. Commander
+ * Copyright (C) 2011, 2014-2015 D. R. Commander
* For conditions of distribution and use, see the accompanying README file.
*
* This file contains the forward-DCT management logic.
UDCTELEM c;
int b, r;
+ if (divisor == 1) {
+ /* divisor == 1 means unquantized, so these reciprocal/correction/shift
+ * values will cause the C quantization algorithm to act like the
+ * identity function. Since only the C quantization algorithm is used in
+ * these cases, the scale value is irrelevant.
+ */
+ dtbl[DCTSIZE2 * 0] = (DCTELEM) 1; /* reciprocal */
+ dtbl[DCTSIZE2 * 1] = (DCTELEM) 0; /* correction */
+ dtbl[DCTSIZE2 * 2] = (DCTELEM) 1; /* scale */
+ dtbl[DCTSIZE2 * 3] = (DCTELEM) (-sizeof(DCTELEM) * 8); /* shift */
+ return 0;
+ }
+
b = flss(divisor) - 1;
r = sizeof(DCTELEM) * 8 + b;
#if BITS_IN_JSAMPLE == 8
- UDCTELEM recip, corr, shift;
+ UDCTELEM recip, corr;
+ int shift;
UDCTELEM2 product;
for (i = 0; i < DCTSIZE2; i++) {