input_low i input_high: określają jakie wartości pikseli w materiale
wejściowym traktowane są jako czysta czerń i czysta biel
output_low i output_high: określają wartości w materiale wyjściowym odpowiadający czerni i bieli
gamma: kontroluje w konwersji stopień nieliniowy
coring: możliwe wartości to ”true” (”prawda”) – przycina kanały lumy do [16,235] – i ”false” (”fałsz”) – opcja wyłączona
Filtr Levels modyfikuje jasność, kontrast i gammę. Argumenty input_low i
input_high określają jakie wartości pikseli w materiale wejściowym traktowane są jako czysta czerń i czysta biel; argumenty
output_low i output_high określają wartości w materiale wyjściowym odpowiadający
czerni i bieli; argument gamma kontroluje stopień nieliniowy w konwersji. Ściśle mówiąc,
funkcja konwersji wygląda następująco:
output = [(input - input_low) / (input_high - input_low)]1/gamma (output_high -
output_low) + output_low
Levels jest jednym z tych filtrów, dla których miłą sprawą byłoby mieć nakładkę GUI. Przedtem nie
można było zaproponować nakładki GUI (przynajmniej nie w obecnej formie AviSynth), zdecydowano przynajmniej zrobić ten filtr kompatybilny z VirtualDub, kiedy klip ma przestrzeń kolorów RGB. W tym przypadku
można bez problemu spisać liczby z okna dialogowego Levels w VirtualDub i wpisać je jako argumenty do filtra Levels w AviSynth, a otrzymane rezultaty będą identyczne.
Kiedy obróbka danych następuje w przestrzeni YUY2, Levels w VirtualDub podaje tylko poprawną
wartość gammy dla lumy (jasność), a dla chromy (kolor) - nie. Korekcja gammy jest rzeczywiście wykorzystywana w RGB i nie
wiadomo jak zrobić to odpowiednio dla YUY2. Jednakże, jeśli gamma = 1.0, filtr powinien dawać ten sam efekt w RGB i YUY2.
Przykłady:
Levels(0, 1, 255, 0, 255) |
# | obraz pozostaje nietknięty |
Levels(0, 1.3, 255,0, 255) |
# | poprawia gammę w wyświetlanym obrazie w otoczeniu jasności |
Levels(0, 1, 255, 255, 0) |
# | odwraca kolory obrazu (robi negatyw) |