[MPlayer-dev-eng] New inverse-telecine filter

D Richard Felker III dalias at aerifal.cx
Fri Dec 5 23:35:09 CET 2003


On Fri, Dec 05, 2003 at 04:08:10PM -0600, Zoltan Hidvegi wrote:
> > On Fri, Dec 05, 2003 at 12:00:28PM -0600, Zoltan Hidvegi wrote:
> > > > > > Also, the way hard-interlaced mode alternates a couple times per
> > > > > > second between using bottom and top field as a source of interpolation
> > > > > > creates a horrible low-frequency flicker.
> > > > > 
> > > > > Yes, but what else can I do, that's the only way to keep the output
> > > > > rate even for interlaced content.  Ive started to write a motion
> > > > 
> > > > Well then at the very least, you need a better filter.
> > > 
> > > Yes.  Any suggestions?  That's the same problem as tfields, that
> > > flickers too.
> > 
> > Yes, but it flickers at a steady, rapid 60 Hz, and your eyes filter
> > that out, just like on a real TV. On the other hand, 5 Hz flicker
> > looks horrible.
> 
> Yes, I know it is ugly, but the only filter I know that could
> eliminate that is motion-compensated deinterlacing, and you know that
> it's a quite complex task to write such a deinterlacer.  Or do you
> know any simple kernel filter that does not flicker, and still OK
> quality (pp=lb is not OK for me)? 

In the absence of anything better, I'd use linear blend. Yes it's
horrible if you make a mistake and apply it to telecined fields, but
if you actually have 60fps content the blurring is only minor. Much
less visually annoying than the flicker.

> You can to top-fiel all the time,
> but then the motion will not be smoth.  What your filter does?  Output
> at 60fps, since you can do variable rate in G2?

For mismatched lone fields in an otherwise progressive/telecine
sequence, my intent is just to drop them entirely. Presently I don't
really handle what you call hard-interlaced content, since I think
doing so will always be detrimental to the cases I care about. I would
like to add it, but only as an optional feature, in which case a
separate filter would actually be used afterwards for making full
60fps frames out of the fields. So it would be:

  decoder --> pullup[detect_interlaced,dont_drop_1frames] -->
    true_deinterlacer(60fps output) --> vo or ve

Rich



More information about the MPlayer-dev-eng mailing list