Log in

View Full Version : Awkward Source: 60p -> 24p


cools
7th August 2012, 06:44
So, I've come across a source which was originally 24 fps, and I believe converted to 30 fps by repeating frames followed by a bob (iThink) to 60 fps - which creates some judder that is imperceptible at 60fps - however, when slowed down or decimated it immediately becomes apparent and when freeze-framed aliasing-like lines show up. I've tried a couple of things - to varying degrees of success - but haven't been able to truly fix the issue.

TestClips (http://www.sendspace.com/file/ulzfqm)

Example of Aliasing Like lines (around the book):
http://i.imgur.com/qD6jG.png

Fixed!:
http://i.imgur.com/nw7DC.png

Simply applying TDecimate(cycleR=3) doesn't work as the file ends up bobbing up and down - especially noticable in slow moving scenes (not so much in fast motion).

So one of the ways I came about trying to fix it was by merging the odd and even frames together

MPEG2Source("full-movie.d2v")
v1 = SelectEven()
v2 = SelectOdd()
Merge(v1,v2)

#and the decimation back to 24p while dealing with annoying pop-ups...
saved = last
CropBottom(150)
Tdecimate(clip2=saved)


While this works in slow moving scenes (like the image above - it also works well for whiskers...) - it usually creates some wicked ghosting in faster moving scenes.

http://i.imgur.com/WRFd6.png


I then also tried using dup() with blending to much greater success - it works quite well in most scenes, but in slow scenes it can end up not being effective as the judder is more apparent and the threshold would have to be jacked up for it to work correctly.

MPEG2Source("full-movie.d2v")
dup(threshold=2,blend=true) #thresh set to 2 based on other parts of the film
saved = last
CropBottom(150)
TDecimate(cycleR=3, clip2=saved)


I suppose something like this:

MPEG2Source("full-movie.d2v")
saved = last
CropBottom(150)
TDecimate(cycleR=3, blend=true, clip2=saved)

would work - if it was a thing! So any ideas on the best way to fix this issue?

Didée
7th August 2012, 11:12
Shot in the blue:

merge(selectevery(1,1),0.5)
Srestore(frate=23.976,speed=-1)

That's just "hit or miss", short of coming up with a dedicated solution.

With some luck, it might work out. Try and see how it's going.

_____

edit: Just noted the bit about "annoying popups" ...

Just in case it does work out, the analyse/render separation can be done just as well:
merge(selectevery(1,1),0.5)

#and the decimation back to 24p while dealing with annoying pop-ups...
blabb = last
blubb = CropBottom(152)

blabb.Srestore(frate=23.976,speed=-1,dclip=blubb)

Guest
7th August 2012, 17:30
[bump after re-open following user clarification]

cools
7th August 2012, 19:33
Didee - the script worked for both slow and quick moving scenes (throughout the film). Thank you very much!

With some MPEG2 color correction and light denoising - I think I'll end up with a pretty solid encode!