Sei sulla pagina 1di 21

Software di

compressione
di Giulia Giacon

Reti e Sistemi Informativi Anno Accademico 2009/2010 1


Di cosa stiamo parlando?
Si tratta di software applicativi in grado di comprimere
e di decomprimere un file.

1. La quantit di bit necessari alla rappresentazione in forma


digitale dellinformazione viene ridotta allo scopo di occupare
meno spazio nei supporti di memorizzazione quali lHard-disk
del computer, le unit floppy, i CD-Rom e le chiavette USB;

2. Tramite la decompressione il file ridotto viene riportato alle


condizioni iniziali, nuovamente pronto per essere aperto.

Reti e Sistemi Informativi Anno Accademico 2009/2010 2


Qual il motore?
le operazioni di compressione/decompressione vengono
attivate da specifici strumenti detti algoritmi.

un algoritmo consiste nella soluzione di un problema pi o


meno complesso, analizzato in precedenza, seguendo
successioni finite di istruzioni sequenziali preordinate,
rappresentate sotto forma di diagramma o di pseudocodifica
e applicabili ad ogni linguaggio di programmazione.

Gli algoritmi di compressione si basano sul presupposto che


in qualsiasi tipo di file ci siano dei dati ridondanti, superflui
o mal disposti.

Reti e Sistemi Informativi Anno Accademico 2009/2010 3


Si possono individuare due grandi categorie di algoritmi:
1. Compressione di tipo Lossy
I dati vengono compressi attraverso un processo con perdita
dinformazione che sfrutta gli elementi superflui nellutilizzo dei
dati.

2. Compressione di tipo Lossless


I dati vengono compressi attraverso un processo senza perdita
d'informazione che sfrutta le ridondanze nella codifica del dato.

Reti e Sistemi Informativi Anno Accademico 2009/2010 4


Tecniche Lossy
Ottengono delle compressioni molto forzate dei files a
scapito dell'integrit del file stesso.

Lidea di fondo che l'occhio e l'orecchio umano hanno


delle limitazioni, operano quindi cercando di togliere dei
dettagli del video/audio senza che questo venga percepito
dallutente.

Non possono essere usati per testi o database in cui l'integrit


dell'informazione fondamentale, l'uso caratteristico nel
campo multimediale.

Reti e Sistemi Informativi Anno Accademico 2009/2010 5


Tecniche Lossless
Durante la compressione si preoccupano di preservare il
messaggio originale.

Non possono garantire sempre la diminuzione delle


dimensioni dellinsieme di dati in input. Alcuni vengono
ridotti, ma altri restano necessariamente invariati.

Utilizzano questo tipo di metodi tutti quei files per i quali


non accettabile una perdita di informazione, come i testi o i
programmi.

Reti e Sistemi Informativi Anno Accademico 2009/2010 6


Tecniche Lossy:
file immagini: JPEG
file video: MPEG, DivX, WMV
file audio: Vorbis, MP3, AAC, WMA

Tecniche Lossless:
file testuali: Huffman, LZMA(7Zip), DEFLATE(WinZip)
file audio: FLAC, ALAC
file immagine: GIF, TIFF
file video: Sheervideo, Animation codec

Reti e Sistemi Informativi Anno Accademico 2009/2010 7


In che lingua parli?
Nei computer i caratteri vengono codificati usando il codice
ASCII, un codice che associa 8 bits ad ogni simbolo.

Mediamente in tutti i files testo vi sono dei caratteri che


appaiono con una frequenza maggiore di altri.

Per risparmiare spazio nella codifica non avrebbe senso


assegnare a questi caratteri un codice composto da un
numero inferiore di bits?

Reti e Sistemi Informativi Anno Accademico 2009/2010 8


Nel codice Morse le lettere con frequenza maggiore
vengono rappresentate da sequenze pi piccole, mentre
quelle meno usate sono associate a codici pi lunghi (ad
esempio: e= ; a= -; q= ---; j= ---).

L'idea di usare codici pi corti fu introdotta nell'ambito


informatico da Claude Shannon e R. Fano negli anni 50.
Qualche anno dopo D.A. Huffman ne migliora lalgoritmo
dando origine allalgoritmo di Huffman.

Si consideri un file di 40 caratteri in cui le lettere abbiano la


seguente frequenza: A: 20 volte, B: 5 volte, E: 3
volte, C: 7 volte, O: 5 volte.

Reti e Sistemi Informativi Anno Accademico 2009/2010 9


Algoritmo di Huffman
Si consideri un file di 40 caratteri in cui le lettere abbiano la
seguente frequenza: A: 20 volte, B: 5 volte, E: 3 volte,
C: 7 volte, O: 5 volte.

Usando la codifica standard ASCII, il file occupebbe 40*8


bits ovvero 320 bits.

Usando una codifica a lunghezza variabile, a le lettere con


frequenza maggiore viene associato un numero inferiore di
bits rispetto a quelle con bassa frequenza, ottenendo un file
con lunghezza inferiore ai 320 bits.

Reti e Sistemi Informativi Anno Accademico 2009/2010 10


Algoritmo di Huffman
Questo il principio base dellalgoritmo di Huffman usato per
la gestione dei testi. Partendo da uno studio statistico basato
sulla frequenza dei caratteri nelle parole cerca di codificare le
lettere a maggior frequenza con dei codici binari pi brevi
rispetto a quelli utilizzati per quelle meno frequenti.

Esempio:
Si intende comprimere un file testo contenente la stringa:

CIAO_MAMMA

Reti e Sistemi Informativi Anno Accademico 2009/2010 11


