VideoHelp Forum




+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 34
  1. Hi, I am in need of some help trying to fix the problems in the sample RAW video and images uploaded here.

    I used PgcDemux to demux one of the video streams to a .m2v file which is 2 minutes 48 seconds long.

    The images (.PNG) where taken from the .mkv file I made from MeGUI using the script I made below. The .mkv file was played in MPC-HC player so the default filters in MPC-HC player would be adjusting the image quality slightly.

    The problems I believe that are present are: (If any others please point them out!)
    • Dot Crawl
    • Rainbows
    • Aliasing
    • Also maybe I didn't select the correct type of TIVTC filter

    Here is the script I used for the final result, the images above show the results:

    MeGUI Settings:

    • Filters -> Deinterlacing -> [✓] Source is Anime (not automatically detected by Analysis)
    • Encoding Mode: Targeting quality
    • Quality: 18.0
    • Preset: Medium
    • Tuning: None
    • AVC Profile: High Profile
    • AVC Level: Unrestricted/Autoguess (the final .mkv chose Level 3.0)
    • Target Playback Device: Default

    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\DGDecode.dll")
    DGDecode_mpeg2source("J:\New folder (2)\001.d2v", cpu=4)
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TComb.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TIVTC.dll")
    Import("C:\Program Files (x86)\AviSynth 2.5\plugins\TemporalDegrain.avs")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\FFT3DFilter.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\hqdn3d.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\masktools2.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools2.dll")
    Import("C:\Program Files (x86)\AviSynth 2.5\plugins\Vmtoon-v0.74.avsi")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\RemoveGrain.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Repair.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\warpsharp.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\aWarpSharp.dll")

    TComb(mode=2, fthreshl=7, fthreshc=7, othreshl=8, othreshc=8, map=false, scthresh=12.0)

    TFM(pp=5)
    TDecimate(mode=1)

    TemporalDegrain()
    vmToon()
    aWarpSharp2(thresh=128, blur=2, type=0, depth=8, chroma=4)

    crop(4, 0, -6, 0)
    Spline36Resize(640,480)
    I noticed someone ask here about the same anime but he/she hasn't logged in since 2013 so no point in asking them.

    Also here is an example of the Original DVD (RAW) vs Remaster.

    Thanks for any help!
    Last edited by ss2012; 3rd Mar 2015 at 18:30.
    Quote Quote  
  2. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    For dot crawl I don't really think there is any way to deal with it completely, only lessen the effect.

    Code:
    # Use some denoiser (blur) or deflicker for prefiltering
    prefiltered = blur(1.0)
    super = MSuper(levels=1) # one level is enough for MCompensate
    superfilt = MSuper(prefiltered) # all levels for MAnalyse
    backward_vectors = MAnalyse(superfilt, isb = true)
    forward_vectors = MAnalyse(superfilt, isb = false)
    # use not-prefiltered (super) clip for motion compensation
    forward_compensation = MCompensate(super, forward_vectors)
    backward_compensation = MCompensate(super, backward_vectors)
    # create interleaved 3 frames sequences
    interleave(forward_compensation, last, backward_compensation)
    
    Checkmate(tthr2=0) # place your preferred temporal (spatial-temporal) denoiser here
    #daa()
    selectevery(3,1) # return filtered central (not-compensated) frames only
    This is from an example that I took from here: http://avisynth.org.ru/mvtools/mvtools2.html
    but it seems pretty effective to me.

    seems to work decently enough for me most of the time. uncomment out daa() if you need anti-aliasing.

    as for if you used the correct IVTC, this page is pretty informative: http://www.doom9.org/ivtc-tut.htm
    Quote Quote  
  3. Originally Posted by Akai-Shuichi View Post
    For dot crawl I don't really think there is any way to deal with it completely, only lessen the effect.

    Code:
    # Use some denoiser (blur) or deflicker for prefiltering
    prefiltered = blur(1.0)
    super = MSuper(levels=1) # one level is enough for MCompensate
    superfilt = MSuper(prefiltered) # all levels for MAnalyse
    backward_vectors = MAnalyse(superfilt, isb = true)
    forward_vectors = MAnalyse(superfilt, isb = false)
    # use not-prefiltered (super) clip for motion compensation
    forward_compensation = MCompensate(super, forward_vectors)
    backward_compensation = MCompensate(super, backward_vectors)
    # create interleaved 3 frames sequences
    interleave(forward_compensation, last, backward_compensation)
    
    Checkmate(tthr2=0) # place your preferred temporal (spatial-temporal) denoiser here
    #daa()
    selectevery(3,1) # return filtered central (not-compensated) frames only
    This is from an example that I took from here: http://avisynth.org.ru/mvtools/mvtools2.html
    but it seems pretty effective to me.

    seems to work decently enough for me most of the time. uncomment out daa() if you need anti-aliasing.

    as for if you used the correct IVTC, this page is pretty informative: http://www.doom9.org/ivtc-tut.htm
    Thanks for the reply!

    I didn't really understand the IVTC page after i read it

    I tried that code but it didn't help

    I read the topic you made What is this issue? and found that Vinverse was something i needed and allowed me to use TFM(pp=0) which made the image sharper so i don't have to use TFM(pp=5) which made it blurry and had to use aWarpSharp2 to make it sharper.

    But I am still having a problem with dot crawl and rainbow on moving scenes however it seems 'just okay' when the image is static.

    But when I include TemporalDegrain() it gets rid of the dot crawl which makes me think it isn't dot crawl :S but it also rubs out some lines... but i still have a lot of the rainbow problem...

    But when I don't have TemporalDegrain() and just use DGDecode_mpeg2source(cpu=4) and change it from 4-6 it also removes the dot crawl slightly.

    Here is a screenshot comparison with the script below and with TemporalDegrain() off


    My new script:

    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\DGDecode.dll")
    DGDecode_mpeg2source("J:\New folder (2)\001.d2v", cpu=6)
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TComb.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TIVTC.dll")
    Import("C:\Program Files (x86)\AviSynth 2.5\plugins\TemporalDegrain.avs")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\FFT3DFilter.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\hqdn3d.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\masktools2.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools2.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\RemoveGrain.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Repair.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\vinverse.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Toon-v1.1.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\aWarpSharp.dll")

    TComb(mode=2, fthreshL=4, fthreshC=5, othreshL=5, othreshC=6, map=false, scthresh=12.0)

    TFM(PP=0)
    TDecimate(mode=1)

    TemporalDegrain()
    Vinverse(sstr=2.7, amnt=255, uv=3, scl=0.25)
    Toon(strength=1.0)

    crop(4, 0, -6, 0)
    Spline36Resize(640,480)
    Last edited by ss2012; 4th Mar 2015 at 06:15.
    Quote Quote  
  4. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    I would try Checkmate or DeDot for dotcrawl also. Maybe someone more experienced could suggest something to you, but Dot Crawl is kind of a bitch to deal with.
    Last edited by Akai-Shuichi; 4th Mar 2015 at 07:56.
    Quote Quote  
  5. Checkmate() works best with tthr2>0. But you run the risk of creating temporal artifacts. Try CheckMate(thr=10, max=20, tthr2=0) while the video is still interlaced then IVTC. You should get pretty good reduction of dot crawl. Also try CheckMate(thr=10, max=20, tthr2=20). That should give even better reduction of dot crawl but may introduce some ghosting or other spotty artifacts.
    Quote Quote  
  6. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Try stacking DeDot() with checkmate too, and see if that helps.
    Quote Quote  
  7. I worked out an interesting approach to rainbow reduction using Checkmate(). Since Checkmate() only works on still parts of the picture this rainbow reduction only works on still parts of the picture:

    Code:
    function CheckmateDeRainbow(clip vid) # call with interlaced video, before IVTC
    {
        U = vid.UtoY().Checkmate(thr=0, max=1, tthr2=10) # handle U as Y
        V = vid.VtoY().Checkmate(thr=0, max=1, tthr2=10) # handle V as Y
        YtoUV(U, V, vid) # merge filterd U and V with original Y
    }
    Play around with the Checkmate paramters to fine tune.

    Call Checkmate() first to remove dot crawl, then CheckmateDeRainbow() to reduce rainbows.
    Last edited by jagabo; 4th Mar 2015 at 09:39.
    Quote Quote  
  8. By the way, also try ChubbyRain2() for rainbow reduction.
    Last edited by jagabo; 4th Mar 2015 at 10:34.
    Quote Quote  
  9. Hey, thanks for the help!

    In this image the image is shaking up and downwards.

    DeDot() did nothing

    Checkmate(thr=10, max=20, tthr2=0): (artifact in the red circle no matter what setting still stays, also rainbow on moving/still scences. Adding CheckmateDeRainbow() still the same)

    Checkmate(thr=10, max=20, tthr2=20) & CheckmateDeRainbow(): (rainbow on moving/still scenes)

    ChubbyRain2(th=0, radius=0, show=false, sft=0, interlaced=false): (Doesn't give the artifacts but the problem in the image attached below happens if interlaced isn't set to true. Still has the rainbow effect on moving/still scenes)

    ChubbyRain2(th=10, radius=10, show=false, sft=10, interlaced=true): (around the sailors collar, no matter what setting it won't go away:'()
    Last edited by ss2012; 5th Mar 2015 at 00:36.
    Quote Quote  
  10. Yes, dot crawl and rainbow removal are among the hardest artifacts to remove without causing other problems. I did stumble across something that removes the small amount of ghosting that Checkmate() sometimes causes (like in the second of your images). The only documentation I have for Checkmate() indicates thr should be set to "any nonnegative int". I noticed that smaller values of thr gave less ghosting. On a lark I tried a negative number. That got rid of that ghosting and only reduced the effectiveness of dot crawl removal by a tiny bit. But it also blurred the picture a bit. So I tried using an edge mask to protect large flat areas -- ie use a negative thr for large flat areas and a postitive thr near edges. Unfortunately, TFM().TDecimate() ended up choosing different frames with the different filtering methods. So I had to force TFM().TDecimate() to select the same frames for both paths. I did that by stacking the two video side by side, running TFM().TDecimate(), then separating them again. Finally, I built an edge mask from the thr=-15 video and Overlaid with the thr=10 version:

    Code:
    low = Checkmate(thr=-15, max=20, tthr2=0).CheckmateDeRainbow()
    high = Checkmate(thr=10, max=20, tthr2=0).CheckmateDeRainbow()
    StackHorizontal(low,high)
    TFM(mode=0,pp=0)
    TDecimate()
    low = Crop(0,0,width/2, height)
    high = Crop(width/2,0,width/2,height)
    edgemask = low.mt_edge(mode="laplace", thy2=5).mt_expand().mt_expand().Blur(1.0).Blur(1.0).GreyScale()
    Overlay(low, high, mask=edgemask)
    Playing around with the parameters might improve the technique a bit.

    Just Checkmate(), note the ghosting near the top center of the cape:
    Click image for larger version

Name:	p1.png
Views:	2299
Size:	276.1 KB
ID:	30588

    Dual Checkmate() with edge masking:
    Click image for larger version

Name:	p2.png
Views:	2508
Size:	306.6 KB
ID:	30589
    Quote Quote  
  11. With your settings i tried it on that scene and it removed it! but then i tried it on the bobing up and down scene and i get this:

    Code:
    low = Checkmate(thr=-15, max=20, tthr2=0).CheckmateDeRainbow()
    high = Checkmate(thr=10, max=20, tthr2=0).CheckmateDeRainbow()
    StackHorizontal(low,high)
    TFM(mode=0,pp=0)
    TDecimate()
    low = Crop(0,0,width/2, height)
    high = Crop(width/2,0,width/2,height)
    edgemask = low.mt_edge(mode="laplace", thy2=5).mt_expand().mt_expand().Blur(1.0).Blur(1.0).GreyScale()
    Overlay(low, high, mask=edgemask)




    Okay I tried DeRainbow(thresh=10, interlaced=false) and it removes the rainbows on moving/still scenes however it leaves bleeding not sure... if i go anything above thresh=10 it doesn't work on moving scenes.

    This is the bleeding thing im talking about look at his arms and legs:



    Last edited by ss2012; 4th Mar 2015 at 22:44.
    Quote Quote  
  12. Was that last example in the video you uploaded in the 1st post ? or the sailors ? or the shaking ?
    Quote Quote  
  13. Originally Posted by poisondeathray View Post
    Was that last example in the video you uploaded in the 1st post ? or the sailors ? or the shaking ?
    no it wasn't sorry the video on my dropbox is episode 5 but the one with bobbing is episode 1 i can upload that one to if you don't mind continuing to help? episodes 1-206 should all have the same problems.

    it will take me 30min to upload slow connection
    Last edited by ss2012; 4th Mar 2015 at 22:56.
    Quote Quote  
  14. Shaking is problematic for any temporal filter - was the "shaking" intended and part of the animation ?

    There are some special situations that no filter will take care of automatically, unless you 're willing to turn it to mush, or incur severe damage to things like color. Those situations you might have to manually address (for example use different filters or masks) , or at least treat differently than the rest. One example is at ~ 5:15 in the 1st clip, where the guy is grimacing, there are heavy rainbows on the side of his head/hair . That's really severe aliasing in the U, V channels (If you want to visualize it , utoy() or vtoy() ) . So you might use one set of "generic" settings for most of the episode(s) and use special settings on the parts that require additional attention . Another reason is you don't want to damage the other "good" parts, so ideally if you can get away with using "low" settings you should
    Quote Quote  
  15. Originally Posted by ss2012 View Post
    With your settings i tried it on that scene and it removed it! but then i tried it on the bobing up and down scene and i get this:
    Try removing the CheckmateDeRainbow() calls.


    Originally Posted by ss2012 View Post
    Okay I tried DeRainbow(thresh=10, interlaced=false) and it removes the rainbows on moving/still scenes however it leaves bleeding not sure... if i go anything above thresh=10 it doesn't work on moving scenes.
    I guess you're talking about the change of colors in the arms and legs. Without context (Did you run it on interlaced video? What did the adjacent frames look like? What was your entire script?), my guess is the arms and legs were moving and you have a blending of the color of the blue water and fleshtone appendages. Blending like that is a common problem with temporal filtering. Or maybe the colors got blended because you use interlace=false rather than interlace=true.
    Quote Quote  
  16. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Another thing to try is anti-aliasing filters. I sometimes notice that anti-aliasing filters reduce dotcrawl, probably the way they work with edges helps with dotcrawl also.
    Quote Quote  
  17. I uploaded episode 001 with the shaking scenes which is part of the anime in the first post link.

    Originally Posted by poisondeathray View Post
    There are some special situations that no filter will take care of automatically, unless you 're willing to turn it to mush, or incur severe damage to things like color. Those situations you might have to manually address (for example use different filters or masks) , or at least treat differently than the rest. One example is at ~ 5:15 in the 1st clip, where the guy is grimacing, there are heavy rainbows on the side of his head/hair . That's really severe aliasing in the U, V channels (If you want to visualize it , utoy() or vtoy() ) . So you might use one set of "generic" settings for most of the episode(s) and use special settings on the parts that require additional attention . Another reason is you don't want to damage the other "good" parts, so ideally if you can get away with using "low" settings you should
    i read that understood it but dont know how to d it... i've just started using avisynth. how do i manually address scenes? do you have any tutorials?

    Originally Posted by poisondeathray View Post
    Shaking is problematic for any temporal filter - was the "shaking" intended and part of the animation ?
    yeah it is part of the animation.

    Originally Posted by jagabo View Post
    Try removing the CheckmateDeRainbow() calls.
    yeah nothing

    Originally Posted by jagabo View Post
    I guess you're talking about the change of colors in the arms and legs. Without context (Did you run it on interlaced video? What did the adjacent frames look like? What was your entire script?), my guess is the arms and legs were moving and you have a blending of the color of the blue water and fleshtone appendages. Blending like that is a common problem with temporal filtering. Or maybe the colors got blended because you use interlace=false rather than interlace=true.
    Yeah the change in the colour of the legs but it also adds like a ghost effect with the colours on moving scenes. With interlaced set to true for derainbow it changed it dramatically and the whole video would start shaking.

    When I insert "TemporalDegrain()" I notice it removes a lot of the dotcrawl maybe its not removing dotcrawl its removing the noise? because i still notice some dotcrawl.

    Here is the script: (This one seems the best for rainbows on moving/still scenes but it changes the colours as shown in the above image with the hands and legs... was tested on 001)

    The following links are screenshot comparisons are from the intro scenes (i uploaded to the dropbox) with DeRainbow() off and on and the other settings below are as:
    (DeRainbow at thresh=10 removes rainbows on moving scenes but not really on still scenes. DeRainbow at thresh=70 removes that stuff in the comparison pictures but then rainbows on moving scenes are not removed.)

    Comparison 1
    Comparison 2

    Code:
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\DGDecode.dll")
    DGDecode_mpeg2source("J:\New folder (2)\001.d2v", info=3, cpu=6)
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TComb.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TIVTC.dll")
    Import("C:\Program Files (x86)\AviSynth 2.5\plugins\DeRainbow.avsi")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\MSharpen.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\MipSmooth.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\masktools2.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\vinverse.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Toon-v1.1.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\aWarpSharp.dll")
    Import("C:\Program Files (x86)\AviSynth 2.5\plugins\TemporalDegrain.avs")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\FFT3DFilter.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\hqdn3d.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools2.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\RemoveGrain.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Repair.dll")
    
    TComb(mode=0, fthreshL=4, othreshL=5)
    
    TFM(PP=0)
    TDecimate(mode=1)
    
    DeRainbow(thresh=10, interlaced=false)
    
    TemporalDegrain()
    Vinverse(sstr=2.7, amnt=255, uv=3, scl=0.25)
    Toon(strength=1)
    
    crop(4, 0, -6, 0)
    Spline36Resize(640,480)
    Originally Posted by Akai-Shuichi View Post
    Another thing to try is anti-aliasing filters. I sometimes notice that anti-aliasing filters reduce dotcrawl, probably the way they work with edges helps with dotcrawl also.
    Umm i'm not 100% sure what anti-aliasing is do you know any places which explain it good?
    Last edited by ss2012; 5th Mar 2015 at 02:22.
    Quote Quote  
  18. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Just google aliasing or anti-aliasing. There are many AA filters such as maa,daa, aaa,saa...
    Quote Quote  
  19. Understanding the nature of dot crawl and rainbows will make it clearer why some of these problems occur.

    Both artifacts are caused by incomplete separation of the chroma subcarriers (color components) from the luma (greyscale component) in a composite signal. With NTSC video you get dots and rainbows who's phase alternates between even and odd frames. If you zoom in and look very closely and step through frames you'll see the dots alternate between dark and bright with each frame. If you look at only even frames by using SelectEven() you'll still see the dots but they will be the same in every frame (in still parts of the picture) -- bright dot will be bright in each even frame, a dark dot will be dark in each even frame. (Note that your video is MPEG compressed so it has additional artifacts that may disturb this pattern a bit).

    Since the dot's alternate between bright and dark, one easy way to get rid of them is to blend pairs of frames together (temporal blending). You can do this with Merge(SelectEven(), SelectOdd()). That will blend (50:50 weighting) frame 0 with frame 1, frame 2 with frame 3, etc. If you do that you'll see the dot crawl and rainbow artifacts all but disappear in still parts of the picture. Unfortunately, you get blending (double exposure) artifacts when there's motion.

    So dot crawl and rainbow removal filters use temporal blending to remove those artifacts. The trick is in determining what parts of the picture are still and what parts of the picture are in motion (and treating the moving parts differently). The more sensitive a filter is to motion the less effective the dot crawl removal is. The less sensitive the filter is to motion the more double exposure artifacts you get.

    Another way to reduce dot crawl is to blur the dots away. Try Blur(1.0), for example. The problem, of course, is that the picture gets blurry. So the filters attempt to blur the dots but no the underlying picture. They will fall back on this method in moving parts of the picture.
    Last edited by jagabo; 5th Mar 2015 at 07:24.
    Quote Quote  
  20. Originally Posted by ss2012 View Post
    I tried DeRainbow(thresh=10, interlaced=false) and it removes the rainbows on moving/still scenes however it leaves bleeding not sure... if i go anything above thresh=10 it doesn't work on moving scenes.
    If you use UtoY() or VtoY() to view the U or V channels you'll see that DeRainbow() blurs the chroma channels. That is causing colors to bleed, and small colored areas to lose saturation.

    U and V before DeRainbow:
    Click image for larger version

Name:	before.png
Views:	2240
Size:	84.5 KB
ID:	30592
    Rainbow artifacts are all those little dark/light spots at edges.


    After DeRainbow():
    Click image for larger version

Name:	after.png
Views:	2048
Size:	71.6 KB
ID:	30593
    Quote Quote  
  21. jagabo,

    Great explanation. Thanks!
    Quote Quote  
  22. You can try sharpening the chroma after DeRainbow(). Use a sequence like:

    Code:
    MergeChroma(last, DeRainbow().aWarpSharp(depth=30)))
    That will help with the color bleed problem but small colored areas will still lose some of their color.

    Click image for larger version

