An architecture independent programming language for low-level vision

Low-level vision is particularly amenable to implementation on parallel architectures, which offer an enormous speedup at this level. To take advantage of this, the algorithm must be adapted to the particular parallel architecture. Having to adapt programs in this way poses a significant barrier to the vision programmer, who must learn and practice a different method of parallelization for each different parallel machine. There is also no possibility of portability for programs written for a particular parallel architecture. We have developed a specialized programming language, called Apply, which reduces the problem of writing the algorithm for this class of programs to the task of writing the function to be applied to a window around a single pixel. Apply provides a method for programming these applications which is easy, consistent, and efficient. Apply is programming model specific—it implements the input partitioning model—but is architecture independent. It is possible to implement versions of Apply which run efficiently on a wide variety of computers. We describe implementations of Apply on Warp, various Warp-like architectures, unix , and the Hughes HBA and sketch implementations on bit-serial processor arrays and distributed memory machines.

[1]  Charles L. Seitz,et al.  The cosmic cube , 1985, CACM.

[2]  Thomas S. Huang,et al.  A fast two-dimensional median filtering algorithm , 1979 .

[3]  Michael D. Howard,et al.  HBA Vision Architecture: Built and Benchmarked , 1989, IEEE Trans. Pattern Anal. Mach. Intell..

[4]  Kenneth E. Batcher,et al.  Bit-Serial Parallel Processing Systems , 1982, IEEE Transactions on Computers.

[5]  H. T. Kung,et al.  Global operations on the CMU Warp machine , 1985 .

[6]  I-Chen Wu,et al.  Machine-independent image processing: Performance of apply on diverse architectures , 1989, Comput. Vis. Graph. Image Process..

[7]  W. Daniel Hillis,et al.  The connection machine , 1985 .