Seconda parte corso Alfabetizzazione informatica Argomenti Rappresentazione dell’informazione (+ esercizi) Architettura funzionale di un elaboratore Rappresentazione dell’informazione indice Rappresentazione e codifica dell’informazione Rappresentazioni binaria (digitale) bit e sequenze di bit Codifica binaria dell’informazione Unità di misura Quanti bit... La codifica dei caratteri ASCII ed ASCII esteso indice La codifica dei numeri Notazione posizionale Conversioni da decimale a binario e viceversa Aritmetica binaria Codifica di numeri interi negativi La codifica di immagini b/n e colori Filmati compressione La codifica dei suoni (cenni) Rappresentazione dell’informazione Varie rappresentazioni sono possibili per la medesima informazione Es. Testo scritto su carta o registrato su nastro Rappresentazioni R1 e R2 sono equivalenti se data R1 è possibile ricavare R2 e viceversa Es. Trascrizione del testo data la sua registrazione e viceversa Scelta della rappresentazione Spesso convenzionale ... ... ma spesso legata a vincoli Es. Rappresentazione binaria negli elaboratori Analogico vs digitale Informazione esplicita nel supporto: per analogia Informazione implicita nella rappresentazione: serve codifica/decodifica Pos 0 Il numero 6 si codificherebbe come Pos 6 Pos 1 Pos 2 1011111 Pos 5 Pos 3 Pos 4 acceso spento Dalla rappresentazione alla codifica dell’informazione rappresentazione Alfabeto: insieme di simboli Es. le 10 cifre (da 0 a 9) Stringhe: concatenazioni di simboli dell’alfabeto Es. la stringa 123 Esiste un insieme di configurazioni possibili (di solito finito) Processo di codifica: da informazione a una stringa che la rappresenta Convenzionale: deve essere condiviso da chi usa Processo di decodifica: da una stringa ad informazione Rappresentazione binaria (o digitale) Informazione rappresentata da stringhe costruite con i simboli 0 e 1 Motivazioni di carattere tecnologico due stati di carica elettrica di una sostanza due stati di polarizzazione di una sostanza magnetizzabile passaggio/non passaggio di corrente in un conduttore passaggio/non passaggio di luce in un cavo ottico Bit cifra binaria – binary digit Rappresentazione di un’informazione elementare che convenzionalmente è indicata dai simboli 0 e 1 bit e sequenze di bit Un bit: si possono rappresentare 2 informazioni 1 e 0 (rappresentazione convenzionale del valore dei bit) vero e falso bianco e nero Sequenze di bit: si possono rappresentare più info 2 bit: 4 configurazioni possibili (00, 01, 10, 11) 3 bit: 8 configurazioni (000, 001, 010, 011, 100, 101, 110, 111) ... 8 bit (1 Byte): 28 (256) configurazioni ... N bit: 2N configurazioni non Kb 1 KB (KiloByte) KByte, MByte e GByte non kb = 1000 byte? No! 10 Byte = 1024 Byte 1 KB = 2 [20 = 1, 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, 26 = 64, 27 = 128, 28 = 256, 29 = 512, 210 = 1024] 1 MB (MegaByte) solitamente approssimato a 1 milione di Byte precisamente =1024 KB = 1024 X 1024 Byte = = 210 X 210 Byte = 220 Byte = 1.048.576 Byte 1 GB (GigaByte) = circa 1 miliardo di Byte precisamente =1024 MB = 1024 X 1024 KB = 1024 X 1024 X 1024 Byte = = 210 X 210 X 210 Byte = 230 Byte = 1073741824 Byte Codifica binaria dell’informazione Processo di associazione di informazioni a configurazioni di bit È una convenzione ma deve necessariamente essere condivisa tra chi deve usare l’informazione Quanti bit per M configurazioni possibili? Determinare x (numero di bit) tale che 2x M Es. x = 6 per M = 50 Infatti 25 = 32 (insufficiente) Mentre 26 = 64 Per l’alfabeto anglosassone 26 lettere M = 26 x tale che 2x26 x=5 Es. 00000 = a, 00001= b, 00010 = c, … ma in realtà ... La codifica dei caratteri Codifica: processo di associazione di informazioni (caratteri) a configurazioni di bit Standard ASCII (American Standard Code for Information Interchange) Non è l’unico standard anche se il più diffuso es. EBCDIC, UNICODE ASCII Con sequenze di 7 bit (128 configurazioni) sono codificati i 52 simboli dell’alfabeto anglosassone (26 maiuscole e 26 minuscole) le 10 cifre i segni di punteggiatura gli operatori aritmetici alcuni caratteri speciali (es. @, %, $, [, ], ...) ASCII esteso 8 bit = 256 configurazioni Prime 128 configurazioni (tutte precedute da 0) corrispondono alle 128 configurazioni dell’ASCII standard Seguono altre codifiche di caratteri speciali (es. lettere accentate dei vari alfabeti: à, è, é, ü, ï, ç, ê ...) Standard non universalmente riconosciuto da tutte le applicazioni e sistemi operativi Ad es. a volte nello scambio di mail, ci si trova con strani caratteri (sono magari le lettere accentate non riconosciute dal programma di gestione delle mail) Dall’italiano all’ASCII... Per scrivere in ASCII una parola (della lingua italiana), si mettono in sequenza le codifiche ASCII dei caratteri che compongono la parola a n i m a 1100001 1101110 1101001 1101101 1100001 …e viceversa viceversa, per capire che cosa significa una sequenza di caratteri ASCII: si spezza la sequenza in sequenze di 7 bit si fa corrispondere a ogni sequenza il carattere opportuno 1100001 1101110 1101001 1101101 1100001 a n i m a La codifica dei numeri Rappresentazione ASCII delle cifre può funzionare per numeri all’interno di testi non è conveniente per elaborazioni numeriche spreco di spazio (primi 3 bit sempre uguali) problema per la gestione (e.g. operazioni aritmetiche) efficiente Es. 0 0110000 2 0110010 4 0110100 1 0110001 3 0110011 5 0110101 Rappresentazione basata sul sistema di numerazione binario Sistemi di numerazione Numero: entità astratta Numerale: stringa di caratteri (che sono finiti e caratteristici dei sistemi di numerazione) che rappresenta un numero in un dato sistema di numerazione Sistema di numerazione: definito da: Un insieme di simboli base (CIFRE) Un insieme di regole per rappresentare un numero mediante una stringa di cifre Un insieme di operazioni Base del sistema di numerazione: numero di simboli utilizzati (es. Base 2: 0 e 1) NOTA: lo stesso numero è rappresentato da numerali diversi in diversi sistemi 156 nel sistema decimale CLVI in cifre romane Sistemi di numerazione posizionali Il valore del numero rappresentato da un numerale dipende dalle cifre usate e dalla loro posizione nella stringa Esempio: Il sistema decimale (base 10) Alle cifre (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) vengono associati nell’ordine i primi 10 numeri naturali Indicata con i la posizione occupata dalla cifra c in una stringa (0 è la prima posizione a partire da destra), il numero rappresentato da tale cifra è pari a c * 10i Es: la stringa 4125 (in base 10) rappresenta il numero: 4*103 + 1*102 + 2*101 + 5*100 = 4000 + 100 + 20 + 5 = 4125 Notazione posizionale (decimale) Dato il numerale 354, ossia 3 centinaia, 5 decine, 4 unità Il numero è: 3 * 102 + 5 * 101 + 4 * 100 in base 10 con 3 cifre posso rappresentare i numeri da 0 a 999: 1000 numeri, pari a 103 (la base 10 elevata a potenza, con esponente uguale al numero di cifre che uso) Notazione posizionale (decimale) Dato un numerale espresso come: cncn-1… c1c0 dove i coefficienti ci possono essere le cifre da 0 a 9 Il numero corrispondente è: cn*10n + cn-1*10n-1 +… + c1*101 + c0*100 In base 10 con N cifre posso rappresentare i 10N numeri da 0 a 10N-1 Notazione posizionale (generale) Data una base B considerato il numerale cncn-1… c1c0 dove i coefficienti ci possono essere le cifre da 0 a B-1 Il numero corrispondente è: cn*Bn + cn-1*Bn-1 +… + c1*B1 + c0*B0 con N cifre posso rappresentare i BN numeri da 0 a BN-1 Notazione posizionale (binaria) Considerando B=2 Dato il numerale: cncn-1… c1c0 dove i coefficienti ci possono essere 0 o 1 Il numero è: cn*2n + ... + c2*22 + c1*21 + c0*20 con N cifre riesco a rappresentare i 2N numeri da 0 a 2N-1 Conversione da notazione binaria a decimale Es. la sequenza binaria 1011 rappresenta il numero: 1*23 + 0*22 + 1*21 + 1*20 = 1*8 + 0*4 + 1*2 + 1*1 = 11 Generalmente si indica: 10112 = 1110 Conversione da decimale a binario divido il numero per 2: il resto è la cifra c0 divido il risultato per 2: il resto è la cifra c1 divido il risultato per 2: il resto è la cifra c2 mi fermo quando il risultato è 0 (con resto 1) Conversione da decimale a binario Conversione di 2910 29/2 14/2 7/2 3/2 1/2 = 14 = 7 = 3 = 1 = 0 111012 R = 1 (c0) R = 0 (c1) R = 1 (c2) R = 1 (c3) R = 1 (c4) Conversione da decimale a binario Infatti... 111012 = 1*24 + 1*23 + 1*22 + 0*21 + 1*20 =16 + 8 + 4 + 1 = 2910 Aritmetica binaria Somma tra numeri binari + 0 1 0 0 1 1 1 10 Somma tra numeri binari: alcuni esempi 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 0 1 1 + 1 = 0 1 + 1 = 0 0 + 1 = 1 Codifica dei numeri interi negativi Prima soluzione: 1 bit per il segno, gli altri per il valore assoluto del numero con quattro bit: 0000 +0 0001 +1 0010 +2 ... 0111 +7 1000 -0 1001 -1 1010 -2 ... 1111 -7 Codifica dei numeri interi negativi due controindicazioni: 2 rappresentazioni dello 0 non si possono applicare le regole tradizionali per le operazioni aritmetiche: 0 1 1 0 0 1 1 1 0 0 + +2 1 = -3 1 -5 Codifica dei numeri interi negativi: complemento a 2 Rappresentazione in complemento a 2 (complemento a 1 + 1) bit più significativo (più a sx) per rappresentare il segno (0 per il +, 1 per il -) comune rappresentazione binaria per i numeri positivi per i numeri negativi: inversione dei restanti bit (01 e 10) e poi si somma 1 in alternativa: dati N bit, codifico in binario il numero risultato da 2N – num (es. Con 4 bit per codificare in complemento a 2 -7 calcolo 16-7 = 9 e codifico 9 in binario: 1001) Rappresentazione in complemento a 2: esempio -5 con quattro bit il bit di segno è 1 Conversione: Inversione: Somma di 1: Verifica: + 5 –5 =0 510 = 01012 0101 1010 1010 + 1 = 1011 0101 1011 = (1)0000 Conversione da complemento a 2 in decimale con segno se prima cifra 0 numero positivo conversione solita (es. 0100 +4) se prima cifra 1 numero negativo inversione dei bit (tranne il primo) conversione da binario a decimale somma di 1 Conversione da complemento a 2 in decimale con segno: esempio 1101 tolgo il bit di segno 101 Inversione 010 Conversione in decimale 0102 = 210 Somma 2 + 1 = 3 Segno -3 Rappresentazione in complemento a 2 Con quattro bit: 0000 0001 0010 0011 0100 0101 0110 0111 0 +1 +2 +3 +4 +5 +6 +7 1000 1001 1010 1011 1100 1101 1110 1111 -8 -7 -6 -5 -4 -3 -2 -1 In generale Con N bit ho 2N configurazioni possibili Considerando interi positivi codifico i numeri da 0 a 2N-1 Considerando interi positivi e negativi (complemento a 2) codifico i numeri: positivi: da 0 a 2N-1-1 negativi: da -2N-1 a -1 Rappresentazione digitale di immagini b/n B/n senza ombreggiature 2 valori possibili per ogni pixel (es. 0 = bianco, 1 = nero) 1 bit 21 22 23 24 17 18 19 20 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 0000011001 0 0 0 1 0 0 0 1 0 0… 1 2 3 4 5 6 7 8 910 11 12 13 14 15 16 17 18 19 20 … Rappresentazione digitale di immagini b/n Quindi una singola immagine verrà rappresentata come una griglia in cui ogni singolo pixel (ciò che viene acceso/spento) occupa 1 bit. Quanto spazio per memorizzarla dipende dalla dimensione della griglia. Ad es. 30X30 pixel occupa 30X30 bit Rappresentazione digitale di immagini Colori 4 bit 24=16 diversi livelli di grigio o colori 8 bit 28=256 diversi colori Aumento della precisione Aumentando il numero dei pixel (quindi, diminuendo la loro dimensione) RISOLUZIONE = precisione della suddivisione Pixel = unità di misura della risoluzione Es. 6 X 4 pixel nei video dei PC risoluzioni standard sono 640 X 480 o 1024 X 768 Rappresentazione digitale di immagini a colori Quindi una singola immagine verrà rappresentata come una griglia in cui ogni singolo pixel (ciò che viene acceso/spento) occupa n bit (dove n individua il numero di bit che esprimono 2n colori). Quanto spazio per memorizzarla dipende dalla dimensione della griglia e da n. Ad es. 30X30 pixel con 2n colori occupa 30X30Xn bit Filmati Rappresentazione come sequenze di fotogrammi Frequenza= Num. Fotogrammi nell’unità di tempo (si misura in Hertz, Hz) Es. Immagini TV 25/30 fotogrammi al sec Es. Standard PAL 25 fotogrammi al sec Tecniche di compressione Le immagini possono richiedere molto spazio per la loro memorizzazione Esempi di tecniche di compressione 000000000011 10 volte 0, 2 volte 1 Memorizzazione non di tutti i bit o fotogrammi (riduzione di fedeltà rispetto all’originale ma spesso non è percepibile dall’occhio umano) Es. MPEG (filmati): un fotogramma ogni 12 Elaborazione delle immagini Dopo la digitalizzazione un’immagine può essere modificata modificando la sequenza di bit che la rappresenta Ad esempio Modifica dei colori Eliminazione oggetti rappresentati o loro sostituzione Trasmissione criptata delle pay-TV La nuova chirurgia estetica PRIMA DOPO Come sognano le donne www.imagecreation.it La nuova chirurgia estetica PRIMA DOPO Come sognano gli uomini www.imagecreation.it Codifica dei suoni Rappr. Analogica – analoga alla quantità fisica in esame Rappr. Digitale – Campionamento dell’onda sonora Rappr. Digitale – Quantizzazione dell’onda sonora Codifica dei suoni Rappresentazione tanto più precisa tanto più Frequente è la campionatura Maggiore il numero di bit per codificare l’informazione Esempi Cassetta musicale: 22 KHz, 9/10 bit per campione Audio CD: 44,1 KHz, 16 bit per campione DVD: 48 KHz, 16 bit per campione Schede audio PC: 10/40 KHz, 16 bit per campione Tecniche di compressione I suoni possono richiedere molto spazio per la loro memorizzazione tecniche di compressione: due tipologie senza perdita di dati: permette di non perdere neanche un bit dell’informazione che si vuole comprimere con perdita di dati: per ridurre al minimo le dimensioni occupate elimina alcun bit dell’informazione che si vuole comprimere Tecniche di compressione MP3 (MPEG 1 Layer 3) utilizza una tecnica di compressione con perdita dei dati Il formato MP3: usa dei criteri psico-acustici umani: considera solo i suoni che il nostro cervello è in grado di percepire (sotto frequenza 20000Hz e non nascosti da suoni di intensità maggiore) Risparmio di 1/10 rispetto a formato .wav (bitrate 128 Kbit/s vs bitrate 1411 Kbit/s) dove bitrate = num di bit necessari per codificare 1 secondo di audio Elaborazione dei suoni Dopo la digitalizzazione è possibile ad es. eliminare parte del suono (es. rumori di fondo) modificare il suono (es. eliminare le distorsioni) Sintetizzare suoni a partire da campioni musicali Aggiungere delle distorsioni (es. Filtri per riprodurre i fruscii dei dischi in vinile – vedi dimostrazione in aula)