Todor Mititchev

Translation from Image Operators to Efficient Pixel Implementations in Java

This project was inspired by work done in Xerox�s Palo Alto Research Center and summarized in [1]. The image processing system called Reverse Graphics developed allows decomposing complex image processing operations into primitive filters. Reverse graphics is naturally suited to an object-oriented implementation and most of Xerox�s work was done using LISP. However, we chose JAVA as an implementation language, mainly because of its wider spread. The object-oriented approach causes severe performance problems, both on terms of speed and memory utilization. Since the idea is to ultimately develop a system that will be implemented in re-programmable hardware, speed was not an issue in this work. However poor memory usage prevented us from working with large images and is the focus of this project. We develop a template for optimizing image operations by expressing each operation on a pixel level instead of an image level and discuss an algorithm that can automate this optimization.

At the time we were working on this project, Sun came up with its new image processing library Java for Advanced Imaging (JAI) which is used in our work. This project is developed in the form of a case study, where we are using the Roberts edge detection algorithm as an illustration of our ideas.

1. Anurag Mendhekar, Gregor Kiczales, John Lamping; �RG: A Case-Study for Aspect-Oriented Programming�, Technical report SPL97-009, Xerox Palo Alto Research Center, February 1997.