Codifica delle Informazioni - Dipartimento di Matematica e Informatica
Transcript
Codifica delle Informazioni - Dipartimento di Matematica e Informatica
Codifica delle Informazioni Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Panoramica Le informazioni gestite dai sistemi di elaborazione devono essere codificate per essere memorizzate, elaborate, scambiate,… Esistono standard internazionali per risolvere problemi di compatibilità tra differenti sistemi software tra calcolatori di tipo e marca diversi Vedremo brevemente: Codifica di numeri Codifica di caratteri Codifica di dati multimediali Codifica Binaria BIT (BInary digiT): unità elementare di informazione rappresentabile con dispositivi elettronici - con 1 bit si possono rappresentare 2 stati: 0/1, on/off, si/no Combinando più bit si può codificare un numero maggiore di stati - con 2 bit possono rappresentare 4 stati - con K bit si possono rappresentare 2K stati Quanti bit sono necessari per codificare N oggetti? - N ≤ 2K K log2N K = log2N Codifica Binaria I GIORNI DELLA SETTIMANA IN BINARIO Lunedi Martedi Mercoledi Giovedi Venerdi Sabato Domenica Lunedi Martedi Mercoledi Lunedi 0 Martedi Mercoledi Giovedi Giovedi Venerdi Venerdi Sabato Sabato Domenica 1 bit 2 “gruppi” 1 Domenica 2 bit 4 “gruppi” 00 01 10 11 Lunedi Martedi Mercoledi Giovedi Venerdi Sabato Domenica 3 bit 8 “gruppi” 000 001 010 011 100 101 110 111 Codifica Binaria – Unità Derivate • Byte = 8 bit – può rappresentare 28= 256 stati • KiloByte (KB) = 210 bit = 1.024 byte 103 byte • MegaByte (MB) = 220 bit = 1.048.576 byte 106 byte • GigaByte (GB) = 230 bit = 1.073.741.824 byte 109 byte • TeraByte (TB) = 240 bit = 1.099.511.627.776 byte 1012 byte Codifica dei numeri naturali • Sistema di numerazione posizionale con base β – β simboli (cifre) corrispondono ai numeri da 0 a β-1 – i numeri naturali maggiori o uguali a β possono essere rappresentati da una sequenza di cifre • Se un numero naturale N è rappresentato in base β dalla sequenza di n cifre αn-1 αn-2 αn-3 … α1 α0 allora N può essere espresso come segue: Codifica dei numeri naturali - esempio 13 può essere espresso in funzione delle potenze di 2: 13 = 1x8 +1x4 23 +0x2 22 +1x1 21 Cioè può essere rappresentato dalla sequenza di bit: 1 1 0 1 20 Codifica dei numeri naturali Quindi: Numero = sequenza di bit (codifica in base 2) Con K bit si rappresentano i numeri da 0 a 2K-1 Esempi: 2 = sequenza 1 0 3 = sequenza 1 1 4 = sequenza 1 0 0 ....... Codifica di caratteri Codifica binaria adatta a documenti in linguaggio naturale (italiano o inglese) a-z A-Z 0-9 ... usando 8 bit, cioè un byte (28 = 256) ESEMPIO 00000101 rappresenta la lettera „c‟ Codifica di caratteri Codifica ASCII (American Standard Code for Information Interchange): - Caratteri speciali, punteggiatura, a-z, A-Z, 0-9 - Utilizza 7 bit (128 caratteri) - I codici ASCII estesi usano 8 bit (256 caratteri) Codifica Ascii ASCII SU 7 BIT “Ciao” = 1000011 1101001 1100001 1101111 “24” = 0110010 0110100 “3 kg” = 0110011 0100000 1101011 1100111 Codifica dei dati multimediali Lettere e numeri non costituiscono le uniche informazioni utilizzate dagli elaboratori ma si diffondono sempre di più applicazioni che usano ed elaborano anche altri tipi di informazione: - immagini - filmati - suoni Spesso in questi casi si parla di applicazioni di tipo multimediale Codifica delle Immagini Per un calcolatore: immagine = sequenza di bit Esistono numerose tecniche per la memorizzazione digitale e l'elaborazione di un'immagine Codifica delle Immagini • L‟immagine viene digitalizzata, cioè rappresentata con sequenze di pixel • Ogni pixel ha associato un numero che descrive un particolare colore (o tonalità di grigio) • Si mantengono anche la dimensione, la risoluzione e il numero di colori utilizzati Codifica delle Immagini -Pixel Consideriamo un'immagine in bianco e nero, senza ombreggiature o livelli di chiaroscuro Suddividiamo l‟immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante Codifica delle Immagini -Pixel Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione: -Il simbolo “0” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino bianco (in cui il bianco è predominante) -Il simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino nero (in cui il nero è predominante) Codifica delle Immagini -Pixel Poiché una sequenza di bit è lineare, si deve definire una convenzione per ordinare la griglia dei pixel in una sequenza Ipotesi: assumiamo che i pixel siano ordinati dal basso verso l'alto e da sinistra verso destra 1 0 22 0 0 23 1 15 0 1 0 9 17 25 10 18 26 11 27 19 20 12 21 0 13 0 5 28 0 0 0 4 0 0 1 0 3 0 0 1 0 2 0 0 1 0 1 24 1 16 8 0 14 0 6 7 La rappresentazione della figura sarà data dalla stringa binaria 0000000 0111100 0110000 0100000 Codifica delle Immagini -Pixel Non sempre il contorno della figura coincide con le linee della griglia: nella codifica si ottiene un'approssimazione della figura originaria. Se riconvertiamo la stringa 0000000 0111100 0110000 0100000 in immagine otteniamo: Codifica delle Immagini -Pixel La rappresentazione sarà più fedele all'aumentare del numero di pixel, ossia al diminuire delle dimensioni dei quadratini della griglia in cui è suddivisa l'immagine zz Codifica delle Immagini – Toni di grigio Immagini in bianco e nero sfumature (diversi livelli di intensità di grigio) Assegnando un bit ad ogni pixel è possibile codificare solo immagini senza livelli di chiaroscuro Codifica delle Immagini – Toni di grigio Per ogni pixel si stabilisce il livello medio di grigio cui viene assegnata convenzionalmente una rappresentazione binaria. Per memorizzare un pixel non è più sufficiente un solo bit. Ad esempio, con 4 bit possiamo rappresentare 24=16 livelli di grigio, mentre con 8 bit ne possiamo distinguere 28=256, ecc. Codifica delle Immagini a Colori 1) Individuare un certo numero di sfumature di colore differenti 2) Codificare ogni sfumatura mediante un'opportuna sequenza di bit La rappresentazione di un'immagine mediante la codifica dei pixel, viene chiamata codifica bitmap Codifica delle Immagini a Colori Il numero di byte richiesti dipende dalla risoluzione e dal numero di colori che ogni pixel può assumere • I monitor utilizzano risoluzioni di 800X600, 1024X768, 1280X1024, o superiori, ed un numero di colori per pixel che va da 256 fino a 16 milioni Per distinguere 256 colori sono necessari 8 bit per la codifica di ciascun pixel •la codifica di un'immagine formata da 640X480 pixel richiederà 2417600 bit (307200 byte) Compressione di Immagini Esistono delle tecniche di compressione delle informazioni che consentono di ridurre drasticamente lo spazio occupato dalle immagini ESEMPIO JPEG: standard di compressione delle immagini fotografiche più utilizzato. Due metodi di compressione di base: "lossy“ perdita di informazione (più comune) "lossless" senza perdita di informazione Compressione di Immagini JPEG qualità 10% - 3,2 Kb JPEG qualità 50% - 6,7 Kb JPEG qualità 90% - 30,2 Kb JPEG qualità 100% - 87,7 Kb Codifica di Filmati Filmati = Immagini in movimento Memorizzazione mediante sequenze di fotogrammi (sono necessarie delle tecniche per ottimizzare tale memorizzazione) Sono sequenze di immagini compresse (ad esempio si possono registrare solo le variazioni tra un fotogramma e l‟altro) Esistono vari formati (compresi i suoni): mpeg, avi, quicktime, mov,… Codifica di Suoni L‟onda sonora viene misurata (campionata) ad intervalli regolari Minore è l‟intervallo di campionamento e maggiore è la qualità del suono CD musicali: 44000 campionamenti al secondo, 16 bit per campione. Alcuni formati: • .mp3, .mov, .wav, .mpeg, .avi, • formato midi usato per l‟elaborazione della musica al PC