O que é compressão/compactação de  arquivos?

O que é compressão/compactação de arquivos?

O que é compressão de arquivos?

Estamos acostumados a fazer downloads de arquivos compactados com extensão .zip e .rar, formatos que diminuem significativamente o tamanho total de dados em disco e o tempo total de download. Mas você sabe como a compressão de dados funciona?

Grande parte dos arquivos em nosso computador possui informações repetidas, e a compressão não faz nada mais do que organizar e eliminar essas redundâncias. Se em um texto as palavras "Canal Tech" aparecem mais de uma vez, o algoritmo de compressão as armazena apenas uma vez e guarda a referência das posições de onde elas aparecem. Observe a frase abaixo como exemplo:

A Copa de 2014 será no Brasil. Será que o Brasil conseguirá preparar tudo o que é necessário até lá?

Observe que as palavras "Brasil", "o", "que" e "será" aparecem duas vezes, e por isso são consideradas redundantes no texto. Utilizando uma compactação baseada no dicionário LZ - um dos mais utilizados pelos softwares de compressão -, atribuímos um índice a cada palavra diferente na frase acima, como a seguir:

Quer ficar por dentro das melhores notícias de tecnologia do dia? Acesse e se inscreva no nosso novo canal no youtube, o Canaltech News. Todos os dias um resumo das principais notícias do mundo tech para você!

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
A Copa de 2014 será no Brasil que o conseguirá preparar tudo é necessário até

Em seguida reescrevemos a frase com os índices do dicionário:

1 2 3 4 5 6 7. 5 8 9 7 10 11 12 9 8 14 15 16?

Veja que o texto foi reduzido de 20 para 16 palavras, o que também resulta na diminuição de seu tamanho, mas é importante lembrar que o dicionário também é armazenado junto com o arquivo. Tendo isso em mente, fica fácil descobrir porque arquivos maiores possuem um coeficiente de compactação maior, já que existem mais repetições e um aumento pouco significativo do tamanho do dicionário.

Mesmo que o simples exemplo acima nos dê uma boa noção de como a compactação funciona, na prática os algoritmos atuais são muito mais sofisticados. Os mais conhecidos, como RAR e ZIP, fazem uma análise inicial do arquivo verificando quantos padrões existem e se vale a pena utilizá-los, pois cada novo padrão exige um novo dicionário, o que pode resultar em um arquivo maior no final das contas.

Por exemplo, reparou que existem 4 repetições de "á" na frase que utilizamos como exemplo? Esse é mais um padrão que o algoritmo pode utilizar se isso resultar na redução do arquivo final.

Uma pergunta muito comum que circula pela internet é qual programa é o "melhor" para comprimir arquivos, onde dois nomes acabam sempre causando um empate: WinRAR e WinZIP. Mesmo que os dois sejam muito bons, podem apresentar resultados diferentes para arquivos diferentes, pois cada um possui seu próprio algoritmo de compactação. Mas esse valor por vezes é tão pequeno que não existe uma diferença real entre eles, sendo bastante competentes no que fazem.

Outros programas que possuem o mesmo nível de qualidade dos dois acima são o KGB Archiver, PowerArchiver e 7-zip (este último peca apenas por não ter uma interface gráfica). Todos eles trabalham tanto com compactação no formato ZIP e em RAR, com o 7-zip sendo mais recomendado para computadores com um pouco menos de recursos, além de trabalhar também no formato de compressão .7Z, algoritmo tão bom quanto os dois anteriores.

E você, qual programa utiliza para compactar/descompactar seus arquivos, qual seu favorito?

Gostou dessa matéria?

Inscreva seu email no Canaltech para receber atualizações diárias com as últimas notícias do mundo da tecnologia.