Os arquivos do computador podem ocupar muito espaço no disco rígido, além de muita largura de banda para transmitir. Para economizar espaço, especialmente com arquivos que geralmente não são acessados e largura de banda para arquivos transmitidos, foram desenvolvidos métodos de armazenamento para salvar os dados em um pacote menor, compactando-o de alguma forma. Em cada caso, um algoritmo de compactação - um método para reduzir o tamanho dos dados - é usado. Existem várias categorias e tipos populares de algoritmo de compactação, cada um dos quais funciona de maneira diferente e alguns têm resultados que diferem de maneiras importantes. Usando vários algoritmos de compactação, geralmente é possível reduzir um arquivo de texto para menos da metade do tamanho original; para arquivos gráficos, os resultados variam amplamente. O arquivo resultante da compactação pode ser um formato diferente ou um arquivo morto, que é frequentemente usado para armazenamento, transmissão e distribuição.
Uma maneira de categorizar algoritmos de compactação é se eles usam dicionário ou métodos estatísticos para compactar dados. O método de dicionário se concentra em frases repetíveis e é usado em imagens GIF e em arquivos JAR e ZIP. O método estatístico depende da frequência de uso para fazer uma conversão, que é feita em duas passagens. Um exemplo é o Huffman modificado (mh), usado em algumas máquinas de fax.
Uma segunda maneira de categorizar algoritmos de compactação, e a que os programadores não profissionais costumam encontrar é se são sem perdas ou com perdas. Um algoritmo de compactação de dados sem perda é aquele que comprime os dados de maneira que, quando descompactados, são exatamente idênticos ao arquivo original. Um exemplo de um algoritmo de compactação de dados sem perdas é o lzw (algoritmo Lempel-Ziv-Welch). Desenvolvido em 1977 por Lempel e Ziv e aprimorado em 1984 por Welch, é usado em arquivos como GIF, TIF e PDF, bem como em alguns modems.
Um algoritmo de compactação de dados com perda tem capacidade para reduzir os dados para um tamanho menor que a compactação sem perdas, mas ao custo de alguns dos dados originais. Em outras palavras, a restauração após a compactação com perda de dados não fornece uma cópia idêntica do arquivo original. O algoritmo de compressão é, no entanto, projetado para limitar as perdas para que elas não sejam aparentes para o ouvido ou para os olhos. A compactação com perdas é usada em formatos de arquivo como AAC, JPEG, MPEG e MP3.


