Kharazmi University Kharazmi University Smart-RIFE · interactive
Video Frame Interpolation · RIFE, ECCV 2022

The frame that was never there

A video only stores a few frames each second. This model, RIFE, invents the frames in between — reconstructing the motion that the camera never captured. Drag the slider and watch it happen.

interpolated frame REAL FRAME
t = 0.00

Left & right ends (t=0, t=1) are real frames. Everything between them is synthesized by the frozen model in ~34 ms per frame — no frame in the middle exists in the source video.

How it works

It estimates the motion to the middle — directly

Older methods (DAIN, SuperSloMo) compute the motion between the two frames, then reverse it — slow and error-prone. RIFE's network, IFNet, predicts the flow from the middle to each side in one pass, warps both frames inward, and blends them with a learned fusion mask. No separate optical-flow network — that is why it runs in real time.

RIFE pipeline: two frames into IFNet, intermediate flows and fusion mask, backward warping, output frame
Measuring honestly

How do you score a frame that was invented?

An invented frame has nothing to compare against — so PSNR/SSIM/LPIPS would be meaningless. The fix is the frame-decimation protocol: take a real video, hide every 2nd frame, rebuild it, and compare to the hidden real frame. Below, one real frame was hidden — switch between the methods and watch the numbers. RIFE must beat the two naive baselines to justify existing.

method outputGROUND TRUTH

This is the real hidden frame — the target every method is trying to reconstruct.

Results · 295 held-out frames

Where learned motion wins — and where it can't

Five motion types, each scored by the protocol above. RIFE wins by ~14 dB on camera pan and fast motion. But on repeated texture every method collapses to ~14 dB — the motion of a repeating pattern simply cannot be recovered from two frames (the aperture problem).

RIFE Duplication Blend
When it breaks

Scene cuts, and the fix

Across a scene cut the two frames share nothing, so no true middle frame exists — RIFE still tries, and paints a morphed "ghost". My SafeInterp layer detects the cut and holds the frame instead. Flip the switch and watch the middle frame.

scene ASCENE A · real
middle frameGHOST · invented
scene BSCENE B · real

Naive interpolation invents a ghost frame that belongs to neither scene.

6 → 0

ghost frames across the 6 known cuts — before, and after SafeInterp. The official guard missed 2 of the 6; PySceneDetect caught all six.

Be honest

What interpolation cannot do

  • It cannot recover information that was never captured — it invents the most plausible motion. Plausible is not the same as true.
  • It fails on fast/large motion, repeated textures, and motion blur, and it is impossible across a scene cut — a math limit of any two-frame method, not a weakness to fix with a bigger model.
  • Synthesized frames are AI-generated content; in professional or forensic use they must be disclosed and flagged.
+14 dB
RIFE over naive (pan / fast)
LPIPS gap on low motion
~14 dB
repeated-texture collapse
2 / 6
cuts the official guard missed
6 → 0
ghosts after SafeInterp
34 ms
per frame · 640×360 laptop