[MPlayer-dev-eng] new deinterlace filters

Michael Niedermayer michaelni at gmx.at
Thu Jan 23 10:14:18 CET 2003


Hi

On Thursday 23 January 2003 07:49, D Richard Felker III wrote:
[...]
> So, that brings us to the point of this message. I'd like to work on
> one or more better deinterlacers, keeping the same idea as md, but
> adapting it to reduce the jagged edges during motion.
>
> I think the strong point of md is that it's adaptive, only changes the
> odd lines, and most importantly, only changes them when they appear to
> be interlaced. What I question, though, is whether using the median of
> the three pixels values as a replacement is a good choice. I would be
> inclined to check to see whether the pixel on the odd line lies
> between the values on the even lines, and if so, leave it alone, but
> otherwise, compute a new pixel value for the odd line based on some
> sort of interpolation.
>
> The natural naive choice would be to linear interpolate from the two
> surrounding even lines. Perhaps cubic interpolation would be better.
> But I would imagine both will look rather bad on the fine outlines
> found in animated material, as will ANY interpolation that just uses
> the vertical dimension.
>
> So, presumably the solution is to do some sort of fancier
> interpolation with the surrounding pixels to the left and right. And
> here's where we get to the questions... Do you have any ideas or
> recommendations on good 2d interpolation algorithms that should be
> used here? 
hmm, yes, see: http://mountains.ece.umn.edu/~guille/inpainting.htm
the algorithms on the papars there can replace missing image regions, and it 
looks quite impressive even for large regions, so i guess it should be real 
nice if it has to replace only every 2nd line

> And, more importantly, is this possible with the current
> postproc architecture, or would it need to be a separate mplayer
> filter? As far as I can tell, the deinterlacers get 8x16 blocks at a
> time and can work with the 8x8 region in the middle, but that doesn't
> seem to allow interpolation from the sides. Or, is it safe to just
> read a few bytes beyond the 8x8 block to the left and right as long as
> you don't do so on the first or last line...?
the dering filtr for example reads 10x10 block, so it is possible, if u do the 
filter at the right place, but i am not sure if the pp code is the perfect 
place for new filters, the only advantage over the filter layer is that the 
filters are done interleaved on 8x8 blocks so that the filters allways read 
from the cache, dunno if the filter layer supports slices and if yes then 
dunno how to use them ...

[...]

Michael


More information about the MPlayer-dev-eng mailing list