Compressione solida
In informatica, la compressione solida (in inglese solid compression) designa un metodo di compressione dei dati applicato a file multipli, nel quale tutti i file vengono concatenati e trattati come un unico blocco di dati, compresso in un'unica operazione. Il file che ne risulta è detto archivio solido (dall'inglese solid archive), o anche archivio progressivo. Il termine deriva dal fatto che i dati sono compressi come un unico blocco solido anziché come file individuali.
La compressione solida è impiegata nativamente dai formati 7z[1] e RAR[2], in entrambi i casi come alternativa facoltativa alla compressione ordinaria, nonché indirettamente dai formati basati su tar come .tar.gz e .tar.bz2. Per converso il formato ZIP non è solido, in quanto memorizza i file compressi separatamente.
Principi tecnici
[modifica | modifica wikitesto]I formati di file compressi combinano di norma due funzioni distinte: la compressione, cioè la memorizzazione dei dati in uno spazio ridotto, e l'archiviazione, cioè la memorizzazione di più file e dei relativi metadati in un unico file. Le due operazioni possono essere combinate in due ordini diversi:
- comprimere i singoli file e poi archiviarli, mantenendoli distinti all'interno dell'archivio: si ottiene un semplice archivio compresso (o archivio sparso), come sono tipicamente i file ZIP;
- archiviare tutti i file in un unico blocco di dati e comprimere quest'ultimo: è questa la compressione solida.
L'ordine è rilevante, in quanto le due operazioni non commutano.
Nei sistemi operativi Unix archiviazione e compressione sono tradizionalmente affidate a strumenti separati, il che rende evidente la distinzione: archiviare con tar file già compressi singolarmente con gzip è una pratica molto rara, mentre archiviare con tar e comprimere solo in un secondo momento l'archivio così ottenuto produce un file .tar.gz, cioè un archivio solido, in cui l'archiviazione è affidata al software tar e la compressione all'algoritmo gzip.
Caratteristiche
[modifica | modifica wikitesto]Vantaggi
[modifica | modifica wikitesto]Un archivio solido presenta normalmente un rapporto di compressione più elevato rispetto a un analogo archivio non solido. Il vantaggio è tanto più marcato quanto più i file archiviati sono simili tra loro, circostanza frequente quando appartengono allo stesso formato, ed è particolarmente evidente quando l'archivio contiene un numero elevato di file di piccole dimensioni.
Svantaggi
[modifica | modifica wikitesto]A fronte della maggiore efficienza di compressione, gli archivi solidi presentano due inconvenienti:
- per estrarre un singolo file collocato in posizione mediana è necessario elaborare tutti i file che lo precedono, il che rende lente e scomode sia l'estrazione selettiva sia la modifica dell'archivio;
- se l'archivio viene danneggiato, anche solo lievemente, i dati che seguono il punto danneggiato possono risultare in parte o, a seconda dei formati di compressione e archiviazione impiegati, integralmente irrecuperabili; in un archivio non solido, invece, di norma è inutilizzabile il solo file danneggiato, mentre i successivi restano estraibili.
Note
[modifica | modifica wikitesto]- ↑ (EN) 7za man page, su edenwaith.com. URL consultato il 24 gennaio 2010 (archiviato dall'url originale il 10 gennaio 2010).«-ms=on[:] solid archive on»
- ↑ (EN) RAR Frequently Asked Questions (FAQ) (TXT), su pot-pourri.fltr.ucl.ac.be. URL consultato il 24 gennaio 2010 (archiviato dall'url originale il 15 maggio 2011).