La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Animation et Compression des Images

Présentations similaires


Présentation au sujet: "Animation et Compression des Images"— Transcription de la présentation:

1 Animation et Compression des Images
Site Web :

2 I.1. Animation d’ Images Plusieurs techniques sont utilisées :
Animations par affichages successifs : Elle consiste à afficher successivement plusieurs images présentant les différentes phases d’un mouvement. Le nombre d’images qu’il faut afficher en une seconde pour obtenir une animation fluide dépend de la vitesse et du type de mouvement. Si le mouvement est lent, on peut se contenter d’un nombre d’images faible. Si le mouvement est rapide, il ne faudra pas descendre en dessous de 16 images seconde. Il n’est pas envisageable d’afficher de longues séquences animées composées d’images de la taille de l’écran en 16 millions de couleurs à moins de disposer d’un équipement professionnel. Afin d'optimiser une animation, trois options sont possibles : - Réduire la taille des images - Réduire le nombre d’images par seconde - Réduire le nombre de couleurs

3 I.1. Animation d’ Images

4 I.1. Animation d’ Images Animations par déplacement d’image :
Elle consiste à afficher une image fixe appelée sprite à différentes positions successives de l’écran. Ces positions sont calculées en fonction d’une trajectoire définie préalablement. La vitesse de déplacement peut être fixe ou variable. Chaque fois que le programme déplace une image, il doit d’abord l’effacer avec le fond avant de l’afficher à sa nouvelle position. Tout déplacement d’image consiste en fait à déplacer trois images : une image du fond, un masque de la taille de l’image sur lequel s’ajoute l’image. Les images déplacées sont toujours de forme rectangulaire, ce qui peut poser un problème. En effet, il est rare que les objets représentés soient rectangulaires. Si l’image déplacée a un fond identique à celui du décor (une couleur unie) alors la solution consiste à déplacer un morceau de fond en même temps. Si le fond n’est pas uni alors l’image déplacée doit avoir un fond transparent, et donc posséder une couleur déclarée comme transparente.

5 I.1. Animation d’ Images Nous avons une image à l'écran (le fond) sur laquelle nous voulons voir se déplacer un chien (le sprite) : Spirite Masque

6 I.1. Animation d’ Images Animations par déplacement d’images animées :
Il est tout à fait possible d’afficher de la même façon une image animée. Il suffit pour cela de créer les différentes images correspondant aux phases de l’animation. Pour chaque image, on crée également un masque qui permette de voir le fond sur lequel se déplace l’animation. On affiche alors successivement les images selon la trajectoire du mouvement choisi. Remarque : Lorsque l’affichage est effectué en couleurs indexées, c’est à dire à l’aide d’une palette de 256 couleurs, il est impératif que tous les éléments utilisent la même palette.

7 I.2. Compression des Images
La compression d'image est une application de la compression de données sur des images numériques. Cette compression a pour utilité de réduire la redondance des données d'une image Bitmap afin de pouvoir l'emmagasiner sans occuper beaucoup d'espace ou la transmettre rapidement. La compression d'image peut être effectuée avec perte de données ou sans perte. La compression sans perte est parfois préférée pour des images artificielles telles que les schémas, les dessins techniques, les icônes ou les bandes dessinées. C'est à cause du fait que les méthodes de compression avec perte, lorsqu'en particulier elles sont utilisées à des bas débits binaires, présentent des défauts de compression. Des méthodes de compression sans perte peuvent également être préférées pour garder une grande précision, tel que pour des balayages médicaux, ou des numérisations d'images destinées à l'archivage. Les méthodes avec perte sont particulièrement appropriées aux images normales telles que des photos dans les applications où une perte mineure de fidélité (parfois imperceptible) est acceptable pour réaliser une réduction substantielle du débit binaire.

8 I.2. Compression des Images
Les méthodes les plus importantes de compression d'image sans perte sont : la méthode du codage des répétitions ; le codage entropique ; tel que le codage de Huffman. les algorithmes à dictionnaire adaptable tels que LZW. Les méthodes les plus importantes de compression avec perte sont : la réduction de l'espace des couleurs aux couleurs les plus fréquentes dans une image. Les couleurs choisies sont indiquées dans la palette de couleur dans l'en-tête de l'image compressée. le sous-échantillonnage de la chrominance utilisé dans NTSC. le codage par transformation. C'est généralement la méthode la plus utilisée. La transformée en cosinus discrète et la transformation par ondelettes sont les transformations les plus populaires (JPEG). la compression fractale.

9 I.2.1. Algorithmes de compression sans pertes
Algorithme RLE '' Run Length Encoding ' Cette technique est utilisée par de nombreux formats d'images (BMP, PCX, TIFF), et consiste à repérer et à éliminer la redondance des données. Une image contient souvent des surfaces de couleurs identiques, il est donc plus efficace de coder cette couleur et sa répétition que de coder unitairement chaque point. Par exemple la séquence "AAAAAHHHHHHHHHHHHHH" est remplacée par le nombre de répétitions suivi de l'élément répété "5A14H". Ce codage est intéressant pour des données comportant peu de valeurs différentes et de longues séquences. Par contre il est moins intéressant pour des images photographiques avec une profondeur supérieure à 256 couleurs.

10 I.2.1. Algorithmes de compression sans pertes
Algorithme de Huffman Le codage Huffman (Huffman 1952) est élaboré par David Albert Huffman, lors de sa thèse de doctorat au MIT publiée en Un code binaire dont la longueur est variable est assigné à chaque valeur selon le schéma suivant : « à une valeur fréquemment rencontrée on affecte un code de longueur courte » . Une table de conversion recueille les valeurs et le code qui leur est ainsi affecté. Cette table sera passée comme paramètre à tout programme de décodage avant l’envoi des données elles-mêmes. Par cette méthode, le ratio de compression peut atteindre jusqu’à 8:1. La qualité de la compression dépendra de l’algorithme statistique qui établira la conversion. Dans la pratique, ce type de compression est peu efficace pour les fichiers où l’on rencontre de longues chaînes de valeurs différentes et uniques ; car ce genre de fichiers, une fois codés avec cette méthode, deviennent plus longs que les originaux ! Pour cette raison, le codage Huffman est réalisé par deux passages.

11 I.2.1. Algorithmes de compression sans pertes
Algorithme de Huffman Le premier passage crée l’algorithme statistique, le second code les données. Un dernier point à relever est la lenteur de cette méthode due au travail intense que le décodage impose au processeur. Ce type de compression donne notamment de bons résultats pour les images monochromes. Le principe du codage de Huffman repose sur la création d'un arbre binaire. Chaque caractère (valeur) constitue une des feuilles de l'arbre à laquelle on associe un poids valant son nombre d'occurrences. Puis l'arbre est créé suivant un principe simple : on associe à chaque fois les deux nœuds de plus faibles poids pour donner un nœud dont le poids équivaut à la somme des poids de ses fils jusqu'à n'en avoir plus qu'un, la racine. On associe ensuite par exemple le code 0 à la branche de gauche et le code 1 à la branche de droite.

12 I.2.1. Algorithmes de compression sans pertes
Algorithme de Huffman Un arbre binaire construit sur la phrase "this is an example of a huffman tree" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

13 I.2.1. Algorithmes de compression sans pertes
Algorithme de Huffman Pour obtenir le code binaire de chaque caractère, on remonte l'arbre à partir de la racine jusqu'aux feuilles en rajoutant à chaque fois au code un 0 ou un 1 selon la branche suivie. Pour coder ‘this', nous obtenons donc en binaire : , 1011 soit 16 bits au lieu de 32 (4 caractères x 8 bits par caractère).

14 I.2.1. Algorithmes de compression sans pertes
Utilisation de Algorithme de Huffman Le codage de Huffman ne se base que sur la fréquence relative des symboles d'entrée (suites de bits) sans distinction pour leur provenance (images, vidéos, sons, etc.). C'est pourquoi, il est utilisé en général à un second niveau de compression, i.e, une fois la redondance propre au média mise en évidence par d'autres algorithmes. On pense en particulier à la compression JPEG pour les images, MPEG pour les vidéos et MP3 pour le son, qui peuvent retirer les éléments superflus imperceptibles pour les humains. On parle alors de compression avec perte. D'autres algorithmes de compression, dits sans perte, tels que ceux utilisés pour la compression de fichiers, utilisent également Huffman pour comprimer le dictionnaire résultant. Par exemple, LZH (Lha) et deflate (ZIP, gzip) combinent un algorithme de compression par dictionnaire (dit de Lempel-Ziv) et un codage de Huffman.

