libjpeg-turbo was designed as a derivative of libjpeg that uses the SIMD instructions (MMX, SSE2, etc.) in order to accelerate baseline JPEG compression and decompression.
On such systems, libjpeg-turbo is generally 2-4x as fast as the unmodified version of libjpeg, all else being equal.
The goal was to produce a fully open source codec that could replace the partially closed source TurboJPEG/IPP codec used by VirtualGL and TurboVNC. libjpeg-turbo generally achieves 80-120% of the performance of TurboJPEG/IPP. It is faster in some areas but slower in others.
Here are some key features of "libjpeg-turbo":
· Accelerated 32-bit and 64-bit versions
· Support for multiple platforms
· GPL-compatible
· Provides the TurboJPEG API used by VirtualGL and TurboVNC
· Similar performance to commercial/closed source accelerated JPEG solutions
What's New in This Release: [ read full changelog ]
· Fixed build issue with YASM on Unix systems (the libjpeg-turbo build system was not adding the current directory to the assembler include path, so YASM was not able to find jsimdcfg.inc.)
· Fixed out-of-bounds read in SSE2 SIMD code that occurred when decompressing a JPEG image to a bitmap buffer whose size was not a multiple of 16 bytes. This was more of an annoyance than an actual bug, since it did not cause any actual run-time problems, but the issue showed up when running libjpeg-turbo in valgrind.
· Added a compile-time macro (LIBJPEG_TURBO_VERSION) that can be used to check the version of libjpeg-turbo against which an application was compiled.
· Added new RGBA/BGRA/ABGR/ARGB colorspace extension constants (libjpeg API) and pixel formats (TurboJPEG API), which allow applications to specify that, when decompressing to a 4-component RGB buffer, the unused byte should be set to 0xFF so that it can be interpreted as an opaque alpha channel.
· Fixed regression issue whereby DevIL failed t...