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: Codifica dell'Informazione e Rappresentazione Digitale, Schemi e mappe concettuali di Elementi di Informatica

Fondamenti di informatica: codifica dell'informazione e rappresentazione digitale. Analisi di bit, byte, unità di misura e tecniche di codifica per testo, immagini, suoni e video. Metodi di compressione lossless e lossy con esempi e tabelle comparative. Approfondimento sulla storia dell'informatica e la nascita del calcolatore, evidenziando la codifica tramite sistemi di simboli. Esplorazione della riduzione dei simboli e dell'uso della rappresentazione binaria. Analisi delle unità minime di informazione per immagini (pixel), suoni (campioni) e video (fotogrammi), con panoramica su memorizzazione e compressione dati.

Tipologia: Schemi e mappe concettuali

2024/2025

Caricato il 16/10/2025

martina-esposito-5zn
martina-esposito-5zn 🇮🇹

5

(2)

9 documenti

1 / 16

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Contenuti A0 - Introduzione all'informatica
Informatica come disciplina
La progettazione dei contenuti di questo insegnamento di Informatica si fonda sulla concezione
dell'informatica come disciplina scientifica e non soltanto sul ruolo che l'informatica ha assunto nella
società contemporanea. A tal fine, si riporta di seguito un passo significativo del Manifesto
dell'Informatica, un documento ufficiale che il GRIN (http://www.grin-informatica.it), l'Associazione
Italiana dei Docenti di Informatica, ha sottoscritto per definire il corretto approccio alla disciplina
informatica e al suo insegnamento.
L'informatica è un elemento essenziale della società moderna, non solo perché necessaria al
normale svolgimento di quotidiane attività, ma anche in quanto il suo sviluppo plasma e
determina quello dell'intera società. Non esiste campo dell'attività umana in cui le scoperte
dell'informatica non abbiano lasciato il segno. L'uso del calcolatore, infatti, è uscito dai campi
tradizionali del calcolo scientifico per entrare in tutte le aree della produzione industriale, dalla
medicina all'editoria. Due miliardi di persone si collegano ad Internet. Centinaia di milioni di
miliardi (il numero non è un errore di battitura) di transistor – i componenti elementari delle
tecnologie dell'informazione – popolano i prodotti che ci circondano, dall'automobile
all'elettrodomestico, dalla pompa di benzina al videogioco, per l'equivalente della metà del
valore economico di questi oggetti. Centinaia di miliardi di istruzioni software, manifestazioni di
intelligenza umana, animano questi componenti e attraverso di essi tutti i processi che
caratterizzano la nostra società moderna.
Nel linguaggio comune il termine “informatica” viene usato per riferirsi a tre aspetti tra loro
distinti, seppur collegati:
1. operativo: un insieme di applicazioni e manufatti (i computer);
2. tecnologico: una tecnologia che realizza quelle applicazioni;
3. culturale: una disciplina scientifica che fonda e rende possibile quella tecnologia.
L’informatica come insieme di applicazioni è la percezione della persona comune; “conoscere
l’informatica” significa “saper usare le applicazioni”. L’informatica come tecnologia è la
percezione del tecnico (del perito, del laureato, dello specialista, ciascuno al suo livello di
competenza); “conoscere l’informatica” significa in questo caso “saper realizzare le
applicazioni”. L’informatica come scienza dovrebbe essere invece patrimonio di ogni persona
con educazione superiore. Come i principi della fisica, della matematica o della chimica sono
utili anche e soprattutto come modello interpretativo della realtà, e non perché chi li conosce
possa diventare un fisico, un matematico, o un chimico, così i principi fondamentali
dell’informatica sono in grado di fornire modelli di interpretazione e una strumentazione culturale
utile nella vita comune della persona colta che deve affrontare le sfide del mondo moderno.
In altre parole, si può pensare all'informatica come alla scienza che si occupa dei seguenti temi:
lo studio dei fondamenti teorici della scienza dell'informazione;
la definizione di algoritmi per l'elaborazione automatica delle informazioni;
la realizzazione (implementazione) di questi algoritmi;
e, infine, l’uso del calcolatore.
In definitiva, l’informatica non riguarda i computer più di quanto l’astronomia riguardi i telescopi.
Lo studio dell'informatica è quindi importante perché:
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Fondamenti di Informatica: Codifica dell'Informazione e Rappresentazione Digitale e più Schemi e mappe concettuali in PDF di Elementi di Informatica solo su Docsity!

Contenuti A0 - Introduzione all'informatica

