JohnFPS

From Avisynth wiki
Jump to: navigation, search
Abstract
Author johnmeyer, StainlessS
Version
Download Script
Category Frame Rate Converters
License GPLv2
Discussion

Contents

[edit] Description

Frame Rate Converter based on the example from the MVTools documentation with some modifications. This script is also known as "jm_fps".

[edit] Requirements

[edit] Required Plugins

Latest versions of the following filters are recommended unless stated otherwise.


[edit] 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.


val  num =
int  den =
Specify FrameRate using num (Numerator) and den (Denominator):
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).


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


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)


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.


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


float  ml = 200.0
MFlowFps parameter; mask scale parameter. The greater values are corresponded to more weak occlusion mask.


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).


bool  Blend = false
MFlowFps parameter; blend frames at scane change like ConvertFps if true, or repeat last frame like ChangeFps if false.


[edit] Examples

JohnFPS with default settings:

AviSource("blah.avi")
JohnFPS() # doubles the frame rate


[edit] Changelog

Version                 Date            Changes
TODO


[edit] External Links




Back to External Filters

Personal tools