Improved JPEG encoder.
Перейти к файлу
Kornel 6c9f0897af MozJPEG 4.1.5 2023-10-12 17:52:31 +01:00
.github Merge commit 'eadd243' 2023-08-26 21:52:39 +01:00
cmakescripts Build: Fix issues w/ Ninja Multi-Config generator 2022-11-03 14:23:55 -05:00
doc/html xform fuzz: Use src subsamp to calc dst buf size 2023-07-06 09:10:30 -04:00
fuzz Restore xform fuzzer behavior from before 19f9d8f0 2023-07-06 10:29:27 -04:00
java Merge commit 'eadd243' 2023-08-26 21:52:39 +01:00
md5 MSVC: Eliminate C4996 warnings in API libs 2022-02-23 15:57:01 -06:00
release Merge commit 'eadd243' 2023-08-26 21:52:39 +01:00
sharedlib Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
simd Merge tag '2.1.5.1' 2023-08-26 21:49:51 +01:00
testimages SSE2: Fix prog Huff enc err if Sl%32==0 && Al!=0 2021-03-25 22:46:14 -05:00
win Merge tag '2.1.5' 2023-02-03 20:54:24 +00:00
.gitattributes Merge tag '2.1.5.1' 2023-08-26 21:49:51 +01:00
.gitignore
BUILDING.md Merge tag '2.1.5' 2023-02-03 20:54:24 +00:00
BUILDING.txt
CMakeLists.txt MozJPEG 4.1.5 2023-10-12 17:52:31 +01:00
CODE_OF_CONDUCT.md
ChangeLog.md ChangeLog.md: List CVE ID fixed by ccaba5d7 2023-09-14 17:23:13 -04:00
LICENSE.md TurboJPEG: Ensure 'pad' arg is a power of 2 2023-01-05 14:22:17 -06:00
README-mozilla.txt Default to single-scan DC 2021-02-25 21:44:09 +00:00
README-turbo.txt
README.ijg
README.md Doc: Mention that we are a JPEG ref implementation 2023-07-05 10:57:48 -04:00
appveyor.yml AppVeyor: Test strict MSVC compiler warnings 2022-02-23 17:02:24 -06:00
cderror.h Merge commit '8a2cad020171184a49fa8696df0b9e267f1cf2f6' 2021-02-26 21:30:09 +00:00
cdjpeg.c Fix -Wpedantic compiler warnings 2022-01-06 12:33:22 -06:00
cdjpeg.h Merge tag '2.1.0' 2021-07-21 22:39:01 +01:00
change.log
cjpeg.1 cjpeg: auto. compr. gray BMP/GIF-->grayscale JPEG 2021-11-30 16:10:23 -06:00
cjpeg.c Merge commit '8162eddf041e0be26f5c671bb6528723c55fed9d' 2022-08-15 02:46:09 +01:00
cmyk.h Remove redundant jconfigint.h #includes 2022-10-04 12:51:52 -05:00
coderules.txt
croptest.in
djpeg.1 Merge branch 'master' into dev 2020-11-05 16:04:55 -06:00
djpeg.c djpeg.c: Fix build if !SAVE_MARKERS_SUPPORTED 2022-11-30 10:43:29 -06:00
doxygen-extra.css
doxygen.config tjDecompressHeader3(): Accept tables-only streams 2022-06-24 14:10:44 -05:00
example.txt example.txt: Fix a typo 2022-03-09 12:58:55 -06:00
jaricom.c
jcapimin.c Update to libjpeg-turbo 2.1.3 2022-05-23 16:06:07 +01:00
jcapistd.c
jcarith.c Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
jccoefct.c
jccolext.c 12-bit: Prevent RGB-to-YCC table overrun/underrun 2022-11-29 00:53:55 -06:00
jccolor.c 12-bit: Prevent RGB-to-YCC table overrun/underrun 2022-11-29 00:53:55 -06:00
jcdctmgr.c Merge commit '8a2cad020171184a49fa8696df0b9e267f1cf2f6' 2021-02-26 21:30:09 +00:00
jcext.c
jchuff.c jchuff.c/flush_bits(): Guard against free_bits < 0 2023-07-25 17:40:35 -04:00
jchuff.h Merge tag '2.1.5' 2023-02-03 20:54:24 +00:00
jcicc.c
jcinit.c Merge commit '10ba6ed3365615ed5c2995fe2d240cb2d5000173' 2021-01-22 16:03:54 +00:00
jcmainct.c
jcmarker.c
jcmaster.c Remove redundant jconfigint.h #includes 2022-10-04 12:51:52 -05:00
jcmaster.h
jcomapi.c
jconfig.h.in Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jconfig.txt Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
jconfigint.h.in Fix -Wimplicit-fallthrough warnings with Clang 2021-07-06 12:37:34 -05:00
jcparam.c Default to single-scan DC 2021-02-25 21:44:09 +00:00
jcphuff.c Merge tag '2.1.5' 2023-02-03 20:54:24 +00:00
jcprepct.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jcsample.c
jcstest.c
jctrans.c Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
jdapimin.c Merge tag '2.1.5' 2023-02-03 20:54:24 +00:00
jdapistd.c jpeg_crop_scanline: Fix calc w/sclg + 2x4,4x2 samp 2023-04-06 22:05:10 -05:00
jdarith.c MSVC: Eliminate int conversion warnings (C4244) 2022-02-23 15:57:05 -06:00
jdatadst-tj.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jdatadst.c Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
jdatasrc-tj.c
jdatasrc.c Eliminate unnecessary JFREAD()/JFWRITE() macros 2022-02-09 16:07:18 -06:00
jdcoefct.c Fix block smoothing w/vert.-subsampled prog. JPEGs 2023-08-15 15:40:37 -04:00
jdcoefct.h Use 5x5 win & 9 AC coeffs when smoothing DC scans 2020-11-24 18:21:42 -06:00
jdcol565.c
jdcolext.c 12-bit: Set alpha channel to 4095 rather than 255 2023-01-17 15:29:02 -06:00
jdcolor.c Remove redundant jconfigint.h #includes 2022-10-04 12:51:52 -05:00
jdct.h
jddctmgr.c Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
jdhuff.c Suppress UBSan error in decode_mcu_fast() 2021-07-16 12:58:00 -05:00
jdhuff.h jdhuff.h: Fix ASan regression caused by 8fa70367 2021-04-16 16:34:12 -05:00
jdicc.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jdinput.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jdmainct.c Remove redundant jconfigint.h #includes 2022-10-04 12:51:52 -05:00
jdmainct.h
jdmarker.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jdmaster.c Decomp: Don't enable 2-pass color quant w/ RGB565 2023-04-04 20:45:16 -05:00
jdmaster.h
jdmerge.c Remove redundant jconfigint.h #includes 2022-10-04 12:51:52 -05:00
jdmerge.h
jdmrg565.c
jdmrgext.c 12-bit: Set alpha channel to 4095 rather than 255 2023-01-17 15:29:02 -06:00
jdphuff.c MSVC: Eliminate int conversion warnings (C4244) 2022-02-23 15:57:05 -06:00
jdpostct.c
jdsample.c Fix Neon SIMD build issues with Visual Studio 2020-11-24 21:13:16 -06:00
jdsample.h
jdtrans.c Fix build if WITH_12BIT==1 && WITH_JPEG(7|8)==1 2020-11-11 17:54:06 -06:00
jerror.c Win: Fix build with Visual Studio 2010 2022-03-11 11:19:40 -06:00
jerror.h Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
jfdctflt.c
jfdctfst.c
jfdctint.c Demote "fast" [I]DCT algorithms to legacy status 2020-11-05 15:59:31 -06:00
jidctflt.c
jidctfst.c
jidctint.c Merge branch 'master' into dev 2020-11-05 16:04:55 -06:00
jidctred.c
jinclude.h Fix build warnings/errs w/ -DNO_GETENV/-DNO_PUTENV 2023-06-16 11:55:01 -04:00
jmemmgr.c Fix non-SIMD alignment if void* bigger than double 2022-04-12 13:53:56 -05:00
jmemnobs.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jmemsys.h
jmorecfg.h Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jpeg_nbits_table.h
jpegcomp.h Fix build if WITH_12BIT==1 && WITH_JPEG(7|8)==1 2020-11-11 17:54:06 -06:00
jpegint.h Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
jpeglib.h Merge remote-tracking branch 'libjpeg-turbo/2.1.x' into HEAD 2023-09-23 22:31:18 +01:00
jpegtran.1 jpegtran: Add option to copy only ICC markers 2021-07-13 11:54:31 -05:00
jpegtran.c Merge commit '8162eddf041e0be26f5c671bb6528723c55fed9d' 2022-08-15 02:46:09 +01:00
jpegyuv.c
jquant1.c
jquant2.c Decomp: Don't enable 2-pass color quant w/ RGB565 2023-04-04 20:45:16 -05:00
jsimd.h Fix buffer overrun in 12-bit prog Huffman encoder 2022-11-15 19:07:50 -06:00
jsimd_none.c Fix buffer overrun in 12-bit prog Huffman encoder 2022-11-15 19:07:50 -06:00
jsimddct.h
jstdhuff.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jutils.c Eliminate non-ANSI C compatibility macros 2022-01-06 11:50:26 -06:00
jversion.h.in Merge tag '2.1.5' 2023-02-03 20:54:24 +00:00
libjpeg.map.in
libjpeg.txt IJG dox: Wordsmithing and formatting tweaks 2022-03-09 11:49:27 -06:00
mozjpeg.podspec
rd_average.sh
rd_collect.sh
rd_collect_sub.sh
rd_plot.sh
rdbmp.c Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
rdcolmap.c
rdgif.c Eliminate unnecessary JFREAD()/JFWRITE() macros 2022-02-09 16:07:18 -06:00
rdjpeg.c
rdjpgcom.1
rdjpgcom.c Merge commit '8162eddf041e0be26f5c671bb6528723c55fed9d' 2022-08-15 02:46:09 +01:00
rdpng.c
rdppm.c 12-bit: Set alpha channel to 4095 rather than 255 2023-01-17 15:29:02 -06:00
rdswitch.c Fix #220 2023-09-04 15:58:41 +01:00
rdtarga.c Eliminate unnecessary JFREAD()/JFWRITE() macros 2022-02-09 16:07:18 -06:00
strtest.c Fix build warnings/errs w/ -DNO_GETENV/-DNO_PUTENV 2023-06-16 11:55:01 -04:00
structure.txt
tjbench.c tjTransform(): Calc dst buf size from xformed dims 2023-06-28 11:37:53 -04:00
tjbenchtest.in
tjbenchtest.java.in
tjexample.c tjexample.c: Prevent integer overflow 2023-06-02 11:02:11 -04:00
tjexampletest.in
tjexampletest.java.in
tjunittest.c Merge tag '2.1.5' 2023-02-03 20:54:24 +00:00
tjutil.c
tjutil.h MinGW: Fix str*casecmp() macro redef. warning 2022-04-28 20:02:28 -05:00
transupp.c jpegtran: Fix FPE w/ -drop & -trim on corrupt JPEG 2022-12-07 14:01:40 -06:00
transupp.h Merge tag '2.1.3' into master-moz 2022-05-23 16:04:06 +01:00
turbojpeg-jni.c tjTransform(): Calc dst buf size from xformed dims 2023-06-28 11:37:53 -04:00
turbojpeg-mapfile TurboJPEG: Numerous documentation improvements 2023-01-14 17:10:31 -06:00
turbojpeg-mapfile.jni TurboJPEG: Numerous documentation improvements 2023-01-14 17:10:31 -06:00
turbojpeg.c Merge commit 'eadd243' 2023-08-26 21:52:39 +01:00
turbojpeg.h xform fuzz: Use src subsamp to calc dst buf size 2023-07-06 09:10:30 -04:00
usage.txt Merge commit '8162eddf041e0be26f5c671bb6528723c55fed9d' 2022-08-15 02:46:09 +01:00
wizard.txt wizard.txt: Clarify scan script restrictions 2022-10-21 12:20:41 -05:00
wrbmp.c Eliminate unnecessary JFREAD()/JFWRITE() macros 2022-02-09 16:07:18 -06:00
wrgif.c Eliminate unnecessary JFREAD()/JFWRITE() macros 2022-02-09 16:07:18 -06:00
wrjpgcom.1
wrjpgcom.c Progs: Eliminate obsolete Mac ccommand() interface 2022-03-08 17:31:11 -06:00
wrppm.c Eliminate unnecessary JFREAD()/JFWRITE() macros 2022-02-09 16:07:18 -06:00
wrtarga.c Eliminate unnecessary JFREAD()/JFWRITE() macros 2022-02-09 16:07:18 -06:00
yuvjpeg.c

README.md

Mozilla JPEG Encoder Project Build Status

MozJPEG improves JPEG compression efficiency achieving higher visual quality and smaller file sizes at the same time. It is compatible with the JPEG standard, and the vast majority of the world's deployed JPEG decoders.

MozJPEG is a patch for 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.

MozJPEG is compatible with the libjpeg API and ABI. It is intended to be a drop-in replacement for libjpeg. MozJPEG is a strict superset of libjpeg-turbo's functionality. All MozJPEG's improvements can be disabled at run time, and in that case it behaves exactly like libjpeg-turbo.

MozJPEG is meant to be used as a library in graphics programs and image processing tools. We include a demo cjpeg command-line tool, but it's not intended for serious use. We encourage authors of graphics programs to use libjpeg's C API and link with MozJPEG library 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 that uses the industry-standard libjpeg API. There's no need to write any MozJPEG-specific integration code.

Releases

Compiling

See BUILDING. MozJPEG is built exactly the same way as libjpeg-turbo, so if you need additional help please consult libjpeg-turbo documentation.