Codec: Difference between revisions
m (→Definition) |
m (→Lossless) |
||
Line 36: | Line 36: | ||
; Deflate (a combination of LZ77 and Huffman coding) | ; Deflate (a combination of LZ77 and Huffman coding) | ||
* | * [[Zip]], gzip and PNG | ||
; Bzip2 | ; Bzip2 |
Latest revision as of 17:09, 13 March 2013
Definition
- codec stands for compression/decompression. A codec is a kind of algorithm or a computer program that reduces the size of a file.
- The term codec also can be used for chip designs that perform data conversion
Compression is used by most multimedia formats like video streaming, digital images (e.g. JPEG and PNG) and music (e.g. MP3). It is also popular for software distribution and archiving, e.g. zip/jar archive files contain compressed files. Gzip or bzip2 is used to compress (uncompressed) *.tar archives.
Technology
Usually there is a choice of two kinds of features
- loss-less vs. lossy
- High compression ratio vs. high speed compression/decompression
- Lossyness
- Lossy compression means that you loose data (e.g. as in MPEG or JPEG).
- Such algorithm take into account human perception, i.e. the algorithms for sound, image and video compression are not the same.
Here is an example. The number 8.9996666 could be compressed as
8.9[3]6[4] -or- 8.9
The second alternative is lossy, but may be good enough for your needs ...
Compressions formats
This inventory is absolutely not complete, see the Wikipedia article on data compression. There are dozens of popular codecs, in particular for video and audio.
Compressed multimedia contents are often embedded in a multimedia container format, i.e. a file format that can contain various types of data ...
Lossless
(usually for data including vector graphics and software)
- LZW
- Used in GIFs and Unix compress
- Deflate (a combination of LZ77 and Huffman coding)
- Zip, gzip and PNG
- Bzip2
- Very high compression rate
Lossy
(usually for non-vectorial multimedia)
- JPEG
- Digital images, a sequence of several algorithms
- A family that includes MP3 and AAC, also a sequence of several algorithms