A compressão de ficheiros é uma parte essencial de como funciona a web. Permite-nos transferir ficheiros que de outra forma levariam demasiada largura de banda e tempo. Sempre que acede a ficheiros ZIP ou visualiza imagens JPEG, está a beneficiar da compressão de ficheiros.
Assim, a dada altura, provavelmente já fez uma pergunta: como é que a compressão de ficheiros funciona? Aqui está um olhar básico sobre como funciona a compressão.
O que significa Compressão?
Em termos simples, compressão de ficheiros (ou compressão de dados) é o acto de reduzir o tamanho de um ficheiro enquanto preserva os dados originais. Ao fazê-lo, permite ao ficheiro ocupar menos espaço num dispositivo de armazenamento, para além de facilitar a transferência através da Internet ou de outra forma.
É importante notar que a compressão não é infinita. Enquanto comprimir um ficheiro num ZIP reduz o seu tamanho, não se pode continuar a comprimir o ficheiro para reduzir ainda mais o tamanho a nada.
Geralmente, a compressão do ficheiro é dividida em dois tipos principais: sem perdas e sem perdas. Vejamos, por sua vez, como ambos funcionam.
Como Funciona a Compressão de Ficheiros: Compressão com perdas
A compressão com perdas reduz o tamanho do ficheiro ao remover pedaços desnecessários de informação. É mais comum nos formatos de imagem, vídeo e áudio, onde não é necessária uma representação perfeita do suporte de origem. Muitos formatos comuns para estes tipos de suportes utilizam compressão com perdas; MP3 e JPEG são dois exemplos populares.
Um MP3 não contém toda a informação de áudio da gravação original – em vez disso, deita fora alguns sons que os humanos não conseguem ouvir. De qualquer forma, não se nota a sua falta, pelo que a remoção dessa informação resulta num ficheiro de tamanho inferior, basicamente sem inconvenientes.
Da mesma forma, os JPEGs removem partes não vitais das imagens. Por exemplo, numa imagem contendo um céu azul, a compressão JPEG pode alterar todos os pixels do céu para uma ou duas tonalidades de azul, em vez de usar dezenas de tonalidades diferentes.
Contudo, quanto mais se comprime um ficheiro, mais perceptível se torna a queda de qualidade. Provavelmente já experimentou isto com ficheiros MP3 enlameados carregados no YouTube. Por exemplo, compare esta faixa de música de alta qualidade:
Com esta versão fortemente comprimida da mesma canção:
A compressão com perdas é adequada quando um ficheiro contém mais informação do que a necessária para os seus propósitos. Por exemplo, digamos que tem um enorme ficheiro de imagem RAW. Embora provavelmente queira preservar essa qualidade ao imprimir a imagem num grande banner, é inútil carregar o ficheiro RAW no Facebook.
A imagem contém tantos dados que não são perceptíveis quando visualizada em sites de redes sociais. Comprimir a imagem para um JPEG de alta qualidade deita fora alguma informação, mas a imagem tem quase o mesmo aspecto a olho nu. Veja a nossa comparação de formatos de imagem populares para um olhar mais profundo sobre isto.
Compressão Perdida em Uso Geral
Como já mencionámos, a compressão perdida é óptima para a maioria das formas de meios de comunicação. Devido a isto, é vital para empresas como Spotify e Netflix que transmitem constantemente quantidades massivas de informação. Reduzir ao máximo o tamanho do ficheiro, ao mesmo tempo que preserva a qualidade, torna o seu funcionamento mais eficiente. Consegue imaginar se cada vídeo YouTube foi armazenado e transmitido no seu formato original não comprimido?
Mas a compressão com perdas não funciona tão bem para ficheiros onde toda a informação é crucial. Por exemplo, a utilização de compressão com perdas num ficheiro de texto ou numa folha de cálculo resultaria numa saída falsificada. Não se pode realmente deitar nada fora sem prejudicar gravemente o produto final.
Ao guardar num formato com perdas, pode muitas vezes definir o nível de qualidade. Por exemplo, muitos editores de imagem têm um selector para escolher a qualidade de um JPEG entre 0-100.
Poupar em algo como 90 ou 80 por cento reduz bastante o tamanho do ficheiro, com pouca diferença para o olho. Mas poupando em má qualidade ou salvando repetidamente o mesmo ficheiro num formato com perdas, irá degradá-lo.
Abaixo pode ver um exemplo disto (clique para ver as imagens maiores). À esquerda está a imagem original descarregada a partir de um JPEG. A imagem do meio é o resultado de guardar isto como um JPEG com 50 por cento de qualidade. E a imagem mais à direita mostra a imagem original guardada em vez disso como um JPEG com 10% de qualidade.
Num relance rápido, a imagem do meio não parece muito má. Só se pode notar os artefactos à volta das bordas das caixas se se aumentar o zoom. É claro que a imagem mais à direita parece imediatamente terrível.
Antes de cortar para carregamento, os tamanhos dos ficheiros eram 874KB, 310KB, e 100KB respectivamente.
Como funciona a compressão de ficheiros: Compressão sem perdas
A compressão sem perdas é uma forma de reduzir o tamanho do ficheiro para que se possa reconstruir perfeitamente o ficheiro original. Ao contrário da compressão sem perdas, não deita nenhuma informação fora. Em vez disso, a compressão sem perdas funciona essencialmente através da remoção da redundância.
Vamos tomar um exemplo básico para mostrar o que isto significa. Abaixo está uma pilha de 10 tijolos: dois azuis, cinco amarelos, e três vermelhos. Esta pilha é uma forma simples de ilustrar esses blocos, mas há outra forma de o fazer.
Em vez de mostrar todos os 10 blocos, podemos remover todos menos um de cada cor. Depois, se usarmos números para mostrar quantos tijolos de cada cor havia, representamos exactamente o mesmo pedaço de informação usando muito menos tijolos. Em vez de 10 tijolos, agora só precisamos de três.
Esta é uma ilustração simples de como é possível uma compressão sem perdas. Armazena a mesma informação de uma forma mais eficiente, removendo a redundância. Considere um ficheiro real, onde a cadeia abaixo indicada:
mmmmmuuuuuuuoooooooooooo
Pode “comprimir” para a seguinte forma, muito mais curta:
m5u7o12
Isto permite-nos utilizar sete caracteres em vez de 24 para representar os mesmos dados, o que é uma poupança significativa.
Compressão sem perdas no uso diário
Como mencionámos acima, A compressão sem perdas é importante nos casos em que não se pode remover nenhum dos ficheiros originais. Se tiver tido curiosidade em saber como funcionam os ficheiros ZIP, esta é a resposta.
Quando se cria um ficheiro ZIP a partir de um programa executável no Windows, este utiliza uma compressão sem perdas. A compressão do ficheiro ZIP é uma forma mais eficiente de armazenar o programa, mas quando o descomprimimos (descomprimimos), toda a informação original está presente. Se utilizasse compressão com perdas para comprimir os executáveis, a versão descomprimida ficaria danificada e inutilizável.
Os formatos comuns sem perdas incluem PNG para imagens, FLAC para áudio, e ZIP. Os formatos sem perdas para vídeo são raros, porque ocupariam enormes quantidades de espaço.
Quando utilizar formatos sem perdas vs. Lossless Compression
Agora que olhámos para ambas as formas de compressão de ficheiros, pode perguntar-se quando deve usar uma ou outra. Acontece que não existe uma forma “melhor” de compressão— tudo depende para que é que está a utilizar os ficheiros.
Em geral, deverá usar compressão sem perdas quando quiser uma cópia perfeita do material de origem, e compressão com perdas quando uma cópia imperfeita é suficientemente boa. Vejamos outro exemplo para ver como podem funcionar em harmonia.
Digamos que acabou de desenterrar a sua antiga colecção de CD e quer digitalizá-la para ter toda a sua música no seu computador. Quando rasga os seus CDs, faz sentido usar um formato como o FLAC, que é sem perdas. Isto permite-lhe ter uma cópia matriz no seu computador que é tão boa como o CD original.
Mais tarde, talvez queira colocar alguma música no seu telefone ou num leitor de MP3 antigo para que possa ouvir em movimento. Provavelmente não se importa que a sua música esteja em perfeita qualidade para isto, para que possa converter os ficheiros FLAC para MP3. Isto dá-lhe um ficheiro áudio que ainda é perfeitamente escutável, mas que não ocupa tanto espaço no seu dispositivo móvel. A qualidade do MP3 convertido a partir do FLAC será tão boa como se tivesse criado um MP3 comprimido directamente a partir do CD original. Pode até comprimir um vídeo directamente no seu iPhone.
O tipo de dados representados num ficheiro também pode ditar que tipo de compressão é melhor. Como as imagens PNG utilizam compressão sem perdas, oferecem pequenos tamanhos de ficheiro para imagens com muito espaço uniforme, como capturas de ecrã de computador. No entanto, notará que os PNG ocupam muito mais espaço quando representam a confusão de cores nas fotografias do mundo real.
Preocupações durante a compressão de ficheiros
Como vimos, a conversão de formatos sem perdas para lossy é óptima, tal como a conversão de um formato sem perdas para outro. Contudo, nunca se deve converter um formato com perdas para formato sem perdas, e deve ter cuidado ao converter um formato com perdas para outro.
Converter formatos sem perdas para formatos sem perdas é simplesmente um desperdício de espaço. Lembre-se de que os formatos com perdas lançam os dados para fora; é impossível recuperar esses dados.
Digamos que tem um ficheiro MP3 de 3MB. Converter isso para FLAC pode resultar num ficheiro de 30MB, mas esses 30MB contêm os sons exactos que o MP3 muito mais pequeno produziu. A conversão de volta para um formato sem perdas não “recupera” a informação que a compressão MP3 deitou fora.
Finalmente, como mencionado anteriormente, a conversão de um formato com perdas para outro (ou a gravação repetida no mesmo formato) irá degradar ainda mais a qualidade. Cada vez que se aplica a compressão com perdas, perde-se mais detalhe. Isto torna-se cada vez mais perceptível até que o ficheiro fique essencialmente arruinado.
Como é que a compressão funciona? Agora Sabe
Demos uma vista de olhos tanto à compressão com e sem perdas para ver como funcionam. Agora sabe como é possível armazenar um ficheiro num tamanho menor do que a sua forma original, e como escolher o melhor método para as suas necessidades.
Naturalmente, os algoritmos que decidem quais os dados que são lançados em métodos com perdas e como melhor armazenar dados redundantes em compressão sem perdas são muito mais complicados do que os que explicamos aqui. Há muito mais a descobrir sobre este tópico, se estiver interessado.
Experimente a compressão sem perdas e precisa de enviar algo a um amigo? Experimente estas formas rápidas de transferir grandes ficheiros online. E se precisar de ajuda na compressão de grandes ficheiros de áudio, aqui estão algumas formas fáceis e eficazes.
Ben é um editor adjunto e o Onboarding Manager na MakeUseOf. Deixou o seu trabalho de TI para escrever a tempo inteiro em 2016 e nunca mais olhou para trás. Há mais de seis anos que cobre tutoriais técnicos, recomendações de jogos de vídeo, e mais como escritor profissional.
Mais de Ben Stegner