| Index: third_party/libjpeg_turbo/ChangeLog.txt
|
| ===================================================================
|
| --- third_party/libjpeg_turbo/ChangeLog.txt (revision 95020)
|
| +++ third_party/libjpeg_turbo/ChangeLog.txt (working copy)
|
| @@ -1,9 +1,169 @@
|
| -1.0.2
|
| +1.1.90 (1.2 beta1)
|
| +==================
|
| +
|
| +[1] Added a JNI wrapper for TurboJPEG/OSS. See java/README for more details.
|
| +
|
| +[2] TurboJPEG/OSS can now scale down images during decompression.
|
| +
|
| +[3] Added SIMD routines for RGB-to-grayscale color conversion, which
|
| +significantly improves the performance of grayscale JPEG compression from an
|
| +RGB source image.
|
| +
|
| +[4] Improved performance for non-x86 machines.
|
| +
|
| +[5] Added a function to the TurboJPEG API which performs lossless transforms.
|
| +This function uses the same back end as jpegtran, but it performs transcoding
|
| +entirely in memory and allows multiple transforms and/or crop operations to be
|
| +batched together, so the source coefficients only need to be read once. This
|
| +is useful when generating image tiles from a single source JPEG.
|
| +
|
| +[6] Modified jpgtest to benchmark the new scaled decompression and lossless
|
| +transform features in TurboJPEG/OSS.
|
| +
|
| +[7] Added support for 4:4:0 (transposed 4:2:2) subsampling in TurboJPEG, which
|
| +was necessary in order for it to read 4:2:2 JPEG files that had been losslessly
|
| +transposed or rotated 90 degrees.
|
| +
|
| +[8] All legacy VirtualGL code has been re-factored, and this has allowed
|
| +libjpeg-turbo, in its entirety, to be re-licensed under a BSD-style license.
|
| +
|
| +[9] libjpeg-turbo can now be built with YASM.
|
| +
|
| +[10] Added SIMD-accelerated fast integer inverse DCT and YCbCr-to-RGB color
|
| +conversion routines to accelerate JPEG decoding on ARM Linux and iOS platforms
|
| +that have NEON instructions.
|
| +
|
| +[11] Refactored the TurboJPEG C API so that it uses pixel formats to define the
|
| +size and component order of the uncompressed source/destination images as well
|
| +as uses the libjpeg memory source and destination managers. The latter allows
|
| +the TurboJPEG compressor to grow the JPEG buffer as necessary.
|
| +
|
| +[12] Eliminated errors in the output of jpegtran on Windows that occurred when
|
| +the application was invoked using I/O redirection
|
| +(jpegtran <input.jpg >output.jpg).
|
| +
|
| +[13] The inclusion of libjpeg v7 and v8 emulation as well as arithmetic coding
|
| +support in libjpeg-turbo v1.1.0 introduced several new error constants in
|
| +jerror.h, and these were mistakenly enabled for all emulation modes, causing
|
| +the error enum in libjpeg-turbo to sometimes have different values than the
|
| +same enum in libjpeg. This represents an ABI incompatibility, and it caused
|
| +problems with rare applications that took specific action based on a particular
|
| +error value. The fix was to include the new error constants conditionally
|
| +based on whether libjpeg v7 or v8 emulation was enabled.
|
| +
|
| +[14] Fixed an issue whereby Windows applications that used libjpeg-turbo would
|
| +fail to compile if the Windows system headers were included before jpeglib.h.
|
| +This issue was caused by a conflict in the definition of the INT32 type.
|
| +
|
| +[15] Implemented a more efficient version of TJBUFSIZE() which computes a
|
| +worst-case JPEG size based on the level of chrominance subsampling.
|
| +
|
| +[16] Fixed 32-bit supplementary package for amd64 Debian systems which was
|
| +broken by enhancements to the packaging system in 1.1.
|
| +
|
| +
|
| +1.1.1
|
| =====
|
|
|
| -[1] Added further protections against invalid Huffman codes.
|
| +[1] Fixed a 1-pixel error in row 0, column 21 of the luminance plane generated
|
| +by tjEncodeYUV().
|
|
|
| +[2] libjpeg-turbo's accelerated Huffman decoder previously ignored unexpected
|
| +markers found in the middle of the JPEG data stream during decompression. It
|
| +will now hand off decoding of a particular block to the unaccelerated Huffman
|
| +decoder if an unexpected marker is found, so that the unaccelerated Huffman
|
| +decoder can generate an appropriate warning.
|
|
|
| +[3] Older versions of MinGW64 prefixed symbol names with underscores by
|
| +default, which differed from the behavior of 64-bit Visual C++. MinGW64 1.0
|
| +has adopted the behavior of 64-bit Visual C++ as the default, so to accommodate
|
| +this, the libjpeg-turbo SIMD function names are no longer prefixed with an
|
| +underscore when building with MinGW64. This means that, when building
|
| +libjpeg-turbo with older versions of MinGW64, you will now have to add
|
| +-fno-leading-underscore to the CFLAGS.
|
| +
|
| +[4] Fixed a regression bug in the NSIS script that caused the Windows installer
|
| +build to fail when using the Visual Studio IDE.
|
| +
|
| +[5] Fixed a bug in jpeg_read_coefficients() whereby it would not initialize
|
| +cinfo->image_width and cinfo->image_height if libjpeg v7 or v8 emulation was
|
| +enabled. This specifically caused the jpegoptim program to fail if it was
|
| +linked against a version of libjpeg-turbo that was built with libjpeg v7 or v8
|
| +emulation.
|
| +
|
| +[6] Eliminated excessive I/O overhead that occurred when reading BMP files in
|
| +cjpeg.
|
| +
|
| +[7] Eliminated errors in the output of cjpeg on Windows that occurred when the
|
| +application was invoked using I/O redirection (cjpeg <inputfile >output.jpg).
|
| +
|
| +
|
| +1.1.0
|
| +=====
|
| +
|
| +[1] The algorithm used by the SIMD quantization function cannot produce correct
|
| +results when the JPEG quality is >= 98 and the fast integer forward DCT is
|
| +used. Thus, the non-SIMD quantization function is now used for those cases,
|
| +and libjpeg-turbo should now produce identical output to libjpeg v6b in all
|
| +cases.
|
| +
|
| +[2] Despite the above, the fast integer forward DCT still degrades somewhat for
|
| +JPEG qualities greater than 95, so TurboJPEG/OSS will now automatically use the
|
| +slow integer forward DCT when generating JPEG images of quality 96 or greater.
|
| +This reduces compression performance by as much as 15% for these high-quality
|
| +images but is necessary to ensure that the images are perceptually lossless.
|
| +It also ensures that the library can avoid the performance pitfall created by
|
| +[1].
|
| +
|
| +[3] Ported jpgtest.cxx to pure C to avoid the need for a C++ compiler.
|
| +
|
| +[4] Fixed visual artifacts in grayscale JPEG compression caused by a typo in
|
| +the RGB-to-luminance lookup tables.
|
| +
|
| +[5] The Windows distribution packages now include the libjpeg run-time programs
|
| +(cjpeg, etc.)
|
| +
|
| +[6] All packages now include jpgtest.
|
| +
|
| +[7] The TurboJPEG dynamic library now uses versioned symbols.
|
| +
|
| +[8] Added two new TurboJPEG API functions, tjEncodeYUV() and
|
| +tjDecompressToYUV(), to replace the somewhat hackish TJ_YUV flag.
|
| +
|
| +
|
| +1.0.90 (1.1 beta1)
|
| +==================
|
| +
|
| +[1] Added emulation of the libjpeg v7 and v8 APIs and ABIs. See
|
| +README-turbo.txt for more details. This feature was sponsored by CamTrace SAS.
|
| +
|
| +[2] Created a new CMake-based build system for the Visual C++ and MinGW builds.
|
| +
|
| +[3] TurboJPEG/OSS can now compress from/decompress to grayscale bitmaps.
|
| +
|
| +[4] jpgtest can now be used to test decompression performance with existing
|
| +JPEG images.
|
| +
|
| +[5] If the default install prefix (/opt/libjpeg-turbo) is used, then
|
| +'make install' now creates /opt/libjpeg-turbo/lib32 and
|
| +/opt/libjpeg-turbo/lib64 sym links to duplicate the behavior of the binary
|
| +packages.
|
| +
|
| +[6] All symbols in the libjpeg-turbo dynamic library are now versioned, even
|
| +when the library is built with libjpeg v6b emulation.
|
| +
|
| +[7] Added arithmetic encoding and decoding support (can be disabled with
|
| +configure or CMake options)
|
| +
|
| +[8] Added a TJ_YUV flag to TurboJPEG/OSS which causes both the compressor and
|
| +decompressor to output planar YUV images.
|
| +
|
| +[9] Added an extended version of tjDecompressHeader() to TurboJPEG/OSS which
|
| +allows the caller to determine the type of subsampling used in a JPEG image.
|
| +
|
| +[10] Added further protections against invalid Huffman codes.
|
| +
|
| +
|
| 1.0.1
|
| =====
|
|
|
|
|