VideoHelp Forum




+ Reply to Thread
Page 2 of 2
FirstFirst 1 2
Results 31 to 54 of 54
  1. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Originally Posted by provato View Post
    2. Is Vinverse worth enough, so that I should consider upgrading to avs 2.6.0? (since I hardly ever come across residual combing after IVTC)
    Vinverse works in Avisynth 2.5x and 2.6x. 2.6x is a mulithreading version. Almost every plugin works in 2.5x, but some 2.6 plugin versions have been developed -- they usually won't work in 2.5. There are also some popular 2.5 plugins that either won't work in 2.6 or that offer no MT advantage when used in 2.6x. 2.6x also requires that you learn a few things about memory management settings. I had so much hassle with 2.6 and many plugins, I decided to wait for improvements. It's up to you, but 2.5 is easier for beginners IMO.

    Sometimes you'll end up with a rotten piece of video (this VOB ain't so great, either) where decombing filters come in handy.
    - My sister Ann's brother
    Quote Quote  
  2. Originally Posted by jagabo View Post
    Even worse, the bright halos have dark halos to their sides
    hmmmm... I thought that these "dark halos" were called edge ghosting (because they seem like "second edges" a few pixels beside the real edges). That's what I was missing and confused me. Apparently edge ghosting is an entirely different thing

    Originally Posted by LMotlow View Post
    Vinverse works in Avisynth 2.5x and 2.6x. 2.6x is a mulithreading version.
    I'll definitely look into 2.6x then, because I'm on a 4-core cpu
    Quote Quote  
  3. Originally Posted by LMotlow View Post
    But the way I created the d2v might have made a difference. When I opened the VOB in DGIndex I got a warning that a field order transition was detected. DGindex offered to correct it, so I said yes.
    I did the same. If you step through the video field by field you'll see there is an orphaned field there -- a field for which there is no complimentary field to complete the frame. If you leave out the pp=0 argument to TFM it will bob that field. It may be possible to avoid that field by using field=0 or field=1 as arguments to TFM.
    Quote Quote  
  4. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Thanks, jagabo. Will experiment this weekend.
    - My sister Ann's brother
    Quote Quote  
  5. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Originally Posted by provato View Post
    Originally Posted by LMotlow View Post
    Vinverse works in Avisynth 2.5x and 2.6x. 2.6x is a mulithreading version.
    I'll definitely look into 2.6x then, because I'm on a 4-core cpu
    You could. Keep in mind that with many 2.5 plugins there's no multi-threaded advantage. You still have to set 2.6 memory for them to work without crashing or causing errors. Some filters will be a breeze, some won't.

    Originally Posted by provato View Post
    Originally Posted by jagabo View Post
    Even worse, the bright halos have dark halos to their sides
    hmmmm... I thought that these "dark halos" were called edge ghosting (because they seem like "second edges" a few pixels beside the real edges). That's what I was missing and confused me. Apparently edge ghosting is an entirely different thing
    There's some fuzzy semantics involved with stuff like halos, ghosts, DCT ringing (now there's another one to get you diving into the coffee). Yep, you could say you have two halos, some bright ones against the edge and a dark "echo" apart from that. Some people call that second halo an "edge ghost" because that's what it looks like. Most de-halo filters will work on the bright one up against the edge. The farther one responds better to anti-ghost filters. Usually. That's what I used. Some use something like masktools -- one of these days, like many users, I'll be able to figure that one out! I've seen it done with edge ghosts but never saw it explained. I got a feeling jagabo will jump ind tell us more. He's pretty good at explaining things.

    Below is an image I made that demonstrates some artifacts. It's the same frame from the original VOB posted in post #22. Drew some white arrows pointing to different artifacts.

    Click image for larger version

