Sei sulla pagina 1di 30

Immagini

Applicazioni MULTIMEDIALI  immagini, suoni e filmati (sono informazioni di natura CONTINUA)  DIGITALE

IMMAGINI

SCALARI o RASTER VETTORIALI

La scena è La scena è
rappresentata da una rappresentata da
MATRICE DI NUMERI FORME E LINEE

Immagini RASTER
Una fotografia è un’immagine ANALOGICA, cioè un insieme CONTINUO di informazioni (luce, colore) in due
dimensioni, che va trasformata in un’immagine DIGITALE, ovvero in un insieme DISCRETO (di parti distinte) che
possono essere codificate separatamente come numeri (DISCRETIZZAZIONE):

QUANTIZZAZIONE
CAMPIONAMENTO i pixel vengono codificati associando ad
ogni punto un numero e tale numero
DISCRETIZZAZIONE si sovrappone idealmente una griglia
corrisponde, mediante una tabella di
fittissima di minuscole celle
corrispondenza (tavolozza), a colori
denominate pixel (picture element)
diversi o a sfumature diverse di un
particolare colore

Maggiore è la “rete di cellette”, cioè più piccola è la dimensione della celletta, maggiore è il numero di pixel che viene
utilizzato per definire l’immagine

RISOLUZIONE = dimensione della griglia usata per il campionamento dell’immagine che è in diretta relazione con la
qualità con cui si rappresenta l’immagine (valori tipici sono 640×480, 1024×768 ecc.).
1
BIANCO E NERO
Ogni quadrato viene chiamato PIXEL = Unità di misura di riferimento delle immagini digitalizzate.

CODIFICA DI UN IMMAGINE = codificare i pixel in cui viene scomposta l’immagine: essa prende il nome di immagine
bitmap o RASTER.

Vogliamo codificare la seguente immagine in B\N:

Sovrapponiamo alla nostra immagine una griglia composta da righe orizzontali e verticali a distanza costante in modo
da ottenere una griglia (matrice) di quadrati, come nella figura a destra (CAMPIONAMENTO).

Per codificare un’immagine in B\N codifichiamo ciascun pixel con 1 bit:


• 0 se nel pixel il colore predominante è il bianco;
• 1 se nel pixel il colore predominante è il nero.

Per codificare l’immagine si sovrappone una griglia alla figura. Si numerano i pixel a partire da quello in basso a sx fino
ad arrivare a quello in alto a dx:

28 23 24 25 26 27 28
0 1 0 0 0 0 0
15 16 17 18 19 20 21
0 1 1 0 0 0 0
8 9 10 11 12 13 14
0 1 1 1 1 0 0
1 2 3 4 5 6 7
0 0 0 0 0 0 0

Otteniamo la sequenza bit seguente: 0000000 0111100 0110000 0100000 = 7 X 4 = 28 Bit


Effettuiamo ora il procedimento inverso, cioè dall’immagine memorizzata in bit ricostruiamo l’immagine nella griglia,
ricordando che a ogni 1 corrisponde un pixel nero mentre a ogni 0 un pixel bianco.

Per avvicinarci alla realtà del disegno è necessario ridurre le dimensioni della griglia, cioè aumentare il numero di pixel
Nella seconda immagine dimezzando il lato dei pixel otteniamo una griglia composta da 14 x 8 =112 bit ed una
immagine con una RISOLUZIONE più alta (più vicina alla realtà).

All’aumentare del numero di pixel aumenta la qualità dell’immagine.


Per DEFINIZIONE di un’immagine si intende il numero di pixel che sono utilizzati per rappresentarla:
più è alta la definizione, maggiore è la qualità dell’immagine stessa.

2
Livelli di Grigio
Assegnando un bit a ogni pixel è possibile codificare solo immagini senza tonalità, in quanto il pixel o è bianco o è nero.
Per poter rappresentare anche i grigi e quindi l’insieme dei “livelli di chiaroscuro” è necessario utilizzare più bit per
ogni pixel:

• con 4 bit (0,5 byte) possiamo codificare 24 = 16 toni di grigio (livelli di grigio);
• con 8 bit (1 byte) possiamo codificare 28 = 256 toni di grigio (livelli di grigio).

Generalmente per le immagini in scala di grigio, è sufficiente utilizzare 8 bit per pixel dato che il sistema visivo umano
difficilmente è in grado di distinguere un numero maggiore di livelli di grigio:
nelle applicazioni biomediche e/o professionali si utilizzano generalmente un numero maggiore di bit per pixel, da 10
a 12 bit per pixel.

Un’immagine 640 × 480 codificata con 256 toni di grigio quanto spazio occupa in memoria?
Spazio in memoria = 640 x 480 x 1 byte (= 8 bit) = 307.200 byte = 300 kByte

La stessa immagine codificata a 16 toni di grigio quanto spazio occupa in memoria? La metà dello spazio, infatti:
Spazio in memoria = 640 x 480 x 0,5 byte (= 4 bit) = 153.600 byte = 150 kByte

Immagini a colori
Il colore viene ottenuto da almeno tre colori di base, detti primari.

Immagine a
COLORI

RGB CMYK
(Red, Green, Bleu) (Cyan, Magenta, Yellow, blacK)

sintesi additiva File RGB più piccolo


visualizzazione a stampa
per sommare i tre del 25% rispetto allo sintesi sottrattiva
schermo stesso file in CMYK delle immagini in alta qualità
colori presenti per i suoi colori
in quanto i colori
in tipografia si
risultano più brillanti
stampa più volte lo
e saturi
stesso file,
sovrapponendo
colore per colore fino
a ottenere
l’immagine
finale

Nel metodo RGB si associano 256 livelli a ciascun colore, quindi si utilizzano 8 bit per colore, per un totale di 24 bit (3
byte):
Quanto spazio occupa un’immagine 640 x 480 a colori?
• 8 bit (1 byte) per il rosso [0-255];
640 x 480 x 24 bit (3 byte) = 921.600 byte = 900 kByte
• 8 bit (1 byte) per il verde [0-255];
• 8 bit (1 byte) per il blu [0-255]. Quindi 3 volte un’immagine a 256 livelli di grigio

In questo modo è possibile produrre fino a 224 = 16.777.216 milioni di colori sullo schermo.
R G B
Bianco = 255 255 255
Nero = 0 0 0
3
PALETTE
Immagine 3 x 3 composta da 4 colori RGB:

9 8 7

YELLOW BLEU BLACK

6 5 4

YELLOW BLEU BLEU

