Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Rappresentazione dell'informazione
Moreno Marzolla Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna
2
Rappresentazione dell'informazione
Copyright © 2016, 2017, 2018 Moreno Marzolla, Università di Bologna, Italy This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Rappresentazione dell'informazione
3
Logica binaria
4
Rappresentazione dell'informazione
I moderni calcolatori elettronici rappresentano ogni tipo di informazione mediante sequenze di bit In realtà devono gestire informazioni di tipo non necessariamente binario Numeri (interi, reali) Testi (sequenze di caratteri) Suoni, immagini, video Come rappresentiamo questi tipi di informazioni in un calcolatore elettronico? Rappresentazione dell'informazione
5
Rappresentazione di numeri non negativi
Una sequenza di N bit può rappresentare un intero non negativo in base 2 Esempio: quanto vale ? Risposta: = 53 Si sommano i pesi corrispondenti alle cifre binarie “1” Con N bit possiamo rappresentare tutti gli interi appartenenti all'insieme {0, … 2N - 1} 128 64 32 16 8 4 2 1 pesi cifre binarie Rappresentazione dell'informazione
6
Conversione decimale→binario
Si può procedere così Si divide il numero decimale ripetutamente per 2. I resti della divisione danno le cifre della rappresentazione binaria, a partire da quella meno significativa Es: come si scrive 7410 in binario? 74 / 2 = 37 resto / 2 = 18 resto / 2 = 9 resto / 2 = 4 resto / 2 = 2 resto / 2 = 1 resto / 2 = 0 resto 1 Cifra più a destra Cifra più a sinistra Rappresentazione dell'informazione
7
Rappresentazione dell'informazione
Somma binaria Quanto vale ? A B C A + B + C C' 1 Riporto = Regola generale per calcolare (A + B + C) ottenendo la somma e il nuovo riporto C' Rappresentazione dell'informazione
8
Rappresentazione dell'informazione
Sommatore a 1 bit E' possibile costruire un circuito (Full Adder) che accetta in input tre bit A, B e C (Carry, ossia “riporto”)... ...e calcola la somma S=A+B+C e il nuovo riporto C' A B ADD C' C S Rappresentazione dell'informazione
9
Rappresentazione dell'informazione
Calcolare S e C' A partire dalla tabella di verità, possiamo derivare due espressioni booleane per S e C' come visto in precedenza Oppure possiamo ragionare come segue: S vale 1 sse tutti e tre gli input valgono 1, oppure esattamente uno di loro vale 1 C' vale 1 sse almeno due dei tre input valgono 1 Rappresentazione dell'informazione
10
Rappresentazione dell'informazione
Calcolare S S vale 1 se tutti e tre gli input sono 1, oppure esattamente un input vale 1 Cioè: S ≡ (A AND B AND C) OR (A AND (NOT B) AND (NOT C) ) OR ((NOT A) AND B AND (NOT C) ) OR ((NOT A) AND (NOT B) AND C ) Oppure S ≡ (A AND B AND C) OR (A AND (B NOR C) ) OR (B AND (A NOR C) ) OR (C AND (A NOR B) ) Rappresentazione dell'informazione
11
Rappresentazione dell'informazione
Calcolare C' C' vale 1 se almeno due input sono 1 Cioè C' ≡ ( A AND B ) OR ( A AND C ) OR ( B AND C ) Esercizio: Disegnare il circuito per calcolare S e C' partendo dalle espressioni booleane Rappresentazione dell'informazione
12
Rappresentazione dell'informazione
Circuito sommatore Per sommare due numeri di N bit, possiamo utilizzare N Full Adder in cascata (Ripple-Carry Adder). Es. (N=4) A3A2A1A0 + B3B2B1B0 = S3S2S1S0 con riporto C A3 A2 A1 A0 B3 B2 B1 B0 ADD ADD ADD ADD C S3 S2 S1 S0 Esistono metodi più efficienti per propagare il riporto, che vedrete nel corso di Calcolatori Elettronici Rappresentazione dell'informazione
13
Rappresentazione dell'informazione
...e i numeri negativi? Come rappresentiamo numeri negativi, ad es -1? Si utilizza la rappresentazione in complemento a due Con N bit, il numero intero x viene codificato in binario allo stesso modo di 2N + x ignorando eventuali overflow Nota: 010 (decimale) in complemento a due si scrive C (una stringa di N zeri) Rappresentazione dell'informazione
14
Rappresentazione dell'informazione
Esempio Supponiamo di avere N = 4 bit, e di voler codificare il numero x = 6 2N + x = = 22 2210 in binario si scrive Abbiamo a disposizione solo 4 bit, quindi scartiamo quello più a sinistra: rimane 01102C La rappresentazione in complemento a 2 di 610 coincide con la normale rappresentazione binaria Questo vale per tutti i numeri positivi Rappresentazione dell'informazione
15
Rappresentazione dell'informazione
Esempio Rappresentiamo x = -7 con N = 4 bit in compl. a due 2N + x = 24 – 7 = 9 910 in binario si scrive quindi -710 = 10012C Osservazione 1 Con N bit è possibile rappresentare in complemento a due i valori interi compresi tra -(2N-1) e 2N-1-1 (estremi inclusi) Con N = 8 bit [-128, 127] Con N = 16 bit [-32768, 32767] Con N = 32 bit [ , ] Osservazione 2 I numeri negativi (in complemento a due) hanno sempre il primo bit a sinistra 1; i numeri positivi hanno 0 Rappresentazione dell'informazione
16
Rappresentazione dell'informazione
Alternativamente Un modo alternativo per codificare un numero negativo in complemento a due (es., -78): Si codifica il valore positivo 7810 = Si inverte bit a bit il numero ottenuto → Si somma 1, scartando l'eventuale bit di riporto in eccesso = C Ovviamente si deve ottenere lo stesso risultato del metodo precedente Con N=8 bit, -78 si codifica come 28 – 78 = 178 → C Rappresentazione dell'informazione
17
Valori rappresentabili
Data una stringa di N bit, quanti (e quali) numeri si possono rappresentare in complemento a due? Es: N = 4 Rappresentazione dell'informazione
18
Conversione complemento a 2 → decimale
Si procede come per la conversione binario → decimale, con la differenza che il peso del bit più significativo (quello a sinistra) è -2N-1 anziché 2N-1 Esempio: quanto vale C ? Risposta: = -75 -128 64 32 16 8 4 2 1 pesi cifre binarie Rappresentazione dell'informazione
19
Somma in complemento a due
Si usano le stesse regole della somma binaria "normale" Calcolare 510 – 710 in compl. a due con N = 4 bit 510 = 01012C -7 si rappresenta come = = 910 = 10012C Sommando 01012C C si ottiene 11102C Il primo bit a sinistra vale uno, quindi è un valore negativo Infatti 11102C = = -2 Rappresentazione dell'informazione
20
Rappresentazione dell'informazione
Esercizio per casa Determinare la rappresentazione in complemento a due con N = 4 bit dei numeri A = -310 e B = -510 Calcolare la somma (A + B) sommando le rappresentazioni in complemento a due di A e B ottenute al punto precedente La somma così calcolata corrisponde al valore corretto A + B = -8 ? A = -3 corrisponde a in compl. a due B = -5 corrisponde a in compl. a due Ricordiamo che con N=4 bit possiamo rappresentare gli interi nell'insieme {-8, ... 7} Rappresentazione dell'informazione
21
Rappresentazione dell'informazione
Errore di overflow Se x e y sono due numero con segno diverso in complemento a due con N bit Il valore (x + y) sarà ancora rappresentabile con N bit in complemento a due Infatti: supponiamo che x sia positivo e y negativo ≤ x ≤ 2N N-1 ≤ y ≤ 0 da cui (sommando membro a membro): N-1 ≤ x + y ≤ 2N-1-1 Dunque x + y appartiene all'insieme dei valori rappresentabili in complemento a due con N bit Rappresentazione dell'informazione
22
Rappresentazione dell'informazione
Errore di overflow Se x e y hanno lo stesso segno, può verificarsi overflow. Esempio con N = 4 bit valori rappresentabili in complemento a due: (-2)10 + (-8)10 Riporto C + C = C Riporto C + C = C -2 -8 = 6 ?!?!? 3 + 6 = -7 ?!?!? Rappresentazione dell'informazione
23
Rappresentazione dell'informazione
Errore di overflow Si verifica overflow quando entrambe le condizioni seguenti sono vere Gli operandi hanno lo stesso segno Il segno della somma è diverso da quello degli operandi Esercizio Costruire un circuito booleano che accetta tre input binari (A=segno del primo operando, B=segno del secondo operando, C=segno della somma in complemento a due, 0 indica positivo, 1 indica negativo), e produce come risultato R=1 se e solo se si è verificato overflow Overflow A B R Rappresentazione dell'informazione C
24
Circuito sommatore con controllo di overflow
B3 B2 B1 B0 Overflow ADD ADD ADD ADD C S3 S2 S1 S0 Rappresentazione dell'informazione
25
Codifica di numeri reali
Come rappresentiamo un numero reale (“con la virgola”), come ad es. 34,76510? Usiamo la notazione scientifica normalizzata: 34,765 = 3,4765 × 101 0, = 7,653 × 10-3 Osserviamo che 3,4765 = 3× × × × ×10-4 Rappresentazione dell'informazione
26
Codifica dei numeri reali
Lo stesso si può applicare anche per la base 2 1,1012 = 1´20 + 1´ ´ ´2-3 = 1,812510 Possiamo scrivere un numero reale diverso da zero in base 2 come Dove: mmm.. sono le cifre della parte frazionaria della mantissa eee... rappresenta l'esponente Non si usa la rappresentazione in complemento a due, bensì la notazione “con bias”, vedi lucido seguente ±1,𝑚𝑚𝑚...× 2 𝑒𝑒𝑒... Rappresentazione dell'informazione
27
Codifica dei numeri reali
Solitamente si usa un numero fisso di cifre per la mantissa e per l'esponente Es: standard IEEE 754 singola precisione: 32 bit totali così suddivisi 1 bit 8 bit 23 bit s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm esponente si converte in intero senza segno e si sottrae 127 segno 0 = positivo 1 = negativo mantissa normalizzata dopo la virgola (prima della virgola si assume 1) Rappresentazione dell'informazione
28
Rappresentazione dell'informazione
Attenzione Nello standard IEEE 754 l'esponente NON si rappresenta in complemento a due Si interpreta in binario senza segno, e si sottrae 127 Il valore 0 viene rappresentato ponendo tutti i bit della mantissa e dell'esponente a zero Si ha uno "zero positivo" e "zero negativo"! Zero “positivo” 1 Zero “negativo” Rappresentazione dell'informazione
29
Rappresentazione dell'informazione
Esempio 1 Mantissa: 1,10112 = Esponente: = 12410 – = -310 Segno: - Valore: ´ 2-3 = Rappresentazione dell'informazione
30
Rappresentazione dell'informazione
Riepilogo Rappresentazione in base 2 Interi positivi Interi positivi e negativi (complemento a due) Valori reali Che dire di altri tipi di informazione? Caratteri alfanumerici Suoni Immagini ... Le istruzioni eseguite dalla CPU Rappresentazione dell'informazione
31
Codifica dei caratteri
Quanti simboli dobbiamo rappresentare? 26 lettere minuscole 26 lettere maiuscole 10 numeri (0—9) simboli vari (%, $, “...) alcuni caratteri di controllo (Return, Canc, Insert...) La codifica ASCII usa 7 bit per codificare 27 = 128 caratteri diversi Dato che i calcolatori moderni lavorano con Byte di 8 bit, si usa la codifica ASCII estesa (extended ASCII) che usa 8 bit per carattere La codifica UNICODE usa 8, 16 o 32 bit Con 32 bit si possono identificare 232 = simboli diversi Rappresentazione dell'informazione
32
Rappresentazione dell'informazione
ASCII = American Standard Code for Information Interchange "ASCII-Table-wide" by ASCII-Table.svg: ZZT32derivative work: LanoxxthShaddow - ASCII-Table.svg. Licensed under Public Domain via Wikimedia Commons - Rappresentazione dell'informazione
33
Rappresentazione dell'informazione
Codifica di immagini Le immagini non sono formate da “sequenze” di oggetti ben definiti come i numeri e i testi Per poterle rappresentare bisogna prima “discretizzarle” Cioè trasformarle in un insieme di parti “discrete” che possono essere codificate con sequenze di bit Consideriamo prima immagini fisse (foto etc …) Rappresentazione dell'informazione
34
Rappresentazione dell'informazione
Immagini vettoriali L'immagine è descritta mediante primitive geometriche (linee, cerchi, poligoni...) di cui si specificano i parametri By Tonchino - Own work, CC BY-SA 3.0, Rappresentazione dell'informazione
35
Rappresentazione dell'informazione
Immagini bitmap L’immagina viene scomposta in una griglia di elementi detti pixel (da picture element) Immagine originale Rappresentazione bitmap Rappresentazione dell'informazione
36
Rappresentazione dell'informazione
Immagini bitmap Ciascun pixel di una immagine in bianco e nero può essere rappresentato da un singolo bit Ad es., 0 = bianco, 1 = nero Rappresentazione dell'informazione
37
Rappresentazione dell'informazione
Immagini bitmap Immagini a toni di grigio Un byte per pixel (0=bianco, 255=nero, gli altri valori rappresentano toni intermedi di grigio) Immagini a colori: più bit (es., 3 Byte) per pixel 1 Byte per la componente Rossa (0—255) 1 Byte per la componente Verde (0—255) 1 Byte per la componente Blu (0—255) 10 24 191 Rappresentazione dell'informazione
38
Immagini bitmap vs vettoriali
Le immagini vettoriali possono essere ingrandite a piacere senza perdita di dettaglio I formati vettoriali sono adatti a disegni tecnici, ma non si prestano alla rappresentazione di immagini reali (es., un volto, un paesaggio) By The original uploader was Darth Stabro at English Wikipedia - Transferred from en.wikipedia to Commons by Pbroks13 using CommonsHelper., CC BY-SA 3.0, Rappresentazione dell'informazione
39
Rappresentazione dell'informazione
Codifica di immagini La rappresentazione accurata di una immagine bitmap dipende dal numero di pixel (definizione, o risoluzione) dalla codifica del pixel …e richiede generalmente molta memoria Risoluzione N. colori Byte Immagine Televisiva 720 ´ 625 256 (8 bpp) 440 KB Telev. 4K 3840 ´ 2160 4096 (12 bpp) ~ 12 MB Foto 15000 ´ 10000 16 milioni (24 bpp) ~ 430 MB bpp = bit per pixel Rappresentazione dell'informazione
40
Rappresentazione dell'informazione
Esercizio Una immagine ha una risoluzione di 1800 ´ 1200 pixel; ogni pixel può avere un colore scelto tra colori possibili Quanti Byte sono necessari per codificare l'immagine? Ipotizzare che il colore di un pixel sia rappresentato con il minimo numero di bit necessari per rappresentare univocamente un intero tra 0 e 65535 Trascurare lo spazio necessario per memorizzare la “tavolozza dei colori” Per codificare valori diversi sono necessari 16 bit = 2 Byte. Quindi lo spazio richiesto è 1800 x x 2 = B = circa 4 Megabyte Per codificare valori diversi sono necessari 16 bit = 2 Byte. Quindi lo spazio richiesto è 1800 x x 2 = Rappresentazione dell'informazione
41
Algoritmi di compressione
Per “risparmiare” memoria si impiegano tecniche di compressione Alcuni formati comunemente usati JPEG (immagini) MP3, FLAC (audio) MP4, H.263 (video) ZIP, RAR, BZ2 (file generici) Rappresentazione dell'informazione
42
Algoritmi di compressione
Algoritmi lossless (senza perdita di informazione): Operano un cambiamento di codifica dei dati che permette di diminuire il numero di bit necessari alla rappresentazione Consentono di ricostruire esattamente la sequenza di dati originali a partire dai dati compressi Esempio: sequenza di 1 milione di caratteri, A=00, B=01, C=10, D=11, totale 2 milioni di bit per la codifica se A compare il 90% delle volte posso ‘comprimere’ la codifica nel seguente modo A=0, B=100, C=110, D=111 ottenendo una lunghezza di : ´ ´ 3 = bit Rappresentazione dell'informazione
43
Algoritmi di compressione
Algoritmi lossy (con perdita di informazione) Sfruttano le caratteristiche degli oggetti da rappresentare per scartare informazione “poco importanti“ Possono ottenere livelli di compressione elevati, ma non consentono di ricostruire esattamente i dati originali a partire da quelli compressi Alcune informazioni sono eliminate dal processo di compressione L'algoritmo JPEG sfrutta la caratteristica dell’occhio umano di essere poco sensibile a lievi cambiamenti di colore in punti contigui, e quindi elimina questi lievi cambiamenti “appiattendo” il colore dell’immagine E' possibile specificare mediante alcuni parametri quanto siamo disposti a perdere in qualità nel processo di compressione Rappresentazione dell'informazione
44
Rappresentazione dell'informazione
Gli artefatti prodotti dalla compressione JPEG sono visibili ingrandendo l'immagine sotto forma di “blocchi” Rappresentazione dell'informazione
45
Rappresentazione dell'informazione
Codifica di video Il movimento è simulato mostrando immagini fisse in sequenza (24-30 al secondo) che l’occhio umano percepisce come un continuo Per risparmiare spazio alcuni metodi di codifica memorizzano solo le “differenze” fra un fotogramma e l’altro Rappresentazione dell'informazione
46
Rappresentazione dell'informazione
Codifica di suoni Un generico suono (o segnale analogico) è rappresentato da un'onda continua Tempo Rappresentazione dell'informazione
47
Codifica dei suoni Campionamento
Il segnale viene misurato ad istanti discreti Es: 1KHz = 1000 campioni/sec = 1 campione/msec Tempo Rappresentazione dell'informazione
48
Codifica dei suoni Quantizzazione
Per ogni campione, il valore assunto dal segnale viene espresso con un numero finito di bit (quantizzazione) Segnale campionato e quantizzato Segnale originale Tempo Rappresentazione dell'informazione
49
Rappresentazione dell'informazione
Codifica dei suoni L’accuratezza della ricostruzione dipende: da quanto sono piccoli gli intervalli di campionamento (intervalli più piccoli → qualità migliore) da quanti bit vengono utilizzati per descrivere il suono in ogni campione (più bit → qualità migliore) Gli algoritmi lossy di compressione audio 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 E' quello che accade nello standard MPEG Layer 3 (MP3) Rappresentazione dell'informazione
50
Rappresentazione dell'informazione
Idee chiave Rappresentazione binaria di interi Complemento a due Rappresentazione di informazione non numerica Compressione lossless e lossy Campionamento e discretizzazione Rappresentazione dell'informazione
51
Logica binaria
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.