Informatica Umanistica B -...

17
30/05/2013 1 IDUL 2011 RAPPRESENTAZIONE DELLE INFORMAZIONI IN FORMA DIGITALE CONCETTI FONDAMENTALI INTRODOTTI IN QUESTA LEZIONE Due tipi di informazione: in forma ANALOGICA (continua) in forma DISCRETA (o simbolica) Per rappresentare o comunicare informazione in forma discreta occorre un CODICE Esempi di codici: DNA, Morse Esempi di codici digitali: Per numeri Per testi Per immagini Per suoni Informazione su computer Un computer deve: Fare input/output dell’informazione Usando i dispositivi di input/output Memorizzare l’informazione Usando la memoria principale/secondaria Elaborare l’informazione Usando il processore Informazione su computer Mondo esterno informazione rappresentazione digitale codifica decodifica Computer: memorizzazione, elaborazione

Transcript of Informatica Umanistica B -...

30/05/2013

1

IDUL 2011

RAPPRESENTAZIONE DELLE INFORMAZIONI IN FORMA DIGITALE

CONCETTI FONDAMENTALI

INTRODOTTI IN QUESTA

LEZIONE

Due tipi di informazione:

in forma ANALOGICA (continua)

in forma DISCRETA (o simbolica)

Per rappresentare o comunicare informazione in forma discreta occorre un CODICE

Esempi di codici: DNA, Morse

Esempi di codici digitali: Per numeri

Per testi

Per immagini

Per suoni

Informazione su computer

Un computer deve:

Fare input/output dell’informazione

Usando i dispositivi di input/output

Memorizzare l’informazione

Usando la memoria principale/secondaria

Elaborare l’informazione

Usando il processore

Informazione su computer

Mondo esterno

informazione rappresentazione digitale

codifica

decodifica

Computer: memorizzazione, elaborazione

30/05/2013

2

PROBLEMA DELLA RAPPRESENTAZIONE

DELL’INFORMAZIONE SU COMPUTER

SVILUPPARE CODICI CHE PERMETTANO

DI

RAPPRESENTARE INFORMAZIONE DI

TIPO DISCRETO IN MODO EFFICIENTE

SU UN SUPPORTO FISICO

RAPPRESENTARE INFORMAZIONE DI

TIPO ANALOGICO CON CODICI

DISCRETI

RAPPRESENTAZIONE

ANALOGICA E DISCRETA

Rappresentazione ANALOGICA: una serie di distinzioni

CONTINUE, prive in linea di principio di intervalli minimi.

Immagini, suoni, numeri reali (3,14159265…)

Rappresentazione DISCRETA: basata sulla combinazione di

elementi minimi chiaramente distinti.

Linguaggio umano (unità minime = morfemi, fonemi)

Rappresentazione DIGITALE: una rappresentazione discreta

codificata tramite numeri

Misure analogiche e digitali

INFORMAZIONE IN FORMA

ANALOGICA

30/05/2013

3

INFORMAZIONE IN FORMA DISCRETA Esempio: Il codice MORSE

-- --- ·-· ··· · (space) -·-· --- -·· ·

M O R S E (space) C O D E

MORSE

Un codice TERNARIO (-, ., spazio)

Codici per i caratteri scelti in modo che i caratteri

più frequenti abbiano codici più brevi

UN ESEMPIO DI CODICE

DISCRETO VISIVO

30/05/2013

4

CODICI IN NATURA

In realta’, i codici sono apparsi ben prima degli

esseri umani. In natura si trovano molti esempi di

codici, i piu’ famosi dei quali sono

Il DNA

Il repertorio di fonemi di un linguaggio (l’ insieme dei suoni che possono codificare differenze di significato)

UN CODICE FONDAMENTALE:

Il DNA

CODICI PER NUMERI

Nel caso dei numeri, la necessita’ di sviluppare un

codice limitato non e’ motivata solo da facilita’ di

memorizzazione, ma anche dalla necessita’ di usarli

per MANIPOLAZIONI SIMBOLICHE

DUE CODICI PER I NUMERI

Codice ROMANO: ( I, L, X, C, M, ...) VII + IV = XI

Codice DECIMALE: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 7 + 4 = 11

Differenza fondamentale: il codice decimale è un codice POSIZIONALE 7 = 7x100

75 = 7x101 + 5 x100 “Sette decine + cinque unità”

I codici posizionali rendono le operazioni aritmetiche molto piu’ semplici

30/05/2013

5

Rappresentazione digitale dei numeri

Il codice decimale, benche’ molto comodo, non e’ il codice

