fondamenti contenuto per la parte informazione: di ...unina.stidue.net/universita' di...

34
introduzione: informazione e codici (nov.99) Page ‹#› 1 FONDAMENTI DI INFORMATICA di Matjaž Hmeljak parte - INFORMAZIONE e CODICI 2 contenuto per la parte informazione : * DEFINIZIONE * MESSAGGI, DATI * INFORMAZIONE E PROBABILITA' * QUANTITA' * ESEMPI * DATI COMPOSTI * SIMBOLI NON EQUIPROBABILI * INFORMAZIONE MEDIA * SIMBOLI DIPENDENTI * INFORM. MEDIA DI UNA LETTERA DI UN TESTO I N F O R M A Z I O N E - cenni 3 contenuto per la parte codici: contenuto della parte codici : codici, rappresentazione, dati codifiche binarie codice ASCII codice UNICODE codici a controllo di errore codici a correzione di errore campionatura e compressione dati (cap.separato) bibliografia esercizi 4 parte informazione segue la parte relativa al concetto di informazione, e alla misura dell’informazione 5 informazione e codici definizione dell' informazione ? 6 informazione - cenni sistema sorgente -> ? hai vinto 1 miliardo alla lotteria di carnevale di Canicattini Bagni. -> sistema ricevente messaggio: contiene informazione canale di trasmissione

Upload: trinhdang

Post on 19-Feb-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

1

FONDAMENTI DI INFORMATICA di Matjaž Hmeljak

parte -

INFORMAZIONE eCODICI

2

contenuto per la parte informazione:* DEFINIZIONE* MESSAGGI, DATI* INFORMAZIONE E PROBABILITA'* QUANTITA'* ESEMPI* DATI COMPOSTI* SIMBOLI NON EQUIPROBABILI* INFORMAZIONE MEDIA* SIMBOLI DIPENDENTI* INFORM. MEDIA DI UNA LETTERA DI UN TESTO

I N F O R M A Z I O N E - cenni

3contenuto per la parte codici:

contenuto della parte codici:

codici, rappresentazione, dati

codifiche binarie codice ASCII codice UNICODE

codici a controllo di errore codici a correzione di errore campionatura e compressione dati (cap.separato) bibliografia

esercizi

4parte informazione

segue la parte relativa

al concetto di informazione,

e

alla misura dell’informazione

5 informazione e codici

definizione

dell' informazione

?

6informazione - cenni

sistemasorgente ->

?

hai vinto 1 miliardo alla lotteria di carnevale di Canicattini Bagni.

-> sistema ricevente

messaggio: contiene informazione

canale di trasmissione

Page 2: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

7informazione - definizione

“sistema di trasmissione” : due persone A e B,

la persona A (sorgente di informazione) dice

alla persona B (ricevente di informazione) :

hai vinto 1 miliardo alla lotteria di carnevale diCanicattini (dato = informazione codificata ) A ------------------------------------> Bsistema canale di trasmiss. sistemasorgente informazione ricevente

(messaggio M)

8informazione - definizione

Con una dizione un po' approssimata diremo che :

l'informazione e' il contenuto del messaggio M trasmesso da un sistema sorgente A al sistema ricevente B,

"contenuto" nel senso:

l’informazione contenuta nel messaggio M e' capace di modificare lo stato di B !!

... un messaggio o un dato che non modifica lo stato del sistema ricevente contiene zero informazione ...

9informazione: messaggio / dato

esempio: abbiamo trovato un nuovo modo di far soldicon un’ attivita’ in internet e lo scriviamosull’ ultima pagina della nostra rubrica telefonica:

A ------------------> B sistema dispositivo di = supporto sorgente registrazione di memoria informazione --> dato

in un secondo tempo, eventualmente, avremo...

C <----------------------- B sistema rice- dispositivo di = supporto vente lettura di memoria <-- dato

10informazione: messaggio / datonotare: la stessa comunicazione verbale implica l’uso disimboli per rappresentare oggetti (o altro):la “parola” “gatto” e’ un simbolo che rappresenta ungatto reale, la sequenza di suoni g-a-t-t-o non ha alcuncollegamento con l’oggetto rappresentato (idem percat, Kater, neko, mačka, kÔt, ecc)la scrittura (circa 6000 anni fa) e’ un sistema dirappresentazione di informazioni (codifica) A ------------------> B SCRIBA stilo TAVOLETTA

... in un secondo tempo (2 giorni o 6000 anni dopo) C <----------------------- B LETTORE TAVOLETTA

11informazione - messaggio / dato

L' informazione puo' essere trasmessa( messaggio tra due sistemi [ A ==> B ] )o registrata (dato = informazione codificata su unsupporto di memoria per essere in seguito riutilizzata)utilizzando un codice di rappresentazione(vedremo) A ------------------> B abiesabies dispositivo 37A4F = 0011 0111 1010 0100 1111 (trasmette dato bla-bla e codifica) codificato

12informazione: quantita'

dell' informazione interessa:

* quantita' (unita' di misura)

* rappresentazione (codici)

* contenuto (significato, interpretazione)

Page 3: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

13I N F O R M A Z I O N E - cenni

* quantita' (unita' di misura)

come si misura l’informazione ? quanta informazione ha un telegiornale ? quanta informazione ha un' ora di lezione di storia dei calcolatori ? ( 2 Tesla di informazione ? 2 chilogrammi di informazione ? 2 pinte di informazione? 2 klaftre di informazione?)

... vedremo tra breve

14I N F O R M A Z I O N E - cenni

* rappresentazione (codici)

( come si scrive "bisturi" in cinese? come si scrive 1984 in arabo? come si scrive “tassa di importazione” in wolof? o “fondamenti di informatica” in guarani’ ? o "discoteca" in azero? )

15I N F O R M A Z I O N E - cenni

* contenuto (significato, interpretazione)lo studio del contenuto o del significato (analisi semantica),e l' interpretazione (analisi pragmatica)di un messaggio non possono prescindere dal contesto;

vediamo 8 esempi:

1) es.: < la terza provetta di F.I.1 si terra' il 2 gennaio > 2) es.: < l’inquinamento del mare sta aumentando > 3) es.: < 1997 x 1997 = 3988009 > 4) es.: < #include <conio.h> void main() { cputs(“ciao”); } 5) es.: < la devolution, l'involution, la furbolution e la popolution sono in fase di deflation... > 6) es.: < quel ramo del lago di Como che volge alla Padania >

16I N F O R M A Z I O N E - cenni

* contenuto (significato, interpretazione)7) es.: < mi devi 10 euro >8) es.: < “il recente lavoro di Zaffira Collerattovich abbraccia il ritmo esistenziale, dilatandosi nella simbologia delle pre- cedenti porte che adombravano la necessita'dell'apertura e dell'incontro oltre le differenze, e comprende questa signi- ficanza oltre i lacerti (*) degli elementi visivi e formali nel non effimero prototipo del nulla, che pochi comprendono” >un messaggio richiede (implica) un ambiente di nozionidi entrambi i sistemi sorgente e ricevente (un contesto)in tutti questi esempi (e forse di piu' nel caso dell'esempio 8 -parte di un testo di un critico d'arte ) -il contenuto del messaggio e' perso se ci manca il contesto ;-)---------------------------------------------------- (*) lacerto = frammento

17I N F O R M A Z I O N E - cenni

* contenuto (significato, interpretazione) => il contenuto del messaggio in generale implica duecontesti, del sistema sorgente e del sistema riceventeogni messaggio richiede un ambiente di nozioni comuni alsistema sorgente e al sistema ricevente (problema delmessaggio da inviare a extraterrestri)

l' analisi semantica e pragmatica ovvero lo studio del significato e l'interpretazione/esecuzione di un messaggio sara’ oggetto del nostro corso... ma:solo per programmi C++ ...

18I N F O R M A Z I O N E - cenni

vediamo ora meglio questi attributi dell'informazione:

* quantita' (unita' di misura)

* rappresentazione (codici, efficienza, errori)

* contenuto (significato, interpretazione: dopo, per il C)

cominciamo con la quantita' ....

questa e' legata alla probabilita'

Page 4: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

19informazione I - quantita'

La quantita' di informazione associata ad un messaggio o ad un dato

dipende dall' incertezza del messaggio ovvero dalla probabilita' di avere proprio quel messaggio tra tutti i messaggi possibili

Ad es. il messaggio "non hai vinto alla lotteria"

ha un contenuto di informazione cioe’ l’effetto sullo stato del ricevente e’ben diverso dal messaggio:

"hai vinto un milione di euro alla lotteria"

20informazione I = f(p)Esempi [legame quantita’info del messaggio - probabilita’ del mess.]

vincita in lotteria rionale, con 200 numeri, un premio:- probabilita' di vincita 1/200 ovvero 0,5 percentovincita su lancio di moneta a testa/croce:- probabilita' di vincita di 1/2 ovvero 50 percentovincita del concorso per un posto di tecnico presso l'Universita' di Rautuzza con un unico candidato(raccomandato ;-) - probabilita' di vincita 1/1 (certezza) ovvero 100 percento

21informazione I = f(p)

Esempi ... [quantita’ info del messaggio <--> probabilita’ del mess.]

probabilita' di laurearsi in ingegneria informatica intre anni - probabilita’ di riuscita 0,05 ovvero 5 percento (forse, chissa')

laurea in ingegneria enogastronomica con 110/110punti in cinque anni al massimo ... - probabilita’ di riuscita 0 ovvero 0 percento (*)

(*) (infatti e' impossibile ... non c’e’)

22informazione I = f(p)

la quantita’ di informazione e’ legata all’ incertezzacon cui si aspetta il messaggio (o il dato),quindi alla probabilita’ di quel dato (o messaggio) :

nota: la probabilita' viene misurata in valori da 0 (evento impossibile, 0 %) a 1 (evento certo, 100 %)

un dato relativo ad un evento poco probabile

contiene una grande quantita' di informazione;

la quantita’ di informazione di un datoe’ legata alla probabilita’ di quel dato :

23informazione I = f(p)

piu' conosco il contenuto del messaggio,cioe' maggiore e' la probabilita' del messaggio ->piu' piccola e' la quantita' di informazione contenuta;

un dato relativo ad un evento certo (probabilita'uno) contiene una quantita' di informazione zero.

un dato relativo ad un evento poco probabile (diprobabilita' quasi zero) contieneuna grande quantita' di informazione;

24informazione I = f(p)

la quantita’ di informazione decresceal crescere della probabilita’ del dato:

I

pp grande

I piccola

p piccola

I grandediagram-ma afianco,in primaapprossi-mazione:

MA attenzione: il legame tra probabilita' e informazione none' lineare;

Page 5: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

25legame tra probabilita’ e quantita’ di informazionee’ di tipo logaritmico; se dimezza la probabilita’ ->l’ informazione aumenta di uno

Probabilita'grande =>Informaz. piccola,P=1 => Info=0

Informazione

1/2

1

1/4

2

probabilita'0

3

1/8A evento certo si associa un'informazione nulla ,ad evento poco probabile si associa un'informazione grande .

probabilita'piccola =>informazionegrande, P=2-256 =>I=8

1

26funzione logaritmoricorda la funzione logaritmo: log2(n) = xe' la funzione inversa di n = 2x ... ecco alcuni valori:

log2(0,0625)= -4 0,0625 = 2-4log2(0,125)= -3 0,125 = 2-3log2(0,25)= -2 0,25 = 2-2log2(0,5)= -1 0,5 = 2-1log2(1)= 0 1 = 20log2(2)= 1 2 = 21log2(4)= 2 4 = 22log2(8)= 3 8 = 23log2(10)= 3,3 10 = 23,3log2(16)= 4 16 = 24log2(1024)= 10 1 024 = 210log2(1048576)= 20 1 048 576 = 220log2(1073741824)= 30 1 073 741 824 = 230

27funzione logaritmofunzione logaritmo: log2(n) = x inversa di n = 2x

da ricordare alcuni valori:log2(0,5)=-1 0,5= 2-1

log2(1)=0 1 = 20

log2(2)=1 2 = 21

log2(4)=2 4 = 22

log2(8)=3 8 = 23

log2(10)=3,3 10= 23,3

log2(16)=4 16= 24

log2(1024)=10 1024= 210 1.024= 1Kilolog2(1048576)=20 1048576=220 1.048.576= 1Megalog2(1073741824)=30 ... 230 1.073.741.824= 1Giga

log2(x)

x

10 0,5-1 -

-2 -

28informazione: I = log2(1/probabilita')

il legame tra probabilita’ e quantita’ di informazione e’ di tipo logaritmico:

I = log2(1/p)

probabilita'

informazione

29informazione: I = log2(1/probabilita')

il legame tra probabilita’ e quantita’ di informazione e’ di tipo logaritmico: I = log2(1/p) = -log2(p)

Per un dato relativo ad un evento suN eventi possibili ed equiprobabili:

la probabilita’ del dato e’ p = 1/N e quindiI= log( 1/(1/N) )= log( N )

Prob

Info

30unita’ di informazione

si definisce quantita’ di informazione unitaria

di 1 bit cioe' l'unita' di informazione:

e' l'informazione contenuta in un messaggio o in

un dato di probabilita' 1/2

Es.: il messaggio relativo al risultatodi un lancio di una moneta non truccataa testa o cifra ha un contenuto di un bitdi informazione :

I = log2( 1/probab ) = log2( 1/ ( 1/2 ) ) = log2 ( 2 ) = 1

Page 6: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

31informazione - 5 esempi

Relazione tra informazione e probabilita' :I = log2( 1/p ) = -log2( p ) = log2( N )

esempi:*1) informazione relativa ad un dato su sedici (una cifra esadecimale) I = log2 (16) = 4 bit*2) informazione relativa ad evento certo (p=1): I = log2 (1) = 0 bit*3) quantita' di inform. di un dato composto da un simbolo (una lettera) dell'alfabeto inglese (25 lettere) I = log2 (25) = 4,64 bit

32informazione - 5 esempi

Relazione tra informazione e probabilita' :I = log2( 1/p ) = -log2( p ) = log2( N )

*4) informazione di una cifra decimale

I = log2(10) = 3,32 bit

( 2 alla 3 = 8, 2 alla 3,3 = 10, 2 alla 4 = 16 ... )

33informazione - 5 esempi

Relazione tra informazione e probabilita' :I = log2( 1/p ) = -log2( p ) = log2( N )

*5) informazione di una cifra ottale (otto simboli da 0 a 7)

