VideoHelp Forum




+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 31
  1. Another bootleg PAL DVD of a magnificent old hollywood movie, "Raintree County".
    I've done the anti-aliasing work, but somehow the picture doesn't improve much. There is still many small interlacing remain, which couldn't be decimate completely by TIVTC (as far as I was concerned, this shouldn't be used on PAL sources). I've also tried "yadifmod(edeint=nnedi2())", it made the picture more soft. None of them could do a thorough and perfect (or to say "almost perfect") deinterlaced job.
    Also, the picture was aliased, even the following code can't do a satisfying job.
    Code:
    EEDI2().Spline36Resize(width,height).turnleft().EEDI2().Spline36Resize(height,width).turnright()
    The color is still requiring improvement, but that is a big work to do now (the movie last for 2h 30min)

    Some screenshot (the open title looks like a VHS tape recording, also the face of Montgomery Clift):
    Image Attached Files
    Quote Quote  
  2. This is a screenshot of MeGUI preview window which I've added the anti-aliasing code to. Just take a look at the remain aliasing at the shoulder of the man. (please ignore the error of aspect ratio, which often appears in MeGUI's preview window)
    Image Attached Thumbnails Click image for larger version

Name:	SNAG-13041920102000.png
Views:	338
Size:	607.2 KB
ID:	17401  

    Quote Quote  
  3. There's something odd about the two fields in those clips. A quick workaround:

    AssumeTFF()
    QTGMC(preset="fast")
    Merge(SelectEven(),SelectOdd())

    Or even:

    AssumeTFF()
    Bob()
    Merge(SelectEven(),SelectOdd())
    Sharpen(0,0.5)

    I'll see if there's a better solution.
    Quote Quote  
  4. More aliasing frame...
    Image Attached Thumbnails Click image for larger version

Name:	SNAG-13041920341000.jpg
Views:	315
Size:	183.8 KB
ID:	17402  

    Click image for larger version

Name:	SNAG-13041920352600.jpg
Views:	313
Size:	187.6 KB
ID:	17403  

    Quote Quote  
  5. The aliasing appears on the boat apparently.
    Quote Quote  
  6. Another clip, may be of some help.

    BTW, the reason I spent so much time on this kind of bootleg PAL sources is that the movie haven't get an official release in Region 1, or because the edition been released in region 1 was also unsatisfying. (It's normal to see this situation for some Made-On-Demand discs which are now popular among studios)
    Image Attached Files
    Quote Quote  
  7. Originally Posted by jagabo View Post
    There's something odd about the two fields in those clips. A quick workaround:

    AssumeTFF()
    QTGMC(preset="fast")
    Merge(SelectEven(),SelectOdd())

    Or even:

    AssumeTFF()
    Bob()
    Merge(SelectEven(),SelectOdd())
    Sharpen(0,0.5)

    I'll see if there's a better solution.
    Thank you for your suggestion. I've tried then and it worked alright, though a bit slow.
    Quote Quote  
  8. I've been doing some color correction towards this source.
    After / Before
    Image Attached Thumbnails Click image for larger version

Name:	SNAG-13041921311200.jpg
Views:	230
Size:	325.9 KB
ID:	17405  

    Last edited by xuguang_he; 19th Apr 2013 at 08:39.
    Quote Quote  
  9. After / Before (Color correction, anti-aliasing, deinterlaced)



    Quote Quote  
  10. The original color is a little yellow, I switch it to purple a bit.
    Image Attached Thumbnails Click image for larger version

Name:	SNAG-13041922011700.jpg
Views:	215
Size:	341.7 KB
ID:	17409  

    Click image for larger version

Name:	SNAG-13041922241500.jpg
Views:	215
Size:	397.1 KB
ID:	17410  

    Click image for larger version

Name:	SNAG-13041922252300.jpg
Views:	225
Size:	355.4 KB
ID:	17411  

    Click image for larger version

Name:	SNAG-13041922262700.jpg
Views:	221
Size:	369.2 KB
ID:	17412  

    Quote Quote  
  11. Way too purple.

    I didn't find anything that worked better than the QTGMC() code I gave earlier. You might follow up with a small vertical sharpen.
    Quote Quote  
  12. Sharpen cause some unexpected halos.
    Quote Quote  



  13. Also occurs some serious interlaced frames. Even a little blended.
    Quote Quote  
  14. I've met with a new problem, you see, the background color black is a bit mess and mixed with other color
    Image Attached Thumbnails Click image for larger version

