Projects / libjpeg-turbo


libjpeg-turbo is a high-speed version of libjpeg for x86 and x86-64 processors. It uses SIMD instructions (MMX, SSE, SSE2) to accelerate baseline JPEG compression and decompression. libjpeg-turbo is generally 2-4 times as fast as the unmodified version of libjpeg. It also includes a wrapper library for the TurboJPEG API used by VirtualGL and TurboVNC. It was originally based on libjpeg/SIMD but has improved support for Mac OS X, 64-bit platforms, 32-bit and big endian pixel formats (RGBA/BGRA/ABGR/ARGB), accelerated Huffman encoding/decoding, and various other fixes.

Operating Systems

Recent releases

  •  10 Feb 2012 20:57

    Release Notes: A build issue encountered when using YASM on Unix systems was fixed. An out-of-bounds read in the SSE2 SIMD code was fixed. New colorspace extension constants that allow applications to specify that the unused byte in a 4-byte RGB buffer should be treated as an alpha channel when decompressing were added. A regression issue encountered when building DevIL with libjpeg-turbo was fixed. iOS support was added to the libjpeg-turbo SDK for Mac.

    •  28 Oct 2011 07:03

      Release Notes: The TurboJPEG API was refactored and now has a more intuitive interface, Doxygen documentation, a Java wrapper, 4:4:0 support, lossless transform, and scaled decompression features. SIMD acceleration was added for RGB-to-grayscale compression. Performance was improved on platforms for which SIMD acceleration is not available. All wxWindows-licensed code was refactored, and libjpeg-turbo was re-licensed under a BSD-style license. YASM support was added. SIMD acceleration was added for ARM/NEON Linux and iOS platforms. Support for generating images with an opaque alpha channel was added. Several bugs were fixed.

      •  18 May 2011 05:09

        Release Notes: A 1-pixel data error when generating YUV images using TurboJPEG/OSS was fixed. Unexpected markers in a JPEG data stream are now properly handled when decompressing. The code now builds with MinGW64 v1.0. A regression that caused Windows installer build to fail when using Visual Studio IDE was fixed. A bug in jpeg_read_coefficients() that occurred when libjpeg v7/v8 emulation was enabled was fixed. Excessive I/O overhead when reading BMP files in cjpeg was fixed. Data errors in cjpeg on Windows that occurred when I/O redirection was used (cjpeg output.jpg) were fixed.

        •  27 Feb 2011 02:42

          Release Notes: An image quality issue that occurred when SIMD extensions were enabled with the fast integer forward DCT and JPEG quality 98-100 was worked around. The code can now be built without a C++ compiler. Visual artifacts that occurred when creating grayscale JPEG from RGB input were fixed. The jpgtest program was included in all packages. cjpeg, djpeg, and jpegtran are included in Windows packages. The TurboJPEG dynamic library now uses versioned symbols. Two new TurboJPEG API functions were added to replace the hackish TJ_YUV flag.

          •  06 Jan 2011 01:50

            Release Notes: libjpeg-turbo can be built to emulate the libjpeg v7 or v8b API/ABI. The Windows build system now uses CMake. TurboJPEG/OSS can now compress from/decompress to grayscale bitmaps and convert RGB or JPEG images to YUV planar output. jpgtest can be used to test decompression performance with existing JPEG images. Optional arithmetic encoding and decoding support was added. Further protections were added against invalid Huffman codes.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.