I've been thinking about this a lot lately, and specifically I'm wondering if we couldn't do even better if we had custom file formats specifically for two-bit grayscale images (or heck, even one-bit black-and-white images). For example, the OP is using PNG, but I'm wondering if there would be a material difference if, say, you had a format that didn't assume that you ultimately wanted 3 or 4 bytes per pixel. But maybe compression makes this moot?