61
Corso Informatica 2 - Codifica Binaria dell'Informazione Codifica binaria dell’informazione •Rappresentazioni posizionali •Codifica numeri interi •Codifica numeri in virgola mobile •Codifica di immagini •Codifica di suoni e video (cenni) 1

•Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

  • Upload
    ngodat

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Codifica binaria dell’informazione

•Rappresentazioni posizionali•Codifica numeri interi•Codifica numeri in virgola mobile•Codifica di immagini •Codifica di suoni e video (cenni)

1

Page 2: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 2

La codifica binaria

L’alfabeto piu’ semplice e’ quello costituito da soli due simboli.

Facilmente implementabile su un supporto fisico

Sostanze magnetiche con due opposte polarizzazioni

Passaggio o meno di corrente Passaggio o meno di luce . . . .

Piu’ economico Piu’ affidabile

Un sistema automatico basato su un alfabeto binario e’:

2

Page 3: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 3

Es. Codice binario di Morse: . -

A . - J . - - - S . . .B - . . . K - . - T -

C - . - . L . - . . U . . -

D - . . M - - V . . . -

E . N - . W . - -F . . - . O - - - X - . . -

G - - . P . - - . Y - . - -

H . . . . Q - - . - Z - - . .I . . R . - .

• Codifica solo le lettere maiuscole

• Il numero di simboli in successione non e’ fisso per ogni lettera

3

Page 4: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 4

Sistema di numerazione decimale

1. E’ posizionale (unita’, decine, centinaia)

2. E’ costituito da 10 cifre (base = 10)

504.31 = 5 • 102 + 0 • 101 + 4 • 100 + 3 • 10-1 + 1 • 10-2

peso

valore intrinseco della cifra

Cifra piu’ significativa Cifra meno

significativa

4

Page 5: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 5

Notazione posizionaleLa notazione posizionale consente di scrivere un numero N di una certa base generica b come una sequenza di cifre.

504.31 = 5 • 102 + 0 • 101 + 4 • 100 + 3 • 10-1 + 1 • 10-2

an-1 a n-2 a n-3 . . .a 2 a 1 a 0 . a -1 a -2 …. . . a-m-2 a m-2 am-1 a-m

Generalizzando, data una base b ed un insieme di b cifre:

Valore decimale del numero N

0 ≤ ai ≤ b −1

5

Page 6: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 6

Sistemi posizionaliSistema Base Cifre

binario 2 0 1

ottale 8 0 1 2 3 4 5 6 7

decimale 10 0 1 2 3 4 5 6 7 8 9

esadecimale 16 0 1 2 3 4 5 6 7 8 9 A B C D E F

(208) 10=(11010000)2=(D0)16=(320)8

base

6

Page 7: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 7

Sistema non posizionale

Il sistema di numerazione romano non e’ posizionale: il valore associato a ciascun simbolo non dipende dalla sua posizione.

Es: nei due numeri XII e XIX la seconda cifra, pur avendo la stessa posizione, assume due pesi diversi:

XII = 10 + 1 + 1XIX = 10 + 10 - 1

7

Page 8: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 8

Limiti della rappresentazione posizionale (I)

Data un sistema di numerazione di base b qual e’ il massimo numero intero positivo rappresentabile in una sequenza di n cifre?

Nmax = (b −1) bii= 0

n−1

∑ = bn −1

Es. in 4 cifre il sistema decimale puo’ rappresentare interi positivi da 0 a 9999, ovvero 104 valori diversi, ovvero b4 valori.

Formalmente, il numero massimo Nmax rappresentabile con n cifre nella base b e’:

8

Page 9: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 9

Limiti della rappresentazione posizionale (II)

Es. in una sequenza di 16 cifre il sistema binario puo’ rappresentare 216 = 65536 interi positivi che vanno da 0 a 65535; il numero minimo di cifre per rappresentare il numero 1000 è ceil(log2

(1001)) = 10

Quante cifre sono invece necessarie per rappresentare un dato numero in una base?Basta invertire la relazione precedente:

Ceiling: minimo intero superiore

9

Page 10: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 10

Il computer e l’informazioneIl sistema posizionale binario permette la codifica dell’informazione numerica attraverso l’uso di solo due cifre. Con opportune convenzioni si possono rappresentare anche i numeri relativi interi e frazionari, i caratteri, le immagini ed i suoni.

A causa della maggiore facilita’ implementativa ed affidabilita’ su un supporto fisico, i calcolatori digitali trattano solo informazione codificata in forma binaria.