MINIMO

Per rappresentare informazione sui computer, codice

minimo essenziale perché occorre poter rappresentare ogni

simbolo diverso in modo FISICO (= con circuiti elettrici)

Il minimo numero di simboli diversi necessari per

rappresentare tutti i numeri e’ il codice

BINARIO: 0, 1

Perché la rappresentazione

binaria?

I due simboli (0 e 1) possono essere rappresentati da:

Due stati di polarizzazione di una sostanza magnetizzabile

Due stati di carica elettrica di una sostanza

L’invenzione dei tubi catodici prima, e dei transistor poi, ci ha fornito gli strumenti per rappresentare due stati di carica elettrica

Rappresentazione digitale =

rappresentazione binaria

L’entità minima di informazione che possiamo

trovare all’interno di un elaboratore prende il nome

di bit

Binary digit – cifra binaria

Un bit può assumere due valori

Rappresentazione binaria

Solo due simboli (0 e 1)

NUMERO MAGGIORE DI STATI

Per poter rappresentare un numero maggiore di informazione si usano sequenze di bit

Per esempio, per rappresentare quattro informazioni diverse possiamo utilizzare due bit che ci permettono di ottenere quattro (2 x 2) configurazioni distinte: 00 01 10 11

30/05/2013

6

QUATTRO STATI DIVERSI

Esempio: un esame può avere quattro possibili esiti: ottimo, discreto, sufficiente, insufficiente

Codifica (due bit):

ottimo con 00

discreto con 01

sufficiente con 10

insufficiente con 11

OTTO STATI

Esempio: otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione

Codifico (tre bit): nero con 000

rosso con 001

blu con 010

giallo con 011

verde con 100

viola con 101

grigio con 110

arancione con 111

I numeri in rappresentazione binaria

Il principio e’ lo stesso del codice decimale, ma con due soli simboli

70 = 7x101 + 0 x100 = 64 + 4 + 2 = 1 x26 + 0x25+ 0x24+ 0x23+ 1x22+ 1x21+ 0x20 = 1000110

178 = 1x102 + 7x101 + 8x100 = 128 + 32 + 8 + 2 = 1x27+ 0x26 + 1x25+ 0x24+ 1x23+ 0x22+ 1x21+ 0x20 = 10101010

BYTE

Esiste una particolare aggregazione di bit che è

costituita da 8 bit (28 = 256 informazioni) e prende il

nome di byte

Di solito si usano i multipli del byte

30/05/2013

7

RAPPRESENTAZIONE DI NUMERI

INTERI SU COMPUTER

Tipicamente 4 byte (= 32 bit) oppure 8 byte (= 64

bit)

RAPPRESENTAZIONE DIGITALE

DI ALTRI TIPI DI INFORMAZIONE

Per molti anni, l’unico tipo di informazione

rappresentata sui computer informazione di tipo

numerico

Ma lo stesso sistema può venire usato per

codificare immagini, suoni, e testi

Codifica delle immagini

Suddividiamo l’immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante

Codifica delle immagini

Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione:

Il simbolo “0” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il bianco è predominante

Il simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il nero è predominante

30/05/2013

8

Codifica delle immagini

Codifica delle immagini

Poiché una sequenza di bit è lineare, è necessario definire convenzioni per ordinare la griglia dei pixel in una sequenza. Assumiamo che i pixel siano ordinati dal basso verso l’alto e da sinistra verso destra 0000000000 0011111000 0011100000 0001000000

Codifica delle immagini

Non sempre il cortorno della figura coincide con le linee della griglia. Quella che si ottiene nella codifica è un’approssimazione della figura originaria Se riconvertiamo la sequenza di stringhe 0000000000 0011111000 0011100000 0001000000 in immagine otteniamo

Codifica delle immagini

La rappresentazione sarà più fedele all’aumentare

del numero di pixel, ossia al diminuire delle dimensioni dei quadratini della griglia in cui è

suddivisa l’immagine

30/05/2013

9

EFFETTO DELLA RISOLUZIONE PIU’ DI DUE COLORI

Se l’immagine è solo in bianco e nero (senza grigi), basterà

usare un ‘1’ per i pixel neri, e uno ‘0’ per i pixel bianchi

Se l’immagine ha più di due colori, si faranno

corrispondere a gruppi diversi di ‘0’ e ‘1’ sfumature diverse

di colore (o di grigio)

RAPPRESENTARE COLORI

Così, ad esempio, se si fa corrispondere a ogni pixel un

byte (cioè 8 bit), potremo differenziare 256 colori

Al posto della tabella di codifica dei caratteri avremo una

tabella di codifica dei colori

Ad es: 00101101

I SUONI

30/05/2013

10

CONVERSIONE IN DIGITALE VIA

CAMPIONAMENTO

SUONO: DALLA RAPPRESENTAZIONE

ANALOGICA ALLA RAPPRESENTAZIONE

DIGITALE

Digitalizzare informazione

multimediale

E i filmati? Un filmato non è altro che una successione di fotogrammi (frame) accompagnata da una colonna sonora

Basterà codificare, uno per uno, tutti i fotogrammi (sappiamo come fare: ogni fotogramma è un’immagine)… e codificare la colonna sonora.

Non stupisce che per codificare un breve filmato servano moltissimi bit!

Codifica digitale del testo

Il testo come sequenza di caratteri

Ciascun carattere alfanumerico, di punteggiatura o di controllo che compone il testo deve essere rappresentato nei termini di un codice binario

Le avventure di Pinocchio

Capitolo I

Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che

piangeva e rideva come un bambino.

C'era una volta...

- Un re! - diranno subito i miei piccoli lettori.

- No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno.

Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che

d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e

per riscaldare le stanze. Non so come andasse, ma il fatto gli è che un bel

giorno questo pezzo di legno capitò nella bottega di un vecchio falegname,

il quale aveva nome mastr'Antonio, se non che tutti lo chiamavano maestro

30/05/2013

11

La codifica di livello 0

Il testo come sequenza di

caratteri

dietro le quinte…

La codifica di livello 0

caratteri e numeri

A carattere

65 codice (decimale) del carattere

0 1 0 0 0 0 0 1 codifica binaria del codice del

carattere

I computer elaborano internamente solo sequenze di bit (0,1)

MAESTRO CILIEGIA

Numeri e numeri

Sistema binario

vengono usate due cifre (0 e 1) per rappresentare un numero

problema: i numeri binari sono estremamente lunghi

Sistema esadecimale

