View Full Version : Differing luma between fields


Floatingshed
16th May 2011, 20:36
I have some interlace footage that has a section of progressive film footage in it. The interlaced stuff looks fine but the film footage flickers. Using separatefields() I can see that one field is brighter than the other. I there a way of equalising or averaging these values? Thanks.

poisondeathray
16th May 2011, 20:53
wait... the progressive stuff on consecutive fields has difference in luminance ? consec. fields should be part of the same frame on progressive material....

what have you tried so far? maybe deflicker, or timelapsedf on separated fields ?

didee posted a function in the 8mm thread, not sure if it would apply to your situation
http://forum.doom9.org/showthread.php?p=1498809#post1498809

Floatingshed
16th May 2011, 21:06
wait... the progressive stuff on consecutive fields has difference in luminance ?

Yep! It is an old tv show shot mostly on vt with electonic cameras but the opening titles are on film and they exhibit this problem. I know that the fields should be identical but they are not, the effect is very irritating...

Never considered using Reduceflicker() on "interlaced" material but: separatefields().Refuceflicker().Weave()
has helped a great deal.

pbristow
17th May 2011, 09:56
Floatingshed: It's possible the original telecine (transfer of film to video) was done with poor/misaligned equipment, so that the shutter wasn't fully open on the film frame for the full duration of one of the fields. Look to see if one of the fields is brighter at the top than the bottom, or vice-versa.

Floatingshed
17th May 2011, 11:33
Yes, one field gets brighter towards the bottom. So that's it then poor telecine back in 1976 when the show was made. Nice to have an explanation. Thanks.
Reduceflicker has made the results acceptable.

Didée
17th May 2011, 12:29
Lots of available possibilities.

separatefields / reduceflicker / weave is one reasonable attempt. (But might be too aggressive to image detail in some spots)

Another is Fizick's EquLines (http://avisynth.org.ru/equlines/equlines.html).

Or some little scriptery:
a = last
b = a.separatefields.blur(0,1).weave()

a.mt_makediff(mt_makediff(b,b.blur(0,1)).blur(1,0).blur(1,0),U=2,V=2)
Oh ... this one could work even more careful when using the vertical sbr() variant instead of a plain vertical blur:

a = last
b = a.separatefields.sbrV().weave()

a.mt_makediff(mt_makediff(b,b.sbrV()).blur(1,0).blur(1,0),U=2,V=2)
return(last)
#-------
function sbrV(clip o) {
rg11 = o.blur(0,1)
rg11D = mt_makediff(o,rg11)
rg11DD= mt_makediff(rg11D,rg11D.blur(0,1)).mt_lutxy(rg11D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?")
o.mt_makediff(rg11DD,U=2,V=2) }


Or YET another possibility: good ol' Vinverse() :) (see here (http://forum.doom9.org/showthread.php?t=112512) for an old reference.)


There's so plenty of possible solutions that it's hard to decide which one to choose. :D

2Bdecided
17th May 2011, 13:19
I've seen an example of this, and in the case I had the telecine was so poor that a simple solution saved all that there was to save: just keep one field, and resize it back to a full frame (use NNEDI or similar if you're feeling adventurous).

Cheers,
David.