Sei sulla pagina 1di 26

Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.

2004-2005, docente: Dr. Giancarlo Ruffo

Codifica dell’Informazione

Prerequisiti: - Software (software di sistema, software


applicativo: videoscrittura, fogli elettronici,
- Introduzione (La macchina universale ed i database, presentazioni, etc.)
vari tipi di computer, architettura di base
di un PC); Preliminare per:
- Internet ed il World Wide Web
(Connessione, Internet Provider, Posta - Architettura ed Hardware;
elettronica, WWW: funzionamento, motori - Reti;
di ricerca, pagine web); - Programmazione;

eseguite carattere per carattere. Un


1. Dal file al formato binario esempio di questo, può essere fornito
dall’esecuzione della funzione “trova”
L’unità di informazione a cui ci siamo comune a molti word processor, che
riferiti finora è essenzialmente il file: consiste nel trovare una parola nel testo e
un’immagine, un testo, un brano musicale di evidenziarla. Supponiamo di cercare la
possono essere memorizzati in file parola (sequenza di caratteri) “cantante”
distinti. Abbiamo imparato a considerare all’interno di un testo. Il nostro software
questi oggetti mediali come a dei dati, scandirà tutti i caratteri del testo,
che possono essere processati in modo confrontandoli con i caratteri appartenenti
diverso secondo il tipo di informazione ed alla sequenza data, fino a quando non
il software in dotazione. Possiamo quindi troverà una sequenza identica. Nel caso
visualizzare ed eventualmente ritoccare in esame, partirà con il cercare una “c”.
un’immagine, leggere e modificare un Non appena avrà trovato questa lettera
testo ed anche ascoltare e comporre un nel testo, controllerà il carattere
brano musicale. In realtà un file è un immediatamente successivo, che dovrà
aggregato di informazioni: ad esempio un essere una “a”, e così via fino a quando
testo è un insieme di caratteri ed non troverà un carattere diverso o
un’immagine è composta da vari pixel arriverà fino alla “e”. Nel primo caso,
(picture element). Di conseguenza, la dovrà fare ripartire la ricerca dalla “c”, nel
memorizzazione dell’oggetto finale che secondo invece segnalerà all’utente
viene adoperato dall’utente, comporta la l’occorrenza trovata.
memorizzazione della sequenza
completa dei dati che compongono Esercizio: provare a vedere cosa
l’informazione completa. Quando succede passo dopo passo nel caso in
parliamo di memorizzazione e di cui nel testo sia presente la parola
elaborazione dei file, dobbiamo quindi “canzone”.
sempre tenere presente che riferiamo
queste azioni alle singole parti che li È ovvio che l’utente non si accorgerà di
compongono: per memorizzare un testo, tutto questo, poiché l’elaborazione verrà
in effetti memorizziamo tutti i caratteri che fatta interamente dal nostro software ed
lo compongono (oltre alla punteggiatura, in tempi molto veloci.
alla tabulazione ed altre informazioni A voler essere precisi, il problema è ben
quali la dimensione ed il tipo di carattere, più complesso, dato che anche il
lo stile, etc.) e del resto per elaborarlo carattere è un aggregato di informazioni;
compiamo delle azioni che vengono infatti, ogni carattere è in genere

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 1


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

composto da sequenze di cifre binarie, (0 testi e per i formati numerici che


ed 1), che sono le vere unità di consentono di fare calcoli difficili. Inoltre,
informazione di un computer. Riferendosi vedremo come sia possibile
all’esempio precedente, il nostro sistema rappresentare i colori da associare ad
composto dal software e dal computer, ogni pixel di una immagine, fino ad
andrà a fare i confronti cifra binaria per ottenere la cosiddetta “qualità
cifra binaria, fino a quando non troverà fotografica”. Le immagini stesse, una
una sequenza di 0 e di 1 identica alla volta che sia stabilito tra di loro un ordine
sequenza corrispondente alla parola temporale, pongono le basi per i video
“cantante”. digitali. Infine, vedremo come sia
Il motivo per cui un computer utilizzi le possibile rappresentare quella che tra le
cifre binarie per memorizzare ed informazioni possibili sembra la più
elaborare l’informazione, ha delle eterea e quindi apparentemente non
motivazioni essenzialmente tecnologiche: rappresentabile: il suono.
il calcolatore è un insieme di dispositivi A fare da sfondo a tutto il nostro discorso,
elettronici e la cosa più elementare che ci sarà sempre il concetto di formato o
un sistema di questo tipo “capisce”1 è la codifica dell’informazione: un sistema di
presenza di tensione elettrica. In sintesi, traduzione di simboli in altri simboli, i
in un circuito sono riproducibili i due stati quali costituiscono a loro volta un altro
acceso (ON) e spento (OFF). È per formato. È per questo motivo che
questo motivo che la logica booleana, abbiamo parlato di livelli di traduzione: da
basata sui valori vero e falso e la codifica un livello basso dell’informazione,
binaria, basata sulle cifre 1 e 0, sono così costituita da cifre binarie, saliamo verso
utilizzate in informatica: sono un livello più alto e quindi più
essenzialmente dei simboli direttamente comprensibile e più facilmente gestibile
riconducibili agli stati on ed off. da un essere umano. In questa verticalità
Possiamo considerare questa della trasformazione dell’informazione
associazione iniziale (1 = on, 0 = off) risiede uno degli compiti più importanti
come ad un primo livello di traduzione tra dell’informatica: permettere l’illusione di
formati: due stati fisici sono tradotti in avere a che fare con rappresentazioni
termini di simboli matematici. Nel corso della realtà estremamente verosimiglianti,
del capitolo saliremo di livello in livello. senza preoccuparsi che queste non siano
Abbiamo infatti bisogno di arrivare a altro che sequenze lunghissime di 0 e di
capire come due sole cifre possano 1, esattamente come lo spettatore
servire a rappresentare informazioni sospende la propria incredulità al cinema,
complesse e composte a loro volta di dove quelle immagini in movimento sono
aggregati di informazioni. Vedremo quindi in realtà fisse e riprodotte in modo tale da
come sia possibile rappresentare caratteri ingannare il suo occhio.
e numeri, che compongono le basi per i
2. Il sistema binario
1
Un po’ tutti tendiamo ad umanizzare il computer
L’uomo ha imparato a contare in base 10,
utilizzando termini appartenenti più alla sfera
cognitiva umana che alla terminologia come ci insegnano gli antropologi, perché
scientifica/tecnica. È chiaro che un computer non ha dieci dita. La cultura araba ha
capisce nulla, o almeno non nel modo in cui un inventato dei simboli che ancora oggi
uomo percepisce il mondo e lo analizza. Ma usiamo e che chiamiamo cifre decimali: 0,
bisogna pure far passare dei concetti senza
1, 2, 3, 4, 5, 6, 7, 8, 9. Dalla
entrare nello specifico delle caratteristiche dei
circuiti elettrici! Poiché la nostra comprensione composizione di queste cifre, l’uomo
passa attraverso la percezione degli eventi riesce a rappresentare numeri di qualsiasi
attraverso l’attività sensoriale, assumiamo che il valore (i numeri reali). Sulla base di
computer “capisca” in base alla percezione che questi numeri, ha creato la matematica di
avviene grazie ai suoi sensori ed ai suoi circuiti.

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 2


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

cui si è servito per rappresentare e TeraByte TB 240 ∼ mille miliardi


spiegare i fenomeni che lo circondavano. (1024x1024x
Purtroppo, i computer non riescono a 1024x1024)
contare se non con due ipotetiche dita.
Per questo le cifre che possiamo 2.1 Esempio: occupazione di memoria di
utilizzare sono soltanto 0 ed 1. Definiamo un file
con il termine bit (binary digit) una cifra
binaria. Il bit è l’unità di informazione più Il File System di tutti i sistemi operativi,
piccola che possa essere rappresentata, permette di risalire alla dimensione di
ed è così piccola che risulta essere quasi ogni documento memorizzato, e quindi
inutilizzabile per dare una misura della alla sua occupazione di memoria. Tale
capacità di memorizzazione di un dato è in byte, anche se il programma di
computer o di un dispositivo o per esplorazione risorse può visualizzarlo
determinare l’occupazione di memoria di utilizzando il valore corrispondente in KB,
un informazione o di un file. È per questo MB o GB e via dicendo per maggiore
motivo che la capacità di memoria di un facilità di comprensione.
dispositivo e l’occupazione di memoria di Utilizzando l’applicazione “Gestione
un’informazione sono misure espresse in Risorse” dei sistemi MS Windows, è
byte (o in multipli di byte), dove un byte è possibile accedere a tale dato in due
costituito da otto bit. Per esprimere i modi diversi:
multipli del byte, utilizziamo la a. Tramite il menù a comparsa
terminologia adottata anche in altri “Visualizza” della finestra di
sistemi di misura, ovvero i prefissi Kilo, “Esplora risorse”, è possibile
Mega, Giga, Tera, Peta, con una selezionare la voce “Dettagli”. In
sostanziale differenza: nel S.I. (Sistema questo modo sarà possibile
Internazionale) questi prefissi vengono leggere l’Informazione
riferiti alle potenze del 10 (Kilo → 103, Dimensione per tutti i file presenti
Mega → 106, Giga → 109, Tera → 1012, nella cartella;
b. Selezionando un file con il
Peta → 1015), mentre qui ci riferiamo a
mouse, si potrà leggere
potenze di 2 che approssimano quelle cui
l’informazione Dimensioni sulla
siamo abituati (KiloByte → 210 byte,
parte sinistra della finestra di
MegaByte → 220 byte, GigaByte → 230 “Esplora risorse”.
byte, TeraByte → 240 byte, PetaByte → In entrambi i casi, si leggerà un valore
250 byte). approssimato, espresso con l’unità di
Di seguito riportiamo una tabella misura più comoda per il file selezionato
riassuntiva: (vedi Figura 1). È possibile conoscere il
valore esatto in byte, tramite la finestra
Termine Abbr. Definizione (in Valore
termini di approssimato
delle proprietà del file, che si può aprire
byte) (in byte) facendo clic con il tasto destro del mouse
KiloByte KB
10
2 (1024) ∼ mille e selezionando la voce “Proprietà” dal
MegaByte MB 220 ∼ milione menù a comparsa verticale (vedi Figura
(1024x1024) 2).
GigaByte GB 230 ∼ miliardo
(1024x1024x
1024)

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 3


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

