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.
The color is still requiring improvement, but that is a big work to do now (the movie last for 2h 30min)Code:EEDI2().Spline36Resize(width,height).turnleft().EEDI2().Spline36Resize(height,width).turnright()
Some screenshot (the open title looks like a VHS tape recording, also the face of Montgomery Clift):
![]()
![]()
![]()
![]()
![]()
![]()
+ Reply to Thread
Results 1 to 30 of 31
-
-
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. -
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) -
-
I've been doing some color correction towards this source.
After / BeforeLast edited by xuguang_he; 19th Apr 2013 at 08:39.
-
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. -
I've met with a new problem, you see, the background color black is a bit mess and mixed with other color
-
-
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.
-
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
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
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)
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.
-
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.
-
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. -
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. -
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.
-
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.
-
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 everythingLast edited by poisondeathray; 19th Apr 2013 at 22:00.
-
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.
-
Decimating this kind of damaging spot means to sacrifice the picture quality?
RemoveSpot() really cause visible detail loss.
Similar Threads
-
Studdering/Surging MPEG Video - Interlacing Problem?
By hech54 in forum RestorationReplies: 2Last Post: 6th Jan 2013, 09:03 -
Interlacing problem?
By killerteengohan in forum DVD RippingReplies: 16Last Post: 18th Aug 2011, 06:24 -
De-interlacing problem?
By fredo2010 in forum Video ConversionReplies: 17Last Post: 27th Oct 2010, 15:48 -
Interlacing problem with Blu-Ray ?
By quantumfire in forum Authoring (Blu-ray)Replies: 9Last Post: 28th Jul 2009, 13:51 -
Good Video Explaining Interlacing and De-Interlacing
By Soopafresh in forum Newbie / General discussionsReplies: 3Last Post: 14th Aug 2008, 19:50