Recent Changes - Search:

libjpeg-turbo Home

About libjpeg-turbo

Downloads

Documentation

Reports

Position Statements

Developer Info

Contact

SIMD Coverage of the libjpeg Algorithms

Compression

Integer Algorithms [8-bit Data Precision]

 AVX2 (x86-64, i386)SSE2 (x86-64, i386)MMX (i386)Neon (AArch64)Neon (AArch32)PPC AltiVec VMXRISC-V Vector (RVV)MIPS DSP r2Loongson MMI
RGB-to-YCbCr Color Conversionv2.0+YesYesv1.5+ 1v1.2+ 1v1.5+v3.2+v1.4 - 3.1.xv2.0+
RGB-to-Grayscale Color Conversionv2.0+YesYesv2.1+v2.1+v1.5+v3.2+v1.4 - 3.1.xv2.1+
H2V1 (4:2:2) Downsamplingv2.0+YesYesv1.5+v2.1+v1.5+v3.2+v1.4 - 3.1.xNo
H2V2 (4:2:0) Downsamplingv2.0+YesYesv1.5+v2.1+v1.5+v3.2+v1.4 - 3.1.xv2.0+
Integer Sample Conversionv2.0+YesYesv1.5+v1.2+v1.5+v3.2+v1.4 - 3.1.x 2No
Accurate Integer Forward DCTv2.0+YesYesv1.5+ 1v2.1+v1.5+v3.2+v1.4 - 3.1.x 2v2.0+
Fast Integer Forward DCT (Legacy Feature)NoYesYesv1.5+v1.2+v1.5+v3.2+v1.4 - 3.1.x 2v2.1+
Integer Quantizationv2.0+YesYesv1.5+v1.2+v1.5+v3.2+v1.4 - 3.1.xv2.0+

1 Both intrinsics (libjpeg-turbo v2.1+) and GAS (legacy) implementations provided in libjpeg-turbo 3.1.x and prior; GAS implementation used by default with GCC 11 and prior to avoid performance regression
2 Little endian only

Infrequently Used Integer Algorithms [8-bit Data Precision]

 MIPS DSP r2
NULL Color Conversion 1v1.4 - 3.1.x
H2V2 Smooth Downsampling 2v1.4 - 3.1.x

1 Used when compressing an RGB-colorspace JPEG image from RGB pixels or a CMYK-colorspace JPEG image from CMYK pixels
2 Used when compressing a JPEG image with cjpeg -smooth (never used in the TurboJPEG API)

Floating Point Algorithms (Legacy Feature)

 SSE (x86-64, i386)3DNow! (i386)MIPS DSP r2
Floating Point Sample ConversionYesYesv1.4 - 3.1.x
Floating Point Forward DCTYesYesNo
Floating Point QuantizationYesYesv1.4 - 3.1.x

Entropy Coding Algorithms

 SSE2 (x86-64, i386)Neon (AArch64)Neon (AArch32)
Huffman Encodingv1.5+v1.5+ 1v1.5+
Progressive Huffman Encodingv2.0+v2.1+v2.1+

1 Both intrinsics (libjpeg-turbo v2.1+) and GAS (legacy) implementations provided in libjpeg-turbo 3.1.x and prior; GAS implementation used by default with GCC 11 and prior to avoid performance regression

Decompression

Integer Algorithms [8-bit Data Precision]

 AVX2 (x86-64, i386)SSE2 (x86-64, i386)MMX (i386)Neon (AArch64)Neon (AArch32)PPC AltiVec VMXRISC-V Vector (RVV)MIPS DSP r2Loongson MMI
YCbCr-to-RGB Color Conversionv2.0+YesYesv1.4+ 2 3v1.2+v1.5+v3.2+v1.4 - 3.1.xv2.0+
H2V1 (4:2:2) Fancy (Smooth) Upsamplingv2.0+YesYesv2.1+v1.2.1+v1.5+v3.2+v1.4 - 3.1.x 4v2.1+
H2V2 (4:2:0) Fancy (Smooth) Upsamplingv2.0+YesYesv2.1+v2.1+v1.5+v3.2+v1.4 - 3.1.x 4v2.0+
H1V2 (4:4:0) Fancy (Smooth) UpsamplingNoNoNov2.1+v2.1+NoNoNoNo
H2V1 (4:2:2) Merged Upsampling/Color Conversion 1v2.0+YesYesv2.1+v2.1+v1.5+v3.2+v1.4 - 3.1.xv2.1+
H2V2 (4:2:0) Merged Upsampling/Color Conversion 1v2.0+YesYesv2.1+v2.1+v1.5+v3.2+v1.4 - 3.1.xv2.1+
Accurate Integer Inverse DCTv2.0+YesYesv1.4+ 2 3v1.2+ 3v1.5+v3.2+v1.4 - 3.1.xv2.0+
Fast Integer Inverse DCT (Legacy Feature)NoYesYesv1.4+ 2v1.2+ 3v1.5+v3.2+v1.4 - 3.1.x 4v2.1+

1 Used when decompressing subsampled YCbCr JPEG images into an RGB output image with djpeg -nosmooth or TJPARAM_FASTUPSAMPLE
2 Further optimized for in-order pipelines in libjpeg-turbo 1.5+.
3 Both intrinsics (libjpeg-turbo v2.1+) and GAS (legacy) implementations provided in libjpeg-turbo 3.1.x and prior; GAS implementation used by default with GCC 11 and prior to avoid performance regression
4 Little endian only

Infrequently Used Integer Algorithms [8-bit Data Precision]

 AVX2 (x86-64, i386)SSE2 (x86-64, i386)MMX (i386)Neon (AArch64)Neon (AArch32)PPC AltiVec VMXRISC-V Vector (RVV)MIPS DSP r2
YCbCr-to-RGB565 Color Conversion (Legacy Feature)NoNoNov1.4+v1.4+NoNoNo
H2V1 (4:2:2) Plain Upsampling 1v2.0+YesYesv2.1+v2.1+v1.5+v3.2+v1.4 - 3.1.x 3
H2V2 (4:2:0) Plain Upsampling 1v2.0+YesYesv2.1+v2.1+v1.5+v3.2+v1.4 - 3.1.x
Integer Upsampling 2NoNoNoNoNoNoNov1.4 - 3.1.x
2x2 (1/4 Scaling) Integer Inverse DCTNoYesYesv1.4+v1.2+NoNov1.4 - 3.1.x
4x4 (1/2 Scaling) Integer Inverse DCTNoYesYesv1.4+v1.2+NoNov1.4 - 3.1.x 3
6x6 (3/4 Scaling) Integer Inverse DCTNoNoNoNoNoNoNov1.4 - 3.1.x
12x12 (3/2 Scaling) Integer Inverse DCTNoNoNoNoNoNoNov1.4 - 3.1.x

1 Used when decompressing subsampled non-YCbCr JPEG images into an RGB or CMYK output image with djpeg -nosmooth or TJPARAM_FASTUPSAMPLE
2 Used when decompressing subsampled JPEG images with a sampling factor other than 4:2:0 or 4:2:2
3 Little endian only

Floating Point Algorithms (Legacy Feature)

 SSE (x86_64)SSE (i386)3DNow! (i386)
Floating Point Inverse DCTYesYesYes
Creative Commons LicenseAll content on this web site is licensed under the Creative Commons Attribution 2.5 License. Any works containing material derived from this web site must cite The libjpeg-turbo Project as the source of the material and list the current URL for the libjpeg-turbo web site.

Edit - History - Print - Recent Changes - Search
Page last modified on February 03, 2026, at 05:28 AM