Construir puertas lógicas con el códec de vídeo VP8

Fuentes: Video2NAND: Building Logic Gates From the VP8 Video Codec

El proyecto Video2NAND demuestra que el códec de vídeo VP8 puede usarse como sustrato para simular lógica combinatoria, una idea que hasta ahora se exploraba sobre transistores o silicio. El artículo explica cómo los mecanismos de predicción de bloques del códec —diseñados para comprimir vídeo— se reinterpretan como cables y puertas lógicas.

En VP8 existen tres modos de predicción intra-frame relevantes: H_PRED (horizontal), V_PRED (vertical) y TM_PRED ("True Motion"). Los dos primeros modelan cables que propagan un valor binario —blanco (255) o negro (0)— hacia la derecha o hacia abajo, usando bloques cuyo contenido se copia del píxel izquierdo o superior. El modo TM_PRED, en cambio, calcula cada píxel como la suma del valor superior y el izquierdo menos la diagonal superior-izquierda, lo que permite construir puertas funcionales.

Con estas primitivas, el autor describe cómo montar una puerta NOT fijando una fila a 255 y una columna a 0 (o viceversa), de modo que el bloque TM_PRED produce 255 − entrada. Para la puerta AND basta con fijar la diagonal a 255 y conectar las dos entradas a la fila superior y la columna izquierda: el resultado coincide con la tabla de verdad del AND. Combinando NOT y AND se obtiene NAND, un conjunto funcionalmente completo capaz de expresar cualquier circuito combinatorio.

El texto trabaja exclusivamente con key-frames para mantener la analogía entre lógica combinatoria (sin memoria) y predicción intra-frame, dejando los inter-frames para una posible extensión a lógica secuencial. Como líneas futuras plantea reducir el tamaño de los "gadgets", crear una herramienta de síntesis que traduzca Verilog a frames VP8, y explorar máquinas raras ("weird machines") construidas sobre códecs.