Trev's Articles

Third Run of AVISynth Scripts

April 2009

Following the second run of tests, the results showed that Tests #1.1, #1.7, #1.1.1 and #12.0.2 produced the best quality output. The tests below expand on those successful scripts to see if any further enhancements can be made.

 

Tests ending in 'Part2' were of a different AVI clip, which is 3m 40s long. It is used to see if Audio timing is correct and verify output results from the original test compares with the output on a different video clip.

 

 

Third run Results

 

Items highlighted in green were confirmation of excellent results. These tests are used to confirm the final results.

 

Test Number

Quality

Overall Visual Rating

1.1a

 Minor Combing

Smooth movement

Blocky Output

1.1.1.1

Medium Combing

Smooth movement

Blocky Output

1.1Part2

No Combing

Smooth movement

1.1aPart2

Minor Combing

Smooth movement

Blocky Output

1.1.1Part2

No Combing

Smooth movement

1.1.1double

Bad Combing

Smooth Movement

1.1.1.1Part2

Medium Combing

Smooth movement

Blocky Output

1.7a

 No Combing

Smooth movement

1.7Part2

Minor Combing

Smooth movement

1.7aPart2

No Combing

Smooth movement

12.0.2.1

Medium Combing

Smooth movement

Blocky Output

12.0.2.1Part2

Medium Combing

Smooth movement

Blocky Output

12.0.2Part2

No Combing

Smooth movement

 

 

Quality Definitions

 

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

Combing is an artifact of an Interlaced picture

Blocky is where the picture appears as large pixels with no smooth edges. Only these tests introduced these blocky artifacts. Note: The blocky effect only showed up on the final DVD, it was very difficult to see when playing the AVI file on the PC.

 

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

 

Blocky examples:

This first image shows how the image should look

 

This second image shows the image with the blocky effect. Note: this is more emphasized on a TV Screen after DVD conversion:

 

 

 

Test scripts and details

 

Test #1.1a

 

# 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, 0)
weave()

 

Test #1.1Part2

Uses script from Test 1.1 against a different video clip

 

Test #1.1aPart2

Uses script from Test 1.1a against a different video clip

 

Test #1.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, 0)
weave()

 

Test #1.1.1Part2

Uses script from Test 1.1.1 against a different video clip

 

Test #1.1.1Double

 

# 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=false)
Lanczos4Resize(720,480)
ConvertFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()

 

 

Test #1.1.1.1Part2

Uses script from Test 1.1.1.1 against a different video clip

 

Test #1.7a

 

# 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.7Part2

Uses script from Test 1.7 against a different video clip

 

Test #1.7aPart2

Uses script from Test 1.7a against a different video clip

 

Test #12.0.2.1

 

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,0)
Weave()

 

Test #12.0.2.1Part2

Uses script from Test 12.0.2.1 against a different video clip

 

Test #12.0.2Part2

Uses script from Test 12.0.2 against a different video clip

 

Close