Images et ondelettes Laurent Mouchard JPEG2000 Images et ondelettes Laurent Mouchard
Quelques éléments de datation au carbone 14 Call for Contributions in 1996. Agreement reached on the first Committee Draft (CD) in JPEG Maui meeting, Hawaii, Dec. 1999. Committee Draft elevated to Final Committee Draft (FCD), Tokyo, March 2000. Accepted as Draft International Standard in August 2000. Published as ISO Standard in January 2002.
Qu’est-ce que JPEG2000 ? JPEG 2000 is a wavelet-based image-compression standard, developed by the same ISO committee that previously developed JPEG, although with a different group of participants and contributors. JPEG 2000 was conceived as a next generation image compression standard that would improve on the performance of JPEG while, more significantly, adding features and capabilities not available with Baseline JPEG compression.
Plus précisement ? JPEG 2000 is a new still image compression standard JPEG 2000 is standardized by ISO/IEC JTC1/SC29/WG1 (JPEG) Formal Name: ISO/IEC 15444 Nickname: (.jp2, .j2k) JPEG 2000 aims to be the one-for-all image codec. Different image types: bi-level, gray-level, color, multi-component Different applications: natural images, scientific, medical, remote sensing, text, rendered graphics, etc Different imaging models: client/server, consumer electronics, image library archival, limited buffer and bandwidth resources, etc.
Les normes JPEG2000 13 éléments prévus dans la norme Part 1, Core coding system (intended as royalty and license-fee free - NB NOT patent-free) Part 2, Extensions (adds more features and sophistication to the core) Part 3, Motion JPEG 2000 Part 4, Conformance Part 5, Reference software (Java and C implementations are available) Part 6, Compound image file format (document imaging, for pre-press and fax-like applications, etc.) Part 7 has been abandoned Part 8, JPSEC (security aspects) Part 9, JPIP (interactive protocols and API) Part 10, JP3D (volumetric imaging) Part 11, JPWL (wireless applications) Part 12, ISO Base Media File Format (common with MPEG-4) Part 13, Entry-Level, JPEG2000 Encoder
JPEG 2000 Standard - Parts 1-6 ISO/IEC 15444 / ITU-T Rec. T.800 Part 1: Core Coding System Part 3: Motion JPEG2000 Part 4: Conformance Testing Part 6: Compound Image File Format Part 2: Extensions Part 5: Reference Software Let me say just a few words about the JPEG2000 standard. It’s a multi-part standard: 12 parts in all, either completed or under development. In this talk, I will refer to Parts 1 and 4. Part 1 defines the core algorithm, some image stream profiles and a basic file format. Part 4 specifies conformance and what a JPEG2000 reader is expected to do. Part 2 has extensions. Parts 3 and 6 define file formats for motion and document images. Part 5 points to reference software. These 6 parts are all done and represent the basic, initial parts of the standard. En cours de dévelopement publié Légende
JPEG 2000 Standard - Parts 8-13 Encode Légende Part 8: JPSEC Secure JPEG2000 Part 9: JPIP Interactivity Tools Part 10: JP3D 3D & Floating Pt Part 11: JPWL Wireless Part 12: ISO Media File Format Part 13: Entry-Level JPEG2000 Encoder The other 6 parts are aimed at specialized or advanced applications. The only one I will note here is Part 12. If you wondering what happened to Part 7, it was to describe hardware profiles. After it was approved as a new work item, the committee thought better of it, folded the work into Part 4 and dropped it as a separate part. En cours de dévelopement publié Légende Encode
Pourquoi choisir JPEG2000 plutôt que JPEG Achieve higher coding efficiency Superior low bit-rate performance compared with JPEG Better visual performance & visual tools Handle more types of image Provide many new & useful functionalities Reasonable complexity limited workspace memory Iifting and line-based implementation of wavelets MQ coder
Comparaison entre JPEG2000 et JPEG (même taille d’image au final) A visual comparison from left to right of an (left) original image, (middle) 0.5kb JPEG 2000 compressed image, (right) 0.5kb jpeg.
Comparaison entre JPEG2000 et JPEG (même taille d’image au final) 80%
Composants clés du format JPEG2000 Transform Wavelet Wavelet packet Wavelet in tiles Quantization Scalar Entropy coding (EBCOT) code once, truncate anywhere Rate-distortion optimization Context modeling Optimized coding order Visual Weighting Masking Region of interest (ROI) Lossless color transform Error resilience
Schéma de la transformation Quantification Transformée en ondelettes Codeur entropique bloc Image originale compressée Encodeur Optimisation Taux-Distorsion Generation du bitstream Image reconstruite Dequanti-fication Decodeur entropique Transformée en ondelettes inverse compressée
Transformation de base Image originale 128, 129, 125, 64, 65, … Calcul des coefficients de transformation 4123, -12.4, -96.7, 4.5, …
Plusieurs types d’ondelettes HL LH HH Stéphane Mallat spacl packet
Transformée en Ondelettes 2D utilisées par JPEG2000 LL1 LH1 HL1 HH1
Transformation de base
Transmission progressive par résolution
Transmission progressive par résolution
Transmission progressive par résolution
Transmission progressive par résolution
Transmission progressive par qualité
Transmission progressive par qualité
Transmission progressive par qualité
Comparaison des rapports de compression
Comparaison entre les vitesses de compression/décompression
Quelques détails sur les ondelettes Y = ondelette mère (fonction de fenêtrage qui possède 2 coefficients) S = échelle (coefficient de dilatation de l’ondelette) = 1/f t = coefficient de translation (déplacement de la fenêtre le long du signal) > utilité : récupérer l’information de temps en fonction de la position de la fenêtre sur le signal comme pour une Transformée de Fourier Fenêtrée
Quelques détails sur les ondelettes Les fonctions Y doivent satisfaire certaines conditions pour être des ondelettes, comme être de moyenne nulle, à support temporel et fréquentiels bornés, elle doivent changer de signe au moins 1 fois, etc… L’ondelette la plus simple est la fonction proposée par Haar en 1909 : la différence entre 2 échelons. On peut citer l’ondelette « chapeau mexicain », dérivée seconde d’une gaussienne (voir dans la figure ci-dessous) La transformée en ondelettes consiste à faire le produit scalaire entre l’ondelette analysante et le signal. La transformée en ondelettes a une résolution temps-fréquence qui dépend de l'échelle s.
L’ondelette mère et son échelle Grâce au coefficient d’échelle on obtient des versions différentes (dilatées ou compressées) de fenêtre à partir d’une même ondelette mère Ondelette (mère) de Haar Autres versions de l’ondelette mère après compression ou dilatation (à partir de l’ondelette de Morlet) Ondelette (mère) de Morlet
La transformée en ondelettes discrète Principe > séparer le signal en deux composantes représentant : l'allure générale du signal (basses fréquences) les détails du signal (hautes fréquences)
La transformée en ondelettes discrète Pour séparer le signal, on utilise deux filtres complémentaires : un filtre passe-bas (allure générale = approximation) un filtre passe-haut (détails) * Filtres complémentaires = paire de filtres miroirs en quadrature
La transformée en ondelettes discrète
La transformée en ondelettes discrète filtre = ondelette avec une échelle adaptée aux fréquences à récupérer Un filtre agit comme l’ondelette mère sur le signal Bien choisir l ’échelle
La transformée en ondelettes discrète Une fois filtré (on obtient 2 signaux de taille N), le signal est échantillonné sous-échantillonnage Filtrage > permet de transformer un signal de longueur N (détails + approximation) en deux signaux de longueur N/2
La transformée en ondelettes discrète Grâce à la multirésolution (changement d’échelle) et aux capacités des deux filtres, on peut recommencer à filtrer et échantillonner l’approximation On peut donc identifier les différentes résolutions A chaque itération, on divise la résolution par 2
La transformée en ondelettes discrète
La transformée inverse = reconstruction (ou synthèse) du signal à partir des coefficients d’ondelettes Coefficients d’ondelettes = approximation + détails Inutile de conserver tous les signaux d’approximation car : « A(n) = A(n+1)+D(n+1) » On peut conserver seulement la dernière approximation pour faire une bonne reconstruction
La transformée inverse On sur-échantillonne les coefficients d'un facteur 2 à chaque itération Les coefficients n’ont pas la même taille (N/2, N/4, N/8, N/16, etc.) que le signal de base (N) doubler à chaque pas la longueur de l'approximation et du détail en introduisant un zéro entre chaque échantillon On recombine l’approximation et les détails