[PDF] Cours/TD 5 Codage Shannon Codage arithm etique : Elias



Previous PDF Next PDF







Cours/TD 5 Codage Shannon Codage arithm etique : Elias

Cours/TD 5 Codage Shannon Codage arithm etique : Elias 5 1 De l’algorithme de Fano et Shannon au codage arithm ethique Si NX 1 j=0 2 l j



Notes de cours Codage arithmétique

Dans le codage arithmétique un identificateur ou une étiquette unique est générée pour la séquence à encoder Cette étiquette correspond à une fraction binaire à partir de la quelle on obtient le code binaire de la séquence En pratique la génération de l’étiquette et du code



Principes du codage sans perte - Codage dHuffman, Lempel-Ziv

Codage arithmétique Codage adaptive et basé contexte Plan 1 Principes 2 Codage optimale Huffman Codage arithmétique Codage adaptive et basé contexte 3 Autres Techniques Lempel-Ziv Run Length JBIG 4 Quantification avec contrainte entropique M Cagnazzo Codage sans perte 24/55



Notes de cours Implémentation entière du codage arithmétique

codage arithmétique Édition Hiver 2012 IFT-4003/7023 Compression de données Mohamed Haj Taieb, Exemple m=6: Application de E 3 l(n)



Principes généraux de codage entropique dune source

Exemple : Codage arithmétique d'une source On considère la source S={a,b,c,d,e} avec les probabilités respectives d'occurrence des symboles suivantes : P(a)=0 3, P(b)=0 25,P(c)=0 20, P(d)=0 15, P(e)=0 1 On souhaite coder la séquence bdcea Pour coder cette séquence on divise l'intervalle [0,1[ en 5 sous-intervalles, puis on



Systèmes de numération, Codes et Arithmétique binaire

I 2 1 Codage d'un nombre: Le codage d'un nombre N est la conversion de celui-ci du système décimal vers un système non décimal de base B Il s'obtient en divisant successivement le nombre N par la base B jusqu'à ce que le quotient devienne nul Le nombre recherché sera obtenu en regroupant de droite à gauche les restes



Codage des nombres en mémoire

3 Codage des entiers relatifs (ou signés) Dans l’arithmétique classique, ces nombres sont précédés d’un signe moins, mais c’est ici impossible car on ne peut mettre que des bits dans une case mémoire Il faut donc trouver une écriture, une représentation des nombres négatifs, utilisant les bits disponibles



Représentation des nombres flottants

•Exemple: •+ 59,4151 * 10-5 => Normalisé: +0,594151 * 10-3 •Avec 2 digits réservés au codage de l’exposant avec un excentrement égal à 50 10



Exercicesbac--2011-2016--arithmétique

TS-spe Exercicesbac--2011-2016--arithmétique E2 correction Antilles2011 Candidatsayantchoisil'enseignementdespécialité 1 Onconsidèrel'équation(E):11x−7y =5,oùx ety sontdesentiersrelatifs

[PDF] codage de shannon-fano pdf

[PDF] codage de shannon fano exemple

[PDF] codage de huffman exercice corrigé

[PDF] codage arithmétique pdf

[PDF] codage arithmétique algorithme

[PDF] représentation des nombres signés exercices corrigés

[PDF] exercice de systeme de numeration

[PDF] système binaire informatique

[PDF] calcul nombre binaire

[PDF] cours sur le calcul binaire pdf

[PDF] codage et représentation de l'information exercices corrigés

[PDF] le codage informatique

[PDF] exercice corrigé codage source

[PDF] combien d'information sont représentées par 15 bits

[PDF] virgule fixe et virgule flottant pdf

Cours/TD 5 Codage Shannon.

Codage arithmetique : Elias

5.1 De l'algorithme de Fano et Shannon au codage

arithmethique Si N1X j=02 lj<1 l'inegalite de Kraft-McMillan est veriee, alors il existe un code uniquement decodable et m^eme prexe, qui admette l

1;l2;:::;lN1comme distribution de longueurs. Un algorithme simple qui donne un code

