Por que os GIFs suportam apenas 256 cores
O formato GIF foi projetado em 1987, quando 256 cores eram consideradas generosas para monitores de computador. Ele usa cor indexada de 8 bits: cada pixel armazena um índice (0–255) que referencia uma cor em uma tabela de consulta (a paleta). A paleta contém até 256 cores, cada uma definida como um tripleto RGB.
O insight-chave: essas 256 cores podem ser quaisquer 256 cores do espaço de cor RGB completo de 16,7 milhões. Um GIF de um pôr do sol pode usar 256 tons de laranja, vermelho e roxo. Um GIF de uma floresta pode usar 256 tons de verde. O desafio é escolher as 256 cores certas para o seu conteúdo específico.
Por que a seleção da paleta importa
Uma paleta «web-safe» genérica utiliza um conjunto fixo de 216 cores distribuídas pelo espectro. Para conteúdo de vídeo, isso produz resultados ruins porque as cores podem não corresponder ao seu vídeo de forma alguma.
Uma paleta personalizada analisa os pixels reais do seu vídeo e seleciona as 256 cores que melhor representam o conteúdo. A melhoria é dramática — as cores parecem naturais, os gradientes ficam mais suaves e os detalhes são preservados.
Nosso conversor usa a abordagem de dois passos do FFmpeg: primeiro analisa o vídeo para gerar uma paleta ideal (palettegen), depois aplica essa paleta para criar o GIF (paletteuse). Isso produz resultados significativamente melhores do que ferramentas de um único passo.
Métodos de geração de paleta
Modo full (stats_mode=full)
Analisa todos os pixels de todos os quadros para construir uma única paleta global. Ideal para vídeos com conteúdo diverso e variável, como trechos de filmes, sequências de ação e videoclipes musicais, nos quais as cores variam entre quadros.
Modo diff (stats_mode=diff)
Conta apenas os pixels que mudam entre os quadros. Melhor para vídeos com fundos estáticos, como gravações de tela, apresentações e vídeos estilo talking-head. Produz arquivos menores porque aloca mais entradas de paleta para o conteúdo variável e menos para o fundo estático.
Modo single (stats_mode=single)
Cria uma nova paleta para cada quadro. Oferece a maior qualidade possível, já que cada quadro recebe uma paleta otimizada, mas produz arquivos maiores. Ideal para conteúdo fotográfico em que a precisão das cores é crítica.
Compromissos da contagem de cores
| Cores | Qualidade | Economia de tamanho | Ideal para |
|---|---|---|---|
| 256 | Melhor possível | Referência | Conteúdo fotográfico |
| 128 | Mal se nota a diferença | 15–25 % | Ponto ideal para a maioria dos conteúdos |
| 64 | Leve banding | 30–45 % | Gravações de tela |
| 32 | Posterização perceptível | 45–60 % | Apenas gráficos simples |
| 16 | Degradação significativa | 60–75 % | Logos, pixel art |
Dithering: simulando as cores ausentes
O dithering usa padrões das cores disponíveis para simular cores que não estão na paleta. É a diferença entre um banding abrupto de cores e gradientes de aparência suave.
- Sem dithering: mapeia cada pixel para a cor de paleta mais próxima. O mais rápido, arquivos menores, mas mostra banding visível em gradientes. Ideal para conteúdo de cor lisa, como logos e pixel art.
- Bayer (ordenado): usa um padrão determinístico em hachuras. O padrão regular comprime bem, tornando-o a melhor opção quando o tamanho do arquivo é crítico. Padrão levemente visível em inspeção próxima.
- Floyd-Steinberg (difusão de erro): distribui o erro de quantização aos pixels vizinhos. Produz os resultados de aparência mais natural para conteúdo fotográfico. Arquivos maiores devido aos padrões de pixel com aspecto aleatório.
- Sierra2: difusão de erro aprimorada com um kernel de distribuição mais amplo. Produz resultados entre Floyd-Steinberg e Bayer tanto em qualidade quanto em tamanho. Nossa recomendação padrão.
Recomendações por tipo de conteúdo
| Conteúdo | Modo de paleta | Cores | Dithering |
|---|---|---|---|
| Gravação de tela | diff | 128 | Bayer |
| Trecho de filme | full | 256 | Sierra2 |
| Animação de logo | full | 64 | Nenhum |
| Fotografia | single | 256 | Floyd-Steinberg |
Alternativas modernas com melhor suporte a cores
Se a limitação de 256 cores do GIF for inaceitável para o seu conteúdo, considere estas alternativas:
- Animação WebP: cor de 24 bits (16,7 M de cores), transparência alfa completa, 50–70 % menor que GIF. Suportado por mais de 97 % dos navegadores.
- APNG: qualidade PNG completa com cor de 24 bits e alfa de 8 bits. Mesmo suporte de navegador que o WebP. Ideal quando você precisa de transparência com cor completa.
- MP4/WebM: milhões de cores, arquivos muito menores. Use
<video autoplay loop muted playsinline>em sites.
Compare todas as opções em nossa comparação de formatos animados.