Perché le GIF supportano solo 256 colori
Il formato GIF è stato progettato nel 1987, quando 256 colori erano considerati generosi per i display dei computer. Utilizza colori indicizzati a 8 bit: ogni pixel memorizza un indice (0–255) che fa riferimento a un colore in una tabella di ricerca (la palette). La palette contiene fino a 256 colori, ciascuno definito come una tripletta RGB.
L'intuizione chiave: questi 256 colori possono essere qualsiasi 256 colori dell'intero spazio colore RGB da 16,7 milioni. Una GIF di un tramonto può utilizzare 256 sfumature di arancione, rosso e viola. Una GIF di una foresta può utilizzare 256 sfumature di verde. La sfida è scegliere i 256 colori giusti per il tuo contenuto specifico.
Perché la selezione della palette è importante
Una palette «web-safe» generica utilizza un set fisso di 216 colori distribuiti sullo spettro. Per i contenuti video, questo produce risultati scadenti perché i colori potrebbero non corrispondere affatto al tuo video.
Una palette personalizzata analizza i pixel effettivi del tuo video e seleziona i 256 colori che rappresentano al meglio il contenuto. Il miglioramento è drammatico — i colori appaiono naturali, le sfumature sono più morbide e i dettagli vengono preservati.
Il nostro convertitore utilizza l'approccio a due passaggi di FFmpeg: prima analizza il video per generare una palette ottimale (palettegen), poi applica quella palette per creare la GIF (paletteuse). Questo produce risultati notevolmente migliori rispetto agli strumenti a passaggio singolo.
Metodi di generazione della palette
Modalità full (stats_mode=full)
Analizza tutti i pixel in tutti i fotogrammi per costruire un'unica palette globale. Ideale per video con contenuti diversificati e in evoluzione, come clip di film, sequenze d'azione e videoclip musicali in cui i colori variano tra i fotogrammi.
Modalità diff (stats_mode=diff)
Conta solo i pixel che cambiano tra i fotogrammi. Migliore per video con sfondi statici come registrazioni dello schermo, presentazioni e video tipo talking-head. Produce file più piccoli perché assegna più voci di palette al contenuto che cambia e meno allo sfondo invariato.
Modalità single (stats_mode=single)
Crea una nuova palette per ogni fotogramma. Offre la massima qualità possibile poiché ogni fotogramma riceve una palette ottimizzata, ma produce file più grandi. Ideale per contenuti fotografici in cui la precisione del colore è critica.
Compromessi sul numero di colori
| Colori | Qualità | Risparmio dimensioni | Ideale per |
|---|---|---|---|
| 256 | Migliore possibile | Riferimento | Contenuti fotografici |
| 128 | Differenza appena percepibile | 15–25 % | Punto ideale per la maggior parte dei contenuti |
| 64 | Lieve banding | 30–45 % | Registrazioni dello schermo |
| 32 | Posterizzazione evidente | 45–60 % | Solo grafica semplice |
| 16 | Degrado significativo | 60–75 % | Loghi, pixel art |
Dithering: simulare i colori mancanti
Il dithering utilizza pattern dei colori disponibili per simulare colori non presenti nella palette. È la differenza tra un banding di colore brusco e sfumature dall'aspetto morbido.
- Nessun dithering: mappa ogni pixel al colore della palette più vicino. Il più veloce, file più piccoli, ma mostra banding visibile sulle sfumature. Ideale per contenuti a colori piatti come loghi e pixel art.
- Bayer (ordinato): utilizza un pattern di tratteggio deterministico. Il pattern regolare si comprime bene, rendendolo la scelta migliore quando la dimensione del file è critica. Pattern leggermente visibile a ispezione ravvicinata.
- Floyd-Steinberg (diffusione d'errore): distribuisce l'errore di quantizzazione ai pixel vicini. Produce i risultati dall'aspetto più naturale per contenuti fotografici. File più grandi a causa dei pattern di pixel dall'aspetto casuale.
- Sierra2: diffusione d'errore migliorata con un kernel di distribuzione più ampio. Produce risultati intermedi tra Floyd-Steinberg e Bayer sia in qualità sia in dimensione del file. La nostra raccomandazione predefinita.
Raccomandazioni per tipo di contenuto
| Contenuto | Modalità palette | Colori | Dithering |
|---|---|---|---|
| Registrazione schermo | diff | 128 | Bayer |
| Clip di film | full | 256 | Sierra2 |
| Animazione di logo | full | 64 | Nessuno |
| Fotografia | single | 256 | Floyd-Steinberg |
Alternative moderne con migliore supporto dei colori
Se il limite di 256 colori del GIF è inaccettabile per il tuo contenuto, considera queste alternative:
- Animazione WebP: colore a 24 bit (16,7 M di colori), piena trasparenza alpha, 50–70 % più piccolo di GIF. Supportato da oltre il 97 % dei browser.
- APNG: piena qualità PNG con colore a 24 bit e alpha a 8 bit. Stesso supporto browser di WebP. Ideale quando serve trasparenza con colore pieno.
- MP4/WebM: milioni di colori, file molto più piccoli. Usa
<video autoplay loop muted playsinline>sui siti web.
Confronta tutte le opzioni nel nostro confronto dei formati animati.