3 - Compression des images. Plan Codage Luminance-Chrominance Compression non destructrice –Par entropie –Huffman –RLE Compression avec perte –DCT –Norme.

Post on 04-Apr-2015

140 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

Transcript

3 - Compressiondes images

Plan

• Codage Luminance-Chrominance• Compression non destructrice

– Par entropie– Huffman – RLE

• Compression avec perte– DCT– Norme JPEG

• Compression de séquences d’images– Compression temporelle– MPEG 1, 2 et 4

Compression :Codage luminance-chrominance

Luminance-chrominance

L’œil est plus sensible à la lumière qu’à la couleur, donc on conserve plus d’informations de luminance que de chrominance :On passe de R V B -> Y Cr Cb par des formules simplesY = 0,299 * Rouge + 0,587 * Vert + 0,114 * BleuCr = Rouge - Y

Cb = Bleu - Y

Puis on agrège les composantes couleurs Cr Cb

voisinesSouvent Y Cr Cb est codé en 4:2:2 (on ne garde la

couleur que des lignes paires)

Luminance-chrominance (2)

Exemple ici codage en 4:1:1

On prend la moyenne de 4 valeurs Cr et Cb

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

Compression non destructrice(sans perte)

Compression par entropieTechnique issue de la théorie de l’information

développée dans les années 50 par Shannon, Fano puis plus tard Huffman et d’autres (Lempel-Ziv-Welsh..)

L'entropie indique le nombre de bits minimum qu'il faut par pixel pour coder une image donnée (longueur moyenne minimale en bits d'un pixel)

Si N est le nombre valeurs possibles des pixels et pi la probabilité de chacune, l’entropie se calcule ainsi

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

Exemple si {A, B, C, D, E, F, G} sont les valeurs possiblesavec les probabilités {0,4 0,2 0,15 0,1 0,05 0,05 0,05}l'entropie est : H = -0,4 log(0,4)-0,2*log(0,2)-….soit 2,3842 bits au lieu de log(7) = 2,81 bits arrondi à 3 (code de longueur fixe)

Compression par entropie (2)Algorithme de codage de Shannon-Fano1. On classe les symboles par ordre de probabilité décroissante2. On divise l'ensemble des symboles en deux sous-ensembles de

telle sorte que les probabilités cumulées des éléments constituant chacun des deux sous-ensembles soient les plus proches. On attribue l'élément binaire "1" et "0" à chaque sous-ensemble

3. On procède comme à la première étape sur tous les sous-ensembles comportant au moins deux éléments. On s'arrête lorsque tous les sous-ensembles ne comportent plus qu'un élément

Remarque : On notera qu'à une étape donnée, il peut exister deux choix possibles de regroupement d'éléments en cas d’égalité des probabilités cumulées de deux regroupements possibles.

Algorithme de Shannon-Fano (suite)Sur l’exemple précédent : l’algorithme donne ceci

• En vert la longueur moyenne d'un mot code est

• En rouge la longueur moyenne d'un mot code est

Compression par entropie (3)Algorithme de codage de HuffmanContrairement au code de Shannon-Fano, la construction d'un code de

Huffman s'effectue de façon ascendante (des feuilles vers la racine de l'arbre des codes) 

1. On classe (par exemple sur une ligne) les symboles source par ordre de probabilité croissante (par exemple de la gauche vers la droite).

2. On relie les deux symboles de probabilités les plus faibles à l'aide de deux arêtes. On obtient alors un nœud que l'on appelle "super-symbole" et dont le "poids" est obtenu en effectuant la somme des deux probabilités des deux symboles. Le super-symbole remplace les deux symboles qui sont maintenant éliminés de la liste.

3. On procède comme à l'étape précédente en considérant les super-symboles comme des symboles. On s'arrête lorsqu'on est arrivé à la racine de l'arbre.

Algorithme de Huffman (suite)Application de l’algorithme sur l’exemple précédentLongueur moyenne d'un code

Compression RLE(Run Length Encoding)

Cette méthode très simple consiste à remplacer une répétition de pixels voisins par un facteur de répétition et une valeur à répéter. Le taux de compression est moyen dépendant beaucoup des images à compresser.

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

Exemple de forte compression :Image compressée sur 684 octets en GIF

Compression destructrice(avec perte)

