Jobs/M2 2017 TG Modern Generic C ++ programming

From LRDE

Programmation générique en C++ moderne pour le traitement d'images
Reference id

M2 2017 TG Modern Generic C ++ programming

Dates

5 - 6 mois en 2018

Research field

Traitement d'Images

Related project

Olena

Advisor

Thierry Geraud

General presentation of the field

Mots-clefs :

  • polymorphisme paramétrique
  • programmation générique
  • C++
  • structures de données et interfaces
  • génie logiciel
  • traitement d'images.
Prerequisites

Avant-propos important :

1) Ce stage de master est destiné à un étudiant qui souhaiterait poursuivre en thèse sur ce sujet.

2) Le sujet a une forte composante implémentatoire en C++ donc un prérequis attendu est une bonne connaissance de C++ (avoir lu Scott Meyers et savoir déjà ce que sont SFINAE, RVO, et autres joyeusetés est un très bon signe).

Objectives

Dans le cadre du calcul scientifique, on a besoin d'outils performants sachant que l'on dispose souvent de gros volumes de données. Les algorithmes qui traitent les données manipulent généralement des abstractions du domaine. En effet, derrière les notions de matrice, de graphe, d'image, etc. se cachent plusieurs implémentations de ces structures. On souhaite pouvoir conserver la forme intrinsèquement abstraite des algorithmes, tout en garantissant que cela n'induit pas de surcoût à l'exécution. Dit autrement, on veut que les algorithmes soient les plus rapides possibles, bien qu'ils aient à traiter des données de types différents. Pour cela, la programmation générique est une solution.


Le but de ce stage est de montrer comment les fonctionnalités offertes par les dernières normes du C++ permettent de faciliter l'écriture d'outils génériques. Le domaine d'application sera une bibliothèque de traitement d'images.

Benefit for the candidate

La définition de structures de données (types d'images) et d'algorithmes génériques (traitements d'images) nécessite au préalable d'effectuer une taxonomie des entités de ce domaine. Cette tâche est en soi un défi car elle est véritablement inédite.

Un second défi concerne la mise en oeuvre de modifications génériques de types, les "morpheurs" (par exemple, une image restreinte à un sous-domaine ou l'image de la composante rouge d'une image couleur). Ces modifications génériques de types augmentent l'expressivité (et la concision) des développements et décuplent les fonctionnalités offertes aux utilisateurs. En revanche, leur mise en oeuvre est un véritable challenge car elle est délicate par la combinatoire qu'ils entraînent.

References

- M. Garrigues and A. Manzanera, "Video++, a modern image and video processing C++ framework," In Proc. of the Conference on Design & Architectures for Signal & Image Processing (DASIP), 2014. https://hal.inria.fr/hal-01118322/document


- T. Geraud, "Outil logiciel pour le traitement d'images: Bibliothèque, paradigmes, types et algorithmes," HDR report, Univ. Paris-Est, 2012. https://www.lrde.epita.fr/~theo/slides/geraud.2012.hdr_slides.pdf


- R. Levillain, T. Geraud, and L. Najman, "Why and how to design a generic and efficient image processing framework: The case of the milena library," In Proceedings of the IEEE International Conference on Image Processing (ICIP), pages 1941–1944, Hong Kong, September 2010. https://www.lrde.epita.fr/~theo/papers/geraud.2010.icip.pdf

Place LRDE: How to get to us
Compensation

1000 euros bruts / mois

Future work opportunities

Poursuite en thèse

Contact

<thierry . geraud at lrde . epita . fr>