What is a Codec ?• Codec stands for enCOder/DECoder or COmpressor/DECompressor• It is a software or hardware that compresses and decompresses audio and video data streams.
Why do we need codecs?• 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.• Because video and music files are large, they become difficult to transfer across the Internet quickly. To help speed up downloads, mathematical "codecs" were built to encode ("shrink") a signal for transmission and then decode it for viewing or editing. Without codecs, downloads would take three to five times longer than they do now.
Codec Types : Lossy or Lossless? • There are two types of codecs : lossy and lossless. • As the name implies, the lossy codecs shrink the video file dramatically by dropping detail, like creating a JPEG image from a RAW photo. E.g.: MP3, OGG Vorbis, AAC, WMA, AC3, RealAudio,etc • Lossless codecs lose very little information, if any, and the resulting files are quite large. E.g: Wave, AIFF, FLAC, ALAC
Classification of Codecs:• Audio Codecs• Video Codecs• Text Codecs
Audio Codecs:• Audio codecs (encoder-decoder) are programs that reduce this file size and can be split into two main categories - "lossy" and "lossless".• A "lossy" codec (e.g. MP3, OGG Vorbis, AAC) uses knowledge of human hearing to try and discard as much of the original audio signal as possible, whilst attempting to make the audio sound as close as possible to the original. These codecs typically achieve a filesize of 10%-20% of the original.• A "lossless" codec (e.g. FLAC) performs the same function as "winzip" - i.e. it compresses an audio file without discarding any of the information. These codecs typically achieve a filesize of 50%-60% of the original filesize, but the audio playback will be bit-for-bit identical to the original file.
Video Codecs:• Codecs are software that enable your devices (Camera, Editor, Player) to perform video encoding and/or decoding (think video compression and de-compression). Obviously the Blu- ray player needs only to decode a video stream. All these Codecs are based on standards (often de-facto company standards).• All video streams are embedded in multimedia (video) containers. It is a common misconception that .AVI (Windows) and .MOV (Quicktime on Macs) already define what kind of video format it is. These containers include information which Codec is used in the file. If your system does not have the proper Codec installed the video wont play.
About Video Compression:• Video compression is clearly our friend because without a lot of compression we would have a very hard time handling the massive data we get from a 1080p video stream.• Think of two mega pixels per frame at 24, 30 or 60 frames per second (translates to 48, 60 or even 120 mega pixels data per second). On the flip side, video compression reduces the possible image quality we can get.• Overall video compression is about the trade-off between:• Data volume • Data storage needs • Data processing speed (in camera, on computer)• Image quality • Detail • Color
Text Codecs• A Text Codec is a function that transforms text into (when encoding) or out of (when decoding) another kind of representation. Usually, the most human-readable representation is said to be "decoded".• "Encoders" will turn the (selected or whole) text into something less readable, "Decoders" try to revert those effects as good as possible.• E.g.: ROT-13, Base64, URI Codecs, Unicode Codecs, Case Encoders, CMML, BiM
Codecs and Containers A container is what we typically associate with the file format. Containers "contain" the various components of a video: the stream of images, the sound, and anything else. For example, you could have multiple soundtracks and subtitles included in a video file, if the container format allows it. Example of popular containers are OGG, Matroska, AVI, MPEG. Codecs are ways of "coding" and "decoding" streams. Their job is typically to compress data (and decompress it when playing it back) so that you can store and transmit files with a smaller filesize. Image Source: http://www.pitivi.org/manual/codecs containers.html