Codifica dei caratteri Alfabeto anglosassone Lettere maiuscole e minuscole Cifre numeriche (0, 1, 2, …, 9) Simboli di punteggiatura (, . ; : ! “ ? …) Segni matematici (+, -, {, [, >, …) Caratteri nazionali (à, è, ì, ò, ù, ç, ñ, ö, …) può essere codificato usando un byte (220 caratteri circa) Il metodo di codifica più diffuso tra i produttori di hardware e di software prende il nome ASCII (American Standard Code for Information Interchange)
Codifica dei caratteri (ASCII) Simbolo 00000000 NUL (spazio bianco) … 00111110 > 00111111 ? 01000000 @ 01000001 A 01000010 B 01000011 C
Codifica Alfanumerica Codifica ASCII 2.Codici Alfanumerici L'evoluzione dei calcolatori li ha portati a diventare, oltre che elaboratori di numeri, anche elaboratori di altri tipi di informazione, prima fra tutti quella testuale. I simboli che vengono usati per rappresentare testi sono, come noto, i caratteri alfanumerici, cioè l'insieme costituito dalle lettere dell'alfabeto e dalle dieci cifre decimali. A questi vanno aggiunti diversi altri simboli come lo spazio, i segni di interpunzione, i simboli per indicare il passaggio alla riga o alla pagina successiva, ecc. Questo insieme di caratteri alfanumerici può essere facilmente rappresentato attribuendo in maniera univoca a ciascuno dei suoi elementi un numero intero (codice). Osserviamo che il numero delle lettere dell'alfabeto inglese sono 26, per un totale di 52, considerando anche quelle maiuscole. Se ad esse aggiungiamo le dieci cifre numeriche, una quarantina di simboli extra, arriviamo ad un totale di un centinaio di simboli da rappresentare. Tale numero suggerisce che soli 7 bit sono sufficienti per rappresentare l'insieme dei caratteri alfanumerici (7 bit permettono di rappresentare 128 simboli diversi). E' chiaro che è necessario che la rappresentazione dei simboli sia la stessa in tutto il mondo, pena la totale incomunicabilità. E', dunque, necessario l'adozione di una comune rappresentazione. Attualmente esistono due diverse rappresentazioni: codifica ASCII e relative estensioni e codifica Unicode. Codifica Alfanumerica Codifica ASCII 97 65 32 125 Come si vede: I caratteri di controllo (non riproducibili) hanno i codici più bassi. Il blank (Spazio) è il primo dei caratteri riproducibili. Le maiuscole/minuscole sono ordinate (codice Progressivo). 123 2.2.Codifiche derivate dalla codifica ASCII Esistono numerose estensioni della codifica ASCII. Tali estensioni derivano dalla necessità di codificare simboli legati a particolari lingue, e dal fatto che operando su 8 bit, la codifica ASCII consente l'utilizzo dell'ottavo bit, lasciando gli altri 7 inalterati. Tutte le estensioni della codifica ASCII non modificano tale codifica ma aggiungono semplicemente altri 128 simboli. Tra le estensioni più diffuse vi è la ISO Latin 1. 2.3.Codifica Unicode La codifica Unicode supera i limiti della codifica ASCII e relativi derivati, in quanto estende il numero di simboli codificabili. Attualmente sono più di 95.000 simboli codificati con lo standard Uncode. Essi sono divisi in: Ø Script Moderni: Latino, Greco, Giapponese, Cinese, Koreano, etc. Ø Script Antichi: Sumero, Egiziano, etc. Ø Segni Speciali La codifica Unicode è in ogni caso compatibile con la codifica ASCII, e richiede ovviamente più di un byte (da 1 a 4) per la codifica.
Codifica delle parole Parole sono sequenze di caratteri Codifica della parole cane 01100011 01100001 01101110 01100101 c a n e Il problema inverso: data una sequenza di bit, il testo che essa codifica può essere ottenuto nel modo seguente: si divide la sequenza in gruppi di otto bit (byte) si determina il carattere corrispondente ad ogni byte
Codifica dei caratteri Abbiamo considerato il codice: ASCII: 8 bit per carattere Un’altro codice: UNICODE, 16 bit per carattere (ASCII + caratteri etnici: greco, russo, ecc.) Microsoft Windows usa un codice proprietario a 16 bit per carattere, simile ad UNICODE
Codifica delle immagini Suddividiamo l’immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante
Codifica delle immagini Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione: Il simbolo “0” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il bianco è predominante Il simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il nero è predominante
Codifica delle immagini 1
Codifica delle immagini 1 Poiché una sequenza di bit è lineare, è necessario definire convenzioni per ordinare la griglia dei pixel in una sequenza. Assumiamo che i pixel siano ordinati dal basso verso l’alto e da sinistra verso destra 0000000000 0011111000 0011100000 0001000000
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 sequenza di stringhe 0000000000 0011111000 0011100000 0001000000 in immagine otteniamo
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
Codifica delle immagini Assegnando un bit 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: per ogni pixel viene assegnata una sequenza di bit
Codifica delle immagini (grigio e colore) 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
L’uso del colore 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à 2.457.600 bit (307.200 byte)
Grafica bitmap Le immagini codificate pixel per pixel sono dette immagini in grafica bitmap Le immagini bitmap occupano parecchio spazio 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 Argomento correlato: 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 al secondo 30 imm./sec x 2457600 bit/imm. = 73728000 bit/sec Un minuto richiederebbe 60 sec x 73728000 = 4423680000 bit (5529600 byte) Esempi di formati per il video: AVI, MOV Compressione: MPEG (Moving Picture Expert Group), differenza tra fotogrammi
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 dell’onda a intervalli di tempo costanti) e si codificano in forma digitale le informazione estratte da tali campionamenti t Quanto più frequentemente il valore di intensità dell’onda 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 Onde sonore: segnali ‘continui’ campionamento: scelta di istanti in cui considerare il valore del segnale quantizzazione: codifica dei campioni con un numero predefinito di bit ampiezza del segnale tempo
Codifica dei suoni campionamento quantizzazione
Codifica dei suoni 100 011 010 001 … Il segnale può ora essere codificato in forma numerica mediante una sequenza di bit (nell’esempio con tre bit).
Esempio di codifica: segnale vocale telefonico
Dispositivi di codifica (ADC) Suono onda di pressione dell’aria Microfono Converte il suono in segnale elettrico Cavo elettrico 1 Trasporta il segnale elettrico analogico fino al ADC Analog to Digital Converter Cavo elettrico 2 Trasporta il segnale elettrico digitale verso il computer Campionamento Quantizzazione 10001001010001 Segnale analogico Segnale campionato Segnale digitale Analog to Digital Converter
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. Suono onda di pressione dell’aria Cavo elettrico 2 Trasporta il segnale elettrico analogico fino alla cassa Digital to Analog Converter Cavo elettrico 1 Trasporta il segnale elettrico digitale verso il DAC Cassa Acustica Trasforma il segnale elettrico analogico in suono
Codifica dei suoni L’accuratezza della ricostruzione dipende : da quanto sono piccoli gli intervalli di campionamento da quanti bit uso per descrivere il suono in ogni campione nella fase di quantizzazione (8, 16,32) al solito … maggiore accuratezza significa maggior quantità di memoria occupata! Anche per i suoni si possono utilizzare tecniche di compressione per migliorare l’occupazione di memoria della sequenza di campioni
Codifica dei suoni Algoritmi lossy per suoni : sfruttano il fatto che per l’orecchio umano suoni a basso volume sovrapposti ad altri di volume maggiore sono poco udibili e possono essere eliminati è quello che accade nello standard MPEG Layer 3 , detto anche MP3 A titolo informativo, si ricorda che un secondo di segnale musicale digitale non compresso richiede 176.400 byte. Un modem non digitali ha una velocità massima teorica in ricezione di 57.600 bit/sec. Ne consegue che la velocità di download è di qualche migliaio di byte al secondo e quindi per scaricare un brano di 4 minuti occorrerebbero quasi 3 ore. - Mp3 è un metodo di compressione che permette di ridurre le dimensioni dei file di un fattore 12 rendendo il download 12 volte più veloce.
Codifica dei suoni (esempio) Se volessimo codificare la musica di qualità CD dovremmo: Usare due registrazioni corrispondenti a due microfoni distinti (stereo) Campionare il segnale musicale producendo 44100 campioni al secondo Per ogni campione (che è un numero) si usano 16 bit Per cui, il numero di bit che sarebbero necessari per codificare ogni secondo è pari a 2 x 44100 campioni x 16 bit/campione = 1414200 bit
Codifica dei suoni Codifiche standard WAV (MS-Windows), AIFF (Audio Interchange File Format, Apple) MIDI MP3 Codifica le note e gli strumenti che devono eseguirle Efficiente, ma solo musica, non voce MPEG-3: variante MPEG per suoni Grande diffusione, molto efficiente
Fine