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
Benchmark Mode Cnt Score Error Units ImageIO throughput 25 56.383 ± 0.373 ops/s JDeli throughput 25 171.242 ± 0.124 ops/s
See BMP reader
GIF Reading
Benchmark Mode Cnt Score Error Units Apache throughput 25 4.380 ± 0.011 ops/s ImageIO throughput 25 1.652 ± 0.011 ops/s JDeli throughput 25 5.357 ± 0.140 ops/s
See GIF reader
JPEG Writing
Benchmark Mode Cnt Score Error Units ImageIO throughput 25 63.441 ± 1.793 ops/s JDeli throughput 25 116.734 ± 5.112 ops/s JDeli_Quality_100 throughput 25 50.637 ± 2.592 ops/s JDeli_Quality_50 throughput 25 127.940 ± 4.790 ops/s
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
JPEG 2000 Reading
Benchmark Mode Cnt Score Error Units ImageIOWithJAI throughput 25 48.971 ± 0.098 ops/s JDeli throughput 25 123.793 ± 0.135 ops/s
See JPEG 2000 reader
Writing
Benchmark Mode Cnt Score Error Units ImageIO throughput 25 3.743 ± 0.093 ops/s JDeli_JP2 throughput 25 4.243 ± 0.305 ops/s JDeli_JPX throughput 25 4.401 ± 0.087 ops/s
Output files File size AVG Reference 179.8KB ImageIO 156.4KB JDeli JP2 85.6KB JDeli JPX 121KB
See JPEG 2000 writer
PNG Reading
Benchmark Mode Cnt Score Error Units Apache throughput 25 52.299 ± 0.837 ops/s ImageIO throughput 25 9.398 ± 0.409 ops/s JDeli throughput 25 83.952 ± 3.421 ops/s
See PNG reader
Writing
Benchmark Mode Cnt Score Error Units Apache throughput 25 8.152 ± 0.235 ops/s ImageIO throughput 25 10.993 ± 0.544 ops/s JDeli_quantised throughput 25 2.938 ± 0.370 ops/s JDeli_fast throughput 25 32.083 ± 2.395 ops/s JDeli_compressed throughput 25 5.229 ± 0.636 ops/s JDeli_uncompressed throughput 25 33.386 ± 1.962 ops/s
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
Benchmark Mode Cnt Score Error Units Apache throughput 25 6.601 ± 0.119 ops/s ImageIO throughput 25 7.976 ± 0.140 ops/s JDeli throughput 25 11.298 ± 0.363 ops/s
See TIFF reader
Writing
Benchmark Mode Cnt Score Error Units Apache throughput 25 2.109 ± 0.060 ops/s ImageIO throughput 25 18.693 ± 0.254 ops/s JDeli_better_comp throughput 25 6.811 ± 0.081 ops/s JDeli_better_speed throughput 25 38.698 ± 0.505 ops/s JDeli_deflate throughput 25 15.225 ± 0.210 ops/s JDeli_jpeg throughput 25 44.018 ± 0.770 ops/s JDeli_LZW throughput 25 22.079 ± 0.152 ops/s JDeli_uncompressed throughput 25 348.990 ± 16.928 ops/s
Output files File size AVG Reference PNG 179.8KB Apache 232KB ImageIO 1.267MB JDeli better comp 182.8KB JDeli better speed 378KB JDeli deflate 184KB JDeli jpeg 36.2KB JDeli lzw 247.6KB JDeli uncompressed 1.267MB
See TIFF writer
WEBP Writing
Benchmark Mode Cnt Score Error Units ImageIO throughput 25 217.441 ± 14.804 ops/s JDeli throughput 25 200.908 ± 11.554 ops/s JDeli_lossless throughput 25 287.432 ± 23.937 ops/s
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