This visualization is implementing Video Textures paper1. Video texture is a type of media. It aims to generate potentionally infinite video stream from analyzed input frames. In comparasion to a GIF, video textures are striving to minimalize repetativity.
GIF approach | Video Texture approach |
---|---|
Another explanation is presented for example in following video.
The result
Live version of the Video texture player is available here, with list of all used examples including clock used in original paper 1.
DynTex database
Some examples used are from DynTex database 2.
Stairs1 | Original | Processed |
---|---|---|
Speed | 0% | 73% |
Probability | 73% | 73% |
Cartoon
Example cartoon is from caroon called Goopy Geer, released in the year 1932. Animation style used in those kinds of cartoons is called rubber hose animation. The idea of using it as input for video texture analysis comes from an observation of their periodic motion.
Matrices
To illustrate the process, similarity matrices and transition matrix were plotted.
Similarity matrices
To visualize data from analysis, similarity matrices were plotted using matplotlib. Following picture (of cartoon) is showing distance, dynamics a future cost matrices. Future costs matrix is then mapped as probabilities of transition. Those values are then pruned by keeping just the local maximumas and trimming values lesser than given threshold.
Transition matrix
Following picture shows stairs1 transiton matrix. Frame indexes are plotted on $x$ and $y$ axes. In contrast to similarity matrices, transition matrix has only binary values, meaning only True
and False
values are plotted. True means that transition is possible.
Implementation
Frame analysis was implemented in Python3. The code and usage is avalible at Github. Interactive frame synthesis player was implemented using library p5.js.