OLD | NEW |
1 1.3 pre-beta | 1 1.3 pre-beta |
2 ============ | 2 ============ |
3 | 3 |
4 [1] Added support for additional scaling factors (3/8, 5/8, 3/4, 7/8, 9/8, 5/4, | 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 | 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. | 6 not be SIMD-accelerated when using any of these new scaling factors. |
7 | 7 |
8 [2] Added SIMD acceleration for performing 4:2:2 upsampling on NEON-capable ARM | 8 [2] The TurboJPEG dynamic library is now versioned. It was not strictly |
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 | 9 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 | 10 changes in an ABI-incompatible way, that function is renamed and a legacy |
25 function is provided to maintain backward compatibility. However, certain | 11 function is provided to maintain backward compatibility. However, certain |
26 Linux distro maintainers will blindly reject any library that is not versioned, | 12 Linux distro maintainers will blindly reject any library that is not versioned, |
27 so this was an attempt to make them happy. | 13 so this was an attempt to make them happy. |
28 | 14 |
29 [6] Fixed a bug whereby the libjpeg-turbo SSE2 SIMD code would not preserve the | 15 [3] Extended the TurboJPEG Java API so that it can be used to decompress a |
| 16 JPEG image into an arbitrary position in a large output buffer. |
| 17 |
| 18 [4] The tjDecompressToYUV() function now supports the TJFLAG_FASTDCT flag. |
| 19 |
| 20 |
| 21 1.2.1 |
| 22 ===== |
| 23 |
| 24 [1] Creating or decoding a JPEG file that uses the RGB colorspace should now |
| 25 properly work when the input or output colorspace is one of the libjpeg-turbo |
| 26 colorspace extensions. |
| 27 |
| 28 [2] When libjpeg-turbo was built without SIMD support and merged (non-fancy) |
| 29 upsampling was used along with an alpha-enabled colorspace during |
| 30 decompression, the unused byte of the decompressed pixels was not being set to |
| 31 0xFF. This has been fixed. TJUnitTest has also been extended to test for the |
| 32 correct behavior of the colorspace extensions when merged upsampling is used. |
| 33 |
| 34 [3] 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 | 35 upper 64 bits of xmm6 and xmm7 on Win64 platforms, which violated the Win64 |
31 calling conventions. | 36 calling conventions. |
32 | 37 |
| 38 [4] Fixed a regression caused by 1.2.0[6] whereby decompressing corrupt JPEG |
| 39 images (specifically, images in which the component count was erroneously set |
| 40 to a large value) would cause libjpeg-turbo to segfault. |
| 41 |
| 42 [5] Worked around a severe performance issue with "Bobcat" (AMD Embedded APU) |
| 43 processors. The MASKMOVDQU instruction, which was used by the libjpeg-turbo |
| 44 SSE2 SIMD code, is apparently implemented in microcode on AMD processors, and |
| 45 it is painfully slow on Bobcat processors in particular. Eliminating the use |
| 46 of this instruction improved performance by an order of magnitude on Bobcat |
| 47 processors and by a small amount (typically 5%) on AMD desktop processors. |
| 48 |
| 49 [6] Added SIMD acceleration for performing 4:2:2 upsampling on NEON-capable ARM |
| 50 platforms. This speeds up the decompression of 4:2:2 JPEGs by 20-25% on such |
| 51 platforms. |
| 52 |
| 53 [7] Fixed a regression caused by 1.2.0[2] whereby, on Linux/x86 platforms |
| 54 running the 32-bit SSE2 SIMD code in libjpeg-turbo, decompressing a 4:2:0 or |
| 55 4:2:2 JPEG image into a 32-bit (RGBX, BGRX, etc.) buffer without using fancy |
| 56 upsampling would produce several incorrect columns of pixels at the right-hand |
| 57 side of the output image if each row in the output image was not evenly |
| 58 divisible by 16 bytes. |
| 59 |
| 60 [8] Fixed an issue whereby attempting to build the SIMD extensions with Xcode |
| 61 4.3 on OS X platforms would cause NASM to return numerous errors of the form |
| 62 "'%define' expects a macro identifier". |
| 63 |
| 64 [9] Added flags to the TurboJPEG API that allow the caller to force the use of |
| 65 either the fast or the accurate DCT/IDCT algorithms in the underlying codec. |
| 66 |
33 | 67 |
34 1.2.0 | 68 1.2.0 |
35 ===== | 69 ===== |
36 | 70 |
37 [1] Fixed build issue with YASM on Unix systems (the libjpeg-turbo build system | 71 [1] Fixed build issue with YASM on Unix systems (the libjpeg-turbo build system |
38 was not adding the current directory to the assembler include path, so YASM | 72 was not adding the current directory to the assembler include path, so YASM |
39 was not able to find jsimdcfg.inc.) | 73 was not able to find jsimdcfg.inc.) |
40 | 74 |
41 [2] Fixed out-of-bounds read in SSE2 SIMD code that occurred when decompressing | 75 [2] Fixed out-of-bounds read in SSE2 SIMD code that occurred when decompressing |
42 a JPEG image to a bitmap buffer whose size was not a multiple of 16 bytes. | 76 a JPEG image to a bitmap buffer whose size was not a multiple of 16 bytes. |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 [1] Added documentation to .deb packages | 331 [1] Added documentation to .deb packages |
298 | 332 |
299 [2] 2968313: Fixed data corruption issues when decompressing large JPEG images | 333 [2] 2968313: Fixed data corruption issues when decompressing large JPEG images |
300 and/or using buffered I/O with the libjpeg-turbo decompressor | 334 and/or using buffered I/O with the libjpeg-turbo decompressor |
301 | 335 |
302 | 336 |
303 0.0.90 | 337 0.0.90 |
304 ====== | 338 ====== |
305 | 339 |
306 Initial release | 340 Initial release |
OLD | NEW |