MNG and PNJ: Status Report 19980804
MNG: A Multiple-Image Format in the PNG Family
and
PNJ: Portable Network JPEG Format
The Portable Network Graphics (PNG) [1] format for bit-mapped images was
approved in October 1996 by the World Wide Web Consortium (W3C) as a W3C
Recommendation and has also been published as RFC-2083 [2]. MNG
("Multiple-image Network Graphics") and PNJ ("Portable Network JPEG") are
proposed additions to the PNG family, that are now being designed by the PNG
developers [3]. MNG is for storing and transmitting multiple-image
animations and composite frames, and PNJ is a MNG sub-format for
encapsulating JPEG images, with alpha-channel transparency, in a format
usable by MNG.
Because the images making up a MNG are in PNG and PNJ format, MNG shares the
good features of PNG:
* It is unencumbered by patents.
* It is streamable.
* It has excellent, lossless compression.
* It stores up to 16 bits per channel.
* It provides transparency and an alpha channel.
* It provides platform-independent rendition of colors by inclusion of
gamma and chromaticity information.
* It provides early detection of common file transmission errors and
robust detection of file corruption.
* Single-image GIF ("Graphical Interchange Format") files can be
losslessly converted to PNG.
In addition,
* It provides animation with loops and variable interframe delays.
* It allows composition of frames containing multiple images.
* It facilitates the use of images as "sprites."
* It capitalizes on frame-to-frame similarities to reduce the amount of
data that must be included in the datastream.
* It provides "restart" points at which an animation can be resumed in
case of data loss or corruption.
* A "frame priority" chunk allows authors to indicate which frame should
be displayed by single-image viewers, and a subset of the frames that
should be displayed by slow viewers.
* Multiple-image GIF files can be losslessly converted to MNG.
* It includes a lossy sub-format that provides JPEG with alpha.
* It is complementary to MPEG and does not attempt to replace MPEG for
lossy storage of video.
A Simple MNG Datastream
The MNG format uses the same chunk structure (length, name, data, check
value) as that used by PNG. The simplest form of MNG is an 8-byte MNG file
signature, a MNG header chunk (MHDR), plus a series of one or more PNG or
PNJ datastreams (less their 8-byte signatures), followed by a MEND chunk.
MNG is more powerful than that, however. It is frequently true that the
images will be similar, and data from the first image can be reused in
constructing the second to conserve on the amount of data that must be
stored or transmitted. In this example, the palette and the gamma and
chromaticity data from the first image are reused in the second image:
138 M N G CR LF 26 LF # MNG 8-byte signature
MHDR maxwidth maxheight ... # MNG Header chunk
DEFI 1 visible concrete # MNG Define image chunk
IHDR width height ... # PNG Header chunk
gAMA 50000 # PNG Gamma chunk
cHRM ... # PNG Chromaticity chunk
PLTE ... # PNG Palette
IDAT ... # PNG Pixel data
IEND # End of first PNG datastream
DHDR 1 png replace width ht # Delta-PNG header
IDAT ... # Delta-PNG pixels
DEND # End of Delta-PNG
MEND # End of MNG datastream
When only a smaller rectangle within the second image has pixels that are
different from those in the first image, the DHDR chunk can specify that
only a smaller rectangle of pixels (sometimes called a "change box") will be
transmitted. Whether the pixels for the full image or for a smaller
rectangle are changed, the data can be presented as new values that replace
the old ones or as deltas (differences) from the corresponding pixels in the
previous image. Usually the data in delta form is much more compressible.
Several movies of finite-element calculational results by the U. S. Army
Research Laboratory required only about a quarter of the file space when
converted from a simple series of PNGs to delta-encoded PNGs.
It is possible to change just the alpha samples in the image, or in selected
parts of it, to fade an image in or out against a background image.
Further dramatic savings in the size of the datastream can be achieved when
an image or a portion of one is merely relocated. MNG provides a MOVE chunk
in which the new coordinates of the image are transmitted instead of having
to retransmit the entire image. A CLIP chunk is also available, to make it
possible to show only a portion of a previously transmitted image. The MOVE
and CLIP chunks can be used for scrolling or panning across an image that is
larger than the display area.
Loops
MNG has a simple loop structure that can be used for repeating images. In
this example, five images are defined and displayed in order 1-2-3-4-5 and
then played ten times in order 4-3-2-1- 2-3-4-5:
138 M N G CR LF 26 LF # MNG 8-byte signature
MHDR maxwidth maxheight ... # MNG Header Chunk
IHDR width height ... # PNG Header Chunk
DHDR 1 ... PLTE ... IDAT ... IEND # Define Image 1
CLON 1 2 DHDR 2 1 1 IDAT ... IEND # Define Image 2
CLON 2 3 DHDR 3 1 1 IDAT ... IEND # Define Image 3
CLON 3 4 DHDR 4 1 1 IDAT ... IEND # Define Image 4
CLON 4 5 DHDR 5 1 1 IDAT ... IEND # Define Image 5
LOOP 0 0 10 # Begin Loop
SHOW 4 2 SHOW 1 5 # Show images 4-2, 1-5
ENDL 0 # End Loop
MEND # End MNG
Composite Frames and Sprites
In addition to the simple single-image frames described thus far, MNG can
also describe composite images that are built up of two or more PNG images.
For example, one image could be a full-screen background while others could
be small sprites that are moved around by means of the MOVE chunk. Examples
that demonstrate these capabilities and others (including scrolling, tiling,
storing 3-D tomographic data, and converting GIF animations to MNG format)
are given as appendices in the MNG proposal.
MNG provides five framing modes that can be used with composite images. The
framing modes include:
* Each image is a separate frame (as in the two examples shown
previously).
* A group of images makes up a frame.
o restoring background between frames
o not restoring background
* A group of images makes up a series of frames, in which the images
become visible one at a time, like cards being dealt.
o restoring background before displaying the series
o not restoring background
Status of MNG
The MNG proposal is being designed by the PNG developers and is being
discussed in the "mpng-list@dworkin.wustl.edu" mailing list. Interested
persons can subscribe by sending a message to
majordomo@dworkin.wustl.edu
that contains the line "subscribe mpng-list" (and nothing else) in the body.
The MNG format specification has not yet been frozen, but it has reached a
state where test implementations are possible. There has been discussion of
MNG since the completion of the PNG design in March 1995, and the first
informal MNG drafts appeared on June 25, 1996. As of August 4, 1998, 45
drafts had been produced for review by the PNG group. The only major changes
since Draft 33 (issued in late January, 1997) have been the recent addition
of the PNJ format and improvement of palette animation via a new PPLT chunk.
The examples shown above are consistent with Draft 33.
Several prototype MNG datastreams have been written, and two viewers have
been written that are able to process a subset of MNG datastreams (simple
movies and composite frames), including delta-encoded images. One has
already been used by the U. S. Army for real presentation work as early as
September 1996. The prototype MNG files and a viewer ("viewpng", written at
the U.S. Army Research Laboratory for use on SGI workstations running IRIX
5.3) and the latest version of the MNG proposal from the PNG Development
Group are available at the MNG ftp site,
A more complete viewer for Windows-95, by Gerard Juhn, was released on
August 1, 1998. It is available at
Competing proposals
Two competing proposals have also been written, both around January 1997.
The documentation for these proposals can be found at the MNG ftp site
mentioned above. They are
* "ARG: Animated Raster Graphics"
* "DOH: Dancing Optical Hallucinations" (this is a temporary name; if
this proposal is accepted in lieu of MNG, it will probably be called
MNG).
References
1. PNG (Portable Network Graphics) Specification, Version 1.0,
.
2. Boutell, T., et. al., PNG (Portable Network Graphics Format Version 1.0),
RFC 2083,
3. MNG (Multiple-image Network Graphics) Proposal,
.
Trademarks
* GIF is a service mark of CompuServe Incorporated.
* SGI and IRIX are trademarks of Silicon Graphics, Inc.
* Windows-95 is a trademark of MicroSoft, Inc.
Request for Comments
Comments on the proposed MNG format are welcome and should be addressed to
mpng-list@dworkin.wustl.edu