I = log2( 8 ) = 3 bit

34informazione - 5 esempi

*6) ancora un esempio per il legame quantita’ di informazione - probabilita’:I = log2(1/p) = -log2(p) = log2(N)

abbiamo visto che:* info. relativa ad un dato su sedici: I = log2 (16) = 4 bit* info. di una lettera inglese: I = log2 (25) = 4,6 bit* info. di una cifra decimale: I = log2(10) = 3,3 bit* info. di una cifra ottale: I = log2( 8 ) = 3 bit

quantita’ di informazione di una cifra binaria: probabilita’ di scelta tra "0" e "1" : p = 1/2, I = log2(2) = 1 bit

35informazione - 5 esempi

legame quantita’ di informazione - probabilita’:I = log2(1/p) = -log2(p) = log2(N)

quantita’ di informazione di una cifra binaria: probabilita’ di scelta tra "0" e "1" : p = 1/2, I = log2(2) = 1 bit

e questo anche risponde al perche' della scelta di I = log2(1/p)e non ad es. log3(1/p) o log10 (1/p) o log7(1/p) o altro ...

36Informazione - dato semplice

esercizi:

a) quanta informazione ha il simbolo +scelto tra i dieci simboli + - * / . , ! ? ; :

b) quanta informazione ha il dato vocale Escelto tra i cinque simboli A E I O U

c) quanta informazione ha una cifra esadecimale Escelta tra 16 simboli 0 1 2 3 4 5 6 7 8 9 A B C D E F

d) quanta informazione ha il dato P scelto tra i 33simboli dell’alfabeto russo

( segue soluzione )

Page 7: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

37Informazione - dato semplice

soluzioni:

a) quanta informazione ha il dato + (scelto tra i dieci simboli + - * / . , ; : ! ? )

n=10 log2(1/p) = log2(n) = log2(10 ) = 3,32 bit

b) quanta informazione ha il dato E (scelto tra i cinque simboli A E I O U )

n=5 log2(1/p) = log2(n) = log2(5 ) = 2,32 bit

381 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю ЯA B V G D JE E Ž Z I I K L M N O P R S T Y F H C Č Š Š trd i mh E JU JA

39Informazione - dato semplice soluzioni:

c) quanta informazione ha il dato E scelto tra i 16 simboli 0 1 2 3 4 5 6 7 8 9 A B C D E F

n=16 log2(1/p) = log2(n) = log2(16 ) = 4 bit

d) quanta informazione ha il dato P scelto tra i 33 simboli dell’alfabeto russo (*)

n=33 log2(1/p) = log2(n) = log2( 33 ) = 5,03 bit

(*)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю ЯA B V G D JE JO Ž Z I Ikr K L M N O P R S T Y F H C Č Š Š trd i mh E JU JA

40Informazione - dato semplice

e) quanta informazione ha un dato K scelto tra i 45 simboli dell’alfabeto giapponese?

n=45

... (provare!!)

41Informazione - dato composto

Abbiamo visto come l' informazione relativa ad undato K scelto da un insieme di N simboli e' datadal logaritmo

I = log2( 1 / p ) = log2( 1 / (1/N) ) = log2( N )

nel caso di un dato composto ?

la relazione I = log2( 1 / p ) rimane, cambia il calcolodella probabilita' p di un dato composto :

ad es. se ho un dato ( A,B ) con A e B dati scelti da uninsieme di N simboli, la probabilita' di (A,B) e' diversadalla probabilita' di A da solo o di B da solo;

42informazione - dati composti

quantita' di informazione

contenuta in un dato composto:

quanta informazione contengono i dati seguenti :

"operator overloading can be dangerous""fahbgawxybmcdeifghjpqrklsuvtzcdeinojk""1111111111222222222233333333334444444"Le quantita' di informazione dei tre dati sono diverse ?... "a prima vista" si "intuisce" che sono diverse ....

Page 8: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

43informazione - dati composti

quanta informazione hanno i tre dati compostiseguenti (tutti di 8 simboli) : “ 7 A 4 5 F F 0 0 ” “ B F U W R Q E A ” “ P a p e r i n a ”da un esame superficiale si "sospetta" che i 3 datiNON contengono la stessa quantita’di informazione;l’ultimo simbolo 0 nel primo dato e l'ultimo simbolo Anel secondo dato hanno una probabilita’ diversadall’ultimo simbolo a nel terzo dato, perche'nei dati sopra (composti da piu’ simboli) i singolisimboli NON sono sempre indipendenti tra loro

44informazione - dati composti

Per calcolare quanta informazione ha un datocomposto da piu’ simboli, come i tre dati visti: 1) “ 7 A 4 5 F F 0 0 ” 2) “ B F U W R Q E A ” 3) “ P a p e r i n a ”

distingueremo il caso di dato composto con i singoli simboli indipendenti tra loro (dati 1 e 2) dal caso di dato composto da simboli legati tra loro, cioe’ dipendenti uno dall’altro (dato 3)

45

inoltre

spesso i singoli simboli hanno nei dati frequenzediverse e quindi probabilita' diverse-vedremo in seguito cosa implica questo ...

46informazione di dati composti

1) dati composti da piu' simboli indipendenti tra loro (indipendenti: la presenza dei primi (o ultimi) k-1 simboli non cambia la probabilita' del k-esimo simbolo) probabilita' che si verifichi l’evento composto “ a , b” , con a e b indipendenti vale: p( a,b) = p(a) * p(b)

ne segue che l’ informazione contenuta in un dato composto“a,b” e' data dalla somma delle singole informazioni :I(a,b) = log2( 1/ p(a,b) ) = log2( 1/( p(a) * p(b) ) ) = log2( 1/p(a) ) + log2( 1/p(b) ) ->

I(a,b) = I(a)+I(b) (a,b simboli indipend.) .

.

47informazione con dato di n simboli indipendenti

Informazione contenuta nella parola di n lettere:e’ la somma delle informazioni dei n singolisimboli se le lettere sono indipendenti tra loro:

es.: dato di 6 lettere indipendenti: "ZHWITQ"I(lettera)= 4,6 bit = log2(25) (alfab.di 25 lettere), quindi 6 * 4,6 bit = 27,6 bit(28 bit = inform. per la scelta di un dato tra 2^28 = 256milioni di dati possibili-circa, ovvero la scelta di undato tra 25^6 = 244.140.625 dati possibili di 6 lettere)(quanto detto vale se le lettere sono equiprobabili equindi l’informazione per simbolo e’ costante)

48informazione per dati composti

L'informazione contenuta nel dato (numero decimaledi 4 cifre): "1870"sappiamo che per una cifra decimale il contenuto diinformazione e' log2(10) = 3,3 bit )

per un dato di 4 cifre l’informazione

e' di 4 * 3,3 bit = 13,2 bit

ovvero scelta di un dato tra 10000 possibili (appunto1863 scelto tra i dati 0000 ... 9999)

Page 9: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

49esercizi informazione per dati composti

esercizio:

quanta informazione hanno i dati:

a) 5883460 (num.telefonico di 7 cifre)

b) さ よ な ら (*) (parola giapponese di 4 sillabe, dove in giapponese ci sono 45 sillabe)

c) corrompevolissimo (parola di 17 lettere)

d) 4 x 4 = 16 (un elemento di una tabella di quadrati dai numeri da 1 a 9) segue soluzione(*) leggi "sa yo na ra" in scrittura hiragana

50esercizi informazione per dati composti - soluzione

a) 6763411 (num.telefonico di 7 cifre): dato x x x x x x x (dove x sta per una cifra),

con I(x) = log2(10) = 3,3 -> I(dato)= 7*3,3= 23.1 bit

b) さ よ な ら (sayonara=parola giapponese di 4 sillabe, - vi sono 45 sillabe in giapponese) dato x x x x (x sta per una sillaba)

con I(x) = log2(45) = 5,5 -> I(dato) = 4*5,5 = 22 bit

51esercizi informazione per dati composti - soluzione :

c) corrompevolissimo (parola di 17 lettere, vi sono 21 lettere)

dato xxxx xxxx xxxx

con I(x) = 4,4 bit -> I(dato) = 17 * 4,4 = 46,8 bit

d) 4 x 4 = 16 (un elemento di una tabella di quadrati dei numeri da 1 a 9)

dato x * x = zz (x cifra da 1 a 9, il resto e’ fissato)

con I(x) = 3,3 -> I(dato) = 2*3,3 = 6,6 bit

52informazione dati composti simboli dipendenti

Ripetiamo: l’ informazione contenuta in un dato composto dan simboli indipendenti tra loro (cioe’ dove il verificarsi di ksimboli (k<n) non influisce sulla probabilita’ dell’ ennesimosimbolo) e’ la somma delle informazioni dei singoli simboli,se poi anche i singoli simboli sono equiprobabili (alloral’informazione per simbolo e’ costante) l’informazione di undato di n simboli indipendenti ed equiprobabili = n *info(simbolo)

MA: il calcolo dell’informazione contenuta in un dato composto cambia ... se:se i simboli non sono indipendenti tra loro e/ose non sono equiprobabili

53informazione dati composti simboli dipendenti "carota"

Dato di n simboli non equiprobabili, e/o non indipendenti tra loro - un esempio per capire meglio: calcolo della quantita' di informazione contenuta nella parola "CAROTA"

1) se considero le lettere indipendenti tra loro:

6 * 4,6 bit = 27,6 bit (scelta di uno tra 2^28 = 256 milioni di dati possibili piu’ precisamente, 25 ^ 6 = 244.140.625 : scelta di un dato tra i 244 M di dati composti da 6 lettere, tipo: AAAAAA, AAAAAB, .. AAAAAZ, AAAABA, ... ... ZZZZZW, ZZZZZX, ZZZZZY, ZZZZZZ)

54informazione dati composti simboli dipendenti "carota"

n simboli non equiprobabili , non indipendenti tra loro calcolo della quantita' di informazione contenuta nella parola "CAROTA" se le lettere sono indipendenti tra loro: I = 6 * 4,6 bit = 27,6 bit (scelta di uno tra 256 = 244.140.625 dati possibili )

MA le lettere non sono indipendenti, se scrivo CAROxy i simboli x,y non hanno prob. di 1/25 ma molto meno: x e y dipendono dai simboli precedenti:

ai quattro simboli CARO non puo' seguire una qualunque lettera dell'alfabeto da a fino a z, ma solo alcune: (c,g,n,s,t,v)CAROCcio CAROgna CAROnte CAROselloCAROta CAROteCAROtide CAROvana CAROvitaquindi x ha una probabilita' di scelta tra 9 simboli (3,1 bit),

Page 10: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

55informazione dati composti simboli dipendenti "carota"

quantita' di informazione della parola "CAROTA" MA le lettere non sono indipendenti, se scrivo CAROxy i simboli x,y non hanno prob. di 1/25 ma molto meno: x e y dipendono dai simboli precedenti, abbiamo visto che x ha una probabilita' di scelta tra 8 simboli (3 bit), y ancora meno: per CAROTy sara' y scelto tra i tre casi possibili CAROTa, CAROTe, CAROTide

valutazione approssimata: osservo che CAROTA e'unaparola della lingua italiana; uso un dizionario "medio"con 65000 parole, allora l' informazione e' relativa adun dato su 65000, ovvero I = log2 ( 65000 ) = 16 bit (non 27,6 !! )(scelta di una parola tra "a", "abaco", "abate", "abbacchiare",... "zuppa", "zuppiera", "zuppo", "Zurigo", "zuzzurullone"(R.C.Melzi, Bantam ed.1976)

56informazione dati composti simboli dipendenti "irraggiungibile"

Ancora: informazione parola "IRRAGGIUNGIBILE"con le lettere indipendenti tra loro: 15*4,6 bit = 69 bit(scelta di uno tra 2^69 = 10 ^ 21 dati possibilipiu’ precisamente, 25 ^ 1 = 9,3E+20)

---> MA: le lettere non sono indipendenti,se scrivo IRRAGGIUNGIBxyz allora i simboli x,y,z non hanno prob.di 1/25 ma molto meno !;una valutazione grezza si ha ipotizzando che la parolaIRRAGGIUNGIBILE e'una parola tratta da undizionario della lingua italiana con 65000 parole, alloral' informazione e' relativa ad un dato su 65000, ovverolog2 ( 65000 ) = 16 bitcome nell'esempio precedente, e non 69 bit !!

57informazione dati composti simboli dipendenti "Caltanisetta"

3) esempio:quantita’ info. di una stringa di 8 caratteri (alfabetoinglese di 25 lettere): I("CALTANISETTA") = 12 * 4,6 bit = 55,2 bit (se ho 12 lettere equiprobabili e indipendenti)ma - se considero la quantita’ di informazione diI(Caltanisetta) nel caso in cui so che Caltanisetta e’nome di una citta' dell'Italia scelta tra mille (assumo ildato preso da una tabella di 1000 citta’) -I( un dato su 1000 ) = log2(1000) = 10 bit !!!(invece di 56 bit abbiamo 10 bit ->compressione! - ritorneremo)

58informazione dati composti simboli dipendenti "carota"

continua caso dato composto simboli NON indipendenti:dato “CAROTA” , parola della lingua italiana, la proba-bilita’ delle singole lettere cambia:per la prima ha p= 1/21 (molto circa (*) ): “C”la seconda lettera deve essere o vocale, oppure h,r,l,s,n, quindi(molto circa) probabilita’ 1/10.. “CA”la 3.a lettera deve essere (b,c,d,f,g,i,l,m,n,o,p,r,s,t,u,v,z)la terza lettera (prob.1/17) e' “CAR”la quarta lettera deve essere scelta tra a,b,c, d,e,i,l, m,n, o,p,r,s,t, qui e' "o", con p(“O”)>1/14 “CARO”ora seguono (c,g,n,s,t,v), p("T")=1/6, “CAROT”l’ultima lettera .. solo A,E,I p("A")=1/3, “CAROTA”allora I = (1/21)*(1/10)*(1/17)*(..)= 1/899640=10 bit (circa) < 16!-------------(*) le lettere di un testo in italiano non sono equiprobabili !!

59dati composti simboli dipendenti "fondamenti di informxxxxx"

2) es. di dato composto da piu’ simboli - es.: “fondamenti di informxxxxx”L’ informazione di xxxxx e’ praticamente zero (*)

in generale: l' informazione contenuta in un testoformato da parole, a loro volta formate da lettere,NON e’ semplicemente :(lungh. testo)*(informazione di una lettera alfabeto)e quindi in un testo l' informazione di una letteranon e’ semplicemente I = log2( 1/ prob ) = log2 ( Num.lettere )___________________(*) Quanta e’ la quantita’ di informazione media (per ora) ricevuta da uno studente medio del corso di fondamenti di informatica ? E l'informazione media per ora trasmessa dal docente ? ]

60dati composti - simboli dipendenti e non equiprobabili -

il contenuto informativo di un testo formato da stringhe dicaratteri non e’ semplicemente num.caratteri * info(carattere) e l' informazione di una lettera non e’ I = log2( 1/ prob ) = log2 ( NumLettereAlfabeto)

devo considerare due aspetti:

a) i simboli non sono equiprobabili (questo era noto gia' ai tipografi da secoli)

b) simboli legati tra loro, ovvero non sono indipendenti (in una stringa di k simboli i primi k-1 simboli cambiano la probabilita' del k-esimo simbolo ... vediamo

Page 11: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

61simboli non equiprobabili - cenni

DATO CON SIMBOLI NON EQUIPROBABILIes: 32 lanci di una moneta (truccata) ottengo i valori: C C C C C T C C C C C C C T C C C T C C C T C C C C C C C C C C (dato con 28 croce e 4 testa)assumo quindi nc ntPC = ----------- PT = ---------- nc + nt nc + nt p(C)=28/32 e p(T)=4/32-> inform.di un singolo dato: ( I = log2(1/p) ! )

I ( C )= log2(1/p(C)) = log2 ( 32/28 ) = log2 (1,14) = 0,19 I ( T )= log2(1/p(T)) = log2 ( 32/4 ) = log2(8) = 3 Quanto vale I(dato complessivo) = ?

62simboli non equiprobabili - inform. del datocontinua caso di simboli indipendenti ma non equiprobabili: sesu 32 lanci di una moneta truccata ottengo 28 valori croce e4 valori testa: C C C C C T C C C C C C C T C C C T C C C T C C C C C C C C C Callora p( C ) = 28/32 e p( T ) = 4/32e quindi (ricorda: I = log2(1/p) ! ): il verificarsi di un singolo Coppure T porta l’ informazione seguente:

I ( C ) = log2(1/p(C)) = log2 ( 32/28 ) = log2 (1,14) = 0,19 I ( T ) = log2(1/p(T)) = log2 ( 32/4 ) = log2(8) = 3

I(dato complessivo) = I(dato) = num(C)*info(C) + num(T)*info(T) cioe' I(dato) = 28* 0,19 + 4 * 3 = 5,6 + 12 = 17,6molto meno di 32 bit del caso di T,C equiprobabili

63cont. es: 32 lanci: CCCCC TCCCC CCCTC CCTCC CTCCCCCCCC CC (28 croce e 4 testa) quindi:

p(C) = 28/32 = I (C) = log2(32/28) = log2(1,14286)=0,19 (circa)p(T)= 4/32; I (T) = log2(32/4)= log2(8)=3

I(dato completo) = 28 * 0,19 + 4 * 3 = 5,6 + 12 = 17,6Il contenuto informativo medio per simbolo(dato composto da 2 simboli non equiprobabili):I I(tot.dato) med = ----------------------- num.simboli del dato

qui sara' Im = 17,6 / 32 = 0,55 bit (circa) ... e non 1 !!

simboli non equiprobabili - inform. media per simbolo 64simboli non equiprobabili - inform. media per simbolo

DUE simboli non equiprobabili, I media / simbolo: il contenuto informativo medio per simbolo (dato composto da 2 simboli non equiprobabili): I(tot.dato) Imed = ----------------------- = num.simboli del dato

I(tot.dato) nc*Ic + nt*It = ----------- = --------------- = nc+nt nc + nt

nc nt= ----* Ic + ----* It = p(c)*Ic + p(t)*It nc+nt nc+nt

quindi (28/32)*0,19 +(4/32)*3 = 0,54125

65simboli non equiprobabili - inform. media per simbolo

due simboli non equiprobabili, I media / simbolo: Imed = p(c)*Ic + p(t)*It

===>>>> e in generale per n simboli: Imed= Σ i p(i) * I (i)

Nel caso di due simboli e' certo che uno dei duesimboli si verifica, quindi deve essere p(a)+p(b)=1

e quindi p(b)=1- p(a), quindi:

Imed = p(a) * Ia + p(b) * Ib = = p(a) *( log2(1/p(a)) + (1-p(a))* log2(1/(1-p(a)) )con un massimo per p(a) = p(b), e’zero se p(a)=0 o se p(a) = 1:

66

I media = p(a)*Ia + p(b)*Ib =

= p(a) * (log2(1/p(a)) + (1-p(a))*log2(1/(1-p(a)) )

= f(p(a)) = figura a destra:

massimo per p(a)= p(b)zero se p(a)=0, oppurezero se p(a) = 1

Conten. inform. medio per simbolo, caso di 2 simbolinon equiprobabili: I med = p(a) * Ia + p(b) * Ib ,dove nel caso di due simboli vale che:

p(a) + p(b) = 1 --> p(b) = 1 - p(a) --> quindi :

10 1/2

1Infmedia

P(a)0

inform. media per simbolo caso 2 simboli non equiprobabili

Page 12: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

67informazione media (carattere)

l’informazione media per simbolo per un datocomposto da n simboli con probabilita’ diversa:

per 4 simboli:

I med = p1*I1 + p2*I2 + p3*I3 + p4*I4

per n simboli: ( ∑ = simbolo di sommatoria )

Imed = ∑ i p(i) * I (i) cioe’

Imed = ∑ i { p(i) * (-log2 (p(i) ) ) }

68informazione media (carattere)

l’informazione media per simbolo per un datocomposto da n simboli con probabilita’ diversa: Imed= Σ i p(i)*I(i) Imed= Σ i { p(i)*(-log2 (p(i) ) ) }

In un testo di 10000 lettere casuali (alfabeto di 21lettere) a distribuzione uniforme (tutte le letterehanno la stessa probabilita', avremo la frequenza di476 volte per ciascuna delle lettere) - la quantita’ diinformazione per lettera e' I(l) = log2(21) = 4,4 bitMa in un testo in italiano (o in altra lingua) leprobabilita’ delle singole lettere sono diverse,e l' informazione media per lettera e' piu' piccola.

69informazione media (carattere)

lettere non equiprobabili: I med = - Σ i { p(i) * log2 (p(i) ) }

si puo' vedere che in un testo italiano di 10.000 lettereavremo circa:1300 e 850 o ... 150 z ... 5 j1100 i 650 r ... 120 f1000 a 650 l ... 100 qed il contenuto di informazione medio per lettera e'

I(l) = p(a)*I(a)+p(b)*I(b)+..+p(z)*I(z) = 3,9 bit

mentre con lettere equiprobabili I(l) = log2(21) = 4,4 bit

70informazione media per lettera di un testo in italiano

con un ragionamento semplificato:testo di 10.000 lettere, ipotesi di lm =6 = lunghezzamedia per parola, piu'spazio => 10.000/7 = 1428 parole,se le parole sono prese da un dizionario di 65k paroleallora ho 1428*16 bit di informazione = 22.857 bit,diviso 10.000 = 2,2 bit per lettera... ... valore piu' piccolo perche' le lettere

(*) non sono equiprobabili e

(**) le lettere di una parola non sono indipendenti tra loro

71informazione media (carattere)

ripetiamo:... con simboli equiprobabili, l’informazione media di

I(lettera) = I ( 1/p ) = I ( N ) = log2(21) = 4,4 bit ,

con testo di lingua italiana, lettere NON equiprobabili,il contenuto di informazione medio e' piu' piccolo :

Imed = - Σ i { p(i) * log2 (p(i) ) } = ... = 3,9 bit---------------------------------------------------------------------il contenuto di informazione medio reale per unalettera in un testo di italiano e’ ancora molto piu’piccolo, perche' le lettere in un testo NON sonoindipendenti tra loro - vediamo ...

72I N F O R M A Z I O N E - info media (carattere)abbiamo visto che:

I(lettera/equipr.) = I(1/p) = I(N) = log2(21) = 4,4 bitlettere/nonequipr.: Imed = -Σ i {p(i)*log2 (p(i) )} = 3,9

con un ragionamento semplificato gia' visto, ipotizzando untesto di 10.000 lettere, con ipotesi di lunghezza media perparola, lm = 6, piu'spazio lm=7, ho 10.000/7 = 1428 parole;

se le parole sono prese da un dizionario di 65k parole ho 16bit per parola, in tutto ho 1428 * 16 bit di informazione =22.857 bit, totale diviso 10.000 lettere da' 2,2 bit per lettera.Valore piu'piccolo perche'le lettere 1) non sono equiprobab.ie 2) in una parola non sono indipendenti tra loro...(e' un ragionamento approssimato: ma ... se in media le parolehanno 7 lettere, o se le parole in media sono lunghe 5 lettere ?)

Page 13: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

73I N F O R M A Z I O N E - info media (carattere)

I(lettera/equipr) = I(1/p) = I(N) = log2(21) = 4,4 bit

Imed(lettera/nonequip)= -Σ i {p(i)*log2 (p(i) )}= 3,9 bit

Imed(lettere non equiprob = I(parola) / 6 = 2,67 bit e dipendenti tra loro)

MA - tenendo conto che anche le parole sonodipendenti dal contesto cioe' che anchele parole non sono indipendenti tra loro , siarriva ad un valore approssimativo di :

1 bit per lettera

74I N F O R M A Z I O N E - info media (carattere)

In un generico testo (es.in italiano) la quantita’ diinformazione media per lettera e’ di circa un bit

esempio: per memorizzare un testo di 800 pagine con 40righe per pagina e 13 parole per riga, in media 6 lettere perparola, circa 90 caratteri per riga (piu' uno spazio diseparazione, piu' i simboli di interpunzione,meno gli spazi difine capitolo ecc), ho:

800*40*90=2.880.000 caratteri=5.760.000 byte = 5,7Mb(senza altra informazione di impaginazione), mentre con 1bit per lettera ho 2.880.000/8=360.000 byte, = 0,36Mbe' il contenuto di informazione - 16 volte di meno -questo e' il limite di una memorizzazione piu'compressa !

75I N F O R M A Z I O N E - info media (carattere)

Lettere, cifre, segni di interpunzione:la rappresentazione standard in un calcolatore dellelettere, cifre, simboli di interpunzione e aritmetici e’data dalla codifica ASCII(Americ.Standard Code for Inform. Interchange, anni 70)il codice ASCII usa 8 bit per lettera

oggi (anni dal 2000...) sempre piu' in usoil codice UNICODE a 16 bit (vedremo)

76

si noti che il problema della codifica "economica"rimane attuale

anche se la tecnologia offre continuamente dispositivi emezzi di memoria sempre piu' capienti:

I N F O R M A Z I O N E - info media (carattere)

77

si noti che il problema della codifica "economica"rimane attuale:1980 i primi HD in commercio da 10Mbyte...1999 in commercio dischi da 20 Giga Byte(2.E+10= 8000 libri da 800 pag da 40 righe da 80 caratt)2005 in commercio dischi da 200 G byte...* un video da 100 minuti su HD, ma 200 video?* esperimenti con misure che producono giga-byte di dati in pochi minuti - quanto in un anno ?* indici di archivi su rete con tera-byte di dati ...2007 ? tra 5 anni ?... si provi estrapolare la situaz. di 5 anni fa (del 2002)

I N F O R M A Z I O N E - info media (carattere) 78codifica dati

se voglio salvare un filmato o un video da 90 minuti,con 24 immagini al secondo, precisione NTSC (VGA)di 640x480,avro':schermo a bassa risoluzione, dato da 640*480 pixel(punti immagine) ciascun pixel richiede 3 byte, quindi640*480*3 = 307.200*3 = 921.600 byte = 1M byte24 immagini al secondo significa 24 * 1M = 24M,90 minuti = 90*60 secondi = 5400 secondi quindiin totale 5400 * 24 immagini, 129.600 immagini equindi 921.600 * 129.600 = 119.439.360.000 byte == 119 G byteper un video (di bassa qualita') non compresso ...

Page 14: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

79codifica dati

con risoluzione maggiore, schermo da 1200 x 900 pixel(punti immagine) con 3 byte per pixel, quindi 1200 x900 x 3 = 3.240.000 byte, circa 3 Mega pixel,24 immagini al secondo significa 24 * 3M = 72M,90 minuti = 90*60 secondi = 5400 secondi quindiin totale 5400 * 24 immagini, 129.600 immagini equindi 3.240.000 * 129.600 = 419.904.000.000= 420 G byte (video non compresso)...

rimane sempre l' esigenza di salvare grandi quantita'di dati in uno spazio (con un numero di byte) il piu'piccolo possibile, esigenza dicodifica dati efficiente = compressione dei datibreve cenno di questo aspetto nella parte seguente che riguarda i codici

80

fine " ... informazione (cenni) "

segue: .

CODICI

I N F O R M A Z I O N E - cenni

81codici

CODICI - argomenti presentati:

codici, rappresentazione, dati

codifiche binarie

codice ASCII

codice UNICODE

codici a controllo di errore

codici a correzione di errore

bibliografia

esercizi

82codici e dati

definizione:

Dati = " fenomeni fisici scelti per convenzioneal fine di rappresentare

informazioni su fatti o idee "

La stessa informazione (fatto, idea) puo' essererappresentata da dati diversi;diremo un valore l'insieme delle rappresentazionidella stessa informazione (fatto,idea).

Codice = " un sistema convenzionale di regoleper rappresentare informazioni"

83codici e dati

Ogni dispositivo (supporto fisico) capace di assumere due o piu' stati distintipuo' essere usato per rappresentare dei dati :bastoncini intagliati, spaghi annodati,pietre o ossa scolpite, tavolette d’argilla,pergamena, carta stampata,carta perforata, interruttore,anello di ferrite, carica elettrostatica,stato di un circuito bistabile,nastro magnetico, disco ottico, ... ecc)

84codici e dati

Ogni dispositivo (supporto fisico) capace di assumere due o piu' stati distintipuo' essere usato per rappresentare dei dati :La rappresentazione di un dato con un codicee' alla base dei sistemi di scrittura e di numerazionela rappresentazione delle informazioni e' molto anticae ha piu’ di 6000 anni (proto sumero e proto egiziano)il passaggio dagli ideogrammi ad un sistema alfabeticocon un numero di simboli minore avviene circa 1500anni prima di Cristo (ambiente egiziano-fenicio), poiadottato dai greci, arabi, egiziani, poi dai latini ...

Page 15: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

85codici e dati

esempio: il dato " 1.a lettera dell'alfabeto, "A" " :

noi siamo abituati a considerare il simbolo (il carattere) “A” e la "vocale a"(vocale del sistema fonetico della lingua italiana)come equivalenti - ma non sono la stessa cosa:

"vocale a" (1.a lettera dell’alfabeto italiano) = dato

“A” = un codice per il dato “a”

per lo stesso dato [vocale a]abbiamo diversi codici:

86codici e dati

per lo stesso dato "vocale a" abbiamo diversi codici:. codice del carcerato: un colpo per a,

due per b, tre per c ... supporto qualunqe, equivale al numero uno in sistema unarioa α simbolo che rappresenta la lettera a, codice grafico esterno [al calcolatore] "aleph"origine egizia/fenicia/greca/latina.. sorgente-destinatario: persona-persona, supporto: carta; / vedremo tra 2 pagine ... . - codice Morse, usa combinazioni di tre

simboli (punto,linea e spazio), supporto:carta/ conduttore elettrico;

87

ripeto .. dato "1.a lettera dell'alfabeto, ‘a’ " , diversi codici:

. codice del carcerato: un colpo per a;a α codice grafico esterno, supporto carta;. - cod. Morse, supporto carta/conduttore elettrico

ancora:

simbolo dell’alfabeto sillabico hiragana giapponese

ancora:

0100 0001 ASCII - codice interno al calcolatore, binario, destinato ad una macchina (supporti vari),

codici e dati 88il primo alfabeto (fenicio) A,α

89il primo alfabeto (fenicio)

Byblos = porto fenicio con cui commerciavano i greci

A, α

. .90il primo alfabeto (fenicio)

nota: molti sistemi antichi di scrittura alfabetica (semitici) non scrivevano levocali, per cui Bt, Bet, Bait, Beta, Beth, sono ipotesi (come T'th'n'k'm'n)...

Page 16: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

91

α

fine della divagazionesull'

alfabeto

ω

92

dati 4 simboli - es.: * # @ ?1)codifico con un (altro) insieme di simboliprestabilito, es. con le tre lettere A,B,C: * con A, # con B, @ con C, ? con AB,e ho il codice a destra,

2) con i quattro simboli e hoad es: * con # con @ con ? cone ho il codice a destra in basso:

* A # B @ C ? AB

un codice per un insieme di simboli e' una tabella di corrispondenza tra i simboli da codificare e dellestringhe di simboli dati con cui scriviamo il codice:

* # @ ?

93codici e dati

altre codifiche:3) dati 4 simboli * # @ ? codifico con quattro lettere: * scrivo con A, # con B, @ con C, ? con D,

