QuickTime Animation uses run-length encoding and conditional replenishment for compression.6 When encoding, the input frame is scanned pixel-wise in raster-scan order and processed line-wise.7 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.8 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.9
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.10 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.
"QuickTime File Format" (PDF). Inside QuickTime: The QuickTime Technical Reference Library. Apple Inc. 2000. Archived from the original (PDF) on March 7, 2000. Retrieved 5 April 2013. https://web.archive.org/web/20000307235449/http://developer.apple.com/techpubs/quicktime/qtdevdocs/PDF/QTFileFormat.pdf ↩
"Apple QuickTime RLE". MultimediaWiki. 24 May 2011. Retrieved 9 April 2013. http://wiki.multimedia.cx/index.php?title=Apple_QuickTime_RLE ↩
Three letters followed by a space. ↩
Mark Podlipec (10 December 1997). "xanim.2.70.6.4.2 README". XAnim. Archived from the original on 28 December 2015. Retrieved 4 April 2013. https://web.archive.org/web/20151228114941/http://www.math.unl.edu/~rdieter1/OpenStep/X11/xanim.2.70.6.4.2.README ↩
"FFmpeg Documentation". FFmpeg. Retrieved 4 April 2013. http://ffmpeg.org/general.html ↩
Peter Hosey (8 December 2013). "Screencast codec showdown: The codecs: Animation". Archived from the original on 3 July 2013. Retrieved 9 April 2013. https://archive.today/20130703211054/http://boredzo.org/codec-comparison/codecs/animation.html ↩