joi, 25 noiembrie 2010

Corectia GAMA

Corecţia gama se foloseşte în grafică şi este o chestie care poate fi definită în mai multe feluri. În mod formal, este aplicarea unei funcţii de putere pe luminozitate. În mod intuitiv, este metoda de a creşte sau a scădea luminozitatea aparentă (relativă) a unei imagini.
Prin corecţie gama se înţelege aplicarea unei funcţii de forma următoare pe componenta de luminozitate a unei culori unde x este luminozitatea normalizată, iar γ este... gama, adică tocmai parametrul pe care îl alegem noi atunci când operăm o corecţie.

De ce avem nevoie de corecţie gama?

Culmea e că avem nevoie de corecţie gama din mai multe motive separate. De fapt, în cea mai mare parte a timpului diversele corecţii se anulează reciproc de la sine.

Monitoarele cu tub catodic, atunci şi acum

Bun, acum că ştim ce face corecţia gama, hai să vedem de ce ne trebuie aşa ceva. Deşi astăzi nu mai sunt utilizate în contextul computerelor, gândiţi-vă la un tub catodic, cel care se găseşte în monitoarele CRT. Acesta proiectează electroni dintr-un tun electronic aflat în spatele tubului către suprafaţa frontală interioară a tubului (dinspre ţuguiul din fund către faţa vizibilă a ecranului, prin interiorul tubului catodic). Faţa orientată către observator este acoperită în interior cu o substanţă care emite lumină atunci când e bombardată cu electroni. Ei bine, dacă am corela diferenţa de potenţial aplicată pe catodul din tun cu gradul de luminozitate rezultat am obţine o relaţie neliniară de forma corecţiei gama, unde γ≈2,2 pentru tuburile catodice ale monitoarelor de calculator.

Aşadar, în cazul unui tub catodic, dacă aplicăm tensiune proporţională cu luminozitatea rezultatul va fi o imagine prea întunecată – trebuie să facem cumva să corectăm această neliniaritate specifică tubului catodic. Hai să vedem cum arată funcţia de proporţionalitate dintre tensiune şi luminozitate:

f_{catodic}(x) = x^{2,2} \!

Ce ar trebui să facem pentru a transforma această relaţie neliniară într-una liniară, de forma fcorectat(x)=x? Păi cea mai simplă soluţie ar fi să „hrănim” funcţia fcatodic cu valori compensate de aşa natură încât să obţinem funcţia liniară pe care ne-o dorim:

f_{corectat}(x) = f_{catodic}(x^\delta) =  (x^\delta)^{2,2} = x^{\delta \cdot 2,2} \!

Dar de vreme ce dorim să obţinem fcorectat=x înseamnă că

\delta \cdot 2,2 = 1, deci
\delta = \frac{1}{2,2} = 0,45

Cu alte cuvinte, pentru a obţine intensitate luminoasă liniară în cazul tubului catodic ar trebui să aplicăm o tensiune proporţională cu

f_{corectat}(x) = x^{0,45} \!
unde x este semnalul de intrare, proporţional cu luminozitatea dorită

Sistemul vizual uman

Există o întreagă serie de studii care arată în ce fel variază răspunsul senzorilor umani cu intensitatea stimulilor. Dacă vă gândiţi la unitatea de măsură a zgomotului de pildă, vă veţi aminti că scala decibelilor este logaritmică, nu liniară: o persoană vorbind normal produce 50 dB iar un motor cu reacţie la 30 de metri produce 150 dB, ceea ce evident nu este deloc echivalent cu trei persoane vorbind. Dacă stăm bine să ne gândim, cam la fel e şi cu luminozitatea: diferenţa dintre întuneric şi o lanternă aprinsă este cu mult mai mare decât cea dintre o lanternă aprinsă şi două lanterne aprinse.

Aşadar nici sistemul nostru vizual nu reacţionează liniar cu intensitatea luminoasă. Să fim oare atât de norocoşi încât şi sistemul nostru vizual să răspundă după o curbă similară cu corecţia gama? Presupunând că aşa ar fi, hai să ne gândim mai întâi dacă această corecţie ar fi subunitară sau supraunitară. Să luăm exemplul cu becurile:

0 becuri ... nu vedem nimic
1 bec ... incomparabil mai bine faţă de deasupra
2 becuri ... marginal mai bine faţă de deasupra
3 becuri ... abia se simte diferenţa faţă de deasupra
L' = L^{0,43} \!

Unde avem nevoie de corecţii gama?

Dacă aţi urmărit firul epic al poveştii noastre de până acum aveţi toate motivele să fiţi nedumeriţi în privinţa utilităţii conceptului de corecţie gama: de când a început articolul, singura surpriză apărută sub diverse forme a fost că toate neliniarităţile se anulează reciproc. Adică v-am aburit degeaba. Ei, nu chiar. Până acum am vorbit exclusiv despre sisteme de redare a imaginilor – dar cum rămâne cu sistemele de capturare?

Pe de altă parte aţi fi îndreptăţiţi să vă întrebaţi de ce nu stocăm informaţia de luminozitate liniar – sigur, ar trebui neliniarizată la ieşire, dar măcar am stoca informaţie corectă, conformă cu realitatea. E o întrebare legitimă, hai să-o explorăm un pic. Să presupunem că aţi avea o foaie de hârtie cu pătrăţele, ca cea din caietele de matematică. Dacă vi s-ar cere să figuraţi multiplii şi submultiplii metrului, de exemplu, aţi avea două variante (mă rog, aţi avea multe variante, dar noi vom explora doar două). Prima variantă ar fi să marcaţi pur şi simplu lungimea multiplilor şi a submultiplilor pe grafic – rezultatul ar fi o reprezentare 1:1 a tuturor lungimilor. Toate bune şi frumoase, însă v-ar trebui o coală de un kilometru lungime ca să indicaţi doar primii trei multipli (ceilalţi doi sunt decametrul şi hectometrul, sigur aţi uitat măcar numele unuia dintre ei). Şi în plus de la milimetru în jos nu prea mai aveţi cum să desenaţi. Alternativa ar fi să aplicaţi o corecţie gama înainte de a începe desenul. Dacă de exemplu aţi alege ca scara de la 0 la 1 să

corespundă kilometrilor, iar pe desen aţi folosi scara 1:10 cm atunci aţi reuşi să figuraţi o mulţime de multipli şi submultipli pe o singură coală normală de hârtie!

Sursa:here

Niciun comentariu: