ANALYSIS Forum (IPACO) Forum Index

ANALYSIS Forum (IPACO)
Dedicated to the analysis of alleged UFO photos and videos

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Compression JPEG

 
Post new topic   Reply to topic    ANALYSIS Forum (IPACO) Forum Index -> Optics in photography -> Overview
Previous topic :: Next topic  
Author Message
elevenaugust
Administrator
Administrator

Offline

Joined: 20 Jun 2012
Posts: 67

PostPosted: 06/28/2012, 04:41 pm    Post subject: Compression JPEG Reply with quote

{translation in progress}


Définition:


Le processus de compression et de décompression JPEG irréversibles comporte six étapes principales représentées ci-dessous :


   

Découpage en blocs


Le format JPEG, comme le font généralement les algorithmes de  compression avec perte, commence par découper l’image en blocs ou  carreaux généralement carrés de 64 (8 × 8) ou 256 (16 × 16) pixels.
  Transformation des couleurs
JPEG est capable de coder les couleurs sous n’importe quel format,  toutefois les meilleurs taux de compression sont obtenus avec des  codages de couleur de type luminance/chrominance  car l’œil humain est assez sensible à la luminance (la luminosité) mais  peu à la chrominance (la teinte) d'une image. Afin de pouvoir exploiter  cette propriété, l'algorithme convertit l'image d'origine depuis son modèle colorimétrique initial (en général RVB) vers le modèle de type chrominance/luminance YCbCr.  Dans ce modèle, Y est l'information de luminance, et Cb et Cr sont deux  informations de chrominance, respectivement le bleu moins Y et le rouge  moins Y.
    


  Sous-échantillonnage de la chrominance

Article détaillé : Sous-échantillonnage de la chrominance.
  

    
  
Illustration des différents types de sous-échantillonnage
    

 
 

 Pour exploiter cette faible sensibilité de l’œil humain à la  chrominance, on peut procéder à un sous-échantillonnage de ses signaux.  Le principe de l'opération est de réduire de la taille de plusieurs  blocs de chrominance en un seul bloc. Un traitement identique est  appliqué aux blocs Cb et aux blocs Cr, tandis que les blocs de luminance  (blocs Y) ne sont pas modifiés. Le sous-échantillonnage peut être  réalisé selon plusieurs modes différents. Le type de mode utilisé dans  une opération de compression est spécifié par la notation « J:a:b ».
 L’interprétation de la notation est la suivante :
 J : représente la largeur de la plus petite matrice de pixels considérée (généralement 4)
 a : le nombre de composantes de chrominance dans la première ligne
 b : le nombre de composantes de chrominance supplémentaires dans la deuxième ligne

Cas 4:4:4  Ce cas correspond à l'absence d'application du sous-échantillonnage.

Cas 4:2:2  Ce cas correspond à un sous-échantillonnage qui conduit à une  réduction d'un facteur 1/2 de la taille des blocs Cb/Cr. Pour cela, on  calcule la valeur moyenne de chrominance de deux pixels voisins  horizontalement.

Cas 4:2:0  La moyenne de la chrominance de quatre pixels voisins est calculée et  stockée dans le bloc produit par le sous-échantillonnage. Les pixels  voisins forment des blocs carrés de dimension 2 × 2 pixels. Le  sous-échantillonnage 4:2:0 ajoute donc une réduction verticale à la  réduction horizontale du mode 4:2:2. Il conduit à une division par 4 de  la taille des blocs Cb/Cr.
 
Cas 4:1:1  Ce dernier cas est rare en compression JPEG, et est plutôt appliqué  dans des applications vidéo tel que les formats NTSC DV, DVCAM, DVCPRO.

 Ce type de sous-échantillonnage permet de réduire de manière  importante la taille des images. Cependant, il conduit à une perte  d'information qui ne peut être récupérée dans la phase de décodage de  l'image ; il s'agit donc d'une opération de compression irréversible. À  l'issue de cette phase, les données se présentent sous la forme de blocs  de coefficients Y, Cb et Cr, le nombre de blocs Cb et Cr étant égal au  quart, à la moitié ou à 100% du nombre de blocs Y selon le mode  sous-échantillonage appliqué.


Transformée DCT

La transformée DCT (Discrete Cosine Transform, en français transformée en cosinus discrète), est une transformation numérique qui est appliquée à chaque bloc. Cette transformée est une variante de la transformée de Fourier.  Elle décompose un bloc, considéré comme une fonction numérique à deux  variables, en une somme de fonctions cosinus oscillant à des fréquences  différentes. Chaque bloc est ainsi décrit en une carte de fréquences et  en amplitudes plutôt qu'en pixels et coefficients de couleur. La valeur  d’une fréquence reflète l’importance et la rapidité d’un changement,  tandis que la valeur d’une amplitude correspond à l’écart associé à  chaque changement de couleur.
    
       
 À chaque bloc de