Figura 1: Dimensione dei file

ancora a disposizione? E quanta ne


abbiamo già occupata?
Se si utilizza un sistema MS Windows,
per conoscere la capacità di memoria di
un’unità di disco, basta accedere all’area
“Risorse del Computer” dall’applicazione
“Esplora risorse”. Basta selezionare
l’unità di disco desiderata e leggere
l’informazione sulla parte sinistra della
finestra dell’applicazione. In questo caso,
verrà data anche una rappresentazione
grafica che rende più chiaro il rapporto tra
spazio occupato e spazio ancora
disponibile (Figura 3).

Figura 2: Finestra delle proprietà del File

2.2 Esempio: capacità di memoria di


un’unità di disco

Un’altra informazione molto utile risponde


alle domande: quanta memoria abbiamo Figura 3: capacità di un'unità di disco

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 4


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

3. Codifiche di caratteri e di simboli dalla lunghezza fissa di cui al


punto a).
Fin qui, abbiamo introdotto le unità di c) Se abbiamo bisogno di
misura che usiamo per misurare la rappresentare altri simboli (cifre
capacità e l’occupazione di memoria, ma numeriche, punteggiatura, caratteri
niente abbiamo detto su come le cifre speciali), dobbiamo estendere o
binarie possano servire per rappresentare addirittura cambiare il codice
informazioni più complesse di 0 e di 1. In adottato.
effetti, per rappresentare un’informazione Approfondiamo ora i diversi punti.
o un simbolo utilizziamo una sequenza di Svolgendo l’esercizio proposto, abbiamo
cifre binarie. Ad ogni sequenza verrà visto come sia semplice arrivare dalla
associato uno ed un solo simbolo. parola “computer” ad una sequenza di
Tramite una codifica di questo tipo, cifre binarie. Per fare il viceversa, invece
rendiamo possibile la traduzione in dobbiamo frammentare la sequenza di bit
entrambi i sensi: da sequenza di bit a per individuare le singole lettere.
simbolo e viceversa. Tutti sanno che lo zero posto davanti ad
Supponiamo di voler rappresentare le una sequenza di cifre non ha valore.
lettere dell’alfabeto italiano: a, b, c, d, etc. Probabilmente, molti avranno pensato
Una soluzione possibile è la seguente: che esso possa essere tolto senza
cambiare valore al numero con cui
A 00000 N 01011 abbiamo a che fare. In quest’ottica, la
B 00001 O 01100 sequenza:
C 00010 P 01101 001110000001001
D 00011 Q 01110 può cambiare in:
E 00100 R 01111 1110000001001
F 00101 S 10000
G 00110 T 10001
Qui dobbiamo stare molto attenti, perché
H 00111 U 10010 non stiamo parlando di valori numerici,
I 01000 V 10011 ma di codici: tutto qui ha una sua
L 01001 Z 10100 importanza.
M 01010 Inoltre, diverse frammentazioni sono
possibili. Ne riportiamo alcune:
Esercizio: Dato il codice precedente: 1. 0011 | 100 | 00001| 001
1. Tradurre in formato binario, la 2. 00111 | 00 | 000 | 01001
parola “computer”; 3. 00111 | 00000 | 01001
2. Tradurre in simboli alfabetici la Considerando queste frammentazioni e
sequenza: 001110000001001 consultando la nostra tabella, vengono
fuori diverse traduzioni:
Dall’esempio precedente risultano 1. D (00011) | E (00100) | B (00001)
immediatamente chiari i seguenti | B (00001) → DEBB
problemi: 2. H | A | A | L → HAAL
a) Dato un codice che trasforma 3. H | A | L → HAL
sequenze di cifre binarie in simboli, L’ambiguità nasce dal fatto che nel primo
oltre all’associazione tramite e nel secondo caso, non abbiamo
tabella, deve essere nota anche la considerato che lunghezza fissa delle
lunghezza (fissa) della sequenza sequenze nel codice fosse di 5 cifre, oltre
di cifre binarie che corrispondono che a non usare correttamente lo zero.
ad un simbolo dell’alfabeto che Nel terzo caso, invece, senza alcuna
stiamo rappresentando. ambiguità, risaliamo alla parola esatta
b) Dato un qualsiasi codice, esso (con il codice dato): HAL.
rappresenterà un insieme di Quindi, una regola da tenere a mente
simboli finito. Tale limite ci è dato sempre è che ogni codice fa riferimento

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 5


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

ad una sequenza di bit dalla dimensione corrispondente al codice dato. Infatti, il


