Abstract
Images are programs. They are usually simple instructions to a very specialized interpreter that renders them on screen. Image formats therefore correspond to different programming languages, each with distinctive properties of program size and accuracy. Image-processing languages render large images from small pieces of code. We present Evolver, a language and toolkit that perform the reverse transformation. The toolkit accepts images in conventional graphics formats like JPEG and uses genetic algorithms to grow a program in the Evolver language that generates a similar image. Because the program it produces is often significantly smaller than the input image, Evolver can be used as a compression tool.
The language balances the tradeo. between having many features, which improves compression, and fewer features, which improves searching. In addition, by being programmatic descriptions, the rendered images scale much better to multiple resolutions than fixed-size images. We have implemented this system and present examples of its use.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
M. F. Barnsley and A. E. Jacquin. Application of recurrent iterated function systems to images. In Proceedings SPIE Visual Communications and Image Processing’ 88, volume 1001, pages 122–131, 1988.
M. Beretta and A. Tettamanzi. An evolutionary approach to fuzzy image compression. In Proceedings of the Italian Workshop on Fuzzy Logic (WILF 95), pages 49–57, Naples, Italy, 1996. World Scientific.
World Wide Web Consortium. Scalable vector graphics (SVG) 1.0 specification, 2001. http://www.w3.org/TR/SVG/.
S. Demko, L. Hodges, and B. Naylor. Construction of fractal objects with iterated function systems. In B. A. Barsky, editor, Computer Graphics (Proceedings of ACM SIGGRAPH 85), volume 19 (3), pages 271–278, San Francisco, California, July 1985.
D. Ebert, K. Musgrave, D. Peachey, K. Perlin, and S. Worley. Texturing and Modeling: A Procedural Approach, second edition. AP Professional, 1998.
Conal Elliott and Paul Hudak. Functional reactive animation. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP’ 97), volume 32(8), pages 263–273, 1997.
James Gosling, Bill Joy, and Guy Lewis Steele, Jr. The Java Language Specification. Addison-Wesley, 1996.
Pat Hanrahan and Jim Lawson. A language for shading and lighting calculations. In Computer Graphics (Proceedings of ACM SIGGRAPH 90), volume 24 (4), pages 289–298, Dallas, Texas, August 1990. ISBN 0-201-50933-4.
Peter Henderson. Functional geometry. In Symposium on Lisp and Functional Programming, pages 179–187, New York, 1982. ACM Press.
Hau-Lai Ho and Wai-Kuen Cham. Attractor image coding using lapped partitioned iterated function systems. In Proceedings ICASSP-97 (IEEE International Conference on Acoustics, Speech and Signal Processing), volume 4, pages 2917–2920, Munich, Germany, 1997.
D. Knuth. TEX and METAFONT: new directions in typesetting. Digital Press and the American Mathematical Society, 1979.
H. Massalin. Superoptimizer: A look at the smallest program. In Proceedings of the 2nd International Conference on Architectural Support for Programming Languages and Operating System (ASPLOS), volume 22, pages 122–127, New York, NY, 1987. ACM Press.
Nicholas F. McPhee and Riccardo Poli. A schema theory analysis of the evolution of size in genetic programming with linear representations. In Genetic Programming, Proceedings of EuroGP 2001, LNCS, Milan, 2001. Springer-Verlag.
Peter Nordin and Wolfgang Banzhaf. Programmatic compression of images and sound. In John R. Koza, David E. Goldberg, David B. Fogel, and Rick L. Riolo, editors, Genetic Programming 1996: Proceedings of the First Annual Conference, pages 345–350, Stanford University, CA, USA, 28–31 July 1996. MIT Press.
S. A. Papert. Teaching children thinking. Technical Report A. I. MEMO 247 and Logo Memo 2, AI Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, 1971.
Pixar. The renderman interface, version 3.1, 1989. http://www.pixar.com/renderman/developers corner/rispec/.
K. Sims. Interactive evolution of equations for procedural models. In Proceedings of IMAGINA conference, Monte Carlo, January 29–31, 1992, 1992.
Gregory K. Wallace. The JPEG still picture compression standard. Communications of the ACM, 34(4):30–44, 1991.
Jacob Ziv and Abraham Lempel. A universal algorithm for sequential data compression. IEEE Transactions on Information Theory, IT-23(3):337–343, 1977.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
McGuire, M., Krishnamurthi, S., Hughes, J.F. (2002). Programming Languages for Compressing Graphics. In: Le Métayer, D. (eds) Programming Languages and Systems. ESOP 2002. Lecture Notes in Computer Science, vol 2305. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45927-8_6
Download citation
DOI: https://doi.org/10.1007/3-540-45927-8_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43363-7
Online ISBN: 978-3-540-45927-9
eBook Packages: Springer Book Archive