Metodi di compressione

Transcript

Metodi di compressione
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 dell’informazione viene ridotta allo scopo di occupare
meno spazio nei supporti di memorizzazione quali l’Hard-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
d’informazione che sfrutta gli elementi superflui nell’utilizzo 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.

L’idea 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
dall’utente.

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 dell’insieme 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 l’algoritmo
dando origine all’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.
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 dell’algoritmo 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 un’unica 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 l’“1” 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

L’estesa diffusione dei programmi di compressione inizia
negli anni 90 quando il principale supporto di scambio dati è
l’unità 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 l’upload 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 d’uso
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
gratuitamente (ZipGenius 6; 7-Zip).
software
disponibili
Reti e Sistemi Informativi – Anno Accademico 2009/2010
all’uso
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 l’interesse principale dell’utente, affinché
un test sia attendibile e aggiornato il più possibile, si
dovrebbero considerare:

l’ultima versione disponibile sul mercato, il relativo costo e l’opzione
di lingua dell’interfaccia;

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