Error diffusion dithering is inherently sequential. But it could be parallelized when multiple images are given as input, by dithering multiple images at once. It would require a large refactor.
- Error channel for passing errors up to be handled
- Collect open files somewhere for closing