Anatomy of an Internet Working Group
What would become known as the ``PNG Group'' or ``PNG Development Group''
began as many such groups do--as a collection of participants in a
Usenet newsgroup. When the discussion became both more detailed
and considerably more verbose, it became a mailing list with an associated CompuServe
forum. Tom Boutell posted the very first PNG draft--then known as ``PBF,''
for Portable Bitmap Format--to comp.graphics,[50]
comp.compression, and
comp.infosystems.www.providers on
Wednesday, 4 January 1995. It had a 3-byte signature, chunk numbers
rather than chunk names, a maximum pixel depth of 8 bits, and no specified
compression method, but even at that stage it had more in common with today's
PNG than with any other existing format.
Within one week, most of the major features of PNG had been proposed, though
by no means yet accepted: delta filtering for improved compression
(Scott Elliott and
Mark Adler),
deflate compression (Tom Lane,
the Info-ZIP Group and many others),
24-bit support (many folks),
the PNG name itself (Oliver Fromme),
internal CRCs (Greg Roelofs),
gamma chunk (Paul Haeberli),
and 48- and 64-bit support (Jonathan Shekter). That week also saw the
first proto-PNG mailing list set up, Tom Boutell's release of the second draft
of the specification, and Greg's posting of some test results that showed
a 10% improvement in compression if GIF's LZW method were simply replaced
with the deflate (LZ77) algorithm.
One of the real strengths of the PNG group was its ability to weigh the
pros and cons of various issues in a (mostly) rational manner, reach some
sort of consensus, and then move on to the next issue without prolonging
discussion on ``dead'' topics indefinitely. In part this was probably due
to the fact that the group was relatively small, yet possessed of a
sufficiently broad range of graphics and compression expertise that no one
felt unduly shut out when a decision went against him.[51]
In part it was also due to a frequently updated ``scorecard,'' which listed
the accepted and rejected features and summarized any issues that were
still undecided.
But the most important factor in the group's progress was the position of
Benevolent Dictator, held by Tom Boutell. As with the very successful Linux
development model, in which Linus Torvalds is trusted with the
final say on anything having to do with the Linux kernel, so Tom, as
the initiating force behind the PNG project, was granted this power. When
consensus was impossible, Tom would make a decision, and that would settle
the matter. On one or two rare occasions he might
later have been persuaded
to reverse the decision, but this generally happened only if new information
came to light.
In any case, the development model worked: by the beginning of February
1995, seven drafts had been produced, and the PNG format was settling
down. (The PNG name was adopted in Draft 5, after a great deal of fuss;
GIF's indeterminate pronunciation[52]
was the prime motivating factor, but the allure of an unofficial
recursive acronym--PNG's Not GIF--was what decided the matter.)
The next month was mainly spent working out the details: chunk-naming
conventions, CRC size and placement, choice of filter types, palette
ordering, specific flavors of transparency and alpha-channel support,
interlace method, and so on. CompuServe was impressed enough by the
design that on February 7, 1995, they announced support for PNG as the
designated successor to GIF, supplanting what they had initially
referred to as the GIF24 development project.
By the beginning of March, PNG Draft 9 was released and the
specification was officially frozen--just over two months from its
inception. Although further drafts followed, they merely added
clarifications, some recommended behaviors for encoders and decoders,
and a tutorial or two. Indeed, Glenn Randers-Pehrson has kept some
so-called ``paleo PNGs'' that were created at the time of Draft 9;
they are still readable by any PNG decoder today.
Table 7-1 is a time line listing many of the major events in PNG's history.
Date |
|
Event |
4 Jan 1995 |
|
PBF Draft 1 (Thomas Boutell) |
4 Jan 1995 |
|
Delta filtering (Scott Elliott, Mark Adler) |
4 Jan 1995 |
|
Deflate compression (Tom Lane and others) |
4 Jan 1995 |
|
24-bit support (many) |
5 Jan 1995 |
|
TeleGrafix LZHUF proposal |
6 Jan 1995 |
|
PNG name (Oliver Fromme) |
7 Jan 1995 |
|
PBF Draft 2 (Thomas Boutell) |
7 Jan 1995 |
|
ZIF early results (Greg Roelofs) |
7 Jan 1995 |
|
Internal CRC(s) (Greg Roelofs) |
8 Jan 1995 |
|
Gamma chunk (Paul Haeberli) |
8 Jan 1995 |
|
48-, 64-bit support (Jonathan Shekter) |
9 Jan 1995 |
|
FGF proposal, implementation (Jeremy Wohl) |
10 Jan 1995 |
|
First NGF/PBF/proto-PNG mailing list (Jeremy Wohl) |
15 Jan 1995 |
|
PBF Draft 3 (Thomas Boutell) |
16 Jan 1995 |
|
CompuServe announces GIF24 development (Tim Oren) |
16 Jan 1995 |
|
Spec available on WWW (Thomas Boutell) |
16 Jan 1995 |
|
PBF Draft 4 (Thomas Boutell) |
23 Jan 1995 |
|
PNG Draft 5 (Thomas Boutell) |
24 Jan 1995 |
|
PNG Draft 6 (Thomas Boutell) |
26 Jan 1995 |
|
Final 8-byte signature (Tom Lane) |
1 Feb 1995 |
|
PNG Draft 7 (Thomas Boutell) |
2 Feb 1995 |
|
Adam7 interlacing scheme (Adam Costello) |
7 Feb 1995 |
|
CompuServe drops GIF24 in favor of PNG (Tim Oren) |
13 Feb 1995 |
|
PNG Draft 8 (Thomas Boutell) |
7 Mar 1995 |
|
PNG Draft 9 (Thomas Boutell) |
11 Mar 1995 |
|
First working PNG viewer (Oliver Fromme) |
13 Mar 1995 |
|
First valid PNG images posted (Glenn Randers-Pehrson) |
1 May 1995 |
|
pnglib 0.6 released (Guy Eric Schalnat) |
1 May 1995 |
|
zlib 0.9 released (Jean-loup Gailly, Mark Adler) |
5 May 1995 |
|
PNG Draft 10 (Thomas Boutell) |
13 Jun 1995 |
|
PNG web site (Greg Roelofs) |
27 Jul 1995 |
|
NCSA X Mosaic 2.7b1 with native PNG support (Dan Pape) |
20 Sep 1995 |
|
Arena 0.98b with native PNG support (Dave Beckett) |
8 Dec 1995 |
|
PNG spec 0.92 released as W3C Working Draft |
23 Feb 1996 |
|
PNG spec 0.95 released as IETF Internet Draft |
28 Mar 1996 |
|
Deflate and zlib approved as Informational RFCs (IESG) |
22 May 1996 |
|
Deflate and zlib released as Informational RFCs (IETF) |
17 Jun 1996 |
|
libpng 0.89c released (Andreas Dilger) |
1 Jul 1996 |
|
PNG spec 1.0 released as W3C Proposed Recommendation |
11 Jul 1996 |
|
PNG spec 1.0 approved as Informational RFC (IESG) |
24 Jul 1996 |
|
zlib 1.0.4 released (Jean-loup Gailly, Mark Adler) |
4 Aug 1996 |
|
VRML 2.0 spec released with PNG as requirement (VAG) |
1 Oct 1996 |
|
PNG spec 1.0 approved as W3C Recommendation |
14 Oct 1996 |
|
image/png approved (IANA) |
6 Nov 1996 |
|
sRGB chunk registered (PNG Development Group) |
9 Dec 1996 |
|
sPLT chunk registered (PNG Development Group) |
15 Jan 1997 |
|
PNG spec 1.0 released as Informational RFC 2083 (IETF) |
28 Jan 1997 |
|
pCAL chunk registered (PNG Development Group) |
5 Apr 1997 |
|
libpng 0.95b released (Andreas Dilger) |
1 Oct 1997 |
|
Internet Explorer 4.0 with native PNG support (Microsoft) |
11 Nov 1997 |
|
Navigator 4.04 with native PNG support (Netscape) |
28 Feb 1998 |
|
MHEG-5 UK profile for digital TV released (UK DTG) |
9 Mar 1998 |
|
libpng 1.0 released (Glenn Randers-Pehrson) |
9 Jul 1998 |
|
zlib 1.1.3 released (Jean-loup Gailly, Mark Adler) |
17 Aug 1998 |
|
iCCP chunk registered (PNG Development Group) |
23 Oct 1998 |
|
PNG spec 1.1 approved (PNG Development Group) |
21 Dec 1998 |
|
Opera 3.51 with native PNG support (Opera Software) |
31 Dec 1998 |
|
PNG spec 1.1 released (PNG Development Group) |
14 Jan 1999 |
|
libpng 1.0.3 released (Glenn Randers-Pehrson) |
9 Feb 1999 |
|
iTXt chunk registered (PNG Development Group) |
22 Jun 1999 |
|
PNG: The Definitive Guide published |
|
Perhaps equally interesting are some of the proposed features and design
suggestions that ultimately were not accepted: the Amiga IFF format;
uncompressed bitmaps, either gzip'd or stored inside zipfiles; thumbnail
images and/or generic multi-image support; ``little-endian''[53]
byte order; Unicode UTF-8 character set for text; YUV and other lossy
(nonlossless) image-encoding schemes; vector graphics; and so forth. Many
of these topics produced an amazing amount of discussion--in fact, the main
proponent of the zipfile idea was still arguing about it more than two years
later.
|