osamu620 / OpenHTJ2K

An open source implementation of ITU-T Rec.814 | ISO 15444-15 (a.k.a. HTJ2K).
BSD 3-Clause "New" or "Revised" License
36 stars 10 forks source link

Blosc2 has recently implemented a plugin for OpenHTJ2K #147

Open FrancescAlted opened 1 year ago

FrancescAlted commented 1 year ago

First of all, thanks for your great work in the making of OpenHTJ2K @osamu620 !

This is just to inform that Blosc2 has recently introduced support for using the OpenHTJ2K codec, with codec ID 36. With it, it is possible to use OpenHTJ2K from any Blosc2 application transparently. We are distributing binary wheels of the plugin (only for x86_64 for now) that can be used either from Python or C applications.

This is our first public version, but we plan to continue improving our support for it. For example, we have noted that OpenHTJ2K is not thread-safe, so applications on top of it (like Blosc2) cannot call it from different threads. We have been playing with internal threading support in OpenHTJ2K, but we are not seeing a lot of acceleration. Do we need to use very large images for seeing actual speed-ups?

Thanks again and keep the good work!

osamu620 commented 1 year ago

@FrancescAlted

Thanks for letting me know. I'm happy to hear that OpenHTJ2K is supported in Blosc2.

To achieve actual speed-ups with multi-threading, the internal processing pipeline of OpenHTJ2K should be line-based, which is more cache-friendly but requires lots of work. Now I'm trying to implement the line-based algorithm.

FrancescAlted commented 1 year ago

Great to hear that you are interested in implementing the line-based algorithm! If you need help in one way or another, do not hesitate to tell me about this. Thanks!

FrancescAlted commented 1 year ago

FWIW, here are the slides for the first public presentation of the OpenHTJ2K plugin for Blosc2: https://www.blosc.org/docs/2023-European-HUG-HDF5-Blosc2.pdf As you can see, we are quite excited about your library :-)