80 likes | 244 Views
Il Frame Buffer. Daniele Marini Maurizio Rossi. Cos’è. Una memoria dedicata alla registrazione temporanea di una immagine Dimensioni tipiche: 640x480 800x600 1024x768 1280x1024 1400x1050… Profondità del colore: 8, 16, 24, 32 bit. True color e falso colore.
E N D
Il Frame Buffer Daniele Marini Maurizio Rossi
Cos’è • Una memoria dedicata alla registrazione temporanea di una immagine • Dimensioni tipiche: • 640x480 • 800x600 • 1024x768 • 1280x1024 • 1400x1050… • Profondità del colore: • 8, 16, 24, 32 bit
True color e falso colore • True color: ogni locazione nel frame buffer contiene il valore di colore assegnato al pixel corrispondentepixel(RGB) -> Display • Falso colore: ogni locazione nel frame buffer contiene un indirizzo alla LUT nella quale viene registrato il valore di colore desideratopixel(index) (LUT: index->RGB)->Display
La LUT • Look Up Table, tabella di ricerca rapida implementata via HW • Registra i valori di colore (RGB) da attribuire ai pixel in funzione di un indice. • Pixel differenti che contengono lo stesso indice avranno colori uguali
Frame Buffer e Display processor LUT bus 256 elementi D/A D/A D/A Display 8 / 24 / 32bit Frame buffer
Risoluzione e dinamica • La dimensione del frame buffer determina la dimensione della immagine • La lunghezza di parola nel frame buffer determina il numero di colori simultaneamente visualizzabili: la dinamica di colore • Parole di 32 bit consentono di registrare informazioni sul canale “alfa” per altri effetti: R,G,B + A
“Alfa” channel • Contiene valori tra 0 e 1, indica come miscelare più immagine con operatori aritmetici • Es.: senza alfa: ImmaA+ImmB=def pA(x,y)+pB(x,y) clamp(255) • Clamp? 0 se pA(x,y)+pB(x,y) ≤0 255 se pA(x,y)+pB(x,y) ≥255 pA(x,y)+pB(x,y) altrimenti
“Alfa” channel • Con “alfa” channel: a ImmaA+(1-a) ImmB=defa pA(x,y)+(1-a) pB(x,y) clamp(255)