Memoria e informazioni INFORMAZIONE ISTRUZIONI REALI DATI NUMERICI INTERI NON NUMERICI CARATTERI ALTRI Rappresentazione dell’informazione Rappresentazione mediante opportuna codifica 1 I dati multimediali ALTRI Immagini Vettori Mappa di bit TIFF Filmati Audio MPEG WAV AVI MIDI …….. …….. DWG …….. BMP COMPRESSIONE DEI DATI Rappresentazione dell’informazione JPEG GIF …….. 2 Rappresentazione in macchina I dati di macchina sono memorizzati in registri. Esistono registri singoli e registri organizzati in sistemi detti in generale memorie. Rappresentazione dell’informazione 3 Numeri interi Sistema di numerazione Nel romano ciascuna cifra esprime una quantità indipendente dalla propria posizione Nel decimale ogni cifra ha un'importanza (peso) variabile a seconda della sua posizione nel numero (codice): ad esempio, la prima cifra a destra indica le unità, la seconda indica le decine, la terza le centinaia, ecc. Rappresentazione dell’informazione 4 Esempi di sistemi di numerazione 84079 = 8*104+4*103+0*102+7*101+9*100= 80000 + 4000 + 0 + 70 + 9 MML (2050) MDCCCLXXXVIII (1888) Il simbolo L esprime il numero decimale 50 indipendentemente dalla sua posizione Rappresentazione dell’informazione 5 Caratteristiche La logica dei sistemi di numerazione posizionali pesati non dipende dalla base Fissati k simboli si può definire un sistema posizionale in base k La base di rappresentazione si specifica: (4791)10 (1431)5 (10101)2 Rappresentazione dell’informazione 6 Sistema binario Con i due simboli 0 e 1 si definisce il sistema con base 2 (11001101)2 = 1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20 = 128 + 64 + 0 +0 +8 +4 +0 +1 = (205)10 Con otto bit 256 Valori Numeri naturali da 0 a 255 Rappresentazione dell’informazione 7 Le operazioni in binario Somma Prodotto + 0 1 0 0 1 Tabelline 1 1 10 * 0 1 0 0 0 1 0 1 Riporto e prestito Rappresentazione dell’informazione 8 Esempi 01010101+ 01010110- 00010111= 10 10 11 1 10 1 1 0 01101100 00010101= 1 0 0 0 prestito 0 0 1 0 01000 00 1 Riporto e Rappresentazione dell’informazione 0 10 1 9 Modello grafico di addizionatore 0000 1111 0001 0010 1110 15 0 14 1101 1 2 0011 3 13 1100 4 12 11 5 1011 10 8 1010 1001 0100 0101 6 9 Sottrazione 14-9=5 7 0110 0111 1000 Rappresentazione dell’informazione Addizione 10 L’overflow Impossibilità di gestire tutti i bit del risultato 1 1 0 1 1 0 1 0 0 + 1 0 0 1 0 0 1 0 = 0 1 0 0 0 1 1 0 Problemi di errori Rappresentazioni finite Rappresentazione dell’informazione Problemi di approssimazioni 11 La rappresentazione esadecimale In base 2 un numero e’ 3.3 volte piu’ lungo dello stesso numero espresso in decimale Stringhe di bit troppo lunghe e difficili da gestire, allora: cifra esadecimale 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Rappresentazione dell’informazione se si fa in modo che per la codifica delle cifre si adopera la numerazione binaria pura 12 Binario - Esadecimale Il passaggio da una rappresentazione all’altra e’ immediato 1100110102 = 41010 = 1*28 + 1*27 + 0*26 + 0*25 + 1*24 + 1*23+ 0*22 + 1*21 + 0*20 = (0*23+0*22+0*21 +1*20)*28 + (1*23+0*22+0*21 +1*20)*24 + (1*23+0*21+1*20 +0*20)*20 = 1 * 162 + 9 * 161 + 10 * 160 = 19A16 Rappresentazione dell’informazione 13 Trasformazione • Si raggruppano i bit in gruppi di quattro a partire dalla cifra meno significativa (cioe’ da sinistra a destra) • Ogni gruppo dev'essere sostituito con la corrispondente cifre ESADECIMALE 1 1001 1010 1 Rappresentazione dell’informazione 9 A 16 14 Conversioni di base Da una base k qualsiasi a quella decimale: • è sufficiente considerare la successione di cifre con il peso nella base K assegnata, • si esegue la somma, • ovviamente in decimale ! Rappresentazione dell’informazione 15 Esempi Da base 2 (1011)2 = 1*23 + 1*21 + 1*20 = 13 Da base 8 (31)8 = 3*81 + 1*80 = 25 Da base 16 (18)16 = 1*161 + 8*160 = 24 Rappresentazione dell’informazione 16 Conversione da base 10 a k Detto N il valore da trasformare e cn,cn-1,…c1,c0 le cifre da trovare N= cn*kn + cn-1*kn-1 +…+ c1 *k + c0 Allora dividendo entrambi i membri per K N/K= cn*kn-1 + cn-1*kn-2 +…+ c1 con resto c0 (N/K)/K= cn*kn-2 + cn-1*kn-3 +…+ c2 con resto c1 Rappresentazione dell’informazione 17 Esempio per base 2 98 49 24 12 6 3 1 : : : : : : : 2 2 2 2 2 2 2 ---> ---> ---> ---> ---> ---> ---> q1 q2 q3 q4 q5 q6 q7 = 49, r1 = 0 = 24, r2 = 1 = 12, r3 = 0 = 6, r4 = 0 = 3, r5 = 0 = 1, r6 = 1 = 0, r7 = 1 c0 c1 c2 c3 c4 c5 c6 Pertanto: (98)10 = (1100010)2 Rappresentazione dell’informazione 18 Esempio per base 8 799 99 12 1 Pertanto: : : : : 8 8 8 8 ---> ---> ---> ---> q1 q2 q3 q4 = 99, r1 = 7 = 12, r2 = 3 = 1, r1 = 4 = 0, r4 = 1 (799)10 = (1437)8 Rappresentazione dell’informazione 19 Esempio per base 16 1479 : 16 ---> q1 = 92, r1 = 7 92 : 16 ---> q2 = 5, r2 = (12)10 ovvero C 5 : 16 ---> q3 = 0, r3 = 5 Pertanto: (1479)10 = (5C7)16 Rappresentazione dell’informazione 20 I numeri frazionari N = c-1*k-1 + c-2*k-2 +…+ c-x *k-x con k = 2 (0.1011)2 = 1*2-1 + 0*2-2 + 1*2-3 + 1*2-4 = 1*1/2 + 0*1/4 + 1*1/8 + 1*1/16 = 0.5 + 0.125 + 0.0625 = 0.6875 Rappresentazione dell’informazione 21 Per i numeri frazionari Conversioni separate per parte intera e frazionaria Per la sola parte frazionaria: • si moltiplica il numero per la base k • si prende la parte intera del risultato e si moltiplica di nuovo per k • si termina quando la parte frazionaria diventa nulla • oppure quando ci si accorge della presenza di un periodo Rappresentazione dell’informazione 22 Conversione numero frazionario N= c-1*k-1 + c-2*k-2 +…+ c-x *k-x si moltiplica per k N*k= c-1*1 + c-2*k-1 +…+ c-x *k-x+1 con parte intera c-1 Rappresentazione dell’informazione 23 Esempio 0.1 0.2 0.4 0.8 0.6 0.2 Pertanto: * * * * * * 2 2 2 2 2 2 ---> ---> ---> ---> ---> ---> i1 i2 i3 i4 i5 i6 = = = = = = 0, 0, 0, 1, 1, 0, p1 p2 p3 p4 p5 p6 = = = = = = 0.2 0.4 0.8 0.6 0.2 0.4 c-1 c-2 c-3 c-4 c-5 c-6 (0.1)10 = (0.00011)2 con approssimazione ! 0.09375 Rappresentazione dell’informazione 24 Un bit di segno Si può convenire che l’ottavo bit indichi il segno: 0111 1011 + 111 1011 1100 1010 - 100 1010 rappresentazione per segno e modulo ben nota Con otto bit 256 Valori Numeri interi da -127 a +127 ….. ci sono problemi ……… Rappresentazione dell’informazione 25 Un bit di segno (cont.) • Due rappresentazioni dello zero 0000 0000 1000 0000 • Algoritmi diversi e complicati per somma e sottrazione …. Meglio allora…. Rappresentazione dell’informazione 26 Complemento alla base Il valore del numero si ottiene sulla base sempre dell’ottavo bit •0 positivi •1 negativi Dalla somma • valore delle prime sette cifre • l’ottava considerata negativa Rappresentazione dell’informazione Dal valore delle prime sette cifre 10001000 = -1*27 + 1*23 27 Complemento alla base(cont.) c7 c6 c5 c4 c3 c2 c1 c0 Se c7 =0, il numero è positivo e pari a : c6*26+c5*25+c4*24+c3*23+c2*22+c1*21+c0*20 Se c7 =1, il numero è negativo e pari a : -1*27 +c6*26+c5*25+c4*24+c3*23+c2*22+c1*21+c0*20 Rappresentazione dell’informazione 28 Alcuni esempi 20 21 22 23 24 25 26 27 1 2 4 8 16 32 64 128 Con otto bit 1000 0000 0000 0100 1001 0010 1111 1111 0000 0000 1010 1010 -128+0 4 -128+18 -128+127 0 -128+42 256 Valori -128 4 -110 -1 0 -86 Numeri interi da -128 a +127 Rappresentazione dell’informazione 29 Caratteristiche Il valore negativo si ottiene semplicemente. • si fissa il modulo 0000 1111 • si complementano tutte le cifre 1111 0000 -128+112 = -16 • si aggiunge 1 all’ultima cifra 1111 0001 -128+113 = -15 Rappresentazione dell’informazione 15 30 Caratteristiche Un unico algoritmo per la somma e la sottrazione ! 0000 1000+ 1000 1000= ------------------1001 0000 Rappresentazione dell’informazione 8+ -120= ----------112 31 Binary Coded Decimal Alcuni sistemi adottano anche una aritmetica decimale poiché log2 10 =4 bit B.C.D. 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Sistema decimale codificato in binario Rappresentazione dell’informazione 32 B.C.D. in memoria 1 byte = 8 bit 1 sola cifra zoned 2 cifre packed Con i primi quattro bit scelti per semplificare le operazioni di input ed output Rappresentazione dell’informazione Per ridurre l’occupazione di memoria 33 Caratteristiche •in input il numero e’ organizzato in formato packed •in memoria levando ad ogni byte i “bit di zona”, si compattano le cifre in formato packed •in output si aggiungono ad ogni cifra i bit di zona •per i numeri negativi •4 bit sono indicativi del segno a fianco della cifra meno significativa •rappresentazioni in segno e modulo o in complemento a 10 Rappresentazione dell’informazione 34 Operazione in memoria • Le operazioni procedono dalle cifre meno significative fino a quelle piu’ significative • presenza di una indicazione del numero delle cifre • correzioni necessarie quando il risultato di una operazione su due cifre eccede 10101 Rappresentazione dell’informazione 35 Esempio 4+ 5= 9 0100 + 0101 = 1001 5+ 9= 14 0101 + 1001 = 1110 + 0110 = (1) 0100 10 + 4 Rappresentazione dell’informazione si somma 6 36 Carry e Half-Carry Nella rappresentazione packed si introduce il riporto che si genera sommando le prime cifre 38 + 0011 1000 + 12 = 0011 0010 = 50 0100 1010 0110 0100 0000 1 0101 0000 Half-carry mentre il carry propaga il riporto tra un byte e l’altro Rappresentazione dell’informazione 37 Numeri reali Due differenti rappresentazioni: Virgola in posizione non fissata Floating point Virgola in posizione fissata 323.87611 Rappresentazione dell’informazione 0.231E21 Più agevole 38 Floating point Infinite rappresentazioni di uno stesso valore 0.002 2E-3 20E-4 0.002E0 ………. Per poter scegliere quella più opportuna Rappresentazione dell’informazione 39 Floating point • Se si considera che i registri di memoria consentono rappresentazioni finite nel numero di cifre • Si può così scegliere la rappresentazione che contiene il maggior numero di cifre significative. 0.0000234 234E-5 0.00345671 346E-3 Calcolatrice con sole tre cifre Eliminando gli zeri a sinistra e prendendo le cifre che è possibile rappresentare dopo aver approssimato l’ultima Rappresentazione dell’informazione 40 Caratteristiche Rappresentazione mediante una coppia di interi -128E23 MANTISSA Rappresentazione dell’informazione ESPONENTE 41 Diverse rappresentazioni Singola Precisione 4 byte 31 23 22 0 Doppia Precisione 8 byte 14-15 cifre 63 55 54 Rappresentazione dell’informazione 0 42 Problemi Le operazioni nella rappresentazione in virgola mobile sono: Somma/Sottrazione (allineamento delle mantisse) 100*100 + 100*10-2 = (100 + 001)*100 = 101*100 Prodotto/Divisione operazioni diverse su mantisse ed esponente: prodotto/divisione Mantisse somma/sottrazione Esponenti 0,10*101 x 0,20*102 = (0,10 x 0,2)*101+2 = 0,02*103 Rappresentazione dell’informazione 43 Implicazioni • con trasformazione del risultato per recuperare tutte le cifre significative • approssimazione della mantissa durante l’allineamento per arrotondamento 146 *10-1 + 500*100 = 015 *100 + 500 *100 = 515 *100 per troncamento 146 *10-1 + 500*100 = 014 *100 + 500 *100 = 514 *100 Rappresentazione dell’informazione 44 Caratteri Per rappresentare i caratteri esistono vari codici stringa di bit simbolo gli standard accettati sono: EBCDIC 8 bit ASCII 7 bit (ASCII esteso 8 bit = 256 simboli) Lo standard e’ importante affinche’ sistemi diversi comunichino tra loro Rappresentazione dell’informazione 45 Codice ASCII Rappresentazione dell’informazione 46 Per comunicare con il mondo A 0100 0001 A 0110 0001 9 0011 1001 8 0011 1000 7 0011 0111 zona valore Rappresentazione dell’informazione Necessità di identificare dispositivi e meccanismi 47 UNICODE Alfabeto universale Rappresentazione dell’informazione 48 I dati multimediali La realtà è continua La codifica delle informazioni è discreta Rappresentazione dell’informazione 49 Da analogico a digitale Un media analogico può essere rappresentato matematicamente sempre come una funzione continua del tempo, mentre una rappresentazione digitale è una rappresentazione discreta di questa. La trasformazione da analogico a digitale si realizza per mezzo una operazione detta campionamento ed una di quantizzazione: a intervalli regolari di tempo, si va a osservare quali valori assume la funzione analogica e se ne conservano le osservazioni o campioni l’operazione di quantizzazione approssima i campioni ad un certo numero prefissato di livelli Rappresentazione dell’informazione 50 Convertitori Analogici Digitali (ADC) e Digitali Analogici (DAC) Rappresentazione dell’informazione 51 Codifica delle Immagini Nel mondo reale, una immagine è un insieme continuo di informazioni luce, colore Il calcolatore tratta informazioni discrete E’ allora necessario scomporre l’informazione in un insieme finito di elementi che verranno codificati con sequenze di bit Rappresentazione dell’informazione 52 Le Immagini BitMap (1) La scomposizione più ovvia consiste nel suddividere l’immagine in un reticolo di punti detti pixel (picture element) 10000000 11000000 11100000 11111000 11111100 11111111 Rappresentazione dell’informazione 10000000 11000000 11100000 11111000 11111100 11111111 53 Le Immagini BitMap (2) Ogni punto del reticolo viene codificato con uno o più bit. per immagini a due soli colori, bianco e nero, 1 bit/pixel per immagini a livelli di grigio, (256 livelli), 8 bit/pixel Rappresentazione dell’informazione 54 Charge Coupled Device dispositivo ad accoppiamento di carica Gli occhi elettronici che acquisiscono una areola del mondo: percependone le caratteristiche di colore, luminosità, etc, Più piccola è l’areola, più vicine sono tra loro, più numerose sono Rappresentazione dell’informazione Migliore la qualità dell’immagine acquisita 55 Le immagini a Colori La colorimetria spiega che un colore può essere ottenuto tramite combinazione di almeno tre colori base detti primari Se i tre colori base sono il Rosso, il Verde ed il Blu si ha lo spazio RGB Color = a R + b G + c B Con 8 bit/colore base, per ogni colore si useranno 24 bit, ovvero circa 16 milioni di colori diversi Rappresentazione dell’informazione 56 I formati BitMap Ciascuna immagine viene memorizzata con diversi formati bitmap alcuni dei quali prevedono forme di compressione Tra i formati più comuni, Tagged Image File Format TIFF Graphics Interchange Format GIF Joint Photographers Expert Group JPEG Microsoft Bit Map BMP e Device Independent BitMap DIB PC Paintbrush PCX Rappresentazione dell’informazione 57 Alcune dimensioni dei BITMAP Immagine Definizione Colori Televisiva 720x625 SVGA 1024x768 Bit Occupazione 256 8 440 Kb 65536 16 1,5 Mb Fotografia 15000x10000 16 M 24 430MB Rappresentazione dell’informazione 58 Le Immagini Vettoriali Una immagine viene descritta in modo astratto attraverso gli elementi grafici di alto livello (linee, archi, colori) che la costituiscono Triangle 0, 0, 0, 100, 100, 100 Rappresentazione dell’informazione 59 Caratteristiche della Grafica Vettoriale Ogni figura è codificata tramite un identificatore e alcuni parametri di posizione (punti, lunghezze di segmenti..) Pro Indipendenza dal dispositivo di visualizzazione e dalla sua risoluzione possibilità di modifiche ad alto livello Contro: Una immagine reale non è sempre scomponibile in elementi primitivi Per Visualizzare occorre avere lo stesso programma di Generazione del File Vettoriale Rappresentazione dell’informazione 60 I formati Vettoriali Tra i formati grafici più diffusi, vanno ricordati PostScript PS EPS PDF Drawing eXchange Format (DXF) Initial Graphics Exchange Specifications (IGES) Rappresentazione dell’informazione 61 Un disegno astratto Gli elementi non perdono la loro identità Rappresentazione dell’informazione 62 Le immagini in Movimento L’occhio umano ricostruisce l’informazione di movimento se riceve una successione sufficientemente rapida di immagini fisse Cinema: 24 fotogrammi/sec TV: 25 o 30 fotogrammi/sec Lo standard MPEG (Moving Picture Expert Group) è sostanzialmente la codifica di ciascun frame fisso, oltre alla codifica di suoni, attraverso tecniche di Compressione Dei Dati. senza compressione, 1 min. di filmato a 24 fotogrammi /sec occuperebbe 644MB Rappresentazione dell’informazione 63 Pulse Code Modulation Campionamento (Hz) Bit Mono/Stereo Occupazione Kb/s 8.000 8 8/ 16 8.000 16 16/ 31 11.025 8 11/ 22 11.025 16 22/ 43 22.050 8 22/ 43 22.050 16 46/ 86 44.100 8 43/ 86 44.100 16 86/172 Rappresentazione dell’informazione 64