4) codifica con cifre decimali: * 1 # 2 @ 3 ? 4

* A # B @ C ? D

* 1 # 2 @ 3 ? 4

94codici e dati

altre codifiche:dati 4 simboli - es.: * # @ ?codifica con cifre decimali,in due modi diversi, 4) e 5)come riportato a destra ...oppure codifica con cifrebinarie, qui usati x e y;es. 6) codice a lunghezza fissaes. 7) cod. a lunghezza variabile

* 1 # 2 @ 3 ? 4

* 113 # 224 @ 557 ? 668

4) 5)

* xxx # xxy @ xyx ? xyy 6)

* xy # xyy @ xyyy ? x7)

95codici e dati

ancora, dati 4 simboli - es.:

* # @ ?posso codificarli utilizzando un solo simbolo,ad esempio (codice numero 8) : * x # xx @ xxx ? xxxx

(codifica con codici a lunghezza diversa!)

96codici e datiun dato "scritto" con i 4 simboli * # @ ?ad es: * * @ ? # # * @ ?nei codici visti diventa: 1) A A C AB B B A C AB 2) 3) A A C D B B A C D 4) 1 1 3 4 2 2 1 3 4 * * @ ? # # * @ ? 5) 113 113 557 668 224 224 113 557 668 6) xxx xxx xyx xyy xxy xxy xxx xyx xyy 7) xy xy xyyy x xyy xyy xy xyyy x 8) x x xxx xxxx xx xx x xxx xxxx

* A # B @ C ? AB

* # @ ?

* A # B @ C ? D

* 1 # 2 @ 3 ? 4

* 113 # 224 @ 557 ? 668

* xxx # xxy @ xyx ? xyy

* xy # xyy @ xyyy ? x

* x # xx @ xxx ? xxxx

Page 17: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

97codici e datiil dato * * @ ? # # * @ ? nei codici visti si scrive: 1) A A C AB B B A C AB 3) A A C D B B A C D 4) 1 1 3 4 2 2 1 3 4 * * @ ? # # * @ ? 7) xy xy xyyy x xyy xyy xy xyyy x 8) x x xxx xxxx xx xx x xxx xxxxnota la presenza del separatore spazio, essenziale peri codici 1) e 8) ma non per gli altri; nel codice 7, datoscritto senza spazi si legge ancora xyxyxyyyxxyyxyyxyxyyyx ,nel codice 8) invece no: xxxxxxxxxxxxxxxxxxxxxcon il codice 1) se tolgo gli spazi: AACABBBACABpuo' essere letto A B B B A C A B oppure AB B B A C AB

98codici e dati

il calcolatore usa la codifica binaria, DUE SIMBOLI,perche’ i supporti fisici (memorie) a 2 stati soli sono piu’ sicuri !!acceso/spento; c’e’corrente / non c’e’corrente;magnetizzato N-S / magnetizzato S-N;perforato / non perforato; - da qui l’interesse per l’algebra della logica a due valori falso/vero o zero/uno, - da qui l’uso dei codici a due valori 0/1 = codici binaridati 4 simboli * # @ ?es.di codifica a 2 valori 00 01 10 11ancora 000 011 101 110

99codici e dati

nella codifica binaria, si usano due soli simboli,di solito indicati con 0 zero o falso 1 uno o verousati anche per rappresentare numeri in base due,detti bit, da binary digit o cifra binaria

il calcolatore usa al suo interno solo codicia due valori 0/1 detti codici binari

ad esempio per tre simboli : # @ &un es.di codifica binaria: 10 1 101

per cui il dato: # # # @ & & @@@ # @ #si rappresenta: 10 10 10 1 101 101 1 1 1 10 1 10

100codici e datiper codificare 4 simboli in binario posso sceglieremoltissime soluzioni: ( A B C D sono i 4 simbolida rappresentare) ... esempi di codici:

la codifica 4) (numero simboli binari fisso) e’ lapiu’ economica, il numero di bit (due) e'uguale alcontenuto di informazione di un simbolo (su 4)

1) A 1 B 11 C 111 D 1111

3) A 11000 B 01100 C 00110 D 00011

2) A 101 B 1001 C 10001 D 100001

4) A 01 B 10 C 11 D 00

101codici e dati

nota: per dati non equiprobabili esistono codici alunghezza variabile che consentono un risparmio nelnumero medio di bit usati, ovvero sono piu' efficienti;

i codici a lunghezza variabile tengono conto dellafrequenza dei simboli nel dato: simboli piu' frequentiavranno un codice piu' breve (analogia con scelta daMorse per il suo codice telegrafico);

es.: codice Hufmann, non trattato qui.

102codici e dati

lo schema di codifica piu' usato e' a numero di bit fisso:un bit per due simboli: A 0 B 1

due bit per tre A 00 B 01 C 10o per quattrosimboli A 00 B 01 C 10 D 11

tre bitper cinque, A 000 B 001 C 010sei, sette o D 011 E 100otto simboli,

quattro bit per nove..sedici simboli, cinque per 17..32simboli, eccetera ...

Page 18: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

103codici e dati

devo usare almeno due bit per quattro simboli,ma posso scegliere come associare simbolo-codicein molti modi:

un modo: A 00 B 01 C 10 D 11oppure: A 11 B 00 C 10 D 01oppure: A 10 B 11 C 00 D 01oppure ancora: A 01 B 11 C 00 D 10ecc

Quante codifiche con n bit (n fisso) per K simboli?(deve essere n >= log2(K) ) - qui n=2, K=4

104codici e datiQuante codifiche con n bit (n fisso) per K simboli?(deve essere n >= log2(K) ) se K=4, n=2,posso associare i 4 simboli diversi A, B, C, Dai 4 codici diversi 00, 11, 01, 10 in 4 ! modi diversi(uno dei 4 codici per A, uno dei tre rimanenti per B, uno deidue rimanenti per C, il codice per D rimane fissato), quindi visono 4 * 3 * 2 * 1 modi per associare 4 codici a 4 simboli,4 * 3 * 2 * 1 = 4 ! = 4 * 6 = 24di seguito sono riportati 12 codici (dei 24 possibili):A 00 00 00 00 00 00 01 01..01 10..10 11..11B 01 01 10 10 11 11 00 00..11 01..11 01..00C 10 11 01 11 01 10 10 11..10 00..00 10..10D 11 10 11 01 10 01 11 10..00 11..01 11..01 1 2 3 4 5 6 7 8 12 13 18 19 24

