Another improvement is to encode the image as the first pixel, and then the difference between each pixel and the last. This works best if the pixels are arranged lightest to darkest, or otherwise organized. Runs of a single color become runs of 0s. Some gradients become runs of 1s or 2s. So, more things can be represented by runs. The disadvantage is that it takes another bit per pixel to encode differences; depending on the image, this technique may or may not be more efficient.