Trev's Articles

Second Run of AVISynth Scripts

April 2009

Following the first run of tests, the results showed that Test #1, #11, #12 and #15 produced the best quality output.

 

Test 15 was using Windows Movie Maker, so this is the choice for quick and easy conversions if you do not mind some quality loss.

 

That leaves [AVISynth] Tests #1, #11 and #12 as potential candidates for the script that produces the best quality.

 

Second run Results

 

Items highlighted in green were used for Third run testing.

 

Test Number

Quality

Overall Visual Rating

Conversion Time

1

Master

Very Minor Combing

Smooth movement

1m 54s

1.1

 No Combing

Smooth movement

2m 7s

1.2

Very Bad Combing

Jerky movement

2m 9s

1.3

Very Bad Combing

Jerky movement

1m 56s

1.4

Very Bad Combing

Jerky movement

2m 2s

1.5

Minor Combing

Smooth movement

1m 54s

1.6

Very Bad Combing

Jerky movement

2m 9s

1.7

 No Combing

Smooth movement

2m 9s

1.0.1

Minor Combing

Smooth movement

2m 15s

1.1.1

No Combing

Smooth movement

2m 23s

1.2.1

Very Bad Combing

Jerky movement

2m 25s

1.3.1

Very Bad Combing

Jerky movement

2m 16s

1.4.1

Very Bad Combing

Jerky movement

2m 16s

1.5.1

Medium Combing

Smooth movement

2m 16s

1.6.1

Very Bad Combing

Jerky movement

2m 25s

1.7.1

Minor Combing

Smooth movement

2m 24s

12

Master

Minor Combing

Smooth movement

3m 40s

12.1

Minor Combing

Smooth movement

3m 30s
12.2

Medium Combing

Smooth movement

3m 12s
12.3

Minor Combing

Smooth movement

3m 28s
12.0.1

Minor Combing

Smooth movement

3m 21s
12.1.1

Medium Combing

Smooth movement

3m 7s
12.2.1

Medium Combing

Smooth movement

3m 49s
12.3.1

Minor Combing

Smooth movement

3m 1s
12.0.2

No Combing

Smooth movement

3m 47s
12.1.2

Minor Combing

Smooth movement

3m 31s
12.2.2

Minor Combing

Smooth movement

3m 12s
12.3.2

Minor Combing

Smooth movement

3m 28s
12.4

Very Bad Combing

Jerky movement

3m 32s

11.1

Medium Combing

Smooth Movement

1m 19s

11.2

Medium Combing

Smooth Movement

1m 17s

11.3

Medium Combing

Smooth Movement

1m 18s

11.4

Medium Combing

Smooth Movement

1m 18s

11.5

Medium Combing

Smooth Movement

1m 18s

11.6

Medium Combing

Smooth Movement

1m 16s

 

 

Quality Definitions

 

Jerky movement is where the picture 'stutters' on a horizontal PAN

Combing is an artifact of an Interlaced picture

See the first run of tests, for examples of quality for these tests.

 

Test scripts and details

 

