Levels
(clip, int
input_low, float gamma, int input_high,
int output_low, int output_high, bool "coring")
Le filtre Levels
ajuste la
luminosité, le contraste, et le gamma (qui doit être
> 0). Les paramètres input_low
et input_high
déterminent à partir de quelle valeur des pixels en entrée
sont traités comme étant totalement noirs ou
totalement blancs, les paramètres output_low
et output_high déterminent à partir de quelle valeur les pixels en sortie correspondent à du noir pur
ou a du blanc pur; Le paramètre gamma
contrôle le degré non linéaire de cette
conversion. Plus précisément, voici exactement la
fonction utilisée:
output = [(input - input_low) / (input_high - input_low)]1/gamma (output_high - output_low) + output_lowC'est un des filtres qui serait très pratique à utiliser avec une GUI (interface graphique). Puisqu'aucune GUI n'existe (du moins pas dans l'état actuel d'AviSynth), j'ai décidé que ce filtre devrait au moins être compatible avec la version de level de VirtualDub quand le clip est en RGB. Dans ce cas, vous devriez pouvoir copier les valeurs indiquées dans la boite de dialogue de VirtualDub et de les indiquer en tant que paramètres au filtre
Levels
afin d'obtenir le même résultat. Cependant, les
paramètres d'entrée et de sortie peuvent
être plus grand que 255.
Quand le filtre travaille avec des données dans le
format YUV, il corrige seulement le gamma de la luminance et pas de la
chrominance. La correction gamma est un concept lié au
format de couleur RGB, et je ne sais pas vraiment comment faire
ça correctement dans le format YUV. Cependant, avec gamma
= 1.0, le filtre devrait avoir le même effet en RGB qu'en
YUV. Pour ajuster la luminosité ou le contraste, mieux vaux utiliser Tweak
ou ColorYUV, puisque Levels
change également la chrominance du clip.
Dans v2.53, un paramètre supplémentaire a été ajouté: coring = true/false(vrai/faux) (vrai par défaut, ce qui permet de retrouver le comportement des anciennes versions du filtre). Quand il est sur true(vrai), cela veut dire que la luminance est restreinte à la plage de valeurs [16,235] à la fois pour l'entrée et la sortie (cela veut dire que la plage [0,16] est forcée à 16, et que la plage [235,output_high] est forcée à 235). Quand ce paramètre est sur false(faux), cela veut dire que la luminance est limité à la plage de valeurs [0,255] (cela veut dire que la plage de valeurs de sortie [255,output_high] est forcée à 255).
# Ne fait rien sur un clip compris dans la plage [16,235],
mais restreint un clip compris dans la plage [0,255] à la plage [16,235]:
Levels(0, 1, 255, 0, 255)
# La luminance est limité à [16,235] et la conversion [0,255]->[16,235] à lieu:
# exemple: les valeurs de la luminance dans la plage [0,16] sont toute converties à 30
Levels(0, 1, 255, 16, 235)
# Corrige le gamma d'une image pour un affichage dans un environnement plus lumineux:
# exemple: une luminance de 16 reste à 16, 59 est changée en 79, etc.
Levels(0, 1.3, 255,0, 255)
# Inverse l'image (fait un négatif photo):
# exemple: une luminance de 16 est changée en 235
Levels(0, 1, 255, 255, 0)
# Ne fait rien sur un clip compris dans la plage [0,255] ; Ne fait rien sur un clip compris dans la plage [16,235]:
Levels(0, 1, 255, 0, 255, coring=false)
# Applique un facteur d'échelle à un clip compris dans la plage [0,255] pour le mettre dans la plage [16,235]:
Levels(0, 1, 255, 16, 235, coring=false) # Revient au même que ColorYUV(levels="PC->TV")
# Applique un facteur d'échelle à un clip compris dans la plage [16,235] pour le mettre dans la plage [0,255]:
Levels(16, 1, 235, 0, 255, coring=false) # Revient au même que ColorYUV(levels="TV->PC")
$English Date: 2004/07/04 19:37:46 $
French translation date: 2006/02/05 JasonFly macpaille@users.sourceforge.net