Fondamenti di
Informatica
Prof. Fenza Giuseppe
Codifica di Dati Complessi [Sez: 2.5]
Contenuti Lezione 3
• Rappresentazione delle immagini • Sistemi di numerazione
– Notazioni Posizionali e Non Posizionali – Codifica Binari/Ottale/Esadecimale
• Codifica e Decodifica
– Binario ßà Decimale – Binario ßà Ottale
– Binario ßà Esadecimale
• Rappresentazione degli Interi
– “Modulo e Segno”
Rappresentazioni di immagini
•
Le immagini sono un ‘continuo’ e non sono
formate da sequenze di oggetti ben
definiti come i numeri
•
Bisogna quindi prima ‘discretizzarle’
ovvero trasformarle in un insieme di
parti distinte che possono essere
codificate separatamente con sequenze
di bit
Rappresentazione e Codifica dei Dati
Complessi: Le Immagini
Suddividiamo l’immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante
Rappresentazione e Codifica dei Dati
Complessi: Le 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 è
Rappresentazione e Codifica dei Dati
Complessi: Le Immagini
• Rappresentazione Binaria: – Alfabeto {0, 1} • Codifica: – 1 se è predominante il nero – 0 se è predominante il bianco • Rappresentazione:Rappresentazione e Codifica dei Dati
Complessi: Le Immagini
Rappresentazione e Codifica dei Dati
Complessi: Le Immagini
• Ottengo una rappresentazione più fedele se
aumento il numero dei pixel (ossia al diminuire
delle dimensioni dei quadratini della griglia in cui
è suddivisa l’immagine:
Considerazioni
•
La perdita di informazione è accettabile nella
rappresentazione delle immagini (in alcuni casi)
ma non è accettabile nella codifica dei numeri,
dei testi, etc. (in questi casi l’informazione non
deve essere soggetta ad errori e abbiamo
•
Assegnando un bit ad ogni pixel è possibile
codificare solo immagini in bianco e nero
•
Per codificare le immagini con diversi livelli di
grigio oppure a colori si usa la stessa tecnica:
per ogni pixel viene assegnata una sequenza di
bit
•
Per memorizzare un pixel non è più sufficiente
un solo bit
– Per esempio, se utilizziamo quattro bit possiamo rappresentare 24 = 16 livelli di grigio o 16 colori
diversi
– Mentre con otto bit ne possiamo distinguere 28 = 256,
ecc.
…e la codifica delle immagini a colori?
Grafica Vettoriale vs
Bitmap (o Raster)
13
Immagini bitmap (raster)
•
Immagini ‘bitmap’ :
L’immagine viene scomposta in una griglia di
elementi detti
pixel
(da picture element)
000000000000000000000000 000000000011111111000000 000000000010000010000000 000000000010000100000000 000000000010001000000000 000000000010010000000000 000000000010100000000000 000000000011000000000000 000000000010000000000000
14
Immagini a toni di grigio o colori
•
Rappresentazioni dei pixel :
Ø
la rappresentazione in ‘toni di grigio’ : un byte
per pixel, con 256 gradazioni di grigio per ogni
punto, o più byte per pixel, per avere più
gradazioni possibili
Ø
rappresentazione a colori RGB (red, green,blu):
comunemente 3 byte (24 bit) per pixel che
definiscono l’intensità di ciascun colore base.
In questo modo ho circa 16 milioni di colori
diversi definibili
16
Immagini raster o vettoriali
Il formato bitmap viene anche definito formato raster,
nome che in inglese indica l'insieme di linee orizzonali che la televisione traccia sullo schermo, punto dopo punto, al fine di riprodurre l'immagine.
Il formato bitmap è idoneo per le fotografie e per tutte le immagini composte da forme non regolari.
Viene rimpiazzato dal formato vettoriale nel disegno
tecnico e architettonico, dovunque si debbano tracciare figure geometriche regolari o forme comunque complesse riconducibili a un insieme di triangoli e poligoni.
17
Immagini raster o vettoriali
Il vettore identifica il punto di partenza e di fine di una retta, la sua direzione, il suo spessore e il suo colore, ma non definisce ciascun punto della retta che viene costruito invece dal programma al momento della sua visualizzazione. Tutte le immagini stampate su una rivista o visualizzate in televisione devono essere in formato bitmap.
Le immagini create da un programma di progettazione e di disegno tecnico sono quasi sempre vettoriali. Le immagini prodotte dai giochi sono in parte bitmap (gli sfondi e alcune superfici degli oggetti) e in parte vettoriali (gli oggetti che si muovono e che cambiano nello spazio).
18
19
Occupazione in memoria (raster)
• 128 x 128 toni di grigio 128Kb
20
21
Compressione delle immagini
raster
• Quindi si cerca di ‘risparmiare’ memoria :
Ø con l’uso di una ‘tavolozza’ (
palette
) che contiene ilsottoinsieme dei colori rappresentabili che compare in una foto
Ø ogni pixel codifica un indice all’interno della
tavolozza
Ø con
tecniche di compressione
che non codificano ognipixel in modo autonomo ma cercano di raggruppare i le aree che hanno caratteristiche comuni
• Formati più usati : TIFF (tagged image file format), GIF (graphics interchange format), JPEG (Joint
Estensione file immagine
https://tecnologia.libero.it/da-jpeg-a-bmp-al-nuovo-heif-cosa-sono-i-formati-di-immagine-13143
Immagini video
Ø Il movimento è rappresentato già in modo discreto nei
media : infatti con un numero abbastanza alto di fotogrammi fissi (24-30 al secondo) l’occhio umano percepisce il movimento come un continuo
Øpotrei, in principio, codificare separatamente ogni
fotogramma come immagine fissa, ma lo spazio di memoria richiesto sarebbe enorme (650 MB, un intero CD per un minuto di proiezione …)
Øsono stati quindi sviluppati metodi di codifica che
economizzano, codificando solo le ‘differenze’ fra un fotogramma e l’altro (MPEG)
25
t
Codifica dei suoni
•
Fisicamente un suono è rappresentato come
un’onda che descrive la variazione della
pressione dell’aria nel tempo (onda sonora)
•
Sull’asse delle ascisse viene posto il tempo t e
sull’asse delle ordinate la variazione della
26
•
Si effettuano dei campionamenti sull’onda (cioè si
misura il valore dell’onda ad intervalli di tempo
costanti) e si codificano in forma digitale le
informazioni estratte da tali campionamenti
•
La sequenza dei valori numerici ottenuta dai
campioni può essere facilmente codificata
Codifica dei suoni
27
t
•
Quanto più frequentemente il valore dell’onda
viene campionato, tanto più precisa sarà la sua
rappresentazione
•
Il numero di campioni raccolti per ogni secondo
definisce la frequenza di campionamento che si
misura in Hertz (Hz)
Fondamenti di
Informatica
Prof. Fenza Giuseppe
Codifica Binaria di Numeri [Sez: 2.5]
I = 1 V = 5 X = 10 L = 50 … LXIV = 50 +10 + 4 = 64 383 = 300+80+3 3 x 100 8 x 10 3 x 1
POSIZIONALI NON POSIZIONALI
50
10 4
significatività
• ai diversi simboli dell’alfabeto (cifre),
viene associato un valore
crescente in modo lineare da
destra verso sinistra;
• il significato di un simbolo ( il suo
valore) dipende ordinatamente dalla sua posizione nella stringa
ESEMPIO:
• il sistema di numerazione
decimale arabo: 10 simboli (0, 1, 2, ...9)
• Il significato dei simboli non dipende
dalla loro posizione
• ma è stabilito in base ad una legge
additiva dei valori dei singoli simboli (se posti in ordine crescente)
ESEMPIO:
• il sistema di numerazione romano
I sistemi di numerazione
Rappresentazione dei Naturali
N = 0,1,2,…La Notazione Posizionale (in base p) Np º an an-1 an-2 … a1 a0
Np = an x pn + a
n-1 x pn-1 + … + a1 x p + a0
Esempio (base 10)
Rappresentazione dei Naturali
N = 0,1,2,…La Notazione Additiva (numeri romani) Np º an an-1 an-2 … a1 a0 Np = an + an-1 + … + a1 + a0 I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000 Esempio DCCCII = D + C + C + C + I + I = 500 + 100 + 100 + 100 + 1 + 1 = 802 https://www.math.it/formulario/numeri_romani_convertitore.htm
9/18/19 32
Le Notazioni Usate in Informatica
Binaria (base 2) ai = 0,1Ottale (base 8) ai = 0,1,2,3,4,5,6,7
Esadecimale (base 16) ai = 0,1,2,…,9,A,B,C,D,E,F
Decimale Binaria Ottale Esadec.
10 1010 12 A
N2 = 101010
N10 = 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20
= 32 + 8 + 2 = 42
Codifica e decodifica
(Da binario a decimale)N2 = 11011
Codifica e decodifica
(Da binario a decimale)N2 = 11001 N10 = 1 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 16 + 8 + 1 = 25 N2 = 1001 N10 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8 + 1= 9
Riassumendo
Binario à Decimale:1. Mi annoto la posizione a partire dal bit più a destra con la posizione 0
2. Applico la notazione posizionale Np = an x pn + a
n-1 x pn-1 + … + a1 x p + a0
10012 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8 + 1 = 9
Trucchi:
(*) Se il numero binario termina con un bit a 0 à il decimale è necessariamente un numero pari (e viceversa)
(**) Se il numero binario termina con un bit a 1 à il decimale è necessariamente un numero dispari (e viceversa)
9/19/19 36
N10 = 51 N2 = ???
Codifica e decodifica
(Da decimale a binario)51 2 25 1 2 12 1 2 6 0 2 3 0 2 1 1 2 1 0 N2 = 110011 51 = 2x25+1 = 2x(2x12+1)+1 = 2x(2x(2x6+0)+1)+1 = = 2x(2x(2x(2x3+0)+0)+1)+1 = = 2x(2x(2x(2x(2x1+1)+0)+0)+1)+1 = 25+24+21+20
N10 = 42 N2 = ???
Codifica e decodifica
(Da decimale a binario)42 2 21 0 2 10 1 2 5 0 2 2 1 2 1 0 2 1 0 N2 = 101010
N10 = 127 N2 = ???
Codifica e decodifica
(Da decimale a binario)127 2 63 1 2 31 1 2 15 1 2 7 1 2 3 1 2 1 1 N2 = 1111111 2 1 0
Riassumendo
Decimale à Binario:1. Divido per 2 finché il risultato della divisione non è 0 2. Leggo il numero binario prendendo i resti di tutte le
divisioni a partire dall’ultima divisione eseuita
Trucchi:
(*) Se il numero decimale è pari à il binario termina con un bit a 0 (e viceversa)
(**) Se il numero decimale è dispari à il binario termina con un bit a 1 (e viceversa) 9 2 4 1 2 2 0 2 1 0 2 0 1
Esercizi da svolgere
(Binario à Decimale)
9 25 42 58 127 7 2 15 10 10012 è N10 = 9 110012 è N10 = 25 1010102 è N10 = 42 1110102 è N10 = 58 11111112 è N10 = 127 1112 è N10 = 7 0102 è N10 = 2 11112 è N10 = 15 10102 è N10 = 10910 è N2 = 1001 2510 è N2 = 11001 4210 è N2 = 101010 5810 è N2 = 111010 1272 è N2 = 1111111 710 è N2 = 111 210 è N2 = 10 1510 è N2 = 1111 1010 è N2 = 1010 10012 110012 1010102 1110102 11111112 1112 102 11112 10102
Esercizi da svolgere
(Decimale à Binario)
10Da Binario a Ottale/Esadecimale
Per trasformare un numero binario in ottale, operiamo la trasformazione
N2 = 1 0 0 1 1 0 1 1 1 1 0
Da Binario a Ottale
N8 = 2 3 3 6
Per trasformare un numero binario in ottale, operiamo la trasformazione considerando gruppi di 3 bit
N2 = 1 0 0 1 1 0 1 11 1 0
Da Binario a Esaecimale
N16 = 4 D E
Per trasformare un numero binario in esadecimale, operiamo la
trasformazione considerando gruppi di 4 bit Ricorda che: 110 = 116 = 00012 210 = 216 = 00102 ... 910 = 916 = 10012 1010 = A16 = 10102 1110 = B16 = 10112 1210 = C16 = 11002 1310 = D16 = 11012 1410 = E16 = 11102 1510 = F16 = 11112
9/19/19 45
Riassumendo
Binario à Ottale:
1. Raggruppo a 3 a 3 i bit a partire dall’ultimo bit più a destra
2. Converto ciascun gruppo nella corrispondente cifra ottale
Binario à Esadecimale:
1. Raggruppo a 4 a 4 i bit a partire dall’ultimo bit più a destra
2. Converto ciascun gruppo nella corrispondente cifra esadecimale
Esercizi (Binario à Ottale)
10012 è N8 = ? 110012 è N8 = ? 1010102 è N8 = ? 1110102 è N8 = ? 11111112 è N8 = ? 1112 è N8 = ? 0102 è N8 = ? 11112 è N8 = ? 10102 è N8 = ? 118 318 528 728 1778 78 28 178 128Esercizi
10012 è N16 = ? 110012 è N16 = ? 1010102 è N16 = ? 1110102 è N16 = ? 11111112 è N16 = ? 1112 è N16 = ? 0102 è N16 = ? 11112 è N16 = ? 10102 è N16 = ? 916 1916 2A16 3A16 7F16 716 216 F16 A16Base 16
• Quali dei seguenti numeri esadecimali sono numeri sono corretti? BED CAR 938 DEAD BEBE A129 ACI DECADE BAG DAD 4H3
Fondamenti di
Informatica
Prof. Fenza Giuseppe
Codifica Binaria di Numeri [Sez: 2.5]
Qualche Domanda
Tabella ASCII /
Qualche Domanda
• Cos’è la tabella ASCII?
• Ogni programmatore ha la codifica
Codifica UNICODE
• Codifica Unicode: una tavola di codifica
basata su più di 8 bit
– Unicode ha l’obiettivo di includere tutti i
caratteri rappresentabili al mondo.
– Unicode originariamente era codifica a 16 bit
• Capace di codificare 65.536 caratteri.
– Attualmente Unicode è una codifica a 21 bit
Qualche Domanda
• Cos’è la tabella ASCII?
• Ogni programmatore ha la codifica
UNICODE stampata sulla sua scrivania?
• Come si trasforma il segnale da analogico
a digitale?
Campionamento e
quantizzazione
Ampiezza della grandezza fisica
Campionamento e
quantizzazione
Ampiezza della grandezza fisica Tempo Va lo ri r ap pr es en ta ti viCampionamento e
quantizzazione
Ampiezza della grandezza fisica Tempo Va lo ri r ap pr es en ta ti viCampionamento e
quantizzazione
Ampiezza della grandezza fisica Tempo Va lo ri r ap pr es en ta ti viErrore di Quantizzazione
• La digitalizzazione è un processo che introduceinevitabilmente errori di rappresentazione del segnale analogico originale
• In particolare, la quantizzazione introduce due errori di approssimazione:
– Approssimazione di tutti i valori presenti in un intervallino con una loro aggregato (per esempio la media) rappresentativa – Approssimazione di tale media al più vicino valore conosciuto
Qualche Domanda
• Cos’è la tabella ASCII?
• Ogni programmatore ha la codifica
UNICODE stampata sulla sua scrivania?
• Come si trasforma il segnale da analogico
a digitale?
• Come calcolo il numero di bit che
Codifica Binaria
• Con 8 bit si possono costruire 256 parole
• Quante parole binarie si possono costruire
con k bits?
– Notiamo che passando da k-1 bit a k bit il
numero di parole raddoppia
• Infatti, per costruire tutte le parole possibili composte da k bit, basta aggiungere prima 0 e poi 1 a tutte le parole lunghe k-1 bit.
• k=1 à 0, 1
• k=2 à 00, 01, 10, 11
• k=3 à 000, 001, 010, 011,100, 101, 110, 111
Qualche Domanda
• Quanti bit sono necessari per codificare i
giorni della settimana? E i giorni del
Quanti messaggi rappresento
con k bit
Qual’è il massimo numero che possiamo
rappresentare con k bit
• 2
k- 1
• K= 5 2
5- 1 = 31 è il massimo valore
• K= 4 2
4- 1 = 15 è il massimo valore
• K= 7 2
7- 1 = 127 è il massimo valore
• 2
k• K= 5 2
5= 32 messaggi
• K= 4 2
4= 16 messaggi
• K= 7 2
7= 128 messaggi
Qualche Domanda
• Quanti bit sono necessari per codificare i
giorni della settimana? E i giorni del
mese?
• Che si intende per convergenza al
digitale?
Convergenza al digitale
• La Convergenza al Digitale è ilprocesso di progressivo
trasferimento verso il formato digitale di informazioni
tradizionalmente collegate a media diversi.
• Con la convergenza al digitale:
– si unificano i supporti (memorie di massa, rete) – si unificano le tecnologie di produzione
Qualche Domanda
• Quanti bit sono necessari per codificare i
giorni della settimana? E i giorni del
mese?
• Che si intende per convergenza al
digitale?
• Come rappresento un’immagine in
binario?
Rappresentazione e Codifica dei Dati
Complessi: Le Immagini
• Rappresentazione Binaria: – Alfabeto {0, 1} • Codifica: – 1 se è predominante il nero – 0 se è predominante il bianco • Rappresentazione:Rappresentazione e Codifica dei Dati
Complessi: Le Immagini
Rappresentazione e Codifica dei Dati
Complessi: Le Immagini
• Ottengo una rappresentazione più fedele se
aumento il numero dei pixel (ossia al diminuire
delle dimensioni dei quadratini della griglia in cui
è suddivisa l’immagine:
…e la codifica delle immagini a colori?
Qualche Domanda
• Quanti bit sono necessari per codificare i
giorni della settimana? E i giorni del
mese?
• Che si intende per convergenza al
digitale?
• Come rappresento un’immagine in
binario?
• Che differenze ci sono tra le immagini
raster e quelle vettoriali?
Raster vs Vettoriale
• Raster
– È un immagine composta da pixel – La qualità dipende dalla risoluzione
– Più realistica e meno somigliante a un disegno
– Occupa più spazio in base alla grandezza e consumano più inchiostro
– Fotografie, miscele di colori, etc.
• Vettoriale
– La grafica vettoriale è scalabile all’infinito
– La grafica vettoriale permette di modificare i colori in modo semplice e veloce
– Il vettoriale offre la possibilità di visualizzare i contorni di un disegno