Significato, vantaggi e svantaggi Marchesin Sara Soligo Alessandra “Comprimere un file” Significato, vantaggi e svantaggi Marchesin Sara Soligo Alessandra università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Cos’è la compressione? Tecnica utilizzata in ambito informatico, per ridurre le dimensioni di un file e quindi lo spazio necessario per la sua memorizzazione. Primo esempio di compressione dei dati con tecniche probabilistiche risale alla prima metà dell’800 con Samuel Morse,in Inghilterra. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Come funziona? Riduce la quantità di bit necessari alla rappresentazione digitale di un’informazione, eliminando la parte ridondante senza precludere la comprensibilità del messaggio. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Cosa vuol dire ridondante? PERSOSTE*ERELESAM*DISISTEMIDIE*A BORAZIONEDELLE*NFORMAZIONIB*SO GNAST*DIAREEFR*QUENTAR*ILCORSO università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Cosa vuol dire ridondante? La frase precedente mostra una rudimentale forma di compressione dati che sfrutta il fatto che la lingua italiana, come tutti i linguaggi naturali, è ridondante. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Quali sono le tecniche di compressione? Si dividono in due categorie: Compressione dati lossy; Compressione dati lossless. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Compressione lossy Comprime i dati attraverso un processo con perdita d’informazione che sfrutta le ridondanze nell’utilizzo dei dati: Grandi risparmi di risorse; svantaggio qualità audio-video. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Compressione lossless Comprime i dati attraverso un processo senza perdita d’informazioni che sfrutta le ridondanze nella codifica del dato: preservano le informazioni; “Zip” è il formato più conosciuto; solitamente utilizzato per immagini non fotografiche. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Quali sono i vantaggi? Risparmio della spazio quando si memorizzano i file; Risparmio di tempo all’invio del file. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Quali sono gli svantaggi? Tempo impiegato per comprimere e decomprimere un file; il file compresso non è usabile direttamente, per usarlo si deve decomprimere; il file compresso è più “fragile”. Alcuni errori di trasmissione possono alterarne il contenuto. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Quali sono i formati più conosciuti? Zip Gzip Bzip2 Rar 7z università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Qual è il programma più utilizzato? WinZip è il più diffuso programma per la compressione e decompressione dei file e "ZIP" è il nome di un particolare formato di compressione associato a questo. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Esempio pratico: quanta memoria può richiedere un’enciclopedia multimediale? 500.000 pagine di testo (2 KB per pagina): 1GB 3.000 immagini a colori (in media 640x480x24 bit = 1MB): 3 GB 500 mappe (in media 640x480x16 bit = 0.6 MB): 0.3 GB 60 minuti di suono stereo (176KB/sec.): 0.6 GB 30 animazioni di durata media di 2 minuti (640x320x16 bit x 16 frame /sec = 6.5 MB/sec): 23.4 GB 50 video, di durata media di 1 minuto (640x480x24 bit x 30 frame/sec = 27.6 MB/sec): 82.8 GB Per un totale di: 111.1 GB università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
INVECE: Si applicano allora algoritmi di compressione ai diversi tipi di media usati e si assume di ottenere mediamente i seguenti rapporti di compressione: Testo 2:1 0.5 GB Immagini a colori 15:1 0.2 GB Mappe 10:1 0.03 GB Suono stereo 6:1 0.1 GB Animazioni 50:1 0.47 GB Video 50:1 1.66 GB Si passa quindi da 111.11 GB a 2,96 GB università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
curiosità: Nei computer i caratteri vengono codificati usando il codice ASCII "American Standard Code for Information Interchange", cioè "Standard americano per lo scambio di informazioni": codice di 8 bit per ogni simbolo ad esempio: 01100001 in binario rappresenta la lettera a. Un file di 100 caratteri quindi occuperà sempre 800 bit (8 bit * 100 caratteri = 800) sia esso composto da 100 caratteri differenti piuttosto che da 100 identici. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Però: Visto che in tutti i file testo alcuni caratteri appaiono con una frequenza maggiore di altri non avrebbe senso assegnare a questi un codice composto da un numero inferiore di bit in modo da risparmiare spazio nella codifica ?? università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Esempio: Vogliamo comprimere un file testo contenente la stringa: CIAO_MAMMA In un normale file testo, ogni lettera è rappresentata da 8 bit codificati rispettando il codice ASCII. Il nostro file salvato sarà composto così da 80 bits, ovvero 10 lettere * 8 bit: c01000011 i01001001 a01000001 o01001111 _00100000 m01001101 a01000001 m01001101 m01001101 a01000001 università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Soluzione: Codifica di Huffman È un algoritmo di usato per la compressione dei dati, basato sul principio di trovare il sistema ottimale per codificare stringhe a seconda della frequenza relativa di ciascun carattere. Essa è stata sviluppata nel 1952 da David A. Huffman, mentre stava svolgendo il dottorato e pubblicata su “Method for the Construction of Minimum-Redundancy Codes” (Un Metodo per la Costruzione di Codici a Ridondanza Minima). università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Soluzione: È stato dimostrato che la codifica di Huffman è il più efficiente sistema di compressione di questo tipo: nessun'altra mappatura di simboli in stringhe binarie può produrre un risultato più breve nel caso in cui le frequenze di simboli effettive corrispondono a quelle usate per creare il codice. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Esempio: Applicando l'algoritmo di Huffman per calcolare dei nuovi codici da assegnare alle lettere dell'esempio si deve costruire un albero in cui le lettere più frequenti siano posizionate più vicino alla radice rispetto a quelle con minore frequenza. Per prima cosa è necessario contare la frequenza di ogni lettera nella nostra stringa: C(1) I(1) A(3) M(3) O(1) _(1) università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Quindi: Una volta creato l'albero, bisogna associare ad ogni nodo un bit. E' possibile associare lo 0 a tutti i nodi di sinistra e 1 a tutti quelli di destra. E' possibile anche fare il contrario senza compromettere il risultato finale. Nel nostro caso scegliamo lo 0 a sinistra e l'1 a destra ed ecco il risultato finale: università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Quindi: Volendo scrivere a questo punto il nostro CIAO_MAMMA con i nuovi codici otterremo la seguente sequenza di bit: 000001100100111110111110 Solamente 24 bit invece degli 80 usati in precedenza con il codice ASCII ! E solamente su una stringa di 10 caratteri. Immaginiamo lo stesso algoritmo applicato ad un file testo di migliaia di parole per capirne la vera potenza. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Attenzione però: E' importante sottolineare che il codice ottenuto non è univoco, nel senso che può essere creato un codice altrettanto valido ma differente dal nostro che può dipendere ad esempio dalle lettere con minor frequenza scelte all'inizio oppure dal modo in cui decidiamo di impostare gli 0 e gli 1 sui rami dell'albero. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Ed inoltre: Una caratteristica particolare di questo algoritmo è che il codice ottenuto per ogni singola lettera NON è un prefisso di un’altra lettera. Nel nostro esempio, la A ha il codice 10 e nessuna altra lettera ha una codifica che comincia con 10. In questo modo leggendo la stringa di 24 bit che abbiamo ottenuto in precedenza, possiamo riconoscere le singole lettere senza bisogno di un separatore tra loro. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Formato jpeg-immagini JPEG è l'acronimo di Joint Photographic Experts Group, un comitato ISO/CCIT che ha definito il primo standard internazionale di compressione per immagini a tono continuo, sia a livelli di grigio che a colori. è un formato aperto e ad implementazione gratuita. attualmente JPEG è lo standard di compressione delle immagini fotografiche più utilizzato l'estensione più comune per questo formato è .jpg, ma sono anche usate .jpeg, .jfif, .JPG, .JPE. è una compressione di tipo lossy università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Esempio: JPEG qualità 10% - 3,2 Kb università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Esempio: JPEG qualità 50% - 6,7 Kb università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Esempio: JPEG qualità 90% - 30,2 Kb università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Esempio: JPEG qualità 100% - 87,7 Kb università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni
Fonti: www.wikipedia.it www.tutorialpc.it/winzip.asp www.winzip.com Varie riviste e dispense trovate in internet. università ca'foscari di Venezia - corso di sistemi di elaborazione delle informazioni