OpenImageIO icon indicating copy to clipboard operation
OpenImageIO copied to clipboard

Investigate switching to to libspng

Open lgritz opened this issue 1 year ago • 3 comments

libspng is an alternative to libpng that is both (allegedly) higher performance and also a much simpler dependency to manage (just one .h and one .c file, easily "vendored").

We should try a rewrite of our png handling to use this alternative library, check performance and see if we like the simplified dependency situation.

lgritz avatar Nov 04 '24 18:11 lgritz

There are couple of interesting alternatives:

https://www.reddit.com/r/rust/comments/1ha7uyi/memorysafe_png_decoders_now_vastly_outperform_c/?rdt=40279

The one written on rust, looks promising. But Google Wuffs maybe more interesting: https://github.com/google/wuffs

ssh4net avatar Dec 12 '24 01:12 ssh4net

+1 for wuffs - it also covers more than just png.

I also recently heard about this package: https://github.com/t0rakka/mango

which is not something we could integrate into OIIO directly (as its kind of its own framework), but it shows how much performance gain is still available even compared to these faster alternatives.

fpsunflower avatar Dec 12 '24 18:12 fpsunflower

Another +1 for wuffs!

aras-p avatar Dec 19 '24 10:12 aras-p