1 Gigabyte en 64 Megabytes



Cada vez la compresión pasa más desapercibida. Con el aumento de los sistemas de capacidad, como disco duros o discos ópticos, se descuida que tal vez haya en algún momento volver a la compresión.

Hoy les quiero dedicar 5 minutos a Angel Studios, ahora RockStar San Diego, una de las empresas que logró un auténtico milagro en el campo de la tecnología. Logró insertar 2 discos cdrom de juego (casi 1 GigaByte, 1200 MBytes siendo papistas) en un cartucho de 512Megabits (64 MegaBytes).

Con el encargo de Capcom, Angel Studios se puso las manos a la cabeza. Había que comprimir casi 15 minutos, es decir, 3 Gb de video "sucio" (sin comprimir) a 25 Megas, para ir bien.

Si no fuera suficiente Nintendo 64 no disponía de un chip dedicado para descomprimir vídeo, por lo cual había que dedicar el CPU a ello. El CPU de Nintendo 64 era comparable aun P-486 @ 100MHz por lo cual, tampoco le podía sobrecargar con un algoritmo complicado o pesado. Una idea era aprovechar el DSP (chip para procesar el sonido) para liberar al CPU de carga, por lo cual el sonido sería procesado a parte del vídeo.

Deciden que usarán como base el algoritmo MPEG-1, ya que su funcionamiento esta asegurado para procesadores poco potentes. A partir de allí aplicarán peripecias como crear bloques de 8-bits o transformar de cromáticas a RGB los colores. Para el sonido se complicaron menos, para su fortuna, Factor 5 (propiedad de lucas arts, también está asociada a nintendo) ya tenia un sistema de compresión perfecto.

Para que el sistema funcionase sin problemas, y como era más o menos habitual en los juegos de Nintendo 64, se desarrolló un sistema operativo para sincronizar toda la consola. Prácticamente todo el código (en C) fue marca de la casa, menos el ya remarcado para el sonido.

Si queréis ampliar información, creo que lo más oportuno es que leáis los artículos que escribieron desde Angel Studios, explicando a todo detalle los problemas, las ideas y los procesos que llevaron adelante un auténtico ejemplo de superación. Los recomiendo muy especialmente a los programadores.

Fuente 1 (post en zonaforo meristation)
Fuente 2 (artículo gamasutra)
Fuente 3 (mirror GIA)