L'Informazione e la sua Codifica Maurizio Palesi 1
Obiettivo Il calcolatore è una macchina digitale Il suo linguaggio è composto da due soli simboli Gli esseri umani sono abituati a comunicare utlizzando più simboli Come è possibile tradurre le informazioni che ci scambiamo abitualmente in informazioni comprensibili ad un calcolatore?
Tipi di Informazione Cifre Caratteri Numeri Immagini Suoni Video...? 1001001000111110... 3
Un Mondo di Numeri Qualsiasi tipo di informazione può essere rappresentata in forma numerica 4
Un Mondo di Numeri Qualsiasi tipo di informazione può essere rappresentata in forma numerica Testo: sequenza di caratteri Ad ogni carattere è possibile associare un numero Un testo è quindi una sequenza di numeri 5
Tabella ASCII Estesa (8 bit, 56 simboli) 7
Un Mondo di Numeri Qualsiasi tipo di informazione può essere rappresentata in forma numerica Immagine: sequenza di pixel Pixel: 3 componenti (R, G, B) Componente: un valore di intensità Intensità: un numero (0..55) Una immagine è quindi una sequenza di numeri 8
Un Mondo di Numeri Qualsiasi tipo di informazione può essere rappresentata in forma numerica Video: sequenza di immagini Ma una immagine è quindi una sequenza di numeri...quindi anche un video è una sequenza di numeri 10
Rappresentazioni Numeriche Non posizionali Posizionali 1
Rapp. Numeriche Non Posizionali Il valore di ogni cifra non dipende dalla posizione della cifra Es., i numeri romani XIII, I vale una unità indipendente dalla sua posizione 13
Rapp. Numeriche Posizionali Il valore di ogni cifra dipende dalla posizione della cifra 13 1 vale 1 centinaio (100) vale decine (0) 3 vale 3 unità 14
Scoposizione di un numero decimale 13 = 100 + 0 + 3 Noi utilizziamo abitualmente il sistema decimale 10 cifre (0, 1,,, 9) per comporre tutti i numeri La base di un numero decimale è 10 1 0 13 = 1 10 + 10 + 3 10 10 15
Numero Binario Un numero binario è un numero in base Un numero binario utilizza due simboli Tipicamente 0 e 1 4 3 1 0 10110 = 1 + 0 + 1 + 1 + 0 1 e 0 sono simboli Convenzionalmente 1 vale 110, 0 vale 010 Quindi 10110 = 10 16
Numero Ottale Un numero ottale è un numero in base 8 Un numero ottale utilizza 8 simboli 0, 1,, 3, 4, 5, 6, 7 1 0 357 = 3 8 + 5 8 + 7 8 8 8 8 8 3, 5 e 7 sono simboli Convenzionalmente 38 vale 310, 58 vale 510, 78 vale 710 Quindi 3578 = 3910 17
Numero Esadecimale Un numero esadecimale è un numero in base 16 Un numero esadecimale utilizza 16 simboli 0, 1,, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 1 0 AD = 16 + A 16 + D 16 16 16 16 16 Convenzionalmente 016 vale 010, 116 vale 110,, 916 vale 910, A16 vale 1010, B16 vale 1110, C16 vale 110, D16 vale 1310, E16 vale 1410, F16 vale 1510 Quindi AD16 = 68510 18
Configurazioni Con 1 cifra binaria posso rappresentare stati 0, 1 Con cifre binarie posso rappresentare 4 stati 00, 01, 10, 11 Con 3 cifre binarie posso rappresentare 8 stati 000, 001, 010, 011, 100, 101, 110, 111 Con n cifre binarie? 19
Configurazioni Con n cifre binarie posso rappresentare n stati Esempio Con 5 bit è possibile rappresentare 3 diverse configurazioni 0
Conversioni Sappiamo convertire un numero espresso in una qualsiasi base in un numero decimale...ma il nostro obiettivo era fare il viceversa! 1
Decimale a Binario Basta esprimere il numero decimale come una somma di potenze del due Tutte le potenze devono essere diverse tra loro 4 1 Es. 18 = 16 + = + 10 E' presente la cifra di peso 4 e la cifra di peso 1 quindi Non è presenta la cifra di peso 3, di peso e di peso 0 1810 = 10010 7 3 0 Es. 137 = 18 + 8 + 1 = + + 10 13710 = 10001001
Decimale a Binario Alternativamente si calcolano resti delle divisioni per la base di destinazione (in questo caso ) 3
Decimale a Base Generica Per convertire un numero decimale in un numero in base b basta utilizzare il metodo delle divisioni successive In questo caso si divide per b 4
Numeri Interi Relativi Rappresentazione in Modulo e Segno Rappresentazione in Complemento a Due 5
Modulo e Segno (MS) Il primo bit di un numero binario rappresentato in MS indica il segno del numero 1 segno negativo 0 segno positivo Es. 11011 è un numero rappresentato in MS in decimale vale -1110 Es. 01011 è un numero rappresentato in MS in decimale vale 1110 6
Complemento a Due (C) Il primo bit di un numero binario rappresentato in C viene pesato con segno negativo Es. 11101 è rappresentato in C, in decimale vale -4+3++0 = -310 7
Operatore del Complemento a Due L'applicazione dell'operatore C as un numero binario opera come segue Il numero viene copiato simbolo per simbolo da destra verso sinistra fino al primo 1 Tale 1 viene anch'esso copiato Ma da questo momento in poi, i restanti simboli vengono copiati complementati (cioè gli 0 diventano 1 e gli 1 diventano 0) Es, Il C di 01101000 è 10011000 8
Proprietà del C L'applicazione del C su un numero binario rappresentato in C ne inverte il segno Es. 01101000 vale 10410, applicando il C si ottiene 10011000 che vale -10410 9
Range di Variazione Con n cifre binarie a disposizione, il più piccolo ed il più grande numero rappresentabile è Binario Naturale Min: 0, Max: n-1 Modulo e Segno Min: -(n-1-1) Max: n-1-1 Complemento a Due Min: -n-1, Max: n-1-1 Esempio, per n=4 Binario Naturale Min: 0, Max: 15 (16 valori) Modulo e Segno Min: -7 Max: 7 (15 valori) Un valore in meno a causa della doppia rappresentazione dello 0 Complemento a Due Min: -8, Max: 7 (16 valori) 30
Bit, Byte, Kbyte, Mbyte, Bit = solo due stati, 0 oppure 1 Byte = 8 bit, quindi 8 = 56 stati KiloByte [KB] = 10 Byte = 104 Byte ~ 103 Byte MegaByte [MB] = 0 Byte ~ 106 Byte GigaByte [GB] = 30 Byte ~ 109 Byte TeraByte [TB] = 40 Byte ~ 101 Byte PetaByte [PB] = 50 Byte ~ 1015 Byte ExaByte [EB] = 60 Byte ~ 1018 Byte 31
Digitalizzazione Quantizzazione Campionamento 3
Quantizzazione Per codificare in modo digitale una grandezza fisica Discretizzare i valori continui Quantizzazione Perdita di informazione: Tutti I valori compresi nello stesso sottoinsieme sono codificati nello stesso modo e diventano indistinguibili Continuo 111 110 101 100 011 010 001 000 Discreto 33
Campionamento La strategia di digitalizzazione si complica quando si devono codificare grandezze fisiche che variano nel tempo Campionamento Grandezza fisica Tempo 34
Campionamento La strategia di digitalizzazione si complica quando si devono codificare grandezze fisiche che variano nel tempo Campionamento Grandezza fisica Periodo di campionamento Campionamento Tempo 35
Campionamento La strategia di digitalizzazione si complica quando si devono codificare grandezze fisiche che variano nel tempo Campionamento Grandezza fisica Andamento del segnale reale Campionamento Andamento del segnale discreto Tempo 36
Frequenza di Campionamento L'inverso del periodo di campionamento è la frequenza di campionamento Il periodo di campionamento si misura in secondi La frequenza di campionamento si misura in Hertz (Hz) Numero di campioni in un secondo 37
Campionamento La strategia di digitalizzazione si complica quando si devono codificare grandezze fisiche che variano nel tempo Campionamento Quantizzazione Grandezza fisica Campionamento Tempo 38
Quantizzazione La quantizzazione associa il valore della grandezza fisica (numero reale) ad un livello di quantizzazione Compact disc audio Campionamento a 44 KHz Quantizzazione a 16 bit Due canali Quanti byte richiede 1 sec di audio? 44000 x x = 17 KB 16 bit = byte canali 39
Compressione dei Dati Compressione senza perdita (lossless) Compressione con perdita (lossy) 40
Compressione Lossless Mantengono l'informazione originaria permettendo di ricostruirla con la semplice inversione dell'operazione di compressione X Compressione Compressione Y Decompressione Decompressione X 41
Compressione Lossy L'informazione ricostruita (dopo la decompressione) è diversa da quella di partenza (prima della compressione) X Compressione Compressione Y Decompressione Decompressione X* 4
Compressione Lossless Due tecniche Tecniche statistiche Tecniche basate sulla sostituzione Tecniche basate sul dizionario 43
Tecniche Statistiche Es. Si consideri una successione di un milione di caratteri Ogni carattere appartiene all'insieme {A, C, G, T} Occorrono bit per carattere La lunghezza complessiva sarà di milioni di bit Supponiamo che A si presenti nel 50% dei casi, C nel 5%, G e T nel 1.5% Si usi la seguente codifica A=0, C=10, G=110, T=111 La lunghezza complessiva sarà (1x50% + x5% + 3x1.5% + 3x1.5%) bit/carattere x 1 milione di caratteri = 1.75 milioni di bit Un esempio di algoritmo statistico è l'algoritmo di Huffman 44
Tecniche basate sulla Sostituzione Ad esempio RLE (Run Length Encoding) 00 punti per riga verde 00, verde 00, verde 0, blu 130, verde 50,... 45
Tecniche basate sul Dizionario (1/) I re di Francia della dinastia Carolingia sono: Carlo II, Luigi II di Francia, Luigi III di Francia, Carlomanno di Francia, Carlo III detto il grosso, Odo, Carlo III detto il semplice, Roberto I di Francia, Rodolfo Duca di Borgogna, Luigi IV di Francia, Lotario di Francia, Luigi V di Francia 9 caratteri in cui si possono individuare alcune successioni ripetute Indice Parola Ripetizioni 1 di 10 Francia 8 3 II 5 4 Luigi 4 5 Carlo 4 6 detto 7 il 46
Tecniche basate sul Dizionario (/) Sostituendo ad ogni successione individuata il corrispondente indice si ottiene il testo compresso 5 3, 4 3 1, 4 3I 1, 5manno 1, 5 3I 6 7 grosso, Odo, 5 3I 6 7 semplice, Roberto I 1, Rodolfo Duca 1 Borgogna, 4 IV 1, Lotario 1, 4 V 1 187 caratteri (64% della lunghezza originaria) 47