church_archive_script/Programs/doc/_sources/functions/video/levels.rst.txt
2023-11-29 16:12:35 +00:00

39 lines
1.5 KiB
ReStructuredText

Levels
======
.. function:: Levels(vnode clip[, float min_in, float max_in, float gamma=1.0, float min_out, float max_out, int[] planes=[0, 1, 2]])
:module: std
Adjusts brightness, contrast, and gamma.
The range [*min_in*, *max_in*] is remapped into [*min_out*, *max_out*]. Note that the
range behavior is unintuitive for YUV float formats since the assumed range will be
0-1 even for the UV-planes.
For example, to convert from limited range YUV to full range (8 bit)::
clip = std.Levels(clip, min_in=16, max_in=235, min_out=0, max_out=255, planes=0)
clip = std.Levels(clip, min_in=16, max_in=240, min_out=0, max_out=255, planes=[1,2])
The default value of *max_in* and *max_out* is the format's minimum and maximum
allowed values respectively. Note that all input is clamped to the input range
to prevent out of range output.
.. warning::
The default ranges are 0-1 for floating point formats. This may have an undesired
effect on YUV formats.
*clip*
Clip to process. It must have integer sample type and bit depth
between 8 and 16, or float sample type and bit depth of 32. If
there are any frames with other formats, an error will be
returned.
*gamma*
Controls the degree of non-linearity of the conversion. Values
greater than 1.0 brighten the output, while values less than 1.0
darken it.
*planes*
Specifies which planes will be processed. Any unprocessed planes
will be simply copied.