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