pixels sont ainsi associées
fréquences

 La transformée DCT s’exprime mathématiquement par :


   

Et la transformée DCT inverse s’exprime par :


   

Dans les deux cas, la constante
vaut :


   

Pour illustrer la compression, a été repris un exemple complet provenant de Digital Image Compression Techniques de Majid Rabbani et Paul W. Jones3.

Matrice (bloc de pixels) de base :


   
En effectuant la transformée DCT, on obtient la matrice des fréquences suivante :


   

L'application de la DCT est une opération théoriquement sans perte  d'informations ; les coefficients initiaux peuvent être retrouvés en  appliquant la « DCT inverse » au résultat de la DCT. Dans la pratique,  une certaine perte d'informations reste cependant possible en raison des  erreurs d'arrondis introduites en cours de calcul.

Remarques

Le calcul d’une DCT est complexe. C’est l’étape qui coûte le plus de  temps et de ressources dans la compression et la décompression JPEG,  mais c’est peut-être la plus importante car elle permet de séparer les  basses fréquences et les hautes fréquences présentes dans l’image.
 La puissance de calcul disponible aujourd’hui, alliée à des algorithmes  de type FFT très efficaces, permet de rendre le temps de calcul tout à  fait acceptable pour l’utilisateur courant, voire imperceptible avec les  machines les plus puissantes.
 Suite à cette étape, les basses et hautes fréquences sont  distinguées. Les basses fréquences constituent les données majeures  présentes dans une image, les hautes fréquences, quant à elles,  caractérisent les zones à fort contraste, qui sont les changements  brusques de couleur. Ces données étant moins visibles, c'est donc sur  celles-ci que la compression s'effectuera.


  Quantification

La quantification  est l’étape de l'algorithme de compression JPEG au cours de laquelle se  produit la majeure partie de la perte d'information (et donc de la  qualité visuelle), mais c'est aussi celle qui permet de gagner le plus  de place (contrairement à la DCT, qui ne compresse pas).
 La DCT a retourné, pour chaque bloc, une matrice de 8×8 nombres (dans  l’hypothèse que les blocs de l’image font 8×8 pixels). La  quantification consiste à diviser cette matrice par une autre, appelée  matrice de quantification, et qui contient 8×8 coefficients  spécifiquement choisis par le codeur.
 Le but est ici d’atténuer les hautes fréquences, c’est-à-dire celles  auxquelles l’œil humain est très peu sensible. Ces fréquences ont des  amplitudes faibles, et elles sont encore plus atténuées par la  quantification ; certains coefficients sont même souvent ramenés à 0.
    


Le calcul permettant la quantification est le suivant :


   


Et pour la quantification inverse :


   


Comme le montre l'exemple ci-dessous, la quantification ramène  beaucoup de coefficients à 0 (surtout en bas à droite dans la matrice,  là où se trouvent les hautes fréquences). Seules quelques informations  essentielles (concentrées dans le coin en haut à gauche) sont gardées  pour représenter le bloc. La redondance des données contenues dans le  bloc augmente ainsi fortement, ce qui peut être exploité par un  algorithme de compression : au moment de coder le résultat dans le  fichier, la longue suite de zéros nécessitera très peu de place.  Cependant, si la quantification est trop forte (= taux de compression  trop élevé), il y aura trop peu de coefficients non nuls pour  représenter fidèlement le bloc. Le problème apparaîtra lors du décodage  nécessaire pour l'affichage de l'image : à l’écran la division en blocs  deviendra visible, et l'image aura un aspect « pixellisé ». Dans notre exemple, nous avons pris la matrice de quantification suivante :
   



   




   



Remarques 


Codage, compression RLE et Huffman

Le codage s’effectue en zigzag comme le montre la figure suivante et se termine par un caractère de fin :


   


Codage de notre exemple :
.

Ce résultat est ensuite compressé selon un algorithme RLE basé sur la valeur 0 (le codage RLE intervient uniquement sur cette dernière), puis un codage entropique de type Huffman ou arithmétique.
 Avec le schéma de codage très simplifié suivant, on remarque que le  codage nous délivre deux tables (quatre pour une image couleur). Ces  tables étant enregistrées dans le fichier final peuvent être choisies  par le compresseur.

   
   


Source 


Back to top
Publicité






PostPosted: 06/28/2012, 04:41 pm    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ANALYSIS Forum (IPACO) Forum Index -> Optics in photography -> Overview All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  

Index | Create free forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group