Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate switching to to libspng #4524

Open
lgritz opened this issue Nov 4, 2024 · 3 comments
Open

Investigate switching to to libspng #4524

lgritz opened this issue Nov 4, 2024 · 3 comments
Labels
build / testing / port / CI Affecting the build system, tests, platform support, porting, or continuous integration. file formats Image file formats, ImageInput, ImageOutput help wanted A task that is desired, but needs somebody to commit the effort to implement it. mackerel 🎣 Medium sized project that somebody should take on to dive deeper into being an OIIO developer.

Comments

@lgritz
Copy link
Collaborator

lgritz commented Nov 4, 2024

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 lgritz added file formats Image file formats, ImageInput, ImageOutput build / testing / port / CI Affecting the build system, tests, platform support, porting, or continuous integration. help wanted A task that is desired, but needs somebody to commit the effort to implement it. mackerel 🎣 Medium sized project that somebody should take on to dive deeper into being an OIIO developer. labels Nov 4, 2024
@ssh4net
Copy link
Contributor

ssh4net commented Dec 12, 2024

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

@fpsunflower
Copy link
Contributor

+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.

@aras-p
Copy link
Contributor

aras-p commented Dec 19, 2024

Another +1 for wuffs!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build / testing / port / CI Affecting the build system, tests, platform support, porting, or continuous integration. file formats Image file formats, ImageInput, ImageOutput help wanted A task that is desired, but needs somebody to commit the effort to implement it. mackerel 🎣 Medium sized project that somebody should take on to dive deeper into being an OIIO developer.
Projects
None yet
Development

No branches or pull requests

4 participants