Topic: [Feature Request] Frame Repair/Replacement Mode

My request is for an optional mode that adds on to normal interpolation, where SVP can search for single or even large sections of duplicate frames and replace them with interpolated ones. Perhaps even allow the user to specify the maximum number of frames that can be replaced in a row.

2 (edited by nemoW 22-12-2016 19:31:39)

Re: [Feature Request] Frame Repair/Replacement Mode

Good request. Maybe GameDropFix script can be modified for such task.
But I'm afraid, such mode cannot be performed in real-time by current hardware.

Re: [Feature Request] Frame Repair/Replacement Mode

Sorry for bumping an old thread, but could this be implemented in the Transcoder? I found some code (http://forum.doom9.org/showpost.php?p=1 … stcount=13) that works with MVTools but I don't know how to use avisynth and mvtools so I'd figured I'd ask here if you guys can make it work with SVP.

Re: [Feature Request] Frame Repair/Replacement Mode

I think best way is to use avisynth scripts and check result frame by frame.
Frames restoration is manual job. Not automatic. It is not sutable for transcoder.

Re: [Feature Request] Frame Repair/Replacement Mode

I recently noticed there was a "delete duplicate frames" option added to SVP at some point so that compelled me to give this frame replacement feature another attempt. After an hour of looking through the avisynth wiki I came up with this code for "generate.js":

if(profile.delete_dupe_frames)
    {
        AVS.push("ConditionalFilter(last, last.DeleteFrame(), last, "YDifferenceToNext()", "==", "0");
        AVS.push("");
    }

Unfortunately I get an error message: "Plane Difference: This filter can only be used within run-time filters". My limited understanding is that ConditionalFilter is a run-time filter so I don't know why I'm getting this error and I don't know how to fix it.

Re: [Feature Request] Frame Repair/Replacement Mode

it must be

AVS.push('ConditionalFilter(last, last.DeleteFrame(), last, "YDifferenceToNext()", "==", "0")');

(watch the quotes and brackets)

Anyway "last.DeleteFrame()" is incorrect cause DeleteFrame must take the exact frame(s) number(s) to delete. It won't work as "delete current frame".