Mug Funky
8th June 2005, 16:48
hi all. i'm trying to emulate a hardware standards-converter in avisynth, so i can do quick conversion jobs offline when the hardware converter is busy (which is pretty much all the time).
i've _almost_ got a perfect emulation going using regular resizing, convertfps and leakKernelBob (i use the optimised one because speed is a big deal). the quality out of the script is give-or-take the same as what comes out of the hardware, only costing several thousand dollars less :).
however, one thing that could be improved is the motion-mask. it works very well as it is, but i'd like to be able to avoid what Scharfi calls "kernel ghosts", namely bits just under the threshold on edges that get passed through and show up on the wrong frame.
a simple solution IMHO would be to apply something like Manao's "expand" on the motion-map to include pixels immediately around a pixel marked for interpolation.
now this is easily done in script, but there's the issue of speed. so i have 2 ideas:
- implement an expand-like function straight into kerneldeint
- allow an arbitrary mask to be used in kerneldeint (possibly one created by another kerneldeint with map set to true?)
i don't know which would offer better performance, but certainly the latter option would be more flexible.
now, i'm by no means insisting this be done... it's just an idea for adding at a future date if either neuron2 or leak have some time :) also, if it's possible to do things at a similar speed just using masktools, then i'll go with that. i don't know enough of the internals of these plugins to be able to make a call on what method would be most efficient.
i've _almost_ got a perfect emulation going using regular resizing, convertfps and leakKernelBob (i use the optimised one because speed is a big deal). the quality out of the script is give-or-take the same as what comes out of the hardware, only costing several thousand dollars less :).
however, one thing that could be improved is the motion-mask. it works very well as it is, but i'd like to be able to avoid what Scharfi calls "kernel ghosts", namely bits just under the threshold on edges that get passed through and show up on the wrong frame.
a simple solution IMHO would be to apply something like Manao's "expand" on the motion-map to include pixels immediately around a pixel marked for interpolation.
now this is easily done in script, but there's the issue of speed. so i have 2 ideas:
- implement an expand-like function straight into kerneldeint
- allow an arbitrary mask to be used in kerneldeint (possibly one created by another kerneldeint with map set to true?)
i don't know which would offer better performance, but certainly the latter option would be more flexible.
now, i'm by no means insisting this be done... it's just an idea for adding at a future date if either neuron2 or leak have some time :) also, if it's possible to do things at a similar speed just using masktools, then i'll go with that. i don't know enough of the internals of these plugins to be able to make a call on what method would be most efficient.