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.