Elementi di informatica

Transcript

Elementi di informatica
Elementi di informatica
Codifica testo immagini
Codifica
Cosa abbiamo visto :
9 Rappresentazione binaria
9 Codifica dei numeri (interi positivi, interi con
segno, negativi ….)
9 Cosa vedremo ancora:
9 Codifica dei caratteri ,Codifica delle immagini
,Compressione dei dati
9 Codifica dei suoni
1
Codifica dell’informazione
Le informazioni che intendiamo trattare non sono
costituite solo da numeri
9 Ad esempio, voi state leggendo delle lettere e vedete
sullo schermo delle immagini
9 Per rappresentare lettere, immagini, suoni partendo dai
numeri occorre utilizzare dei sistemi di codifica
– Questi sistemi stabiliscono una corrispondenza fra un
determinato numero e una particolare informazione
9 L’informazione rappresentata con numeri viene detta
digitalizzata
Rappresentazione dei caratteri
Definizioni:
Repertorio. Insieme dei caratteri considerati,
definito mediante i nomi dei caratteri e magari una
loro rappresentazione visiva
Numero di codice. Tabella in cui ciascun carattere
del repertorio è messo in corrispondenza 1-a-1 con
un insieme di numeri naturali
Codifica. Un metodo per associare a ciascun
numero di codice una sequenza di bit che poi sono
utilizzabili per la trasmissione o la memorizzazione
elettronica.
2
Il codice ASCII
Le lettere dell’alfabeto sono 24; considerando le maiuscole si
arriva a 48; con i segni diacritici (accenti, cediglie, tilde,…)
arriviamo a un’ottantina; con i segni di interpunzione rimaniamo
sotto il centinaio
• Possiamo associare a ogni carattere (lettera minuscola, lettera
maiuscola, vocale accentata, segno di interpunzione,…) un
numero
• Esiste una codifica standard che si chiama ASCII: American
Standard Code for Information Interchange, che utilizza 7 bit
(i numeri da 0 a 127)
Tabella dei codici ASCII
3
Una stringa di caratteri sarà rappresentata dal computer come una
successione di gruppi di 8 bit
O
G
G
I
P
I
O
V
E
1001111 1000111 1000111 1001001 0100111 1010000 1001001 1001111 1010110 1000101
Consideriamo il problema inverso: data una sequenza di bit, il
testo che essa codifica può essere cosi ottenuto:
si divide la sequenza in gruppi di 8 bit
si determina il carattere corrispondente ad ogni byte
Esempio
1001101 1000001 101 0010 1000101
M
A
R
E
ASCII è un codice “antico” e (ad eccezione di alcune varianti
nazionali pressoché in disuso) molto sicuro; è accettata da tutti
i computer (non solo i PC: anche i Mac, gli UNIX,…)
purtroppo:
i caratteri internazionali di numerose lingue europee non sono
considerati
Esiste allora un’altra codifica, UNICODE che usa 2 byte
per ciascun carattere e quindi riesce a rappresentare
65536 caratteri, permettendo di rappresentare tutti gli
altri alfabeti.
4
Codifica delle immagini
L’immagine viene suddivisa mediante una griglia di pixel
(risoluzione)
• Si definisce il numero di colori che si vogliono
distinguere
• Si codifica in binario (digitale) ogni colore
– 256 colori --> 8 bit
– 16 milioni di colori --> 24 bit (codifica RGB)
• Ad ogni pixel si associa il codice del colore (il colore che
in media “domina” all’interno del quadrato stesso)
Di conseguenza ogni immagine è esprimibile mediante due
serie di numeri:
– le coordinate dei singoli quadratini (pixel)
– un numero che esprime il colore del singolo quadratino
Codifica delle immagini
5
Codifica delle immagini
2 colori
bianco: 0, nero: 1 un codice per ogni pixel
Poiché una sequenza di bit è lineare, è necessario definire delle
convenzioni per ordinare la griglia dei quadratini (pixel) in una
sequenza. Assumiamo che i pixel siano ordinati dal basso verso l'alto
e da sinistra verso destra
Con questa convenzione la rappresentazione della figura sarà data
dalla stringa binaria
0000000 0111100 0110000 0100000
Codifica delle immagini
Non sempre il contorno della figura coincide con le linee della
griglia. Quella che si ottiene nella codifica è un'approssimazione
della figura originaria.
Se riconvertiamo la stringa 0000000011110001100000100000
in immagine otteniamo
6
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
Risoluzione
Il numero di pixel in cui è suddivisa
un’immagine si chiama risoluzione e si
esprime con una coppia di numeri
ad es. 640 ×480 pixel
(orizzontali × per verticali)
7
Codifica delle immagini
Assegnando un bit ad ogni pixel è possibile codificare
solo immagini senza livelli di chiaroscuro
Per codificare le immagini con diversi livelli di grigio si
usa la stessa tecnica: 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, se utilizziamo quattro bit possiamo
rappresentare 24=16 livelli di grigio, mentre con otto
bit ne possiamo distinguere 28=256, ecc.
Codifica delle immagini
Analogamente possiamo codificare le immagini a colori.
In questo caso si tratta di individuare un certo
numero di sfumature di colore differenti e di
codificare ogni sfumatura mediante un'opportuna
sequenza di bit
Ad esempio, i monitor utilizzano risoluzioni di 640X480,
1024X768, oppure 1280X1024 ed un numero di colori
per pixel che va da 256 fino a sedici milioni di colori
(un byte per ogni colore base: rosso, verde, blu nel
sistema RGB)
8
Codifica delle immagini
La rappresentazione di un'immagine mediante la codifica dei pixel,
viene chiamata codifica bitmap e l’immagine viene
detta“discretizzata”.
Il numero di byte richiesti dipende dalla risoluzione e dal numero di
colori che ogni pixel può assumere.
Le immagini si possono anche ottenere mediante la definizione di
primitive grafiche quali linee, archi, poligoni, cerchi, espresse
analiticamente. Tali immagini vengono dette vettoriali. Trovano
applicazione nell’ambito del CAD.
Codifica delle immagini: esempio
Quanti byte occupa un’immagine di 100x100
pixel in bianco e nero?
9Conoscendo la risoluzione dell’immagine possiamo
trovare il numero di pixel che la compongono:
100x100 = 10000 pixel.
9Nel caso di immagini in bianco e nero basta un solo bit
Per codificare il colore di ogni pixel e quindi saranno
necessari 10000 bit per memorizzare l’immagine.
9Per trovare il numero di byte basta fare
10000 / 8 = 1250 byte
9
Codifica delle immagini: esempio
Quanti byte occupa un’immagine di 100x100
pixel a 256 colori?
9Rispetto all’esercizio precedente, in questo cambia lo
spazio occupato da ciascun pixel.
sappiamo che l’immagine è a 256 colori.
9Per poter rappresentare 256 configurazioni diverse sono
necessari 8 bit, ovvero 1 byte
9L’immagine occuperà quindi 10000 x 1 byte = 10000 byte
Codifica delle immagini: esempio
Se un’immagine a 16,7 milioni di colori occupa
2400 byte, da quanti pixel sarà composta?
9In questo caso le informazioni fornite dall’esercizio
sono il numero colori e lo spazio occupato
dall’immagine.
9Dal numero di colori ricaviamo lo spazio occupato
da ciascun pixel, calcolando il valore N
nell’espressione 2N>=16,7 milioni.
9Il risultato è 24 bit, ovvero 3 byte.
9Se ogni pixel richiede 3 byte e l’immagine
occupa 2400 byte,
sarà composta da 2400 / 3 = 800 pixel.
10
Elaborazione dell’immagine
Una volta digitalizzate, le immagini possono essere
elaborate facilmente
Elaborare un’immagine digitalizzata vuol dire applicare
una trasformazione alla sequenza di bit che codifica
l’immagine
Esempio: cambiare/neutralizzare il colore (Croma-key)
Le tecnologie di memorizzazione e trasmissione dei dati non offrono
soluzioni efficienti ed economiche per gestire grandi quantità di
dati.
Occorre applicare tecniche di compressione tecniche di
compressione per ridurre lo spazio occupato. Tali tecniche
sfruttano le regolarità delle immagini.
„ compressione senza perdita di informazione: si
memorizzano pixel vicini identici una volta sola e si ricorda
quante volte occorrono nell’immagine
„ compressione con perdita di informazione: non si
memorizzano tutti i pixel, ma solo una frazione di essi. Si
usano funzioni matematiche di interpolazione per
ricostruire i pixel mancanti
11
Compressione lossless
La tecnica è completamente reversibile e restituisce in
fase di decompressione i dati originali.
Il fattore di compressione non è molto elevato (da 2 a 5
a seconda del tipo di dati).
E’ adatta per dati testuali, sonori.
Compressione lossy
Sopprime in modo irreversibile la parte di informazione
meno significativa, permettendo così, in fase di
decompressione, la ricostruzione dei dati in modo
ancora intelligibile.
Permette di ottenere fattori compressione dell’ordine di
10, 100.
Non è adatta per dati testuali.
12
Formati standard
GIF(Graphic Interchange Format) utilizza 8 bit per pixel e quindi
distingue 256 colori. Usa una tecnica di compressione senza
perdita
JPEG(Joint Photographic Expert Group) utilizza 24 bit, quindi16,8
milionidi colori. Usa una tecnica sofisticata di compressione con
perdita.
Altri formati TIFF
13
Immagini in movimento
Memorizzazione mediante sequenze di fotogrammi
La qualità della memorizzazione dipende dal numero di fotogrammi
al secondo
Esempio: le immagini televisive vengono trasmesse con 25/30
fotogrammi al secondo, con una risoluzione di 576×720, con
colori codificati a 16 bit.
Problema dell’occupazione di spazio: per ottimizzare lo spazio non
si memorizzano tutti i fotogrammi.
I fotogrammi variano in modo continuo: si memorizza un primo
fotogramma in modo completo, e per i successivi N solo le
differenze con il primo.
Formati standard di compressione dei
filmati
MPEG: memorizza in modo completo solo un fotogramma
ogni 12, degli altri solo le differenze
AVI: (Microsoft)
QuickTime:(Apple e Microsoft)
14
Codifica dei suoni
Dal punto di vista fisico un suono è un'alterazione della
pressione dell'aria che, quando rilevata, ad esempio
dall'orecchio umano, viene trasformata in un
particolare stimolo al cervello.
Mediante un microfono queste alterazioni vengono
trasformate in un particolare stimolo elettrico
La durata, l'intensità e la variazione nel tempo della
pressione dell'aria sono le quantità fisiche che
rendono un suono diverso da ogni altro
Codifica dei suoni
L'onda di pressione può essere
rappresentata sul piano
cartesiano rappresentando il
tempo sull'asse delle ascisse
e la pressione sull'asse delle
ordinate.
Questa rappresentazione,
analogica,fornisce una
descrizione continua
dell'onda sonora
15
Per rappresentare in forma
digitale(numerica) un’onda
sonora, cioè per convertire un
segnale continuo in una
successione di numeri, si
effettuano due successive
operazioni elementari:
1. Campionamento del segnale (cioè
si preleva una successione di
campioni a intervalli costanti di
tempo)
2. Ogni campione viene quantizzato
ossia convertito in un numero (si
codificano in forma digitale le
informazioni estratte dai
campionamenti)
Quanto più frequentemente il valore di intensità dell'onda
viene campionato, tanto più precisa sarà la sua
rappresentazione.
Il segnale può essere riprodotto perfettamente sulla base
dei valori campione se la frequenza di campionamento è
superiore al doppio della componente del segnale di
frequenza più elevata.
Un errore viene comunque introdotto quando si converte
il valore analogico di un campione in un numero con un
numero limitato di cifre.
16
Le frequenze sonore udibili dall’uomo sono comprese fra 20 Hz e
20.000 Hz (20KHz)
La frequenza di campionamento per una corretta rappresentazione
dell’informazione sonora deve essere allora maggiore di
40.000Hz(40KHz) che nella pratica viene assunta di 44.1KHz.
Compressione dei file audio
Il piu’ noto standard e’ MP3 che permette di ottenere un fattore di
compressione 12:1.
Ad esempio un file campionato a 44,1 KHz con 16 bit per campione
che occuperebbe circa 50 milioni di byte, compresso in formato
MP3 ne occupa meno di 5 milioni, senza perdita di qualita’.
17
Codifica dei suoni: esempio
Quanto spazio occupa un suono della duranta di 10
secondi campionato a 100 Hz, in cui ogni campione
occupa 4 byte?
9La frequenza di campionamento ci dice quanti
campioni di suono vengono memorizzati in un secondo,
100 in questo caso.
9Avendo 10 secondi di suono avremo
10 x 100 = 1000 campioni.
9Poichè ogni campione richiede 4 byte, il suono occuperà
1000 x 4 = 4000 byte (che corrispondono a circa 4 KB)
Codifica dei suoni: esempio
Un secondo di suono campionato a 512 Hz occupa
1KB. Quanti valori distinti si possono avere per i
campioni?
9Poichè vengono memorizzati 512 campioni al secondo,
avremo in tutto 512 campioni (stiamo considerando
un solo secondo di suono).
9Il file sonoro occupa 1 KB, cioè 1024 byte e quindi ogni
singolo campione occuperà 1024 / 512 = 2 byte,
ovvero 16 bit.
9Si potranno quindi avere 216 = 65536 valori distinti
18
Osservazione
Per calcolare lo spazio occupato da un file di testo, da
un’immagine, da un file audio, la tecnica è sempre la stessa
– Si trova lo spazio occupato da ogni unità elementare
costituente il file (un carattere per il testo, un pixel per
l’immagine, un campione per il file audio)
– Si trova il numero di unità elementari che costituiscono il
file (il numero di caratteri per il testo, il numero di pixel
per l’immagine - sfruttando la risoluzione, il numero di
campioni per il file audio - sfruttando la frequenza di
campionamento)
– Si moltiplicano queste due quantità
19