13395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgNOTE:  This file was modified by The libjpeg-turbo Project to include only
23395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orginformation relevant to libjpeg-turbo.
33395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.org
4f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgCHANGE LOG for Independent JPEG Group's JPEG software
5f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
6f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
73395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgVersion 8d  15-Jan-2012
83395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.org-----------------------
93395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.org
103395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgAdd cjpeg -rgb option to create RGB JPEG files.
113395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgUsing this switch suppresses the conversion from RGB
123395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgcolorspace input to the default YCbCr JPEG colorspace.
133395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgThank to Michael Koch for the initial suggestion.
143395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.org
153395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgAdd option to disable the region adjustment in the transupp crop code.
163395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgThank to Jeffrey Friedl for the suggestion.
173395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.org
183395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.org
199862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgVersion 8b  16-May-2010
209862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org-----------------------
219862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
229862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgRepair problem in new memory source manager with corrupt JPEG data.
239862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgThank to Ted Campbell and Samuel Chun for the report.
249862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
259862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
269862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgVersion 8a  28-Feb-2010
279862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org-----------------------
289862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
299862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgWriting tables-only datastreams via jpeg_write_tables works again.
309862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
319862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgSupport 32-bit BMPs (RGB image with Alpha channel) for read in cjpeg.
329862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgThank to Brett Blackham for the suggestion.
339862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
349862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
359862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgVersion 8  10-Jan-2010
369862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org----------------------
379862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
389862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgAdd sanity check in BMP reader module to avoid cjpeg crash for empty input
399862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgimage (thank to Isaev Ildar of ISP RAS, Moscow, RU for reporting this error).
409862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
419862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgAdd data source and destination managers for read from and write to
429862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgmemory buffers.  New API functions jpeg_mem_src and jpeg_mem_dest.
439862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgThank to Roberto Boni from Italy for the suggestion.
449862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
459862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
469862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgVersion 7  27-Jun-2009
479862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org----------------------
489862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
493395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgNew scaled DCTs implemented.
503395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.orgdjpeg now supports scalings N/8 with all N from 1 to 16.
513395bcc26e390d2960d15020d4a4d27ae0c122fenoel@chromium.org
529862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgcjpeg -quality option has been extended for support of separate quality
539862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgsettings for luminance and chrominance (or in general, for every provided
549862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgquantization table slot).
559862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgNew API function jpeg_default_qtables() and q_scale_factor array in library.
569862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
579862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgSupport arithmetic entropy encoding and decoding.
589862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgAdded files jaricom.c, jcarith.c, jdarith.c.
599862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
609862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgjpegtran has a new "lossless" cropping feature.
619862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
629862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgImplement -perfect option in jpegtran, new API function
639862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgjtransform_perfect_transform() in transupp. (DP 204_perfect.dpatch)
649862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
659862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgBetter error messages for jpegtran fopen failure.
669862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org(DP 203_jpegtran_errmsg.dpatch)
679862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
689862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgFix byte order issue with 16bit PPM/PGM files in rdppm.c/wrppm.c:
699862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgaccording to Netpbm, the de facto standard implementation of the PNM formats,
709862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgthe most significant byte is first. (DP 203_rdppm.dpatch)
719862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
729862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgAdd -raw option to rdjpgcom not to mangle the output.
739862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org(DP 205_rdjpgcom_raw.dpatch)
749862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
759862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgMake rdjpgcom locale aware. (DP 201_rdjpgcom_locale.dpatch)
769862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
779862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgAdd extern "C" to jpeglib.h.
789862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgThis avoids the need to put extern "C" { ... } around #include "jpeglib.h"
799862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgin your C++ application.  Defining the symbol DONT_USE_EXTERN_C in the
809862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.orgconfiguration prevents this. (DP 202_jpeglib.h_c++.dpatch)
819862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
829862697206250265c6bb37a4186b0a411c78de3bhbono@chromium.org
83f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgVersion 6b  27-Mar-1998
84f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org-----------------------
85f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
86f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgjpegtran has new features for lossless image transformations (rotation
87f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.organd flipping) as well as "lossless" reduction to grayscale.
88f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
89f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgjpegtran now copies comments by default; it has a -copy switch to enable
90f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgcopying all APPn blocks as well, or to suppress comments.  (Formerly it
91f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgalways suppressed comments and APPn blocks.)  jpegtran now also preserves
92f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgJFIF version and resolution information.
93f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
94f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNew decompressor library feature: COM and APPn markers found in the input
95f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgfile can be saved in memory for later use by the application.  (Before,
96f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgyou had to code this up yourself with a custom marker processor.)
97f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
98f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgThere is an unused field "void * client_data" now in compress and decompress
99f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgparameter structs; this may be useful in some applications.
100f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
101f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgJFIF version number information is now saved by the decoder and accepted by
102f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgthe encoder.  jpegtran uses this to copy the source file's version number,
103f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgto ensure "jpegtran -copy all" won't create bogus files that contain JFXX
104f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgextensions but claim to be version 1.01.  Applications that generate their
105f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgown JFXX extension markers also (finally) have a supported way to cause the
106f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgencoder to emit JFIF version number 1.02.
107f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
108f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgdjpeg's trace mode reports JFIF 1.02 thumbnail images as such, rather
109f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgthan as unknown APP0 markers.
110f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
111f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgIn -verbose mode, djpeg and rdjpgcom will try to print the contents of
112f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgAPP12 markers as text.  Some digital cameras store useful text information
113f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgin APP12 markers.
114f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
115f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgHandling of truncated data streams is more robust: blocks beyond the one in
116f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgwhich the error occurs will be output as uniform gray, or left unchanged
117f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgif decoding a progressive JPEG.  The appearance no longer depends on the
118f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgHuffman tables being used.
119f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
120f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgHuffman tables are checked for validity much more carefully than before.
121f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
122f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgTo avoid the Unisys LZW patent, djpeg's GIF output capability has been
123f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgchanged to produce "uncompressed GIFs", and cjpeg's GIF input capability
124f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orghas been removed altogether.  We're not happy about it either, but there
125f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgseems to be no good alternative.
126f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
127f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgThe configure script now supports building libjpeg as a shared library
128f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgon many flavors of Unix (all the ones that GNU libtool knows how to
129f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgbuild shared libraries for).  Use "./configure --enable-shared" to
130f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgtry this out.
131f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
132f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNew jconfig file and makefiles for Microsoft Visual C++ and Developer Studio.
133f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgAlso, a jconfig file and a build script for Metrowerks CodeWarrior
134f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgon Apple Macintosh.  makefile.dj has been updated for DJGPP v2, and there
135f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgare miscellaneous other minor improvements in the makefiles.
136f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
137f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgjmemmac.c now knows how to create temporary files following Mac System 7
138f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgconventions.
139f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
140f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgdjpeg's -map switch is now able to read raw-format PPM files reliably.
141f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
142f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgcjpeg -progressive -restart no longer generates any unnecessary DRI markers.
143f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
144f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgMultiple calls to jpeg_simple_progression for a single JPEG object
145f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgno longer leak memory.
146f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
147f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
148f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgVersion 6a  7-Feb-96
149f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org--------------------
150f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
151f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgLibrary initialization sequence modified to detect version mismatches
152f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.organd struct field packing mismatches between library and calling application.
153f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgThis change requires applications to be recompiled, but does not require
154f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.organy application source code change.
155f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
156f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgAll routine declarations changed to the style "GLOBAL(type) name ...",
157f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgthat is, GLOBAL, LOCAL, METHODDEF, EXTERN are now macros taking the
158f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgroutine's return type as an argument.  This makes it possible to add
159f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgMicrosoft-style linkage keywords to all the routines by changing just
160f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgthese macros.  Note that any application code that was using these macros
161f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgwill have to be changed.
162f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
163f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgDCT coefficient quantization tables are now stored in normal array order
164f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgrather than zigzag order.  Application code that calls jpeg_add_quant_table,
165f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgor otherwise manipulates quantization tables directly, will need to be
166f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgchanged.  If you need to make such code work with either older or newer
167f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgversions of the library, a test like "#if JPEG_LIB_VERSION >= 61" is
168f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgrecommended.
169f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
170f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgdjpeg's trace capability now dumps DQT tables in natural order, not zigzag
171f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgorder.  This allows the trace output to be made into a "-qtables" file
172f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgmore easily.
173f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
174f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNew system-dependent memory manager module for use on Apple Macintosh.
175f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
176f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgFix bug in cjpeg's -smooth option: last one or two scanlines would be
177f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgduplicates of the prior line unless the image height mod 16 was 1 or 2.
178f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
179f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgRepair minor problems in VMS, BCC, MC6 makefiles.
180f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
181f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNew configure script based on latest GNU Autoconf.
182f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
183f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgCorrect the list of include files needed by MetroWerks C for ccommand().
184f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
185f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNumerous small documentation updates.
186f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
187f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
188f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgVersion 6  2-Aug-95
189f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org-------------------
190f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
191f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgProgressive JPEG support: library can read and write full progressive JPEG
192f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgfiles.  A "buffered image" mode supports incremental decoding for on-the-fly
193f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgdisplay of progressive images.  Simply recompiling an existing IJG-v5-based
194f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgdecoder with v6 should allow it to read progressive files, though of course
195f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgwithout any special progressive display.
196f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
197f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNew "jpegtran" application performs lossless transcoding between different
198f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgJPEG formats; primarily, it can be used to convert baseline to progressive
199f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgJPEG and vice versa.  In support of jpegtran, the library now allows lossless
200f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgreading and writing of JPEG files as DCT coefficient arrays.  This ability
201f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgmay be of use in other applications.
202f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
203f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNotes for programmers:
204f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org* We changed jpeg_start_decompress() to be able to suspend; this makes all
205f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgdecoding modes available to suspending-input applications.  However,
206f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgexisting applications that use suspending input will need to be changed
207f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgto check the return value from jpeg_start_decompress().  You don't need to
208f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgdo anything if you don't use a suspending data source.
209f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org* We changed the interface to the virtual array routines: access_virt_array
210f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgroutines now take a count of the number of rows to access this time.  The
211f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orglast parameter to request_virt_array routines is now interpreted as the
212f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgmaximum number of rows that may be accessed at once, but not necessarily
213f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgthe height of every access.
214f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
215f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
216f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgVersion 5b  15-Mar-95
217f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org---------------------
218f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
219f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgCorrect bugs with grayscale images having v_samp_factor > 1.
220f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
221f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgjpeg_write_raw_data() now supports output suspension.
222f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
223f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgCorrect bugs in "configure" script for case of compiling in
224f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orga directory other than the one containing the source files.
225f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
226f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgRepair bug in jquant1.c: sometimes didn't use as many colors as it could.
227f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
228f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgBorland C makefile and jconfig file work under either MS-DOS or OS/2.
229f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
230f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgMiscellaneous improvements to documentation.
231f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
232f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
233f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgVersion 5a  7-Dec-94
234f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org--------------------
235f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
236f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgChanged color conversion roundoff behavior so that grayscale values are
237f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgrepresented exactly.  (This causes test image files to change.)
238f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
239f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgMake ordered dither use 16x16 instead of 4x4 pattern for a small quality
240f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgimprovement.
241f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
242f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNew configure script based on latest GNU Autoconf.
243f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgFix configure script to handle CFLAGS correctly.
244f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgRename *.auto files to *.cfg, so that configure script still works if
245f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgfile names have been truncated for DOS.
246f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
247f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgFix bug in rdbmp.c: didn't allow for extra data between header and image.
248f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
249f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgModify rdppm.c/wrppm.c to handle 2-byte raw PPM/PGM formats for 12-bit data.
250f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
251f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgFix several bugs in rdrle.c.
252f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
253f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNEED_SHORT_EXTERNAL_NAMES option was broken.
254f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
255f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgRevise jerror.h/jerror.c for more flexibility in message table.
256f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
257f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgRepair oversight in jmemname.c NO_MKTEMP case: file could be there
258f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgbut unreadable.
259f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
260f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
261f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgVersion 5  24-Sep-94
262f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org--------------------
263f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
264f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgVersion 5 represents a nearly complete redesign and rewrite of the IJG
265f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgsoftware.  Major user-visible changes include:
266f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * Automatic configuration simplifies installation for most Unix systems.
267f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * A range of speed vs. image quality tradeoffs are supported.
268f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    This includes resizing of an image during decompression: scaling down
269f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    by a factor of 1/2, 1/4, or 1/8 is handled very efficiently.
270f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * New programs rdjpgcom and wrjpgcom allow insertion and extraction
271f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    of text comments in a JPEG file.
272f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
273f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgThe application programmer's interface to the library has changed completely.
274f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgNotable improvements include:
275f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * We have eliminated the use of callback routines for handling the
276f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    uncompressed image data.  The application now sees the library as a
277f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    set of routines that it calls to read or write image data on a
278f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    scanline-by-scanline basis.
279f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * The application image data is represented in a conventional interleaved-
280f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    pixel format, rather than as a separate array for each color channel.
281f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    This can save a copying step in many programs.
282f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * The handling of compressed data has been cleaned up: the application can
283f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    supply routines to source or sink the compressed data.  It is possible to
284f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    suspend processing on source/sink buffer overrun, although this is not
285f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    supported in all operating modes.
286f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * All static state has been eliminated from the library, so that multiple
287f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    instances of compression or decompression can be active concurrently.
288f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * JPEG abbreviated datastream formats are supported, ie, quantization and
289f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    Huffman tables can be stored separately from the image data.
290f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org  * And not only that, but the documentation of the library has improved
291f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org    considerably!
292f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
293f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org
294f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgThe last widely used release before the version 5 rewrite was version 4A of
295f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.org18-Feb-93.  Change logs before that point have been discarded, since they
296f0c4f33a4aa0760ba0e12a254b69d996442c9c5hbono@chromium.orgare not of much interest after the rewrite.
297