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

Codage et compression de données

Présentations similaires


Présentation au sujet: "Codage et compression de données"— Transcription de la présentation:

1 Codage et compression de données
Emmanuel SARI - LSI3

2 Codage et compression de données
Introduction Méthodes statistiques Shannon-Fano Huffman Méthodes dictionnaires LZ77 LZ78 LZW Utilisations Autre : méthode anti-dictionnaire 11/11/2008 Emmanuel SARI – LSI3

3 Introduction Besoin : réduire le volume des données Solution :
Gain en stockage Gain en temps de transmission Solution : Utiliser les capacités des processeurs plutôt qu’augmenter les espaces de stockage et bandes passantes Pouvoir compresser et décompresser les données 11/11/2008 Emmanuel SARI – LSI3

4 Introduction Deux approches : Compression sans perte
Texte Programmes Compression avec perte Images Son Vidéo 11/11/2008 Emmanuel SARI – LSI3

5 I. Méthodes statistiques
Principe Basé sur la fréquence d’apparition d’un symbole On attribue un code plus court à un symbole plus fréquent Exemple : le code Morse 11/11/2008 Emmanuel SARI – LSI3

6 I. Méthodes statistiques
Codages de différentes tailles Exemple : Alphabet = {A, B, C, D} Fréquence d’apparition : A=60%, B=30%, C=5% et D=5% Codage potentiel : A ⇒ 0, B⇒00, C⇒01, D⇒10 Message : ‘000010’. Interprétation : AAACA ? ABCA ? BACA ? AAAAD ? BBD ? Risque d’ambiguïté 11/11/2008 Emmanuel SARI – LSI3

7 I. Méthodes statistiques
Solution : utilisation de codages préfixes Aucun code n’est préfixe d’un autre. Pas d’ambiguïté possible Code préfixe sur l’exemple précédent : A⇒0, B⇒10, C⇒110, D⇒111. 11/11/2008 Emmanuel SARI – LSI3

8 I. Méthodes statistiques
Compression de Shannon-Fano : Classer les symboles par ordre croissant sur les fréquences. Partitionner la table en deux sous-tables de fréquences proches. Recommencer jusqu’à ce que toute fréquence soit isolée. À chaque niveau de subdivision, attribuer la valeur 0 à la première sous-table, 1 à la seconde. Associer à chaque symbole le code correspondant aux bits de description de l’arborescence. Décodage en parcourant l’arbre de codage avec les bits du message 11/11/2008 Emmanuel SARI – LSI3

9 I. Méthodes statistiques
Exemple : Alphabet = {A,B,C,D,E}. Fréquences : A=15, B=7, C=6, D=6, E=5 Résultat : A ⇒ 00, B ⇒ 01, C ⇒ 10, D ⇒ 110, E ⇒ 111. 11/11/2008 Emmanuel SARI – LSI3

10 I. Méthodes statistiques
Compression de Huffman Principe similaire à Shannon-Fano Construction depuis les feuilles vers la racine cette fois-ci 11/11/2008 Emmanuel SARI – LSI3

11 I. Méthodes statistiques
Reprise de l’exemple précédent : Alphabet = {A,B,C,D,E}. Fréquence : A=15, B=7, C=6, D=6, E=5 Résultat : A ⇒ 0, B ⇒ 100, C ⇒ 101, D ⇒ 110, E ⇒ 111. 11/11/2008 Emmanuel SARI – LSI3

12 I. Méthodes statistiques
Avantages : Arbre de codage toujours oprimal Meilleur que Shannon-Fano Inconvénients : Transmission de l’arbre Codage bit à bit 11/11/2008 Emmanuel SARI – LSI3

13 II. Méthodes dictionnaires
Principe : Ne plus faire du codage bit à bit Profiter du fait que certains motifs sont récurrents Les indexer Coder uniquement leur position Compression de Lempel-Ziv 11/11/2008 Emmanuel SARI – LSI3

14 II. Méthodes dictionnaires
LZ77 Parcours avec une fenêtre de codage Codage sous forme de triplets : (Distance, Longueur, Car) « Fausse méthode dictionnaire » 11/11/2008 Emmanuel SARI – LSI3

