1797 images, 1250 megapixels, run on one amd64 machine with every codec single-threaded and one pass per image. libpng writes at its default compression level with adaptive filtering; stb_image_write and stb_image are used at their defaults. All three see the same four channels, and every BNG file was decoded back and compared to the source pixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 9.6 | 135.4 | 72.2 | 5.1 | 620 | 7.30 |
| stb_image | 8.9 | 77.2 | 78.2 | 9.0 | 885 | 10.43 |
| bng | 7.3 | 8.1 | 94.7 | 86.1 | 538 | 6.33 |
1797 images, 1250.2 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 8.8 | 114.2 | 76.0 | 5.9 | 483 | 5.92 |
| stb_image | 7.6 | 68.7 | 87.5 | 9.7 | 685 | 8.40 |
| bng | 6.8 | 7.9 | 97.9 | 84.5 | 462 | 5.66 |
568 images, 379.6 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 24.7 | 266.7 | 75.8 | 7.0 | 1271 | 5.56 |
| stb_image | 21.3 | 182.4 | 88.1 | 10.3 | 1857 | 8.12 |
| bng | 17.5 | 19.0 | 106.9 | 98.5 | 1090 | 4.77 |
171 images, 320.5 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 26.8 | 573.7 | 53.8 | 2.5 | 2414 | 13.74 |
| stb_image | 30.1 | 256.0 | 47.8 | 5.6 | 3529 | 20.08 |
| bng | 20.4 | 22.6 | 70.7 | 63.7 | 1931 | 10.98 |
100 images, 144.0 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 85.8 | 457.5 | 94.8 | 17.8 | 2403 | 2.42 |
| stb_image | 57.4 | 530.3 | 141.6 | 15.3 | 3080 | 3.11 |
| bng | 58.8 | 63.9 | 138.1 | 127.2 | 1976 | 1.99 |
14 images, 113.8 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 4.4 | 92.6 | 69.3 | 3.3 | 428 | 11.54 |
| stb_image | 4.7 | 40.6 | 64.8 | 7.5 | 625 | 16.84 |
| bng | 4.0 | 4.2 | 76.4 | 73.0 | 410 | 11.07 |
235 images, 71.4 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 13.3 | 160.3 | 79.4 | 6.6 | 862 | 6.68 |
| stb_image | 11.0 | 101.7 | 96.4 | 10.4 | 1197 | 9.28 |
| bng | 10.2 | 11.2 | 103.9 | 94.4 | 710 | 5.51 |
59 images, 62.3 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 2.7 | 15.0 | 96.2 | 17.5 | 51 | 1.60 |
| stb_image | 1.9 | 14.8 | 136.4 | 17.8 | 69 | 2.17 |
| bng | 2.3 | 2.2 | 116.2 | 120.0 | 61 | 1.91 |
213 images, 55.8 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 20.6 | 426.5 | 52.6 | 2.5 | 2046 | 15.46 |
| stb_image | 23.8 | 197.4 | 45.6 | 5.5 | 2895 | 21.87 |
| bng | 16.4 | 17.1 | 66.3 | 63.5 | 1672 | 12.63 |
49 images, 53.1 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 17.3 | 304.6 | 60.8 | 3.4 | 1978 | 15.45 |
| stb_image | 18.1 | 149.1 | 58.1 | 7.0 | 2554 | 19.95 |
| bng | 13.6 | 14.1 | 77.2 | 74.5 | 1283 | 10.02 |
20 images, 21.0 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 1.8 | 29.5 | 71.0 | 4.4 | 164 | 10.32 |
| stb_image | 1.8 | 15.5 | 71.5 | 8.4 | 232 | 14.66 |
| bng | 1.5 | 1.6 | 85.2 | 81.8 | 144 | 9.10 |
113 images, 14.7 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 7.7 | 138.3 | 50.9 | 2.8 | 718 | 14.95 |
| stb_image | 8.4 | 67.3 | 46.6 | 5.8 | 981 | 20.45 |
| bng | 5.8 | 6.4 | 68.2 | 61.4 | 551 | 11.48 |
24 images, 9.4 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 3.5 | 51.2 | 58.7 | 4.0 | 490 | 19.70 |
| stb_image | 4.4 | 36.4 | 46.2 | 5.6 | 693 | 27.84 |
| bng | 3.4 | 2.9 | 60.8 | 70.9 | 435 | 17.48 |
18 images, 3.7 megapixels.
| decode ms | encode ms | decode MP/s | encode MP/s | size KiB | bpp | |
|---|---|---|---|---|---|---|
| libpng | 0.1 | 0.4 | 57.0 | 9.7 | 4 | 7.56 |
| stb_image | 0.1 | 0.4 | 73.8 | 10.4 | 4 | 8.90 |
| bng | 0.1 | 0.1 | 76.1 | 66.7 | 4 | 7.18 |
213 images, 0.9 megapixels.