Katie Boundary
3rd July 2022, 01:42
Deinterlacers have been driving me crazy for years. Video with various kinds of pathological non-linear field behavior, plus TFM's poor interlacing-detection algorithm, necessitated the development of a deinterlacer with the following characteristics:
- Every frame includes data from a top field and a bottom field
- No possibility of residual interlacing or interlacing-like artifacts
- No excessive blurring or aliasing
- Ghosting is acknowledged as a necessary price to pay for certain types of content to look correct
To my knowledge, no one has ever made a deinterlacer like this.
I tried TFM(pp=0).blur(0,1).sharpen(0,1), but this produced interlacing-like artifacts along some edges. I tried TFM(pp=0).resize(720,240).resize(720,480), but this destroyed too much data and yielded too much blurring and aliasing. Then I just sort of gave up for several months, or maybe years.
Then a few minutes ago, when I wasn't even doing anything video-related, the solution hit me:
Tfm(mode=0,pp=0,micmatching=0)
converttorgb(interlaced=true).blur(0,1).sharpen(0,1).converttoyv24()
a=nnedi3()
yadifmod2(edeint=a)
Go ahead and throw this at something really gnarly like the Gargoyles opening credits. The image quality is great with no interlacing-like artifacts, retrograde field behavior, or anything.
- Every frame includes data from a top field and a bottom field
- No possibility of residual interlacing or interlacing-like artifacts
- No excessive blurring or aliasing
- Ghosting is acknowledged as a necessary price to pay for certain types of content to look correct
To my knowledge, no one has ever made a deinterlacer like this.
I tried TFM(pp=0).blur(0,1).sharpen(0,1), but this produced interlacing-like artifacts along some edges. I tried TFM(pp=0).resize(720,240).resize(720,480), but this destroyed too much data and yielded too much blurring and aliasing. Then I just sort of gave up for several months, or maybe years.
Then a few minutes ago, when I wasn't even doing anything video-related, the solution hit me:
Tfm(mode=0,pp=0,micmatching=0)
converttorgb(interlaced=true).blur(0,1).sharpen(0,1).converttoyv24()
a=nnedi3()
yadifmod2(edeint=a)
Go ahead and throw this at something really gnarly like the Gargoyles opening credits. The image quality is great with no interlacing-like artifacts, retrograde field behavior, or anything.