# Rendering

Rendering determines how an output image is constructed from a series of aligned input frames, and occurs in two stages: incremental rendering and Irani-Peleg rendering. Additional rendering options include exposure registration, certainty-weighted rendering, spatial extension, range extension, scaling, and Bayer pattern specification. Experimental options for video stream processing are also available.

Incremental Rendering

The incremental renderer uses configurable rendering chains to determine the output image. It can increase resolution and reduce aliasing, but it cannot reduce blur. For more information on rendering chains, see user-chains.

Irani-Peleg Rendering

The Irani-Peleg renderer uses configurable point-spread functions to model blur, which is then reduced by an iterative backprojection technique. By default, mean correction values are used at each iteration step, but median correction can also be specified. For more information about point-spread functions, see user-psf. For iteration defaults, see user-defaults.

--ips <i> Run <i> iterations. --ip-mean Use the mean correction [default] --ip-median Use the median correction Exposure Registration

By default, ALE adjusts an exposure model to minimize differences in tone between frames. The option --exp-noregister indicates that exposure should be assumed uniform across all frames. In this case, no adjustment is performed. The option --exp-meta-only indicates that only exposure information included in the image files should be used for registration. Currently, EPPM is the only type of exposure metadata supported by this option; for more information, see user-eppm.

--exp-register Register exposure between frames. [default] --exp-noregister Assume uniform exposure across all frames. --exp-meta-only Use only image metadata for registering exposure. Color Adjustment

To adjust the color of the output image (e.g., for white balance), the --exp-mult= option can be used.

--exp-mult=c,r,b Adjust all channels by <c>, red by <r>, and blue by <b>. Certainty-weighted Rendering

The exposure model includes an associated certainty function, which quantifies the reliability of sensor measurements. By default, this function is raised to the zeroth power, to obtain uniform certainty for all measurements. To specify a different certainty exponent, the option --cx can be used. This option is best used in combination with --exp-extend (see below) and --ips. For defaults, see user-defaults.

--cx <x> Render with certainty exponent <x> --no-cx Render with uniform certainty. Scale factor

Rendering with a larger scale factor results in image output of the specified larger scale. Larger scales can improve alignment precision and output image quality, but can also increase alignment and rendering times.

--scale=x Scale images by the factor x, where x > 0. (1 is default) Image extents

The --extend option records pixel data that falls outside of the region of the first frame in the sequence. This can be useful for providing additional alignment constraints or creating panoramic image mosaics. (For mosaics, see also the description of the --follow option in user-alignment.)

--extend Increase image extents to accommodate all pixel data. --no-extend Don't increase extents; crop to original frame. [default] Exposure extents

By default, ALE restricts the output range to that of the original frame. To adjust the output range to accommodate the ranges of all input frames, specify --exp-extend. For defaults, see user-defaults

--exp-extend Extend range to include all calculated values. --exp-noextend Restrict to the original frame's range. Bayer pattern specification

Many cameras sample only one color channel per output pixel. To ignore the other channels, a Bayer pattern can be specified.

--bayer <b> Set the Bayer pattern to <b>, one of: (clockwise from top left pixel) rgbg Red-green-blue-green gbgr Green-blue-green-red grgb Green-red-green-blue bgrg Blue-green-red-green none RGB-RGB-RGB-RGB Default is none or device-specific. Video stream processing (Experimental)

If a sequence of frames represents a video stream, then, in addition to producing a single output image, ALE can also produce one or more sequences of processed frames, corresponding to one or more occurrences of the --visp option. This option has its own associated scaling option, as well as an option to show excluded regions as dimmed wherever possible.

--visp <args> Process a video sequence. <args> are: <chain> <stabilization-type> <prefix> <suffix> <chain> is an incremental rendering chain. <stabilization-type> is one of: ma:<x> Moving average over 2*<x> + 1 frames sf:<x> Stabilize to single frame number <x> identity Same as ma:0 <prefix> is an output file prefix <suffix> is an output file suffix --visp-scale=<x> Use scale <x> for VISP output. (default is 1.0) --exshow For single-invariant chains, show --ex regions dimmed. Video stream processing example

To mimic the behavior of repeated applications of the 0.6.0 --replace option over a sequence of frames, the following --visp option could be used.

--visp last:nex:triangle:2 sf:0 frame .jpg

For better filtering, the following option could be used instead:

--visp last:nex:sinc*lanc:6 sf:0 frame .jpg