3 2 1

BLACK GREEN GREEN

I colori RGB si codificano con 24 bit x pixel ---> l’immagine occupa: 3 x 3 x 24 bit = 216 bit
Usando la PALETTE (Tavolozza) si associa a ciascuno dei 4 colori una codifica a 2 bit come segue:

PALETTE
BLACK 0 0 0 00 00 00 00
BLUE 26 16 237 1A 10 ED 01
YELLOW 242 172 3 F2 AC 03 10
GREEN 41 229 22 29 E5 16 11
R G B R G B

Utilizzando la PALETTE l’immagine si può codificare come segue:


[11 11 00 01 01 10 00 01 10 --> 18 bit]
Lo spazio occupato si riduce di: 18 bit + [lo spazio per memorizzare la palette = 4 x 24 bit = 96 bit] = 114 bit

Un’immagine codificata con la seguente tecnica si dice: IMMAGINE A COLORI INDICIZZATI

Con una PALETTE di 256 colori servono 8 bit per codificare ciascun colore invece di 24 bit (3 byte) ottenendo una
riduzione di 1/3 dell’occupazione di memoria.
NB. Si ha cmq bisogno di uno spazio di 256 x 3 byte = 768 byte per memorizzare la palette.

4
Trasparenza
La TRASPARENZA è una caratteristica dell’immagine che indica se è possibile vedere attraverso l’immagine degli
elementi grafici posti dietro di essa.

TRASPARENZA

SEMPLICE Strato ALPHA (Blending)


Si applica ad un immagine si aggiunge per ogni pixel
indicizzata definando fra la dell'immagine un byte che
paletta dei colori un colore definisce il livello di trasparenza
trasparente dell'immagine [da 0 a 255]

Si definisce cioè una codifica ARGB (Alpha, Red, Green, Bleu) per cui per ogni pixel servono 32bit.

Quanto spazio occupa un’immagine 640 x 480 a colori trasparente (ARGB)?


640 x 480 x 32 bit (4 byte) = 1.228.800 byte = 1.200 kByte

Codifica bitmap e profondità di colore


Codifica bitmap = rappresentazione di un’immagine mediante la codifica dei singoli pixel

Profondità di codifica o di colore = n.ro di bit utilizzati per codificare il colore di un singolo pixel

Codifica della profondità:

• bitmap B\N --> 1 bit per ogni colore di un singolo pixel


per cui in ogni pixel cui possiamo definire 21=2 colori (Bianco e Nero)
• bitmap 16 colori o 16 livelli di grigio --> 4 bit per ogni colore di un singolo pixel
per cui in ogni pixel cui possiamo definire 24=16 colori
• bitmap 256 colori o 256 livelli di grigio -->8 bit per ogni colore di un singolo pixel
per cui in ogni pixel cui possiamo definire 28=256 colori
• Colormap o paletta dei colori --> si definisce una PALETTE o Tavolozza dei colori contenente i colori che ci
possono essere nell’immagine ad ognuno dei quali è associato un indice e il n.ro di bit riservato alla codifica di
ogni indice della paletta che determina il n.ro di colori che possono essere utilizzati.
ES. Se la PALETTE è a 256 colori posso utilizzare 8 bit per rappresentare ciascun colore della palette + i bit
necessari a memorizzare la palette 256 x 3 byte = 768 byte
• True color o Colori Reali -->24 bit per ogni colore di un singolo pixel
per cui in ogni pixel cui possiamo definire 224=16.777.216 milioni di colori
• True color trasparente -->32 bit per ogni colore di un singolo pixel
per cui in ogni pixel cui possiamo definire
224=16.777.216 milioni di colori + 28=256 livelli di trasparenza

5
Definizione e dimensione delle Immagini
Definizione di un Immagine = numero di punti (pixel) che costituiscono l’immagine ottenuta dal prodotto delle righe
e colonne della griglia di campionamento dell’immagine.

NB. Più alta è la definizione maggiore è la qualità dell’immagine

In Internet, nelle operazioni di download e upload, (e anche per le fotocamere digitali), la dimensione dell’immagine
viene spesso indicata in megapixel (= 1 milione di pixel) MP (invece che in MByte) che si calcolano moltiplicando i
pixel in larghezza per i pixel in altezza.

ES. Una foto ha 4000 pixel di larghezza per 3000 pixel in altezza in totale occuperà:
4000 x 3000 = 12.000.000 pixel = 12 MP

Peso di un’immagine
Peso di un’immagine = si intende l’occupazione in memoria di un’immagine

Per calcolare il peso di un’immagine è necessario contare il numero di pixel che contiene (dimensione dell’immagine)
e la loro profondità di colore (=n.ro di bit utilizzati per codificare il colore di un singolo pixel).

ES. Calcoliamo il PESO di un’immagine 640 x 480:

in True color.
n.ro Pixel = 640 x 480 pixel
peso di ogni pixel (profondità di colore di un’immagine in True Color) = 24 bit/8 = 3 byte
peso dell’immagine = 640 x 480 x 3 byte = 307.200 x 3 byte = 921.600 byte/1024=900 Kbyte

in B\N (1bit)
peso dell’immagine = 640 x 480 x 1 bit= 307.200 bit/8 = 38.400 byte/1024 = 37,5 Kbyte

in 16 colori (4bit)
profondità di colore = INTmax log216 = 4 bit = 0,5 byte
peso dell’immagine = 640 x 480 x 0,5 byte = 307.200 x 0,5 byte = 153.600 byte/1024 = 150 Kbyte

in 256 colori (8bit)


profondità di colore = INTmax log2256 = 8 bit = 1 byte
peso dell’immagine = 640 x 480 x 1 byte = 307.200 byte /1024 = 300 Kbyte

in 65.000 colori (16bit)


profondità di colore = INTmax log265.000 = 16 bit = 2 byte
peso dell’immagine = 640 x 480 x 2 byte = 614.400 byte/1024 = 600 Kbyte

6
Risoluzione grafica
Il pollice (inch) è un’unità di misura anglosassone che corrisponde a 2,54 cm. Viceversa, 1cm = 0,39370 inches
• 1 inch = 2,54 cm --> 1cm = 0,39370 inches (circa 0,4 inches)
• 10 inches = 25,4 cm
La risoluzione grafica di un’immagine rappresenta la sua qualità ovvero il numero di pixel che compongono
l’immagine. Con "4K" si indicano usualmente due risoluzioni distinte, sebbene vicine fra loro: la risoluzione 4096×2160
pixel (ossia la "4K" propriamente detta), nata in ambito cinematografico, e la risoluzione 3840×2160 pixel (ossia Ultra
HD propriamente detta) nata in ambito televisivo. Nel linguaggio comune si confondono le denominazioni, per cui
quando si indica uno schermo 4K, normalmente si intende uno schermo Ultra HD
Si definisce poi la densità di pixel:

