3.5 PNG. Portable Network Graphics

Cf.

This is pronounced ``ping''. Colors can be coded up to 6*8=48 bits. It uses (non-patented) LZ77 compression.

From png-1.2-pdg.html:

File Structure:
Optional Chunks:

About the motivation for introducing this new format:

From png-1.2-pdg.html:
We considered numerous existing formats before deciding to develop PNG. None could meet the requirements that we felt were important for PNG.

GIF is no longer suitable as a universal standard because of legal entanglements. Although just replacing GIF's compression method would avoid that problem, GIF does not support truecolor images, alpha channels, or gamma correction. The spec has more subtle problems too. Only a small subset of the GIF89 spec is actually portable across a variety of implementations, but there is no codification of the most portable part of the spec.

TIFF (the Tagged Image File Format) is far too complex to meet our goals of simplicity and interchangeability. Defining a TIFF subset would meet that objection, but would frustrate users making the reasonable assumption that a file saved as TIFF from their existing software would load into a program supporting our flavor of TIFF. Furthermore, TIFF is not designed for stream processing, has no provision for progressive display, and does not currently provide any good, legally unencumbered, lossless compression method.

IFF has also been suggested, but is not suitable in detail: available image representations are too machine-specific or not adequately compressed. The overall chunk structure of IFF is a useful concept that PNG has liberally borrowed from, but we did not attempt to be bit-for-bit compatible with IFF chunk structure. Again this is due to detailed issues, notably the fact that IFF FORMs are not designed to be serially writable.

Lossless JPEG is not suitable because it does not provide for the storage of indexed-color images. Furthermore, its lossless truecolor compression is often inferior to that of PNG.

From png-1.2-pdg.html:
Deflate/Inflate Compression

PNG compression method 0 (the only compression method presently defined for PNG) specifies deflate/ inflate compression with a sliding window of at most 32768 bytes. Deflate compression is an LZ77 derivative used in zip, gzip, pkzip, and related programs. Extensive research has been done supporting its patent-free status. Portable C implementations are freely available. Deflate-compressed datastreams within PNG are stored in the "zlib" format, ...

Andreas Kriegl 2003-07-23