105codici e dati

Quante codifiche con n bit (n fisso) per N simboli?(n >= log2(N) )

ad es. per codificare 25 simboli (alfabeto inglese) devousare 5 bit (4 bit arrivo fino 16, 5 bit arrivo fino 32),( ho 32 * 31 * 30 * 29 * 28 .. * 8 * 7 possibili scelte per la codifica )

Normalmente si sceglie l’accoppiamento “per ordine”:ordino i simboli (convenzione: ordine alfabetico),ordino i codici binari (convenz.: numerazione binaria),poi associo i simboli ordinati ai codici ordinati;es. per quattro simboli: A B C D <--> 00 01 10 11 quindi A = 00, B = 01, C = 10, D = 11

106codici e dati

ricorda la numerazione binariadecimale binario(in base due, cifre 0,1) 0 0 1 1 (uno= due alla zero) 2 10 (due, = due alla uno) 3 11 (in base due, cioe’ due(=10) piu’ 1) 4 100 (quattro = due alla due) 5 101 (cinque=quattro+uno) 6 110 (sei = quattro + due) 7 111 (sette=quattro+due+uno) 8 1000 (otto = due alla tre) 9 1001 (nove=8+1) 10 1010 (dieci = 8+2) ecc

107codici e dati

un bit per due simboli: A 0 B 1

due bit per tre o quattro simboli: A 00 B 01 C 10

A 00 B 01 C 10 D 11

tre bit per cinque, sei, sette o ottosimboli:

A 000 B 001 C 010 D 011 E 100A 000 B 001 C 010 D 011 E 100 F 101A 000 B 001 C 010 D 011 E 100 F 101 G 110A 000 B 001 C 010 D 011 .. F 101 G 110 H 111

108codici e dati

quattro bit per codificare da 9 a 16 simboli:

A 0000 B 0001 C 0010 D 0011 (1..4)E 0100 F 0101 G 0110 H 0111 (5..8)I 1000 (9)

...

...

A 0000 B 0001 C 0010 D 0011 (1..4)E 0100 F 0101 G 0110 H 0111 (5..8)I 1000 J 1001 K 1010 L 1011 (9..12)M 1100 N 1101 O 1110 P 1111 (13..16)

Page 19: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

109codici e dati

con 5 bit posso rappresentare fino 32 simboli (vecchio codice per telescrivente Baudot)

con 6 bit -> 64 simboli (vecchio codice calcolatori BCD),

con 7 bit -> 128 simboli (codice ASCII di 32 + 96 caratteri)

con 8 bit -> 256 simboli (codice ASCII esteso)

quanti bit per rappresentare i 10.000 simboli dellascrittura cinese?(10 bit: 1024, 12 bit: 4096, 14 bit: 16384) => almeno 14

110codici e dati

con 7 bit -> 128 simboli (codice ASCII di 32 + 96 caratteri)

con 8 bit -> 256 simboli (codice ASCII esteso)

con 16 bit -> 2*32768 simboli (unicode)

(e per un po’ basta)

111codici e datiuno dei primi supporti dati ormai in disuso:schede perforate usate nel telaio automatico del 1801 di Joseph Jacquard, Lyon,per "registrare" o memoriz-zare l'informazione sul controllo dell'orditomediante dei codici binari (buco presente/assente)su un supporto di cartone(schede); in 20 anni si eradiffuso in tutta l'Europa,e Babbage ne era a conoscenza

il telaio Jacquard (museo della scienzae della tecnica, Manchester, GB )

112Telaio Jacquard

The Jacquard loom was the firstmachine to use punch cards tocontrol a sequence of operations.Although it did no computationbased on them, it is considered animportant step in the history ofcomputing hardware.The ability to change the patternof the loom's weave by simplychanging cards was an importantconceptual precursor to thedevelopment of computerprogramming. (Wikipedia)

Telaio J.: le schede perforate per il controllo dell'ordito

113codici e daticuriosita' storica ... ancora due "supporti dati" ormai in disuso: il nastro perforato per "registrare" o memorizzare un dato = perforare dei codici binari su nastro; in figura, * sta per perforazione)es. codice di A: 01000 001 (41 esadecimale)es. codice di C: 11000 011 (43 esadecimale)era il supporto dati principale del primo computer IBM1620 dell' univ.di Trieste, anni 1961-1966.

0 1 2 3 4 5 6 7 8 9 A B C D E F G H I ... Y Z

* * * * * * * * * * * * * * * * * * * * * * * * * * *. . . . . . . . . . . . . . . . . . . . . . . . . . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

123

45678

114codici e dati

