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.2.0·June 30, 2026

Release Notes

Significant changes relative to 3.2 beta1:

  1. Fixed a regression introduced by 3.2 beta1[9] that broke Arm64EC Windows builds.
  2. Hardened the PNG writer (which is used by djpeg and tj3SaveImage*()) against applications that may erroneously attempt to write sample values that are out of range for the specified output data precision. This could have caused a buffer overrun in the PNG writer's rescale array if the output data precision was not 8 or 16 bits. The buffer overrun did not likely pose a security risk, since tj3SaveImage*() is not exposed to arbitrary external input data and since a caller that abused the API in the aforementioned manner could never work properly.
  3. Hardened the libjpeg API against hypothetical applications that may erroneously call jpeg_crop_scanline() with buffered-image mode and raw data output enabled. jpeg_crop_scanline() does not work with raw data output, but due to an oversight, it did not throw an error if both buffered-image mode and raw data output were enabled. If a hypothetical application aborted a normal decompression operation without reading any scanlines, started a new decompression operation using the same libjpeg instance with buffered-image mode and raw data output enabled, then called jpeg_crop_scanline() with arguments that would have caused any of the component planes to be cropped to a width of 1 sample, jpeg_crop_scanline() would have used freed memory. However, this did not likely pose a security risk, since an application that abused the API in the aforementioned manner could never work properly.
  4. Fixed a buffer overrun and subsequent segfault in jpegtran that occurred when attempting to use the -crop and -trim options to expand the width of an image narrower than one iMCU, discard partial iMCUs, and fill each block in the expanded region with the DC coefficient of the nearest block in the input image ("flatten.") Similarly, fixed an infinite loop that occurred when attempting to use the -crop and -trim options to expand the width of an image narrower than one iMCU, discard partial iMCUs, and fill the expanded region with repeated reflections of the input image ("reflect.") When the only iMCU column in the input image is partial and partial iMCUs are trimmed, the flatten and reflect extensions cannot work properly, so jpegtran now throws an error if that is the case. These issues were confined to the jpegtran application and thus did not pose a security risk.

Installer type: nullsoft

x86—86806741D743DBD53A889FF721F2274CD34BC41B4DD40500902DF8D99332153E
x64—662761D8BA8DAE04AEC74023EBAECEB856C2B56B9B59CFD180759D26300DDA42
arm64—269FC323BFCF6E1AD45138AF808F7BD912447E9282DB54635C72F6A889075BBA

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 (10)

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