Benchmarking real-life image processing programs in lazy functional languages

This paper presents our practical experience gained from writing image processing programs in lazy functional languages. We give some benchmarking results comparing median filter operations written in C, Mirandal and Haskell. (The median filter is a common method for removing noise from images.) Also, using a profiling tool, we achieve remarkable improvement of the Haskell code. In particular, we show that the Haskell program runs in constant space, which is difficult to achieve in C without extra programming effort. Although the performance of lazy functional language is beginning to make them feasible for specific purposes such as rapid prototyping, better compilers and tools are still needed to encourage wider use in image processing applications.

[1]  Colin Runciman,et al.  Development of a Prototype Geometric Modelling System using a Functional Language , 1992 .

[2]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[3]  M. S. Parsons,et al.  Image Representations Using Miranda Laws , 1989, Comput. Graph. Forum.

[4]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[5]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[6]  Paul Wintz,et al.  Digital image processing (2nd ed.) , 1987 .

[7]  Simon Peyton Jones,et al.  Profiling Lazy Functional Languages Working Paper , 1992 .

[8]  Simon L. Peyton Jones,et al.  The Glasgow Haskell Compiler: A Retrospective , 1992, Functional Programming.

[9]  Simon L. Peyton Jones,et al.  Profiling Lazy Functional Programs , 1992, Functional Programming.

[10]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[11]  Yasuo Kozato Lazy image processing : an investigation into applications of lazy functional languages to image processing , 1994 .

[12]  Colin Runciman,et al.  Heap profiling of lazy functional programs , 1993, Journal of Functional Programming.

[13]  Will Partain,et al.  The nofib Benchmark Suite of Haskell Programs , 1992, Functional Programming.

[14]  M. Chevrel,et al.  The SPOT satellite remote sensing mission , 1981 .

[15]  G. P. Otto,et al.  Geometric transformations in a lazy functional language , 1992, Proceedings., 11th IAPR International Conference on Pattern Recognition. Vol. IV. Conference D: Architectures for Vision and Pattern Recognition,.