Algoritmo di Huffman
Codice ASCII:
A= 01000001 C= 01000011 I= 01001001
O= 01001111 M=01001101 _= 01000000

Il file salvato sar pertanto composto da 80 bits (= 10 lettere *


8 bits):
01000011 01001001 01000001 01001111 01000000 01001101
01000001 01001101 01001101 01000001

Applicando l'algoritmo di Huffman per prima cosa


necessario contare la frequenza di ogni lettera presente nella
stringa:
C(1), I(1), A(3), O(1), M(3), _(1)

Reti e Sistemi Informativi Anno Accademico 2009/2010 12


Algoritmo di Huffman
Vanno individuate le due lettere con minor frequenza (la C e
la I). Nello schema delle frequenze saranno rappresentate
come ununica lettera e con una frequenza che sar la somma
delle loro frequenze

C+I(2), A(3), O(1), M(3), _(1)

Si cercano ancora le due lettere con


minor frequenza e osserva che si
tratta dell'accoppiata C+I e O+_.

C+I+O+_(4),A(3), M(3)

Reti e Sistemi Informativi Anno Accademico 2009/2010 13


Algoritmo di Huffman
Una volta creato l'albero,
bisogna associare ad ogni
nodo un bit. E' possibile
associare lo 0 a tutti i nodi
di sinistra e l1 a tutti quelli
di destra. Con i nuovi codici
otterremo la seguente
sequenza di bits:

000001100100111110111110

Reti e Sistemi Informativi Anno Accademico 2009/2010 14


Algoritmo di Huffman

Solamente 24 bits invece degli 80 che verrebbero impiegati


con il codice ASCII. Per capirne la vera potenza, si deve
immaginare lo stesso algoritmo applicato ad un file testo di
migliaia di parole.

importante sottolineare che il codice cos ottenuto non


univoco; nel senso che pu essere creato un codice
altrettanto valido, ma differente da quello qui presentato.

Reti e Sistemi Informativi Anno Accademico 2009/2010 15


Applicazioni
Lestesa diffusione dei programmi di compressione inizia
negli anni 90 quando il principale supporto di scambio dati
lunit floppy da 1.44 Mbyte, se non pi piccolo da 360
Kbyte.

In seguito si afferma anche su Internet, per diminuire le


dimensioni dei files da trasferire riducendo notevolmente il
tempo di connessione necessario per lupload e per il
download dei files secondo gli standard V24bis o MNP5
relativi ai modem.

Reti e Sistemi Informativi Anno Accademico 2009/2010 16


PKZip: primo software introdotto nel mercato degli home
computer.

Attualmente esistono molteplici software di compressione,


scaricabili on-line, che si suddividono principalmente in:

Software shareware: tutti quei software concessi sotto licenza duso


quindi a pagamento, alcuni dei quali prevedono un periodo di prova
gratuito mediamente da 30 a 40 giorni (WinZip 11.0; WinRar 3.71).

Software freeware: insieme di software disponibili alluso


gratuitamente (ZipGenius 6; 7-Zip).

Reti e Sistemi Informativi Anno Accademico 2009/2010 17


Quale scegliere?
Da un punto di vista tecnico la scelta va fatta prendendo in
considerazione una serie di parametri.

I programmi vengono valutati in base a due preferenze


immediate nelle esigenze quotidiane del target di utenza:
ottenere una maggiore compressione e occupare cos meno spazio
nella memoria;
impiegare il minor tempo possibile nel comprimere i files a scapito
della potenza di compressione.

Reti e Sistemi Informativi Anno Accademico 2009/2010 18


Una volta stabilito linteresse principale dellutente, affinch
un test sia attendibile e aggiornato il pi possibile, si
dovrebbero considerare:

lultima versione disponibile sul mercato, il relativo costo e lopzione


di lingua dellinterfaccia;

le caratteristiche del file da comprimere per il confronto delle


performances;

il livello di memoria Ram e di potenza della CPU del computer di cui


il software necessita per essere operativo.

Reti e Sistemi Informativi Anno Accademico 2009/2010 19


Dato che ogni algoritmo a seconda della propria struttura di
funzionamento occupa una certa quantit di memoria Ram.
importante conoscere anche le caratteristiche effettive del
PC su cui si intende caricare i programmi da testare.

In questo modo, il test pu essere considerato valido ed


attendibile, rendendo la scelta autonoma e consapevole.

Reti e Sistemi Informativi Anno Accademico 2009/2010 20


Le Fonti
Articoli di giornale:
Salari P., Un mondo compresso in PC Pratico n.10 anno VII ottobre 2001,
pg. 126-129
Siti internet:
http://www.pc-facile.com/download/?cat=15
http://www.pc-facile.com/glossario/v24bis/
http://www.pc-facile.com/glossario/mnp5/
http://www.pc-facile.com/glossario/algoritmo/
http://www.pcperfetto.com/compressionefiles.html
http://www.ictv.it/file/vedi/340/software-di-compressione/
http://www.ecowebnews.it/software%20di%20compressione
http://it.wikipedia.org/wiki/Algoritmo_Lempel-Ziv-Markov
http://it.wikipedia.org/wiki/LZ77_e_LZ78
http://it.wikipedia.org/wiki/Compressione_dei_dati
http://it.wikipedia.org/wiki/Compressione_dati_lossy
http://it.wikipedia.org/wiki/Compressione_dati_lossless
http://www.dspvlsi.uniroma2.it/corsi/bio/La%20compressione.doc
http://it.wikipedia.org/wiki/Codifica_di_Huffman

Reti e Sistemi Informativi Anno Accademico 2009/2010 21