Superoptimizer: a look at the smallest program
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
A language for shading and lighting calculations
SIGGRAPH '90 Proceedings of the 17th annual conference on Computer graphics and interactive techniques
The JPEG still picture compression standard
Communications of the ACM - Special issue on digital multimedia systems
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Construction of fractal objects with iterated function systems
SIGGRAPH '85 Proceedings of the 12th annual conference on Computer graphics and interactive techniques
Texturing and Modeling
The Java Language Specification
The Java Language Specification
A Schema Theory Analysis of the Evolution of Size in Genetic Programming with Linear Representations
EuroGP '01 Proceedings of the 4th European Conference on Genetic Programming
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Attractor Image Coding using Lapped Partitioned Iterated Function Systems
ICASSP '97 Proceedings of the 1997 IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP '97) -Volume 4 - Volume 4
TEX and METAFONT: New directions in typesetting
TEX and METAFONT: New directions in typesetting
Programmatic compression of images and sound
GECCO '96 Proceedings of the 1st annual conference on Genetic and evolutionary computation
Hi-index | 0.00 |
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 tradeoff 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.