idul 2013 rappresentazione delle informazioni in forma digitale
TRANSCRIPT
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, MorseEsempi di codici digitali:
Per numeriPer testiPer immaginiPer suoni
Computer come elaboratori di informazione
Un computer deve:Fare input/output dell’informazione
Usando i dispositivi di input/outputMemorizzare l’informazione
Usando la memoria principale/secondariaElaborare l’informazione
Usando il processore
Informazione su computer
Mondo esterno
informazione rappresentazionedigitale
codifica
decodifica
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
Rappresentazione ANALOGICA: una serie di distinzioni CONTINUE, prive in linea di principio di intervalli minimi.Immagini, suoni, numeri reali (3,14159265…)
Rappresentazione DISCRETA: basata sulla combinazione di elementi minimi chiaramente distinti.
Rappresentazione DIGITALE: una rappresentazione discreta codificata tramite numeri
Misure analogiche e digitali
INFORMAZIONE IN FORMA ANALOGICA
INFORMAZIONE IN FORMA DISCRETA
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
UN ESEMPIO DI CODICE DISCRETO VISIVO
CODICI IN NATURA
In realta’, i codici sono apparsi ben prima degli esseri umani. In natura si trovano molti esempi di codici, i piu’ famosi dei quali sonoIl DNA (4 simboli)Il repertorio di fonemi di un linguaggio(l’ insieme dei suoni che possono codificare differenze di significato)
UN CODICE FONDAMENTALE: Il DNA
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 = XICodice DECIMALE: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)7 + 4 = 11
Differenza fondamentale: il codice decimale è un codice POSIZIONALE7 = 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 MINIMOPer 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
Sistema binariovengono usate due cifre (0 e 1) per rappresentare un numeroproblema: i numeri binari sono estremamente lunghi e difficili da ricordareSistema esadecimaleogni numero è rappresentato con 16 cifre (0-9, A-F)i numeri sono più corti di quelli binariestrema facilità di conversione tra binario ed esadecimalein una sequenza binaria, ogni stringa di 4 bits corrisponde ad una cifra esadecimale0110 1111 0110 numero binario (6) (15) (6) 6 F 6 numero esadecimale
numero
X
10
A
1010
rappresentazione di un numero
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, insufficienteCodifica (due bit):ottimo con 00discreto con 01sufficiente con 10insufficiente con 11
OTTO STATI
Esempio: otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancioneCodifico (tre bit):nero con 000rosso con 001blu con 010giallo con 011verde con 100viola con 101grigio con 110arancione con 111
I numeri in rappresentazione binaria
Il principio e’ lo stesso del codice decimale, 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 byteDi 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” significa che rappresenta numeri usando 8 byte alla volta. Questo consente di rappresentare numeri più grandi (o decimali più precisi). Un S.O. a 64 bit può leggere e scrivere più 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 numericoMa lo stesso sistema può venire usato per codificare immagini, suoni, e testi
Codifica delle immagini
Suddividiamo l’immagine mediante una griglia formatada 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 è predominanteIl simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il nero è predominante
Codifica delle immagini
0 0 0 1 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0
0 0 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
Codifica delle immagini
Poiché una sequenza di bit è lineare, è necessario definireconvenzioni per ordinare la griglia dei pixel in unasequenza. Assumiamo che i pixel siano ordinati dal bassoverso l’alto e da sinistra verso destra0000000000 0011111000 0011100000 0001000000
0 0 0 1 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0
0 0 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
Codifica delle immagini
Non sempre il cortorno della figura coincide con lelinee della griglia. Quella che si ottiene nella codificaè un’approssimazione della figura originaria
Se riconvertiamo la sequenza di stringhe0000000000 0011111000 0011100000 0001000000in immagine otteniamo
Codifica delle immagini
La rappresentazione sarà più fedele all’aumentaredel numero di pixel, ossia al diminuire delledimensioni dei quadratini della griglia in cui è suddivisa l’immagine
EFFETTO DELLA RISOLUZIONE
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
I SUONI
CONVERSIONE IN DIGITALE VIA CAMPIONAMENTO
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 colonna sonora
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.216 x 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 PinocchioCapitolo ICome andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, chepiangeva 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 ched'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco eper riscaldare le stanze. Non so come andasse, ma il fatto gli è che un belgiorno 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 carattere
65 codice (decimale) del carattere
0 1 0 0 0 0 0 1 codifica binaria del codice del carattere
I computer elaborano internamente solo sequenze di bit (0,1)
MAESTRO CILIEGIA
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:
1.Serie (o font): AGKpqt, AGKpqt, AGKpqt, …2.Peso: AGKpqt, AGKpqt
3.Inclinazione: AGKpqt, AGKpqt
4.Punti: AGKpqt, AGKpqt, AGKpqt, AGKpqt5.Altri effetti: AGKpqt, AGKpqt, AGKpqt, AGKpqt,
AGKpqt, AGKpqt
Come rappresentare i caratteri?
Caratteristiche distintive e non distintiveDifferenza tra MAIUSCOLE e minuscolein 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 negativia 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 computerconosciuto come “ASCII Standard” o ISO-646
Codifica7 bitciascun punto di codice è rappresentato con il numero binario corrispondente di 7 bitin 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’inglesemancano i caratteri accentati, umlaut, ecc. per rappresentare altri alfabeti occidentali
ASCII Standarddecimale ed esadecimale
ASCII: Caratteri stampabilie 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 controlloSi 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_controlloASCII è 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 ASCIII 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)
File binari e file ASCIII file eseguibili (windows .exe, .com, …), le immagini (.jpg, .gif, .png, .tif, …) e tutti i file compressi (.zip, .gz, …) sono in genere in formato binarioIl protocollo dell’email può solo trasmettere file asciiCon allegati (“attachment”) binari, necessità di ricodifica in ASCII Ne consegue:
crescita di dimensioni attorno al 40%
Il set di caratteri ISO-Latin-1
ASCII Standard
Caratteri di controllo
0-32
128-159
ISO-Latin-1 (ISO-8859-1 o ASCII esteso)unica estensione standard di ASCII1 byte = 8 bit = 28 punti di codice = 256 caratteri rappresentatisufficiente per lingue europee occidentali (italiano, francese, ecc.)
La famiglia di caratteri ISO-8859
14 set di caratteri standardizzati da ISO (International Standard Organization)
Codifica: 1 byte = 256 caratteri rappresentati da ciascun setSoprainsiemi dei caratteri ASCII Standard
punti di codice 0 - 127 (parte comune) ASCIIpunti di codice 128 - 159 codici di controllo (non corrispondono a caratteri grafici)punti di codice 160 - 255 (parte variabile) caratteri aggiuntivi per greco, cirillico, lingue slave, arabo, ebraico, ecc.
La famiglia di caratteri ISO-8859
ISO-Latin-1
Limiti di ISO-8859
I set di ISO-8859 sono tutti reciprocamente incompatibili.Punto di codice 232ISO-8859-1 (Latin-1) = “è”ISO-8859-5 (Cyrillic) = “ш”
Come usare più lingue nello stesso documento?
ISO-8859 non copre lingue come giapponese, cinese, ecc. che non usano sistemi alfabetici, ma ideografici
The Universal Character SetUNICODE (ISO-10646)
Standard internazionale che si prefigge di rappresentare qualsiasi tipo di carattere appartenente ai sistemi grafici esistentiSistemi di scrittura di tutte le lingue europee, asiatiche, africane, ecc., sia antiche che moderne.Sistemi di caratteri basati sui fonemi (p.es. italiano), sulle sillabe (p.es. Thai), su ideogrammi (p.es. Cinese), geroglifici, braille, ecc.Sistemi di simboli tecnici e scientifici (p.es. matematica, logica)Punteggiatura e segni diacritici (p.es. accenti)
Risolve i problemi di incompatibilità dei sistemi ISO-8859estende l’insieme dei caratteri supportati●permette la realizzazione di documenti multilingui http://www.unicode.org/standard/translations/italian.html http://www.unicode.org/standard/WhatIsUnicode.html
The Universal Character SetUNICODE (ISO-10646)Circa 100.000 caratteri grafici rappresentati (Unicode v. 5.1.0)… ma i punti di codice disponibili sono più di 1 milione (4 byte)!!
I primi 65536 caratteri (216) costituiscono il Basic Multilingual Plane (BMP), primo di 17 “piani” in cui è diviso UNICODE. Nel BMP, 6500 punti di codice sono riservati per usi privati (loghi, trademarks…)
The Universal Character SetUNICODE (ISO-10646)
I punti di codice sono rappresentati con “U+numero esadecimale”, ed hanno un nome standard:“A” U+0041 = ”Latin Capital Letter A” (decimale 65)“ω” = U+03C9 = ”Greek Letter Omega” I primi 256 caratteri sono identici al set di caratteri Latin-1, a sua volta un soprainsieme dell' ASCII.
UNICODE: composizione dei caratteri
Caratteri complessi (p.es. “u” con umlaut) possono essere rappresentati in due modi:Come elementi precostituiti (codice U+00FC, ”ü”)Come elementi composti, formati da un carattere di base quale ”u” (U+0075) ed uno o più caratteri che non introducono spaziatura (”non spacing”), che vengono quindi sovrascritti al precedente, in questo caso ”¨” (U+0308)Problema dell’ordinamento alfabetico (come decomporre caratteri complessi)
Codifica dei caratteri
•Vari tipi di codifica:•UCS-2 (tutti i caratteri a 2 byte)•UCS-4 (tutti i caratteri a 4 byte)UTF-16, ecc.UTF-8 (caratteri 0-127 con 1 byte, oltre 2, 3 o 4 byte)Codifica più comune: UTF-8: In questa codifica l'ultimo bit del byte dice al sistema se il carattere finisce (come in inglese) o se il byte successivo continua a specificare lo stesso carattere (p.es. in cinese).
Blocchi di codice I vari alfabeti sono divisi in gruppi detti “blocchi di codice” (code blocks) Tentativo di non duplicare i caratteri di lingue diverse. Non esiste p.es. una “A” italiana, una “A” norvegese.
Blocchi di codice (2)Vengono invece duplicati i caratteri omografi di sistemi di scrittura (storicamente) diversi (p.es. Greco, latino, cirillico)Al contrario, le migliaia di ideogrammi comuni alla scrittura cinese, giapponese e coreana (che discendono tutti da una scrittura comune) sono unificati(si veda http://www.unicode.org/notes/tn26/ per una discussione del perché)
Come trovo il mio carattere?
Oppure procedendo per sistema di scrittura (script)http://www.unicode.org/charts/Alcune spiegazioni generali su:http://unicode.org/standard/where/Indice alfabetico dei caratteri:http://www.unicode.org/charts/charindex.htmlProblemi maggiori per i simboli
Problema della resa grafica:
Ab bkйd و٦من
ds kjdks kdsk
sybco oθδjpjp
Unicode ISO-Latin-1
1010011101
1000100100
1001010010
0110010100
Ab bkƛd ƛƛƛƛ
ds kjdks kdsk
sybco oƛƛjpjp
1010011101
1000100100
1001010010
0110010100
RIASSUNTO
Due tipi di informazione: in forma ANALOGICA, in forma DISCRETA (o simbolica)Per rappresentare o comunicare informazione occorre un CODICECodici digitali:Per numeri: binarioPer testi: ASCIIPer immaginiPer suoniE’ possibile progettare dei codici piu’ o meno ottimali usando idee della teoria dell’informazioneCompressione: JPEG, MP3
RIFERIMENTI / SITITomasi, capitoli 1.1 e 6Lucidi di Ciotti online:Online: http://www.mediamente.rai.it/mediamentetv/learning/ed_multimediale/lezioni/01/