libjpeg-turbo SDK for Visual C++

libjpeg-turbo · libjpeg-turbo.libjpeg-turbo.VC

SIMD-accelerated libjpeg-compatible JPEG codec library

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-speed JPEG codecs.

winget install --id libjpeg-turbo.libjpeg-turbo.VC --exact --source winget

Latest 3.1.4.1

Release Notes

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:
  2. 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.
  3. 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.
  4. 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.)
  5. 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.)
  6. 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*() or tj3Transform(), TJPARAM_NOREALLOC was unset, and it was necessary for the library to re-allocate the buffer to accommodate the destination image, and
    • a potential caller double free that occurred if pre-allocated JPEG destination buffers were passed to tj3Transform(), multiple lossless transform operations were performed, and it was necessary for the library to re-allocate the second buffer to accommodate the second destination image.
  7. Fixed an issue in tj3Transform() whereby, if TJPARAM_SAVEMARKERS was set to 2 or 4, TJXOPT_COPYNONE was not specified, an ICC profile was extracted from the source image, and another ICC profile was associated with the TurboJPEG instance using tj3SetICCProfile(), both profiles were embedded in the destination image. The documented API behavior is for TJXOPT_COPYNONE to take precedence over TJPARAM_SAVEMARKERS and for TJPARAM_SAVEMARKERS to take precedence over the associated ICC profile. Thus, tj3Transform() now ignores the associated ICC profile unless TJXOPT_COPYNONE is specified or TJPARAM_SAVEMARKERS is set to something other than 2 or 4.
  8. Fixed an oversight in the libjpeg API whereby, if a calling application manually set cinfo.Ss (the predictor selection value) to a value less than 1 or greater than 7 after calling jpeg_enable_lossless() and prior to calling jpeg_start_compress(), an incorrect (all white) lossless JPEG image was silently generated.
  9. Further hardened the TurboJPEG Java API against hypothetical applications that may erroneously pass huge values to one of the compression, YUV encoding, decompression, YUV decoding, or packed-pixel image I/O methods, leading to signed integer overflow in the JNI wrapper's buffer size checks that rendered those checks ineffective.

Installer type: nullsoft

Architecture Scope Download SHA256
x86 Download 92562AE82075A91C63371EC18FD7B285E87B775CCBC5ACEA5839BF410CEB175F
x64 Download 2BB347F106473C12635BDD414B1F289DE9F4D6DEA4A496D3F9DD212DB9EDA0DC
arm64 Download BC5F251FC80C96160AB0EA72EBDBC0CDF203AA7C957B044CBA36DAA4BFAE376C

Details

Homepage
https://libjpeg-turbo.org/
License
IJG license, Modified (3-clause) BSD License and zlib License
Publisher
libjpeg-turbo
Support
https://github.com/libjpeg-turbo/libjpeg-turbo/issues
Copyright
Copyright (C)2009-2026 D. R. Commander. All Rights Reserved.

Tags

jpeglibjpeg

Older versions (9)

3.1.4
Architecture Scope Download SHA256
x86 Download BB289422BAF8C938373C48485F3B8CA09001DC307160078089F7931AE179ED45
x64 Download EE7A6A378D9EE4D631F6CCDFFE662BAC39318F618F99270391C747593D5758A4
arm64 Download DD8E70262F1661B7FC0E1C8AAA241DFAA2F3CCB18687B4E6565D00E0C4CE1990
3.1.3
Architecture Scope Download SHA256
x86 Download 067F661985F34DB220C22B80FFE0079EACE29A34CA638163FCF77190B4C24EA4
x64 Download 493A007CC73292531E8B186D35A22A483F6865919F936144C7B6C583B3E2FF66
arm64 Download 84C9CE2E3CE452A7C8BB28B94C326D59A8D7D9530FF85B0A5B22B452EFC669AA
3.1.2
Architecture Scope Download SHA256
x86 Download 600B3EEEEB458AB2705BDC1924E688320006EBAFAAE5BDAFE6E017AE9AEC042B
x64 Download 36EBF787ADF093B12EFE43D4A25F988863FB64D49F69008CBA3DBCB4A3D78E6D
arm64 Download 7E890640B1CC7BDAF9D91402465BC618044182E004043F1D159726A315632313
3.1.1
Architecture Scope Download SHA256
x86 Download 2BCF502655CADC0B2B20885595D6812218248C2EB9E8010CE389BD511BAE5F09
x64 Download 9CFB73CD587BA721F0B22113079B79CFE0A7CC13768375476A7D45B2F317E81A
arm64 Download 2FF20C520C906D78C54989066E172F15128F872DBE73926A79CC7BE7F60C6544
3.1.0
Architecture Scope Download SHA256
x86 Download 1EEC2A49E31316F0FA8FF004393B0B33057D1611CD0B4D7FA94E8624D06378AB
x64 Download 49FD0295245CDA636BAE079F0258C751C1ADEC4794DBBA29274C620C1C10A9B0
3.0.4
Architecture Scope Download SHA256
x86 Download 637ADF5410109B4F10F98E9B35E2C267A989CA3DA64114812EE1677B75A5FDEF
x64 Download BE83D1C9DF85A843391E6832C077CE18BA025DC895FB79F4AE2442982A2B02EE
3.0.3
Architecture Scope Download SHA256
x86 Download C1301A31A9A0ECB8F7EE40A55FF981F522E700E01C99A59E8877FF3901918496
x64 Download B3E6DDD9633EB963549880F9B439E395CA6DB42FC6474A31F34CBA5CA9E9C19E
3.0.2
Architecture Scope Download SHA256
x86 Download A96E27531FED2807FF679E4C854C15D12542C354AF6D2A4D1F5CA1C821E6F0D4
x64 Download E3FBBB3B0055478CC33F4895C887D36D38A9818B58CDFA9B84E59DDEEC3AB4B3
3.0.1
Architecture Scope Download SHA256
x86 Download BF6D09C755AB07E7168BDCBB21BE84E7D119922A9924D76A921DE23956F5A0E1
x64 Download 99F34894B7810F329BAD3F1BB0F354D3FD60B6B99915EA595A6DE0E9EFA29E25