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.