Elementi di informatica
Transcript
Elementi di informatica
Elementi di informatica Codifica testo immagini Codifica Cosa abbiamo visto : 9 Rappresentazione binaria 9 Codifica dei numeri (interi positivi, interi con segno, negativi ….) 9 Cosa vedremo ancora: 9 Codifica dei caratteri ,Codifica delle immagini ,Compressione dei dati 9 Codifica dei suoni 1 Codifica dell’informazione Le informazioni che intendiamo trattare non sono costituite solo da numeri 9 Ad esempio, voi state leggendo delle lettere e vedete sullo schermo delle immagini 9 Per rappresentare lettere, immagini, suoni partendo dai numeri occorre utilizzare dei sistemi di codifica – Questi sistemi stabiliscono una corrispondenza fra un determinato numero e una particolare informazione 9 L’informazione rappresentata con numeri viene detta digitalizzata Rappresentazione dei caratteri Definizioni: Repertorio. Insieme dei caratteri considerati, definito mediante i nomi dei caratteri e magari una loro rappresentazione visiva Numero di codice. Tabella in cui ciascun carattere del repertorio è messo in corrispondenza 1-a-1 con un insieme di numeri naturali Codifica. Un metodo per associare a ciascun numero di codice una sequenza di bit che poi sono utilizzabili per la trasmissione o la memorizzazione elettronica. 2 Il codice ASCII Le lettere dell’alfabeto sono 24; considerando le maiuscole si arriva a 48; con i segni diacritici (accenti, cediglie, tilde,…) arriviamo a un’ottantina; con i segni di interpunzione rimaniamo sotto il centinaio • Possiamo associare a ogni carattere (lettera minuscola, lettera maiuscola, vocale accentata, segno di interpunzione,…) un numero • Esiste una codifica standard che si chiama ASCII: American Standard Code for Information Interchange, che utilizza 7 bit (i numeri da 0 a 127) Tabella dei codici ASCII 3 Una stringa di caratteri sarà rappresentata dal computer come una successione di gruppi di 8 bit O G G I P I O V E 1001111 1000111 1000111 1001001 0100111 1010000 1001001 1001111 1010110 1000101 Consideriamo il problema inverso: data una sequenza di bit, il testo che essa codifica può essere cosi ottenuto: si divide la sequenza in gruppi di 8 bit si determina il carattere corrispondente ad ogni byte Esempio 1001101 1000001 101 0010 1000101 M A R E ASCII è un codice “antico” e (ad eccezione di alcune varianti nazionali pressoché in disuso) molto sicuro; è accettata da tutti i computer (non solo i PC: anche i Mac, gli UNIX,…) purtroppo: i caratteri internazionali di numerose lingue europee non sono considerati Esiste allora un’altra codifica, UNICODE che usa 2 byte per ciascun carattere e quindi riesce a rappresentare 65536 caratteri, permettendo di rappresentare tutti gli altri alfabeti. 4 Codifica delle immagini L’immagine viene suddivisa mediante una griglia di pixel (risoluzione) • Si definisce il numero di colori che si vogliono distinguere • Si codifica in binario (digitale) ogni colore – 256 colori --> 8 bit – 16 milioni di colori --> 24 bit (codifica RGB) • Ad ogni pixel si associa il codice del colore (il colore che in media “domina” all’interno del quadrato stesso) Di conseguenza ogni immagine è esprimibile mediante due serie di numeri: – le coordinate dei singoli quadratini (pixel) – un numero che esprime il colore del singolo quadratino Codifica delle immagini 5 Codifica delle immagini 2 colori bianco: 0, nero: 1 un codice per ogni pixel Poiché una sequenza di bit è lineare, è necessario definire delle convenzioni per ordinare la griglia dei quadratini (pixel) in una sequenza. Assumiamo che i pixel siano ordinati dal basso verso l'alto e da sinistra verso destra Con questa convenzione la rappresentazione della figura sarà data dalla stringa binaria 0000000 0111100 0110000 0100000 Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia. Quella che si ottiene nella codifica è un'approssimazione della figura originaria. Se riconvertiamo la stringa 0000000011110001100000100000 in immagine otteniamo 6 Codifica delle immagini La rappresentazione sarà più fedele all'aumentare del numero di pixel, ossia al diminuire delle dimensioni dei quadratini della griglia in cui è suddivisa l'immagine Risoluzione Il numero di pixel in cui è suddivisa un’immagine si chiama risoluzione e si esprime con una coppia di numeri ad es. 640 ×480 pixel (orizzontali × per verticali) 7 Codifica delle immagini Assegnando un bit ad ogni pixel è possibile codificare solo immagini senza livelli di chiaroscuro Per codificare le immagini con diversi livelli di grigio si usa la stessa tecnica: per ogni pixel si stabilisce il livello medio di grigio cui viene assegnata convenzionalmente una rappresentazione binaria Per memorizzare un pixel non è più sufficiente un solo bit. Ad esempio, se utilizziamo quattro bit possiamo rappresentare 24=16 livelli di grigio, mentre con otto bit ne possiamo distinguere 28=256, ecc. Codifica delle immagini Analogamente possiamo codificare le immagini a colori. In questo caso si tratta di individuare un certo numero di sfumature di colore differenti e di codificare ogni sfumatura mediante un'opportuna sequenza di bit Ad esempio, i monitor utilizzano risoluzioni di 640X480, 1024X768, oppure 1280X1024 ed un numero di colori per pixel che va da 256 fino a sedici milioni di colori (un byte per ogni colore base: rosso, verde, blu nel sistema RGB) 8 Codifica delle immagini La rappresentazione di un'immagine mediante la codifica dei pixel, viene chiamata codifica bitmap e l’immagine viene detta“discretizzata”. Il numero di byte richiesti dipende dalla risoluzione e dal numero di colori che ogni pixel può assumere. Le immagini si possono anche ottenere mediante la definizione di primitive grafiche quali linee, archi, poligoni, cerchi, espresse analiticamente. Tali immagini vengono dette vettoriali. Trovano applicazione nell’ambito del CAD. Codifica delle immagini: esempio Quanti byte occupa un’immagine di 100x100 pixel in bianco e nero? 9Conoscendo la risoluzione dell’immagine possiamo trovare il numero di pixel che la compongono: 100x100 = 10000 pixel. 9Nel caso di immagini in bianco e nero basta un solo bit Per codificare il colore di ogni pixel e quindi saranno necessari 10000 bit per memorizzare l’immagine. 9Per trovare il numero di byte basta fare 10000 / 8 = 1250 byte 9 Codifica delle immagini: esempio Quanti byte occupa un’immagine di 100x100 pixel a 256 colori? 9Rispetto all’esercizio precedente, in questo cambia lo spazio occupato da ciascun pixel. sappiamo che l’immagine è a 256 colori. 9Per poter rappresentare 256 configurazioni diverse sono necessari 8 bit, ovvero 1 byte 9L’immagine occuperà quindi 10000 x 1 byte = 10000 byte Codifica delle immagini: esempio Se un’immagine a 16,7 milioni di colori occupa 2400 byte, da quanti pixel sarà composta? 9In questo caso le informazioni fornite dall’esercizio sono il numero colori e lo spazio occupato dall’immagine. 9Dal numero di colori ricaviamo lo spazio occupato da ciascun pixel, calcolando il valore N nell’espressione 2N>=16,7 milioni. 9Il risultato è 24 bit, ovvero 3 byte. 9Se ogni pixel richiede 3 byte e l’immagine occupa 2400 byte, sarà composta da 2400 / 3 = 800 pixel. 10 Elaborazione dell’immagine Una volta digitalizzate, le immagini possono essere elaborate facilmente Elaborare un’immagine digitalizzata vuol dire applicare una trasformazione alla sequenza di bit che codifica l’immagine Esempio: cambiare/neutralizzare il colore (Croma-key) Le tecnologie di memorizzazione e trasmissione dei dati non offrono soluzioni efficienti ed economiche per gestire grandi quantità di dati. Occorre applicare tecniche di compressione tecniche di compressione per ridurre lo spazio occupato. Tali tecniche sfruttano le regolarità delle immagini. compressione senza perdita di informazione: si memorizzano pixel vicini identici una volta sola e si ricorda quante volte occorrono nell’immagine compressione con perdita di informazione: non si memorizzano tutti i pixel, ma solo una frazione di essi. Si usano funzioni matematiche di interpolazione per ricostruire i pixel mancanti 11 Compressione lossless La tecnica è completamente reversibile e restituisce in fase di decompressione i dati originali. Il fattore di compressione non è molto elevato (da 2 a 5 a seconda del tipo di dati). E’ adatta per dati testuali, sonori. Compressione lossy Sopprime in modo irreversibile la parte di informazione meno significativa, permettendo così, in fase di decompressione, la ricostruzione dei dati in modo ancora intelligibile. Permette di ottenere fattori compressione dell’ordine di 10, 100. Non è adatta per dati testuali. 12 Formati standard GIF(Graphic Interchange Format) utilizza 8 bit per pixel e quindi distingue 256 colori. Usa una tecnica di compressione senza perdita JPEG(Joint Photographic Expert Group) utilizza 24 bit, quindi16,8 milionidi colori. Usa una tecnica sofisticata di compressione con perdita. Altri formati TIFF 13 Immagini in movimento Memorizzazione mediante sequenze di fotogrammi La qualità della memorizzazione dipende dal numero di fotogrammi al secondo Esempio: le immagini televisive vengono trasmesse con 25/30 fotogrammi al secondo, con una risoluzione di 576×720, con colori codificati a 16 bit. Problema dell’occupazione di spazio: per ottimizzare lo spazio non si memorizzano tutti i fotogrammi. I fotogrammi variano in modo continuo: si memorizza un primo fotogramma in modo completo, e per i successivi N solo le differenze con il primo. Formati standard di compressione dei filmati MPEG: memorizza in modo completo solo un fotogramma ogni 12, degli altri solo le differenze AVI: (Microsoft) QuickTime:(Apple e Microsoft) 14 Codifica dei suoni Dal punto di vista fisico un suono è un'alterazione della pressione dell'aria che, quando rilevata, ad esempio dall'orecchio umano, viene trasformata in un particolare stimolo al cervello. Mediante un microfono queste alterazioni vengono trasformate in un particolare stimolo elettrico La durata, l'intensità e la variazione nel tempo della pressione dell'aria sono le quantità fisiche che rendono un suono diverso da ogni altro Codifica dei suoni L'onda di pressione può essere rappresentata sul piano cartesiano rappresentando il tempo sull'asse delle ascisse e la pressione sull'asse delle ordinate. Questa rappresentazione, analogica,fornisce una descrizione continua dell'onda sonora 15 Per rappresentare in forma digitale(numerica) un’onda sonora, cioè per convertire un segnale continuo in una successione di numeri, si effettuano due successive operazioni elementari: 1. Campionamento del segnale (cioè si preleva una successione di campioni a intervalli costanti di tempo) 2. Ogni campione viene quantizzato ossia convertito in un numero (si codificano in forma digitale le informazioni estratte dai campionamenti) Quanto più frequentemente il valore di intensità dell'onda viene campionato, tanto più precisa sarà la sua rappresentazione. Il segnale può essere riprodotto perfettamente sulla base dei valori campione se la frequenza di campionamento è superiore al doppio della componente del segnale di frequenza più elevata. Un errore viene comunque introdotto quando si converte il valore analogico di un campione in un numero con un numero limitato di cifre. 16 Le frequenze sonore udibili dall’uomo sono comprese fra 20 Hz e 20.000 Hz (20KHz) La frequenza di campionamento per una corretta rappresentazione dell’informazione sonora deve essere allora maggiore di 40.000Hz(40KHz) che nella pratica viene assunta di 44.1KHz. Compressione dei file audio Il piu’ noto standard e’ MP3 che permette di ottenere un fattore di compressione 12:1. Ad esempio un file campionato a 44,1 KHz con 16 bit per campione che occuperebbe circa 50 milioni di byte, compresso in formato MP3 ne occupa meno di 5 milioni, senza perdita di qualita’. 17 Codifica dei suoni: esempio Quanto spazio occupa un suono della duranta di 10 secondi campionato a 100 Hz, in cui ogni campione occupa 4 byte? 9La frequenza di campionamento ci dice quanti campioni di suono vengono memorizzati in un secondo, 100 in questo caso. 9Avendo 10 secondi di suono avremo 10 x 100 = 1000 campioni. 9Poichè ogni campione richiede 4 byte, il suono occuperà 1000 x 4 = 4000 byte (che corrispondono a circa 4 KB) Codifica dei suoni: esempio Un secondo di suono campionato a 512 Hz occupa 1KB. Quanti valori distinti si possono avere per i campioni? 9Poichè vengono memorizzati 512 campioni al secondo, avremo in tutto 512 campioni (stiamo considerando un solo secondo di suono). 9Il file sonoro occupa 1 KB, cioè 1024 byte e quindi ogni singolo campione occuperà 1024 / 512 = 2 byte, ovvero 16 bit. 9Si potranno quindi avere 216 = 65536 valori distinti 18 Osservazione Per calcolare lo spazio occupato da un file di testo, da un’immagine, da un file audio, la tecnica è sempre la stessa – Si trova lo spazio occupato da ogni unità elementare costituente il file (un carattere per il testo, un pixel per l’immagine, un campione per il file audio) – Si trova il numero di unità elementari che costituiscono il file (il numero di caratteri per il testo, il numero di pixel per l’immagine - sfruttando la risoluzione, il numero di campioni per il file audio - sfruttando la frequenza di campionamento) – Si moltiplicano queste due quantità 19