Practical Genericity: Writing Image Processing Algorithms Both Reusable and Efficient

From LRDE

Abstract

An important topic for the image processing and pattern recognition community is the construction of open source and efficient libraries. An increasing number of software frameworks are said to be generic: they allow users to write reusable algorithms compatible with many input image types. However, this design choice is often made at the expense of performance. We present an approach to preserve efficiency in a generic image processing framework, by leveraging data types features. Variants of generic algorithms taking advantage of image types properties can be defined, offering an adjustable trade-off between genericity and efficiency. Our experiments show that these generic optimizations can match dedicated code in terms of execution times, and even sometimes perform better than routines optimized by hand. Digital Topology software should reflect the generality of the underlying mathematics: mapping the latter to the former requires genericity. By designing generic solutions, one can effectively reuse digital topology data structures and algorithms. We propose an image processing framework focused on the Generic Programming paradigm in which an algorithm on the paper can be turned into a single codewritten once and usable with various input types. This approach enables users to design and implement new methods at a lower cost, try cross-domain experiments and help generalize results.

Documents

Bibtex (lrde.bib)

@InProceedings{	  levillain.14.ciarp,
  author	= {Roland Levillain and Thierry G\'eraud and Laurent Najman
		  and Edwin Carlinet},
  title		= {Practical Genericity: Writing Image Processing Algorithms
		  Both Reusable and Efficient},
  booktitle	= {Progress in Pattern Recognition, Image Analysis, Computer
		  Vision, and Applications -- Proceedings of the 19th
		  Iberoamerican Congress on Pattern Recognition (CIARP)},
  address	= {Puerto Vallarta, Mexico},
  month		= nov,
  year		= {2014},
  pages		= {70--79},
  editor	= {Eduardo Bayro and Edwin Hancock},
  publisher	= {Springer-Verlag},
  series	= {Lecture Notes in Computer Science},
  volume	= {8827},
  abstract	= {An important topic for the image processing and pattern
		  recognition community is the construction of open source
		  and efficient libraries. An increasing number of software
		  frameworks are said to be generic: they allow users to
		  write reusable algorithms compatible with many input image
		  types. However, this design choice is often made at the
		  expense of performance. We present an approach to preserve
		  efficiency in a generic image processing framework, by
		  leveraging data types features. Variants of generic
		  algorithms taking advantage of image types properties can
		  be defined, offering an adjustable trade-off between
		  genericity and efficiency. Our experiments show that these
		  generic optimizations can match dedicated code in terms of
		  execution times, and even sometimes perform better than
		  routines optimized by hand. Digital Topology software
		  should reflect the generality of the underlying
		  mathematics: mapping the latter to the former requires
		  genericity. By designing generic solutions, one can
		  effectively reuse digital topology data structures and
		  algorithms. We propose an image processing framework
		  focused on the Generic Programming paradigm in which an
		  algorithm on the paper can be turned into a single code,
		  written once and usable with various input types. This
		  approach enables users to design and implement new methods
		  at a lower cost, try cross-domain experiments and help
		  generalize results.},
  keywords	= {Generic Programming, Image Processing, Performance,
		  Olena}
}