Programmi di Compressione


Quando si devono inviare file via posta elettronica, generalmente si preferisce comprimerli oppure, se si cerca un applicativo in Internet, tipicamente viene scaricato un archivio compresso.

Comprimere i file per risparmiare spazio utilizzando uno dei numerosi software reperibili in Rete è un’operazione tanto diffusa quanto scontata, senza contare che Windows XP integra in modo nativo il supporto per il formato ZIP, che ne rende ancora più diretto e immediato l’uso. Agendo in questo modo quasi automatico, spesso non ci si ferma a valutare eventuali alternative oppure ad approfondire la conoscenza di altri formati di compressione o software. Tipicamente si usa il programma consigliato dall’amico, che si è trovato già installato nel sistema operativo a portata di mano  nel momento in cui serve per gestire un archivio.

Solo quando si ha a che fare con file con estensioni sconosciute ci si sofferma un po’ di più sulla disponibilità di programmi e formati alternativi. Per esempio, un caso classico capita quando si scarica dai newsgroup un oggetto RAR, che non viene gestito da Winzip e da Windows XP ed è necessario procurarsi Winrar Internet è affollata di formati differenti, nati nel corso degli anni per soddisfare esigenze crescenti e diverse, che hanno portato allo sviluppo di algoritmi e di software con capacità e potenzialità in aumento.

Si pensi che i primi sistemi di compressione per PC hanno avuto origine in DOS, per poi evolversi sulla piattaforma Windows, che si è consolidata come quella di  riferimento e ha quindi portato a una nuova generazione di applicativi, differenziati per essere freeware, shareware o commerciali, ricchi di funzionalità o essenziali, dall’interfaccia grafica elaborata o dalla semplice riga di comando, più o meno dotati del supporto per diversi formati e, fondamentale, in grado di offrire differenti prestazioni e funzioni elevate.
Per questa prova comparativa sono stati quindi scelti software commerciali, ovvero Stuff-it, Pentazip e PKZip, shareware (Winzip e Winrar) e freeware (Filzip e Zip.it), allo scopo di metterli a confronto per valutarne le prestazioni e le funzionalità, non solo per capire le differenze esistenti tra i diversi formati, ma anche l’efficienza con cui
sono stati implementati gli algoritmi di compattazione.

 Come funzionano

Tutti i software preposti alla compressione dei dati si basano sulla medesima filosofia: sfruttare appieno le proprietà intrinseche dei file per organizzare i dati in modo più compatto e ottimizzato, al fine di ridurre l’occupazione su disco. Le tecniche con cui raggiungono questo scopo, peraltro non banale, sono differenti e hanno dato origine all’ampia scelta oggi disponibile in fatto di formati e applicativi, ma tutte tentano di sfruttare la ridondanza delle informazioni contenute in un file, ovvero la ripetizione di dati.

Per esempio, nei testi i vocaboli vengono
ripetuti migliaia di volte, perciò si può generare una tabella in cui vengono aggregati riducendone così il numero.
Per capire il funzionamento di questi applicativi, consideriamo il detto “sopra la panca la capra canta, sotto la  panca la capra crepa”, costituita da 49 lettere e 11 spazi, in cui ogni parola è ripetuta più di una volta. Idealmente, per immagazzinare questa frase sono necessarie 60 unità di memoria a causa della ridondanza. Analizzando la composizione della frase, si nota che “sotto”, “sopra”, “canta” e “crepa” sono ripetuti una volta sola, mentre “panca” e “capra” sono ripetute due volte e “la” ben quattro volte.

In questa operazione non è importante l’aspetto grammaticale, ma solo la sua composizione in elementi separati, perciò lo scopo sarà quello di eliminare le repliche, dato che, in ultima analisi, la frase è composta da solo sette parole differenti. Basterebbe associare a ciascuna di queste un indicatore sulla posizione e sul numero di volte in cui compare per ridurre le dimensioni di memorizzazione.
Inoltre, alcuni software di compressione sfruttano algoritmi adattivi per migliorare l’efficienza in base agli attributi del file da trattare, ovvero tecnologie per aggregare in modo dinamico le informazioni in base alla loro disposizione, o anche una serie di stratagemmi raffinati per ottimizzare ulteriormente la resa.
L’applicativo, sia esso Winrar, Winzip o Pentazip, dapprima crea un dizionario delle parole, ovvero cataloga i vocaboli differenti che compaiono all’interno della frase. Ne caso del celebre detto si tratta di un insieme limitato di oggetti, ma per file più grossi viene effettuata la scansione e si crea il database iniziale su cui opera l’algoritmo. Il dizionario è quindi l’elemento cruciale e i software si differenziano anche per la dimensione delle tabelle utilizzate per generarlo. Assegnando un numero a ciascuna parola e adeguando la frase a questa rappresentazione, già si ottiene una sequenza di caratteri più corta di quella iniziale.

Nella frase di esempio si dimezza la dimensione iniziale, e stiamo operando su un oggetto decisamente piccolo. Inoltre, poiché le parole sono composte da lettere ripetute, si possono schematizzare con numeri aggregabili secondo criteri differenti per ridurre ulteriormente la dimensione. Si possono anche rintracciare sequenze contigue di informazioni (pattern) allo scopo di sfruttare ulteriormente la composizione del file per ridurre la ridondanza.
Utilizzando sistemi efficienti e accurati di scansione dei pattern, si rigenera la frase passando dalle parole (lunghe) a identificativi (corti). Riportando il ragionamento all’interno di un file composto da bit e byte, ciò comporta l’aggregazione di stringhe di dati in modo ricorsivo, ottenendo tabelle sempre più compatte di quelle iniziali.
 
Continua Articolo 1 2 3