Coding 2025-03-31
I kind of took things easy today, so let's instead take some notes.
- Bayer level 3 seems like an extremely good default choice, especially if I mess with the luma or contrast by a few percent.
- Riemersma doesn't seem like much more than a party trick currently; I'll have to implement different error decay generators and see how those do.
- I'm still not sure how I want to encode error diffusion matrices.
- I'm sort of leaning towards PMaps from coordinates to floats. (With validation that the y coordinate is non-negative, and if the y coordinate is zero, then the x coordinate is positive)
- Searching for example code gets me stuff that inlines the logic of selecting different coordinates. This makes sense from an efficiency perspective, probably, but I'm trying to get an idea of how a bunch of different algorithms treat images.
- I'm also seeing something that combines scaling and resampling into a single step, which, I mean, that might help, but I'm not up to thinking about it currently.
- Pillow's Floyd-Steinberg implementation seems to make everything much lighter? Not sure if that's an artifact of the algorithm, or if there's something funky in the implementation.
- I guess I should also be looking into blue noise stuff, if Bayer seems so reliable, but I don't feel like it currently.
I'm going to ponder this for a bit, and wind down. Hopefully I'll get some kind of implementation scraped together in the days to come.
Good night.