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
Usando
la memoria principale/secondaria
Elaborare
Usando
l’informazione
l’informazione
il processore
Informazione su computer
codifica
rappresentazione
digitale
informazione
decodifica
Mondo esterno
Computer: memorizzazione,
elaborazione
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
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
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
VII
( I, L, X, C, M, ...)
+ IV = XI
Codice
7
ROMANO:
DECIMALE: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
+ 4 = 11
Differenza
fondamentale: il codice decimale è un codice
POSIZIONALE
= 7x100
75 = 7x101 + 5 x100
“Sette decine + cinque unità”
7
I
codici posizionali rendono le operazioni aritmetiche
molto piu’ semplici
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
digit – cifra binaria
Un bit può assumere due valori
Binary
Rappresentazione
Solo
binaria
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
QUATTRO STATI DIVERSI
Esempio:
un esame può avere quattro possibili
esiti: ottimo, discreto, sufficiente, insufficiente
Codifica (due bit):
ottimo
con
discreto con
sufficiente con
insufficiente con
00
01
10
11
OTTO STATI
Esempio:
otto colori: nero, rosso, blu, giallo, verde, viola,
grigio, arancione
Codifico (tre bit):
nero
con
rosso con
blu con
giallo con
verde con
viola con
grigio con
arancione con
000
001
010
011
100
101
110
111
I numeri in rappresentazione binaria
Il principio e’ lo stesso del codice decimale, ma con due soli
simboli
= 7x101 + 0 x100 =
64 + 4 + 2 =
1 x26 + 0x25+ 0x24+ 0x23+ 1x22+ 1x21+ 0x20 =
1000110
70
= 1x102 + 7x101 + 8x100 =
128 + 32 + 8 + 2 =
1x27+ 0x26 + 1x25+ 0x24+ 1x23+ 0x22+ 1x21+ 0x20 = 10101010
178
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
RAPPRESENTAZIONE DI NUMERI
INTERI SU COMPUTER
Tipicamente
bit)
4 byte (= 32 bit) oppure 8 byte (= 64
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
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
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
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
La codifica di livello 0
Il testo come
sequenza di
caratteri
dietro le quinte…
La codifica di livello 0
caratteri e numeri
MAESTRO
CILIEGIA
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)
Numeri e numeri
X
numero
10
A
Sistema
binario
rappresentazione
di un numero
1010
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

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
Punti: AGKpqt, AGKpqt, AGKpqt,
4.
AGKpqt
Altri effetti: AGKpqt, AGKpqt, AGKpqt, AGKpqt, AGKpqt
5.
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-a1) 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
mancano
per rappresentare l’inglese
i caratteri accentati, umlaut, ecc. per rappresentare altri
alfabeti occidentali
ASCII Standard
decimale ed esadecimale
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)
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
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.)
ASCII Standard
Caratteri di controllo
0-32
128-159
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
punti
dei caratteri ASCII Standard
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
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.

UNICODE: composizione dei caratteri
Caratteri
complessi (p.es. “u” con umlaut) possono
essere rappresentati in due modi:
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)
Come
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é)
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:
1010011101
1010011101
1000100100
1000100100
1001010010
1001010010
0110010100
0110010100
Unicode
ISO-Latin-1
Ab bkйd ‫و‬٦‫من‬
Ab bkƛd ƛƛƛƛ
ds kjdks kdsk
ds kjdks kdsk
sybco oθδjpjp
sybco oƛƛjpjp
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/
Scarica

idul12-part3