vuoi
o PayPal
tutte le volte che vuoi
Terabyte TB 2^40 mille miliardi
Convenzioni delle codifica delle info testuali a livello internazionale: perchè così se si standardizza la
codifica poi la decodifica, cioè la ricezione dal messaggio da altre fonti potrà avvenire in maniera adeguata
perché tutti i sistemi “capiranno” i file ricevuti. Ad esempio, a livello internazionale le lettere sono leggibili
in ogni elaboratore in maniera uguale grazie agli stessi bit che configurano gli stessi caratteri.
Il metodo di codifica più diffuso è ASCII, che utilizza 220 caratteri differenti (quelli presenti sulla tastiera)
a soltanto un Byte. Ad esempio : 00000000 è spazio nullo per tutti, ecc. Ogni carattere prende 8 bit.
Le parole sono sequenze di caratteri ovviamente: allora ogni parola avrà una sua configurazione informativa
che somma le configurazioni delle lettere (es cane C A N E 01100011 01100001...)
Da sapere è il problema inverso della codifica: se io ho una sequenza di bit
ASCII base usa solo 7 degli 8 bit e manca alcuni caratteri nazionali , mentre l'ASCII esteso codifica per tutti
gli 8 bit. Esiste anche il sistema UNICOD che in questo panorama cerca di proporre uno standard a livello
planetario, mentre l'ASCII è più utilizzato in certi contesti.
Convenzione per la codifica delle immagini digitali: molto utile è rappresentare in digitale delle
immagini del mondo, molto usate in qualsiasi attrezzatura che prevede un display digitale.
La codifica avviene trasponendo aspetti dell'immagine in pixel, per cui a ogni bit corrisponde un pixel.
Abbiamo un'immagine e la scomponiamo in una griglia di pixel, che è in bianco e nero e tanto più viene
suddivisa al suo interno tanto più sarà informativa, dunque pesante, ma anche precisa l'immagine.
Il pixel è un quadratino della griglia e può avere, come ogni bit, una configurazione 0/1, che si concretizza
in o bianca o nera: per questo le prime immagini erano in B&N. 1 è nero, 0 è bianco. La sequenza di pixel
è sempre lineare e dunque bisogna decidere convenzioni per l'ordine della sequenza, cioè dal basso verso
l'altro e da sinistra verso destra. Ciò che si ottiene nella codifica è però un'approssimazione dell'immagine
originaria: la decodifica di un'immagine con pochi pixel è molto semplice e veloce ma anche poco
rappresentativa dell'immagine originale. Dunque la griglia deve infittirsi e i pixel devono diminuire di
dimensioni: questo fino a che l'occhio umano non sia più in grado di distinguere i pixel tra loro, ma veda
contorni ben definiti.
Per le immagini a colori o in scale di grigio si fa una cosa diversa: b & n sono due informazioni, mentre per
visualizzare le informazioni avrò bisogno di pixel più informativi: cioè devo avere per ogni pixel delle
sequenze di bit e non due bit. Ad es 16 colori: 4 bit (2^4), con 8 bit 256 colori, ecc.
La codifica del colore è RGB (RED GREEN BLUE). Esempio non reale dell'immagine della bandiera
italiana (in realtà la codifica non è così semplice): 010 in corrispondenza di un pixel verde significa che c'è
0 di rosso 1 di verde e 0 di blu. Il bianco è 111 ovvero ha valore massimo perchè esprime la piena
luminosità. Più realisticamente avremo una lunga sequenza di bit per tutta la griglia.
Es 2: usando 8 bit per ogni colore si possono ottenere 256 sfumature per il rosso, 256 per il blu e 256 per il
verde (dunque 3 byte totali), che significa che avremo circa 16,8 milioni di colori a disposizione.
Quando devo riprodurre l'immagine sullo schermo inoltre devo avere il numero di righe e colonne (quindi
di pixel) . In più, l'immagine ha determinate caratteristiche di qualità: risoluzione (precisione della
suddivisione immagini in pixel) con udm= pixel (più è alto il numero più è definita l'immagine);
profondità del colore (numero di bit o byte utilizzati per rappresentare ciascun pixel) con udm= bit o byte,
e indica (ma non è uguale a) il numero di colori che possono essere rappresentati. Per la dimensione:
numero di bit o byte necessari per memorizzare l'immagine, ed è risoluzione x profondità (all'aumentare di
una delle due dimensioni aumenta la dimensione). Es 1 : ho una griglia e voglio calcolare la dimensione
dell'immagine: ho 20 larghezza e 8 in altezza (dunque risoluzione è 160 pixel), nonché sto usando 2 colori b
& n: dunque 1 bit per pixel (profondità= 1 bit). Allora l'immagine occupa 20 x 80 x 1= 160 bit; invece in
byte 160/8= 20 byte. Es 2: 640 pixel larghezza 480 lunghezza 256 colori dunque 8 bit per la codifica di ogni
(2^8); quanti byte? 640X480x1 byte (cioè 2^8)= 307200 → e quanti bit? 307200 x 8= 2.457.600
pixel
Qualità e dimensione → la codifica RGB ha 3 byte per pixel di profondità.
→ le immagini codificate in pixel per pixel vengono dette
Compressione delle immagini in grafica bitmap
(mappa di bit) o raster--> occupano molto spazio, allora necessitano di essere compresse cioè ridotte nelle
dimensioni: questo però comporta la perdita di qualità, nonostante sia più intelligente come
memorizzazione. I formati più comuni sono GIF, PNG e JPEG, che appunto sono sistemi di compressione
delle immagini. La compressione può essere lossless o lossy a seconda che non vi sia perdita di info o sì.
Nel primo caso si può ricostruire perfettamente la versione non compressa passando ad es da JPEG a
bitmap, nel secondo no.
GIF= Graphic Interchange Format--> preferibile applicarlo per immagini o brevi animazioni geometriche e
con poche sfumature di colore, cioè max 8 bit per pixel (256 colori)---> vantaggi : si ha una compressione
lossless se l'immagine originale ha pochi colori, dunque conviene, ma se l'immagine ha molti colori vi è una
perdita di qualità nella compressione.
JPEG= Joint Photographic Expert Group--> più adatto a immagini fotografiche e si basa sul principio che
l'occhio umano è più sensibile alle variazioni di luminosità che di tonalità, dunque si andrà a comprimere a
scapito delle seconde (tali variazioni di luminosità sono ben percepite su aree ampie ma non su aree
piccole), questo permette di spiegare perchè un'immagine jpeg nella macchina fotografica è più pesante di
un'altra nello stesso formato: dipende dalla luminosità e dalle tonalità di ogni elemento che si fotografa.
Bitmap vs Vettoriale= bitmap o raster è memorizzato semplicemente come una griglia di pixel ciascuno dei
quali è associato a un colore: le linee non sono linee ma insiemi di pixel. I programmi come fireworks ad
esmpio in cui l'idea è di costituire l'immagine come segmenti e attributi di questi segmenti, anziché pixel.
Ad es in un'immagine ovale vengono memorizzate molte info oltre che la disposizione dei pixel, la
curvatura, il colore, lo spessore del tratto, che sono attributi. Esiste una possibilità inoltre di
memorizzazione separata: questa si manipola ad es cambiando le coordinate dei segmenti e non gli attributi
e viceversa. Il vantaggio qui è che col vettoriale l'ingrandimento diventa quasi totalmente perfetto, non si
vedono le griglie. –>
Codifica delle immagini in movimento un filmato è una sequenza di immagini memorizzate insieme e
che tra loro differiscono poco, sono statiche e sono dette fotogrammi o frame. Per codificare un filmato si
digitalizzano i suoi fotogrammi, e devono essere molti per avere una buona qualità del movimento. Allora
bisogna codificare le immagini in modo compresso: c'è una tecnica che permette di memorizzare tra un fot
e l'altro solo le differenze da quello iniziale! es. di formati per il video: AVI, MOV; compressione invece
spesso MPEG moving picture expert group. Invece il CODEC compress e decompress è un software che
data la codifica MPEG, AVI o MOV, permette di decodificare questa info digitale e mostrarla in un
programma di visualizzazione di video (ad es windows media player).
Codifica dei suoni → un suono è un'onda fisica e continua che va discretizzata in maniera digitale e
arrivando a una codifica in bit associata a quest'onda. Ogni suono è diverso dall'altro e produce una sua
specifica rappresentazione, sia a livello cerebrale a seconda di come l'aria stimola i recettori dell'orecchio
sia a livello digitale. Per arrivare rendere discreta l'onda devo andare a individuare non l'info completa
sull'onda , ma come nelle immagini devo perdere qualità dell'info per trasformarla in digitale: si vanno a
memorizzare alcuni punti dell'onda, non tutti. Quello che si fa per discretizzare è il campionamento
dell'onda, appunto prendere frammenti d'onda in certi punti del suono, e posso farlo più fitto raccogliendo
più campioni e dunque aumentando il numero sfumature di suono o meno fitto, perdendo in dimensioni e
qualità. Come un'info visiva associa bit a pixel, per l'info uditiva ho un numero associato a un certo numero
di bit, che è corrispondente a ogni campione raccolto. Quanto più frequentemente campionerò tanto più
preciso sarà il suono. Teoria dei segnali dice quanto dev'essere frequente il campionamento per far sì che la
qualità sia accettabile per l'orecchio umano rispetto al segnale analogico originale. Es CD che mescola
spesso due registrazioni o più combinate in stereofonia: la teoria dei segnali dice che si deve raccogliere
44.100 campioni al secondo per avere una qualità buona. Per queste info ho a disposizione 16 bit di codifica
(2 byte) per memorizzare ogni campione. Quindi servono: 44.100 campionix 16 bitx 2 registrazioni dunque
….bit per ogni secondo. Codifiche MP3 sono le più usate e sono delle varianti di quelle dei video MPEG,
mentre le MIDI erano più usate una volta e codifica le note e gli strumenti che devono seguirle.
Per calcolare lo spazio occupato da un file di testo, da un’immagine, ecc si attua sempre la stessa procedura: ci si
chiede quanti bit occupa ogni elemento di codifica, un'unità, ad es un carattere per il testo, un pixel per
l'immagine,ecc; si trova il numero di unità elem che costituiscono il file intero, ad es num di caratteri, ecc; si
moltiplicano queste due quantità.
Codifica dei numeri --> Come abbiamo già detto il codice ASCII permette di codificare una tastiera di numeri
decimali da 0 a 9 e ad es il numero 324 viene rappresentato 000010 0010101 0101000 , ma non è un sistema
conveniente per le operazioni aritmetiche, dunque si sono trovati metodi alternativi. Si è usato il sistema decimale,
per cui viene fatto corrispondere a ogni cifra un certo valore in funzi