@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}, lrdeprojects = {Olena}, 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}, lrdepaper = {http://www.lrde.epita.fr/dload/papers/levillain.14.ciarp.pdf}, lrdeslides = {http://www.lrde.epita.fr/dload/papers/levillain.14.ciarp.slides.pdf}, lrdenewsdate = {2014-09-10} } @InProceedings{ roynard.18.rrpr, title = {An Image Processing Library in Modern {C++}: Getting Simplicity and Efficiency with Generic Programming}, author = {Micha\"el Roynard and Edwin Carlinet and Thierry G\'eraud}, booktitle = {Proceedings of the 2nd Workshop on Reproducible Research in Pattern Recognition (RRPR)}, year = {2018}, abstract = {As there are as many clients as many usages of an Image Processing library, each one may expect different services from it. Some clients may look for efficient and production-quality algorithms, some may look for a large tool set, while others may look for extensibility and genericity to inter-operate with their own code base... but in most cases, they want a simple-to-use and stable product. For a C++ Image Processing library designer, it is difficult to conciliate genericity, efficiency and simplicity at the same time. Modern C++ (post 2011) brings new features for library developers that will help designing a software solution combining those three points. In this paper, we develop a method using these facilities to abstract the library components and augment the genericity of the algorithms. Furthermore, this method is not specific to image processing; it can be applied to any C++ scientific library.} } @inproceedings{expsimd, author = {Malossi, A. Cristiano I. and Ineichen, Yves and Bekas, Costas and Curioni, Alessandro}, year = {2015}, month = {01}, pages = {}, title = {Fast Exponential Computation on SIMD Architectures}, doi = {10.13140/2.1.4362.3207} } @article{tiling_performances, author = {Wittenbrink, Craig and Somani, Arun}, year = {1993}, month = {01}, pages = {12-22}, title = {Cache tiling for high performance morphological image processing}, volume = {7}, journal = {Machine Vision and Applications}, doi = {10.1007/BF01212412} }