Volver al blog
Informática

El PNG lo escribió en nueve semanas gente enfadada

1 de marzo de 2026 9 min de lectura

Ilustración generada con GPT Image.
Ilustración generada con GPT Image.

El PNG casi siempre se cuenta como una mejora técnica del GIF: más de 256 colores, transparencia por canal alfa, una compresión sensiblemente mejor. Todo eso es cierto, y todo eso es la consecuencia, no la causa. El formato se diseñó en poco más de dos meses, a partir del 4 de enero de 1995, por un grupo informal reunido en Usenet, por un motivo que no tiene nada de técnico: seis días antes, escribir un programa capaz de producir GIF se había convertido en una operación sujeta a canon. El formato tenía siete años y nadie, ni en CompuServe ni fuera de allí, había comprobado a quién pertenecía el algoritmo de compresión colocado en el centro de la especificación.

Un algoritmo publicado, una patente presentada

La historia empieza con dos artículos de Jacob Ziv y Abraham Lempel en las IEEE Transactions on Information Theory: «A universal algorithm for sequential data compression», vol. 23, n.º 3, mayo de 1977, pp. 337 a 343, y después «Compression of individual sequences via variable-rate coding», vol. 24, n.º 5, septiembre de 1978, pp. 530 a 536. Esas dos familias, LZ77 y LZ78, son públicas.

Terry A. Welch, ingeniero de Sperry Corporation, saca de ellas una variante rápida de LZ78. Presenta la solicitud de patente US 06/505,638 el 20 de junio de 1983. Al año siguiente describe su método en una revista de gran difusión: «A Technique for High-Performance Data Compression», Computer, vol. 17, n.º 6, junio de 1984, pp. 8 a 19. La patente US 4.558.302, «High speed data compression and decompression apparatus and method», se concede el 10 de diciembre de 1985 a nombre de Sperry Corp. Sperry se fusiona después con Burroughs para formar Unisys.

Un método vecino es objeto de una segunda patente, presentada por dos investigadores de IBM, Victor S. Miller y Mark N. Wegman: US 4.814.746, «Data compression method», concedida el 21 de marzo de 1989 y vinculada a una solicitud inicial del 1 de junio de 1983, es decir, diecinueve días antes que la de Welch. Dos títulos para una misma familia de ideas: esquivar uno no garantizaba escapar del otro.

Entretanto, el 15 de junio de 1987, CompuServe publica la especificación del Graphics Interchange Format. El documento lleva una frase que todo desarrollador de la época lee como una autorización: «While this document is copyrighted, the information contained within is made available for use in computer software without royalties, or licensing restrictions». Tim Oren, vicepresidente de Future Technology de CompuServe, explicará más tarde el razonamiento: «The LZW algorithm was incorporated from an open publication, and without knowledge that Unisys was pursuing a patent». El algoritmo se había encontrado en una revista, lo que nunca ha significado libre de derechos.

El 29 de diciembre de 1994

Unisys avisa a CompuServe en enero de 1993. Las dos empresas negocian un año y medio y firman un acuerdo fechado el 21 de junio de 1994, citado en la cláusula 10.1 del contrato que vendrá después. Según la declaración pública de Unisys, CompuServe le paga el 1 % del precio medio de venta de su software, «approximately 11 cents for each copy sold and connected to its information service», y dispone de seis meses para aplicar el acuerdo, plazo prorrogado un mes a petición suya.

CompuServe fecha su anuncio a los desarrolladores el 29 de diciembre de 1994, entre Navidad y Año Nuevo (algunos relatos se quedan con el 28). Las condiciones que se les ofrecen no son las que obtuvo CompuServe: 1 dólar de derecho de entrada y, luego, por copia registrada, la cantidad más alta entre el 1,5 % del precio de venta y 0,15 dólares, abonados a CompuServe. Inscripción antes del 31 de enero de 1995, a cambio de lo cual Unisys renuncia a reclamar cánones por el uso pasado.

El detalle que prende la mecha no es la tarifa, es el perímetro. La cláusula 11.2 define el «Field of Use» como los programas «used by subscribers to the CompuServe Information Service to access the CompuServe Information Service». La cláusula 1.5 prohíbe al desarrollador entregar su producto a un cliente que no se comprometa a utilizarlo principalmente para acceder a CompuServe. La cláusula 10.7 le prohíbe divulgar los términos del contrato. El contrato impone además una mención legal en el producto o en su documentación, en la que el nombre del titular de la patente aparece mal escrito: «LZW compression and decompression methods are licensed under Unysis Corporation's U.S. Patent 4,558,302 and equivalent foreign patents». En el texto que circuló, la errata vuelve ocho veces, frente a tres grafías correctas.

La League for Programming Freedom resume la situación en una frase: «It turns out that the license being offered today is only for Compuserve users». Un desarrollador que escribe un codificador GIF para la web, y no para CompuServe, no tiene nada que firmar. Tampoco tiene licencia.

Nueve semanas en una lista de correo

El 4 de enero de 1995, Thomas Boutell publica en comp.graphics, comp.compression y comp.infosystems.www.providers el borrador de un formato al que llama PBF, por Portable Bitmap Format. Tres bytes de firma, números de chunk en lugar de nombres, 8 bits de profundidad máxima, ningún método de compresión fijado.

