Jump to content

QuickTime Graphics

From Wikipedia, the free encyclopedia

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]
  1. ^ a b c d e f g h i j k l m "Apple SMC". MultimediaWiki. 26 April 2011. Archived from the original on 15 May 2013. Retrieved 4 May 2013.
  2. ^ a b "FFmpeg Documentation". FFmpeg. Archived from the original on 29 June 2014. Retrieved 4 May 2013.
  3. ^ Mark Podlipec (10 December 1997). "xanim.2.70.6.4.2 README". XAnim. Archived from the original on 28 December 2015. Retrieved 4 May 2013.
  4. ^ "QuickTime Compression and Decompression Guide" (PDF). Apple Computer, Inc. 10 January 2006. Retrieved 4 May 2013.
[edit]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy