Recent Changes - Search:

libjpeg-turbo Home

About libjpeg-turbo




Position Statements

Developer Info


SIMD Coverage of the libjpeg Algorithms


Integer Algorithms

 MMX (i386)SSE2 (i386)AVX2 (i386)SSE2 (x86_64)AVX2 (x86_64)ARM NEONARM64 NEONMIPS DSP r2PPC AltiVec VMX
RGB-to-YCbCr Color ConversionYesYesv1.6+Yesv1.6+v1.2+v1.5+v1.4+v1.5+
RGB-to-Grayscale Color ConversionYesYesv1.6+Yesv1.6+NoNov1.4+v1.5+
H2V1 (4:2:2) DownsamplingYesYesv1.6+Yesv1.6+Nov1.5+v1.4+v1.5+
H2V2 (4:2:0) DownsamplingYesYesv1.6+Yesv1.6+Nov1.5+v1.4+v1.5+
Integer Sample ConversionYesYesNoYesNov1.2+v1.5+v1.4+v1.5+
Fast Integer Forward DCTYesYesNoYesNov1.2+v1.5+v1.4+v1.5+
Slow Integer Forward DCTYesYesNoYesNoNov1.5+v1.4+v1.5+
Integer QuantizationYesYesv1.6+Yesv1.6+v1.2+v1.5+v1.4+v1.5+
Huffman EncodingNov1.5+Nov1.5+Nov1.5+v1.5+NoNo

Infrequently Used Integer Algorithms

NULL Color Conversion *v1.4+
H2V2 Smooth Downsampling **v1.4+

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

Floating Point Algorithms (Legacy Feature)

 3DNow! (i386)SSE (i386)SSE (x86_64)MIPS DSP r2
Floating Point Sample ConversionYesYesYesv1.4+
Floating Point Forward DCTYesYesYesNo
Floating Point QuantizationYesYesYesv1.4+


Integer Algorithms

 MMX (i386)SSE2 (i386)AVX2 (i386)SSE2 (x86_64)AVX2 (x86_64)ARM NEONARM64 NEONMIPS DSP r2PPC AltiVec VMX
YCbCr-to-RGB Color ConversionYesYesv1.6+Yesv1.6+v1.2+v1.4+ **v1.4+v1.5+
H2V1 (4:2:2) Fancy (Smooth) UpsamplingYesYesv1.6+Yesv1.6+v1.2.1+Nov1.4+v1.5+
H2V2 (4:2:0) Fancy (Smooth) UpsamplingYesYesv1.6+Yesv1.6+NoNov1.4+v1.5+
H2V1 (4:2:2) Merged Upsampling/Color Conversion *YesYesv1.6+Yesv1.6+NoNov1.4+v1.5+
H2V2 (4:2:0) Merged Upsampling/Color Conversion *YesYesv1.6+Yesv1.6+NoNov1.4+v1.5+
Fast Integer Inverse DCTYesYesNoYesNov1.2+v1.4+ **v1.4+v1.5+
Slow Integer Inverse DCTYesYesNoYesNov1.2+v1.4+ **v1.4+v1.5+

* Used when decompressing subsampled YCbCr JPEG images into an RGB output image with djpeg -nosmooth or TJFLAG_FASTUPSAMPLE

** Further optimized for in-order pipelines in libjpeg-turbo 1.5+.

Infrequently Used Integer Algorithms

 MMX (i386)SSE2 (i386)AVX2 (i386)SSE2 (x86_64)AVX2 (x86_64)ARM NEONARM64 NEONMIPS DSP r2PPC AltiVec VMX
YCbCr-to-RGB565 Color ConversionNoNoNoNoNov1.2+v1.4+NoNo
H2V1 (4:2:2) Plain Upsampling *YesYesv1.6+Yesv1.6+NoNov1.4+v1.5+
H2V2 (4:2:0) Plain Upsampling *YesYesv1.6+Yesv1.6+NoNov1.4+v1.5+
Integer Upsampling **NoNoNoNoNoNoNov1.4+No
2x2 (1/4 Scaling) Integer Inverse DCTYesYesNoYesNov1.2+v1.4+v1.4+No
4x4 (1/2 Scaling) Integer Inverse DCTYesYesNoYesNov1.2+v1.4+v1.4+No
6x6 (3/4 Scaling) Integer Inverse DCTNoNoNoNoNoNoNov1.4+No
12x12 (3/2 Scaling) Integer Inverse DCTNoNoNoNoNoNoNov1.4+No

* Used when decompressing subsampled non-YCbCr JPEG images into an RGB or CMYK output image with djpeg -nosmooth or TJFLAG_FASTUPSAMPLE
** Used when decompressing subsampled JPEG images with a sampling factor other than 4:2:0 or 4:2:2

Floating Point Algorithms (Legacy Feature)

 3DNow! (i386)SSE (i386)SSE (x86_64)
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 November 16, 2016, at 02:44 PM