• DENSITÀ a SCHERMO in PPI (Pixel Per Inches)


PPI = n.ro Pixel lungo la diagonale (pixel)/lunghezza della diagonale (inches)
I PPI rappresentano, dunque, la densità di pixel presente per ogni inch (pollice)

A parità di PIXEL
𝑵𝑵. 𝒓𝒓𝒓𝒓 𝑷𝑷𝑷𝑷𝑷𝑷𝑷𝑷𝑷𝑷(= 𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄)
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷à (𝑃𝑃𝑃𝑃𝑃𝑃) =
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷
aumentare la risoluzione vuol dire ridurre la diagonale
ovvero la dimensione dell’immagine

A parità di DIMENSIONE dell’immagine


𝑁𝑁. 𝑟𝑟𝑟𝑟 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑙𝑙
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷à (𝑃𝑃𝑃𝑃𝑃𝑃) =
𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫𝑫 (= 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐)

Aumentare la risoluzione vuol dire aumentare il numero di


pixel

Possiamo quindi affermare che risoluzione e dimensione sono inversamente proporzionali.

Nella tabella che segue riportiamo la relazione tra occupazione di memoria, grandezza e risoluzioni di alcune
situazioni tipiche

Non dimentichiamoci, però, che abbiamo un limite: la risoluzione dei nostri occhi; l'occhio umano, in realtà, a una
distanza di circa 40 cm da un display non riesce a scandire bene un'immagine:

i nostri occhi, infatti, hanno una definizione che non va oltre i 270 PPI e solo se ci avviciniamo al display, la risoluzione
dei nostri occhi arriva al massimo a valori compresi tra i 320 e i 340, mentre se ci allontaniamo a una distanza di 3
metri non arriva a 100 PPI.

Per questo motivo in alcuni dispositivi i pixel non sono visibili singolarmente perché la densità è davvero altissima
7
• DENSITÀ di STAMPA in DPI (Dot Per Inches)

DPI = n.ro di punti stampati (dot) x unità di superficie (inches)


I DPI rappresentano, dunque, la densità di punti stampati presente per ogni inch (pollice)
orizzontale o verticale

ES. Una risoluzione di 300 DPI significa che in un inch (pollice) orizzontale [2,54 cm] sono presenti 300 colonne di dots
(punti) e 300 righe di dots (punti) in un inch verticale, ovvero 300 x 300 = 90.000 dots per inch quadrato.

A parità di dimensione stampata, maggiore è il numero di DPI maggiore è la risoluzione e la nitidezza dell’immagine
stampata.

NB. La risoluzione dell'immagine da stampare non è di solito superiore a 300 DPI in quanto, come detto
precedentemente, è legata alla risoluzione dell'occhio umano: maggiore è la distanza di lettura della stampa, minore
è la risoluzione richiesta all'immagine.

La tabella seguente riporta alcuni valori di risoluzione necessari per ottenere una stampa di buona qualità:

DOTS

ES. Per un foglio A4 = 29,7 x 21 cm = 11,7 x 8,27 inches -- > 11,7 x 300 = 3508 dots -- > 3508 x 2480 dots
8,27 x 300 = 2480 dots

Supponiamo di voler stampare una foto su di una rivista ad alta qualità: come si fa a dire se una foto è "piccola" per
essere stampata ad altissima definizione 600 DPI?
Per poter fare un'affermazione del genere bisogna fissare almeno due parametri:
1 la dimensione di stampa;
2 la risoluzione della stampante.

Dopo aver definito la dimensione desiderata di stampa, per esempio 30x40 cm (circa 12×22 inches), configuriamo la
stampante a 600 DPI e facciamo due calcoli:
in un singolo pollice quadrato (area) ci saranno 600×600 dots = 360.000
per la superficie di 12×22 inches quadrati =264, avremo quindi: 360.000 x 264 = 95.040.000=95MP

8
Possiamo fare il discorso "a rovescio", avendo cioè un'immagine digitale e volendo scegliere la dimensione ottimale di
stampa, otteniamo la seguente tabella:

ES. 1MP = 1280 x 768 pixel = 1280/72 x 168/72 = 17,78 x 10,7 inches = 45 x 27 cm

Compressione di un’immagine
Come abbiamo visto è abbastanza semplice calcolare l’occupazione su disco di un’immagine:

SENZA UTILIZZO DI PALETTE


Immagine 640 x 480 pixel a 256 colori (1 byte per pixel) -- > 640 x 480 x 1 byte = 307.200 byte /1024 = 300 Kbyte
Immagine 640 x 480 pixel a 65.000 colori (2 byte per pixel) -- > 640 x 480 x 2 byte = 614.400 byte/1024 = 600 Kbyte
Immagine 640 x 480 pixel a True Color (3 byte per pixel) -- > 640 x 480 x 3 byte = 307.200 x 3 byte = 921.600
byte/1024=900 Kbyte

CON PALETTE
Immagine 640 x 480 pixel a True Color (3 byte per pixel) + Palette a 256 colori -- >

Per la palette (3 byte per ciascun colore della palette) --> 256 x 3byte =768 byte (8 bit (1 byte) per codificare ogni riga
della palette) --> (768 x 1 byte) = 768 byte
8 bit (1 byte) per codificare ogni pixel dell’immagine --> (640 x 480 x 1byte) =307.200 byte

Quindi: Immagine 640 x 480 pixel a True Color (3 byte per pixel) + Palette a 256 colori -- >307.200 + 768 =300 Kbyte

Osserviamo quanto sia notevole il risparmio di memoria a parità di numero di colori per pixel in caso di utilizzo di una
palette di colori (900 KB contro 300 KB): ma dobbiamo sottolineare come

• nel primo caso (TRUE COLOR) si utilizza un range di 16 milioni di colori per ogni pixel mentre
• nel secondo caso (PALETTE) un range di 256 colori scelti come sottoinsieme di 16 milioni.

Per ovviare alla grande occupazione di memoria si sono sviluppati formati compressi in grado di ridurre notevolmente
il numero di kbyte utilizzati dalle immagini.
Ci sono due metodi fondamentali di compressione:

• LOSSLESS: senza perdita di informazione;


