All coding methods can be divided into two types: lossless coding and lossy coding.
Lossless coding is an array of algorithms used to compress information. The original data can be perfectly reconstructed from data compressed by these algorithms. Therefore, these algorithms are widely used in areas where the loss of even a tiny part of the information is unfavorable. Such areas include compression of text documents, source code, and executable files. Also, lossless coding can be applied as part of lossy coding. However, lossless coding is less efficient than lossy coding.
Unlike lossless coding, lossy coding only produces a file that is approximated to the original. However, this disadvantage is not so significant in situations when the loss of quality is almost unnoticeable to an end-user. By removing less significant information, the compression ratio of lossy coding methods is significantly higher than that of lossless coding methods. Lossy coding is used for compressing audio, video, and static images.