Approfondimenti
di Michael J. Hammel traduzione di Antonio Cartelli

Storia del formato grafico di rete esportabile (PNG)

di Greg Roelofs
indent

Antefatto
      La storia del PNG è iniziata nei lontani anni 1977, 1978 allorché due ricercatori israeliani, Jacob Ziv e Abraham Lempel, per primi, hanno pubblicato un paio di lavori su un nuovo tipo di algoritmo di compressione dati a bassa perdita di informazioni; lavori cui ora ci si riferisce come ad "LZ77" ed "LZ78". Alcuni anni dopo, nel 1983, Terry Welch della Sperry (che poco dopo si fonderà con la Burroughs a costituire la Unisys) ha sviluppato una versione molto veloce di LZ78 denominata LZW. Nel contempo Welch ha tentato di brevettare LZW, così come hanno fatto due ricercatori della IBM, Victor Miller e Mark Wegman. Il risultato è stato .., come ci si potrebbe aspettare, che l'USPTO ha brevettato il prodotto del lavoro di entrambi (nel Dicembre 1985 e nel Marzo 1989 rispettivamente).
      Contemporaneamente Compuserve -- specificatamente Bob Berry --, nel 1987, stava lavorando alacremente ad un nuovo formato per immagini compresse, che fosse anche trasportabile su varie piattaforme. Il suo nome era GIF, acronimo per "Graphics Interchange Format" (Formato per l'interscambio grafico) e Berry ed altri si sono appoggiati, con molta faciloneria, ad LZW quale metodo di compressione. Tim Oren, Vice Presidente della Future Technology allora in CompuServe (ora con la Electric Communities), ha scritto: "L'algoritmo LZW è stato preso da una pubblicazione aperta, e senza che sapessimo che la Unisys stava cercando di ottenerne un brevetto. Il brevetto è stato portato alla nostra attenzione, con molto dispiacere, dopo che il GIF era già stato reso pubblico ed era ormai ampiamente in uso". Ci sono svariate attestazioni [1] secondo le quali Unisys risulta essere stata informata dell'accaduto fin dagli inizi del 1989 e che abbia scelto di ignorare tutto considerando il prodotto quale "software puro"; sembra però che i documenti che dimostrano quanto appena asserito siano andati persi. In ogni caso, val la pena ricordare che Unisys si è limitata, per anni, a rincorrere i produttori di hardware -- ed in modo particolare coloro che fabbricavano modem e che implementavano via hardware lo standard V.42bis.
      Un cambiamento radicale è sopravvenuto alla fine del 1994. Che ciò sia dipeso da difficoltà economiche che cominciavano ad incalzare o che sia legato al successo esplosivo del World Wide Web, sta di fatto che Unisys nel 1993 ha iniziato a perseguire aggressivamente i rivenditori di software -- esclusivamente per l'implementazione dell'LZW. Sembra che Compuserve sia stato il suo primo obiettivo principale, il che ha condotto alla stipula di un accordo -- annunciato senza clamori il 28 Dicembre 1994, in piene vacanze natalizie -- che ha consentito di cominciare a raccogliere le royalties dagli autori di software che supportasse il formato GIF. L'onta dell'offesa ha colpito gli utenti Internet la settimana successiva e quello che era allora il newsgroup comp.graphics, volendo usare un eufemismo, se ne andò per farfalle. Come era accaduto in Usenet, la maggior parte della rabbia degli utenti fu inizialmente rivolta innanzitutto contro Compuserve, a causa dell'annuncio fatto, e successivamente contro Unisys, una volta che i dettagli dell'operazione divennero più chiari; ma nel clamore generale passò quasi inosservata la creazione su Internet di un gruppo di lavoro, molto informale, condotto da Thomas Boutell [2]. Il suo obiettivo non era solo quello di progettare un formato alternativo al GIF, ma un suo successore: migliore, più compatto, più trasportabile e, soprattutto, LIBERO.

I Primi giorni (Tutti i primi sette)
      Il primo prototipo di PNG -- allora detto "PBF", da Portable Bitmap Format (formato bitmap esportabile) -- è stato inviato da Tom sui newsggroup comp.graphics, comp.compression e comp.infosystems.www.providers mercoledì, 4 gennaio 1995. Tra le sue caratteristiche vanno annoverate una firma di tre byte, grosse quantità di numeri piuttosto che di nomi, una profondità di pixel al più di 8 bit e nessun metodo di compressione specificato; ma anche a questo primo stadio il prototipo aveva in comune con il PNG di oggi molto più di quanto non avesse con altri formati esistenti.
      Nell'arco di una settimana, anche se non ancora approvata in via definitiva, è stata proposta la stragrande maggioranza delle principali caratteristiche di PNG: il filtraggio delta per una compressione più spinta (Scott Elliott); la compressione deflate (Tom Lane, il gruppo info-ZIP e molti altri); il supporto per immagini a 24 bit (autori vari); il nome PNG stesso (Oliver Fromme); CRC interni (io); gamma chunck (Paul Haeberli) ed il supporto per 48 e 64 bit (Jonathan Shekter). In quella stessa settimana è stata messa in piedi anche la prima mailing-list proto-PNG; Tom rilasciò la seconda versione del prototipo ed io ho mandato sulla lista i risultati di alcuni test che mostravano un miglioramento del 10% nella compressione se il metodo LZW del GIF veniva semplicemente rimpiazzato dall'algoritmo deflate di LZ77. In tabella 1 è riportata, in ordine cronologico, la sequenza dei principali eventi che hanno caratterizzato la storia di PNG.

indent
4 Gen 95 primo prototipo: PBF (Thomas Boutell)
4 Gen 95 filtraggio delta (Scott Elliott)
4 Gen 95 compressione deflate (Tom Lane e altri)
4 Gen 95 supporto per i 24 bit (autori vari)
5 Gen 95 proposta di LZHUF della TeleGrafix (uguale o poco più esteso)
6 Gen 95 il nome PNG (Oliver Fromme)
7 Gen 95 secondo prototipo PBF (Thomas Boutell)
7 Gen 95 primi risultati ZIF (Greg Roelofs)
7 Gen 95 CRC interni (Greg Roelofs)
8 Gen 95 gamma chunk (Paul Haeberli)
8 Gen 95 supporto per 48 e 64 bit (Jonathan Shekter)
9 Gen 95 proposta FGF, implementazione (Jeremy Wohl)
10 Gen 95 prima mailing-list NGF/PBF/proto-PNG (Jeremy Wohl)
15 Gen 95 terzo prototipo PBF (Thomas Boutell)
16 Gen 95 CompuServe annuncia lo sviluppo di GIF24 (Tim Oren)
16 Gen 95 analisi e discussioni disponibili su WWW (Thomas Boutell)
16 Gen 95 quarto prototipo PBF (Thomas Boutell)
23 Gen 95 quinto prototipo: PNG (Thomas Boutell)
24 Gen 95 sesto prototipo PNG (Thomas Boutell)
26 Gen 95 firma definitiva ad 8 byte (Tom Lane)
1 Feb 95 settimo prototipo PNG (Thomas Boutell)
2 Feb 95 schema di interlacciamento Adam7 (Adam Costello)
7 Feb 95 CompuServe annuncia PNG == GIF24 (Tim Oren)
13 Feb 95 ottavo prototipo PNG (Thomas Boutell)
7 Mar 95 nono prototipo PNG (Thomas Boutell)
11 Mar 95 il primo visualizzatore PNG funzionante (Oliver Fromme)
13 Mar 95 le prime immagini corrette PNG inviate su liste (Glenn Randers-Pehrson)
1 Mag 95 rilasciata la pnglib 0.6 (Guy Eric Schalnat)
1 Mag 95 rilasciata la zlib 0.9 (Jean-loup Gailly, Mark Adler)
5 Mag 95 decimo prototipo PNG (Thomas Boutell)
13 Giu 95 La Home Page del PNG (Greg Roelofs)
8 Dic 95 rilasciata la specifica PNG 0.92 come progetto di lavoro W3C
23 Feb 96 rilasciata la specifica PNG 0.95 come progetto Internet IETF
28 Mar 96 deflate e zlib approvate come RFC di Informazione (IESG)
22 Mag 96 deflate e zlib rilasciate come RFC di Informazione (IETF)
1 Lug 96 Rilasciata la specifica PNG 1.0 come Raccomandazione proposta W3C
11 Lug 96 Approvata la specifica PNG 1.0 come RFC di Informazione (IESG)
4 Ago 96 Rilasciata la specifica VRML 2.0 con PNG come prerequisito (VAG)
1 Ott 96 Approvata la specifica PNG 1.0 come Raccomandazione W3C
14 Ott 96 Approvata image/png (IANA)
indent
Tabella 1: sviluppo temporale di PNG

      Ugualmente interessanti sono forse anche alcune caratteristiche proposte e alcuni progetti suggeriti negli ultimi tempi che non sono stati accettati: il formato IFF Amiga; bitmap non compresse o gzippate o incluse all'interno di file Zip; immagini thumbnail e/o supporto per generiche multi-immagini; ordinamento per byte little-endian; set di caratteri Unicode UTF-8 per testi; YUV ed altri schemi di codificatori di immagini andati perduti; e così via. Molti di questi argomenti hanno prodotto una quantità enorme di discussioni -- ad esempio, il principale propositore dell'idea dei file zip sbraita ancora oggi, a due anni di distanza dalla sua proposta.

Andando avanti, Formalismi
      Uno dei punti di forza del gruppo PNG è stata la sua capacità di valutare i pro ed i contro delle varie proposte in maniera razionale (bene, comunque, nella maggioranza dei casi), di raggiungere un certo qual consenso e di passare quindi alla proposta successiva senza soffermarsi indefinitamente su temi "morti". Probabilmente tutto è dipeso dal fatto che il gruppo era relativamente piccolo, ma, ciò nonostante, era costituito, da un manipolo ampio e variegato di esperti in grafica e compressione, tanto che nessuno ha ritenuto di essere stato trattato ingiustamente anche quando è stata presa una decisione che andava contro di lui. (Tutti gli autori del PNG erano uomini e alcuni di loro sono ancora tra noi. Mi pare ci sia uno studio approfondito sull'argomento, da qualche parte ..) Ugualmente importante, però, è stata la figura di Tom Boutell, che, ha tenuto le fila della task force impegnata nel progetto PNG, assumendo il ruolo di un dittatore dal volto paterno -- un po' come Linus Torvalds ha fatto con lo sviluppo del nucleo di Linux. Quando non era possibile trovare il consenso su un qualche tema, la decisione finale spettava a Tom, che risolveva così ogni controversia. (Mi pare che in una o due rare occasioni si sia convinto a tornare sui suoi passi, ribaltando le decisioni prese, ma ciò è accaduto soltanto quando sono emerse nuove informazioni).
      Comunque sia, questo modello di sviluppo ha funzionato: dall'inizio del Febbraio 1995, sono stati prodotti sette prototipi di PNG ed il suo stesso formato è stato messo a punto. (Il nome PNG è stato adottato nel quinto prototipo) Il mese successivo è stato utilizzato, per lo più, per lavorare su dettagli: convenzioni sulla grandezza dei nomi, grandezza e disposizione dei CRC, scelta dei tipi di filtri, ordinamento delle palette, effetti specifici di trasparenza e supporto ai canali alfa, metodi di interlacciamento, ecc. Compuserve è rimasta talmente impressionata dall'esito del progetto che il 7 febbraio ha annunciato che avrebbe supportato il PNG come successore del GIF, in sostituzione del progetto di sviluppo GIF24 cui inizialmente si era ispirata. [3] Dagli inizi di marzo è stato rilasciato il nono prototipo del PNG e le specifiche del formato sono state ufficialmente congelate -- esattamente a due mesi dall'avvio del progetto. Sebbene siano seguiti altri prototipi, essi hanno avuto esclusivamente il compito di fornire dei chiarimenti, raccomandare comportamenti per i codificatori ed i decodificatori, e produrre uno o due tutorial. In verità Glenn Randers-Pehrson ha preso alcuni cosiddetti "paleo-PNG" creati ai tempi del nono prototipo: ebbene, sono ancora oggi leggibili con ogni decodificatore PNG. [4]

Mi scoppia la testa
      Specificare un formato è una cosa, implementarlo è un'altra. Sebbene l'intento originale fosse quello di creare un formato "leggero" -- e, comparato al TIFF o perfino al JPEG, PNG è abbastanza leggero -- anche un insieme di caratteristiche completamente indipendenti può introdurre complicazioni sostanziali. Si consideri, ad esempio, il progressivo formarsi di un'immagine in un browser web. Innanzitutto si ha la semplice decodifica dei dati compressi; e fin qui non ci sono problemi. Poi ogni filtro di linea deve essere invertito per ottenere i dati dell'immagine da visualizzare. Oops, è un'immagine interlacciata: ora i pixel appaiono qui e lì all'interno di blocchi 8x8, per cui devono essere trasformati opportunamente (e, se possibile, bufferizzati). L'immagine ha anche trasparenza ed è sovrapposta ad un'immagine di sfondo, incrementando così la complessità del tutto. Essendoci spinti così lontano non stiamo molto peggio di quanto staremmo con un GIF trasparente e interlacciato; i filtri lineari e gli schemi di interlacciamento 2D sono estensioni abbastanza banali con le quali i programmatori si sono già misurati. Perfino l'aggiunta delle correzioni gamma allo sfondo non crea troppa preoccupazione.
      Ma, un momento, qui non si tratta di semplice trasparenza; abbiamo un canale alfa! E non vogliamo una visualizzazione frammentata -- vorremmo qualcosa che somigliasse molto al metodo progressivo che usa il browser Netscape Navigator. Ora la cosa si fa complicata: ogni blocco di pixel riprodotto ha una certa percentuale dei ricchi pixel in primo piano miscelata con una certa quantità complementare di pixel dello sfondo. E proprio poiché il ricco pixel corrente è al 65% trasparente (o, ancora peggio, completamente opaco) non ha alcun senso che nel blocco ci siano anche gli altri: così dobbiamo ricordarci di tutti i valori dei pixel di sfondo originari fintanto che i pixel in primo piano non sono composti e sovrapposti. Ci si può anche lanciare nell'impresa di riuscire a rendere visibile in maniera accettabile tutto ciò in un display a colori a 8 bit, ma la maggioranza delle teste dei programmatori esploderà.

Fatelo così!
      Alcune delle cose presentate sono risultati di applicazioni (presentazioni o front-end) e non risultati di decodifica PNG (back-end), almeno in generale. Ciò nondimeno una buona libreria PNG dovrà consentire tali applicazioni -- il che vuol dire, per altra via, che dovrà essere abbastanza generale da non introdurre restrizioni indesiderate per i programmatori che vorranno implementarle.
      Non appena è stata rilasciato il nono prototipo molti si sono cimentati nell'impresa di scrivere codificatori e/o decodificatori PNG. Il merito vero e proprio spetta però a tre persone: Jean-loup Gailly e Mark Adler di Info-ZIP (entrambi famosi anche per gzip), che hanno scritto le routine originarie deflate() di Zip e inflate() di UnZip e che, per PNG, le hanno riscritte come una libreria esportabile detta zlib [5]; e Eric Schalnat del gruppo 42, che, da bozze e appunti sparsi ha tratto, quasi interamente da solo, l'implementazione di riferimento libpng (originariamente "pnglib"). [6] La prima versione realmente utilizzabile di queste librerie è stata rilasciata due mesi dopo il nono prototipo, il giorno 1 Maggio 1995. Sebbene entrambe le librerie non contenessero alcune caratteristiche richieste per una piena implementazione, erano sufficientemente complete da poter essere utilizzate in svariate applicazioni freeware. (Il decimo prototipo del PNG è stato reso disponibile quasi contemporaneamente e conteneva diversi chiarimenti, risultato di queste prime implementazioni).

Un balzo in avanti fino ai nostri giorni
      Il passo degli sviluppi successivi è stato ovviamente più lento. Ciò è dipeso in parte dal fatto che, dopo quattro mesi di intenso sviluppo e dozzine di messaggi e-mail giornalieri, ognuno era fuso; in parte dai controlli di Guy sullo sviluppo delle libpng mentre era impegnato in mille altre cose; ed in parte dalla sensazione che PNG era fondamentalmente "realizzato". Quest'ultimo punto è stato enfatizzato da un articolo pubblicato da Compuserve a metà giugno (e da un altro, aggiungerei io, in cui i suoi progettisti si attribuivano la maggior parte del merito per lo sviluppo del PNG stesso, sigh!!).
      In ogni caso i progressi sono continuati. Nel giugno 1995 io ho messo a punto la Home Page del PNG, ora cresciuta a comprendere all'incirca una dozzina di pagine [7]; Kevin Mitchell ha registrato ufficialmente il file ID "PNGf" per Macintosh con la Apple Computer. In Agosto Alexander Lehmann e Willem van Schaik hanno reso disponibili un paio di aggiunte al sistema di manipolazione immagini NetPBM, particolarmente utili per Linux: pnmtopng e pngtopnm versioni 2.0. In dicembre, infine, nel corso della Quarta Conferenza Internazionale sul World Wide Web, il Consorzio WWW (W3C) ha rilasciato la versione 0.92 delle Specifiche PNG come progetto di lavoro per la definizione di uno standard ufficiale.
      Il 1996 ha visto, nel mese di febbraio, la versione 0.95 delle specifiche come progetto Internet dell'IETF (Task Force degli Ingegneri Internet), seguita in luglio dall'approvazione della versione 1.0 come un'Informativa RFC ufficiale da parte dell'IESG (Gruppo Guida degli Ingegneri Internet). Va detto però che la segreteria dell'IETF non ha ancora attribuito, a tutt'oggi, il corrispondente numero RFC, cinque mesi dopo (purtroppo). Il gruppo di progetto VRML (Linguaggio di modellizzazione della realtà virtuale) ai primi di agosto ha adottato PNG come uno dei due formati di immagini che fissano le specifiche di conformità al VRML 2.0. [8] Nel contempo W3C ha portato avanti l'iniziativa del riconoscimento dello stato di Raccomandazioni Proposte per le specifiche e, ai primi di ottobre, quello di vere e proprie Raccomandazioni per le stesse. [9] Infine, a metà ottobre la IANA (Autorità per l'assegnazione dei numeri internet) ha formalmente approvato "image/png" come tipo ufficiale di mezzo internet, insieme ai già presenti image/gif e image/jpeg, non ritenendolo più un formato sperimentale per immagini su Web. Molto di questo lavoro di standardizzazione non sarebbe venuto così presto senza lo sforzo infaticabile di Tom Lane e Glenn Randers-Pehrson, che si sono presi l'incarico affidatogli da Thomas Boutell di produrre tutto il materiale relativo alle specifiche.

Lo stato dell'arte
      A che punto siamo? Il futuro per PNG è roseo, ed il presente non è poi tanto nero. So per certo che ci sono almeno 125 applicazioni riconosciute [10] che già supportano PNG o prevedono di farlo (a tutt'oggi sono la maggioranza); tra quelle disponibili per Linux ci sono:


      I lettori attenti avranno notato l'assenza non secondaria di Netscape Navigator. A dispetto del fatto che Netscape è stata informata fin dall'inizio del progetto PNG e che, almeno in via non ufficiale, ha dato il suo "probabile supporto" al progetto stesso; a dispetto dei benefici arrecati alle applicazioni WWW dalla correzione gamma, dal supporto alfa, e dall'interlacciamento 2D; a dispetto del fatto che il Consorzio WWW, di cui Netscape fa parte, abbia emesso la specifica PNG come sua prima Raccomandazione Ufficiale; a dispetto del requisito di supportare PNG nei visualizzatori VRML 2.0 come lo stesso Live3D plug-in di Netscape; e a dispetto del martellamento continuo dei membri del gruppo PNG e, ancor più della comunità Internet, Netscape ancora oggi "sta considerando" un suo futuro supporto di PNG. Fintanto che Netscape non supporterà PNG in maniera nativa o non verrà spazzata via da Microsoft o da qualcun altro, l'utilità di PNG come formato per immagini su Web sarà notevolmente ridotto.
      D'altro canto, i nostri ragazzi di Microsoft hanno riconosciuto i benefici di PNG e, almeno apparentemente, lo hanno accolto a braccia aperte. Non solo ne hanno fatto il formato nativo per le immagini del pacchetto Office97 per quanto hanno ripetutamente promesso che lo inseriranno in Internet Explorer (in linea teorica sarà disponibile dalla versione beta 4.0 -- staremo a vedere). Supponendo che lo facciano sul serio Netscape è quasi certo che seguirà a ruota. (Visto? Microsoft serve pure a qualcosa di buono!) In quel momento PNG conoscerà un'esplosione di interesse ed uso in WWW.
      Nel frattempo, la visualizzazione di PNG è per ora possibile con Netscape per Linux; anche se non è molto utile. Rasca Gmelch sta lavorando su un plug-in Unix con (tra l'altro) il supporto per PNG. Sebbene si sia ancora ad una versione alfa e sia richiesta la presenza del software convert di ImageMagick per funzionare, non è questo il problema; il vero problema è l'architettura plug-in da cervello malato di Netscape. I plug-in non hanno effetto sui tag IMG dell'HTML: se non c'è supporto nativo per il formato dell'immagine e non è definita alcuna applicazione di aiuto, l'immagine è ignorata senza che sia tenuto in alcun conto il fatto che c'è un plug-in installato che la supporta. Per superare il problema si può usare l'estensione EMBED di Netscape. Ciò significa che chiunque voglia rendere comunque visibili delle immagini su Web non ha alcuna possibilità di farlo: PNG, con IMG, non funziona con Netscape, e PNG, con EMBED, non funziona se non che con Netscape e Microsoft (e questi soltanto se gli utenti hanno installato un plug-in PNG che funzioni).
      Ma il supporto dato da altri cinque o sei browser web per Linux non sono poca cosa e perfino applicazioni fondamentali come Adobe Photoshop ora adottano PNG come formato nativo. Altri ancor si stanno aggregando giorno dopo giorno. Sembra che le cose vadano bene.

Il Futuro
      Non appena VRML decollerà -- il che avverrà quasi certamente, specialmente con l'avvento di acceleratori 3D ad alte prestazioni, realmente economici -- PNG esploderà. (JPEG, l'altro formato di immagini richiesto da VRML 2.0, non supporta la trasparenza). Gli artisti grafici useranno il PNG come un formato intermedio a causa della sua capacità di compressione di immagini a 24 bit (e oltre) con pochissima perdita e come formato finale a causa della sua capacità di memorizzare informazioni su gamma e cromaticità indipendentemente dalla piattaforma utilizzata. Una volta che i browser "altisonanti" supporteranno il PNG in maniera nativa, anche gli utenti lo adotteranno -- per il metodo di interlacciamento 2D, la correzione gamma al di là di ogni piattaforma e per la capacità di realizzare sfere, bottoni ed altri elementi grafici anti-alias, che si presentano bene su ogni tipo e colore di sfondo (non più come "fantasmi", grazie al supporto del canale alfa).
      In effetti l'unico campo di ricerca aperto è il supporto per animazioni e ogni altra applicazione multi-immagine. Col senno del poi si può dire che l'errore principale del gruppo PNG è stato il ritardo nell'estendere PNG ad MNG, il formato "Grafico di Rete Multi-immagine". Come già detto prima, tutti i membri del gruppo sono arrivati fusi a maggio 1995 in quanto quello è stato un anno intenso prima che venisse fuori una seria discussione di MNG. Per quanto possa essere legato al fato (sfortunato), ottobre 1995 è stata la data di uscita delle prime versioni beta di Netscape 2.0 con il supporto per l'animazione, con il che il formato GIF (forse ormai morente) ha conosciuto una poderosa crescita di popolarità
      All'epoca della scrittura di queste righe (metà dicembre 1996), la specifica MNG è arrivata a circa 27 prototipi -- quasi tutti scritti da Glenn Randers-Pehrson -- e sembra essere arrivata al momento della cristallizzazione. Ma MNG viene troppo tardi per le specifiche VRML 2.0 ed a dispetto di alcune caratteristiche formidabili che lo caratterizzano, può darsi che non vengà mai concepita se non che come una risposta PNG ai GIF animati. Chi vivrà vedrà

Alla fine ...
      È sempre difficile per chi è parte in causa fornire un giudizio imparziale su un progetto come PNG; con il passare del tempo si è sicuramente più obiettivi. Mi sembra però che la storia di PNG, un po' come la storia di Linux, rappresentino il meglio di Internet: cooperazione internazionale, sviluppo rapido e produzione di qualcosa che, come un dono di Dio, non solo è utile ma è anche liberamente disponibile per chiunque lo desideri.
      Mah! Forse sono soltanto uno spudorato egocentrico. Decidete voi ...

Ringraziamenti
      Voglio ringraziare Jean-loup Gailly per le sue eccellenti FAQ su comp.compression, che sono state all'origine della maggioranza delle informazioni sui brevetti riportate qui. [11] Un ringraziamento va anche a Mark Adler e JPL, che sono stati i gentili quanto generosi ospiti della Home Page di PNG, di quella di zlib, di quella di Info-ZIP e delle mie pagine personali. (Through no fault of Mark's, that will all come to an end as of the new year; oddly enough, JPL has decided that none of it is particularly relevant to planetary research. Go figure.)

Bibliografia di riferimento
[1] Raymond Gardner, rgardner@teal.csn.org, 8 Jan 1995 23:11:58 GMT, comp.graphics/comp.compression, Message-ID <3eprfu$jqs@news-2.csn.net>. Si veda anche l'articolo di Michael Battilana che analizza la storia della controversia GIF/LZW da un punto di vista legale:
      http://www.cloanto.com/users/mcb/19950127giflzw.html
[2] http://www.boutell.com/boutell/
[3] http://www.w3.org/pub/WWW/Graphics/PNG/CS-950214.html
[4] http://www.rpi.edu/~randeg/paleo_pngs.html
[5] http://quest.jpl.nasa.gov/zlib/
[6] ftp://swrinde.nde.swri.edu/pub/png/src/
[7] http://quest.jpl.nasa.gov/PNG/ (probabilmente spostato su http://www.wco.com/~png/ dall'1 Gennaio 1997)
[8] http://vag.vrml.org/VRML2.0/FINAL/spec/part1/conformance.html
[9] http://www.w3.org/pub/WWW/TR/REC-png.html
[10] http://quest.jpl.nasa.gov/PNG/pngapps.html
[11] http://www.cis.ohio-state.edu/hypertext/faq/usenet/compression-faq/top.html
indent

[ La pagina della Musa ] [ Indice ]


Per l'articolo originale: © 1997 Michael J. Hammel - Pubblicato sul n. 13 della Linux Gazette
Per l'edizione italiana: © 1997 A. Cartelli - Pubblicato sul n. 3 anno I di LGEI a cura del LUGBari