Corsi di Laurea in Biotecnologie (primo anno interfacoltà) Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università degli Studi di Milano Sesta lezione: Rappresentazione dell’informazione multimediale (Capitolo 9) Informatica di base – Linea 1 2 Prima parte Dove eravamo arrivati? Informatica di base – Linea 1 3 Durante la scorsa lezione… • Abbiamo visto cosa vuol dire rappresentare l’informazione • Alcuni esempi semplici: – come si rappresenta in binario un numero in base decimale (e viceversa) – come si rappresentano i caratteri, i testi senza formattazione, i testi con formattazione • Esistono anche altri tipi di informazione: immagini, audio, video, ecc. Informatica di base – Linea 1 4 Seconda Parte Codifica delle immagini Informatica di base – Linea 1 5 Immagini digitali • L’immagine digitale è una rappresentazione di un’immagine bidimensionale tramite un’opportuna serie di valori: – immagine bitmap: i valori formano una matrice di punti, ogni punto (=pixel) indica le caratteristiche dell’immagine da rappresentare • es. intensità del colore – immagine vettoriale: insieme di punti uniti in linee e curve, a loro volta unite in forme più complesse Informatica di base – Linea 1 6 Cos’è un pixel? • Lo schermo di un computer è suddiviso in una griglia di punti chiamati pixel (=picture element) – sul mio portatile: 1280 x 800 pixel • Il computer visualizza ogni pixel nel colore dell’immagine da rappresentare: – maggiore è il numero di pixel in ogni riga e colonna, maggiore risulta la risoluzione dell’immagine Informatica di base – Linea 1 7 512x512 punti 256x256 punti 128x128 punti 64x64 punti Informatica di base – Linea 1 8 Rappresentazione delle immagini in BN Informatica di base – Linea 1 9 Rappresentazione delle immagini in BN • Dividiamo l’immagine in pixel e numeriamo i pixel: 1 2 3 4 5 6 7 8 9 • Usiamo il bit 0 per indicare il bianco, e il bit 1 per indicare il nero: 0000 0000 1101 1100 0111 0111 0000 0000 prima riga seconda riga terza riga quarta riga 10 Rappresentazione delle immagini in scala di grigio Informatica di base – Linea 1 11 Rappresentazione delle immagini in scala di grigio 1 2 3 4 5 6 7 8 9 .. • Non basta più un singolo bit per rappresentare il colore di ogni pixel! • Quanti diversi tipi (intensità) di grigio vogliamo usare? • Ad esempio, se vogliamo rappresentare 256 diversi tipi di grigio, quanti bit ci servono? Informatica di base – Linea 1 12 Scala di grigio • Per rappresentare 256 intensità di grigio, ci serve 1 byte per ogni pixel – ricordati: con 1 bit si indicano 2 valori, con 2 bit 4 valori, con 8 bit 28=256 valori • Il numero di bit necessari per rappresentare un pixel viene chiamato profondità del colore Informatica di base – Linea 1 13 Scala di grigio • Per esempio, potremmo decidere che: – 0000 0000 corrisponde al nero – 0000 0001 è appena più chiaro del nero – 0000 0010 è ancora un po’ più chiaro... –… – 1111 1111 corrisponde al bianco Informatica di base – Linea 1 14 256 livelli di grigio 64 livelli di grigio 16 livelli di grigio 8 livelli di grigio Informatica di base – Linea 1 15 E i colori? • I metodi di codifica del colore sono basati soprattutto sulla percezione umana: – l’occhio umano distingue colori compresi tra 0.4 e 0.8 m di lunghezza d’onda • Nella nostra percezione del colore, un gran numero di colori può essere rappresentato come somma di tre colori primari Informatica di base – Linea 1 16 Digitalizzare i colori • Per rappresentare i colori, si usano le combinazioni di tre componenti: RGB (Red Green Blue) Informatica di base – Linea 1 17 Digitalizzare i colori • Usando un byte per ogni componente: – Rosso: 1111 1111 0000 0000 0000 0000 – Verde: 0000 0000 1111 1111 0000 0000 – Blu: 0000 0000 0000 0000 1111 1111 – Nero: 0000 0000 0000 0000 0000 0000 – Bianco: 1111 1111 1111 1111 1111 1111 – Giallo: 1111 1111 1111 1111 0000 0000 l’intensità di ogni componente è rappresentata da un numero compreso fra 0 e 255 Informatica di base – Linea 1 18 Quanto spazio occupano le immagini? • La dimensione di un’immagine è data dal numero di pixel di cui l’immagine si compone, moltiplicato per lo spazio necessario per memorizzare ogni pixel 1. Es. BN: immagine di 32 pixel, 1 bit per pixel 32 bit = 4 byte 2. Es. scala di grigi: immagine di 32 pixel, 1 byte per pixel 32 byte Informatica di base – Linea 1 1 2 3 4 5 6 7 8 9 19 Una foto digitale • In genere una fotografia digitale ha qualche milione di pixel (assumiamo 5 milioni) • Per ogni pixel, servono almeno 3 byte • Dimensione: 5 x 106 x 3 byte = 15 milioni di byte = 15MB “Mmm, ma le foto che ho sul mio computer non occupano così tanto spazio!” Informatica di base – Linea 1 20 La compressione: idea • In molte immagini, capita spesso di avere pixel vicini dello stesso colore • Al posto che scrivere “bianco, bianco,..., bianco,” si può scrivere “8 volte bianco” 1 2 3 4 5 6 7 8 9 .. Informatica di base – Linea 1 21 Compressione dell’informazione • E’ possibile modificare l’informazione in modo che occupi meno spazio: – viene cambiata la rappresentazione in modo da utilizzare un numero inferiore di bit • Due tipologie di compressione: – compressione lossless (= “senza perdita”) – compressione lossy (= “con perdita”) Informatica di base – Linea 1 22 Compressione lossless • Dall’informazione compressa si può tornare all’originale senza perdita di dati: – adatta per la compressione di programmi, documenti di testo, ecc. • che non ammettono neanche piccoli errori di decompressione – la tecnica tipo quella dell’esempio “8 volte bianco” è lossless e prende il nome di “run-length” Informatica di base – Linea 1 23 Compressione lossy • Per alcuni formati è accettabile che il file compresso abbia meno informazioni di quello originale: – immagini, video, musica • Esempio: – lossless: “1 bianco, 1 grigio chiarissimo, 1 bianco” – lossy: “3 volte bianco” • L’informazione viene compressa maggiormente: – ma non è possibile riottenere l’originale Informatica di base – Linea 1 24 Il formato JPEG • I file JPEG (estensione “jpg”) sono immagini compresse in modo lossy • Diversi programmi di disegno permettono di impostare il fattore di compressione: – maggiore fattore di compressione minore dimensione e minore qualità dell’immagine 25 Prova a casa • Esistono diversi programmi che effettuano compressioni lossless • Prendi un file di testo (possibilmente lungo): – usa il programma di compressione di Windows (o similare) per compattarlo (“Invia a” “Cartella compressa”) – confronta la dimensione originale con quella del file compattato • Prendi un’immagine JPG o un file MP3 e prova a compattarli: – non dovresti ottenere nessun miglioramento relativo alle dimensioni, i file sono già compattati in modo lossy Informatica di base – Linea 1 26 Le immagini, un’altra prospettiva • Se dovessimo rappresentare un disegno geometrico, conviene usare una rappresentazione di tipo bitmap? • Non potremmo memorizzare informazioni del tipo: – “c’è un triangolo con i vertici in queste posizioni [...], i cui lati sono spessi [...], dentro è bianco, i lati sono neri” Informatica di base – Linea 1 27 Il formato vettoriale • Diagrammi, planimetrie, disegni tecnici in generale vengono memorizzati in formato vettoriale – Vantaggi: • se il disegno è semplice, occupano molto meno spazio • si può ingrandire una parte del disegno, mantenendo la stessa qualità dell’immagine – Svantaggio: • non si adattano a rappresentare immagini generiche, come le fotografie Informatica di base – Linea 1 28 Ingrandimento di immagine bitmap Informatica di base – Linea 1 29 Ingrandimento di immagine vettoriale Informatica di base – Linea 1 30 Terza Parte Codifica del suono Informatica di base – Linea 1 31 Principio generale • Il primo passaggio nell’operazione di digitalizzazione consiste nell’individuare come rendere discreta una fonte che in realtà è continua • Le immagini (es. una foto stampata fatta con una macchina analogica) in realtà non sono divise in pixel: – dividiamo in pixel perché i computer non possono trattare informazione continua Informatica di base – Linea 1 32 Continuo e discreto, in matematica • In matematica un insieme totalmente ordinato è continuo se tra due elementi ne esiste sempre uno compreso – R è un insieme continuo • Un insieme che non è continuo si dice discreto – N è un insieme discreto Informatica di base – Linea 1 33 Continuo e discreto in informatica • In informatica è molto difficile (se non impossibile) trattare insiemi continui • Si approssimano gli insiemi continui ad insiemi discreti discretizzazione – come abbiamo fatto con le immagini dividendole in pixel Vai a vedere qua: http://it.wikipedia.org/wiki/Discreto#La_discretizzazione Informatica di base – Linea 1 34 Come codifichiamo il suono? periodo ampiezza • Oscillazione = variazione di pressione (vibrazione di un oggetto trasmessa nell’aria) • Frequenza = numero di oscillazioni al secondo – maggiore è la frequenza, più acuto (alto) risulta il suono • Intensità/forza della pressione = ampiezza dell’oscillazione Informatica di base – Linea 1 35 Digitalizzazione del suono • Convertitore analogico-digitale (ADC): campiona l’onda a intervalli regolari e la passa alla memoria sotto forma di numeri binari • Convertitore digitale-analogico (DAC): ricrea l’onda elettrica più semplice che “passa” per tutti i punti rappresentati dal valore dei campioni Informatica di base – Linea 1 36 Il campionamento • Si prendono le misure a intervalli regolari • La frequenza di campionamento corrisponde al numero di misurazioni al secondo: – maggiore è la frequenza, più accurata sarà la registrazione Informatica di base – Linea 1 37 Il campionamento • Due problemi principali: – quanto frequente deve essere la campionatura? • di solito nell’ordine dei 40.000 Hz (Hz=1/sec=sec-1) – quanti bit vogliamo usare per ogni campione? • nei CD audio, 2 byte • Che dimensione occupa un file audio? – il numero di campioni moltiplicato per il numero di bit di ogni campione • Quanti sono i campioni? – la durata dell’audio (in secondi) per la frequenza Informatica di base – Linea 1 38 Troppo spazio? • La dimensione di un file audio digitale: – durata: 60 secondi – per ogni secondo, 44.100 campioni da 16 bit ciascuno (moltiplicato per 2 canali stereo) 60 (sec) x 44.100 (1/sec) x 16 (bit) x 2 = 84.672.000 bit = 10.584.000 byte = 10,5 MB Un’ora di musica: 635 MB! Informatica di base – Linea 1 39 Compressione lossy • Anche i file audio possono essere compressi • Formato CD audio: – circa 600 MB per un’ora di musica • Formato compresso (tipo MP3, WMA, ecc.): – circa 60 MB per un’ora di musica Informatica di base – Linea 1 40 Filmati • L’idea è la stessa dei cartoni animati: – immagini vengono visualizzate in rapida sequenza • ogni immagine prende il nome di frame – nell’ordine di qualche decina al secondo • Compressione lossy: – non si memorizzano i singoli fotogrammi, ma le differenze rispetto al fotogramma precedente Informatica di base – Linea 1 41 Quarta parte Tiriamo le somme Informatica di base – Linea 1 42 Codifica dell’informazione • Qualunque informazione può essere rappresentata attraverso una sequenza di bit: – a patto che sia discreta (e finita) – il modo in cui viene rappresentata l’informazione influenza: • lo spazio che occupa l’informazione quando viene memorizzata • l’efficienza degli algoritmi che trattano l’informazione Informatica di base – Linea 1 43 Codifica dell’informazione Informatica di base – Linea 1 44 Compressione • In molti casi è possibile comprimere l’informazione • La compressione permette di rappresentare l’informazione occupando meno spazio: – ma spesso si rende necessaria la decompressione prima di poter trattare l’informazione – quindi si peggiorano i tempi necessari per elaborare l’informazione Informatica di base – Linea 1 45 E se volessimo rappresentare un tipo diverso di informazione? • Abbiamo trattato solo alcuni esempi di informazione – ce ne sono molti altri! • Esempio: come possiamo rappresentare una una sequenza di DNA? Informatica di base – Linea 1 46 Rappresentazione del DNA: prima soluzione • Usiamo un carattere per ogni base azotata: – A: adenina, G: guanina, C: citosina, T: timina • Quanto spazio è necessario per rappresentare in questo modo ogni base di una molecola di DNA? – per rappresentare un carattere (ASCII esteso) serve 1 byte Informatica di base – Linea 1 47 Rappresentazione del DNA: facciamoci furbi! • Quanti valori differenti può assumere ogni base? – quattro! • Quindi, quanti bit sono necessari per rappresentare ogni base azotata? – solo 2 • Rappresentiamo ogni base con 2 bit. Esempio: – Adenina: 00; Guanina: 01; Citosina: 10; Timina: 11 Informatica di base – Linea 1 48 Esercizi • “Fatevi delle domande e datevi delle risposte” 1. considerate delle immagini con un certo numero di pixel e una certa profondità di colore: quanto spazio occupa quell’immagine se non viene compressa? 2. considerate un suono di una certa durata, campionato ad una certa frequenza con campioni di una certa dimensione: quanto spazio occupa quel suono se non viene compresso? Informatica di base – Linea 1 49 Esercizi • Considerate un video senza audio con un certo numero di frame per secondo, in cui ogni frame abbia un certo numero di pixel e una certa profondità del colore. Quanto spazio occupa questo video? – E se ci fosse anche l’audio? Informatica di base – Linea 1 50