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 Tipologie di codici 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 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 La digitalizzazione 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 e 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 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, occupano molto spazio (corrisponde a quanto visto nei lucidi precedenti: ~MB per minuto) 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 ) Ogni ingrandimento fa perdere qualità (l immagine si sgrana ) vedi prossimo lucido per evitare questo problema si può usare la codifica vettoriale R=255, G=255, B=255 R=25, G=72, B=78 R=9, G=85, B=2 R=, G=, B= Occupano molta memoria. Possibili soluzioni: uso di tavolozze (palette) formati compressi codifica vettoriale 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,.bmp. Gestisce palette a 2, 6, 256 colori + true color TIFF (Tagged Image File Format): alta qualità (32 bit per pixel), 6 milioni di colori (24 bit) + ulteriori proprietà, dimensioni file molto grandi,.tif, adottato da scanner e macchine fotografiche FORMATI COMPRESSI: GIF (Graphic Interchange Format): formato compresso, 8 bit per pixel (256 colori),.gif JPEG (Joint Picture Experts Group): 6 milioni di colori, formato compresso (più del gif),.jpg JPEG 2: formato ancor più compresso,.j2k o.jp2 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. Corel Draw, 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 2 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
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 25 Daniela Fogli Elementi di Informatica e Programmazione 26 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 27 Daniela Fogli Elementi di Informatica e Programmazione 28
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 29 Daniela Fogli Elementi di Informatica e Programmazione 3