Informatica come disciplina La progettazione dei contenuti di questo insegnamento di Informatica si fonda sulla concezione dell'informatica come disciplina scientifica e non soltanto sul ruolo che l'informatica ha assunto nella società contemporanea. A tal fine, si riporta di seguito un passo significativo del Manifesto dell'Informatica , un documento ufficiale che il GRIN (http://www.grin-informatica.it), l'Associazione Italiana dei Docenti di Informatica, ha sottoscritto per definire il corretto approccio alla disciplina informatica e al suo insegnamento. L'informatica è un elemento essenziale della società moderna, non solo perché necessaria al normale svolgimento di quotidiane attività, ma anche in quanto il suo sviluppo plasma e determina quello dell'intera società. Non esiste campo dell'attività umana in cui le scoperte dell'informatica non abbiano lasciato il segno. L'uso del calcolatore, infatti, è uscito dai campi tradizionali del calcolo scientifico per entrare in tutte le aree della produzione industriale, dalla medicina all'editoria. Due miliardi di persone si collegano ad Internet. Centinaia di milioni di miliardi (il numero non è un errore di battitura) di transistor – i componenti elementari delle tecnologie dell'informazione – popolano i prodotti che ci circondano, dall'automobile all'elettrodomestico, dalla pompa di benzina al videogioco, per l'equivalente della metà del valore economico di questi oggetti. Centinaia di miliardi di istruzioni software, manifestazioni di intelligenza umana, animano questi componenti e attraverso di essi tutti i processi che caratterizzano la nostra società moderna. Nel linguaggio comune il termine “informatica” viene usato per riferirsi a tre aspetti tra loro distinti, seppur collegati:

1. operativo: un insieme di applicazioni e manufatti (i computer);

2. tecnologico: una tecnologia che realizza quelle applicazioni;

3. culturale: una disciplina scientifica che fonda e rende possibile quella tecnologia.

L’informatica come insieme di applicazioni è la percezione della persona comune; “conoscere l’informatica” significa “saper usare le applicazioni”. L’informatica come tecnologia è la percezione del tecnico (del perito, del laureato, dello specialista, ciascuno al suo livello di competenza); “conoscere l’informatica” significa in questo caso “saper realizzare le applicazioni”. L’informatica come scienza dovrebbe essere invece patrimonio di ogni persona con educazione superiore. Come i principi della fisica, della matematica o della chimica sono utili anche e soprattutto come modello interpretativo della realtà, e non perché chi li conosce possa diventare un fisico, un matematico, o un chimico, così i principi fondamentali dell’informatica sono in grado di fornire modelli di interpretazione e una strumentazione culturale utile nella vita comune della persona colta che deve affrontare le sfide del mondo moderno. In altre parole, si può pensare all'informatica come alla scienza che si occupa dei seguenti temi:

● lo studio dei fondamenti teorici della scienza dell'informazione;

● la definizione di algoritmi per l'elaborazione automatica delle informazioni;

● la realizzazione (implementazione) di questi algoritmi;

● e, infine, l’uso del calcolatore.

In definitiva, l’informatica non riguarda i computer più di quanto l’astronomia riguardi i telescopi. Lo studio dell'informatica è quindi importante perché:

● lo sviluppo di algoritmi consente di accrescere le facoltà creative, logiche e cognitive

dell'individuo;

● l’informatica è intrinsecamente multidisciplinare: ogni disciplina prevede una opportuna forma

di organizzazione e trattamento delle informazioni;

● l’informatica offre strumenti per modellare i formalmente problemi e poterne affrontare la

risoluzione in modo efficiente ed efficace;

● le tecnologie dell'informazione sono diventate strategiche in numerosi ambiti applicativi. Esse

non solo semplificano lo svolgimento di compiti realizzabili anche senza calcolatore, ma offrono vantaggi sul lungo termine altrimenti non accessibili Branche dell'informatica Nel sentire comune, l'informatica è vista come una disciplina monolitica. Ogni volta che si pensa ad un informatico, si immagina un esperto capace di risolvere qualsiasi problema legato all'uso dei calcolatori. In realtà l'informatica è una disciplina complessa dove si possono riconoscere numerose specializzazioni. Pertanto è possibile, per non dire frequente, che un esperto sviluppi le proprie competenze rispetto a un sottoinsieme di specializzazioni. A titolo esemplificativo, senza alcuna pretesa di completezza, elenchiamo alcune specializzazioni della disciplina informatica:

● Informatica teorica

○ Teoria dell'informazione

○ Teoria della computazione

○ Algoritmi e strutture dati

○ Teoria dei linguaggi di programmazione

● Informatica applicata

○ Architettura dei calcolatori

○ Sistemi e architetture ( Information Technology - IT)

○ Reti di calcolatori

○ Basi di dati

○ Sicurezza informatica e crittografia

○ Interazione uomo-macchina

○ Intelligenza artificiale

○ Elaborazione digitale dei segnali

○ Programmazione

■ Sviluppo software

■ Sviluppo web

■ Sviluppo sistemi integrati

Inoltre l'informatica può essere coniugata ad altre discipline per dare vita a branche multidisciplinari comead esempio bioinformatica , chimica computazionale , robotica , computer grafica e musicologia computazionale Storia dell'informatica e nascita del calcolatore Perché si possa arrivare all'informatica come la intendiamo oggi è stato necessario sviluppare parallelamente due diversi aspetti: quello tecnologico e quello filosofico (in particolare logico- matematico). La serie di eventi, idee e scoperte che culmina con i moderni calcolatori ha quindi una moltitudine di protagonisti, disseminati in un arco temporale di almeno 4000 anni, con molte storie parallele. Per quanto il racconto possa essere avvincente e ricco di colpi di scena, non è questa la sede per una esposizione esaustiva. Ci si limiterà pertanto a citare solo alcuni degli aspetti cruciali: quelli più funzionali alla comprensione del pensiero informatico e del funzionamento del calcolatore.

Nel 1939, fu la volta del matematico e fisico John Vincent Atanasoff e del suo allievo Clifford Berry i quali costruirono l’Atanasoff Berry Computer, meglio noto come ABC. Si tratta del primo calcolatore digitale totalmente elettronico, ma mai brevettato. Nel 1945, John von Neumann definisce l'architettura per calcolatori digitali programmabili tutt'ora in uso nella maggior parte dei dispositivi moderni di questo tipo. La peculiarità dell'architettura di von Neumann risiede nel fatto che dati e programmi condividono la stessa memoria. Nel 1946 venne presentato l’ENIAC, il primo calcolatore elettronico basato interamente su tecnologia a valvole. Progettato presso l’Università della Pennsylvania, fu il primo vero calcolatore dell’era elettronica in quanto eliminava tutti i dispositivi meccanici. L’ENIAC era in grado di compiere operazioni molto complesse in pochissimo tempo per l'epoca, ma pesava 300 tonnellate e occupava 170 metri quadrati. Quella delle dimensioni rimase per lungo tempo una delle più grandi sfide dell’industria dei calcolatori. Nel 1948, Claude Shannon introdusse il termine bit (contrazione di binary digit ), da lui coniato per designare l'unità elementare binaria di informazione ( vero e falso , o 0 e 1). Generazione 2: I transistor Nel 1954, l’IBM propose il primo calcolatore commerciale con memoria su nastro magnetico. Tra le più importanti innovazioni di quegli anni, vi furono l'uso dei transistor al posto dei tubi a vuoto e l’evoluzione dei linguaggi di programmazione. Nel 1959 venne lanciato l’IBM 705, che usava il FORTRAN, un linguaggio di programmazione molto più vicino a quello umano rispetto alle istruzioni comprensibili dal calcolatore. I problemi principali che ostacolavano la diffusione commerciale del calcolatore restavano i costi elevati e la dimensione di queste macchine. Generazione 3: I circuiti integrati Il problema delle dimensioni durò fino al 1964, quando l'azienda italiana Olivetti introdusse Programma 101 , da molti considerato il primo personal computer (PC) della storia, in quanto disponeva delle principali caratteristiche dei grandi calcolatori dell'epoca, ma era sufficientemente compatto da stare su una scrivania. Tuttavia non aveva uno schermo: le informazioni erano trasmesse all'utente per mezzo di un nastro di carta stampata. Parallelamente, la Digital Equipement Corporation introdusse il suo primo minicomputer, il PDP-8, dotato di uno schermo molto rudimentale (sostanzialmente un oscilloscopio). Generazione 4: Il microprocessore Agli inizi degli anni ’70, la Intel Corporation sviluppò il microprocessore , il primo circuito integrato capace di contenere l’intera unità di calcolo di un calcolatore. In seguito venne commercializzato quello che viene oggi considerato il primo PC della storia per come lo intendiamo oggi, l'Apple II, con il suo sistema operativo chiamato Apple Dos. Solo quattro anni dopo, nel 1981, l’IBM brevettò il suo primo PC, destinato a imporsi come standard di riferimento con il sistema operativo MS-Dos prodotto dalla software house Microsoft. Generazione 5: Il calcolo parallelo e la rete Tra gli anni '80 e '90 si sono affermate in rapida successione tecnologie come le interfacce grafiche, la possibilità di compiere più operazioni in parallelo, e l'avvento di Internet, coadiuvate da un costante incremento della potenza di calcolo e delle capacità di memorizzazione. Problemi, algoritmi e programmi

Un algoritmo può essere definito come un metodo per risolvere in modo efficiente, univoco, universale, formalmente preciso e finito un problema. Nella sua accezione più ampia, è possibile includere nella categoria degli algoritmi anche una semplice ricetta di cucina oppure il libretto di istruzioni di un elettrodomestico. Entrambi infatti sono una successione di istruzioni precise per la realizzazione di un risultato. Il termine algoritmo deriva dal nome del matematico Muhammad ibn Musa al-Khuwarizmi. Le proprietà fondamentali di un algoritmo sono:

● finitezza delle operazioni da svolgere;

● non ambiguità del linguaggio in cui sono scritte le operazioni da effettuare. Questo significa

che le istruzioni devono essere scritte in un linguaggio codificato e formale;

● universalità della procedura algoritmica, nel senso che essa deve valere per tutti i problemi

dello stesso genere;

● completezza delle operazioni, nel senso che ogni operazione necessaria allo svolgimento del

compito deve essere explicitamente dichiarata. Nonostante sia più semplice affrontare algoritmicamente calcoli matematici, o geometrici, è possibile affrontare nello stesso modo qualsiasi problema, a patto che se ne possa fornirne una definizione formalmente corretta e non ambigua. Questo esercizio di formalizzazione trascende l'uso del computer e aiuta gli individui ad affrontare i problemi in modo astratto. Va notato che ogni problema può essere affrontato e descritto in molti modi diversi; quindi non esiste un unico algoritmo per la risoluzione di un problema. Questo significa che lo sviluppo di algoritmi è un'attività che richiede, tra le altre cose, creatività e ingegno. A tal proposito, vale la pena citare una famosa battuta di Bill Gates (co-fondatore della Microsoft): " Sceglierò sempre un pigro per fare un lavoro difficile perché troverà il modo più facile per farlo ". Si sottolinea inoltre come l'efficacia e la complessità di un algoritmo dipendano anche dall'organizzazione dei dati a disposizione dell'algoritmo per la risoluzione del problema. Esistono molti modi di organizzare i dati, ognuno dei quali ha pregi e difetti. In genere gli aspetti più rilevanti di cui tenere conto sono:

● la quantità di spazio occupato;

● la velocità con cui è possibile reperire un determinato dato;

● la facilità con cui si possono aggiungere, modificare o eliminare dati.

Infine, un programma può essere definito come un algoritmo scritto in un linguaggio comprensibile al calcolatore, che utilizza dati organizzati secondo una determinata strategia ed è vincolato alle risorse disponibili e alle condizioni al contorno del calcolatore sul quale il programma viene eseguito. Codifica dell’informazione

In questo modo, dato un voto, la lunghezza del messaggio codificato sarà pari a due simboli, il doppio rispetto all'unico simbolo richiesto dal codice della Figura 2.3. Si noti inoltre che sono importanti tanto i simboli quanto la posizione che questi occupano nel messaggio. Infatti il significato di “!$” è ben diverso da “$!”. Codifica binaria La rappresentazione dell’informazione numerica può adottare varie tecniche. Normalmente si usa la numerazione decimale posizionale, dove una cifra assume un valore dipendente dalla posizione che occupa nel numero. Per esempio, la cifra “2” nel numero 12 vale 2*100 (dove 0 è la posizione occupata dal 2 nel numero in esame) e nel numero 2987 vale 2*103 (dove 3 è la posizione occupata dal 2 nel numero in esame). Adottando una numerazione in base 10 si hanno 10 cifre con le quali costruire i numeri: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Esistono molti altri tipi di numerazione in cui il numero di cifre è minore a 10, come ad esempio nella numerazione binaria. Questa fu inventata nel XVII secolo da Gottfried Liebniz e si basa sull’utilizzo di soltanto due cifre: 0 e 1. La differenza è che mentre nella numerazione decimale il valore si misura in potenze di 10, nel caso della numerazione binaria il valore si misura in potenze di

  1. A parità di valore da scrivere con la numerazione binaria, è necessario impiegare molte più cifre. Questo tipo di numerazione divenne fondamentale con l’avvento dei calcolatori elettronici, poiché le due cifre 0 e 1 sono intuitivamente associabili ai due possibili stati fisici del calcolatore, come ad esempio passaggio/non-passaggio di corrente attraverso un cavo elettrico; polarizzazione/non- polarizzazione di una sostanza magnetizzabile; c arica elettrica positiva/negativa di una sostanza. Per manipolare ed elaborare informazioni (numeri, testo, immagini, audio, video), il calcolatore ha bisogno che queste siano codificate attraverso un codice composto dai soli simboli di 0 e 1. Tale rappresentazione dell’informazione prende il nome di rappresentazione binaria o rappresentazione digitale. Un bit ( binary digit ) rappresenta l’unità minima di informazione, ossia una sola unità informativa che può avere valore 0 o 1. Per poter rappresentare un numero maggiore di informazioni sarà necessario combinare i bit in sequenze. Ad esempio, si supponga di voler fornire una rappresentazione binaria del codice della Figura 2.4. Ogni informazione, cioè ogni possibile voto, deve avere una rappresentazione binaria diversa dalla codifica degli altri voti, come mostrato nella Figura 2.5. Figura 2.5. Esempio di codifica binaria per i voti di un esame universitario. Si noti che, poiché il numero di simboli che costituiscono il codice binario è due (0 e 1), la lunghezza di ogni informazione è maggiore rispetto all'esempio della Figura 2.4 in cui si erano usati quattro simboli. All'aumentare del numero di bit di un simbolo, aumenta la quantità di informazioni rappresentabili. Ad esempio, nel caso in cui si voglia rappresentare un numero naturale (intero), il numero di bit determina il valore massimo rappresentabile, mentre nel caso di un numero irrazionale (con virgola), il numero di bit determina implicitamente anche la precisione con cui è possibile rappresentarlo. Nel primo caso sono frequenti le rappresentazioni a 8, 16 e 32 bit, mentre nel secondo caso sono più comuni rappresentazioni a 32 e 64 bit. A titolo di esempio, se si volesse rappresentare un numero intero non negativo con 8 bit, le combinazioni possibili sarebbero 28=256, quindi i valori rappresentabili andrebbero da 0 a 255. Unità di misura dell'informazione digitale In informatica, dopo il bit, un'altra unità di misura fondamentale è il byte. Un byte è formato da una sequenza di 8 bit contigui. Un byte può rappresentare 256 informazioni diverse. Questo dipende dal fatto che, avendo 8 bit a disposizione e potendo assumere ogni bit due valori (0 e 1), è possibile definire 28=256 diverse combinazioni di bit.

Come per ogni unità di misura, anche il byte possiede multipli che consentono di rappresentare maggiori quantità di informazioni, tuttavia esistono due diverse scale di misura, spesso confuse anche dagli informatici. Errore comune (riscontrabile anche in Windows o MacOS) è infatti usare i nomi del Sistema Internazionale (SI) per riferirsi ai multipli binari, i cui nomi corretti sono stati standardizzati nel 1998 dalla Commissione Elettronica Internazionale (IEC): 5000*2 = 10000 byte = 9.76 KiB = 10 KB Rappresentazione digitale del testo La codifica binaria può essere utilizzata anche per rappresentare i caratteri alfanumerici, cioè i caratteri alfabetici, i numeri e gli altri simboli usati nella scrittura di testi. A tal fine, è necessario che ogni carattere di scrittura possieda una propria rappresentazione binaria univoca. Si noti che pure segni come le parentesi, le cifre numeriche, gli operatori aritmetici, i segni di punteggiatura e le lettere maiuscole devono avere la propria rappresentazione binaria univoca. I codici attualmente più utilizzati per rappresentare digitalmente i testi sono:

● ASCII Esteso : un codice di 8 bit (1 byte)

● UNICODE: un codice che può essere usato a 8, 16 o 32 bit (1, 2 o 4 byte) e che codifica i

caratteri usati in quasi tutte le lingue vive e in alcune lingue morte, nonché simboli matematici e chimici, cartografici, l'alfabeto Braille, ideogrammi, ecc. In base al numero di bit usati prende il nome di UTF-8, UTF-16 o UTF-32 (per garantire la compatibilità tra i diversi sistemi, la codifica dell'ASCII Esteso è uguale a quella di UTF-8). Il fatto che un codice “sia di 8 bit” significa che la rappresentazione di un singolo carattere occupa 8 bit (ad esempio, la lettera “a” nella codifica ASCII è rappresentata dal codice 01100001) e che, complessivamente, il codice è in grado di rappresentare fino a 28=256 caratteri diversi. Questa considerazione è generalizzabile: dato un codice di N bit possiamo dire che ogni carattere di quel codice occupa N bit e che complessivamente il codice può rappresentare fino a 2N caratteri diversi. Il primo alfabeto codificato è stato l’alfabeto anglosassone. Questo primo codice venne chiamato ASCII ( American Standard Code for Information Interchange ). In origine l’ASCII era a 7 bit, cioè esistevano 27=128 diverse combinazioni di bit per la rappresentazione dei caratteri. Questo significa che ASCII a 7 bit è in grado di rappresentare fino a 128 caratteri diversi.

Si noti come alla lettera maiuscola corrisponde un simbolo diverso rispetto alla corrispettiva minuscola, infatti la lettera “i” corrisponde alla sequenza 01101001. I caratteri maiuscoli e minuscoli sono a tutti gli effetti diversi dal punto di vista della codifica binaria. Si noti inoltre che per decodificare un messaggio è necessario conoscere a priori il tipo di codifica usato. Dall'analogico al digitale La codifica di elementi come suoni, immagini e animazioni presenta aspetti molto diversi rispetto a quella di testi e singoli numeri. Il testo è naturalmente composto da un insieme discreto di simboli (che diventano quindi l'unità minima di informazione), mentre per i numeri ciò che conta è il loro valore (codificato direttamente in binario con la precisione desiderata). Ma quali sono le unità informative minime di un suono o di un'immagine? Suoni e immagini sono descrivibili come segnali , cioè variazioni di una certa grandezza fisica lungo una o più dimensioni: la pressione che varia in funzione del tempo nel caso di un suono, la luce che varia in funzione dello spazio nel caso di un'immagine, o la posizione di un corpo che varia in funzione del tempo nel caso di un'animazione. La particolarità di questi segnali è che sono continui (Figura 2.7): perchè la pressione sonora passi da un valore ad un altro, devono essere attraversati tutti gli infiniti valori intermedi. Lo stesso vale per una fotografia (la transizione tra due colori, per quanto repentina e impercettibile, non può essere immediata) e per il movimento (per andare da un punto ad un altro occorre passare per infiniti punti intermedi). Figura 2.7. Un segnale analogico e il rispettivo segnale digitale Se si volesse dunque usare tutti i valori assunti dal segnale come unità minime informative di suoni e immagini, ci si scontrerebbe con la necessità di una memoria infinita. Per questo motivo, per poter rappresentare suoni e immagini in un calcolatore, è necessario passare dal dominio analogico (continuo) a quello digitale (discreto, composto da un numero finito di punti) attraverso un processo chiamato campionamento. Il campionamento (Figura 2.8) è una tecnica che consiste nel convertire un segnale continuo nel tempo o nello spazio in un segnale discreto, valutandone l'ampiezza a intervalli temporali o spaziali solitamente regolari, in modo da ottenere un numero finito di punti (chiamati campioni). Perché questa operazione non comporti una perdita di informazione o la comparsa di difetti percepibili (chiamati

aliasing ), è necessario che gli intervalli temporali o spaziali a cui si legge il valore del segnale siano più piccoli della metà del più piccolo dettaglio a cui si è interessati (teorema di Nyquist-Shannon). Un numero finito di campioni però non basta a permettere la rappresentazione di un segnale nel calcolatore, è infatti necessario che ogni campione abbia anche una precisione finita, cioè sia rappresentabile con un numero finito di bit. L'operazione con cui il valore di un campione viene arrotondato alla precisione desiderata prende il nome di quantizzazione (Figura 2.8). A differenza del campionamento, l'operazione di quantizzazione non è reversibile, non è cioè possibile ricostruire i valori reali assunti originariamente dal segnale analogico. La quantizzazione è dunque una fonte di distorsione del segnale, che può solo essere mascherata con una tecnica chiamata dithering , ma non può essere eliminata. Figura 2.8. Campionamento e quantizzazione per rappresentare il segnale con un numero finito di numeri a precisione finita. Grazie a campionamento e quantizzazione è possibile ottenere una sequenza digitale di numeri (discreta nel tempo o nello spazio e nell'ampiezza) che approssimi a piacere il segnale continuo originale. Nel caso dei suoni la frequenza di campionamento (il numero di volte al secondo con cui si misurano le variazioni di pressione) determina quali siano i suoni più acuti rappresentabili, mentre la quantizzazione determina la soglia del volume minimo rappresentabile. Nel caso delle immagini il campionamento corrisponde alla risoluzione, e la quantizzazione determina la quantità di colori rappresentabili. Nel caso di un filmato il campionamento nel tempo corrisponde al numero di fotogrammi al secondo, mentre ogni singolo fotogramma lo si può considerare come un'immagine a sé. Rappresentazione digitale delle immagini Per le immagini l’unità minima di informazione è rappresentata dal pixel ( picture element – elemento dell’immagine ). In sostanza si campiona l’immagine attraverso una griglia regolare in cui ogni cella è un pixel e a ogni pixel è associato un colore. Più la griglia è fitta, maggiore sarà il numero di pixel e di conseguenza migliore sarà la risoluzione dell’immagine. Un esempio di griglia di pixel applicata a un’immagine è mostrato nella Figura 2.9. La codifica di un'immagine realizzata in questo modo è chiamata bitmap o raster.

40000 volte al secondo (solitamente 44100 o 48000). Tuttavia, per suoni particolari come la voce, tutte le oscillazioni sopra i 4000 Hz non hanno un particolare contenuto informativo; non è quindi raro vedere codifiche a 8000 campioni al secondo per applicazioni come telefonia o messaggistica vocale. Riguardo alla precisione di ogni campione audio, si è scelto un numero di bit consono a rappresentare la gamma di volumi a cui si è normalmente esposti, dal sussurro fino a rumori forti (ma sotto la soglia del dolore); questo valore è stato fissato a 16 bit. Tuttavia non è raro trovare suoni registrati a 24 bit, in modo da poter sfruttare una precisione maggiore durante le fasi di lavorazione di un prodotto, come può essere un disco musicale. Infine si noti che l'essere umano, in genere, è dotato di due orecchie. Questo gli permette di localizzare la direzione da cui provengono i suoni. Per poter codificare (almeno in parte) questo tipo di informazione, solitamente vengono rappresentati segnali audio stereofonici, cioè composti da due sequenze di campioni, una relativa al canale sinistro ed una al canale destro. Esistono poi codifiche a più canali (come il 5.1, composto da 6 canali indipendenti), che permettono una maggiore precisione spaziale. In definitiva, la rappresentazione binaria di un suono è costituita da una sequenza di campioni, cioè gruppi di bit che descrivono il valore di pressione sonora di ciascun canale. A scopo esemplificativo si può calcolare la memoria necessaria a memorizzare un minuto di musica in qualità CD: 60 secondi x 44100 campioni al secondo x 16 bit per campione x 2 canali = 84672000 bit = 10584000 byte =10336 KiB = 10.1 MiB Rappresentazione digitale dei video Per un video l’unità minima di informazione è rappresentata dal fotogramma, a sua volta composto da pixel. Un video quindi eredita quanto detto relativamente alle immagini, con l'aggiunta però di avere tante immagini quanti sono i fotogrammi di cui è composto, riprodotte ad una velocità sufficientemente alta da fornire, all'occhio umano, l'illusione del movimento. Per via del fenomeno di persistenza delle immagini sulla retina, l'occhio umano fatica a percepire come separate tra loro immagini che si susseguono ad una velocità minima di 10 o 15 fotogrammi al secondo (fps), dunque tale velocità è sufficiente per creare l'impressione del movimento. Tuttavia velocità più elevate consentono di creare un'illusione più realistica, e non è raro trovare codifiche a 25, 30, 50 o 60 fps. Va inoltre considerato che anche in questo caso vale il teorema di Nyquist- Shannon: sarà capitato di vedere video in cui le pale di un elicottero sembrino ferme o girino molto lentamente; questo è il tipico effetto di aliasing temporale che ha luogo quando il movimento da codificare è molto superiore alla velocità con cui si campiona. Materiale registrato a fps più alti (come 120, 240, 300 o addirittura >1000) viene impiegato per la riproduzione in "slow motion" (movimento rallentato), viene cioè riprodotto ad una velocità inferiore per osservare nel dettaglio i movimenti del soggetto del video, altrimenti troppo veloci per essere notati. La tecnica opposta prende invece il nome di "stop motion"; in questo caso i fotogrammi sono registrati a distanza di diversi minuti l'uno dall'altro e poi riprodotti a fps tradizionali, in modo da rendere percepibili movimenti altrimenti troppo lenti per essere notati. Infine si noti che l'essere umano, in genere, è dotato di due occhi, che consentono la cosiddetta visione stereoscopica. Questo permette di valutare la distanza a cui si trovano gli oggetti grazie alle diverse informazioni che ogni occhio riceve. Per poter codificare (almeno in parte) questo tipo di informazione è possibile codificare video stereoscopici , cioè composti da due sequenze di fotogrammi, una relativa all'occhio sinistro ed una all'occhio destro. Queste due sequenze possono essere memorizzate: come aree diverse dello stesso fotogramma; come alternarsi di fotogrammi dell'una e dell'altra sequenza; come sequenze distinte (una successiva all'altra). In definitiva, la rappresentazione binaria di un video è costituita da una sequenza immagini, complete di un'indicazione della velocità a cui vanno riprodotte. A scopo esemplificativo si può calcolare la memoria necessaria a memorizzare un minuto di video in Full-HD a 30 fps:

60 secondi x 30 fps = 1800 immagini, ognuna delle quali con una risoluzione di 1920 colonne x 1080 righe = 2073600 pixel (circa 2 megapixel) 1800 immagini x 2073600 pixel x 24 bit per pixel = 89579520000 bit = 11197440000 byte = 10.43 GiB Elaborazione dei dati multimediali La comodità di codificare il materiale multimediale nei modi descritti in precedenza risiede nel fatto che è possibile applicare modifiche ai dati in maniera molto efficiente sfruttando semplici operazioni matematiche. Consultando la tabella in Figura 2.4, ad esempio, si può notare come la conversione di una lettera maiuscola in una lettera minuscola si può ottenere sommando 32 al numero con cui è codificata. Lo stesso vale per i formati multimediali: se si volesse conferire una tinta rossa ad una foto basterebbe sommare una piccola costante a tutti i byte relativi a quel colore primario, tale da aumentare la quantità totale di rosso che giunge all'occhio. Analogamente, si può simulare l'eco in una registrazione sommando ad ogni campione il campione che lo precede ad una certa distanza. Principali formati multimediali Lo studente più attento si sarà accorto che il numero di bit necessario alla memorizzazione di suoni, immagini e video è decisamente superiore a quanto suggerisce l'esperienza: quasi 1 MiB per una piccola immagine, 10 MiB per un audio di 1 minuto e addirittura 10 GiB per un breve video ad alta qualità. Questa discrepanza trova una giustificazione nel fatto che il modo in cui viene rappresentato nativamente un dato non corrisponde necessariamente al modo in cui viene archiviato in un contenitore. Vi sono infatti 3 modi di memorizzare l'informazione: in modo non compresso, in modo compresso senza perdita di informazioni ( lossless ), e in modo compresso con perdita di informazioni ( lossy ). I metodi di memorizzazione non compressi comportano un'occupazione di memoria che corrisponde alla memoria necessaria per la rappresentazione originale. A fronte di questo utilizzo smodato di memoria vi è il vantaggio di poter manipolare il materiale multimediale in modo diretto, senza passaggi intermedi necessari a convertire le informazioni in una forma comprensibile al calcolatore. Formati di questo tipo sono ideali per le fasi di lavorazione del bene multimediale. Nella tabella seguente si illustrano i nomi di alcuni formati e contenitori di questo tipo: Tipo di dati Esempio di Codifica Esempio di Contenitore Esempio di funzionamento Audio PCM WAV, AIFF Vengono memorizzati tutti i campioni audio nella loro forma originale Immagini Raster/Bitmap RAW, BMP, TIFF Vengono memorizzati tutti i pixel nella loro forma originale Video Raster/Bitmap AVI, MOV Vengono memorizzati tutti i fotogrammi nella loro forma originale Altro (nativa) (nativo) Vengono memorizzati tutti i dati nella loro forma originale

Immagini JPEG, GIF TIFF, JPG Si riduce la quantità di colori disponibili (GIF) o si eliminano i dettagli impercettibili (JPG) Video DV, H264, Divx, 3GPP, WMV, Mpeg

AVI, MP4, MOV,

MKV

Ogni immagine viene divisa in blocchetti e si memorizzano le coordinate dello spostamento di ogni blocco Altro - - Non conoscendo la tipologia di dati non è possibile sapere cosa si può scartare Figura 2.10: A sinistra l'immagine originale, a destra la stessa immagine dopo diversi cicli di salvataggio in JPG. La comparsa di difetti visibili si verifica ad esempio quando si salva sul proprio computer un'immagine e poi la si condivide sui social network, che solitamente ricomprimono le immagini.