VideoHelp Forum
+ Reply to Thread
Results 1 to 14 of 14
Thread
  1. I'm converting a retail DVD (NTSC - interlaced BFF) to mp4 for a family member. Originally, I planned on running it through Avisynth for some denoising, deinterlace with QTGMC, then encode to X264/mp4. I've ran into some type of problem with the video that I can't figure out. I don't know if it's some type of interlacing problem or maybe the video is telecined. If someone could take a look at the sample clip and offer some input I would really appreciate it. Thanks.
    Image Attached Files
    Quote Quote  
  2. Member
    Join Date
    May 2017
    Location
    Australia
    Search Comp PM
    Looks like interlacing which is reported by mediainfo, ran QTGMC on it and attached result
    Image Attached Files
    Quote Quote  
  3. Originally Posted by film View Post
    Looks like interlacing which is reported by mediainfo, ran QTGMC on it and attached result
    Thanks for the quick response. The reason I wasn't sure what the problem was is at around 6 seconds into the video there is some type of artifacts(?) along the edge of the guys hat and in the red lettering on the back of his jacket below the word "Nitro". What QTGMC setting did you use? Thanks.
    Quote Quote  
  4. Originally Posted by JayD View Post
    at around 6 seconds into the video there is some type of artifacts(?) along the edge of the guys hat and in the red lettering on the back of his jacket below the word "Nitro".
    Those are dot crawl artifacts -- incomplete removal of the chroma carrier from the luma. There are ways of dealing with them. For VHS you can usually get away with blurring them away (since VHS is inherently low resolution anyway) with something like Spline36Resize(width/2, height).Spline36Resize(width,height). The blurring would be noticeable here though. There are explicit dot crawl removal filters like CheckMate(thr=10, max=20, tthr2=20), but they usually don't work well with moving edges. Other ways of dealing with them include overlaying a blurred image (as in the Splin36Resize example above) over the original using a mask so that only colored edges are blurred.

    That video isn't interlaced, it's telecined film. Rather than bobbed it should be inverse telecined back to 23.976 fps film frames with TFM().TDecimate(). It's also got a chroma blending problem that will be hard to fix. Fortunately it doesn't have a lot of motion so you can probably just ignore it. Maybe just a vInverse() after TFM().TDecimate().
    Last edited by jagabo; 30th Oct 2017 at 21:40.
    Quote Quote  
  5. Originally Posted by jagabo View Post
    Originally Posted by JayD View Post
    at around 6 seconds into the video there is some type of artifacts(?) along the edge of the guys hat and in the red lettering on the back of his jacket below the word "Nitro".
    Those are dot crawl artifacts -- incomplete removal of the chroma carrier from the luma. There are ways of dealing with them. For VHS you can usually get away with blurring them away (since VHS is inherently low resolution anyway) with something like Spline36Resize(width/2, height).Spline36Resize(width,height). The blurring would be noticeable here though. There are explicit dot crawl removal filters like CheckMate(thr=10, max=20, tthr2=20), but they usually don't work well with moving edges. Other ways of dealing with them include overlaying a blurred image (as in the Splin36Resize example above) over the original using a mask so that only colored edges are blurred.

    That video isn't interlaced, it's telecined film. Rather than bobbed it should be inverse telecined back to 23.976 fps film frames with TFM().TDecimate(). It's also got a chroma blending problem that will be hard to fix. Fortunately it doesn't have a lot of motion so you can probably just ignore it. Maybe just a vInverse() after TFM().TDecimate().
    I actually have a VHS capture of this same DVD and thought about using that instead. Out of curiosity, I loaded the video into MeGUI and this is what it analyzed the video as. Going to try your suggestion now.
    Image Attached Thumbnails Click image for larger version

