Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Wuffs/PNG can decode roughly 2.0x - 2.5x faster than libpng. See:
https://github.com/google/wuffs
https://nigeltao.github.io/blog/2021/fastest-safest-png-decoder.html
On a x86_64 Broadwell desktop CPU:
images/kodak
decode ms encode ms decode mpps encode mpps size kb
libpng: 8.5 153.5 42.91 2.37 662
stbi: 9.1 86.7 39.79 4.18 904
wuffs: 4.0 n/a 89.94 n/a n/a
qoi: 3.5 4.0 103.95 90.02 712
images/misc
decode ms encode ms decode mpps encode mpps size kb
libpng: 7.9 71.4 69.20 7.64 239
stbi: 6.2 58.3 87.85 9.36 355
wuffs: 2.9 n/a 185.74 n/a n/a
qoi: 2.2 2.1 253.01 258.79 322
images/screenshots
decode ms encode ms decode mpps encode mpps size kb
libpng: 48.9 510.8 145.96 13.96 1923
stbi: 42.8 577.7 166.60 12.35 2445
wuffs: 35.0 n/a 203.53 n/a n/a
qoi: 24.5 18.2 291.44 392.67 2237
images/textures
decode ms encode ms decode mpps encode mpps size kb
libpng: 4.0 57.0 32.86 2.30 278
stbi: 4.3 34.3 30.63 3.82 403
wuffs: 2.3 n/a 58.17 n/a n/a
qoi: 1.2 1.6 107.12 82.38 295
images/wallpaper
decode ms encode ms decode mpps encode mpps size kb
libpng: 169.1 2458.0 51.95 3.57 8648
stbi: 200.0 1470.7 43.92 5.97 12468
wuffs: 94.9 n/a 92.58 n/a n/a
qoi: 73.2 72.9 120.01 120.60 9981