winget install --id libjpeg-turbo.libjpeg-turbo.GCC
About libjpeg-turbo SDK for GCC
libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems. On such systems, libjpeg-turbo is generally 2-6x as fast as libjpeg, all else being equal. On other types of systems, libjpeg-turbo can still outperform libjpeg by a significant amount, by virtue of its highly-optimized Huffman coding routines. In many cases, the performance of libjpeg-turbo rivals that of proprietary high-spee...
What's new in 3.1.4.1
Significant changes relative to 3.1.4: 1. Fixed multiple issues, some long-standing and some that were regressions introduced in 3.1.4, that made the CMake package config files non-relocatable and broke the --prefix option to cmake --install. Significant changes relative to 3.1.3: 1. Fixed an issue in the TurboJPEG 2.x compatibility wrapper whereby, if a calling program attempted to decompress a lossless JPEG image using tjDecompress2() with decompression scaling, the decompressed image was unexpectedly unscaled. This could have led to a buffer overrun if the caller allocated the packed-pixel destination buffer based on the assumption that the decompressed image would be scaled down. 2. The SIMD dispatchers now use getauxval() or elf_aux_info(), if available, to detect support for Neon and AltiVec instructions on AArch32 and PowerPC Linux, Android, and *BSD systems. 3. Hardened the libjpeg API against hypothetical applications that may erroneously set one of the exposed quantization table values to 0 just before calling jpeg_start_compress(). (This would never happen in a correctly-written program, because jpeg_add_quant_table() clamps all values less than 1.) 4. Fixed a division-by-zero error that occurred when attempting to use the jpegtran -drop option with a specially-crafted malformed drop image (specifically an image in which one or more of the quantization table values was 0.) 5. Fixed an issue in the TurboJPEG API library's data destination manager that manifested as: - a memory leak that occurred if a pre-allocated JPEG destination buffer was passed to tj3Compress*...
Version history
| Version | Updated | Notes |
|---|---|---|
| 3.1.4.1 | Unknown | Significant changes relative to 3.1.4: 1. Fixed multiple issues, some long-standing and some that were regressions introduced in 3.1.4, that made the CMake package config files non-relocatable and broke the --prefix opti... |
| 3.1.4 | Unknown | Significant changes relative to 3.1.3: 1. Fixed an issue in the TurboJPEG 2.x compatibility wrapper whereby, if a calling program attempted to decompress a lossless JPEG image using tjDecompress2() with decompression sca... |
| 3.1.3 | Unknown | Significant changes relative to 3.1.2: 1. Hardened the TurboJPEG API against hypothetical applications that may erroneously call tj*Compress*() or tj*Transform() with a reused JPEG destination buffer pointer while specif... |
| 3.1.2 | Unknown | Significant changes relative to 3.1.1: 1. Fixed a regression introduced by 3.1 beta1[5] that caused a segfault in TJBench if -copy or -c was passed as the last command-line argument. 2. The build system now uses wrappers... |
| 3.1.1 | Unknown | Significant changes relative to 3.1.0: 1. Hardened the libjpeg API against hypothetical calling applications that may erroneously change the value of the data_precision field in jpeg_compress_struct or jpeg_decompress_st... |
| 3.1.0 | Unknown | Significant changes relative to 3.1 beta1: 1. Fixed an issue in the TurboJPEG API whereby, when generating a lossless JPEG image with more than 8 bits per sample, specifying a point transform value greater than 7 resulte... |
| 3.0.4 | Unknown | Significant changes relative to 3.0.3: 1. Fixed an issue whereby the CPU usage of the default marker processor in the decompressor grew exponentially with the number of markers. This caused an unreasonable slow-down in j... |
| 3.0.3 | Unknown | Significant changes relative to 3.0.2: 1. Fixed an issue in the build system, introduced in 3.0.2, that caused all libjpeg-turbo components to depend on the Visual C++ run-time DLL when built with Visual C++ and CMake 3.... |
| 3.0.2 | Unknown | Significant changes relative to 3.0.1: 1. Fixed a signed integer overflow in the tj3CompressFromYUV8(), tj3DecodeYUV8(), tj3DecompressToYUV8(), and tj3EncodeYUV8() functions, detected by the Clang and GCC undefined behav... |
| 3.0.0 | Unknown | Significant changes relative to 3.0 beta2: 1. The TurboJPEG API now supports 4:4:1 (transposed 4:1:1) chrominance subsampling, which allows losslessly transposed or rotated 4:1:1 JPEG images to be losslessly cropped, par... |