Log in

View Full Version : 5 interlaced frames for 1 progressive


uralop
10th January 2013, 21:35
Hello,

I'm trying to encode a music video I've got on a DVD of mine.

Looking at the frames, I see 5 "interlaced" frames for 1 progressive.

The frame rate is 29.97fps.

You can see a sample here (5MB) :
http://uppit.com/jnefrps59enp/VTS_02_1.MPG

I'm not sure but it looks like every field is in there to completey restore the progressive film, am I right ?

If so, how could I do that ?

Thanks ;)

Didée
10th January 2013, 23:48
Didn't look at your sample, but your description sounds like a simple PAL>NTSC conversion with field pulldown.
If so, then this should do:
Mpeg2source()
TFM()
TDecimate(cycle=6,cycleR=1)

In case of doubt, look closely at
Mpeg2source()
bob()

If - and only IF - there a lots of blended frames ("double images") in the bob result, then it's a fieldblended normconversion, and it's time for Srestore:
Mpeg2source()
bob() # may use a smarter bobber here
Srestore()

uralop
11th January 2013, 00:40
Didn't look at your sample, but your description sounds like a simple PAL>NTSC conversion with field pulldown.
If so, then this should do:
Mpeg2source()
TFM()
TDecimate(cycle=6,cycleR=1)
That's what I had tried but it left some "interlaced" frames.

In case of doubt, look closely at
Mpeg2source()
bob()

If - and only IF - there a lots of blended frames ("double images") in the bob result, then it's a fieldblended normconversion, and it's time for Srestore:
Mpeg2source()
bob() # may use a smarter bobber here
Srestore()
Indeed, there are a lot of blended frames (I'd say 1 blended every 2 frames).

And this is amazing what Srestore does. It works really great. :)

But it created a lot of judder on lines.

Look at the pictures below (on the car) :

TDecimate :

http://img560.imageshack.us/img560/3221/sanstitrecnv.jpg

Srestore :

http://img202.imageshack.us/img202/9598/sanstitre2ew.jpg

Just to know cause I think that's interesting: what was the process the studio used to encode the video to 29.97fps?

Thanks for your answers ;)


Edit: I've just tried Tdeint instead of Avisynth's Bob and it looks already way better :)

AzraelNewtype
13th January 2013, 21:42
It's not srestore causing that, it's bob. Use a smarter bobber like Didée suggested. nnedi3 is a good place to start, qtgmc if you still don't like those results (it will be slower).

Edit: tdeint isn't a particularly good bobber, but yeah it's better than bob (which is intentionally as dumb as possible). How didn't I see that edit?

uralop
13th January 2013, 22:13
Thanks for nnedi3.

I didn't really know any other bobbers except Bob and TDeint. :) Thanks.

uralop
14th January 2013, 00:02
How do you use nnedi3 or QTGMC as bobbers without involving the deinterlacing part ?

Didée
14th January 2013, 00:55
Why "without involving"? The (bob-)-deinterlacing part is exactly what is required for Srestore.

A pretty resonable allrounder for feeding Srestore is e.g. YadifMod+NNEDI3. NNEDI makes good interpolation, and Yadif is not too bad in reckognizing no-motion, i.e. avoiding shimmering of no-motion parts.
sourcevideo
YadifMod(mode=2,edeint=NNEDI3(field=-2))
Srestore()

Attention: for mpeg2source this is (usually) sufficient. In case of sources with wrong fieldorder flag (or completely missing) - AviSource,DirectShowSource etc. - one may need to AssumeTFF() manually.

QTGMC (maybe) can be used too - technically it's the wrong tool for bobbing fieldblended interlacing, but in practice it often works out.

uralop
14th January 2013, 09:50
Yes, sorry I realize that my question makes no sense now that I read it. :)

Thanks for your answer.

uralop
14th January 2013, 11:30
Why "without involving"? The (bob-)-deinterlacing part is exactly what is required for Srestore.

A pretty resonable allrounder for feeding Srestore is e.g. YadifMod+NNEDI3. NNEDI makes good interpolation, and Yadif is not too bad in reckognizing no-motion, i.e. avoiding shimmering of no-motion parts.
sourcevideo
YadifMod(mode=2,edeint=NNEDI3(field=-2))
Srestore()

Attention: for mpeg2source this is (usually) sufficient. In case of sources with wrong fieldorder flag (or completely missing) - AviSource,DirectShowSource etc. - one may need to AssumeTFF() manually.

QTGMC (maybe) can be used too - technically it's the wrong tool for bobbing fieldblended interlacing, but in practice it often works out.

I assume mode should be equal to 1 for YadifMod in your script since we want to double the frame rate. And it gives an error with mode=2 anyway.

Didée
14th January 2013, 12:28
Yes, correct. It's mode=1 for Yadif/Mod. I didn't happen to use Yadif/Mod for quite some time, and memory served me badly, it seems. :)