Scarica Informatica per le Scienze Umanistiche: Codifica e Trattamento e più Appunti in PDF di Elementi di Informatica solo su Docsity!
Università degli Studi di Milano Facoltà di Lettere e Filosofia Corso di Fondamenti dell’Informatica per le Scienze Umanistiche http://islab.dico.unimi.it/fisu
INFORMAZIONE E CODICI
Prof. Alfio Ferrara
Dipartimento di Informatica e Comunicazione http://islab.dico.unimi.it/ferrara [email protected] A.A. 2010/ LA COMUNICAZIONE IN INFORMATICA 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 2 Sorgente Trasmettitore (^) Ricevitore Destinazione Segnale fisico Messaggio
CODIFICA DELL’INFORMAZIONE
- Per essere trasmessa e trattata, l’informazione necessita
di essere codificata, ovvero espressa attraverso un
sistema simbolico e trasformata in messaggio
2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 3 Le ore quindici e quaranta 15: Le ore quindici e quaranta codifica informazione decodifica messaggio AMBIGUITÀ DELLA CODIFICA
- La stessa informazione può essere codificata in più modi 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 4 Le ore quindici e quaranta 15:40 (^) 3:40 PM
- La stessa codifica può rappresentare informazioni
diverse
15: Le ore quindici e quaranta Il punteggio tennistico quindici-quaranta
LA NOZIONE DI MESSAGGIO E DI CODICE
- Un messaggio è una successione ordinata di simboli
- NB: l’ordine è importante. Il messaggio IRTO è diverso dal messaggio TRIO, pur essendo composto dagli stessi simboli
- Un codice è:
- Un insieme di simboli (detto anche alfabeto)
- Un insieme di regole con cui combinare i simboli in messaggi validi
- Esempio: inventiamo il codice GINO
- Alfabeto: G, I, N, O
- Regole: qualsiasi successione di 3 simboli è valida (ma ogni messaggio deve essere composto da 3 simboli) 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 7 QUANTITÀ DI INFORMAZIONE
- Usando il codice GINO, quante informazioni diverse
possiamo trasmettere?
- Il numero di informazioni è pari al numero di messaggi validi diversi che possiamo comporre con i simboli a disposizione
- Ad esempio:
- GIN
- GGN
- GGG
- GGI
- IGG
- Etc. Quanti sono? 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 8
QUANTITÀ DI INFORMAZIONE
- La quantità di informazione dipende dal numero di
simboli dell’alfabeto e dalla lunghezza dei messaggi
- Esempio 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 9 G I N O GG GI GN GO IG II IN IO NG NI NN NO OG OI ON OO GGG GGI GGN GGO …e così via, per ognuno dei messaggi di lunghezza 2 Quindi se abbiamo 4 simboli, a partire da ogni messaggio possiamo generare altri 4 messaggi aggiungendo al messaggio di partenza uno dei simboli a disposizione
ESPRESSIVITÀ DEL CODICE
- In generale, se abbiamo un codice di N simboli e
messaggi di lunghezza L, possiamo calcolare il numero I
di informazioni diverse che possiamo esprimere
combinando fra loro gli N simboli L volte
- Ad esempio, nel caso di GINO abbiano 4 simboli e messaggi di lunghezza 3
- Possiamo allora combinare fra loro i 4 simboli 3 volte
- Ovvero: I = 4 x 4 x 4 = 4^3 = 64
- Possiamo esprimere questo ragionamento con una
formula generale:
2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 10 Quantità di informazione
I = N
L
Lunghezza messaggio Numero simboli
ESEMPIO
- Supponiamo di giocare alla roulette insieme a un amico
che legge il futuro e non sbaglia mai.
- Quale di queste “osservazioni dal futuro” del nostro
amico contiene più informazione (e ci fa vincere di più)?
- Uscirà un numero compreso fra 0 e 36
- Uscirà un numero pari
- Uscirà il numero 6
- La quantità di informazione di ogni osservazione è
inversamente proporzionale alla probabilità che si
verifichi il fatto previsto
- Tale probabilità è 1 nel primo caso, 1/2 nel secondo e 1/36 nel terzo 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 13 UNITÀ MINIMA DI INFORMAZIONE
- La minima quantità di informazione è quella che si
ottiene selezionando una configurazione da un insieme
che ne contiene due equiprobabili
- Per esempio scegliendo una pallina in un vaso che ne contiene 5 bianche e 5 nere
- Questa quantità minima di informazione è detta BIT
- Il bit è quindi l’unità minima che misura l’informazione
- Supponiamo che vi venga sottoposto un test composto da 4 domande a cui si risponde VERO o FALSO
- Supponiamo che non sappiate la risposta a nessuna delle domande
- L’informazione che vi serve per passare il test è quantificabile in 4 bit (la risposta giusta alle 4 domande) 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 14
APPLICAZIONI DELLA NOZIONE DI BIT
- Il BIT (Binary digIT) essendo un’unità di misura binaria,
è esprimibile facilmente utilizzando due simboli (0, 1)
- L’adozione di due soli simboli permette di mettere
facilmente in corrispondenza ogni bit di informazione
con uno stato fisico, come ad esempio la presenza o
assenza di corrente in un circuito elettrico
- Per tradurre quindi una qualsiasi informazione in
impulsi elettrici è sufficiente dunque tradurla in un
insieme di BIT
2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 15 CODICI BINARI
- In informatica si adottano dunque diversi codici binari
- Alfabeto: 0, 1
- Regole: le regole di composizione dei messaggi cambiano a seconda del tipo di informazione da codificare
- Tipologie di informazione sottoposte a codifica
- Testo (dati non numerici)
- Numeri
- Immagini
- Audio
- Video 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 16
TEMPO: ASSOCIAZIONE DELL’INFORMAZIONE AL CODICE
- Passo 3: associamo le informazioni da codificare a arbitrarie combinazioni di 3 BIT 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 19 Soleggiato 000 Nuvoloso 001 Piovoso 011 Nevoso 111 Nebbioso 010 Variabile 110 Non assegnato 100 Non assegnato 010 Si noti che la logica di associazione fra stringhe di BIT e condizioni meteorologiche è del tutto arbitraria e convenzionale. È cioè indipendente dal significato dell’informazione trasmessa. Inoltre si noti che per poter decodificare il messaggio è necessario conoscere il codice. IL TEMPO DELLA SETTIMANA
- Usando TEMPO, possiamo quindi trasmettere la
situazione meteorologica della settimana con un
messaggio come:
- Distinguendo i giorni, avremo quindi
- 001 010 110 110 000 001 001
- …in generale non una bella settimana… 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 20
CODIFICA DEL TESTO
- Problema: definire un codice binario per rappresentare l’informazione testuale - Quantità di informazione da rappresentare (considerando l’alfabeto inglese): 26 lettere + le 26 lettere maiuscole + 10 cifre decimali + 30 caratteri circa di uso comune (., *, %, etc.) + alcuni caratteri di controllo (spazi, interruzione di riga) ovvero 120 caratteri circa - Numero di BIT necessari: bastano 7 bit poiché 2^7 = 128 > 120
- Su questa base è stato creato il codice ASCII, basato appunto sull’uso di 7 bit per ogni carattere - Esempi: - A diventa 1000001 - B diventa 1000010 - a diventa 1100000 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 21 LIMITI DI ASCII E ALTRI CODICI
- Poiché i 7 bit usati da ASCII consentono di rappresentare
solo 128 caratteri diversi, sono stati definiti nel tempo
altri codici per consentire la rappresentazione di più
caratteri
- ASCII esteso: usa 8 bit (un BYTE) per carattere. Consente quindi di rappresentare anche caratteri accentati e lingue diverse dall’inglese.
- UNICODE: usa 2 BYTE (16 BIT) per carattere. Consente quindi di rappresentare 2^16 caratteri diversi (65536). Usato per le lingue che utilizzano altri alfabeti (es. cirillico, arabo, ebraico, greco) 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 22
NUMERI IN BASE DIVERSA DA 10
- Con la stessa regola è possibile scrivere i numeri in
qualsiasi base
- Usiamo ad esempio la base 6
- Simboli: 0, 1, 2, 3, 4, 5
- Esempio:
- Il numero 542 in base 6 si legge
- 5 x 6^2 + 4 x 6^1 + 2 x 6^0 = 180 + 24 + 2 = 206
- NB: se lo stesso numero invece che in base 6 fosse in base 8 avrebbe un altro significato
- 5 x 8^2 + 4 x 8^1 + 2 x 8^0 = 320 + 32 + 2 = 354 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 25 L’OPERAZIONE INVERSA
- Partendo invece da una quantità, occorre comprendere
come scriverla in una certa base
- Per farlo dobbiamo chiederci quante volte la base rientri nella quantità e capire se abbiamo abbastanza cifre per scrivere tale informazione
- Di conseguenza, dividiamo il numero originario per la base e memorizziamo i resti, fino a non poter più procedere con la divisione
- Basterà leggere i resti in senso inverso per ottenere il numero 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 26
ESEMPIO
- Trasformiamo il numero 23 dalla base 10 alla base 2
- 23 / 2 = 11 con il resto di 1
- 11 / 2 = 5 con il resto di 1
- 5 / 2 = 2 con il resto di 1
- 2 / 2 = 1 con il resto di 0
- 1 / 2 = 0 con il resto di 1
- Il numero è quindi 10111
- Verifichiamo:
- 1 x 2^4 + 0 x 2^3 + 1 x 2^2 + 1 x 2^1 + 1 x 2^0 = 16 + 0 + 4 + 2 + 1 = 23 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 27 CODIFICA DELL’IMMAGINE
- La codifica delle immagini si basa sull’idea di vedere
l’immagine come un insieme di punti di colore
- A questo scopo, l’immagine viene suddivisa per mezzo di
una griglia in sottoporzioni, dette pixel
- Il calcolatore visualizza l’immagine riproducendo i pixel
che la compongono
- Maggiore il numero di pixel (risoluzione), maggiore la
qualità dell’immagine risultante
2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 28
CODIFICA DELL’IMMAGINE
- Per tradurre un’immagine in BIT occorre pensare a ogni
pixel come a un punto di colore
- Se associamo a ogni colore una codifica binaria, ogni pixel verrà trasformato in una sequenza di BIT
- Per convenzione rappresentiamo i pixel dal basso in alto e da sinistra a destra
- Il caso più semplice è quello di un’immagine in bianco e
nero
- Ogni pixel può avere solo due colori
- Basta quindi un BIT per ogni pixel
- 0 indica il bianco
- 1 indica il nero 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 31 ESEMPIO 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 32 0000000011111000111000001000 22 23 24 25 26 27 28 15 16 17 18 19 20 21 8 9 10 11 12 13 14 1 2 3 4 5 6 7 Il triangolo è approssimato a causa della bassissima risoluzione (7x4) Con risoluzione più alta la figura sarebbe migliore 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0
IMMAGINI A COLORI
- Per i colori si usano diversi standard
- Prendiamo in esame RGB (Red, Green, Blue)
- In RGB il colore di ogni pixel è visto come una
combinazione dei colori Rosso, Verde e Blu
- Per ogni colore si possono avere 256 sfumature
- Il numero di colori diversi è quindi pari a 256x256x
(circa 16 milioni)
2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 33 Esempi Rosso Verde Blu 0 0 0 255 255 255 255 0 0 230 150 50 QUANTITÀ DI INFORMAZIONE IN UN’IMMAGINE
- Il numero di colori che un pixel può avere determina il
numero di BIT necessario a rappresentare un pixel
- Ogni colore è infatti una diversa informazione e il pixel l’unità è il messaggio
- Nelle immagini in bianco e nero, il numero di colori è 2
- Basta dunque un solo BIT (2 = 21) per ogni pixel
- Nelle immagini in RGB necessitiamo di 8 BIT per ogni colore
- 256 sfumature, quindi 256 informazioni diverse
- Poiché 256 = 2^8 , dobbiamo usare 8 BIT (ovvero 1 BYTE)
- Il numero di colori di base però è tre (rosso, verde e blu) e per ognuno occorre un BYTE
- Quindi un pixel richiede 3 BYTE (24 BIT) 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 34
INFORMAZIONE E META-INFORMAZIONE
- Quando codifichiamo un insieme di informazioni può
succedere che fra esse vi siano delle relazioni
- Codifichiamo ad esempio il voto dato dai critici a un film sulla scala: - Pessimo, mediocre, discreto, buono, ottimo
- Non sono abbiamo 5 informazioni diverse, ma tali informazioni sono legate da una relazione d’ordine, per cui ad esempio il giudizio “buono” è migliore di “discreto” e peggiore di “ottimo”
- Possiamo dunque distinguere tra informazione (i voti possibili dati dai critici) e meta-informazione (la relazione che intercorre fra i voti) 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 37 INFORMAZIONE E META-INFORMAZIONE
- Un buon sistema di codifica dovrebbe tradurre sia
l’informazione, sia la meta-informazione
- Se ad esempio codificassimo i voti con il seguente codice binario:
- 100 (pessimo), 001 (mediocre), 110 (discreto), 010 (buono), 000 (ottimo)
- Avremmo una codifica corretta dell’informazione ma non della meta-informazione, poiché: - discreto < buono < ottimo - non corrisponde a - 110 < 010 < 000 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 38
DUE MODI PER CODIFICARE LA META-INFORMAZIONE
- Esistono due strategie per codificare l’informazione
conservando la meta-informazione:
- Si utilizza un sistema in cui fra i simboli intercorra la stessa relazione che intercorre fra le informazioni da codificare - In tal modo la meta-informazione è esplicita e si dice che il sistema simbolico è analogo all’informazione che codifica: per tale ragione chiamiamo questo sistema codifica ANALOGICA
- Si utilizza un sistema in cui la relazione dei fra i simboli corrisponde alla relazione fra le informazioni solo in virtù della regola usata per associare simboli e informazioni - In tal modo la meta-informazione è implicita nella regola di codifica. Chiamiamo questa strategia codifica DIGITALE 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 39 ESEMPIO
- Dati i giudizi:
- Pessimo < mediocre < discreto < buono < ottimo
- Codifica analogica:
- < ** < *** < **** < *****
- La relazione fra i giudizi corrisponde esplicitamente al numero di stelline usate per esprimerlo
- Codifica digitale
- 1 < 2 < 3 < 4 < 5
- La relazione fra giudizi corrisponde alla relazione fra numeri solo in virtù della regola con cui abbiamo associato a un numero il giudizio corrispondente 2010/2011 Fondamenti dell'Informatica per le Scienze Umanistiche 40