2) scheda perforata (inventata da Hollerith nel 1885,la ditta di Hollerith nata agli inizi del secolo poi neglianni 20 divento’ una ditta di macchine"meccanografiche" o elettrocontabili ... l' IBM)

I calcolatori del Centro di Calcolo dell' Universita' diTrieste dal 1967 (IBM7044) al 1980 (CDC7400)utilizzavano come principale supporto dati (eprogrammi) le schede perforate;

ancora nel 1985 esistevano un lettore ed unperforatore di schede, il lettore di schede e’ rimasto inuso fino al 90...

Page 20: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

115codici e dati

La scheda perforata e' andata in disuso con l'avvento

dei sistemi in multiutenza(e quindi l'introduzione di terminali alfanumerici,anni 70..)

e

dei personal(TRS, Commodore, Apple, anni 1975-1980).

oggi e' possibile leggere schede perforate solo in unamacchina di un museo di informatica...

116codici e dati

0 1 2 3 4 5 6 7 1 9 A B C D E F G H I J K W X Y Z

A A A A A A A A A A A * * * * * * * * * A A A A A AB B B B B B B B B B B B B B B B B B B B * * B B B B * 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * * * * 1 * 1 1 1 1 1 1 1 1 1 * 1 1 1 1 1 1 1 1 * 1 1 1 1 12 2 * 2 2 2 2 2 2 2 2 2 * 2 2 2 2 2 2 2 2 * 2 2 2 2 3 3 3 * 3 3 3 3 3 3 3 3 3 * 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 * 4 4 4 4 4 4 4 4 4 * 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 * 5 5 5 5 5 5 5 5 5 * 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 * 6 6 6 6 6 6 6 6 6 * 6 6 6 6 6 * 6 6 6 7 7 7 7 7 7 7 * 7 7 7 7 7 7 7 7 7 * 7 7 7 7 7 * 7 7 8 8 8 8 8 8 8 8 * 8 8 8 8 8 8 8 8 8 * 8 8 8 8 8 * 8 9 9 9 9 9 9 9 9 9 * 9 9 9 9 9 9 9 9 9 * 9 9 9 9 9 *

scheda perforata: codice a 12 bit, 80 caratteri (colonne) il codice di A: 10 01000 00000, (qui sotto, * sta peril codice di B: 10 00100 00000 posizione perforata)

117codici e dati

Ritorneremo in seguito sui supporti dati oggi piu' usati,ovvero i dischi (di vario genere ... ) i nastri magnetici

118codici e dati

il codice

A S C I I

(leggi: eski... ma anche asci)

American Standard Code for Information Interchange

119codici e dati

il codice ASCII per rappresentare un testo semplice:

32 codici di controllo (corrisp.ai numeri da 0 a 31)

96 codici “stampabili”, sono i simboli (caratteri)stampabili del codice ASCII, lettere (maiuscole,minuscole, alfabeto inglese), cifre (da 0 a 9), simbolivari (aritmetica, punteggiatura, parentesi, ecc)i codici da 128 a 255 hanno significati diversi a secondadella scelta dell'utente.

di seguito sono riportati tutti i codici ASCII , a scopoinformativo e di consultazione, (NON da memorizzare)

120ricorda i codici numerici: il numero 10 ha diverse codifiche

decimale: ottale esadecimale binario0 0 0 01 1 1 12 2 2 10...6 6 6 1107 7 7 1118 10 8 10009 11 9 100110 12 A 101011 13 B 1011..14 16 E 111015 17 F 1111

Page 21: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

121codici e dati - tabella ASCII - cont.

American Standard Code for Information Interchange =codice ASCII: codice a 7 bit per rappresentare un dato, es.:

“riganuova” (NON stampabile) codice num. 10, esadecim. A

vediamo alcuni codici:

“ “ = codice numero 32, esadecimale: 20 binario: 010 0000

“6” = codice numero 54, esadecimale: 36 binario: 011 0110

“A”= codice numero 65, esadecimale: 41 binario: 100 0001

“a”= codice numero 97, esadecimale: 61 binario: 110 0001

“}”= codice numero 125, esadecimale: 7D binario: 111 1101

122codici e dati - tabella ASCII - cont.

i primi 32 codici ASCII (da 0 a 31)sono codici NON stampabili, usati per controllo -es.: 8 = back space, 10 = line feed, 13 = carriage return eccparte codici controllo, da 0 a 31, in decimale / esadec:

0 0 NUL 1 1 SOH 2 2 STX 3 3 ETX4 4 EOT 5 5 ENQ 6 6 ACK 7 7 BEL

8 8 BS 9 9 HT 10 A LF 11 B VT

12 C FF 13 D CR 14 E SO 15 F SI

16 10 DLE 17 11 DC1 18 12 DC2 19 13 DC320 14 DC4 21 15 NAK 22 16 SYN 23 17 ETB

24 18 CAN 25 19 EM 26 1A SUB 27 1B ESC28 1C FS 29 1D GS 30 1E RS 31 1F US

123codici e dati - tabella ASCII - cont.

nota: per ottenere uno di questi caratteri speciali concodice 0..31 su una tastiera [di solito] si deve premereassieme il tasto CTRL piu' un altro carattere, es:

3 (EndOfText=CTRL-C); 8 (BackSpace=CTRL-H); 9 (TABula); 10 (LineFeed=caporiga);12 (FormFeed=capopagina); 13 (Carriage Return= RitornoCarr);26 (EndOfText in MSDOS); 27 (escape)..prova ctrl-G ...

alcuni caratteri speciali corrispondono ad un tastosingolo: BackSpace [ 8 ], Esc [ 27 esad. 1B ], Return [ 13 esad. D ], ...

124codici e dati - tabella ASCII - cont.

di seguito e’ riportatala tabella dei codici ASCIIcompleta(da 32 a 127, i codici da 0 a 31 riportati prima)

...

125codici e dati - cont. codici ASCII - codici da 32 a 79 :32 20 spaz. 33 21 ! 34 22 " 35 23 #36 24 $ 37 25 % 38 26 & 39 27 '40 28 ( 41 29 ) 42 2A * 43 2B +44 2C , 45 2D - 46 2E . 47 2F /

48 30 0 49 31 1 50 32 2 51 33 352 34 4 53 35 5 54 36 6 55 37 756 38 8 57 39 9 58 3A : 59 3B ;60 3C < 61 3D = 62 3E > 63 3F ?

64 40 @ 65 41 A 66 42 B 67 43 C68 44 D 69 45 E 70 46 F 71 47 G72 48 H 73 49 I 74 4A J 75 4B K76 4C L 77 4D M 78 4E N 79 4F O

(cont.pag.seg.)es. lettura tabella:! = codice n.ro 33, esadec. 21, binario 010 0001C = codice n.ro 67, esadec, 43, binario 100 0011

126codici e dati - cont. codici ASCII - codici da 80 a 127 :

80 50 P 81 51 Q 82 52 R 83 53 S84 54 T 85 55 U 86 56 V 87 57 W88 58 X 89 59 Y 90 5A Z 91 5B [92 5C \ 93 5D ] 94 5E ^ 95 5F _

96 60 ` 97 61 a 98 62 b 99 63 c100 64 d 101 65 e 102 66 f 103 67 g104 68 h 105 69 i 106 6A j 107 6B k108 6C l 109 6D m 110 6E n 111 6F o

112 70 p 113 71 q 114 72 r 115 73 s116 74 t 117 75 u 118 76 v 119 77 w120 78 x 121 79 y 122 7A z 123 7B {124 7C | 125 7D } 126 7E ~ 127 7F DEL

es. lettura tabella:u = codice n.ro 117, esadec. 75, binario 111 0101~ = codice n.ro 126, esadec. 7E, binario 111 1110

Page 22: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

127=> ancora codice ASCII, ... tabella completa : 32 ! 33 " 34 # 35 $ 36 % 37 & 38 ' 39 ( 40 ) 41 * 42 + 43 , 44 - 45 . 46 / 47 0 48 1 49 2 50 3 51 4 52 5 53 6 54 7 55 8 56 9 57 : 58 ; 59 < 60 = 61 > 62

? 63 @ 64 A 65 B 66 C 67 D 68 E 69 F 70 G 71 H 72 I 73 J 74 K 75 L 76 M 77 N 78 O 79 P 80 Q 81 R 82 S 83 T 84 U 85 V 86 W 87 X 88 Y 89 Z 90 [ 91 \ 92

] 93 ^ 94 _ 95 ` 96 a 97 b 98 c 99 d 100 e 101 f 102 g 103 h 104 i 105 j 106 k 107 l 108 m 109 n 110 o 111 p 112 q 113 r 114 s 115 t 116 u 117 v 118 w 119 x 120 y 121 z 122 { 123 | 124 } 125 ~ 126

ricorda: il codice ASCII originale prevede 7 bit dicodifica, quindi 128 possibili simboli diversi: i codici da0 a 31 sono caratteri di controllo, non stampabili, i 96codici da 32 a 127 corrispondono a caratteri stampabili.

128codici e dati

il codice corrente ('80..'90) ASCII prevede 8 bit;

inizialmente l’ottavo bit assumeva sempre unsignificato di controllo parita’ (vedremo cosa significa)

oggi piu’ spesso il codice a 8 bit e’ un ASCII esteso,

dove si riservano dei codici per caratteri / simbolispeciali,ad es alcune lettere greche, simboli matematici ecc,

e codici per caratteri nazionali, che pero’ cambianosignificato a seconda della nazione (e quindi cambiatastiera e font: inglese, italiano, francese, croato,..)ad es: ò oppure ç oppure ž ...

129

seguono cenni sul

CODICE UNICODE

vedi su rete http://www.unicode.org/

130UNICODE - un codice “per tutti” a 16 bit

il codice UNICODE (ISBN 0-201-56788-1, 1990)

usa 16 bit per rappresentare un simbolo, e quindi puo’rappresentare 65000 simboli diversi...

i primi 256 codici sono il set ASCII a 8 bit Latin-1,che quasi coincide per i primi 128 codici con il ASCII a 7 bit;vi sono vari codici Latin-extended -esistono centinaia di lingue che usano le lettere latine, ciascunacon varie modifiche o segni modificatori come ¨ ˆ ° · ´ _

gli altri codici sono usati per rappresentare una gran quantita’di simboli usati in varie lingue del mondo, raggruppando dovepossibile (ad es. i set latini, i set cirillici, i set arabi) o definendocodici e regole per parti di caratteri piu’ complicati ( i set che sibasano sui simboli cinesi )

131UNICODE - un codice “per tutti” a 16 bit

ad es.:alfabeti arabo, armeno, bengali, cirillico, copto, devanagari,ebraico, greco, hiragana, katakana, koreano, ecc(vi sono piu' di 3000 lingue "riconosciute",ma non altrettanti codici UNICODE )

anche i simboli per le cifre decimali (i numeri) delle varielingue sono talvolta diversi (arabo, cinese, giapponese ...) ....infine sono definiti dei set di simboli piu’ usati (valute, frecce,simboli matematici, “dingsbat” ecc) cioe’ molti set diideogrammi standardizzati

(da http://www.unicode.org/ , wikipedia, ... elibri ad es. “The Java Programming Language” di K.Arnold eJ.Gosling, 1996):

132ricordiamo i numeri (india->arabi->maghreb->italia->europa)

Page 23: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

133compressione

un cenno alla compressione dei dati

134codifica suoni, immagini, filmati

L'argomento della codifica di suoni, immagini e filmatie' troppo vasto per poter essere trattato meglio qui;(sara' trattato in breve in una parte successiva)

rimane da ricordare alcuni formati di file audio,immagini e video che oltre la codifica dell'informazione di partenza prevedono abitualmente anche una compressione dei dati(di due tipi principali: compressione fedele, chepermette la ricostruzione dell'originale senza perdite, ecompressione con perdita (piu' o meno accettabile) cheNON permette la ricostruzione esatta dell'originale)

135compressione

Con opportuni algoritmi di compressione si puo'codificare un insieme (grande) di dati con meno bit:

se vogliamo conservare l'originale non alterato, si ha illimite della compressione quando elimino tutta la parteridondante - compressione senza perdita: si arrivaal limite, tanti bit quanto e'il contenuto di informazionese invece si ammette " un po' " di perdita di qualita'(suono / immagine / filmato) allora si puo' comprimereancora, con metodi che eliminano le parti "marginali"(quelle che il nostro udito o la nostra vista recepisconodi meno)in questo caso non c'e' un netto limite ...

136compressione

es. semplice: codifica compressa di simboli ripetuti piu' volte:memorizzo il simbolo e poi il numero di volte che il simbolo varipetuto:

"testo con ********* nove asterischi"

diventa-

"testo con [esc]*9 asterischi" (uso un carattere speciale [esc] )

oppure

"testo con ***9 asterischi" (ripeto 3 volte il carattere che poi e' seguito dal numero di ripetizioni)

schema e' usato nella codifica GIF (CompuServe graphicsinterchange format) va bene per immagini con parti estesedello stesso colore (piatte), con poca tessitura a grana fine

137compressione

un'altro esempio di codici piu' efficienti sono i codici alunghezza variabile

es.noto [e antico]: il codice telegrafico di Morse),anno 1835 circa ...

un esempio di codifica di simboli a frequenze diversecon codici a lunghezza variabile e' il codice Huffmann,dove i simboli che sono piu' frequenti hanno un codicebreve, i simboli meno frequenti hanno un codice lungo;

non si riporta il procedimento di codifica ...

138compressione - CLUT

una tecnica di risparmio di spazio di codifica di un'immagine e' data dall' uso della "tavolozza di colori" ocolor palette, (Color Look-Up Table) (molto usata 10 o15 anni fa, lo schema piu' diffuso era la VGA)

Immaginiamo di usare 8 bit per colore (intensita'colore a 256 livelli), per i tre colori Red Green Blue)per un pixel ho 24 bit, ovvero la scelta tra 16 milioni dicolori.

Ma un'immagine ad es. a 1200x800=960.000 pixel hameno di un milione di pixel e quindisicuramente meno di un milione di colori; se mi limitoa 256 colori, allora mi bastano 8 bit per indicare uncolore (della tabella "palette")

Page 24: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

139compressione - CLUT

Tavolozza di colori, color palette, ColorLookUpTable:

invece di 24 bit per pixel (24bit=16M colori ... questo schermo ;-)uso solo 8 bit per pixel, limito il numero dei coloridiversi a 256, ma questi colori sono codificati a 24 bitnella (la tavolozza)

specifico in una tabella di 256 elementi (la CLUT) qualicolori uso, ogni colore della CLUT e'codificato a 24 bite poi memorizzo per ogni pixel non il colore (24bit) mal'indice del colore nella tavolozza (8 bit) (schema dellaVGA, anni '80) - invece di memorizzare 0,96Mbyte x24bit=2,88 M byte ho 0,96 Mbyte ...

140compressione

- algoritmi di compressione -

a seconda del campo di applicazione (immagini di variotipo, segnali audio, filmati di vario tipo) esistono varialgoritmi di compressione.

Un algoritmo molto usato e' la codifica LZW diLempel Ziv Welch (Unix 1984, GIF87,...),oneroso in termini di compressione (costruisce delletabelle di frequenze di simboli ma anche di sequenze disimboli che si ripetono (stringhe), e codifica un numeroal posto della stringa; molto meno oneroso in termini didecompressione

141compressione - formati di dati compressi -

esistono molti formati di dati compressiper motivi storici, di proprieta' (GIF proprieta'di unaditta, MPG proprieta' di un consorzio.., altri pubblici..)di tipo di algoritmo di compressione, di tipo di dato dacomprimere...

a seconda del campo di applicazioneaudio: mp3 (parte del MPEG-1 a livello 3)immagini: formati TIFF, JPEG, MPG,video: DV, MPG-2...

riprenderemo questo discorso in un'altra parte ..

142 ..

CODICI A CONTROLLO DI ERRORE

. . .

143codici ed errori

contenuto:codici e trattamento dell'errore legame tra ridondanza/efficienza e il controllo di errore * codici a controllo di errore o a segnalazione automatica di errori: raddoppio, parita', ASCII a 8 bit, controllo su blocchi piu' grandi distanza tra due valori di un codice * codici a correzione automatica di errori= recupero automatico di errori codici triplicati, controllo incrociato

144codici e dati

definizione:

dato un codice di rappresentazione di k simboli diversi,(event. non equiprobabili, con codifiche di lunghezzaeventualmente diversa),si definiscono: I medefficienza e = -------- N med

e

ridondanza r = 1 - e

Page 25: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

145

esempio: codifica dei 4 simboli: A, B, C, D

1) codice: A 00 B 11 C 01 D 10 <<==== I med = 2 bit (simboli equiprobabili) N bit medio per simbolo: 2 efficienza: I med / N med = 2/2 = 1,0 <--

2) codice: A 111 B 11 C 1 D 1111 <<==== I med = 2 bit (simboli equiprobabili) N bit medio per simbolo: (1+2+3+4)/4 = 10/4 = 2,5 efficienza: I med / N med = 2/2,5 = 0,8 <--

146

continua esempio codifica di 4 simboli: A, B, C, D

3) codice: A 0001 B 0010 C 0100 D 1000 <<==== I med = 2 bit (simboli equiprobabili) N bit medio per simbolo: 4 efficienza: I med / N med = 2/4 = 0,5 <--

147codici e dati non equiprobabili

un es. di codici per dati equiprobabili:messaggio con 4 simboli equiprobabili A,B,C,D;codifica 2 bit per lettera, A 00, B 01 C 10 D 11,Nmed(numero bit medio per simb.) = 2qui prob(A)=prob(B)=prob(C)=prob(D)=1/4, quindi

Imed = Σ i p(i)*I(i) = Σ i { p(i)*(log2 (1/p(i) ) ) } = 4*( 1/4 * (2) ) = 4*(1/2) = 2 bit per simbolo,efficienza = Imed / Nmed per il messaggio :lunghezza = num. simboli * bitCodiceMedioPerSimboloinformazione = n.simboli * bitInformMediaPerSimboloqui lungh=inform, = 1, efficienza=1, ridondanza=0

148codici e dati non equiprobabilicodici per dati NON equiprobabili:es.: messaggio con 4 simboli, ABCD, non equiprobabili; Imed= Σ i p(i)*I(i) Imed= Σ i { p(i)*(-log2 (p(i) ) ) }

es. prob(A)=13/16=0,8125, I(A)= log2(1,231)=0,3 prob(B)=prob(C)=prob(D)=1/16 = 0,0625; I(B)=log2(16)=4,

Imed= Σ i p(i)*I(i) Imed= Σ i { p(i)*(-log2 (p(i) ) ) }= 13/16*0,3+3*(1/16*4)=0,81*0,3+3*(1/4)=0,244+0,75=con un codice: A= 1; B=00, C=010, D=011 allora13/16*1+ 1/16*2+ 1/16*3+1/16*3=21/16 = 1.3un codice ottimale usa un numero bit medio =contenuto di informazione medio... (zero ridondanza)(non parliamo dei modi per ottenerlo ...)

149codici ed errori

Problema dell' errore:

e' inevitabile che un dispositivo (unsupporto fisico, un sistema di trasmissione)dia luogo a errori di trasmissione/diregistrazione,anche se la tecnologia fornisce sistemisempre piu' affidabili.(e la probabilita' di errore per 1M o 1G registrato otrasmesso e' sempre piu' piccola)

150codici ed errori

Problema dell' errore:

un dispositivo (un supporto fisico) puo' dar luogo aerrori di trasmissione/di registrazione, e' inevitabile,anche se la tecnologia fornisce sistemi sempre piu'affidabili.

e' essenziale che il calcolatore stesso - in modo del tutto automatico - controlli e quindi segnali la presenza di un errore - e, se possibile, lo corregga

Esistono codici che consentono * la rilevazionee anche * la correzione automatica di errori.

Page 26: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

151codici ed errori

Esistono codici che consentono

* la rilevazione

e anche

* la correzione automatica di errori

vediamo un esempio"giocattolo"

152codici ed errori

Problema di rilevazione di un errore:Siamo appena stati assunto in una grossa ditta, e per farcinotare spediamo un messaggio al capo: dato di partenza:

IL PRESIDENTE E' UN GRANDE FILANTROPO 1) registro o trasmetto con una codifica semplice, ad es con codice ASCII, 7 bit/carattere, totale 7*37=259 bit contenuto d'informazione ( ipotizzo un dizionario di 4000 parole [bastano...], quindi 12 bit per parola) 12(bit) * 6(parole) = 72 bit efficienza I / N = 72/259 = 0,28 (prescindiamo dalla semantica del messaggio, o del contenuto di informazione "vero" di un messaggio di questo tipo ;-)

153codici ed errori

rilevazione di un errore: dato di partenza (37 caratteri):

IL PRESIDENTE E' UN GRANDE FILANTROPO codice ASCII, numero bit usati 7 * 37 = 259 bit, contenuto d'informazione 12*6 = 72 bit, efficienza I / N = 72/259 = 0,28

se c'e' un errore in registrazione (o di trasmissione)allora uno dei 37 caratteri trasmessi viene ricevutoerrato, es: IL PRESIDENTE E' UN GRANDE FILANTRZPO

L'errore viene rilevato e anche corretto:la lettera Z viene facilmente individuata come errore. [ qui siamo noi a fare da “correttori automatici” ]

154codici ed errori

2) codifica efficiente: uso un dizionario (a disposizionesia del sistema sorgente sia del ricevente) di 4000parole;per spedire una parola bastano 12 bit (2^12 = 4096), intutto sei parole 6*12 = 72 bit (invece dei 37 * 8 = 296nella codifica di prima con 37 caratteri); ora il dato IL PRESIDENTE E' UN GRANDE FILANTROPOcodificato [ parola -> numero ] diventa: 2573 3510 1203 3801 1526 1497

-> Suppongo ora che si verifichi un errore,ad es. invece di 1497 ricevo 1897 ..... decodifico ....

155codici ed errori

2) codifica efficiente con dizionario di 16.000 parole,messaggio codificato (6*14= 84 bit invece di 296) 2573 3510 1203 3801 1526 1497

se si verifica un errore, es. invece di 1497 ricevo 1897,ottengo: 2573 3510 1203 3801 1526 1897

che interpretato con lo stesso dizionario da' IL PRESIDENTE E' UN GRANDE MACACOL'errore NON si rileva (tanto meno si corregge)=> un codice efficente NON permette la rilevazione degli errori !!

156messaggio senza ridondanza: non si rileva l'errore ...

IL PRESIDENTE E' UN GRANDE FILANTROPOcodificato [parola->numero (dizionario di 4000 parole]diventa: 2573 3510 1203 3801 1526 1497 -> Suppongo ora che si verifichi un errore, ad es. invece di invece di 1497 ricevo 1897, -->> errore -->> 2573 3510 1203 3801 1526 1897che interpretato con lo stesso dizionario da': IL PRESIDENTE E' UN GRANDE MACACOcodice efficente : l' errore NON si rileva ... conconseguenze negative per l' autore del messaggio(dipende dal paese dove stanno ...) <:-(

Page 27: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

157ancora un esempio; un messaggio di un ipoteticauniversita' UX che cerca di acquisire nuovi studenti:

l’infochimica vi insegnera’come iniziare una nuova vita [testo di 9 parole in tutto 55 caratteri]

codifica: dizionario di 15000 parole “numerate” dellalingua italiana, da dove trovo i numeri progressividelle parole.Ad ogni parola sostituisco un numero, un codice:come 3021 l’ 8411infochimica 7953 nuova 10766iniziare 7977 una 13311insegnera’ 8042 vi 14850vita 14903

158l’infochimica vi insegnera’come iniziare una nuova vita[9 parole in tutto 55 caratteri, quindi in codice ASCII 55x8 = 440 bit ]

codifica: con dizionario di 15000 parole “numerate”come 3021 l’ 8411infochimica 7953 nuova 10766iniziare 7977 una 13311insegnera’ 8042 vi 14850 vita 14903quindi il messaggio codificato diventa:

8411 7953 14850 8042 3021 7977 13311 10766 14903

invece di 55 caratteri a 8 bit = 440 bit testo ASCII, ho ora 9 numeri da 14 bit = 126 bit !

risparmio per un fattore di 3,5 ! ... ma ...

159codici ed errori (cont. es.)messaggio originale (ASCII: 55 caratteri x 8 bit = 440 bit)“l’infochimica vi insegnera’come iniziare una nuova vita”

codifica: sost. alle parole i numeri progressivi del dizionario: come 3021 ... iniziare 7977 una 13311 insegnera’ 8042 vi 14850 vita 14903

il messaggio codificato (9 numeri da 14 bit = 126 bit)8411 7953 14850 8042 3021 7977 13311 10766 14903

con un errore (es. canale disturbato, o memoria con errori)ricevo/leggo rispettivamente nelle due codifiche:“l’infochimica vi insegnera’come inwziare una nuova vita”

“8411 7953 14850 8042 3021 7677 13311 10766 14903”

160caso di un errore:a) messaggio spedito in ASCII ( 440 bit), ricevo:

