QuickTime Graphics is a
lossy video compression and decompression algorithm (
codec
A codec is a computer hardware or software component that encodes or decodes a data stream or signal. ''Codec'' is a portmanteau of coder/decoder.
In electronic communications, an endec is a device that acts as both an encoder and a decoder o ...
) developed by
Apple Inc. and first released as part of
QuickTime 1.x in the early 1990s.
The codec is also known by the name Apple Graphics and its
FourCC SMC.
[ The codec operates on 8-bit palettized RGB data.][ The bit-stream format of QuickTime Graphics has been reverse-engineered and a decoder has been implemented in the projects XAnim and libavcodec.][
]
Technical Details
The input video that the codec operates on is in an 8-bit palettized RGB colorspace. Compression is achieved by conditional replenishment and by reducing the palette from 256 colors to a per-4×4 block adaptive palette of 1-16 colors. Because Apple Video operates in the image domain without motion compensation, decoding is much faster than MPEG
The Moving Picture Experts Group (MPEG) is an alliance of working groups established jointly by International Organization for Standardization, ISO and International Electrotechnical Commission, IEC that sets standards for media coding, includ ...
-style codecs which use motion compensation
Motion compensation in computing is an algorithmic technique used to predict a frame in a video given the previous and/or future frames by accounting for motion of the camera and/or objects in the video. It is employed in the encoding of video ...
and perform coding in a transform domain. As a tradeoff, the compression performance of Apple Graphics is lower. The decoding complexity is approximately 50% that of the QuickTime Animation codec.
Each frame is segmented into 4×4 blocks in raster-scan order. Each block can be coded in one of the following coding modes: skip mode, single color, 2-, 4-, and 8 color palette modes, two repeat modes, and PCM.
Skip mode
The skip mode realizes conditional replenishment. If a block is coded in skip mode, the content of the block at same location in the previous frame is copied to the current frame.[ Runs of skip blocks are coded in a ]run-length encoding
Run-length encoding (RLE) is a form of lossless data compression in which ''runs'' of data (consecutive occurrences of the same data value) are stored as a single occurrence of that data value and a count of its consecutive occurrences, rather th ...
scheme, enabling a high compression ratio in static areas of the picture.[
]
Single color
In single color mode, the entire 4×4 block is painted with a single color.[ This mode can also be considered as a 1-color palette mode.
]
Palette (2, 4, or 8-color) modes
In the palette modes, each 4×4 block is coded with a 2, 4, or 8-color palette.[ To select one of the colors from the palette, 1, 2, or 3 bits per pixel are used, respectively. The palette can be written to the bitstream either explicitly or as a reference to an entry in the palette cache.][ The palette cache is a set of three circular buffers which store the 256 most recently used palettes, one each for of the 2, 4, and 8-color modes.][
Interpreted as vector quantization, three-dimensional vectors with components red, green, and blue are quantized using a forward adaptive codebook with between 1 and 8 entries.
]
Repeat modes
There are two different repeat modes.[ In the single block repeat mode, the previous block is repeated a specified number of times.][ In the two block repeat mode, the previous two blocks are repeated a specified number of times.][
]
PCM (16 color) mode
In 16-color mode, the color of each pixel in a block is explicitly written to the bit-stream.[ This mode is lossless and equivalent to raw PCM without any compression.
]
See also
* Indexed color
In computing, indexed color is a technique to manage digital images' colors in a limited fashion, in order to save computer computer data storage, memory and Hard disk drive, file storage, while speeding up display refresh and file transfers. It ...
* Color quantization
In computer graphics, color quantization or color image quantization is quantization applied to color spaces; it is a process that reduces the number of distinct colors used in an image, usually with the intention that the new image should be as ...
* Block truncation coding, a similar coding technique for grayscale content
* Color Cell Compression, a similar coding technique for color content, based on block truncation coding
* Apple Video, a codec based on a similar design
* Microsoft Video 1, a codec based on a similar design
* Smacker video, a codec based on a similar design
* S3 Texture Compression, a texture compression format based on a similar design
References
External links
QuickTime Graphics decoder - FFmpeg
{{Compression formats
Graphics
Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of the data, as in design and manufa ...
Lossy compression algorithms
Video codecs