A Codec is a device or program capable of performing encoding and decoding on 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'.
Codecs encode a stream or signal for transmission, storage or encryption and decode it for viewing or editing. Codecs are often used in videoconferencing and streaming media solutions. A video camera's 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 DAC for analog display. A "codec" is a generic name for a video conferencing unit.
An audio compressor converts analog audio signals into digital signals for transmission or storage. A receiving device then converts the digital signals back to analog using an audio decompressor, for playback.
Most codecs are lossy, in order to get a reasonably small file size. There are lossless codecs as well, but for most purposes the almost imperceptible increase in quality is not worth the considerable increase in data size. The main exception is if the data will undergo more processing, especially editing, in the future, in which case the repeated lossy encoding could degrade the quality of the eventual file too much. Using more than one codec or encoding scheme throughout processing can also degrade quality but there are many situations where this cannot be avoided.
Many codecs are designed to emphasize 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 colors, while a video of an art exhibit needs to perform well encoding color and surface texture. There are hundreds or even thousands of codecs ranging from free ones to ones costing hundreds of dollars or more.
Many multimedia data streams need to contain both audio and video data, and often some form of metadata that permits synchronization of the 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.
While many people explain that AVI is a codec, they are incorrect. AVI (nowadays) is a container format, which many codecs might use (although not to ISO). There are other well known alternative containers such as Ogg, ASF, QuickTime, RealMedia and MP4.