Codifica dell’ Informazione non numerica • Problema: dato un insieme S di dati non numerici determinare una codifica binaria univoca per gli elementi di S • Metodo: dato un insieme S da codificare, con un singolo bit possiamo distinguere due sotto-insiemi di S. Iterando, possiamo “aggiungere” bit fino a poter distinguerre ogni elemento di S Codifica di simboli • Se i simboli sono i caratteri di una tastiera , cioè circa 126, sono necessari Log2(126)=7 bit Codifica di simboli ASCII UNICODE Rappresentazione di immagini • Le immagini sono un ‘continuo’ e non sino formate da sequenze di oggetti ben definiti come i numeri e le stringhe • Bisogna quindi prima ‘discretizzarle’ ovvero trasformarle in un insieme di parti distinte che possono essere codificate separatamente con sequenze di bit • Consideriamo prima immagini fisse (foto etc …) Rappresentazione di immagini (2) • Immagini ‘bitmap’ : 1. l’immagina viene scomposta in una griglia di elementi detti pixel (da picture element) 000000000000000000000000 000000000011111111000000 000000000010000010000000 000000000010000100000000 000000000010001000000000 000000000010010000000000 000000000010100000000000 000000000011000000000000 000000000010000000000000 codifica immagine Rappresentazione di immagini (3) • Immagini ‘bitmap’ : 2. Ogni pixel è rappresentato da uno o più bit Rappresentazione di un pixel 000000000000000000000000 000000000011111111000000 000000000010000010000000 000000000010000100000000 000000000010001000000000 000000000010010000000000 000000000010100000000000 000000000011000000000000 000000000010000000000000 Rappresentazione di immagini (4) • Rappresentazioni dei pixel : – la rappresentazione in ‘toni di grigio’ : • un byte per pixel, con 256 gradazioni di grigio per ogni punto (immagini bianco e nero), o • più byte per pixel, per avere più gradazioni possibili – rappresentazione a colori RGB (red, green,blu) : • comunemente 3 byte per pixel che definiscono l’intensità di ciascun colore base. In questo modo ho circa 16 milioni di colori diversi definibili Rappresentazione di immagini (5) • Problema : – la rappresentazione accurata di una immagine dipende • dal numero di pixel (definizione) • dalla codifica del pixel – … e richiede generalmente molta memoria, ad esempio : tipo imm. televisiva SVGA foto defin numero colori 720x625 256 1024x768 65536 15000x10000 16milioni num. byte 440 KB 1.5 MB 430 MB Rappresentazione di immagini (6) • Quindi si cerca di ‘risparmiare’ memoria : – con l’uso di una ‘tavolozza’ (palette) che contiene il sottoinsieme dei colori rappresentabili che compare in una foto • ogni pixel codifica un indice all’interno della tavolozza – con tecniche di compressione che non codificano ogni pixel in modo autonomo ma cercano di raggruppare i le aree che hanno caratteristiche comuni • Formati più usati : TIFF (tagged image file format), GIF (graphics interchange format), JPEG (Joint photographers expert group) • In genere si usano tecniche di COMPRESSIONE dei dati (ad esempio sfruttando la caratteristica dell’occhio umano di essere poco sensibile al cambiamento di colore in punti adiacenti) Rappresentazione di immagini (7) • Immagini in movimento (video …) – il movimento è rappresentato già in modo “discreto” nei media : con un numero abbastanza alto di fotogrammi fissi (24-30 al secondo) l’occhio umano percepisce il movimento come un continuo – Si potrebbe codificare separatamente ogni fotogramma come immagine fissa, ma lo spazio di memoria richiesto sarebbe enorme (650 MB, un intero CD per un minuto di proiezione …) – sono stati quindi sviluppati metodi di codifica che economizzano, codificando solo le ‘differenze’ fra un fotogramma e l’altro (MPEG) Rappresentazione di suoni • Caratteristiche dell’audio (e dei segnali analogici) tempo Rappresentazione di suoni (2) • Campionamento dell’audio ad intervalli di tempo fissi tempo Rappresentazione di suoni (3) • Campionamento dell’audio ad intervalli di tempo fissi tempo Ogni campione viene rappresentato con un numero finito di bit (quantizzazione) Rappresentazione di suoni (4) • L’accuratezza della ricostruzione dipende : – da quanto sono piccoli gli intervalli di campionamento – da quanti bit uso per descrivere il suono in ogni campione nella fase di quantizzazione – al solito … maggiore accuratezza significa maggior quantità di memoria occupata! • Anche per i suoni si possono utilizzare tecniche di compressione per migliorare l’occupazione di memoria della sequenza di campioni Rappresentazione di suoni (5) • Algoritmi di compressione per suoni : 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 – è quello che accade nello standard MPEG Layer 3 , detto anche MP3 Lo standard MIME • MIME (Multipurpose Internet Mail Extension) è uno standard che permette riconoscere correttamente la codifica di dati di natura diversa (testo, immagini, suoni etc.) • Una codifica MIME comprende – un preambolo, in cui viene specificato in modo standard il tipo del dato che stiamo codificando (text/plain,image/jpeg,image/gif) – un corpo (body), che contiene la codifica vera e propria Lo standard MIME (2) • MIME è utilizzato ad esempio per – messaggi di posta elettronica – decodifica corretta di pagine web • In entrambi i casi il l’applicazione che legge la posta (outlook, eudora) o l’applicazione che naviga su Web (explorer,netscape, galeon) utilizza il preambolo per decodificare e presentare i dati in modo corretto