si applica a qualunque tipo di informazione rappresentata in binario e si basa sul riconoscimento delle
sequenze di bit che si ripetono con maggiori e minori frequenze: le sequenze più frequenti vengono sostituite
con codifiche più corte appositamente codificate, in modo da risparmiare spazio

Questa tecnica è utilizzata nei compressori WinZIP, WinRAR e nella rappresentazione delle immagini in
formato GIF (Graphics Interchange Format), PNG (Portable Network Graphics) e TIFF (Tagged Image File
Format).

NB. Il formato GIF è particolarmente utilizzato per le applicazioni in Internet:

• grandi dimensioni
GIF • poco spazio
rapide visualizzazioni
9
GIF ANIMATE: Un file GIF può contenere più immagini visualizzate da alcuni software (i browser) in sequenza
che permettono di ottenere semplici animazioni (GIF animate) e uno sfondo trasparente.

Purtroppo questa codifica ha dei limiti:


o le immagini GIF possono utilizzare al massimo 256 colori differenti
o la stampa di tali immagini è di pessima qualità.

NB. NON ESISTE UN ALGORITMO DI COMPRESSIONE CHE FUNZIONI SEMPRE, CIOÈ CHE RIDUCA LE
DIMENSIONI DELL’IMMAGINE IN TUTTI I CASI

I principali algoritmi di compressione sono:

RLE (Run-Length-Encoding): utilizzato esclusivamente per la compressione di immagini raster sostituisce ogni
sequenza di byte di valore identico con due soli byte, ovvero il numero di byte ripetuti e il relativo valore;

R G B R G B R G B
BLUE 26 16 237 1A 10 ED 00011010 00010000 11101101
24 BIT

3 BLUE (RGB)
0011 00011010 00010000 11101101
4 BIT 24 BIT

LZ (Abraham Lempel e Jakob Ziv): utilizzato per la compressione di qualunque tipo di documento binario,
memorizza in una tabella (dizionario) le configurazioni di valori che si ripetono frequentemente nella sequenza
originaria, per poi sostituire ogni loro occorrenza con il relativo indirizzo nel dizionario;

HUFFMAN: utilizzato principalmente per il testo, usa una codifica a lunghezza variabile dove alle lettere con
frequenza maggiore viene associato un numero inferiore di bit rispetto a quelle con bassa frequenza,
ottenendo un file con lunghezza inferiore ai 320 bit.

10
• LOSSY: con perdita di informazione, ed è il più utilizzato.
si applica generalmente a dati multimediali, in quanto sfrutta le caratteristiche della biologia dei sistemi
sensoriali umani: in base ai limiti delle capacità percettive dell’uomo è possibile alterare alcune
caratteristiche del segnale originario, al fine di ridurre le dimensioni della sua rappresentazione binaria,
mantenendo tuttavia una qualità accettabile.

ES. la retina ha una maggiore insensibilità alle variazioni di luminosità rispetto a quelle cromatiche: questo
permette di trascurare differenze sufficientemente piccole di colore tra pixel vicini riducendo la quantità di
sfumature e quindi, di conseguenza, la dimensione dell’immagine.

Il formato JPEG (Joint Photographic Expert Group) sfrutta questa tecnica, e serve per visualizzare immagini
con più di 256 colori, o di considerevoli dimensioni.

NB. Il formato JPEG ha:

o resa ottima su immagini con molti sfumati (fotografie, incarnati, paesaggi), mentre

o se l'immagine ha un forte contrasto o passaggi bruschi di colore si possono notare dei difetti

Il processo prevede 4 passi:


l'immagine viene dapprima trasportata in un altro spazio colore passando dal modello RGB (o altro) a YUV
mediante l'algoritmo DCT (trasformata discreta del coseno), che codifica Crominanza (colore, 2 valori) +
Luminanza (luminosità, 1 valore)

L'occhio umano è infatti più sensibile alla luminosità che al particolare colore, quindi nei passi successivi si
può "perdere" in crominanza senza danni e si comprime il risultato mediante una compressione lossless
(HUFFMAN).

Questa tecnica di compressione viene utilizzata anche per codificare immagini in movimento nei formati MPEG
(Moving Picture Experts Group) e WMV (Windows Media Video).

11
Immagine vettoriale
Una particolare rappresentazione delle immagini è quella vettoriale (vector): utilizzata particolarmente per immagini
di tipo geometrico, o per immagini riconducibili a insiemi di forme (punti, linee, rettangoli, cerchi), è caratterizzata dal
fatto che non viene memorizzata l’immagine ma il procedimento per costruirla, conseguendo il doppio vantaggio di
diminuire enormemente l’occupazione di memoria e di ottenere immagini facilmente ridimensionabili.

ES. l’immagine a fianco viene costruita a partire da punti e dal loro


congiungimento mediante funzioni matematiche: non vengono
memorizzati cioè tutti i pixel, ma solo quelli evidenziati.
In questo modo le immagini risultano essere svincolate dalla risoluzione
e possono essere utilizzate con qualsiasi dimensione senza alcuna
perdita di qualità o aumento di peso.

Ogni oggetto è quindi codificato attraverso un identificatore (per esempio polyline, circle ecc.) e alcuni parametri quali
le coordinate del centro e la lunghezza del raggio (per la circonferenza) o le coordinate dei vertici (per il poligono)

Ricordiamo i seguenti formati:


• DXF (Drawing Exchange Format): strumenti di disegno tecnico;
• DWG: utilizzato da AutoCAD;
• CDR: utilizzato da Corel Draw;
• AI (Adobe Illustrator);
• WMF (Windows MetaFile);
• SVG (Scalable Vector Graphics): nativo in quasi tutti i browser moderni.

Rasterizzazione o rendering = Il processo di visualizzazione di un’immagine vettoriale (cioè la trasformazione da una


codifica matematica a una codifica raster)

Riassumendo possiamo individuare le principali differenze tra la modalità raster e quella vector in:

RASTER VECTOR
DIMENSIONE Occupano più memoria Occupano meno memoria
SCALABILITÀ Se ridimensionate si perde in qualità Ridimensionamento senza perdita di
(es. sgranano) qualità
CARATTERISTICHE VISIVE Forme complesse e contorni sfumati Forme semplici con aree e colori piatti
CONVERSIONE Non sempre possibile Sempre possibile

12
Suoni e Immagini in movimento (animazioni e filmati)
Per indicare i mezzi di comunicazione di massa viene da tempo utilizzato il termine latino media, plurale di medium,
che significa "stare nel mezzo tra colui che trasmette e colui che riceve".