Codage DCT(Discrete Cosinus Transform)

L’image est découpée en blocs fixes, par exemple 8x8

Chaque bloc est codé par les coefficients de sa décomposition à partir de toutes les valeurs possibles (blocs à gauche)

D’où une combinaison linéaire avec un coeff de poids fort DC et d’autres notés AC

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

Codage DCT (2)

À gauche : image avec coeff DC seuls (blocs de niveaux de gris)

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.

QuickTime™ et undécompresseur TIFF (non compressé)

sont requis pour visionner cette image.À droite : image avec DC et 9 AC

Codage DCT (3)

• Quantification : beaucoup de coefficients presque nuls assimilés à 0; les autres sont « arrondis »

• D’où compression par entropie efficace : beaucoup de valeurs répétées

• Méthode de compression donne des ratios de 10 ou 20 avec des pertes acceptables

Codage DCT (4)

Formules de conversion en DCTF étant la matrice des coeff DC,AC….Img celle bu bloc de NxN– Directe

– Inverse

Noter la symétrie des formules : temps de compression/décompression comparables

Des algorithmes simplifient les calculs qui sont souvent directement exécutés par des instructions dites multimédia des processeurs

Compression JPEG

• Norme ISO définie par un groupe d’experts : « Joint Photographic Experts Group »

• Image découpée en blocs souvent 8x8 codés séparément

• Norme complexe avec beaucoup de variantes prévues ( y compris une compression sans perte)

Compression JPEG (2)

• Les coefficients DC, AC calculés sont ordonnés dans une table dite Zigzag

• Les coefficients DC, AC sont arrondis suivant une table dite de quantification précisée dans la norme

Compression JPEG (3)

• Les coefficients DC et AC sont codés séparément

• Les DC voisins étant souvent de niveaux comparables sont codés en différence avec le précédent

• Beaucoup de 0 se répétant dans les AC, ceux-ci sont codés en RLE

• Les valeurs finales sont codées par entropie et un algorithme de Huffman

Compression JPEG (4)• Résultats : des compressions pouvant aller jusqu’à des

ratios de 10 ou 20 suivant l’image• La compression (et donc la perte) est réglable suivant la

quantification choisie, les coefficients AC gardés…• Défauts visibles : blocs 8x8, lignes doublées, artefacts

Compression par 9 Compression par 15

Compression de séquencesd’images

Image de « différences »• Beaucoup de valeurs inchangées entre deux

images successives (valeurs grisées ici)

Estimation du mouvement

• Recherche dans les images successives de zones qui sont déformées géométriquement : translation, homothétie

• Codage très compact des seuls vecteurs de déformation

Estimation du mouvement (2)

Champs de vecteurs de mouvement

Compensation du mouvement• Estimation du mouvement entraine des erreurs : les

différences entre les valeurs réelles et l’estimation sont codées en DPCM

• Schéma d’un codeur vidéo (le « frame store » conserve l’image reconstituée précédente pour compenser exactement les différences)

Codeur proche du H.261 utilisé en vidéo-conférence

Norme MPEG-1• Norme ISO définie par le « Motion Pictures

Experts Group »• Estimation et compensation de

mouvements bidirectionnels (vers l’avenir et aussi le passé)

• Trois type d’images codées– I pour « Intra-pictures » : images complètes

codage DCT voisin du JPEG– P pour « forward Predicted pictures » : images

prédites à partir de la dernière image I ou P– B pour « Bidirectionnally predicted pictures »

Norme MPEG-1 (2)• Schéma de compression d’images successives

appelés « GOP » (Group Of Pictures) comme IBPBPBI…..

• Le GOP doit s’adapter aux séquences à coder

Norme MPEG-2

• Norme de codage de flux télévision (broadcast)• Compression/décompression hardware dans les

« décodeurs »• Codage vidéo et audio (comme MPEG-1)• Nombreux paramètres permettant d’adapter le

flux aux besoins (échelle, définition jusque HDTV, codage couleur 4:2:2 ou autres….)

Nouvelles normes

• MPEG-4 de l’ISO : intégration de contenus, réseaux interactifs…

• H 26X de l’ITU norme de vidéoconférence très bonne en compression

Démonstrations

Essais Vidéos MPEGEssais Vidéoconférence

top related