RangeInfo

An Avisynth filter for pixel value range inspection

By Ross Thomas <ross@grinfinity.com>

There is no copyright on this code, and there are no conditions on its distribution or use. Do with it what you will.

Description

RangeInfo is a diagnostic filter for Avisynth. Its purpose is to allow fairly detailed inspection of pixel value ranges within a clip. That is to say, it will tell you various pieces of information such as the pixels with the lowest and highest values (for Y, U and V) in the frame and for the clip overall, amongst others.

It can also optionally highlight pixels within a certain range in a very attractive vivid green.

I wrote this filter to investigate the output from various sources to see if it conformed to the CCIR-601 specification that broadcast video be limited to using certain ranges of pixel values. It can also be useful for checking the range of a clip to help determine what levels adjustment might be necessary.

Usage

RangeInfo(clip clip, bool show, int ylow, int yhigh, int ulow, int uhigh, int vlow, int vhigh)

Parameter Meaning Default
clip

Specifies the clip to affect.

last
show Determines if the various statistics are computed and displayed overlayed onto the clip. The statistics displayed are:
  • Filter version.
  • Current frame number.
  • Minimum, maximum, mean and most common pixel value for each of the frame's Y, U and V.
  • Minimum and maximum for each of the entire clip's Y, U and V, as well as the frame numbers in which these values were last seen.
True
ylow, yhigh The low bound for Y highlighting. In other words, all pixels with a value between "ylow" and "yhigh" inclusive will be highlighted. 0, 0
ulow, uhigh As ylow and yhigh for the U component. 0, 0
vlow, vhigh As ulow and uhigh for the V component. 0, 0

Examples

Displays the range statistics, but does not highlight:

RangeInfo()

Highlights all pixels in the Y component within the range 0 to 15 inclusive, but does not display statistics:

RangeInfo(show=false, ylow=0, yhigh=15)

Highlights all pixels in the U and V components within the range 241 to 255 inclusive, and displays overlayed statistics:

RangeInfo(ulow=241, uhigh=255, vlow=241, vhigh=255)

Known Issues

TODO

Author

Ross Thomas <ross@grinfinity.com>

History

Version Description
0.1 First release. Alpha code. Danger, Will Robinson!