Como funciona a compactação JPEG
Uma explicação simples das etapas por trás da compactação eficiente de imagens
24. January 2025 por Bianca Palmer
Você já se perguntou como seu celular ou câmera consegue tirar uma foto e, em poucos instantes, ela é salva como um JPEG, menor, mais rápida e ainda com aparência nítida? Por trás disso, existe um processo poderoso em ação, reduzindo arquivos de imagem grandes a uma fração do tamanho original, mantendo a qualidade alta. Mas como isso realmente funciona? Neste guia, vamos analisar os detalhes da A compressão JPEGe explicar cada etapa em termos simples para que você possa entender como esse processo de compactação de imagens funciona.
O que é JPEG?
JPEG (sigla para Joint Photographic Experts Group) é um dos formatos de imagem mais comuns. É a escolha padrão para armazenar fotos digitais. A principal vantagem do JPEG é sua capacidade de comprimir arquivos de imagem, tornando-os muito menores sem perda de qualidade perceptível.
Por exemplo, uma imagem de alta qualidade sem compactação pode ter 46 MB. Após a compactação em JPEG, a mesma imagem pode ser reduzida para apenas 4,1 MB. Mas como isso é feito mantendo a nitidez da imagem?
A resposta está no compression process, processo de compactação, que aproveita o modo como nossos olhos funcionam e remove dados desnecessários.
O que o JPEG faz?
Em termos simples, o JPEG analisa a imagem e remove elementos que nossos olhos não percebem facilmente. Quando você comprime uma imagem com JPEG, pode controlar quanto de compactação será aplicado. Ajustando a configuração de "qualidade", você decide quanto espaço deseja economizar. Conforme a qualidade diminui de 100% para 0%, o tamanho do arquivo também diminui proporcionalmente.
À medida que você comprime mais, a resolução da imagem permanece a mesma, mas alguns defeitos ou "artefatos" podem aparecer. Esses defeitos parecem pequenos quadrados e geralmente são difíceis de notar, a menos que você dê zoom. O objetivo do JPEG é deixar o arquivo o menor possível sem que a imagem pareça ruim para o olho humano.
As etapas da compactação JPEG
A compressão JPEG não é apenas um único processo; é uma série de etapas criadas para reduzir o tamanho da imagem. Aqui estão as cinco etapas principais que tornam o JPEG tão eficiente.
Etapa 1: Conversão de espaço de cor
As imagens são formadas por pixels, e cada pixel tem componentes vermelho, verde e azul (RGB) que se combinam para criar as cores. O JPEG começa convertendo esses valores RGB em um espaço de cor diferente:
- Luminância (Brilho): É o brilho ou a claridade de um pixel e é importante para definir o contraste geral da imagem.
- Crominância (Cor): São as informações de cor, incluindo matiz e saturação.
Essa conversão aproveita o fato de que o olho humano é mais sensível ao brilho (luminância) do que à cor (crominância). Ao separar brilho de cor, o JPEG permite uma redução de dados direcionada nas etapas seguintes, mantendo intactos os detalhes visuais mais importantes.
Nenhum dado é perdido nesta etapa, mas ela prepara a imagem para uma compressão eficiente.
Etapa 2: Redução de crominância/Chroma Subsampling
Chroma Subsampling é um é uma técnica aplicada após a conversão do espaço de cor. Lembra que dissemos que nossos olhos não são muito bons para enxergar cores (crominância) em comparação com brilho (luminância)?
O JPEG usa esse fato reduzindo a quantidade de dados de cor. Ele reduz as imagens de crominância azul e vermelha fazendo a média delas em blocos de quatro pixels. Isso torna os dados de cor muito menores, mantendo a luminância (brilho) inalterada. Neste ponto, a imagem já está significativamente comprimida.
Etapa 3: Transformada Cosseno Discreta (DCT)
A Transformada Cosseno Discreta (DCT) é uma técnica matemática usada para converter os dados da imagem do domínio espacial (em que a imagem é uma grade de pixels) para o domínio da frequência. Esse processo ajuda a identificar quais partes da imagem contêm as informações visuais mais importantes e quais partes podem ser descartados.
A DCT divide a imagem em blocos de 8x8 e converte cada bloco em uma coleção de valores de frequência. Frequências mais altas, que representam mudanças rápidas nos valores dos pixels, como bordas ou ruídos, costumam ser menos perceptíveis para o olho humano e podem ser simplificadas ou removidas.
Etapa 4: Quantização
Depois que a DCT é aplicada, os dados de frequência resultantes passam por quantização. Nessa etapa, a faixa de valores de frequência é reduzida dividindo-os por um conjunto de constantes chamado tabela de quantização. Esse processo basicamente arredonda os valores de frequência para simplificá-los.
Valores de frequência mais altos são quantizados com mais intensidade, o que significa que perdem mais precisão por serem menos importantes para a qualidade geral da imagem. Essa quarta etapa reduz a quantidade de dados necessária para representar a imagem, deixando o arquivo menor. No entanto, quantização em excesso pode gerar artefatos visíveis, como blocos ou borrões, especialmente em níveis mais altos de compressão.
Etapa 5: Codificação Run Length e Huffman
Após a quantização, os dados ainda não são compactos o suficiente para um armazenamento eficiente. É aqui que Run Length Encoding (RLE) e Codificação Huffman são utilizados.
Primeiro, a RLE é usada para simplificar longas sequências de dados repetidos (como zeros), armazenando apenas a contagem das repetições em vez de cada valor individual. Em seguida, é aplicada a Codificação Huffman, uma técnica que substitui valores que ocorrem com frequência por códigos de bits mais curtos, tornando o arquivo ainda menor.
These two métodos de codificação trabalham juntos para reduzir drasticamente o tamanho do arquivo sem sacrificar muito da qualidade da imagem.
Observações adicionais
Embora o JPEG seja um formato muito eficiente, há alguns pontos importantes a considerar:
- Nível de compressão: o JPEG permite que os usuários escolham o nível de compressão, mas compressões maiores reduzem o tamanho do arquivo e podem introduzir artefatos visíveis, como bordas borradas ou pixelização. Isso acontece quando os valores da tabela de quantização são muito altos, o que leva à adição de mais zeros, deixando o arquivo menor, porém à custa da qualidade da imagem.
- Perda de dados de alta frequência: a quantização reduz a precisão dos dados de alta frequência (detalhes como bordas nítidas), por isso o JPEG é ótimo para texturas suaves, mas pode ter dificuldades com linhas nítidas e gráficos vetoriais.
- Não é ideal para gráficos vetoriais: o JPEG não é a melhor opção para comprimir gráficos vetoriais, pois pode gerar artefatos perceptíveis nos limites de formas ou linhas.
Apesar dessas limitações, o JPEG continua sendo o formato de imagem mais popular, em parte porque é antigo, bem compreendido e livre de royalties. No entanto, formatos mais recentes como WebP ou HEIF oferecem taxas de compressão ainda melhores sem comprometer a qualidade, o que os torna alternativas interessantes em determinados contextos.
Conclusão
O algoritmo de compressão JPEG é um feito notável na gestão de dados de imagem. Ao dividir as imagens em blocos menores, aplicar transformações matemáticas e usar técnicas de codificação eficientes como Run Length e Huffman, ele permite armazenar imagens de alta qualidade em tamanhos de arquivo muito menores.
Embora o JPEG tenha algumas limitações, especialmente com altos níveis de compressão ou gráficos vetoriais, seu uso amplo e a capacidade de oferecer bons resultados para imagens fotográficas fazem dele um padrão duradouro.