VideoHelp Forum




+ Reply to Thread
Page 3 of 4
FirstFirst 1 2 3 4 LastLast
Results 61 to 90 of 113
  1. - you don't have to specify the field dominance for an mpeg2source

    - use separate + weave for overlay , you will have to change -4 to -2 most likely
    i dont know if daa3 support fields or full frames only
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  2. It's not the overlay that's the problem as I tried it without overlay and I still got interlacing artefacts. Daa3() seems to be causing some of them. I removed Daa3() and I still get some. It's the removespots line that's the problem. However I need that line to get rid of comets which are in other videos. How can I fix this?
    Quote Quote  
  3. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    daa3 appears to work with interlaced video (uses needi3 to separate fields).

    VideoFanatic, you are cropping improperly with YV12. The AVisynth rules for cropping are:

    Code:
    
    Colorspace     Width                     Height
                                  progressive video  interlaced video
    ----------  --------------    -----------------  ----------------
    RGB         no restriction     no restriction        mod-2
    YUY2             mod-2         no restriction        mod-2
    YV12             mod-2              mod-2            mod-4 
    Look at the bottom of this page: http://avisynth.org/mediawiki/Crop. The same info is on your computer in Avisynth's documentation.

    Your sample video of interlace "artifacts" has serious edge problems from tape duping and re-encoding, oversharpening, and all kinds of mistakes. It also has some poor motion control and judder from those previous mistakes and re-encoding with low bitrates. I don't see a way to improve it except to go progressive with it. And even then, motion isn't smooth. Are you sure this wasn't originally PAL video that someone tinkered with to make it NTSC?

    I doubt that daa3 will help with this.
    Last edited by sanlyn; 21st Mar 2014 at 10:13.
    Quote Quote  
  4. I'm only concerned with the interlacing artefacts. I'm not bothered about any other issues. I don't think the video was ever PAL as the show only aired in NTSC regions.

    I removed the crop but that made no difference. Below is the script to remove comets. I make an uncompressed AVI with this script.

    Code:
    setmtmode(5,9)
    Mpeg2Source("E:\7 secs.d2v", CPU=6)
    setmtmode(2)
    
    RemoveSpotsMC2x(last, 0) Separatefields() RemoveSpotsMC2x(last, 0) Weave()
    Here's the RemoveSpots.avsi file.

    After I get the AVI I convert the AVI to h264 and use the below script on it. I can see interlacing artefacts when I burn the video to a Bluray disc and watch it on my PS3.

    It's definately the RemoveSpots line in the AVI script that's the problem because when I convert to AVI with no script at all then convert the AVI to H264 using the script below, I don't get interlacing artefacts.

    Code:
    McTemporalDenoise(settings="medium", interlaced=true) 
    AssumeTFF() QTGMC(Preset="Super Fast") 
    SeparateFields() SelectEvery(4,0,3) Weave()  
    
    Overlay(last, last, y=-4, mode="chroma")
    
    Tweak(Hue=20, Sat=0.4, Bright=0, Cont=1.0,  Coring=False)
    
    Crop(16,0,-14,-18)
    AddBorders(16,10,14,8, $000000)
    I really need the removespots line to remove comets. How can I prevent interlacing artifacts from appearing (I want to keep the video interlaced)?
    Last edited by VideoFanatic; 12th Sep 2013 at 17:25.
    Quote Quote  
  5. Originally Posted by VideoFanatic View Post
    How can I prevent interlacing artifacts from appearing?
    Have you tried running 'RemoveSpotsMC2x(last, 0)' on the full frames as much as you need, as opposed to also running it after separating the fields and then reinterlacing again afterwards?
    Quote Quote  
  6. Can you be more specific please as I don't fully understand what you're saying.
    Quote Quote  
  7. I tried this in the AVI script:

    Code:
    AssumeTFF() QTGMC(Preset="Super Fast") 
    SeparateFields() SelectEvery(4,0,3) Weave()  
    
    RemoveSpotsMC2x(last, 0) Separatefields() RemoveSpotsMC2x(last, 0) Weave()
    That seems to get rid of the interlacing artefacts. Then I just do McTemporalDenoise(settings="medium", interlaced=true) in the h264 script.

    So does that seem OK or is there a better way of doing it?
    Quote Quote  
  8. Originally Posted by VideoFanatic View Post
    Can you be more specific please as I don't fully understand what you're saying.
    RemoveSpotsMC2x(last, 0)
    RemoveSpotsMC2x(last, 0)
    RemoveSpotsMC2x(last, 0)

    (for example) without ever separating the fields and reinterlacing.
    Quote Quote  
  9. Unfortunately it need to be like this in order to remove the maximum amount of comets while causing the least amount of damage to the picture:
    RemoveSpotsMC2x(last, 0) Separatefields() RemoveSpotsMC2x(last, 0) Weave()
    Quote Quote  
  10. Originally Posted by VideoFanatic View Post
    Unfortunately it need to be like this...
    Not if doing that is responsible for the interlacing you see, it doesn't. I don't know, it was just a suggestion. You were trying to figure out the cause and claimed RemoveSpotsMC was the reason for it.
    Quote Quote  
  11. It IS RemoveSpotsMC2x that's causing it because I tried leaving out that and just having Separatefields() Weave() and there were no interlacing artefacts when watching the Bluray!

    Could it be something to do with a setting in the RemoveSpotsMC2x.avsi plugin?

    Code:
    function RemoveSpotsMC2x(clip,int limit, bool "_grey")
    {
      _grey=default(_grey, false)
      limit = default(limit,6)
      i=MSuper(clip,pel=2)
      bvec = MAnalyse(i,isb=false, blksize=8, delta=1, truemotion=true)
      fvec = MAnalyse(i,isb=true, blksize=8, delta=1, truemotion=true)
      backw = MFlow(clip,i,bvec)
      forw  = MFlow(clip,i,fvec)
      clp=interleave(backw,clip,forw)
      clp=clp.RemoveSpots().RemoveSpots().RemoveSpots()
      clp=clp.SelectEvery(3,1)
      return clp
    }
    Quote Quote  
  12. Originally Posted by VideoFanatic View Post
    It IS RemoveSpotsMC2x that's causing it...
    And I believe you. And I'm suggesting that separating the fields, using MCRemoveSpotsMC, and then reinterlacing, is the culprit. But I guess we'll never know since you're not interested in testing it. Although I haven't used it in that 2x form, I have tried the regular version as you're doing (using it on the fields before weaving it all back together.
    Quote Quote  
  13. That's the first time I've seen you suggest that to try! But I've already done that as mentioned in post 69 haven't I and I've said that what's causing the problem.

    If I've misunderstood you then please clarify.
    Quote Quote  
  14. Originally Posted by VideoFanatic View Post
    That's the first time I've seen you suggest that to try!
    In two separate earlier posts I suggested leaving out the 'Separatefields().RemoveSpotsMC2x(last, 0).Weave()' step to see if it was the cause of the problem.

    Originally Posted by VideoFanatic View Post
    But I've already done that as mentioned in post 69 haven't I...
    No, you haven't. Post 69 says it has to be done in such-and-such a way and I suggested testing slightly differently in order to try and narrow down what's causing your problem, something you have yet to try. It's OK, not my video, not my problem, sorry I stepped in.
    Quote Quote  
  15. OK just to be clear what script should I try?
    Quote Quote  
  16. Originally Posted by VideoFanatic View Post
    OK just to be clear what script should I try?
    Originally Posted by manono View Post
    RemoveSpotsMC2x(last, 0)
    RemoveSpotsMC2x(last, 0)
    RemoveSpotsMC2x(last, 0)

    (for example) without ever separating the fields and reinterlacing.
    Or fewer calls to RemoveSpotsMC (since RemoveSpots gets used three times in each line). Just including one line would serve to confirm (or disprove) that calling it while the fields are separated is your problem.
    Quote Quote  
  17. Originally Posted by VideoFanatic View Post
    Code:
    function RemoveSpotsMC2x(clip,int limit, bool "_grey")
    {
      _grey=default(_grey, false)
      limit = default(limit,6)
      i=MSuper(clip,pel=2)
      bvec = MAnalyse(i,isb=false, blksize=8, delta=1, truemotion=true)
      fvec = MAnalyse(i,isb=true, blksize=8, delta=1, truemotion=true)
      backw = MFlow(clip,i,bvec)
      forw  = MFlow(clip,i,fvec)
      clp=interleave(backw,clip,forw)
      clp=clp.RemoveSpots().RemoveSpots().RemoveSpots()
      clp=clp.SelectEvery(3,1)
      return clp
    }
    Since you're calling RemoveSpots 3 times I suggest you rename that function RemoveSpotsMC3x. And that function shouldn't be used on interlaced video.
    Quote Quote  
  18. OK thanks. I'll do that. It's annoying it shouldn't be used with interlaced video because it doesn't remove many comets if I convert to progressive before using it. Any suggestions?
    Quote Quote  
  19. I don't see the point of the RemoveSpotsMC2x.avsi script if it's only designed for progressive videos. I tried the following in progressive the re-interlaced afterwards:

    Code:
    AssumeTFF() QTGMC(Preset="Super Fast") 
    RemoveSpotsMC2x(last, 0) 
    SeparateFields() SelectEvery(4,0,3) Weave()
    I also had this in the avsi file:
    Code:
    clp=clp.RemoveSpots().RemoveSpots().RemoveSpots().RemoveSpots().RemoveSpots().RemoveSpots().RemoveSpots()
    And it barely removed any comets from the video in my OP.
    Quote Quote  
  20. Originally Posted by VideoFanatic View Post
    I don't see the point of the RemoveSpotsMC2x.avsi script if it's only designed for progressive videos.
    You can use progressive filters on interlaced video by separarating fields and grouping odd/even , then interleave and weave

    SeparateFields()
    Ev=SelectEven().RemoveSpots2x()
    Od=SelectOdd().RemoveSpots2x()
    Interleave(Ev,Od)
    Weave()

    The reason you can't just use separatefields and apply a filter, is even/odd fields are spatially offset
    Quote Quote  
  21. I tried the below and it says "invalid arguments to function RemoveSpotsMC2x" for the red line

    Code:
    SeparateFields()
    Ev=SelectEven().RemoveSpotsMC2x(last, 0)
    Od=SelectOdd().RemoveSpotsMC2x(last, 0)
    Interleave(Ev,Od)
    Weave()
    Quote Quote  
  22. I haven't used that function, only RemoveDirtMC and related functions.

    But I think you need a source filter , Also, the strength is 0 (does nothing) . Increase the number for stronger, lower for weaker

    e.g

    AVISource()
    SeparateFields()
    Ev=SelectEven().RemoveSpots2x(30, false)
    Od=SelectOdd().RemoveSpots2x(30, false)
    Interleave(Ev,Od)
    Weave()
    Quote Quote  
  23. Originally Posted by VideoFanatic View Post
    I tried the below and it says "invalid arguments to function RemoveSpotsMC2x" for the red line

    Code:
    SeparateFields()
    Ev=SelectEven().RemoveSpotsMC2x(last, 0)
    Od=SelectOdd().RemoveSpotsMC2x(last, 0)
    Interleave(Ev,Od)
    Weave()
    Here's a fixed RemoveSpotsMC3x() (you were calling it 2x) where the defaults work properly. You should be able to use it with poisiondeathray's script:


    Code:
    function RemoveSpotsMC3x(clip clip, int "limit", bool "_grey")
    {
      _grey = default(_grey, false)
      limit = default(limit, 6)
      i=MSuper(clip,pel=2)
      bvec = MAnalyse(i,isb=false, blksize=8, delta=1, truemotion=true)
      fvec = MAnalyse(i,isb=true, blksize=8, delta=1, truemotion=true)
      backw = MFlow(clip,i,bvec)
      forw  = MFlow(clip,i,fvec)
      clp=interleave(backw,clip,forw)
      clp=clp.RemoveSpots().RemoveSpots().RemoveSpots()
      clp=clp.SelectEvery(3,1)
      return clp
    }
    Quote Quote  
  24. Here's a different video from the OP. It's only a few seconds long so you can easily see the interlacing artefacts.

    On the avsi you just posted you obviously changed the function name to RemoveSpotsMC3x instead of 2 but I noticed a few differences in the new avsi file which I've highlighted in red.

    function RemoveSpotsMC3x(clip clip,int "limit", bool "_grey")

    What does the red stuff do differently?

    In my AVS script I used this:

    Code:
    SeparateFields() 
    Ev=SelectEven().RemoveSpotsMC3x(last, 0) 
    Od=SelectOdd().RemoveSpotsMC3x(last, 0) 
    Interleave(Ev,Od) 
    Weave()
    I got an error saying "Invalid arguments to function RemoveSpotsMC3x" (on the select even line)

    Originally Posted by poisondeathray View Post
    But I think you need a source filter , Also, the strength is 0 (does nothing) . Increase the number for stronger, lower for weaker. e.g
    AVISource()
    SeparateFields()
    Ev=SelectEven().RemoveSpots2x(30, false)
    Od=SelectOdd().RemoveSpots2x(30, false)
    Interleave(Ev,Od)
    Weave()
    I tried RemoveSpots2x(30, false) and the script loaded without errors so I assume this is the correct method rather than
    (last, 0)?

    Could someone please tell me what "false" does? Also you said the number it to adjust the strength of removespots however I found that entering 0 or 100 or 1000 made no difference to the strength - all the comets were removed/most of them removed regardless. So what does the number actually do?

    Anyway the new script works great on the video in my OP. I did a 14 pass of removespots in the AVSI file. It doesn't seem to lose much picture quality but it removes the comets which is good.

    However in the short video at the top of the post you're reading now - I can still see minor interlacing artefacts. Why is that? Is it because the video was so low quality?
    I tried using QTGMC and re-interlacing before the RemoveSpots script but that only made the picture quality worse as you can see on the ring ropes.
    Quote Quote  
  25. "false" is for processing a color source

    The number works in the removedirtmc variants ; higher number = stronger, but more side effects & details removed. It might be that stacking 3x removespots has no effect, or it's too strong to be modulated by the number (everything is removed already)
    Quote Quote  
  26. Originally Posted by VideoFanatic View Post
    function RemoveSpotsMC3x(clip clip,int "limit", bool "_grey")

    What does the red stuff do differently?
    It fixes the syntax so the function's default values work. So you don't need to specify them in the call.

    Originally Posted by VideoFanatic View Post
    In my AVS script I used this:

    Code:
    SeparateFields() 
    Ev=SelectEven().RemoveSpotsMC3x(last, 0) 
    Od=SelectOdd().RemoveSpotsMC3x(last, 0) 
    Interleave(Ev,Od) 
    Weave()
    I got an error saying "Invalid arguments to function RemoveSpotsMC3x" (on the select even line)
    That syntax wouldn't get you what you want anyway. You don't want RemoveSpotsMC3x() to work on "last" (the output of SeparateFields()), you want it to work on the output of SelectEven() and SelectOdd().

    Change it to:
    Code:
    SeparateFields() 
    Ev=SelectEven().RemoveSpotsMC3x(6, false) 
    Od=SelectOdd().RemoveSpotsMC3x(6 false) 
    Interleave(Ev,Od) 
    Weave()
    You could leave those two arguments out completely since they are the defaults, and actually, the function doesn't even use them.

    Code:
    SeparateFields() 
    Ev=SelectEven().RemoveSpotsMC3x() 
    Od=SelectOdd().RemoveSpotsMC3x() 
    Interleave(Ev,Od) 
    Weave()
    If you look at the post where I listed another version of RemoveSpotsMC (in fact a whole bunch of variations) you'll see the arguments are used in those.

    https://forum.videohelp.com/threads/357149-Can-someone-create-a-comet-removal-Avisynth-...=1#post2261200

    Maybe you should switch to those and see if they work any better.
    Last edited by jagabo; 13th Sep 2013 at 17:23.
    Quote Quote  
  27. Thanks, that clears things up. I did try the massive script version a while back and found it gave a far worse picture than the small avsi file. Anyway I'm calling the small avsi file (doing 14 passes within the avsi) and I'm using the following script:

    Code:
    setmtmode(5,9)
    AVISource("E:\2 = New\Uncompressed AVI.avi")
    setmtmode(2)
    
    SeparateFields()
    Ev=SelectEven().RemoveSpotsMC3x() 
    Od=SelectOdd().RemoveSpotsMC3x()
    Interleave(Ev,Od)
    Weave()
    
    Overlay(last, last, y=-4, mode="chroma")
    
    Tweak(Hue=20, Sat=0.4, Bright=0, Cont=1.0,  Coring=False)
    
    Crop(16,0,-14,-18)
    AddBorders(16,10,14,8, $000000)
    Then from that processed AVI I do McTemporalDenoise(settings="medium", interlaced=true) on it.

    On the 1st video in the OP I don't see any interlacing artefacts when using the above script and viewing the video on a Bluray disc on my TV. On the 2nd video in the OP which is low quality I can see interlacing artefacts that would not be there if I hadn't used the RemoveSpots script. Are those interlacing artifacts happening because the file is lower quality than normal?
    Last edited by VideoFanatic; 13th Sep 2013 at 21:00.
    Quote Quote  
  28. Originally Posted by VideoFanatic View Post
    I'm calling the small avsi file (doing 14 passes within the avsi)
    14 calls to RemoveSpots()? Is there anything left in the video? lol
    Quote Quote  
  29. I tried with 4 passes and 14 in the AVSI file and couldn't see any noticeable difference in picture quality but it removed more comets. If I did that many passes in the avs file then I would agree with you.
    Quote Quote  
  30. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by VideoFanatic View Post
    I tried with 4 passes and 14 in the AVSI file and couldn't see any noticeable difference in picture quality but it removed more comets. If I did that many passes in the avs file then I would agree with you.
    You mean there are still comets? Then 14 passes isn't enough. There was no noticeable quality loss, so why stop at 14?
    Last edited by sanlyn; 21st Mar 2014 at 10:14.
    Quote Quote  



Similar Threads

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