VideoHelp Forum
+ Reply to Thread
Results 1 to 3 of 3
Thread
  1. Trying to use VIVTC on RGB/YUV444P8 content, reading http://www.vapoursynth.com/doc/plugins/vivtc.html
    I came up with:
    Code:
    # adjusting color space from RGB24 to YUV444P8 since VsVIVTC doesn't support RGB24
    clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P8, matrix_s="470bg", range_s="full")
    
    # converting YUV444P8 clip to YUV420P8 for VFM
    yv12=core.resize.Bicubic(clip=clip,format=vs.YUV420P8, range_s="full")
    # Forcing chroma to False for VFM due to usage of yv12
    clip = core.vivtc.VFM(clip=yv12, clip2=clip, order=0, chroma=False)
    
    # converting YUV444P8 clip to YUV420P8 for VDecimate
    yv12=core.resize.Bicubic(clip=clip,format=vs.YUV420P8, range_s="full")
    # Forcing chroma to False for VDecimate due to usage of yv12
    clip = core.vivtc.VDecimate(clip=yv12, clip2=clip, chroma=False)# new fps: 23.976
    This does not crash, but it also doesn't remove the combing,...

    -> Can someone tell my how this should look like to actually work? It's probably something stupid I'm overlooking or misunderstood.

    Cu Selur
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  2. If you read your link , VFM does not have post processing built in like TFM (pp=blah); you need to apply it afterwards . There is an example in the docs with FrameEval and functools

    YUV444P8 is supported, there should be no reason to convert to YUV420P8 at that stage
    Quote Quote  
  3. Ahhh,.. that helped:

    Code:
    clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P8, matrix_s="470bg", range_s="full")      
    yv12=core.resize.Bicubic(clip=clip,format=vs.YUV420P8, range_s="full")
    # Forcing chroma to False for VFM
    clip = core.vivtc.VFM(clip=yv12, clip2=clip, order=0, mode=4, chroma=False)
    deinterlaced_clip = core.eedi3.eedi3(clip, field=1) # or other deinterlacer
    
    def postprocess(n, f, clip, deinterlaced):
       if f.props['_Combed'] > 0:
          return deinterlaced
       else:
          return clip
    
    postprocessed_clip = core.std.FrameEval(clip, functools.partial(postprocess, clip=clip, deinterlaced=deinterlaced_clip), prop_src=clip)
    clip = core.vivtc.VDecimate(clip=postprocessed_clip, chroma=True) # new fps: 23.976
    does the job.
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  



Similar Threads

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