|
Trev's Articles Third Run of AVISynth Scripts |
April 2009
Following all of the tests, it has been determined after careful viewing from a regular Television and DVD player that the best output was produced by Script 1.1.1.
Although there were several scripts that received top rating for quality, on close inspection there were some very minor artifacts (combing/blocky/jerky).
Final Results
Items highlighted in green were confirmation of excellent results.
|
Rank |
Test Number |
Visual Quality |
|
1 |
1.1.1 |
No Combing Smooth Movement |
|
2 |
1.7 |
Virtually No Combing Smooth Movement |
|
3 |
1.1 |
Very Minor Combing Smooth Movement |
|
4 |
12.0.2 |
Very Minor Combing Smooth Movement |
1.1.1 Script Parameters
Here is the final script:
|
# PAL DV (50 fps) to
NTSC DV (59.94 fps) |
Description of each line:
LoadPlugin("SmoothDeinterlacer.dll")
|
All of the scripts except for 12.0.2 used the SmoothDeinterlacer to Deinterlace the video for Processing.
12.0.2 used Kernelbob with probably accounts for the slow processing time, and is why this test came 4th.
AVISource("YouAVIFile.avi")
|
Obviously you have to specify the location and name of your AVI File.
|
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2
|
Because the original AVI file is in RGB888 format, it must be converted to a different Color Format for Smoothdeinterlacer to work. YUY2 seemed to retain the color format from the original very well.
|
SmoothDeinterlace(tff=false, doublerate=true)
|
This executes the smoothDeinterlace plugin. tff=false is required for DV files as they are bottom field first. doublerate=true is required for interlaced output, specifying "false" introduced bad combing into the output (see test 1.1.1double)
|
Lanczos4Resize(720,480)
|
This executes the resize command to NTSC screen size. All other top tests used BilinearResize, so Lanczos4Resize may just have the edge on quality.
|
ConvertFPS(59.94)
|
This command converts the Fields Per Second to NTSC 59.94 from the original PAL setting of 50. ChangeFPS(59.94) caused the jerky movements.
|
SeparateFields()
|
This command is needed to separate fields on an interlaced video which is frame based
|
SelectEvery(4, 0, 3)
|
This command selects the correct Frames for conversion. Not sure I entirely understand how this works, but tried different settings which resulted in blocky picture.
|
Weave()
|
Puts pairs of fields back together to produce interlaced frames.