Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli

Fondamenti di informatica, Appunti di Fondamenti di informatica

Riassunto e appunti delle lezioni su tutto il programma di informatica, con esercizi

Tipologia: Appunti

2018/2019

Caricato il 05/10/2023

Martix770
Martix770 🇮🇹

4.5

(4)

9 documenti

Anteprima parziale del testo

Scarica Fondamenti di informatica e più Appunti in PDF di Fondamenti di informatica solo su Docsity! Fondamenti di informatica Il concetto di informatica Informatica deriva dalla contrazione tra informazione e automatica; alla base c’è il concetto di trattamento automatico dell’informazione. - Che cosa è l’informazione? Tutto ciò che viene estratto dai dati (data mining=estrazione di informazioni), è il risultato della interpretazione di dati, che li rende significativi per il destinatario e consente di prendere decisioni (es. Google che prende i dati, li analizza per decidere le pubblicità da mandarci) - Che cosa sono i dati? I dati si possono definire come rappresentazioni originarie di un fenomeno, un evento o un fatto (misure della temperatura in una stanza, il numero di abitanti di un’area geografica…) La teoria dell’informazione è una teoria che cerca di modellare cos’è l’informazione e come avviene tra persone e una macchina o tra due persone attraverso una macchina. Il sì o il no si chiama unità minima di informazione e viene anche definito come bit. L’informazione riguarda il modo in cui un sistema acquisisce conoscenza dal mondo esterno attraverso l’interpretazione di dati. Informazione è qualcosa che quando viene fornito dissipa un dubbio, una incertezza. Ci consente di aumentare la conoscenza; può essere di varia natura (linguistiche, musicali, pittoriche, corporali…). La componente non verbale assume il 90% dell’importanza durante la comunicazione (linguaggio solo il 10%). Possiamo trovare una fonte inesauribile di dati sui giornali o su internet nelle quali si sente sempre più parlare di Data Science e Big Data. I Big Data sono ad esempio i dati raccolti da Google, Facebook o Amazon per trarre informazioni e influenzare le scelte degli individui. Questi Big data hanno aspetti positivi ma altrettanti negativi. In definitiva: Informatica è la scienza che si occupa della conservazione, dell’elaborazione e della rappresentazione dell’informazione. Il pensiero computazionale …Si configura come una abilità di portata generale che ha a che fare con l’astrazione, la rappresentazione, l’espressione e la comunicazione, e la capacità di indagine. (Olimpo, G. 2017) Il computer o calcolatore elettronico o sistema di elaborazione delle informazioni Per introdurre la struttura del computer, utilizziamo una analogia con il “modello di processore umano”, introdotta nell’ambito delle scienze cognitive da Card, Moran e Newell nel 1983. Il computer è qualcosa di simile a ciò che c’è dentro agli elettrodomestici; un elettrodomestico è un computer pre-programmato, cioè programmato per svolgere esclusivamente quel determinato compito (es. il computer all’interno del frigorifero che ha il compito di mantenere sempre la stessa temperatura) Il modello di processore umano In inglese Human Processor Model, è una rappresentazione semplificata che descrive le dinamiche di elaborazione di un essere umano quando interagisce con il computer - Sensi: (vista, udito, tatto…) producono una memoria molto breve di quella stessa sensazione - Processore percettivo: gestisce lo stimolo sensoriale proveniente dal mondo esterno (dati) e ne estrae le informazioni - Processore cognitivo: elabora le informazioni ricevute dal processore percettivo e prepara le azioni da inviare al processo motorio - Processore motorio: gestisce e controlla le azioni dei muscoli - Memoria di lavoro (memoria a breve termine) e memoria a lungo termine: sono a supporto dei processori percettivo e cognitivo - Attenzione: ciò che fa aumentare la prestazione dei tre processori Esempio: spostare una sedia 1. I sensi (gli occhi) ricevono stimoli (dati) dal mondo esterno in termini di raggi luminosi - Smartphone, tablet per utilizzo individuale e sono multimodali - Dispositivi indossabili (es. gli smartwatch) di dimensioni ridotte e con potenze di calcolo crescenti, utilizzati nelle automobili, negli elettrodomestici, per le arti… La struttura di un computer CPU (central processing unit) è un insieme di circuiti che controlla l’attività del computer e la può paragonare al cervello umano; il suo compito è quello di leggere le istruzioni e dati della memoria e di decodificare ed eseguire le istruzioni. Il risultato dell’esecuzione di una istruzione dipende dal dato su cui opera e dallo stato interno della CPU stessa. La CPU è costituita da: - Un insieme di registri: cioè spazi di memorizzazione (singole celle di memoria interne alla CPU) accessibili ad una velocità superiore di quella della memoria principale - Una unità logico aritmetica (ALU): esegue operazioni aritmetiche, logiche e confronti sui dati della memoria principale o dei registri - Una unità di controllo (UC): che esegue le istruzioni secondo quello che viene definito ciclo di accesso-decodifica-esecuzione Ciclo di accesso-decodifica-esecuzione La CPU esegue ogni istruzione attraverso una sequenza di passi, secondo il seguente algoritmo: CPU MEMORIA PRIMARIA MEMORIA SECONDARIA DISPOSITIVI I/O BUS 1. Accesso all’istruzione da seguire: copiando l’istruzione dalla memoria centrale nell’apposito registro istruzione della CPU 2. Decodifica del tipo di istruzione 3. Individuazione dei dati necessari per l’istruzione che vengono copiati negli opportuni registri 4. Esecuzione della istruzione: l’unità di controllo comunica all’unità logico aritmetica l’operazione da eseguire e i dati su cui operare CPU: prestazioni - Frequenza di clock: è il numero di scambi tra i due livelli logici 0 e 1 che i circuiti all’interno di un’unità di calcolo o di un microprocessore sono in grado di eseguire nell’unità di tempo di un secondo, espressa in hertz - FLOPS (floating point operation per second): indica il numero di operazioni in virgola mobile (metodo di approssimazione dei numeri reali) eseguite in un secondo dalla CPU - SPEC: società di valutazione delle prestazioni standard - Numero di core: il numero di CPU funzionanti in parallelo contenute in un singolo processore La memoria di un computer La memoria di un computer è organizzata in maniera gerarchica: - Memoria cache: è molto veloce, di piccole dimensioni e volatile - Memoria principale (primaria): veloce, di medie dimensioni e volatile - Memoria secondaria: lenta, di notevoli dimensioni a memorizzazione permanente La memoria cache e la memoria primaria sono volatili, cioè i dati non rimangono in modo permanente in memoria (es. allo spegnimento del computer o alla chiusura del programma, queste due memorie perdono i loro contenuti). I dati memorizzati invece nelle memorie secondarie invece rimangono anche dopo lo spegnimento del computer, sono lente, ma contengono molti dati che rimangono nel tempo. La memoria cache È una memoria piccola ma molto veloce, intermedia tra la memoria primaria e la CPU (la si può vedere come la memoria di lavoro del modello di processore umano). I dati di uso più frequente sono mantenuti nella memoria cache per minimizzare i trasferimenti tra memoria primaria e CPU. Esistono due tipi di memoria cache: - Cache interna al processore - Cache esterna al processore La memoria principale La memoria principale o primaria è quella cui ci si riferisce solitamente parlando di “memoria”. È costituita da una RAM (random access memory), che consente un rapido accesso ai suoi dati senza dover rispettare un determinato ordine e con lo stesso tempo di accesso per qualsiasi dato. La memoria primaria è una memoria volatile: allo spegnimento del computer i dati in essa contenuti vanno persi. La memoria principale contiene il codice del programma in esecuzione e i dati che questo usa; codici (istruzioni) e dati sono contenuti in un insieme di celle. Ogni cella è identificata da un indirizzo univoco, che ne consente l’individuazione. Dato un indirizzo di memoria la CPU compie un’operazione di lettura (lettura del contenuto della cella corrispondente e suo trasferimento verso il bus) e scrittura del contenuto trasferendolo attraverso il bus nella corrispondente cella di memoria. Le dimensioni della memoria principale variano a seconda del tipo di computer; nei pc attuali le dimensioni tipiche della memoria primaria vanno da 2 GB a 32 GB. Un’importante caratteristica della memoria è il suo tempo di accesso (cioè il tempo necessario per leggere o scrivere una parola di memoria); le memorie primarie dei computer attuali sono molto veloci e i loro tempi di accesso sono di pochi nanosecondi (=10^-9 secondi) I tipi di RAM - DRAM (Dynamic RAM): il tipo più diffuso, altamente volatile che deve essere aggiornata continuamente dalla CPU, ed è economica - SRAM (Static RAM): può mantenere i dati finché è alimentata, molto più veloce e costosa della DRAM, viene utilizzata per realizzata la memoria cache L’indirizzamento di memoria Ogni cella di memoria è identificata da un numero chiamato indirizzo di memoria; in questo modo ogni dato contenuto nella memoria ha una precisa collocazione ed è pertanto possibile recuperarlo. Analogamente, la CPU può decidere dove memorizzare un dato indicandone l’indirizzo. La CPU dispone di uno o più registri dedicati a contenere indirizzi di memoria a cui la CPU intende accedere, ad esempio per scrivere o leggere un dato. Il numero massimo di indirizzi che è possibile codificare nel registro indirizzi della CPU dipende dal numero di bit di cui dispone il registro (un registro indirizzi che dispone di 32 bit potrà indirizzare fino a un numero massimo di 2^32 celle di memoria). I dischi rigidi - Tecnologia impiegata: magnetica - Capacità di memorizzazione: fino a circa 2 TB - Velocità di accesso ai dati: alta Prima che un disco rigido possa essere utilizzato per immagazzinare dati, sono necessari tre passaggi: - Formattazione a basso livello: (effettuata una sola volta, in fabbrica) divide la superficie del disco in tre cerchi concentrici chiamati tracce; ciascuna traccia viene a sua volta suddivisa in segmenti (settori). Ogni settore costituisce lo spazio minimo di memorizzazione di un disco - Divisione in partizioni: divide il disco fisico in volumi logici. È un’operazione necessaria anche se si intende usare un unico volume - Formattazione ad alto livello: può essere eseguita dall’utente. Spesso si esegue prima dell’istallazione di un sistema operativo: consiste infatti nella creazione delle strutture del file system specifico di un sistema operativo, equivale a cancellare il contenuto del disco Compact disk (CD) - Tecnologia impiegata: ottica - Capacità di memorizzazione: tipicamente 650 MB - Velocità di accesso ai dati: misurata a multipli di 0.15 MB/s Digital versatile disk (DVD) - Tecnologia impiegata: ottica - Capacità di memorizzazione: da 4.7 a 17 GB - Velocità di accesso ai dati: misurata a multipli di 1.35 MB/s Unità a stato solido (SSD) - Tecnologia impiegata: elettrica - Capacità di memorizzazione: fino ad alcuni TB - Velocità di accesso ai dati: da 100 a 600 MB/s - (al momento più costose degli hard disk) Il bus È un canale attraverso il quale due o più dispositivi si scambiano informazioni. Senza questo sistema, ogni componente del computer dovrebbe possedere un collegamento fisico distinto verso ognuno degli altri dispositivi (collegamenti punto- punto); a differenza dei collegamenti punto-punto, il bus consente una maggiore configurabilità. Per esprimere la velocità con cui vengono scambiati i dati si utilizza il clock di un bus. All’interno di un computer esistono più bus che rendono possibile il transito dei dati dalla periferica alla memoria, dalla memoria ai processori, dai processori alle periferiche… I tipi di bus - Bus del processore: è il più veloce - Bus della cache: è connessa ad un bus separato o al bus della memoria - Bus della memoria: collega la memoria centrale al processore - Bus per l’input-output locale: schede video, schede di rete, memoria di massa… - Bus input-output standard: vecchio e lento, vi di possono trovare collegate schede audio e mode interni Dispositivi di I/O Sono tutti quegli apparati che servono per il trasferimento di dati fra il computer e il mondo esterno. - Esempi di dispositivi di input (ingresso): tastiera, mouse, microfono, webcam, scanner, sensori di un tablet… - Esempi di dispositivi output (uscita): video monitor, stampante, altoparlanti… - Esempi di dispositivi sia di input che di output: modem, scheda di rete… Molti dispositivi di I/O sono collegati al computer dall’esterno attraverso le cosiddette porte di I/O (porta parallela, porta seriale, porta USB, porta di rete…Altri possono essere inseriti all’interno del computer stesso come le schede elettroniche (scheda audio, scheda video…) Il case Detto anche cabinet, è il contenitore in cui vengono montati i vari componenti di cui è composto un personal computer. La fora del case può essere dettata, oltre che da motivi pratici, anche da considerazioni estetiche La scheda madre (motherboard) svolge funzioni di integrazione e comunicazione tra tutti i componenti del computer. Dalla scheda madre dipendono: organizzazione, supporto per il processore, supporto per le periferiche (numero e tipi di alloggiamenti), prestazioni, possibilità di aggiornamenti/espansioni. Il clock della scheda madre Componenti del computer sono sincronizzati in base a clock diversi. Sulla scheda madre esiste un circuito che genera il clock principale, il quale viene usato come base da altri circuiti (ad esempio la CPU) che ne generano multipli o sottomultipli, per regolare le operazioni di dispositivi più veloci o più lenti La codifica dell’informazione La codifica è una regola per associare in modo univoco i valori di un dato da codificare con sequenze di simboli. La corrispondenza definita dalla codifica è una convenzione arbitraria, la quale deve essere nota e rispettata da chi genera e da chi utilizza i dati; per questo scopo vengono quindi definiti degli standard. In un La programmazione È l’attività di progettare e sviluppare programmi per un calcolatore; lo scopo della scrittura di un programma è la risoluzione automatica di un problema e il risultato è un programma scritto in un linguaggio di programmazione. Programmare comporta i seguenti passaggi: - Formulare il problema (specifica dei requisiti) - Capire il problema e scomporlo in parti gestibili (analisi) - Progettare una soluzione (algoritmo) - Implementare la soluzione (scrittura del codice) - Testare la soluzione e correggere eventuali errori - Tenere aggiornato il programma (manutenzione) Algoritmi Un algoritmo è una sequenza di passi discreti di lunghezza finita, deterministici e ripetibili che producono la soluzione del problema. Un algoritmo consente di ricavare informazione da dati, o più in generale di risolvere uno specifico problema (es. calcolare la media di 10 voti, calcolare la lunghezza dell’ipotenusa di un triangolo rettangolo, risolvere un’equazione di secondo grado…O la trasmissione dati in internet, la ricerca sul web, processi economici, organizzazione di risorse e servizi). L’esperienza quotidiana suggerisce infiniti esempi di algoritmi; molte azioni che svolgiamo abitualmente possono essere modellate mediante algoritmi (istruzioni di montaggio di un mobile, preparazione del caffè, preparazione di una esercitazione, di una lezione o di una attività in classe…). - Definizione 1: procedura di calcolo ben definita, che prende un insieme di valori come input (dati) e produce un insieme di valori come output (informazioni) - Definizione 2: sequenza di azioni elementari che consente di trasformare i dati iniziali nei risultati finali attraverso un numero finito di passi non ambigui e può essere eseguita da un essere umano o da un computer Es. algoritmo per partire in automobile 1. Aprire l’auto 2. Aprire la porteria 3. Sedersi al posto di guida 4. Allacciare la cintura 5. Schiacciare la frizione 6. Avviare il motore 7. Inserire la prima marcia 8. Togliere il freno a mano 9. Rilasciare la frizione per partire Le istruzioni vanno eseguiti in sequenza e l’ordine delle istruzioni è essenziale per il raggiungimento degli obbiettivi. Esecutore e linguaggio Un algoritmo presuppone la presenza di qualcuno/qualcosa in grado di eseguirlo, chiamato esecutore; in informatica l’esecutore è il calcolatore: l’algoritmo viene letto dall’esecutore, partendo dai dati in input, esegue tutte le istruzioni dell’algoritmo stesso, ottenendo al termine della propria esecuzione i dati in output. Per essere eseguito, l’algoritmo deve essere formulato in un linguaggio comprensibile dall’esecutore, il quale può comunque eseguire un algoritmo formulato in un linguaggio che non conosce, a patto che l’algoritmo stesso sia preventivamente tradotto in un linguaggio che invece gli è noto. L’algoritmo deve prevedere soltanto istruzioni che richiedono all’esecutore di effettuare operazioni elementari ed essere formulato in un linguaggio non ambiguo, in cui cioè ogni istruzione caratterizzi univocamente une delle operazioni che l’esecutore è in grado di compiere, specificando l’ordine di esecuzione delle istruzioni, cui l’esecutore deve attenersi scrupolosamente. Un algoritmo può richiedere l’esecuzione di altri algoritmi precedentemente specificati all’esecutore; quindi un’istruzione può essere a sua volta esprimibile attraverso un algoritmo, dove l’esecuzione dell’istruzione corrisponderà alla esecuzione dell’algoritmo corrispondente. Proprietà degli algoritmi Un algoritmo deve possedere le seguenti proprietà: - Correttezza: produrre sempre una soluzione, a patto che i dati input siano validi - Determinatezza: utilizzare le istruzioni di base fornite dall’esecutore - Efficacia: risolvere il problema tramite la combinazione di istruzioni di base - Efficienza: risolvere il problema utilizzando la minor quantità possibile di risorse computazionali (tempo di esecuzione, memoria…) - Può essere espresso in varie forme (linguaggi umani, pseudo-codici, linguaggi grafici, linguaggi di programmazione… - I passi costituenti devono essere interpretabili in modo diretto e univoco dall’esecutore, l’algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso - L’esecuzione deve avere termine dopo un tempo finito - L’esecuzione deve portare a un risultato univoco Generalità Un algoritmo risolve un problema se per qualunque istanza del problema esso produce in un tempo finito la soluzione desiderata; se questa idea aveva già una certa importanza, ed è infatti con l’informatica che il termine algoritmo ha iniziato a diffondersi. Se per ottenere un certo risultato esiste un procedimento infallibile, che può essere descritto in modo non ambiguo fino ai dettagli e conduce sempre all’obbiettivo desiderato in un tempo finito, allora esistono le condizioni per affidare questo compito a un computer, semplicemente introducendo l’algoritmo in questione in un programma scritto in un opportuno linguaggio comprensibile al calcolatore (linguaggio di programmazione) Linguaggio di programmazione Per scrivere il programma che realizza un algoritmo, il programmatore deve usare un linguaggio di programmazione; il linguaggio di programmazione è costituito, informalmente, da parole e simboli e da un insieme di regole per combinarli. A differenza dei linguaggi naturali, le regole dei linguaggio di programmazione sono rigide, per garantire l’assenza di ambiguità. Se il programma rispetta le regole del linguaggio, può essere tradotto in linguaggio macchina e quindi eseguito da un calcolatore. Il compilatore è il programma che traduce una serie di istruzione scritte in un linguaggio di programmazione (codice sorgente) in linguaggio macchina (codice oggetto); i linguaggi che seguono questo approccio si dicono linguaggi compilati. Esistono anche altri approcci: - Linguaggio interpretato: è un linguaggio di programmazione le cui istruzioni vengono eseguite una per una da un programma che traduce una istruzione \ alla volta in linguaggio macchina (comprensibile dal calcolatore) immediatamente prima di eseguirla. - Linguaggio compilato: l’algoritmo viene preventivamente tradotto e salvato su un nuovo file in linguaggio macchina; in questo modo può essere eseguito direttamente senza più bisogno di traduzione. - Linguaggio interpretato: l’algoritmo non viene tradotto prima in un linguaggio macchina ma ogni istruzione viene tradotta ogni volta prima di essere While ho letto N voti Scrivo su video il valore di SOMMA Raffinamento algoritmo precedente Somma  0 Conta voti  0 Do Leggo voto da tastiera e lo aggiungo a SOMMA (SOMMA  SOMMA+ voto; conta voti  conta voti+ 1 While conta voti < N Scrivo su video il valore di SOMMA (N.B conta voti è un contatore del numero di voti letti da tastiera) Es. 2: Dati due numeri interi positivi A e B letti da tastiera, calcolare la moltiplicazione di A e B come soma di A+A+A… per B volte. Leggi A e B C  0 Moltiplicazione  0 Do Moltiplicazione  moltiplicazione+ A C  C+1 While C<B Scrivi la moltiplicazione Es. 5: Data un’immagine greyscale di dimensione 1000*800, impostare un algoritmo che a tutti i pixel della prima riga dell’immagine con valore grigio inferiore a 50 assegna il valore 0. Supponiamo che l’immagine sia già stata memorizzata in una variabile, ad esempio V [1000, 800], una matrice di pixel greyscale 1000*800. Il pixel i-esimo della prima riga dell’immagine è quindi V [i, 1], per accedere a tutta la prima riga occorre scorrere V [i, 1] con la variabile i che varia da 1 a 1000. (i è la variabile intera, cioè una locazione di memoria) i 1 considero il primo pixel della prima riga (variabile contatore i inizializzata a 1) Do If (V [i, 1 ] <50) then V [i, 1] 0 (se il pixel i-esimo ha valore <50 il suo valore viene azzerato) While i ≤ 1000 (N.B se il pixel i-esimo non è <50 non viene eseguita alcuna operazione su di esso e si passa direttamente al pixel successivo dopo aver incrementato il valore di i) Es. leggo e ripeto la lettura se l’utente mi inserisce 0 Do Leggi X (un numero qualunque) While Finché X=0 Ad una variabile A devo assegnare B/x (A  B/X); se fosse 0 continuo a richiedere un valore della x diverso da 0 Analogico e digitale La differenza fra analogico e digitale corrisponde alla differenza fra una rappresentazione continua e una rappresentazione discreta di determinate grandezze. Una rappresentazione continua o analogica è ad esempio quella fornita da una lancetta che si sposta sul quadrante di uno strumento, mentre una rappresentazione digitale è attraverso numeri, dove non ci sono numeri intermedi (es. Un disco in vinile su cui è registrata una canzone rappresenta un esempio di rappresentazione analogica di suoni; la stessa canzone in un file MP3 ne è una rappresentazione digitale). Anche le immagini possono essere analogiche o digitali: - Immagine analogica: si tratta di un’immagine composta da milioni di pigmenti colorati molto piccoli e irregolari sulla pellicola, la quale presenta dei materiali fotosensibili che alterano il loro stato se colpiti dalla luce; l’immagine è ottenuta per analogia con la quantità di luce che ha impresso i diversi punti della pellicola durante la fase dell’esposizione. - Immagine digitale: si tratta di un’immagine composta da un numero definito di pixel (picture element) disposti su una griglia, tutti delle stesse dimensioni. I diversi colori che rappresentano le immagini sono memorizzati come numeri: un numero, codificato da un valore binario, diverso per ogni colore rappresentato. La digitalizzazione La digitalizzazione è il processo di conversione che, applicato alla misurazione di un fenomeno fisico, ne determina il passaggio dal campo dei valori continui a quello dei valori discreti (passaggio dall’analogico al digitale). L’operazione di digitalizzazione di una immagine comporta il passaggio a un numero finito di punti, tutti della stessa dimensione con una perdita di informazioni. La digitalizzazione consente di passare dal continuo (infiniti punti) a una matrice di un numero infinito di pixel. Nell’informatica, con il termine digitalizzazione si intende il processo di trasformazione di un segnale analogico in formato digitale, interpretabile dal computer. Per poter far sì che un computer possa elaborare una immagine, occorre che l’immagine sia tradotta in numeri; la digitalizzazione di una immagine avviene grazie a dispositivi come lo scanner o le macchine fotografiche digitali. La digitalizzazione avviene grazie ad una sequenza di due fasi: - Campionamento spaziale: operazione con la quale un’immagine continua è trasformata in un insieme di rettangoli più o meno grandi Formati delle immagini raster o bitmap La grafica bitmap (o raster) definisce immagini digitali formate da matrici di pixel. Il termine raster (dall’inglese trama, reticolo, griglia) ha origine nella tecnologia televisiva analogica, dal termine che indica le righe orizzontali (scan line) dei televisori o dei monitor analogici. Nella grafica raster l'immagine viene vista come una scacchiera o matrice e ad ogni elemento della scacchiera (pixel), viene associato uno specifico colore. È possibile avere diversi tipi di immagine: - immagine binaria: pixel solo bianchi o neri; 1 bit/pixel: 2 valori possibili (0,1) - immagine a livelli di grigio (greyscale): I pixel possono assumere solo valori di grigio. In funzione del numero di livelli di grigio nella tavolozza dell’immagine, occorrerà di conseguenza definire il numero di bit/pixel - immagini a colori: immagini truecolor, 24 bit/pixel corrispondono a una tavolozza di 224 colori ovvero 16,7 milioni di colori. - Immagini a colori dotate di colori Look-Up-Table (LUP): Spesso per limitare l’occupazione di memoria si utilizza un numero limitato di colori, memorizzando l’immagine solo con 8 o 4. In questo caso il formato dell’immagine contiene anche la Look-Up-Table dei colori (colormap) che definisce quali sono i 256 o i 16 colori presenti nella immagine. Nel pixel viene quindi inserito l’indirizzo della riga della LUP dove è definita la rappresentazione completa del colore voluto: questo consente di avere pixel con un numero inferiore di bit nel caso di immagini con ben definite e limitate palette di colori. I formati di immagini GIF, TIF e PNG usano una look-up table con 4 o 8 bit. Esercizi 1. Data una immagine di dimensione 100 x 100 pixel (ovvero 10.000 pixel) con una tavolozza di 60 livelli di grigio, qual è il minimo numero di bit per pixel per poter rappresentare tutti i livelli di grigio dell’immagine? Occorre un numero N di bit per pixel tale che 2N sia uguale o superiore a 60. 25=32; 26=64; 64≥60, quindi occorrono 6 bit/pixel per una tavolozza di 60 livelli di grigio. Se usassi 5 bit/pixel, avrei una tavolozza pari a 25=32 < 60. Quindi: il minimo numero di bit/pixel necessario per codificare una immagine con una tavolozza di 60 livelli di grigio (o 60 colori) è di 6 bit/pixel. Qual è l’occupazione di memoria per questa immagine? Occorre moltiplicare l’occupazione in bit di ogni pixel per il numero totale di pixel dell’immagine. Nel nostro caso abbiamo: 10.000 pixel x 6 bit/pixel = 60.000 bit di occupazione di memoria della immagine. Alcune domande/risposte: - Qual è il numero massimo di colori che posso codificare con N bit? 2N - Data una immagine con una tavolozza di X colori, quale è il minimo numero di bit per ogni pixel tale da rappresentare la tavolozza? Occorre un numero N di bit per ogni pixel tale che 2N ≥ X - Come si fa a calcolare l’occupazione di memoria di un’immagine? occupazione di memoria (in bit) = Numero totale di pixel * Numero di bit per pixel - Qual è la minima occupazione di memoria per un pixel di un’immagine? 1 bit per pixel; in questo caso ho solo la possibilità di una tavolozza di 2 colori (bianco e nero): tali immagini si dicono immagini binarie. Grafica vettoriale (opzionale) Esistono anche altri tipi di immagini: - Immagini vettoriali: definite da caratteristiche geometriche (punti, segmenti, rettangoli, poligoni, poliedri, ...) - Immagini miste: bitmap + vettoriale Nella grafica vettoriale un'immagine è descritta mediante un insieme di primitive geometriche che definiscono punti, linee, curve e poligoni, ai quali possono essere attribuiti colori e anche sfumature. È radicalmente diversa dalla grafica raster in quanto nella grafica raster le immagini vengono descritte come una griglia di pixel opportunamente colorati. Principali vantaggi della grafica vettoriale rispetto alla grafica raster - possibilità di esprimere i dati in una forma direttamente comprensibile ad un essere umano - possibilità di esprimere i dati in un formato che occupa di solito molto meno spazio rispetto all'equivalente raster - possibilità di ingrandire l'immagine arbitrariamente, senza che si verifichi una perdita di risoluzione dell'immagine stessa. Il primo punto si traduce nella possibilità, per una persona, di intervenire direttamente sull'immagine anche senza fare uso di programmi di grafica o addirittura senza conoscenze approfondite in merito. Tale sistema di descrizione delle informazioni grafiche presenta inoltre l'indubbio vantaggio di una maggiore compressione dei dati: in pratica una immagine vettoriale occuperà molto meno spazio rispetto ad una corrispondente raster, con una riduzione dell'occupazione di memoria (sia memoria centrale che memoria di massa), in particolare se l’immagine è composta da forme geometriche e riempimenti a tinta piatta (costante). Risulta inoltre più facile da gestire e da modificare, essendo minore la quantità di dati coinvolti in ogni singola operazione di aggiornamento; questo rende la grafica vettoriale particolarmente adatta per gestire grandi quantità di dati. Infine, l'ingrandimento o la riduzione delle misure e proporzioni di un soggetto in grafica vettoriale non incide in maniera significativa sull’occupazione dell'immagine stessa, e il riempimento di forme con tinte piatte è generato da semplici funzioni matematiche e risulta quindi estremamente leggero in termini di memoria utilizzata. La grafica vettoriale, essendo definita attraverso equazioni matematiche, è indipendente dalla risoluzione, mentre la grafica raster, se viene ingrandita oltre certi limiti porta all’ingrandimento dei pixel fino a renderli visibili singolarmente. Una linea che percorre lo schermo trasversalmente, se viene rappresentata utilizzando la grafica raster, viene memorizzata come una sequenza di pixel colorati disposti a formare la linea. Se si provasse ad ingrandire una sezione della linea si vedrebbero i singoli pixel che compongono la linea mostrando una linea scalettata. La medesima linea in grafica vettoriale è codificata come una equazione di una retta che parte da un punto identificato con delle coordinate iniziali e termina in un altro punto definito con delle coordinate finali: ingrandire una sezione della linea non produce artefatti visivi o la visualizzazione dei singoli pixel componenti l'immagine, dato che la linea sarebbe ricalcolata dal processore grafico e visualizzata sempre con la massima risoluzione consentita dal monitor. Il principale svantaggio della grafica vettoriale rispetto alla grafica raster Il suo principale svantaggio è che la realizzazione di immagini vettoriali non è un’attività intuitiva come nel caso delle immagini raster; i programmi vettoriali dispongono di molti strumenti che richiedono una conoscenza specialistica in modo da sfruttarli pienamente. Un altro difetto è legato alle risorse richieste per trattare le immagini vettoriali: un’immagine vettoriale complessa può richiedere l’impiego di un computer molto potente per essere elaborata, inoltre le risorse richieste per trattare l’immagine non sono definibili a priori e quindi ci si potrebbe trovare in alcuni casi nell’impossibilità di elaborare un’immagine a causa della mancanza di risorse sufficienti (memoria, velocità della CPU…). Nel caso di un’immagine raster, una volta definita la risoluzione e il numero di colori, è abbastanza semplice definire le risorse necessarie per trattare l’immagine stessa. Al contrario di quanto accade con le tinte piatte, i riempimenti sfumati o complessi generati con grafica vettoriale comportano un alto impiego di risorse. La grafica vettoriale ha un notevole utilizzo nell’editoria, nell’architettura, nell’ingegneria e nella grafica realizzata al computer, inclusi i videogiochi (tutti i programmi di grafica tridimensionale salvano i lavori - l’occhio umano è poco sensibile alle alte frequenze spaziali - l’occhio umano risponde con diversa sensibilità alle componenti cromatiche - l’occhio umano è più sensibile alle variazioni di luminosità che a quelle di colore. Questo metodo è particolarmente indicato per immagini di tipo fotografico (a colori 24 bit/pixel o greyscale), che contengono scene reali senza le brusche variazioni di intensità e colore, e caratteristiche artificiali (come i disegni in cui sono presenti contorni molto netti fra zone differenti). È molto utilizzato per le immagini destinate al web, data la elevata capacità di compressione. Bisogna tenere presente comunque che il JPEG porta distorsioni, sfumature che deformano e sfocano l’immagine rispetto all’originale. Formati dei file Ad ogni formato di file e a ogni metodo di compressione usato per le immagini, corrisponde un’estensione diversa del nome del file. Alcuni esempi di formati supportati dai principali programmi di elaborazione di immagini sono BMP (BitMaP), GIF (Graphics Interchange Format), JEPG, PNG (Portable Network Graphics), TIFF (Tag Image Format), RAW format (semplice memorizzazione della matrice dei pixel riga per riga senza alcuna compressione). Percezione visiva La JEPG sfrutta le caratteristiche psicofisiche dell’occhio. I sensi umani si considerano separati l’uno dall’altro, si parla perciò di multimodalità per esprimere la confluenza di più canali percettivi (l’essere umano è di sua natura multimodale). I diversi canali sensoriali vengono percepiti ed elaborati dal cervello in modo integrato, non sono perciò elaborati separatamente. La percezione è l’acquisizione della consapevolezza e della comprensione delle informazioni ricevute attraverso i sensi; è il processo di trasformazione delle informazioni sensoriali in rappresentazioni di più alto livello che possono essere utilizzate in processi associativi e processi cognitivi. Visione Il colore ha un ruolo determinante nella comunicazione, ad esempio nelle pubblicità; il colore è uno strumento linguistico ed emozionale molto forte in grado di influire sulla percezione in modo inconscio o semiconscio. Per esempio, i primi film agli esordi del cinema utilizzavano tecniche di colorazione della pellicola in bianco e nero, per ottenere effetti emotivi di grande efficacia; si colorava la pellicola per comunicare emozioni. Il primo processo è l’inibizione, dove la pellicola prendeva la colorazione omogeneamente; il secondo è il viraggio, un procedimento chimico che consentiva di colorare solo le parti scure (le parti chiare rimangono bianche). Il colore attira l’attenzione dell’occhio ma lo può anche stancare creando delle situazioni di stress. La percezione del colore Il primo tentativo di spiegazione scientifica della percezione dei colori fu proposto da Newton: la luce bianca attraversando un prisma di vetro viene decomposta in uno spettro di luci colorate. Un oggetto illuminato assorbe solo determinate componenti cromatiche riflettendo le altre, le quali raggiungendo l’occhio umano generano la sensazione di colore; un oggetto appare dunque del colore corrispondente alla frequenza riflessa. In realtà la teoria di Newton non spiega fino in fondo le origini del colore (non riesce a spiegare le origini di colori come il marrone). Bisogna distinguere tra due casi: - Sintesi additiva: è il caso in cui si sommano le luci - Sintesi sottrattiva: è il caso in cui si mescolano i pigmenti colorati; essendo i pigmenti sostanze assorbenti, il numero delle componenti cromatiche che l’occhio percepisce diminuisce. I colori sono i complementari dei RGB (Rosso, Verde, Blu. Si tratta dei cosiddetti colori primari che sono stati scoperti empiricamente), ovvero CMY (Ciano, Magenta, Giallo), definendo come colore complementare il colore che si ottiene sottraendo alla luce bianca il colore dato; il ciano è complementare del rosso, il magenta lo è del verde e il giallo del blu. La somma di tutte le componenti additive genera il bianco, mentre la somma di quelle sottrattive produce il nero. La luce è un’onda elettromagnetica; le onde elettromagnetiche possono essere rappresentate come onde o come fasci di particelle (fotoni) privi di massa e aventi un’energia inversamente proporzionale alla lunghezza d’onda. La frequenza è uguale a 1/lunghezza d’onda. Da un punto di vista fisico, luce e onde radio sono la stessa cosa: il parametro che varia è la lunghezza d’onda. Da un punto di vista psicofisico sono diverse. Anche il suono è un’onda elettromagnetica in un campo di frequenze a cui è sensibile l’orecchio e tutto il corpo. Onde elettromagnetiche nel campo visivo Vengono percepite solo quelle aventi una lunghezza d’onda compresa fra i 380 e i 770 nanometri (nm) mentre quelle minori di 380 nm (raggi uv, raggi x, raggi gamma) o quelle maggiori di 770 nm (infrarossi, microonde, radioonde) non rientrano nel visibile. La percezione della variazione di colore cambia molto in funzione della frequenza: nel campo del rosso non si apprezzano le variazioni come ad esempio nelle zone verde, blu, indaco. La ragione fisiologica della percezione del colore è da ricercarsi nella distribuzione e nelle proprietà spettrali delle cellule recettori della retina (i sensori dell’occhio). Nella retina sono presenti due tipi di cellule recettore: - I coni: distribuiti soprattutto al centro, sono i responsabili della visione diurna; si dividono in tre tipi diversi. - I bastoncelli: distribuiti maggiormente nella periferia della retina capaci di lavorare anche a bassa intensità luminose, responsabili perciò della visione notturna, meno raffinati in fatto di risoluzione spaziale. Sono tutti equivalenti tra loro Dal punto di vista molecolare la visione consiste nell’assorbimento da parte di una particolare proteina, chiamata Opsina, del fotone luminoso incidente; dove il pigmento non assorbe, il fotone non viene rilevato. Se i recettori fossero tutti uguali, come nel caso dei bastoncelli, non vi potrebbe essere la sensazione cromatica. Nell’essere umano i coni sono di tre tipi, ognuno con una sensibilità ad un singolo canale R, G e B, dunque percepiamo il colore perché abbiamo tre tipi di cellule recettore, ciascuna atta a ricevere una diversa frequenza. I bastoncelli sono insensibili al colore e ciò spiega come mai quando scarseggia l’illuminazione gli oggetti appaiono tutti più o meno grigi anche se sono di diverso colore. Tuttavia, la sensazione di colore non si spiega completamente in base alla percentuale di stimolazione di ciascun tipo di cono, in quanto sono determinanti altri parametri come brillantezza (intensità della luce), saturazione (rapporto tra colore puro e luce bianca espresso in percentuale) e tinta (il colore vero e proprio). Spazi colore Alcune stampanti hanno solo la possibilità di scrivere pixel binari, cioè bianchi o neri. È possibile però simulare livelli di grigio traducendo la risoluzione cromatica in risoluzione spaziale e sfruttando le proprietà di integrazione nella visione effettuate dall’occhio umano: se i pixel sono molto piccoli, l’occhio non li distinguerà singolarmente ma considererà come grigio scuro le zone con elevata densità di pixel neri e viceversa vedrà più chiare quelle con bassa densità di pixel neri. Questa operazione deve essere compiuta rendendo casuali le distribuzioni dei pixel neri per evitare che si formino sul disegno delle trame (texture) indesiderate; questa tecnica è detta “mezzi toni” o “half toning” o “clustered dot-order” Dithering e diffusione dell’errore Tutti i dispositivi di output sono in grado di riprodurre un numero limitato di colori. Più una stampante è economica, minore è il numero di colori che riesce a riprodurre. Il dithering permette di visualizzare in modo più efficace dal punto di vista percettivo immagini di elevata qualità su schermi o dispositivi di minore qualità, in grado di riprodurre un numero inferiore di colori. Con il dithering i colori disponibili verranno utilizzati per generare un’approssimazione dell’immagine originale sfruttando una delle caratteristiche dell’occhio umano, cioè la tendenza a miscelare due colori se sono posti troppo vicini (acutezza visiva). Questo uso del dithering per compensare le limitazioni degli schermi di computer viene adottato in software applicativi, come ad esempio i web browser (un browser accoglie immagini da fonti esterne, può essere quindi necessario operare il dithering su immagini di qualità molto elevata). Per superare questi problemi è stata definita una tavolozza standard chiamata “web-safe color palette” che definisce i colori che possono essere visualizzati da qualsiasi monitor con 256 colori, indipendentemente dal sistema operativo (Apple, Windows, Android…) o dal browser utilizzati. I computer vecchi hanno schede video e monitor in grado di visualizzare correttamente soltanto 256 colori che vengono gestiti diversamente dalle piattaforme PC e Ma; a causa di queste differenze rimangono soltanto 216 colori comuni. Se si vuole essere sicuri che le immagini vengano viste in modo soddisfacente da qualsiasi utente (anche quei computer con 8 bit per il colore, ovvero che visualizzano solo 256 colori), bisogna utilizzare per i lavori solo i 216 colori in comune, detti appunto colori “web- safe”. A partire da questi 216 colori, applicando il dithering si è in grado di far percepire all’utente più colori di quanti il dispositivo permette. Il dithering è una forma di rumore aggiunto a un segnale con una opportuna distribuzione casuale di pixel “sbagliati” che però danno come risultato una migliore qualità percepita dell’immagine. Elaborazione delle immagini Uno dei vantaggi principali di avere immagini digitalizzate è l’enorme flessibilità e facilità nel poterle elaborare. Elaborare un’immagine significa operare sull’informazione con contenuta nei singoli pixel, applicare procedure per modificare i pixel per produrre una nuova immagine, trasformare i pixel dell’immagine originaria secondo una fissata regola di trasformazione. I principali obbiettivi sono: - Eliminare disturbi (Image restoration) - Esaltare particolari (Image enhancement) - Estrarre informazioni (Image analysis) Elaborare le immagini significa manipolare l’informazione in esse contenuta; le informazioni sono di due tipi: - Il valore del pixel - La posizione del pixel nell’immagine Esistono tre diversi tipi di elaborazioni: - Elaborazioni puntuali: il valore di un pixel viene modificato utilizzando solo l’informazione presente nel pixel stesso - Elaborazioni locali: si tiene conto anche dei pixel circostanti - Elaborazioni globali: si tiene conto di tutta l’immagine Tutti e tre i tipi di elaborazione operano su tutti i pixel dell’immagine o della porzione dell’immagine che si intende elaborare. Elaborazioni puntuali Ogni pixel dell’immagine viene modificato sulla base solo del suo valore di partenza (non dipende dagli altri pixel dell’immagine). ES. consideriamo un’immagine ecografica medica; un organo interno potrebbe essere caratterizzato da uno specifico livello di grigio nell’immagine ecografica. Potremmo quindi voler sostituire tutti i pixel con quel determinato valore di grigio con un altro colore molto differente dai grigi circostanti in modo da evidenziare l’organo interno, oggetto di indagine ecografica. Definiamo p(m,n) il valore del pixel alla riga m e colonna n dell’immagine originaria e P(m,n) il valore del medesimo pixel nell’immagine elaborata. Chiediamo la sostituzione di tutti i pixel che valgono K con il valore K’. L’algoritmo per la modifica di un singolo pixel di coordinate (m,n) è quindi il seguente: if P(m,n)= K then P(m,n)K’ il valore del pixel nell’immagine elaborata diventa K’ se il valore iniziale è K, altrimenti non viene fatta alcuna azione (il valore del pixel rimane invariato se il valore iniziale è diverso da K). Questa operazione va fatta per tutti i pixel dell’immagine, quindi un abbozzo dell’algoritmo completo sarebbe: do if P(m,n)= K then P(m,n)K’ passo al pixel successivo while (ho ancora pixel da esaminare) (un altro esempio di elaborazione puntuale è l’operazione di sogliatura, threshold, dove considero ogni pixel dell’immagine, uno ad uno, e se ha un valore inferiore a una data soglia viene modificato al valore K’, altrimenti non viene effettuata alcuna operazione sul pixel) Elaborazioni locali Per calcolare il valore modificato di ogni pixel, occorre prendere in considerazione anche i valori dei pixel vicini al pixel in esame. L’insieme dei pixel vicini a p(m,n) viene detto intorno di p. Un esempio di elaborazione locale è dato dal filtro di media su un intorno di 3x3 pixel centrato nel pixel da elaborare; sostituisco al valore del pixel la media di tutti i pixel che lo circondano. Questo procedimento va applicato ad ogni pixel dell’immagine. Il concetto di frequenza spaziale non deve essere confuso con quello di frequenza elettromagnetica. La frequenza spaziale indica infatti quanto i pixel variano nello spazio dell’immagine, in formula si può sintetizzare: FS= lunghezza in pixel dell’intera riga dell’immagine/lunghezza in pixel del segmento composto da pixel tutti uguali La convoluzione è un procedimento che permette di definire una maschera (una matrice di numeri, detti pesi, di piccola dimensione: ad es 3x3) e di far scorrere quest’ultima sopra l’immagine, centrandola sopra ciascun pixel in modo sequenziale. La convoluzione permette di calcolare i prodotti tra i valori dei pixel e i pesi relativi alle varie posizioni e, infine, di fare le somme di tutti i pixel considerati. La convoluzione è un’elaborazione di tipo locale: si sommano i valori dei pixel dell’intorno del pixel considerato (interni alla maschera) e si moltiplicano per i pesi definiti nella maschera. Ad esempio: in una media aritmetica di intorno 3x3, avremo una maschera di 9 caselle contenenti ognuna lo stesso peso pari a 1/9. La convoluzione è qualcosa di più potente di una semplice media, poiché è possibile pesare in modo differente i valori all’interno della maschera. Ad esempio, data la seguente maschera  problemi nella creazione di un video digitale è la grande quantità di spazio occupato da quest’ultimo. ES. consideriamo un filmato a colori con le seguenti caratteristiche 640x480 risoluzione video (ogni fotogramma contiene 640x480 pixel) Ogni pixel è costituito da 24 bit (8 per banda, 3 Byte) Il filmato ha 25 fotogrammi al secondo: 25 fps (frame per second), quanto occupa ogni fotogramma? 640 x 480 x 24 bit E quanto occupa 1 secondo di video? In 1 secondo ci sono 25 frame, quindi 1s di filmato occupa 640 x 480 x 24 bit x 25 bit Come le immagini singole, anche le sequenze di immagini (video) possono essere compresse con tecniche senza perdita di dati (lossless) oppure con perdita di dati (lossy); queste ultime permettono di comprimere fino a 100 volte. In base alla durata e alla occupazione del video, è possibile calcolare il flusso di dati necessario alla sua codifica (bitrate). Il bitrate esprime la quantità di informazione digitale necessaria a memorizzare 1 secondo di video e si misura in Kbps. Le immagini tridimensionali Esiste un altro modo di rappresentare in modo digitale un’immagine, tipicamente usato nei sistemi CAD (software per architetti); si parla di immagini vettoriali (occupano meno spazio se si tratta di forme geometriche e per visualizzarle bisogna convertirle in raster o bitmap), tridimensionali. Si forniscono le coordinate del punto di partenza e del punto di arrivo che verranno congiunti con una linea  Come vengono realizzate le immagini tridimensionali? Prima di tutto occorre definire la posizione nello spazio dell’oggetto da creare dando le sue coordinate (x,y,z)  successivamente occorre eseguire i seguenti passi: 1. generazione della struttura Wireframe (filo di ferro): si crea l’intelaiatura dell’oggetto (i soli fili metallici non sono sufficienti per ottenere un’immagine realistica) 2. rendering (definizione delle superfici): occorre definire il punto di vista dell’osservatore e coprire i wireframe con delle texture, successivamente con appositi algoritmi si cancellano gli spigoli e le superfici nascoste (cioè non visibili dal punto di vista dell’osservatore). Solitamente vengono utilizzati algoritmi come lo z- buffer (aree di memoria); per ogni oggetto della scena vengono calcolate le coordinate della sua proiezione sull’immagine che si sta generando, e per ogni pixel di questa proiezione viene determinata la distanza dall’osservatore. Se questa distanza è minore di quella attualmente memorizzata nello z-buffer, il punto viene sostituito dal punto appena determinato, poiché vuol dire che il nuovo punto risulta essere più vicino all’osservatore di quello analizzato in precedenza. Un algoritmo più efficiente è il ray casting e affina lo z-buffer: un raggio immaginario incontra l’oggetto da rappresentare, lo attraversa, prosegue per poi uscire dall’oggetto stesso. Il secondo punto che incontra è naturalmente invisibile, dunque può essere cancellato. 3. definizione dell’illuminazione dell’immagine: per definire le proprietà dell’illuminazione della scena si devono considerare i contributi della luce ambientale, della luce diffusa e della luce speculare; la luce ambientale è quel livello di illuminazione che raggiunge comunque tutti i punti della scena, anche quelli non direttamente illuminati. Ogni oggetto rifletterà in tutte le direzioni una quantità di luce proporzionale alla intensità della luce ambientale, secondo un fattore che definisce le caratteristiche di riflessione dell’oggetto. Per luce diffusa si intende la luce che un oggetto riflette in tutte le direzioni in modo uniforme (non speculare), indipendentemente dalla posizione dell’osservatore. Infine, l’illuminazione speculare è direttamente collegata alla riflessione direzionale della luce. Il parametro di specularità determina l’intensità dei riflessi speculari che si formano su una superficie, quando l’angolo tra la normale e la direzione di osservazione è uguale o vicino all’angolo tra la normale e la direzione di illuminazione. Ray tracing È un algoritmo che in un approccio unico comprende tutti gli aspetti del rendering. Si basa sul principio della reversibilità di un raggio di luce; sfruttando il principio fisico di reciprocità, si segue la storia del raggio muovendosi al contrario (backward ray tracing), come se i raggi uscissero dall’occhio e tendessero ad andare verso la sorgente di luce. In questo modo si esplorano solo i raggi utili, cioè quelli che raggiungono effettivamente l’occhio. Integrazione multimodale: vista, udito e tatto Applicazioni e interfacce multimediali utilizzano anche l’udito e la percezione aptica (tatto) oltre che la percezione visiva; ad esempio vi sono applicazioni didattiche che vengono sempre più frequentemente sviluppate e sono in grado di utilizzare più canali percettivi, per migliorare o rendere più naturale l’apprendimento, supportare inclusione. Vista, udito e tatto sono profondamente integrate nell’essere umano e sono caratterizzate da proprietà complementari che consentono una ottimizzazione della nostra percezione del mondo che ci circonda: si parla di integrazione multimodale; consideriamo ad esempio la risoluzione spaziale, ovvero come percepiamo lo spazio attraverso i nostri sensi: - la vista ha la migliore risoluzione spaziale: percepiamo facilmente posizioni e oggetti nello spazio tridimensionale che ci circonda e le loro relazioni - il tatto consente una risoluzione spaziale più limitata: possiamo ad esempio prendere in mano un oggetto e percepirne proprietà spaziali (dimensioni, orientamento, forma ecc.) - attraverso l’udito possiamo percepire movimenti di suoni nello spazio (si pensi ad esempio al Surround nel cinema), ma non abbiamo la possibilità di percepire con precisione un punto preciso da dove il suono si propaga o il percorso preciso di una sorgente sonora in movimento. La vista ha la migliore risoluzione spaziale, seguita da tatto e infine dall’udito. Consideriamo ora la risoluzione temporale, ovvero come percepiamo eventi nel tempo: - la vista in questo caso ha la peggiore capacità dei tre canali sensoriali considerati. La percezione del movimento nel cinema nasce dallo sfruttamento di questa caratteristica (o limite) del sistema visivo umano: osservando fotogrammi velocemente (almeno dieci al secondo), non vengono percepiti i singoli fotogrammi, il sistema visivo integra le informazioni e si percepisce il movimento - il tatto consente di percepire vibrazioni fino a 700Hz (700 Hertz, ovvero 700 vibrazioni al secondo) - l’orecchio ha la migliore risoluzione temporale, dell’ordine dei millisecondi: se voglio valutare o misurare il tempo utilizzando i sensi, non mi affido alla visione ma all’udito (come ha fatto Galileo Galilei nel suo famoso esperimento del piano inclinato.