Name:	artifacts1.png
Views:	936
Size:	825.1 KB
ID:	27967
    D = dot crawl. Sometimes it's obvious, sometimes not. Sometimes they sit on top of a bright halo.
    H = halos. The brighter kind, for semantics sake.
    E = edge ghosts or, if thou wilt, secondary halos. And I've seen people call it mosquito noise. Take your pick. It's not really mosquito noise, but often looks like it.
    G = rough gradients, or hard or ragged transitions between shades of color. This gets more complicated. Sometimes those transitions are drawn or created that way, kind of grainy or mottled. Sometimes they're broken up or mottled with dot crawl or compression artifacts, areas that don't have enough bitrate or the right encoder settings to define subtle areas correctly. In this case, when those areas were encoded they got noisy and blocky and kept changing shape. Many people try using a degrainer to smooth it out -- but that usually removes needed detail and cause stronger banding. What you do is use a filter that smooths those edges and, believe it or not, applies some fine film-like grain to fill in any missing details. Sometimes sizing down and sizing back up can clean things up a bit by combining many fine edges and blotches into something more solid. I did all of those things, for various reasons, using some tricks in one script and other tricks in another. Those tricks had different effects in different scenes. You do lose some detail. Depends on what you want to live with and what bothers you most.\

    BTW, a real, bonafide ghost does look like a double image offset a few or many pixels from its owner. It's not just an edge. It has the color and detail of the original object, but is usually somewhat transparent.
    Last edited by LMotlow; 10th Oct 2014 at 11:08.
    - My sister Ann's brother
    Quote Quote  
  6. Originally Posted by LMotlow View Post
    I've seen people call it mosquito noise.
    To me mosquito noise refers to DCT ringing artifacts. These occur because the DCT is only an approximation of the original image. It results in ringing artifacts at sharp edges.

    Quick theory:
    1) Any periodic waveform can be constructed with an infinite series of cosine or sine functions.
    2) Hence, any periodic waveform can be approximated by a finite series of cosine or sine functions.

    https://en.wikipedia.org/wiki/Trigonometric_approximation
    https://forum.videohelp.com/threads/294144-Viewing-tests-and-sample-files?p=1792973&vie...=1#post1792973

    The image from that second line, grossly contrast exaggerated:

    Click image for larger version

Name:	artifacts.png
Views:	931
Size:	7.4 KB
ID:	27968

    When the image is moving (even still shots in video usually have a tiny bit of movement) the ringing noise moves about, like tiny mosquitoes flying around the edges.

    Originally Posted by LMotlow View Post
    BTW, a real, bonafide ghost does look like a double image offset a few or many pixels from its owner. It's not just an edge. It has the color and detail of the original object, but is usually somewhat transparent.
    Yes, that's what I think of as ghosting. A reflection, echo, repetition of the original image, slightly (or sometimes largely) offset from the original image.
    Quote Quote  
  7. Very well explained gentlemen.
    In fact, from now on, these two last posts are on my browser's bookmarks to have as a reference.

    I hope one day I'll be able to restore VHS too (I have really old but rare cartoon VHS, that need first to transfer the brown tape into new plastic cases because the old plastic spinners cause trouble in the image and sound)
    Quote Quote  
  8. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Brilliant, jagabo. Like many folks around here, I have a "jagabo" folder that's getting mighty full over time. Thanks again. It's a devil of a problem. I have fits cleaning it up.
    - My sister Ann's brother
    Quote Quote  
  9. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Originally Posted by provato View Post
    I hope one day I'll be able to restore VHS too (I have really old but rare cartoon VHS, that need first to transfer the brown tape into new plastic cases because the old plastic spinners cause trouble in the image and sound)
    VHS can be mighty rough, especially without good players and capture gear. That VOB certainly looks as if it came from tape.

    I'd still recommend jagabo's script as a starting point over mine, even if it didn't get to handling the darker halos. MCTemporalDenoise (MCTD for short) can be slow but it's pretty nifty and well optimized. I didn't use it this time -- I used a template script and some other methods, just didn't have time to get up some MCTD stuff. I'll probably play with this and MCTD this weekend (how's that for excitement on a holiday weekend, LOL!).

    The image below is from the original VOB. It's the shot that gave me the most trouble. Got stuck for over an hour. Most scenes worked pretty well, until I got to this critter. It's why I used two different scripts. And it's only 33 frames.

    Click image for larger version

Name:	original scene.jpg
Views:	717
Size:	83.8 KB
ID:	27974

    The original is pretty grainy looking, but note in the wall and the door panel that the grain is in clumps. The "fine" stuff you usually see with film source is missing. So some information that described some finer details has been stripped away, and the remains were sharpened. This is the kind of texturing that results in noisy banding when it's encoded. I applied a filter that smooths those hard clumps and adds a little more grain. That should work, right? Well, it didn't. Below is what it looked like after running the strong filters in my first script.

    Click image for larger version

