Première approche de JPEG 2000
Conférence donnée au Club Photoshop
Première approche pratique
Nous nous sommes livrés à quelques essais en utilisant 2 logiciels disponibles actuellement sous forme de plug-ins Photoshop (utilisé ici dans sa version 7 sur Macintosh).
Le plug-in j2kf de fnord (www.fnordware.com) est simple demploi et noffre que peu doptions. Il est fourni en trois versions pour les utilisateurs de Mac. Lune (Hybrid) convient pour toutes les versions de Photoshop (Classic ou Carbon), cest celle que nous avons testé. La deuxième (Carbon) convient à After Effects 5.5. La troisième (Classic) convient à After Effects 5.0.
Ce plug-in permet de sauvegarder avec ou sans perte. Si on sauvegarde avec pertes, on peut paramétrer la compression de deux manières, en choisissant la taille du fichier souhaité ou en choisissant un coefficient de qualité de 1 à 100.
A noter que le format jp2 requiert un profil ICC, il ne faut donc pas oublier de cocher dans Photoshop la case de la fenêtre denregistrement qui permet de joindre le profil. En faisant option-click sur le bandeau supérieur on accède à 2 options supplémentaires. La première permet denregistrer limage compressée sans len-tête du jp2 et sans profil ICC. Cette option paraît inutile. La deuxième permet de déterminer le nombre des niveaux de qualité (il sagit dune notion analogue à celle des niveaux dans le JPEG progressif). Ce paramétrage na pas dimpact sensible sur le poids des fichiers. On gardera la valeur proposée par défaut (12) en létat actuel de nos connaissances.
Ce plug-in utilise la bibliothèque kakadu de David Taubmann, lun des rédacteurs de la norme JPEG 2000 (http://www.kakadusoftware.com/)
Le plug-in JPEG 2000 fourni avec Camera Raw dAdobe présente plus doptions. Il permet bien entendu de choisir entre enregistrement avec ou sans pertes. On peut choisir ou non dinclure les métadonnées, les informations de couleurs, la transparence et de rendre ou non le fichier compatible jp2 car ce plug-in utilise un format qui lui est propre le jpf. Un bouton permet daccéder à des fonctions avancées : type de coefficients utilisé pour la transformation en ondelettes, inclusion des métadonnées de type JPEG 2000 XML, XMP et EXIF, type des informations de couleurs embarquées et taille des tiles utilisé pour décomposer limage. Ces différentes options sont intéressantes mais dutilité relative actuellement, disons quelles préparent lavenir.
On peut également définir dans quel ordre les informations sur limages seront transmises pour décodage (par niveaux de qualité, par progression de la taille de limage ou par transmission progressive des informations de couleur. Dans le cas où on compresse avec perte il est possible de demander lutilisation dune région dintérêt en sélectionnant une couche quon aura pris soin de créer au préalable dans Photoshop (Attention le plug-in ne se charge pas de cette tâche) et en donnant un pourcentage damélioration pour la région ainsi définie.
Une zone de prévisualisation permet de choisir un débit de transmission et de lancer une prévisualisation. Cette possibilité nous a semblé intéressante.
Test 1. Enregistrement en JPEG 2000 sans perte.
Nous utilisons une première image photographique de 10 Mo en RVB. Elle a été traitée normalement (niveaux + netteté). Les tailles de fichier obtenus figurent dans le tableau suivant (on indique la taille en octets des fichiers, leur taille en Mo et le pourcentage de cette taille par rapport à la taille du fichier Photoshop :
|
PSD
|
TIFF LZW
|
TIFF ZIP
|
PNG
|
jp2
|
|
10 609 617
|
7 076 277
|
6 343 873
|
5 659 929
|
4 893 189
|
|
10,1 Mo
|
6,7 Mo
|
6 Mo
|
5,4 Mo
|
4,6 Mo
|
|
100 %
|
66,7 %
|
59,8 %
|
53,3 %
|
46,1 %
|
Nous utilisons une deuxième image photographique en niveaux de gris de 12 Mo. Les tailles de fichier obtenus figurent dans le tableau suivant (on indique la taille en octets des fichiers, leur taille en Mo et le pourcentage de cette taille par rapport à la taille du fichier Photoshop :
|
PSD
|
TIFF LZW
|
TIFF ZIP
|
PNG
|
jp2
|
|
12 599 232
|
7 805 917
|
7 154 621
|
6 764 053
|
5 038 368
|
|
12 Mo
|
7,4 Mo
|
6,8 Mo
|
6,4 Mo
|
4,8 Mo
|
|
100 %
|
62 %
|
56,8 %
|
53,6 %
|
40 %
|
Dans les deux cas étudiés (et dans tous nos autres essais) le JPEG 2000 apparaît comme une excellente méthode pour enregistrer les images sans perte. Il permet dobtenir des résultats meilleurs que le traditionnel TIFF dans ses deux variantes et même que le PNG plus récent bien que peu employé. Cette utilisation, bien quun peu inattendue des professionnels, me paraît devoir retenir notre attention.
Test 2. Enregistrement en JPEG 2000 avec pertes.
Nous utilisons la première image utilisée ci-dessus et la compressons en JPEG avec ImageReady avec un facteur de qualité de 80 (enregistrement pour le print). Nous obtenons un fichier de 1 137 633 octets (1 Mo) soit 10,7 % du poids du fichier Photoshop.
Nous utilisons le plug-in JPEG 2000 de CameraRow pour obtenir un fichier de taille voisine en JPEG 2000 (taille du fichier 1 094 192 octets). La comparaison des deux images obtenues dans Photoshop est difficile, elles sont toutes les deux de bonne qualité comme on pouvait sy attendre. Elles paraissent identiques quand on les observe à 100 %. A un fort grossissement (400 %) limage JPEG 2000 semble légèrement plus floue.
Une approche quantitative est tentée. Les images compressées sont superposées à limage originale sur un calque mis en mode différence, limage obtenue est aplatie et son histogramme est étudié. Il permet détudier pour la luminosité et couche par couche la distribution des valeurs absolues des différences entre les pixels des images. Nous connaissons les critiques que lon peut faire de cette méthode mais cest la seule qui peut-être tentée dans le cadre de cette première approche. Dan le cas de limage JPEG, pour la luminosité la moyenne est de 1,44 et lécart type est de 0,90. Les résultats pour les 3 couches sont les suivants :
Couche rouge : moyenne 1,88, écart type 1,76
Couche verte : moyenne 1,10 écart type 0,97
Couche bleue : moyenne 2,07 écart type 1,78
Ces résultats excellents corroborent limpression visuelle. Lexamen de la répartition spatiale des écarts à limage originale nest pas homogène sur la surface de limage comme la théorie permettait de le prévoir mais son hétérogénéité est relative (toute limage est concernée).
Dans le cas de limage JPEG 2000, pour la luminosité la moyenne est de 1,69 et lécart type de 1,23. Les résultats pour les 3 couches sont les suivants :
Couche rouge : 2,05 écart type 2,03
Couche verte : 1,47 écart type 1,31
Couche bleue : moyenne 1,91 écart type 1,73
Ces résultats sont en accord avec limpression visuelle obtenue mais ils sont assez dérangeants puisquils donnent un léger avantage au JPEG sur le JPEG 2000.
Ils doivent être nuancés par plusieurs considérations :
- la méthode utilisée est loin dêtre parfaite
- Il est peu probable que le logiciel utilisé mette en oeuvre un codeur optimal.
- Nous ne nous intéressons ici quau résultat à lécran. Un protocole de comparaison sérieux intégrerait le processus de tramage.
Le même travail a été effectué avec la même image mais rééchantillonnée à 200 pixels de largeur. On est ici dans le cas dune image utilisée sur Internet.
Limage originale fait 244 ko, en JPEG qualité 30, on obtient avec ImageReady un fichier de 6 573 octets tout à fait compatible en poids et en qualité avec Internet.
Nous avons rencontré des difficultés inattendues pour obtenir un fichier jp2 de même taille alors que la théorie nous enseignait que cela devait être très facile et quil était normalement possible dobtenir des résultats beaucoup plus spectaculaires. En effet en enregistrant comme pour le test 1 notre image de 244 ko avec nos plug-ins nous avons obtenu 56 600 octets. Après avoir modifié les options du plug-ins sans succès et pris un café, nous avons trouvé les responsables qui sont Photoshop 7 et Mac OS X.
Par défaut Photoshop joint en effet aux données de limage proprement dite licône, une vignette Macintosh et une vignette Windows. Les résultats saméliorent en décochant les 3 cases correspondantes dans le panneau Gestion des fichiers des préférences mais le résultat reste étonnant à 17 186 octets en utilisant la compression maximum. Nous notons que le même fichier placé sur un serveur LINUX subit une cure damaigrissement qui lamène au poids record de 2 Ko. Le plug-in nest pas en cause.
Nous avons testé lutilisation dImageReady (en faisant exporter), le résultat est meilleur et on obtient un fichier dune taille apparente de 3 325 octets en utilisant la compression maximum du JPEG 2000.
Pour obtenir un résultat sûr et rapidement vérifiable nous sommes passés sous Windows XP où nous avons fabriqué avec le logiciel Morgan un fichier de 6 423 octets de taille très proche de notre fichier JPEG. En tous cas ils occupent tous les deux 6 ko sur un serveur LINUX.
La comparaison visuelle des deux images à 100 % donne cette fois-ci un léger avantage au JPEG 2000. Les matrices 8 x 8 utilisées par la transformée de Fourrier discrète créent un léger bruit qui nexiste pas sur limage JPEG 2000. A 200 % (mais est-bien raisonnable ?) limage JPEG apparaît détériorée par les matrices qui deviennent légèrement visibles. Limage JPEG 2000 est meilleure mais légèrement plus floue que loriginal.
En résumé, les images JPEG 2000 présentent une meilleure qualité à loeil et leur utilisation sur Internet paraît souhaitable dès que les navigateurs les accepteront. Elles devraient permettre une diminution modérée mais réelle du poids des fichiers images. En utilisant la compression JPEG 2000 au maximum on obtient un fichier de 2 Ko (moins de 1,5 %). Limage nest pas utilisable mais elle est reconnaissable et à ce niveau , JPEG a déclaré forfait depuis longtemps.
Test 3. Enregistrement des images en 32 bits.
Photoshop est un des rares logiciels qui permet de traiter des images en 32 bits. Peu de formats supportent cette caractéristique. On ne peut enregistrer les images en 32 bits quen PSD en Brut, ou en TIFF. Le format jp2 est maintenant disponible. Nous avons vérifié que les plug-ins permettaient de compresser des images 32 bits. Rappelons que JPEG noffre pas cette possibilité.
Test 4. Enregistrement dune image avec transparence.
Nous avons pu enregistrer sans problème une image Photoshop comportant de la transparence. Cest une possibilité très intéressante dont ne disposait pas JPEG.
|
|