Vai al contenuto

Compressione solida

Da Wikipedia, l'enciclopedia libera.

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]

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.

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.
  1. ↑ (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»
  2. ↑ (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).

Voci correlate

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica