I'm converting all my old VHS tapes to digital files, but I'm encountering some problems which I believe to be "dot crawl".
Here's a little clip (the GIF has been optimized by Imgur, but you clearly see the vertical stripes moving):
Is that dot crawl, or something else entirely?
I've used several avisynth plugins to try to get rid of it:
Checkmate, DeDot, DeCrawl, GuavaComb, Tcomb, ... None of them did anything.
I'm actually capturing these tapes over an S-video cable, albeit an S-video cable plugged into a scart adapter.
The original S-video out on my VCR doesn't seem to work anymore.
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!
+ Reply to Thread
Results 1 to 28 of 28
Thread
-
-
destripe work great for this generally
DeStripe(2,3,16)*** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE -
Well, if it isn't dot crawl, it certainly has similar characteristics in that it is much more prominent in the colored areas (especially red) and almost totally absent in the areas which are closer to B&W.
I had a similar problem with some VHS captures recently and, like you, got the same thing with both the composite as well as the S-video outputs. I then played around with various settings in my JVC S-VHS VCR and found that the digital corrector was causing the problems. So, as one piece of advice, you might want to try playing around with the various setup settings on your VCR and see if you can change or remove the problem. Turn off all the "enhancements."
I also had a very similar problem on an old Kinescope I was asked to restore. That transfer was done decades ago, and even though it was B&W, the dot crawl had been introduced during the transfer. Read this thread and see if it helps you design something that will remove your problem. I found that the convolution kernel worked extremely well, and I think it will work for your video as well:
Reomve Cross Hatch Pattern
If you don't have time to read the whole thread, here is the AVISynth convolution syntax:
Code:.GeneralConvolution(0, " -1 2 -1 2 0 2 -1 2 -1 ", 1)
Code:.GeneralConvolution(0, " 0 1 0 1 0 1 0 1 0 ",1)
Last edited by johnmeyer; 2nd Mar 2016 at 09:35. Reason: Added convolution
-
A simple resize will get rid of most of it:
Code:Spline36Resize(width/2,height).Spline36Resize(width,height)
Last edited by jagabo; 2nd Mar 2016 at 09:41.
-
Thanks for the responses so far!
I've tried DeStripe and Defreq, but so far their results aren't that great.
The resize trick actually got rid of nearly everything, although there still is some kind of shimmering effect.
I'll try capturing using the regular composite cable again, and see if that makes any difference.
I'll also see if I can disable any VCR enhancements, I'll have to find that remote control first though
I'm using a Samsung "S-VHS quasy playback" VCR, by the way.
Haven't seen that pop-up on any "good vcrs to use", but it's the only one I have. -
-
Did you try my convolution filter? I think it will do better than DeStripe and DeFreq, although I don't know about the resize trick.
-
I did try that, but it also didn't have any noticeable effect.
I've also disabled "IPC" on the VCR itself, but that didn't change anything.
I tried using the dedicated composite output on the VCR, but the same problem still occurs.
Even on the default blue menu screen, when no tape is playing. -
Want my help? Ask here! (not via PM!)
FAQs: Best Blank Discs • Best TBCs • Best VCRs for capture • Restore VHS -
And since it only scales horizontally it works with interlaced video. And it works pretty well for VHS because the resolution of the underlying picture is so low reducing the frame width by half doesn't hurt. If the video is progressive you can get even better results with a better upscaler like nnedi3:
Code:Spline36Resize(width/2,height).TurnRight().nnedi3(dh=true).Turnleft()
For sharper sources you can use a mask based on the saturation so that only the colorful areas are filtered. -
-
My objection was only due to the literal visual basis for the naming. Maybe pedantic, but I think it would be useful to have a common name for this crosstalk that actually describes its appearance.
For PAL: http://www.techmind.org/vd/paldec.html
Of note, U-axis colours (pure yellows or blues) appear as diagonal stripes \\\, while V-axis colours (pure reds or greens) appear as diagonals ///. Mixture colours, such as orange (red+yellow) give rise to a superposition of the two, ie cross-hatching.
You could argue that the cause and fixes are the same, so what difference does it make? But from what I've seen, the resize fix doesn't appear quite as effective on these diagonal artifacts as it is with NTSC dots. -
Defreq, fftquiver - ffmpeg is also able to perform filtering on video in frequency domain.
http://avisynth.org.ru/defreq/defreq.html
http://avisynth.nl/index.php/FFTQuiver -
Isn't "crosshatching" the tech term?
That's what this is.
It's merely a type of crosstalk.Last edited by lordsmurf; 6th Mar 2016 at 19:47.
Want my help? Ask here! (not via PM!)
FAQs: Best Blank Discs • Best TBCs • Best VCRs for capture • Restore VHS -
This actually worked wonders on a video that really needed this!!
Wow, thanks jagabo. Quick question:
Suppose I want to use the version for progressive video:Code:Spline36Resize(width/2,height).TurnRight().nnedi3(dh=true).Turnleft()
-
And since it only scales horizontally it works with interlaced video. And it works pretty well for VHS because the resolution of the underlying picture is so low reducing the frame width by half doesn't hurt. If the video is progressive you can get even better results with a better upscaler like nnedi3:
Code:
Spline36Resize(width/2,height).TurnRight().nnedi3(dh=true).Turnleft()
Sometimes I might also sharpen a bit horizontally while downscaled or after scaling back up. There's often a little bit of the dot crawl remaining. But since it's VHS, and you're probably going to do some noise reduction anyway, it will disappear along with the other noise.
For sharper sources you can use a mask based on the saturation so that only the colorful areas are filtered.
But again, I DO want to go with this strategy - is there any way to avoid this and still get what I want? -
You can try downscaling less. Say, to a width of 400 or 480 rather than 360. But you'll get slightly less effective cleaning along with the lesser blurring. If you're running some other temporal noise reduction you can run it while the video is downsized to help eliminate the residual dot crawl. You can also use a mask to apply the dot crawl removal to only areas of high saturation, or only near edges, whatever -- depending on the nature of the residual dot crawl in the capture.
Last edited by jagabo; 16th Jul 2021 at 18:13.
-
Havea look here Betelman https://forum.doom9.org/showthread.php?t=134078
*** DIGITIZING VHS / ANALOG VIDEOS SINCE 2001**** GEAR: JVC HR-S7700MS, TOSHIBA V733EF AND MORE -
You can also use a mask to apply the dot crawl removal to only areas of high saturation
Here's my thread with a sample and a script. Think you can help adjust it?
https://forum.videohelp.com/threads/402484-need-assistance-with-creating-a-line-mask-for-a-cartoon -
Jagabo, is this an example of what you mean? Instead of 720/2 in the spline36resize script, I upped it to 940 to prevent aggressive blurring. Now, as you can see I added a sharpener right after the Spline36Resize. I decided to add my temporal smoother later in the script, but just to keep my details sharp, is this where I would add my sharpener?
MPEG2Source("blah.d2v")
Assumetff()
TFM(d2v="blah.d2v")
TDecimate(mode=1)
Spline36Resize(940/2,height). Fastlinedarkenmod(60). TurnRight(). nnedi3(dh=true).Turnleft()
Crop(8, 0, -8, 0)
Lanczos4Resize(640,480)
Santiag(). Santiag() -
Because your script contains the argument "width/2"
Oh and also, I notice that this strategy causes a change in my frame sequence. For example, the image that was frame 476 is now in frame 477. Is that normal? Does this cause any type of distortion in my resulting project?
I checked the info - on my script with your strategy, it says bottom field first.
On a script with just IVTC and not using your strategy it says assumed top field first.Last edited by Betelman; 17th Jul 2021 at 20:19.
-
The reason I used "/2" is because the variable "width" is the width of the current video -- regardless of whether it's 720, 704, or whatever it will reduced to half. You don't need to retain the /2 if you just want to set a specific size, just specify that size.
That is not normal. About the only thing I see that could cause that is TDecimate(mode=1). On random seeks it might not return the same frame as during linear access. Or maybe a problem with the MPEG2 source.
It probably won't be a problem when encoding. -
Ok, now I understand. Funny, as soon as I just specified the size, the frame problem went away.
So far so good, thanks for all your help. -
This doesn't look too bad with the animated GIF in the first post:
Code:LWLibavVideoSource("ak8HdY7.gif", cache=false, prefer_hw=2) ConvertToYV12(interlaced=true) src = last QTGMC() BilinearResize(576, height) Santiag() TurnRight() Santiag() QTGMC(InputType=2) # or TemporalDegrain(sigma=4), or SMDegrain(), etc. TurnLeft() Spline36Resize(720, height)
Last edited by jagabo; 17th Jul 2021 at 23:06.
-
Looks good, Jagabo. Thanks for showing me that I can change the integer for the width in that resize in order to avoid detail loss. I was able to obtain the results I wanted with a lesser downscale (490 instead of 360), in conjunction with smdegrain. A couple of questions here:
1. My source is NTSC, which requires the usual IVTC script. Now I notice that you used QTGMC (the acronyms read like "Cutie GMC" - something someone would use to show how much they love their truck ). Anyway, I am going to assume that you used this for the above source as needed, and that this would not do anything to help my case except destroy my video by throwing away important fields - since it IS a deinterlacer. Am I correct in this or is there something I'm missing here?
2. Just to confirm, the place where I inserted my sharpening command line, was that okay or would I get better results inserting it AFTER the nnedi3 resize? FYI, I tested it and it looks perfect to me on my TV. However, I want to make sure, once again, that there's not a crucial detail I'm not seeing.
Thanks -
Once again, QTGMC(InputType=2) is not deinterlacing, it's noise reduction for progressive frames. It may or may not help with an IVTC'd video. I used it in that video because the source was a GIF image with lots of noise. Notice the other options I listed there are noise reducers.
You mean the Fastlinedarkenmod() in post #21? Line darkeners like that work best with lines of a certain thickness and darkness. Use it wherever it works best. Also try Hysteria(), another line darkener.
Similar Threads
-
DVDStyler - How to hide the white dot next to the "Play All" button?
By Gameshow Host in forum EditingReplies: 7Last Post: 2nd Mar 2016, 12:16 -
[SOLVED] "--ipratio" "--pbratio"+"--scenecut" "--minkeyint" / "--keyint
By Kdmeizk in forum Video ConversionReplies: 14Last Post: 21st Jun 2015, 07:21 -
"Moving" vertical film lines
By Chief Mouse in forum RestorationReplies: 2Last Post: 1st Mar 2015, 13:13 -
Dot Crawl
By hizzy7 in forum RestorationReplies: 25Last Post: 13th Oct 2013, 20:11 -
Help with Dot Crawl or whatever this is...
By low-fat-al in forum RestorationReplies: 16Last Post: 8th Mar 2013, 11:30