Test work for a video encoding using Atari 800-family GTIA grayscale mode on top of text cells. This allows a "block dictionary" of 128 2x8-pixel blocks on an 80x160 grayscale image, at cost of 1840 bytes per full frame or 800 bytes to reuse previous blocks.
Currently converts to grayscale and reuses existing similar blocks as it goes, increasing a similarity threshold (from 0) until the set fits in 128 chars. 'Inverse video' characters should be correctly taken into account. Further step: don't end up stuck between 64 and 128 blocks :D Try to weight decimation by use or something.