Compressão de imagem explicada: com perda, sem perda e WebP
Compressão parece truque de mágica. A mesma fotografia, noventa por cento menor, e você não vê diferença. O truque não é que a informação foi comprimida com esperteza — é que a maior parte dela nunca foi útil para você.
Dois trabalhos diferentes
Compressão sem perda reescreve os dados para ocuparem menos espaço e poderem ser restaurados exatamente. Ela funciona achando redundância: uma sequência de 400 pixels idênticos vira uma anotação dizendo "400 destes". Descomprima e você recupera o arquivo original, byte a byte. O PNG funciona assim, e o ZIP e o GIF também.
Compressão com perda joga informação fora permanentemente e guarda as partes de que seu olho depende. Descomprima e você recebe algo que se parece com o original mas não é. O JPEG funciona assim, e o WebP no modo com perda também.
Nenhuma é melhor. Elas respondem perguntas diferentes. A sem perda pergunta "quão pequeno isso consegue ficar sem perder nada?". A com perda pergunta "quão pequeno isso consegue ficar antes de alguém notar?" — e a resposta da segunda é dramaticamente menor, porque a visão humana é fácil de enganar de maneiras específicas e previsíveis.
O que a compressão com perda explora
Três fatos sobre olhos, mais ou menos na ordem do quanto rendem.
Você enxerga brilho muito melhor que cor. A retina tem muito mais bastonetes que cones sensíveis a cor. O JPEG separa a imagem em luminância (brilho) e crominância (cor), e então guarda a cor em metade ou um quarto da resolução. Metade do dado de cor desaparece e quase ninguém vê.
Você não percebe detalhe fino em áreas movimentadas. A imagem é cortada em blocos de 8×8 e cada um é convertido num conjunto de componentes de frequência — gradientes amplos contra textura fina. Os componentes de alta frequência são arredondados com agressividade. Num campo de grama isso é invisível; a grama já era ruído para você.
Você julga bordas mais que superfícies. A compressão preserva transições nítidas e gasta menos nas regiões planas entre elas.
O controle de qualidade regula a dureza desse arredondamento. É por isso que o mesmo ajuste se comporta de forma tão diferente em imagens diferentes: uma foto de folhagem tem enorme conteúdo de alta frequência para descartar, enquanto uma captura de tela com texto é quase inteiramente borda nítida — exatamente onde o algoritmo é pior.
Por que seu logo fica horrível em JPEG
Pegue um logo de cor chapada com bordas duras e salve como JPEG. Manchas acinzentadas aparecem em volta de cada contorno.
Isso é ringing. Uma borda dura é, em termos de frequência, a soma de muitos componentes de alta frequência. Arredonde-os e a borda não consegue reconstruir limpa; ela ultrapassa e oscila. O mesmo arredondamento que é invisível na grama grita contra branco chapado.
Cor chapada é também exatamente onde a compressão sem perda brilha — uma região uniforme grande é redundância pura. Então a regra não é sobre importância, é sobre conteúdo:
- Fotografias, gradientes, textura → com perda. Economia enorme, custo visual nenhum.
- Logos, ícones, capturas de tela, arte de linha, qualquer coisa com texto → sem perda. Fica menor e mais nítido que a versão com perda.
- Qualquer coisa que precise de transparência → PNG ou WebP. O JPEG não tem canal alfa nenhum.
Onde o WebP entra
O WebP faz os dois. No modo com perda ele costuma gerar arquivos 25–35% menores que JPEG com qualidade visual comparável, porque prevê cada bloco a partir dos vizinhos antes de codificar a diferença — técnica emprestada da compressão de vídeo, onde quadros consecutivos são quase iguais. No modo sem perda, em geral supera o PNG. Suporta transparência nos dois modos, o que o PNG faz e o JPEG não.
Suporte já não é consideração; todo navegador atual lida com WebP. Os motivos restantes para usar JPEG são um serviço que exige especificamente, ou um fluxo com software velho o bastante para não reconhecer o formato.
Uma rotina prática
- Redimensione antes de comprimir. Essa é a maior economia disponível e a mais pulada. Uma foto de 4000 pixels de largura exibida numa coluna de 800 está carregando 25 vezes os pixels de que precisa. Reduzir as dimensões primeiro faz toda etapa seguinte operar sobre uma fração do dado — redimensionar e então comprimir bate comprimir sozinho por larga margem.
- Escolha o formato pelo conteúdo, usando a regra acima.
- Comece na qualidade 80 e desça, não suba. Perto de 80 a perda é invisível em fotografia. Compare com zoom de 100%, não ajustado à tela, e olhe áreas planas e bordas — é onde os artefatos aparecem primeiro.
- Confira o número e depois a imagem. Se uma etapa economizou 4%, não valeu o custo de qualidade; reverta.
Um compressor que roda no navegador torna esse ciclo rápido, e tem um efeito colateral que vale conhecer: como a imagem é redesenhada num canvas antes de ser recodificada, a saída carrega apenas pixels. Metadados EXIF — modelo de câmera, data e hora, coordenadas de GPS — não sobrevivem ao processo. Isso costuma ser bem-vindo antes de publicar uma foto, e ocasionalmente é uma surpresa se você contava com eles.
A porta de uma direção só
Compressão com perda não é reversível, e ela acumula. Cada salvamento descarta mais informação, então um JPEG editado e salvo cinco vezes foi degradado cinco vezes, mesmo que o ajuste de qualidade nunca tenha mudado. O estrago é invisível a cada passo e óbvio no fim.
Guarde um original. Edite a partir dele, exporte uma cópia comprimida, e nunca deixe a cópia comprimida virar o mestre. Esse único hábito evita a forma mais comum de as imagens se deteriorarem silenciosamente ao longo da vida de um projeto.