I media possono essere classificati in tre grandi categorie:


• suoni;
• immagini ferme;
• immagini in movimento (animazioni, filmati).

NB. L'integrazione di più media nello stesso dispositivo prende il nome di multimedialità

La comunicazione multimediale è caratterizzata dall'uso integrato di tecnologie dell'informazione e della


comunicazione che utilizzano media diversi, linguaggi diversi, strategie comunicative diverse.

In ambito informatico possiamo ricordare i settori dove vengono utilizzate applicazioni multimediali:

• intrattenimento: videogames, dispositivi audio mobili ecc.;

• istruzione e formazione: tutorial e filmati per l'autoapprendimento, presentazioni;

• web: presentazioni più accattivanti;

• ufficio/comunicazione: social media, scambio di informazioni tra reparti.

Le immagini in movimento
Le immagini in movimento vengono rappresentate attraverso sequenze di immagini fisse (FRAME) visualizzate a una
frequenza sufficientemente alta da consentire all'occhio umano di ricostruire il movimento.

FRAME (FOTOGRAMMA) => una singola immagine o disegno impiegato nella realizzazione di un'animazione.

Come per le immagini, anche per i filmati è necessario convertire in digitale ogni singolo frame per poterlo
memorizzare in digitale e quindi riconvertirlo in analogico per poi riprodurlo su uno schermo.

È possibile digitalizzare filmati provenienti da telecamere o da un sintonizzatore TV utilizzando apposite schede e


software video, e successivamente ricostruire le animazioni di sintesi utilizzando specifici programmi.

Una seconda modalità per realizzare animazioni è quella di produrre sequenze di disegni, tecnica utilizzata nei cartoni
animati e nei videogames.

Lo spazio occupato da un'animazione dipende da molti fattori, tra i quali il più importante è il FRAMERATE:

FRAMERATE = n.ro di frame per secondo

13
Scomponendo un movimento in un insieme di frame successivi in modo che ciascun frame si sovrapponga al
precedente per un tempo inferiore a quello di persistenza dell’immagine sulla retina dell’occhio umano (tempo
fisiologico di circa 1/10 di secondo) si ottiene l’effetto che ciascuna immagine si sovrappone alla precedente prima di
scomparire dalla retina per cui si ottiene una visione continua del movimento.

Nel 1891 Thomas Edison progettò il cinetoscopio dove le immagini si riproducevano alla frequenza di 48 fps (frame al
secondo)

Nel 1895 i fratelli Lumière, nel loro cinematografo, ridussero tale numero a 16 fps (frame al secondo)

Il reparto di animazione della Disney che negli anni Venti del secolo scorso definì le regole per la realizzazione
dell'animazione dei disegni utilizzando per i suoi cartoni un framerate di 24 fps (frame al secondo).

Più elevato è il framerate, migliore è la "qualità di movimento" del filmato:

Attualmente il framerate varia da 4 fps (frame) a 40 fps (moviole).

Generalmente si adottano I seguenti framerate:


• TV = 24 fps
• WEB= 15 - 10 fps

Per un filmato di qualità incidono, oltre al numero di frame, le seguenti proprietà:

• la dimensione dei frame;

• il numero di colori;

• la qualità dell'audio.

Esistono diversi formati video: i più diffusi sono AVI (Audio Video Interleave), MPEG (Moving Picture Experts Group)
e MOV (abbreviazione di movie), che si differenziano per la modalità, le caratteristiche di acquisizione e la tecnica di
compressione utilizzata.

I suoni digitali
Oltre alle immagini, è possibile rappresentare in modo digitale anche il suono: anche per esso deve essere effettuata

• una prima fase di conversione che trasforma il segnale analogico tipico dell'onda sonora in un segnale digitale,

• e successivamente si utilizzano codifiche particolari per la memorizzazione della musica digitale così ottenuta.

Il suono è un segnale analogico bidimensionale, cioè ha un'ampiezza in funzione del tempo.

I suoni possono essere digitalizzati attraverso due diversi passaggi:


• campionamento;
• quantizzazione.

14
Il segnale analogico raggiunge un trasduttore (per esempio un microfono) che trasforma l'onda sonora in un segnale
elettrico (analogico)

e il campionatore effettua una discretizzazione, cioè a intervalli di tempo T regolari preleva campioni del segnale x(t).

Il valore 1/T è detto frequenza di campionamento e rappresenta il numero di campioni del segnale x(t) acquisiti
nell'unità di tempo.

Successivamente il quantizzatore converte il segnale acquisito dal campionatore in un segnale digitale introducendo
sempre una perdita di informazione, che può essere definita sulla base del numero di bit a disposizione per
rappresentare il valore letto (vengono definiti livelli di quantizzazione).

ES. Supponiamo che le tre situazioni in cui si trova il segnale durante il processo di digitalizzazione siano le seguenti:

Se introduciamo 16 livelli di quantizzazione, rispettivamente 8 per la semionda positiva e 8 per la semionda negativa.

I 16 livelli di quantizzazione sono codificati con 4 bit: naturalmente all'aumentare del numero di bit aumenta il
dettaglio e quindi la qualità del segnale codificato

Se campioniamo con una frequenza di 50 kHz con 16 livelli di quantizzazione (ovvero con 16 bit):
BITRATE= 50.000 (Hz) x 16 (bit) = 800.000 bit/s, cioè 800 kbit/s

Naturalmente all'aumentare della frequenza di campionamento aumenta il numero di informazioni lette così come
la dimensione in bit e quindi l'occupazione di memoria:

la frequenza minima di campionamento cioè il numero minimo di "letture" al secondo che permette di non perdere
segnale utile, è dettata dai teoremi di Shannon.

Il quantizzatore, invece, introduce sempre una perdita di informazione, che per essere contenuta richiede l'aumento
del numero dei livelli di quantizzazione.
15
Il formato WAV
Il formato WAV (contrazione di WAVEform audio file format) è lo standard utilizzato nei CD audio (Compact Disc
Digital Audio, CDDA), per la registrazione audio digitale su compact disc:

il valore di campionamento è di 44.100 Hz con quantizzazione su 16 bit, quindi per ogni campione si possono avere
216 valori di codifica con 44.100 campioni per ogni secondo di segnale.

Dato che in stereofonia si utilizzano due canali audio, per ogni secondo vi sono 88.200 campioni, ognuno dei quali
richiede 16 bit di codifica:

BITRATE = 16 bit × 88.200 Hz = 1.411.200 bit/s, circa 1,4 Mbit per secondo.

