Informatica Generale Alessandra Di Pierro email dipierrodi unipi

  • Slides: 22
Download presentation
Informatica Generale Alessandra Di Pierro email: dipierro@di. unipi. it Ricevimento: Giovedì ore 14. 30

Informatica Generale Alessandra Di Pierro email: dipierro@di. unipi. it Ricevimento: Giovedì ore 14. 30 -17. 30 presso Dipartimento di Informatica, Via Buonarroti, 2 stanza 362 DE Tel. 050. 2212. 779 o per posta elettronica Pagina web del corso: http: //www. di. unipi. it/~dipierro/IG 03. html 1

Codifica e Rappresentazione dell’informazione • Cosa abbiamo visto : Rappresentazione binaria Codifica dei numeri

Codifica e Rappresentazione dell’informazione • Cosa abbiamo visto : Rappresentazione binaria Codifica dei numeri (interi positivi, interi con segno, razionali …. ) • Cosa vedremo oggi: Codifica dei caratteri , Codifica delle immagini , Compressione dei dati Codifica dei suoni 2

La rappresentazione dei numeri all’interno di un computer (5) • Razionali – numero finito

La rappresentazione dei numeri all’interno di un computer (5) • Razionali – numero finito di cifre periodiche dopo la virgola (ad esempio 3. 12 oppure 3. 453 – rappresentazione solitamente su 4/8 byte – rappresentazione in virgola fissa : riservo X bit per la parte frazionaria Parte intera Parte frazionaria – es : con 3 bit per la parte intera e 2 per quella frazionaria 011. 11, 101. 01 3

La rappresentazione dei numeri all’interno di un computer (6) • Come si converte in

La rappresentazione dei numeri all’interno di un computer (6) • Come si converte in base 10 una rappresentazione in virgola fissa – es : 101. 01 = 1* 22 + 0 * 21 + 1 * 20 + 0 * 2 -1 + 1 * 2 -2 = = 4 + 1+ 0. 25 = 5. 25 dove 2 -1 = 1/2 = 0. 5, 2 -2 = 1/22 = 0. 25 e in generale 2 -n = 1/2 n 4

La rappresentazione dei numeri all’interno di un computer (7) • Problemi della rappresentazione in

La rappresentazione dei numeri all’interno di un computer (7) • Problemi della rappresentazione in virgola fissa – overflow – underflow quando si scende al di sotto del minimo numero rappresentabile • es. vediamo in base 10, con 2 cifre riservate alla parte frazionaria 0. 01 / 2 = 0. 005 non rappresentabile usando solo due cifre 5

La rappresentazione dei numeri all’interno di un computer (8) • Problemi della rappresentazione in

La rappresentazione dei numeri all’interno di un computer (8) • Problemi della rappresentazione in virgola fissa (cont. ) – spreco di bit per memorizzare molti ‘ 0’ quando lavoro con numeri molto piccoli o molto grandi • es. vediamo in base 10, con 5 cifre per la parte intera e 2 cifre riservate alla parte frazionaria 10000. 00 oppure 00000. 02 – i bit vengono usati più efficientemente con la notazione esponenziale o floating point (virgola mobile) 6

La rappresentazione dei numeri all’interno di un computer (9) • Rappresentazione in virgola mobile

La rappresentazione dei numeri all’interno di un computer (9) • Rappresentazione in virgola mobile – idea : quando lavoro con numeri molto piccoli uso tutti i bit disponibili per rappresentare le cifre dopo la virgola e quando lavoro con numeri molto grandi le uso tutte per rappresentare le cifre in posizioni elevate – questo permette di rappresentare numeri piccoli con intervalli minori fra loro rispetto ai numeri grandi – questo riduce gli errori nel calcolo a parità di bit utilizzati 7

La rappresentazione dei numeri all’interno di un computer (10) • Rappresentazione in virgola mobile

La rappresentazione dei numeri all’interno di un computer (10) • Rappresentazione in virgola mobile (cont. ) 0 Numeri rappresentabili in virgola fissa 0 Numeri rappresentabili in virgola mobile 8

La rappresentazione dei numeri all’interno di un computer (11) • Rappresentazione in virgola mobile

La rappresentazione dei numeri all’interno di un computer (11) • Rappresentazione in virgola mobile (cont. ) – ogni numero N è rappresentato da una coppia (mantissa M, esponente E) con il seguente significato N = M * 2 E – esempi: 1. in base 10, con 3 cifre per la mantissa e 2 cifre per l’esponente riesco a rappresentare 349 000 000 = 3. 49 * 1011 con la coppia (3. 49, 11) perché M = 3. 49 ed E = 11 9

La rappresentazione dei numeri all’interno di un computer (12) • Rappresentazione in virgola mobile

La rappresentazione dei numeri all’interno di un computer (12) • Rappresentazione in virgola mobile (cont. ) – esempi: 2. in base 10, con 3 cifre per la mantissa e 2 per l’esponente riesco a rappresentare 0. 000 002 = 2. 0 * 10 -9 con la coppia (2. 0, -9) perché M = 2. 0 ed E = -9 – sia 0. 000 002 che 349 000 000 non sono rappresentabili in virgola fissa usando solo 5 cifre decimali !!! 10

Rappresentazione di un insieme finito di oggetti • Vogliamo rappresentare i giorni della settimana

Rappresentazione di un insieme finito di oggetti • Vogliamo rappresentare i giorni della settimana : {Lu, Ma, Me, Gio, Ve, Sa, Do} usando sequenze 0 e 1 • Questo significa costruire un ‘codice’, cioè una tabella di corrispondenza che ad ogni giorno associa una opportuna sequenza • In principio possiamo scegliere in modo del tutto arbitrario…. 11

Rappresentazione di un insieme finito di oggetti (2) • Una possibile codifica binaria per

Rappresentazione di un insieme finito di oggetti (2) • Una possibile codifica binaria per i giorni della settimana 12

Rappresentazione di un insieme finito di oggetti (3) • Problema : la tabellina di

Rappresentazione di un insieme finito di oggetti (3) • Problema : la tabellina di corrispondenza fra codifiche tutte di lunghezza diversa – spreco di memoria – devo capire come interpretare una sequenza di codifiche – 110000011 = Me Gio – 110000011 = Gio Do Gio • Di solito si usa un numero di bit uguale per tutti : il minimo indispensabile 13

Rappresentazione di un insieme finito di oggetti (4) • Per rappresentare 7 oggetti diversi

Rappresentazione di un insieme finito di oggetti (4) • Per rappresentare 7 oggetti diversi servono almeno 3 bit (minima potenza di due che supera 7 è 8= 23) quindi : 000 001 010 011 100 101 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato 110 Domenica 111 non ammesso 14

Rappresentazione di caratteri e stringhe • I caratteri sono un insieme finito di oggetti

Rappresentazione di caratteri e stringhe • I caratteri sono un insieme finito di oggetti e seguono la strategia vista per i giorni della settimana • Perché due diversi calcolatori si possano parlare correttamente è necessario che usino lo stesso codice 15

Rappresentazione di caratteri e stringhe (2) • Codifiche di uso comune : – il

Rappresentazione di caratteri e stringhe (2) • Codifiche di uso comune : – il codice ASCII (American Standard code For Information Interchange) su 7 o 8 bit – il codice UNICODE su 16 bit (più recente, permette di rappresentare anche alfabeti diversi e simboli per la scrittura di lingua orientali) • Le stringhe sono generalmente sequenze di caratteri terminate in modo particolare 16

Rappresentazione di immagini • Le immagini sono un ‘continuo’ e non sono formate da

Rappresentazione di immagini • Le immagini sono un ‘continuo’ e non sono formate da sequenze di oggetti ben definiti come i numeri e le stringhe • Bisogna quindi prima ‘discretizzarle’ ovvero trasformarle in un insieme di parti distinte che possono essere codificate separatamente con sequenze di bit • Consideriamo prima immagini fisse (foto etc …) 17

Rappresentazione di immagini (2) • Immagini ‘bitmap’ : 1. l’immagine viene scomposta in una

Rappresentazione di immagini (2) • Immagini ‘bitmap’ : 1. l’immagine viene scomposta in una griglia di elementi detti pixel (da picture element) 00000000000011110000001000000010000000010000000001001000001010000001100000010000000 codifica immagine 18

Rappresentazione di immagini (3) • Immagini ‘bitmap’ : 2. Ogni pixel è rappresentato da

Rappresentazione di immagini (3) • Immagini ‘bitmap’ : 2. Ogni pixel è rappresentato da uno o più bit Rappresentazione di un pixel 00000000000011110000001000000010000000010000000001001000001010000001100000010000000 19

Rappresentazione di immagini (4) • Rappresentazioni dei pixel : – la rappresentazione in ‘toni

Rappresentazione di immagini (4) • Rappresentazioni dei pixel : – la rappresentazione in ‘toni di grigio’ : un byte per pixel, con 256 gradazioni di grigio per ogni punto (immagini bianco e nero), o più byte per pixel, per avere più gradazioni possibili – rappresentazione a colori RGB (red, green, blu) : comunemente 3 byte per pixel che definiscono l’intensità di ciascun colore base. In questo modo ho circa 16 milioni di colori diversi definibili 20

Rappresentazione di immagini (5) • Problema : – la rappresentazione accurata di una immagine

Rappresentazione di immagini (5) • Problema : – la rappresentazione accurata di una immagine dipende • dal numero di pixel (definizione) • dalla codifica del pixel – … e richiede generalmente molta memoria, ad esempio : tipo imm. televisiva SVGA foto defin numero colori 720 x 625 256 1024 x 768 65536 15000 x 10000 16 milioni num. byte 440 KB 1. 5 MB 430 MB 21

Rappresentazione di immagini (6) • Quindi si cerca di ‘risparmiare’ memoria : – con

Rappresentazione di immagini (6) • Quindi si cerca di ‘risparmiare’ memoria : – con l’uso di una ‘tavolozza’ (palette) che contiene il sottoinsieme dei colori rappresentabili che compare in una foto • ogni pixel codifica un indice all’interno della tavolozza – con tecniche di compressione che non codificano ogni pixel in modo autonomo ma cercano di raggruppare le aree che hanno caratteristiche comuni • Formati più usati : TIFF (tagged image file format), GIF (graphics interchange format), JPEG (Joint photographers expert group) 22