L’unita’ elementare d’informazione manipolata e memorizzata da un computer e’ detta bit (binary digit), e può assumere i valori 1 e 0.

10

Page 11: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 11

Alcune convenzionibyte sequenza di 8 bit (Es. 01001011)

word da 16 a 64 bit a seconda dell’architettura; convenzionalmente 16bit

longword convenzionalmente 32 bit

≈ 1018260 = 10246EExa≈ 1015250 = 10245PPeta≈ 1012240 = 10244TTera≈ 109 230 = 10243GGiga≈ 106220 = 10242MMega≈ 103 210 = 1024kKilo

ApprossimazioneValoreSiglaMultiplo

11

Page 12: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Codifica dei Numeri

12

Page 13: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Numeri BinariTorniamo ai numeri binari. Come si sommano due numeri binari?

13

63

9

+=0 0 1 1

1 0 0 1

0 1 1 0

23 22 21 20

1+0 = 1

1+1 = 10

13

Page 14: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Moltiplicazione

14

62

12

x=0 0 0 1

1 1 0 0

0 1 1 0

23 22 21 20

34

12

x=0 1 0 0

1 1 0 0

0 0 1 1

14

Page 15: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Moltiplicazione

15

Dunque moltiplicare un numero per 2 equivale a spostare verso sinistra le cifre binarie riempendo con gli zeri le posizioni nuove

0 1 1 01 0

23 22 21 20 24 23 22 21x 2

0 1 1 020

0=

E se divido? Ovviamente basta ragionare al contrario: si spostano le cifre verso destra.

= 26/2 = 13 0 0 1 10 1

0 1 1 0

15

Page 16: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Moltiplicazione/Divisione

16

Esiste una notazione compatta, identificata dall’apposito operatore di shift

<< shift a destra (moltiplicazione)

>> shift a sinistra (divisione)

0 1 1 01 0 >> 226/2 = 13

0 0 1 10 1

0 0 1 10 << 26 x 2 = 12

0 1 10 0

16

Page 17: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Moltiplicazione/Divisione

17

Ma se faccio 13/2 ?

0 1 1 01 >> 2

13/20 0 1 10

=6!!

quindi c’è qualcosa che non può essere gestito correttamente.

0 1 1 01 << 4

13x41 0 1 00

= 20

Underflow

Overflow

17

Page 18: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 18

Guardiamo la sottrazione

1 - 0 = 1 1 - 1 = 0 0 - 1 = ?0 - 1 = 1

quindi non posso gestire bene il segno. In realtà un modo semplice è quello di usare il bit più significativo per il segno

0 0 1 1 0 01 0

1 0 1 1 0 01 0

50

-50

18

Page 19: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 19

Codifica dei numeri interi

Nell’ aritmetica binaria vi sono 4 tecniche di organizzazione dei numeri interi con segno.

1. Modulo e segno;

2. Complemento alla base diminuita;

3. Complemento alla base;

4. Eccesso M (o bias);

19

Page 20: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 20

Complemento alla base

Dato un numero Nb, il complemento alla base

C(Nb) e’ dato da:

C(Nb) = bn - N dove n e’ il numero di cifre usato per rappresentare N.

Per b = 2, il complemento e’ noto come complemento a 2.

In pratica, il complemento a 2 si ottiene invertendo tutti i bit e aggiungendo 1.

20

Page 21: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 21

Complemento alla base

C(Nb) = bn - N N0 bn

0 0 1 1 1 01 0N = (58) dec (0x3A) hex

bn = 1 1 1 1 1 11 128 (255) dec (0xFF) hex

C(Nb) = (197) dec (0xC5) hex 1 1 0 0 0 10 1

21

Page 22: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 22

Metodo del biasSi sottintende di sottrarre sempre un numero pari a 2n/2=2(n-1)

da ogni numero rappresentato. A 8 bit il numero da sottrarre (bias) è allora 128.

+(8)10 ( 1 0 0 0 1 0 0 0 )2

-(8)10 ( 0 1 1 1 1 0 0 0 )2

(8+128) 10 = (136)10

(-8+128) 10 = (120)10

•Il metodo del bias preserva l’ordinamento.•Per effettuare somme e sottrazioni occorre ogni volta sottrarre o aggiungere il bias

22

Page 23: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 23

Metodo del biasSi sottintende di sottrarre sempre un numero pari a 2n/2=2(n-1)

da ogni numero rappresentato. A 8 bit il numero da sottrarre (bias) è allora 128.

0 2n

0 2n-1-2n-1

n=4 24-1=824=16

16

8-8 0

0

23

Page 24: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Numeri Reali

24