ES. Calcoliamo la dimensione di un supporto per memorizzare un'ora di musica in digitale.

1 H (Hour) = 3600 seconds, se il BITRATE di un CD AUDIO= 1,4 Mbit/s


sono necessari 1,4 Mbit/s × 3600 s = 5040 Mbit = 630 Mbyte

questa motivazione è alla base della realizzazione dei CD-ROM, ovvero consentire di memorizzare un'ora di musica.

Oggi un CD-ROM ha una capacità di circa 700 MB, che equivalgono a quasi 70 minuti di registrazione audio.

700 Mbyte= 5600 Mbit Per cui 5600 (Mbit) / 1,4 (Mbit/s) =4000 s = circa 70 min (1 min= 60 s)

Il formato MP3
Il formato di compressione Mp3 (implementazione del MPEG-1 Audio Layer III data) è particolarmente adatto per i
file audio e presenta un rapporto di compressione altissimo che riduce di 12 volte l'ingombro dei file audio senza
alterarne la qualità.

Venne presentato per la prima volta negli anni ’90 ed ebbe subito successo specialmente in internet.

L'algoritmo Mp3 si basa, tra gli altri, sul concetto di soglia di udibilità:
l'uomo percepisce i suoni entro un determinato spettro di frequenza, al di sotto e al di sopra del quale i suoni non
vengono percepiti, si riesce a ottenere un notevole risparmio nella lunghezza dei fi le eliminando da un brano
musicale i suoni non udibili.

Una BITRATE = 128 kbit/s è ritenuta di qualità accettabile per il formato Mp3 qualità che si avvicina a quella di un CD

Il formato MIDI
Il MIDI (Musical Instrument Digital Interface) è uno dei formati in cui è possibile salvare la musica in forma digitale e
con questo nome si indica sia il protocollo di trasmissione sia l'interfaccia hardware che serve a veicolare la
trasmissione.

Nasce nel 1983 per consentire la comunicazione e lo scambio di dati tra strumenti musicali di marche diverse,
impensabile sino ad allora: tutti i sistemi analogici erano tra loro incompatibili e poco precisi.

L'avvento del personal computer ha favorito lo sviluppo di questo protocollo che, essendo in formato digitale, si presta
naturalmente allo scambio di informazioni musicali tra strumenti, sintetizzatori musicali (reali e virtuali) e computer.

16
Proprio per la sua natura digitale, il file MIDI ha dimensioni molto contenute:

se confrontato con un file audio WAV di 30 MB il corrispondente file MIDI occupa 30 KB.

Nel file MIDI non è presente il suono (timbro), ma solamente il codice dello strumento e un numero che individua
la nota e il suo valore musicale.

La riproduzione avviene attraverso un sintetizzatore MIDI che genera i suoni corrispondenti alle informazioni che
riceve.

Non è presente il cantato ma generalmente viene fatto eseguire da uno strumento solista oppure da qualche
emulatore che genera semplicemente "ooooh" oppure "aaaah", perciò un'ora di musica può occupare solamente
circa 500 KB.

La qualità di riproduzione dipende esclusivamente dal sintetizzatore (scheda audio) del computer che riproduce il
suono.

Un aspetto molto pratico dell'utilizzo del protocollo MIDI è quello che ne viene fatto negli strumenti musicali i quali
possono "fregiarsi" del titolo di General MIDI. Il General MIDI è solo un insieme di specifiche che uno strumento deve
rispettare per poter esporre il simbolo del General MIDI

È possibile creare un file MIDI con i suoni General MIDI in modo molto semplice utilizzando un programma come
Cubase: basta avere confidenza con la notazione musicale o almeno con i concetti di durata e intensità delle note e di
tempo metronomico.

17
I formati Audio
I formati audio vengono generalmente compressi, e in base al livello di compressione esercitato possono
essere distinti in:
• lossy (con perdita di qualità audio);
• loseless (senza perdita di qualità audio).

I principali formati audio lossy sono:

• Mp3 (mpeg 1 layer 3) è un formato che taglia alcune frequenze non udibili dall’orecchio umano
ed effettua campionamento e quantizzazione con bitrate tra 128kbit/s e 320kbit/s.

• WMA (Windows MediaAudio) è un formato che riduce il formato mp3 di circa il 20%.

• AC3 (Dolby Digital) è un formato di buona qualità che viene utilizzato nei DVD con una bitrate
fino a 640kbit/s.

• AAC (Advanced Audio Coding) è un formato che utilizza un bitrate a 128kbit/s, corrispondente
a un mp3 a 192kbit/s.

I principali formati audio loseless sono:

• FLAC (Free Lossless Audio Codec) è un formato che può raggiungere compressioni del 50%.

• WAV (WAVe form audio format) è utilizzato principalmente per i CD e DVD audio, utilizza un
campionamento a 44.1kHz e una quantizzazione a 16bit.

• APE (Monkey Audio) è un formato che permette di ridurre di circa il 50% lo spazio occupato
dalla nostra musica (in certi casi anche di più).

18
ESEMPIO RIPILOGATIVO
Vogliamo calcolare l'occupazione di memoria di un filmato di un'ora non compresso

Video: frame in True color da 1920 x 1080 pixel e framerate = 24 fps

Audio: registrato con un sistema Dolby TrueHD in cui l'audio è codificato con 8 canali, con frequenza di
campionamento 96 kHz codificati su 24 bit (livelli di quantizzazione).

SOLUZIONE
Per calcolare l'esatto spazio di memoria, è necessario calcolare dapprima la memoria occupata dal video, alla quale
aggiungere poi quella relativa alla parte audio.

VIDEO
per ogni secondo di video servono
BITRATE = (1920 × 1080 × 3) byte × 24 fps ~ 149 Mbyte/s [bitrate = 149 (Mbyte/s) × 8 ~ 12 Gbit/s],
per un'ora (3600 s) otteniamo 149 Mbyte/s × 3600 s = 536.400 Mbyte = 536 GB di spazio necessario

AUDIO
per ogni secondo di audio servono
BITRATE = 24 bit × 96.000 Hz × 8 canali ≅ 18.4 Mbit/s
per un'ora di audio servono quindi 18,4 (Mbit/s) × 3600 (s) = 66240 Mbit = 8280 Mbyte ≅ 8 GB di spazio

In totale il filmato occupa 536 GB + 8 GB = 544 GB

