Hit the space bar to toggle between images. Click on the image (or press any other key) to go back to mouse mode.


Each image size is targeting a constant bits per pixel data density in order to get a range of quality levels from different images at each size. Each size is a particular fraction of a uncompressed (24 BPP) image. The "Large" size targets 5% of the uncompressed size (24/20 = 1.2 BPP). Medium targets half the size of Large, Small half the size of Medium, and Tiny half the size of Small.

The results from JPEG XL are complicated, because quality setting actually dynamically chooses between normal mode and "modular" mode, so you're seeing two different modes of operation depending on what the quality level is. There's some chance that this behavior isn't monotonic, but it should be okay at high quality levels and it's better than the alternative (which was previously only using the normal mode).

This page is based on's Daala comparison page. Originally developed by xooyoozoo. This version is a fork of WyohKnott's improved version with additional updates and modifications (detailed below).

A list of sources for the images can be found in this text file.

Last updated: September 2022.

Changes vs. WyohKnott

Versions and Commands

AV1 (avifenc 0.10.1 + aom v3.4.0):

avifenc --depth 10 --yuv 444 --range full --speed 0 -c aom --min {quality} --max {quality} {input.png} {output.avif}

BPG (libbpg 0.9.8):

bpgenc -m 9 -f 444 -q {quality} -o {output.bpg} {input.png}

FLIF (FLIF 0.4):

flif -E 95 -Q {quality} {input.png} {output.flif}

JPEGXL (libjxl 0.7.0):

cjxl --resampling 1 -e 9 -q {quality} {input.png} {output.jxl}

JPEGXR (jxrlib 0.2.4):

JxrEncApp -d 3 -q {quality} -o {output.jxr} -i {input.ppm}

MozJPEG (mozjpeg 4.1.1):

cjpeg -sample 1x1 -quality {quality} -outfile {output.jpg} {input.png}