This short article is in need of work. You can help Sega Retro by adding to it.
Cinepak is a video codec developed by SuperMatch, a division of SuperMac Technologies (later acquired by computer hardware firm, Radius in 1994), and released in 1992 as part of Apple Computer's Quicktime video suite. It was designed to encode 320x240 resolution video at 1x (150 kbyte/s) CD-ROM transfer rates. The codec was ported to the Windows platform in 1993, and was also used in many early CD-ROM game consoles, including as the Atari Jaguar CD, Sega Mega-CD (and Sega Mega-CD 32X, Sega Saturn, and 3DO.
It was the primary video codec of early versions of QuickTime and Microsoft Video for Windows, but was later superseded by Sorenson Video, Intel Indeo, and improvements in MPEG and H.264. However, movies compressed with Cinepak are generally still playable in most media players. Cinepak files have the extension CPK. The original name of this codec was CompactVideo, which is why its FourCC identifier is "CVID".
A large number of Mega-CD, Mega-CD 32X and particularly Saturn titles use Cinepak for full motion video, though in the latter's case, many developers opted for higher quality TrueMotion technology (or MPEG support offered by the Video CD Card) in system's later years. The retooled "Cinepak For Sega" became an unofficial standard across Sega consoles of the era, though was rendered obsolete when MPEG support was added to consoles (such as the Sega Dreamcast) as a standard.
Prior to Cinepak's introduction on the Mega-CD in late 1993, full motion video on the Mega-CD typically involved low resolution, "grainy" or "blocky" videos as developers had to create their own systems. Cinepak was meant to bring "full resolution" video to the system and allow for 128 colours to be displayed simultaneously (rather than the standard 64). There was talk of Cinepak titles selling at a higher price point as a result, but this does not appear to have materialised to any significant degree.
Cinepak is based on vector quantization, which is a significantly different algorithm from the discrete cosine transform (DCT) algorithm used by most current codecs (in particular the MPEG family, as well as JPEG). This permitted implementation on relatively slow CPUs, but tended to result in blocky artifacting at low bitrates.
Cinepak divides a movie into key images and intra-coded images. Each image is divided into a number of horizontal bands which have individual 256-color palettes transferred in the key images. Each band is subdivided into 4x4 pixel blocks. The compressor uses vector quantization to determine the one or two band palette colors which best match each block and encodes runs of blocks as either one color byte or two color bytes plus a 16-bit vector which determines which pixel gets which color. The data rate can be controlled within a narrow range by adjusting the rate of key versus intra-coded frames and by adjusting the permitted error in each block and the block run-length.