fissata. numero binario 01000001, se convertito
Questo ovviamente rappresenta un limite. in decimale, è uguale a 652. Questo è
Tenendo presente il codice dell’esempio molto utile per chi utilizza il codice ASCII:
(dimensione: 5 bit) notiamo che possiamo è più facile riprodurre (o ricordare) un
rappresentare simboli tramite codice che numero in base dieci piuttosto che la
vanno dalla sequenza 00000 alla sequenza di otto cifre binarie. Inoltre, se
sequenza 11111. Se facciamo i conti, dobbiamo usare una tastiera che non
possiamo rappresentare massimo 32 contiene alcuni simboli che sappiamo
simboli diversi. invece essere presenti nella tabella
In generale, data una sequenza di n bit, il ASCII, possiamo risalire ad essi dal loro
numero massimo di simboli che possiamo codice. Ad esempio, uno dei caratteri che
rappresentare è dato dal valore: fanno più “impazzire” gli utenti italiani di
2n Internet è la “tilde” ovvero il carattere ~.
Tornando alla codifica dell’esempio, Nella tastiera italiana, questo carattere
supponiamo di voler aggiungere simboli non è presente, ma ha un suo codice
importanti quali le lettere minuscole, la ASCII, che corrisponde al valore
punteggiatura ( , . ; : ! ” ? ’ \ etc.), segni decimale 126. Provate infatti a tenere il
matematici (+, -, *, {, [, ≥, ∞, >, etc.), tasto “Alt” premuto mentre digitate la
caratteri nazionali (à, è, ì, ò, ù, ç, æ, ö, sequenza 126 con la tastiera numerica
etc.) ed altri simboli speciali (€, @, #, §, del vostro computer: se la configurazione
&, %, $, etc. ), ci rendiamo subito conto del sistema lo permette, vedrete
che 5 bit sono troppo pochi. I codici comparire il carattere “~” sullo schermo.
utilizzati in pratica associano ad ogni
carattere un minimo di 8 bit (1 byte). Un Osservazione: il codice ASCII permette
esempio di tale codice è dato di rappresentare al massimo 256 simboli.
dall’American Standard Code Information Perché?
Interchange, o – più semplicemente –
ASCII. Esistono altri codici, tra cui citiamo i più
Di seguito riportiamo una porzione della diffusi:
tabella del codice ASCII: - EBCDIC (Extended Binary Coded
Decimal Interchange Code): usato
dai mainframe ed in generale da
computer di grosse dimensioni;
……. 0011 0000 48 0 - UNICODE: è un’estensione del
0100 0001 65 A 0011 0001 49 1 codice ASCII, permettendo la
0100 0010 66 B 0011 0010 50 2 rappresentazione di tutti i vari
0100 0011 67 C 0011 0011 51 3 simboli etnici. Ogni simbolo è
……. ……. rappresentato da 2 byte (16 bit) e
0101 1000 88 X 0011 1010 58 :
quindi permette la gestione di
65.536 caratteri.
0101 1001 89 Y 0011 1011 59 ;
- MSWINDOWS: è una codifica
0101 1010 90 Z 0011 1100 60 < proprietaria Microsoft simile ad
……. 0011 1101 61 = UNICODE.
0110 0001 97 a …….
0110 0010 98 b 1010 0100 164 ñ
0110 0011 99 c 1000 0111 135 ç
Nella tabella, oltre al codice binario
associato al simbolo (es. 01000001
corrisponde alla lettera “A”), viene
2
riportato anche il valore decimale Più avanti ripasseremo come convertire i valori
in notazione binaria in decimale e viceversa.

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 6


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

3.1 Esempio: testo in formato ASCII ed adoperato dall’applicazione Word è infatti


in formato Word estremamente ridondante, poiché
vengono memorizzate e gestite molte
Siamo abituati ad associare i file con altre informazioni quali lo stile del
estensione .doc al programma di video paragrafo, la dimensione, il tipo ed il
scrittura MS Word. Ma quando scriviamo colore dei caratteri, etc. Per avere un’idea
con questo programma è bene capire che della ridondanza di un formato
non stiamo usando il formato di caratteri professionale di video scrittura, provate
più diffuso al mondo, ovvero ASCII. Per semplicemente a creare un documento
apprezzare opportunamente la differenza, word vuoto (senza alcun carattere
facciamo un piccolo esperimento: all’interno). Non stupitevi nell’osservare
eseguiamo innanzitutto un’applicazione una dimensione attorno ai 10 KB, come
che ci permetta di salvare il documento per il file “vuoto.doc” che trovate in Fig. 4!
finale in formato ASCII. Un esempio di È per questo motivo che si consiglia
tale applicazione è “Blocco Note” sempre di utilizzare il formato giusto al
(Notepad). Ora scriviamo semplicemente momento giusto: se volete spedire una
la frase “Nel mezzo del cammin di nostra mail ad un amico, nella maggior parte dei
vita”. Salviamo dunque il file casi non avrete bisogno di tutte le
(chiamiamolo “dante.txt”3) ed usciamo da caratteristiche di un complesso
“Blocco Note”. Ripetiamo la stessa programma di video scrittura quale Word
identica cosa con Word, producendo un e farete bene ad utilizzare un normale
file di nome “dante.doc” e salvandolo formato “testo” (ASCII) per evitare di
nella stessa cartella del file precedente. intasargli la casella di posta elettronica
Infine, andiamo a vedere nel modo che (che ha in genere una capacità limitata).
abbiamo imparato nella sezione Se invece volete scrivere una lettera
precedente, le dimensioni di questi file commerciale o un racconto da proporre
(vedi Figura 4). ad un editore, potrete avvantaggiarvi
delle caratteristiche di un programma di
video scrittura.

Esercizio: provare ad aprire un file word


con un’applicazione di editing diversa che
tratta solo con formato ASCII (es. Blocco
Figura 4: Differenze tra formati di testo
Note). Cosa viene visualizzato? E perché,
secondo voi?
Il file “dante.txt” avrà una dimensione di
35 byte4: infatti, dato che in ASCII ogni 3.2 Esempio: Scelta della codifica di
carattere viene rappresentato con un byte visualizzazione da Browser Web
e nel testo che abbiamo scritto vi sono 35
caratteri (spazi inclusi), i conti tornano Un discorso simile, vale per il formato
subito. standard delle pagine Web, ovvero
La sorpresa avviene quando leggiamo le HTML. L’HTML è un linguaggio di
dimensioni del file “dante.doc”: 19 KB e formattazione testi. Un file html è in
per la precisione 19,456 byte! Il formato formato ASCII e contiene una serie di tag
(ovvero delle sequenze speciali di
3
L’estensione .txt viene universalmente utilizzata caratteri che permettono la marcatura del
per indicare che il formato del file è di tipo “testo”, testo) che vengono elaborati dal browser
ovvero ASCII.
4 allo scopo di visualizzare “in bella” la
La dimensione in byte del file sarà leggibile solo
tramite la finestra delle proprietà (vedi paragrafo pagina pubblicata sul Web. Ad esempio,
2.2). I dettagli mostrati dall’applicazione “Esplora per visualizzare la frase:
Risorse” fanno approssimazioni per eccesso. In
questo caso 35 byte “diventano” 1KB.

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 7


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

Il medium è il messaggio venga “perso per strada”. Ad esempio, a


secondo di quale codifica venga scelta,
e volendo mantenere lo stile indicato, potremmo leggere la frase precedente in
bisognerà scrivere: questo modo:

<center><b><i>Il medium &egrave; il Il medium il messaggio


messaggio</i></b></center>
poiché il codice relativo al carattere “è”
In questo modo allineeremo il testo al non viene utilizzato nella codifica scelta.
centro (tag <center>), lo scriveremo in Anche in questo caso sorge spontaneo
grassetto (tag <b>) ed in corsivo (tag un consiglio: quando si scrivono delle
<i>). Inoltre, dato che il carattere “è” non mail e si utilizza il formato testo standard,
è presente nella codifica ASCII standard, dato che non si conosce la codifica che il
viene utilizzata la sequenza &egrave; che gestore della posta del ricevente
il browser web riconoscerà e visualizzerà utilizzerà, è bene evitare caratteri non
secondo una codifica opportuna (ad ASCII. Quando si vorrà scrivere un
esempio, tramite la UNICODE che carattere accentato, utilizzate il carattere
contiene i caratteri accentati). desiderato seguito da un apostrofo (ad
Attenzione però a non cambiare codifica esempio: perche’, pero’, piu’, etc.). Il
di visualizzazione (vedi MS Internet problema non si pone se state scrivendo
Explorer in Figura 5). una mail in inglese: non esistono caratteri
Se tale codifica di visualizzazione viene di quel tipo e l’ASCII è stato fatto su
cambiata, tutte le associazioni tra misura dell’alfabeto e della sintassi usati
sequenze binarie e simboli cambieranno nella lingua anglosassone.
e non è affatto raro che qualche carattere

Figura 5: codifiche di visualizzazione di un browser Web

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 8


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

quando parleremo dell’Hardware, un


4. Rappresentazione dei numeri calcolo come questo è compiuto dalla
CPU, che prende il primo valore in
Nel paragrafo precedente abbiamo visto formato binario e lo somma (utilizzando le
come codificare testi composti da normalissime regole aritmetiche) al
stringhe, ovvero sequenze di caratteri secondo valore – sempre in formato
alfanumerici. Se scriviamo un file di testo binario. Quindi, conserva il risultato che
in cui scriviamo la frase: può essere restituito in output. In
“il numero di telefono del Rag. Fantozzi particolare, cerchiamo di eseguire questa
171717”, banale operazione utilizzando il codice
è ovvio che la stringa “171717” viene ASCII. Traduciamo i singoli numeri nel
interpretata come parte del testo è modo che abbiamo già appreso, notando
nessuno la utilizzerà mai come valore che il 3 ha codice 00110011, il 2 ha
numerico, sommandola – ad esempio – codice 00110010 (di conseguenza 32
ad altri numeri, o moltiplicandola con un nasce dalla concatenazione delle due
altro fattore. In questo caso, stiamo sequenze) e l’8 ha codice 00111000.
utilizzando i numeri in quanto simboli e Facciamo la somma, così come la
non in quanto valori. Notare infatti che la farebbe un’ipotetica CPU:
tabella ASCII, prevede dei codici da
associare ai caratteri “0”, “1”, “2”, …, “9”: 0011001100110010 +
ad esempio, lo “0” è rappresentato dalla 0000000000111000 =
sequenza: 00110000. Se la nostra
intenzione è di scrivere un testo, questa 0011001101101010
codifica và più che bene.
Ma supponiamo di voler utilizzare i Osservazione 1: anche se a molti può
numeri in quanto valori e non in quanto sembrare punico antico, la somma tra
simboli. Questo è essenziale quando numeri binari è molto più semplice di
utilizziamo un programma che compie dei quella tra numeri in base decimale: basta
calcoli matematici (per esempio fogli seguire le stesse vecchie regole avendo
elettronici, calcolatrici, etc.). a disposizione solo due cifre anziché
dieci. Ricordarsi quindi di fare il riporto
nella colonna di sinistra quando la
somma tra due o più cifre restituisce un
numero maggiore o uguale a 2 e non 10
come per la numerazione decimale; per
esempio, 1 + 1 = 0 e riporto di 1.

Osservazione 2: abbiamo aggiunto del


padding (sequenze di zero che servono a
riempire dei “buchi”) al secondo valore
dato per arrivare a 16 bit e per poter
effettuare la somma.

Il risultato è composto da due “caratteri”:


00110011 e 01101010 che in ASCII
Figura 6: il programma “calcolatrice” tra gli corrispondono rispettivamente al
accessori di Windows carattere “3” ed al carattere “ “ (spazio).
Vediamo cosa succede quando Quindi, il risultato “3 “ è qualcosa che non
utilizziamo il programma “Calcolatrice” è neanche un numero!
(Figura 6) quando compiamo una Questo è un semplice esempio per fare
semplice somma: 32 + 8. Come vedremo immediatamente capire come un formato

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 9


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

che funziona perfettamente in un utilizziamo una numerazione esadecimale


contesto, può essere assolutamente ne abbiamo 16 (0, …, 9, A, B, C, D, E, F).
inutile in un altro. Questo può sembrare molto complesso,
Quando si vuole che i numeri si ma fortunatamente, quanto detto per la
comportino come valori, il codice da notazione posizionale nel caso della
usare è un altro e si rifà più direttamente numerazione decimale, vale per tutte le
alle leggi di conversione dei numeri con altre numerazioni.
basi differenti. Di seguito riprenderemo le Di seguito presentiamo alcuni esempi,
queste leggi di conversione, partendo esplicitando la base della numerazione
dall’osservazione che tutti i numeri in una adottata utilizzando un pedice accanto al
base qualsiasi b possono essere espressi numero (es. 1001 in base 2 è
utilizzando un sistema comune. rappresentato come 10012).

4.1 Il sistema di numerazione 10012 = 1x23 + 0x22 + 0x21 + 1x20


posizionale 5348 = 5x82 + 3x81 + 4x80
B7FC16 = 11x163 + 7x162 + 15x161 +
Tutti i numeri in base 10 – quelli a cui 12x160
siamo più affezionati in quanto esseri
umani – possono essere espressi nel Una volta individuata una notazione
termini delle unità, decine, centinaia, comune, siamo in grado di presentare un
migliaia (…) che li compongono. Ad semplice metodo di conversione di
esempio, il numero 221 è composto da 2 numeri in basi diverse.
centinaia, 2 decine ed 1 unità.
Formalmente, utilizzando le potenze del 4.2 Conversione da una base qualsiasi
10, possiamo esprimere lo stesso numero a base 10
in questo modo:
221 = 2x102 + 2x101 + 1x100 Per prima cosa, “umanizziamo” i valori
Questa notazione è detta esplicita o espressi secondo le numerazioni binarie,
anche posizionale: ogni numero si ottali e decimali. La buona notizia è che,
esprime come la somma di ciascuna cifra una volta espresso il valore nella sua
per la base elevata all’esponente che notazione posizionale, il gioco è fatto:
rappresenta la posizione della cifra. La basta calcolare la somma data per
notazione posizionale può essere usata ottenere il valore equivalente in base
con qualunque base creando così decimale.
differenti sistemi di numerazione. Riprendendo gli esempi fatti prima,
È importante però capire che per ogni avremo:
base di numerazione si utilizzano un
numero di cifre uguale alla base. Ad 10012 = 1x23 + 0x22 + 0x21 + 1x20 = 910
esempio per numeri in base 2, 5348 = 5x82 + 3x81 + 4x80 = 34810
utilizzeremo solo due cifre e, per B7FC16 = 11x163 + 7x162 + 15x161 +
l’esattezza, 0 ed 1; per numeri in base 10, 12x160 = 4710010
utilizzeremo invece dieci cifre: 0, 1, 2, 3,
…, 9. Esercizio 1: Convertire in base decimale
In informatica, oltre alla base binaria si i seguenti numeri:
utilizzano spesso anche numerazioni 10012 – 111111112 – 7108 – A5116
ottali ed esadecimali. La differenza
principale è nel numero di cifre che Esercizio 2: Sapresti discriminare ad
abbiamo a disposizione per occhio e senza fare calcoli tra i seguenti
rappresentare valori numerici. Utilizzando numeri espressi in base binaria quelli pari
numerazioni ottali, abbiamo 8 cifre in da quelli dispari?
tutto, comprese tra 0 e 7, mentre se 10012 –10002 –1112 –1002 –1110010002

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 10


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

Intanto convertiamo questi valori secondo


4.3 Conversione da base 10 ad una la numerazione binaria:
base qualsiasi
3210 = 1000002
Da un punto di vista concettuale, la 810 = 10002
conversione da base 10 ad una base n
qualsiasi (2, 8, 16, …) è ancora più Quindi, facciamo la somma:
semplice: occorre trovare tutti i resti delle
successive divisioni del numero per la 100000 +
base n. 001000 =
Facciamo un esempio: convertiamo in
base 2 il numero 210. 101000 ( = 4010)
Per prima cosa, dividiamo 210 per 2.
Otteniamo il valore 105 con resto 0.
Mettiamo da parte il resto trovato e Finalmente, i conti tornano!
ripetiamo la stessa operazione per il
numero 105. Avremo la seguente 4.4 Numero fisso di cifre e problemi di
successione di passi: overflow

210:2 = 105 con resto 0 Prima di cantare definitivamente vittoria,


105:2 = 52 con resto 1 bisogna fare alcune considerazioni
52:2 = 26 con resto 0 relative ai vincoli tecnologici dei
26:2 = 13 con resto 0 computer: si può sempre e soltanto
13:2 = 6 con resto 1 rappresentare un numero limitato, per
6:2 = 3 con resto 0 quanto grande, di cifre binarie. Questo
3:2 = 1 con resto 1 implica che non possiamo rappresentare
1:2 = 0 con resto 1 numeri di qualsiasi dimensione e
dobbiamo arrenderci al fatto che, per
A questo punto ci fermiamo, e prendiamo qualsiasi tipo di codifica numerica, esiste
la sequenza di resti che abbiamo trovato, un limite massimo di valori
partendo dall’ultimo fino al primo (ecco il rappresentabili.
perché di quella freccia dal basso verso Per ogni numero dobbiamo assegnare un
l’alto). Otteniamo il valore in base 2: numero fisso di cifre binarie e quindi il
limite massimo di valori rappresentabili
110100102 dipende da questo numero fisso.
Su tutti i computer, i numeri vengono
Esercizio 1: convertire il numero rappresentati prevalentemente tramite 16
110100102 in base 10 e verificare che bit (2 byte) e/o tramite 32 bit (4 byte). In
esso sia uguale a 210. alcuni casi si può arrivare anche ad 8
byte e più a seconda del tipo di
Esercizio 2: convertire il numero 21010 microprocessore.
prima in base otto e poi in base 16 Un’altra importante osservazione riguarda
(suggerimento: basta fare divisioni per 8 il tipo di numero: finora abbiamo visto una
e per 16 rispettivamente). codifica possibile per numeri interi senza
segno. Ma se dovessimo usare numeri
A questo punto, possiamo risolvere il negativi? Oppure numeri reali, cioè
problema che ci siamo posti all’inizio del numeri con la virgola che tra l’altro
paragrafo, ovvero simulare l’operazione possono essere positivi o negativi?
che la CPU del nostro computer Ebbene, è chiaro che per ogni categoria
effettuerà per sommare i numeri 32 ed 8. esiste una differente rappresentazione,

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 11


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

ma un approfondimento in tal senso è al sempre tenere presente il fatto che anche


di là dello scopo di queste pagine. questo tipo di rappresentazione possiede
Invece vale la pena soffermarsi qualche dei limiti.
minuto in più sul limite massimo
rappresentabile con un numero n di cifre 5. Rappresentazione delle
binarie usando la codifica numerica per immagini
interi positivi spiegata prima. Come
abbiamo visto nella Sezione 3, tale limite Sappiamo bene che i testi ed i numeri
è dato dal valore 2n. Quindi, con un byte non sono gli unici tipi di dati che è
(8 bit) possiamo rappresentare 28 = 256 possibile gestire con il proprio computer.
valori diversi, mentre con due byte ne Le applicazioni multimediali usano ed
rappresentiamo 216 = 65.536. Ma quali elaborano informazioni relative ad
numeri sono rappresentabili? Ovviamente immagini, suoni e filmati5.
i valori sono tutti quelli compresi tra: In questa sezione ci occuperemo di
esporre le tecniche alla base della
0 e 2n – 1 memorizzazione e dell’elaborazione di
un’immagine.
Ad esempio, se usiamo 8 bit, il valore Partiamo dal caso più semplice, ovvero
massimo che possiamo rappresentare è un’immagine in bianco e nero, senza
255 (il minimo, chiaramente, è 0). ombreggiature ne livelli di chiaroscuro.
Questo limite rappresenta un problema
nel caso in cui un’operazione tra due e 5.1 Immagini in bianco e nero
più valori generi un nuovo valore al di
fuori di quell’intervallo (o, in inglese, Supponiamo di rappresentare l’immagine
range). Supponiamo ad esempio di usare di un cerchio.
solo un byte per rappresentare interi
positivi e di dover fare la somma 251 + 6:

11111011 + (1 byte)
00000110 = (1 byte)

100000001 (1 byte + 1 bit)

Ovvero 257… che ha bisogno di ben


nove cifre decimali per essere
rappresentato. Purtroppo il nostro (a) (b)
ipotetico computer riesce a memorizzare
solo 8 cifre per ogni numero intero, quindi
memorizzerebbe soltanto 8 delle 9 cifre Figura 7: un cerchio (a) e lo stesso cerchio in
una griglia 10x9 (b)
binarie, generando un errore. Tale errore
è chiamato overflow (lett. straripamento).
In Figura 7 vediamo un normalissimo
cerchio (a) e lo stesso cerchio
Un’osservazione finale: quando si usano
rappresentato in una griglia 10x9,
le rappresentazioni dei numeri reali (a
virgola mobile, ovvero floating point), è
5
possibile rappresentare con un maggior Sembra che l’olfatto sia il senso più trascurato
grado di finezza i valori numerici: dalle arti e dalla tecnologia informatica (ma non
dall’industria dei profumi…). Eppure esistono
possiamo rappresentare valori più grandi
ricerche sulla riproduzione degli odori durante
(usando notazione esponenziale) e anche l’esplorazione di mondi virtuali e la navigazione in
valori molto piccoli (esponente negativo), rete. Bisogna essere dotati di apparecchiature
con lo stesso stratagemma. Ma bisogna complesse e molto dispendiose, ma la via è
possibile. Cercare in Internet per credere!

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 12


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

costituita da righe orizzontali e verticali a disegno seguente, riportato anche in


distanza costante. Figura 8(a):
La rappresentazione digitale di questa
immagine, trae spunto dalla stessa 0 0 0 0 1 1 0 0 0 0
tecnica di stampo scolastico che i 0 0 0 1 1 1 1 0 0 0
disegnatori usano per riprodurre delle 0 0 1 1 1 1 1 1 0 0
figure rispettandone le proporzioni. Si 0 1 1 1 1 1 1 1 1 0
vuole rappresentare (memorizzare) ogni 1 1 1 1 1 1 1 1 1 1
singolo quadrato dell’immagine 0 1 1 1 1 1 1 1 1 0
separatamente, per poi poter visualizzare 0 0 1 1 1 1 1 1 0 0
il risultato complessivo. 0 0 0 1 1 1 1 0 0 0
Ogni quadrato prende il nome di pixel 0 0 0 0 1 1 0 0 0 0
(picture element) e viene codificato in
binario secondo la seguente convenzione È chiaro che abbiamo perso in qualità. La
(pensare al fatto che per ora stiamo digitalizzazione comporta sempre perdita
rappresentando solo due colori): di qualità, anche se in pratica è possibile
- La cifra 0 viene utilizzata per la migliorare la granularità della
codifica di un pixel corrispondente rappresentazione ed utilizzare altre
ad un quadrato il cui bianco è tecniche (ad esempio, sfumature con
predominante; diverse gradazioni di grigio) per
- La cifra 1 viene utilizzata per la “ingannare” maggiormente l’occhio
codifica di un pixel corrispondente dell’utente finale e fare “sparire” l’effetto a
ad un quadrato il cui nero è scalini tipico delle visualizzazioni tramite
predominante. pixel.
Inoltre, ordiniamo per comodità la griglia Esattamente come per la qualità di uno
dei pixel dall’alto verso il basso e da schermo video, un’immagine viene
sinistra verso destra. Questo significa caratterizzata da una risoluzione e da una
che, per l’esempio di cui sopra, profondità.
otterremmo una rappresentazione di La risoluzione dell’immagine è il numero
questo tipo: di pixel che la costituiscono, espressi in
termini di larghezza x altezza.
0 0 0 0 1 1 0 0 0 0 Ovviamente, aumentando il numero di
0 0 0 1 1 1 1 0 0 0 pixel a disposizione, migliora la qualità
0 0 1 1 1 1 1 1 0 0 dell’immagine (vedi Figura 8).
0 1 1 1 1 1 1 1 1 0 La profondità dell’immagine è invece il
1 1 1 1 1 1 1 1 1 1 numero di bit che servono per
0 1 1 1 1 1 1 1 1 0 rappresentare un singolo pixel
0 0 1 1 1 1 1 1 0 0 dell’immagine.
0 0 0 1 1 1 1 0 0 0 In questa sezione abbiamo solo immagini
0 0 0 0 1 1 0 0 0 0 a due colori (bianco e nero) e quindi è
stato sufficiente avere un solo bit
Quindi, la figura sarà rappresentata dalla associato ad ogni pixel.
stringa binaria: Praticamente, la profondità dell’immagine
000011000000011110000011111100011 è sempre legata al numero di colori
111111011111111110111111110001111 rappresentabili. Quando conosciamo la
110000011110000000110000 profondità, possiamo sempre risalire al
Notiamo però che riconvertendo questa numero di colori presenti nell’immagine.
stringa binaria in un’immagine
sostituendo allo zero un pixel bianco e Esempio: Negli esempi visti, la
all’uno un pixel nero, otterremmo il profondità è uguale a 1. Infatti, 21 = 2
colori.

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 13


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

Dal bianco e nero passiamo a diverse


gradazioni di grigio. La logica è sempre la
stessa: ad ogni sfumatura (o colore)
associamo una diversa sequenza di bit.
Nel caso già visto avevamo solo due
colori: è stato possibile rappresentare un
pixel con un solo bit.
(a) (b) Se invece vogliamo rappresentare, ad
esempio, 16 livelli di grigio, abbiamo
bisogno di almeno 4 bit; infatti, 24 = 16.
Con 8 bit possiamo distinguere 256
diversi livelli di grigio.
Ovviamente, niente ci vieta di
rappresentare diversi tipi di colori, invece
(c) (d) che limitarci a distinguere tra varie
sfumature di grigio.
Figura 8: Lo stesso cerchio in risoluzioni Pensandoci sopra, questo è proprio il
diverse: (a) 10x9 (b) 29x28 (c) 58x56 (d) processo che utilizza un pittore quando
116x108 usa una tavolozza di colori: mette a
Nel resto della sezione vedremo come propria disposizione un certo numero di
rappresentare immagini a più colori. Per campioni di colori, dai quali attinge
ora fermiamoci ad osservare come dalla tramite il suo pennello ogni volta che ne
risoluzione e dalla profondità riusciamo a ha bisogno.
risalire alla dimensione di un’immagine. Chiaramente, il numero di colori a
Infatti, se moltiplichiamo il numero di pixel disposizione del nostro pittore ideale è
presenti in un’immagine per la sua limitato: sono comuni palette (tavolozze)
profondità, otteniamo la quantità di bit a 256 colori (i.e. profondità dell’immagine
necessaria per rappresentare l’immagine. a 8 bit).
Quando abbiamo bisogno di colori che
Esercizio: considerate le immagini in non sono presenti in questa tavolozza,
Figura 8, dire quanti byte occupano. possiamo o sostituire il colore mancante
con quello più simile presente nella
5.2 Gradazioni di grigio e tavolozze di palette, oppure cambiare palette. In
colori (palette) questo modo, cambia l’associazione tra
sequenze di bit e colori. Di conseguenza,
quando si usa un programma di

(a) (b) (c)


Figura 9: tre diversi esempi di palette a 256 colori

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 14


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

elaborazione dell’immagine (es. paint Esistono altri modelli di rappresentazione,


shop pro, photoshop, etc.), bisogna come il CMY, il quale è un modello
specificare quale palette si sta usando. sottrattivo ed è basato sui colori Ciano,
In Figura 9 vediamo tre diversi esempi di Magenta e Giallo. CMY è usato dalle
palette a 256 colori. Ad esempio, la stampanti, ma per ora concentriamoci sul
palette (a) è composta da 256 diverse modello RGB, il quale può essere
sfumature di azzurro: ci potrebbe servire pensato composto da tre canali, ognuno
per tingere un cielo verosimile. rappresentante una scala di valori
La rappresentazione di un’immagine luminosi del Rosso, del Verde e del Blu.
tramite associazione di una sequenza di La combinazione di questi canali produce
bit ad ogni pixel è chiamata codifica una ampia varietà di colori appartenenti
bitmap o anche raster. allo spettro visibile.
In sintesi, invece che rappresentare
Esercizio 1: Data un’immagine bitmap alcune sfumature di tanti colori diversi,
con risoluzione 200x80 e composta di possiamo rappresentare molte sfumature
256 colori, quanti byte occuperà? dei tre colori primari: dalla combinazione
di essi otteniamo tanti altri colori.
Esercizio 2: Supponiamo di avere una
palette con soli 64 colori. Quanti byte Esempi:
occuperà un’immagine bitmap con - Rosso + Blu = Viola
risoluzione 150x100 che utilizza tale - Blu + Verde = Azzurro
palette? - Rosso + Verde = Giallo
- Blu + Rosso + Giallo = Bianco
5.3 Codifica RGB e qualità fotografica
Osservazioni:
Dalla sezione precedente appare subito - se rappresentiamo ogni colore
chiaro che, per rappresentare primario con 2 bit, otteniamo 4
contemporaneamente più di 256 colori gradazioni diverse (22 = 4). Questo
per immagine, dobbiamo utilizzare palette significa che abbiamo 4 rossi, 4 verdi
più grandi. Aumentare il numero di e 4 blu. Combinando tutte le
sfumature in un’immagine digitalizzata è possibilità abbiamo 4x4x4=64 colori
di primaria importanza se si vuole qualità diversi. Ogni pixel sarà rappresentato
fotografica: abbiamo bisogno di milioni di da circa un byte (profondità a 6 bit =
colori! Nello stesso tempo, le palette non 2+2+2).
forniscono una rappresentazione dei - utilizzando 4 bit per colore primario,
colori “assoluta”: basta cambiare palette, otteniamo 16 diverse gradazioni,
per ottenere dei colori diversi. ovvero 4096 colori diversi. In questo
Sia per ingrandire l’insieme dei colori a caso un pixel richiede circa due byte
nostra disposizione che per usare una di informazione (profondità a 12 bit).
modalità di rappresentazione assoluta, si - utilizzando 8 bit per colore primario,
usa la codifica RGB (Red, Green, Blu – otteniamo 256 diverse gradazioni,
Rosso, Verde, Blu ovvero i tre colori ovvero circa 16,8 milioni colori diversi.
primari). In questo caso un pixel richiede tre
RGB è un modello additivo di byte di informazione (profondità a 24
rappresentazione dei colori che viene bit).
usato dai dispositivi basati sull’emissione
della luce, come ad esempio i video CRT In Figura 12, vediamo l’editor dei colori di
o a raggi catodici. Questo significa che se un comune programma di manipolazione
tre emissioni luminose di rosso, verde e immagini: Microsoft Imaging. Osserviamo
blu vengono sommate tra di loro, è che una determinata sfumatura di azzurro
possibile produrre qualsiasi altro colore. è rappresentata da una particolare

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 15


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

combinazione di rosso, verde e blu (vedi


riquadro in basso a destra in figura). Le Esercizio 1: che colore corrisponde alla
sequenze di bit relative ad ogni colore codifica HTML #000000? E a #FFFFFF?
primario sono espresse in base decimale:
139 (R), 210 (G) e 216 (B). Tutti e tre i Esercizio 2: creare una pagina HTML
numeri sono compresi tra 0 e 255, quindi con lo sfondo rosso puro.
ogni sfumatura del colore primario è
rappresentabile tramite un byte. 5.4 Palette e codifica RGB

A questo punto conviene chiarire subito il


rapporto che lega la codifica RGB ed i
colori di una palette: ebbene, quando
utilizziamo una determinata tavolozza,
ogni singolo colore è rappresentato in
RGB. Le informazioni relative alla palette
(che vengono conservate in una tabella
dove ogni cella contiene la codifica RGB
di un dato colore), vengono memorizzate
insieme all’immagine.
In verità, le palette nascono da una
semplice osservazione: ci sono molti casi
in cui non abbiamo bisogno di avere a
disposizione 16,8 milioni di colori, ma ce
ne bastano molti meno. Fatta questa
Figura 10: codifica RGB di un colore considerazione, ci chiediamo se
possiamo risparmiare occupazione di
Spesso, tale codifica è espressa in base memoria in questi casi.
esadecimale. In questo modo, lo stesso
colore dell’esempio sarebbe espresso nel Osservazione: sono comuni palette a
modo seguente: 8B D2 D8 (8B16 = 13910, 256 colori (profondità dell’immagine a 8
e così via…). I professionisti di bit). La palette viene memorizzata
elaborazioni di immagini, trovano la insieme al resto dei dati dell’immagine.
codifica esadecimale più sintetica: infatti Se avessimo un’immagine di 640x480,
rappresentiamo un colore (e, di sarebbero necessari 8 bit per la codifica
conseguenza, il contenuto di tre byte, di ciascun pixel; la codifica richiederà
tramite 6 caratteri alfanumerici). 2457600 bit (307200 byte) per l’immagine
In HTML, ad esempio, i colori vengono più 256*3=768 byte per la palette. Quanti
espressi in questo modo anteponendo un byte sarebbero necessari per
simbolo # al codice. memorizzare la stessa immagine usando
Per usare il colore di Figura 12 in una codifica RGB senza palette?
pagina da pubblicare sul Web, basterà
riportare il codice #8BD2D8 nel tag HTML Se vogliamo cambiare palette ad
opportuno. un’immagine bitmap, dobbiamo però
stare molto attenti: potremmo ottenere
Esempio: per cambiare il colore dello l’effetto indesiderato di cambiare tutti i
sfondo di una pagina Web si usa colori in una sola volta! Per capire il
l’attributo BGCOLOR (background color) problema, osserviamo l’immagine in
nel tag <BODY>. Infatti, per usare lo Figura 10.
stesso azzurro della Figura 12, useremo il
seguente codice:
<BODY BGCOLOR=” #8BD2D8”>

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 16


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

colori rappresentati ed occuperà in tutto


24x4 = 96 bit. Supponiamo ora di
rappresentare un’immagine con
risoluzione 3x2 utilizzando questa palette.
L’immagine è la seguente:
Figura 11: un'immagine con colori realistici
Questa bitmap usa una sua propria
palette di colori che viene salvata insieme
al resto dei dati dell’immagine. In questo
modo riusciamo ad associare ai vari pixel
tanti colori diversi, dalle varie sfumature
del pendente fino a quelle del dito e dello
smalto per unghie. In Figura 11 invece Possiamo rappresentare l’immagine
vediamo cosa succede se, tramite dando, pixel per pixel, la codifica in
un’applicazione per l’editing di immagini, binario della posizione nella palette del
cambiamo la palette in quella mostrata in colore appropriato:
Figura 9(a).
00 01 01
10 11 11

Il file contenente l’immagine sarà quindi


costituito dalla tabella (96 bit) e dai
precedenti dati dell’immagine (2x3x2=12
Figura 12: la stessa immagine con un'altra
palette.
bit), per un totale di 108 bit.

Osservazione: Se non avessimo usato la


Abbiamo tutti gli strumenti che ci palette, ma direttamente la codifica RGB,
permettono di capire questo fenomeno avremmo dovuto conservare per ogni
(frequentissimo, tra le altre cose e spesso pixel i 24 bit relativi alla rappresentazione
involontario). Per capirlo meglio, del colore corrispondente, per un totale di
semplifichiamo i termini del problema, 24x3x2 = 144 bit!
pensando di avere a che fare con
un’immagine a quattro colori (profondità 2 Ma cosa succede se teniamo i dati relativi
bit). Avremo una palette con questi all’immagine e cambiamo la palette?
quattro colori. Per la precisione: Semplicemente cambia l’associazione
pixel/colore. Ad esempio, supponiamo di
81 12 D4 avere la seguente palette:
0

44 D6 D5 81 00 D4
1 0
3E 52 18 44 00 D5
2 1
1B BC AA 3E 00 18
3 2
1B 00 AA
Nella prima colonna della tabella, 3
mostriamo il colore ed il numero della riga
associato ad esso, nella seconda La stessa immagine, verrebbe
abbiamo dato la rappresentazione RGB visualizzata nel modo seguente:
(espressa in valori esadecimali) del
colore corrispondente. La palette che
memorizzeremo conterrà i codici RGB dei

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 17


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

5.5 Codifiche di compressione e grafica Purtroppo, tale codifica è estremamente


vettoriale costosa (in termini di occupazione di
spazio di memoria): più la qualità
Finora abbiamo parlato in termini generali dell’immagine è alta, maggiore è lo
di codifiche bitmap, delle quali esistono spazio occupato da essa. Per risolvere
numerose varianti (palette, RGB, etc.). questo problema, si usano opportune
Per ogni tipo di codifica, esistono codifiche di compressione, tra cui
numerosi formati, che variano da ricordiamo le più famose: la CompuServe
piattaforma a piattaforma. Esiste un altro Graphic Interface (GIF) e quella proposta
tipo di approccio alla rappresentazione dal Joint Photographic Experts Group
delle immagini, che prende il nome di (JPEG). I file che usano tali codifiche
codifica vettoriale. Abbiamo anche riportano rispettivamente le estensioni .gif
codifiche ibride, che sono costituite in e .jpg (o anche .jpeg).
parte da bitmap ed in parte da immagini I programmi che trattano con i formati di
vettoriali. In questa sezione, compressione sono detti codec:
concluderemo il nostro discorso sulla (compression/decompression), usano un
rappresentazione delle immagini parlando sistema per comprimere l’informazione
della differenza tra i vari formati. prima di memorizzarla e per
Come abbiamo visto, la grafica bitmap è decomprimerla prima di visualizzarla. La
caratterizzata dal fatto che ogni punto codifica GIF tende ad eliminare i pixel
(pixel) rappresenta un’informazione ripetitivi, ed utilizza uno schema a palette
differente. In particolare, l’informazione (creando una tavolozza dei colori ad hoc
che conserviamo per ogni punto è la sua che viene memorizzata insieme agli altri
gradazione del colore. Ogni pixel è quindi dati e che contiene le sfumature più
associato ad un numero di bit che frequenti e più vicine ai colori
esprime la codifica di quel colore. È facile dell’immagine di partenza). Le tavolozze
risalire alla dimensione dell’immagine a utilizzabili dalla codifica GIF possono
partire dalla risoluzione e dalla rappresentare massimo 256 colori.
dimensione della singola informazione (o, Invece la codifica JPEG consente l’uso di
come abbiamo detto, profondità uno schema RGB, ma contrariamente
dell’immagine): basta calcolare il numero alla GIF, è una compressione con perdita
di punti complessivo per la dimensione di informazione: viene persa una certa
dell’informazione. precisione rispetto all’immagine di
partenza, effettuando un compromesso
Esempio: un’immagine bitmap di rispetto alla dimensione finale. Tale
100x200 pixel con 16 bit per ogni pixel perdita non può essere recuperata in
occupa 20000*16 bit, ovvero circa 40 KB. alcun modo. La codifica JPEG consente
di manipolare tale fattore di
Esercizio: creare un’immagine bitmap compressione.
utilizzando un programma di grafica Il formato vettoriale segue un approccio
(paint shop pro, photoshop, etc.) e poi completamente diverso: l’attenzione non
salvarla nei formati bmp e pbm (portable viene concentrata sui singoli punti,
bitmap). Aprire i file ottenuti con un quanto piuttosto sugli elementi geometrici
normale editor di testo e vedere il formato primitivi, i quali vengono specificati
grezzo. Cosa contiene? Perché? individualmente.
(Attenzione, specificare in fase di In pratica, piuttosto che rappresentare la
salvataggio di usare un formato ASCII e figura punto per punto, si cerca di
non BINARY in modo da poter definirne le curve che la compongono e
visualizzare i dati con un editor testuale.) quindi memorizzare solo le coordinate
che servono a ricostruire le curve
rintracciate: la visualizzazione avverrà

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 18


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

solo dopo che, lette le coordinate risparmiando molto spazio. Se dovessimo


memorizzate, una parte del programma salvare i dati di questo disegno,
riprodurrà pixel per pixel le curve che dovremmo memorizzare solo la stringa
compongono la figura originale. In questo riportata.
modo è possibile spesso risparmiare
occupazione di memoria, in cambio di un Esercizio: se l’immagine di Figura 13
maggior lavoro di calcolo da parte della fosse in risoluzione 100x100, quanto
macchina, in modo da poter ricostruire il spazio occuperebbe nel formato vettoriale
disegno originale. usato nell’esempio (considerando solo la
Ad esempio, si veda il disegno riportato in specifica Rectangle)? E quanto spazio
Figura 13. occuperebbe se invece venisse usato un
formato bitmap a due colori?
(0,0)
Osservazione: è chiaro che in un file in
(10,10)
formato vettoriale bisognerebbe
50 px memorizzare opportunamente anche la
risoluzione dell’immagine, lo spessore in
pixel delle linee, i colori delle linee e dei
riempimenti delle figure, etc. Un
Figura 13: un quadrato con lato lungo 50 pixel.
approfondimento della codifica vettoriale
Per memorizzare le informazioni in tal senso è al di fuori degli scopi di
sufficienti per rappresentare il quadrato queste pagine.
riportato in figura, dobbiamo
essenzialmente individuare un punto di Esempi di formati vettoriali sono i grafici
riferimento (che può essere il vertice in usati da programmi tipo CAD e le Clip Art.
alto a sinistra del quadrato) e la La grafica Web usa abbondantemente la
lunghezza del lato. Tramite queste misure grafica vettoriale: ad esempio abbiamo
possiamo risalire in qualsiasi momento al SVG (Scalable Vector Graphic), lo
disegno riportato in figura. standard definito dal W3C consortium e
Consideriamo il vertice in alto a sinistra Shockwave Flash della Macromedia che
come l’origine di ipotetiche assi consentono la gestione di animazioni in
cartesiane, il senso crescente delle formato vettoriale. A favore del formato
ascisse da sinistra verso destra ed il vettoriale c’è il notevole risparmio dello
senso crescente delle ordinate dall’alto spazio di memoria quando è possibile
verso il basso6. Se usiamo una individuare facilmente gli elementi grafici
rappresentazione che usa il termine: primitivi che compongono l’immagine. È
Rectangle (x, y, w, h) chiaro però che tale vantaggio non esiste
per memorizzare i dati di un rettangolo nel caso in cui si volesse riprodurre
generico con vertice principale di un’immagine in qualità fotografica:
coordinate (x, y), base w e altezza h, l’insieme di curve e di linee sarebbe così
allora il file dell’immagine di Figura 13, numeroso che alla fine converrebbe
conterrebbe essenzialmente la sequenza rappresentare l’immagine pixel per pixel.
di caratteri: Inoltre, il lavoro di calcolo della macchina
Rectangle(10,10, 50, 50). per ricostruire l’immagine a partire dalle
Si potrebbe salvare questo file coordinate di tantissime linee rallenta il
direttamente in formato testo (es. ASCII) processo di elaborazione.
Un altro importante vantaggio della
6 grafica vettoriale, consiste nel non
In computer graphic, l’origine delle assi
cartesiane viene spesso individuato come il perdere in qualità quando essa viene
vertice in alto a sinistra della nostra “lavagna” e ingrandita tramite operazioni di zoom: la
non quello in basso a sinistra cui siamo macchina calcolerà le nuove proporzioni
normalmente abituati.

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 19


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

e disegnerà correttamente il disegno, otteniamo la rappresentazione analogica


senza i soliti effetti a scalini caratteristici dell’informazione sonora. Nel caso della
delle bitmap. rappresentazione digitale, dobbiamo
Infine, esistono codifiche ibride: una sempre tenere presente che non
parte del documento è memorizzata in possiamo avere a che fare con infiniti
formato bitmap, un’altra parte in formato punti (le curve relative alle onde sonore
vettoriale. Tali codifiche sono comuni nei sono infatti costituite da un numero
formati di interscambio di documenti che infinito di punti), ma solo con un numero
contengono testo (vettoriale) ed immagini discreto di informazioni. È per questo
(bitmap): gli esempi sono il formato necessario effettuare dei campionamenti
PostScript (utilizzato anche per migliorare dell’onda, ovvero misurare il valore
la qualità di stampa) e il PDF (Portable dell’onda a intervalli costanti di tempo
Document Format) ormai uno standard (Figura 15).
per la distribuzione dei documenti.

6. Rappresentazione del suono

Un suono rappresenta una variazione


della pressione dell’aria che può essere
trasformata in un segnale elettrico.

Figura 15: campionamenti dell'onda sonora.


Ogni valore campionato (che sarà un
normale valore numerico) potrà essere
Figura 14: il suono come variazione della
pressione dell’aria nel tempo.
convertito in formato digitale (Figura 16).

Questo infatti è quello che succede


all’interno dell’orecchio umano: la
variazione della pressione dell’aria
esercita un’azione sul nostro timpano, il
quale trasmette quest’informazione al
cervello tramite un segnale elettrico. In Figura 16: campioni dell'onda, ovvero
questo modo avvertiamo la sensazione sequenza di valori numerici facilmente
sonora di un evento circostante. codificabili
Riusciamo a distinguere un suono
In particolare, la digitalizzazione del
dall’altro grazie alle seguenti grandezze
suono avviene secondo le seguenti fasi:
fisiche: durata, intensità e variazione nel
• l’onda sonora viene ricevuta da un
tempo della pressione dell’aria.
microfono il cui compito è quello di
Dato che un suono è generato dalle
trasformare (trasdurre) il segnale
variazioni della pressione dell’aria nel
in un analogo (che ha lo stesso
tempo, allora possiamo rappresentare
andamento) segnale elettrico
fisicamente un suono tramite un’onda
(detta appunto onda sonora – vedi • il valore del segnale elettrico, dopo
Figura 14). Basta porre sull’asse delle una serie di operazioni di filtraggio
ascisse il tempo e sull’ordinata la che qui tralasciamo, viene
variazione della pressione rispetto al suo convertito in digitale (cioè, viene
valore di riferimento. In questo modo associata una configurazione di bit
al valore in ingresso) da un
Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 20
Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

dispositivo elettronico detto Analog


to Digital Converter (ADC) Come al solito la digitalizzazione
dell’informazione, comporterà una perdita
Osservazione: La trasmissione delle della precisione. Per ottenere un
informazioni sonore avviene in maniera campionamento più efficace e quindi per
analogica, ad esempio, quando rendere la rappresentazione
attraverso le “vecchie” linee telefoniche. dell’informazione sonora più precisa,
Infatti, la voce viene tradotta dal bisogna agire su due parametri:
microfono della cornetta in un analogo frequenza di campionamento e
(cioè con lo stesso andamento nel tempo) granularità della rappresentazione
segnale elettrico. L’altoparlante della digitale.
cornetta del terminale ricevente effettua La frequenza di campionamento
la trasduzione da un segnale elettrico ad determina il numero di campioni che
un analogo segnale sonoro. vengono prodotti nell’unità di tempo (un
secondo). Intuitivamente, maggiore sarà
Al contrario, un suono in formato digitale la frequenza di campionamento, migliore
può essere convertito in formato sarà la qualità della rappresentazione
analogico (cioè, riprodotto) tramite le digitale del suono considerato. La
seguenti fasi: frequenza è una grandezza che viene
• un dispositivo elettronico detto espressa in Hertz (numero di cicli al
Digital to Analog Converter (DAC) secondo).
legge le codifiche digitali e produce Esiste una frequenza minima da
un segnale elettrico il cui valore impiegare per il campionamento che
dipende dalla configurazione di bit garantisca che la rappresentazione
letta digitale di un suono campionato sia
• il segnale elettrico, dopo una serie fedele all’originale? La risposta è si: il
di operazioni intermedie che qui cosiddetto Teorema di Nyquist dice che
tralasciamo, viene convertito dagli la frequenza di campionamento deve
altoparlanti in un segnale sonoro essere almeno il doppio della frequenza
analogo (che ha lo stesso massima presente nel segnale in
andamento) al segnale elettrico in ingresso.
ingresso
Esempi:
La Figura 17 schematizza le fasi sopra - 4000 Hz (4kHz), cioè la frequenza
descritte. massima della voce umana (che è un
caso particolare di suono), impongono
una frequenza minima di
campionamento di 8000 campioni al
secondo.
- Poiché la percezione dell’uomo arriva
a segnali di circa 20.000 Hz (20kHz),
è sufficiente che il tasso (la frequenza)
di campionamento sia fissato a oltre
40.000 campioni al secondo. Il tasso
di campionamento dei compact disc è
di 44.100 campioni/sec, ed è quindi
sufficiente a rappresentare
correttamente il segnale audio di
partenza.
Il secondo parametro riguarda la
granularità della rappresentazione
Figura 17: Schema di digitalizzazione del suono
e di riproduzione del suono in formato digitale
Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 21
Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

digitale. Questo elemento riguarda il rappresentazione si può aumentare il


numero di bit che vengono usati per numero di bit che vengono usati per la
rappresentare in formato digitale un codifica dei campioni. Nell’esempio
singolo campione (che, lo ricordiamo, è precedente, se usassimo due bit
una misura del valore di tensione elettrica potremmo associare ad un campione una
in ingresso al ADC). La gamma delle configurazione di bit secondo la seguente
ampiezze possibili viene divisa in regola
intervalli o regioni: ogni campione
assume un valore che cade in una delle Valori di tensione Codifica binaria
regioni. Ad esempio, se l’ampiezza del –5/ –2,5 00
segnale in ingresso all’ADC varia tra –5 e –2,5/ 0 01
+5 volt, la gamma totale delle ampiezze è 0/ 2,5 10
di 10 volt; se la codifica digitale divide la 2,5/ 5 11
gamma delle ampiezze in 16 regioni, ogni
regione sarà ampia 0,625 volt (0,625 = individuando 22 regioni di ampiezza
10/16). 10/22= 2,5 volt.
Chiaramente, il numero di regioni in cui è Otterremmo come risultato quello, ad
suddivisa la gamma delle ampiezze esempio, di associare ai valori precedenti
dipende dai bit a disposizione per la (0,1 e 4,9) configurazioni diverse (10 e
codifica. 11, rispettivamente). Tuttavia, valori
Valori tipici per la lunghezza di una parola distanti come, ad esempio, 4,9 e 2,6
binaria nell’audio sono 8 o 16 bit, per un avrebbero la stessa codifica (11). Usando
numero di regioni pari a 256 (28) e otto bit per campione, secondo la
65.536 (216), rispettivamente. seguente regole, aumenteremmo la
Aumentando il numero di bit si aumenta accuratezza della descrizione digitale.
la qualità (granularità) della descrizione
del segnale. Valori di tensione Codifica binaria
Per meglio comprendere il problema –5/ –4,961 0000 0000
facciamo un esempio: supponiamo che la –4,961/ –4,922 0000 0001
tensione elettrica in ingresso al ADC vari –4,922/ –4,883 0000 0010
tra un valore minimo ed un massimo, ad –4,883/ –4,844 0000 0011
esempio, -5Volt/+5Volt. Se supponiamo –4,844/ –4,805 0000 0100
di usare un solo bit per rappresentare il ... ...
valore di un campione allora possiamo ... ...
associare ad un campione una 4,805/4,844 1111 1011
configurazione di bit secondo la seguente 4,844/4,883 1111 1100
regola 4,883/4,922 1111 1101
4,922/4,961 1111 1110
Valori di tensione Codifica binaria 4,961/5 1111 1111
–5/ 0 0
0/ 5 1 In questo caso, individueremmo 28 regioni
di ampiezza 10/28= 0,039 volt.
individuando 21 regioni di ampiezza Si evince, quindi, che la che la maggiore
10/21= 5 volt. qualità della rappresentazione in formato
Intuitivamente, l’uso di un solo bit dà digitale del suono si ottiene al prezzo di
origine ad una rappresentazione una maggiore quantità di informazione da
grossolana dei valori campionati dato memorizzare. Infatti, per memorizzare x
che, ad esempio, valori molto diversi tra secondi di suono con una frequenza di
loro quali 0,1 e 4,9 sarebbero campionamento di f campioni al secondo
rappresentati entrambi da un bit che vale che sono codificati usando b bit per
1. Per aumentare la qualità della campione sono necessari x*f*b bit. Il
Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 22
Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

numero di bit è dunque proporzionale alla Per meglio creare l’illusione del
frequenza di campionamento, al numero movimento, è opportuno che un certo
di bit per campione e, ovviamente, alla numero di fotogrammi al secondo
durata del suono. vengano riprodotti. La velocità di
riproduzione del filmato si misura infatti in
Esempio: Se volessimo codificare la fotogrammi al secondo (o frame per
voce umana dovremmo: second – fps).
• Campionare il segnale vocale ogni Una prima idea di codifica dei video
125 milionesimi di secondo digitali potrebbe essere di memorizzare
(producendo 8000 campioni al tutti i fotogrammi come delle immagini
secondo) per un segnale con bitmap indipendenti e poi affidare al
frequenze inferiori a 4kHz software di riproduzione (lettore
(frequenza massima della voce multimediale) il compito di riprodurre i
umana – vedi teorema di Nyquist) fotogrammi uno dopo l’altro alla velocità
• Per ogni campione si usano 8 bit decisa (ad esempio, a 24 fps). Questo
• Per cui, il numero di bit che tipo di codifica è detta codifica non
sarebbero necessari per codificare differenziale ed è estremamente costosa
ogni secondo è pari a: in termini di spazio.

8000 campioni/sec * 8 bit/campione=64000 bit Esempio: supponiamo di avere un video


di 3 minuti, con risoluzione 200x100 (le
Esempio: se volessimo codificare la risoluzioni digitali televisive o
musica di qualità CD dovremmo: cinematografiche sono di gran lunga
• Usare due registrazioni maggiori – ad esempio è comune la
corrispondenti a due microfoni risoluzione 640x480 = 307.200 px).
distinti Consideriamo una profondità del colore a
• Campionare il segnale musicale 16 bit ed una velocità di 24 fps. La
producendo 44100 campioni al dimensione di questo video sarebbe di
secondo 172 MB circa! (perché?)
• Per ogni campione si usano 16 bit
• Per cui, il numero di bit che Di seguito riportiamo le specifiche degli
sarebbero necessari per codificare standard di distribuzione broadcast più
ogni secondo è pari a diffusi:

2 x 44100 campioni/sec x 16 Formato Paese fps


bit/campione=1411200 bit PAL (Phase Europa 25
Alternating Line)
SECAM Francia 25
7. Clip digitali (Sequential Couleur
Avec Memoire)
NTSC (National USA, 23,97
I filmati video possono essere visti come Television System Giappone
delle generalizzazioni delle immagini; Committee)

infatti, la parte visuale di un filmato è una


sequenza di immagini statiche dette Questa tabella, contenente i parametri
fotogrammi (o frame). utilizzati dalle normali trasmissioni TV, è
Per semplicità, pensiamo alla utile anche in fase di cattura (ovvero
componente sonora del filmato come ad quando importiamo il video in formato
un canale audio che viene messo in digitale utilizzando una scheda hardware
sincrono con il canale video. I dati dei due apposita di acquisizione video) e di
canali possono essere memorizzati nello esportazione del filmato (che può essere
stesso file. In questa sezione ci su VHS, DV, DVD, Betacam, etc. cioè sia
concentreremo solo sul canale video. in analogico che in digitale). Infatti, è

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 23


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

importante poter memorizzare tutti i compressioni su un’intera scena. In


fotogrammi che costituiscono il filmato, ed questo senso, Motion JPEG effettua solo
è quindi opportuno sincronizzarsi sulla una compressione spaziale, mentre
velocità di ingresso (o in uscita): ad MPEG è sia spaziale che temporale.
esempio, se si vuole importare un filmato
in formato PAL (25 fps) per poi esportarlo Altri formati importanti sono: Quicktime,
in NTSC (quasi 24 fps), il sistema di proposto da Apple che è efficiente, ma
elaborazione del video digitale dovrà qualitativamente modesto; AVI, proposto
utilizzare un formato interno opportuno. da Microsoft, è invece uno standard
La codifica differenziale si basa sull’idea aperto: può supportare vari formati ed
di codificare interamente solo alcuni utilizzare anche diversi codec. (supporta
fotogrammi. Tali fotogrammi sono detti di anche MPEG2); Real Video, della Real,
riferimento (reference frame). Gli altri è un formato qualitativamente modesto,
fotogrammi vengono memorizzati solo in ma molto efficiente se usato per
parte, ed in particolare solo in quelle parti applicazioni di streaming video. Altri
che differiscono dai fotogrammi di formati che stanno prendendo piede in
riferimento adiacenti. Per trovare un contesto streaming sono anche ASF e
esempio semplice di questo discorso, WMF (Windows Media Format).
basta pensare alla ripresa di uno speaker
di un telegiornale: lo sfondo, il vestito, la 8. Conclusioni
scrivania non cambiano molto tra un
fotogramma ed un altro (se non per Chiaramente queste dispense non
qualche sfumatura o effetto luminoso): i possono essere considerate esaurienti
fotogrammi successivi al primo di una sull’argomento della codifica delle
sequenza possono contenere informazioni.
essenzialmente le informazioni relative al L’intento degli autori è esclusivamente
viso del conduttore e poco altro. legato alla divulgazione delle idee e dei
Lo standard di compressione differenziale problemi fondamentali di questa
più importante per i video digitali è MPEG disciplina. A questo scopo, consigliamo la
(Movie Picture Experts Group). Le visione del filmato “Dip – il pinguino
estensioni che indicano questo tipo di file digitale”, fruibile in streaming alla url:
sono .mpg (o anche .mpeg) ed esistono http://www.dipdigital.com
tre diversi standard appartenenti a questo Questo filmato cerca di esprimere in un
gruppo: MPEG-1, MPEG-2 ed MPEG-4. linguaggio semplice ed accattivante le
Lo standard MPEG non si deve idee che stanno dietro la codifica di
confondere con la codifica Motion JPEG, informazioni multimediali. Insomma, un
che non è differenziale e memorizza ogni video clip che spiega se stesso… buon
fotogramma come una normale immagine “divertimento”!
JPEG.

Osservazione: I DVD usano una 9. Ringraziamenti


variazione dello standard MPEG-2 per
comprimere i dati audio-video. Gli autori di queste dispense ringraziano
per i consigli e i contributi sul materiale
Sono comuni anche i termini di raccolto Francesco Borazzo, Marco
compressione spaziale e compressione Gribaudo, Vincenzo Lombardo, Matteo
temporale. La compressione spaziale Sereno, Andrea Valle e tutti quelli che
avviene essenzialmente all’interno di un abbiamo dimenticato di citare.
fotogramma, mentre quella temporale
sfrutta le componenti comuni tra
fotogrammi successivi per effettuare

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 24


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

10. Convertire il numero in base ottale


Esercizi di riepilogo 347 in base 10.
Ris. …………..
1. Quanto vale un GigaByte?
Ris. ……….. 11. Convertire il numero in base
esadecimale FF in base 10.
2. Di quanti bit è costituito un Ris. …………..
MegaByte?
Ris. ……….. 12. Convertire il numero in base
esadecimale 8B in base 10.
3. Quanti byte sono 100 KB? Ris. …………..
Ris. ………..
13. Convertire il numero 136 in base 2.
4. Abbiamo un file di 2000 byte ed un Ris. …………..
altro file di 2 KB. Chi è il più
grande? 14. Convertire il numero 136 in base 8.
Ris. ……….. Ris. …………..

5. Dobbiamo scegliere un Hard Disk 15. Convertire il numero 136 in base


in base a quante informazioni può 16.
contenere. Il negoziante ce ne Ris. …………..
propone tre, dalle seguenti
capacità: 16. Effettuare la seguente somma tra
a. 5.000.000 KB; numeri in base binaria:
b. 600 MB; 1001001 + 10011
c. 20 GB; Ris. …………..
Quale dei tre compriamo, a parità
di prezzo? 17. Quando si verifica un errore di
Ris. ……….. Overflow?
Ris. …………..
6. Abbiamo un file di testo costituito
da 3072 caratteri (spazi e 18. Abbiamo un’immagine in bianco e
tabulazione inclusa). Quanti KB nero e con risoluzione 100x250.
occupa? Quanti byte occupa questa
Ris. ………….. immagine?
Ris. …………..
7. Se un file di testo occupa 4 KB ed
è in formato UNICODE, di quanti 19. Abbiamo un’immagine con 16
caratteri è costituito (spazi inclusi)? colori e risoluzione 150x200.
Ris. ………….. Escludendo lo spazio occupato
dalla palette associata alla bitmap,
8. Convertire il numero binario quanti KB occupano i dati relativi
10010010 in base 10. all’immagine?
Ris. ………….. Ris. …………..

9. Convertire il numero binario 20. Se memorizzassimo l’immagine


100010 in base 10. dell’esercizio precedente usando
Ris. ………….. direttamente la codifica RGB,
quanto spazio occuperebbe?
Ris. …………..

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 25


Dispense per il corso di “Informatica” – Facoltà di Giurisprudenza, Università degli Studi di Torino). A.A.
2004-2005, docente: Dr. Giancarlo Ruffo

21. Consideriamo un’immagine


bitmap a 242 colori e risoluzione 23. Abbiamo un video digitale con
150x80 queste caratteristiche: 12 fps,
risoluzione 210x90, 5 minuti, 16
a. Qual è la profondità milioni di colori. Supponendo di
dell’immagine? usare una codifica non
Ris. ………….. differenziale, quale sarà la
b. Quanto spazio occuperà la dimensione finale del clip (si
palette associata a questa consideri un clip senza traccia
immagine? audio).
Ris. ………….. Ris. …………..
c. Quanto spazio occuperanno i
soli dati dell’immagine? 24. Cos’è un reference frame?
Ris. ………….. Ris. …………..
d. Quanto spazio occuperà il file
che contiene tutti i dati utili alla 25. Quanti KB occupano 3 minuti di
ricostruzione dell’immagine? dialogo dalla qualità accettabile
Ris. ………….. secondo le considerazioni fatte per
la voce umana?
22. Abbiamo un’immagine bitmap con Ris. …………..
codifica RGB che occupa 36.000
byte. 26. Quanti KB occupa una canzone di
a. Qual è la sua risoluzione? 5 minuti in qualità CD?
Ris. ………….. Ris. …………..
b. Supponiamo di comprimere
l’immagine usando un
codec GIF con palette a 256
colori. Tale compressione
riduce l’immagine di un altro
10%. Qual è la dimensione
finale?
Ris. …………..

Dispense a cura del Prof. Rossano Gaeta e Dr. Giancarlo Ruffo 26