VideoHelp Forum
+ Reply to Thread
Results 1 to 13 of 13
Thread
  1. Recently go a DVD of a rare show. It's an official DVD, this was an old public access show. Is this a poorly authored DVD or just bad interlacing/deinterlacing. Is there anything I can do to repair or partially repair the interlacing artifacts?


    You'll probably need to download the vob file to see what I'm referring to. Dropbox's compression sucks.
    https://www.dropbox.com/scl/fi/pejticsy0knsub27n4hra/VTS_02_6.VOB?rlkey=tplsfey0sp4qgo...yltm2u9dm&dl=0
    Last edited by LaserBones; 18th Jul 2023 at 22:53.
    Quote Quote  
  2. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    It was probably encoded and authored for mpeg2/DVD from whatever source was at hand.
    In Avisynth,
    Code:
    qtgmc(fpsdivisor=2)
    doesn't look too bad
    Quote Quote  
  3. Originally Posted by davexnet View Post
    It was probably encoded and authored for mpeg2/DVD from whatever source was at hand.
    In Avisynth,
    Code:
    qtgmc(fpsdivisor=2)
    doesn't look too bad
    Thank you. I'll try this. Is this the same as using SelectEven() after running QTGMC?
    Quote Quote  
  4. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    "Thank you. I'll try this. Is this the same as using SelectEven() after running QTGMC?"

    I didn't see a difference, but if there is a technical reason why one is preferred over the other,
    one of the other posters can chime in, 'cause I don't know
    Quote Quote  
  5. I'm a Super Moderator johns0's Avatar
    Join Date
    Jun 2002
    Location
    canada
    Search Comp PM
    Next time you need to post and show a video you can upload up to 500 mB to videohelp,lot easier for people to see and more responses.
    I think,therefore i am a hamster.
    Quote Quote  
  6. It looks like it was probably shot on VHS tape and just needs to be deinterlaced. The jaggies can be smoothed out w/ right filters not sure you can ever get that perfect by my experience. The source is just not great.
    Quote Quote  
  7. That was once normal interlaced video but it has been mangled. Normal deinterlacing methods won't work on it. Here's something that cleans up the combing. It could use some noise reduction too.

    Code:
    Mpeg2Source("VTS_02_6.d2v") 
    
    GreyScale()
    SelectOdd().Spline36Resize(width, height/2).Santiag().Sharpen(0.0, 0.3).nnedi3(dh=true).Sharpen(0.0, 0.3)
    
    # new double the frame rate from 15 to 30 fps
    # rife is very slow.  you might use another frame rate converter.  or just leave it at 15 fps.
    z_ConvertFormat(pixel_type="RGBPS", colorspace_op="709:709:709:l=>rgb:709:709:f")
    Rife(gpu_thread=1, model=9, fps_num=30000, fps_den=1001)
    z_ConvertFormat(pixel_type="YUV420P8", colorspace_op="rgb:709:709:f=>709:709:709:l")
    Image Attached Files
    Quote Quote  
  8. Originally Posted by jagabo View Post
    That was once normal interlaced video but it has been mangled. Normal deinterlacing methods won't work on it. Here's something that cleans up the combing. It could use some noise reduction too.

    Code:
    Mpeg2Source("VTS_02_6.d2v") 
    
    GreyScale()
    SelectOdd().Spline36Resize(width, height/2).Santiag().Sharpen(0.0, 0.3).nnedi3(dh=true).Sharpen(0.0, 0.3)
    
    # new double the frame rate from 15 to 30 fps
    # rife is very slow.  you might use another frame rate converter.  or just leave it at 15 fps.
    z_ConvertFormat(pixel_type="RGBPS", colorspace_op="709:709:709:l=>rgb:709:709:f")
    Rife(gpu_thread=1, model=9, fps_num=30000, fps_den=1001)
    z_ConvertFormat(pixel_type="YUV420P8", colorspace_op="rgb:709:709:f=>709:709:709:l")
    Your answers are always amazing. Thank you! What is the reasoning for SelectOdd and then frame interpolation with rife? If you could briefly explain what the script is doing it will help me understand how it's working. I've only been using avisynth for about a year and this is advanced for my current skillset. Thanks again!
    Last edited by LaserBones; 3rd Aug 2023 at 04:25.
    Quote Quote  
  9. Originally Posted by LaserBones View Post
    What is the reasoning for SelectOdd and then frame interpolation with rife?
    The sequence SelectOdd().Spline36Resize(width, height/2).Santiag().Sharpen(0.0, 0.3).nnedi3(dh=true).Sharpen(0.0, 0.3) really just blurs away the combing. If you remove the SelectOdd() and look at just the result of that blurring (skip the RIFE() too) you'll see that there's really only motion at every other frame. And the odd frames are cleaner than the even frames. So I discard the even frames. That leaves you with a 15 fps video. RIFE() is used to double the frame rate to 30 fps. That gives smoother and cleaner motion than just keeping the even and odd frames.

    There are much faster frame rate doublers, but RIFE() usually gives the best results -- especially with shots like those where the actors are struggling behind the jail bars. Compare:

    Code:
    z_ConvertFormat(pixel_type="RGBPS", colorspace_op="709:709:709:l=>rgb:709:709:f")
    Rife(gpu_thread=1, model=9, fps_num=30000, fps_den=1001)
    z_ConvertFormat(pixel_type="YUV420P8", colorspace_op="rgb:709:709:f=>709:709:709:l")
    to:

    Code:
    FrameRateConverter() # defaults to double frame rate
    or:

    Code:
    Interframe(GPU=true, cores=4, NewNum=30000, NewDen=1001)
    Quote Quote  
  10. Oh, I just noticed that there are some color shots in the middle of the video. And the interlacing problem appears to be a little different in those shots. Removing the GreyScale() will let you keep the color.
    Quote Quote  
  11. Originally Posted by jagabo View Post
    Originally Posted by LaserBones View Post
    What is the reasoning for SelectOdd and then frame interpolation with rife?
    The sequence SelectOdd().Spline36Resize(width, height/2).Santiag().Sharpen(0.0, 0.3).nnedi3(dh=true).Sharpen(0.0, 0.3) really just blurs away the combing. If you remove the SelectOdd() and look at just the result of that blurring (skip the RIFE() too) you'll see that there's really only motion at every other frame. And the odd frames are cleaner than the even frames. So I discard the even frames. That leaves you with a 15 fps video. RIFE() is used to double the frame rate to 30 fps. That gives smoother and cleaner motion than just keeping the even and odd frames.

    There are much faster frame rate doublers, but RIFE() usually gives the best results -- especially with shots like those where the actors are struggling behind the jail bars. Compare:

    Code:
    z_ConvertFormat(pixel_type="RGBPS", colorspace_op="709:709:709:l=>rgb:709:709:f")
    Rife(gpu_thread=1, model=9, fps_num=30000, fps_den=1001)
    z_ConvertFormat(pixel_type="YUV420P8", colorspace_op="rgb:709:709:f=>709:709:709:l")
    to:

    Code:
    FrameRateConverter() # defaults to double frame rate
    or:

    Code:
    Interframe(GPU=true, cores=4, NewNum=30000, NewDen=1001)
    Jagabo, I'm using Rife on another encode. Thank you for introducing me to it. I was curious why you changed the colorspace before you processed with rife?
    Quote Quote  
  12. Originally Posted by LaserBones View Post
    I was curious why you changed the colorspace before you processed with rife?
    RGBPS (32bit per channel RGB float) is a requirement as mentioned in the README

    https://github.com/Asd-g/AviSynthPlus-RIFE/blob/main/README.md
    input
    A clip to process.
    It must be in RGB 32-bit planar format.
    Quote Quote  
  13. I just read that. I'm blind. Thank you!
    Quote Quote  



Similar Threads

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