Lo que sigue parece un trabajo de normalización pasado por un compresor. Ese mismo día: filtrado delta propuesto por Scott Elliott y Mark Adler, compresión deflate por Tom Lane y el equipo de Info-ZIP, soporte de 24 bits. El 6 de enero, Oliver Fromme propone el nombre PNG. El 7 de enero, borrador 2, CRC internos, y Greg Roelofs publica un resultado de prueba: sustituir sin más el LZW del GIF por deflate mejora la compresión un 10 %. El 8 de enero, chunk de gamma por Paul Haeberli, soporte de 48 y 64 bits por Jonathan Shekter. El 10 de enero, Jeremy Wohl monta la primera lista de correo.

CompuServe anuncia el 16 de enero un proyecto propio, GIF24. El borrador 5, del 23 de enero, adopta el nombre PNG. Adam Costello propone su esquema de entrelazado Adam7 el 2 de febrero. El 7 de febrero, CompuServe se suma y presenta el PNG como el sucesor designado del GIF, en lugar de su propio GIF24. El borrador 9 sale el 7 de marzo de 1995 y la especificación queda congelada, poco más de dos meses después del primer mensaje: los borradores siguientes solo aportarán aclaraciones. Las bibliotecas de referencia llegan el 1 de mayo de 1995, zlib 0.9 de Jean-loup Gailly y Mark Adler, pnglib 0.6 de Guy Eric Schalnat.

La normalización lleva más tiempo que el diseño. Versión 0.92 como Working Draft del W3C el 8 de diciembre de 1995, recomendación del W3C el 1 de octubre de 1996, tipo de medio image/png registrado por la IANA el 14 de octubre de 1996, publicación como RFC 2083 informativa, fechada en marzo de 1997. El resumen de la RFC no oculta el motivo: «PNG provides a patent-free replacement for GIF». El mismo documento precisa, en su introducción, que el nombre se pronuncia «ping».

Unisys reescribe sus propios comunicados

El comunicado de Unisys de enero de 1995 contenía una exención: «Unisys does not require licensing, or fees to be paid, for non-commercial, non-profit GIF-based applications», extendida explícitamente a las ofertas de Internet «including "Freeware"». A finales del verano de 1996, esos pasajes habían desaparecido de la web de Unisys, sustituidos por un texto que justifica el cambio: «As a result of both this extensive licensing and changes in the use and marketing of GIF and other LZW-based products, Unisys has had to adjust its licensing policies to reflect these changes and the needs of existing and future licensees».

En 1999, la empresa ofrece a los responsables de sitios cuyas imágenes se fabricaron con software sin licencia una licencia a tanto alzado de 5.000 dólares, y su posición declarada ya no deja exención alguna: «In all cases, a written license agreement or statement signed by an authorized Unisys representative is required from Unisys for all use, sale or distribution of any software (including so-called "freeware") and/or hardware providing LZW conversion capability». Slashdot titula el 31 de agosto de 1999 «Unisys Not Suing (most) Webmasters for Using GIFs», donde Mark Starr, General Patent and Technology Counsel de Unisys, fija la regla: «if the GIFs on your Web site were created with software that is licensed by Unisys, you are fine».

La réplica adopta una forma física. El viernes 5 de noviembre de 1999, la League for Programming Freedom organiza el Burn All GIFs Day. Varios desarrolladores se concentran ante las oficinas californianas de Unisys, con la consigna de quemar impresiones en papel de archivos GIF, y la prensa especializada describe la operación ese mismo día; las fotos de llamas reales que los organizadores difundirán luego proceden, en cambio, de una concentración canadiense. Mark Starr resumirá el asunto en The Industry Standard del 25 de abril de 2000: «They want everything to be free and let's all be friends. But fortunately, this is not the American way».

La patente estadounidense expira el 20 de junio de 2003. Las homólogas europeas caen el 18 de junio de 2004, la japonesa el 20 de junio de 2004, la canadiense el 7 de julio de 2004. La patente de IBM dura más: los datos de la USPTO recogidos por Google Patents fijan la expiración el 21 de marzo de 2006.

Por qué el GIF sobrevivió a su propia patente

El PNG ganó la imagen fija y perdió el resto, por una razón inscrita en su propia especificación. Sección 12.3 de la RFC 2083: «PNG also does not support multiple images in one file. This restriction is a reflection of the reality that many applications do not need and will not support multiple images per file». La elección es deliberada, y la sección 8.4 remite un eventual formato multiimagen a una especificación aparte, con una firma distinta.

Y es justo en ese momento cuando los navegadores empiezan a animar los GIF. La capacidad dormía en la especificación GIF89a desde 1989; Netscape Navigator 2.0, cuya primera beta sale en septiembre de 1995, es el primero en reproducir esas imágenes en bucle, y los demás siguen. El formato que debía morir gana un uso que su sustituto había descartado por principio, y ese uso le vale una segunda vida en la web de finales de los noventa. El formato multiimagen prometido, MNG, no alcanza la versión 1.0 hasta enero de 2001 y solo lo recogerá un puñado de aplicaciones; el APNG que le sucede, escrito en Mozilla en 2004 y rechazado por el grupo PNG en 2007, no lo leerá Chrome hasta 2017.

El resultado es una doble supervivencia. El PNG se convirtió en el formato por defecto de todo lo que no se mueve, y el GIF siguió su carrera en el único terreno que la RFC 2083 le había dejado. Cuando la patente expiró en 2003, la causa jurídica desapareció del relato y solo quedó el efecto: un formato técnicamente superior, del que se olvida que lo escribió en nueve semanas gente enfadada.

¿Un proyecto del mismo estilo?

Diseño y despliego productos como este. Hablemos.

Hablemos