VideoHelp Forum
+ Reply to Thread
Results 1 to 17 of 17
Thread
  1. I have a video which "is actually progressive content (23.976 fps) and hard telecined. It should be inverse telecined (IVTC) to recover the original progressive frames." However, I'm not entirely sure how to do this in avisynth. I assume it would be one of these two:

    MPEG2Source("D:\myproject.d2v")
    Telecide()
    Decimate(5)

    or

    MPEG2Source("D:\myproject.d2v")
    Telecide()
    Decimate(mode=1)


    and then I have to decomb or....??

    Video: http://www.mediafire.com/?lq06kj4sk6zvich
    Quote Quote  
  2. For normal 3:2 pulldown material:
    MPEG2Source("D:\myproject.d2v")
    TFM(d2v="D:\myproject.d2v")
    TDecimate()
    If it still has comb artifacts (I haven't seen your video sample yet) you need to look closer at what you really have. Make sure Honor Pulldown Flags was used in DgIndex. If DgIndex shows the video is almost all film (99+%) you can just use the Force Film settings and skip the IVTC.
    Quote Quote  
  3. It will actually be an AVISource...I forgot to adjust that in the two sample scripts I posted. So DgIndex won't come into play I don't think. But I'm going to try that out on my video. Thank you I'll post some results for anyone who is following
    Last edited by Cherbette; 16th Nov 2011 at 10:34.
    Quote Quote  
  4. Script:
    LoadVirtualDubPlugin ("C:\Program Files\VirtualDub\plugins\CCD.VDF", "CCD", 0)
    AviSource("Commercial.avi").AssumeBFF().Trim(308,1 179)
    TFM()
    TDecimate()
    ConvertToRGB32(matrix="Rec601")
    CCD()
    #Crop(5,4,-14,-5)

    Progress: http://www.mediafire.com/?gdufdaiaxqus250
    Quote Quote  
  5. Adding AssumeTFF() before TFM() might help a bit. As usual you have terrible horizontal jitter problems.
    Quote Quote  
  6. Oh I forgot...I think this video may have been recorded before I started using the DVD-R as a passthrough for TBC. So I shall recapture
    Last edited by Cherbette; 16th Nov 2011 at 12:20.
    Quote Quote  
  7. I've seen this commerical before, didn't you mention it in another thread? Someone made it look better already.
    Quote Quote  
  8. Yes, it was mentioned briefly in another thread however I've been working on other videos and never addressed the IVTC issue present in the commercial.
    Quote Quote  
  9. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by jmac698 View Post
    I've seen this commerical before, didn't you mention it in another thread? Someone made it look better already.
    Well, sort of. But not very much.
    https://forum.videohelp.com/threads/339411-Tweaking-VHS-captures?p=2110091&viewfull=1#post2110091

    This one's a project in itself, scene by scene. Telecine would be only a small part of the problem.
    Last edited by sanlyn; 21st Mar 2014 at 06:12.
    Quote Quote  
  10. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    [QUOTE=Cherbette;2121078]Script:
    LoadVirtualDubPlugin ("C:\Program Files\VirtualDub\plugins\CCD.VDF", "CCD", 0)
    AviSource("Commercial.avi").AssumeBFF().Trim(308,1179)
    TFM()
    TDecimate()
    ConvertToRGB32(matrix="Rec601")
    CCD()
    #Crop(5,4,-14,-5)
    /QUOTE]

    This video isn't BFF.
    Last edited by sanlyn; 21st Mar 2014 at 06:12.
    Quote Quote  
  11. Oh...Avisource()
    Info()

    gave a result of "bottom frame first" so I went with that.
    Quote Quote  
  12. Hint, mpg2 is usually TFF and captured avi is usually BFF. So a hardware compression capture card would be TFF. But that's just a rule of thumb, the way to tell is separatefields and step through to see if motion keeps going forward or if it jumps back and forth. If it's smooth, your setting is right. Avisynth defaults to BFF I belive.
    Quote Quote  
  13. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by Cherbette View Post
    Avisource()
    Info()

    gave a result of "bottom frame first" so I went with that.
    That tells you nothing - it's just the Avisynth default.
    AviSource can't tell if the video is TFF or BFF (or even if it's interlaced).
    You need to examine it visually as jmac698 describes.
    Quote Quote  
  14. This is my AviSynth function for IVTC:

    Code:
    # Slick little function which manually reverses 3:2 pulldown.
    #
    # if p=0, then 4rd and 5th frames are interlaced (pppii)
    # if p=1, then 3rd and 4th frames are interlaced (ppiip)
    # if p=2, then 2nd and 3rd frames are interlaced (piipp)
    # if p=3, then 1st and 2nd frames are interlaced (iippp)
    # if p=4, then 1st and 5th frames are interlaced (ipppi)
    #
    # Parameters:
    # clip v  NTSC telecined (3:2 pulldown) video.
    # int p   Should be a number 0-4.  If that doesn't work, then try
    #         complementParity(v).
    function manualIVTC(clip v, int p)
    {
        v=loop(v, p, 0,0)# adds extra frames to start pattern
        v=v.SeparateFields().SelectEvery(10, 0,1, 2,3, 5,6, 7,8).Weave()
        v=trim(v,int(p*3/5),0)# deletes the extra frames added
        
        return v.assumeFPS(23.976)
    }
    To use it, just do "v=v.manualIVTC(x)" where x=0-4. If the pattern changes, then cut it into sections and do the manualIVTC function on each section. Sounds harder than it is. The results are just perfect.


    Darryl
    Quote Quote  
  15. There's an easier way I think,
    Code:
    function simpleivtc(clip in, int phase) {
    #IVTC for a fixed 3:2 pulldown pattern, non-adaptive, returns 4/5 framerate clip (i.e. 24fps from 30fps)
    in.swapfields.doubleweave
    pulldown(0+phase,3+phase)
    }
    Quote Quote  
  16. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by dphirschler View Post
    Code:
    # Slick little function which manually reverses 3:2 pulldown.
    #
    # if p=0, then 4rd and 5th frames are interlaced (pppii)
    # if p=1, then 3rd and 4th frames are interlaced (ppiip)
    # if p=2, then 2nd and 3rd frames are interlaced (piipp)
    # if p=3, then 1st and 2nd frames are interlaced (iippp)
    # if p=4, then 1st and 5th frames are interlaced (ipppi)
    #
    # Parameters:
    # clip v  NTSC telecined (3:2 pulldown) video.
    # int p   Should be a number 0-4.  If that doesn't work, then try
    #         complementParity(v).
    function manualIVTC(clip v, int p)
    {
        v=loop(v, p, 0,0)# adds extra frames to start pattern
        v=v.SeparateFields().SelectEvery(10, 0,1, 2,3, 5,6, 7,8).Weave()
        v=trim(v,int(p*3/5),0)# deletes the extra frames added
        
        return v.assumeFPS(23.976)
    }
    To use it, just do "v=v.manualIVTC(x)" where x=0-4.
    Your code does not work for p=0 - it deletes the first frame (because of the call to loop()).
    You need to call it with p=5 for the case pppii.

    If the pattern changes, then cut it into sections and do the manualIVTC function on each section.
    That's the Achilles heel of any 'manual' method - some sources have many pattern changes due to editing and it is very tedious to find them and cut into sections manually. That's why more 'intelligent' methods such as TFM().TDecimate() are needed.
    Quote Quote  
  17. Originally Posted by Gavino View Post
    That's the Achilles heel of any 'manual' method - some sources have many pattern changes due to editing and it is very tedious to find them and cut into sections manually. That's why more 'intelligent' methods such as TFM().TDecimate() are needed.
    Depends on the show. A lot of times there is no pattern change, or if there is one it's only at the commercial breaks. But I'll admit, sometimes I encounter a show which has pattern breaks every few seconds. Those are not worth it. But every time I use an "automatic" method, combed frames appear. It's usually the scenes where little is moving except for the mouths.


    Darryl
    Quote Quote  



Similar Threads

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