Name:	sharpened.jpg
Views:	1778
Size:	77.2 KB
ID:	30598

    Note how the reddish stripe on the girl's shirtsleeve has lost most of its color. They guys teeth had some chroma artifacts but were nice and white. Now they've taken on a skin tone cast. The corners of his tongue have become pale. Etc.
    Last edited by jagabo; 5th Mar 2015 at 16:02.
    Quote Quote  
  23. Originally Posted by johnmeyer View Post
    jagabo,

    Great explanation. Thanks!
    You mean post #19 about the nature of dot crawl? You're welcome!
    Quote Quote  
  24. Thanks for that explanation! it makes me understand it better... but I am still having problems with trying to remove the bleeding.

    Originally Posted by jagabo View Post
    The trick is in determining what parts of the picture are still and what parts of the picture are in motion (and treating the moving parts differently). The more sensitive a filter is to motion the less effective the dot crawl removal is. The less sensitive the filter is to motion the more double exposure artifacts you get.
    So I'm supposed to look through all the whole episode and try to determine the areas to fix manually? how do you select certain areas?

    Originally Posted by jagabo View Post
    You can try sharpening the chroma after DeRainbow(). Use a sequence like:
    Code:
    MergeChroma(last, DeRainbow().aWarpSharp(depth=30)))
    When I use this at any number I still see bleeding comparison

    This is really hard lol
    Quote Quote  
  25. Originally Posted by ss2012 View Post
    Originally Posted by jagabo View Post
    The trick is in determining what parts of the picture are still and what parts of the picture are in motion (and treating the moving parts differently). The more sensitive a filter is to motion the less effective the dot crawl removal is. The less sensitive the filter is to motion the more double exposure artifacts you get.
    So I'm supposed to look through all the whole episode and try to determine the areas to fix manually? how do you select certain areas?
    I meant the filter has to do that. Of course, in the absence of the filter doing you have to do it.

    Originally Posted by ss2012 View Post
    Originally Posted by jagabo View Post
    You can try sharpening the chroma after DeRainbow(). Use a sequence like:
    Code:
    MergeChroma(last, DeRainbow().aWarpSharp(depth=30)))
    When I use this at any number I still see bleeding comparison

    This is really hard lol
    Once again, without context I can't help you. What did you do before calling DeRainbow? Did you deinterlace or IVTC first? What parameters did you use in DeRainbow()? Post your full AviSynth script.

    And I didn't see that frame in any of your clips that I downloaded.
    Quote Quote  
  26. Originally Posted by jagabo View Post
    I meant the filter has to do that. Of course, in the absence of the filter doing you have to do it.
    Ahk phew lol

    Originally Posted by jagabo View Post
    Once again, without context I can't help you. What did you do before calling DeRainbow? Did you deinterlace or IVTC first? What parameters did you use in DeRainbow()? Post your full AviSynth script.
    Posted the script below. I wrote some comments next to some filters I'm confused about.

    Originally Posted by jagabo View Post
    And I didn't see that frame in any of your clips that I downloaded.
    Its in the intro file around 19 seconds in.

    Code:
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\DGDecode.dll")
    DGDecode_mpeg2source("J:\New folder (2)\intro.d2v", info=3, cpu=6)
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TComb.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\TIVTC.dll")
    Import("C:\Program Files (x86)\AviSynth 2.5\plugins\DeRainbow.avsi")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\MSharpen.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\MipSmooth.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\masktools2.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\vinverse.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Toon-v1.1.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\aWarpSharp.dll")
    Import("C:\Program Files (x86)\AviSynth 2.5\plugins\TemporalDegrain.avs")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\FFT3DFilter.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\hqdn3d.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools2.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\RemoveGrain.dll")
    LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\Repair.dll")
    
    TComb(mode=0, fthreshL=4, othreshL=5) # maybe I should find a different filter than TComb
    
    TFM(PP=0)
    TDecimate(mode=1)
    
    MergeChroma(last, DeRainbow(thresh=10, interlaced=false).aWarpSharp(depth=30)) # thresh=10 works best for motion areas, but the bleed is to strong... 
    
    TemporalDegrain() # Seems to get rid of the dot crawl instead of TComb :s
    Vinverse(sstr=2.7, amnt=255, uv=3, scl=0.25)
    Toon(strength=1)
    
    crop(4, 0, -6, 0)
    Spline36Resize(640,480) # Also how do I do this 710x480, then apply a SAR=10:11, "NTSC film 4:3 is 10:11" and  704x480 with SAR 10:11 is a proper 4:3 resolution but do I just put "Spline36Resize(710,480)"??
    Last edited by ss2012; 6th Mar 2015 at 16:27.
    Quote Quote  
  27. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    for sar there is a --sar option in x264.
    Quote Quote  
  28. Unfortunately, I didn't download the intro. And I don't see your links to the files anymore. I don't see that much bleeding when using your other samples.

    Regarding aspect ratios, the ITU spec uses a 10:11 sample aspect ratio (aka pixel aspect ratio) where a 704x480 frame corresponds to the 4:3 picture (there are 8 extra pixels to the left and right making the full 720x480 frame slightly wider than 4:3). The DVD MPEG 2 spec doesn't directly specify the sample aspect ratio, only the display aspect ratio. In a 4:3 DVD the aspect ratio refers to the full frame (implying a SAR of 8:9), not a 704x480 portion. Nobody in the industry seems to care about this discrepancy. When analog tape is digitized it is normally done to the ITU spec then encoded to MPEG without compensating for the difference in aspect ratio. Your source is obviously ITU so you could just crop it down to 704x480 and encode with 10:11 SAR. Then it will be correct for both ITU and DVD.
    Quote Quote  
  29. Originally Posted by jagabo View Post
    Unfortunately, I didn't download the intro. And I don't see your links to the files anymore. I don't see that much bleeding when using your other samples.
    Should be here

    Originally Posted by jagabo View Post
    Regarding aspect ratios, the ITU spec uses a 10:11 sample aspect ratio (aka pixel aspect ratio) where a 704x480 frame corresponds to the 4:3 picture (there are 8 extra pixels to the left and right making the full 720x480 frame slightly wider than 4:3). The DVD MPEG 2 spec doesn't directly specify the sample aspect ratio, only the display aspect ratio. In a 4:3 DVD the aspect ratio refers to the full frame (implying a SAR of 8:9), not a 704x480 portion. Nobody in the industry seems to care about this discrepancy. When analog tape is digitized it is normally done to the ITU spec then encoded to MPEG without compensating for the difference in aspect ratio. Your source is obviously ITU so you could just crop it down to 704x480 and encode with 10:11 SAR. Then it will be correct for both ITU and DVD.
    Ahk I'll give that ago, would it just be SAR=704x480?
    Quote Quote  
  30. OK, I got the intro clip. It looks like DeRainbow() just makes a big mistake on that frame and others like it. You have to crank thresh up to 50 or so to prevent it. But the filter doesn't do much with thresh set that high.

    Regarding SAR, you set it in the encoder. In x264 it's "--sar=10:11". In an MPEG encoder you set the DAR to 4:3.
    Quote Quote  
Visit our sponsor! Try DVDFab and backup Blu-rays!