VideoHelp Forum
+ Reply to Thread
Results 1 to 7 of 7
Thread
  1. Here's a snippet from a DVD release https://fex.net/s/csfaybr I chose a short segment showing the credits because on the letters you can see clearly the phenomenon I'd like to get rid of, this vertical juddering. How can I do it in avisynth?

    Thanks!
    Quote Quote  
  2. The artifact around the titles looks like dot crawl. It is very surprising to see that in something which originated on film and makes it look like this is a 2nd- or 3rd-generation copy of the original that went through a video stage before ending up on DVD. However, I have seen reports of other DVDs that have dot crawl, so I guess a lot of studios take shortcuts.

    You can filter the dot crawl with various noise filters. I had similar dot crawl on a B&W Kinescope, and found that a convolution filter worked the best. Here is a link to the thread where people helped me with that:

    Remove cross hatch pattern from Kinescope
    Quote Quote  
  3. Yeah it kind of resembles dot crawl, somewhat. I see it on more than just the letters and words too, its in lots of areas on the video. I don't think its dot crawl though.

    So far the only thing I found that helps in avisynth is
    Code:
    xaa(mode="di2 nnedi3", mask=1, chroma=0, nns=4, cstr=0, mthr=8, mtype="TEMmod1")
    It's not really cleaning it though, just making it a bit less obvious. Kind of a waste.


    Since its old, and black and white, you could probably just blur it out.

    This hid it pretty well.

    Code:
    BicubicResize(width/2,height/2).BicubicResize(720,576)
    LimitedSharpenFaster(ss_x=1.00, ss_y=1.00, strength=15, overshoot=0, undershoot=0, soft=0, edgemode=0)
    This is a bit more strong, but does hide it even better.

    Code:
    BicubicResize(width/2,height/2)
    checkmate(tthr2=0)
    LanczosResize(720,576)
    LimitedSharpenFaster(ss_x=1.00, ss_y=1.00, strength=15, overshoot=0, undershoot=0, soft=0, edgemode=0)
    Last edited by killerteengohan; 18th Jun 2020 at 17:44.
    Quote Quote  
  4. Originally Posted by bruno321 View Post
    Here's a snippet from a DVD release https://fex.net/s/csfaybr I chose a short segment showing the credits because on the letters you can see clearly the phenomenon I'd like to get rid of, this vertical juddering. How can I do it in avisynth?
    Stab()
    Quote Quote  
  5. The following two pairs of pics shows the results of the convolution kernel blurring that was recommended in that thread I linked to above. You have to click on the pics to view them full screen in order to see the results. The closeup of the face provides the best way to see how much detail is lost. Both pics show only a portion of the frame, in order to make it easier to see both the artifact elimination and the detail loss.

    To my eye, the convolution blur does a very good job reducing and almost completely eliminating the artifact. There is a slight loss in detail, but I was able to "recover" almost all of that by applying just a little bit of sharpening after the blur. If wanted, I can upload a third pic of the face to show what it looks like with the sharpening added, although I think I'll leave that as an "exercise left to the user."
    Image Attached Thumbnails Click image for larger version

Name:	Before_01.png
Views:	33
Size:	166.6 KB
ID:	53850  

    Click image for larger version

Name:	After_01.png
Views:	26
Size:	133.1 KB
ID:	53851  

    Click image for larger version

Name:	Before_02.png
Views:	30
Size:	228.3 KB
ID:	53852  

    Click image for larger version

Name:	After_02.png
Views:	21
Size:	178.2 KB
ID:	53853  

    Quote Quote  
  6. You can protect parts of the picture that don't have the noise with a mask. This is the downscale/upscale blurring technique with the addition of a mask to protect other parts of the picture

    Code:
    ###################################################
    #
    # build a mask of areas where there are 
    # alternatin vertical lines
    #
    ##################################################
    
    function VLMask(clip v, int "threshold")
    {
        threshold = default(threshold, 5)
    
        Subtract(v, v.blur(1.0, 0.0))#.Sharpen(0.6, 0.0))
        GeneralConvolution(0, "
           -0  0 -0 
           -4  8 -4
           -0  0 -0", chroma=false, alpha=false)
        mt_lut("x 125 - abs")
        mt_binarize(threshold) # threshold
    }
    
    ##################################################
    
    
    Mpeg2Source("snippet.demuxed.d2v") 
    
    lmask = VLMask(25).mt_expand().Blur(1.0)
    blurry = Spline36Resize(320,height).Spline36Resize(width,height).TemporalDegrain()
    Overlay(last, blurry, mask=lmask)
    I used a strong temporal noise reducer to further reduce the moving bands. If you leave that out the results are similar to johnmeyer's Convolution3D where the artifacts were, sharper everywhere else. You can play around with the downscale size, the VLMask threshold, and other temporal denoisers. Also, if you plan on using a temporal denoiser on the entire frame you can remove the TemporalDegrain after the resizers.

    I think this is the same frame as in post #5:

    Image
    [Attachment 53861 - Click to enlarge]
    Last edited by jagabo; 18th Jun 2020 at 21:43.
    Quote Quote  
  7. Thank you all for looking at it and for the suggestions! Particularly, jagabo's last one works really good, I think.
    Quote Quote  



Similar Threads

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