VideoHelp Forum
+ Reply to Thread
Results 1 to 8 of 8
Thread
  1. Hello,
    Is any SW player, which can simulate interlacing like is on older TV? I mean, the SW would send first evens and 50ms later would send the odds rows. It sounds simply, but i can not find SW player with this feature.
    I have many videos from my camcorder which is PAL and interlaced(Video8). On the internet there are many manuals how to deinterlate such video by many methods. VLC player knows many. I use it, but always it is possible to see typical artefacts how odds and evens rows are not naturally deinterlaced.

    Or, is it matter of graphic card? Or monitor?

    thank you
    Quote Quote  
  2. You have to de-interlace when displaying interlaced video on a modern progressive display (not a CRT TV) as they can only display the entire frame at once. CRT computer monitors aren't like CRT TVs either. They refresh the entire screen from top to bottom rather than alternating between odd and even scanlines, so they're progressive too.

    For the record though, a progressive PAL display with a refresh rate of 50Hz refreshes 50 times per second, which means it refreshes every 20ms. At 25fps, a full frame displays for two refreshes, or 40ms. For an interlaced source, the fields are 20ms apart, but because they alternative, the odd scanlines are still refreshed every 40ms, as are the even scanlines. That's for an interlaced CRT TV though. Progressive displays can only refresh all the scanlines at the same time.

    A 60Hz progressive display (actually 59.94Hz) refreshes every 16.68ms.
    Last edited by hello_hello; 17th Feb 2021 at 15:10.
    Quote Quote  
  3. Member Cornucopia's Avatar
    Join Date
    Oct 2001
    Location
    Deep in the Heart of Texas
    Search PM
    @hello_hello, that's not quite true (re: crt monitors). Some monitors could do interlaced as well as progressive. Viewsonic was well known for having a line with that feature, and I owned 2 of them once upon a time (I used one to do interlaced-mode stereo3d early on). And most, if not all, monitors were interlaced, pre-CGA, as they were just re-used tvs (e.g. Apple II, commodore64 - both of which, IIRC, connected the cpu to the tv via standard composite cable).

    If the op wants to SIMULATE interlacing, just interleave black lines in there.

    Scott
    Quote Quote  
  4. Thank you
    I know, modern monitors are progresive. But why a SW-player does not simulate sending odds and evens rows? Most often Video8(288rows interlaced) is grabbed as DV(576i) which is twice more. For SW-player should be easy to send first evens rows and then 20ms(yes, it is 20ms, not 50ms ) later odds rows.
    Quote Quote  
  5. Member Cornucopia's Avatar
    Join Date
    Oct 2001
    Location
    Deep in the Heart of Texas
    Search PM
    But why? Why would a standard player want to play a video in a legacy, SUBSTANDARD way, other than as a gimmick? How often do you you watch your favorite shows in Sepia tone?
    There's a reason the industry calls these "special" effects.

    Scott
    Quote Quote  
  6. Actually as soon as you'd try to interpret it , simulation like that, it would be much clearer. You'd find out that LCD has different lag times than CRT, has upscale or downscale features as oppose to CRT etc., and adding this, most importantly , using LCD, you have to "draw" a black line, while skipping that actual line while CRT really skips that line and does nothing in between.

    What you want is actually done by bob deinterlace, making a field as a frame and posting it on screen and it could be upscaled, downscaled. Size, resolution for LCD does not matter. CRT is set for resolutions.

    If you try to simulate posting only fields and skipping lines as CRT does, for example first field as a bottom, then other field, you'd get something like this, if using vapoursynth as a platform for simulation:
    Code:
    import vapoursynth as vs
    from vapoursynth import core
    
    source_path=r'NTSC DV avi.avi'
    clip = core.avisource.AVISource(source_path)
    clip = clip.std.SetFrameProp(prop="_FieldBased", intval=1) #1 bff
    bob = clip.std.SeparateFields()
    
    bottom_fields = bob[0::2] #assume even frames only (fields)
    top_fields    = bob[1::2] #assume odd frames only (fields)
    
    blank = core.std.BlankClip(bottom_fields, color=(16,128,128))
    blank = blank.std.SetFrameProp(prop="_FieldBased", intval=0)
    
    bottom_interleave = core.std.Interleave(clips =[bottom_fields, blank] )
    bottom_frame = core.std.DoubleWeave(bottom_interleave, tff = True)[::2] 
    
    top_interleave = core.std.Interleave(clips =[top_fields, blank] )
    top_frame = core.std.DoubleWeave(top_interleave, tff = False)[::2] 
    
    simulation = core.std.Interleave(clips =[bottom_frame, top_frame] )
    
    import havsfunc
    qtgmc_bob = havsfunc.QTGMC(clip, TFF=False)
    
    qtgmc_bob.set_output(0)
    simulation.set_output(1)
    Image Attached Files
    Last edited by _Al_; 20th Feb 2021 at 15:17.
    Quote Quote  
  7. sorry for redundant posts, it needs all scripts allowed, it plays havoc if I do not do that,

    As you can see , you have black lines in there, it is unusable, so method to make a field as frame is what it is used.
    Quote Quote  



Similar Threads

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