Name:	SNAG-13041923332600.jpg
Views:	421
Size:	156.0 KB
ID:	17415  

    Quote Quote  
  15. Originally Posted by xuguang_he View Post
    Sharpen cause some unexpected halos.
    Then sharpen less.
    Quote Quote  
  16. Originally Posted by xuguang_he View Post
    I've met with a new problem, you see, the background color black is a bit mess and mixed with other color
    Then use some 3d noise reduction.
    Quote Quote  
  17. Originally Posted by xuguang_he View Post
    Also occurs some serious interlaced frames. Even a little blended.
    QTGMC will take care of the interlaced frames. Blended frames will be harder to get rid of.
    Quote Quote  
  18. Originally Posted by jagabo View Post
    Originally Posted by xuguang_he View Post
    I've met with a new problem, you see, the background color black is a bit mess and mixed with other color
    Then use some 3d noise reduction.
    Could I use RemoveDegrain? Or FFT3DFilter?
    Quote Quote  
  19. FFT3DFilter didn't seem to work, and TemporalDegrain used up too much memory.
    Quote Quote  
  20. setmemorymax(some value)

    try 256 to start with
    Quote Quote  
  21. If you only want to remove the noise from the dark areas use a mask based on the luma channel.

    Code:
    mask=ColorYUV(last, gain_y=1000, off_y=-80) # build high contrast mask
    overfiltered=TTempSmooth(last, strength=8, maxr=7, lthresh=20, cthresh=30) # highly filtered version
    Overlay(overfiltered, last, 0, 0, mask) # overlay only the dark areas
    Last edited by jagabo; 19th Apr 2013 at 12:09.
    Quote Quote  
  22. An example of luma mask method, crushing black level . You can apply different filter or method through the mask (instead crushing black level ) if you wanted to

    Click image for larger version

Name:	lumamask.png
Views:	628
Size:	147.2 KB
ID:	17416


    To visualize the mask (in order to tweak the mask, e.g. you might have to adjust black b=, white w= parameters), use show=true, upper = true/false to invert the mask. Filtered versions pass thru the white areas, original is passed thru the black areas
    Click image for larger version

