AnimeIVTC

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(Interlaced or progressive credits)
(I) About anime telecining)
 
(56 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Filter
+
{{Filter3
|thetoof
+
|thetoof, real.finder
|2.00
+
|2.20
|[[http://forum.doom9.org/showthread.php?t=138305&highlight=AnimeIVTC| Doom9 Thread (original)]][[http://forum.doom9.org/showthread.php?p=1673928| Doom9 Thread (mod)]]
+
|3=<strike>[http://forum.doom9.org/showthread.php?t=138305 Doom9 Thread (original)]</strike> [http://forum.doom9.org/showthread.php?p=1673928 Doom9 Thread (mod)]
|[[IVTC]] & Decimation
+
|4=[[:Category:IVTC|IVTC]] & [[:Category:Decimation|Decimation]]
|
+
|5=[http://creativecommons.org/licenses/by-sa/3.0/ CreativeCommons BY-SA 3.0]
|[[http://creativecommons.org/licenses/by-sa/3.0/| CreativeCommons BY-SA 3.0]]}}
+
|6=
 +
}}
  
== Abstract ==
+
==Requirements==
 +
Put all the .dll/.avsi in the "plugins" folder of AviSynth. Latest version of the following plugins is recommended.
  
<br />'''Author:''' thetoof<br />'''Version:''' 2.00<br />'''Discussion:''' [http://forum.doom9.org/showthread.php?t=138305 forum.doom9.org]<br />'''Category:''' IVTC &amp; Decimation<br />
+
* [[TIVTC]]
=== Requirements: ===
+
* [[TDeint]]
<br />Put all the .dll/.avsi in the "plugins" folder of avisynth. You can get them all [[#V.29_Download|here]].
+
* [[TMM]]
 
+
* [[nnedi3]]
* TIVTC, TDeint and TMM by tritical [http://forum.doom9.org/showthread.php?t=82264 link]
+
* [[EEDI2]]
* nnEDI2 by tritical [http://forum.doom9.org/showthread.php?t=147695 link]
+
* [[eedi3|EEDI3]]
* nnEDI3<span style="color:red">*</span> by tritical [http://forum.doom9.org/showthread.php?t=147695 link] or for avs 2.6 [http://forum.doom9.org/showthread.php?t=170083 link]
+
* [[yadifmod]]
* EEDI2 by tritical, multithreaded version by foxyshadis [http://web.missouri.edu/~kes25c/ link]
+
* [[QTGMC]]
* yadifmod by tritical [http://avisynth.org.ru/yadif/yadif.html link]
+
* [[MVTools|MVTools2]]
* TGMCmod by thetoof (in 7z archive), original version by Didée here - [http://forum.doom9.org/showthread.php?p=1158000#post1158000 link]
+
* RemoveGrain and Repair
* QTGMC<span style="color:red">*</span> by -Vit- - [[QTGMC|link]]
+
* [[MaskTools2]]
* MVTools2 by Fizick [[MVTools|link]]
+
* [[Vinverse]]
* RemoveGrain and Repair by kassandro [[RemoveGrain|link]]
+
* [[MedianBlur2]]
* MaskTools by Manao [[MaskTools|link]]
+
* [[srestore]]
* MaskTools2 by Manao  [[MaskTools2|link]]
+
* [[Average]]
* Vinverse by tritical (original script by Didée) [http://bengal.missouri.edu/~kes25c/vinverse.zip link]
+
* MedianBlur by tsp [http://www.avisynth.nl/users/tsp/|link]
+
* srestore by MOmonster [[Srestore|link]]
+
* Average by mg262 [http://forum.doom9.org/showthread.php?p=1129919#post1129919 link]
+
 
* ReduceFlicker by kassandro [http://home.arcor.de/kassandro/ReduceFlicker/ReduceFlicker.htm link]
 
* ReduceFlicker by kassandro [http://home.arcor.de/kassandro/ReduceFlicker/ReduceFlicker.htm link]
* SangNom by MarcFD [[SangNom|link]]
+
* [[SangNom2]]
* Toon by Soulhunter (original script by mf, speedups by Didée) [http://forum.doom9.org/showthread.php?t=131454 link]
+
* [[Toon]]
* Lsfmod by LaTo [http://avisynth.org/mediawiki/LSFmod link], original version by Didée here [http://avisynth.org/mediawiki/LimitedSharpen link]
+
* [[LSFmod]]
* aWarpSharp and Toon rewrites by SEt [http://forum.doom9.org/showthread.php?t=147285 link]
+
* [[aWarpSharp2]]
* Microsoft Visual C [http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&DisplayLang=en link]
+
* AvsRecursion by kassandro (put in your system32 folder for 32-bit systems... or SysWOW64 for 64-bit systems) [http://home.arcor.de/kassandro/AvsRecursion/AvsRecursion.htm link]
* AvsRecursion by kassandro (put in your system32 folder... or something else if you're not running with XP 32) [http://home.arcor.de/kassandro/AvsRecursion/AvsRecursion.htm link]
+
* [http://avisynth.nl/images/Daa3.avsi daa3]
 
* and of course, AnimeIVTC by thetoof ;-)
 
* and of course, AnimeIVTC by thetoof ;-)
  
Line 42: Line 40:
  
 
# Particularities of anime:
 
# Particularities of anime:
- While a film is shot at 24 frames per second (fps), anime is animated at 24fps so there is not necessarily motion on every frame.
+
While a film is shot at 24 frames per second (fps), anime is animated at 24fps so there is not necessarily motion on every frame. When there is not a lot of movement, it can be displayed at lower framerates like 8 or 12 fps with duplicate(s) of every frame to maintain a constant framerate of 24fps. To create the illusion of faster movement, different parts of the image can move at different framerates. In this situation, the image is divided into 2 parts and there are many possible combinations of "intra-frame variable framerate". This is not constant throughout the episode/movie since it changes depending on the amount of motion to be displayed.
- When there is not a lot of movement, it can be displayed at lower framerates like 8 or 12 fps with duplicate(s) of every frame to maintain a constant framerate of 24fps.
+
 
- To create the illusion of faster movement, different parts of the image can move at different framerates. In this situation, the image is divided into 2 parts and there are many possible combinations of "intra-frame variable framerate". This is not constant throughout the episode/movie since it changes depending on the amount of motion to be displayed.
+
CG animation at 30 fps is sometimes used in anime, so you can also have sequences with movement on every frame without any interlacing nor blends. The credits can be truly interlaced to make them run faster without being juddery and unreadable, thus leaving more room for the show. The credits can also be at the full progressive framerate on top of the telecined background.
- CG animation at 30 fps is sometimes used in anime, so you can also have sequences with movement on every frame without any interlacing nor blends.
+
- The credits can be truly interlaced to make them run faster without being juddery and unreadable, thus leaving more room for the show.
+
- The credits can also be at the full progressive framerate on top of the telecined background.
+
  
 
# Basic concepts:
 
# Basic concepts:
Soft telecine - the stream is encoded at 24 fps and the pulldown is applied during playback.
+
''Soft telecine'': the stream is encoded at 24 fps and the pulldown is applied during playback.
Hard telecine - your source was telecined before being encoded on the DVD (or before airing).
+
 
Double hard telecine - your source has at least one of the "intra-frame variable framerate" situations and the telecining was applied separately on each part of the frame, so the pattern is not constant and many frames are interlaced.
+
''Hard telecine'': your source was telecined before being encoded on the DVD (or before airing).
Field blended norm-conversion - Instead of going back to 24fps (film rate), the video streams are directly converted from NTSC (29.97fps) to PAL (25fps) or vice versa, creating ugly fieldblending (looks like DHT when inspecting a frame).
+
 
Hybrid - mix of 24t (24 fps displayed at 30 through telecining) and 30p (progressive movement on every frame)
+
''Double hard telecine'': your source has at least one of the "intra-frame variable framerate" situations and the telecining was applied separately on each part of the frame, so the pattern is not constant and many frames are interlaced.
Truly interlaced - each frame contains half the information of two frames, which means that you can bob it to 60p and see movement on every single frame, without any interlacing or blending.
+
 
Progressive - No interlacing whatsoever at the full framerate.
+
''Field blended norm-conversion'': Instead of going back to 24fps (film rate), the video streams are directly converted from NTSC (29.97fps) to PAL (25fps) or vice versa, creating ugly fieldblending (looks like DHT when inspecting a frame).
3:2 pattern - This pattern repeats itself from the very beginning to the very end of your clip: 3 progressive frames followed by 2 interlaced ones.
+
 
VFR - Variable Frame Rate - The sections of the clip run at different framerates, thus allowing to have less frames for the same movement. The duplicates are removed and played during the same amount of time as if there was the original amount of frames.
+
''Hybrid'': mix of 24t (24 fps displayed at 30 through telecining) and 30p (progressive movement on every frame)
Lossless rendering pass - Save the file as uncompressed YV12 or Lagarith to apply the script only once and make subsequent filtering/encoding faster. It takes a lot of disk space: around 5GB for a 22 minutes clip @ 23.976fps with Lagarith and 20GB with uncompressed YV12.
+
 
 +
''Truly interlaced'': each frame contains half the information of two frames, which means that you can bob it to 60p and see movement on every single frame, without any interlacing or blending.
 +
 
 +
''Progressive'': No interlacing whatsoever at the full framerate.
 +
 
 +
''3:2 pattern'': This pattern repeats itself from the very beginning to the very end of your clip: 3 progressive frames followed by 2 interlaced ones.
 +
 
 +
''VFR - Variable Frame Rate'': The sections of the clip run at different framerates, thus allowing to have less frames for the same movement. The duplicates are removed and played during the same amount of time as if there was the original amount of frames.
 +
 
 +
''Lossless rendering pass'': Save the file as uncompressed YV12 or Lagarith to apply the script only once and make subsequent filtering/encoding faster. It takes a lot of disk space: around 5GB for a 22 minutes clip @ 23.976fps with Lagarith and 20GB with uncompressed YV12.
 +
 
  
 
# Examples:
 
# Examples:
Double Hard Telecine - At first, your source may look like a typical Hard Telecined one, but after a more thorough inspection, you'll see that it's actually a DHT one: same source, different high motion scene.
+
''Double Hard Telecine'': At first, your source may look like a typical Hard Telecined one, but after a more thorough inspection, you'll see that it's actually a DHT one: same source, different high motion scene.
Interlaced on top of telecined (can be hard or double hard) - In this case, it was a hard telecined source. Image
+
 
 +
''Interlaced on top of telecined'' (can be hard or double hard): In this case, it was a hard telecined source. Image
 +
 
 
Obviously, since there's no pattern in DHT and interlacing on every frame with pure interlaced material, regular IVTC will output blends and jerkiness.
 
Obviously, since there's no pattern in DHT and interlacing on every frame with pure interlaced material, regular IVTC will output blends and jerkiness.
  
Apply TComb ''before ''AnimeIVTC if you need to correct dotcrawl.
+
Apply TComb ''before'' AnimeIVTC if you need to correct dotcrawl.
  
 
It is NOT<span style="color:red">*</span> recommended to use animeivtc with multithreading and/or calling it multiple times in a script. If you want to multithread it, see the [[#examples example scripts|examples example scripts]] below.
 
It is NOT<span style="color:red">*</span> recommended to use animeivtc with multithreading and/or calling it multiple times in a script. If you want to multithread it, see the [[#examples example scripts|examples example scripts]] below.
Line 80: Line 87:
 
* [[#Mode=3 (Double hard telecined)|Mode=3 (Double hard telecined)]]
 
* [[#Mode=3 (Double hard telecined)|Mode=3 (Double hard telecined)]]
 
* [[#hybrid Mode=4 (Hybrid)|hybrid Mode=4 (Hybrid)]]
 
* [[#hybrid Mode=4 (Hybrid)|hybrid Mode=4 (Hybrid)]]
<code>AnimeIVTC</code> (<var>clip i, int "mode", int "aa", int "precision", int "killcomb", int "cache", bool "ifade" , bool "chrfix" , bool "blend" , bool "normconv" , int "pattern" , int "pass", bool "rendering" , int "bbob", int "cbob", string "edimode", int "degrain", int "omode" , int "cthresh"<span style="color:red">*</span> , int "blockx"<span style="color:red">*</span> , int "blocky"<span style="color:red">*</span> , int "MI"<span style="color:red">*</span> , int "tfmm"<span style="color:red">*</span> , int "pp"<span style="color:red">*</span> , int "metric"<span style="color:red">*</span> , int "micmatching"<span style="color:red">*</span> , int "i1", int "i2", int "e1", int "e2", int "e3", int "p1", int "p2" , bool "dchr"<span style="color:red">*</span> , bool "palf"<span style="color:red">*</span> , bool "tcfv1"<span style="color:red">*</span> , bool "nvfr"<span style="color:red">*</span> , bool "real30p"<span style="color:red">*</span> , bool "autoAssuf"<span style="color:red">*</span> , int "ediandnn"<span style="color:red">*</span> , bool "o3025cfr"<span style="color:red">*</span> , int "overlap", int "pel", int "search", bool "nnedi3pel"<span style="color:red">**</span> , string "credconv" , bool "mode22"<span style="color:red">*</span> , clip "ediext"<span style="color:red">*</span> , string "bob4p"<span style="color:red">*</span> , clip "extbob"<span style="color:red">*</span> , string "extbobf"<span style="color:red">*</span> , bool "yadifrepwithtdeint"<span style="color:red">*</span> , float "dark", int "thin", int "sharp", int "smooth", bool "stabilize", int "tradius", int "aapel", int "aaov", int "aablk", int "aatype"</var>)
+
<code>AnimeIVTC</code> (<var>clip i, int "mode", int "aa", int "precision", int "killcomb", int "cache", bool "ifade", float "sfthr"<span style="color:red">*</span>, bool "sfshow"<span style="color:red">*</span> , bool "chrfix" , bool "blend" , bool "normconv" , int "pattern" , int "pass", bool "rendering" , int "bbob", int "cbob", string "edimode", int "degrain", int "omode" , int "cthresh"<span style="color:red">*</span> , int "blockx"<span style="color:red">*</span> , int "blocky"<span style="color:red">*</span> , int "MI"<span style="color:red">*</span> , int "tfmm"<span style="color:red">*</span> , int "pp"<span style="color:red">*</span> , int "metric"<span style="color:red">*</span> , int "micmatching"<span style="color:red">*</span> , int "i1", int "i2", int "e1", int "e2", int "e3", int "p1", int "p2" , bool "dchr"<span style="color:red">*</span> , bool "palf"<span style="color:red">*</span> , bool "tcfv1"<span style="color:red">*</span> , bool "nvfr"<span style="color:red">*</span> , bool "real30p"<span style="color:red">*</span> , bool "autoAssuf"<span style="color:red">*</span> , int "ediandnn"<span style="color:red">*</span> , bool "o3025cfr"<span style="color:red">*</span> , int "overlap", int "pel", int "search", bool "nnedi3pel"<span style="color:red">**</span> , string "credconv" , bool "mode22"<span style="color:red">*</span> , clip "ediext"<span style="color:red">*</span> , string "bob4p"<span style="color:red">*</span> , clip "extbob"<span style="color:red">*</span> , string "extbobf"<span style="color:red">*</span> , bool "repwithtdeint"<span style="color:red">*</span> , float "dark", int "thin", int "sharp", int "smooth", bool "stabilize", int "tradius", int "aapel", int "aaov", int "aablk", string "aatype"</var>)
 
: <span style="color:red">*</span> in mod ver. only.
 
: <span style="color:red">*</span> in mod ver. only.
 
: <span style="color:red">**</span> nnedi2pel in original ver..
 
: <span style="color:red">**</span> nnedi2pel in original ver..
Line 95: Line 102:
 
** True
 
** True
 
** False (default for speed concerns, but enabling it can be safer)
 
** False (default for speed concerns, but enabling it can be safer)
 +
<var>ediandnn</var> : to chose method. it's almost only about quality vs speed.
 +
** 1 : nnedi3 (default)
 +
** 2 : eedi3
 +
** 3 : eedi3+nnedi3
 
''cache'' : Sets amount of frames to cache for all functions using scriptclip to prevent seeking issues frame order mess-up with temporal filters. Using too much will result in crashing, so use less if you get memory issues.
 
''cache'' : Sets amount of frames to cache for all functions using scriptclip to prevent seeking issues frame order mess-up with temporal filters. Using too much will result in crashing, so use less if you get memory issues.
 
** 0 to inf. (default=10)
 
** 0 to inf. (default=10)
Line 171: Line 182:
 
** True (you did a rendering pass and only want to decimate in pass=2)
 
** True (you did a rendering pass and only want to decimate in pass=2)
 
** False (you did not create any intermediate file) (default)
 
** False (you did not create any intermediate file) (default)
<var>cbob</var> : Higher = slower, but more precise... Here, it's ''almost'' only about quality vs speed. '''Use for interlaced credits'''.
+
<var>cbob</var> : Higher = slower, but more precise... Here, it's ''almost'' about quality vs speed. '''Use for interlaced credits'''.
 
** 0 : Fastest, TDeint alone
 
** 0 : Fastest, TDeint alone
** 1 : Better (TDeint nnedi3 for interpolation)
+
** 1 : Better (TDeint + ediandnn for interpolation)
** 2 : Even better (TDeint nnedi3 motion mask)
+
** 2 : Even better (TDeint + ediandnn + motion mask)
** 3 : Alternate (Yadifmod nnedi3 for interpolation)
+
** 3 : Alternate (Yadifmod + ediandnn for interpolation)
 
** 4 : Most stable bobber around - QTGMC. Slow. (default)
 
** 4 : Most stable bobber around - QTGMC. Slow. (default)
 
<var>edimode</var> : Tells which filter to use for spatial interpolation with''' ''cbob=4'''''. The "best" one depends on your source. '''Use for interlaced credits'''.
 
<var>edimode</var> : Tells which filter to use for spatial interpolation with''' ''cbob=4'''''. The "best" one depends on your source. '''Use for interlaced credits'''.
 
** see EdiMode in [http://avisynth.nl/index.php/QTGMC#Interpolation QTGMC]
 
** see EdiMode in [http://avisynth.nl/index.php/QTGMC#Interpolation QTGMC]
** edimode = ediandnn by default in mod ver.
+
** edimode = ediandnn by default in mod ver. unless you set EdiMode
 
<var>degrain</var> : Temporal radius (# of frames to use * 2 1) for the final degraining step with''' ''cbob=4'''''. Higher = slower more noise removal more stable. '''Use for interlaced credits'''.
 
<var>degrain</var> : Temporal radius (# of frames to use * 2 1) for the final degraining step with''' ''cbob=4'''''. Higher = slower more noise removal more stable. '''Use for interlaced credits'''.
 
** 1 (default)
 
** 1 (default)
Line 186: Line 197:
  
 
=== Hard telecine (mode=1) ===
 
=== Hard telecine (mode=1) ===
<var>precision</var> : Higher = slower, but more precise... Here, it's only about quality vs speed.
+
<var>precision</var> : Higher = slower, but more precise... Here, it's may about quality vs speed.
 
** 0 : Fastest, tfm only
 
** 0 : Fastest, tfm only
** 1 : Better (uses Tdeint to deinterlace)
+
** 1 : Better (uses tfm + ediandnn to deinterlace)
** 2 : Even better (Tdeint nnedi2 for interpolation)
+
** 2 : Even better (tfm + Tdeint + ediandnn for interpolation)
** 3 : Optimal (Tdeint nned2i motion mask) (default)
+
** 3 : Optimal (tfm + Tdeint + ediandnn + motion mask) (default)
 +
** 4 : same as 3 but no blend
 +
** 5 : tfm + yadifmod + ediandnn
 +
** 6 : tfm + Tdeint + motion mask
 +
** 7 : use extbobf\extbob with SelectEven to back to original fps (no blend)
 +
** 8 : for already half extbobf\extbob fps
 
''blend'' : If you have a case of blend telecine, or blend-deinterlacing of telecined footage. 3:2 pattern - 3 clear, 2 blended. Weight must be 50/50.
 
''blend'' : If you have a case of blend telecine, or blend-deinterlacing of telecined footage. 3:2 pattern - 3 clear, 2 blended. Weight must be 50/50.
 
** True
 
** True
Line 198: Line 214:
 
<var>bbob</var> : Higher = slower, but more precise... Here, it's ''almost'' only about quality vs speed. Mo-comp is not recommended for blended material, but I left in case you have stability issues with the other bobbers.
 
<var>bbob</var> : Higher = slower, but more precise... Here, it's ''almost'' only about quality vs speed. Mo-comp is not recommended for blended material, but I left in case you have stability issues with the other bobbers.
 
** 0 : Fastest, TDeint alone
 
** 0 : Fastest, TDeint alone
** 1 : Better (TDeint nnedi2 for interpolation)
+
** 1 : Better (TDeint + nnedi3 for interpolation)
** 2 : Even better (TDeint nnedi2 motion mask)
+
** 2 : Even better (TDeint + nnedi3 motion mask)
** 3 : Alternate (Yadifmod nnedi2 for interpolation) (default)
+
** 3 : Alternate (Yadifmod + nnedi3 for interpolation) (default)
** 4 : Most stable bobber around - TGMC. Slow.
+
** 4 : Most stable bobber around - QTGMC. Slow.
 
<var>edimode</var> : Tells which filter to use for spatial interpolation with''' ''cbob=4'''''. The "best" one depends on your source.
 
<var>edimode</var> : Tells which filter to use for spatial interpolation with''' ''cbob=4'''''. The "best" one depends on your source.
** "yadif"
+
** same as [http://avisynth.nl/index.php?title=AnimeIVTC#Interlaced_or_progressive_credits cbob]
** "eedi2"
+
** "nnedi2" (default)
+
 
<var>degrain</var> : Temporal radius (# of frames to use * 2 1) for the final degraining step with''' ''cbob=4'''''. Higher = slower more noise removal more stable.
 
<var>degrain</var> : Temporal radius (# of frames to use * 2 1) for the final degraining step with''' ''cbob=4'''''. Higher = slower more noise removal more stable.
 
** 1 (default)
 
** 1 (default)
Line 215: Line 229:
  
 
=== Double hard telecine (mode=3) ===
 
=== Double hard telecine (mode=3) ===
<var>cbob</var> : Higher = slower, but more precise... Here, it's ''almost'' only about quality vs speed.
+
<var>cbob</var> : Higher = slower, but more precise... Here, it's ''almost'' about quality vs speed. '''Use for interlaced credits'''.
 
** 0 : Fastest, TDeint alone
 
** 0 : Fastest, TDeint alone
** 1 : Better (TDeint nnedi2 for interpolation)
+
** 1 : Better (TDeint + ediandnn for interpolation)
** 2 : Even better (TDeint nnedi2 motion mask)
+
** 2 : Even better (TDeint + ediandnn + motion mask)
** 3 : Alternate (Yadifmod nnedi2 for interpolation)
+
** 3 : Alternate (Yadifmod + ediandnn for interpolation)
** 4 : Most stable bobber around - TGMC. Slow. (default)
+
** 4 : Most stable bobber around - QTGMC. Slow. (default)
<var>edimode</var> : Tells which filter to use for spatial interpolation with''' ''cbob=4'''''. The "best" one depends on your source.
+
<var>edimode</var> : Tells which filter to use for spatial interpolation with''' ''cbob=4'''''. The "best" one depends on your source. '''Use for interlaced credits'''.
** "yadif"
+
** see EdiMode in [http://avisynth.nl/index.php/QTGMC#Interpolation QTGMC]
** "eedi2"
+
** edimode = ediandnn by default in mod ver.
** "nnedi2" (default)
+
 
<var>degrain</var> : Temporal radius (# of frames to use * 2 1) for the final degraining step with''' ''cbob=4'''''. Higher = slower more noise removal more stable.
 
<var>degrain</var> : Temporal radius (# of frames to use * 2 1) for the final degraining step with''' ''cbob=4'''''. Higher = slower more noise removal more stable.
 
** 1 (default)
 
** 1 (default)
Line 235: Line 248:
  
 
=== Hybrid (mode=4) ===
 
=== Hybrid (mode=4) ===
<var>precision</var> : Higher = slower, but more precise... Here, it's only about quality vs speed.
+
<var>precision</var> : Higher = slower, but more precise... Here, it's may about quality vs speed.
 
** 0 : Fastest, tfm only
 
** 0 : Fastest, tfm only
** 1 : Better (uses Tdeint to deinterlace)
+
** 1 : Better (uses tfm + ediandnn to deinterlace)
** 2 : Even better (Tdeint nnedi2 for interpolation)
+
** 2 : Even better (tfm + Tdeint + ediandnn for interpolation)
** 3 : Optimal (Tdeint nned2i motion mask) (default)
+
** 3 : Optimal (tfm + Tdeint + ediandnn + motion mask) (default)
 +
** 4 : same as 3 but no blend
 +
** 5 : tfm + yadifmod + ediandnn
 +
** 6 : tfm + Tdeint + motion mask
 +
** 7 : use extbobf\extbob with SelectEven to back to original fps (no blend)
 +
** 8 : for already half extbobf\extbob fps
 
<var>omode</var> : Determines the output framerate
 
<var>omode</var> : Determines the output framerate
 
** 1 : Converts the 30p sections to 24p by blending frames together to maintain a Constant Frame Rate.
 
** 1 : Converts the 30p sections to 24p by blending frames together to maintain a Constant Frame Rate.
Line 270: Line 288:
 
== IV) Revisions ==
 
== IV) Revisions ==
 
<small>
 
<small>
<small>2.00 Released 2010-01-07 by thetoof</small>
+
v2.20 2017-02-09
</small>
+
** Add yadifmod2 and other things for yadifmod, make the cache more for mode22 and chrfix.
 +
** Add TMM2.
 +
2016-10-14
 +
** Update chroma_rep/chroma_rep2 to http://forum.doom9.org/showthread.php?p=1268074&highlight=chroma_rep#post1268074 (this not work without some edit I did in 2014), chrfix now will accept float as thr, add mChroma/chroma tfm.
 +
** ediext clip now can be used instead of ediandnn, add prefiltered_i to use it instead of bobpresmooth.
 +
2015-10-28
 +
** Add bbob4_params and cbob4_params to use more settings for QTGMC, add precision=9 to use bbob (maybe you need it with bbob=4 to use QTGMC with TFM).
 +
** Add ediandnn=4 to use QTGMC in yadifmod in yadifrepwithtdeint , others.
 +
** Make precision=6 TDeint + motion mask , add b/c bob 6 TDeint + motion mask.
 +
** chrfix now work with YUY2 in avs 2.6.
 +
** yadifrepwithtdeint now repwithtdeint and work with bbob 3 and 4 and precision 5.
 +
** Add crepwithtdeint for cbob 3 and 4.
 +
** Tweak autoAssuf.
 +
** Add tdeint sharp bool and type int to set interpolation for c/repwithtdeint and b/cbob precision 6.
 +
2015-10-10
 +
** Tweak autoAssuf in mode=1 with another method, others modifications.
 +
** Add tfm micmatching for it important to set it to 0 (zero) in many DVD 20XX anime (maybe other source need that too).
 +
** Add ediandnn to chose between nnedi3 if set to 1 or eedi3 if set to 2 or eedi3+nnedi3 if set to 3, others modifications.
 +
** Add yadifrepwithtdeint to use yadifmod with less Artifacts.
 +
** Add o3025cfr to out 25 in PAL and 30 in NTSC, and it useful to avoid blended with omode=1.
 +
** palf and o3025cfr more tweak, now palf work in pal only and in mode 1 and 3 will out 24.
 +
** Fix nnedi3_rpow2 and make credconv accept external clip for credits.
 +
** Workaround for RgTools Repair in yadifrepwithtdeint.
 +
** Add bobpresmooth for more stability.
 +
2015-5-07
 +
** Add autoAssuf to auto set field to match from in tfm to help with noisy old telecined source.
 +
** Add tfm pp and metric.
 +
2015-5-02
 +
** Make precision=0 use pp=0 in tfm for speed and quality too.
 +
** Add precision=4 same as precision=3 but no blend.
 +
** Add precision=5 to use yadifmod (useful for very old anime).
 +
** Add precision=6 to use extbobf\extbob with ConvertFPS to back to original fps.
 +
** Add precision=7 to use extbobf\extbob with SelectEven to back to original fps (no blend).
 +
** Add precision=8 for already half bob fps.
 +
2015-4-15
 +
** Add extbobf string to use external bob function, old external bob clip (extbob) still exist, and if you use both the old extbob will win.
 +
2015-3-29
 +
** Add TFM (mode, cthresh, blockx, blocky, MI) and some fix.
 +
2014-3-31
 +
** Add real30p bool to not use daa with 30p, and some fix for PAL cases and other things.
 +
2014-3-28
 +
** Some edit in mode22.
 +
2014-3-23
 +
** Add nvfr bool for VFR noisy sources, small change in relationship between ifade and killcomb.
 +
2014-3-19
 +
** Add tcfv1 bool to made TC file v1 and make it true by default.
 +
2014-3-18
 +
** Add palf bool for no decimate in mode 1 and make fps 24 instead of 25 for mode 2 in PAL source, for sources that transferred from film directly to PAL.
 +
2.00 Released 2010-01-07 by thetoof
 
** v2 because of the syntax changes
 
** v2 because of the syntax changes
 
** Compatibility with MVtools2
 
** Compatibility with MVtools2
Line 287: Line 353:
 
** More accurate external pelclip with nnedi2 for optimal motion vectors calculation
 
** More accurate external pelclip with nnedi2 for optimal motion vectors calculation
 
** Rewriting of the function from scratch to prevent memory waste and other issues (I had patched with a few tricks here and there which made it harder to read. It's almost all gone now)
 
** Rewriting of the function from scratch to prevent memory waste and other issues (I had patched with a few tricks here and there which made it harder to read. It's almost all gone now)
** Maybe a few other things I'll add when I remember what I changed in the last year or so ;)<small>
+
** Maybe a few other things I'll add when I remember what I changed in the last year or so ;)
 
1.06 Released 2008-10-08 by thetoof
 
1.06 Released 2008-10-08 by thetoof
 
** Fixed bug when using mode=6 with the checks
 
** Fixed bug when using mode=6 with the checks
Line 350: Line 416:
 
1.00 Released 2008-06-01 by thetoof
 
1.00 Released 2008-06-01 by thetoof
 
** Initial release of the function. </small>
 
** Initial release of the function. </small>
== V) Download ==
 
  
=== [http://www.mediafire.com/download.php?kjjlukmmdzj Download AnimeIVTC 1.6 &amp; all necessary plugins (7z/2.48 MB)] ===
+
== V) External Links ==
  
=== [http://www.mediafire.com/download/go4earhv7ju3btc/AnimeIVTC+Requeriments+v2.7z Download AnimeIVTC 2.0 &amp; all necessary plugins (7z/1.65 MB)] ===
+
* [http://www.mediafire.com/download/flq1s9nobrh81w7/AnimeIVTC_en_espa%C3%B1ol_v2.00.pdf AnimeIVTC_en_español_v2.00.pdf] by Overdrive80
  
 
[[Category:External filters]]
 
[[Category:External filters]]
 +
[[Category:IVTC]]
 +
[[Category:Decimation]]

Latest revision as of 11:01, 24 January 2024

Abstract
Author thetoof, real.finder
Version 2.20
Download Doom9 Thread (original) Doom9 Thread (mod)
Category IVTC & Decimation
License CreativeCommons BY-SA 3.0
Discussion

Contents

[edit] Requirements

Put all the .dll/.avsi in the "plugins" folder of AviSynth. Latest version of the following plugins is recommended.

* required for mod ver..

[edit] I) About anime telecining

  1. Particularities of anime:

While a film is shot at 24 frames per second (fps), anime is animated at 24fps so there is not necessarily motion on every frame. When there is not a lot of movement, it can be displayed at lower framerates like 8 or 12 fps with duplicate(s) of every frame to maintain a constant framerate of 24fps. To create the illusion of faster movement, different parts of the image can move at different framerates. In this situation, the image is divided into 2 parts and there are many possible combinations of "intra-frame variable framerate". This is not constant throughout the episode/movie since it changes depending on the amount of motion to be displayed.

CG animation at 30 fps is sometimes used in anime, so you can also have sequences with movement on every frame without any interlacing nor blends. The credits can be truly interlaced to make them run faster without being juddery and unreadable, thus leaving more room for the show. The credits can also be at the full progressive framerate on top of the telecined background.

  1. Basic concepts:

Soft telecine: the stream is encoded at 24 fps and the pulldown is applied during playback.

Hard telecine: your source was telecined before being encoded on the DVD (or before airing).

Double hard telecine: your source has at least one of the "intra-frame variable framerate" situations and the telecining was applied separately on each part of the frame, so the pattern is not constant and many frames are interlaced.

Field blended norm-conversion: Instead of going back to 24fps (film rate), the video streams are directly converted from NTSC (29.97fps) to PAL (25fps) or vice versa, creating ugly fieldblending (looks like DHT when inspecting a frame).

Hybrid: mix of 24t (24 fps displayed at 30 through telecining) and 30p (progressive movement on every frame)

Truly interlaced: each frame contains half the information of two frames, which means that you can bob it to 60p and see movement on every single frame, without any interlacing or blending.

Progressive: No interlacing whatsoever at the full framerate.

3:2 pattern: This pattern repeats itself from the very beginning to the very end of your clip: 3 progressive frames followed by 2 interlaced ones.

VFR - Variable Frame Rate: The sections of the clip run at different framerates, thus allowing to have less frames for the same movement. The duplicates are removed and played during the same amount of time as if there was the original amount of frames.

Lossless rendering pass: Save the file as uncompressed YV12 or Lagarith to apply the script only once and make subsequent filtering/encoding faster. It takes a lot of disk space: around 5GB for a 22 minutes clip @ 23.976fps with Lagarith and 20GB with uncompressed YV12.


  1. Examples:

Double Hard Telecine: At first, your source may look like a typical Hard Telecined one, but after a more thorough inspection, you'll see that it's actually a DHT one: same source, different high motion scene.

Interlaced on top of telecined (can be hard or double hard): In this case, it was a hard telecined source. Image

Obviously, since there's no pattern in DHT and interlacing on every frame with pure interlaced material, regular IVTC will output blends and jerkiness.

Apply TComb before AnimeIVTC if you need to correct dotcrawl.

It is NOT* recommended to use animeivtc with multithreading and/or calling it multiple times in a script. If you want to multithread it, see the examples example scripts below.

* can be done in mention cases here.

[edit] II) Function descriptions

AnimeIVTC (clip i, int "mode", int "aa", int "precision", int "killcomb", int "cache", bool "ifade", float "sfthr"*, bool "sfshow"* , bool "chrfix" , bool "blend" , bool "normconv" , int "pattern" , int "pass", bool "rendering" , int "bbob", int "cbob", string "edimode", int "degrain", int "omode" , int "cthresh"* , int "blockx"* , int "blocky"* , int "MI"* , int "tfmm"* , int "pp"* , int "metric"* , int "micmatching"* , int "i1", int "i2", int "e1", int "e2", int "e3", int "p1", int "p2" , bool "dchr"* , bool "palf"* , bool "tcfv1"* , bool "nvfr"* , bool "real30p"* , bool "autoAssuf"* , int "ediandnn"* , bool "o3025cfr"* , int "overlap", int "pel", int "search", bool "nnedi3pel"** , string "credconv" , bool "mode22"* , clip "ediext"* , string "bob4p"* , clip "extbob"* , string "extbobf"* , bool "repwithtdeint"* , float "dark", int "thin", int "sharp", int "smooth", bool "stabilize", int "tradius", int "aapel", int "aaov", int "aablk", string "aatype")

* in mod ver. only.
** nnedi2pel in original ver..

[edit] General parameters

mode : Required parameter. Defines the function's behavior

    • 1 : Hard telecined
    • 2 : Field blended
    • 3 : Double hard telecine
    • 4 : Hybrid

chrfix : Use to correct chroma swap between fields (to find out, apply bob() on your clip and examine the frames. If at some point the chroma of a frame is in the other and vice-versa, the issue is present).

    • True
    • False (default)

ifade : Detects and corrects interlaced fade-ins. Use for mode=1 or 4 since the clip is bobbed in mode=2 and 3.

    • True
    • False (default for speed concerns, but enabling it can be safer)

ediandnn : to chose method. it's almost only about quality vs speed.

    • 1 : nnedi3 (default)
    • 2 : eedi3
    • 3 : eedi3+nnedi3

cache : Sets amount of frames to cache for all functions using scriptclip to prevent seeking issues frame order mess-up with temporal filters. Using too much will result in crashing, so use less if you get memory issues.

    • 0 to inf. (default=10)

killcomb : Removes any residual combing. Use for mode=1 or 4 since the clip is bobbed in mode=2 and 3.

    • 0 : No combing removal (default)
    • 1 : Combing removal with vinverse()
    • 2 : Slower, but more aggressive combing removal by using mcbob's method
    • 3 : Even slower, but better detail preservation and sharpness. Same as aa=3 [daa()]

aa : Antialiasing. None is necessarily better than the others, but one is more adapted to your needs. [Images/aliased.jpg without][Images/anti-aliasing.jpg with]

    • -1: Compare by interleaving the different aa options
    • 0 : No aa
    • 1 : EEDI2() based aa [can be called externally as ediaa()]
    • 2 : Average of a spatial interpolations of each fields contra-sharpening [can be called externally as daa()]
    • 3 : Edge targeted Sangnom() aa leaving the rest of the frame untouched - watch out for detail loss... if you can spare some additionnal processing time, take a look at aa=4 [can be called externally as maa()]
    • 4 : Line darkening, warp sharpening, edge targeted aa, limited sharpening and temporal stabilizing [can be called externally as SharpAAMCmod()]

The following options are meant for aa=4 [SharpAAMCmod()] aatype : Select the filter used for aa

    • "Sangnom" (default)
    • "EEDI2" (slower, but sometimes has better detail preservation than Sangnom)

dark : Line darkening strength by using Toon

    • 0 to 1 (default=0.2)

thin : Higher = thinner lines by using warpsharp

    • default = 10

sharp : Post-sharpening strength of LSFmod

    • 0 to inf. (default = 150)

smooth : Post-softening strength of LSFmod

    • 0 to 100 (default = 100)
    • -1 = The function will (try to) autocalculate a good value

stabilize : Edge stabilizing through motion compensation with MDegrain's temporal averaging - use if the edges are unstable (trembling, flickering...) or as a edge-directed smart soothe().

    • True
    • False (default)

tradius : Temporal radius (# of frames*2 1) of the stabilization.

    • 0 to 3 (default=2)

aapel : Supersampling factor for motion vector calculations when using stabilize=true. Higner = better, but slower

    • 1, 2 or 4 (default=1)

aablk : Size of the blocks for motion vector calculations when using stabilize=true. Larger blocks are less sensitive to noise, are faster, but also less accurate.

    • 4, 8 or 16 (default=8 for SD and 16 for HD)

aaov : Overlap of the blocks for motion vector calculation when using stabilize=true. Higner = better, but slower

    • Must be even and up to half aablk (default=4 for SD and 8 for HD)

[edit] Interlaced or progressive credits

i1/i2/p1/p2/e1/e2/e3 : Give the frame numbers to the function so that each section is processed correctly. Use your source's frame numbers. You do not have to specify all of them. Example - a bit of the telecined episode interlaced opening credits episode progressive ending credits next episode preview. Use e1=w,i1=x,e2=y,p1=z,e3=a.

    • i1 Last frame of the 1st interlaced section of the clip
    • i2 Last frame of the 2nd interlaced section of the clip
    • p1 Last frame of the 1st progressive section of the clip
    • p2 Last frame of the 2nd progressive section of the clip
    • e1 Last frame of the 1st telecined/double hard telecined/field blended/hybrid section of the clip
    • e2 Last frame of the 2nd telecined/double hard telecined/field blended/hybrid section of the clip
    • e3 Last frame of the 3rd telecined/double hard telecined/field blended/hybrid section of the clip

omode : Determines the output framerate

    • 1 : Converts the credits to the framerate of the episode to maintain a Constant Frame Rate. Mandatory for norm conversions.
    • 2 : Credits are maintained at 29.97 fps (half their full temporal resolution) to create a Variable Frame Rate clip. Intended for mkv files.

credconv : Determines how the credits will be converted for omode=1''''

    • "mocomp" : Use motion-compensation. Use when you have low motion backgrounds to get a blend free and stable clip.
    • "blend" : Blend frames together to reduce framerate (ugly and fast, but can lead to less disturbing artifacts when you have a high motion background)'
    • "Drop"* : Drop frames to reduce framerate creds into 24t (ugly and fast, will lead to stuttery motion)'
* in mod ver. only.

overlap : Overlap of the blocks for motion vector calculation. Higner = better, but slower. Use for "mocomp".

    • 0, 2 or 4 for SD (default=4)
    • 0, 2, 4, 6 or 8 for HD (default=8)

pel : Supersampling factor for motion vector calculation. Higner = better, but slower. Use for "mocomp".

    • 1, 2 or 4 (default=2)

search : Have fun testing. 4 and 5 are usually better than 2 for roughly the same speed. Use for "mocomp".

    • 2 (Logarithmic search, also named Diamond Search)
    • 3 (Exhaustive search) - slowest, but best results SAD-wise (basically the mo-comp is done by calculating the sum of absolute differences between blocks to determine if it is the same element moving or a different one) Attempt at lame joke: no, we're not talking about this here... SAD
    • 4 (Hexagon search - similar to x264) (default)
    • 5 (Uneven Multi Hexagon search - similar to x264)

nnedi3pel : Use nnEDI3 for interpolation. True = usually better. Use for "mocomp".

    • true
    • false (default)

pass : Creating a VFR clip requires two passes. The file you must use for your final encode/subsequent filtering must be the one generated by pass=2. Use for omode=2.

    • 1 : Open with vdub, file-run video analysis pass, wait until the end, close vdub OR do a rendering pass (saving the filtered clip in a lossless (i.e. with Lagarith or HuffYUV) avi file for further use to avoid computing the same thing twice - once for analysis and another to decimate) (default)
    • 2 : Reload the same script with pass=2. Use the new avi file as source if you did a rendering pass. After all subsequent filtering, encode. Then, take the "timecode.txt" file and add it as the timecode for the video stream in mkvmerge.

rendering : If you did a rendering pass , this will only be VFR decimation based on the files written by pass=1. Use for omode=2 and pass=2.

    • True (you did a rendering pass and only want to decimate in pass=2)
    • False (you did not create any intermediate file) (default)

cbob : Higher = slower, but more precise... Here, it's almost about quality vs speed. Use for interlaced credits.

    • 0 : Fastest, TDeint alone
    • 1 : Better (TDeint + ediandnn for interpolation)
    • 2 : Even better (TDeint + ediandnn + motion mask)
    • 3 : Alternate (Yadifmod + ediandnn for interpolation)
    • 4 : Most stable bobber around - QTGMC. Slow. (default)

edimode : Tells which filter to use for spatial interpolation with cbob=4. The "best" one depends on your source. Use for interlaced credits.

    • see EdiMode in QTGMC
    • edimode = ediandnn by default in mod ver. unless you set EdiMode

degrain : Temporal radius (# of frames to use * 2 1) for the final degraining step with cbob=4. Higher = slower more noise removal more stable. Use for interlaced credits.

    • 1 (default)
    • 2
    • 3

[edit] Hard telecine (mode=1)

precision : Higher = slower, but more precise... Here, it's may about quality vs speed.

    • 0 : Fastest, tfm only
    • 1 : Better (uses tfm + ediandnn to deinterlace)
    • 2 : Even better (tfm + Tdeint + ediandnn for interpolation)
    • 3 : Optimal (tfm + Tdeint + ediandnn + motion mask) (default)
    • 4 : same as 3 but no blend
    • 5 : tfm + yadifmod + ediandnn
    • 6 : tfm + Tdeint + motion mask
    • 7 : use extbobf\extbob with SelectEven to back to original fps (no blend)
    • 8 : for already half extbobf\extbob fps

blend : If you have a case of blend telecine, or blend-deinterlacing of telecined footage. 3:2 pattern - 3 clear, 2 blended. Weight must be 50/50.

    • True
    • False (default)

[edit] Field blended (mode=2)

bbob : Higher = slower, but more precise... Here, it's almost only about quality vs speed. Mo-comp is not recommended for blended material, but I left in case you have stability issues with the other bobbers.

    • 0 : Fastest, TDeint alone
    • 1 : Better (TDeint + nnedi3 for interpolation)
    • 2 : Even better (TDeint + nnedi3 motion mask)
    • 3 : Alternate (Yadifmod + nnedi3 for interpolation) (default)
    • 4 : Most stable bobber around - QTGMC. Slow.

edimode : Tells which filter to use for spatial interpolation with cbob=4. The "best" one depends on your source.

degrain : Temporal radius (# of frames to use * 2 1) for the final degraining step with cbob=4. Higher = slower more noise removal more stable.

    • 1 (default)
    • 2
    • 3

normconv : Set to true if your source was blend-converted from PAL to NTSC or vice-versa.

    • True : Change framerate to 25fps if your source is NTSC or to 23.976fps if it's PAL
    • False : Keep 25fps if source is PAL and 23.976 if source is NTSC (default)

[edit] Double hard telecine (mode=3)

cbob : Higher = slower, but more precise... Here, it's almost about quality vs speed. Use for interlaced credits.

    • 0 : Fastest, TDeint alone
    • 1 : Better (TDeint + ediandnn for interpolation)
    • 2 : Even better (TDeint + ediandnn + motion mask)
    • 3 : Alternate (Yadifmod + ediandnn for interpolation)
    • 4 : Most stable bobber around - QTGMC. Slow. (default)

edimode : Tells which filter to use for spatial interpolation with cbob=4. The "best" one depends on your source. Use for interlaced credits.

    • see EdiMode in QTGMC
    • edimode = ediandnn by default in mod ver.

degrain : Temporal radius (# of frames to use * 2 1) for the final degraining step with cbob=4. Higher = slower more noise removal more stable.

    • 1 (default)
    • 2
    • 3

pattern : Tells the function how to decimate to 23.976 fps.

    • 0 Safest. Uses TDecimate. (default)
    • -1 Compare 1 to 5.
    • 1 to 5 If your source has a fixed pattern, finding it with -1 and using the appropriate one will be faster and visually better, but as soon as there's a change, everything will be a mess. Be careful.

[edit] Hybrid (mode=4)

precision : Higher = slower, but more precise... Here, it's may about quality vs speed.

    • 0 : Fastest, tfm only
    • 1 : Better (uses tfm + ediandnn to deinterlace)
    • 2 : Even better (tfm + Tdeint + ediandnn for interpolation)
    • 3 : Optimal (tfm + Tdeint + ediandnn + motion mask) (default)
    • 4 : same as 3 but no blend
    • 5 : tfm + yadifmod + ediandnn
    • 6 : tfm + Tdeint + motion mask
    • 7 : use extbobf\extbob with SelectEven to back to original fps (no blend)
    • 8 : for already half extbobf\extbob fps

omode : Determines the output framerate

    • 1 : Converts the 30p sections to 24p by blending frames together to maintain a Constant Frame Rate.
    • 2 : 30p sections are maintained at 29.97 fps to create a Variable Frame Rate clip. Intended for mkv files.

pass : Creating a VFR clip requires two passes. Rendering passes are only recommended when you have interlaced or progressive credits or when ifade=true. You will not see the results of killcomb and aa in pass=1. The file you must use for your final encode/subsequent filtering must be the one generated by pass=2. Use for omode=2.

    • 1 : Open with vdub, file-run video analysis pass, wait until the end, close vdub OR do a rendering pass (saving the filtered clip in a lossless (i.e. with Lagarith or HuffYUV) avi file for further use to avoid computing the same thing twice - once for analysis and another to decimate) (default)
    • 2 : Reload the same script with pass=2. Use the new avi file as source if you did a rendering pass. After all subsequent filtering, encode. Then, take the "timecode.txt" file and add it as the timecode for the video stream in mkvmerge.

rendering : If you did a rendering pass , this will only be VFR decimation based on the files written by pass=1. Use for omode=2 and pass=2.

    • True (you did a rendering pass and only want to decimate in pass=2)
    • False (you did not create any intermediate file) (default)

[edit] III) Examples

AnimeIVTC is quite easy to use... if you have questions after reading this manual, please post in the AnimeIVTC thread. Here is a way to multithread it, but you can use the concept in many different ways (loading from different hard drives outputting to different hard drives and so forth). I only used 3 threads because more was too much for the source HDD, even when writing to 4 different ones. Do NOT use for VFR encodes, where analysis and decimation must be done in one shot.

 xxxsource("file.ext")
 threads = 3
 s=AnimeIVTC([settings])
 a=s.trim(0,int(framecount(s)/threads))
 b=s.trim(int(framecount(s)/threads) 1,int(framecount(s)/threads-1))
 c=s.trim(int(framecount(s)/threads-1) 1,0)
 a #load this script in vdub and save as rendering1, then change a to b and save as rendering2, ideally on a different HDD... etc etc
 
 #then, for further processing or encoding, load your different files and splice them, such as:
 #a=avisource(rendering1 file with path)
 #b=avisource(rendering2 file with path)
 a b .....
 


[edit] IV) Revisions

v2.20 2017-02-09

    • Add yadifmod2 and other things for yadifmod, make the cache more for mode22 and chrfix.
    • Add TMM2.

2016-10-14

2015-10-28

    • Add bbob4_params and cbob4_params to use more settings for QTGMC, add precision=9 to use bbob (maybe you need it with bbob=4 to use QTGMC with TFM).
    • Add ediandnn=4 to use QTGMC in yadifmod in yadifrepwithtdeint , others.
    • Make precision=6 TDeint + motion mask , add b/c bob 6 TDeint + motion mask.
    • chrfix now work with YUY2 in avs 2.6.
    • yadifrepwithtdeint now repwithtdeint and work with bbob 3 and 4 and precision 5.
    • Add crepwithtdeint for cbob 3 and 4.
    • Tweak autoAssuf.
    • Add tdeint sharp bool and type int to set interpolation for c/repwithtdeint and b/cbob precision 6.

2015-10-10

    • Tweak autoAssuf in mode=1 with another method, others modifications.
    • Add tfm micmatching for it important to set it to 0 (zero) in many DVD 20XX anime (maybe other source need that too).
    • Add ediandnn to chose between nnedi3 if set to 1 or eedi3 if set to 2 or eedi3+nnedi3 if set to 3, others modifications.
    • Add yadifrepwithtdeint to use yadifmod with less Artifacts.
    • Add o3025cfr to out 25 in PAL and 30 in NTSC, and it useful to avoid blended with omode=1.
    • palf and o3025cfr more tweak, now palf work in pal only and in mode 1 and 3 will out 24.
    • Fix nnedi3_rpow2 and make credconv accept external clip for credits.
    • Workaround for RgTools Repair in yadifrepwithtdeint.
    • Add bobpresmooth for more stability.

2015-5-07

    • Add autoAssuf to auto set field to match from in tfm to help with noisy old telecined source.
    • Add tfm pp and metric.

2015-5-02

    • Make precision=0 use pp=0 in tfm for speed and quality too.
    • Add precision=4 same as precision=3 but no blend.
    • Add precision=5 to use yadifmod (useful for very old anime).
    • Add precision=6 to use extbobf\extbob with ConvertFPS to back to original fps.
    • Add precision=7 to use extbobf\extbob with SelectEven to back to original fps (no blend).
    • Add precision=8 for already half bob fps.

2015-4-15

    • Add extbobf string to use external bob function, old external bob clip (extbob) still exist, and if you use both the old extbob will win.

2015-3-29

    • Add TFM (mode, cthresh, blockx, blocky, MI) and some fix.

2014-3-31

    • Add real30p bool to not use daa with 30p, and some fix for PAL cases and other things.

2014-3-28

    • Some edit in mode22.

2014-3-23

    • Add nvfr bool for VFR noisy sources, small change in relationship between ifade and killcomb.

2014-3-19

    • Add tcfv1 bool to made TC file v1 and make it true by default.

2014-3-18

    • Add palf bool for no decimate in mode 1 and make fps 24 instead of 25 for mode 2 in PAL source, for sources that transferred from film directly to PAL.

2.00 Released 2010-01-07 by thetoof

    • v2 because of the syntax changes
    • Compatibility with MVtools2
    • Compatibility with srestore for field blended
    • New (and better) decimation for dht
    • The user will determine the end frames of every sections in case of progressive/interlaced credits and the rest will all be done internally (no need to switch between the checks since it was a pain)
    • Handling of the blend-decimation of hybrid sections in omode=1
    • More aa and killcomb options
    • New parameter to fix chroma swap between fields
    • New parameter to fix blend telecine
    • New parameter to fix interlaced fade-ins
    • The modes are "re-thought" : mode=1 (hard telecine) mode=2 (field blended) mode=3 (double hard telecine) mode=4 (hybrid) At the moment you define a frame # for interlaced or progressive credits, the function adapts itself
    • Memory usage decreased for a few modes
    • No need to specify the region of your source (done internally) Single parameter added (bool "normconv") to go from one to another
    • More accurate external pelclip with nnedi2 for optimal motion vectors calculation
    • Rewriting of the function from scratch to prevent memory waste and other issues (I had patched with a few tricks here and there which made it harder to read. It's almost all gone now)
    • Maybe a few other things I'll add when I remember what I changed in the last year or so ;)

1.06 Released 2008-10-08 by thetoof

    • Fixed bug when using mode=6 with the checks
    • Faster aa=4 when settings=0
    • Fixed mt=false issues
    • Fixed 1/2-pel registration error between the original and antialiased clip, due to EEDI2 for aa=1
    • Fixed bug where edge masking was disabled with mc=false
    • Added aatype argument to aa=4 (use sangnom or eedi2 for anti-aliasing)
    • aapel's default is now 1 (faster)
    • re-added idx for aa=4 (faster)
    • Removed useless messages in the checks
    • Changed AssumeFPS with ChangeFPS for region conversions
    • Added RequestLinear call after cdeblend to prevent false "hey, it's not deblending well" assumptions when seeking
    • Added AvsRecursion & aWarpsharp to the requirements archive
    • Added corrected TempGaussMC_beta1mod
    • Updated the docs to include the info on how to combine the lossless rendering pass and the analysis pass with vfr decimation

1.05 Released 2008-09-18 by thetoof

    • Added string "edimode"
    • Added int "degrain"
    • Fixed typos in the docs
    • Removed ineffective error message about the external audio file
    • Added the plugins needed for aa=4 bob/precision=3 in the "requirements" archive & list

1.04 Released 2008-09-17 by thetoof

    • Fixed check=3 and check=10 to be compatible with the new add-ons
    • Corrected typo in the error message asking to specify the omode
    • Disabled aa comparison when using one of the check=x
    • nnedipel's default is now false
    • Changed the order of the filters so that all the stream (not only the ivtced sections) can be processed with killcomb and aa
    • Fixed syntax errors with mode=7

1.03 Released 2008-09-16 by thetoof

    • Fixed bug when splicing clips at different framerates
    • Fixed bug where frames were lost to decimation in mode=6
    • Fixed bug causing the "tfm.txt" file to be overwritten every time the script was loaded
    • Fixed idx values in the MVAnalyse and MVFlowFPS calls
    • Use of 2 different pelclips if prefiltered clip is used before motion vectors calculation to prevent b0rked output
    • Removed omode=3 for optimal vfr decimation
    • Less memory usage by using a named clip for all the blankclips
    • Changed syntax to be compatible with the newest version of mrestore
    • Faster blends and duplicates detection for decimate=5 by using dclip=i.bob().reduceflicker(strength=1) in mrestore
    • Replaced nnediaa with ediaa for better aliasing removal (aa=1)
    • Added functions in the script to fix "There is no function named iseven/isodd" bug
    • Added "MT" parameter to use with the multithreaded version of MVTools
    • Added support for fieldblended PAL & norm-conversion restoration
    • Added support for 30p credits on top of telecined background
    • New check function to get the frame numbers of the 30p sections (check=0)
    • New check function to see the prefiltered clip of the 30p sections (check=9)
    • Argument "pureint" changed to "mix"
    • 15 new "mix" modes for all the possibilities for 30p and 30i credits
    • Replaced decimate=0 with pass=0
    • New AA function by Mystery Keeper (aa=4)
    • Re-added the possibility to use killcomb=0, but default remains 1
    • Changed "precision"'s default to 3 for all modes
    • Cosmetic changes
    • Included TempGaussMC_beta1mod in the requirements package to make bob=3 work with the new "MT" parameter
    • Docs update formatting improvement, reformulation here and there...

1.02 Released 2008-06-19 by thetoof

    • No more "HD" setting (done automatically)
    • Vinverse can't be removed from the filter chain, resulting in a speed improvement (killcomb=0 doesn't exist anymore)
    • Decimate=0 can be used with any mode as a preparation to mode=7 (run a lossless rendering pass of decimate=0 and then load the resulting file with mode=7) for compressibility improvement through VFR

1.01 Released 2008-06-12 by thetoof

    • Correction of syntax errors for mode=7

1.00 Released 2008-06-01 by thetoof

    • Initial release of the function.

[edit] V) External Links

Personal tools