Multi-Class Blue Noise Sampling Li-Yi Wei 魏立一 Microsoft Research
Introduction
Blue noise distribution random & uniform applications sampling stippling meshing texturing object placement [Turk 1992] [Balzer et al. 2009] [Ostromoukhov et al. 2004]
Previous work half-toning [Ulichney 1986; Wang and Parker 1999; Ostromoukhov 2001; Zhou and Fang 2003; Pang et al. 2008; Chang et al. 2009] dart throwing [Cook 1986; Mitchell 1987; McCool and Fiume 1992; Jones 2006; Dunbar and Humphreys 2006; White et al. 2007; Wei 2008; Fu and Zhou 2008; Cline et al. 2009; Gamito and Maddock 2010] relaxation [Lloyd 1982; Turk 1992; Balzer et al. 2009; Tung et al. 2010; Liu et al. 2010; Levy and Liu 2010] tiling [Cohen et al. 2003; Ostromoukhov et al. 2004; Kopf et al. 2006; Lagae and Dutre 2006; Ostromoukhov 2007]
Prior art mostly for 1 sample class scenarios with multi-class samples sampling (retina cells) stippling (pointillism) texturing (flowers)
Example: multiple kinds of sensors cone/rod cellsRGB sensors
Example: color stippling RGBCMYB dots
Example: multiple kinds of objects 2D/3D objects texture primitives
Issue Single class blue noise methods not suitable for multi class setting
Apply 1 class blue noise to > 1 class Uniform per class class 0class 1total set OOX
Apply 1 class blue noise to > 1 class Uniform total set total setclass 0class 1 XXO
Multi-class blue noise sampling class 0class 1total set OOO
Multi-class blue noise sampling uniform & random for each class & their unions class 0class 1total set OOO
Algorithms
Background of blue noise random & uniform controlled by spacing r r r -1 power spectrum anisotropy r -1 radial mean
r Dart throwing [Dippe and Wold 1985; Cook 1986] loop: random sample conflict check
indirectly specify r through sample count N given a set of N sample loop: Voronoi for each sample move sample to centroid Relaxation [Lloyd 1982]
s_algorithm
Core idea for multi-class blue noise replace scalar spacing r by a matrix r r 00 r 01 r 02 r 10 r 11 r 12 r 20 r 21 r 22 c0c0 c1c1 c2c2 c0c0 c1c1 c2c2 r 00 r 11 r 01
Generating multi-class blue noise hard disk sampling control sample spacing r (like dart throwing) soft disk sampling control sample count N (like Lloyd relaxation)
Multi-class hard disk sampling like 1-class dart throwing, but r matrix for conflict check consistent fill rate 1:4: may kill existing samples c0c0 c1c1 c2c2 c0c0 c1c1 c2c
c0c0 c1c1 c2c2 c0c0 c1c1 c2c2
Soft disk: single class Gaussian blob per sample minimize max( E ) → uniform distribution
Soft disk: single class Gaussian blob per sample minimize max( E ) → uniform distribution
Soft disk: multi class minimize max( E ) → uniform distribution R/G/B: E (c 0 /c 1 /c 2 )
Multi-class soft disk sampling ~ best candidate dart throwing [Mitchell 1987] loop for each trial: random k samples pick one with min max( E ) X Lloyd relaxation stuck in multi-class setting
Build r matrix diagonal entries {r ii } i=0:c-1 given how to compute off-diagonal entries {r ij } i≠j ? (symmetry: r ij = r ji ) see paper r 00 r 01 r 02 r 03 r 10 r 11 r 12 r 13 r 20 r 21 r 22 r 23 r 30 r 31 r 32 r 33
Build r matrix: 2-class scenario pick off-diagonal r Φ for uniform distribution r0rΦrΦr1r0rΦrΦr1 dimension density
Build r matrix: 2-class scenario class 0class 1total set r Φ too small r Φ too large
Build r matrix: general scenario each class r i can only be interfered by r j > r i build r matrix in decreasing order of r i r 0 > r 1 (f = r -1 ) f 1 < f 0
Build r matrix: general scenario r 0 > r 1 > r 2 = r 3 > r 4 d 01 = d 00 +d 11 d 02 = d 00 +d 11 +d 22 +d 33 d 04 = d 00 +d 11 +d 22 +d 33 +d 44 r 00 r 01 r 02 r 03 r 04 r 10 r 11 r 12 r 13 r 14 r 20 r 21 r 22 r 23 r 24 r 30 r 31 r 32 r 33 r 34 r 40 r 41 r 42 r 43 r 44
Analysis
Analysis [Lagae and Dutre 2008] spatial uniformity σ ideal σ in [ ]; our σ in [ ] soft disk sampling has larger σ
total set class 1 class 0 class 2
Analysis [Lagae and Dutre 2008] spectral analysis (good quality; radial mean diff from 1-class) power spectrumradial meananisotropy - 1-class - multi-class
Applications
Object placement: 1 class
Object placement: uniform
Object placement: more classes
Object placement: adaptive
(Monochrome) stippling e.g. [Balzer et al. SIGGRAPH 2009] input (continuous tone)output (black dots)
Color stippling RGBCMYB dots input
Sensor layout Bayer mosaic grid layout sampling & reconstruction issue Penrose pixels [Ben Ezra et al. ICCV 2007] randomized 3-color better sampling & reconstruction
Sensor layout Penrose pixels our method spatial layoutpower spectrumzone-plate sin(x 2 +y 2 )
zoneplate sin(x 2 +y 2 ) Sensor layout Bayer mosaicPenrose pixelour method
zoneplate sin(x 2 +y 2 )
Sample domain Continuous domain Discrete domain
Continuous vs. discrete domain continuous O flexible X layout discrete X flexible O layout
Discrete layout Bayer mosaicrandomsoft disk noisy
Discrete layout hard diskerror diffusionsoft disk less uniform cannot control sample count
Tradeoff Hard disk sampling O control sample spacing X control sample count O continuous space X discrete space X less uniform O faster Soft disk sampling X control sample spacing O control sample count O continuous space O discrete space O more uniform X slower
Concluding Remarks
Future work applications & extensions 3D or higher dimensions surfaces or other non-Euclidean domains anisotropy acceleration tiling parallelization [Bowers et al. 2010] aniso [Li et al. 2010]isotropic
Acknowledgement Yin Li Kun Zhou Xin Tong Eric Stollnitz Jason Fondran favicon.com/ Brandon Lloyd Bill Baxter Naga Govindaraju John Manferdelli Reviewers
Thank you!
Data