Test #1.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2 
SmoothDeinterlace(tff=false, doublerate=true)
BilinearResize(720, 480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.2

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2 
SmoothDeinterlace(tff=true, doublerate=true)
BilinearResize(720, 480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.3

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2 
SmoothDeinterlace(tff=true, doublerate=true)
BilinearResize(720, 480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.4

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2 
SmoothDeinterlace(tff=true, doublerate=true)
BilinearResize(720, 480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.5

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2 
SmoothDeinterlace(tff=false, doublerate=true)
BilinearResize(720, 480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.6

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=True, doublerate=true)
BilinearResize(720, 480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()
 

 

Test #1.7

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=false, doublerate=true)
BilinearResize(720, 480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()
 

 

Test #1.0.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=false, doublerate=true)
Lanczos4Resize(720,480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.1.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=false, doublerate=true)
Lanczos4Resize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.2.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=true, doublerate=true)
Lanczos4Resize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.3.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=true, doublerate=true)
Lanczos4Resize(720,480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.4.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=true, doublerate=true)
Lanczos4Resize(720,480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.5.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=false, doublerate=true)
Lanczos4Resize(720,480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.6.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=True, doublerate=true)
Lanczos4Resize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

Test #1.7.1

 

# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("SmoothDeinterlacer.dll")
AVISource("PalDV2.avi")
ConvertToYUY2(interlaced=false)# Smoothdeinterlacer requires YUY2
SmoothDeinterlace(tff=false, doublerate=true)
Lanczos4Resize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()
 

 

Test #12.1

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(0) # for TFF source, order=0 for BFF (DV)
Lanczos4Resize(720,480)
ConvertFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()

 

 

Test #12.2

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(0) # for TFF source, order=0 for BFF (DV)
Lanczos4Resize(720,480)
ChangeFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.3

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(1) # for TFF source, order=0 for BFF (DV)
Lanczos4Resize(720,480)
ChangeFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.0.1

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(1) # for TFF source, order=0 for BFF (DV)
BilinearResize(720, 480)
ConvertFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.1.1

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(0) # for TFF source, order=0 for BFF (DV)
BilinearResize(720, 480)
ConvertFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.2.1

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(0) # for TFF source, order=0 for BFF (DV)
BilinearResize(720, 480)
ChangeFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.3.1

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(1) # for TFF source, order=0 for BFF (DV)
BilinearResize(720, 480)
ChangeFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.0.2

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(1) # for TFF source, order=0 for BFF (DV)
spline64Resize(720, 480)
ConvertFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.1.2

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(0) # for TFF source, order=0 for BFF (DV)
spline64Resize(720, 480)
ConvertFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.2.2

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(0) # for TFF source, order=0 for BFF (DV)
spline64Resize(720, 480)
ChangeFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.3.2

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(1) # for TFF source, order=0 for BFF (DV)
spline64Resize(720, 480)
ChangeFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #12.4

 

loadplugin("kerneldeint140.dll")
Import("kernelbob.avs")
AviSource("PALDV2.avi")
KernelBob(0) # for TFF source, order=0 for BFF (DV)
Lanczos4Resize(720,480)
ConvertFPS(59.94) # or ChangeFPS if you prefer
SeparateFields()
SelectEvery(4,1,3)
Weave()
 

 

Test #11.1

 

loadplugin("leakkerneldeint.dll")
AVIsource("PALDV2.avi")
ConvertToYUY2(interlaced=true)
LeakKernelDeint(order=1, threshold=10, sharp=true, twoway=false, map=false, linked=false, debug=false)
LanczosResize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #11.2

 

loadplugin("leakkerneldeint.dll")
AVIsource("PALDV2.avi")
ConvertToYUY2(interlaced=true)
LeakKernelDeint(order=0, threshold=10, sharp=true, twoway=false, map=false, linked=false, debug=false)
LanczosResize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #11.3

 

loadplugin("leakkerneldeint.dll")
AVIsource("PALDV2.avi")
ConvertToYUY2(interlaced=true)
LeakKernelDeint(order=0, threshold=10, sharp=true, twoway=true, map=false, linked=false, debug=false)
LanczosResize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #11.4

 

loadplugin("leakkerneldeint.dll")
AVIsource("PALDV2.avi")
ConvertToYUY2(interlaced=true)
LeakKernelDeint(order=0, threshold=10, sharp=true, twoway=true, map=false, linked=true, debug=false)
LanczosResize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #11.5

 

loadplugin("leakkerneldeint.dll")
AVIsource("PALDV2.avi")
ConvertToYUY2(interlaced=true)
LeakKernelDeint(order=0, threshold=10, sharp=true, twoway=false, map=false, linked=true, debug=false)
LanczosResize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

Test #11.6

 

loadplugin("leakkerneldeint.dll")
AVIsource("PALDV2.avi")
ConvertToYUY2(interlaced=true)
LeakKernelDeint(order=0, threshold=10, sharp=false, twoway=false, map=false, linked=false, debug=false)
LanczosResize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4,0,3)
Weave()
 

 

 

Close