Log in

View Full Version : Can AviSynth's "Smooth Deinterlacer" be ported to AviSynth+ x64?


orion44
16th July 2025, 12:57
https://www.guthspot.se/video/AVSPorts/SmoothDeinterlacer/

When working with interlaced DVDs and XviD, this deinterlacer produced a really pleasing, 'natural', unique look that modern deinterlacers are unable to replicate.

Is it possible to create a port of this deinterlacer for AviSynth+ x64 version?

DTL
17th July 2025, 05:44
It does not have C-reference processing mode. And it is implemented as a mix of C and inlined x86 asm. The only way is either look for a human programmer to understand x86 asm and redesign to x64 or intrinsics based version or (wait until) neural networks assisted porting tools of old x86 to x64 will be created.

Jamaika
21st July 2025, 12:04
Let's just say I'm a lousy programmer. I know next to nothing about assembler. Out of curiosity, I created something, but I don't know if it works properly or if I made any mistakes under x86_64.
https://www.sendspace.com/file/c3rr6w

function LibavSource2(string path, int "atrack",
\ int "fpsnum", int "fpsden",
\ string "format", bool "cache")
{
atrack = Default(atrack, -1)
fpsnum = Default(fpsnum, 0)
fpsden = Default(fpsden, 1)
cache = Default(cache, true)

format = Default(format, "")

video = LWLibavVideoSource(path,
\ fpsnum=fpsnum, fpsden=fpsden, format=format,
\ cache=cache)
return (atrack==-2) ? video: AudioDub(video,
\ LWLibavAudioSource(path, stream_index=atrack, cache=cache))
}


LibavSource2("input_rgba.avi",fpsnum=30000,fpsden=1001)

SmoothDeinterlace(tff=false, doublerate=true)