Page 1
Bilinear Accelerated Filter Approximation
Josiah Manson and Scott Schaefer
Texas A&M University
Page 2
Motivation
Trilinear Interpolation
Page 3
Motivation
Optimized Combination of 2 Bilinear Samples
Page 9
Filter Approximation
Filter to Approximate
Page 10
Filter Approximation
Bilinear Interpolation
Page 11
Filter Approximation
Best fit using 4 samples
Page 12
Cache Coherence
Cardinality-Constrained Texture Filtering
Page 13
Cache Coherence
Bilinear Accelerated Filter Approximation
Page 14
Freedom in Bilinear Samples
5 degrees of freedom + mipmap levels
Page 16
Optimization
Filter to approximate
Page 17
Optimization
Filter to approximateBilinear combination of mipmap filters
Page 18
Optimization
Filter to approximateBilinear combination of mipmap filtersBilinear parameters
Optimize
Page 19
Optimization
Filter to approximateBilinear combination of mipmap filtersBilinear parametersRelative weights of bilinear probes
Optimize
Page 20
Optimization
Filter to approximateBilinear combination of mipmap filtersBilinear parametersRelative weights of bilinear probesPoints in image
Optimize
Page 21
Optimization
Filter to approximateBilinear combination of mipmap filtersBilinear parametersRelative weights of bilinear probesPoints in imageScale and translation of input filter
Optimize
Page 22
Discretization of Domain
Page 23
Discretization of Domain
4x4
Page 24
Discretization of Domain
4x4x2
Page 25
Coupled vs. Decoupled
Page 26
Coupled vs. Decoupled
Page 27
Coupled vs. Decoupled
Page 28
Lanczos 2 Error w.r.t. Discretization
Page 29
Lanczos 2 Error w.r.t. Discretization
Page 30
Lanczos 2 Error w.r.t. Discretization
4x4x2
Page 31
Error w.r.t. Filter Type at 4x4x2
Page 32
Symmetry of Domain
32 subdomains
Page 33
Symmetry of Domain
16 subdomains
Page 34
Symmetry of Domain
8 subdomains
Page 35
Symmetry of Domain
6 subdomains
Page 36
Table Sizes
6/8 * 8*(4*16 + 4+4+2)6/8 * (5*4*16 + 2*2)6/8 * (5*4*16 + 2*(4+4+2))
CCTF:Coupled:Decoupled:
= 444 bytes= 243 bytes= 255 bytes
6 subdomains, 8 bits per byteNumber of parameters and fetchesBits per linear fit of parameterInteger choice of texel/level
Page 37
Uniform Scaling: Lanczos 2
Trilinear Interpolation
Page 38
Uniform Scaling: Lanczos 2
Coupled Bilinear
Page 39
Uniform Scaling: Lanczos 2
Decoupled Bilinear
Page 40
Uniform Scaling: Lanczos 2
CCTF
Page 41
3D Rotation: Lanczos 2
Coupled Bilinear
Page 42
3D Rotation: Lanczos 2
Decoupled Bilinear
Page 43
3D Rotation: Lanczos 2
CCTF
Page 45
Conclusion
• Improved quality over trilinear interpolation
• Almost same quality as CCTF
• 2x faster than CCTF
• Decoupling samples removes constraints
• Small GPU lookup table
Page 47
Lanczos 2 Error w.r.t. Discretization
Page 48
Uniform Scaling: Lanczos 2
Exact Evaluation
Page 49
2D Translation: Lanczos 2
Exact Evaluation
Page 50
3D Rotation: Lanczos 2
Trilinear Interpolation
Page 51
2D Translation: Lanczos 2
Trilinear Interpolation
Page 52
Optimization
Cubic
Page 53
Optimization
Cubic
Sextic!
Page 54
Optimization
Cubic
Sextic!Levenberg-Marquardt
Page 55
Optimization
Cubic
Sextic!Levenberg-Marquardt
X
Page 56
Optimization
Cubic
Sextic!Levenberg-Marquardt
X
Page 57
3D Plane: Lanczos 2
Trilinear Interpolation
Page 58
3D Plane: Lanczos 2
Coupled Bilinear
Page 59
3D Plane: Lanczos 2
Decoupled Bilinear
Page 60
3D Plane: Lanczos 2
CCTF
Page 61
2D Translation: Lanczos 2
Coupled Bilinear
Page 62
2D Translation: Lanczos 2
Decoupled Bilinear
Page 63
2D Translation: Lanczos 2
CCTF
Page 64
Anisotropic Filtering
Page 65
Anisotropic Filtering
Page 66
Anisotropic Filtering
Page 67
Anisotropic
Trilinear
Page 68
Anisotropic
Trilinear Anisotropic
Page 69
Anisotropic
Decoupled Anisotropic