Se você já teve que enviar por e-mail, fazer upload ou download de vários arquivos ou programas grandes, você provavelmente já encontrou arquivos ZIP. Também conhecidos como arquivos compactados ou arquivados, arquivos ZIP condensam vários arquivos em um único local com a extensão .zip ou .ZIP, reduzindo o tamanho geral e tornando-os mais fáceis de transmitir.
Phillip Katz inventou o arquivo ZIP em 1986, e ele foi implementado pela primeira vez com o programa PKZip para a empresa da Katz, PKWare, Inc. Eventualmente, o método de compressão da Katz tornou-se um uso comum dentro de sistemas operacionais populares. Microsoft Windows e Mac OS da Apple incluem utilitários embutidos para compactar e descompactar arquivos, e programas como WinRAR, WinZip e StuffIt podem expandi-los.
Mas como tudo isso funciona? Que tipo de magia tecnológica está em jogo que torna seus arquivos menores enquanto mantém toda a informação para mais tarde?
Que “magia” é na verdade um algoritmo bastante simples que pega os aspectos redundantes de um arquivo e o divide em partes menores.
Para um exemplo fácil de entender, vamos pegar a frase, “Mashable pode ajudar a tornar os leitores mais inteligentes; leitores podem ajudar a tornar Mashable mais inteligente,” e fingir que é um arquivo.
Cada palavra na frase de exemplo aparece duas vezes. Se cada caractere e espaço nesta frase fosse composto por uma unidade de memória, tudo teria um tamanho de arquivo de 78 unidades. Se criássemos um código numerado – ou “dicionário” – para esta frase, ela poderia ser algo como isto:
1. Mashable
2. can
3. help
4. make
5. readers
6. smarter
Esta nova frase tem apenas 24 unidades. Portanto, o arquivo comprimido teria apenas 24 unidades de memória além de outro arquivo que lista nosso código numerado, para que o programa de compressão saiba como aplicar cada unidade de informação. Isto é chamado de “compressão sem perdas”; toda a informação original é retida.
A forma como um programa de compressão real funciona é um pouco mais complicado do que o exemplo anterior – ele reconheceria padrões. Um exemplo é a letra “e” e um espaço após “Mashable” e “make”. Mas como não há muitos casos em que esse padrão em particular ocorre, o programa provavelmente o sobrescreveria com um padrão mais aparente. O programa real é capaz de encontrar um dicionário muito mais eficiente e um arquivo comprimido do que nós poderíamos.
De acordo com o site educacional e instrucional HowStuffWorks, é comum que as linguagens tenham padrões redundantes, e é por isso que os arquivos de texto são facilmente comprimidos. Mas a taxa de redução de arquivos depende de vários fatores, incluindo o tipo e tamanho do arquivo e como o programa opta por compactá-lo.
Em contraste, imagens e ficheiros MP3 contêm mais informação única sem muitos padrões. É aí que entra a “compressão com perdas” – os programas de compressão se livram do que eles consideram informação desnecessária. Se você tivesse uma imagem digitalizada, por exemplo, com um céu azul, um programa de compressão poderia escolher uma cor de azul usada para cada pixel. Se o esquema de compressão funcionar bem, a mudança não seria muito notável, mas o tamanho do arquivo seria significativamente menor.
O problema com compressão com perdas, no entanto, é que você não pode obter o arquivo original do arquivo comprimido, tornando-o menos ideal do que compressão sem perdas quando você precisa reter toda a informação original, como quando você está baixando bancos de dados e certas aplicações.
Mashable composite image cortesia de , tose, Auris.