PowerPoint file
Download
Report
Transcript PowerPoint file
Functional Image Synthesis
Pan
•
•
•
•
•
An image synthesis “language”
Images are functions
Continuous and infinite
Embedded in a functional host language
Reusable optimizing compiler
Examples
What’s an image?
• Assignment of color to points:
R2 Color
• Infinite, but color may be transparent
• Useful generalization:
R2 a
Expressing functions
• Use l-calculus (Church, Curry, etc):
• Or, non-anonymously:
• Currying isomorphism:
(ab) g a (b g )
Good for partial application
Spatial transforms
Images
Higher-order functions
Apply filter “about” a point:
Examples
Programming example
Another
Some details
Another
Implementation
• An “embedded language”, but compiled.
• Programs manipulate expression trees.
• Almost transparent, via overloading.
• Automatic full inlining.
• Simplification via smart constructors.
• First-order CSE and loop hoisting.
• Easy to reuse for new “language”.
More examples
Conclusions
• Modular & efficient image synthesis
• DSL design & implementation technique:
– Simple, computable semantics
– Embed in functional host language
– Reusable optimizer & code generator
• To try: sound, 3D, …
• Freely available – try it out:
http://research.microsoft.com/~conal/pan