Skip to content

Add asymmetric frame interpolation mode for denoise. #10

@DTL2020

Description

@DTL2020

The quality of frame interpolation with a complex and fast motion quickly degrades and with the current plugin for temporal_radius=2 we have only 2 interpolated frames of +-1 and +-2 source frames.

It may be added 2 more non-symmetric frames requests for tr=2 (and even more for tr=3 and more).

New params may be direct input of +frame_num and -frame_num as offsets from current frame number.
Default to 0 (use old denoise_tr).
And calculation of time offset internally as
double time_offset = (abs)(-frame_num)/((abs)(-frame_num) + (abs)(+frame_num))

In current version time_offset=0.5 always with equal +-frame_offset_num.

So for call
RIFE(denoise=true, -f_n=-1, +f_n=2) time offset will be 0.333 (1/3)
and for
RIFE(denoise=true, -f_n=-2, +f_n=1) time offset will be 0.666 (2/3)

And we can get more quality frames for lower total time range for interpolation/processing engine next to frame interpolation.

Expected script for total tr=2:
int_d1=RIFE(denoise=true, denoise_tr=1)
int_d2=RIFE(denoise=true, denoise_tr=2)
int_m1p2=RIFE(denoise=true, -f_n=-1, +f_n=2)
int_m2p1=RIFE(denoise=true, -f_n=-2, +f_n=1)

Interleave(int_d1, int_d2, last, int_m1p2, int_m2p1)
vsTTempSmooth(pmode=1, maxr=2)
SelectEvery(5,2)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions