View Full Version : VHS video?
NLPguy
29th March 2015, 17:27
Hi guys,
I'm using the basic VHS script of John Meyer and the ConditionalDenoise script of Kevin Atkinson aiming clean the image of my VHS videos.
However, even using these scripts the video still shows many errors. Specially the horizontal waves (lines [white lines]).
I'm posting the video and the script that I'm using below.
Please, I really appreciate your comments and ideas about how to solve this problem.
Thank you very much!
Watch the video (without any script) here: http://www.mediafire.com/watch/k7xydgo8uia6buc/test2.m2v
SCRIPT
#Denoiser script for interlaced video using MDegrain2
SetMemoryMax(768)
Loadplugin("C:\test\mvtools2.dll")
LoadPlugin("c:\test\Cnr2.dll")
#LoadPlugin("c:\test\mpeg2dec3.dll")
LoadPlugin("c:\test\avisynth_c.dll")
LoadCPlugin("c:\test\CondTemporalMedian-gen.dll")
SetMTMode(5,6)
# source=AVISource("E:\fs.avi").killaudio().AssumeBFF()
source=mpeg2source("c:\test\test2.d2v")
SetMTMode(2)
#Conditionalmedian(source,mthres=30,mwidth=6,mheight=4,mp=11)
ConditionalDenoise(source,mthres=16,mwidth=7,mheight=5,mp=11,p1=24,p2=12,interlaced=true)
chroma=source.Cnr2("oxx",8,16,191,100,255,32,255,false) #VHS
output=MDegrain2i2(chroma,8,2,0)
stackhorizontal(source,output)
return output
#-------------------------------
function MDegrain2i2(clip source, int "blksize", int "overlap", int "dct")
{
Vshift=0 # 2 lines per bobbed-field per tape generation (PAL); original=2; copy=4 etc
Hshift=0 # determine experimentally
overlap=default(overlap,4) # overlap value (0 to 4 for blksize=8)
dct=default(dct,0) # use dct=1 for clip with light flicker
fields=source.SeparateFields() # separate by fields
#This line gets rid of vertical chroma halo. Don't use unless you have the problem
#fields=MergeChroma(fields,crop(fields,Hshift,Vshift,0,0).addborders(0,0,Hshift,Vshift))
super = fields.MSuper(pel=2, sharp=1)
backward_vec2 = super.MAnalyse(isb = true, delta = 2, blksize=blksize, overlap=overlap, dct=dct)
forward_vec2 = super.MAnalyse(isb = false, delta = 2, blksize=blksize, overlap=overlap, dct=dct)
backward_vec4 = super.MAnalyse(isb = true, delta = 4, blksize=blksize, overlap=overlap, dct=dct)
forward_vec4 = super.MAnalyse(isb = false, delta = 4, blksize=blksize, overlap=overlap, dct=dct)
#Increase thSAD for more denoising. Won't do much beyone about 1500
MDegrain2(fields,super, backward_vec2,forward_vec2,backward_vec4,forward_vec4,thSAD=1500)
Weave()
}
StainlessS
29th March 2015, 17:39
I think that looks like physical tape damage, ie crumpled or creased VHS tape.
EDIT: I could well be wrong. Sorry, no solutions.
NLPguy
29th March 2015, 19:49
Many years since I had VHS, but I think that looks like physical tape damage, ie crumpled or creased VHS tape.
EDIT: I could well be wrong. Sorry, no solutions.
Hi StainlessS,
I already checked this VHS tape with a videotape technician. He said that it doesn't have any problem. The video was recorded in EP (extended play) mode. And it was recorded almost 20 years ago.
johnmeyer
29th March 2015, 22:36
I think you need to re-think a few things about your capture workflow before you start modifying your AVISynth scripts.
First, you have captured 4:3 video into a 16:9 container. That is the wrong thing to do, and it will result in your video being stretched. Depending on your capture chain, it may also degrade the resolution, although that is difficult to know for sure without examining every step of the capture.
Second, if your capture card permits capturing to something other than MPEG-2, I would recommend using a lossless codec for capture, or at least use one that doesn't involve interframe compression. Put another way, I would recommend using a codec that compresses each frame on its own without needing any information from adjacent frames. MJPEG and DV are two that do lossy compression, but don't use adjacent frames, and MagicYUV, HuffYUV, and Lagarith are three which do lossless compression. The reason for my recommendation of not using MPEG-2 is that real-time compression using a codec which uses GOP compression tends to emphasize noise.
The horizontal blurry lines you are seeing look like the result of the tape getting hot, possibly at the time it was taken. It was obviously reasonably warm when this video was taken.
If you still have the tape, and can do a few tests, I would recommend queing up to this section, and then try manually adjusting the tracking control. While tracking errors usually show up as a series of floating noise bars, a slight tracking misalignment can result in those "wrinkled" and "warped" horzontal bars that you have in your video.
Your capture doesn't seem to have any obvious time base issues, and otherwise looks pretty good, although it does look like some smoothing was done. Is this the raw capture, or have you already done some processing? Also, on your capture deck, did you enable the "edit" mode? This is either a front-panel switch or a menu item on your VCR. It is extremely important to set this switch or menu item correctly because otherwise the deck will process the video in order to reduce noise and other artifacts. This results in very soft video. You want to capture the tape with every bit of information from that tape, and then use the power of AVISynth to filter noise. The hardware filtering available in the analog days of the 1980s and 1990s was extremely crude and very destructive to detail.
papcom
31st March 2015, 21:42
Hi guys, I'm using the basic VHS script of John Meyer and the ConditionalDenoise script of Kevin Atkinson aiming clean the image of my VHS videos.
what is conditional denoise? I get a script error: no function "conditional denoise"....
StainlessS
31st March 2015, 22:08
This would seem to be related.
http://forum.doom9.org/showthread.php?p=419690#post419690
papcom
31st March 2015, 23:23
OK ?!? ...and what is avsynth_c.dll good for?
StainlessS
31st March 2015, 23:36
Loading old style C plugins.
EDIT:
Looks like ConditionalDenoise might be related to ConditionalTemporalMedian http://avisynth.nl/index.php/External_filters#Denoisers
which evolved into DeSpot (on same page).
NLPguy
1st April 2015, 01:29
I think you need to re-think a few things about your capture workflow before you start modifying your AVISynth scripts.
First, you have captured 4:3 video into a 16:9 container. That is the wrong thing to do, and it will result in your video being stretched. Depending on your capture chain, it may also degrade the resolution, although that is difficult to know for sure without examining every step of the capture.
Second, if your capture card permits capturing to something other than MPEG-2, I would recommend using a lossless codec for capture, or at least use one that doesn't involve interframe compression. Put another way, I would recommend using a codec that compresses each frame on its own without needing any information from adjacent frames. MJPEG and DV are two that do lossy compression, but don't use adjacent frames, and MagicYUV, HuffYUV, and Lagarith are three which do lossless compression. The reason for my recommendation of not using MPEG-2 is that real-time compression using a codec which uses GOP compression tends to emphasize noise.
The horizontal blurry lines you are seeing look like the result of the tape getting hot, possibly at the time it was taken. It was obviously reasonably warm when this video was taken.
If you still have the tape, and can do a few tests, I would recommend queing up to this section, and then try manually adjusting the tracking control. While tracking errors usually show up as a series of floating noise bars, a slight tracking misalignment can result in those "wrinkled" and "warped" horzontal bars that you have in your video.
Your capture doesn't seem to have any obvious time base issues, and otherwise looks pretty good, although it does look like some smoothing was done. Is this the raw capture, or have you already done some processing? Also, on your capture deck, did you enable the "edit" mode? This is either a front-panel switch or a menu item on your VCR. It is extremely important to set this switch or menu item correctly because otherwise the deck will process the video in order to reduce noise and other artifacts. This results in very soft video. You want to capture the tape with every bit of information from that tape, and then use the power of AVISynth to filter noise. The hardware filtering available in the analog days of the 1980s and 1990s was extremely crude and very destructive to detail.
Hi John,
This isn't the raw video. In this example I did the capture using a Philips 6 Head VCR (in compound video) and I passed through a DVD Record RH397H with all the filters ON.
I also tried another capture using a Panasonic AG1980 VCR passing through a Svideo Record DVD Panasonic ES10 (in compound video) with all the filters ON. Afterwards I recorded it with a DVD LG RH397H. However the video got more white horizontal bars than the first try.
Please, if it's possible, after reading your post new questions arise about it:
What do you do to exam every step of the capture?
How do you know that this example doesn't have any obvious time base issues?
In your opinion. Is there one way to remove the horizontal bars from the video?
Thank you very much John. I'm learning so many things with your posts. All your opinion and ideas are welcome.
NLPguy
1st April 2015, 01:33
This would seem to be related.
http://forum.doom9.org/showthread.php?p=419690#post419690
OK ?!? ...and what is avsynth_c.dll good for?
Thank you StainlessS and papcom with your questions and related cases.
All your comments and ideas are welcome.
StainlessS
1st April 2015, 01:58
From CondTemporalMedian-0.93.zip here: http://www.kevina.org/temporal_median/
Conditional Temporal Median Filter
http://kevin.atkinson.dhs.org/temporal_median/
Version 0.93 for AviSynth 2.5
September 27, 2003
Copyright (C) 2003 Kevin Atkinson (kevin.med@atkinson.dhs.org) under
the GNU GPL version 2.
This filter is designed to remove temporal noise in the form of small
dots and streaks found in some videos. A common cause of this is
dirty VHS heads but I have also seen small black or white streaks in
broadcast material.
The filter requires AVISynth 2.5, and My AviSynth C API Plugin version
0.14 or better. The required DLL "avisynth_c.dll" is included. The
full version can be found at at
http://kevin.atkinson.dhs.org/avisynth_c/. Two versions of my filter
are provided a generic version CondTemporalMedian-gen.dll and an
Integer SSE optimized version CondTemporalMedian-isse.dll.
USAGE
After the AviSynth C Plugin is loaded (by putting it in the Plugin
directory or using LoadPlugin) the filter needs to be loaded using
LoadCPlugin:
LoadCPlugin("<path to >").
Basic Usage:
ConditionalDenoise(clip, <parms>) OR
ConditionalMedian(clip, <parms>
The input MUST be YV12.
ConditionalDenoise will attempt to identify noise and eliminate it while
ConditionalMedian will simply apply a simple temporal median filter to the
non-moving areas of the image.
Parms for ConditionalDenoise are any of the following
p1 (default 24)
p2 (default 12)
A pixel needs to be at different from its neighbors by at least 'P1'
in order for it to be considered noise. The surrounding pixels must
be different by at lease 'P2' in order for the pixel to be
considered part of the same speck.
pwidth (default 16)
pheight (default 5)
A speck can be no larger than PWIDTH x PHEIGHT
Parms for both ConditionalDenoise and ConditionalMedian are:
mthres (default 16)
A pixel needs to be different from the previous frame by at least
'MTHRES' in order to be considered moving. This number should
be larger than 'P2' in order to prevent noise from being identified
by motion.
mwidth (default 7)
mheight (default 5)
mp (default 11)
These control the behavior of the the motion map denoising algorithm.
interlaced (boolean)
Whether to treat the video as interlaced or not. The default depends
on id AviSynth thinks the video is Field based (ie interlaced) or
Frame based.
To instead show a motion map and noise that would of been eliminated use:
ConditionalDenoiseMap(clip, <parms>, [show_chroma = false])
ConditionalMedian(clip, <parms>, [show_chroma = false])
The luma is changed as follows:
255 (White): Noise that will be removed
159: Noise that won't be remove because it might be motion
95: Motion map for the current image
63: Motion map for the next frame
To just highlight the noise instead of removing it use
ConditionalDenoiseMark(clip, <parms>, [mark_v = 255])
Where mark_v is the luma value to highlight the noise with
TUNING THE PARMS
In order for the filter to work right the various parameters MUST be
set correctly. There is no good default values.
The first parameter that needs to be set is interlaced, set it to true
if your video is interlaced, false otherwise.
Than pwidth and pheight need to be set. Set these to be slightly
larger than the specks you want to eliminate. If your video is
interlaced than height represents the height of an individual field.
Thus, it will essentially be doubled.
Than p1, p2, and mthres need to be set. In general, p1 > mthres > p2.
If these are set too low than you may lose detail as small pixel
variations might be mistaken as specks, thus losing detail, and more
importantly, real specks might not be recognized as the size of the
filter thinks the spec is might be larger than pwidth by pheight.
ConditionalDenoiseMark, and ConditionalDenoiseMap might be helpful in
setting these parameters.
HOW IT WORKS
The filter works as follows:
1) Find pixes that are different from its neighbors by at least P1.
1b) Enlarge outliers based on P2.
2) Determine the size of the specks and reject all those
larger than PWIDTHxPHEIGHT
3) Find moving areas of an image by simply comparing each
pixel to the previous frame and considering all those which
are greater than MTHRES.
3b) Remove pixels determined as noise from the motion map.
4) Denoise the motion map by diffusing and then diluting. This is
probably the most important step.
5) Only remove the specks in which there was no motion in
the current or the next frame.
The filter can also be configured to work as follows:
1) Find moving areas of an image by simply comparing each
pixel to the previous frame and considering all those which
are greater than MTHRES.
2) Denoise the motion map by diffusing and then diluting. This is
probably the most important step.
3) Apply a simple temporal median filter on the non-moving areas of
the image.
NOTES
It is integer SSE optimized using either GCC or Intel MMX/SSE
builtins. Unfortunately Gcc versions before 3.3 does not use them very
well. There for it is recommended that either GCC 3.3+ or Intel's
compiler is used. Even GCC 3.0 and Intel's compiler do not generate
optimal code when using MMX/SSE builtins, in particular GCC 3.3
interests a few unnecessary movq. Thus hand optimizing some of the
code might be beneficial.
COMPILING
To compile this filter you will need to install Gcc and perhaps GNU
Make. I used MinGw (2.0.0-3) with MSYS 1.09, Gcc 3.3.1. All of the
required utilities can be found at http://www.mingw.org/download.shtml.
Other configurations should work, but you may need to edit the
Makefile. Once all the proper tools are installed and in the path,
simply type:
make
from the MSYS shell and that is all that should be required.
CHANGES
Changed from 0.92 (Sep 27, 2003)
Fix another nasty bug.
Included non optimized version.
Expanded the manual a bit
Changes from 0.91 (Sep 10, 2003)
Fixed nasty bug.
Maybe try DeSpot instead.
In Despot, do not use the temporal blurring as it can prevent further usage of the plug. Despot (non-blur) only changes the frame where spots are detected, does not change other parts of frame. So long as temporal blurring not applied, then can do more than one DeSpot, with differing args for different spot sizes/colors etc. Temporal blurring will inhibit further detections.
EDIT: Despot decides it is a spot if it only exists on a single frame, temporal blur, blurs entire frame and spreads spots over several frames and additional spots are therefore no longer detectable.
johnmeyer
1st April 2015, 04:26
Time base errors show up either as "flagging" at the top of the screen (horizontal bending of the top 10-15 scan lines, usually to the left), or as inconsistent starting point for each scan line which is easy to see when you look at vertical objects like fence posts (they will appear very ragged).
When capturing video, you want to turn off ALL filtering, and make sure you turn ON the edit switch. The edit switch makes sure that the VCR does not "enhance" the video in any way. The filtering that is done in VHS decks is designed to smooth out noise, but it kills detail. You will get far more detail by letting the VCR display every last detail, including the noise, and then using the far superior noise reduction that can be done with modern software.
NLPguy
2nd April 2015, 08:48
Time base errors show up either as "flagging" at the top of the screen (horizontal bending of the top 10-15 scan lines, usually to the left), or as inconsistent starting point for each scan line which is easy to see when you look at vertical objects like fence posts (they will appear very ragged).
When capturing video, you want to turn off ALL filtering, and make sure you turn ON the edit switch. The edit switch makes sure that the VCR does not "enhance" the video in any way. The filtering that is done in VHS decks is designed to smooth out noise, but it kills detail. You will get far more detail by letting the VCR display every last detail, including the noise, and then using the far superior noise reduction that can be done with modern software.
John,
I followed your recommendation. I turned all the filters off. Then, I used the AVISynth script on the raw video.
It really improved the quality of the video.
However, still remains some white horizontal bars. Do you know one good script to remove it (if it's possible)?
Thank you again!
StainlessS
2nd April 2015, 12:19
Re-post new sample (as per John's excellent advice).
johnmeyer
2nd April 2015, 16:13
White horizontal bars are probably going to be difficult to remove. If they are caused by tracking, you might be able to re-capture the bad sections while manually adjusting the tracking control. I have transferred lots of EP (6-hour mode) VHS tape where the automatic tracking in all my VCRs would not lock on to the signal (I always try finicky tapes in a second VCR). With these tapes, I got noise bars that drifted in and out of frame as the tracking control searched for perfect lock. I was able to manually tune the tracking, and then use this second capture to replace the sections of the original capture that had problems. The tracking problem is usually isolated to just certain sections of the tape.
Consult your VCR's manual for information on how to enable and adjust manual tracking. It is often accessed by pressing the channel up/down buttons on the front of the VCR itself. Pressing them both at the same time often is what is used to reset tracking to automatic.
If the noise bars are actually on the tape, probably due to lousy tape (people didn't want to spend $20 on good VHS tape, and often purchased "bargain" brands that were made of really bad material) you might be able to figure out how to remove the noise bars using something like what StainlessS helped me with in this thread:
Bad 1950s Kinescope - Hopeless? (http://forum.doom9.org/showthread.php?t=167591)
NLPguy
5th April 2015, 02:58
Re-post new sample (as per John's excellent advice).
Hi StainlessS,
Here the new sample following the new advice: http://www.mediafire.com/watch/uequoz13bcxa2z9/Test.avi
I could't convert this AVI video to yv12.
Thanks for your help
StainlessS
5th April 2015, 16:05
Sorry NLPguy, I aint gonna download 500MB on my pre-pay 4G Mobile Broadband (MiFi, Sooooooo much better than a dongle).
I'll grab it sometime in next couple of days in pub for free :)
EDIT: In fact I think I'll go to pub in a few minutes and get it.
feisty2
5th April 2015, 16:22
EDIT: In fact I think I'll go to pub in a few minutes and get it.
going to a bar just for free network...? sounds genius to me! guess I just got a new reason next time I go to a bar :o
EDIT: bar me? why? I don't think I deserve that
StainlessS
5th April 2015, 16:39
Yup, pure genius. When I was bored a few weeks/months ago, I took the opportunity to grab a copy
of "Elephants Dream" (y4m I think, or something like that) and also something about a giant bunny wabbit.
(forgot the name).
Oh yes, "Big buck Bunny".
EDIT: mentioned clips in Avisynth Usage Sticky, "Consolidated list of test video clip resources", Here:- http://forum.doom9.org/showthread.php?t=135034
Gone fishing :)
StainlessS
6th April 2015, 01:33
Feisty2 is a bit of a wayward young lad,
I'm just wondering if anyone else but me would love to give him a big cuddle.
Of course he has some issues and is a bit $$$$ed up but then who aint.
Question is, should Feisty2 be barred for life, OR, should he be given some sort of The Saviour kinda status.
I'm all for barring him myself. EDIT: Added the smiley, just in case :)
StainlessS
7th April 2015, 19:19
Hi NLPguy,
I've taken a look at the 500MB 25 sec clip (arh, all that time in the pub for 25 secs).
Cant do anything with it, sorry.
Dont seem to be anything of any use in Luma
Avisource("TEST.avi")
LO=128 HI=255 PIX=48 CMAD=1 # Config
#ConvertToRGB24()
#ConvertToRGB32()
#ConvertToYUY2()
#ConvertToYV12()
#
# Avisynth v2.6 ONLY
#ConvertToY8() # OK using Zebra v2.5
#ConvertToYV16() # Needs v2.6 version Zebra.
#ConvertToYV24() # Needs v2.6 version Zebra.
#ConvertToYV411() # Needs v2.6 version Zebra.
Z1=Zebra(row=true, lo=LO,hi=HI,pix=PIX,cmad=CMAD)
Z2=Zebra(row=false,lo=LO,hi=HI,pix=PIX,cmad=CMAD)
Z1=Z1.SUBTITLE("Row=True",x=3*PIX-37,y=Z1.Height/2-10,Text_Color=$FFFFFF)
Z2=Z2.SUBTITLE("Row=False",x=Z2.Width/2-37,y=3*PIX-10,Text_Color=$FFFFFF)
SubTitle("PIX="+String(PIX),x=width/2-32,y=height/2-30,Text_Color=$FFFFFF)
SubTitle("CMAD="+String(CMAD),x=width/2-38,y=height/2-10,Text_Color=$FFFFFF)
SubTitle("LO="+String(LO)+" HI="+String(hi),x=width/2-60,y=height/2+10,Text_Color=$FFFFFF)
BLANK=Z2.BlankClip(width=6*PIX,color=$808080)
BLANK=BLANK.SUBTITLE("MIN",x=PIX/2-15,y=PIX/2-10,Text_Color=$FFFFFF)
BLANK=BLANK.SUBTITLE("MAX",x=PIX+PIX/2-15,y=PIX+PIX/2-10,Text_Color=$FFFFFF)
BLANK=BLANK.SUBTITLE("MX-MN",x=2*PIX+PIX/2-25,y=2*PIX+PIX/2-10,Text_Color=$FFFFFF)
BLANK=BLANK.SUBTITLE("MED",x=3*PIX+PIX/2-15,y=3*PIX+PIX/2-10,Text_Color=$FFFFFF)
BLANK=BLANK.SUBTITLE("AVE",x=4*PIX+PIX/2-15,y=4*PIX+PIX/2-10,Text_Color=$FFFFFF)
BLANK=BLANK.SUBTITLE("YIR",x=5*PIX+PIX/2-15,y=5*PIX+PIX/2-10,Text_Color=$FFFFFF)
TOP=StackHorizontal(Z1)
BOT=StackHorizontal(Z2,BLANK)
StackVertical(TOP,BOT)
return ConvertToRGB32 # For Viewing v2.6 ColorSpaces
Looking at chroma, U and V
AVISource("D:\NLPGuy\Test.avi").Killaudio
U_LO=99 U_HI=105
V_LO=161 V_HI=169
ConvertToYV24
U=UToY8
V=VToY8
ZU=U.Zebra(lo=U_LO,hi=U_HI)
MID=StackHorizontal(U,ZU)
ZV=V.Zebra(lo=V_LO,hi=V_HI)
BOT=StackHorizontal(V,ZV)
StackVertical(MID,BOT)
Return ConvertToRGB32
Splitting frame in half horizontally
AVISource("D:\NLPGuy\Test.avi").Killaudio
U_LO=99 U_HI=105
V_LO=161 V_HI=169
ConvertToYV24
U=UToY8
UL=U.Crop(0,0,U.Width/2,0)
UR=U.Crop(U.Width/2,0,0,0)
ZUL=UL.Zebra(lo=U_LO,hi=U_HI).Crop(5*48,0,-0,-0)
ZUR=UR.Zebra(lo=U_LO,hi=U_HI).Crop(5*48,0,-0,-0)
MID=StackHorizontal(U,ZUL,ZUR)
V=VToY8
VL=V.Crop(0,0,V.Width/2,0)
VR=V.Crop(V.Width/2,0,0,0)
ZVL=VL.Zebra(lo=V_LO,hi=V_HI).Crop(5*48,0,-0,-0)
ZVR=VR.Zebra(lo=V_LO,hi=V_HI).Crop(5*48,0,-0,-0)
BOT=StackHorizontal(V,ZVL,ZVR)
StackVertical(MID,BOT)
Return ConvertToRGB32
Splitting in thirds horizontally
AVISource("D:\NLPGuy\Test.avi").Killaudio
U_LO=99 U_HI=105
V_LO=161 V_HI=169
CMAD=1
WW = Round(Width / 12.0) * 4
ConvertToYV24
U=UToY8
UL=U.Crop(0,0,WW,0)
UM=U.Crop(WW,0,Width-WW*2,0)
UR=U.Crop(Width-WW,0,WW,0)
ZUL=UL.Zebra(lo=U_LO,hi=U_HI,CMAD=CMAD).Crop(5*48,0,-0,-0)
ZUM=UM.Zebra(lo=U_LO,hi=U_HI,CMAD=CMAD).Crop(5*48,0,-0,-0)
ZUR=UR.Zebra(lo=U_LO,hi=U_HI,CMAD=CMAD).Crop(5*48,0,-0,-0)
TOP=StackHorizontal(U,ZUL,ZUM,ZUR)
V=VToY8
VL=V.Crop(0,0,WW,0)
VM=V.Crop(WW,0,Width-WW*2,0)
VR=V.Crop(Width-WW,0,WW,0)
ZVL=VL.Zebra(lo=V_LO,hi=V_HI,CMAD=CMAD).Crop(5*48,0,-0,-0)
ZVM=VM.Zebra(lo=V_LO,hi=V_HI,CMAD=CMAD).Crop(5*48,0,-0,-0)
ZVR=VR.Zebra(lo=V_LO,hi=V_HI,CMAD=CMAD).Crop(5*48,0,-0,-0)
BOT=StackHorizontal(V,ZVL,ZVM,ZVR)
StackVertical(TOP,BOT)
Return ConvertToRGB32
Idea splitting in parts was to ID bars where indicator present in all 3 Zebra YInRange bars, and for both U and V. (EDIT: 6 bars in all)
Not very successful I'm afraid, too much noise, no idea what to suggest.
NLPguy
13th June 2015, 22:25
Time base errors show up either as "flagging" at the top of the screen (horizontal bending of the top 10-15 scan lines, usually to the left), or as inconsistent starting point for each scan line which is easy to see when you look at vertical objects like fence posts (they will appear very ragged).
When capturing video, you want to turn off ALL filtering, and make sure you turn ON the edit switch. The edit switch makes sure that the VCR does not "enhance" the video in any way. The filtering that is done in VHS decks is designed to smooth out noise, but it kills detail. You will get far more detail by letting the VCR display every last detail, including the noise, and then using the far superior noise reduction that can be done with modern software.
Hi John,
About your post quoted above.
Please, what is the ''modern software'' that you had mentioned?
I have one Avermedia DarkCrystal HD(C027) that doesn't capture with MagicYUV, HuffYUV and Lagarith.
So, if it's possible, can you advise me about what is a good video capture board that works in my PC and in a laptop?
Thank you again!
johnmeyer
14th June 2015, 03:25
Please, what is the ''modern software'' that you had mentioned?Pretty much any AVISynth NR filter will do a better job than what is inside the deck. Just to repeat: under no circumstances should you let the deck try to do NR on the video. You must turn on the edit switch.
So, if it's possible, can you advise me about what is a good video capture board that works in my PC and in a laptop?We've had this discussion many times in this forum. I recommend using a DV capture device, or simply the passthrough on the DV or Digital8 camcorder. You connect composite or S-Video to the camcorder/capture device, and then connect to your computer with a Firewire/1394 cable. I like this method because it is bullet-proof and never drops frames.
However, other people really dislike DV because other codecs do a better job preserving colorspace and, to some degree, have fewer artifacts at the same bitrate. IMHO, you'll never notice these differences when starting with VHS material, which is really low res. Just make sure you do in fact do some noise filtering before you encode.
feisty2
14th June 2015, 05:28
Please, what is the ''modern software'' that you had mentioned?
high quality (low speed):
motion compensation (mvtools)
nlmeans (knlmeanscl, not slow actually, if works at GPU mode)
frequency filter (dfttest, use it with care, like all frequency filters, it sucks at high frequencies, disable high frequency filtering with "sstring")
bm3d (a vaporsynth plugin for it is available, if you wanna test it out)
acceptable quality and high speed:
fft3d
ultra fast and low quality
removegrain
raffriff42
14th June 2015, 10:56
"salvaging home transfers of old VHS home videos to DVD"
http://forum.doom9.org/showthread.php?p=1663102#post1663102
ChiDragon
14th June 2015, 16:52
You must turn on the edit switch.
Some of my VCRs add sharpening halos in EDIT mode, so I don't agree that this advice should be applied across the board.
I have one Avermedia DarkCrystal HD(C027) that doesn't capture with MagicYUV, HuffYUV and Lagarith.
I have the North American C027 and you can certainly capture with those codecs if you use VirtualDub or other third-party capture software instead of the bundled crap.
johnmeyer
14th June 2015, 17:17
Some of my VCRs add sharpening halos in EDIT mode, so I don't agree that this advice should be applied across the board.Well, I don't know what name each manufacturer gives the switch that is designed for dubbing tapes from one VCR to another, but that is the switch that must be turned on or off (depending on how the manufacturer labels it).
The idea is to turn sharpening off, as you correctly note.
NLPguy
15th June 2015, 00:18
Pretty much any AVISynth NR filter will do a better job than what is inside the deck. Just to repeat: under no circumstances should you let the deck try to do NR on the video. You must turn on the edit switch.
We've had this discussion many times in this forum. I recommend using a DV capture device, or simply the passthrough on the DV or Digital8 camcorder. You connect composite or S-Video to the camcorder/capture device, and then connect to your computer with a Firewire/1394 cable. I like this method because it is bullet-proof and never drops frames.
However, other people really dislike DV because other codecs do a better job preserving colorspace and, to some degree, have fewer artifacts at the same bitrate. IMHO, you'll never notice these differences when starting with VHS material, which is really low res. Just make sure you do in fact do some noise filtering before you encode.
Thank you John.
I have the North American C027 and you can certainly capture with those codecs if you use VirtualDub or other third-party capture software instead of the bundled crap.
Hi ChiDragon,
I also have the North American C027. However, I can't capture with those codecs using the VirtualDub. I don't know why.
Do you know some manual or video that can help me in this process?
Thank you.
ChiDragon
16th June 2015, 05:45
I don't know of such a walkthrough. You install the codecs, go to capture mode's Video -> Compression menu, and select them. Changing the pixel format of the Capture Pin alters which compressors you can choose, but most of the popular lossless codecs can deal with all of the 4:2:2 variants.
You have them installed and they don't appear in the Compression menu, or...? 32-bit codecs should be used with the 32-bit version of VirtualDub, and 64-bit ones with the 64-bit version (which I never use).
Well, I don't know what name each manufacturer gives the switch that is designed for dubbing tapes from one VCR to another, but that is the switch that must be turned on or off (depending on how the manufacturer labels it).
Yeah, same switch. The problem seems to be that (for these models) they decided the way to compensate for the loss of a generation would be to enhance the edges.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.