JohnFPS
From Avisynth wiki
Abstract | |
---|---|
Author | johnmeyer, StainlessS |
Version | |
Download | Script |
Category | Frame Rate Converters |
License | GPLv2 |
Discussion |
Contents |
Description
Frame Rate Converter based on the example from the MVTools documentation with some modifications. This script is also known as "jm_fps".
Requirements
Required Plugins
Latest versions of the following filters are recommended unless stated otherwise.
Syntax and Parameters
- JohnFPS (clip c, val "num", int "den", int "Sharp", int "rFilter", int "BlkSize", int "Search", int "dct", float "ml", int "Mask", bool "Blend")
- clip =
- Input clip.
- clip =
- val num =
- int den =
- Specify FrameRate using num (Numerator) and den (Denominator):
- val num =
num only, eg num=25.0: FrameRate = 25.0 FPS num & den, eg num=24000, den=1001: FrameRate = 23.976 FPS (Both should be type Int). neither parameter specified: FrameRate = Double input framerate.
- int Sharp = 1
- MSuper parameter; sub-pixel interpolation method.
- 0 : soft interpolation (bilinear).
- 1 : bicubic interpolation (4 tap Catmull-Rom)
- 2 : sharper Wiener interpolation (6 tap, similar to Lanczos).
- MSuper parameter; sub-pixel interpolation method.
- int Sharp = 1
- int rFilter = 4
- MSuper parameter; hierarchical levels smoothing and reducing (halving) filter.
- 0 : simple 4 pixels averaging like unfiltered SimpleResize (old method)
- 1 : triangle (shifted) filter like ReduceBy2 for more smoothing (decrease aliasing)
- 2 : triangle filter like BilinearResize for even more smoothing
- 3 : quadratic filter for even more smoothing
- 4 : cubic filter like BicubicResize(b=1,c=0) for even more smoothing
- MSuper parameter; hierarchical levels smoothing and reducing (halving) filter.
- int rFilter = 4
- int BlkSize = 16
- Block size for MAnalyze and MRecalculate. Some suggestions:
- 8 - for 320x240 (WEB)
- 16 - for 720x576 (SD)
- 32 - for 1280x720 (720p HD)
- 32 - for 1920x1080 (1080p HD)
- Block size for MAnalyze and MRecalculate. Some suggestions:
- int BlkSize = 16
- int Search = 3
- MAnalyse parameter; search decides the type of search at every level.
- search = 0 : 'OneTimeSearch'.
- search = 1 : 'NStepSearch'. It's the most well known of the MV search algorithm.
- search = 2 : Logarithmic search, also named Diamond Search.
- search = 3 : Exhaustive search. It is slow, but it gives the best results, SAD-wise.
- search = 4 : Hexagon search (similar to x264).
- search = 5 : Uneven Multi Hexagon (UMH) search.
- search = 6 : pure Horizontal exhaustive search.
- search = 7 : pure Vertical exhaustive search.
- MAnalyse parameter; search decides the type of search at every level.
- int Search = 3
- int dct = 0
- MAnalyse parameter; using of block DCT (frequency spectrum) for blocks difference (SAD) calculation. In particular it can improve motion vector estimation at luma flicker and fades.
- 0 - usual spatial blocks, do not use DCT;
- 1 - use block DCT instead of spatial data (slow for block size 8x8 and very slow for other sizes);
- 2 - mixed spatial and DCT data; weight is dependent on mean frame luma difference;
- 3 - adaptive per-block switching from spatial to equal-weighted mixed mode (experimental, a little faster).
- 4 - adaptive per-block switching from spatial to mixed mode with more weight of DCT (experimental, a little faster).
- 5 - SATD instead of SAD for luma
- 6 - same as 2 only use SATD
- 7 - same as 3 only use SATD
- 8 - same as 4 only use SATD
- 9 - similar to 2, use SATD and weight ranges from SAD only to equal SAD & SATD
- 10 - similar to 3/4,use SATD weight is on SAD, only on strong luma changes
- MAnalyse parameter; using of block DCT (frequency spectrum) for blocks difference (SAD) calculation. In particular it can improve motion vector estimation at luma flicker and fades.
- int dct = 0
- float ml = 200.0
- MFlowFps parameter; mask scale parameter. The greater values are corresponded to more weak occlusion mask.
- float ml = 200.0
- int Mask = 2
- MFlowFps parameter; processing mask mode:
- mask=0 is simple backward and forward occlusion masks (fastest);
- mask=1 is similar masks with additional switching to static zero vectors at occlusion area;
- mask=2 is for using extra vectors from adjacent frames for decreasing objects halo at occlusion areas (slowest).
- MFlowFps parameter; processing mask mode:
- int Mask = 2
- bool Blend = false
- MFlowFps parameter; blend frames at scane change like ConvertFps if true, or repeat last frame like ChangeFps if false.
- bool Blend = false
Examples
JohnFPS with default settings:
AviSource("blah.avi") JohnFPS() # doubles the frame rate
Changelog
Version Date Changes
TODO
External Links
Back to External Filters ←