VideoHelp Forum
+ Reply to Thread
Results 1 to 20 of 20
Thread
  1. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    https://forum.videohelp.com/images/imgfiles/NZeldD4.png

    around the outer edge of her left arm and between her breasts.

    I can't tell if this is aliasing or something not picked up by IVTC.
    Quote Quote  
  2. looks like residual combing - e.g when fields aren't perfectly aligned

    you can adjust the field matcher settings (maybe combing thresholds), or apply something afterwards to deal with it like vinverse
    Quote Quote  
  3. The lines are thicker and darker in one field than the other. A simple bob:

    Name:  bob.gif
Views: 1746
Size:  41.2 KB

    I suspect the IVTC took fields from two different video frames and the encoding or recording of the source thinned or thickened lines in on of the fields. Or maybe the fields really come from different film frames and the IVTC picked the wrong fields. You'd have to include more frames to tell which.
    Quote Quote  
  4. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Originally Posted by jagabo View Post
    The lines are thicker and darker in one field than the other. A simple bob:

    Image
    [Attachment 30548 - Click to enlarge]


    I suspect the IVTC took fields from two different video frames and the encoding or recording of the source thinned or thickened lines in on of the fields. Or maybe the fields really come from different film frames and the IVTC picked the wrong fields. You'd have to include more frames to tell which.
    It looks like that the lines are thicker/thinner, you are correct. What would you do in this situation?

    using daa() seems to fix it, but I don't know if its a good idea to use that on the whole source when its just certain frames that are like that.

    I used TFM().TDecimate() in the first place. If there is another way to IVTC this that I could try, I'm all ears.
    Last edited by Akai-Shuichi; 3rd Mar 2015 at 13:32.
    Quote Quote  
  5. TFM(order=1) # order=1 (TFF)
    vinverse # to remove residual combing
    TDecimate(mode=1) #for anime
    *** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE
    Quote Quote  
  6. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    vinverse doesn't seem to be doing anything to it.
    Quote Quote  
  7. You can adjust the settings.

    vinverse2(sstr=0.5)

    You said DAA worked - try out some other AA filters as well

    If you want to apply some filter to only to those frames, and only to specific areas within those frames, you'd have to create a selection mask . Very difficult to do accurately on something like this

    Or maybe there are other fields that are a better match, and you can adjust the TFM settings for better results
    Quote Quote  
  8. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    QTGMC(Preset="medium", EZDenoise=1.0)
    SelectEven()
    TDecimate(mode=1)

    seems to get the job done perfectly.
    Quote Quote  
  9. Try TFM(mode=0) and see if you get less of them.

    QTGMC() is a very slow solution. It's also likely to create other artifacts occasionally.
    Quote Quote  
  10. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Originally Posted by jagabo View Post
    Try TFM(mode=0) and see if you get less of them.

    QTGMC() is a very slow solution. It's also likely to create other artifacts occasionally.

    tfm(mode=0) didn't seem to work. Would daa() be a better solution than QTGMC() then?

    Here is a clip of it, see if you have any better luck: https://mega.co.nz/#!tUpFjbQC!msquZDZyXLwU2ZyY06GGtI5jlBsffurOvYLOaki_nAo
    Quote Quote  
  11. poisondeathray's vinverse2(sstr=0.5) works pretty well on the sample image. daa() works well and darkens the line a bit.
    Quote Quote  
  12. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Originally Posted by jagabo View Post
    poisondeathray's vinverse2(sstr=0.5) works pretty well on the sample image. daa() works well and darkens the line a bit.
    Ah, wow it works! Thanks. I'll stick with vinverse for taking of it since its probably safer.
    Quote Quote  
  13. But I think it leaves some aliasing on some frames near the end on the clip. A generic AA function like daa3() , santiag() etc... will look better on some frames, but perhaps worse on others


    Or you can apply it conditionally, only on frames that have combing detected, by adjusting TFM parameters, like cthresh, MI, clip2 etc... so only those frames that are detected as combed will be swapped with "clip2" - thus limiting the "damage" even more . This technique can be used for any filter or processing - "clip2" can be QTGMC for example , or anything to "replace" wherever combing is detected. If you wanted to use daa3() or some other AA you could do it that way

    eg.

    Code:
    MPEG2Source("vtsclip.d2v", cpu=0)
    orig=last
    
    orig
    AssumeTFF()
    TFM()
    vinverse2(sstr=0.5)
    vin=last
    
    orig
    TFM(mode=0, PP=2, cthresh=2, mi=40, mChroma=false, blockx=16, blocky=16, display=true, clip2=vin)
    Tdecimate()
    That example uses vinverse2 for clip2, so it will indicate whenever a field match has combing detected because display=true it will be written in an overlay, and replace that frame with one that has vinverse2 applied. The other frames won't get vinverse2 applied

    set display=false when you want to actually use it, and use pp=0 to help debug it (turns post processing off). So tweak the thresholds until you are satisfied that combing is detected properly on other sections as well
    Quote Quote  
  14. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Originally Posted by poisondeathray View Post
    But I think it leaves some aliasing on some frames near the end on the clip. A generic AA function like daa3() , santiag() etc... will look better on some frames, but perhaps worse on others


    Or you can apply it conditionally, only on frames that have combing detected, by adjusting TFM parameters, like cthresh, MI, clip2 etc... so only those frames that are detected as combed will be swapped with "clip2" - thus limiting the "damage" even more . This technique can be used for any filter or processing - "clip2" can be QTGMC for example , or anything to "replace" wherever combing is detected. If you wanted to use daa3() or some other AA you could do it that way

    eg.

    Code:
    MPEG2Source("vtsclip.d2v", cpu=0)
    orig=last
    
    orig
    AssumeTFF()
    TFM()
    vinverse2(sstr=0.5)
    vin=last
    
    orig
    TFM(mode=0, PP=2, cthresh=2, mi=40, mChroma=false, blockx=16, blocky=16, display=true, clip2=vin)
    Tdecimate()
    That example uses vinverse2 for clip2, so it will indicate whenever a field match has combing detected because display=true it will be written in an overlay, and replace that frame with one that has vinverse2 applied. The other frames won't get vinverse2 applied

    set display=false when you want to actually use it, and use pp=0 to help debug it (turns post processing off). So tweak the thresholds until you are satisfied that combing is detected properly on other sections as well
    I can't seem to get it to use vinverse...it detects them, as pp=2 and pp=6 deals with them, but when i set it to pp=0 it doesn't use vinverse
    Quote Quote  
  15. Yes, that's the point - you only use pp=0 to debug the script. You adjust it back when you actually use it. Since there is no post processing when pp=0, you should see the combing. You have to be able to see the combing to adjust the values and customize the script. Then you adjust the thresholds until frames that have combing are detected, and those that don't have combing are not detected. You don't want to process frames that are clean because you will degrade them unnecessarily - that's the whole idea

    The overlay will say something like "combing detected! deinterlaced" or something like that. If you see combing, but it doesn't say "detected", then you need to adjust the threshold. Similarly, if it says combing detected, when there is none, that's a false positive, and you have to adjust the values.

    When you use clip2, it applies whatever process is specified by clip2, whether it's deinterlacing , AA etc... whatever you want. It just replaces those frames that are detected as "combed" with clip2
    Quote Quote  
  16. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Originally Posted by poisondeathray View Post
    Yes, that's the point - you only use pp=0 to debug the script. You adjust it back when you actually use it. Since there is no post processing when pp=0, you should see the combing. You have to be able to see the combing to adjust the values and customize the script. Then you adjust the thresholds until frames that have combing are detected, and those that don't have combing are not detected. You don't want to process frames that are clean because you will degrade them unnecessarily - that's the whole idea

    The overlay will say something like "combing detected! deinterlaced" or something like that. If you see combing, but it doesn't say "detected", then you need to adjust the threshold. Similarly, if it says combing detected, when there is none, that's a false positive, and you have to adjust the values.

    When you use clip2, it applies whatever process is specified by clip2, whether it's deinterlacing , AA etc... whatever you want. It just replaces those frames that are detected as "combed" with clip2
    This is what I put in:
    Code:
    MPEG2Source("j.d2v", cpu2="ooooxx")
    vin= vinverse(sstr=0.5)
    TFM(mode=0, cthresh=2, mi=40, pp=1, mChroma=false, display=true, blockx=16, blocky=16, clip2=vin)
    TDecimate(mode=1)
    It is picking them up perfectly in the whole video, but doesn't actually seem to be using the vinverse()

    One more thing, in your script what is the point of having TFM() 2 times?
    Quote Quote  
  17. Originally Posted by Akai-Shuichi View Post
    This is what I put in:
    Code:
    MPEG2Source("j.d2v", cpu2="ooooxx")
    vin= vinverse(sstr=0.5)
    TFM(mode=0, cthresh=2, mi=40, pp=1, mChroma=false, display=true, blockx=16, blocky=16, clip2=vin)
    TDecimate(mode=1)
    It is picking them up perfectly in the whole video, but doesn't actually seem to be using the vinverse()

    One more thing, in your script what is the point of having TFM() 2 times?
    You currently have pp=1, so that means "don't deinterlace", and/or don't use clip2

    Even if you use pp=2, the way you currently have it, vinverse is applied to the video before TFM, so it's applied to the video while it's still interlaced, not field matched or progressive - big problems

    You can think of it as 2 versions of the video. One is normal TFM.TDecimate(). The other one has vinverse applied to ALL the frames. It swaps between the two only on frames where combing is detected. So uncombed frames are passed through, and only combed frames get vinverse treatment (or whatever treatment you specify for clip2)
    Quote Quote  
  18. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Originally Posted by poisondeathray View Post
    Originally Posted by Akai-Shuichi View Post
    This is what I put in:
    Code:
    MPEG2Source("j.d2v", cpu2="ooooxx")
    vin= vinverse(sstr=0.5)
    TFM(mode=0, cthresh=2, mi=40, pp=1, mChroma=false, display=true, blockx=16, blocky=16, clip2=vin)
    TDecimate(mode=1)
    It is picking them up perfectly in the whole video, but doesn't actually seem to be using the vinverse()

    One more thing, in your script what is the point of having TFM() 2 times?
    You currently have pp=1, so that means "don't deinterlace", and/or don't use clip2

    Even if you use pp=2, the way you currently have it, vinverse is applied to the video before TFM, so it's applied to the video while it's still interlaced, not field matched or progressive - big problems

    You can think of it as 2 versions of the video. One is normal TFM.TDecimate(). The other one has vinverse applied to ALL the frames. It swaps between the two only on frames where combing is detected. So uncombed frames are passed through, and only combed frames get vinverse treatment (or whatever treatment you specify for clip2)
    Alright, I get it now. for the orig part is necessary to keep using orig or would it be alright to just leave the initial MPEG2Source in the beginning?
    Quote Quote  
  19. Originally Posted by Akai-Shuichi View Post
    Alright, I get it now. for the orig part is necessary to keep using orig or would it be alright to just leave the initial MPEG2Source in the beginning?


    No you don't need to if you have the correct implied "last". You can organize scripts however you want to

    I explicitly split out sections and call out named variables to keep everything clean and organized and easier to understand what is going on. Often with more complex scripts than this, you can get confused or lose track of what implied "last" was and get the wrong results.
    Quote Quote  
  20. Member
    Join Date
    Oct 2007
    Location
    United States
    Search Comp PM
    Thanks a lot man. Helped me learn a lot too!
    Quote Quote  
Visit our sponsor! Try DVDFab and backup Blu-rays!