19
Operazioni aritmetiche fra numeri binari senza segno
Negli strumenti che elaborano dati binari è necessario eseguire le operazioni algebriche sui singoli byte binari.
Nel seguito vedremo le quattro operazioni classiche della matematica e l’operazione di complemento, tipica dei
sistemi binari.

SOMMA SOTTRAZIONE PRODOTTO


B1 B2 R B1 B2 R B1 B2 R
0 0 0 0 0 0 0 0 0
0 1 1 0 1 1 PRESTITO =1 0 1 0
1 0 1 1 0 1 1 0 0
1 1 0 RIPORTO =1 1 1 0 1 1 1

Addizione
Il risultato della somma tra due bit di valore unitario è un bit di valore 0 e, contemporaneamente, si genera un riporto
che viene indicato in un particolare bit dei microprocessori (bit di carry).

Per sommare due numeri procediamo come per l’operazione tra numeri decimali, disponendo i numeri in colonne ed
eseguendo da destra verso sinistra la somma dei singoli bit, aggiungendo il riporto quando questo viene generato.

ESEMPIO

20
NOTA BENE --- (OVERFLOW)
I microprocessori eseguono queste operazioni “istantaneamente”, cioè con tempi dell’ordine di qualche nanosecondo
(1 nano secondo = 10–9 secondi) con stringhe di 8, 16 o 32 bit.

Vediamo come viene generato un carry eseguendo operazioni su 8 bit (byte): quando il risultato dei due addendi è
maggiore di 255 (massimo valore rappresentabile con 8 bit), si deve generare un riporto per il bit più signifcativo
(l’eventuale nono bit).

Il valore 010101102 corrisponde a 8610 ma gli addendi 23210 e 11010 avrebbero dovuto dare come risultato 34210, cioè
1010101102:
BIT PIÙ SIGNIFICATIVO

23210 + 11010 = 34210 (1010101102) ≠ 8610 (010101102)

si è perso il bit più signifcativo, cioè 28 = 256, che sommato a 86 dà come risultato proprio:

25610 + 8610 = 34210,

che era atteso.

Quando i microprocessori eseguono le somme che generano un OVERFOW pongono al valore 1 un particolare bit, il
bit di carry, per segnalare questa situazione.

21
Sottrazione
Riportiamo nella tabella della verità rappresentata a lato le quattro possibili combinazioni che otteniamo dalla
sottrazione tra due singoli bit:
SOTTRAZIONE Il secondo caso, cioè 0 – 1, non può essere fatto su singoli bit, ma in una
sottrazione tra byte o multipli di byte, in modo da poter prendere un prestito
B1 B2 R
dal bit di sinistra.
0 0 0
Dobbiamo anche ricordare che le nostre operazioni sono fatte su numeri privi
0 1 1 PRESTITO =1
di segno, cioè tra numeri che consideriamo in valore assoluto, e che non
1 0 1 possono dare un risultato negativo.
1 1 0

ESEMPI

7 – 3 =4
Decimale In questo caso non abbiamo utilizzato
7- nessun prestito

3
___=
4

5 – 3 =2
Decimale COL b0 (BIT MENO SIGNIFICATIVO)
Entrambi hanno valore 1, quindi il risultato è
5-
0.
3 COL b1
Il secondo bit del minuendo è uguale a 0,
___=
mentre il sottraendo è uguale a 1: avrò
2 bisogno di prelevare un prestito dal bit di
posizione due b2.

Il risultato della sottrazione del bit b1 è


0 – 1 = 1.
COL b2
Eseguiamo ora la sottrazione del bit b2: non
abbiamo nulla nel sottraendo, ossia 0, ma
abbiamo il prestito dato al bit b1, quindi il
risultato è 1 – 1 – 0 = 0.

Il risultato della sottrazione è il numero


binario 0102 = 210.

22
Vediamo un esempio più complesso dove eseguiamo 14 – 3 =11, e riportiamo i singoli passi in sequenza:

Il risultato della sottrazione è il numero binario 10112 = 1110.

NOTA BENE (OVERFLOW)


Se il minuendo è più piccolo del sottraendo viene generato un ERRORE.
Vediamo un esempio, eseguendo un’operazione su 8 bit:

10410 – 12210 = -18 (eseguiamo operazioni solo su numeri positivi):

Il valore 111011102 ottenuto corrisponde a 23810 ed è il risultato della sottrazione tra 36010 e 12210.

36010 - 12210 = 111011102

Il numero 36010 in binario è 1011010002: si è quindi aggiunto un bit più significativo al minuendo, cioè 28 = 256,
che sommato a 10410 dà come risultato proprio

25610 + 10410 = 36010.


Quando i microprocessori eseguono le sottrazioni che generano un OVERFOW, pongono al valore 1 sempre il bit di
carry per segnalare questa situazione, che in questo caso ha il significato di prestito (BORROW).

La sottrazione che abbiamo eseguito prende il nome di SOTTRAZIONE DIRETTA:


esiste una seconda modalità per eseguire la sottrazione che utilizza la rappresentazione dei numeri negativi in
complemento a 2, come vedremo nella prossima lezione.

23
Prodotto
La tabella della verità a lato riporta le quattro possibili combinazioni che otteniamo dal prodotto tra due bit:

PRODOTTO Il procedimento è identico alla moltiplicazione tra numeri decimali:


B1 B2 R
si parte dalla cifra meno significativa del moltiplicatore e si moltiplica per tutte le cifre
0 0 0 del moltiplicando
0 1 0
1 0 0
1 1 1

ESEMPI
Calcoliamo: 5 x 3 = 15
Il primo bit (b0) del moltiplicatore è uguale a 1, quindi
ricopiamo il moltiplicando così com’è sotto la linea di
MOLTIPLICANDO
moltiplicazione:
MOLTIPLICATORE
Anche il secondo bit (b1) del moltiplicatore è uguale a 1, e
ripetiamo la stessa operazione ricopiando il moltiplicatore ma
spostandolo a sinistra di una posizione:

Come ultimo passaggio effettuiamo la somma dei due risultati


parziali ottenendo 11112 = 1510.

Calcoliamo: 11 x 10 = 110 (0110 11102) ovvero 10112 x 10102


Nonostante sia un’operazione lunga non
presenta grandi difficoltà:

si moltiplicano per ogni termine del


moltiplicatore, a partire da destra, tutti i termini
del moltiplicando, spostando ciascun termine
del primo di una cifra a sinistra.

Alla fine si sommano i risultati

24
Calcoliamo: 11001010 × 01011000 (20210 × 8810 = 17.77610).

Convertendo in decimale il risultato ottenuto