ogni numero è rappresentato con 16 cifre (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

i numeri sono più corti di quelli binari e di quelli decimali.

estrema facilità di conversione tra binario ed esadecimale:

In una sequenza binaria, ogni stringa di 4 bit corrisponde ad una

cifra esadecimale.

0110 1111 0110 numero binario

(6) (15) (6)

6 F 6 numero esadecimale

numero

X

10

A

1010

rappresentazione di un numero

Rappresentare i caratteri

Quali caratteri scegliere? un insieme di caratteri (es. “A”, “a”, “!”, “à”, “§”, ecc.)

i caratteri sono entità astratte, da non confondersi con il modo in cui sono realizzati tipograficamente (glifi)

Uno stesso carattere può variare nella resa grafica in varie dimensioni:

1.Serie (o font): AGKpqt, AGKpqt, AGKpqt, …

2.Peso: AGKpqt, AGKpqt

3.Inclinazione: AGKpqt, AGKpqt

4.Punti: AGKpqt, AGKpqt, AGKpqt, AGKpqt 5.Altri effetti: AGKpqt, AGKpqt, AGKpqt,

AGKpqt, AGKpqt

30/05/2013

12

Come rappresentare i caratteri?

Caratteristiche distintive e non distintive

Differenza tra MAIUSCOLE e minuscole

in tedesco “Blau” (nome) vs “blau” (agg.),

in Windows: (“Prova.txt, PROVA.TXT, prova.txt” sono lo stesso file); non così in Unix/Linux.

La stessa realizzazione grafica può corrispondere a caratteri diversi (es. “A” latina e “A” cirillica e “A” greca)

Come rappresentare i caratteri nel

computer?

Come creare la corrispondenza?

(=il codice) una tabella che definisce una corrispondenza biunivoca (1-a-1) tra un repertorio di caratteri e un insieme di numeri interi non negativi

a ogni carattere è assegnato un codice numerico (punto di codice / code position)

Come codificare il carattere? algoritmo che determina come i codici dei caratteri vadano rappresentati in sequenze di bit (byte). Il problema è reso non banale dalla necessità di separare i caratteri:

43456 = (4)(34)(56) (4)(3)(4)(56)

Il codice ASCII (American Standard Code for Information Interchange)

Primo standard per l’assegnazione di codici a caratteri (dal 1963)

set di caratteri riconosciuto da tutti i computer

conosciuto come “ASCII Standard” o ISO-646

Codifica

7 bit

ciascun punto di codice è rappresentato con il numero binario corrispondente di 7 bit

in realtà 1 byte = 8 bit di cui un bit non è usato per la codifica (bit di parità)

7 bit = 27 punti di codice = 128 caratteri rappresentati

Sufficiente per rappresentare l’inglese

mancano i caratteri accentati, umlaut, ecc. per rappresentare altri alfabeti occidentali

ASCII Standard decimale ed esadecimale

30/05/2013

13

ASCII: Caratteri stampabili

e di controllo

I primi 32 caratteri dell’ASCII

sono caratteri funzionali (non

necessariamente stampabili)

Cf. www.cs.tut.fi/~jkorpela/chars/c0.html

Caratteri di controllo

Si ottengono premendo una lettera mentre si tiene premuto il tasto Cntl. A volte “Control” viene scritto “^” o “Ctrl-” (“Control-A” = “Ctrl-A” = “^A”) Compiono funzioni specifiche ai vari programmi. Corrispondono al carattere non stampabile che nell’ASCII si trova 64 posizioni indietro rispetto al codice della lettera maiuscola premuta insieme con Ctrl. Esempio: “G” = ASCII 71 “Control-G” = 71-64 = 7 = codice BELL (rappresentato dal suono beep del computer)

Cf. http://it.wikipedia.org/wiki/Carattere_di_controllo ASCII è completato da uno standard per la interpretazione dei caratteri di controllo, (ANSI X3; per approfondimenti vedi http://www.inwap.com/pdp10/ansicode.txt )

Caratteri di controllo: esempio del

“fine riga”

Può corrispondere a:

Carriage Return, (CR, lo spostamento alla prima colonna, carattere 13, o Ctrl-M del ASCII),

Line Feed, spostamento alla riga sottostante, senza cambiare colonna (LF, carattere n.10, Ctrl-J)

Scelte differenti nei vari sistemi operativi:

Windows/DOS: CR+LF (entrambi i caratteri necessari)

Mac: solo CR (fino al System X, poi solo LF)

Unix/Linux: solo LF

File binari e file ASCII

I file possono essere di tipo ASCII (anche detti, con meno esattezza, “file di testo”) o di tipo binario. I primi contengono solo caratteri stampabili contenuti nel codice ASCII ristretto (dal 32 al 127), i secondi usano l'intero spazio dei valori possibili per il byte (256).

Un file binario non può essere in genere visualizzato sullo schermo dai comandi di base del sistema operativo stesso (p.es. “type”) ma solo da programmi specifici per quel tipo di file binario (niente resa grafica standard)

30/05/2013

14

File binari e file ASCII

I file eseguibili (windows .exe, .com, …), le immagini

(.jpg, .gif, .png, .tif, …) e tutti i file compressi (.zip, .gz,

…) sono in genere in formato binario

Il protocollo dell’email può solo trasmettere file ascii

Con allegati (“attachment”) binari, necessità di ricodifica

in ASCII

Ne consegue:

crescita di dimensioni attorno al 40%

Il set di caratteri ISO-Latin-1

ASCII Standard

Caratteri di controllo

0-32

128-159

ISO-Latin-1 (ISO-8859-1 o ASCII esteso)

unica estensione standard di ASCII

1 byte = 8 bit = 28 punti di codice = 256 caratteri rappresentati

sufficiente per lingue europee occidentali (italiano, francese, ecc.)

La famiglia di caratteri ISO-8859

14 set di caratteri standardizzati da ISO (International Standard Organization) Codifica: 1 byte = 256 caratteri rappresentati da ciascun set Soprainsiemi dei caratteri ASCII Standard

punti di codice 0 - 127 (parte comune) ASCII

punti di codice 128 - 159 codici di controllo (non corrispondono a caratteri grafici)

punti di codice 160 - 255 (parte variabile) caratteri aggiuntivi per greco, cirillico, lingue slave, arabo, ebraico, ecc.

La famiglia di caratteri ISO-8859

ISO-Latin-1

30/05/2013

15

Limiti di ISO-8859

I set di ISO-8859 sono tutti reciprocamente incompatibili.

Punto di codice 232

ISO-8859-1 (Latin-1) = “è”

ISO-8859-5 (Cyrillic) = “ш”

Come usare più lingue nello stesso documento?

ISO-8859 non copre lingue come giapponese, cinese, ecc. che non usano sistemi alfabetici, ma ideografici

The Universal Character Set UNICODE (ISO-10646)

Standard internazionale che si prefigge di rappresentare qualsiasi tipo di carattere appartenente ai sistemi grafici esistenti Sistemi di scrittura di tutte le lingue europee, asiatiche, africane, ecc., sia antiche che moderne. Sistemi di caratteri basati sui fonemi (p.es. italiano), sulle sillabe (p.es. Thai), su ideogrammi (p.es. Cinese), geroglifici, braille, ecc. Sistemi di simboli tecnici e scientifici (p.es. matematica, logica) Punteggiatura e segni diacritici (p.es. accenti)

Risolve i problemi di incompatibilità dei sistemi ISO-8859 estende l’insieme dei caratteri supportati ●permette la realizzazione di documenti multilingui http://www.unicode.org/standard/translations/italian.html http://www.unicode.org/standard/WhatIsUnicode.html

The Universal Character Set UNICODE (ISO-10646)

Circa 100.000 caratteri grafici rappresentati (Unicode v. 5.1.0)

… ma i punti di codice disponibili sono più di 1 milione (4 byte)!!

I primi 65536 caratteri (216) costituiscono il Basic Multilingual Plane (BMP), primo di 17 “piani” in cui è diviso UNICODE. Nel BMP, 6500 punti di codice sono riservati per usi privati (loghi, trademarks…)

The Universal Character Set UNICODE (ISO-10646)

I punti di codice sono rappresentati con “U+numero esadecimale”, ed hanno un nome standard:

“A” U+0041 = ”Latin Capital Letter A” (decimale 65)

“ω” = U+03C9 = ”Greek Letter Omega”

I primi 256 caratteri sono identici al set di caratteri Latin-1, a sua volta un soprainsieme dell' ASCII.

30/05/2013

16

UNICODE: composizione dei caratteri

Caratteri complessi (p.es. “u” con umlaut) possono essere rappresentati in due modi:

Come elementi precostituiti (codice U+00FC, ”ü”)

Come elementi composti, formati da un carattere di base quale ”u” (U+0075) ed uno o più caratteri che non introducono spaziatura (”non spacing”), che vengono quindi sovrascritti al precedente, in questo caso ”¨” (U+0308)

Problema dell’ordinamento alfabetico (come decomporre caratteri complessi)

Codifica dei caratteri

•Vari tipi di codifica:

•UCS-2 (tutti i caratteri a 2 byte)

•UCS-4 (tutti i caratteri a 4 byte)

UTF-16, ecc.

UTF-8 (caratteri 0-127 con 1 byte, oltre 2, 3 o 4 byte)

Codifica più comune: UTF-8: In questa codifica

l'ultimo bit del byte dice al sistema se il carattere

finisce (come in inglese) o se il byte successivo

continua a specificare lo stesso carattere (p.es. in

cinese).

Blocchi di codice

I vari alfabeti sono divisi in gruppi detti “blocchi di

codice” (code blocks)

Tentativo di non duplicare i caratteri di lingue diverse.

Non esiste p.es. una “A” italiana, una “A” norvegese.

Blocchi di codice (2)

Vengono invece duplicati i caratteri omografi di sistemi

di scrittura (storicamente) diversi (p.es. Greco, latino,

cirillico)

Al contrario, le migliaia di ideogrammi comuni alla

scrittura cinese, giapponese e coreana (che discendono

tutti da una scrittura comune) sono unificati

(si veda http://www.unicode.org/notes/tn26/ per una

discussione del perché)

30/05/2013

17

Come trovo il mio carattere?

Oppure procedendo per sistema di scrittura (script)

http://www.unicode.org/charts/

Alcune spiegazioni generali su:

http://unicode.org/standard/where/

Indice alfabetico dei

caratteri:http://www.unicode.org/charts/charindex.htm

l

Problemi maggiori per i simboli

Problema della resa grafica:

Ab bkйd و٦من

ds kjdks kdsk

sybco oθδjpjp

Unicode ISO-Latin-1

1010011101

1000100100

1001010010

0110010100

Ab bkƛd ƛƛƛƛ

ds kjdks kdsk

sybco oƛƛjpjp

1010011101

1000100100

1001010010

0110010100

RIASSUNTO

Due tipi di informazione: in forma ANALOGICA, in forma DISCRETA (o simbolica)

Per rappresentare o comunicare informazione occorre un CODICE

Codici digitali:

Per numeri: binario

Per testi: ASCII

Per immagini

Per suoni

E’ possibile progettare dei codici piu’ o meno ottimali usando idee della teoria dell’informazione

Compressione: JPEG, MP3

RIFERIMENTI / SITI

Tomasi, capitoli 1.1 e 6

Lucidi di Ciotti online: Online: http://www.mediamente.rai.it/mediamentetv/learning/ed_multimediale/lezioni/01/