What is a codec?

A codec is software that is used to compress or decompress digital data media file, such as a song or video. Media Players use codecs to play and create digital media files.

The encoder performs the compression (encoding) function and the decoder performs the decompression (decoding) function. Some codecs include both of these components and some codecs only include one of them.

A codec (the program) should not be confused with a coding or compression format or standard – a format is a document (the standard), a way of storing data, while a codec is a program (an implementation) which can read or write such files. In practice "codec" is sometimes used loosely to refer to formats, however. A codec encodes a data stream or signal for transmission, storage or encryption, or decodes it for playback or editing.

Codecs are used in videoconferencing, streaming media and video editing applications. A video camera's analog-to-digital converter (ADC) converts its analog signals into digital signals, which are then passed through a video compressor for digital transmission or storage. A receiving device then runs the signal through a video decompressor, then a digital-to-analog converter (DAC) for analog display. The term codec is also used as a generic name for a video conferencing unit.

Compression quality

Lossy codecs

Many of the more popular codecs in the software world are lossy, meaning that they reduce quality by some amount in order to achieve compression. Often, this type of compression is virtually indistinguishable from the original uncompressed sound, depending on the codec and the settings used. Smaller data sets ease the strain on relatively expensive storage sub-systems such as non-volatile memory and hard disk, as well as write-once-read-many formats such as CD-ROM, DVD and Blu-ray Disc. Lower data rates also reduce cost and improve performance when the data is transmitted.

Lossless codecs

There are also many lossless codecs which are typically used for archiving data in a compressed form while retaining all of the information present in the original stream. If preserving the original quality of the stream is more important than eliminating the correspondingly larger data sizes, lossless codecs are preferred. This is especially true if the data is to undergo further processing (for example editing) in which case the repeated application of processing (encoding and decoding) on lossy codecs will degrade the quality of the resulting data such that it is no longer identifiable (visually, audibly or both). Using more than one codec or encoding scheme successively can also degrade quality significantly. The decreasing cost of storage capacity and network bandwidth has a tendency to reduce the need for lossy codecs for some media.

Media codecs

Codecs are often designed to emphasize certain aspects of the media, or their use, to be encoded. For example, a digital video (using a DV codec) of a sports event needs to encode motion well but not necessarily exact colors, while a video of an art exhibit needs to perform well encoding color and surface texture.

Audio codecs for cell phones need to have very low latency between source encoding and playback; while audio codecs for recording or broadcast can use high-latency audio compression techniques to achieve higher fidelity at a lower bit-rate.

There are thousands of audio and video codecs ranging in cost from free to hundreds of dollars or more. This variety of codecs can create compatibility and obsolescence issues. By contrast, raw uncompressed PCM audio (44.1 kHz, 16 bit stereo, as represented on an audio CD or in a .wav or .aiff file) is a standard across multiple platforms.

Many multimedia data streams contain both audio and video, and often some metadata that permit synchronization of audio and video. Each of these three streams may be handled by different programs, processes, or hardware; but for the multimedia data streams to be useful in stored or transmitted form, they must be encapsulated together in a container format.

Lower bit rate codecs allow more users, but they also have more distortion. Beyond the initial increase in distortion, lower bit rate codecs also achieve their lower bit rates by using more complex algorithms that make certain assumptions, such as those about the media and the packet loss rate. Other codecs may not make those same assumptions. When a user with a low bit-rate codec talks to a user with another codec, additional distortion is introduced by each transcoding.

The notion of AVI being a codec is incorrect as AVI is a container format, which many codecs might use (although not to ISO standard). There are also other well-known containers such as Ogg, ASF, QuickTime, RealMedia, Matroska, DivX Media Format and containers defined as ISO standards, such as MPEG transport stream, MPEG program stream, MP4 and ISO base media file

Codecs and file formats  

It can be confusing because sometimes codec and file format have the same name. The file format is a type of container. Inside the container its data that has been compressed by using a particular codec. For example, a file format such as Windows Media Audio contains data that is compressed by using the Windows Media Audio codec. However, a file format such as Audio Video Interleaved (AVI) can contain data that is compressed by any of a number of different codecs, including the MPEG-2, DivX, or XviD codecs. AVI files can also contain data that is not compressed by any codec. Consequently, you might be able to play some AVI files and others not, depending on which codecs were used to compress the file and which codecs you have installed on your computer. For the same reason, you also might be able to play the audio portion of an AVI file, but not the video portion.