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

Parallelize decoding #119

Closed
chrstphrbrns opened this issue Oct 2, 2023 · 1 comment · Fixed by #127
Closed

Parallelize decoding #119

chrstphrbrns opened this issue Oct 2, 2023 · 1 comment · Fixed by #127
Labels
enhancement New feature or request performance

Comments

@chrstphrbrns
Copy link
Contributor

Parallelizing decoding is straight-forward with TIFFs since they are composed of separately-encoded strips or tiles

One might say this should be done at the client/file level, but for large files it may be convenient to have it done at the strip level, especially in an interactive context

Here are results I get for a variety of LZW-compressed images--from tiny to huge, for white noise and solid color--showing a win for all but the smallest, simplest images

white noise

serial (s) parallel (s)
25.06848 3.21034
2.06287 0.30021
0.27048 0.07222
0.06873 0.02438
0.00174 0.00331

solid color

serial (s) parallel (s)
1.35969 0.88756
0.08941 0.05104
0.00777 0.01789
0.00193 0.00331
0.00012 0.00023
@tlnagy tlnagy added enhancement New feature or request performance labels Oct 2, 2023
@tlnagy
Copy link
Owner

tlnagy commented Oct 2, 2023

💯 This would be great to have, it would potentially resolve #19 as well. I agree that the TIFF format lends itself nicely to parallelization. I just haven't had the bandwidth to tackle it, but would review any PR if you want to tackle it (looks like you might have a first draft already?)

The small TIFF issue could be fixed with some simple logic to parallelize if an image above a certain size/# of strips/etc

This was referenced Oct 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request performance
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants