Elementi di Informatica e Programmazione La Codifica dell informazione (parte 4) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli! Nel seguito vedremo tipologie di rappresentazioni diverse:! Senza assumere limitazioni sul numero di bit a disposizione: per numeri [notazione binaria, ovvero posizionale con base 2]! Disponendo di un numero di bit limitato:! numeri naturali Tipologie di codici! interi relativi [valore assoluto e segno, compl. a, compl. a 2]! reali [virgola fissa e virgola mobile]! valori logici, caratteri alfabetici, testi! suoni, immagini e sequenze video! codici per la rilevazione e correzione di errori! Codici di compressione (senza con perdita) Daniela Fogli Elementi di Informatica e Programmazione 2 Rappresentazione di informazioni multimediali! Con appositi metodi e codifiche si possono rappresentare informazioni complesse con sequenze di bit:! Immagini! Filmati! Suoni! I problemi collegati alla gestione della rappresentazione, memorizzazione ed elaborazione di queste informazioni sono:! la richiesta di elevate capacità di elaborazione (es: calcoli necessari per riprodurre un video codificato in divx)! occupazione elevata di memoria: per questo si utilizzano tecniche di compressione dei dati che consentono di ridurre la richiesta di memoria Voce Suoni Immagini Filmati La digitalizzazione Informazione continua rappresentazione anche approssimata tramite sequenze di bit Nel calcolatore Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
In cosa consiste la digitalizzazione? Codifica di un suono! Problema: codificare tramite una sequenza di bit una grandezza fisica (es. volume di un suono) i cui valori si assumono variabili in un intervallo continuo! Soluzione: processo di digitalizzazione (o conversione analogica-digitale)! Comprende 2 attività:! Quantizzazione: discretizzazione dei valori attraverso approssimazione con uno dei valori compresi fra quelli previsti nella codifica! Campionamento: se la grandezza inoltre varia anche nel tempo (es. un suono) o nello spazio (es. colore di un immagine) occorre selezionare un insieme finito di valori, ad intervalli (nel tempo o nello spazio) costanti! in una sequenza di bit attraverso campionamento (nel tempo) e quantizzazione (in ampiezza)! Frequenza di campionamento: numero di campioni acquisiti nell unità di tempo (es. numero di campioni al secondo, misurato in Hertz) - Es. frequenza di 5 Hz significa acquisizione di 5 campioni al secondo! Il numero di bit necessari per codificare ogni valore è il parametro che qualifica la quantizzazione - Es. con 8 bit posso codificare 256 valori diversi Per ciascun intervallo di tempo viene scelto l istante di campionamento t i in cui viene rilevato il valore della grandezza La quantizzazione è su 4 livelli, quindi il risultato del campionamento è A 2 A 2 A A A 3 A 3 A La successione (codifica digitale) potrebbe essere Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Rappresentazione dei suoni nei CD audio Dal mondo reale al calcolatore (e viceversa)! Segnali audio: onde analogiche! campionamento + quantizzazione! valori digitali! Frequenza di campionamento: f c = 44. khz (44. campioni) per i 2 canali! Quantizzazione: 6 (2 byte) bit/campione = 65536 valori diversi per campione (numero di livelli di quantizzazione) Dal mondo reale al calcolatore DIGITALIZZAZIONE (campionam. & quantizz.) NB: HW per acquisizione sonora (es. microfono) Dal calcolatore al mondo reale memorizzazione, eventuali elaborazioni! Il numero di bit memorizzati è dunque: N bit = F(durata, f c, bit/campione)! Nello standard CDDA (CD Digital Audio) 7 minuti registrazione richiedono 7 x 6 x 44. x 2 x 2 byte 75 MByte Nel calcolatore CONVERSIONE DIGITALE-ANALOGICA NB: scheda audio riceve i valori digitali e ricostruisce il segnale analogico + diffusori Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
Alcuni formati audio Codifica delle immagini! WAVE:.wav, ma in questo formato i file audio occupano molto spazio! MP3 (MPEG- Layer 3): grande diffusione su Internet. Utilizza tecniche di compressione per ridurre le dimensioni (vedi poi). MPEG nasce da un gruppo di lavoro di standardizzazione! MIDI (Musical Instrument Digital Interface):.mid, i file memorizzano non suoni ma comandi (es. le note musicali di un particolare strumento) che vengono inviati ai dispositivi MIDI per riprodurre i suoni, occupano molto meno spazio dei.wav. Es: tastiera musicale + calcolatore permettono di suonare un brano su tastiera che viene automaticamente trascritto in notazione musicale in un file midi che può poi essere anche modificato! Campionamento:! Nel caso delle immagini è una discretizzazione nello spazio: si divide l immagine in quadrati, per ognuno dei quali si dovrà prelevare un campione che si considera rappresentativo di tutto il quadrato! Questi quadrati sono trattati come elementi di base dell immagine digitale: sono chiamati pixel! Quanti più pixel vengono considerati per unità di superficie tanto più precisa sarà la riproduzione dell immagine (risoluzione)! Quantizzazione: codifica del colore associato a ogni pixel! Immagini in bianco e nero: bit per pixel (b/n)! Immagine a scala di grigi: es. un byte per pixel (256 livelli di grigio)! Immagine a colori: es. con modello RGB (colore ottenuto per sovrapposizione di Rosso Verde e Blu) 3 byte per pixel, uno per ogni colore primario Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione Campionamento e quantizzazione: esempio Campionamento Maggie Cheung dal film Hero di Zhang Yimou (22) Daniela Fogli Elementi di Informatica e Programmazione Daniela Fogli Elementi di Informatica e Programmazione 2
Quantizzazione Codifica bitmap (raster) di immagini Immagine bitmap (o raster): matrice di pixel Per ogni pixel un certo numero di byte es. 3 byte (colori) o byte (b/n) Daniela Fogli Elementi di Informatica e Programmazione 3 L immagine è rappresentata direttamente come matrice di pixel Risoluzione: num. di pixel orizzontali X num. di pixel verticali Ad ogni pixel è riservato un certo numero di bit: bit (per pixel)! 2 informazioni diverse (b/n) 4 bit (per pixel)! 6 colori o livelli di grigio 8 bit (per pixel)! 256 colori o livelli di grigio 6 bit (per pixel)! 64K colori (2 6 = 2 x 2 6 ) 24 bit (per pixel)! 6M = 2 24 colori (più di 6 milioni di colori) Daniela Fogli Elementi di Informatica e Programmazione 4 Immagini bitmap RGB Problemi con immagini bitmap L informazione sul colore di ogni pixel occupa 3 byte, uno per ogni colore primario (rosso, verde, blu) La quantità di colore primario è data da un valore tra e 255 (o equivalentemente è rappresentato da una sequenza di bit a partire da fino a ) R=25, G=72, B=78 R=9, G=85, B=2! Ogni ingrandimento fa perdere qualità (l immagine si sgrana )! per evitare questo problema si può usare la codifica vettoriale! Occupano molta memoria. Possibili soluzioni:! uso di tavolozze (palette)! formati compressi! codifica vettoriale R=255, G=255, B=255 R=, G=, B= Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6
Immagini bitmap: esempio Un immagine RGB occupa: 3 byte x risoluzione verticale x risoluzione orizzontale Esempio: un immagine RGB con risoluzione 24x768 pixel necessita di più di 2 MB Uso di tavolozze (palette)! Spesso un immagine utilizza un numero limitato di colori (scelti comunque tra l insieme ampio di tutti i colori rappresentabili)! Esempio banale: immagine RGB che usa due soli colori (qualsiasi)! Dimensioni senza palette: numero pixel * 3 byte! Idea: il formato memorizza i colori usati in un area specifica (palette) e per ogni pixel si indica quale dei due colori usato e se la ingrandisco si sgrana Insieme dei 6 M colori Tavolozza (2*3 byte) Matrice ( bit per pixel) IMMAGINE CODIFICATA Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8 Esercizio Esercizio Un immagine di risoluzione 24*768 utilizza 256 colori RGB. Quali dimensioni occupa la sua codifica se si utilizza una palette? E se non la si utilizza? Un immagine di risoluzione 24*768 utilizza 256 colori RGB. Quali dimensioni occupa la sua codifica se si utilizza una palette? E se non la si utilizza? Senza utilizzare palette: 24 * 768 * 3 byte = 2 * 3 * 2 8 * 3 byte = 2.359.296 byte Con utilizzo di palette: 256 * 3 byte = 768 byte (per codificare la tavolozza) a cui si sommano 24 * 768 * byte (per la matrice) TOTALE = 768 + 786.432 = 787.2 byte Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 2
I formati di file bitmap Codifica vettoriale di immagini! BMP: formato standard non compresso per MS Windows, 24 bit per pixel, gestisce palette a 2, 6, 256 colori + true color (.bmp)! TIFF (Tagged Image File Format): alta qualità (32 bit per pixel), 6 milioni di colori (24 bit) + ulteriori proprietà, dimensioni file molto grandi, adottato da scanner e macchine fotografiche (.tif) FORMATI COMPRESSI:! GIF (Graphic Interchange Format): formato compresso, 8 bit per pixel (256 colori) (.gif)! PNG (Portable Network Graphics): formato compresso, sviluppato come alternativa al GIF, ma true color + canale per la trasparenza, usato per disegni geometrici, testi, icone, etc. (.png)! JPEG (Joint Picture Experts Group): formato compresso, true color, il più utilizzato per le fotografie (.jpg) Daniela Fogli Elementi di Informatica e Programmazione 2! Le immagini sono rappresentate tramite un insieme di elementi grafici (linee, rettangoli, ellissi, archi e curve)! Memorizzazione come coordinate numeriche o formule matematiche che specificano forma e posizione: occupa poca memoria (es. un cerchio solo centro e raggio, una retta le coordinate degli estremi)! Necessaria un operazione di rendering (rasterizzazione) che, a partire dalla descrizione matematica, produca l immagine raster! Programmi di tipo draw (programmi di grafica vettoriale): es. programmi di CAD, programmi di grafica tridimensionale! Vantaggi:! Controllo accurato di linee e colori! Ingrandimento, riduzione, rotazione senza perdita! Possibilità inserimento testo attorno agli oggetti! Alcuni formati: DXF, DWG, CDR, AI, WMF Daniela Fogli Elementi di Informatica e Programmazione 22 Immagini vettoriali: esempio Codifica di sequenze video! In teoria, una sequenza video è semplicemente una sequenza di fotogrammi (immagini):! campionamento nel tempo (successione di fotogrammi)! ciascun fotogramma rappresentato normalmente (campionamento nello spazio e quantizzazione)! In pratica, le dimensioni risulterebbero troppo elevate. Facendo un conto a spanne, se un immagine occupa MB con 25 fotogrammi al secondo:! 25 MB al secondo! 25 x 6 MB al minuto = circa,5 GB al minuto! Tecniche di compressione specifiche per le sequenze video Daniela Fogli Elementi di Informatica e Programmazione 23 Daniela Fogli Elementi di Informatica e Programmazione 24
Codifica delle informazioni multimediali Eseguire un file multimediale! Un prodotto multimediale (file multimediale) è composto da vari contributi: audio, immagini fisse, video, testo! I vari contributi vengono rappresentati in un unico contenitore (formato generale) che li deve aggregare e rimemorizzare secondo diverse codifiche (a seconda del tipo di contributo)! Ogni contributo è a sua volta codificato secondo uno specifico formato (es. JPEG per immagini fisse, MPEG 2 per filmati, MP3 per audio, )! Esempi di formato generale: AVI (Microsoft), MOV (Apple)! Necessario apposito software detto media player: esso interpreta i vari contributi e, in funzione della loro codifica, attiva uno speciale software di esecuzione (detto codec, in quanto codifica/ decodifica i formati relativi ai singoli contributi)! Esempi di media player:! RealPlayer (RealNetworks)! Windows Media Player (Microsoft)! QuickTime (Apple)! VLC (software libero)! Modalità di fruizione in rete:! non in tempo reale : il file è scaricato sul proprio PC e poi riprodotto! In streaming: il file è riprodotto man mano che viene ricevuto senza essere preventivamente memorizzato su disco (ampiamente impiegato per diffusione di filmati via Internet, TV via Internet, etc. ) Daniela Fogli Elementi di Informatica e Programmazione 25 Daniela Fogli Elementi di Informatica e Programmazione 26 Mondo analogico e mondo digitale Rappresentazione analogica e digitale Come è rappresentato un brano musicale su un vecchio disco di vinile? rappresentazione analogica (la forma del solco descrive per analogia il suono da produrre) Come è rappresentato un brano musicale su un CD?! rappresentazione digitale (il supporto dà una informazione cha va decodificata)! Rappresentazione analogica: le configurazioni assunte dal supporto possono variare in modo continuo e riflettono secondo una analogia diretta la struttura dell informazione Limite: applicabile solo se esiste un supporto in grado di ricreare tra le sue configurazioni una struttura corrispondente a quella presente sull insieme degli elementi di informazione! Rappresentazione digitale: l insieme delle configurazioni è finito (e fissato a priori) e la struttura dell informazione si può dedurre dalle configurazioni solo attraverso una specifica regola di codifica. Limite: si può rappresentare un insieme di elementi di informazione finito e predefinito (se emerge l esigenza di codificare un nuovo elemento, necessario rivedere o estendere la codifica) Daniela Fogli Elementi di Informatica e Programmazione 27 Daniela Fogli Elementi di Informatica e Programmazione 28
Esempi Perché la rappresentazione digitale? E perché proprio quella binaria? (a) Corrispondenza fra l orario e la posizione dell ago sulla scala (b) Configurazioni convenzionali: combinazioni di segmenti illuminati Cruscotto analogico Cruscotto digitale! Una qualunque grandezza fisica può essere convertita in forma digitale (conversione analogico-digitale o digitalizzazione)! La conversione conduce a perdita di informazione (il segnale originario non può essere ricostruito in modo esatto a partire dal segnale digitale). Tuttavia:! Campionamento: è (almeno in linea teorica) reversibile (no perdita di informazione) se la frequenza di campionamento è sufficientemente alta! Quantizzazione: perdita di informazione arbitrariamente piccola all aumentare del numero di livelli di quantizzazione! Inoltre i valori dei segnali analogici in realtà non sono tutti distinguibili (rumore, imprecisione strumento di misura, ecc.) Daniela Fogli Elementi di Informatica e Programmazione 29 Daniela Fogli Elementi di Informatica e Programmazione 3 Immunità al rumore (affidabilità) Altre ragioni del predominio del digitale 5 4 3 2 (a) Volt 4 3 2 2.5 5 (b) Volt +5 V 3.5 V In realtà:.5 V V Valore Valore Con (a) sono tollerati disturbi fino a.5 V, con (b) fino a.25 V L immunità al rumore risulta essere una delle ragioni fondamentali che hanno determinato il predominio della rappresentazione digitale su quella analogica In particolare la codifica binaria è quella migliore! Molte informazioni sono di natura prettamente simbolica! Uniformità nella rappresentazione: una varietà ristretta di dispositivi può realizzare svariate funzioni! Tecniche di codifica e trasmissione uniformi su tipologie di informazioni diverse! Elaborazione simbolica (numerica) delle informazioni digitali (mediante operazioni matematiche) in tempi brevi! Elaborazione digitale per modificare le caratteristiche di un segnale analogico (es. restauro di incisioni audio o di pellicole cinematografiche) Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 32