Video Textures Arno Schödl Richard Szeliski David Salesin Irfan Essa Microsoft Research, Georgia Tech
Still photos
Video clips
Video textures
Related work Image-based rendering Novel still views from still images View Morphing [Seitz 96] Lightfields / Lumigraph [Levoy 96, Gortler 96] Façade [Debevec 96] Virtualized Reality [Kanade 97] many more…
Image-based rendering (IBR) From View Morphing by Seitz and Dyer Slide added by D.Brogan
Related work Texture synthesis Infinite extension of 2D pattern [Heeger 95] [de Bonet 97] [Efros 99]
Related work Temporal texture synthesis Video as a spatio-temporal texture Statistical Learning of Multidimensional Textures [Bar-Joseph 99] [Wei 00]
Related work Video Rewrite Assemble video snippets to generate lip motion [Bregler 97]
Periodic motion analysis Uses similar analysis tools Related work [Niyogi 94] [Seitz 97] [Polana 97] [Cutler 00]
Problem statement video clipvideo texture
Our approach How do we find good transitions?
Finding good transitions Compute L 2 distance D i, j between all frames Similar frames make good transitions frame ivs. frame j
Markov chain representation Similar frames make good transitions
Transition costs Transition from i to j if successor of i is similar to j Cost function: C i j = D i+1, j
Transition probabilities Probability for transition P i j inversely related to cost: P i j ~ exp ( – C i j / 2 ) high low
Preserving dynamics
Cost for transition i j C i j = w k D i+k+1, j+k
Preserving dynamics – effect Cost for transition i j C i j = w k D i+k+1, j+k
Dead ends No good transition at the end of sequence
Future cost Propagate future transition costs backward Iteratively compute new cost F i j = C i j + min k F j k
Future cost Propagate future transition costs backward Iteratively compute new cost F i j = C i j + min k F j k
Future cost Propagate future transition costs backward Iteratively compute new cost F i j = C i j + min k F j k
Future cost Propagate future transition costs backward Iteratively compute new cost F i j = C i j + min k F j k
Propagate future transition costs backward Iteratively compute new cost F i j = C i j + min k F j k Q-learning Future cost
Future cost – effect
Fixed-length videos Alternative to random transitions Precompute set of loops up front Slide edited by D.Brogan
Fixed-length videos Creating fixed-length videos Enumerate all sets of transitions with a total length L (multiloops) Select the ones that are legal (the loops overlap so video can jump from one to another) Find the best one Exponential in number of transitions Slide added by D.Brogan
Fixed-length videos Create an L x N table L = length of longest loop being considered N = number of loops being considered Slide added by D.Brogan
Fixed-length videos Populate the table For each (loop n, length l ) tuple, find best loop (possibly compound) of length l that includes at least one instance of loop n Slide added by D.Brogan
Fixed-length videos Populate the table with dynamic programming Start from row one, find best loops Proceed through the rows (length 5, loop C ) is found from (length 3, loop C ) + (length 2, loop D ) Slide added by D.Brogan
Fixed-length videos Each cell requires inspection of at most L-1 compound loops from same column and N- 1 entries from other columns Total Cost: O(L 2 N 2 ) Slide added by D.Brogan
Fixed-length videos Organizing the loops You cannot jump from any loop to any other loop… sequence order matters Start with loop with largest last frame num. Remove it from the pool Identify isolated loops Add loops that require first loop for access Slide added by D.Brogan
Visual discontinuities Problem: Visible “Jumps”
Crossfading Solution: Crossfade from one sequence to the other.
Morphing Interpolation task:
Morphing Interpolation task: Compute correspondence between pixels of all frames Optical flow Slide edited by D.Brogan
Morphing Interpolation task: Compute correspondence between pixels of all frames Interpolate pixel position and color in morphed frame based on [Shum 2000]
Results – crossfading/morphing
Jump Cut Crossfade Morph
Crossfading
Frequent jump & crossfading
Video portrait Useful for web pages
Combine with IBR techniques Video portrait – 3D
Region-based analysis Divide video up into regions Generate a video texture for each region
Automatic region analysis
User selects target frame range User-controlled video textures slowvariablefast
Lengthen / shorten video without affecting speed Time warping shorteroriginallonger
Video-based animation Like sprites computer games Extract sprites from real video Interactively control desired motion ©1985 Nintendo of America Inc.
Video sprite extraction
Video sprite control Augmented transition cost:
Video sprite control Need future cost computation Precompute future costs for a few angles. Switch between precomputed angles according to user input [GIT-GVU-00-11]
Interactive fish
Summary Video clips video textures define Markov process preserve dynamics avoid dead-ends disguise visual discontinuities
Summary Extensions regions external constraints video-based animation
Discussion Some things are relatively easy
Discussion Some are hard
Future work Better analysis of complex motions New optimality metrics More powerful video-based animation Other kinds of video-based rendering
A final example