-
-
Notifications
You must be signed in to change notification settings - Fork 116
Tiled Image concepts
L’idée principale est de fournir un adaptateur d’image pour les grands conteneurs (par exemple : hdf5, netcdf, ...) sous la forme d’images tuilées.
Objectifs: définit une image virtuelle tuilée de domaine D. Les tuiles i ne se chevauchent pas et la réunion de tous les domaines Di des tuiles est le domaine D. CTiledImage est une extension de CImage.
Modèles de ce concept
- c colonnes, l lignes : Di calculés,
- Di définis explicitement dans une STLVector ou STLMap autorisant ainsi une entière liberté sur la taille et la position des tuiles,
- ...
Inner type du concept
-
imageCache
: type de cache (cf. CImageCache ci-dessous) -
imageFactory
: type de factory (cf. CImageFactory ci-dessous) -
D
: type du domaine de l'image virtuelle tout entière
Interface
-
constructor
-
const Domain & domain() const
: retourne le domaine D -
ConstRange constRange() const
: parcourt séquentiellement le range des domaines Di -
Range range()
: idem -
Value operator()(const Point & aPoint) const
: si imageCache.read(const Point &aPoint, Value &aValue) = true alors retourne aValue, sinon faire: imageCache.update(imageFactory.requestImage(findSubDomain(const Point & aPoint))) puis imageCache.read(const Point &aPoint, Value &aValue) pour retourner aValue -
setValue(const Point &aPoint, const Value &aValue)
: idem pour l'écriture de aValue pour aPoint -
Domain::ConstIterator di
-
Domain * findSubDomain(const Point & aPoint) const
: retourne le domaine Di contenant le point aPoint
Objectifs: définit une politique de mémoire cache d'images ainsi que des fonctions d'accès en lecture, écriture et mise à jour de cache.
Sélecteurs de ce concept
Read selectors:
- LAST : sauvegarde la dernière image courante,
- FIFO (First In First Out) : efface les images dans l'ordre où elles sont arrivées dans la mémoire cache,
- LRU (Least Recently Used) : remplace l'image utilisée la moins récemment afin de garder les images récemment utilisées,
- ...
- NEIGHBORS : mémorise la liste des 8 images voisines de la dernière image courante ainsi que cette dernière,
- ...
Write selectors:
- WT (write-through, écriture immédiate) : donnée écrite à la fois dans le cache et dans la mémoire principale,
- WB (write-back, écriture différée) : donnée écrite dans la mémoire principale que lorsque l'image disparaît du cache.
Inner type du concept
-
Domain
: type du domaine -
Image
: type de l'image
Interface
- constructor
-
bool read(const Point &aPoint, Value &aValue) const
: si aPoint appartient à une image du cache, la fonction retourne true et aValue contient la valeur de aPoint. Si aPoint n'appartient pas à une image du cache la fonction retourne false -
bool write(const Point &aPoint, const Value &aValue)
: si aPoint appartient à une image du cache, la fonction retourne true et aValue est écrite pour le point aPoint. Si aPoint n'appartient pas à une image du cache la fonction retourne false -
update(Image &anImage)
: met en cache l'image en appliquant la politique de cache pour savoir quoi faire du cache précédent (cf. read selectors)
Objectifs: retourne une image DGtal. Doit avoir une méthode requestImage
qui étant donné un domaine, retourne un pointeur vers un conteneur d'image associant les points du domaine à des valeurs à ces points (Domaine x Value). Doit également avoir une méthode writeImage
pour mettre à jour le conteneur d'image.
Modèles de ce concept
- mécanisme de chargement fichier par bloc (ex.: hdf5),
- image virtuelle implicite,
- ...
Inner type du concept
-
Domain
: type du domaine -
Image
: type de l'image
Interface
- constructor
Image * requestImage(const Domain &aDomain)
writeImage(const Image &aImage)
...