Xyremap
From Avisynth wiki
Abstract | |
---|---|
Author | wonkey_monkey |
Version | v0.5beta |
Download | xyremap0.5beta.zip |
Category | Transformation |
License | Closed source |
Discussion | Doom9 Thread |
Contents |
Description
xyremap is a filter for remapping pixels using formulae written in reverse Polish notation (http://en.wikipedia.org/wiki/Reverse_Polish_notation)
Requirements
- [x86]: AviSynth+ or AviSynth 2.5.8 or greater
- Supported color formats: RGB32
Syntax and Parameters
xyremap(clip, string "x", string "y", string "m", int "w", int "h", bool "draft", bool "static") x: a formula, written in reverse Polish notation, to calculate source x coordinate for each remapped pixel y: same as above for the y coordinate m: same as above, used to multiply (darken) the pixel value w: output width (defaults to input width) h: output height (defaults to input height) draft: nearest-neighbour interpolation if true (otherwise defaults to bicubic interpolation) static: if the remapping is the same for all frames (no animation using variables n or t), set this to true to increase rendering speed
Examples
xyremap's formulae map output pixels to input pixels, with the origin at the top left. To shift an image to the right by 10 pixels, use: xyremap(clip, "x 10 -") Note that "-" is used instead of "+" because we are mapping from output to input pixels, not the other way around (which would be more intuitive). Similarly to upscale a video in both dimensions: xyremap(clip, "x 0.5 *", "y 0.5 *") To scale up from the center: xyremap(clip, "x w 0.5 * - 0.5 * u 0.5 * +", "y w 0.5 * - 0.5 * v 0.5 * +")
Reverse Polish Notation=
For more information on RPN itself, see http://en.wikipedia.org/wiki/Reverse_Polish_notation and also http://horman.net/avisynth/rpn.php
For a list of available operations in this implementation, see the included rpn.html document or here: http://horman.net/avisynth/rpn.php xyremap sets the following variables: x: pixel x coordinate (note that this is the pixel center coordinate, so the leftmost pixel is x=0.5) y: pixel y coordinate (note that this is the pixel center coordinate, so the topmost pixel is y=0.5) a: pixel x coordinate normalised to [0-1] b: pixel y coordinate normalised to [0-1] c: pixel y coordinate normalised to [0-1*display_aspect_ratio] n: frame number t: t=n/framecount (so 0<=0<1) w: output width h: output height u: input width v: input height
Changelog
Version Date Changes
v0.5beta 2015/08/30 - some new RPN functions, a bug fix, and (approximately) gamma-aware interpolation (see https://forum.doom9.org/showthread.php?p=1736501#post1736501)
v0.4beta 2015/08/23 - new x86 RPN compiler; new functionality (see https://forum.doom9.org/showthread.php?p=1735605#post1735605)
v0.3 2015/03/15 - new parameter "static" to speed up non-animating remaps
v0.2 2012/11/01 - bug fixes to pixel interpolator, min/max functions, added new RPN parameters (see https://forum.doom9.org/showthread.php?p=1598673#post1598673)
v0.1 2012/10/14 - initial release
Archived Downloads
Version | Download | Mirror |
---|---|---|
v0.5beta | xyremap0.5beta.zip | xyremap0.5beta.zip |
v0.3 | xyremap0.3.zip | xyremap0.3.zip |
External Links
Back to External Filters ←