“l’infochimica vi insegnera’come inwziare unanuova vita”

-->> mi accorgo dell’errore,

inwziare NON e’ una parola legale!

qui riesco anche a correggere !!

161b) mess. codificato in numeri, (9 num. da 14 bit = 126 bit)ricevo: ( 7677 invece di 7977)“8411 7953 14850 8042 3021 7677 13311 10766 14903”

decodifico con l’aiuto del dizionario (parole numerate):come 3021 l’ 8411finire 7677 nuova 10766infochimica 7953 una 13311iniziare 7977 vi 14850insegnera’ 8042 vita 14903

MESSAGGIO (con errore) DECODIFICATO diventa:

l’infochimica vi insegnera’come finire una nuova vita

-->> non mi accorgo dell’errore!

(e l' universita' UX perde studenti...)

162codici ed errori

dall'esempio visto segue che

* per consentire

la rilevazione ("controllo") di un errore di trasmissione o di registrazione

* devo usare un codice ridondante cioe' tale che

NON TUTTE le combinazioni di bit sono leciteovvero non tutti i codici rappresentano un dato.

Page 28: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

163codici ed errori

ricordiamo la definizione dell’ efficienza; il codice A 00 B 01 efficienza: e = Imed / Nmed = 2/2 = 1 C 10 .. D 11 ridondanza r = 1 - e = 0

A 000 B 001 efficienza: e = Imed / Nmed = 2/3 = 0,66 C 010 .. D 101 ridondanza r = 1 - e = 0,33

164codici ed errori

Es: 4 simboli, A B C D - codifica:

1) non ridondante: uso il minimo di bit A 00 tutti i codici di 2 bit sono legali -> B 01 nessuna ridondanza, massima efficienza, MA C 10 non c' e' possibilita' di rilevare gli errori D 11 ad es: il dato: DABAC codificato e’ 11 00 01 00 10 se c'e' un errore allora ricevo: 11 00 11 00 10 da cui decodifico: DADAC

(... non mi accorgo dell'errore !! )

165Es: 4 simboli, A B C D

2) codifica ridondante: uso piu’ bit del minimo necessario A 000 non tutti i codici di 2 bit sono legali, c'e' B 001 ridondanza, --> posso rilevare errori C 010 qui uso 3 bit per 4 simboli... D 101 ad es. il dato: DABAC codifica: 101 000 001 000 010

se ho un err. al 10.o bit ricevo: 101 000 001 100 010 ->

decodifica: DAB?C ma 100 e'illegale -> mi accorgo dell'errore

166codici ed errori

attenzione: non tutti i codici ridondanti vanno bene

A 000 questo codice a 3 bit e’scelto un po' a caso... B 001 come vedremo subito, C 010 non e' un buon codice perche' D 101 ... in alcuni casi non mi accorgo dell’errore ... vediamo due esempi:

come visto, il codice permette di individuare questoerrore: dato DABAC: 101 000 001 000 010errore al 10.o bit leggo: 101 000 001 100 010 --> in decodifica ho il codice 100 illegale -> rilevo l’errore, ottengo DAB?CMA in altri casi questo stesso codice non va bene:

167codici ed errori

continua... non tutti i codici ridondanti vanno bene - A 000 come visto, con questo codice B 001 talvolta posso accorgermi C 010 di un errore, ma ... D 101 ... secondo esempio:

2) caso: stesso dato DABAC se ho un err. al 12.o bit (prima era al 10.o): DABAC codifica: 101 000 001 000 010 ricevo: 101 000 001 001 010 -->nella decodifica non rilevo l’errore ! leggo ... DABBC - il codice 001 e' legale->

168codici ed errori3) invece del codice senza ridondanza 4 simboli, 2 bit: A 00 B 01 C 10 D 11

uso il codice:

A 0000 qui raddoppio i bit della codifica iniziale B 0011 -> il codice e' meno efficiente (vedi sotto) C 1100 ma posso rilevare piu' errori rispetto il D 1111 codice precedente - questo codice rileva un singolo errore in posizione qualunque!

efficienza del codice: e= Imed / Nmed = 2/4 = 0,5 .. ridondanza r = 1 - e = 0,5

Page 29: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

169codici ed errori

ricordiamo: un raddoppio di bit permette ilcontrollo di errore; invece del codice a efficienza 1, A 00 B 01 C 10 D 11 uso un codice: A 0000 questo codice (con num. bit doppio) ha B 0011 efficienza: e = Imed / Nmed = 2/4 = 0,5 C 1100 .. D 1111 ridondanza r = 1 - e = 0,5rilevo un singolo errore in qualunque posizione ...ma ... e’ un codice troppo ridondante!come deve essere costruito il codice per poterrilevare sempre un singolo errore, senza esseretroppo ridondante?

170codici ed errori

definiamo la distanza tra due valori di un codicecome il numero di bit da cambiare per passare da unvalore all’altro, ad es. per il codice A 0 1 1 B 0 1 0 C 1 1 1 D 0 0 1 abbiamo:dist(A,B) = 1, dist(A,C) = 1, dist(A,D) = 1dist(B,C) = 2, dist(B,D) = 2, dist(C,D) = 2se c’e’ un errore nel dato A, e cioe’ scrivo (trasmetto) il dato 011 -> ma poi leggo (ricevo) il dato 010 ->ottengo il codice di B, che e' un codice legale [qui visono coppie di valori (legali) X,Y con dist(X,Y)=1 ]quindi non mi accorgo dell’errore!

171codici ed errori

distanza tra due valori di un codice = il numero di bitda cambiare per passare da un valore all’altro: se ho: A 0 1 1 B 0 1 0 C 1 1 1 D 0 0 1allora : dist(A,B)=1, dist(B,C)=2, dist(B,D)=2, dist(C,D)=2

puo’ verificarsi: trasmetto il dato A=011, ricevo ilcodice 010 (legale!) = B -> ottengo il dato B[qui vi sono coppie di valori (legali) X,Y con dist(X,Y)=1]un codice con distanza minima tra due codici legaliuguale a 1 non permette la segnalazione di errore,perche’ un errore puo’ portare una stringa di bit legalein un’altra stringa di bit legale -vi sono dati diversi con codifiche distanti di 1 solo bit.

172ricorda: la distanza tra due valori di un codice e' il numerodi bit da cambiare per passare da un valore all’altro; es: A 0 1 1 B 0 1 0 C 1 1 1 D 0 0 1dist(A,B) = 1, dist(A,C) = 1, dist(A,D) = 1dist(B,C) = 2, dist(B,D) = 2, dist(C,D) = 2NON deve essere possibile che un errore possa portareuna stringa di bit legale X in un’altra stringa di bitlegale (diversa) Y:per avere la segnalazione di errore un codice deveavere il valore della distanza maggiore o uguale a 2per tutte le coppie X e Y di valori legali del codice

distmin(X,Y)>=2

codici ed errori

173codici ed errori

nota:il codice con i bit raddoppiati NON si usa, perche’ laprobabilita’ di un errore in un dato manipolato(trasmesso, memorizzato...) da un calcolatore e’piccola, e quindi si usano codici con meno ridondanza!

Se la probabilita’ di errore e’ ad es. 10E-6 non usero’un codice con 50% di ridondanza, ma con molto meno.

Nei sistemi vecchi di trasmissione e registrazione datil’affidabilita’ era minore, la probab. di errore piu’grande, si usava il codice ASCII a 7 bit + 1 bit dicontrollo di errore (ridondanza di 1/8)...

174codici ed errori

un sistema semplice per avere un codice a controllo dierrore e' l' aggiunta di 1 bit al dato, tale che lasomma dei bit del dato piu' il bit aggiunto sia pari:codici a controllo di parita'.per 4 simboli (il punto evidenzia il bit di controllo) :A 00.0 B 01.1 C 10.1 D 11.0con tale codifica il dato B B A D diventa: 011 011 000 110se ho un errore (ad es. nel 6.o bit): 011 010 000 110rilevo l'errore nel secondo carattere, perche’ la terna 010 e’ illegale;

Page 30: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

175codici ed errorinota: il codice senza ridondanza era:

A 00 B 01 efficienza: e = Imed / Nmed = 2/2 = 1 C 10 .. D 11 ridondanza r = 1 - e = 0

il codice con aggiunto un bit di parita' ha:

A 000 B 011 efficienza: e = Imed / Nmed = 2/3 = 0,66 C 101 .. D 110 ridondanza r = 1 - e = 0,33

un po' meglio del raddoppio ... ma non tanto (non siusa: il controllo e' fatto su "pacchi" di dati piu' grandi)

176codici ed errori

nota: ricordiamo il codice ASCII con controllo parita’:se due codici (legali) differiscono di 1 bit, ad es.:a = 110 0001, A = 100 0001,aggiungo un bit di parita’, i due codici differiscono di due bit:a = 110 0001 1, A = 100 0001 0

se differiscono di due bit, il bit di parita’ e’lo stesso, e ladistanza e’ sempre di due bit:a = 110 0001, A = 000 0001,aggiungendo un bit di parita’ la distanza rimane due:a = 110 0001 1, A = 000 0001 1