prexec1;:::;cN1a partir d'une distribution de longueursl1;l2;:::;lN1veriant l'inegalite de Kraft-McMillan est :a chaque mot de codeci(a trouver) on associe le nombre= 0;c i2 [0;1[dont les decimales de l'ecriture en base 2 est formee des bits deci. On noteIil'intervalle I i= [c i;c i+ 2li[.

Exemple.ci= 010donnec

i= 0;010 = 14 . etIi= [0;010;0;011[= [14 ;38 [est l'ensemble des nombres de[0;1[dont les decimales en base 2 commencent parci. Le mot codecidetermine uniquement l'intervalleIi: tronquer le developpement binaire de la limite gauche de l'intervalle (de longueurli) a log21l ibits pour retrouverci. La condition de code prexe deviennent : lesIisont des intervalles disjoints. Donc l'inegalite de Kraft- McMillan dit que la somme des longueurs desIiest strictement plus petite que 1. S'ils sont disjoints, on peut donc les mettre bout-a-bout en restant dans le segment [0;1[. Ainsi un algorithme de construction du code instantane sera : On met bout-a-bout les intervallesIi, classes par longueurs decroissantes (licroissantes) dans le segment [0;1[ en partant de la gauche.

I1 I2 I3 ....

||{I|||{I||{I||||{ 0.0 0.10 0.110 0.111

Au debutc

0= 0:0:::0. En general a chaque etape on rajoute aci1un 1 et on obtientc

il' extremite droite deIi. On peut completer avec des zeros si necessaire pour obtenir une longueurli+1> li. 1 Exemple.Soit une source discrete sans memoire codee avec des mots code avec de longueurs l il icode1 0 2 10 3 110

5 11100

5 11101

5 11110

6 111110

6 111111

Noter qu'avec cet algorithme on detecte automatiquement si si les li ne verient pas l'inegalite de Kraft-McMillan : on "depasse" alors l'extremite droite du segment[0;1[, et on ne peut plus continuer comme dans : l icode1 0 2 10 3 110

4 1110

5 11110

5 11111

6Erreur

1=2 + 1=4 + 1=8 + 1=16 + 1=32 + 1=32 + 1=64>1

Soit une source discrete et sans memoire produisant (independament) des symboles (lettres/mots) d'un alphabeta0;a1;;aN1selon la distribution de probabilitep= (p0;p1;:::;pN1) . Supposons que les symboles de l'alphabet sont deja ordonnes par probabilite decroissante. p

0p1 pN1.

Idee naturelle (Shannon et Fano) etait d'associer aux symboles de notre alpha- bet des mots code binaires dont la longueur est egale au contenu d'information des symboles a coder. Pour un symbolajavec une probabilites d'apparitionpjqui n'est pas une puissance binaire ce contenu d'information estI(aj) =log2pjet Shannon demande que la longueur de bits necessaires soitlj=dI(aj)e=dlog2pje. L'interpretation geometrique de l'algorithme de Fano : Par la suite d'une dichotomie binaire reitteree sur [0, 1 [l'algorithme de Fano trouvait une partition d'intervalles. La dichotomie d'un interval s'arr^etait quand l'intervalle [Aj;Aj+1[ avait la longueur egale a la probabilite 2 ljde ( la production de ) du symbolaj(i.e. un seul 2 2/8 [1/20 11 100
1

4/8 6/8

110
111

7/82/4 3/41/4

5/83/81/8)Figure5.1 { Arbre partiel de dichotomie binaire reitere de [0;1) pourp=12

;14 ;18 ;18 element par intervalle). Le mot code etait le developpement binaire ni de la borne inferieure A jde cet intervalle. La precision de ce mot etait exactementlj=log2pj{ voir gure 5.1. L'algorithme simplie de Fano peut ^etre lui aussi generalise mais le code produit n'est pas unique, ni optimal.

1. ordonner les symboles de l'alphabet sur une colonne par probabilite decroissante.

2. diviser l'ensemble des symboles en deux sous-ensembles de probabilites cumulees presque

egales.

3. coder avec "0" (resp. "1") les elements du premier (resp. deuxieme) sous-ensemble

4. continuer de maniere recursive jusqu'au moment ou tous les sous-ensembles ne com-

portent plus qu'un element D'une maniere plus generale l'algorithme de Shannon associe aussi d'une maniere biuni- voque : { aux symboles de l'alphabet une partition d'intervalles dans [0;1[ { a un symbol un mot code qui est un nombre reel dans l'intervalle correspondant.

5.2 Algorithme de Shannon

L'interpretation geometrique de l'algorithme de Shannon est de trouver une partition d'intervalles avec la propriete que la longueur de chaque intervalle [Aj;Aj+1[ est egale a la probabilite de ( la production de ) du symbolaj:pj= A j+1Aj, 0jN1. A 0= 0 A 1=p0 A

2=p0+p1

3 A

3=p0+p1+p2...

A

N=p0+p1++pN1= 1

Un mot codecjest associe a l'intervalle [Aj;Aj+1[[0;1[ de la maniere suivante : c(Aj;Aj+1) =12:::lj()A= 0:12:::lj( debut du developpement binaire du nombre reelAj), avec l j=dlog2(pj)e. On prend autant de bits de ce developpement que le "contenu d'information de l'intervalle" l jle dicte. Maintenant pour assurer la correspondance biunivoque il faut prouver que le mot code associe a un intervalle [Aj;Aj+1[ est unique. Plus on peut montrer que : Lemme1.Le code Shannon est prexe, i.e. le mot codecj=c(Aj;Aj+1)ne peut pas^etre un prexe du motcj+1=c(Aj+1;Aj+2), pour0jN2. Preuve.Supposons que le codage binaire deAja la longueurlj=dlog2pje.

Reecrivons les conditions de Shannon :

l j1Par constructionAkAj+1=Aj+pjAj+12 lj. DoncAkAj12 lj, i.e. leurs developpements binaires sont dierents sur les premiersljpositions. Par consequence le mot codecjn'est pas un prexe du mot codeck,j < k. Remarque.On note que on peut dire aussi que le codage Shannon-Fano associe au symbol a jle bits du plus petit (i.e. celui avec moins de bits) nombre binaire rationnel de l'interval [Aj;Aj+1[.

Algorithme de Shannon1. ordonner les symboles de l'alphabet sur une colonne par probabilite decroissante.

2. calculerA0= 0 etAj+1=Aj+pj

3. pour chaque 0jN1 ecrire le developpement dyadiqueA= 2Ajjusqu'au

l j=dlog2pje"decalage de la virgule " { siA1, alors1= 1 etA= 2A1 { siA1, alors1= 0 etA= 2A

4. acherAj= 0:1234:::lj

Exemple.Trouver le developpement binairea= 0:1234:::dea=111 4

2a=211

<1 =)1= 0, 4a=411 <1 =)2= 0

8a=811

<1 =)3= 0, 16a=1611 = 1 +511 =)4= 1 a (4)=511 = 0:567:::, 2a(4)=1011 <1 =)5= 0

4a=2011

= 1 +911 =)6= 1 a (6)=911 = 0:789:::, 2a(6)=1811 = 1 +711 =)7= 1 a (7)=711 = 0:8910:::, 2a(7)=1411 = 1 +311 =)8= 1 a (8)=311 = 0:91011:::, 2a(8)=611 <1 =)9= 0

4a(8)=1211

= 1 +111 =)10= 1 a (10)=111 = 0:111213=a. Le developpement binaire ( 10-periodique ) dea=111 = 0:0001011101

Exercice.Trouver les mots codec(A;B)suivants :

1.c111

;15 2.c38 ;12

3.c112

;78 4.c35 ;34 5.c17 ;16

1.c111

;15 Premier pas :Determiner la precision du developpement dyadique. La longueur du codage est donnee par l'information qui correspond a l'intervalBA=15 111
=655 . Doncdlog2556 e=

4, parce que 8<556

<16. 111
= 0:1234 Deuxieme pas :Obtenir le developpement binaire du nombreA=111 qui est entre 0 et 1.

Donc111

= 0:0001=)c111 ;15 =1234= 0001 2.c38 ;12 Premier pas :Determiner la precision du developpement dyadique. La longueur du codage est donnee par l'information qui correspond a l'intervalBA=18 . Donc log28 = 3. 38
= 0:123 5 Deuxieme pas :Obtenir le developpement binaire du nombreA=38 qui est entre 0 et 1. 238
=1:23 238
=68 <1 =)1= 0 et68 = 0:23 268
=2:3 268
=128 = 1 +48 = 1 +12

1 =)2= 1 et12

= 0:3 212
=3 212
= 1 =)3= 1 =)c38 ;12 =123= 011 Exercice.Determiner tous les intervalles[A;B[tels quec(A;B) = 10101. ( Chercher d'abord l'intervalle le plus naturel determine par10101, puis re echir dans quelle mesure ceci est "deformable" sans eet sur le mot code ). Exercice.Considerons la source qui produit les huit lettresa0;a1;:::;a7selon la distribution de probabilitep= (p0;p1;:::;p7)avecp0=12 ,p1=14 ,p2=p3=116 ,p4=p5=p6=p7=132

Trouver le code de Shannon associe.

Exercice.Notre source sans memoire qui produit les huit lettres A, B, C, D, E, F, G, H selon la distribution de probabilitep= (p(A);p(B);:::;p(H)), avecp(A) =2764 ,p(B) =p(C) =316 p(D) =116 ,p(E) =p(F) =364 ,p(G) =132 ,p(H) =164

1. Trouver le code de Shannon associe.

2. Calculer la longueur moyenneldes mots code.

5.3 Coder plusieurs symboles successifs en m^eme temps

Pour le codage Human nous avons deja vu que le codage par blocs densymboles permet de prendre en compte plusieurs symboles en m^eme temps. C'est un codage vectoriel (en dimensionn) qui remplace la source initiale par une "extension d'ordren" ayant comme symboles des vecteurs densymboles successifs de la source initiale. Le theoreme de Shannon pour le codage de source sans pertes propose de realiser un codage vectoriel en grande dimension pour toute source. pour s'approcher de l'entropie. Pour coder une source discrete sans memoire sur un alphabet aNsymboles en dimensionn l'alphabet de l'"extension d'ordren" augmente exponentiellement avecn. Donc, le codage vectoriel en grande dimension est d'un inter^et purement theorique. 6 Pour resoudre ces problems d'autres systemes de codage de source sans pertes ont ete proposes. Ils permettent aussi de prendre en compte les dependances temporelles (d'un sym- bole a l'autre) de la source (avec memoire). Ces systemes de codage permettent de coder une source quelconque sans conna^tre a priori ses statistiques (c'est ce qu'on appelle du codage "universel"). Les plus connus sont les systemes de codage de Lempel-Ziv (1976)et de codage arithmetique (1982). Le codage arithmetique est probablement le plus important dans les applications et les normes actuelles. Il est une extension iterative d'une technique de codage connue depuis les annees 50, appelee codage d'Elias (ou de Shannon-Fano-Elias).

5.4 Le codeur d'Elias

Le codeur d'Eliasetait, a l'origine, considere comme une construction purement academique. Sa premiere presentation ( tardive ) date de 1968. C'est entre 1976 et 1979 ( Pasco, Jones, Rubin ) que l'on decouvrit son inter^et pratique de sa variantebinaire!binaire. Le codeur d'Elias code optimalement, c.ad. il approche l'entropie de la source :

H(p)ln

< H(p) +1n Soit une source binaire ( sans memoire ), produisant selon la distribution de probabilite p= (p0;p1), avecp0p1. Le codeur d'Elias construit un arbre binaire d'intervalles, obtenu parp0-dichotomie. Soit les intervalles [Ak;Bk[ les intervalles [Ak+1;Bk+1[ sont calcules :

D=Ak+p0(BkAk)

A k+1=Ak;Bk+1=D(code avec 0) etAk+1=D;Bk+1=Bm(code avec 1)

Lesnpremiers bitsaj1aj2:::ajnd'un

ot source binaire sont interprete commeche- mindans cet arbre. Le chemin pointe sur un intervalle [A;B[. Le motcode d'Elias c(aj1aj2:::ajn) est le mot code de l'intervalle [A;B[, c.a.d. le developpement dyadiqueA jusqu'aul=dlog21BAe"decalage de la virgule " Exemple.Soit une source binaire ( sans memoire ) produisant selon la distribution de probabilitepdonnee parp0=34 ,p1=14 Trouvez le mot code d'Elias de la sequence 001 produite par la source, c.a.d. de l'intervalle 2764
;916 Premier pas: Pour le codage, il faut trouver dans l'hierarchie de l'arbre dep0dichotomie le chemin ("poupee russe") d' intervallesembo^tesqui correspond a la sequencesproduite par la source. Calcul deD=34 = 0:11 s

1= 0 et doncA1= 0;B1=34

7

Calcul deD=916

= 0:1001 s

1s2= 00 et doncA2= 0;B2=916

Calcul deD=2764

quotesdbs_dbs23.pdfusesText_29