What a codec is?
Codec (enCOder/DECoder or COmpressor/DECompressor): software (or hardware) that compresses and decompresses audio and video data streams.
The purpose of codecs is to reduce the size of digital audio samples and video frames in order to speed up transmission and save storage space.
Lossy or Lossless codecs?
The goal of all codec designers is to maintain audio and video quality while compressing the binary data further.
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 in the future, in which case the repeated lossy encoding would damage the eventual quality too much.
Examples of Lossy file formats: AAC (Advanced Audio Coding), MP3, Vorbis (filename extension .OGG), lossy Windows Media Audio (filename extension .WMA)... Example of Lossless file formats: Apple Lossless (filename extension .m4a), FLAC, Monkey's Audio (filename extension .APE), Shorten, TTA, lossless Windows Media Audio (filename extension .WMA), WavPack.
Few words about containers - or why do i need audio and video codecs to play video files?
A container format is a computer file format that can contain various types of data, compressed in a manner of standardized codecs. The container file is used to be able to identify and interleave (set a value on how often the audio and video streams are "synchronized") the different data types.
Simpler container formats can contain different types of audio codecs, while more advanced (flexible) container formats can support audio, video, subtitles, chapters, and metadata (tags) - along with the synchronization information needed to play back the various streams together.
Examples of containers: WAV (RIFF file format) is a simple audio container while AVI (the standard Microsoft Windows container), ASF (standard container for Microsoft WMA and WMV), MOV (standard QuickTime container)... are flexible (more advanced) containers that can hold many types of audio and video, as well as other media.
Specialized codecs - what's the difference between Speech and Audio codecs?
SPEECH CODECS are designed to deal with the characteristics of voice, while AUDIO CODECS are developed for music. The difference between speech and audio codecs is that speech codecs look for speech patterns in order to compress the data further.
Codecs may also be able to transcode from one digital format to another; for example, from PCM audio to MP3 audio.
Some popular codecs
Below were listed - by name and purpose - some of the most popular audio/speech and video codecs.
- AAC: music with digital rights (DRM)
- ACELP.live: music (VoiceAge)
- AIFF: music (Macintosh)
- AU: music (Sun)
- MP3: music (Fraunhofer IIS)
- Ogg Vorbis: music (open source standard)
- RA, RAM: music (RealNetworks streaming)
- WMA: music (Microsoft)
- µ-Law PCM: telephone circuit (U.S.)
- ACELP.net: general speech (VoiceAge)
- ACELP.wide: high quality (VoiceAge)
- A-Law PCM: telephone circuit (Europe)
- AMR-NB: GSM, 3GPP (ETSI narrowband)
- AMR-WB: GSM, 3GPP (ETSI wideband)
- DV Audio: MiniDV, audio
- G.711: audio/videoconferencing (ITU)
- G.722: audio/videoconferencing (ITU)
- G.723.1: VoIP, audio/videoconferencing (ITU)
- G.728: audio/videoconferencing (ITU)
- G.729: audio/videoconferencing (ITU)
- GSM 06.10: GSM, cellphone (unknown)
- AVI: movies (Microsoft)
- Cinepak: movies (SuperMac Technologies)
- H.261: videoconferencing (ITU)
- H.263: videoconferencing (ITU)
- H.264: videoconferencing (ITU)
- Indeo: movies (Intel)
- MPEG-1: movies (Moving Pictures Experts Group)
- MPEG-2: movies (Moving Pictures Experts Group)
- MPEG-4: movies (Moving Pictures Experts Group)
- RM, RV: movies and streaming (RealNetworks)
- Sorenson: movies (Sorenson Media)
- WMV: movies and streaming (Microsoft)