Codage Source 1

Embed Size (px)

Citation preview

  • 8/2/2019 Codage Source 1

    1/14

    Principes gnraux

    de codageentropique d'une

    source

    Cours : Compression d'images

    Master II: IASIG

    Dr. Mvogo Ngono Joseph

  • 8/2/2019 Codage Source 1

    2/14

    Table des matires

    Objectifs 5

    Introduction 7

    I - Entropie d'une source9

    II - Dfinitions et rsultats fondamentaux lis au codage desource 11

    III - Les algorithmes de codage statistiques 13

    IV - Algorithme de codage arithmtique 17

    Conclusion 21

    3

  • 8/2/2019 Codage Source 1

    3/14

    Objectifs

    L'objectif de ce module est de rappeler les rsultats fondamentaux du codage entropiqueou compression reversible d'une source de donnes ( texte, image, ...).Ces rsultats prliminaires seront utiliss dans notre mthodologie de compression desimages de tldtection. Plusieurs types de mthodes de codage entropique serontabordes notamment les mthodes d'ordre zro, non-adaptatives savoir :l'algorithme de codage de Shannon-Fanol'algorithme de codage de Huffmanl'algorithme de codage arithmtique

    5

  • 8/2/2019 Codage Source 1

    4/14

    Introduction

    La notion de codage entropique ou compression rversible d'une source correspond uncodage sans perte des symboles de la source avec pour objectif d'atteindre une limitethorique du gain de compression de Shannon caractrise par l'entropie de la source. Lebut du codage entropique est de remplacer les messages mis par une source S utilisant unalphabet N-aire {s1, s2, . . . . . . . ., sN} par des messages crits dans l'alphabet binaire utilispar les systmes de stockage d'information sur ordinateur. Les codes tudis ici sont des

    codes de longueur variable, on suppose qu'un code associe chaque symbolesi i=1,.....N de la source un mot de code binaire mi , squence de l i bits. Un tel code

    doit avoir des proprits permettant de reconstruire sans ambigut les messages mis parla source, nous passerons en revue dans la section suivante quelques dfinitions et rsultatsfondamentaux de la thorie des codes.

    7

  • 8/2/2019 Codage Source 1

    5/14

    I -Entropie d'une

    sourceI

    Dfinition : Notion d'entropie d'une source simple ou sans mmoireSoit une source S dfinie par son alphabet {s1, s2, . . . . . . . ., sN} de symboles et sescaractristiques d'mission rgies par une loi de probabilit P :{P s1, P s2, . . . . . . P sN} .Une source sera dite simple ( ou sans mmoire) si lessymboles mis par la source S sont indpendants et de mme loi. Une suite de Nsymboles mis aux instants 1, 2, . . . . . .n par S suit donc une loi de probabilit :P s1 , s2 ,. . . . . . sn=p s1 p s2. . . . . p sn .

    L'entropie d'ordre zro H(S) d'une source simple S, de loi de probabilit P, est

    dfinie par l'expression : HS =i=1

    N

    p s i log2 p s i .

    L'entropie dans ce cas a la proprit suivante:

    H(S) est maximale si tous les symboles {s1, s2, . . . . . . . ., sN} de la source Ssont quiprobables. Dans ce cas , l'entropie est gale l'informationassocie chaque message pris individuellement.

    i{1,2,............N}, p s i=1

    N

    H S =log2N.

    Exemple : Calcul de l'entropie d'une source binaireConsidrons le cas d'une source binaire S dont l'alphabet est {0,1} tel que P(1) = pet donc P(0)=1-p

    0p1

    HS =plog 2 p 1p log21p= f p

    la fonction f(p) est symtrique par rapport p=0.5 et est maximale pour p=0.5

    Dfinition : Entropie d'ordre K

    On suppose une source amplitude discrte avec mmoire, Il existe alors desdpendances statistiques entre les chantillons successifs de la source.

    Soit s=s n=sn, sn1,...., snK1T un vecteur constitu de K chantillons

    successifs de la source. Ce vecteur est caractris par sa probabilit conjointeP s

    qui est indpendante du temps si on considre une source stationnaire, s est uneralisation du vecteur alatoire S=Sn, S n1, .....S nK1

    T .On dsigne par entropied'ordre k ou entropie conjointe des vecteurs alatoires l'expression :

    HK S =1

    KElog2 PS S =

    1K

    s

    .... pS s log2 pS s

    9

  • 8/2/2019 Codage Source 1

    6/14

    II -Dfinitions et

    rsultatsfondamentaux lisau codage desource

    II

    Dfinition : RgularitUn code est dit rgulier si tous les mots de code mi sont distincts. Tous les codesdoivent au moins tre rguliers pour permettre un dcodage univoque.

    Dfinition : DchiffrabilitUn code rgulier est dchiffrable si pour toute suite m1, m2, .....mn de mots de code

    il est possible de distinguer les mi sans ambigut et reconstruire ainsi les symbolessi correspondants.

    Pour les codes de longueur variable, cette proprit est satisfaite pour les codesdits sans prfixes, obtenus en vitant qu'un mot du code ne soit identique au dbut

    d'un autre.

    Dfinition : Codes instantansOn dit d'un code qu'il est dcodage instantan s'il est possible de dcoder lesmots de code ds lors que tous les symboles qui en font partie ont t reus.

    Dfinition : Extension d'un codeL'extension d'ordre n d'un code est le code form par les squences de n mots ducode initial.

    Fondamental : Condition ncessaire et suffisante de dchiffrabilit

    Pour qu'un code soit dchiffrable il faut et il suffit que toutes ses extensions soientrgulires.

    Attention

    L'ingalit de Kraft constitue un rsultat fondamental en thorie des codes. Ellefournit une condition ncessaire et suffisante d'existence de codes dchiffrables etinstantans, exprime en fonction de la longueur des mots de code.

    Fondamental : Ingalit de KraftSoient l 1, l 2, ....., l N des longueurs de mots candidates pour coder une source N-aire dans un alphabet binaire. Alors l'ingalit de Kraft :

    11

  • 8/2/2019 Codage Source 1

    7/14

    i=1

    N 1

    2l i1

    est une condition ncessaire et suffisante d'existence de codes dchiffrables etinstantans respectant ces longueurs de mots.

    Fondamental : THORME DE SHANNON Limite infrieure de la longueur moyenne d'un code.

    Soit une source stationnaire sans mmoire, la longueur moyenne n des motscods mi est limite par la valeur de l'entropie de la source S.

    n = i=1

    N

    li p si i=1

    N

    p s i log2 p si .

    Borne suprieure de la limite suprieure ( code de Shannon)Il est galement possible de trouver un code dchiffrable tel que :

    HS nHS 1 .

    12

    Dfinitions et rsultats fondamentaux lis au codage de source

  • 8/2/2019 Codage Source 1

    8/14

    III -Les algorithmes de

    codage statistiquesIII

    Le principe des algorithmes de codage statistique est d'utiliser les probabilitsd'occurence de chaque symbole dans une squence de symboles manant de lasource. Dans le cadre de ce cours nous examinerons dans cette catgorie deuxalgorithmes.

    Mthode : Algorithme de Shannon-Fano

    L'algorithme comporte les tapes suivantes :1) Les probabilits d'apparition de chaque symbole sont places dans un tableautri par ordre dcroissant de probabilits .2) Le tableau est coup en deux groupes de symboles S0 et S1 dont la somme desprobabilits de chaque groupe avoisine 0.5.3) Le groupe S0 est cod par un "0" et S1 par un "1".4) Si un groupe Si n'a qu'un seul lement, c'est une feuille terminale, sinon laprocdure reprend rcursivement l'tape 2 sur le groupe Si.

    Exemple : Application de l'algorithme de Shannon-Fano1. Pour illustrer cet algorithme, nous allons coder la phase suivante :

    "Le codage est indispensable"Pour simplifier nous n'allons pas prendre en compte le symbole espace (blanc).cette phase est une source de 24 symbolesTous ces symboles manent de l'alphabet.

    A={E , S , A , D , I , N , L , B ,G , P , T ,O , C}

    Cet Alphabet a N=13 symboles

    ETAPE 1

    Application successive des tapes 2,3 et 4

    13

  • 8/2/2019 Codage Source 1

    9/14

    Exemple : Algorithme de Shannon-Fano

    Mthode : Algorithme de HuffmanComme pour le codage de shannon-Fano, les probabilits d'apparition des symbolessont places dans un tableau tri par ordre dcroissant de probabilits. L'algorithmede Huffman est implment suivant une structure d'arbre.Le principe de cet algorithme consiste regrouper les deux symboles deprobabilits la plus faible pour en faire un nouveau symbole dont la probabilit estla somme des probabilits de ces deux symboles. On itre cette opration et chaque tape le nombre de symboles diminue. On construit de cette manire unarbre dont les feuilles sont les symboles coder et les embranchements lescodages intermdiaires.

    Exemple : Algorithme de HuffmanConsidrons nouveau l'exemple prcdent :Il s'agit de coder la phrase : "Le codage est indispensable".Le tableau des probabilits d'occurrence est le suivant :

    On applique successivement les tapes de l'algorithme selon le principe del'algorithme prcdemment indiqu.

    14

    Les algorithmes de codage statistiques

  • 8/2/2019 Codage Source 1

    10/14

    L'arbre de Huffman associ est prsent ci-aprs :

    Les algorithmes de codage statistiques

    15

  • 8/2/2019 Codage Source 1

    11/14

    IV -Algorithme de

    codagearithmtique

    IV

    Principes de baseContrairement aux deux algorithmes prcdents, le code est associ la squenceet non chaque symbole pris individuellement.

    On associe chaque symbole coder un intervalle [ ak , bk [ de [0,1[

    On itre ce processus jusqu' ce que toute la squence soit traite

    La squence est alors code par un rel de l'intervalle [0,1[

    Mthode : Algorithme de codageCet algorithme comporte 5 tapes successives :1) On initialise l'intervalle de codage [ac,bc[ avec les valeurs ac=0 et bc=1, cetintervalle a une largeur L=bc-ac=12) cet intervalle est partitionn en N sous-intervalles ( N nombre de symboles del'alphabet de la source) proportionnellement aux probabilits p(sk) de chaquesymbole sk. cette partition est constitue de sous-intervalles [ak,bk[ tels que :

    bk-ak=p(sk) avec ak=ac+largeur x i=1

    k1

    p si et bk=ac+largeur x i=1

    k

    p si

    3) On choisit le sous-intervalle correspondant au prochain sk coder dans lasquence et on met jour les valeurs ac et bc de la manire suivante :ac=ac+largeur x ak et bc=ac+largeur x bk4) Avec le nouvel intervalle [ac,bc[ on recommence le processus de l'tape 2.5) Les tapes 2,3 et 4 sont rpts jusqu' puisement des symboles de lasquence et obtention du dernier intervalle [ac,bc[La reprsentation binaire de tout rel xc de l'intervalle [ac,bc[ est un code de lasquence.

    Exemple : Codage arithmtique d'une sourceOn considre la source S={a,b,c,d,e} avec les probabilits respectives d'occurrencedes symboles suivantes :P(a)=0.3, P(b)=0.25,P(c)=0.20, P(d)=0.15, P(e)=0.1On souhaite coder la squence bdceaPour coder cette squence on divise l'intervalle [0,1[ en 5 sous-intervalles, puis onse place sur le sous-intervalle correspondant au premier symbole de la squence coder, il s'agit du symbole "b". Pour le symbole suivant de la squence "d" onsubdivise le sous intervalle de b, [0.3,0.55[ en 5 sous-intervalles correspondant aunombre de symboles de l'alphabet de la source S.On procde ainsi rcursivement pour toute la squence ( voir figure ci-dessous).(Cliquez pour afficher)

    17

  • 8/2/2019 Codage Source 1

    12/14

    Mthode : Algorithme de dcodageCet algorithme comporte six tapes successives :1) On initialise ac=0 et bc=12) On calcule la largeur du sous-intervalle du code : largeur = bc-ac

    3) On trouve le sous-intervalle [ ak , bk [ du symbole sk avec 1kN tel que :

    akx

    ca

    c

    largeurbk

    On rappelle que xc est le rel codant la squence.4) On obtient le symbole sk5) On met jour le sous-intervalle de codage : ac=ac+largeur x ak et bc=ac+largeurx bk6) On rpte les 2,3,4 et 5 jusqu' obtenir le dcodage de tous les symboles de lasquence.

    Exemple : Dcodage de l'exemple prcdentOn applique l'algorithme de dcodage l'exemple prcdent :On considre la valeur xc=0.51508125 codant la squence

    Etape 1 :On initialise ac=0 et bc=1Etape 2 :On calcule la largeur du sous-intervalle du code : largeur = bc-ac =1Etape 3 :

    On calcule le nombrexcac

    largeurdont la valeur est 0.51508125 et on cherche k tel

    que ce nombre soit compris dans la partition initiale.Etape 4 :k=2, Il s'agit du sous-intervalle [0.3,0.55[ qui correspond au symbole b.

    Etape 5 :

    18

    Algorithme de codage arithmtique

  • 8/2/2019 Codage Source 1

    13/14

    On met jour le sous-intervalle de codage ac=ac+largeur x ak et bc=ac+largeur x bkac=0 + 1x0.3=0.3bc=0+1 x 0.55=0.55On rpte l'tape 2 : largeur = 0.55-0.3=0.25Etape 3 : (0.51508125-0.3)/0.25 = 0,860325

    Etape 4 : k=4, il s'agit du sous-intervalle [0.75,0.90[ qui correspond au symbole d.On revient l'tape 5 et ainsi de suite ...

    Algorithme de codage arithmtique

    19

  • 8/2/2019 Codage Source 1

    14/14

    Conclusion

    Dans le cadre de ce module, nous avons rappel quelques rsultats lis au codage desource et avons prsent quelques algorithmes de codage entropique d'une sourcenotamment le codage de Shannon-Fano, le codage de Huffman et le codage arithmtique.Ces algorithmes ont la particularit d'avoir une longueur moyenne de code qui approche lalimite de Shannon qui est l'entropie de la source. Les algorithmes tudis dans ce moduleimplmentent les mthodes d'ordre zro, non adaptatives. Le lecteur intress par la

    thorie des codes pourrait avantageusement tudier les mthodes d'ordre suprieur, lesmthodes adaptatives et les algorithmes base de dictionnaire tel que l'algorithme deLempel,Ziv et Welsch.

    21