verifichiamo che rappresenta il numero 17.77610.

100 010 101 110 0002 = 17.77610

Casi particolari: Moltiplicazione per potenze del 2


Moltiplicazione per 2
Nel caso del prodotto per 2 non è necessario effettuare la moltiplicazione ma è sufficiente aggiungere uno zero (0) a
destra.

Infatti se moltiplichiamo ad esempio 1011 × 10


otteniamo il risultato della tabella a fianco che è il
numero di partenza con uno 0 aggiunto a destra.

Vediamo altri due esempi:

25
Moltiplicazione per 4
Analogo discorso nel caso del prodotto per 4: non è necessario effettuare la moltiplicazione, ma è sufficiente
aggiungere due zeri (00) a destra.

Vediamo altri due esempi:

Moltiplicazione per 2n
In definitiva dovendo moltiplicare per una potenza n del 2 è sufficiente aggiungere a destra un numero di 0 pari a n:

1011 × 2 (10) n=1 21 = 2 10110


1011 × 4 (100) n=2 22 = 4 101100
1011 × 8 (1000) n=3 23 = 8 1011000

Ovvero Nel caso di moltiplicazione per potenza k-esima di 2 il risultato è uno shift a sinistra di k posizioni.

Divisione
Come per la moltiplicazione, anche per la divisione seguiamo l’algoritmo utilizzato per le divisioni decimali.
Eseguiamo per esempio passo passo 1101102/1012 (5410/510) = 1010 con resto di 410:

DIVISORE : DIVIDENDO

Confrontiamo il divisore con le tre cifre più significative del dividendo. Dato che è minore, scriviamo 1 come quoziente
e trascriviamo il divisore sotto queste tre cifre per eseguire la sottrazione che effettuiamo ottenendo:

26
Abbassiamo una cifra, il b2, e procediamo con la divisione aggiungendo uno 0 al quoziente, dato che il divisore è
maggiore del dividendo (11 < 101):

Abbassiamo una successiva cifra, il b1, e procediamo con la divisione:

Dato che 111 > 101 aggiungiamo 1 al quoziente, effettuiamo la sottrazione e successivamente aggiungiamo al resto
l’ultimo bit, il bit0:

Otteniamo 100, che è minore di 101, quindi non divisibile: aggiungiamo al quoziente uno 0 e con questa operazione
abbiamo concluso la divisione.

27
Il risultato ottenuto è 1010 con resto 100, infatti convertendo in decimale abbiamo:

ESEMPIO

NOTA BENE:
È possibile effettuare come esercizio la verifica della correttezza dell’operazione appena eseguita effettuando la
moltiplicazione tra 100012 (QUOZIENTE) e 10012 (DIVISORE) e aggiungendo il RESTO 102.

Casi particolari: divisione per potenze del 2


Divisione per 2
Nel caso della divisione per 2 non è necessario effettuare la divisione ma è sufficiente togliere uno 0 a destra ovvero
il bit meno significativo.

Divisione per 4
Analogo discorso nel caso della divisione per 4: non è necessario effettuare l’operazione ma è sufficiente togliere gli
ultimi due bit a destra, ovvero quelli meno significativi.

Divisione per 2n
In definitiva dovendo dividere per una potenza n del 2 è sufficiente togliere da destra un numero di 0 pari a n, che
diventano il resto della divisione:

10111011: 2 (10) n=1 21 = 2 1011101 resto 1


10111011: 4 (100) n=2 22 = 4 101110 resto 11
10111011: 8 (100) n=3 23 = 8 10111 resto 011

Ovvero Nel caso di divisione per potenza k-esima di 2 il risultato è uno shift a destra di k posizioni.

28
Complemento a 1
Il complemento a 1 di un numero si ottiene scambiando gli 1 con gli 0 e viceversa.

Esistono diverse modalità di rappresentazione per indicare il complemento di un numero A:

• CA1(A) oppure CP1(A) o semplicemente C1(A) = completamento a 1 di A;


• 1A = complemento a 1 di A;

• � = complemento a 1 di A (usato in elettronica come negazione).


𝐀𝐀

Vediamo di seguito alcuni esempi:

CA1(01110) = 10001
CA1(10001) = 01110
CA1(01101101) = 10010010

NOTA BENE

Il numero rappresentato in complemento a 1 può essere indicato per completezza con il pedice:

CA1(01101100) = 10010011CA1

oppure semplicemente

CA1(11101101) = 00010010C1

Complemento a 2
Dato un numero binario X di N bit si definisce complemento a 2 di tale numero (X) il numero Y che si ottiene
effettuando la seguente operazione:

Y = 2N - X

ESEMPIO
CA2 (10100) = 100000 – 10100 = 01100

1 0 0 0 0 0 -
PRESTITO 1 1 1 -
1 0 1 0 0 =
0 0 1 1 0 0

CA2 (01101001) = 100000000 – 01101001 = 10010111

1 0 0 0 0 0 0 0 0 -
PRESTITO 1 1 1 1 1 1 1 1 -
0 1 1 0 1 0 0 1 =
0 1 0 0 1 0 1 1 1

29
METODO VELOCE
Il complemento a 2 di un numero si ottiene scambiando gli 1 con gli 0 o viceversa e sommando 1 al risultato ottenuto.

Il complemento a 2 equivale quindi a sommare 1 al complemento a 1 di un numero.

CA2(01110) = CA1(01110) + 00001 = 10001+ 00001 = 10010CA2


CP2(01100) = CP1(01100) + 00001 = 10011+ 00001 = 10100CP2
C2(10001) = C1(10001) + 00001 = 01110+ 00001 = 01111C2

METODO PRATICO
Esiste un metodo pratico per effettuare il complemento a 2 di un numero N:

1. si riscrivono i bit del numero stesso a partire dal Less Significative Bit (dal meno significativo) lasciando
inalterati tutti gli zeri fino a quando si incontra il primo 1,

2. si ricopia anch’esso e quindi si invertono i bit successivi (0 in 1, 1 in 0).

ESEMPIO
CA2(100101) => 011011CA2:

in questo caso il primo bit che troviamo è proprio un 1.


Lo lasciamo quindi inalterato ma procediamo a invertire tutti gli altri bit alla sua sinistra;

CA2(10010100) => 01101100CA2:

in questo caso i primi due bit vengono lasciati inalterati fino a quando incontriamo un bit uguale a 1, il terzo bit, che
viene lasciato inalterato anch’esso.
Procediamo invertendo i bit successivi alla loro sinistra.

30