Latest 3.3.2
Homepage https://github.com/mozilla/mozjpeg
License BSD
Platforms ios 8.0

Mozilla JPEG Encoder Project Build Status

MozJPEG reduces file sizes of JPEG images while retaining quality and compatibility with the vast majority of the world’s deployed decoders.

MozJPEG is based on libjpeg-turbo. Please send pull requests to libjpeg-turbo if the changes aren’t specific to newly-added MozJPEG-only compression code. This project aims to keep differences with libjpeg-turbo minimal, so whenever possible, improvements and bug fixes should go there first.

It’s compatible with libjpeg API and ABI, and can be used as a drop-in replacement for libjpeg. MozJPEG makes tradeoffs that are intended to benefit Web use cases and focuses solely on improving encoding, so it’s best used as part of a Web encoding workflow.

MozJPEG is meant to be used as a library in graphics programs and image processing tools. We include a demo cjpeg tool, but it’s not intended for serious use. We encourage authors of graphics programs to use MozJPEG’s C API instead.

Features

  • Progressive encoding with "jpegrescan" optimization. It can be applied to any JPEG file (with jpegtran) to losslessly reduce file size.
  • Trellis quantization. When converting other formats to JPEG it maximizes quality/filesize ratio.
  • Comes with new quantization table presets, e.g. tuned for high-resolution displays.
  • Fully compatible with all web browsers.
  • Can be seamlessly integrated into any program using libjpeg.

Releases

Compiling

See BUILDING.

Latest podspec

{
    "name": "mozjpeg",
    "version": "3.3.2",
    "license": {
        "type": "BSD"
    },
    "homepage": "https://github.com/mozilla/mozjpeg",
    "summary": "Improved JPEG encoder.",
    "authors": "Mozilla",
    "source": {
        "git": "https://github.com/mozilla/mozjpeg.git",
        "tag": "v3.3.1"
    },
    "module_name": "mozjpeg",
    "header_dir": "mozjpeg",
    "platforms": {
        "ios": "8.0"
    },
    "prepare_command": "cat << EOF > ctransupp.hn#ifdef __cplusplusn#ifndef DONT_USE_EXTERN_Cnextern "C" {n#endifn#endifnEOFnncat transupp.h >> ctransupp.hnncat << EOF >> ctransupp.hn#ifdef __cplusplusn#ifndef DONT_USE_EXTERN_Cn}n#endifn#endifnEOFnnmv ctransupp.h transupp.hnncat << EOF > jconfig.hn#define JPEG_LIB_VERSION  80t/* Version 6b */n#define LIBJPEG_TURBO_VERSION 3.1.mn#define LIBJPEG_TURBO_VERSION_NUMBER 1n#define C_ARITH_CODING_SUPPORTED 1n#define D_ARITH_CODING_SUPPORTED 1n#define BITS_IN_JSAMPLE  8n#define HAVE_LOCALE_H 1n#define HAVE_STDDEF_H 1n#define HAVE_STDLIB_H 1n#define HAVE_UNSIGNED_CHAR 1n#define HAVE_UNSIGNED_SHORT 1n#define NEED_SYS_TYPES_H 1n#define WITH_SIMD 0nEOFnnncat << EOF > jconfigint.hn#define BUILD "20180328"n#define INLINE __attribute__((always_inline))n#define PACKAGE_NAME "mozjpeg"n#define VERSION "3.3.2"n#ifdef __SIZEOF_SIZE_T__n  #define SIZEOF_SIZE_T __SIZEOF_SIZE_T__n#elsen  #error Cannot determine the size of size_tn#endifnEOF",
    "private_header_files": [
        "bmp.h",
        "cderror.h",
        "cdjpeg.h",
        "jchuff.h",
        "jcmaster.h",
        "jconfigint.h",
        "jdcoefct.h",
        "jdct.h",
        "jdhuff.h",
        "jdmainct.h",
        "jdmaster.h",
        "jdsample.h",
        "jmemsys.h",
        "jpeg_nbits_table.h",
        "jpegcomp.h",
        "jsimd.h",
        "jsimddct.h",
        "jversion.h",
        "wrppm.h"
    ],
    "public_header_files": [
        "jerror.h",
        "jinclude.h",
        "jconfig.h",
        "jmorecfg.h",
        "jpeglib.h",
        "jpegint.h",
        "transupp.h"
    ],
    "source_files": [
        "jcapimin.c",
        "jcapistd.c",
        "jccoefct.c",
        "jccolor.c",
        "jcdctmgr.c",
        "jcext.c",
        "jchuff.c",
        "jcinit.c",
        "jcmainct.c",
        "jcmarker.c",
        "jcmaster.c",
        "jcomapi.c",
        "jcparam.c",
        "jcphuff.c",
        "jcprepct.c",
        "jcsample.c",
        "jctrans.c",
        "jdapimin.c",
        "jdapistd.c",
        "jdatadst.c",
        "jdatasrc.c",
        "jdcoefct.c",
        "jdcolor.c",
        "jddctmgr.c",
        "jdhuff.c",
        "jdinput.c",
        "jdmainct.c",
        "jdmarker.c",
        "jdmaster.c",
        "jdmerge.c",
        "jdphuff.c",
        "jdpostct.c",
        "jdsample.c",
        "jdtrans.c",
        "jerror.c",
        "jfdctflt.c",
        "jfdctfst.c",
        "jfdctint.c",
        "jidctflt.c",
        "jidctfst.c",
        "jidctint.c",
        "jidctred.c",
        "jquant1.c",
        "jquant2.c",
        "jutils.c",
        "jmemmgr.c",
        "jaricom.c",
        "jcarith.c",
        "jdarith.c",
        "transupp.c",
        "jmemnobs.c",
        "jsimd_none.c",
        "jerror.h",
        "jinclude.h",
        "jconfig.h",
        "jmorecfg.h",
        "jpeglib.h",
        "jpegint.h",
        "transupp.h",
        "bmp.h",
        "cderror.h",
        "cdjpeg.h",
        "jchuff.h",
        "jcmaster.h",
        "jconfigint.h",
        "jdcoefct.h",
        "jdct.h",
        "jdhuff.h",
        "jdmainct.h",
        "jdmaster.h",
        "jdsample.h",
        "jmemsys.h",
        "jpeg_nbits_table.h",
        "jpegcomp.h",
        "jsimd.h",
        "jsimddct.h",
        "jversion.h",
        "wrppm.h",
        "transupp.h"
    ],
    "preserve_paths": [
        "jdcolext.c",
        "jstdhuff.c",
        "jdcol565.c",
        "jdmrgext.c",
        "jdmrg565.c",
        "jccolext.c"
    ]
}

Pin It on Pinterest

Share This