It is an average of 5 captures using temporalsoften. I use a function that motion compensates the captures to help with alignment issues. The pass3 clip will be the center/output clip. This uses avisynth 2.6 and the latest MVTools2 which has support for multi-threading, etc.
Function FPA(clip pass1,clip pass2,clip pass3, clip pass4, clip pass5)
{
interleave=interleave(pass1,pass2,pass3,pass4,pass5)
super=msuper(interleave,pel=2,mt=true)
multivectors=manalyse(super,multi=true,delta=2,mt=true)
multiclip=mcompensate(interleave,super,multivectors,mt=true,tr=2,center=true)
average=temporalsoften(multiclip,2,255,255,50,2).selectevery(25,12)
return(average)
}