DCTViewer

Application JavaDans l’article précédent, on a vu le principe de fonctionnement du format de compression JPEG. En particulier, on a vu que les transformations DCT étaient à la base de l’algorithme de compression.

Afin de visualiser les matrices DCT, il est possible d’utiliser le logiciel MATLAB ($2400 pour la licence individuelle, mais MATLAB sait faire un tas d’autres choses) ou DCTViewer, un petit utilitaire (gratuit, mais qui ne sait faire que ça) que j’ai développé dans le cadre de mon travail de diplôme.

DCTViewer permet de visualiser le contenu des blocs 8×8 d’une image JPEG. La figure suivante présente une copie d’écran de l’application.

DCTViewer

La fenêtre est décomposée en 3 parties: une barre de menu, la fenêtre de visualisation des matrices DCT et un onglet de navigation. En outre, l’utilisateur a la possibilité d’afficher, dans une fenêtre séparée, l’image graphique actuellement traitée.

Le menu permet d’ouvrir une image JPEG, et d’afficher ou cacher les différentes matrices composants l’images ainsi que de visualiser l’image proprement dite.

La fenêtre principale de DCTViewer contient 4 blocs de 3 matrices. Les 3 premières représentent les coefficients DCT de la luminance pour la première et de la chrominance pour les deux autres tels qu’ils sont enregistrés dans le fichier JPEG à l’aide de l’algorithme de Huffman. C’est ici qu’un logiciel de stéganographie va effectuer les modifications afin d’incorporer un message caché. Les 3 matrices suivantes sont les coefficients de quantification. Ceux-ci sont identiques pour toute l’image (déplacer le petit carré rouge ne modifie pas ces valeurs). Les matrices 7, 8 et 9 représentent respectivement les coefficients de matrices 1, 2 et 3 après décantification et l’opération mathématique appelée DCT inverse. Enfin, les 3 dernières matrices représente respectivement les composantes rouges, vertes et bleues du bloc de 8×8 pixels.

L’onglet de navigation contient un ascenseur horizontal qui permet de choisir les blocs DCT à afficher. En outre, il est possible de spécifier directement un indice de bloc dans le champs de saisie prévu à cet effet. Les valeurs possibles vont de 0 au nombre de blocs DCT de luminance moins 1. À droite de l’ascenseur, une petite vignette permet de visualiser — avec un zoom de facteur 4 — le rendu RGB des blocs sélectionnés.

Enfin la fenêtre de visualisation affiche l’image dans son entier. Un petit carré rouge entoure le bloc de 8×8 actuellement traité. Le bloc à traiter peut également être sélectionné en déplaçant, à l’aide de la souris, le carré rouge à n’importe quel endroit de l’image.

DCTViewer présente les limitations suivantes:

  • seul les formats JFIF et EXIF sont actuellement supporté (la majorité des images JPEG sont dans ce format);
  • l’application ne peut lire que les images séquentielles (les JPEG progressifs ne sont pas reconnus par DCTViewer).

DCTViewer a été entièrement réalisé en Java. Il est donc multi-plateforme et a été testé avec succès sur Mac OS X, Windows XP et Linux. Il peut être téléchargé ici. Vos commentaires sont les bienvenus.

Les commentaires sont fermés