15 II. Méthodes dictionnaires
Exemple : Codage de la chaîne : abcdefgcdefgcdabcdgcgcgc Taille de la fenêtre : 24 caractères abcdefg(5,7)(14,4)gc(2,4) Résultat : (0,0,a)(0,0,b)(0,0,c)(0,0,d)(0,0,e)(0,0,f)(0,0,g)(5,7,a)(14,4,g)(0,0,c)(0,0,g)(2,4) 11/11/2008 Emmanuel SARI – LSI3

16 II. Méthodes dictionnaires
Peu efficace sur cet exemple car texte trop court Avantages : Plus efficace que les méthodes statistiques Codage/décodage symétriques Inconvénients : Coût en temps de calcul Gestion délicate de la fenêtre de codage Fenêtre trop petite ⇒ compression moins bonne Fenêtre trop grande ⇒ temps de calcul rallongé 11/11/2008 Emmanuel SARI – LSI3

17 II. Méthodes dictionnaires
LZ78 Palie au défaut du fenêtrage Utilisation d’un véritable dictionnaire Plus efficace que LZ77 Dictionnaire réduit : Plus de champ ‘Longueur’ Remplacement de ‘Distance’ par l’index 0 si nouvelle entrée Index ordonné de 1 à 255 sinon 11/11/2008 Emmanuel SARI – LSI3

18 II. Méthodes dictionnaires
Exemple : Codage de la chaîne : abcdefgcdefgcdabcdgcgcgc Taille de la fenêtre : 24 caractères. 11/11/2008 Emmanuel SARI – LSI3

19 II. Méthodes dictionnaires
LZW : Lempel-Ziv-Welch Codage sur 12 bits uniquement par des index De 1 à 255 : ASCII Après 256 : motifs rencontrés Plus efficace que LZ78 11/11/2008 Emmanuel SARI – LSI3

20 II. Méthodes dictionnaires
Exemple : Codage de la chaîne : abcdefgcdefgcdabcdgcgcgc Taille de la fenêtre : 24 caractères. Résultat : abcdefg[258][260][262]d[256][258][262][269]c 11/11/2008 Emmanuel SARI – LSI3

21 III. Utilisations LZ78 et LZW anciennement brevetés
Gif Tiff(optionnel) LZ77 + Huffman ⇒DEFLATE Zip Gzip Png HTTP SSH 11/11/2008 Emmanuel SARI – LSI3

22 III. Utilisations Nombreuses variantes : Nombreux formats :
LZSS, LZWL, LZO, LZMA, LZX, LZJB, LZT… Nombreux formats : Bzip2, 7z, Rzip, Lzop… 11/11/2008 Emmanuel SARI – LSI3

23 IV. Autre : méthode anti-dictionnaire
Idée :  Si on sait que le facteur 1011 n’apparaît pas dans le texte, cela veut dire qu’à chaque fois que le facteur 101 est présent, il sera suivi par 0 Définition : On se place dans un alphabet binaire. ω : un mot fini. F(ω) : l’ensemble des facteurs de ω. Anti-dictionnaire de ω : AD(ω)= ensemble de facteurs n’appartenant pas à ω Exemple : ω = 1010. AD(ω) = {00,11} 11/11/2008 Emmanuel SARI – LSI3

24 IV. Autre : méthode anti-dictionnaire
Exemple (compression) : ω = AD(ω) = {00, 111, 1011} 11/11/2008 Emmanuel SARI – LSI3

25 IV. Autre : méthode anti-dictionnaire
Exemple (décompression) : γ(ω) = AD(ω) = {00, 111, 1011} 11/11/2008 Emmanuel SARI – LSI3

26 IV. Autre : méthode anti-dictionnaire
Construction de l’anti-dictionnaire : Recherche des facteurs de la phrase de longueur donné k. Recherche des facteurs interdits minimaux de taille ≤ k. Exemple: ω = K = 5 11/11/2008 Emmanuel SARI – LSI3

27 Codage et compression de données
Des questions ? Sources : Codage et compression de données - Erwan le Scanff Codage et compression de données - Jérôme Dumas, Fabien Harrang Wikipedia.org Compression de données utilisant les anti-dictionnaires - Sarah Maarek 11/11/2008 Emmanuel SARI – LSI3


Télécharger ppt "Codage et compression de données"

Présentations similaires


Annonces Google