[ INDEX | PREV | NEXT | TABLE of CONTENTS ]

2. Terminology

See also the glossary in the PNG specification.

requirement levels
The words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "RECOMMENDED", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119, and the word "CAN" is equivalent to the word "MAY" as described therein. "NOT ALLOWED" and "NOT PERMITTED" describe conditions that "MUST NOT" occur. "ALLOWED" and "PERMITTED" describe conditions that "CAN" occur.
abstract image or object
An image whose pixels have a hidden representation, and which does not necessarily carry PNG or JNG chunk data. An image delta cannot be applied to an abstract image. All abstract objects are viewable.
child, or child image
An image produced by applying an image delta to a parent object.
color encoding
File gamma and chromaticity values, or an sRGB rendering intent, iCCP profile, or whatever is involved in mapping between RGB values and colors.
concrete image or object
An image or object whose pixels have a publicly known representation, and which uses a publicly known color encoding. A concrete PNG or JNG image also carries data from other known PNG or JNG chunks that are present.
embedded object or image
A concrete object or image that appears in-line in a MNG datastream.
frame
A layout of zero or more layers, with zero interframe delay time between them, followed by a specified nonzero delay time or by the MEND chunk, that is to be displayed as a still picture or as part of an animation. An animation would ideally appear to a perfect observer (with an inhumanly fast visual system) as a sequence of still pictures. A group of MNG images, with zero interframe delay time between them, and also followed by a zero interframe delay time, makes up a "subframe" (see below) instead of a "frame". The final subframe in a segment completes a frame, regardless of its interframe delay. In MNG-VLC datastreams, each layer (except for the background layer) is a frame, unless the framing rate (from the MHDR ticks-per-second field) is zero. When the framing rate is zero, the entire describes a single frame.

When the layers of a frame do not cover the entire area defined by the width and height fields from the MHDR chunk, the layers are composited over the previous frame to obtain the new frame.

frame origin
The upper left corner of the output device (frame buffer, screen, window, page, etc.) where the pixels are to be displayed. This is the {0,0} position for the purpose of defining frame clipping boundaries, image locations, and image clipping boundaries. Note that in a windowing system, the frame origin might be moved offscreen, but the locations in DEFI, MOVE, and CLIP chunks would still be measured from this offscreen origin. In MNG-VLC, all images must be placed with the image's upper left corner at the frame origin.
frozen object
An object whose object attributes set and whose object buffer are not allowed to be discarded, replaced, or modified.
image delta
An object that can be applied to a concrete image or object to produce another concrete image. For any two concrete images, there exists an image delta that will produce one from the other.
image N or object N
Shorthand for "the object with the object attribute set pointed to by `object_id=N'". In MNG-LC and MNG-VLC, only image 0 is permitted.
interframe delay
The amount of time a frame should be visible when an animation is played. In reality, it takes a nonzero amount of time to display a frame. No matter which moment is picked as the "start" of the frame, the interframe delay measures the time to the "start" of the next frame. There is no interframe delay prior to the implicit background layer at the beginning of the animation nor after the final frame.
layer

A layer can be

Note that a layer can be completely empty if the image is entirely outside the clipping boundaries.

A layer can be thought of as a transparent rectangle with the same dimensions as the frame, with an image composited into it, or it can be thought of as a rectangle having the same dimensions (possibly zero) and location as those of the object after it has been located and clipped.

An embedded visible PNG or JNG datastream generates a single layer, even though it might be interlaced or progressive. If the background consists of both a background color and a background image, these are combined into a single layer.

MNG-LC
A low-complexity version of MNG in which only image 0 is permitted, loops can all be run once, JNG and Delta-PNG are not present, and certain MNG chunks are not present. Bit 0 of the MHDR simplicity profile must be 1, indicating that the profile is valid, and all other bits of the profile except possibly for bits 2 and 3 must be 0, indicating that "complex MNG features", JNG, and Delta-PNG are not present. Bits 2 and 3 can be 0 or 1, depending on whether "simple MNG features" and transparency are absent or present. MNG-LC is a proper subset of MNG.
MNG-VLC
A very-low-complexity version of MNG in which only image 0 is permitted, loops can all be run once, JNG and Delta-PNG are not present, and certain MNG chunks are not present. Bit 0 of the MHDR simplicity profile must be 1, indicating that the profile is valid, and all other bits of the profile except possibly for bit 3 must be 0, indicating that "simple MNG features", "complex MNG features", JNG, and Delta-PNG are not present. Bit 3 can be 0 or 1, to indicate whether transparency is absent or present. MNG-VLC is a proper subset of MNG.
object, object_id
An image or a nonviewable basis object. The object_id is an unsigned sixteen-bit number that serves as the identifier of a set of object attributes. In MNG-LC and MNG-VLC only object 0 is permitted.
object attributes
Properties of an object such as its existence, potential visibility, location, clipping boundaries, and a pointer to an object buffer. See Object attributes, below.
object buffer
A 2D array of pixels or pixel deltas, each of which has color and transparency information. More than one object can point to a given object buffer. See Object buffers, below.
parent, parent object, or parent image
An object to which a delta is applied.
pixel sample depth and alpha sample depth
The sample depth used for decoding IDAT data in Delta-PNG datastreams. They are not necessarily the same as the sample depth of the object, which is called "sample depth" or "object sample depth" in this document.
potentially visible image

A potentially visible image is

prologue segment
The first segment, when there is more than one segment.
regular segment
Any segment other than the first (also the first segment, when there is only one).
segment
A part of a MNG datastream starting with the MHDR chunk or with a SEEK chunk and extending to just before the next SEEK chunk (or the MEND chunk if there is no next SEEK chunk). The MHDR, MEND, SAVE, SEEK, and TERM chunks are not considered to be a part of any segment.
signal
An entity with a number that can arrive asynchronously at the decoder. More detailed semantics, like whether multiple signals of the same number (or even different numbers) can be queued, are beyond the scope of this specification.
subframe
A group of one or more layers that are to be displayed as a part of a still frame or as part of one frame of an animation. Subframes are defined in MNG for convenience in applying frame parameters to a subset of the layers making up a complete frame.
viewable image
A stored object that is capable of being made visible. An image is viewable, while some objects resulting from decoding a BASI datastream are not viewable.
visible image
Actually drawn on a display. If an object is visible, a person looking at the display can see it.

[ INDEX | PREV | NEXT | TABLE of CONTENTS ]