OT: My new faux-HD YouTube series

NickHope wrote on 4/24/2012, 11:14 AM
I made a load of updates to my DVD "Reef Life of the Andaman" and will be serialising it on in weekly episodes over the next few months. Here's today's first episode:

[url=

Post-production geeks might be interested in the process I used in AviSynth to upscale it to HD. The footage started out as 576i PAL DV. After grading, repairing etc. in Vegas, I bob-deinterlaced it to 576-50p with QTGMC. For YouTube I dropped every other frame and did a Spline36Resize up to 720p, hopefully giving it the best chance of clarity for fake (pillarboxed) HD. Bear in mind several clips in this first episode are from the ancient Panasonic NV-DX110b camera.

For the DVD I resampled the 576-50p to 480-60p with MVtools (optical flow stuff) then reinterlaced to NTSC 480i. I really wanted to just start selling one NTSC version of the DVD as maintaining both PAL and NTSC version has been a headache, and this post-production process has finally allowed me to convert the original PAL to NTSC at a quality I'm happy with.

Comments

Byron K wrote on 4/24/2012, 1:34 PM
Watched the video in 720p mode and it looks terrific!
johnmeyer wrote on 4/24/2012, 2:28 PM
Very impressive quality for SD. Nice work.

Send me a PM if you want me to look at the MVTools2 code that you are using for the standards conversion (50i -> 60i). I assume that you did a bunch of test encodes, but I have found that getting correct block size and overlap makes a huge difference in the quality when using MVTools to interpolate new fields/frames from old ones. As always, when doing such tests, you want to look at scenes that contain stuff which breaks even the professional programs (like Twixtor). These include pans across picket fences, people walking briskly across the frame (watch their legs as they go back and forth -- the retrograde motion is the killer), and also objects which briefly enter the frame directly in front of the camera.

As you know, when using MVTools2, there is no setting that works consistently for everything. However, here is my starting point when doing frame rate conversions:

backward_vec = MAnalyse(super,blksize=8, overlap=2, isb = true,  search=3, searchparam=3 )
forward_vec = MAnalyse(super,blksize=8, overlap=2, isb = false, search=3, searchparam=3 )


MTuggy wrote on 4/24/2012, 2:43 PM
I'd love to hear more how exactly you used AVSynth to upscale to HD. What script did you run to do that? I have some older SD footage I'd love to upscale.



Mike
NicolSD wrote on 4/24/2012, 4:07 PM
I really like your video. It is very well done.
NickHope wrote on 4/25/2012, 5:42 AM
Thanks. If anyone wants to follow the weekly episodes, here is a direct subscription link.

In simplified form, this is my AviSynth script for deinterlacing and upscaling PAL 720x576-25i to 988x720-35p:

#Frameserve PAL source from Vegas in RGB24 format
AviSource("d:\fs.avi")
AssumeBFF()

Crop(0,2,0,-2) #Crop noisy top and bottom edge of Sony VX2000 footage
ConvertToYV12(interlaced=true) #Use this line if rendering a 60p lossless intermediate

QTGMC( FPSDivisor=2, Preset="Slower", Sourcematch=3, Lossless=2, EdiThreads=2 )

Spline36Resize(988,720)
AssumeFPS(25)

#Render 25p UT-Video-Codec in VirtualDub for further editing and adding pillarboxing
#or go straight to MeGUI for x264 rendering


And here is my script for converting PAL to NTSC (576-25i to 480-30i):

#Frameserve PAL source from Vegas in RGB24 format
AviSource("d:\fs.avi")
AssumeBFF()

ConvertToYV12(interlaced=true) #Use this line if rendering a 60p lossless intermediate
#ConvertToYUY2(interlaced=true) #Use this line if reinterlacing within this script

QTGMC( Preset="Slower", SubPel=2, EdiThreads=2, Sourcematch=3, Lossless=2 )
super = MSuper(levels=1, pel=2)
MFlowFps(super, QTGMC_bVec1, QTGMC_fVec1, num=60000, den=1001, blend=false )
Spline36Resize(720,480)
AssumeFPS(59.94)

#I saved a lossless UT-Video-Codec RGB here in VirtualDub for further editing on a Vegas 720x480-60p timeline

#Reinterlace code:
SeparateFields()
SelectEvery(4,0,3)
weave()


Both these scripts are in single-threaded form. I add more code to them to achieve multi-threading. I also have lines for slomo, noise reduction etc. that I uncomment when needed. Can share details if anyone is interested.

John, for the retiming (or slomo) I just re-used the vectors that QTGMC generates and didn't have any problems. Without digging I don't know how QTGMC's MAnalyse settings differ from yours or the defaults. I know blksize=8 is the MAnalyse default. For slomo, MVtools occasionally gave some funny results and in those instances I just put a bobbed progressive clip back in Vegas and used a velocity envelope. With underwater footage I can get away with more peculiarities as there is little recognisable geometry and so much is alien anyway.