QuickTime Animation format (also known as QuickTime RLE) is a video compression format and codec created by Apple Computer to enable playback of RGB video in real time without expensive hardware. It is generally found in the QuickTime container with the FourCC 'rle '.[note 1] It can perform either lossless or lossy compression and is one of the few video codecs that supports an alpha channel. Supported color depths are 1-bit (monochrome), 15-bit RGB, 24-bit RGB, 32-bit ARGB, as well as palettized RGB. As a result of reverse-engineering of the format, a decoder is implemented in XAnim as well as an encoder and decoder in libavcodec.
QuickTime Animation uses run-length encoding and conditional replenishment for compression. When encoding, the input frame is scanned pixel-wise in raster-scan order and processed line-wise. Within a line, pixels are segmented into runs, the length of which is variable and signaled in the bitstream. For each run, one of three coding modes is used: same color, skip, or PCM. In same color mode, a run of pixels is represented by a single color in a run-length encoding fashion. If pixels with different colors are joined into a run (of a single color) by the encoder, the coding process is lossy, otherwise it is lossless. The lossless mode is used at the 100% quality level. In skip mode, the run of pixels is left unchanged from the previous frame (conditional replenishment). In PCM mode, the color of each pixel is written to the bitstream, without any compression.
Run-length encoding works well on content with large areas of constant color. Conditional replenishment works well if only small areas change from frame to frame. QuickTime Animation works well on content with both these properties, such as traditional 2-D animation and screencast content. For natural video and complex 3D rendered scenes, in which runs of constant color rarely occur, only low compression ratios can be achieved in lossless mode, and the merging of runs becomes visible as noise in lossy mode.