Name:	filtered - first version.jpg
Views:	697
Size:	87.0 KB
ID:	27975

    Looks smoother. Too smooth. Did some strong resizing here, too. The dot crawl is gone, but look at how some of the lines have gone soft and indistinct (the duck's face and the outstretched arm). The method cleaned up lots of dot crawl and even some of the darker halos in the other shots, but it was overkill here.

    The attached mp4 A_Sample_blocky_demo.mp4 is what resulted from my first script and stronger filters. That clumpy stuff in the door panel changes shape several times and developed hard edges (banding). I even used a high bitrate and quality level to try to prevent that. It's especially obvious in the door. The attached mp4 plays this exact scene 5 times in a row. Keep yours eyes on the door panel at the lower left.

    This sample is not from my second script or the video I posted. The second script used milder filters and added a lot more fine grain. The second attachment below (2_sample_MCTD.mp4) was made from jagabo's MCTD script. It ain't perfect and it uses a lower bitrate, but details in the wall and the door panel don't transmogrify before your very eyes. It remains to be seen what happens if I mod that script to work the halo and other problems. But I think it demonstrates what can happen with very strong filters on shots that need something else.
    Image Attached Files
    Last edited by LMotlow; 10th Oct 2014 at 14:22.
    - My sister Ann's brother
    Quote Quote  
  10. When showing people examples I often use MCTD because it's easy to select a preset -- so I don't have to spend a lot of time and effort remembering and setting a bunch of arcane arguments. I usually avoid using it myself because it's so slow!
    Quote Quote  
  11. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Yep, MCTD can take its toll in time, especially if you mess with its parameters a lot. Like the saying goes, good work takes time.

    For provato's benefit here's something it took some people (like myself) a while to learn. MCTD is often the perfect solution, but sometimes it ain't. QTGMC is supposed to be the best deinterlacer, but sometimes you get a kicker that looks better using something else. Some people throw the same filters at everything in the barn, like MCTD or NeatVideo. The old standards usually get the job done right, but sometimes there are better choices around.
    - My sister Ann's brother
    Quote Quote  
  12. Thanks for the advice. I'm sure it takes a lot of experimenting to master this, but now I have the right info

    @LMotlow: I use a panasonic SVHS (NV-FS100) with properly cleaned video/audio heads, connected with S-video with my TV-card (terratec hybrid PCI-E).
    As for software, I have tried many different capturing methods (Vdub, Cyberlink products, Media player classic etc etc) lossless (e.g huffyuv) or with conversion/filters.
    But still the results of VHS-Ripping/digitalising are disappointing... I can send you the tapes some time if you are interested in restoring the video (so that I can also learn a few things from the procedures you follow)
    Last edited by provato; 11th Oct 2014 at 03:50.
    Quote Quote  
  13. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Flattered, provato. but the idea of a forum is to get lots of ideas from many sources. I've learned a lot over time, but what I know is dwarfed by many other long-timers here. Your Panasonic is reputed to be a good player. Likely you already know that the best way to capture VHS is with VDub to lossless media if you expect to have to do some cleanup.

    Here's my take on Cyberlink. I don't know of any tech forums like this one that recommend Cyberlink, other than mass-consumer oriented sites like pcmag or cnet. It's a big fave because it's sold everywhere and comes free with some PC's. But, really, it's not very good compared to other budget packages like Movie Studio Platinum, which itself often goes for big discounts. You can't use budget NLE's for the kind of cleanup done in this thread. You can also capture to DV-AVI if you want. It's also a big fave, but it's not really that friendly with VHS. The VOB you submitted looks like tape-to-DV to me. Seen enough of it around here to know how tough it is to clean tape defects from DV captures.

    It doesn't mean you have to be a perfectionist to go to lossless VHS capture. Even if you capture to another format you still have to decode and re-encode to do complicated editing or even simple cleanup or color correction. And VHS lossless captures won't have compression artifacts like block noise to fool around with.
    - My sister Ann's brother
    Quote Quote  
  14. Ok then, I'll try vdub loseless capture then. One annoying thing about that, is that it keeps dropping frames, and I usually have to close all other cpu-consuming processes, and turn off audio playback during capture.

    I'll try some of those deinterlacers, denoisers, de-rainbow etc etc mentioned in this thread, and I'll come back with a new topic about vhs ripping if I need some help.
    another annoying thing is that I leave in a PAL-land, but fortunately I have some progressive tapes to begin with.
    Quote Quote  
  15. Sorry for double posting guys, but I started studying the filter groups mentioned in this thread (temporlal/spatial denoisers, dot crawl removers, rainbow removers, sharpeners, etc etc) and one question is bugging me.

    What exactly is mergechroma combined with awarpsharp2 supposed to do?
    I see old threads saying this combination is a good de-haloing solution, but I don't fully understand how colour-merge with a sharpening filter can achieve that. Also, why is "awarpsharp" two times in the line? Maybe I'm missing something in the syntax, but I can't find info about this combination.
    Quote Quote  
  16. MergeChroma() takes the chroma from one video and applies it to another videos luma. In this case, heavily sharpened chroma channels are merged with the lightly sharpened luma channel.
    Quote Quote  
  17. So, the first awarpsharp(depth=5) refers to the chroma, and the second awarpsharp(depth=10) refers to the luminance of the same video?
    Quote Quote  
  18. MergeChroma() combines the luma from the first clip and the chroma of the second clip. If you don't specify both clips, it assumes last for the first clip, and the clip you named as the second clip.

    So in the script I gave earlier the first argument, awarsharp(dept=5), is the clip from which the luma is taken, the second argument, awarpsharp(depth=10) is the clip from which the chroma is taken. And yes, the luma and chroma are taken from the same clip since no other clip was specified.

    This might help you understand: whenever you don't specify a named video stream AviSynth assumes the name "last". So a sequence like:

    Code:
    ChubbyRain2(th=4)
    MergeChroma(aWarpSharp(depth=5), awarpsharp(depth=10))
    really means:

    Code:
    last = ChubbyRain2(last, th=4)
    last = MergeChroma(aWarpSharp(last, depth=5), awarpsharp(last, depth=10))
    Last edited by jagabo; 15th Oct 2014 at 17:49.
    Quote Quote  
  19. Yes, I get it now, thank you. Although I guess I have to study awarpsharp parameters to uderstand how this merging results in dehaloing.

    Btw I played around a bit with fft3dfilter and got really smoother gradients and sharper detail in the edges.
    Quote Quote  
  20. Originally Posted by provato View Post
    Yes, I get it now, thank you. Although I guess I have to study awarpsharp parameters to uderstand how this merging results in dehaloing.
    It doesn't do much to reduce halos (it might sometimes as a side effect). It's for sharpening without creating halos.
    Quote Quote  
  21. Originally Posted by jagabo View Post
    It doesn't do much to reduce halos (it might sometimes as a side effect). It's for sharpening without creating halos.
    That makes more sense! I have used warp sharpening in PhotoShop and I pretty much understand how this works.
    But that leaves me without a line in the script to reduce dark halos (edge ghosting) These dark halos are the only thing that still bugs me (there are also very few frames with shifted chroma, but I don't mind those)
    Quote Quote  
  22. In post 27 I gave the dehalo_alpha settings to reduce the first order halos. You might be able to reduce the second order halos by tweaking the darkstr, brightstr, lowsens, and highsens settings.
    Quote Quote  
  23. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Originally Posted by provato View Post
    Btw I played around a bit with fft3dfilter and got really smoother gradients and sharper detail in the edges.
    FFT3D is one way of doing it, but a filter specifically designed for banding is GradFun2DBmod. It can also smooth blocky edges a bit. I used that one in my script on part of the posted sample, but for another section I used the stronger GradFun3 -- it's more complicated and can sometimes overdo it. You might take a look at this thread: Color Banding And Noise Removal.

    On the more distant dark edge halo I used VirtualDub's exorcist.vdf, an anti-ghosting filter. To run it in an avs script you load the VirtualDub filter (modify the "path" statement to match your system):

    Code:
    LoadVirtualDubPlugin("Drive:\PathToVirtualDub\plugins\exorcist.vdf", "exorcist", 1)
    Run the filter in the script like so:
    Code:
    ConvertToRGB32(matrix="Rec601",interlaced=false)
    exorcist(6,-6)
    ConvertToYV12(interlaced=false)
    You have to experiment with the exorcist position and intensity settings. I used (6,-6) here. The position of the dark edge varies in the second half of the sample clip. I've seen doom9 gurus do this with MaskTools and some pretty complicated masking. I'm thinking that the only guys who understand this technique are the guys who developed MaskTools. Also, as jagabo said, you can play with awarpsharp for some of this.

    Anti-ghost filters tend to lower or raise gamma and brightness, depending on how the filter is used. I used ColorMill in the script to restore the original luma levels and boost saturation a little bit:

    Code:
    LoadVirtualDubPlugin("Drive:\PathToVirtualDub\plugins\colormill.vdf", "ColorMill", 1)
    .....
    [ do some processing]
    .....
    ColorMill(25700, 25700, 25700, 25700, 24676, 25700, 26471, 25703, 25700, 25700, 26212, 25956, 25700, 1124, 6148)
    You can also restore levels with something like ColorYUV(). Determine the settings for VirtualDub filters by running some of the clip in VirtualDub first, then save the settings in VDub as a .vcf file and copy those settings into the script. A .vcf is a plain text file you can read with Notepad.

    I really hate these over-filtered samples that come around. Sometimes you need to keep a little noise (grainy stuff) to make it look right, especially animations.
    - My sister Ann's brother
    Quote Quote  
  24. Wow, I have experimented a lot in the past with vdub filters, but I didn't know there was a way to put them in avisynth! Thanks for that info.
    I'll definately also try dehalo_alpha (because I see that with my script the dark halos are mostly seen in brighter colours, so I think that only a bit reducing them will make them un-noticable)

    As for the colours, I tend to amplify saturation and intensity, so it's not obligatory for me to keep the original chroma after a filter has messed with it. (Btw I already use colorYUV() in my script with cont_u=50,cont_v=50)

    After I experiment enough with these de-haloing solutions you mentioned, I'll post some screenshots-results
    Quote Quote  
Visit our sponsor! Try DVDFab and backup Blu-rays!