[FFmpeg-user] ffmpeg architecture question

pdr0 pdr0 at shaw.ca
Sun Apr 19 09:08:15 EEST 2020

Mark Filipak wrote
> My experience is that regarding "decombing" frames 2 7 12 17 ..., 
> 'pp=linblenddeint' (whatever it is) does a better job than 'yadif'.
> "lb/linblenddeint
> "Linear blend deinterlacing filter that deinterlaces the given block by
> filtering all lines with a 
> (1 2 1) filter."
> I don't know what a "(1 2 1) filter" is -- I don't know to what "1 2 1"
> refers. pdr0 recommended it 
> and I found that it works better than any of the other deinterlace
> filters. Without pdr0's help, I 
> would never have tried it.

[1,2,1] refers to a vertical convolution kernel in image processing. It
refers to a "block" of 1 horizontal, 3 vertical pixels.  The numbers are the
weights. The center "2" refers to the current pixel.  Pixel values are
multipled by the numbers , and the sum is taken, that's the output value.
Sometimes a normalization calculation is applied with some implementations,
you'd have to look at the actual code to check. But the net effect is each
line is blended with it's neighbor above and below  . 

In general, it's frowned upon, because you get "ghosting" or double image .
1 frame now is a mix of 2 
different times, instead of distinct frames. But you need this property in
this specific case to retain the pattern in terms of reducing the judder .
Other types of typical single rate deinterlacing (such as yadif) will force
you to choose the top or bottom field, and you will get a duplicate frame of
before or after ruining your pattern . Double rate deinterlacing will
introduce 2 frames in that spot, ruining your pattern . Those work against
your reasons for doing this - anti-judder

> To me, deinterlace just means weaving the odd & even lines. To me, a frame
> that is already woven 
> doesn't need deinterlacing. I know that the deinterlace filters do
> additional processing, but none 
> of them go into sufficient detail for me to know, in advance, what they
> do.

Weave means both intact fields are combined into a frame . Basically do
nothing. That's how video is commonly stored. 

If it's progressive video, yes it doesn't need deinterlacing. By definition,
progressive means both fields are from the same time, belong to the same

Deinterlace means separating the fields and resizing them to full dimension
frames by whatever algorithm +/- additional processing

Single rate deinterlace means half the fields are discarded (29.97i =>
29.97p) . Either odd or even fields are kept . Double rate deinterlacing
means all fields are kept (29.97i => 59.94p). The "rate" refers to the
output rate

Sent from: http://www.ffmpeg-archive.org/

More information about the ffmpeg-user mailing list