Quote:
I don't perfectly understand your answer
|
The statement "throws away one field" is confusing, generating the idea that something is "lost".
from Dideč, author of MCBob and TGMC, becaming later QTGMC:
A same-framerate deinterlacer will ask you for a "field=top/or/bottom" parameter, defining which of both fields will be thrown away & interpolated: Same framerate = one field doomed.
A bobber does the same, but after each frame inserts another frame that is based on the previously thrown-away field: Framerate doubled by not dooming one field.
Nnedi3 is just an interpolator and is not a smart bob on its own, It would never be able to beat a motion compensated or motion adaptive bobber.
If you want to deinterlace use QTGMC.
I use Needi3 with the option field=-2 (double frame rate) to act like a bobber (but with better quality than standard Bob()) in order to build a "progressive" video from interlaced to make the filtering operation more effective. Then I go back to interlaced, removing interpolated fields.
interlaced frames video
frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8
A..............C
b..............d
Bob() or Nnedi3(field=-2)
frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8
A...........B'.........C .........D'
a'..........b..........c'..........d
x' and X' represents scanlines interpolated from x and X
SeparateFields() assuming TFF
frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8
A..........a'..........B'.........b.........C..... ....c'...........D'.........d
SelectEvery(4, 0, 3)
frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8
A..........b...........C........d
Weave()
frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8
A...........C
b...........d
P.S. I could also use QTCMG to deinterlace, but QTGMC is not really lossless and it performs denoising on its own. I obtain better results with TemporalDegrain2.
(BTW some people is now working on integrating TD2 in QTGMC because they share same motion compensation approach
)