GIFs (formato de intercâmbio gráficos) não comprimem bitmaps da mesma maneira que formatos mais modernos, como JPEG ou PNG. Eles usam uma técnica de compressão sem perdas chamada
lempel-ziv-welch (lzw) . Aqui está um colapso de como funciona:
1.
Redução da paleta: Os GIFs são limitados a um máximo de 256 cores. Este é um primeiro passo crucial. O algoritmo analisa as cores do bitmap e seleciona as cores mais representativas para criar uma paleta de cores. Quaisquer cores no bitmap original que não correspondam exatamente a uma dessas 256 cores são aproximadas pela cor mais próxima da paleta. É aqui que alguma perda de informação visual menor * pode * acontecer, dependendo da complexidade da imagem, embora não seja considerada compressão com perdas da mesma maneira que o JPEG. Quanto menos cores, melhor a compressão.
2.
compressão LZW: Depois de reduzir a imagem em sua paleta, a compressão real acontece. A LZW é um algoritmo baseado em dicionário. Funciona construindo um dicionário de repetições de sequências de cores. Em vez de armazenar cada pixel individualmente, ele armazena ponteiros para essas seqüências no dicionário. Quanto mais as seqüências repetidas, mais eficiente a compressão.
Imagine uma linha horizontal simples de pixels vermelhos. Em vez de armazenar "vermelho, vermelho, vermelho, vermelho ...", a LZW pode armazenar algo como "sequência uma repetida 4 vezes", onde "a sequência A" é definida em seu dicionário interno como "vermelho". Isso reduz significativamente a quantidade de dados necessários para representar a imagem.
3.
armazenando os dados: O arquivo GIF final contém:
*
cabeçalho: Informações sobre a imagem, como suas dimensões e paleta.
*
Tabela de cores global (paleta): As 256 cores usadas na imagem.
*
Dados da imagem: Os dados de pixels compactados, usando as seqüências codificadas por LZW.
Por que o GIF não é ideal para todas as imagens: *
Paleta de cores limitada: A limitação de 256 cores torna os GIFs inadequados para imagens com gradientes suaves ou muitas cores. Eles geralmente parecem blocos ou posterizados.
*
nenhum canal alfa: Os GIFs não suportam inerentemente a transparência além de uma única cor de transparência global. Embora o GIF89A permita pixels transparentes, ele suporta apenas uma cor transparente.
*
não é ideal para fotografia: Devido à sua natureza com perdas na fase de redução de cores e na paleta de cores limitadas, os GIFs não são a melhor opção para fotos. Eles resultariam em uma perda significativa de qualidade da imagem em comparação com JPEG ou PNG.
Em resumo, a compactação do GIF funciona reduzindo significativamente as informações de cores e usando um algoritmo baseado em dicionário (LZW) para codificar com eficiência os dados de pixel restantes, alcançando um tamanho menor de arquivo ao custo de perder a precisão de cor. É um método sem perdas em termos de dados * após * quantização de cores, mas a redução inicial de cores introduz menor perda, dependendo da complexidade da imagem.