Log in

View Full Version : How to convert 25p encoded as 50p to "native" 25p?


LoRd_MuldeR
1st August 2010, 01:01
Hello.

I captured a movie that is 25 frames/second progressive, but was encoded/transmitted as 50 frames/second, i.e. each frame exists twice.

For my own encode I'd like to restore the original 25 frames/seconds.

Of course I could do a simple SelectEven() or SelectOdd(), but that would throw away half of the information. Hence I'd prefer Merge(SelectEven(),SelectOdd()).

Unfortunately the frame pairs that show the same picture aren't consistent throughout the entire movie :rolleyes:

Consequently in some scenes I'd need Merge(SelectEven(),SelectOdd()) but in other scenes I'd need Trim(1,-FrameCount).Merge(SelectEven(),SelectOdd()) instead.

How do I automate this process? Using AssumeFieldBased().Weave().Deint(TryWave=True).LanczosResize(Last.Width, Last.Height) isn't optimal, I think...

Stephen R. Savage
1st August 2010, 01:57
Perhaps, Dup (http://neuron2.net/dup/dupnew.html) by Donald Graft will solve your problems. It will automatically average strings of duplicate frames.

manono
1st August 2010, 05:20
Of course I could do a simple SelectEven() or SelectOdd(), but that would throw away half of the information..
Why would you say that if each frame has a duplicate? There is no additional information. But since you also say the frame pairs are inconsistent, perhaps:

TDecimate(Mode=0,Cycle=4,CycleR=2)#or whatever the cycle is and where CycleR is half the Cycle.

LoRd_MuldeR
1st August 2010, 12:42
Perhaps, Dup (http://neuron2.net/dup/dupnew.html) by Donald Graft will solve your problems. It will automatically average strings of duplicate frames.

Dup(blend=true, maxcopies=2).SelectEven() seems to do the job :thanks:


Why would you say that if each frame has a duplicate? There is no additional information.

Well, due to the lossy compression (and the lousy encoder) both frames of a pair show the same picture, but they aren't 100% identical.

By merging the frames of a pair, I hope the compression artifacts will smooth out. Either that or they add up. I will see...

LoRd_MuldeR
2nd August 2010, 20:41
Dup(blend=true, maxcopies=2).SelectEven() seems to do the job :thanks:

Small correction: As SelectEven() doesn't access frames in a linear fashion, Dup() didn't work as expected with a SelectEven() afterward.

However Dup(blend=true, maxcopies=2).ChangeFPS(25.0) does the job :)