Double the dimensions of the image, placing the original pixels at the (even, even) coordinates. Interpolate the (odd, odd)-coordinate pixels from the 4 diagonal neighbors. Then, interpolate the (odd, even) and (even, odd) pixels (a checkerboard) from the orthogonal neighbors. Repeat, doubling the dimensions again.
Here are some experiments generating synthetic noise starting from a random black-and-white array and random gray scale array. It is also possible to start from the checkerboard stage.
Eventually gamma matters, but not taken into account for this.
Applying pnmdepth 2 or 3 yields abstract art.