STV: un códec de video para Atari ST que hace realidad el FMV en 16 colores
STV: A full-motion video codec for the Atari ST

Jonas Eschenburg, conocido por portar DOOM al Atari ST, ha creado STV, un códec de video diseñado para reproducir cutscenes en esta máquina de 1985. Inspirado en el formato VQA de Westwood, STV usa un codebook de tiles 8×8 y una técnica de skip masks para lograr 15 fps en un 8 MHz. El reproductor es simple, mientras que el codificador (que corre en un host moderno) se encarga de la complejidad: trabaja en YUV, usa DCT para comparar tiles, y mantiene un codebook dinámico con actualizaciones prioritarias. El audio se reproduce como PCM de 12.5 kHz sin transcodificar. El autor presenta versiones de los tráilers de Red Alert y Blade Runner como demostración, y el port de Command & Conquer está disponible en itch.io.
La idea de FMV en un Atari ST seguía colándose en mis pensamientos hasta que finalmente cedí.
- TapamN
Hay un reproductor de FMV para la Sega Master System de 8 bits (https://github.com/bravesoftdz/tiler), que comprime a un número fijo de tiles actualizados dinámicamente. El códec del artículo y Tiler parecen muy similares, y Tiler también aprovecha la capacidad de la SMS de voltear tiles horizontal o verticalmente.
Una versión de Tiler con mayores especificaciones está disponible como TileMotion, que tiene una demo en JavaScript que decodifica video 1080p por software aquí: https://gligli.github.io/tilemotion/demo/
- ColdStream
Una vez que ves el tile map de esto en acción, te das cuenta de lo genial y simple que es la idea. Solo puedes actualizar 32 tiles por frame, pero puede precargar tiles con anticipación a que se muestren, siempre que haya suficiente poco movimiento y espacio libre para asignar.
Me encantaría ver algo así portado a sistemas similares como Amiga, Mega Drive y Neo Geo. Todos son 68K, todos basados en tiles.
Además, ver esa jugabilidad al final es absolutamente maravilloso. No habría imaginado que fuera remotamente posible en un sistema así, pero ahí está.
- jaen
Elegir bloques de 8×8 es muy probablemente altamente subóptimo en cuanto a la calidad del códec.
El punto de los tiles de 4×2 es exactamente evitar los artefactos de bloque de la cuantización vectorial (visibles en el artículo).
Tiles más grandes aumentan el error promedio y la entropía debido a cómo funciona la VQ: intenta encontrar bloques que se parezcan entre sí y luego codifica todos los bloques similares referenciando un solo tile (generalmente eligiendo el "promedio" o la "moda" de los bloques).
A medida que los tiles crecen, la probabilidad de encontrar bloques muy similares obviamente disminuye (y la desviación del tile representativo aumenta).
Reducir una de las dimensiones probablemente esté mejor posicionado en la frontera calidad-velocidad.