660 likes | 867 Views
IDUL 2013. RAPPRESENTAZIONE DELLE INFORMAZIONI IN FORMA DIGITALE. MENU:. Due tipi di informazione : in forma ANALOGICA (continua) in forma DISCRETA (o simbolica ) Per rappresentare o comunicare informazione in forma discreta occorre un CODICE Esempi di codici : DNA, Morse
E N D
IDUL 2013 RAPPRESENTAZIONE DELLE INFORMAZIONI IN FORMA DIGITALE
MENU: • Due tipi di informazione: • in forma ANALOGICA (continua) • in forma DISCRETA (o simbolica) • Per rappresentare o comunicareinformazione in forma discretaoccorre un CODICE • Esempi di codici: DNA, Morse • Esempi di codicidigitali: • Per numeri • Per testi • Per immagini • Per suoni
Computer come elaboratori di informazione • Un computer deve: • Fare input/output dell’informazione • Usando i dispositivi di input/output • Memorizzare l’informazione • Usando la memoria principale/secondaria • Elaborare l’informazione • Usando il processore
Informazione su computer codifica rappresentazione digitale informazione decodifica Mondo esterno Computer: memorizzazione, elaborazione
PROBLEMA DELLA RAPPRESENTAZIONE DELL’INFORMAZIONE SU COMPUTER SVILUPPARE CODICI CHE PERMETTANO DI RAPPRESENTARE INFORMAZIONE DI TIPO DISCRETO IN MODO EFFICIENTE SU UN SUPPORTO FISICO RAPPRESENTARE INFORMAZIONE DI TIPO ANALOGICO CON CODICI DISCRETI
RAPPRESENTAZIONE ANALOGICA E DISCRETA • RappresentazioneANALOGICA: unaserie di distinzioni CONTINUE, privein linea di principio di intervalliminimi. • Immagini, suoni, numerireali (3,14159265…) • RappresentazioneDISCRETA: basatasullacombinazione di elementiminimichiaramentedistinti. • RappresentazioneDIGITALE: unarappresentazionediscretacodificatatramitenumeri
Esempio: Il codice MORSE -- --- ·-· ··· · (space) -·-· --- -·· · M O R S E (space) C O D E
MORSE • Un codice TERNARIO (-, ., spazio) • Codici per i caratteri scelti in modo che i caratteri più frequenti abbiano codici più brevi
CODICI IN NATURA • In realta’, icodicisonoapparsi ben prima degliesseriumani. In naturasitrovanomoltiesempi di codici, ipiu’ famosideiqualisono • Il DNA (4 simboli) • Il repertorio di fonemidi un linguaggio(l’ insiemedeisuonichepossonocodificaredifferenze di significato)
CODICI PER NUMERI • Nel caso dei numeri, la necessita’ di sviluppare un codice limitato non e’ motivata solo da facilita’ di memorizzazione, ma anche dalla necessita’ di usarli per MANIPOLAZIONI SIMBOLICHE
DUE CODICI PER I NUMERI • Codice ROMANO: ( I, L, X, C, M, ...) • VII + IV = XI • Codice DECIMALE: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) • 7 + 4 = 11 • Differenza fondamentale: il codice decimale è un codice POSIZIONALE • 7 = 7x100 • 75 = 7x101 + 5 x100“Sette decine + cinque unità” • I codici posizionali rendono le operazioni aritmetiche molto piu’ semplici
Rappresentazione digitale dei numeri • Il codice decimale, benche’ molto comodo, non e’ il codice MINIMO • Per rappresentare informazione sui computer, codice minimo essenziale perché occorre poter rappresentare ogni simbolo diverso in modo FISICO (= con circuiti elettrici) • Il minimo numero di simboli diversi necessari per rappresentare tutti i numeri e’ il codice • BINARIO: 0, 1
Numeri BINARI e numeri ESADECIMALI X 10 rappresentazione di un numero numero A • Sistema binario • vengono usate due cifre (0 e 1) per rappresentare un numero • problema: i numeri binari sono estremamente lunghi e difficili da ricordare • Sistema esadecimale • ogni numero è rappresentato con 16 cifre (0-9, A-F) • i numeri sono più corti di quelli binari • estrema facilità di conversione tra binario ed esadecimale • in una sequenza binaria, ogni stringa di 4 bits corrisponde ad una cifra esadecimale • 0110 1111 0110 numero binario • (6) (15) (6) • 6 F 6 numero esadecimale 1010
NUMERO MAGGIORE DI STATI • Per poter rappresentare un numero maggiore di informazione si usano sequenze di bit • «Al mondo esistono 10 categorie di persone: chi sa contare in binario e chi no» • «10» in binario significa: 1 volta 21 + 0 volte 20, dove • 21 = 2 • 20 = 1 • Per quattro stati diversi: 00, 01, 10, 1
QUATTRO STATI DIVERSI • Esempio: un esame può avere quattro possibili esiti: ottimo, discreto, sufficiente, insufficiente • Codifica (due bit): • ottimo con 00 • discreto con 01 • sufficiente con 10 • insufficiente con 11
OTTO STATI • Esempio: otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione • Codifico (tre bit): • nero con 000 • rossocon 001 • blu con 010 • giallo con 011 • verde con 100 • viola con 101 • grigio con 110 • arancione con 111
I numeri in rappresentazione binaria • Il principio e’ lo stesso del codicedecimale, ma con due soli simboli • 70 = 7x101 + 0 x100 = 64 + 4 + 2 = 1 x26 + 0x25+ 0x24+ 0x23+ 1x22+ 1x21+ 0x20 = 1000110 • 178 = 1x102 + 7x101 + 8x100 = 128 + 32 + 8 + 2 = 1x27+ 0x26 + 1x25+ 0x24+ 1x23+ 0x22+ 1x21+ 0x20 = • 10101010
BYTE • Esiste una particolare aggregazione di bit che è costituita da 8 bit (28 = 256 informazioni) e prende il nome di byte • Di solito per la capienza delle memorie si usano multipli del byte (KB, MB, GB, TB) • Per le misure di trasmissione dati, si usano invece i multipli di bit at secondo (p.es Mbps, milioni di bit per secondo)
RAPPRESENTAZIONE DI NUMERI INTERI SU COMPUTER • Tipicamente 4 byte (= 32 bit) oppure 8 byte (= 64 bit) • Dire che un software è “a 64 bit” significacherappresentanumeriusando 8 byte allavolta. • Questoconsente di rappresentarenumeripiùgrandi (o decimalipiùprecisi). • Un S.O. a 64 bit puòleggere e scriverepiùcelle di memoria: fino a 18.446.744.073.709.551.616 (limite per ora puramente teorico)
RAPPRESENTAZIONE DIGITALE DI ALTRI TIPI DI INFORMAZIONE • Per molti anni, l’unico tipo di informazione rappresentata sui computer informazione di tipo numerico • Ma lo stesso sistema può venire usato per codificare immagini, suoni, e testi
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 (pictureelement) 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 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 cortorno 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
PIU’ DI DUE COLORI • Se l’immagine è solo in bianco e nero (senza grigi), basterà usare un ‘1’ per i pixel neri, e uno ‘0’ per i pixel bianchi • Se l’immagine ha più di due colori, si faranno corrispondere a gruppi diversi di ‘0’ e ‘1’ sfumature diverse di colore (o di grigio)
RAPPRESENTARE COLORI • Così, ad esempio, se si fa corrispondere a ogni pixel un byte (cioè 8 bit), potremo differenziare 256 colori • Al posto della tabella di codifica dei caratteri avremo una tabella di codifica dei colori • Ad es: 00101101
SUONO: DALLA RAPPRESENTAZIONE ANALOGICA ALLA RAPPRESENTAZIONE DIGITALE
Digitalizzare informazione multimediale • E i filmati?Un filmato non è altro che una successione di fotogrammi (frame) accompagnata da una colonnasonora • Basterà codificare, uno per uno, tutti i fotogrammi (sappiamo come fare: ogni fotogramma è un’immagine)…e codificare la colonna sonora. • Non stupisce che per codificare un breve filmato servano moltissimi bit! • Per full HD: 1920 × 1080 x 16.777.216x 24
Codifica digitale del testo Il testo come sequenza di caratteri Ciascun carattere alfanumerico, di punteggiatura o di controllo che compone il testo deve essere rappresentato nei termini di un codice binario Le avventure di Pinocchio Capitolo I Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. C'era una volta... - Un re! - diranno subito i miei piccoli lettori. - No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno. Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze. Non so come andasse, ma il fatto gli è che un bel giorno questo pezzo di legno capitò nella bottega di un vecchio falegname, il quale aveva nome mastr'Antonio, se non che tutti lo chiamavano maestro
La codifica di livello 0 Il testo come sequenza di caratteri dietro le quinte…
La codifica di livello 0caratteri e numeri A MAESTRO CILIEGIA carattere 65 codice (decimale) del carattere codifica binaria del codice del carattere 0 1 0 0 0 0 0 1 I computer elaborano internamente solo sequenze di bit (0,1)
Rappresentare i caratteri • Quali caratteri scegliere? • un insieme di caratteri (es. “A”, “a”, “!”, “à”, “§”, ecc.) • i caratteri sono entità astratte, da non confondersi con il modo in cui sono realizzati tipograficamente (glifi) • Uno stesso carattere può variare nella resa grafica in varie dimensioni: • Serie (o font): AGKpqt, AGKpqt, AGKpqt, … • Peso: AGKpqt, AGKpqt • Inclinazione: AGKpqt, AGKpqt • Punti: AGKpqt, AGKpqt, AGKpqt, AGKpqt • Altri effetti: AGKpqt, AGKpqt, AGKpqt, AGKpqt, AGKpqt
Come rappresentare i caratteri? • Caratteristiche distintive e non distintive • Differenza tra MAIUSCOLE e minuscole • in tedesco “Blau” (nome) vs “blau” (agg.), • in Windows: (“Prova.txt, PROVA.TXT, prova.txt” sono lo stesso file); non così in Unix/Linux. • La stessa realizzazione grafica può corrispondere a caratteri diversi (es. “A” latina e “A” cirillica e “A” greca)
Come rappresentare i caratteri nel computer? • Come creare la corrispondenza? • (=il codice) • una tabella che definisce una corrispondenza biunivoca (1-a-1) tra un repertorio di caratteri e un insieme di numeri interi non negativi • a ogni carattere è assegnato un codice numerico (punto di codice / code position) • Come codificare il carattere? • algoritmo che determina come i codici dei caratteri vadano rappresentati in sequenze di bit (byte). Il problema è reso non banale dalla necessità di separare i caratteri: • 43456 = (4)(34)(56) (4)(3)(4)(56)
Il codice ASCII(American Standard Code for Information Interchange) • Primo standard per l’assegnazione di codici a caratteri (dal 1963) • set di caratteri riconosciuto da tutti i computer • conosciuto come “ASCII Standard” o ISO-646 • Codifica • 7 bit • ciascun punto di codice è rappresentato con il numero binario corrispondente di 7 bit • in realtà 1 byte = 8 bit di cui un bit non è usato per la codifica (bit di parità) • 7 bit = 27 punti di codice = 128 caratteri rappresentati • Sufficiente per rappresentare l’inglese • mancano i caratteri accentati, umlaut, ecc. per rappresentare altri alfabeti occidentali
ASCII: Caratteri stampabili e di controllo • I primi 32 caratteri dell’ASCII sono caratteri funzionali (non necessariamente stampabili) Cf. www.cs.tut.fi/~jkorpela/chars/c0.html
Caratteri di controllo • Si ottengono premendo una lettera mentre si tiene premuto il tasto Cntl. A volte “Control” viene scritto “^” o “Ctrl-” (“Control-A” = “Ctrl-A” = “^A”) • Compiono funzioni specifiche ai vari programmi. • Corrispondono al carattere non stampabile che nell’ASCII si trova 64 posizioni indietro rispetto al codice della lettera maiuscola premuta insieme con Ctrl. Esempio: • “G” = ASCII 71 • “Control-G” = 71-64 = 7 = codice BELL (rappresentato dal suono beep del computer) • Cf. • http://it.wikipedia.org/wiki/Carattere_di_controllo • ASCII è completato da uno standard per la interpretazione dei caratteri di controllo, (ANSI X3; per approfondimenti vedi http://www.inwap.com/pdp10/ansicode.txt )
Caratteri di controllo: esempio del “fine riga” • Può corrispondere a: • Carriage Return, (CR, lo spostamento alla prima colonna, carattere 13, o Ctrl-M del ASCII), • Line Feed, spostamento alla riga sottostante, senza cambiare colonna (LF, carattere n.10, Ctrl-J) • Scelte differenti nei vari sistemi operativi: • Windows/DOS: CR+LF (entrambi i caratteri necessari) • Mac: solo CR (fino al System X, poi solo LF) • Unix/Linux: solo LF
File binari e file ASCII • I file possono essere di tipo ASCII (anche detti, con meno esattezza, “file di testo”) o di tipo binario. I primi contengono solo caratteri stampabili contenuti nel codice ASCII ristretto (dal 32 al 127), i secondi usano l'intero spazio dei valori possibili per il byte (256). • Un file binario non può essere in genere visualizzato sullo schermo dai comandi di base del sistema operativo stesso (p.es. “type”) ma solo da programmi specifici per quel tipo di file binario (niente resa grafica standard)