| Index: ChangeLog.txt
|
| ===================================================================
|
| --- ChangeLog.txt (revision 144411)
|
| +++ ChangeLog.txt (working copy)
|
| @@ -5,32 +5,66 @@
|
| 11/8, 3/2, 13/8, 7/4, 15/8, and 2) when decompressing. Note that the IDCT will
|
| not be SIMD-accelerated when using any of these new scaling factors.
|
|
|
| -[2] Added SIMD acceleration for performing 4:2:2 upsampling on NEON-capable ARM
|
| -platforms. This speeds up the decompression of 4:2:2 JPEGs by 20-25% on such
|
| -platforms.
|
| +[2] The TurboJPEG dynamic library is now versioned. It was not strictly
|
| +necessary to do so, because TurboJPEG uses versioned symbols, and if a function
|
| +changes in an ABI-incompatible way, that function is renamed and a legacy
|
| +function is provided to maintain backward compatibility. However, certain
|
| +Linux distro maintainers will blindly reject any library that is not versioned,
|
| +so this was an attempt to make them happy.
|
|
|
| -[3] Creating or decoding a JPEG file that uses the RGB colorspace should now
|
| +[3] Extended the TurboJPEG Java API so that it can be used to decompress a
|
| +JPEG image into an arbitrary position in a large output buffer.
|
| +
|
| +[4] The tjDecompressToYUV() function now supports the TJFLAG_FASTDCT flag.
|
| +
|
| +
|
| +1.2.1
|
| +=====
|
| +
|
| +[1] Creating or decoding a JPEG file that uses the RGB colorspace should now
|
| properly work when the input or output colorspace is one of the libjpeg-turbo
|
| colorspace extensions.
|
|
|
| -[4] When libjpeg-turbo was built without SIMD support and merged (non-fancy)
|
| +[2] When libjpeg-turbo was built without SIMD support and merged (non-fancy)
|
| upsampling was used along with an alpha-enabled colorspace during
|
| decompression, the unused byte of the decompressed pixels was not being set to
|
| 0xFF. This has been fixed. TJUnitTest has also been extended to test for the
|
| correct behavior of the colorspace extensions when merged upsampling is used.
|
|
|
| -[5] The TurboJPEG dynamic library is now versioned. It was not strictly
|
| -necessary to do so, because TurboJPEG uses versioned symbols, and if a function
|
| -changes in an ABI-incompatible way, that function is renamed and a legacy
|
| -function is provided to maintain backward compatibility. However, certain
|
| -Linux distro maintainers will blindly reject any library that is not versioned,
|
| -so this was an attempt to make them happy.
|
| -
|
| -[6] Fixed a bug whereby the libjpeg-turbo SSE2 SIMD code would not preserve the
|
| +[3] Fixed a bug whereby the libjpeg-turbo SSE2 SIMD code would not preserve the
|
| upper 64 bits of xmm6 and xmm7 on Win64 platforms, which violated the Win64
|
| calling conventions.
|
|
|
| +[4] Fixed a regression caused by 1.2.0[6] whereby decompressing corrupt JPEG
|
| +images (specifically, images in which the component count was erroneously set
|
| +to a large value) would cause libjpeg-turbo to segfault.
|
|
|
| +[5] Worked around a severe performance issue with "Bobcat" (AMD Embedded APU)
|
| +processors. The MASKMOVDQU instruction, which was used by the libjpeg-turbo
|
| +SSE2 SIMD code, is apparently implemented in microcode on AMD processors, and
|
| +it is painfully slow on Bobcat processors in particular. Eliminating the use
|
| +of this instruction improved performance by an order of magnitude on Bobcat
|
| +processors and by a small amount (typically 5%) on AMD desktop processors.
|
| +
|
| +[6] Added SIMD acceleration for performing 4:2:2 upsampling on NEON-capable ARM
|
| +platforms. This speeds up the decompression of 4:2:2 JPEGs by 20-25% on such
|
| +platforms.
|
| +
|
| +[7] Fixed a regression caused by 1.2.0[2] whereby, on Linux/x86 platforms
|
| +running the 32-bit SSE2 SIMD code in libjpeg-turbo, decompressing a 4:2:0 or
|
| +4:2:2 JPEG image into a 32-bit (RGBX, BGRX, etc.) buffer without using fancy
|
| +upsampling would produce several incorrect columns of pixels at the right-hand
|
| +side of the output image if each row in the output image was not evenly
|
| +divisible by 16 bytes.
|
| +
|
| +[8] Fixed an issue whereby attempting to build the SIMD extensions with Xcode
|
| +4.3 on OS X platforms would cause NASM to return numerous errors of the form
|
| +"'%define' expects a macro identifier".
|
| +
|
| +[9] Added flags to the TurboJPEG API that allow the caller to force the use of
|
| +either the fast or the accurate DCT/IDCT algorithms in the underlying codec.
|
| +
|
| +
|
| 1.2.0
|
| =====
|
|
|
|
|