L'algorithme de compression par la méthode Jacquin correspond parfaitement à l'algorithme générique présenté dans la première partie. La méthode Jacquin utilise des régions carrées pour segmenter l'image.
Cet algorithme de compression/décompression est le plus simple des trois algorithmes présentés dans ce document, car la manipulation de régions carrées prédéfinies (tableaux 2D de tableaux 2D) est beaucoup plus simple à implémenter que les régions triangulaires dynamiques (liste chaînée de structures)!
Voici le fonctionnemant de la compression fractale par la méthode de Jacquin.
On commence par générer sur l'image un pavage de carrés appelés Sources et un pavage de carrés Destinations. [étape 0]
Puis, on cherche quelle est la meilleur combinaison Source/Destination pour chaque figure Source. Pour cela,
Pour recréer l'image à partir du fichier final, il suffit de recréer les 2 partitions source et destintion, et d'appliquer plusieurs fois les transformations des couples sauvés dans le fichier. Le gène fractale de l'algorithme de Jacquin garantit alors la convergence de l'image vers l'image de départ.
Remarques :
Pour l'opération de réduction, nous avons choisis de réaliser une réduction par moyennage, afin de conserver une certaine cohérence des pixels de l'image (l'échantillonnage étant beaucoup trop corrosif). Les opérations Rotation et Flip sont simple à implémenter en langage C puisqu'il s'agit de figures codées dans un tableau en 2 dimensions, mais nous verrons par la suite que cela devient problématique pour des figures triangulaires.
julien michot 2006-08-13