Short description: 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] ## Contents * 1 Technical Details * 1.1 Skip mode * 1.2 Single color * 1.3 Palette (2, 4, or 8-color) modes * 1.4 Repeat modes * 1.5 PCM (16 color) mode * 2 See also * 3 References * 4 External links ## Technical Details 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 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 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 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 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 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 * Indexed color * Color quantization * Block truncation coding, a similar coding technique for grayscale content * Color Cell Compression, a similar coding technique for color content, based on block truncation coding * Apple Video, a codec based on a similar design * Microsoft Video 1, a codec based on a similar design * Smacker video, a codec based on a similar design * S3 Texture Compression, a texture compression format based on a similar design ## References 1. ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 "Apple SMC". MultimediaWiki. 26 April 2011. http://wiki.multimedia.cx/index.php?title=Apple_SMC. 2. ↑ 2.0 2.1 "FFmpeg Documentation". FFmpeg. http://ffmpeg.org/general.html. 3. ↑ Mark Podlipec (10 December 1997). "xanim.2.70.6.4.2 README". XAnim. http://www.math.unl.edu/~rdieter1/OpenStep/X11/xanim.2.70.6.4.2.README. 4. ↑ "QuickTime Compression and Decompression Guide". Apple Computer, Inc.. 10 January 2006. https://developer.apple.com/legacy/library/documentation/QuickTime/Rm/CompressDecompress/ImageComprMgr/ImageComprMgr.pdf. ## External links * QuickTime Graphics decoder - FFmpeg * v * t * e Multimedia compression and container formats Video compression| | ISO, IEC, MPEG| * MJPEG * Motion JPEG 2000 * MPEG-1 * MPEG-2 * Part 2 * MPEG-4 * Part 2 / ASP * Part 10 / AVC * MPEG-H * Part 2 / HEVC * MPEG-I * Part 3 / VVC | ITU-T, VCEG| * H.120 * DCT * H.261 * H.262 * H.263 * H.264 / AVC * H.265 / HEVC * H.266 / VVC * DV SMPTE| * VC-1 * VC-2 * VC-3 * VC-5 TrueMotion| * TrueMotion S * DCT * VP3 * VP6 * VP7 * VP8 * VP9 * AV1 Others| * Apple Video * AVS * Bink * Cinepak * Daala * DVI * EVC * FFV1 * Huffyuv * Indeo * Lagarith * Microsoft Video 1 * MSU Lossless * OMS Video * Pixlet * ProRes 422 * ProRes 4444 * QuickTime * Animation * Graphics * RealVideo * RTVideo * SheerVideo * Smacker * Sorenson Video/Spark * Theora * Thor * WMV * XEB * YULS Audio compression| | ISO, IEC, MPEG| * MPEG-1 Layer II * Multichannel * MPEG-1 Layer I * MPEG-1 Layer III (MP3) * AAC * HE-AAC * AAC-LD * MPEG Surround * MPEG-4 ALS * MPEG-4 SLS * MPEG-4 DST * MPEG-4 HVXC * MPEG-4 CELP * MPEG-D USAC * MPEG-H 3D Audio | ITU-T| * G.711 * A-law * µ-law * G.718 * G.719 * G.722 * G.722.1 * G.722.2 * G.723 * G.723.1 * G.726 * G.728 * G.729 * G.729.1 IETF| * Opus * iLBC * Speex * Vorbis 3GPP| * AMR * AMR-WB * AMR-WB+ * EVRC * EVRC-B * EVS * GSM-HR * GSM-FR * GSM-EFR ETSI| * AC-3 * AC-4 * DTS Others| * ACELP * ALAC * Asao * ATRAC * AVS * CELT * Codec 2 * DRA * FLAC * iSAC * Monkey's Audio * TTA * True Audio * MT9 * Musepack * OptimFROG * OSQ * QCELP * RCELP * RealAudio * RTAudio * SD2 * SHN * SILK * Siren * SMV * SVOPC * TwinVQ * VMR-WB * VSELP * WavPack * WMA * MQA * aptX * aptX HD * aptX Low Latency * aptX Adaptive * LDAC * LHDC * LLAC Image compression| | IEC, ISO, IETF, W3C, ITU-T, JPEG| * CCITT Group 4 * DCT * HEIF * HEVC * JPEG * JPEG XR * JPEG XT * TIFF/EP * Arithmetic * JBIG * JBIG2 * JPEG-LS * JPEG 2000 * LZ * GIF * PNG * TIFF * TIFF/IT | Others| * APNG * BPG * DjVu * EXR * FLIF * ICER * MNG * PGF * QTVR * WBMP * WebP Containers| | ISO, IEC| * MPEG-ES * MPEG-PES * MPEG-PS * MPEG-TS * ISO base media file format * MPEG-4 Part 14 (MP4) * Motion JPEG 2000 * MPEG-21 Part 9 * MPEG media transport | ITU-T| * H.222.0 * T.802 IETF| * RTP * Ogg SMPTE| * GXF * MXF Others| * 3GP and 3G2 * AMV * ASF * AIFF * AVI * AU * BPG * Bink * Smacker * BMP * DivX Media Format * EVO * Flash Video * IFF * M2TS * Matroska * WebM * QuickTime File Format * RatDVD * RealMedia * RIFF * WAV * MOD and TOD * VOB, IFO and BUP Collaborations| * NETVC * MPEG LA * HEVC Advance Methods| * Discrete cosine transform * DCT * MDCT * Entropy * Arithmetic * Huffman * Modified * FFT * LPC * ACELP * CELP * LSP * WLPC * Lossless * Lossy * LZ * DEFLATE * LZW * PCM * A-law * µ-law * ADPCM * DPCM * Transform * Wavelet * Daubechies * DWT * Transform Lists| * Comparison of audio coding formats * Comparison of video codecs * List of codecs See Compression methods for techniques and Compression software for codecs *[v]: View this template *[t]: Discuss this template *[e]: Edit this template