|
Trev's Articles First Run of AVISynth Scripts |
April 2009
There are so many example AVISynth scripts available to perform PAL to NTSC conversion, there was no way of determining which one provided the best results. In addition to the quality of the final video, there may also be some scripts that perform better, i.e. Take less time to convert..
PAL Video Clip of a beach scene with Seals, lots of Horizontal movement.
duration 1m 18s, size 286,889 KB
First run Results
Items highlighted in green were used for Second run testing.
|
Test Number |
Quality |
Overall Visual Rating |
Conversion Time |
|
1 |
Minor Combing Smooth movement |
|
1m 54s |
|
2 |
Bad Combing Jerky movement |
|
1m 15s |
|
3 |
Did not work |
|
failed |
|
4 |
Very Bad Combing Jerky movement |
|
1m 6s |
|
5 |
Medium Combing Very Jerky movement |
|
47s |
|
6 |
Medium Combing Very Jerky movement |
|
1m 49s |
|
7 |
Medium Combing Minor Jerky movement |
|
1m 18s |
|
8 |
Bad Combing Minor Jerky movement |
|
2m 5s |
|
9 |
Bad Combing Jerky movement |
|
3m 40s |
|
10 |
Medium Combing Smooth movement No Sound! |
|
2m 42s |
|
11 |
Minor Combing Smooth movement |
|
46s |
|
12 |
No Combing Smooth movement |
|
3m 40s |
|
13 |
Bad Combing Jerky movement |
|
2m 29s |
|
14 |
Minor Combing Jerky movement |
|
51s |
|
15 |
Minor Combing Minor Jerky movement |
|
1m 38s |
|
16 |
Did not work |
|
1m 10s |
Quality Definitions
Jerky movement is where the picture 'stutters' on a horizontal PAN
Combing is an artifact of an Interlaced picture
A note on determining the output quality
Visual quality of these tests is based on an actual DVD output on a television. All output AVI files were burned to a DVD for viewing on a TV using a regular DVD player. Viewing interlaced AVI files on a PC can often look worse than a regular DVD, or in some cases the application will actually perform a deinterlace, so not showing a true representation of the video.
Combing examples:
This first image shows how the image should look (often shown as a deinterlaced picture)

This second image shows how the image looks with bad combing

Test scripts and details
Test #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)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()
|
Test #2
|
v=AVIsource("PALDV2.avi")
# source is 25 fps
return pal2ntsc(v) function pal2ntsc(v) #output TFF or BFF |
Test #3
LoadPlugin("Convolution3d.dll")
LoadPlugin("SmoothDeinterlacer.dll")
avisource("paldv2.avi", false)
ConvertToYUY2(interlaced=true)
Trim(40285,59711)
crop(4,12,688,552)
SeparateFields()
odd=SelectOdd.Convolution3D (0, 6, 10, 6, 8, 2.8, 0)
evn=SelectEven.Convolution3D (0, 6, 10, 6, 8, 2.8, 0)
Interleave(evn,odd)
Weave()
AddBorders(16,12,16,12)
SmoothDeinterlace(doublerate=true)
LanczosResize(720,480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4,1,2)
Weave()
ConvertToYUY2(interlaced=true)
|
Test #4
# PAL DV (50 fps) to NTSC DV (59.94 fps)
LoadPlugin("LeakKernelDeint.dll")
AVISource("Paldv2.avi")
ConvertToYUY2(interlaced=true)# Smoothdeinterlacer requires YUY2
LeakKernelBob(Order=1,Threshold=4)
Lanczos4Resize(720,480)
ChangeFPS(59.94)
SeparateFields()
SelectEvery(4, 0, 3)
weave()
|
Test #5
#Load Video and Audio Sources
#Video = MPEG2Source("C:\Wherever\MyMpegFile.d2v")
AVISource("paldv2.avi")
#Split frames into fields
SeparateFields()
#Put frames in correct order, including duplicates
SelectEvery(10, 0,1,2,3,4,5,4,7,6,9,8,9)
#Slow down from 60fps to 59.94fps
AssumeFPS(60000,1001,sync_audio=true).SSRC(48000)
#Resize fields to NTSC-compatible size
Spline36Resize(720,240)
#Interlace video frames
Weave()
|
Test #6
|
v=AVIsource("PALDV2.avi")
# source is 25 fps return pal2ntsc(v) function pal2ntsc(v) { last=v #input TFF or BFF #output TFF or BFF return last |
Test #7
|
v=AVIsource("PALDV2.avi") # source is 25 fps
return pal2ntsc(v)
function pal2ntsc(v)
#input TFF or BFF
return last |
Test #8
|
# PAL DV (50 fps) to
NTSC DV (59.94 fps) |
Test #9
|
Import("kernelbob.avs") |
Test #10
|
LoadPlugin("Convolution3d.dll")
|
Test #11
|
#loadplugin("dgdecode.dll") |
Test #12
|
loadplugin("kerneldeint140.dll") |
Test #13
|
Import("kernelbob.avs") |
Test #14
Native VirtualDub was used for the conversion
Test #15
Windows Movie Maker was used for the conversion
Test #16
DVDate was used for the conversion