RGBI (engleska skraćenica od Red, Green, Blue, intensity - crveno, zeleno, plavo, intenzitet - svjetloća) ime je za vrstu video izlaza koji je kompatibilan s IBM CGA video izlazom. Svaka točkica na zaslonu zastupljena je s 4-bita (1/2 bajta). U tih 4-bita bajta, upisana je vrijednost četiri komponente: crveno, zeleno, plavo i svjetloća. S RGBI jedan bajt sadrži dvije točke na ekranu.

RGBI model boja

uredi

Prema RGBI modelu, za svako slovo u nazivu R, G, B i I odvojen je jedan bit u 4 bita(0:plava, 1:zelena, 2: crvena i 3: intenzitet). Intenzitet je dijelovao na sve boje, tako što bi ih osvjetlio ili potamnio zavisno o sadržaju bitova u polju. S ovom tehnikom ubrojavanja proizvodila se paleta boja koja je prikazana u sljedećoj tablici:

RGBI paleta sa 16 boja
0 crna
#000000
8 siva
#555555
1 plava
#0000AA
9 svijetlo plava
#5555FF
2 zelena
#00AA00
10 svijetlo zelena
#55FF55
3 cyan
#00AAAA
11 light cyan
#55FFFF
4 crvena
#AA0000
12 svijetlo crvena
#FF5555
5 magenta
#AA00AA
13 svijetla magenta
#FF55FF
6 smeđa
#AA5500
14 žuta
#FFFF55
7 svjetlo siva
#AAAAAA
15 bijela (visoki intenzitet)
#FFFFFF

Prikazivanje na zaslonu

uredi

Prikaz na zaslonu, odvija se tako što se svaka digitalna komponenta: crveno, zeleno, plavo i svjetloća pošalje preko video izlaza na računalu, bez pretvaranja u analogni signal izravno prema zaslonu preko kabela s DE-9 utikačima. Sklopovlje u zaslonu nakon što je primilo digitalni kod za točku, pretvara u analogni signal u rasponu od 0.0V do 1.0 koji se šalje prema katodnoj cijevi u boji prema sljedećoj formuli:

crvena   = 2/3*(rednaBoja & 4)/4 + 1/3*(rednaBoja & 8)/8;
zelena = 2/3*(rednaBoja & 2)/2 + 1/3*(rednaBoja & 8)/8;
plava  = 2/3*(rednaBoja & 1)/1 + 1/3*(rednaBoja & 8)/8;

Jedina iznimka od je Boja 6 ili tamno žuta koja se tretira na drugačiji način da se dobije bolji ishod odnodno smeđi ton žute tj. da se sa žute prelazi u smeđu boju.

Tamno žuta
6 #AAAA00

Zbog toga unutar mnogih RGBI zaslona, postoji posebno sklopovlje koje se koristi za prozivodnju ove boje. Sklopovlje ispitiva da li je upaljena boja 6, i zatim prepolovljava vrijednost zelene. Ovo je prikazano u sljedećim pseudo kodom:

if (rednaBoja == 6) green = green / 2;