| OLD | NEW |
| 1 1.3 pre-beta |
| 2 ============ |
| 3 |
| 4 [1] Added support for additional scaling factors (3/8, 5/8, 3/4, 7/8, 9/8, 5/4, |
| 5 11/8, 3/2, 13/8, 7/4, 15/8, and 2) when decompressing. Note that the IDCT will |
| 6 not be SIMD-accelerated when using any of these new scaling factors. |
| 7 |
| 8 [2] Added SIMD acceleration for performing 4:2:2 upsampling on NEON-capable ARM |
| 9 platforms. This speeds up the decompression of 4:2:2 JPEGs by 20-25% on such |
| 10 platforms. |
| 11 |
| 12 [3] Creating or decoding a JPEG file that uses the RGB colorspace should now |
| 13 properly work when the input or output colorspace is one of the libjpeg-turbo |
| 14 colorspace extensions. |
| 15 |
| 16 [4] When libjpeg-turbo was built without SIMD support and merged (non-fancy) |
| 17 upsampling was used along with an alpha-enabled colorspace during |
| 18 decompression, the unused byte of the decompressed pixels was not being set to |
| 19 0xFF. This has been fixed. TJUnitTest has also been extended to test for the |
| 20 correct behavior of the colorspace extensions when merged upsampling is used. |
| 21 |
| 22 [5] The TurboJPEG dynamic library is now versioned. It was not strictly |
| 23 necessary to do so, because TurboJPEG uses versioned symbols, and if a function |
| 24 changes in an ABI-incompatible way, that function is renamed and a legacy |
| 25 function is provided to maintain backward compatibility. However, certain |
| 26 Linux distro maintainers will blindly reject any library that is not versioned, |
| 27 so this was an attempt to make them happy. |
| 28 |
| 29 [6] Fixed a bug whereby the libjpeg-turbo SSE2 SIMD code would not preserve the |
| 30 upper 64 bits of xmm6 and xmm7 on Win64 platforms, which violated the Win64 |
| 31 calling conventions. |
| 32 |
| 33 |
| 1 1.2.0 | 34 1.2.0 |
| 2 ===== | 35 ===== |
| 3 | 36 |
| 4 [1] Fixed build issue with YASM on Unix systems (the libjpeg-turbo build system | 37 [1] Fixed build issue with YASM on Unix systems (the libjpeg-turbo build system |
| 5 was not adding the current directory to the assembler include path, so YASM | 38 was not adding the current directory to the assembler include path, so YASM |
| 6 was not able to find jsimdcfg.inc.) | 39 was not able to find jsimdcfg.inc.) |
| 7 | 40 |
| 8 [2] Fixed out-of-bounds read in SSE2 SIMD code that occurred when decompressing | 41 [2] Fixed out-of-bounds read in SSE2 SIMD code that occurred when decompressing |
| 9 a JPEG image to a bitmap buffer whose size was not a multiple of 16 bytes. | 42 a JPEG image to a bitmap buffer whose size was not a multiple of 16 bytes. |
| 10 This was more of an annoyance than an actual bug, since it did not cause any | 43 This was more of an annoyance than an actual bug, since it did not cause any |
| 11 actual run-time problems, but the issue showed up when running libjpeg-turbo in | 44 actual run-time problems, but the issue showed up when running libjpeg-turbo in |
| 12 valgrind. See http://crbug.com/72399 for more information. | 45 valgrind. See http://crbug.com/72399 for more information. |
| 13 | 46 |
| 14 [3] Added a compile-time macro (LIBJPEG_TURBO_VERSION) that can be used to | 47 [3] Added a compile-time macro (LIBJPEG_TURBO_VERSION) that can be used to |
| 15 check the version of libjpeg-turbo against which an application was compiled. | 48 check the version of libjpeg-turbo against which an application was compiled. |
| 16 | 49 |
| 17 [4] Added new RGBA/BGRA/ABGR/ARGB colorspace extension constants (libjpeg API) | 50 [4] Added new RGBA/BGRA/ABGR/ARGB colorspace extension constants (libjpeg API) |
| 18 and pixel formats (TurboJPEG API), which allow applications to specify that, | 51 and pixel formats (TurboJPEG API), which allow applications to specify that, |
| 19 when decompressing to a 4-component RGB buffer, the unused byte should be set | 52 when decompressing to a 4-component RGB buffer, the unused byte should be set |
| 20 to 0xFF so that it can be interpreted as an opaque alpha channel. | 53 to 0xFF so that it can be interpreted as an opaque alpha channel. |
| 21 | 54 |
| 55 [5] Fixed regression issue whereby DevIL failed to build against libjpeg-turbo |
| 56 because libjpeg-turbo's distributed version of jconfig.h contained an INLINE |
| 57 macro, which conflicted with a similar macro in DevIL. This macro is used only |
| 58 internally when building libjpeg-turbo, so it was moved into config.h. |
| 59 |
| 60 [6] libjpeg-turbo will now correctly decompress erroneous CMYK/YCCK JPEGs whose |
| 61 K component is assigned a component ID of 1 instead of 4. Although these files |
| 62 are in violation of the spec, other JPEG implementations handle them |
| 63 correctly. |
| 64 |
| 65 [7] Added ARM v6 and ARM v7 architectures to libjpeg.a and libturbojpeg.a in |
| 66 the official OS X distribution package, so that those libraries can be used to |
| 67 build both OS X and iOS applications. |
| 68 |
| 22 | 69 |
| 23 1.1.90 (1.2 beta1) | 70 1.1.90 (1.2 beta1) |
| 24 ================== | 71 ================== |
| 25 | 72 |
| 26 [1] Added a Java wrapper for the TurboJPEG API. See java/README for more | 73 [1] Added a Java wrapper for the TurboJPEG API. See java/README for more |
| 27 details. | 74 details. |
| 28 | 75 |
| 29 [2] The TurboJPEG API can now be used to scale down images during | 76 [2] The TurboJPEG API can now be used to scale down images during |
| 30 decompression. | 77 decompression. |
| 31 | 78 |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 | 210 |
| 164 | 211 |
| 165 1.0.90 (1.1 beta1) | 212 1.0.90 (1.1 beta1) |
| 166 ================== | 213 ================== |
| 167 | 214 |
| 168 [1] Added emulation of the libjpeg v7 and v8 APIs and ABIs. See | 215 [1] Added emulation of the libjpeg v7 and v8 APIs and ABIs. See |
| 169 README-turbo.txt for more details. This feature was sponsored by CamTrace SAS. | 216 README-turbo.txt for more details. This feature was sponsored by CamTrace SAS. |
| 170 | 217 |
| 171 [2] Created a new CMake-based build system for the Visual C++ and MinGW builds. | 218 [2] Created a new CMake-based build system for the Visual C++ and MinGW builds. |
| 172 | 219 |
| 173 [3] TurboJPEG/OSS can now compress from/decompress to grayscale bitmaps. | 220 [3] Grayscale bitmaps can now be compressed from/decompressed to using the |
| 221 TurboJPEG API. |
| 174 | 222 |
| 175 [4] jpgtest can now be used to test decompression performance with existing | 223 [4] jpgtest can now be used to test decompression performance with existing |
| 176 JPEG images. | 224 JPEG images. |
| 177 | 225 |
| 178 [5] If the default install prefix (/opt/libjpeg-turbo) is used, then | 226 [5] If the default install prefix (/opt/libjpeg-turbo) is used, then |
| 179 'make install' now creates /opt/libjpeg-turbo/lib32 and | 227 'make install' now creates /opt/libjpeg-turbo/lib32 and |
| 180 /opt/libjpeg-turbo/lib64 sym links to duplicate the behavior of the binary | 228 /opt/libjpeg-turbo/lib64 sym links to duplicate the behavior of the binary |
| 181 packages. | 229 packages. |
| 182 | 230 |
| 183 [6] All symbols in the libjpeg-turbo dynamic library are now versioned, even | 231 [6] All symbols in the libjpeg-turbo dynamic library are now versioned, even |
| 184 when the library is built with libjpeg v6b emulation. | 232 when the library is built with libjpeg v6b emulation. |
| 185 | 233 |
| 186 [7] Added arithmetic encoding and decoding support (can be disabled with | 234 [7] Added arithmetic encoding and decoding support (can be disabled with |
| 187 configure or CMake options) | 235 configure or CMake options) |
| 188 | 236 |
| 189 [8] Added a TJ_YUV flag to TurboJPEG/OSS which causes both the compressor and | 237 [8] Added a TJ_YUV flag to the TurboJPEG API, which causes both the compressor |
| 190 decompressor to output planar YUV images. | 238 and decompressor to output planar YUV images. |
| 191 | 239 |
| 192 [9] Added an extended version of tjDecompressHeader() to TurboJPEG/OSS which | 240 [9] Added an extended version of tjDecompressHeader() to the TurboJPEG API, |
| 193 allows the caller to determine the type of subsampling used in a JPEG image. | 241 which allows the caller to determine the type of subsampling used in a JPEG |
| 242 image. |
| 194 | 243 |
| 195 [10] Added further protections against invalid Huffman codes. | 244 [10] Added further protections against invalid Huffman codes. |
| 196 | 245 |
| 197 | 246 |
| 198 1.0.1 | 247 1.0.1 |
| 199 ===== | 248 ===== |
| 200 | 249 |
| 201 [1] The Huffman decoder will now handle erroneous Huffman codes (for instance, | 250 [1] The Huffman decoder will now handle erroneous Huffman codes (for instance, |
| 202 from a corrupt JPEG image.) Previously, these would cause libjpeg-turbo to | 251 from a corrupt JPEG image.) Previously, these would cause libjpeg-turbo to |
| 203 crash under certain circumstances. | 252 crash under certain circumstances. |
| 204 | 253 |
| 205 [2] Fixed typo in SIMD dispatch routines which was causing 4:2:2 upsampling to | 254 [2] Fixed typo in SIMD dispatch routines that was causing 4:2:2 upsampling to |
| 206 be used instead of 4:2:0 when decompressing JPEG images using SSE2 code. | 255 be used instead of 4:2:0 when decompressing JPEG images using SSE2 code. |
| 207 | 256 |
| 208 [3] configure script will now automatically determine whether the | 257 [3] configure script will now automatically determine whether the |
| 209 INCOMPLETE_TYPES_BROKEN macro should be defined. | 258 INCOMPLETE_TYPES_BROKEN macro should be defined. |
| 210 | 259 |
| 211 | 260 |
| 212 1.0.0 | 261 1.0.0 |
| 213 ===== | 262 ===== |
| 214 | 263 |
| 215 [1] 2983700: Further FreeBSD build tweaks (no longer necessary to specify | 264 [1] 2983700: Further FreeBSD build tweaks (no longer necessary to specify |
| 216 --host when configuring on a 64-bit system) | 265 --host when configuring on a 64-bit system) |
| 217 | 266 |
| 218 [2] Created sym. links in the Unix/Linux packages so that the TurboJPEG | 267 [2] Created sym. links in the Unix/Linux packages so that the TurboJPEG |
| 219 include file can always be found in /opt/libjpeg-turbo/include, the 32-bit | 268 include file can always be found in /opt/libjpeg-turbo/include, the 32-bit |
| 220 static libraries can always be found in /opt/libjpeg-turbo/lib32, and the | 269 static libraries can always be found in /opt/libjpeg-turbo/lib32, and the |
| 221 64-bit static libraries can always be found in /opt/libjpeg-turbo/lib64. | 270 64-bit static libraries can always be found in /opt/libjpeg-turbo/lib64. |
| 222 | 271 |
| 223 [3] The Unix/Linux distribution packages now include the libjpeg run-time | 272 [3] The Unix/Linux distribution packages now include the libjpeg run-time |
| 224 programs (cjpeg, etc.) and man pages. | 273 programs (cjpeg, etc.) and man pages. |
| 225 | 274 |
| 226 [4] Created a 32-bit supplementary package for amd64 Debian systems which | 275 [4] Created a 32-bit supplementary package for amd64 Debian systems, which |
| 227 contains just the 32-bit libjpeg-turbo libraries. | 276 contains just the 32-bit libjpeg-turbo libraries. |
| 228 | 277 |
| 229 [5] Moved the libraries from */lib32 to */lib in the i386 Debian package. | 278 [5] Moved the libraries from */lib32 to */lib in the i386 Debian package. |
| 230 | 279 |
| 231 [6] Include distribution package for Cygwin | 280 [6] Include distribution package for Cygwin |
| 232 | 281 |
| 233 [7] No longer necessary to specify --without-simd on non-x86 architectures, and | 282 [7] No longer necessary to specify --without-simd on non-x86 architectures, and |
| 234 unit tests now work on those architectures. | 283 unit tests now work on those architectures. |
| 235 | 284 |
| 236 | 285 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 248 [1] Added documentation to .deb packages | 297 [1] Added documentation to .deb packages |
| 249 | 298 |
| 250 [2] 2968313: Fixed data corruption issues when decompressing large JPEG images | 299 [2] 2968313: Fixed data corruption issues when decompressing large JPEG images |
| 251 and/or using buffered I/O with the libjpeg-turbo decompressor | 300 and/or using buffered I/O with the libjpeg-turbo decompressor |
| 252 | 301 |
| 253 | 302 |
| 254 0.0.90 | 303 0.0.90 |
| 255 ====== | 304 ====== |
| 256 | 305 |
| 257 Initial release | 306 Initial release |
| OLD | NEW |