Compression des images hyperspectrales
These en pdf
Chapitre 3
Compression des images hyperspectrales
REVENONS maintenant sur la compression avec ce chapitre qui présente
l’adaptation des méthodes de transformée en ondelettes pour les propriétés
spécifiques de l’hyperspectral. Une première partie développe les possibilités du
standard de compression JPEG 2000. La seconde partie s’attache à trouver la
transformation en ondelettes optimale pour les images hyperspectrales. Enfin,
une adaptation des structures d’arbres de zéros est faite pour appliquer les
algorithmes EZW et SPIHT aux images hyperspectrales. Cette partie de l’étude
a fait l’objet de publications [Chr06a,Chr06b,Chr06c,Chr07a,Chr07b].
3.1 JPEG 2000 pour l’hyperspectral
3.1.1 La norme JPEG 2000
JPEG 2000 est la norme la plus récente pour la compression d’image fixe. Une documentation complète est disponible sur le sujet, on peut voir par exemple [Tau02,Sko01]. Cette partie propose uniquement une présentation des points clés de la norme.
Cette norme a été définie pour fournir un cadre à une grande variété d’applications compressant les images avec différentes caractéristiques (images naturelles, images scientifiques multicomposantes, texte codé sur deux niveaux…) pour différentes utilisations (transmission en temps réel, archive, ressources limitées…).
Les principales fonctionnalités de JPEG 2000 sont, entre autres, le tuilage d’images de grande taille, le codage de régions d’intérêt (region of interest ou ROI) tout en proposant le codage d’images de dynamiques variées avec différents nombres de composantes. La partie 1 du standard [ISO02] comprend la plupart des fonctionnalités de JPEG 2000 pouvant être utilisées sans payer de royalties ou de frais de licence. La partie 2 contient les extensions [ISO04]. La plupart des implémentations actuelles de JPEG 2000 correspondent uniquement la partie 1.
Le codeur JPEG 2000 est basé sur le modèle de codage par transformée. Pour coder une image à une composante, une transformation multirésolution en ondelettes est d’abord appliquée. L’annexe A concerne les principaux aspects de l’utilisation de la transformée en ondelettes. Dans le cas d’une compression sans pertes, c’est l’ondelette Le Gall 5/3 qui est utilisée, sinon c’est l’ondelette de Daubechies 9/7. Pour la compression sans pertes, c’est une transformation d’entiers en entiers basée sur une implémentation en lifting scheme de la transformée en ondelettes [Dau98]. Ces transformations ont été choisies pour leur capacité à effectuer une décorrélation efficace d’une image.
La partie codage entropique de JPEG 2000 est assez complexe pour respecter la flexibilité demandée par la norme. Pour permettre le codage progressif ainsi que la résistance aux erreurs de transmission, le codage est basé sur un codage par blocs avec points de troncatures optimaux (Embedded Block Coding with Optimal Truncation ou EBCOT) [Tau00]. EBCOT est la raison principale des excellentes performances en terme de débit-distorsion de cette norme. Chaque sous-bande issue de la transformée en ondelettes est partagée en blocs de taille relativement faible (64 × 64 pixels en général). Chacun de ces blocs est ensuite codé indépendamment pour produire un train binaire progressif. Une quantification scalaire est utilisée pour la partie 1 de la norme tandis que la quantification vectorielle est disponible dans les extensions. Le codage entropique est réalisé par un codeur arithmétique contextuel. Les symboles sont codés à partir de modèles de probabilités pour 18 contextes différents. La norme ne spécifie pas d’allocation de débit et donc sur ce point, l’utilisateur est libre de faire ce qu’il veut. Néanmoins, une méthode populaire et largement utilisée est l’algorithme PCRD-opt (Post Compression Rate Distortion optimization) qui détermine le point optimal de troncature pour chacun des blocs [Tau00].
Pour les images multicomposantes à trois bandes (une image couleur classique par exemple), une transformation standard entre les couleurs est appliquée avant le codage par JPEG 2000. Cette transformation convertit l’espace naturel RGB (Red Green Blue) dans un espace moins corrélé YCrCb (une luminance et deux chrominances). Ensuite, le codeur JPEG 2000 classique est appliqué à chaque composante. L’algorithme d’allocation de débit (PCRD-opt) est ensuite utilisé de manière globale pour répartir le débit entre toutes les composantes.
3.1.2 Adaptation aux images hyperspectrales
Les parties 1 et 2 de la norme JPEG 2000 sont destinées au codage des images fixes en niveau de gris ou des images avec 3 bandes de couleurs et éventuellement un quatrième canal alpha (pour spécifier la transparence). Dans ces parties, aucune transformation intercomposante n’est définie à l’exception de la transformation couleur. Cependant, la partie 2 prévoit l’utilisation de transformations intercomposantes pouvant être précisées par l’utilisateur, avec, entre autres, la transformation en ondelettes. La partie 10, également connue sous le terme de JP3D, vise plutôt les images tridimensionnelles aussi isotropiques que possible [wg104]. Ces spécifications ne conviennent pas aux images hyperspectrales qui ne sont pas isotropiques et ont, par exemple, une corrélation bien plus forte dans la direction spectrale que dans les directions spatiales. Par conséquent, la partie JP3D du standard ne convient pas à la compression des images hyperspectrales. Nous proposons donc plutôt d’utiliser les extensions de la norme (partie 2) en introduisant l’utilisation de transformées intercomposantes avant d’appliquer le codage JPEG 2000.
L’implémentation de référence de JPEG 2000 est le Verification Model (VM). Le VM est utilisé par le comité JPEG 2000 pour les expérimentations et évoluera au final en implémentation de la norme JPEG 2000 [wg101]. Pour cette étude, la version VM 9.1, la plus récente, est utilisée pour évaluer les performances de compression de la norme JPEG 2000 adaptée aux images hyperspectrales. Une correction est nécessaire pour pouvoir décomprimer les trains binaires obtenus en utilisant la transformée intercomposante, cette correction est détaillée dans l’annexe C. Une autre implémentation récente et populaire de JPEG 2000, Kakadu, version 5.0 est également utilisée pour confirmer les résultats. Le détail des lignes de commande et des options utilisées est donné dans l’annexe C.
Comme il a été précisé, les parties 1 et 2 de la norme ne donnent pas de spécifications pour les cas où l’image possède plus de 3 bandes (transformation couleur). Cependant, le VM permet à l’utilisateur de fournir une matrice de transformation permettant une transformée en cosinus discrète (DCT) ou une transformée de Karhunen-Loeve (KLT). Cela est fait en utilisant l’option -Mlin du VM. Une autre option (-Mtdt) permet d’appliquer une transformée en ondelettes (DWT 9/7) entre les différentes composantes. Dans ces deux cas, la transformation 1D est appliquée sur la dimension spectrale avant d’utiliser l’encodage classique JPEG2000 sur les images résultantes. Une optimisation débit-distorsion par lagrangien est une option utile car les composantes ont des propriétés statistiques différentes après la compaction d’énergie réalisée par la transformation (option -Flra). Sans cette option, le VM a du mal à atteindre le débit visé sur certaines images.
La figure 3.1 compare les performances de plusieurs transformations intercomposantes : DCT, KLT et DWT en terme de PSNR (Eq. 2.11) en fonction du nombre de bits par pixel par bande (bpppb).
|
|
Introduire une décorrélation intercomposante des données avant le codage JPEG 2000 permet d’augmenter de manière importante les performances. La KLT donne les meilleurs résultats car elle est adaptée aux données et est optimale en terme de décorrélation et de concentration d’énergie. La DWT augmente significativement les résultats tandis que la DCT présente des performances plus faibles.
La KLT est spécifique à chaque image et les matrices de transformation doivent donc être recalculées en fonction des données. Ce calcul est coûteux en terme de complexité : il est nécessaire de calculer la matrice de covariance ainsi que les vecteurs propres. Cette complexité est dissuasive pour la plupart des applications particulièrement lorsque le nombre de bandes augmente. Dans le cas des images multispectrales une approche utilisant une KLT générique, calculée sur plusieurs images est envisagée [Thi06]. Dans ce cas, il n’est plus nécessaire d’effectuer la diagonalisation de la matrice de covariance, il suffit d’effectuer la transformation. Avec 224 bandes, l’opération reste encore impossible en implémentation matérielle comme le montre le tableau 3.1. L’approche par transformation en ondelettes paraît plus adaptée, surtout dans le cas hyperspectral où le nombre de composantes est important.
|
L’algorithme JPEG 2000 nécessite des ressources importantes (principalement pour le codeur arithmétique et l’allocation de débit) ce qui n’est pas possible particulièrement dans le contexte d’une implémentation spatiale où les contraintes sont très fortes. A notre connaissance, il n’existe qu’une seule implémentation de JPEG 2000 adaptée aux contraintes spatiales [VB05]. L’auteur de cette implémentation indique que les performances sont significativement moins bonnes que Kakadu dans le cas de la compression avec pertes à cause de l’impossibilité d’implémenter l’optimisation débit-distorsion. Le Consultative Committee for Space Data Systems (CCSDS), un groupe de travail regroupant les principales agences spatiales mondiales (NASA, JAXA, ESA, CNES) a émis des recommandations pour les systèmes de compression bord [Yeh05]. La recommandation consiste à regrouper les coefficients de la transformée en ondelettes dans une structure similaire à celle des arbres de zéros plutôt que d’utiliser la norme JPEG 2000. Le but de cette implémentation est d’alléger la complexité vis-à-vis de la norme JPEG 2000. Les performances de JPEG 2000 dans notre étude sont à voir plutôt comme une référence à atteindre, le but étant ici d’obtenir des performances proches de cette référence tout en gardant une complexité faible. La version de JPEG 2000 au fil de l’eau (scan-based mode), plus réaliste pour une implémentation spatiale donne elle-même des performances réduites par rapport à la référence.
La réduction de complexité par rapport à JPEG 2000 n’est pas obtenue directement par l’utilisation de la transformation en ondelettes selon les 3 directions, mais il apparaît que les ondelettes permettent l’utilisation d’outils performants et simples. C’est donc la transformée en ondelettes qui est choisie pour la décomposition.
3.2 Choix de la décomposition optimale
Avant d’adapter les arbres de zéros aux images hyperspectrales, il est nécessaire de définir une extension de la transformation en ondelettes performante pour les images hyperspectrales. La plupart des extensions actuelles sont basées sur des décompositions isotropiques [Tan03,Kim03], or, comme il a été montré dans les chapitres précédents, les données hyperspectrales ne sont clairement pas isotropiques. Dans le domaine de la compression vidéo, des structures anisotropiques sont utilisées avec succès [He03,Cho03]. Cependant, aucune justification théorique n’a été donnée concernant le choix de cette structure particulière et des décompositions plus efficaces pourraient exister. De toute façon, le meilleur choix pour les données vidéo n’est pas nécessairement le meilleur pour les images hyperspectrales à cause des propriétés statistiques différentes.
Le problème de la recherche de la décomposition en ondelettes optimale pour signaux à une dimension a été exploré dans plusieurs publications (par exemple [Coi90]). Pour les images naturelles 2D, les possibilités de décomposition ont souvent été restreintes à des quadtrees (conduisant à des sous-bandes carrées) mais ont évolué avec les décompositions anisotropiques [Xu03]. Plusieurs critères ont été utilisés pour choisir la décomposition optimale : sélection basée sur l’entropie [Coi92] ou sur un compromis débit-distorsion [Ram93] par exemple. L’avantage principal du dernier choix est qu’il propose simultanément l’allocation de débit entre les différentes sous-bandes [Sho88].
3.2.1 Décomposition anisotropique 3D en ondelettes
Classiquement, pour les images 2D, la transformée en ondelettes est isotropique i.e. pour une sous-bande donnée, le niveau de décomposition dans la direction horizontale est le même que dans la direction verticale. Cette alternance entre décomposition des lignes et des colonnes conduit à des sous-bandes carrées 1, l’équivalent en 3D étant des cubes. C’est le cas de la décomposition multirésolution définie par Mallat ou de la décomposition en paquets d’ondelettes pour les images [Mal89]. Un exemple de la décomposition multirésolution classique est illustré sur la figure 3.2. Les coefficients gris représentent des valeurs proches de zéros, tandis que les noirs et blancs correspondent respectivement à des valeurs fortement négatives ou positives.
Le terme anisotropique est plus général que l’utilisation courante du terme paquets d’ondelettes. Dans la plupart des cas, le terme paquets d’ondelettes désigne une transformation en quadtree conduisant à des sous-bandes carrées. Cette utilisation est justifiée par le fait que les images 2D classiques ont des propriétés statistiques similaires dans toutes les directions. Un exemple de décomposition anisotropique est donné sur la figure 3.3. On s’aperçoit ainsi qu’une telle décomposition non isotropique permet d’isoler une sous bande contenant beaucoup d’énergie (Fig. 3.3, sous-bande 1), tandis que les autres sous-bandes contiennent une majorité de coefficients nuls (la sous-bande 2 par exemple). Ceci permettra un codage efficace de l’image.
On note Wi,j,kp,q,r une sous-bande de la décomposition 3D en ondelettes (Fig. 3.4) :
- i,j,k étant le niveau de décomposition selon, respectivement, les lignes, les colonnes et les spectres (déterminant la taille de la sous-bande).
- p,q,r étant respectivement l’index de ligne, de colonne et de spectre.
Cette notation est illustrée sur la décomposition multirésolution pour une image 2D dans l’annexe A.
Une relation peut être définie au niveau des espaces vectoriels des sous-bandes. Pour une décomposition selon les lignes, l’espace des ondelettes anisotropiques vérifie
![]() | (3.1) |
où ⊕ est la somme directe de deux espaces vectoriels.
Pour une décomposition selon les colonnes, on a
![]() | (3.2) |
et selon les spectres
![]() | (3.3) |
À chaque étape de la décomposition, pour toutes les sous-bandes, il est possible de choisir la direction de la décomposition ce qui accroît la flexibilité de l’espace des décompositions. La décomposition multirésolution et les décompositions en paquets d’ondelettes sont toutes deux des cas particuliers de cette représentation.
Une représentation simple et bien adaptée pour ce type de décomposition peut être faite sous la forme d’arbre (Fig. 3.5 et 3.6). Chaque nœud porte un numéro, indiquant le sens de la décomposition (x, y ou λ), et deux branches, correspondant aux deux sous-bandes.
|
|
|
Il faut noter que la correspondance arbre-décomposition n’est pas bijective. Deux arbres différents peuvent donner la même décomposition. Par exemple, décomposer sur x puis sur chacune des deux sous-bandes décomposer sur y donne la même décomposition que décomposer d’abord sur y puis sur x pour chacune des deux sous-bandes. Les arbres correspondant à ces deux transformations seront différents. Par contre, un arbre donne bien une seule décomposition possible.
La représentation sous forme d’arbre se prête particulièrement bien à une programmation récursive.
3.2.2 Optimisation débit-distorsion
3.2.2.1 Le problème d’allocation
Le problème de l’allocation de débit, i.e. la distribution du budget de bits entre chaque sous-bande est un problème classique en compression de données. Shoham et Gersho ont traité le problème dans le cadre de la théorie débit-distorsion [Sho88]. Leur solution consiste à minimiser la distorsion sous une contrainte de débit en utilisant la méthode du lagrangien.
Dans le contexte de la décomposition en ondelettes, différentes types de quantificateurs peuvent être utilisés pour les différentes sous-bandes. Chaque quantificateur donnera une valeur de débit et une valeur de distortion pour chaque sous-bande (Fig. 3.7). On appelle S l’ensemble fini des combinaisons de quantificateurs pour les sous-bandes et B un élément de S. Un choix de B indiquera le quantificateur utilisé pour chacune des sous-bandes de la décomposition. Le problème est de minimiser la distorsion D(B) sous la contrainte de débit total R(B) dans le budget total Rc :
![]() | (3.4) |
En utilisant la méthode du lagrangien, on transforme cette minimisation sous contrainte en minimisation d’une fonction de coût J sans contrainte mais avec un paramètre λJ
![]() | (3.5) |
Sous une hypothèse de codage indépendant des différentes sous-bandes et d’additivité pour les mesures de distorsion et de débit, on montre que l’optimal global est atteint lorsque toutes les sous-bandes sont à un même point de fonctionnement λJ pour leur courbe débit-distorsion. Le problème devient alors :
![]() | (3.6) |
La preuve de l’équivalence entre le problème sous contrainte et le problème sans contrainte est simple et peut être trouvée dans [Sho88].
|
|
3.2.2.2 Algorithme
Le débit Rkq pour chaque sous-bande est évalué en utilisant le codeur arithmétique défini dans [Mof98]. Le choix du codeur n’est pas critique ici. Ce sont les positions relatives des différents choix possibles qui sont importants, pas leur performances absolues. Des simulations avec d’autres mesures de débits comme l’entropie des coefficients des sous-bandes ou par une combinaison de run length coding et de codage de Rice conduisent à des résultats similaires. Le fait que les sous-bandes sont codées de manière indépendante est une supposition implicite ici.
La courbe débit-distorsion est calculée pour les 3 décompositions suivantes possibles (correspondant aux 3 directions). Une représentation illustrée sur la figure 3.8 est obtenue. Pour chaque valeur de λJ, la fonction de coût J est calculée pour chacun des points de la courbe débit-distorsion. La décision de poursuivre ou non la décomposition est prise selon le coût le plus faible.
|
|
La recherche de type bottom-up est basée sur une fonction récursive et sur la
propriété d’additivité de la fonction de coût J. On note
i,j,kp,q,r la base
optimale de Wi,j,kp,q,r. Soit
i,j,kp,q,r la base de Wi,j,kp,q,r sans aucune
transformation. On a alors une fonction de coût pour une base de représentation,
J(λJ,
) = min{D + λJR} : R et D étant les points de fonctionnement de la
sous-bande représentée sur la base
.
J est une fonction de coût additive : pour deux bases orthogonales
1 et
2,
on a
![]() | (3.7) |
en utilisant les propriétés d’additivité des débits et des distorsions.
Preuve: La meilleure base
ip est soit égale à
ip ou à l’union
0 ∪
1
des bases de Wi+12p et Wi+12p+1 respectivement. Dans ce dernier cas, la
propriété d’additivité (Eq. 3.7) implique que le coût sur
ip est minimum si
0
et
1 minimisent le coût sur Wi+12p et Wi+12p+1. On a donc
0 =
i+12p et
1 =
i+12p+1. Cela montre que
ip est soit
ip, soit
i+12p ∪
i+12p+1. La
meilleure base est choisie en comparant le coût des deux possibilités.
__















(a) Moffett4
(b) Moffett3
(c) Harvard1
(d) Hawaii1
(e) Hawaii2
(f) Hyperion1
(a)
(b)
(a) moffett4
(b) moffett3
(c) Harvard1
(d) Hawaii1
(e) Hawaii2
(f) hyperion1
