Perché comprimere due volte non dimezza due volte
Pubblicato il 26/06/2026 · 10 min di lettura · Strumenti per file
Daniel Okonkwo — Sviluppatore front-end e redattore Tech presso OneKitly
Performance web · Formati di file
Verificato su 4 fonti
La compressione non schiaccia un file come una pressa schiaccia una balla, dove più pressione dà sempre di più. Trova una struttura descrivibile più brevemente e la riscrive — e una volta andata la struttura, non ne resta da trovare. La compressione senza perdita è perciò quasi idempotente: rieseguirla trova un file la cui ridondanza è già stata tolta e lo restituisce sostanzialmente identico, a volte di qualche byte più grande perché si è aggiunta una nuova intestazione. Non è un difetto. È ciò che «senza perdita» significa: la prima passata ha già tolto tutto il togliibile senza scartare informazione, quindi la seconda non ha mosse legali. Sotto c'è un pavimento duro, l'entropia di Shannon dei dati, e nessun algoritmo va sotto — ed è anche perché zippare un PDF, un JPEG o un MP4 già compresso guadagna al massimo l'uno o due per cento. La compressione con perdita si comporta diversamente, e peggio. Ogni passata scarta informazione vera e ricodifica il resto, quindi una seconda passata riduce davvero il file, ma lo fa buttando dettaglio che la prima aveva già assottigliato, e il danno si accumula mentre i guadagni si restringono. È la perdita di generazione: un JPEG salvato cinque volte a qualità 75 è visibilmente degradato, mentre un JPEG salvato una volta a qualità 45 è più piccolo e si vede meglio. La regola pratica discende da entrambe le metà. Esegui uno strumento senza perdita una volta e credi al risultato. Se ti serve un file con perdita più piccolo, torna all'originale e usa un'impostazione più forte una sola volta — non ricomprimere mai la copia compressa.
La prima passata toglie il 30% e la seconda non toglie nulla. Non è uno strumento rotto: è la differenza fra togliere ridondanza e togliere informazione, e sapere quale stai facendo ti dice quando fermarti e quanto costa davvero un secondo tentativo.
La compressione toglie ridondanza, non volume
L'immagine mentale che quasi tutti portano è meccanica: il file è una spugna, lo strumento la strizza, e strizzare più forte o due volte ne cava di più. Quell'immagine prevede che una seconda passata debba aiutare, e sbaglia su ciò che la macchina fa. Un compressore cerca schemi — una sequenza di byte già apparsa, un colore ripetuto su una zona, una voce di dizionario che sostituisca una parola lunga — e rimpiazza ogni occorrenza con un riferimento più corto. Ciò che esce non sono gli stessi dati schiacciati. È una descrizione diversa, più breve, degli stessi dati.
Fatta quella riscrittura, le ripetizioni sono riferimenti e i riferimenti non si ripetono. Un secondo compressore arriva a un file che appare, statisticamente, rumore — che è esattamente l'aspetto dei dati ben compressi — e non trova nulla da accorciare. Deve comunque scrivere la propria intestazione e cornice, per cui l'uscita è talvolta un capello più grande dell'entrata. Uno strumento che riporta un risparmio nullo o negativo alla seconda passata non sta fallendo: sta dicendo la verità su un file già trattato.
C'è un pavimento, e ha un nome
Nel 1948 Claude Shannon dimostrò che ogni corpo di dati ha una dimensione minima sotto la quale nessun metodo senza perdita può portarlo. Quel minimo è la sua entropia: una misura di quanto dei dati sia genuinamente imprevedibile. Una pagina di testo italiano è molto prevedibile — dopo «gl» una «i» è assai probabile — quindi si comprime bene. Un flusso di numeri casuali non è prevedibile per nulla, quindi non si comprime, e nessun algoritmo futuro lo cambierà. Gli strumenti di compressione non competono per schiacciare più forte; competono per modellare meglio i dati e avvicinarsi a un limite già fissato.
Ecco perché il familiare esperimento di zippare un PDF non guadagna nulla che valga. I flussi interni del PDF sono già compressi in deflate e le sue immagini sono già JPEG; il file è vicino alla sua entropia, e lo zip non ha materia. Lo stesso vale per un MP4, un MP3 e un PNG. Se un tipo di file finisce in un formato progettato per essere piccolo, dai per scontato che la compressione sia stata fatta e che un archiviatore generico aggiungerà imballaggio invece di togliere massa.
Con perdita è un'altra macchina con un altro guasto
La compressione con perdita non è vincolata dall'entropia, perché non deve riprodurre l'originale. Decide cosa una persona non noterà — variazioni fini di colore, dettaglio ad alta frequenza, suoni mascherati da suoni più forti — e lo scarta. Ecco perché un JPEG è un decimo dell'immagine grezza da cui viene, ed ecco perché la seconda passata si comporta così diversamente: c'è sempre altro da scartare, quindi il file rimpicciolisce sempre, e la domanda passa da «si può?» a «a che prezzo?».
Il costo è la perdita di generazione, e si accumula in un modo che sorprende. Ogni ricodifica comincia decodificando il risultato precedente, che contiene già gli artefatti introdotti dalla passata prima. La nuova passata tratta quegli artefatti come dettaglio vero degno di essere conservato, ci spende bit sopra, e aggiunge i propri. Cinque salvataggi a buona qualità producono un risultato visibilmente peggiore — blocchi sui bordi, sbavature di colore, un impasto generale — di un solo salvataggio a qualità molto più bassa che raggiunge la stessa dimensione. La regola che ne segue è l'unica che conta in pratica: comprimi sempre dall'originale, mai da una copia compressa.
Quale dei due fa un dato strumento?
Il comportamento te lo dice. Uno strumento senza perdita dà un risparmio modesto e ripetibile alla prima passata e circa zero alla seconda, e la sua uscita è identica pixel per pixel all'entrata. Uno strumento con perdita offre un cursore di qualità o preimpostazioni — leggero, medio, forte — e continua a produrre file più piccoli man mano che spingi. Se uno strumento porta un PDF scansionato da 20 MB a 3 MB, sta ricodificando le immagini ed è con perdita, qualunque cosa dica il pulsante. Il compressore di questo sito è del primo tipo: riscrive la struttura di oggetti del PDF e lascia intatto ogni byte di immagine, quindi non ti darà mai un numero spettacolare su una scansione, e non degraderà mai in silenzio un documento che stai per depositare in sede ufficiale.
L'unico caso in cui una seconda passata aiuta davvero
Eseguire lo stesso algoritmo due volte non serve. Eseguirne uno diverso sullo stesso originale sì. Un metodo più forte, con un modello migliore dei dati — un archiviatore moderno invece di uno classico, o un formato immagine più recente invece di uno vecchio — può battere il primo risultato, perché è un tentativo migliore contro lo stesso limite e non un secondo tentativo su un problema già risolto. Ricodificare un JPEG in AVIF o WebP a partire dal file originale di solito arriva più piccolo a parità di qualità; rizippare uno zip no.
Due conseguenze pratiche. Conserva gli originali: appena hai solo la copia compressa, ogni miglioramento futuro dei formati ti è precluso, perché non puoi più comprimere da qualcosa di integro. E quando un file resta ostinatamente troppo grande dopo una passata onesta, smetti di afferrare il compressore e cambia invece qualcosa di strutturale — meno pagine, risoluzione più bassa, uno spezzone più corto, una divisione in due file. Sono decisioni sul contenuto, ed è nel contenuto che stanno davvero i byte rimasti.
Cosa fare invece di premere di nuovo il pulsante
Fai la passata senza perdita una volta e prendi il numero che dà come la verità su quel file. Se non basta, individua dove stanno i byte prima di ogni altra cosa: in un PDF dividi la dimensione per le pagine; in un video moltiplica la durata per il bitrate; in un'immagine guarda le dimensioni in pixel. Poi agisci su quella cosa precisa, una volta, dall'originale. Due decisioni prese deliberatamente battono cinque passate fatte per speranza, e ti lasciano un file più piccolo che non è passato cinque volte al mulino.
| Comportamento | Senza perdita — struttura | Con perdita — immagini, audio, video |
|---|---|---|
| Prima passata | Un risparmio reale, di norma modesto e ripetibile | Un risparmio ampio — spesso l'80% o più dal grezzo |
| Seconda passata | ≈ 0%, a volte qualche byte in più | Di nuovo più piccolo, ma il danno si accumula |
| L'uscita è identica all'entrata? | Sì, bit per bit | No — il dettaglio è scartato apposta |
| Limite duro | L'entropia di Shannon — nessun metodo va sotto | Nessuno — solo ciò che resta accettabile da guardare |
| Se è ancora troppo grande | Cambia il contenuto: meno pagine, dividi il file | Torna all'originale e usa un'impostazione più forte una volta |
Domande frequenti
- Il mio file è diventato più grande dopo la compressione. Com'è possibile?
- Perché il compressore deve comunque scrivere la propria contabilità — un'intestazione, un dizionario, una cornice attorno ai dati — e se non trova ridondanza da togliere, quella contabilità è pura aggiunta. È l'esito normale su dati già compressi o genuinamente casuali, ed è un segnale più che un guasto: il file era già al suo pavimento o vicino. Tieni l'originale e passa a un cambiamento strutturale.
- Questo significa che la compressione senza perdita è debole?
- No — significa che è onesta. Su dati con ridondanza reale è molto efficace: un dump di database, un file di log o un PDF ricco di testo possono perdere una gran parte della dimensione senza che un solo bit di informazione cambi. Ciò che non farà è inventare spazio dove non ce n'è, e non degraderà il tuo documento per produrre un numero più bello. Su tutto ciò che potresti dover difendere in seguito — un deposito, un contratto firmato, una scansione originale — è proprio la proprietà che vuoi.
- La perdita di generazione si vede già dopo un solo risalvataggio?
- Raramente, con un'impostazione di qualità ragionevole e se nient'altro è cambiato. Diventa visibile quando i risalvataggi si accumulano, quando l'impostazione di qualità è bassa, o quando l'immagine viene anche ridimensionata fra un salvataggio e l'altro — ridimensionare forza una ricodifica completa e interagisce male con gli artefatti a blocchi esistenti. L'abitudine sicura non è contare le passate ma evitare la situazione: tieni l'originale, e produci ogni uscita che ti serve direttamente da esso e non dall'ultima che hai esportato.
- Perché lo stesso strumento risparmia il 40% su un PDF e il 2% su un altro?
- Perché il risparmio dipende interamente da quanta ridondanza il file portava, e questo varia enormemente con il modo in cui è stato fatto. Un PDF esportato più volte da un editor, o generato da un sistema di modelli che ripete una definizione su ogni pagina, è pieno di duplicazione rimovibile. Un PDF scritto una volta da una libreria ben educata, o che è essenzialmente una pila di fotografie, non ne ha quasi. La percentuale è un fatto sulla storia del file, non un voto allo strumento.
- Devo metterci sopra un archiviatore più forte, tipo 7-Zip?
- Solo su dati non ancora compressi. Un archiviatore più forte ha un modello migliore e batterà uno più debole su testo, codice sorgente, database ed esportazioni grezze — a volte nettamente. Su un PDF, JPEG, MP3 o MP4 lavora su dati già vicini al loro pavimento, e il guadagno sarà dell'uno o due per cento al prezzo di un contenitore che il destinatario deve scompattare. Usa l'archiviatore forte dove la ridondanza vive, non su file a cui è già stata tolta.
Articoli che potrebbero interessarti
Tutte le guide →Strumenti correlati
I tempi di conservazione e i modelli di elaborazione sono quelli pubblicati da ciascun servizio alle date citate. Cambiano senza preavviso: rifai il test offline sullo strumento da cui dipendi invece di fidarti di un comparativo, incluso questo.
Fonti
- Bell System Technical Journal — Shannon, A Mathematical Theory of Communication (1948) — entropy as the lower bound on lossless coding
- IETF — RFC 1951 — DEFLATE, the lossless method used inside PDF, PNG and ZIP
- ITU-T — Recommendation T.81 — the JPEG standard, and the quantisation step that makes it lossy
- pdf-lib — Save options including useObjectStreams — the lossless structural rewrite this site performs
Hai notato un errore in questo articolo?