15 I.2.1. Algorithmes de compression sans pertes
Algorithme LZW pour Lempel-Ziv-Welch) C’est un algorithme de compression de données sans perte. Il s'agit d'une amélioration de l'algorithme LZ78 inventé par Abraham Lempel et Jacob Ziv en LZW fut créé en par Terry Welch, d'où son nom. LZW avait été breveté par la société Unisys. Il a été utilisé dans les modems (norme V42 bis) et est encore utilisé dans les formats d'image numérique GIF ou TIFF et les fichiers audio MOD. Les ratios de compression obtenus avec cette méthode varient entre 1:1 et 3:1, bien que certaines images fortement sous- séquencées puissent atteindre jusqu’à 10:1.

16 I.2.1. Algorithmes de compression sans pertes
Algorithme LZW pour Lempel-Ziv-Welch) Elle construit dynamiquement un dictionnaire, initialisé avec les 256 valeurs de la table ASCII, en examinant les données : les chaînes de caractères rencontrées sont placées une par une dans le dictionnaire. Lorsqu’une chaîne est déjà présente dans le dictionnaire, son code de fréquence d’utilisation est incrémenté. Les chaînes de caractères ayant des codes de fréquence élevés sont remplacées par un "mot" ayant un nombre de caractères le plus petit possible et le code de correspondance est inscrit dans le dictionnaire. On obtient ainsi une information encodée et son dictionnaire. La compression sera d'autant plus efficace que le nombre de répétitions sera élevé.

17 I.2.2. Algorithmes de compression avec pertes
Elle ne s'applique qu'aux données « perceptuelles », en général sonores ou visuelles, qui peuvent subir une modification, parfois importante, sans que cela ne soit perceptible par un humain. La perte d'information est irréversible (non conservative) : il est impossible de retrouver les données d'origine après une telle compression. Les compressions d'image s'appuient ainsi sur certaines caractéristiques de la vision humaine : notre oeil perçoit en effet plus facilement les grandes masses que les détails et notre rétine est davantage sensible aux variations de lumière que de couleur. Ces compressions, en vue du gain de place, vont donc éliminer des données qui altèrent davantage les teintes que la luminosité. On distingue plusieurs types de compressions d'image :

18 I.2.2. Algorithmes de compression avec pertes
  La compression de type JPEG (JFIF, TIF-JPEG) : pour images en 24 bits, excellente compression mais effet de mosaïque pouvant être visible, taux contrôlable par facteur de qualité, relativement rapide. La compression fractale (FIF : Fractal Image Format) : pour images de 8 à 24 bits, taille ajustable sans effet de pixellisation, mais présentant un effet de flou aux plus forts taux de compression, très lent en compression, décompression rapide et progressive. La compression par ondelettes (WI : Wavelet Image, JPEG2000) : excellente qualité, réglable, flou à fort taux de compression, pour images de 8 à 24 bits, rapide, taux contrôlable par facteur de qualité. Technique en progression.

19 I.3. JPEG ( Joint Photographic Experts Group)
Sous cette appellation se cachent plusieurs techniques de compression dont le principe est le suivant : peu importent les données originales, on ne garde que celles dont on ne peut se passer, les autres sont perdues. Ce principe est applicable pour l’imagerie commerciale (dont la télévision et les applications multimédia). Basée sur la compression par transformations fréquentielles. Le taux de compression d'une image JPEG est réglable. Plus ce taux est élevé, plus le fichier résultant est léger, et plus l'image est dégradée. La compression Jpeg. Cette méthode de compression est beaucoup plus efficace sur les images photographiques (comportant de nombreux pixels de couleurs différentes) et non sur des images géométriques (à la différence de la compression LZW) car sur ces dernières, les différences de nuances dues à la compression sont très visibles.

20 I.3. JPEG ( Joint Photographic Experts Group)
Cette méthode de compression est beaucoup plus efficace sur les images photographiques (comportant de nombreux pixels de couleurs différentes) et non sur des images géométriques (à la différence de la compression LZW) car sur ces dernières, les différences de nuances dues à la compression sont très visibles.

21 I.3. JPEG ( Joint Photographic Experts Group)
 Principe de Compression : Cet algorithme est de type “Lossy” car il y a perte d’information : en effet, cette technique profite des imperfections de la perception de l'oeil humain. L'oeil perçoit mieux les contrastes sur les faibles que sur les fortes intensités; cette propriété a des conséquences sur le nombre de niveaux qui servent à coder l'image; celui-ci pourra être plus faible pour les faibles intensités. Ex : Sur une zone de l'image fortement éclaircie, les valeurs du signal vidéo pourront être codées sur 5 bits (32 niveaux) au lieu de 8 bits (256 niveaux).

22 I.3. JPEG ( Joint Photographic Experts Group)
 Principe de Compression : L'oeil est plus sensible à l'intensité lumineuse qu'à la couleur. Ce qui va permettre de numériser la composante couleur de l'image (chrominance), avec moins d'échantillons sans dégradation apparente. Rapport de 1 à 2 par rapport à la luminance. L'oeil enfin, agit comme un intégrateur sur les hautes fréquences spatiales des images. Ainsi, on peut directement éliminer certaines informations correspondant aux hautes fréquences de l'image, ce qui a pour effet de créer des portions d'images plus uniformes, et donc favoriser les opérations d'élimination de redondance. Par exemple, une zone comportant une alternance très serrée de raies noires et blanches peut être représentée par un nombre unique correspondant au gris.

23 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG L’image est décomposée en blocs de 8x8 pixels codés en Chrominance-luminance auxquels on applique une transformation en cosinus discret (DCT) qui permet de repérer le niveau des détails. Un processus de quantification permet ensuite de supprimer les détails non significatifs. Un codage RLE réduit les zéros consécutifs puis un codage de Huffman assure une compression de l’ensemble. Le taux de compression pourra être choisi selon la définition désirée, il est élevé car il s’agit d’une compression avec pertes.

24 I.3. JPEG ( Joint Photographic Experts Group)
Attention, quand on suit l'algorithme du bas, on n'aboutit pas à l'image brute, mais à une image restituée, qui n'est en aucun cas l'image brute. Entre l'image brute et l'image restituée, il y a des écarts, qui seront d'autant plus importants que l'opération de quantification a été forte.

25 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 1 : Segmentation Découpage en blocs : Le format JPEG, comme le font généralement les algorithmes de compression à perte, commence par découper l’image en blocs carrés de 64 (8 × 8). .

26 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 2 : 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 tels que YUV, YCbCr car l’œil est assez sensible à la luminance mais peu à la chrominance. Globalement, la luminance est définie sur chaque pixel tandis que la chrominance est la valeur moyenne d’un bloc de 2 x 2 pixels.

27 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 3 : Sous-échantillonnage

28 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 3 : Sous-échantillonnage La façon la plus simple d’exploiter la faible sensibilité de l'œil à la chrominance est simplement de sous-échantillonner les signaux de chrominance. Généralement, on utilise un sous-échantillonnage de type 2h1v ou 2h2v. Dans le premier cas (le plus utilisé), on a un sous-échantillonnage 2:1 horizontalement et 1:1 verticalement ; dans le deuxième cas, on a un sous-échantillonnage 2:1 horizontalement et verticalement. Ces sous-échantillonnages sont utilisés pour les chrominances, pour la luminance on n’utilise jamais de sous-échantillonnage.

29 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : 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. Cette méthode permet de décrire chaque bloc en une carte de fréquences et en amplitudes plutôt qu'en pixels et couleurs. La valeur d’une fréquence reflète l’importance et la rapidité d’un changement. 3. À chaque bloc de pixels NN sont ainsi associées NN fréquences. 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 nous a permis de séparer les basses fréquences et les hautes fréquences présentes dans l’image.

30 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : La transformée DCT En particulier, le coefficient d’ordre (0,0), appelé aussi coefficient DC, représente la composante continue, c’est-à-dire la luminance moyenne du bloc. Plus l’ordre du coefficient augmente, plus il exprime une variation spatiale de haute fréquence, dans le sens horizontal ou vertical de l’image. Il est évident que, pour la plupart des blocs, tant la luminance que la chrominance seront plus ou moins constantes, ce qui se traduira par : - des coefficients de la DCT de valeur importante, pour les ordres faibles (basses fréquences), - des coefficients peu significatifs pour les ordres élevés. En sorte, On traduit le bloc de pixels en 64 coefficients d’éloignement par rapport à la moyenne Note : la DCT est une opération réversible, si tous les coefficients sont conservés

31 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : La transformée DCT La transformée DCT s’exprime mathématiquement par : Et la transformée DCT inverse s’exprime par : Dans les deux cas, la constante C vaut :

