




Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
riassunto primo capitolo-codifica e decodifica
Tipologia: Appunti
1 / 8
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





L’entità minima di informazione che possiamo trovare all’interno di un elaboratore prende il nome di bit (Binary digit). Un bit può assumere solo due valori: 0 e 1. Le ragioni della scelta di una rappresentazione binaria sono prevalentemente di carattere tecnologico , ossia dipende da come funzionano i dispositivi che costituiscono il computer. Questi dispositivi difatti sono bistabili , cioè assumono sempre uno stato fra due possibili: stati di polarizzazione di una sostanza magnetizzabile positivo/negativo; stati di carica elettrica di una sostanza positivo/negativo; passaggio/non passaggio di corrente attraverso un conduttore; passaggio/non passaggio di luce attraverso una fibra ottica. Questi 2 possibili stati fisici possono essere naturalmente tradotti nei simboli numerici del sistema binario: 1 e 0. Un singolo bit può rappresentare due stati, o due entità. Per poter rappresentare un numero maggiore di oggetti si usano sequenze di bit. Ad esempio, con due bit è possibile rappresentare quattro entità: 00,01,10,11.
Selezionando un numero di bit N tale che il numero delle configurazioni possibili sia superiore o uguale a M (2 alla N maggiore ugiale a M in parentesi quadra), almeno una configurazione da far corrispondere a ogni simbolo dell’alfabeto. Matematicamente, la formula è log in base 2 di M=In (M)/In(2). Esempio: M=350log in base 2(350)=In(350)/In(2)=8.45…2 alla 9 quindi 9 bit, perché 2 alla 8 è uguale a 256.
La sequenza di bit di lunghezza 8 (2 alla ottava=256 informazioni) prende il nome di byte. Il byte è usato come unità di misura per indicare la capacità della memoria, e la dimensione dei file. Date le dimensioni odierne di memoria e file, comunemente si usano i multipli di byte:
1.Kilobyte= KB 2 alla 10 byte, un migliaio di byte (1024)
2.Megabyte=MB 2 alla 20 byte, un milione di byte (1024 KB)
3.Gigabyte= GB 2 alla 30 byte, un miliardo di byte (1024 MB)
4.Terabyte= TB 2 alla 40 byte, mille miliardi di byte (1024 GB)
Il primo problema che si presenta se vogliamo poter comunicare con il computer usando il nostro linguaggio è quello di poter rappresentare un alfabeto di caratteri :
in totale si tratta di un alfabeto di 220 caratteri circa considerando, che ho bisogno di associare a ogni carattere una sequenza di bit univoca (codice numerico), ho bisogno di ... ...almeno 8 bit ( byte)!
Ognuno potrebbe scegliere una sequenza arbitraria di 8 bit per rappresentare un carattere, rendendo queste codifiche incompatibili tra loro. Per questo motivo, consorzi di produttori hanno definito
alcune convenzioni (o codici ) mediante le quali è possibile rappresentare in modo univoco un certo numero di caratteri attraverso configurazioni di bit prestabilite. Le codifiche standard più comuni per i caratteri sono:
Una volta decisa la codifica da usare per i caratteri, è possibile codificare una parola come la sequenza di bit dei caratteri che la compongono. Per codificare un testo (contenente parole e punteggiatura, come spazi, tabulazioni ed a capo), è sufficiente concatenare la sequenza di parole e caratteri di punteggiatura che lo compongono. Il numero di byte necessari alla sua codifica dipenderà quindi dal numero di caratteri e segni di punteggiatura presenti nel testo.
Lo standard di codifica ASCII (così come le altre codifiche standard) permette di codificare cifre decimali da 0 a 9 come caratteri : è quindi possibile, utilizzando tale codifica, rappresentare numeri come sequenze di caratteri.
Problema: con questo tipo di rappresentazione non è possibile effettuare operazioni aritmetiche tra numeri!
per permettere di utilizzare le operazioni tra numeri, questi vengono codificati in una maniera differente rispetto ai caratteri.
Il sistema di numerazione posizionale
Nella notazione posizionale dei numeri, quella che usiamo normalmente, ogni cifra di un numero assume un certo valore in funzione della sua posizione. Un sistema differente era quello usato dagli antichi romani, che era additivo anziché posizionale.
Esempio: in base 10 (quella che usiamo usualmente), la
notazione compatta 365 sta per
3x100+6x10+5x1 o 3x10 alla seconda + 6x10 alla prima + 5x10 alla zero in NOTAZIONE ESPLICITA.
Ogni numero si esprime quindi come la somma dei prodotti di ciascuna cifra per la base elevata all’esponente che rappresenta la posizione della cifra (partendo da 0, da destra verso sinistra).
Conversione tra basi 2, 8 e 16
Le basi ottale ed esadecimale non sono realmente usate dai computer, ma servono per noi umani , per rappresentare in maniera compatta le informazioni codificate in base binaria. La conversione da base binaria a queste a queste due basi è semplice, basta:
La conversione da queste due basi alla base binaria funziona all’inverso (vedi esempio su slide)
Rappresentazione dei numeri
In generale, un numero può essere in una di queste 3 categorie:
Quella che abbiamo visto è la codifica degli interi senza segno , la più semplice: gli altri tipi di numeri sono codificati in maniera più complessa, ma non ci interessano. Indipendentemente dalla rappresentazione scelta, essa sarà di tipo finito e consentirà di rappresentare solo un sottoinsieme finito di numeri!
In generale, con n cifre a disposizione e base b , il più grande numero (intero positivo) rappresentabile si può esprimere come b alla n-
Codifica di immagini
I caratteri alfanumerici ed i numeri non costituiscono le uniche informazioni che gli elaboratori utilizzano! Le applicazioni multimediali (come il Web) utilizzano ed elaborano informazioni che contengono immagini, suoni e filmati .. Come si codificano? Cominciamo col considerare una semplice immagine in bianco e nero , senza alcuna ombreggiatura o livello di chiaroscuri. Utilizzando una tecnica classica dei disegnatori per riprodurre figure rispettandone le proporzioni, suddividiamo l’immagine mediante una griglia formata da linee orizzontali e verticali equidistanti tra loro. Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione:
Poiché una sequenza di bit deve essere 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, la codifica risulta. Quella che si ottiene nella codifica è un’ approssimazione dell’immagine originaria, che può essere più o meno precisa in base alla grandezza dei pixel: digitalizzazione=perdita di qualità.
Immagini a toni di grigio e a colori
Assegnando un bit ad ogni pixel è possibile codificare solo immagini in bianco e nero. Per codificare le immagini con diversi livelli di grigio , oppure a colori , si usa la stessa tecnica, ma per ogni pixel viene assegnata una sequenza di bit : per esempio, se
utilizziamo quattro bit a pixel possiamo rappresentare 2 alla 4 ovvero 16 livelli di grigio o 16 colori diversi. Uno dei modelli di rappresentazione di colori più utilizzato è chiamato RedGreenBlue grazie al quale un qualsiasi colore può essere rappresentato componendo rosso, verde e blu (colori primari). Ogni colore primario (rosso, verde e blu) è rappresentato con 1 byte , contiene la sfumatura di rosso, di verde e di blu che lo compone; pertanto si possono esprimere 256 sfumature per il rosso, 256 per il blu e 256 per il verde che, combinate insieme, danno origine a 16.777.216 colori diversi; quindi ogni pixel per essere memorizzato richiede in tutto 3 byte : 1 byte per ognuno dei tre colori primari.
Compressione delle immagini
Le immagini codificate pixel per pixel, con la tecnica che abbiamo visto, sono dette immagini in grafica bitmap (occupano molto spazio). Esistono degli standard di codifica delle immagini che utilizzano tecniche di compressione , in modo da ridurre le dimensioni delle immagini rispetto al formato bitmap. Queste tecniche sfruttano strumenti di teoria dell’informazione, o alcune regolarità presenti nelle immagini. ad esempio, se in un’immagine più punti vicini tra di loro assumono lo stesso colore, si può memorizzare la codifica del colore una sola volta e poi ricordare per quante volte deve essere ripetuta! Alcuni esempi di formati compressi molto utilizzati sono GIF e JPEG. Oltre alle dimensioni, anche la qualità delle immagini si riduce rispetto allo standard bitmap. Per l’utente medio la differenza è quasi invisibile, ma per chi si occupa di grafica, e deve maneggiare immagini a zoom elevato, l’immagine risulterà più sgranata, e più difficile da manipolare!
Grafica vettoriale
Un altro tipo di codifica delle immagini è quella vettoriale : in una codifica di tipo vettoriale non si specificano le informazioni di colore dei singoli pixel dell’immagine, invece, ogni elemento geometrico primitivo (per esempio linee, curve) viene specificato individualmente, attraverso un numero od una formula matematica. Le immagini vengono costruite a partire dalla descrizione degli elementi che le compongono mediante un linguaggio testuale , che specifica le forme geometriche base che compongono l’immagine da codificare, la loro posizione e dimensione. La grafica vettoriale viene utilizzata perché per immagini semplici spesso si occupa meno spazio rispetto all’uso del bitmap o di altri standard compressi, e le immagini non perdono in definizione se ingrandite. La grafica bitmap , invece, riesce a rendere con qualità maggiore immagini con un numero elevato di colori e di sfumature , mentre le immagini vettoriali sono più adatte ad immagini con colori netti, come ad esempio un logo.
Codifica dei suoni
Fisicamente un suono è rappresentato come un’ onda che descrive la variazione della pressione dell’aria nel tempo (onda sonora), sull’asse delle ascisse viene rappresentato il tempo e sull’asse delle ordinate viene rappresentata la variazione di pressione corrispondente al suono stesso. Per la codifica dei suoni, si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli di tempo costanti) e si codificano in forma digitale le informazione estratte da tali campionamenti (il valore numerico sull’asse delle ordinate). Quanto più frequentemente il valore di intensità dell’onda viene campionato, tanto più precisa sarà la sua rappresentazione! Il numero di campioni raccolti per secondo definisce la frequenza di campionamento, che si misura in Hertz (Hz). La sequenza dei valori numerici ottenuti dai campioni può essere facilmente codificata con sequenze di bit, concatenandoli tra loro. La rappresentazione è tanto più precisa quanto maggiore è la frequenza dei campionamenti, il numero di bit utilizzati per codificare l’informazione estratta in fase di campionamento (il valore dell’onda nell’istante di tempo): con 2 bit si potranno rappresentare solo 4 valori, con 8 saranno 256, con 16 invece 65.536, e così via.