Codifica delle Informazioni - Dipartimento di Matematica e Informatica

Transcript

Codifica delle Informazioni - Dipartimento di Matematica e Informatica
Codifica delle Informazioni
Luca Bortolussi
Dipartimento di Matematica e Informatica
Università degli studi di Trieste
Panoramica
Le informazioni gestite dai sistemi di elaborazione devono essere
codificate

per essere memorizzate, elaborate, scambiate,…
Esistono standard internazionali per risolvere problemi di compatibilità

tra differenti sistemi software

tra calcolatori di tipo e marca diversi
Vedremo brevemente:

Codifica di numeri

Codifica di caratteri

Codifica di dati multimediali
Codifica Binaria
BIT (BInary digiT): unità elementare di informazione
rappresentabile con dispositivi elettronici
- con 1 bit si possono rappresentare 2 stati:
0/1, on/off, si/no
Combinando più bit si può codificare un numero maggiore di
stati
- con 2 bit possono rappresentare 4 stati
- con K bit si possono rappresentare 2K stati
Quanti bit sono necessari per codificare N oggetti?
- N ≤ 2K  K  log2N  K = log2N
Codifica Binaria
I GIORNI DELLA SETTIMANA IN BINARIO
Lunedi
Martedi
Mercoledi
Giovedi
Venerdi
Sabato
Domenica
Lunedi
Martedi
Mercoledi
Lunedi
0
Martedi
Mercoledi
Giovedi
Giovedi
Venerdi
Venerdi
Sabato
Sabato
Domenica
1 bit
2 “gruppi”
1
Domenica
2 bit
4 “gruppi”
00
01
10
11
Lunedi
Martedi
Mercoledi
Giovedi
Venerdi
Sabato
Domenica
3 bit
8 “gruppi”
000
001
010
011
100
101
110
111
Codifica Binaria – Unità Derivate
• Byte = 8 bit
– può rappresentare 28= 256 stati
• KiloByte (KB) = 210 bit = 1.024 byte  103 byte
• MegaByte (MB) = 220 bit = 1.048.576 byte  106
byte
• GigaByte (GB) = 230 bit = 1.073.741.824 byte 
109 byte
• TeraByte (TB) = 240 bit = 1.099.511.627.776
byte  1012 byte
Codifica dei numeri naturali
• Sistema di numerazione posizionale con base β
– β simboli (cifre) corrispondono ai numeri da 0 a β-1
– i numeri naturali maggiori o uguali a β possono essere
rappresentati da una sequenza di cifre
• Se un numero naturale N è rappresentato in base β dalla
sequenza di n cifre
αn-1 αn-2 αn-3 … α1 α0
allora N può essere espresso come segue:
Codifica dei numeri naturali - esempio
13 può essere espresso in funzione delle potenze di 2:
13
= 1x8
+1x4
23
+0x2
22
+1x1
21
Cioè può essere rappresentato dalla sequenza di bit:
1
1
0
1
20
Codifica dei numeri naturali
Quindi:
Numero = sequenza di bit (codifica in base 2)
Con K bit si rappresentano i numeri da 0 a 2K-1
Esempi:
2 = sequenza 1 0
3 = sequenza 1 1
4 = sequenza 1 0 0
.......
Codifica di caratteri
Codifica binaria adatta a documenti in linguaggio naturale (italiano
o inglese)
a-z A-Z 0-9 ...
usando 8 bit, cioè un byte (28 = 256)
ESEMPIO
00000101 rappresenta la lettera „c‟
Codifica di caratteri
Codifica ASCII (American Standard Code for Information Interchange):
- Caratteri speciali, punteggiatura, a-z, A-Z, 0-9
- Utilizza 7 bit (128 caratteri)
- I codici ASCII estesi usano 8 bit (256 caratteri)
Codifica Ascii
ASCII SU 7 BIT
“Ciao” = 1000011 1101001 1100001 1101111
“24” = 0110010 0110100
“3 kg” = 0110011 0100000 1101011 1100111
Codifica dei dati multimediali
Lettere e numeri non costituiscono le uniche informazioni
utilizzate dagli elaboratori ma si diffondono sempre di più
applicazioni che usano ed elaborano anche altri tipi di
informazione:
- immagini
- filmati
- suoni
Spesso in questi casi si parla di applicazioni di tipo
multimediale
Codifica delle Immagini
Per un calcolatore:
immagine = sequenza di bit
Esistono numerose tecniche per la
memorizzazione digitale e l'elaborazione
di un'immagine
Codifica delle Immagini
• L‟immagine viene digitalizzata, cioè rappresentata
con sequenze di pixel
• Ogni pixel ha associato un numero che descrive un
particolare colore (o tonalità di grigio)
• Si mantengono anche la dimensione, la risoluzione e
il numero di colori utilizzati
Codifica delle Immagini -Pixel
Consideriamo un'immagine in bianco e nero, senza ombreggiature o
livelli di chiaroscuro
Suddividiamo l‟immagine mediante una griglia formata da righe
orizzontali e verticali a distanza costante
Codifica delle Immagini -Pixel
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 bianco (in cui il bianco è
predominante)
-Il simbolo “1” viene utilizzato per la codifica di un pixel
corrispondente ad un quadratino nero (in cui il
nero è
predominante)
Codifica delle Immagini -Pixel
Poiché una sequenza di bit è lineare, si deve definire una
convenzione per ordinare la griglia dei pixel in una sequenza
Ipotesi: assumiamo che i pixel siano ordinati dal basso verso
l'alto e da sinistra verso destra
1
0
22
0
0
23
1
15
0
1
0
9
17
25
10
18
26
11
27
19
20
12
21
0
13
0
5
28
0
0
0
4
0
0
1
0
3
0
0
1
0
2
0
0
1
0
1
24
1
16
8
0
14
0
6
7
La rappresentazione della figura sarà data dalla stringa binaria
0000000
0111100
0110000
0100000
Codifica delle Immagini -Pixel
Non sempre il contorno della figura coincide con le linee della
griglia: nella codifica si ottiene un'approssimazione della figura
originaria.
Se riconvertiamo la stringa
0000000 0111100 0110000 0100000
in immagine otteniamo:
Codifica delle Immagini -Pixel
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
zz
Codifica delle Immagini – Toni di grigio
Immagini in bianco e nero
sfumature (diversi livelli di intensità di grigio)
Assegnando un bit ad ogni pixel è possibile codificare
solo immagini senza livelli di chiaroscuro
Codifica delle Immagini – Toni di grigio
Per ogni pixel si stabilisce il livello medio di grigio cui viene
assegnata convenzionalmente una rappresentazione binaria.
Per memorizzare un pixel non è più sufficiente un solo bit.
Ad esempio, con 4 bit possiamo rappresentare 24=16 livelli
di grigio, mentre con 8 bit ne possiamo distinguere 28=256,
ecc.
Codifica delle Immagini a Colori
1) Individuare un certo numero di sfumature di
colore differenti
2) Codificare ogni sfumatura mediante
un'opportuna sequenza di bit
La rappresentazione di un'immagine mediante la
codifica dei pixel, viene chiamata codifica
bitmap
Codifica delle Immagini a Colori
Il numero di byte richiesti dipende dalla risoluzione e dal numero
di colori che ogni pixel può assumere
• I monitor utilizzano risoluzioni di 800X600, 1024X768,
1280X1024, o superiori, ed un numero di colori per pixel che
va da 256 fino a 16 milioni
Per distinguere 256 colori sono necessari 8 bit per la codifica di
ciascun pixel
•la codifica di un'immagine formata da 640X480 pixel
richiederà 2417600 bit (307200 byte)
Compressione di Immagini
Esistono delle tecniche di compressione delle informazioni
che consentono di ridurre drasticamente lo spazio occupato
dalle immagini
ESEMPIO
JPEG: standard di compressione delle immagini fotografiche
più utilizzato.
Due metodi di compressione di base:
"lossy“  perdita di informazione (più comune)
"lossless"  senza perdita di informazione
Compressione di Immagini
JPEG qualità 10% - 3,2 Kb
JPEG qualità 50% - 6,7 Kb
JPEG qualità 90% - 30,2 Kb
JPEG qualità 100% - 87,7 Kb
Codifica di Filmati
Filmati = Immagini in movimento
Memorizzazione mediante sequenze di fotogrammi (sono
necessarie delle tecniche per ottimizzare tale memorizzazione)
Sono sequenze di immagini compresse (ad esempio si possono
registrare solo le variazioni tra un fotogramma e l‟altro)
Esistono vari formati (compresi i suoni): mpeg, avi, quicktime, mov,…
Codifica di Suoni
L‟onda sonora viene misurata (campionata) ad intervalli regolari
Minore è l‟intervallo di campionamento e maggiore è la qualità del
suono
CD musicali: 44000 campionamenti al secondo, 16 bit per campione.
Alcuni formati:
• .mp3, .mov, .wav, .mpeg, .avi,
• formato midi usato per l‟elaborazione della musica al PC