Name:	Capture.JPG
Views:	162
Size:	60.1 KB
ID:	43563  

    Quote Quote  
  6. Member
    Join Date
    May 2017
    Location
    Australia
    Search Comp PM
    Originally Posted by JayD View Post
    Originally Posted by film View Post
    Looks like interlacing which is reported by mediainfo, ran QTGMC on it and attached result
    Thanks for the quick response. The reason I wasn't sure what the problem was is at around 6 seconds into the video there is some type of artifacts(?) along the edge of the guys hat and in the red lettering on the back of his jacket below the word "Nitro". What QTGMC setting did you use? Thanks.
    For QTGMC I used QTGMC(Preset = "Slower") but there are plenty of other settings to experiment with if you have lots of time
    I tried the default decomb filter in handbrake but the result was not good unfortunately
    Quote Quote  
  7. Oh, I was wrong about the clip being telecined film. It's a mix of interlaced video and telecined film. You're better off bobbing (and QTGMC is the best of those) rather than TMF().TDecimate().
    Quote Quote  
  8. The first portion of the clip is standard NTSC interlaced BFF video. The last 1/3 is telecined 24p material. The change happens during the fade to the closeup of his hand winding the reel.

    The simplest thing is to leave it as is and just treat everything as 29.97 interlaced video. An alternative is to cut it into two (or more) segments and work on the interlaced version separately from the 24p version. You could also convert either of the two sections so it matches the other. I suppose the "ultimate" would be to convert both segments into some common format. You could modify the 29.97 to 24p and IVTC the last part so it too is 24p. The would, of course, degrade the 29.97 interlaced material. As another alternative, you could modify the 24p material into 29.97 interlaced. That is a simple AVISynth script.

    The final alternative would be to convert both segments into something that is a superset of each one. The obvious thing to do would be to convert both to 60p and then splice these two segments together.

    I have no idea how many times, in the full video, it changes from one to the other. A simple way to reduce the time you must spend on this is to convert the entire video to 60p assuming the whole video is 24p, and then do a second pass to convert the entire thing to 60p assuming the whole video is 29.97 interlaced. Then, take those two 60p versions and cut between them so you get the correct conversion for each segment.

    You can deal with the minor dot crawl issues at any point in this workflow and use the techniques already mentioned.
    Quote Quote  
  9. Originally Posted by johnmeyer View Post
    The first portion of the clip is standard NTSC interlaced BFF video. The last 1/3 is telecined 24p material. The change happens during the fade to the closeup of his hand winding the reel.

    The simplest thing is to leave it as is and just treat everything as 29.97 interlaced video. An alternative is to cut it into two (or more) segments and work on the interlaced version separately from the 24p version. You could also convert either of the two sections so it matches the other. I suppose the "ultimate" would be to convert both segments into some common format. You could modify the 29.97 to 24p and IVTC the last part so it too is 24p. The would, of course, degrade the 29.97 interlaced material. As another alternative, you could modify the 24p material into 29.97 interlaced. That is a simple AVISynth script.

    The final alternative would be to convert both segments into something that is a superset of each one. The obvious thing to do would be to convert both to 60p and then splice these two segments together.

    I have no idea how many times, in the full video, it changes from one to the other. A simple way to reduce the time you must spend on this is to convert the entire video to 60p assuming the whole video is 24p, and then do a second pass to convert the entire thing to 60p assuming the whole video is 29.97 interlaced. Then, take those two 60p versions and cut between them so you get the correct conversion for each segment.

    You can deal with the minor dot crawl issues at any point in this workflow and use the techniques already mentioned.
    For simplicity I'll just treat the entire DVD as 29.97 interlaced. Thanks.
    Quote Quote  
  10. Try something along the lines of:

    Code:
    Mpeg2Source("CLIP.d2v", CPU2="ooooxx", Info=3) 
    Crop(8,0,-8,-0)
    QTGMC(EZDenoise=1.0, DenoiseMC=true)
    
    blurred = Spline36Resize(width/2,height).Spline36Resize(width,height)
    emask = VtoY().aWarpSharp(depth=10).mt_edge(thY1=2, thY2=2).mt_expand().mt_inpand().BilinearResize(width,height).Blur(1.5)
    Overlay(last,blurred, mask=emask)
    
    MergeChroma(last, aWarpSharp(depth=20))
    Image Attached Files
    Quote Quote  
  11. Originally Posted by jagabo View Post
    Try something along the lines of:

    Code:
    Mpeg2Source("CLIP.d2v", CPU2="ooooxx", Info=3) 
    Crop(8,0,-8,-0)
    QTGMC(EZDenoise=1.0, DenoiseMC=true)
    
    blurred = Spline36Resize(width/2,height).Spline36Resize(width,height)
    emask = VtoY().aWarpSharp(depth=10).mt_edge(thY1=2, thY2=2).mt_expand().mt_inpand().BilinearResize(width,height).Blur(1.5)
    Overlay(last,blurred, mask=emask)
    
    MergeChroma(last, aWarpSharp(depth=20))
    Looks good. Trying it on a few random clips off of the DVD now.
    Quote Quote  
  12. By the way, that edge mask only uses the V channel. I used that because red is very strong in the V channel. For it to work with other colors you might have to build a mask that includes the U channel too.
    Quote Quote  
  13. Originally Posted by jagabo View Post
    By the way, that edge mask only uses the V channel. I used that because red is very strong in the V channel. For it to work with other colors you might have to build a mask that includes the U channel too.
    The end results look very good. This DVD is part of a 3 part series. It also worked well for the other 2. Thanks again for your help.
    Quote Quote  
  14. Glad it worked out for you. If you want to try an edge mask based on both U and V, replace the emask= line with:

    Code:
    umask = UtoY().aWarpSharp(depth=10).mt_edge(thY1=4, thY2=4).mt_expand().mt_inpand().BilinearResize(width,height).Blur(1.0)
    vmask = VtoY().aWarpSharp(depth=10).mt_edge(thY1=4, thY2=4).mt_expand().mt_inpand().BilinearResize(width,height).Blur(1.0)
    emask = Overlay(umask, vmask, mode="lighten")
    Quote Quote  



Similar Threads

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