forget about that anti-averaging request.
but it would be good IMO, if the filter decides for the whole plane, whether the next or prev field is used, instead of doing this pixelwise.
I ask for this, cause fieldblended video always swaps its phase, so the pixel of the wrong-phased (non-fitting) field would not be relevant (the sum up to less than 1% of the whole weaved pixels).
the next thing I would think, that it would be good, is kernel-interpolation.
it is not as jaggy-free as edge-directed interpolation, but it produces a much more stable (lesser flickering) image in bobbed areas, cause my intellibob uses a one-way kernel, that is turned to fwd or bwd direction to fit the in-phase-field. (but I think, this would be hard to implement)
EDIT:
my very raw intellibob() replacement with hardmatching, when fields are near to equal:
Code:
function matchbob(clip c, int "combth", bool "show")
{
show = default(show, false)
global cth = default(combth,6)
ord = c.getparity() ? 1 : 0
odd = c.doubleweave().selectodd().telecide(order=1-ord,post=0)
even = c.telecide(order=ord,post=0)
tel = interleave(even,odd).duplicateframe(0)
analyse = tel.greyscale()
tel = show ? tel.subtitle("fieldmatched") : tel
bobbed = c.TDeint(mode=1, order=ord, mthreshL=8, mthreshC=6,type=2)
bobbed = show ? bobbed.subtitle("bobbed") : bobbed
conditionalfilter(analyse,tel,bobbed,"iscombed(cth)","==","false")
}