Video codec by Apple Inc
QuickTime Graphics
is a
lossy
video compression and decompression algorithm (
codec
) developed by
Apple Inc.
and first released as part of
QuickTime 1.x
in the early 1990s.
[1]
The codec is also known by the name
Apple Graphics
and its
FourCC
SMC
.
[2]
[1]
The codec operates on 8-bit palettized
RGB
data.
[1]
The bit-stream format of QuickTime Graphics has been reverse-engineered and a decoder has been implemented in the projects
XAnim
and
libavcodec
.
[3]
[2]
Technical Details
[
edit
]
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
-style codecs which use
motion compensation
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.
[4]
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
[
edit
]
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.
[1]
Runs of skip blocks are coded in a
run-length encoding
scheme, enabling a high compression ratio in static areas of the picture.
[1]
Single color
[
edit
]
In single color mode, the entire 4×4 block is painted with a single color.
[1]
This mode can also be considered as a 1-color palette mode.
Palette (2, 4, or 8-color) modes
[
edit
]
In the palette modes, each 4×4 block is coded with a 2, 4, or 8-color palette.
[1]
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.
[1]
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.
[1]
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
[
edit
]
There are two different repeat modes.
[1]
In the single block repeat mode, the previous block is repeated a specified number of times.
[1]
In the two block repeat mode, the previous two blocks are repeated a specified number of times.
[1]
PCM (16 color) mode
[
edit
]
In 16-color mode, the color of each pixel in a block is explicitly written to the bit-stream.
[1]
This mode is lossless and equivalent to raw
PCM
without any compression.
See also
[
edit
]
References
[
edit
]
External links
[
edit
]