VideoHelp Forum




+ Reply to Thread
Results 1 to 8 of 8
  1. I am hoping somebody can advise me on to properly uses Peachsmoother in an Avisynth script. I'm new to using Avisynth, and still experimenting. But I have some VHS captures I would like to clean up a bit without going too crazy. I've tried Peachsmoother and I think it works quite well under default settings. Here's the script I've been using:

    AviSource("C:\file.avi")
    SeparateFields()
    odd=SelectOdd().PeachSmoother()
    evn=SelectEven().PeachSmoother()
    Interleave(evn,odd)
    Weave()

    But I was reading this on another forum, which makes me wonder if the script should be changed:


    "Peach Smoother does use a few global variables, so multiple calls in a script might cause problems.

    More importantly — Running it separately on the odd and even fields isn’t going to do quite as well as running it simultaneously on both. The temporal correlation in Peach is meant for use on fields, not frames — and if anything is a bit too strong. So taking out half the fields will cause Peach to expect too much correlation between frames.

    Also, running it separately on the the odds and evens means that you’ll be ignoring any motion information from half of the fields.

    Instead, I’d recommend running it so...

    SeparateFields().PeachSmoother(Your parameters here).Weave().etc"


    Also, some people seem to use (DoSpatial = FALSE) as part of PeachSmoother. Is this recommended for working on VHS transfers?

    I also read on Doom9 that people reported that this plugin contains a bug (results in blended frames, visible in all settings). If this is true I wouldn't want to use it, but that was written back in 2003.

    Anybody familiar with this plugin? Can anybody advise me on how I should proceed?
    Last edited by sasuweh; 9th Oct 2010 at 13:11.
    Quote Quote  
  2. Member
    Join Date
    Jan 2003
    Location
    India
    Search Comp PM
    Try out the suggestions, and decide. You learn avisynth by trial and error. In any case, as people will tell you each video is always unique in some ways, so trials are always needed. if the avi file is big, try on smaller file, using trim command immediately after the avisource line.
    Quote Quote  
  3. So how should I alter the scrip then if it isn't advisable to use multiple calls. As I said I'm new to avisynth and a bit unsure how to assemble my scripts.

    Would it look like this:

    AviSource("C:\file.avi")
    PeachSmoother()


    Or this? I saw this recommended in one forum:

    AviSource("C:\file.avi")
    SeparateFields().PeachSmoother().Weave()

    Is this using the SeparateFields/Weave commands properly? Or is this completely wrong?

    I read that Peachsmoother is interlace-aware. " Using SeparateFields() sets a flag which PeachSmoother recognizes."

    I noticed another forum mentioned the same recommendation: "you shouldn't use it twice in a script due to it's inner workings".

    And on ArsTechnica: "Optimally Peach should be used in a sequence something like

    SeparateFields().PeachSmoother().Weave()


    There's no need to run Peach on the odd and even fields separately '” It uses AVISynth's field hints to automatically match the fields together properly."

    What I'm afraid of is if there are any known bugs, I may not be able to spot exactly what it is that it shouldn't be doing. So I don't know if there are indeed bugs or if they have been ironed out years ago.
    Last edited by sasuweh; 9th Oct 2010 at 13:58.
    Quote Quote  
  4. Nothing? I'd just like to know if

    AviSource("C:\file.avi")
    SeparateFields().PeachSmoother().Weave()

    is the proper way to use this script with PeachSmoother.

    Quote Quote  
  5. The peach smoother docs recommend using it before deinterlacing.
    Quote Quote  
  6. So then, as an example, on the hybrid interlaced/telecined capture I was discussing back on the other thread, if I just want to keep the video fully interlaced, how should my script look to run Peachsmoother properly? There seems to be alot of confusion on where to place Peachsmoother.

    Maybe I'm misunderstanding what separatefields/weave does. I didn't even know about separatefields/weave until I read a recommendation to use it with Peachsmoother in a forum. Somebody said on another forum "he probably meant that you should split frame to fields,apply peach,weave them back together".

    Isn't that what separatefields/weave does?
    Also on that forum:

    "Yes, it really is best to run Peach before deinterlacing. You can run it without any prior processing with reasonable success. (Yes, the spatial smoothing won't work quite as well '” But the spatial smoothing is subtle enough that this doesn't matter much.) Optimally Peach should be used in a sequence something like

    SeparateFields().PeachSmoother().Weave()


    There's no need to run Peach on the odd and even fields separately '” It uses AVISynth's field hints to automatically match the fields together properly.

    Using SeparateFields() sets a flag which PeachSmoother recognizes.
    "

    But the video isn't interlaced anymore after Separatefields, right? So then why do I need to use Separatefields? If it's recommended to use Peachsmoother before deinterlacing, and I want to just create an interlaced DVD, why wouldn't my script just look like this?:

    AviSource("C:\file.avi")
    PeachSmoother()


    Why would I need Separatefields/weave? Forgive me if I'm being redundant. I'm very new to writing scripts and I just want to make sure I don't put things in the wrong order.
    Last edited by sasuweh; 15th Oct 2010 at 05:21.
    Quote Quote  
  7. Originally Posted by sasuweh View Post
    But the video isn't interlaced anymore after Separatefields, right?
    That is correct. SeparateFields() takes the two interleaved fields of each frame and makes then sequential progressive frames (the way they are seen on the TV, sort of). A 720x480 interlaced frame becomes two 720x240 progressive frames. But note: the scan lines of the two frames aren't properly aligned -- the bottom field is shifted up by a scanline. This is why the earlier script used SelectEven() and SelectOdd() to treat the two field sequences separately. But that's something of a compromise too, because the sequential fields aren't temporally adjacent either.

    Originally Posted by sasuweh View Post
    So then why do I need to use Separatefields?
    I think the person who wrote that either didn't know that PeachSmoother is interlaced aware or posted the comment before PeachSmoother supported interlaced video.

    Originally Posted by sasuweh View Post
    If it's recommended to use Peachsmoother before deinterlacing, and I want to just create an interlaced DVD, why wouldn't my script just look like this?:

    AviSource("C:\file.avi")
    PeachSmoother()
    That is how your script should look. You may need a ConvertToYUY2(interlaced=true) before PeachSmoother if your source doesn't come out of AviSource() as YUY2.
    Last edited by jagabo; 15th Oct 2010 at 06:20.
    Quote Quote  
  8. Gotcha. Thanks again for all your help. Separatefields was really confusing me because it didn't make sense to me why I needed to use it if Peachsmoother is interlaced aware. I have Cedocida set up to handle the YUY2 output, so I shouldn't need ConvertToYUY2(interlaced=true).
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!