MULTIMEDIALITA’ Prof. Sergio Capone Prof. Marcello Missiroli Immagini digitali 3.0 MULTIMEDIALITA’ Prof. Sergio Capone Prof. Marcello Missiroli SCHEDA PRESENTAZIONE AUTORE Sergio Capone TITOLO Immagini Digitali OBIETTIVO Multimedialità DIAPOSITIVE 31 diapositive DURATA 60 min. max. CONTESTO PROFESSORE – STUDENTI LUOGO AULA con luce artificiale
Colore Il colore è la percezione visiva generata dai segnali nervosi che i fotorecettori della retina mandano al cervello quando assorbono radiazioni elettromagnetiche di determinate lunghezze d'onda e intensità.
L’occhio umano, curiosità L’occhio umano non dovrebbe avvertire differenze tra due immagini a toni di grigio l’una di 64 toni e l’altra di 256 toni differenti tra il bianco e il nero, a colori poi, pare non essere in grado di percepire oltre le 30/40.000 sfumature di tinta; inoltre è certo che sia più sensibile alla luminosità che non alla tinta e che legge meglio i contorni e i contrasti. Link interessanti 1) http://it.wikipedia.org/wiki/Colore 2) Società Italiana di Ottica e Fotonica (SIOF) Con riferimento al software didattico : Colore Visione Colorimetria.zip http://web.fis.unipr.it/~fermi/software_colorimetria/splash.html
Il monitor Il monitor di un PC, CRT (Cathode Ray Tube) funziona sostanzialmente come un televisore (esclusa la sezione RF cioè la ricezione dei canali in radiofrequenza) questa tecnica proiettiva prende il nome di, RASTER SCANNING. LINK UTILI http://it.wikipedia.org/wiki/Monitor_%28video%29 http://it.wikipedia.org/wiki/Grafica_raster
Le immagini di un monitor Si formano su dei particolari fosfori (triad), la cui grandezza è il dot pitch, composti dai 3 colori primari: RGB. Le sfumature dei colori si ottengono in sintesi additiva, da spento (nero) alla massima intensità luminosa (bianco). Più triad compongono un pixel (contrazione di picture element). Link http://it.wikipedia.org/wiki/Colore http://it.wikipedia.org/wiki/Rgb http://it.wikipedia.org/wiki/Dot_pitch http://it.wikipedia.org/wiki/Pixel
La scheda grafica Il controller grafico (graphic adapter) trasforma i dati passati dalla CPU in immagini, ed è composto da: CPU grafica 1 o più banchi di RAM video ROM-bios che contiene le funzioni grafiche altra circuiteria. Link http://it.wikipedia.org/wiki/Scheda_grafica
Scheda Grafica Scheda video GeForce 4200. Si noti il dissipatore con la ventola per raffreddare la GPU ed i banchi di memoria disposti attorno.
In sostanza Una scheda grafica è un dispositivo dotato di una certa memoria (frame buffer) in grado di gestire una matrice più o meno grande di elementi video, i pixel. Ogni scheda è in grado di pilotare come minimo un monitor a diverse risoluzioni: VGA (640x480), SuperVGA (800x600) e XVGA (1024x768). Link http://it.wikipedia.org/wiki/Risoluzione
La risoluzione video Normalmente i monitor visualizzano atra 72 e 96 pixel/pollice. Ciò determina le dimensioni a video di una immagine composta da L. pixel e H. pixel. Esempio: 468p.*300p. a 72p./inch = 16,51x10,58 cm. Lvideo= Limmagine / Rmonitor Hvideo= Himmagine / Rmonitor http://it.wikipedia.org/wiki/Risoluzione
La RAM video Determina il numero di colori visualizzabili contemporaneamente ad una determinata risoluzione. Esempio, se si assegnano 24 bit (8 bit per colore) otteniamo 256 sfumature per ogni colore primario (true color). 256x256x256 = 16.777.216 sfumature Quindi a 1024x768 pixel otteniamo immagini che possono occupare 2,25 Mbyte.
I tipi di immagini Bianco e nero : un bit Toni di grigio : 4, 6 e 8 bit (16, 64 o 256 sfumature) Colori a : 8, 16 e 24 bit caso a parte Colore a palette indicizzata: (es.256 tonalità su 16.000.000 visualizzabili contemporaneamente)
I formati grafici... Sono tecnicamente di 2 tipi: Bitmap (mappa di pixel) ideali per immagini fotorealistiche, difetto: il ridimensionamento (scaling) dell’immagine. Vettoriale (primitive di disegno) ideali per la grafica e il disegno tecnico, difetto: può essere complicato gestire oltre 256 colori.
… anche multipiattaforma Post Script (metalinguaggio grafico) delega al dispositivo che stampa l’immagine la gestione della stessa, attraverso dei macro comandi grafici contenuti nel file. Difetto i file hanno dimensioni ragguardevoli. La sua evoluzione, l’Encapsulated Post Script risolve in parte il precedente difetto. Il Post Script è un formato che possiamo associare al formato bitmap. Link http://it.wikipedia.org/wiki/PostScript
Dimensioni delle immagini... Le dimensioni sono sostanzialmente a favore del formato vettoriale a scapito del formato bitmap. Lo spazio di memoria occupato viene chiamato tecnicamente profondità del colore cioè sinteticamente indica il numero di bit utilizzati per rappresentare il colore o i toni di grigio. http://it.wikipedia.org/wiki/Profondit%C3%A0_di_colore Il termine profondità di colore (color depth in inglese) è utilizzato nella grafica digitale per indicare la quantità di bit necessari per rappresentare il colore di un singolo pixel in un'immagine bitmap o nel framebuffer di un dispositivo video. Questo concetto è anche noto come bit(s) per pixel, ovvero bpp. Profondità di colore superiori consentono una gamma più vasta di tonalità distinte.
Bitmap … l’esempio TarGA della True Vision (AT&T) Questo formato chiamato true color ha una profondità di 3 byte (24 bit) e può rappresentare 16.777.216 sfumature di colori, ad esempio: poniamo di avere un immagine di 450*550 pixel avremo così una dimensione in memoria di: (450*550)*3byte/pixel = 742.500 byte = 725 Kbyte http://it.wikipedia.org/wiki/TGA_%28formato_di_file%29
e su carta? La risoluzione in effetti determina per un dato numero di pixel anche le dimensioni reali su carta che viene misurata in genere in pollici o in centimetri. Ad esempio, come dal precedente: L. = 450/300 pixel/pollice = 1,5 inch = 3,81 cm. H. = 550/300 pixel/pollice = 1,833 inch = 4,66 cm.
Ed è uguale anche a monitor? No, i monitor visualizzano alla loro risoluzione che ovviamente dipende dalle dimensioni dello schermo (in genere 90 pixel/pollice). Ad esempio, con le solite misure: L. Video = 450/90 pixel/pollice = 5 inch= 12,7 cm. H. Video = 500/90 pixel/pollice = 6,1 inch = 15,5 cm.
I formati file più comuni... Bitmap bmp/dib/rle Tiff/tif wmf/emf (metafile) eps/ps gif/gif89 jpg/jepg pict (Macintosh) png / mng Vettoriali dxf (Autodesk) svg hpgl (plotting Hp) cdr (Corel) cgm (metafile) drw (Micrografx) http://www.fileinfo.net/ http://it.wikipedia.org/wiki/Compressione_dati_lossless La compressione dati lossless è quella classe di algoritmi di compressione che non porta a perdita di informazioni durante la fase di compressione/decompressione delle informazioni. Un esempio di questo tipo di compressione è dato dai formati zip, gzip, bzip2, rar, 7z. I file per cui non è accettabile una perdita di informazione, come i testi o i programmi, utilizzano questo metodo. Per le immagini fotografiche generalmente non si usano algoritmi lossless in quanto sarebbero veramente poco efficienti, ma per le immagini che contengono schemi o disegni realizzati al PC spesso la compressione lossless non solo è applicabile, ma anche conveniente (GIF, PNG, MNG, TIFF).
…e i programmi più diffusi Bitmap (raster) Paint(W) PhotoPaint(W) Photoshop(W,M) Gimp(L,W) Tux Paint(L) Vettoriali Autocad(W) FreeHand(W,M) CorelDraw(W) Illustrator(W,M) Sodipodi(L) xfig(L) LINK http://it.wikipedia.org/wiki/Grafica_raster http://it.wikipedia.org/wiki/Grafica_vettoriale
Codec Un codec è un programma o un dispositivo che si occupa di codificare e/o decodificare digitalmente un segnale (tipicamente audio o video) perché possa essere salvato su un supporto di memorizzazione o richiamato per la sua lettura. Un codec è un programma o un dispositivo che si occupa di codificare e/o decodificare digitalmente un segnale (tipicamente audio o video) perché possa essere salvato su un supporto di memorizzazione o richiamato per la sua lettura. Tale programma può essere installabile/aggiornabile (su personal computer o apparecchiature multimediali predisposte) oppure essere integrato in un componente hardware dedicato (ad es. nei lettori CD o DVD casalinghi o in alcune schede video/audio per PC). Oltre alla digitalizzazione del segnale, i codec effettuano anche una compressione (e/o decompressione in lettura) dei dati ad esso relativi, in modo da poter ridurre lo spazio di memorizzazione occupato a vantaggio della portabilità o della trasmissività del flusso codificato. I codec si dividono in base alla modalità in cui effettuano la compressione: con perdita di informazione (lossy) senza perdita di informazione (lossless) Per realizzare tale compressione si fa ricorso alla riduzione della precisione dei colori dei singoli pixel (codec video) o delle frequenze da riprodurre (in alcuni codec audio vengono soppresse le frequenze non udibili dall'orecchio umano), alla eliminazione delle ridondanze o alla scrittura delle sole differenze (codec video) rispetto ad una immagine di riferimento. Esistono vari tipi di codec, differenti tra loro per il tipo di segnale su cui devono operare e per l'algoritmo di codifica/compressione in essi implementato. Nel sistema operativo Microsoft Windows, i codec sono delle librerie con estensione .dll, che i vari player audio e video gestiscono come dei plug-in. Nel sistema operativo Mac OS X i codec sono gestiti dal sistema QuickTime che li utilizza come plug-in con estensione .component memorizzati nella cartella QuickTime che si trova nella cartella Libreria. Il codec permette di ascoltare formati proprietari e aperti da qualunque lettore di file, mantenendo separati il livello fisico del formato da quello logico della sua rappresentazione.
Le immagini sono compresse? I file bitmap utilizzano quasi sempre una certa compressione dei dati. La più comune è la compressione RLE (Run Lenght Encoding), lo utilizza anche Microsoft per i formati (16 o 256 colori) BMP. Questa compressione prende il nome di compressione lossless cioè senza perdita di informazioni. LINK http://it.wikipedia.org/wiki/Lossless http://it.wikipedia.org/wiki/Run-length_encoding http://www.fileinfo.net/ http://it.wikipedia.org/wiki/Compressione_dati_lossless La compressione dati lossless è quella classe di algoritmi di compressione che non porta a perdita di informazioni durante la fase di compressione/decompressione delle informazioni. Un esempio di questo tipo di compressione è dato dai formati zip, gzip, bzip2, rar, 7z. I file per cui non è accettabile una perdita di informazione, come i testi o i programmi, utilizzano questo metodo. Per le immagini fotografiche generalmente non si usano algoritmi lossless in quanto sarebbero veramente poco efficienti, ma per le immagini che contengono schemi o disegni realizzati al PC spesso la compressione lossless non solo è applicabile, ma anche conveniente (GIF, PNG, MNG, TIFF). La compressione dati lossy è quella classe di algoritmi di compressione che porta a perdita di informazioni durante la fase di compressione/decompressione delle informazioni. Decomprimendo un file compresso con un metodo "lossy" la copia ottenuta sarà peggiore dell'originale, ma in genere abbastanza simile da non comportare sostanziale perdita di informazione. Ciò è possibile poiché i metodi di compressione a perdita di informazioni in genere tendono a scartare le informazioni poco rilevanti, archiviando solo quelle essenziali: per esempio comprimendo un brano audio secondo la codifica dell'MP3 non vengono memorizzati i suoni non udibili, consentendo di ridurre le dimensioni dei file senza compromettere in modo sostanziale la qualità dell'informazione. La compressione dei dati con perdita di qualità è ampiamente usata in molti settori dell'informatica: su Internet, nell'ambito dello streaming dei media, nella telefonia, per la compressione di immagini o altri oggetti multimediali, ecc. Gli algoritmi di compressione vengono chiamati codec.
La compressione lossless Giusto per fare qualche nome: RLE (Microsoft) codifica ottima di Huffman LZW (Lempel Ziv & Welch) che viene utilizzato ad esempio dai file grafici per ottenere l’effetto realistico GIF. LINK http://it.wikipedia.org/wiki/Huffman http://it.wikipedia.org/wiki/Lempel-Ziv-Welch
GIF (Graphic Interchange Format) Formato bitmap, senza perdita di qualità, e di minore dimensione ed è/era il formato standard per il web, assieme a JPEG. Memorizza immagini a 3, 4, 5, 6, 7 e 8 bit con palette di 8, 16, 32, 64, 128 e 256 colori. GIF89: aggiunge la trasparenza di un colore GIF interallaciato: consente la progressiva visualizzazione di un immagine. GIF animato: formato da una sequenza di immagini LINK http://it.wikipedia.org/wiki/Graphics_Interchange_Format
GIF / PNG e brevetti Il formato GIF, sviluppato per conto di Compuserve/AOL, usa un algoritmo di compressione (LZW) coperto da brevetto. A partire dal 96, la Unisys ha iniziato a chiedere $OLDI per l’uso del formato. In risposta è stato sviluppato il formato PNG (Portable Network Graphic), superiore a GIF e privo di problemi legali LINK http://it.wikipedia.org/wiki/Portable_Network_Graphics
Un’altra compressione è la lossy Questa compressione, in perdita di dati, è utilizzata dal formato JPEG (Joint Photographic Expert Group) e arriva a 50:1. Sacrifica parte del contenuto informativo di una immagine grazie alle continue ricerche e alle successive conoscenze scientifiche che da tempo vengono rivolte al mondo del colore. Inadatto per immagini con forti contrasti, cioè pochi e diversi colori. JPEG / JPG / JFIF / JPE LINK http://it.wikipedia.org/wiki/JPG
Ultimo arrivato Il formato SVG (Scalable Vector Graphic) è l’ultimo formato raccomandato dal w3c (l’organizzazione che si occupa degli standard del Web) Basato sullo standard XML (eXtensible Markup Language) , è un file di testo che descrive come è disegnata l’immagine LINK http://it.wikipedia.org/wiki/SVG http://it.wikipedia.org/wiki/W3C World Wide Web Consortium http://it.wikipedia.org/wiki/XML
Come si crea la grafica 3D? Dire 3D significa avere chiari due passaggi: Descrizione geometrica dell’oggetto in un sistema di assi cartesiani a tre dimensioni. Generazione dell’immagine in 2D dell’oggetto in base al punto di vista dell’osservatore. In sostanza significa elaborare un modello e proiettare le immagini ottenute... LINK http://www.fileinfo.net/ http://it.wikipedia.org/wiki/Computer_grafica_3D
e che resa si ottiene? E’ necessario scomporre ogni oggetto in una serie di poligoni (triangoli) connessi in una struttura a wireframe. Quando si tratta di curve il numero dei poligoni può salire vertiginosamente. Inoltre, per ottenere l’effetto realistico, è necessario sovrapporre al wireframe delle immagini bitmap creando la texture mapping e correggere di seguito la prospettiva…
Programmi 3D Esistono molti programmi per la realizzazioni di grafici 3D. In generale si tratta di programmi di CAD (Computer Aided Design, e cioè Progettazione Assistita da Elaboratore) per la progettazione che permettono poi il rendering dell’oggetto creato. LINK http://it.wikipedia.org/wiki/CAD
La grafica per i programmatori In passato i sistemi operativi (nota MS-DOS) consentivano l’accesso ai dispositivi Hardware in modo diretto, utilizzando uno specifico driver per ogni componente hardware riconosciuta dal sistema. Ciò complicava la vita agli sviluppatori dei programmi, con versioni specifiche per ogni tipo di hardware
E oggi? Il programmatore non deve più preoccuparsi dello specifico hardware. E’ sufficiente imparare il funzionamento di una particolare libreria software e le sue API (Application Programming Interface) e relative librerie (DLL Dynamic-Link Library). Sarà compito del sistema operativo tradurre le istruzioni in comandi per la specifica scheda grazie ai driver della scheda grafica LINK http://it.wikipedia.org/wiki/Application_programming_interface http://it.wikipedia.org/wiki/DLL
Con che problemi? La gestione del video è generalmente più lenta, a parità di altri fattori, perché la gestione dei dispositivi fa più passaggi (attraverso il sistema operativo) della gestione diretta. Inoltre, la gestione della grafica è generica e non è spesso in grado di gestire le specifiche differenze delle schede.
Schematicamente X Windows/Unix/new MAC OS Windows/old MAC OS Programma API Grafiche Programma Toolkit API Grafiche Xlib Driver Driver Hardware Hardware
Come velocizzare le prestazioni? Per Windows, si fa largo uso di speciali “driver” che accedono direttamente alla scheda. Questo principio è alla base di DirectX. Per Unix/Linux tale approccio non è possibile per motivi di sicurezza. Esistono però particolari librerie software specializzate in tal compito, la più nota è SDL (Simple DirectMedia Layer) LINK http://it.wikipedia.org/wiki/Directx SDL Simple DirectMedia Layer è un insieme di librerie cross-platform scritte in C per la gestione di contenuti multimediali come audio e grafica. Trovano applicazione soprattutto nella programmazione di giochi.