FrameRateConverter
From Avisynth wiki
(Difference between revisions)
(→Requirements: add required plugins) |
(more documentation (still WIP)) |
||
Line 28: | Line 28: | ||
== [[Script variables|Syntax and Parameters]] == | == [[Script variables|Syntax and Parameters]] == | ||
+ | |||
+ | ===FrameRateConverter.avsi=== | ||
+ | Script containing <code>FrameRateConverter()</code> and <code>InterpolateDoubles()</code> functions. | ||
+ | |||
+ | ==== FrameRateConverter ==== | ||
:{{Template:FuncDef|FrameRateConverter (clip C, int "NewNum", int "NewDen", string "Preset", int "BlkSize", int "BlkSizeV", bool "FrameDouble", string "Output", bool "Debug", clip "Prefilter", int "MaskThr", int "MaskOcc", int "SkipThr", int "BlendOver", int "SkipOver", bool "Stp", int "Dct", int "DctRe", int "BlendRatio")}} | :{{Template:FuncDef|FrameRateConverter (clip C, int "NewNum", int "NewDen", string "Preset", int "BlkSize", int "BlkSizeV", bool "FrameDouble", string "Output", bool "Debug", clip "Prefilter", int "MaskThr", int "MaskOcc", int "SkipThr", int "BlendOver", int "SkipOver", bool "Stp", int "Dct", int "DctRe", int "BlendRatio")}} | ||
<br> | <br> | ||
Line 99: | Line 104: | ||
:::Other values provide a result in-between to eliminate ghost effects. Default = 40. | :::Other values provide a result in-between to eliminate ghost effects. Default = 40. | ||
<br> | <br> | ||
+ | ==== InterpolateDoubles ==== | ||
+ | Replace double frames with interpolated frames using FrameRateConverter. | ||
+ | <br> | ||
+ | <br> | ||
+ | :{{Template:FuncDef|InterpolateDoubles (clip C, float "Thr", bool "Show", string "Preset", int "BlkSize", int "BlkSizeV", int "MaskThr", int "MaskOcc", int "SkipThr", int "BlendOver", int "SkipOver", bool "Stp", int "Dct", int "DctRe")}} | ||
+ | <br> | ||
+ | ::{{Par2| |clip| }} | ||
+ | :::Input clip. | ||
+ | <br> | ||
+ | ::{{Par2|Thr|float|0.1 }} | ||
+ | :::Frames will be replaced when Luma difference with previous frame is greater than threshold (default=0.1) | ||
+ | <br> | ||
+ | ::{{Par2|Show|bool|false}} | ||
+ | :::If true, "FRAME FIXED" will be written on replaced frames (default=false) | ||
+ | <br> | ||
+ | ::'''All other parameters are the same as <code>FrameRateConverter()</code>.''' | ||
+ | <br> | ||
+ | ------------------------------- | ||
+ | ===FrameRateConverter.dll=== | ||
+ | Script containing <code>StripeMask()</code>, <code>ConvertFpsLimit()</code>, and <code>ConditionalFilterMT</code> functions. | ||
+ | <br> | ||
+ | ====StripeMask==== | ||
+ | Builds a mask detecting horizontal and vertical straight lines and patterns, as MvTools tends to fail in such areas. | ||
+ | |||
+ | |||
== Examples == | == Examples == | ||
[[TODO]] | [[TODO]] |
Revision as of 08:23, 15 April 2020
Abstract | |
---|---|
Author | mysteryx93 |
Version | v1.3 |
Download | FrameRateConverter-v1.3.zip |
Category | Frame Rate Converters |
License | |
Discussion | Doom9 Forum |
Contents |
Description
Script and plugin set to increase the frame rate with interpolation and fine artifact removal.
Requirements
Required Plugins
Latest versions of the following filters are recommended unless stated otherwise.
- FrameRateConverter.dll
- MaskTools2
- MVTools
- GRunT - for debug only
Syntax and Parameters
FrameRateConverter.avsi
Script containing FrameRateConverter()
and InterpolateDoubles()
functions.
FrameRateConverter
- FrameRateConverter (clip C, int "NewNum", int "NewDen", string "Preset", int "BlkSize", int "BlkSizeV", bool "FrameDouble", string "Output", bool "Debug", clip "Prefilter", int "MaskThr", int "MaskOcc", int "SkipThr", int "BlendOver", int "SkipOver", bool "Stp", int "Dct", int "DctRe", int "BlendRatio")
- clip =
- Input clip.
- clip =
- int NewNum =
- The new framerate numerator (if FrameDouble = false, default = 60).
- int NewNum =
- int NewDen =
- The new framerate denominator (if FrameDouble = false, default = 1)
- int NewDen =
- string Preset = "normal"
- The speed/quality preset: [
"slowest" | "slower" | "slow" | "normal" | "fast" | "faster" | "anime"
]
- The speed/quality preset: [
- string Preset = "normal"
- int BlkSize =
- The block size; available sizes are 6, 8, 12, 16, 24, 32, 48 and 64.
- Defaults for 4/3 video of height:
- 0-359: 8
- 360-749: 12
- 750-1199: 16
- 1200-1699: 24
- 1600-2160: 32
- int BlkSize =
- int BlkSizeV = BlkSize
- The vertical block size. (default = BlkSize)
- int BlkSizeV = BlkSize
- bool FrameDouble = true
- Whether to double the frame rate and preserve original frames (default = true)
- bool FrameDouble = true
- string Output = "auto"
- Output mode [
"auto" | "flow" | "over" | "none" | "raw" | "mask" | "skip" |" diff" | "stripe"
] (default = "auto") - auto=normal artifact masking; flow=interpolation only; over=mask as cyan overlay, stripes mask as yellow; none=ConvertFPS only; raw=raw mask;
- mask=mask only; skip=mask used to Skip; diff=mask where alternate interpolation is better; stripe=mask used to cover stripes.
- Output mode [
- string Output = "auto"
- bool Debug = false
- Whether to display AverageLuma values of Skip, Mask and Raw. (Default = false)
- bool Debug = false
- clip Prefilter = none
- Specifies a prefilter such as RgTools' RemoveGrain(21). Recommended only when not using a denoiser (Default=none)
- clip Prefilter = none
- int MaskThr = 120
- The threshold where a block is considered bad, between 0 and 255. Smaller = stronger.
- 0 to disable artifact masking. (Default = 120)
- int MaskThr = 120
- int MaskOcc = 105
- Occlusion mask threshold, between 0 and 255. 0 to disable occlusion masking. (Default = 105)
- int MaskOcc = 105
- int SkipThr = 55
- The threshold where a block is counted for the skip mask, between 0 and 255. Smaller = stronger.
- Must be smaller (stronger) than MaskThr. (Default = 55)
- int SkipThr = 55
- int BlendOver = 70
- Try fallback block size when artifacts cover more than specified threshold, or 0 to disable.
- If it fails again, it will revert to frame blending. (default = 70)
- int BlendOver = 70
- int SkipOver = 210
- Skip interpolation of frames when artifacts cover more than specified threshold, or 0 to disable. (Default = 210)
- int SkipOver = 210
- bool Stp = true
- Whether to detect and blend stripes (default=true)
- bool Stp = true
- int Dct = 0
- Overrides DCT parameter for MAnalyse (default: Normal=0, Slow=4, Slowest=1)
- int Dct = 0
- int DctRe = 0
- Overrides DCT parameter for MRecalculate (default: Fast=0, Normal=4, Slowest=1)
- int DctRe = 0
- int BlendRatio = 40
- Changes the blend ratio used to fill artifact zones. 0 = frame copy and 100 = full blend.
- Other values provide a result in-between to eliminate ghost effects. Default = 40.
- int BlendRatio = 40
InterpolateDoubles
Replace double frames with interpolated frames using FrameRateConverter.
- InterpolateDoubles (clip C, float "Thr", bool "Show", string "Preset", int "BlkSize", int "BlkSizeV", int "MaskThr", int "MaskOcc", int "SkipThr", int "BlendOver", int "SkipOver", bool "Stp", int "Dct", int "DctRe")
- clip =
- Input clip.
- clip =
- float Thr = 0.1
- Frames will be replaced when Luma difference with previous frame is greater than threshold (default=0.1)
- float Thr = 0.1
- bool Show = false
- If true, "FRAME FIXED" will be written on replaced frames (default=false)
- bool Show = false
- All other parameters are the same as
FrameRateConverter()
.
- All other parameters are the same as
FrameRateConverter.dll
Script containing StripeMask()
, ConvertFpsLimit()
, and ConditionalFilterMT
functions.
StripeMask
Builds a mask detecting horizontal and vertical straight lines and patterns, as MvTools tends to fail in such areas.
Examples
Changelog
See https://github.com/mysteryx93/FrameRateConverter/blob/master/ChangeLog.txt
External Links
- GitHub - Source code repository.
Back to External Filters ←