RGB matrica: gama korekcija
Seniau minėjau, kad RGB matrica neteisingai perduoda pustonius. Kiek pasiknaisiojes internete radau terminą “gamma correction" kuri naudojama manau visuose displėjuose. Vikipedija davė didelį straipsnį ir net baisuoklišką formulę kaip skaičiuojama gama (γ):
Tačiau man reikėjo paskaičiuoti ne pačią gamą, bet korekcinę lentelę. Po trumpos paieškos radau šį algoritmą:
brightness = (255# * ((x / 255#) ^ (1# / gama))) + 0.5
Parašiau trumpą programėlę ROM reikšmių lentelės generavimui, o lentelė vėliau įrašoma į FPGA. Va jums ekrano fotkė. (kažkaip patiko fotkinti ekraną o ne spausti print screen )
Toliau bus keletas matricos nuotraukų su įvairiom gamma reikšmėm. Man labiausiai patiko reikšmės tarp γ=2 ir γ=3. Primenu, kad tiesinė priklausomybė (γ=1) jau išbandyta ankščiau ir rezultatas buvo blogas.
Spauskit ant nuorodos:
Gamos (γ) variacijos:
γ=0.5
γ=1.0
γ=2.0
γ=2.5
γ=4.0
γ=5.0
October 11th, 2008 at 2:04 am
Yay, suveike!
October 11th, 2008 at 10:13 am
Daug kur naudojama gama 2.2
October 12th, 2008 at 4:17 pm
Blemba tu superinis, žavi mane tavo sumanumas.. Apsigimei buti elektroniku, niekur nedingsi, liux
October 12th, 2008 at 10:14 pm
Yep, dinaminis diapazonas prastokas.
Galvočiau apie 2.2 reikšmę ir gal netiesiškai kvantuoti iki 6 bitų prieš Gamma korekciją - turėsi daugiau erdvės tamsiems pustoniams.
October 12th, 2008 at 10:54 pm
Dinaminis diapazonas kiek pamažintas ir dėl mano kaltės. Dabar naudoju 64 lygius kiekvienai spalvai, nes jei bandyti daugiau, tai pradeda matytis mirgėjimas.
Gal realybėje kiek geresnis vaizdelis, nes fotoaparatas kiek supanikuoja kai fotkina tiek daug šviečiančių diodų.
October 13th, 2008 at 11:20 pm
Puiku. Matyti progresas