STV: A Full-Motion Video Codec for the Atari ST

When porting Command & Conquer to the Atari ST, Jonas Eschenburg faced the challenge of playing Westwood's VQA videos on hardware limited to 16 colors and an 8 MHz CPU. Instead of giving up, he created STV, a custom codec that uses an 8x8 tile codebook, dynamic updates, and a clever encoder to achieve smooth full-motion video. The player stays simple, relying on assembly-optimized tile drawing and DMA audio, while the encoder handles complex tasks like YUV conversion, frequency-domain comparisons, and palette optimization. The result: surprisingly watchable FMV on a 1985 machine.
The idea of FMV on an Atari ST kept creeping into my thoughts until I finally gave in. That is how STV started — less a product requirement than an excuse to squeeze an old CPU the way hackers used to.
- gblargg
I wanted to see how big the example clips encoded down to. Or is this just a technical test to see what it's capable of playing back, not an attempt to optimize the video size?
- ColdStream
Once you see the tile map of this in action, you realize how genius and simple this idea is. You can only update 32 tiles a frame but it can preload tiles in advance of them being displayed provided there is low enough motion and spare space to allocate.
Would love to see something like this ported to similar systems such as Amiga, Mega Drive and Neo Geo. All 68K, all tile based.
Also seeing that gameplay at the end, absolutely wonderful. Would not have figured it was even remotely possible on a system like that, but there it is.
- esafak
> Each 8×8 block is turned into a short DCT (Discrete Cosine Transform) feature vector; distance is measured there instead of raw pixels.
Was this your idea or the agent's? Because it feels peculiar to essentially describe JPEG, modulo the entropy coding, without mentioning its name. It was released in 1992 -- before C+C. Which makes me wonder why Westwood didn't just use JPEG too...
Fun fact, DCT's inventor: https://en.wikipedia.org/wiki/Nasir_Ahmed_(engineer)