32 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : La transformée DCT

33 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : La transformée DCT Matrice (bloc de pixels) de base : Équation 4 : Matrice d’origine.

34 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : La transformée DCT En effectuant la transformée DCT on obtient la matrice des fréquences suivante : Équation 5 : Matrice transformée DCT.

35 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : La transformée DCT

36 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 4 : La transformée DCT En effectuant la transformée DCT on obtient la matrice des fréquences suivante : Équation 5 : Matrice transformée DCT.

37 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 5 : La quantification La quantification est l’étape dans laquelle on perd réellement des informations (et donc de la qualité visuelle), mais c'est celle qui fait gagner beaucoup de place (contrairement à la DCT, qui ne compresse pas). La DCT a retourné, pour chaque bloc, une matrice de 8×8 nombres. La quantification consiste à diviser cette matrice par une autre, appelée matrice de quantification, et qui contient 8×8 coefficients savamment choisis par le codeur. Le but est ici d’atténuer les hautes fréquences (les valeurs de coefficients faibles), 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 (les coefficients sont même ramenés à 0).

38 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 5 : La quantification

39 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 5 : La quantification La quantification ramène beaucoup de coefficients à 0 (surtout en bas à droite dans la matrice, là où sont les hautes fréquences). Seules quelques informations essentielles (coin en haut à gauche) sont gardées pour représenter le bloc. L'intérêt est qu'au moment de coder le résultat dans le fichier, la longue suite de zéros nécessitera très peu de place. Mais 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 ; dès lors, à l’écran la division en blocs devient visible, et l'image apparaît « pixellisée ».

40 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 5 : La quantification Une photo de fleur compressée en JPEG, avec des compressions de plus en plus fortes, de gauche à droite.

41 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 5 : La quantification Matrice quantifiée : F*(i,j)= F(i,j) / Q(i,j)  Considérons la matrice de quantification suivante :

42 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 5 : La quantification Ce qui donne comme matrice des fréquences quantifiée : Matrice quantifiée.

43 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 5 : La quantification La matrice de quantification peut être donnée différemment

44 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 6 : Codage, compression RLE et Huffman Viennent enfin deux encodages sans perte, qui réduisent encore le bitrate : Un codage RLE qui code plutôt les séquences de zéros; Un codage de type Huffman, qui accorde aux symboles les plus fréquents les codes les plus courts.

45 Ordre de codage défini par la norme JPEG.
I.3. JPEG ( Joint Photographic Experts Group) Algorithme JPEG : ETAPE 6 : 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 : Ordre de codage défini par la norme JPEG.

46 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 6 : Codage, compression RLE et Huffman Codage de notre exemple : Ce résultat est ensuite compressé selon un algorithme RLE basé généralement sur la valeur 0, puis un codage entropique de type Huffman. 79, 1 (0), -2, -1, 2 (0), -1, EOB

47 I.3. JPEG ( Joint Photographic Experts Group)
Algorithme JPEG : ETAPE 6 : Codage, compression RLE et Huffman Lorsqu’on regarde l’exemple présenté à la section précédente, la matrice quantifiée possède des 0 et -1 non en séquence. Le codage de Huffman a pour but d’attribuer un code de petite taille à une valeur fréquente dans la matrice. Il permet une compression statistique des données. Ce codage nous délivre deux tables (quantification et huffman) qui sont enregistrées dans le fichier final.

48 Schéma de codage simplifié.
I.3. JPEG ( Joint Photographic Experts Group) Algorithme JPEG : ETAPE 6 : Codage, compression RLE et Huffman Schéma de codage simplifié.

49 Résultat de la décompression.
I.3. JPEG ( Joint Photographic Experts Group) Décompression JPEG Les étapes de la décompression s’effectuent dans l’ordre inverse de la compression suivant les méthodes définies précédemment. Résultat de la décompression.

50 Résultat de la décompression.
I.3. JPEG ( Joint Photographic Experts Group) Décompression JPEG Ainsi que la matrice d’erreur : L’erreur est majorée par 5 et a une moyenne de 1,6 pour un coefficient de 150 ; ce qui nous donne un pourcentage d’erreur d’environ 1 %, sur 64 valeurs. Résultat de la décompression.

51 I.3. JPEG ( Joint Photographic Experts Group)


Télécharger ppt "Animation et Compression des Images"

Présentations similaires


Annonces Google