Comparison of Image Encoders

MozJPEG @ 40,129 bytes (original encoded JPEG)
MozJPEG (-sample 1x1 -tune-ms-ssim) @ 39,610 bytes
Jpeg2000 (OpenJPEG -s 1,1 -q x) @ 40,282 bytes
Jpeg2000 (OpenJPEG -r 29) @ 40,640 bytes
MozJPEG @ 19,694 bytes
MozJPEG (-sample 1x1 -tune-ms-ssim) @ 19,858 bytes
Jpeg2000 (OpenJPEG -s 1,1 -q x) @ 20,128 bytes
Jpeg2000 (OpenJPEG -r 58.75) @ 20,074 bytes
MozJPEG @ 68,847 bytes
MozJPEG (-sample 1x1 -tune-ms-ssim) @ 80,520 bytes
Jpeg2000 (OpenJPEG -s 1,1 -q x) @ 80,711 bytes
Jpeg2000 (OpenJPEG -r 68) @ 80,607 bytes
MozJPEG @ 81,006 bytes
MozJPEG (-sample 1x1 -tune-ms-ssim) @ 81,538 bytes
Jpeg2000 (OpenJPEG -s 1,1 -q x) @ 81,611 bytes
Jpeg2000 (OpenJPEG -r 67) @ 81,751 bytes
MozJPEG @ 80,945 bytes
MozJPEG (-sample 1x1 -tune-ms-ssim) @ 79,953 bytes
Jpeg2000 (OpenJPEG -s 1,1 -q x) @ 80,583 bytes
Jpeg2000 (OpenJPEG -r 68) @ 80,594 bytes

JPEG XL

JPEG XL ( -s 8 -q x) @ 80,133 bytes

Image comparison slider

Netflix (internal) boxshots-1 dataset
JPEG 444 (Netflix)
AVIF 444 (Netflix)
Jpeg2000(OpenJPEG -s 1,1)
MozJPEG 444 (-optimize -sample 1x1 -tune-ms-ssim)
MozJPEG (-optimize)
WebP (-m 6 -pass 10 -sharp_yuv)
JPEG XL (cjpegxl --speed=8)
JPEG XL ( -s 8 -q x) @ 39,851 bytes
JPEG XL (-s 8 -q x) @ 85,173 bytes
JPEG XL (-s 8 -q x) @ 20,170 bytes
JPEG XL (-s 8 -q x) @ 76,091 bytes

Additional comparisons

Kodak and CLIC images dataset

AVIF 1.0.0-errata1-avif-252-gb8752448c (aomenc --cpu-used=0 --sharpness=7)
JPEG XL [b3a65719](cjpegxl --speed=8)
kodim19 (original source image from the Kodak dataset)
kodim01 (original source image from the Kodak dataset)
https://www.artstation.com/artwork/N5DeOJ
AVIF (aomenc --cpu-used=0 --sharpness=7)
JPEG XL (cjpegxl --speed=8)
WebP (-m 6 -pass 10 -sharp_yuv)
Woman Face Photo
AVIF (aomenc --cpu-used=0 --sharpness=7)
JPEG XL (cjpegxl --speed=8)
MozJPEG (-optimize)
WebP (-m 6 -pass 10 -sharp_yuv)

Comparison with HEIC and extreme compression

AVIF 1.0.0-errata1-avif-252-gb8752448c (aomenc --cpu-used=0 --sharpness=7) + (MP4Box -ab avif)
JPEG XL [b3a65719] (cjpegxl --speed=8)
MozJPEG 4.0.0 (-optimize)
HEIC 3.2.1+36-g36fcfc308 (x265 --preset veryslow --deblock -2:-3) + (MP4Box -ab heic)
WebP (-m 6 -pass 10 -sharp_yuv)
HTJ2k GIT (OpenJPH)
CLIC dataset 2048x1320_alex-siale-95113
HTJ2K @ 506,676 bytes
WebP @ 506,100 bytes
CLIC dataset 2048x1320_andrew-coelho-46449
HTJ2K @ 431,241 bytes
CLIC dataset 2048x1320_stefan-kunze-26928
CLIC dataset 2048x1320_nick-scheerbart-15636
MozJPEG @ 221,651 bytes
MozJPEG (-quant-table 2) @ 221,575 bytes
HTJ2K @ 220,218 bytes
CLIC dataset 2048x1320_fineas-anton-143501
MozJpeg @ 172,266 bytes
MozJPEG (-quant-table 2) @ 171,255 bytes
AVIF @ 169,632 bytes
HTJ2K @ 169,798 bytes
CLIC dataset 2048x1320_picseli-6726
MozJpeg @ 47,166 bytes
MozJPEG (-quant-table 2) @ 47,148 bytes
HEIC @ 47,006 bytes
HTJ2K @ 47,122 bytes
CLIC dataset 2048x1320_ray-hennessy-118048
MozJpeg @ 51,655 bytes
MozJPEG (-quant-table 2) @ 51,803 bytes
HEIC @ 50,629 bytes
HTJ2K @ 50,472 bytes
CLIC 2048x1320_tony-webster-97532
MozJpeg @ 43,253 bytes
MozJPEG (-quant-table 2) @ 43,238 bytes
HEIC @ 43,159 bytes
HTJ2K @ 43,201 bytes
CLIC 2048x1320_nitish-kadam-34748
AVIF @ 10,393 bytes
MozJpeg @ 10,621 bytes
HTJ2K @ 10,406 bytes

Color banding, 8 and 10-bit AVIF/HEIC, HTJ2K

AVIF (aomenc --cpu-used=0 --sharpness=7)
AVIF 10-bit (--cpu-used=0 --sharpness=7 --bit-depth=10)
HEIC (x265 --preset veryslow --deblock -2:-3)
HEIC 10-bit (--preset veryslow --deblock -2:-3 --output-depth 10)
JPEG XL (cjpegxl --speed=8)
MozJPEG (-optimize)
HTJ2k (OpenJPH)
CLIC 2048x1320_john-cobb-14128
AVIF @ 85,283 bytes
AVIF 10-bit @ 83,619 bytes
HEIC @ 85,436 bytes
HEIC 10-bit @ 83,259 bytes
HTJ2K @ 85,296 bytes
Jpeg XL @ 85,204 bytes
MozJpeg @ 85,667 bytes
CLIC 2048x1320_yulia-vambold-20364
AVIF @ 187,654 bytes
AVIF 10-bit @ 186,993 bytes
HEIC @ 187,236 bytes
HEIC 10-bit @ 187,509 bytes
HTJ2K @ 187,808 bytes
Jpeg XL @ 187,202 bytes
MozJpeg @ 187,652 bytes

AV1 (AVIF) Film Grain Synthesis

AVIF (aomenc --cpu-used=0 --sharpness=7)
AVIF FG (--cpu-used=0 --sharpness=7 --denoise-noise-level=10)
HEIC (x265 --preset veryslow --deblock -2:-3)
JPEG XL (cjpegxl --speed=8)
MozJPEG (-optimize)
HTJ2k (OpenJPH)
CLIC 2048x1320_andrew-neel-178721
AVIF @ 230,253 bytes
AVIF Film Grain Synthesis @ 230,309 bytes
HEIC @ 230,232 bytes
HTJ2K @ 230,353 bytes
Jpeg XL @ 230,319 bytes
MozJpeg @ 229,937 bytes

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store