con questa codifica posso sempre rilevare la presenza di unsingolo errore ! ==>> CODICE A CONTROLLO DI ERRORE

177codici ed erroricodice ASCII a 7 bit piu' un bit di parita': a k A 110 0001 1 110 1011 1 100 0001 0l'ottavo bit aggiunto e' tale che la somma di tutti i bit e' pari.

spedisco questo dato e poi ricevo il dato con un errore: 110 0001 1 110 1111 1 100 0001 0in ricezione ricalcolo il bit di controllo per ognicarattere e lo confronto con quello letto (ricevuto);... trovo che il secondo carattere e' errato:infatti 110 1111 => bit di controllo calcolato = 0 => bit controllo ricevuto = 1sono diversi => c’e’ un err !

178codici ed errori

due osservazioni sul codice a controllo parita':

1) si noti che non posso ricostruire il dato originale, perche’ con un errore posso passare da 000 a 010 oppure da 011 a 010cioe' un dato errato si puo' ottenere da piu' di un datooriginale corretto ...(non e’ un codice a correzione automatica di errore)

2) se si verificano piu' errori in un dato ? allora puo' darsi che da un codice legale si passi ad un altro codice legale -> non si rilevano errori multipli

179codici ed errori

efficienza e ridondanza per il codice ASCII concontrollo di parita’ ?(cioe' dove ai 7 bit del dato si aggiunge un bit calcolatoin modo che la somma dei bit 0 e 1 risulti pari) es: a k A 110 0001 1 110 1011 1 1000001 0

efficienza: e = Imed / Nmed = 7 / 8 = 0,875 e la

ridondanza r = 1 - e = 0,125

n.b.: sono usati i codici ASCII a controllo di parita', controllo di disparita' e i codici senza controllo

180codici ed errori

MA: in un calcolatore la probabilita' di errore e'molto piccola - per rilevare un errore bastano codicicon poca ridondanza

Normalmente la probabilita' di errore e' (vedere caratteristiche su internet)

molto piccola nel caso di trasmissione dati (linee telefoniche, linee dati)

ancora piu' piccola nella registrazione su supporti magnetici (dischi)

ancora piu' piccola nella memoria centrale del calcolatore:

Page 31: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

181codici ed errori

probabilita' di errore e' piccola -> per rilevare unerrore bastano codici con poca ridondanza

la probabilita' di errore e' (in ordine decrescente da“piccola” a “molto piccola”):caso di trasmissione datiscrittura/lettura su supporti magnetici (dischetti)scrittura/lettura in memoria centrale del calcolatore:

si usa una codifica con ridondanza molto piu' piccoladel caso ASCII con controllo parita’:

si aggiungono uno o piu' bit di controllo su blocchi di bit piu' grandi.

182codici ed errori

Es: aggiungo un carattere (8 bit) di controllo adogni blocco di 511 caratteri (511*8 bit), e ho ladimensione complessiva del blocco di 512 caratteri.

Il carattere e' calcolato ("in qualche modo", ades. come somma dei caratteri precedenti, modulo256, ma l'algoritmo e'piu'complicato) e poi aggiunto(“Cyclic Redundancy Check” / CRC)nella lettura (o in ricezione) ricalcolo il carattere dicontrollo (dai dati letti/ricevuti) e lo confronto conquello trovato ->

se sono diversi c'e' un errore nel blocco.

183

Molto usato e' il codice CIRCo Cross-interleaved Reed-Solomon Codeche usa una codifica con l'algoritmo di Reed e Solomon(anni 60)

I sistemi di rilevazione e correzione di errore sonostati definiti gia' negli anni 40(telecomunicazioni)alcuni nomi:Claude Shannon,Richard Hamminge altri ... (ma e' un altro corso ;-)

184aggiungo un carattere (8 bit) di controllo ad ogni blocco di 511caratteri (511*8 bit) (in totale il blocco avra’ 512 caratteri); ilcarattere e' calcolato dai caratteri presenti nel blocco dato, epoi aggiunto;nella lettura (o in ricezione) ricalcolo il carattere di controllo(dai dati letti/ricevuti) e lo confronto con quello trovato -> sesono diversi c'e' un errore nel blocco.

efficienza: e = Imed / Nmed = 511*8 / 512*8 = 0,998e laridondanza r = 1 - e = 0,002

ricorda ASCII con parita’: e = Imed / Nmed = 7 / 8 = 0,875 ridondanza r = 1 - e = 0,125

185

CODICI A CORREZIONE DI ERRORE (cenni)

186codici ed errori

senza controllo errore:A 00 B 01 C 10 D 11 e= Imed/Nmed = 2/2= 1, r=0 con controllo errore - controllo parita' :A 000 B 011 C 101 D 110 e= Imed/Nmed = 2/3 , r=1/3

oppure raddoppioA 0000 B 0011 C 1100 D 1111 e= Imed / Nmed = 2 / 4 = 0,5; r = 1 - e = 0,5 se triplico i bit del codice senza controllo:A 0000 00 B 000111 C 111000 D 111111 e= Imed / Nmed = 2 / 6 = 0,33; r = 1 - e = 4 / 6 = 0,66

e’ un codice che consente la correzione di errore:

Page 32: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

187

se triplico i bit del codice senza controllo (2 bit per 4simboli) ottengo A 000000 B 000111 C 111000 D 111111

... un codice che consente la correzione di errore!es.: dato originale B B A Dspedisco i bit: 000111 000111 000000 111111con un errorericevo ad es.: 000111 000111 001000 111111dove si riconosce il carattere errato e si ricostruisce anchequale era il dato originale ! Si noti che qui la distanza tradue codici legali e' almeno 3 bit.vale: e = Imed / Nmed = 2 / 6 = 0,33; r = 1 - e = 4 / 6 = 0,66

codici ed errori 188codici ed errori

come nel caso di codice a rilevazione di errore[versione rudimentale : rraaddooppiioo i bit]

se la probabilita’di errore e’ piccola - anchenel caso di codice a correzione automatica dell'errore -> si puo’ fare di meglio

vediamo uno schema di codifica un po' menorudimentale; in ogni caso :

aggiungo bit per 1) rilevare se c'e' un errore eaggiungo bit per 2) trovare quale bit del dato e' errato, e quindi correggerlo

189codici ed errori

es.: 16 simboli, codice senza controllo err. (con r=0) uso 4 bit:A 1000 B 1001 C 1010 ... F 0000

codice a controllo di errore: aggiungo un bit di parita' (totale 5 bit):A 10001 B 10010 C 10100 ... F 00000

codice a correzione automatica di errore: dispongo i bitdel dato in due righe da due bit ciscuna, e aggiungo perogni riga e ogni colonna un bit di parita',in tutto altri 4 bit :A 10 1 B 10 1 quindi: A = 101 000 10 00 0 01 1 quindi: B = 101 011 11 10 11

190codici ed errori

ripetiamo: codice a correzione automatica di errore: dispongoi bit del dato in due righe da due bit ciascuna, e aggiungo un bitdi parita' per ogni riga e ogni colonna:A 10 1 B 10 1 quindi: A = 101 000 10 00 0 01 1 quindi: B = 101 011 11 10 11

se trasmetto A ovvero 101 000 10e ricevo (un errore) ad es. 101 010 10rieseguo il controllo righe/colonne e ho: 10 1 . 01 0 .errore nella seconda riga 10 .errore nella seonda colonna ->err. nel bit marcato 101 010 10 -> correz.ne: 101 000 10

191

e se c’e’ un errore nei bit di controllo parita?Dato di 16 bit: 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0aggiungo dei bit secondo lo schema:

1 1 0 1 1 (aggiungo anche un 0 0 1 1 0 bit di controllo sui bit 0 1 0 1 0 dell’ ultima riga 1 0 0 0 1 (riga di controllo), in tutto 0 0 1 1 0 aggiungo 9 bit su 16, in totale 25 bitSe si verifica un singolo errore ricalcolando i codici dicontrollo parita’ per le “righe” e per le “colonne” e ilbit finale, trovo in quale riga e in quale colonna si trova-> posso correggere.

codici ed errori 192codici ed errori

continua es. con dato a 16 bit: 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0aggiungo dei bit secondo lo schema:1 1 0 1 1 (aggiungo anche0 0 1 1 0 un bit di controllo0 1 0 1 0 sui bit della riga1 0 0 0 1 di controllo, in tutto0 0 1 1 0 aggiungo 9 bit su 16)

immagino che ci sia un errore in trasmissione, ricevo:1101 1 0011 1 0101 1 1000 1 0011 0ricalcolo le parita’ sulle righe: errore nella terza riga;ricalcolo la parita’ sulle colonne, trovo che le primequattro colonne sono a posto -> l’errore e’ nell’ultimacolonna -> ho individuato il bit errato, lo correggo.

Page 33: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

193codici ed errori

Si osservi che un codice a correzione di errore deveindicare (in qualche modo) la posizione del bit errato -ne ricaviamo l'esigenza minima di questo codice:dato di k simboli: per indicare una posizione su k devousare al minimo n = log2(k) bit, quindi un codice acorrezione automatica dell' errore richiede almenok bit (dato) + log2(k) bit (controllo)e quindi per un dato di k bit, conk = 4 6 8 32 60 100 128 256 ...devo aggiungere almenon = 2 3 3 5 6 7 7 8 ... bit

( vedi codice Hamming, 1950 )

194codici ed errori

oggi la maggior parte dei dispositivi di trasmissione e/odi memorizzazione dati usa codici a controllo di errore:

trasmissione dati: a caratteri: controllo parita’ sul carattere a blocchi: blocco con carattere di controllo (cyclic redundancy check, o il codice CIRC) registrazione: a blocchi con controllo crc, sistemi piu’ complessi

195

memoria centrale del calcolatore (RAM):

memoria a celle (gruppi di bit) con controllo errore, single err detect codememoria a celle con correz. automatica di err. singolo single err correct codememoria senza controllo (in tal caso il sistema esegue periodicamente [almeno all'avvio] delle procedure di controllo scrivi/rileggi su tutta la memoria centrale) ----ogni dispositivo ha un tasso di errore ammesso propriograzie ai sistemi a rilevazione e correzione di errore(es.dischi magn.: 1 err ogni Gbit -> ogni secondo!)

196ESERCIZI

1) Dati 7 simboli @ # $ % ^ & ” definire un codice a controllo di errore2) Definire un codice a correzione di errore per + - /3) Il codice seguente consente il controllo di errore? A 101 B 110 C 011 D 1114) Calcolare l’efficienza e la ridondanza del codice dell’esercizio 35) Il governo cinese ha deciso di utilizzare un codice a 32 bit per codificare i 20000 ideogrammi cinesi; calcolare l’efficienza di tale codice.6) Quanto spazio risparmia la codifica con numero dimatricola [8 cifre decim.] al posto del nome e cognome[20 lettere] immaginando che tale informaz.e appaia 20volte per studente nell’ archivio [16000 studenti]

197esercizi

1) codice a controllo di errore per @ # $ % ^ & ” 7 simboli - 3 bit per codifica almeno, + bit parita’: 0000 @ 0011 # 0101 $ 0110 % 1001 ^ 1010 & 1100 ”

2) Definire un codice a correzione di errore per + - / due bit per codifica di 3 simboli, poi triplico i bit: 000 000 + 000111 - 111000 /

3) Il codice seguente consente il controllo di errore? A 101 B 110 C 011 D 111no: le codifiche di A e di B e di C hanno distanza unocon D -> un errore in A puo’ dare il codice di D

198esercizi4) Calcolare l’efficienza e la ridondanza del codice dell’esercizio 3 cioe’ A 101 B 110 C 011 D 111

4 simboli - richiesti 2 bit, il codice usa 3 bit ->efficienza: e = Imed / Nmed = 2/3 => 0,66ridondanza r = 1-e =0,33

5) Il governo cinese ha deciso di utilizzare un codice a 32 bit per codificare i 20000 ideogrammi cinesi; calcolare l’efficienza di tale codice.

e = I / N = log2(20000)/32 = 14,3 / 32 = 0,45

Page 34: FONDAMENTI contenuto per la parte informazione: DI ...unina.stidue.net/Universita' di Trieste/Ingegneria Industriale e... · codice ASCII codice UNICODE codici a controllo di errore

introduzione: informazione e codici (nov.99) Page ‹#›

199esercizi

6) Quanto spazio risparmia la codifica con numero dimatricola [8 cifre decim.] al posto del nome e cognome[20 lettere] immaginando che tale informaz.e appaia 20volte per studente nell’ archivio [16000 studenti]

per ogni occorrenza risparmio (uso codice ASCII) 12caratteri, in totale12 x 20 x 16000 = 12 x 320 000 = 3 840 000 caratteri

se codifico il numero di matricola in binario, usolog2(100 000 000) = 27 bit (circa)al posto di 20 x 8 = 160 bit, risparmio 133 bit = 17 carquindi per 20 occorrenze per 16000 studenti ho320 000 x 17 = 5 440 000 caratteri

200

FINE

PARTE

INFORMAZIONE

E

CODICI