Page 25: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Numeri RealiCome si rappresenta 10.4

25

23 22 21 20 . 2-1 2-2 2-3 2-4

1 0 1 0 . 0 1 0 0

Anche in questo caso per dividere o moltiplicare basta shiftare a destra o sinistra

25

Page 26: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 26

Numeri in virgola mobile (I)Se invece voglio rappresentare un intero molto grande, come ad esempio duemila miliardi:

N = 2 000 000 000 000Avremmo bisogno di ben 41 bit per rappresentarlo come unsigned (o 42 come int).

La maggior parte dello spazio sarebbe sprecato per conservare informazione sugli zeri: in effetti si può usare la notazione scientifica e scrivere, in modo molto più compatto:

N = 2.0 x 1012N = 2.0 x 1012

26

Page 27: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 27

Numeri in virgola mobile (II)

Mantissa Base Esponente

N = 2.0 x 1012

I primi calcolatori utilizzavano ciascuno un differente sistema di convenzioni per rappresentare i floating point. Nel 1985 è stato definito uno standard che è oggi largamente accettato.

27

Page 28: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 28

Lo standard IEEE 754

Bit di segno

Mantissa frazionaria normalizzata

Esponente con bias

N = (-1)S x 1.F x 2E-B

28

Page 29: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 29

Float, double, long doubleL’esempio precedente si riferisce a un numero di tipo float o singola precisione.

Lo standard ANSI/IEEE754 definisce anche il numero di bit per ciascun campo per rappresentare numeri di tipo double (doppia precisione) e long double (quadrupla precisione).

F (23 bit)E (8 bit)S (1 bit)

F (52 bit)E (11 bit)S (1 bit)

F (112 bit)E (15 bit)S (1 bit)

Float

Double

Long double

29

Page 30: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione

Precisione e bit• Cosa cambia tra i 3 tipi ? Ovviamente posso rappresentare numeri

sempre più grandi ma è solo questo?• In realtà la differenza sostanziale sta nella mantissa F.• Questa infatti ci dà il numero di cifre significative che possiamo

contare

30

F (23 bit) = 223 = 8388607• significa che posso suddividere l’unità in 223 intervalli e

quindi ho una precisione

1/223 = 1,2x10-7

1/252 = 2,2x10-16

1/2112 = 1,2x10-35

FloatDouble

Long Double

30

Page 31: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 31

Overflow e underflowNelle operazioni fra floating point, possono verificarsi due condizioni di errore :

Overflow: in un qualsiasi passo l’esponente calcolato è superiore al massimo rappresentabile; può verificarsi quando si maneggiano numeri dal valore assoluto molto elevato.

Underflow: in un qualsiasi passo l’esponente calcolato è inferiore al minimo rappresentabile; può verificarsi quando si maneggiano numeri molto vicini allo “zero” della macchina.

31

Page 32: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 32

Un “paradosso”La proprietà associativa della somma garantisce che, in generale:

Eppure…in singola precisione calcoliamo il lato destro e il sinistro dell’uguaglianza per

x = -1.5 ·1038 ; y = 1.5 ·1038 ; z = 1.0

x+(y+z) =(x+y)+z

x+(y+z) =-1.5 x1038 + (1.5 x1038 +1.0) =0.0

x+(y+z) =(-1.5 x1038 + 1.5 x1038 +1.0) =1.0

32

Page 33: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 33

Propagazione degli erroriI calcoli in virgola mobile vengono effettuati riportando i numeri allo stesso esponente, lavorando poi sulle mantisse e infine normalizzando il risultato.Tali procedure introducono un arrotondamento nei calcoli:la cifra meno significativa della mantissa sarà sempre affetta da un errore.

Per minimizzare questo errore lo standard IEEE 754 prevede di memorizzare tutti i risultati intermedi di un’operazione in virgola mobile con due cifre aggiuntive dette di cifra di guardia e cifra di arrotondamento.

In questo modo i calcoli in virgola mobile garantiscono una precisione inferiore a metà dell’unita sulla cifra meno significativa.

33

Page 34: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 34

Codifica dei caratteri

Mentre per codificare numeri si usano tecniche basate sul loro valore, per codificare dei caratteri c’e’ bisogno di una relazione convenzionale, ovvero di una tabella che faccia corrispondere a una data sequenza di bit un dato carattere.

Nel progettare tale tabella bisogna tener conto ovviamente anche di caratteri non direttamente stampabili, ma che rappresentino la formattazione del testo, come ad esempio il carriage return CR (“a capo”).

34

Page 35: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 35

