’’Campionamento e codifica di immagini e suoni’’ Concetto di continuo e discreto La codifica di immagini e suoni Conversione A/D e D/A di un segnale Campionamento, Quantizzazione e digitalizzazione Il teorema di Shannon e la frequenza di campionamento Ricostruzione del segnale campionato: problemi di distorsione Spettro di un segnale Funzionalità di un calcolatore Trasferimento Elaborazione Controllo Memorizzazione Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia) Il calcolatore: modello architetturale 2. Memoria Memorizzazione Memoria 1. Elaborazione Unità Centrale di Elaborazione Elettronica Magnetica Interconnessione Collegamenti (BUS/Cavi) 3. Comunicazione (interfaccia) Periferiche Lo schema di riferimento Schermo Interfaccia ingresso/uscita Tastiera Mouse Memoria di massa Interfaccia Interfaccia ingresso/uscita ingresso/uscita Interfaccia ingresso/uscita Bus dati Bus indirizzi Bus di controllo … Memoria centrale CPU Organizzazione tipica di un calcolatore “bus oriented” CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus Tre tipologie di istruzioni • Istruzioni aritmetico-logiche (Elaborazione dati) – Somma, Sottrazione, Divisione, … – And, Or, Xor, … – Maggiore, Minore, Uguale, Minore o uguale, … • Controllo del flusso delle istruzioni – Sequenza – Selezione semplice, a due vie, a n vie, … – Ciclo a condizione iniziale, ciclo a condizione finale, … • Trasferimento di informazione – Trasferimento dati e istruzioni tra CPU e memoria – Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce) Elementi di una CPU • • • Unità di controllo – legge le istruzioni dalla memoria e ne determina il tipo. Unità aritmetico–logica – esegue le operazioni necessarie per eseguire le istruzioni. Registri – memoria ad alta velocità usata per risultati temporanei e informazioni di controllo; – il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro; – esistono registri di uso generico e registri specifici: • Program Counter (PC) – qual è l’istruzione successiva; • Instruction Register (IR) – istruzione in corso d’esecuzione; • … Acquisizione ed Elaborazione di Segnali Il calcolatore memorizza ed elabora vari tipi di informazioni Numeri, testi, immagini, suoni, filmati, ecc. Occorre rappresentare tale informazione in formato facilmente manipolabile dall’elaboratore La rappresentazione interna delle informazioni Codifica dell'Informazione L'architettura di un calcolatore impone delle regole di conversione tra le rappresentazioni "umane" delle informazioni e quella binaria. Le informazioni che essenzialmente di due tipi: numeriche alfanumeriche. l'uomo gestisce sono INFORMAZIONE ALFANUMERICA NUMERICA Non soggetta a calcoli Codifica tabellare ASCII, Unicode Soggetta a calcoli Sistemi di numerazione BINARIO, Esadecimale, Ottale La codifica binaria di un testo avviene dunque seguendo lo schema seguente (Codifica Ascii): Acquisizione ed elaborazione delle immagini • Prima che fotografie e immagini possano essere elaborate dal computer, esse devono essere digitalizzate tramite un processo che si suddivide in tre fasi: campionamento, quantizzazione e codifica La più piccola unità che compone un'immagine digitalizzata è chiamata pixel (picture element). Un'immagine digitale è una collezione di pixel. Pixel – Picture element • Le immagini vengono scomposte in griglie • Le caselle di una griglia vengono chiamate pixel • La risoluzione indica il numero di pixel in cui è pixel suddivisa un’immagine • La rappresentazione di un’immagine mediante la codifica a pixel viene chiamata bitmap Un pixel rappresenta una regione quadrata coincidente con una cella della griglia Esempio di digitalizzazione Si deve stabilire una convenzione per ordinare i pixel della griglia; assumiamo che i pixel siano ordinati dal basso verso l’alto e da sinistra verso destra. La rappresentazione della figura è data dalla stringa binaria La ricostruzione è un’approssimazione dell’immagine originaria. Esempio di digitalizzazione • La rappresentazione sarà più fedele all’aumentare del numero dei pixel, ossia all’aumentare del numero di quadratini della griglia in cui è suddivisa l’immagine. Codifica delle immagini • Assegnando un bit (1,0) ad ogni pixel è possibile codificare solo immagini in bianco e nero • Per codificare le immagini con diversi livelli di grigio oppure a colori si usa la stessa tecnica ma per ogni pixel viene assegnata una sequenza di bit • Per memorizzare un pixel non è più sufficiente un solo bit – Per esempio, se utilizziamo quattro bit possiamo rappresentare 24 = 16 livelli di grigio o 16 colori diversi – Mentre con otto bit ne possiamo distinguere 28 = 256, ecc. L’uso del colore • Il colore può essere generato componendo 3 colori: red, green, blue (RGB) • Ad ogni colore si associa una possibile sfumatura • Usando 2 bit per ogni colore si possono ottenere 4 sfumature per il rosso, 4 per il blue e 4 per il verde che, combinate insieme, danno origine a 64 colori diversi. Ogni pixel per essere memorizzato richiede 6 bit • Usando 8 bit per ogni colore si possono ottenere 256 sfumature per il rosso, 256 per il blu e 256 per il verde che, combinate insieme, danno origine a circa 16,8 milioni di colori diversi (precisamente 16777216 colori) • Ogni pixel per essere memorizzato richiede 3 byte Risoluzione • Il numero di pixel presenti sullo schermo (colonne x righe) prende il nome di risoluzione • Risoluzione tipiche sono 640 x 480 1024 x 768 1280 x 1024 • Esempio: – Per distinguere 256 colori sono necessari otto bit per la codifica di ciascun pixel – La codifica di un’immagine formata da 640 x 480 pixel richiederà 640 x 480 X8 = 2.457.600 bit (307.200 byte ca.300 kByte) Effetti della variazione di definizione Una stessa immagine può essere rappresentata con un numero differente di pixel, per esempio modificando le dimensioni dei pixel, a parità di dimensioni dell’immagine: Grafica bitmap • Le immagini codificate pixel per pixel sono dette immagini in grafica bitmap – Le immagini bitmap occupano molto spazio su disco • Esistono delle tecniche di compressione che permettono di ridurre le dimensioni – Ad esempio, se più punti vicini di un’immagine assumono lo stesso colore, si può memorizzare la codifica del colore una sola volta e poi ricordare per quante volte deve essere ripetuta • I formati come GIF, JPEG e PNG sono formati compressi per le immagini • I formati come Postscript e PDF per i documenti Codifica di immagini in movimento • Un filmato è una sequenza di immagini statiche (dette fotogrammi o frame) • Per codificare un filmato si “digitalizzano” i suoi fotogrammi • Esempio: – 30 immagini ad alta risoluzione (640X480X8) al secondo – 30 immagini/sec x 2457600 bit/imm. = 73.728.000 bit/sec – Un minuto richiederebbe 60 sec x 73.728.000 = 4.423.680.000 bit (5.529.600 byte ca. 5.5 MByte) • Compressione: MPEG (Moving Picture Expert Group), differenza tra fotogrammi • Esempi di altri formati per il video: AVI, MOV,DivX Video ed animazioni Per rappresentare una sequenza di immagini si possono memorizzare tutti i fotogrammi uno dietro l’altro. L’occhio umano ha la proprietà che quando un’immagine viene impressa sulla retina, viene mantenuta alcuni millisecondi prima di svanire. Se una serie di immagini viene proiettata alla velocità di 50 o più immagini/sec, l’occhio non si accorge che ciò che sta vedendo sono immagini discrete. La fluidità del moto e determinata dal numero di immagini diverse per secondo, mentre lo sfarfallio e determinato dal numero di volte per secondo in cui lo schermo e ridisegnato. Video digitali 768) con 24 bit/pixel e 25 • Un video XGA (1024 immagini/s va trasmesso a 472Mbps! (1024 768) 24 25 471859200bps • Vanno studiate strategie per comprimere l’informazione a nostra disposizione. Le immagini in Movimento • L’occhio umano ricostruisce l’informazione di movimento se riceve una successione sufficientemente rapida di immagini fisse • Cinema: 24 fotogrammi/sec • TV: 25 o 30 fotogrammi/sec • Lo standard MPEG (Moving Picture Expert Group) è sostanzialmente la codifica di ciascun frame fisso, oltre alla codifica di suoni, attraverso tecniche di Compressione dei Dati. – senza compressione, 1 min. di filmato a 24 fotogrammi /sec occuperebbe 644MB Compressione Esempi di compressione: Per ridurre la quantità di informazioni del filmato, si può memorizzare il primo fotogramma e, a seguire, registrare solo le modifiche rispetto ai fotogrammi precedenti. E’ inoltre possibile comprimere le informazioni residue ignorando le variazioni di colore così piccole da non poter essere colte dall’occhio umano in un’immagine in movimento. Compressione Compressione senza perdita (lossless) Tali algoritmi sfruttano la ridondanza presente nei dati, rappresentando l’informazione multipla una sola volta ed indicando il numero di ripetizioni oppure tengono conto della frequenza statistica degli elementi dell’informazione. Esempio: il codice di huffman è il tipico codice completamente reversibile Compressione con perdita (lossy). I sistemi di codifica con perdita di informazione sono importanti, perché a volte accettare perdita di informazione può far guadagnare molto in termini di compressione. Esempi di formati di questo tipo sono JPEG, MPEG, MP3, ecc… 3° Salvataggio 2° Salvataggio 1° Salvataggio Formato JPEG (Joint Photographic Experts Group) Si tratta di un formato detto “a perdita di dati”; esso parte dalla constatazione che l’occhio umano percepisce maggiormente una variazione di luminanza piuttosto che una variazione di crominanza. Ogni nuovo processo di compressione del file produce un deterioramento dell’immagine. Codifica dei suoni • Fisicamente un suono è rappresentato come un’onda che descrive la variazione della pressione dell’aria nel tempo (onda sonora) t • Sull’asse delle ascisse viene rappresentato il tempo e sull’asse delle ordinate viene rappresentata la variazione di pressione corrispondente al suono stesso Codifica dei suoni • Si effettuano dei campionamenti sull’onda (cioè si misura il valore del segnale a intervalli di tempo costanti ∆t ) e si codificano in forma digitale le informazione estratte da tali campionamenti t ∆t • Quanto più frequentemente il valore di intensità del segnale viene campionato, tanto più precisa sarà la sua rappresentazione • Il numero di campioni raccolti per ogni secondo definisce la frequenza di campionamento che si misura in Hertz (Hz) Codifica dei suoni • La sequenza dei valori numerici ottenuti dai campioni può essere facilmente codificata con sequenze di bit (quantizzazione) Una approssimazione! t • La rappresentazione del segnale è tanto più precisa quanto maggiore è il numero di bit utilizzati per codificare l’informazione estratta in fase di campionamento Codifica dei suoni (esempio) • Se volessimo codificare la musica di qualità CD dovremmo: – Usare due registrazioni corrispondenti a due microfoni distinti – Campionare il segnale musicale producendo 44100 campioni al secondo (44.1 KHz) – Per ogni campione (che è un numero) si usano 16 bit per codificarlo – Per cui, il numero di bit che sarebbero necessari per codificare ogni secondo è pari a 2 x 44100 campioni x 16 bit/campione = 1.414.200 bit=176.775Byte ca.172 kByte Codifica dei suoni • Codifiche standard – WAV (MS-Windows), AIFF (Audio Interchange File Format, Apple) – MIDI – MP3 • MIDI – Codifica le note e gli strumenti che devono eseguirle – Efficiente, ma solo musica, non voce • MP3 – MPEG-3: variante MPEG per suoni – Grande diffusione, molto efficiente Dispositivi di codifica (ADC) Cavo elettrico 1 Trasporta il segnale elettrico analogico fino al ADC Suono onda di pressione dell’aria Analog to Digital Converter Cavo elettrico 2 Trasporta il segnale elettrico digitale verso il computer Microfono Converte il suono in segnale elettrico Analog to Digital Converter Campionamento Segnale analogico Quantizzazione Segnale campionato 10001001010001 Segnale digitale Dispositivi di codifica (DAC) • Esiste anche il processo inverso, che trasforma l’informazione da digitale ad analogica. Nel caso del suono questo compito è svolto dal D.A.C. (Digital to Analog Converter) che trasforma il segnale digitale in segnale elettrico analogico; tale segnale viene successivamente trasformato in onda sonora dalle casse acustiche. Cavo elettrico 1 Trasporta il segnale elettrico digitale verso il DAC Digital to Analog Converter Cavo elettrico 2 Trasporta il segnale elettrico analogico fino alla cassa Cassa Acustica Trasforma il segnale elettrico analogico in suono Suono onda di pressione dell’aria Riassumendo: per digitalizzare un segnale....... CAMPIONAMENTO: si estraggono ad intervalli regolari dei campioni del segnale. La frequenza con cui si estraggono i campioni è detta frequenza di campionamento. QUANTIZZAZIONE: si convertono i valori numerici che rappresentano le ampiezze del segnale (variabili in origine in un intervallo continuo) in un numero finito di valori. CODIFICA: Il segnale, dopo essere stato campionato e quantizzato, per poter essere utilizzato dall’elaboratore, deve ancora essere convertito in digitale, secondo un’opportuna codifica. Segnali audio - Campionamento • Esiste una frequenza di campionamento (detta valore di Nyquist) che garantisce la ricostruzione fedele del segnale. • Teorema Nyquist-Shannon : Il segnale può essere ricostruito completamente se è stato campionato ad una frequenza Fc maggiore del doppio della frequenza della componente del segnale di frequenza più alta fM (Fc >= 2 fM) • Es. l’orecchio umano è in grado di percepire frequenze tra i 20Hz e i 22 KHz la frequenza di campionamento per l’audio (limite di Nyquist) si pone quindi attorno ai 44 KHz. Segnali audio - Quantizzazione • I campioni (che sono numeri) sono rappresentati da un valore binario • I valori tipici per i livelli nel suono sono: 8 bit per valore pari a 256 valori e 16 bit per valore pari a 65536 valori (qualità CD) Il teorema del campionamento di Nyquist-Shannon (1949) definisce il minimo della frequenza di campionamento di un segnale, necessario per evitare distorsioni dello stesso. Dato un segnale, con larghezza di banda finita e nota, la frequenza minima di campionamento di tale segnale deve essere almeno il doppio della sua massima frequenza: Fc >= 2 fM Il campionamento è un passo del processo di conversione analogico-digitale di un segnale. Consiste nel prelievo di campioni (samples) da un segnale analogico e continuo nel tempo ogni t secondi. t è l'intervallo di campionamento, mentre Fs=1 / t è la frequenza di campionamento (es. 1 kHz 1/1.000 s = 1 ms) • Il risultato del campionamento è un segnale con valori discreti. • Tale segnale sarà in seguito quantizzato e codificato per renderlo accessibile a qualsiasi elaboratore digitale. • Il teorema del campionamento pone un vincolo per la progettazione di apparati di conversione analogico-digitale: se si ha a disposisione un campionatore che lavora a frequenza Fc , è necessario mandargli in ingresso un segnale a banda limitata da Fc /2 (Teorema di Shannon). In generale un segnale analogico non è limitato in frequenza, ma dovrà essere filtrato per eliminare le componenti di frequenza maggiore di Fc /2, a tale scopo si usa un filtro anti-aliasing ( filtro passa-basso). Teorema del campionamento Un segnale f(t) a banda limitata da fM (frequenza massima) può essere univocamente ricostruito dai suoi campioni f(n t ) con n N presi ad una frequenza Fc=1 / t solo se Fc >= 2 fM • Es. l’orecchio umano è in grado di percepire frequenze tra i 20Hz e i 22 KHz la frequenza di campionamento per l’audio (limite di Nyquist) si pone quindi attorno ai 44 KHz. Effetto Aliasing Consiste in una sovrapposizione del segnale campionato che rende impossibile l'esatta ricostruzione del segnale originale e tale ricostruzione risulterà distorta. Per questo motivo ogni apparato di conversione analogico-digitale ha un filtro anti-alias (filtro passa basso) a monte del campionatore, che limita lo spettro del segnale di ingresso a Fc >= 2 fM Simulazione di un Segnale sinusoidale a frequenza 27 Hz campionato con differenti frequenze di Campionamento (Sample) fc=37 fs 1.5000 fc=10,5 fs 1.0000 0.5000 37 34 31 28 25 22 19 16 13 10 7 4 1 0.0000 -0.5000 -1.0000 fc=1KHz fc=333 Hz -1.5000 fc=1,8 fs fc=50 Hz fc=110 Hz ..Un errato campionamento ha generato una frequenza differente da quella del segnale (freq. di aliasing) Pulse Code Modulation Campionamento (Hz) Bit Mono/Stereo Occupazione Bitrate Kb/s 8.000 8 8/ 16 8.000 16 16/ 31 11.025 8 11/ 22 11.025 16 22/ 43 22.050 8 22/ 43 22.050 16 46/ 86 44.100 8 43/ 86 44.100 16 86/172 • Il teorema di Shannon-Nyquist e la frequenza di campionamento Dato un segnale continuo e a banda limitata esso è descritto completamente dai suoi campioni, se essi sono presi ad una frequenza almeno doppia rispetto alla frequenza massima del segnale Es: Periodo T=37ms f segnale=1/(37 ms)= 27 Hz Volt 8 bit in ADC DAC clock t [MilliSecondi] Sample Clock f campionamento ? Simulazione di un Segnale sinusoidale a frequenza 27 Hz campionato con differenti frequenze di Campionamento (Sample) fc=37 fs 1.5000 fc=10,5 fs 1.0000 0.5000 37 34 31 28 25 22 19 16 13 10 7 4 1 0.0000 -0.5000 -1.0000 fc=1KHz fc=333 Hz -1.5000 fc=1,8 fs fc=50 Hz fc=110 Hz ..Un errato campionamento ha generato una frequenza differente da quella del segnale (freq. di aliasing) Spettro di un segnale • Il campionamento introduce un aliasing: in pratica il campionamento provoca “duplicazioni” dello spettro del segnale. Se non si rispetta il teorema di Shannon l’aliasing introdotto dal campionamento impedisce la ricostruzione del segnale originale, in quanto due spettri adiacenti si sovrappongono! fc >2 fs ADC fs freq fs fc freq Spettro di un segnale L’effetto di un errato campionamento, nell’ambito del dominio delle frequenze Per un buon funzionamento del campionatore e per evitare aliasing, si introduce un filtro passa basso che limita lo spettro del segnale di ingresso a fc >2 fs fc <2 fs Filtro PB ADC Il Convertitore Digitale – Analogico ( DAC ) • Il convertitore digitale-analogico è un componente elettronico utilizzato per convertire dati numerici codificati in forma binaria in segnali elettrici. • Il convertitore DAC accetta in ingresso un numero binario ad es. un codice numerico con otto ingressi e fornisce all’uscita una tensione ad esso proporzionale • Si definisce risoluzione la distanza tra un livello e l’altro ed è indicata da una costante di proporzionalità detta Quanto di tensione q dove: (8 bit in ingresso) q=VFS/256 con VFS =tensione di fondo scala in uscita • In pratica si parte dalla tensione di fondo scala o di riferimento che viene applicata esternamente e viene divisa ripetutamente per 2 mediante blocchi divisori (pag. 38 fig. 3.4) • Tutti i segnali vengono condotti ad un blocco sommatore e il valore della tensione in uscita sarà proporzionale al numero binario in ingresso. Bit alto=1 -> chiusura del circuito -> passaggio del segnale VFS / 2n Bit basso=0 -> apertura del circuito -> il segnale viene bloccato Significato e importanza del quanto q • Il quanto q è una costante di proporzionalità che rappresenta il valore minimo di tensione che può costituirsi all’uscita del DAC. • q rappresenta anche l’intervallo di tensione tra due livelli digitali successivi • Nella conversione la tensione di uscita varierà non in modo continuo (caso ideale) ma in modo discreto tuttavia senza perdita di informazione. • q indica l’accuratezza della conversione, detta risoluzione: q piccolo significa una maggiore risoluzione (precisione) es. si vuole convertire un range di tensione da 0 a 10,24Volt con 8 bit si avranno dei gradini di tensione pari a 10,24/256= 40 mV quindi una risoluzione q = 40 mV • All'aumentare della risoluzione, però, corrisponde un maggior numero di elaborazioni per ottenere la tensione d'uscita; in altre parole, più è elevata la risoluzione del DAC e più la sua elaborazione ne risulterà rallentata. • La scelta della risoluzione dovrà obbligatoriamente tenere conto della velocità del dispositivo impiegato, rispetto all'utilizzo al quale è destinato. Digitale Analogico Conversione analogico – digitale ( ADC ) • Un convertitore analogico-digitale, detto ADC (analog to digital converter) trasforma i valori di un segnale d’ingresso V(t) in valori digitali (numeri binari) aventi una quantità finita di cifre. • Per effettuare la conversione occorre un tempo detto di conversione Tconv • Al convertitore devono affluire i valori del segnale campionato Conversione analogico - digitale - La qualità della conversione.. Segnale in forma numerica + errore di quantizzazione Vin ADC DAC 8 bit Segnale 8 bit 28=256 livelli Esempio: analogico dal • Vin max=3 Volt => Risoluzione 3/256 = 0.01Volt trasduttore • Vin max=10Volt => Risoluzione 10/256 = 0.04Volt Vmax / 2n : intervallo di quantizzazione Segnale analogico ricostruito dal DAC intervallo di quantizzazione Dove n è il numero di bit del campionatore Con risoluzione maggiore di 8 bit avremmo ottenuto un risultato affetto da minor errore di quantizzazione. Analogico Digitale Fine • La larghezza di banda (di una trasmissione, di un segnale o di un canale di comunicazione) è la velocità di trasmissione dell'informazione. •Nel caso delle comunicazioni digitali la banda si misura direttamente in bit al secondo (kbit/s, Mbit/s ecc.), mentre per le comunicazioni analogiche la banda si misura in modo indiretto, ed è data dall'intervallo di frequenze occupato dal segnale: per esempio, una comunicazione telefonica analogica occupa le frequenze che vanno da 300 a 3400 Hz, quindi ha una banda di 3100 Hz (cioè 3400 - 300). • L'intervallo di frequenze è strettamente correlato alla quantità di informazione che può fluire attraverso un canale, in base al teorema del campionamento di NyquistShannon. • Per banda di un canale di comunicazione (qualsiasi) si intende la sua massima velocità di trasmissione, cioè la massima quantità di informazione che esso può trasmettere nell'unità di tempo (massima banda disponibile). • Per banda di un segnale (qualsiasi) si intende invece la minima velocità di trasmissione necessaria perché possa essere trasmesso senza errori o distorsione (minima banda necessaria). • Nel caso delle comunicazioni digitali il concetto è semplice mentre nel caso analogico il significato di banda è più articolato ed ha a che fare con i limiti di frequenza e con il rumore di fondo.