270 likes | 284 Views
This paper from the Thirteenth Eurographics Workshop on Rendering presents a texture synthesis method using jump maps for interactive applications. The approach involves patch-based synthesis to copy patches of pixels, inspired by video textures, and divided into analysis and synthesis phases. The jump map, set of weighted jumps per pixel, drives the synthesis process. Various synthesis orders like Serpentine and Hilbert curve are considered, with mitigation strategies for artifacts. Techniques such as Multi-resolution Analysis and Poisson Disc Sampling enhance the method's efficiency and quality. Future work includes improvements in both analysis and synthesis phases, aiming for better results and reduced storage.
E N D
Towards Real-Time Texture Synthesis With the Jump Map Steve ZelinkaMichael Garland University of Illinois at Urbana-Champaign Thirteenth Eurographics Workshop on Rendering (2002)
Neighbourhood-based • Compare local causal neighbourhoodsEfros and Leung (ICCV ’99) Wei and Levoy (SIGGRAPH 2000) Ashikhmin (I3D 2001) Input Output
Fast Texture Synthesis • Goal: Interactivity • Want synthesis that is: • Fast • Simple • High quality
Patch-based Methods • Copy patches of pixels rather than single pixels
Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic, Xu et al, 1997
Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic, Xu et al, 1997 • Patch-Based Sampling, Liang et al, 2002
Patch-based Methods • Copy patches of pixels rather than single pixels • Chaos Mosaic, Xu et al, 1997 • Patch-Based Sampling, Liang et al, 2002 • Image Quilting, Efros and Williams, 2001
Our Inspiration • Video Textures • Schodl et al, SIGGRAPH 2000 • Given a sample video, generate endless video without looping • Generate links between similar frames • Play video, randomly following links ..
Our Approach • Divide task into two phases: • Analysis • Once per input texture (need not be fast) • Generates jump map • Synthesis • Uses jump map • Fast enough for interactive applications
What is a Jump Map? • Same size as input
What is a Jump Map? • Same size as input • Set of jumps per pixel
0.4 0.2 0.3 What is a Jump Map? • Same size as input • Set of jumps per pixel • Jumps are weighted according to similarity • Need not sum to 1
Input Output Synthesis with Jump Maps
Input Output Synthesis With Jump Maps
Synthesis Order • Synthesis order influences patch shapes • Not likely to extend in directions where there aren’t already-synthesized neighbours
Synthesis Orders • Serpentine • Reverse direction at end of scan-line • Better than scan-line, just as fast • Hilbert curve • Maximizes locality • Much higher quality • Adds some overhead
Synthesis Issues • Artifacts may occur if a patch hits an input image boundary • Modify probability of taking a jump • Increase for jumps from input boundary • Decrease for jumps to input boundary • Blend patch boundaries
PCA … … Neighbourhood Vectors ANN Vectors Input Texture Analysis • Need best matches for each input pixel • Pose as high-dimensional ANN problem
Multi-resolution Analysis • Use image pyramid and multi-resolution neighbourhood vectors • Smaller neighbourhood required • Improves PCA reduction
Jump Map Diversity • Undesirable repitition may occur if jumps cluster spatially • L2 norm is particularly susceptible
1 6 2 4 4 3 3 5 Poisson Disc Sampling • Find extra matches • Iteratively accept matches satisfying Poisson disc criterion • Include a Poisson disc at the source 1
Analysis Summary • Need best matches for each input pixel • Use multi-resolution neighbourhoods • Pose as high-dimensional ANN problem • Reduce dimension with PCA • Filter matches with Poisson discs • Normalize similarity values across the jump map
Results • Current implementation: 2.1 million pixels/second scan-line0.8 million pixels/second Hilbert • Good quality on stochastic textures • Not so good on structured textures • TBD: demo
Future Work • Analysis phase: • Use perceptual metrics • Clustering instead of ANN • Synthesis phase • Multi-resolution synthesis • Output control mechanisms
Future Work • Generalization to patches • Reduce storage used • Sample size required?
Contact Information Steve Zelinka zelinka@uiuc.edu Michael Garland garland@uiuc.edu http://graphics.cs.uiuc.edu/~zelinka/jumpmaps