Name:	show=true.png
Views:	576
Size:	25.7 KB
ID:	17417



    Code:
    ImageSource("SNAG-13041923332600.jpg")
    Crop(0,0,0,-1) #required for YV12 because of the screenshot, not required on your orignal source
    ConvertToYV12()
    orig=last
    
    orig
    Levels(16,1,255,0,255,false) # crush black level
    Lumamask(orig, b=30, upper=true)
    LumaMask function

    Code:
    
    ##############################################################
    ###                                                          #
    ### LumaMask() (10-09-2011)                                  #
    ###                                                          #
    ##############################################################
    ###
    ### Function by Didée, adapted by Dogway:
    ### http://forum.doom9.org/showpost.php?p=761786&postcount=3
    ### http://forum.doom9.org/showthread.php?t=158954
    ###
    ###
    ### Mixes 2 versions of a source by a mask defined by luminosity (Luma Plane)
    ###
    ###
    ### filtered [default: last]
    ### -------------------
    ### By default the input of the function is assumed as filtered
    ###
    ###
    ### raw [default: filtered]
    ### -------------------
    ### Define where you want to create the mask from, and thus blend with the filtered clip.
    ###
    ###
    ### b [default: 24]
    ### -------------------
    ### Limit for 100% black in your mask. [0...255]
    ###
    ###
    ### W [default: 48]
    ### -------------------
    ### Limit for 100% white in your mask. [0...255]
    ###
    ###
    ### upper [default: false]
    ### -------------------
    ### Inverts the mask. By default filtered clip will be passed through the white parts of the mask.
    ###
    ###
    ### show [default: false]
    ### -------------------
    ### Shows the mask, which you can directly use with any masking operations on your own.
    ###
    ###_______________________
    ###                       |
    ### Example:              |
    ###  raw=last             |
    ###  YourFilter()         |
    ###  LumaMask(raw)        |
    ###_______________________|
    ###
    ###   This will pass the filtered version of the clip only in the brightest part of the image,
    ###   starting where luma pixel value is 24 bright and smoothed up to 100% bypass from 48 brightness value onwards.
    ###   Useful to protect dark/bright areas from certain filters.
    ###
    ###   Requires:
    ###   Masktools2: http://forum.doom9.org/showthread.php?t=98985
    ###
    ##############################################################
    
    
    function LumaMask(clip filtered, clip raw, int "b", int "w", bool "upper", bool "show"){
    
    raw      = default(raw, filtered)
    
    LO       = string(default(b, 24))
    HI       = string(default(w, 48))
    upper    = default(upper, false)
    show     = default(show,  false)
    
    
    code     = upper ? "x "+LO+" < 255 x "+HI+" > 0 255 x "+LO+" - 255 "+HI+" "+LO+" - / * - ? ?" : \
                       "x "+LO+" < 0   x "+HI+" > 255 0 x "+LO+" - 255 "+LO+" "+HI+" - / * - ? ?"
    
    msk      = raw.mt_lut(code,u=-128,v=-128)
    
    show  ?  msk : mt_merge(raw, filtered, msk, luma=true, U=3,V=3)}
    Last edited by poisondeathray; 19th Apr 2013 at 12:11.
    Quote Quote  
  23. Thank you And could this LumaMask tool been apply to the whole movie or just this frame? It is easy to catch other mixing black color in other frames of the source.
    Quote Quote  
  24. Code:
    orig=last
    orig
    Levels(16,1,255,0,255,false) # crush black level
    Lumamask(orig, b=30, upper=true, w=100, show=true)



    Code:
    orig=last
    orig
    Levels(16,1,255,0,255,false) # crush black level
    Lumamask(orig, b=30, upper=true)


    I've tried LumaMask on another frame, just think it makes the scene darker, and the dark area looks purely black, seems have lost the detail gradation.
    Quote Quote  
  25. Code:
    mask=ColorYUV(last, gain_y=1000, off_y=-80) # build high contrast mask
    overfiltered=TTempSmooth(last, strength=8, maxr=7, lthresh=20, cthresh=30) # highly filtered version
    Overlay(overfiltered, last, 0, 0, mask) # overlay only the dark areas


    This one doesn't hurt other frames' dark area, but the open title is still miserable.
    Quote Quote  
  26. When I give you an example I don't mean it to be the perfect solution to your problem. I expect you to figure out how the code works and adapt it to your situation. It's up to you to understand what the filters are doing. I'm willing to answer specific questions about the techniques and filters but I don't have the patience to fix your videos for you. That said, the temporal smoother I used did leave banding in the dark background. You could combine poisondeathray's trick of crushing the blacks to make the background perfectly black, thereby eliminating the banding. Also, if the banding in your sample image is more than just barely visible, you need to adjust your monitor.
    Last edited by jagabo; 19th Apr 2013 at 20:25.
    Quote Quote  
  27. OK, well, I've never asked anyone to repair the video for me. Even the tutorial sanlyn wrote is fit just for my video, I still would do some technical changes to it. So, as far as I was concerned, learning is really a personal matter. What I've been doing is just a comparison, and it doesn't meant to oppose your suggestion.
    Quote Quote  
  28. Originally Posted by xuguang_he View Post


    I've tried LumaMask on another frame, just think it makes the scene darker, and the dark area looks purely black, seems have lost the detail gradation.

    Do you understand why ?

    You obviously can't use the same lumamask settings for the entire movie. At minimum you have to adjust the mask settings for black e.g. b=something

    100% Black => passed thru
    100% White => filtered
    Greyscale => intermediate

    Since all shades of grey have varying levels of filtered vs. original clip that are passed through, have a closer look at your mask . All those white areas in the mask corresponding to the dark areas in the real movie will be crushed! All the areas that are grey in the mask will be darkened by an intermediate amount. That probably isn't what you want to do with other parts of the movie.

    You have to adjust the mask values, or use another filter approach applied through the mask

    If this is the same movie as the screenshots above, I doubt you need to do anything with a lumamask on the main movie

    You're supposed to learn from the examples , not apply them blindly to everything
    Last edited by poisondeathray; 19th Apr 2013 at 22:00.
    Quote Quote  
  29. Originally Posted by xuguang_he View Post
    What I've been doing is just a comparison, and it doesn't meant to oppose your suggestion.
    The point of my script was to show you how to use a luma mask to filter dark areas without changing lighter areas. You can use whatever filters you want. You could filter dark areas more heavily that light areas, or vice versa. If you darken just the filtered video in my script the lighter parts of the video will remain unchanged. You can adjust the luma mask to control at what intensity the rolloff is and how sharp or fuzzy the boundaries are.
    Quote Quote  


  30. Decimating this kind of damaging spot means to sacrifice the picture quality?
    RemoveSpot() really cause visible detail loss.
    Quote Quote  



Similar Threads

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