Todos nós já ouvimos falar em compactação de arquivos. Qualquer pessoa que baixe arquivos da Web regularmente está familiarizada com formatos como ZIP e RAR, e qualquer pessoa que editar arquivos de mídia sabe que é necessário compactar para compartilhar imagens, músicas e vídeos na Web sem usar toda a sua largura de banda. A compactação de arquivos está no centro de como a web funciona, você pode argumentar, porque nos permite compartilhar arquivos que, de outra forma, demorariam muito para serem transferidos. Mas como isso funciona?
Não é nada mágico, mas é o resultado de muito trabalho duro de muitas pessoas muito inteligentes. Vamos explorar como a compactação de arquivos funciona examinando os dois principais tipos de compactação - sem perdas e com perdas.
Apenas um aviso - vou simplificar demais as coisas aqui, numa tentativa de tornar isso legível por majores não matemáticos. Confira os artigos da Wikipédia para mais detalhes, e as fontes da Wikipédia para ainda mais.
Compressão sem perdas
A compactação sem perdas basicamente funciona removendo a redundância. O que isso significa? Vamos simplificar as coisas. Esta pilha de tijolos representará nossos dados:
Como você pode ver, temos dois tijolos vermelhos, cinco amarelos e três azuis. A maneira mais simples de representar isso é como você vê acima: os tijolos em si. Mas não é a única maneira de representar isso. Eu também poderia fazer isso:
Na imagem acima você pode ver exatamente a mesma informação - duas vermelhas, cinco amarelas e três azuis - mas ocupa muito menos espaço. Eu representei tijolos redundantes usando números, o que significa que eu preciso apenas de três tijolos para representar dez.
Isso dá uma ideia aproximada de como a compactação sem perdas é possível. As informações redundantes são substituídas por instruções que informam ao computador quanto dados idênticos se repetem. Outro exemplo simplificado:
fffffffuuuuuuuuuuuu
Pode ser "comprimido" para:
f7u12
Esse é apenas um método de compactação sem perdas, é claro, mas indica como isso é possível. Outros truques matemáticos são usados, mas a principal coisa a se lembrar sobre compactação sem perdas é que enquanto o espaço é salvo temporariamente, é possível reconstruir o arquivo original inteiramente a partir do comprimido. Se você vê três tijolos com números, sabe exatamente como fazer a pilha. Nenhuma informação é perdida, assim como o nome sem perdas implica.
Programas como o WinZip são baseados em compactação sem perdas. Eles removem essas informações redundantes quando você compacta (ou “zipa”) o arquivo e o restaura quando descompacta (ou “descompacta”). Nada está perdido.
No mundo da imagem, os arquivos PNG também usam compactação sem perdas. É por isso que eles oferecem um tamanho de arquivo menor para imagens com muito espaço uniforme: essa informação redundante é representada usando instruções.
É claro que tudo isso é uma simplificação excessiva, mas dá o ponto básico. Leia mais sobre compactação sem perdas na Wikipedia, se estiver interessado.
Compressão com perda
Claro, há muito o que você pode realizar usando apenas métodos sem perdas. Felizmente, eles não são a única opção: você também pode simplesmente remover informações. Isso é chamado de compactação com perdas, e não é tão louco quanto parece; Na verdade, você provavelmente tem muitos arquivos no seu computador feitos usando compactação com perdas.
Um MP3, por exemplo. Se você é como a maioria das pessoas, seu computador armazena milhares delas para você, mas sabia que elas não contêm todas as informações de áudio da gravação original? Alguns sons, que humanos não podem ou mal podem ouvir, são removidos como parte da compressão. Quanto mais você compactar um arquivo, mais informações são removidas, e é por isso que um arquivo excessivamente compactado começará a soar confuso.
A compressão com perdas tende a ser usada principalmente para arquivos de mídia - imagens, som e vídeo. Usar a compactação com perdas para um arquivo de texto seria problemático, pois as informações resultantes seriam distorcidas. Nem sempre é necessário que os arquivos de mídia incluam todas as informações, no entanto.
Outro exemplo de compactação com perdas é a imagem JPEG. De um modo geral, as imagens vistas na web não precisam ser tão de alta qualidade quanto as imagens destinadas à impressão. Como tal, você pode remover muitas informações redundantes em uma imagem da Web, mesmo que isso pareça horrível.
Naturalmente, comprimir repetidamente um arquivo usando métodos com perdas diminui a qualidade - toda vez que você faz isso, mais dados são perdidos. Abaixo está uma foto que eu comprimi três vezes para demonstrar isso:
Você pode ver da esquerda para a direita como a qualidade diminui. Pode não importar, dependendo do que a imagem será usada, e é por isso que a compressão com perdas existe.
É importante lembrar que os arquivos compactados usando métodos com perdas na verdade perdem dados, o que significa que você não pode recriar o arquivo original de um comprimido usando métodos com perdas. É óbvio quando você pensa sobre isso, mas muitos projetos de impressão foram arruinados por falta de compreensão deste ponto-chave.
Eu realmente só arranhei a superfície aqui, então por favor: leia mais sobre compressão com perdas na Wikipedia. É meio fascinante.
Conclusão
A compactação ajudou a tornar a Web o que ela é. Nos dias de imagens comprimidas dialup trouxe fotos para o nosso navegador, pelo menos não a uma velocidade aceitável. O vídeo comprimido possibilita sites como o YouTube, e qualquer um que use redes de compartilhamento de arquivos está familiarizado com arquivos ZIP e RAR.
Você tem algo a acrescentar? Tenho certeza que perdi alguns pontos-chave para me educar (e os outros leitores) nos comentários abaixo.
Crédito de imagem: imagem da primavera via Shutterstock