Ao exportar uma imagem, aquele controle deslizante de qualidade do JPEG — você sempre usou como porcentagem? Arrasta até 80 e pensa: “mantive oitenta por cento da qualidade”; puxa até 100 e acha: “agora não perdi nada”.
Essa interpretação precisa ser completamente derrubada: o número no controle deslizante não tem nenhuma relação com “qual porcentagem da qualidade”, e qualidade 100 também não é sem perdas. Primeiro, as conclusões práticas: para guardar fotos com segurança, use 85–92; para publicar na web e em redes sociais, 75–82 é suficiente; não deixe 100 como padrão, ele só vai dobrar ou até triplicar o tamanho do arquivo, sem ganhar nada em qualidade. Abaixo explico em linguagem simples, destrinchando esse controle.
Em uma frase: o controle de qualidade do JPEG não controla “quanta qualidade preservar”, mas sim quão severos são os divisores na tabela de quantização — quanto maiores os divisores, mais agressivo o arredondamento, mais informação se perde. Ele não tem relação linear nem com qualidade nem com tamanho de arquivo; a mudança de 100 para 90 não é igual à de 20 para 10.
Premissa: JPEG é um formato com perdas. A partir do momento em que você aperta salvar, já está perdendo informação. O controle só decide “quão severa é a perda”, não “se haverá perda”. O método de perda segue um fluxo fixo, e o controle é o último portão dessa linha de produção.
Ao salvar, a imagem primeiro é convertida de RGB para YCbCr, separando luminância e crominância em dois canais. Isso é feito porque o olho humano é muito mais sensível à luminância do que à cor; separar primeiro facilita preservar a luminância depois.
Em seguida, a imagem inteira é dividida em blocos de 8×8 pixels, e cada bloco passa por uma transformada discreta de cosseno (DCT), convertendo as cores dos pixels em uma série de valores de frequência. Pode-se pensar nisso como decompor um acorde em notas individuais: baixas frequências são as cores de base e gradientes da imagem; altas frequências são bordas nítidas e texturas finas. A versão completa desse fluxo está bem detalhada no verbete sobre JPEG da Wikipédia.
O golpe real está no último passo: cada valor de frequência é dividido por um número da tabela de quantização (Quantization Table) e depois arredondado para inteiro. O arredondamento é onde a informação morre permanentemente — o resto da divisão é simplesmente descartado e não volta. O controle de qualidade regula quão severos são esses divisores: valor alto no controle, divisores pequenos, arredondamento quase não danifica os dados; valor baixo, divisores grandes, o arredondamento simplesmente apaga detalhes. E os divisores das componentes de alta frequência crescem mais rápido, por isso as primeiras vítimas são sempre bordas e texturas finas.
Por isso ele não pode ser uma porcentagem. De 100 para 90 e de 20 para 10, a variação dos divisores é completamente diferente, e a diferença em qualidade e tamanho também é completamente diferente — perto de 90, você pode arrastar um nível e não sentir nada; perto de 20, arrastar um nível e a imagem está destruída. Entender isso como porcentagem é o mal-entendido mais comum e mais caro desse controle.
Resposta direta: 100 ainda está longe de ser sem perdas, por dois defeitos graves — um que não depende do controle, e outro que nem o controle consegue salvar.
O primeiro é a subamostragem de crominância (chroma subsampling). Após converter RGB para YCbCr, antes de a compressão realmente começar, a maioria dos codificadores já descarta cerca de 75% dos detalhes de crominância, pelo mesmo motivo: o olho humano é insensível à cor, então não se nota a perda. Esse passo não é controlado pelo controle deslizante; mesmo em 100, ele é executado.
O segundo é que a matemática em si não é limpa. Mesmo com os divisores da tabela de quantização no mínimo, o vai-e-vem de “pixel vira frequência, frequência volta a pixel” ainda tem pequenos erros de arredondamento. O arquivo salvo, ao ser aberto, já não contém os mesmos pixels de quando você apertou salvar.
Se você quer perda zero de bits, siga a rota sem perdas: PNG, TIFF ou o modo sem perdas do WebP. Com perdas é via de mão única; qualquer nível de JPEG é assim, incluindo aquele 100 aparentemente “perfeito”.
Muitos testes práticos e comparações pixel a pixel convergem para uma divisão bem clara: duas faixas cobrem quase todos os cenários.
85–92 é a faixa de preservação. Portfólios, imagens para entregar a clientes, aquelas originais que você não quer mexer — use esta faixa. Um arquivo salvo em qualidade 90 fica cerca de 1/8 a 1/12 do tamanho não comprimido, e a diferença é invisível a olho nu — você precisa ampliar a 400% e olhar um pedacinho específico para notar mudança.
75–82 é a faixa para web. Imagens para sites, uploads em redes sociais — use esta faixa. O arquivo fica 40%–60% menor que a faixa de preservação, e o custo é principalmente uma leve suavização em texturas complexas, praticamente imperceptível em visualização normal.
Se você leu o artigo anterior «Com perdas e sem perdas», a zona ideal de 80–85 que ele indica não conflita com estas duas faixas: 80 está dentro da faixa web, e 85 já entra na faixa de preservação. Imagens já salvas em 80–85 não precisam ser reprocessadas.
Resumindo as três faixas em uma frase: o que você quer guardar, use 85–92; o que vai enviar, use 75–82; abaixo de 60 é campo minado, evite.
Exportar no padrão 100 é ansiedade, não estratégia. Um arquivo em qualidade 85 é 60%–75% menor que um em qualidade 100, mas visualmente não há diferença alguma; para a web, isso é simplesmente alongar o tempo de carregamento à toa — já detalhei essa conta das imagens em sites no artigo sobre otimização de velocidade de imagens na web.
Quando o controle passa de 60 para baixo, a qualidade não cai em rampa, cai em precipício.
A causa continua sendo o arredondamento. Com valores muito baixos, os divisores das componentes de alta frequência ficam absurdamente grandes; um valor de frequência, depois de dividido e arredondado, simplesmente vira zero — esse detalhe equivale a não ter sido salvo. Então categorias inteiras de informação visual desaparecem em massa: fios de cabelo, tramas de tecido, pontas de traços em fontes com serifa são os primeiros a sumir.
O que resta na imagem são os artefatos clássicos de JPEG: blocos de 8×8, faixas de cor em gradientes, halos e ruído mosquito (mosquito noise) junto a bordas nítidas. As formas grandes ainda estão lá, mas a imagem já não conta como “uma imagem para se ver”. Escrevi um artigo separado com ilustrações sobre como cada tipo de artefato se forma.
Portanto, minha conclusão é: 60 é o limite prático para imagens comuns. Os poucos KB economizados abaixo disso não valem o resultado, que parece falso à primeira vista.
“Qualidade 90” não é moeda universal. A especificação JPEG fornece um conjunto de tabelas de quantização recomendadas (Annex K), mas qual tabela cada software usa e como a escala é definida fica a critério de cada um. Mesmo em “alta qualidade”, quatro ferramentas comuns apresentam números completamente diferentes: a escala do Photoshop é 0–12, e seu 10 equivale aproximadamente ao 90 da implementação de referência libjpeg; GIMP e ImageMagick usam escala 1–100, com o GIMP adotando 85 no preset “alta qualidade” e o ImageMagick adotando 92; libjpeg, como implementação de referência, usa 90 como valor de referência.
Dois programas configurados em “qualidade 85” também não geram arquivos idênticos. Então não memorize um número em um software e aplique em outro. Para comparar entre softwares e projetos, só há dois métodos confiáveis: ver o tamanho real do arquivo de saída e ver o resultado visual real.
O controle deslizante não é confiável, e o olho nu é afetado pela tela e pelo estado do observador. Dá para quantificar “não consigo ver diferença”? Dá, e uma abordagem muito mais confiável é trocar de régua: o índice de similaridade estrutural (SSIM, Structural Similarity Index Measure).
Ele não compara pixel a pixel, mas observa quanto mudaram três coisas: estrutura, luminância e contraste, o que se aproxima mais de como o olho humano avalia imagens do que “contar quantos pixels são diferentes”. A pontuação vai de 0 a 1; 1 significa que as duas imagens são completamente idênticas. A fórmula e toda a história por trás disso estão bem explicadas no verbete sobre SSIM da Wikipédia.
Para os níveis de qualidade comuns, o SSIM fica aproximadamente assim: arquivos em qualidade 85 geralmente alcançam pontuação acima de 0,97, visualmente indistinguíveis do original; caindo para 60, a pontuação fica entre 0,90–0,93, levemente suavizado, visível só com ampliação; em 40, resta 0,82–0,87, e os artefatos já são visíveis a olho nu.
Esses números são muito mais honestos que o controle deslizante. Para definir a qualidade sem chutar, pode-se usar o comando compare do ImageMagick para calcular diretamente o SSIM de duas imagens e encontrar o ponto que “economiza o máximo de tamanho sem cair abaixo da linha perceptual de 0,85”. Detalhei o uso dessa régua em um artigo separado, «SSIM em profundidade».
A pequena ferramenta abaixo funciona inteiramente no seu navegador – as imagens nunca são enviadas. Escolha uma imagem (ou clique em “Experimentar imagem de exemplo”), arraste o controle deslizante e observe como mudam o tamanho comprimido e o SSIM; você também pode buscar automaticamente o ajuste de menor tamanho com SSIM ≥ 0,85. O valor de SSIM é calculado em tempo real para a imagem recém-comprimida – exatamente a régua da seção anterior.
Nota: os codificadores JPEG nativos dos navegadores não expõem a subamostragem de crominância nem as tabelas de quantização. Por isso a ferramenta mostra o efeito real do controle deslizante e quantifica a diferença com SSIM, em vez de tornar modificáveis as entranhas do codificador – e confirma exatamente o que este artigo diz: qualidade 100 não é sem perdas, e o mesmo número significa coisas diferentes em softwares diferentes.
Na grande maioria dos casos, 80 já basta; 100 não deveria ser padrão. Um arquivo em qualidade 85 é 60%–75% menor que um em qualidade 100, mas a olho nu não há diferença alguma; para fotos que precisam de segurança, use 85–92; para web e redes sociais, 75–82 é suficiente; abaixo de 60 aparecem artefatos evidentes.
Não. Mesmo no máximo 100, o JPEG geralmente já perde cerca de 75% dos detalhes de cor na subamostragem de crominância, e depois passa por quantização e arredondamento causando perdas irreversíveis. Para sem perdas, use PNG, TIFF ou WebP sem perdas.
A escala de qualidade JPEG do Photoshop é 0–12, não 1–100; seu 10 equivale aproximadamente ao 90 da implementação de referência libjpeg. Cada software mapeia o mesmo número de forma diferente; não copie números entre softwares, use como referência o tamanho real de saída e o resultado visual.
Comparar ampliada com o original é o mais direto; para uma métrica objetiva, use SSIM. Um JPEG em qualidade 85 geralmente tem SSIM acima de 0,97, visualmente indistinguível do original; em torno de 40, cai para 0,82–0,87, com artefatos visíveis a olho nu. O comando compare do ImageMagick calcula essa pontuação diretamente.
O número no controle deslizante é um parâmetro de divisão, não uma porcentagem de qualidade; 100 não é sem perdas, e abaixo de 60 é precipício. Se quiser uma frase de bolso: para fotos, salve em 85; para publicar na web, salve em 80; 100 não é necessário em lugar nenhum — o arquivo dobra de tamanho e a qualidade não sobe nada.
Se você quer ir da escolha de formato e redimensionamento até ajuste de qualidade e otimização de velocidade para web, veja o «Guia Completo de Compressão de Imagens»; toda a cadeia está nesse artigo.