Octree

Un article de Wikipédia, l'encyclopédie libre.

Des nœuds d'octree dépeints en tant que division d'un espace de couleur.
Des nœuds d'octree dépeints en tant que division d'un espace de couleur.

Un octree est une structure de données de type arbre dans laquelle chaque nœud peut compter jusqu'à huit enfants. Les octrees sont le plus souvent utilisés pour partitionner un espace tridimensionnel en le subdivisant récursivement en huit octants.

Quelques utilisations courantes des octrees:

  • L'indexation spatiale
  • La détection efficace de collision dans le cadre de la 3D
  • Le view frustum culling

Les octrees sont l'analogie tridimensionnelle des quadtrees. Le nom est formé à partir d'oct et de tree (arbre, en anglais) et s'écrit octree, et non octtree. Chaque nœud d'un octree subdivise l'espace qu'il représente en huit sous-espaces (les octants).

Dans le cas d'un octree de type "point region" (PR), le nœud mémorise explicitement un point tridimensionnel qui est le "centre" de la subdivision pour ce nœud, le point défini alors l'un des coins de chacun des huit enfants. Le nœud racine d'un octree de type PR peut représenter un espace infini.

Dans un octree de type "MX", le point de subdivision est implicitement le centre de l'espace que le nœud représente. Le nœud racine d'un octree de type MX doit représenter un espace fini de manière à ce que les centres implicites des nœud soient bien définis.

[modifier] Application pour la quantification de couleur

L'algorithme d'octree de quantification de couleur, inventé par Gervautz et Pergathofer en 1988, encode les données de couleur d'une image en tant qu'octree pouvant aller jusqu'à neuf niveaux de profondeur. Les octrees sont utilisés parce que 23 = 8 et qu'il y a trois composantes de couleurs dans le système RVB.

L'indice de nœud pourqu'il s'étende à partir du niveau plafond est determiné par une formule qui utilise les bits les plus significatifs des composantes rouge, vert et bleue, 4r + 2g + b, par exemple. Le niveau inférieur suivant utilise la suite de la signification des bits et ainsi de suite. Les bits les moins significatifs sont parfois ignorés afin de réduire la taille de l'arbre.

L'algorithme est grandement efficace en termes de consommation de mémoire puisqu'il limite la taille de l'arbre. Le niveau plancher de l'octree est constitué de nœuds terminaux qui accumulent les données de couleur qui ne sont pas représentées dans l'arbre. Ces nœuds contiennent initialement des bits uniques. Si bien plus de couleurs de palette que le quantité désirée sont entrées dans l'octree, sa taille peut être continuellement réduite en cherchant après un nœud plancher et en moyennant ses bits dans un nœud terminal, éliminant ainsi diverses parties de l'arbre.

Une fois que la phase d'échantillonnage est terminée on obtiendra approximativement le nombre requis de couleurs en parcourant toutes les routes possible de l'arbre en partant de son nœud racine jusqu'à ses nœuds terminaux tout en tenant compte, au passage, des différent bits.

[modifier] Voir aussi

[modifier] Liens externes