Well, it's more niche, but it's still necessary. For instance, if you write a printer driver you'll need a good dithering algorithm, since you only get pigment on/off (even in CMYK). In fact, for multi-channel dither you do not want a normal error-diffusion algorithm, since it does not give good results for low values of a channel (for instance, rgb(255, 255, 2)).
There appears to be active research on new dithering techniques. I ran across libdither [1] which implements more dithering algorithms that you can imagine.
There appears to be active research on new dithering techniques. I ran across libdither [1] which implements more dithering algorithms that you can imagine.
[1] https://github.com/robertkist/libdither