Cours 4 : algorithmes de codage de source adaptatifs

Documents pareils
Compression Compression par dictionnaires

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Continuité et dérivabilité d une fonction

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Comparaison de fonctions Développements limités. Chapitre 10

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Formats d images. 1 Introduction

CCP PSI Mathématiques 1 : un corrigé

TD : Codage des images

Limites finies en un point

Calculabilité Cours 3 : Problèmes non-calculables.

Loi binomiale Lois normales

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Représentation des Nombres

Transmission d informations sur le réseau électrique

1.1 Codage de source et test d hypothèse

Compression et Transmission des Signaux. Samson LASAULCE Laboratoire des Signaux et Systèmes, Gif/Yvette

Théorie et codage de l information

IV- Comment fonctionne un ordinateur?

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Introduction à la théorie des graphes. Solutions des exercices

Chapitre 7. Récurrences

chapitre 4 Nombres de Catalan

V- Manipulations de nombres en binaire

Quelques Algorithmes simples

Informatique Générale

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Conversion d un entier. Méthode par soustraction

ASR1 TD7 : Un microprocesseur RISC 16 bits

ISO/CEI NORME INTERNATIONALE

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

ARBRES BINAIRES DE RECHERCHE

ÉPREUVE COMMUNE DE TIPE Partie D

Objets Combinatoires élementaires

Leçon 01 Exercices d'entraînement

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Statistique : Résumé de cours et méthodes

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Définitions. Numéro à préciser. (Durée : )

Équations non linéaires

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

C f tracée ci- contre est la représentation graphique d une

Algorithmes d'apprentissage

Initiation à LabView : Les exemples d applications :

Chapitre 2 Le problème de l unicité des solutions

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que


Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Licence Sciences et Technologies Examen janvier 2010

I- Définitions des signaux.

données en connaissance et en actions?

Suites numériques 3. 1 Convergence et limite d une suite

Cryptographie Quantique

INF601 : Algorithme et Structure de données

COMPTABILITE SAGE LIGNE 30

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Bases de programmation. Cours 5. Structurer les données

Commun à tous les candidats

Les structures de données. Rajae El Ouazzani

Programmation linéaire

Intégration et probabilités TD1 Espaces mesurés Corrigé

PROFIS Installation. Module 4: Module 3D Design

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

1 Introduction au codage

DOCM Solutions officielles = n 2 10.

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Organigramme / Algorigramme Dossier élève 1 SI

Fibonacci et les paquerettes

Une étude de différentes analyses réalisées par le BIT

UE Programmation Impérative Licence 2ème Année

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Compter à Babylone. L écriture des nombres

La mémoire. Un ordinateur. L'octet. Le bit

Glossaire des nombres

Vers l'ordinateur quantique

Développements limités. Notion de développement limité

Résolution d équations non linéaires

Rappels sur les suites - Algorithme

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Cours de Master Recherche

I. Polynômes de Tchebychev

EVALUATION Nombres CM1

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Les arbres binaires de recherche

TSTI 2D CH X : Exemples de lois à densité 1

Cours d Informatique

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Compression de Données - Algorithme de Huffman Document de Conception

Initiation à l algorithmique

Transcription:

Cours 4 : algorithmes de codage de source adaptatifs 7 octobre 26 Théorie de l information

Plan du cours 1. Motivation ; 2. Huffman adaptatif ; 3. Méthode de Gallager et Knuth ; 4. Méthode par dictionnaire : Lempel-Ziv 78, Lempel-Ziv-Welsh, Lempel- Ziv 77. Théorie de l information 1/36

1. Motivation Une application naïve nécessite deux passes sur le fichier : 1. une passe pour déterminer les probabilités ; 2. une passe pour le codage proprement dit. De plus, il faut transmettre une information auxiliaire, à savoir soit les probabilités ;à soit le dictionnaire. que ce soit pour le code de Huffman ou pour le codage arithmétique. Théorie de l information 2/36

Codage de source universel algorithme de codage de source universel : ne suppose rien sur la source à compresser. Idée : Construire à chaque instant un modèle dynamique de la source ayant pu produire le texte jusqu à ce point et coder la lettre suivante dans ce modèle. Illustration : l algorithme de Huffman adaptatif (modèle sans mémoire), l algorithme de codage arithmétique adaptatif, l algorithme de Lempel-Ziv, et ses variantes (utilisation des dépendances entre les lettres). Théorie de l information 3/36

