Below are all the performances comparisons we have done so far (as of 2nd May 2024). We will regularly update and add new results.
How we tested These figures were generated using jmh (as documented on our blog ) with a standard set of images (also documented). They should be easy to replicate if you wish to validate, the code is on GitHub .
Your figures may vary depending on system but the overall results should be comparable.
BMP Reading Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error ImageIO 56.383 ± 0.373 JDeli 171.242 ± 0.124
See BMP reader
GIF Reading Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error Apache 4.380 ± 0.011 ImageIO 1.652 ± 0.011 JDeli 5.357 ± 0.140
See GIF reader
JPEG Writing Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error ImageIO 63.441 ± 1.793 JDeli 116.734 ± 5.112 JDeli_Quality_100 50.637 ± 2.592 JDeli_Quality_50 127.940 ± 4.790
Output files File size AVG Reference 139.8KB ImageIO 18.4KB JDeli 18.2KB JDeli Quality 100 18.3KB JDeli Quality 50 12.8KB
See JPEG writer
JPEG2000 Reading Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error ImageIOWithJAI 48.971 ± 0.098 JDeli 123.793 ± 0.135
See JPEG2000 reader
Writing Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error ImageIO 3.743 ± 0.093 JDeli_JP2 4.243 ± 0.305 JDeli_JPX 4.401 ± 0.087
Output files File size AVG Reference 179.8KB ImageIO 156.4KB JDeli JP2 85.6KB JDeli JPX 121KB
See JPEG2000 writer
PNG Reading Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error Apache 1151.556 ± 12.405 ImageIO 296.915 ± 12.564 JDeli 2160.496 ± 43.874
See PNG reader
Writing Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error Apache 8.152 ± 0.235 ImageIO 10.993 ± 0.544 JDeli_quantised 2.938 ± 0.370 JDeli_fast 32.083 ± 2.395 JDeli_compressed 5.229 ± 0.636 JDeli_uncompressed 33.386 ± 1.962
Output files File size AVG Reference files 179.8KB Apache 185KB ImageIO 189KB JDeli_compressed 183.4KB JDeli_fast 189.2KB JDeli_quantised 63.8KB JDeli_uncompressed 189.2KB
See PNG writer
TIFF Reading Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error Apache 6.601 ± 0.119 ImageIO 7.976 ± 0.140 JDeli 11.298 ± 0.363
See TIFF reader
Writing Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error Apache 363.988 ± 9.254 ImageIO 184.710 ± 1.342 JDeli_better_comp 1045.353 ± 25.915 JDeli_better_speed 1254.833 ± 25.888 JDeli_deflate 999.939 ± 25.049 JDeli_jpeg 1010.410 ± 18.812 JDeli_LZW 906.880 ± 38.993 JDeli_uncompressed 1961.287 ± 36.406
Output files File size AVG Reference PNG 6.383KB Apache 674 bytes ImageIO 1.898KB JDeli better comp 1.438KB JDeli better speed 1017 bytes JDeli deflate 1017 bytes JDeli jpeg 1018 bytes JDeli lzw 985 bytes JDeli uncompressed 1.896KB
See TIFF writer
WEBP Writing Mode : Throughput Count : 25 Units : ops/s
Benchmark Score Error ImageIO 217.441 ± 14.804 JDeli 200.908 ± 11.554 JDeli_lossless 287.432 ± 23.937
Output files File size AVG Reference files 470.33 bytes ImageIO 231.33 bytes JDeli lossy 362.67 bytes JDeli lossless 377.69 bytes
See WEBP writer