2018.01.17 02:00 "Re: [Tiff] Strategies for multi-core speedups", by Larry Gritz
Status report: I've implemented this, thanks to Scott Ribe's suggestion of not trying to struggle with libtiff's codec internals, but just calling zlib directly, then TIFFWriteRawStrip (this strategy only works for deflate compression, but that's my common case anyway). The strips' data are compressed in parallel.
I'm getting a 6x improvement in total time for writing large TIFF files.
I've only done scanline (i.e. strip) output so far. I still need to implement it for the case of having lots of tiles ready to write at once. And also need to do similar for the tile and scanline input side of things. But now that I have the blueprint, that should be straightforward.
This is all implemented in OpenImageIO, so as soon as I'm done with this work, anybody who is doing whole-image reads and writes of TIFF files using OIIO rather than libtiff directly will get this speedup without having to do anything extra.