video_interpolate_flow — LIVE4D time op

• Data kinds: video → video

• Call: import fullseye as fs; fs.ledger.video_interpolate_flow(video, factor: 'int' = 2, win: 'int' = 3, pyr_levels: 'int' = 3, iters: 'int' = 3, reg: 'float' = 0.001, occlusion_tau: 'float' = 1.0) -> 'np.ndarray' (to call the implementation directly, import live4d; live4d.video_interpolate_flow(video, factor: 'int' = 2, win: 'int' = 3, pyr_levels: 'int' = 3, iters: 'int' = 3, reg: 'float' = 0.001, occlusion_tau: 'float' = 1.0) -> 'np.ndarray'; from the registry, opslive4d.get("video_interpolate_flow"))

Usage

Interpolates a video (T, H, W) along the flow into (T + (T − 1)(factor − 1), H, W) (video, temporal super-resolution).

Between adjacent frames a and b, factor − 1 frames are made as the weighted average of the images pulled back by the forward flow (a → b) and the backward flow (b → a) respectively (the flow is sampled at the output pixel position, an approximation -- where the field is not uniform there is an error from reading at the end point a displacement defined at the start point; strictly the inverse mapping would have to be solved, which is not done here). The weight is closeness in time × round-trip consistency (for the error of returning via a → b → a, e, exp(−e / occlusion_tau)) -- in places that do not return because of occlusion or estimation failure, the image from that side is not trusted. Displacements that are too large (not trackable by the pyramid) and newly appearing objects cannot be interpolated and produce double images -- interpolation is a tool for "filling in between measurements", not for inventing what is not there. Verification with ground truth: synthesize at 2x the frame rate → decimate by half → interpolate → compare with the removed frames (examples/poc_live4d.py).

Detailed usage guide

• live4d family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• (none yet)

Ops the type connects to (they accept video as input)

—

Same category (time)

volseq_interpolate_flow · volseq_magnify_motion


*Provenance: live4d.py — LIVE4D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.