How about a filter that takes ordinary images, but turns them into low-light photos? Or just turns them into grainy photos? The grain can then be shifted around for purposes of the encoding.
I was actually thinking about this last night as a means of hiding text or pictures.
I would just round each pixel's R, G, and B values off to either even or odd. Even stands for 0, odd for 1. That gives you three bits per pixel and hopefully would be very hard to detect visually with, for example, a nature photograph.
Then you just encode another image in 8-tone grayscale at the same size. That's what I was after, I haven't done the calculation for how large an image you'd need to encode real files.