nhope
1st May 2011, 09:35
Further to much recent debate on ways to improve interlaced HD>SD downscaling for DVD, I set up a minute's project of various 60i HD footage and converted it to SD NTSC MPEG-2 in a variety of ways. I have put 4 of my renders into a ready-to-burn DVD project which you can download here (http://www.mediafire.com/file/dcdbgaju848mayy/HD-to-DVD-tests-d.zip) (193 MB).
Settings:
Sony Vegas Pro 10.0c.
Full-resolution rendering quality: "Best".
Deinterlace method: "Interpolate".
Color Curves and Levels applied to video events.
Events conformed to 16-235 (broadcast-legal) levels.
"Reduce interlace flicker" switch: OFF.
No blur or sharpen applied in Vegas Pro.
Debugmode Frameserver 2.10
AviSynth 2.5.8 single-threaded used in tests 2 and 3.
All encoded in CCE Basic at 8000 kbps 1-pass CBR, upper field first.
The Belle Nuit test chart is the 1920x1080 version from here (http://www.belle-nuit.com/testchart.html).
Test 1 - Rendering time 309 seconds (100%)
Demonstrates Vegas Pro resizing without blurring or sharpening.
HD clips in NTSC widescreen project, modified with upper field first and PAR 1.1852.
Frameserved in RGB24.
Test 2 - Rendering time 431 seconds (139%)
Demonstrates AviSynth "IResize" function (http://forum.doom9.org/showthread.php?t=140233) developed by Gavino, IanB and others.
Script does low-pass filter "automatically" during resizing to reduce twitter/shimmer/aliasing etc..
HD clips in 1080-60i project.
Frameserved in YUY2 (slightly faster than RGB24).
AviSynth Script:
source=AviSource("d:\fs.avi").ColorYUV(levels="TV->PC").AssumeTFF #Expands levels if frameserved in YUY2
IResize(source,720,480)
function IResize(clip Clip, int NewWidth, int NewHeight) {
Clip
SeparateFields()
Shift=(GetParity() ? -0.25 : 0.25) * (Height()/Float(NewHeight/2)-1.0)
E = SelectEven().Spline36resize(NewWidth, NewHeight/2, 0, Shift)
O = SelectOdd( ).Spline36resize(NewWidth, NewHeight/2, 0, -Shift)
Ec = SelectEven().Spline36Resize(NewWidth, NewHeight/2, 0, 2*Shift)
Oc = SelectOdd( ).Spline36Resize(NewWidth, NewHeight/2, 0, -2*shift)
Interleave(E, O)
IsYV12() ? MergeChroma(Interleave(Ec, Oc)) : Last
Weave()
}
Test 3 - Rendering time 1504 secs (486% - multi-threaded would be much faster)
Demonstrates more advanced method adapted from a suggestion by Didée (http://forum.doom9.org/showthread.php?p=1492392#post1492392).
HD clips in 1080-60i project.
Frameserved in YUY2 (RGB not supported by script).
High quality Bob using TDeint.
Resizing by sequential bicubic passes.
Smoothing with QTGMC.
Sequential blur and sharpen filters.
AviSynth Script:
AviSource("d:\fs.avi")
ColorYUV(levels="TV->PC") #Expands levels if frameserved in YUY2
AssumeTFF
TDeint(mode=1)
bicubicresize(1440,960)
bicubicresize(720,960,-.8,.6)
p1 = bicubicresize(720,480,-.8,.6)
p2 = p1.QTGMC(TR0=1,TR1=1,TR2=2,InputType=1)
p2.blur(0,1).sharpen(0,.51).blur(0,1).sharpen(0,.85)
i1 = assumetff().separatefields().selectevery(4,0,3).weave()
# p1 # straight to 60p
# p2 # plus more calmed
i1 # re-interlaced p2
return(last)
Test 4 - Total Rendering time 1822 secs (589%)
Demonstrates down-converting of HDV to DV in my Sony Z1P camera.
HD clips in 1080-60i project.
Render to HDV (quality 31)
Down-convert to DV in Sony Z1P camera.
If you have the time and inclination, please burn the 2 folders to a DVD and let me know any reactions/preferences you have to it, and please tell us what gear you watched it on (CRT, LCD, DVD software etc.).
Also please let me know if I have correctly described what the scripts in tests 2 and 3 are actually doing.
There is another thread with feedback about this on the Vegas forum here (http://www.sonycreativesoftware.com/forums/ShowMessage.asp?ForumID=4&MessageID=761227), but I think you would have to own Sony software to contribute.
Thanks to everyone who allowed me to use and upload footage.
Settings:
Sony Vegas Pro 10.0c.
Full-resolution rendering quality: "Best".
Deinterlace method: "Interpolate".
Color Curves and Levels applied to video events.
Events conformed to 16-235 (broadcast-legal) levels.
"Reduce interlace flicker" switch: OFF.
No blur or sharpen applied in Vegas Pro.
Debugmode Frameserver 2.10
AviSynth 2.5.8 single-threaded used in tests 2 and 3.
All encoded in CCE Basic at 8000 kbps 1-pass CBR, upper field first.
The Belle Nuit test chart is the 1920x1080 version from here (http://www.belle-nuit.com/testchart.html).
Test 1 - Rendering time 309 seconds (100%)
Demonstrates Vegas Pro resizing without blurring or sharpening.
HD clips in NTSC widescreen project, modified with upper field first and PAR 1.1852.
Frameserved in RGB24.
Test 2 - Rendering time 431 seconds (139%)
Demonstrates AviSynth "IResize" function (http://forum.doom9.org/showthread.php?t=140233) developed by Gavino, IanB and others.
Script does low-pass filter "automatically" during resizing to reduce twitter/shimmer/aliasing etc..
HD clips in 1080-60i project.
Frameserved in YUY2 (slightly faster than RGB24).
AviSynth Script:
source=AviSource("d:\fs.avi").ColorYUV(levels="TV->PC").AssumeTFF #Expands levels if frameserved in YUY2
IResize(source,720,480)
function IResize(clip Clip, int NewWidth, int NewHeight) {
Clip
SeparateFields()
Shift=(GetParity() ? -0.25 : 0.25) * (Height()/Float(NewHeight/2)-1.0)
E = SelectEven().Spline36resize(NewWidth, NewHeight/2, 0, Shift)
O = SelectOdd( ).Spline36resize(NewWidth, NewHeight/2, 0, -Shift)
Ec = SelectEven().Spline36Resize(NewWidth, NewHeight/2, 0, 2*Shift)
Oc = SelectOdd( ).Spline36Resize(NewWidth, NewHeight/2, 0, -2*shift)
Interleave(E, O)
IsYV12() ? MergeChroma(Interleave(Ec, Oc)) : Last
Weave()
}
Test 3 - Rendering time 1504 secs (486% - multi-threaded would be much faster)
Demonstrates more advanced method adapted from a suggestion by Didée (http://forum.doom9.org/showthread.php?p=1492392#post1492392).
HD clips in 1080-60i project.
Frameserved in YUY2 (RGB not supported by script).
High quality Bob using TDeint.
Resizing by sequential bicubic passes.
Smoothing with QTGMC.
Sequential blur and sharpen filters.
AviSynth Script:
AviSource("d:\fs.avi")
ColorYUV(levels="TV->PC") #Expands levels if frameserved in YUY2
AssumeTFF
TDeint(mode=1)
bicubicresize(1440,960)
bicubicresize(720,960,-.8,.6)
p1 = bicubicresize(720,480,-.8,.6)
p2 = p1.QTGMC(TR0=1,TR1=1,TR2=2,InputType=1)
p2.blur(0,1).sharpen(0,.51).blur(0,1).sharpen(0,.85)
i1 = assumetff().separatefields().selectevery(4,0,3).weave()
# p1 # straight to 60p
# p2 # plus more calmed
i1 # re-interlaced p2
return(last)
Test 4 - Total Rendering time 1822 secs (589%)
Demonstrates down-converting of HDV to DV in my Sony Z1P camera.
HD clips in 1080-60i project.
Render to HDV (quality 31)
Down-convert to DV in Sony Z1P camera.
If you have the time and inclination, please burn the 2 folders to a DVD and let me know any reactions/preferences you have to it, and please tell us what gear you watched it on (CRT, LCD, DVD software etc.).
Also please let me know if I have correctly described what the scripts in tests 2 and 3 are actually doing.
There is another thread with feedback about this on the Vegas forum here (http://www.sonycreativesoftware.com/forums/ShowMessage.asp?ForumID=4&MessageID=761227), but I think you would have to own Sony software to contribute.
Thanks to everyone who allowed me to use and upload footage.