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 |