View Full Version : sample custom INI for CVD from NTSC (S-)VHS


FredThompson
9th September 2003, 07:41
This is what I am using for relatively clean 720x480 NTSC DV captures of (S-)VHS source to be made into CVD. The crop and addborders parameters are project-specific but I make a separate file for each non-ad segment of a TV capture so this is helpful for me.

DDogg will probably suggest a different resizing algorithm ;)

All filters are easily found on Warp Enterprise's filter page at http://www.avisynth.org/users/warpenterprises/ except ShadowSmoother which is here: http://www.geocities.com/gc_timsara/vdub.html and Reinterpolate411 which is here: http://mywebpages.comcast.net/trbarry/

Colorspace conversions are negligible given this is designed for analog tape captures.

[AVISYNTH_SimpleResize]
0=LoadPlugin(!SimpleResize.dll)
1=ConvertToYUY2().SimpleResize(^TargetWidth,^TargetHeight)
2=AddBorders(0,^BorderTop,0,^BorderBottom)
!SimpleResize.dll=C:\Program Files\DVD2SVCD\Avisynth2.5 Plugins\SimpleResize\SimpleResize.dll

[AVISYNTH_BilinearResize]
0=BilinearResize(^TargetWidth,^TargetHeight)
1=AddBorders(0,^BorderTop,0,^BorderBottom)

[AVISYNTH_BicubicResize]
0=BicubicResize(^TargetWidth,^TargetHeight,^b_value,^c_value)
1=AddBorders(0,^BorderTop,0,^BorderBottom)
^b_value=0.0
^c_value=0.6

[AVISYNTH_VHSpassthruCVD]

0=AviSynth_plugin_directory="C:\Program Files\AviSynth 2.5\plugins\"
1=global VirtualDub_plugin_directory="C:\Program Files\VirtualDub\plugins\"
2=LoadPlugin(AviSynth_plugin_directory+"Cnr2.dll")
3=LoadPlugin(AviSynth_plugin_directory+"PeachSmoother.dll")
4=LoadPlugin(AviSynth_plugin_directory+"Reinterpolate411.dll")
5=function VD_ShadowSmoother(clip clip, \
6=int "threshold", \
7=int "strength", \
8=int "difference", \
9=bool "pixellock", \
10=bool "noiselock", \
11=bool "postsmooth") {
12=LoadVirtualdubPlugin(VirtualDub_plugin_directory+"\shadowsmoother07.vdf", \
13="_VD_ShadowSmoother")
14=return clip._VD_ShadowSmoother(default(threshold,4), \
15=default(strength,15), \
16=default(difference,2), \
17=default(pixellock,false)?1:0, \
18=default(noiselock,false)?1:0, \
19=default(postsmooth,false)?1:0) }
20=ConvertToYUY2(interlaced=true)
21=Reinterpolate411()
22=Cnr2("xxx",4,5,255)
23=PeachSmoother()
24=ConvertToRGB(interlaced=true)
25=VD_ShadowSmoother(7,1,3,true,true,true)
26=VD_ShadowSmoother(6,3,4,true,true,true)
27=Crop(8,2,-10,-8)
28=AddBorders(9,5,9,5)
29=BicubicResize(352,480,0.0,0.6)
?1=

dvd2svcd
9th September 2003, 09:09
Please add a space before and after your ? that way you will avoid the last line
?1=

[AVISYNTH_VHSpassthruCVD]

0=AviSynth_plugin_directory="C:\Program Files\AviSynth 2.5\plugins\"
1=global VirtualDub_plugin_directory="C:\Program Files\VirtualDub\plugins\"
2=LoadPlugin(AviSynth_plugin_directory+"Cnr2.dll")
3=LoadPlugin(AviSynth_plugin_directory+"PeachSmoother.dll")
4=LoadPlugin(AviSynth_plugin_directory+"Reinterpolate411.dll")
5=function VD_ShadowSmoother(clip clip, \
6=int "threshold", \
7=int "strength", \
8=int "difference", \
9=bool "pixellock", \
10=bool "noiselock", \
11=bool "postsmooth") {
12=LoadVirtualdubPlugin(VirtualDub_plugin_directory+"\shadowsmoother07.vdf", \
13="_VD_ShadowSmoother")
14=return clip._VD_ShadowSmoother(default(threshold,4), \
15=default(strength,15), \
16=default(difference,2), \
17=default(pixellock,false) ? 1:0, \
18=default(noiselock,false) ? 1:0, \
19=default(postsmooth,false) ? 1:0) }
20=ConvertToYUY2(interlaced=true)
21=Reinterpolate411()
22=Cnr2("xxx",4,5,255)
23=PeachSmoother()
24=ConvertToRGB(interlaced=true)
25=VD_ShadowSmoother(7,1,3,true,true,true)
26=VD_ShadowSmoother(6,3,4,true,true,true)
27=Crop(8,2,-10,-8)
28=AddBorders(9,5,9,5)
29=BicubicResize(352,480,0.0,0.6)

FredThompson
9th September 2003, 09:34
I have no idea where that ?1= line comes from. I didn't put it there, it just showed up.

I tried this but then the process would hang:

30=Limiter()

dvd2svcd
9th September 2003, 09:38
I just told you where it came from. It's because you haven't put spaces before and after your ? (questionmarks)

FredThompson
9th September 2003, 09:50
Ah, ok, I didn't understand because I was thinking ? meant the ? in the last line. Thanks for the info.

DDogg
9th September 2003, 19:26
This is what I am using for relatively clean 720x480 NTSC DV captures of (S-)VHS source to be made into CVD. Looks like you put a lot of effort into this. Are you pleased with the output now?

Should I take that to mean that you recommend this for standard DVCam to VCD,CVCD,SVCD,DVD also? Or is it more targeted at just captures via DV pass through? Also, is it more targeted at lower bitrates or a full spectrum?

FredThompson
9th September 2003, 23:03
Originally posted by DDogg
Looks like you put a lot of effort into this. Are you pleased with the output now?not yet. it needs dropout/scratch removal and better tuned near-black smoothing. I'd also like a proper comb filter but it doesn't exist yet. Guava can be used but it's not effective in motion areas. Hmmm...guess I should add that because it will still help. It would also benefit from wavelet filtering but that's still slow.
Should I take that to mean that you recommend this for standard DVCam to VCD,CVCD,SVCD,DVD also? Or is it more targeted at just captures via DV pass through?The only thing which makes it CVD is the resizing line. modify or eliminate that line as desired.

CNR2 and PeachSmoother, combined, are for filtering analog source.

The near-black smoothing appears to be doing less in the 16-235 luma than I had hoped. It does a fantastic job on pure DV source.

Reinterpolate411 is for NTSC DV. Also, is it more targeted at lower bitrates or a full spectrum? Useful for everything. The only filters I've seen that are effective for low bitrates are targetted forms of temporal smearing, like KVCD. I've played with that a little but now that we have an AviSynth 2.5.x Peach, have abandoned their approach.

I should point out, this filter gives better quality than NTSC DV so use it as a passthru filter, don't try to save the filtered output as NTSC DV.