Korekcja (modulacja) gammaalgorytm nieliniowego przetwarzania obrazu używany do kodowania i dekodowania luminancji w grafice komputerowej i systemach wizyjnych, wykorzystujący nielinearny sposób w jaki ludzkie oko postrzega światło widzialne. Gdyby obraz ten nie był poddawany korekcji gamma, wtedy wymagałby przydzielenia zbyt dużej ilości bitów dla bardzo jasnych punktów obrazu, których oko nie może rozróżnić, i zbyt małej ilości bitów dla bardzo ciemnych punktów obrazu, na które oko ludzkie jest mocno wyczulone. W rezultacie wymagałoby to użycia znacznie większej ilości bitów do uzyskania obrazu o tej samej jakości, co jest równoznaczne z wymogiem uzyskania znacznie szerszego pasma przy transmisji takich obrazów[1].

Rys. 1. Efekt zastosowania korekcji gamma: dla > 1 jasne obszary są przyciemniane, a dla < 1 – ciemne są rozjaśniane.

Innym zastosowaniem korekcji gamma jest usuwanie zniekształceń wprowadzanych przez urządzenia (np. monitor, skaner) albo zamierzone modyfikowanie obrazu (np. w celach artystycznych) wykonywane poprzez zmianę kontrastu obrazu wejściowego. Nierozerwalnie z korekcją gamma związana jest krzywa gamma opisująca stopień modyfikacji luminancji w całym dostępnym zakresie.

Krzywa gamma jest stosowana zazwyczaj w przetwarzaniu pojedynczych obrazów oraz sekwencji wizyjnych, zarówno analogowych, jak i cyfrowych, i pozwala na uzyskanie zakresu dynamiki, który jest aktualnie nazywany SDR (ang. Standard Dynamic Range), czyli standardowym zakresem dynamiki. Krzywa gamma oparta jest na ograniczeniach telewizorów kineskopowych (CRT), ponieważ bazująca na niej korekcja gamma została wprowadzona, aby skompensować ich charakterystykę wejściowo-wyjściową. Telewizory CRT, pozwalały na uzyskanie maksymalnej luminancji na poziomie 100 cd/m²[2].

Korekcja gamma jest operacją punktową wykonywaną na obrazie monochromatycznym, bazującą na krzywej gamma. Wzór matematyczny tej korekcji jest następujący:

gdzie to liczba rzeczywista, a wartości wejściowe i wyjściowe zwykle należą do zakresu 0 – 1.

Rys. 2. Linia czerwona to ekspansja gamma w standardzie sRGB, a niebieska – jego lokalna wartość gamma (w skali logarytmicznej) rosnąca od 1 do 2,2.

Dla wartości < 1 przeprowadzany proces przetwarzania obrazu często nazywany jest kompresją gamma, natomiast dla wartości > 1 – ekspansją gamma. W większości systemów komputerowych obrazy kodowane są z wartością gamma około 0,45, a dekodowane z wartością odwrotną, czyli 2,2 (przerywana linia czarna na rys. 2., częściowo przykryta linią czerwoną). Wyjątkiem były komputery Macintosh, które do pojawienia się Mac OS X 10.6 stosowały do kompresji gamma wartość 0,55, a do ekspansji – 1,8. W przypadku przestrzeni kolorów sRGB, która jest standardem w większości kamer, drukarek i komputerów PC, nie używa się jednak prostej funkcji potęgowej jak powyżej, ale obrazy dekodowane są z wartością gamma w pobliżu 2,2 przez większość zakresu, natomiast w zakresie poniżej 0,04045 (dla wartości po kompresji gamma) dekodowane są z gammą równą 1 (zależność liniowa), co można zobaczyć na rys. 2. w postaci niebieskiej linii.

Zobacz też

edytuj

Przypisy

edytuj
  1. Charles A. Poynton: Digital Video and HDTV: Algorithms and Interfaces. Morgan Kaufmann, 2003, s. 260, 630. ISBN 1-55860-792-7.
  2. Dolby Vision White Paper, Dolby Laboratories [dostęp 2017-05-12] [zarchiwizowane z adresu 2020-05-20] (ang.).