2. Huffman adaptatif Principe Supposons que nous ayons déja lu n caractères dans le texte, correspondant à K lettres distinctes. nous fabriquons X n une source de K + 1 lettres formée de K lettres déjà apparues auxquelles on attribue une probabilité proportionnelle au nombre d occurrences, et d une (K +1)-ème lettre fourre-tout (vide) à laquelle on attribue la probabilité 0, on construit un code de Huffman T n de cette source, la n + 1-ème lettre est lue et est codée par son mot de code s il existe, par le K + 1-ème mot de code suivi du code ascii sinon. Théorie de l information 4/36

Huffman adaptatif Codage L arbre initial est constitué d une unique feuille, celle de la lettre vide. À chaque fois qu une lettre x est lue dans le texte source si elle est déjà apparue on imprime son mot de code, on met à jour l arbre, sinon on imprime le mot de code de la lettre vide suivi de x non codé (son code ascii en base 2 par exemple), on ajoute une feuille dans l arbre, on met à jour l arbre. Théorie de l information 5/36

Huffman adaptatif Décodage L arbre initial est constitué d une unique feuille, celle de la lettre vide. Jusqu à épuisement, on parcourt l arbre en lisant les bits du texte codé ( 0 à gauche, 1 à droite) jusqu à arriver à une feuille s il s agit d une lettre non vide on imprime la lettre, on met à jour l arbre, sinon, il s agit de la lettre vide on lit les 8 bits suivants pour obtenir le code ascii d une lettre que l on imprime, on ajoute une feuille dans l arbre, on met à jour l arbre. Théorie de l information 6/36

Huffman adaptatif Définitions préliminaires Nous identifions un code préfixe d une source discrète X à binaire à X feuilles étiquetées par les lettres de X. un arbre Rappel : Le code est dit irréductible, si chaque nœud possède 0 ou 2 fils. Définition Soit un code prefixe d une source discrète le poids d une feuille est la probabilité de sa lettre le poids d un nœud est la somme du poids de ses fils Définition Un ordre de Gallager u 1,..., u 2K 1 sur les nœuds d un code préfixe irréductible (d une source de cardinal K) vérifie 1. les poids des u i sont décroissants, 2. u 2i et u 2i+1 sont frères pour tout i, 1 i < K. Théorie de l information 7/36

Exemple 32 1 11 4 21 2 11 a 10 3 5 6 6 5 7 e f 3 b 5 8 5 c 10 2 11 d 9 Théorie de l information 8/36

Exemple 32 1 3 11 a 21 2 5 10 11 4 3 b 8 5 9 5 6 6 5 c e f 10 2 11 d 7 Théorie de l information 9/36

Huffman adaptatif Propriétés Théorème 1. [Gallager] Soit T un code préfixe d une source X. T est un arbre de Huffman de X si et seulement si il existe un ordre de Gallager sur les sommets de T. Théorie de l information 10/36

Preuve T Huffman = T admet un ordre de Gallager. Les deux mots de poids le plus faible sont frères fusionne pour obtenir un arbre avec une feuille de moins, soit 2(K 1) 1 = 2K 3 nœuds. L arbre obtenu est un arbre de Huffmann, qui admet un ordre de Gallager (récurrence) u 1 u 2K 3. Et le nœud fusionné est quelque part dans la liste. On prend ses deux fils, et on les met à la fin, ce qui donne un ordre de Gallager u 1 u 2K 3 u 2K 2 u 2K 1 Théorie de l information 11/36

Preuve T admet un ordre de Gallager = T Huffman. T a un ordre de Gallager = nœuds ordonnés comme u 1 u 2K 3 u 2K 2 u 2K 1 où u 2K 2 et u 2K 1 = feuilles frères de poids minimal. Soit T l arbre u 1,..., u 2K 3 il admet l ordre u 1 u 2K 3. C est donc un arbre de Huffman (récurrence). Par l algorithme de Huffman, l arbre u 1,..., u 2K 1 est de Huffman (car l un des nœuds est la fusion de u 2K 2 et de u 2K 1 ). Théorie de l information 12/36

Principe de la mise à jour Proposition 1. Soient X n la source au rang n et T n un arbre de Huffman de cette source. Soit x la n + 1-ème lettre du texte et soit u 1,..., u 2K 1 un ordre de Gallager sur les nœuds de T n. Si x X n et si tous les nœuds u i1, u i2,..., u il du chemin entre la racine et x sont les premiers de leur poids dans l ordre de Gallager, alors T n est un arbre de Huffman de X n+1. Preuve Il suffit de conserver le même ordre de Gallager. Théorie de l information 13/36

Huffman adaptatif Mettre à jour l arbre Soit T n un arbre de Huffman au rang n et u 1,..., u 2K 1 un ordre de Gallager sur ses nœuds. Hypothèse : x T n (au noeud u). Répéter tant que u n est pas la racine soit ũ le premier nœud classé avec le poids de u, échanger les noeuds u et ũ, échanger u et ũ dans l ordre de Gallager, incrémenter le poids de u (poids = nb occurrences) u devient le père de u On est donc ramené au cas précédent. Cet algorithme est du à D. Knuth. Théorie de l information 14/36

32 Exemple 1 3 11 a 21 2 5 10 11 4 3 b 8 5 9 5 6 6 5 c e f 10 2 11 d 7 Théorie de l information 15/36

32 Exemple 1 3 11 a 21 2 5 10 11 4 3 b 8 5 9 5 6 6 5 c e f 10 3 11 d 7 Théorie de l information 16/36

Exemple 32 1 32 1 3 11 a 21 2 5 10 11 4 3 11 a 21 2 5 10 11 4 8 5 9 5 6 6 5 c e f 3 10 3 11 b d 7 8 5 9 5 6 6 6 7 f c e 3 b 10 3 d 11 Théorie de l information 17/36

Exemple 32 1 3 11 a 21 5 10 11 4 8 5 9 5 6 6 6 7 f c e 2 3 b 10 3 d 11 12 3 6 6 6 7 10 3 11 3 1 33 5 212 10 4 8 5 5 9 8 Théorie de l information 18/36

Huffman adaptatif Ajouter une feuille Lorsque la lettre courante x n est pas présente dans l arbre, on effectue la mise à jour à partir de la feuille vide. On remplace ensuite celle-ci par un arbre à deux feuilles : l une pour x, l autre pour.... u 2K 1 0 0... u 2K 1 1 0 1 00 000 11 1 11 0 0 1 1 u u 2K 1 2K+1 0 x 0 Les deux nouveaux nœuds sont ajoutés à la fin de la liste (u i ). Théorie de l information 19/36

Méthodes à base de dictionnaire Principe : on maintient un dictionnaire (clé,chaîne de caractères). On écrit les clés (indices) plutôt que les chaînes dans la sortie. On espère que les clés (indices) seront plus courtes à chaînes. coder que les Théorie de l information 20/36

Lempel-Ziv 78 Principe L algorithme de Lempel-Ziv (1978) lit un texte constitué de symboles d un alphabet A. Supposons que nous ayons déja lu N symboles et que nous ayons formé un dictionnaire de mots déjà lus. à partir du (N + 1)-ème symbole on lit les symboles un par un jusqu à obtenir un mot (de longueur n) absent du dictionnaire, on imprime l indice du dernier mot reconnu dans le dictionnaire (de longueur n 1) ainsi que le dernier symbole lu. On ajoute ce nouveau mot (de longueur n) au dictionnaire et on recommence à partir du (N + n + 1)-ème symbole. Théorie de l information 21/36

Lempel-Ziv 78 Structure de données Il nous faut une façon de représenter efficacement le dictionnaire. Celui-ci possède une propriété intéressante : si un mot est dans le dictionnaire, c est aussi le cas de tous ses préfixes. On en déduit que les dictionnaires que nous voulons représenter sont exactement les arbres q-aires. Une telle représentation nous donne une implémentation simple et efficace des fonctionnalités nécessaires, à savoir : tester la présence d un mot, ajouter un mot Théorie de l information 22/36

Lempel-Ziv 78 Codage Le dictionnaire (i.e. l arbre) contient initialement le seul mot vide et sa taille est K = 1. On répète à partir de la racine jusqu à épuisement : on parcourt l arbre en lisant les lettres du texte (la i-ème lettre de A correspondant à la i-ème branche) tant que c est possible. Soient b 1,..., b n, b n+1 les symboles lus, et soit i, 0 i < K (K la taille du dictionnaire), l indice du mot (b 1,..., b n ) dans le dictionnaire, (b 1,..., b n, b n+1 ) est ajouté au dictionnaire avec l indice K, on imprime i en base 2 sur log 2 K bits suivi du symbole b n+1. Théorie de l information 23/36

