NatronGitHub / Natron

Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
http://NatronGitHub.github.io
GNU General Public License v2.0
4.62k stars 337 forks source link

(Feature): JPEG XL support #980

Open thequver opened 1 month ago

thequver commented 1 month ago

Make sure to follow our issue report guidelines

Provide a description of your feature request

Please add support for reading/writing jxl files. Avif seems to be already supported

Is this a realistically implementable feature?

Can you contribute in creating this feature?

Additional details

No response

devernay commented 1 month ago

Should be supported by OIIO: https://openimageio.readthedocs.io/en/latest/builtinplugins.html#jpeg-xl

We have to check that JPEG XL support is enabled in our OIIO builds.

Which Natron binary are you using, on which system @thequver ? We'll start with that one.

thequver commented 1 month ago

I'm using a 2.6 nightly build from here on windows 11.

acolwell commented 1 month ago

I can take a look at this. I suspect it is just a matter of updating our version of OpenImageIO and including libjxl.

acolwell commented 1 month ago

So I have been able to get JPEG XL to work, but it requires a 2.6.2 dev build of OpenImageIO. The current stable 2.5.x releases do not support JPEG XL. It is unclear when the first 2.6.x OpenImageIO build will become stable. I suspect it will likely happen sometime in the September/October timeframe given their typical release schedule.

My preference would be to not have Natron depend on a non-stable OpenImageIO version, but I could be persuaded if folks feel that this feature is worth taking on the risk.

How important is this feature? Is there a particular reason you need this support right now or is this a "it would be nice to have"?

rodlie commented 1 month ago

My preference would be to not have Natron depend on a non-stable OpenImageIO version

Agree.

IMHO this is not a critical feature, JXL is not a common file format. We can support it when OIIO has it in a stable release.

thequver commented 1 month ago

How important is this feature? Is there a particular reason you need this support right now or is this a "it would be nice to have"?

I need it mostly to save disk space if render frames into jxl instead of png, some project intermediate files and cache could be also shrinked in size if i could use this format. Size reduction is huge, it could save gigabytes. Also it may substitute openexr at some point. Its main competitor, avif format is not well suited in my opinion (inferior lossless compression in benchmarks). But not critical to me too. For now I have to stick to classic exr + png and compress into jxl for archivation manually.

acolwell commented 1 month ago

Thanks for the responses. For now I'm just going to update OpenImageIO to the latests stable version, which does not have JXL support yet. When a stable version of OpenImageIO w/ JXL support is released then I'll update Natron to use that version and make the other minor changes needed to get JXL working.

I'll leave this bug open and assign it to myself just to help remind me to keep this on my radar.

devernay commented 1 month ago

agrre with staying with oiio stable for now. oiio 2.6 is due in fall 2024.