A codec is a device or program capable of encoding and/or decoding a digital data stream or signal. The word codec may be a combination of any of the following: 'compressor-decompressor', 'coder-decoder', or 'compression/decompression algorithm'.
In the recent software sense, codecs encode a data stream or signal for transmission, storage or encryption, or decode it for viewing or editing. Codecs are often used in videoconferencing and streaming media applications. A video camera's analog-to-digital converter (ADC) converts its analogue 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-analogue converter (DAC) for analogue display. A "codec" is a generic name for a video conferencing unit.
An audio compressor converts analogue audio signals into digital signals for transmission or storage. A receiving device then converts the digital signals back to analogue using an audio decompressor, for playback. An example of this are the codecs used in the sound cards of personal computers.
The raw encoded form of audio and video data is often called essence, to distinguish it from the metadata information that together make up the information content of the stream and any "wrapper" data that is then added to aid access to or improve the robustness of the stream.
Codecs are often designed to emphasise certain aspects of the media to be encoded. For example, a digital video (using a DV codec) of a sports event, such as baseball or soccer, needs to encode motion well but not necessarily exact colours, while a video of an art exhibit needs to perform well encoding colour and surface texture. For example, audio codecs for cell phones need to be very low latency between a word being spoken and that word being heard; 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 from those downloadable for free to ones costing 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) offers more of a persistent standard across multiple platforms and over time.
Many multimedia data streams need to contain both audio and video data, and often some form of metadata that permits synchronisation of audio and video. Each of these three streams may be handled by different programs, processes, or hardware; but for the multimedia data stream to be useful in stored or transmitted form, they must be encapsulated together in a container format.
The widely spread 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 other well-known alternative containers such as Ogg, ASF, QuickTime, RealMedia, Matroska, DivX, and MP4.