Blog · Guide

Come funziona davvero la compressione lossless delle immagini

Perché un file più piccolo può essere identico pixel per pixel all'originale — e i trucchi di predizione, modellazione e codifica entropica che lo rendono possibile.

in == out · fewer bytes

"Lossless" suona come una contraddizione: come può un file diventare più piccolo senza buttare via nulla? Il trucco è che un'immagine è piena di <b>ridondanza</b>, e comprimere è l'arte di descrivere gli stessi pixel con meno bit. Decodificala e riottieni ogni valore originale, esattamente — bit per bit.

Cosa significa davvero "lossless"

I formati lossy come JPEG scartano informazioni che il tuo occhio difficilmente noterà. La compressione lossless non scarta <i>nulla</i>: l'immagine decodificata è identica all'ingresso. Ecco perché è la scelta giusta per screenshot, line art, loghi, asset UI e master d'archivio — tutto ciò in cui un solo pixel spostato sarebbe un bug, non un arrotondamento.

Passo 1: modellare meglio i dati

I pixel grezzi sono uno spreco perché i vicini sono altamente correlati — il pixel alla tua sinistra è di solito un'ottima stima per quello attuale. I codec lossless <b>predicono</b> ogni pixel dai suoi vicini e memorizzano solo il piccolo errore (il residuo). PNG chiama questi <i>filtri</i> (Sub, Up, Average, Paeth); migliore è la predizione, più i residui si concentrano vicino allo zero, e gli zeri si comprimono magnificamente.

Passo 2: codifica entropica

Una volta che i dati sono per lo più residui piccoli e ripetitivi, un <b>codificatore entropico</b> assegna codici brevi ai valori comuni e codici lunghi a quelli rari. PNG usa DEFLATE (LZ77 + Huffman); codec moderni come WebP lossless e JPEG XL usano la modellazione contestuale con codifica aritmetica o ANS, che si avvicina di più al limite teorico. Il formato cambia, ma l'idea è la stessa: spendere meno bit su ciò che è prevedibile.

Strumento
Cosa fa
oxipng
Prova combinazioni di filtri PNG + ricomprime con DEFLATE
zopfli
DEFLATE più lento che trova stream più piccoli
WebP -lossless
Predizione + trasformazioni di colore + aritmetica
JPEG XL -d 0
Rapporto migliore; può anche transcodificare i JPEG

Dove entrano in gioco gli strumenti

Ecco perché due PNG lossless della stessa immagine possono differire enormemente in dimensione: i pixel sono identici, ma il codificatore ha lavorato di più per descriverli. <b>oxipng</b> cerca strategie di filtro e ricomprime; <b>zopfli</b> è un DEFLATE molto più lento che spesso toglie qualche punto percentuale in più; WebP e JPEG XL portano modelli del tutto più intelligenti. Nessuno di loro tocca un pixel.

# Lossless, massimo impegno — pixel identici, file più piccolo
imageforge logo.png --lossless --effort max
imageforge ui-export.png --convert webp --lossless

I limiti onesti

Il lossless ha un pavimento. Le fotografie di scene reali portano vero dettaglio ad alta frequenza (rumore del sensore, texture fine) che semplicemente non si predice bene, quindi lì i guadagni lossless sono modesti — è lì che i formati lossy si guadagnano il loro posto. Per le immagini piatte, sintetiche o ricche di testo, invece, il lossless taglia di norma il 30–70% a costo zero di qualità. L'abilità sta nel sapere in quale categoria rientra la tua immagine.

Riduci i tuoi PNG senza toccare un pixel.

ImageForge esegue oxipng, zopfli e codificatori lossless moderni per te — in locale.

Continua a leggere