View Full Version : 60i>24p via MCBOB + NNEDI and ? For Possible Filmout?
Frank Discussion
13th August 2008, 21:43
Hi. I will be shooting 60i HD video for conversion to 24p for a possible filmout of an independent feature film I will be shooting. The reason I think I'm staying with 60i is because I have a Sony A1U which doesn't have progressive, but has great phantom powered mic inputs (sound being extremely important and does 16:9 native HD. I need to try to get every tiny bit of quality I can out of this in case my feature makes it to the big screen.
After searching and reading these forums. I tried MCBob +NNEDI and was realllly impressed with the lack of artifacts, though I haven't viewed the material on a really large screen yet. So much better than the commercial products out there. Thanks for your great work Didée!!!!!!
Unfortunately, I also ran a framerate converter on my first test, just used mvfps(23.976) w/o any extra parameters, on my first test. I'm running MCBob alone right now to re-test to try to narrow down sources of my problems which are two so far:
1) I am getting a strong judder every few seconds. Not continuous, but a strong shake every few seconds.
2) The audio is out of synch. I'm guessing because because the video length changed with the framerate conversion.
Another potential source of the problems is that I started with straight captured mpeg source via DirectShowSource and output it to Cineform AVI.
I am willing to spend the extra processing time using MCBOB and a good framerate converter, since I want quality and am willing to make whatever sacrifices needed (I already have sacrificed a goat and 2 chickens, heh).
Here's the short script I used:
DirectShowSource("Z:\Test\test.mpeg",audio=true,video=true)
MCBob()
SelectEven()
mvfps(23.976)
Many, many thanks for any help you guys can give.
Frank
Frank Discussion
13th August 2008, 21:53
Oops. I forgot to add that I will becarefully lighting and avoiding fast pans, etc, and will be pumping the converted files into Premiere Pro for editing and After Effects for color correction, so I will have those aspects of the so-called 'film look' covered.
mikeytown2
13th August 2008, 23:35
I haven't had to do 30i to 24p yet but I do know that 120p is something to think about if your going for true 24fps. Once at 120 grab every 5th frame and magically you arrive at 24fps. The 120fps trick would work quite well if we had perfect 2x Framerate interpolation, sadly we don't so depending on what is filmed your results will be different.
A heads up, another high quality Bober is TempGaussMC (http://home.arcor.de/dhanselmann/_stuff/?C=M;O=D). MVTools 1.9.6.2 might have issues with MVFlowFps so I would use 1.9.5.7 for now.
Some tips:
Don't use DirectShowSource(), instead load your video with one of these plugin's (http://avisynth.org/mediawiki/External_filters#Source_Filters)
Try this as a starting point code wise
#Load Sources, 30i
MPEG2Source("HDV_1080i.d2v")
AudioDub(NicAudio_NicMPG123Source("HDV_1080i.mp2"))
#Color Correct, and output full range - could be fruitless
ColorMatrix(d2v="HDV_1080i.d2v",interlaced=true,threads=0,clamp=0,outputFR=true)
#Bob Deinterlace & denoise in one step, 60p out
TempGaussMC_beta1(EdiMode="NNEDI",tr2=3)
#convert to 120p, change ncpu to refect # of cpu cores
Filtered = FFT3DFilter(ncpu=2,sigma=2,plane=4,bt=5,interlaced=false)
backward_vec = Filtered.MVAnalyse(overlap=4, isb = true, pel=2, search=3, idx=1, truemotion=true)
forward_vec = Filtered.MVAnalyse(overlap=4, isb = false, pel=2, search=3, idx=1, truemotion=true)
last.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(last), den=FramerateDenominator(last), idx=2)
#convert to 24p
SelectEvery(5,0)
#add film grain
NoiseGenerator(true,10,true)
NoiseGenerator(false,-10,true)
NoiseGenerator() (http://avisynth.org/warpenterprises/files/noisegenerator_25_dll_20050616.zip)
FFT3DFilter() (http://avisynth.org.ru/fft3dfilter/fft3dfilter.html)
ColorMatrix() (http://bengal.missouri.edu/~kes25c/)
Edit:
Use AVFS (http://www.turtlewar.org/avfs/) for input into Premiere Pro/After Effects. Also please define "straight captured mpeg source", what format does your cam record to?
2Bdecided
14th August 2008, 16:02
IMO there is nothing available in or for AVIsynth that is up to the job of frame rate converting cinema quality material. All the available options add artefacts.
Most of the cheaper commercial implementations are worse still.
_If_ you ever need the transfer, pay someone to do the job properly on an Alchemist or similar.
In the mean time, for video projection, get part way to the film look by using 30p. That's easy enough to get right. Just add selectevery(2,0) to the output of mcbob.
Be very careful with your shutter speed. At 60i it's probably too fast, which means you need to add artificial motion blur, which means using frame rate conversion and bluring, which means introducing artefacts.
Cheers,
David.
Undead Sega
15th August 2008, 01:10
If you are filming in 60i and you want to get 24p, u can basically deinterlace (even with the recommended MCBOB + NNEDI, even though u would have to leave ur PC on for days) to 30p, and then obviously cut the frames down to an exact 24p. Be original and keep it 24p and non of this 23.976, it helps for making a nice proper 'Cine' HD viewing :D
mikeytown2
15th August 2008, 01:43
Another Route: http://avisynth.org/mediawiki/Convert60ito24p
Blue_MiSfit
15th August 2008, 02:25
IMO there is nothing available in or for AVIsynth that is up to the job of frame rate converting cinema quality material. All the available options add artefacts.
This is true. I'm not dogging on any plugin developers - they've done a fantastic job and I thank everyone for their wonderful gifts to the community!
There are lots of options that look cool for experimentation, low budget, or "oh shit no other way" type stuff, but none of the options are really production ready.
I did manage to resurrect 60i out of a 24p DV file for a fitness video project. One of three cameras had been in 24p mode, and nobody realized it :D
It wasn't perfect, but it was good enough. The motion fluidity came back, and the only artifact was a little fluttering on the dancer's fingertips.
~MiSfit
WorBry
15th August 2008, 05:25
IMO there is nothing available in or for AVIsynth that is up to the job of frame rate converting cinema quality material. All the available options add artefacts.
The subject was discussed at length here:
http://forum.doom9.org/showthread.php?p=849510#post849510
and here:
http://forum.doom9.org/showthread.php?p=1049505#post1049505
It's those weird structural distortions (in interpolated frames) where objects are moving over objects that give the game away for me.
As Didee commented at that time:
http://forum.doom9.org/showpost.php?p=1102494&postcount=24
Perhaps the MVTools developers (after perfecting multi-threading) could turn their attention to addressing this core issue?
2Bdecided
15th August 2008, 10:16
If you are filming in 60i and you want to get 24p, u can basically deinterlace (even with the recommended MCBOB + NNEDI, even though u would have to leave ur PC on for days) to 30p, and then obviously cut the frames down to an exact 24p.That will introduce horrible motion judder.
btw, mcbob outputs 60p (not 30p), but even so, simply dropping frames to get down to 24p will still introduce motion judder.
Depending on the source, this might be the least bad option, but I find it objectionable.
Cheers,
David.
2Bdecided
15th August 2008, 10:18
It's those weird structural distortions (in interpolated frames) where objects are moving over objects that give the game away for me. Ditto. You get a beautiful looking conversion, and then someone's hand moves and turns into a alien appendage! A uniformly bad looking conversion (judder, blur, soft etc) can often be subjectively less disturbing.
Cheers,
David.
mikeytown2
15th August 2008, 11:06
Hey try this... It's giving me fairly good results with wakeboarding footage! It's off my HDV Cam
MPEG2Source("2008.d2v", cpu=6)
TempGaussMC_beta1(EdiMode="NNEDI",tr2=3)
BicubicResize(640,360)
Filtered = FFT3DFilter(ncpu=2,sigma=2,plane=4,bt=5,interlaced=false)
bw1_vec1=Filtered.MVAnalyse(isb=true, blksize=16, overlap=8, divide=2, idx=2, dct=4, truemotion=true, pel=2, search=0, searchparam=0, lambda=2700, sadx264=7, pnew=9)
fw1_vec1=Filtered.MVAnalyse(isb=false, blksize=16, overlap=8, divide=2, idx=2, dct=4, truemotion=true, pel=2, search=0, searchparam=0, lambda=2700, sadx264=7, pnew=9)
MVFlowFps(last, bw1_vec1, fw1_vec1, idx=3, num=120000,den=1001)
120FPS!
if you don't have a core2 then do not set sadx264
2Bdecided
15th August 2008, 12:21
I think TempGaussMC_beta1 is slight overkill when your input height is 1080 and the output is only 360. Still, if your PC is fast enough...
Cheers,
David.
Frank Discussion
15th August 2008, 18:02
Thanks so much you guys!! You cleared things up for me immeasurably. I think the link provided by WorBry clinched it for me. The bottom line seems to be if I want to reserve the possibility of going to filmout, I need to shoot 24p in the first place.
But that is very good and important information to have and I thank you all again.
Cheers,
Frank
BTW - MikeyTown: HDV natively records to a condensed MPEG-2 transport stream unless bypassed using something like Black Magic's Intensity.
WorBry
16th August 2008, 04:34
MikeyTown2,
Any chance you could apply your superior knowledge of MVTools parameters to this sample clip?
http://rapidshare.com/files/137655733/Test_DV_720x576_anamorphic_25p.avi.html
It's DV 720x576 (anamorphic) 25p. I've been trying to achieve a decent double-rate (25p to 50p) conversion with MVFlowFPS but just cant get shot of the structural distortions surrounding the boys on the swing as it passes in front of the frame and rope....a prime example of the type of artifacts I was referring to above.
Cheers :)
PS - I dont have a Core2 PC
mikeytown2
16th August 2008, 05:59
@WorBry it's quite simple, for FPS conversions you want the big details, thus big blocks and no noise. Something like this works with the latest MVtools 1.9.6.6
AVISource("Test_DV_720x576_anamorphic_25p.avi",pixel_type="YUY2")
Filtered = FFT3DFilter(ncpu=2,sigma=10,plane=4,bt=5,interlaced=false, sharpen=2)
vectors=Filtered.MVAnalyseMulti(blksize=32, blksizeV=16, overlap=0, idx=1, dct=4, truemotion=true, search=0, searchparam=0, lambda=2700, pnew=9)
bw1_vec1=vectors.MVMultiExtract(0)
fw1_vec1=vectors.MVMultiExtract(1)
MVFlowFps(last, bw1_vec1, fw1_vec1, 50,1)
Only problem is it looks like any objects that move give off heat because of the slight distortions. Once overlap is fixed with big blocks that will give even better results, but it will be a lot slower, if the above isn't too slow for you as is.
WorBry
18th August 2008, 00:40
Your script and specifically the line....
vectors=Filtered.MVAnalyseMulti(blksize=32, blksizeV=16, overlap=0, idx=1, dct=4, truemotion=true, search=0, searchparam=0, lambda=2700, pnew=9)
...throws an "AVISynth open failure -System Exception - Illegal Instruction' on my AMD XP 2800+ (MMX, SSE, 3DNOW)
Tried all three MVtools.dll in 1.9.6.6 and 1.9.6.7 with the same result. Does this mean that my processor will not longer be supported in MVTools?
josey_wells
18th August 2008, 00:58
Here is version 1.9.6.7 that requires no SSE instructions so should work on AMD.
http://rapidshare.com/files/138105353/MSVC08-NoSSE.rar.html
WorBry
18th August 2008, 01:20
Yes, that works. Thanks.
Mug Funky
18th August 2008, 04:04
some food for thought about film-out...
projector gates are usually quite unstable, and the film will "bob" up and down 48 times a second no matter how good your deinterlace is. a straight dumb bob would probably look fine on a release print, though obviously you'll want to go a bit better than that
resolution is usually less than people might think, too. while on a fresh answer print struck straight off a virgin interneg may show a difference between 2k and 4k, what ends up in a cinema will be considerably softer. 2k academy is actually 1828 pixels wide IIRC, so a 1920 filmout can actually be sharper depending on how it's done.
i'd recommend against doing any of that "film look" guff in after effects. that'll be way too high-contrast, and printing film from a linear source will usually introduce more clipping in whites and blacks - just make it look nice and try to err on the side of less contrast if you're finishing in linear rather than log. depending on the lab you film-out at, they'll be able to match your pictures pretty well, but you'll still more than likely lose a bit in the top and bottom ends. going log will probably not be too useful either because your source is linear.
so basically i wouldn't be hugely concerned about the deinterlace you use, as it wont really show on a filmout. use a good one (and avisynth's are among the best), but don't stress too much.
Frank Discussion
20th August 2008, 05:01
Thanks Mug Funky.
By "film look guff" I assume you are talking about adding grain and other garbage. I certainly agree the only good reason to use that stuff would be if I were doing something along the lines of Grindhouse for fun...
Well, it looks like I have a lot to think about. Fortunately, I have some time before the shoot.
Thanks!
WorBry
22nd August 2008, 13:44
Filtered = FFT3DFilter(ncpu=2,sigma=10,plane=4,bt=5,interlaced=false, sharpen=2)
vectors=Filtered.MVAnalyseMulti(blksize=32, blksizeV=16, overlap=0, idx=1, dct=4, truemotion=true, search=0, searchparam=0, lambda=2700, pnew=9)
bw1_vec1=vectors.MVMultiExtract(0)
fw1_vec1=vectors.MVMultiExtract(1)
MVFlowFps(last, bw1_vec1, fw1_vec1, 50,1)
Only problem is it looks like any objects that move give off heat because of the slight distortions. Once overlap is fixed with big blocks that will give even better results, but it will be a lot slower, if the above isn't too slow for you as is.
MikeyTown2,
With MVTools 1.9.6.7 (the non-SSE version provided by Josey_Wells) and your MVAnalyze settings, I'm seeing some reduction in structural distortion but alot of ghosting - look for example at the upright strut of the swing (in the 25p DV clip I put up) - as it moves, it appears split in two. Is it expected that 'overlap-for-big-block-sizes-fix' will remedy this, and when can the fix be expected?
Or maybe Fizick's 2-stage refinement (MVRefine) for MVAnalyze will be the answer for these problems??
http://forum.doom9.org/showthread.php?p=1173371#post1173371
BTW- also tried using your MVAnalyze settings with MVFlowBlur. Chroma is all over the place.
mikeytown2
22nd August 2008, 20:20
If there is motion blur in the original pixels then MVAnalyse/MVFlow seems to fail... so if you wish to do 24p from 30i, I recommend getting bright lights and setting the shutter on the camera to a high as possible. That way you don't capture any motion blur. In order to fix the old footage, we need to minimize motion blur somehow so MVTools can do it's job. Toying with FQRestore() (http://avisynth.org/vcmohan/FQSharp/FQRestore.html), HistogramAdjust() (http://avisynth.org/vcmohan/HistogramAdjust/HistogramAdjust.html), and FastLineDarken() (http://forum.doom9.org/showthread.php?t=82125) would be a good place to start. Copious amounts of sharpening from FFT3DFilter() might work as well.
Ghosting has to do with search=0 and the pnew value.
Undead Sega
22nd August 2008, 23:50
That will introduce horrible motion judder.
btw, mcbob outputs 60p (not 30p), but even so, simply dropping frames to get down to 24p will still introduce motion judder.
it is not like i am applying the inverse telecine method of deinterlacing which in that case will introduce horrible motion judder when applying it on a progressive video. And you can use the fuction SelectEven() to output 30p.
Frank Discussion
23rd August 2008, 04:05
If there is motion blur in the original pixels then MVAnalyse/MVFlow seems to fail... so if you wish to do 24p from 30i, I recommend getting bright lights and setting the shutter on the camera to a high as possible.
If you're doing serious work with your deinterlaced material (like taking it to a filmout), you generally want to lock your shutter at 60fps unless you are wanting to overcrank your camera for slo mo. You want motion blur if you want to get anything like a 'film look'. That's one reason PAL stuff works so much better than NTSC stuff: their 50i is almost exactly the 48 fps that will yield 24fps when the frames are deinterlaced and one frame is removed.
Lighting should be done to get minimum noise.
On the other hand, if you're just playing around, you can do pretty much anything you want.
mikeytown2
23rd August 2008, 17:55
My HDV (Canon HV20) can do fairly high shutter speeds, 1/2000 but it still records at 30i. Found an example on youtube
http://www.youtube.com/watch?v=IOuX91lsZ00
There almost always has to be compromises when your changing framerates. You could get a HDV cam that does 24P, my cam is one that will record at 24 telecined to 30; going that route would be the easiest.
Frank Discussion
23rd August 2008, 18:16
Your HV20 already shoots 24P without doing anything to it, and I mentioned that option early on if interlacing is simply not good enough for the job. If native 24P is my only option, I will wait until right before the shoot to get a 24P camera since all the companies saw what a success a cheap 24p was and will be following suit.
Changing your frame rate in camera is good for a number of purposes, but for regular shots (as opposed to overcranking or undercranking) you generally want to lock down at 60fps.
Lighting CORRECTLY (not just bright light) is an important factor and is much more than just bright lights. You can get info on good lighting on the web (http://www.bluesky-web.com/new-page6.html is a good place to start).
Exposure is also important and is a little difficult to do manually with your HV20, but there are ways to trick your camera that you can get at HV20.com.
2Bdecided
23rd August 2008, 19:16
it is not like i am applying the inverse telecine method of deinterlacing which in that case will introduce horrible motion judder when applying it on a progressive video.I'm not sure you understand what you're doing, but what I commented on here...
http://forum.doom9.org/showthread.php?p=1170578#post1170578
...is about as bad as it gets in terms of introducing motion judder. You're going 60i>60p>30p>24p simply by dropping frames. 60p>24p this way is bad enough, but 60p>30p>24p ?! Am I missing some strange advantage to doing this?
btw, I love my HV20, but not because it can do 25p. ;)
Cheers,
David.
Frank Discussion
23rd August 2008, 19:20
Hey, I'm not slagging the HV20. It's a GREAT camera. It just has a few issues for those of us who want to have a little more manual control.
But all the companies wil be in a frenzy to try to outdo the HV20's well deserved success and some really interesting stuff may be coming out before long.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.