Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Applicazioni MULTIMEDIALI immagini, suoni e filmati (sono informazioni di natura CONTINUA) DIGITALE
IMMAGINI
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.
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 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
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à).
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)
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
6 5 4
3 2 1
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
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
Si definisce cioè una codifica ARGB (Alpha, Red, Green, Bleu) per cui per ogni pixel servono 32bit.
Profondità di codifica o di colore = n.ro di bit utilizzati per codificare il colore di un singolo pixel
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.
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).
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
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:
A parità di PIXEL
𝑵𝑵. 𝒓𝒓𝒓𝒓 𝑷𝑷𝑷𝑷𝑷𝑷𝑷𝑷𝑷𝑷(= 𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄)
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷à (𝑃𝑃𝑃𝑃𝑃𝑃) =
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷
aumentare la risoluzione vuol dire ridurre la diagonale
ovvero la dimensione dell’immagine
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)
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:
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:
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).
• 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.
NB. NON ESISTE UN ALGORITMO DI COMPRESSIONE CHE FUNZIONI SEMPRE, CIOÈ CHE RIDUCA LE
DIMENSIONI DELL’IMMAGINE IN TUTTI I CASI
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.
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
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.
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)
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".
NB. L'integrazione di più media nello stesso dispositivo prende il nome di multimedialità
In ambito informatico possiamo ricordare i settori dove vengono utilizzate applicazioni multimediali:
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.
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:
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).
• 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.
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.
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).
• 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.
• 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
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
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.
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
si è perso il bit più signifcativo, cioè 28 = 256, che sommato a 86 dà come risultato proprio:
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.
22
Vediamo un esempio più complesso dove eseguiamo 14 – 3 =11, e riportiamo i singoli passi in sequenza:
Il valore 111011102 ottenuto corrisponde a 23810 ed è il risultato della sottrazione tra 36010 e 12210.
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
23
Prodotto
La tabella della verità a lato riporta le quattro possibili combinazioni che otteniamo dal prodotto tra due bit:
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:
24
Calcoliamo: 11001010 × 01011000 (20210 × 8810 = 17.77610).
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.
Moltiplicazione per 2n
In definitiva dovendo moltiplicare per una potenza n del 2 è sufficiente aggiungere a destra un numero di 0 pari a n:
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):
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.
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:
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.
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
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.
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,
ESEMPIO
CA2(100101) => 011011CA2:
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