Lempel-Ziv 78 Exemple 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 Dictionnaire paire indices mots lu (indice,symbole) mot de code 0 1 1 (0,1) 1 2 0 (0,0) 0 0 3 (2,1) 10 1 4 1 (3,1) 11 1 5 10 (1,0) 0 0 6 00 (2,0) 0 0 7 11 (1,1) 0 1 8 100 (5,0) 1 0 Théorie de l information 24/36

Lempel-Ziv 78 Décodage Le dictionnaire est cette fois un tableau initialement de taille K = 1, sa seule entrée M 0 est le mot vide. On répète jusqu à épuisement : on lit les log 2 K premiers bits du texte codé pour obtenir l indice i. Soit M i le mot d indice i dans le dictionnaire, on lit le symbole suivant b, on ajoute une K-ème entrée au tableau/dictionnaire M K M i b, on imprime M K. Théorie de l information 25/36

Variante de Welsh Au démarrage tous les mots de une lettre sont dans le dictionnaire. Au lieu d afficher la paire (i, b) on n affiche que i. On ajoute le mot (i, b) dans le dictionnaire. On reprend la lecture à partir de b inclus. variante légèrement plus efficace. Elle est utilisée dans la commande unix compress, dans le format GIF87. En pratique, elle compresse d un facteur deux les textes en anglais de taille usuelle. Théorie de l information 26/36

Lempel-Ziv-Welsh Exemple 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1... Dictionnaire Mot reconnu indices mots mot indice mot de code 0 1 0 1 2 10 1 1 1 3 00 0 0 00 4 0 0 00 5 1 10 2 0 6 11 1 1 0 7 110 11 6 110 8 000 00 3 1 9 1 4 00 10 110 7 11 11 0 5 Théorie de l information 27/36

Lempel-Ziv-Welsh, décodage Algorithme de codage : 1. on lit le texte jusqu à trouver un mot m suivi d une lettre a tels que m soit dans le dictionnaire, mais pas m a, 2. on imprime l indice de m dans le dictionnaire, 3. on ajoute m a dans le dictionnaire, 4. on continue à partir de la lettre a incluse. Algorithme de décodage : 1. on lit un indice i, 2. on imprime le mot m d indice i 3. on ajoute à la fin du dictionnaire le mot m a où a est la première lettre du mot suivant (on ne connaîtra a que lorsqu on aura lu un indice de plus). Théorie de l information 28/36

Lempel-Ziv 77 Cette variante est apparue avant celle présentée précédemment (qui date de 78). Elle est plus difficile à mettre en œuvre. On suppose que N bits ont été lus. On lit à partir du N + 1-ème bit le plus long mot (de longueur n) qui soit un sous-mot commenã ant à un certain i-ème bit avec i N. Ce mot est codé par le triplet (i, n, b), où b est le bit suivant le mot. En pratique, on l implémente à l aide d une fenêtre glissante de taille fixe : le dictionnaire est l ensemble des sous-mots de cette fenêtre. Elle est utilisée dans gzip, zip. Théorie de l information 29/36

Exemple 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 (0,0,0) Théorie de l information 30/36

Exemple 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 (0,0,0) (1,1,1) Théorie de l information 31/36

Exemple 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 (0,0,0) (1,1,1) (2,2,1) Théorie de l information 32/36

Exemple 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 (0,0,0) (1,1,1) (2,2,1) (3,2,0) Théorie de l information 33/36

Exemple 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 1 (0,0,0) (1,1,1) (2,2,1) (3,2,0) (4,6,1) Théorie de l information 34/36

Source stationnaire Définition Une source est dite stationnaire si son comportement ne varie pas lorsque l on décale l observation dans le temps. Pour tous entiers positifs n et j, et tout (x 1,..., x n ) X n p X1...X n (x 1,..., x n ) = p X1+j...X n+j (x 1,..., x n ) Théorème 2. Pour toute source stationnaire, les limites ci-dessous existent et sont égales H(X ) = lim n 1 n H(X 1,..., X n ) = lim n H(X n X 1,..., X n 1 ). La quantité H(X ) est appelée entropie par lettre. Théorie de l information 35/36

La propriété fondamentale des algorithmes de Lempel-Ziv Théorème 3. Pour toute source X stationnaire et ergodique le taux de compression tend vers H(X ) avec probabilité 1 quand la taille de la séquence à compresser tend vers l infini. Théorie de l information 36/36