Il codice ASCIILo standard internazionalmente adottato per la codifica dei caratteri è il codice ASCII, acronimo di American Standard Code for Information Interchange.

Le caratteristiche del codice ASCII sono:•7 bit ovvero 128 caratteri da 0 a 127•32 caratteri speciali non stampabili•Cifre del sistema decimale, maiuscole, minuscole, !”#$&’()*+,-./@:;<=>? Etc.•Le lettere e le cifre conservano l’ordine alfabetico/numerico•La distanza fra maiuscole e minuscole è fissata

Il codice viene spesso esteso a 8 bit per comprendere set di caratteri specifici di una certa area geografica, come è,Ç

0 1 2 3 4 5 6 7 8 9 A B C D E F

0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US2 SP ! " # $ % & ' ( ) * + , - . /

3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

4 @ A B C D E F G H I J K L M N O

5 P Q R S T U V W X Y Z [ ¥ ] ^ _

6 ` a b c d e f g h i j k l m n o7 p q r s t u v w x y z { | } ~ DEL

35

Page 36: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Codifica delle Immagini

36

Page 37: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 37

Codifica di ImmaginiNon c’è un “quanto” naturale di informazione elementare come la cifra per i numeri o la lettera per i testi.Si introduce allora un reticolo di punti detti pixel (picture element

Ad ogni pixel viene poi associato un certo numero di bit, che indica l’intensità luminosa di ciascun colore primario, ovvero della combinazione RGB RedGreenBlue .

Una tipica codifica utilizza 8 bit per colore (=256 livelli di intensità) ovvero 24 bit/pixel. In questo modo si possono rappresentare 224 ~ 16 milioni di diverse tonalità di colore.

Il numero di bit/pixel impiegati viene chiamato profondità di colore dell’immagine.

37

Page 38: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 38

Codifica di Immagini - Bitmap0 0 0 1 1 0 0 00 1 1 0 0 1 1 00 1 0 0 0 0 1 01 0 0 1 0 0 0 11 0 0 0 1 0 0 10 1 0 0 0 0 1 00 1 1 0 0 1 1 00 0 0 1 1 0 0 0

00011000011001100100001010010001100010010100001001100110000110003 zeri 2 uno 4 zeri 2 volte (2 uno 2 zeri) uno 4 zeri 1 0 1 2 zeri …

38

Page 39: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 39

Codifica di Immagini• 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 defin numero colori num. byteimm. televisiva 720x625 256 440 KBSVGA 1024x768 65536 1.5 MBfoto 15000x10000 16milioni 430 MB

COMPRESSIONE dei dati

39

Page 40: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 40

Codifica Immagini - Formati– RAW (matrice dei punti)

– TIFF Tagged Image File Format (etichette che descrivono le propietà dei dati (24 bit, LZW))

– GIF Graphics Iterchange Format (Formato concepito per l'invio di immagini in rete, più immagini)

– JPEG Joint Photographers Experts Group (Per immagini fotografiche, trasparenza, interlace)

– BMP Bitmap (formato tipico di Windows)

– PCX PC Paintbrush (formato di questo popolare programma Windows)

– PICT Formato Macintosh (anche vettoriale)

40

Page 41: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 41

.bmp 3841 Kb

.tiff 3842 Kb

.jpeg 425 Kb

41

Page 42: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 42

Compressione di ImmaginiAlgoritmi lossless (senza perdita di informazione) : operano un cambiamento di codifica dei dati che permette di diminuire il numero di bit necessari alla rappresentazione

– esempio : sequenza di 1 milione di caratteri, A=00, B=01, C=10, D=11, totale 2 milioni di bit di codifica

– se A compare il 90% delle volte posso ‘comprimere’ la codifica nel seguente modo A=0, B=100, C=110, D=111 ottenendo una lunghezza di :

900 000 * 1 + 100 000 * 3 = 1 200 000 bit

42

Page 43: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 43

Compressione di ImmaginiAlgoritmi lossy (che perdono informazione)

– generalmente sono specifici di un certo campo e sfruttano le caratteristiche degli oggetti da rappresentare per ‘buttare via’ informazione poco importanti

– gli algoritmi di compressione usati nei formati GIF e JPEG per immagini fisse sfruttano la caratteristica dell’occhio umano di essere poco sensibile a lievi cambiamenti di colore in punti contigui, e quindi eliminano questi lievi cambiamenti appiattendo il colore dell’immagine

– generalmente è possibile specificare quanto siamo disposti a perdere attraverso alcuni parametri

90%1%50%

43

Page 44: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 44

Codifica Immagini - VettorialiUn discorso a parte meritano le immagini vettoriali, usatissime nel campo della progettazione meccanica (CAD), architettonica, elettronica etc.

L’immagine, piuttosto che in punti, è scomposta in forme geometriche astratte come poligoni, cerchi etc.Per descrivere una circonferenza bastano ad es. posizione del centro e raggio.

Vantaggi: • indipendenza dalla risoluzione del

dispositivo di visualizzazione/stampa• dimensioni ridotte delle immagini• Indipendenza dalla forma • Scalabilità • Metafile

Svantaggi: • non applicabile in modo semplice a

fotografie e immagini complesse• Cartoon-like

44

Page 45: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 45

Immagini Vettoriali

• Documenti:– Postcript (ps, eps, epsi)– PDF (Portable Document Format)

• CAD 3D– AI (Adobe Illustrator)– CDR (CorelDRAW) – CMX (Corel Exchange) – CGM Computer Graphics Metafile – DXF AutoCAD – HPGL AutoCAD – WMF Windows Metafile

45

Page 46: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 46

Immagine tridimensionale vista da diverse prospettive ottenuta con un programma di CAD

Rendering

46

Page 47: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 47

47

Page 48: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 48

48

Page 49: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Codifica Audio

49

Page 50: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 50

Codifica AudioCaratteristiche dell’audio (e dei segnali analogici)

tempo

Segnale analogico - Continuità – nel tempo – nell’ampiezza

Segnale Digitale - Discretizzazione – nel tempo Campionamento– Nelle ampiezze (Quantizzazione)

50

Page 51: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 51

Codifica AudioCampionamento dell’audio ad intervalli di tempo fissi

tempo

51

Page 52: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 52

Codifica AudioCampionamento dell’audio ad intervalli di tempo fissi

tempo

Ogni campione vienerappresentato con un numero finito di bit (quantizzazione)

52

Page 53: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 53

Codifica Audio• Memorizzazione

Nbit=Durata • fc • bits/campione

• PlaybackRichiede un certo bit rate bit/sec

• Esempi Telefonia CD Audio

Segnale Voce Musica

Canali 1 (mono) 2 (stereo)

Banda 300 Hz-3.4 kHz 20 Hz-20 kHz

fc 8 kHz 44.1 kHz

bits/campione 8 16

Bitrate 64kbps 1.4 Mbps

53

Page 54: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 54

Codifica Audio - Formati

• PCM (Pulse Code Modulation)• WAV (Wave)• AAC (Advanced Audio Coding)• AIFF (Audio Interchange Format)• RA (RealAudio)• MP3 (MPEG-1 Layer 3) Codifica percettiva)

54

Page 55: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 55

Codifica Audio - MP3

• Non è un semplice algoritmo di compressione dati

• Codifica Percettiva basata sull’effetto mascheramento

• Qualità parametrizzata dal bitrate • Diffusissimo per l’alto fattore di compressione

120 mins = 700 Mbytes (WAV) = 50 Mbytes (mp3)

55

Page 56: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Codifica Filmati

56

Page 57: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 57

Codifica FilmatiTecnica di decodifica

– Campionamento di immagini (fps =frames per second)

– La persistenza sulla retina da la continuitàDimensioni tipiche

– Video signal: 25 frames per second => 60 MB/s– VHS video quality:

• 352x288 pixels per frame, 12 bits per pixel => 30.4 Mbits/s– Television quality: 704x576 pixels per frame,

• 12 bits per pixel =>121.7 Mbits/s

57

Page 58: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 58

Codifica Filmati

La compressione è d’obbligo su supporti digitali

Video CODEC

58

Page 59: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 59

Video compresso con tecnica intraframe

59

Page 60: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 60

Codifica Filmati - CODEC

• AVI (Audio Video Interleave)• MOV (QuickTime Format MacOSX)• WMV (Windows Media PLayer)• REALVideo (Real Network)• MPEG-1/2/3/4 (IEEE Standard)• XviD, DiVX, 3ivx

60

Page 61: •Rappresentazioni posizionali •Codifica numeri interi •Codifica di …people.na.infn.it/~volpe/didattica/Informatica/2007/Lezioni/02... · Es. in una sequenza di 16 cifre il

Corso Informatica 2 - Codifica Binaria dell'Informazione 61

ConclusioniLe tecniche di compressione dei dati, unite a studi di psicoacustica hanno permesso di realizzare rappresentazioni di filmati e di sequenze audio di dimensioni accettabili, dell’ordine di qualche MB. Questo ha aperto la strada all’utilizzo della multimedialità nell’informatica.

61