Vous êtes sur la page 1sur 16

L'informatique au lyce

Chapitre 3

http://ow.ly/2xKdB

Chapitre 3 Codage de l'information


3.1. Vocab laire
Quelle que soit la nature de l'information traite par un ordinateur (image, son, texte, vido), elle l'est toujours sous la forme d'un ensemble de nombres crits en base 2, par exemple 01001011 !e terme bit (b minuscule dans les notations) signifie " binar# digit $, c'est%&%dire 0 ou 1 en numrotation binaire 'l s'agit de la plus petite unit d'information manipulable par une mac(ine numrique 'l est possible de reprsenter p(#siquement cette information binaire par un signal lectrique ou magntique, qui, au%del& d'un certain seuil, correspond & la valeur 1 !'octet (en anglais byte ou ) majuscule dans les notations) est une unit d'information compose de * bits 'l permet par exemple de stoc+er un caract,re comme une lettre ou un c(iffre -ne unit d'information compose de 1. bits est gnralement appele mot (en anglais word) -ne unit d'information de /2 bits de longueur est appele mot double (en anglais double word, d'o0 l'appellation dword) )eaucoup d'informaticiens ont appris que 1 +ilooctet valait 1021 octets 2r, depuis dcembre 133*, l'organisme international IEC a statu sur la question1 4oici les units standardises 5 -n +ilooctet (+o) 6 1000 octets -n mgaoctet (7o) 6 10. octets -n gigaoctet (8o) 6 103 octets -n traoctet (9o) 6 1012 octets -n ptaoctet (:o) 6 101; octets

3.2. !e" ba"e" d#cimale$ binaire et hexad#cimale

<ous utilisons le s#st,me dcimal (base 10) dans nos activits quotidiennes =e s#st,me est bas sur dix s#mboles, de 0 & 3, avec une unit suprieure (di>aine, centaine, etc ) & c(aque fois que dix
1 (ttp5??p(#sics nist gov?cuu?-nits?binar# (tml

@idier 7Aller

/%1

aoBt 201/

Codage de l'information units sont comptabilises ='est un s#st,me positionnel, c'est%&%dire que l'endroit o0 se trouve le s#mbole dfinit sa valeur Cinsi, le 2 de ;2/ n'a pas la mDme valeur que le 2 de 1/2 En fait, ;2/ est l'abrviation de ;F102G2F101G/F100 2n peut selon ce principe imaginer une infinit de s#st,mes numriques fonds sur des bases diffrentes En informatique, outre la base 10, on utilise tr,s frquemment le s#st,me binaire (base 2) puisque l'alg,bre boolenne est & la base de l'lectronique numrique @eux s#mboles suffisent 5 0 et 1 2n utilise aussi tr,s souvent le s#st,me (exadcimal (base 1.) du fait de sa simplicit d'utilisation et de reprsentation pour les mots mac(ines (il est bien plus simple d'utilisation que le binaire) 'l faut alors six s#mboles supplmentaires 5 C (qui reprsente le 10), ) (11), = (12), @ (1/), E (11) et H (1;) !e tableau ci%dessous montre la reprsentation des nombres de 0 & 1; dans les bases 10, 2 et 1.
@cimal )inaire Jexadcimal 0 0 1 1 2 2 / / 1 1 ; ; . . I I * * 3 3 10 C 11 ) 12 = 1/ @ 11 E 1; H

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

3.2.1. Con%er"ion d#cimal & binaire


=onvertissons 01001101 en dcimal & l'aide du sc(ma ci%dessous 5 2I 2. 2; 21 2/ 22 21 20 0 1 0 0 1 1 0 1

!e nombre en base 10 est 2. G 2/ G 22 G 20 6 .1 G * G 1 G 1 6 II Cllons maintenant dans l'autre sens et crivons II en base 2 'l s'agit de faire une suite de divisions euclidiennes par 2 !e rsultat sera la juxtaposition des restes !e sc(ma ci%dessous explique la mt(ode mieux qu'un long discours 5

II s'crit donc en base 2 5 1001101 Ki on l'crit sur un octet, cela donne 5 01001101

@idier 7Aller

/%2

aoBt 201/

L'informatique au lyce

Chapitre 3

3.2.2. Con%er"ion hexad#cimal & binaire


:our convertir un nombre binaire en (exadcimal, il suffit de faire des groupes de quatre bits (en commenLant depuis la droite) :ar exemple, convertissons 1001101 5 )inaire :seudo%dcimal Jexadcimal 0100 1 1 1101 1/ @

1001101 s'crit donc en base 1. 5 1@ :our convertir d'(exadcimal en binaire, il suffit de lire ce tableau de bas en (aut

'xercice 3.1
@onne> la mt(ode pour passer de la base dcimale & la base (exadcimale (dans les deux sens)

'xercice 3.2
=omplte> le tableau ci%dessous !'indice indique la base dans laquelle le nombre est crit )ases 2 10010101102 200210 C1=11. 10 1.

'xercice 3.3
Mcrive> en :#t(on un programme permettant de convertir un nombre d'une base de dpart d vers une base d'arrive a (d et a compris entre 2 et 1.)

3.3. (epr#"entation de" nombre" entier"


3.3.1. (epr#"entation d' n entier nat rel
-n entier naturel est un nombre entier positif ou nul !e c(oix & faire (c'est%&%dire le nombre de bits & utiliser) dpend de la fourc(ette des nombres que l'on dsire utiliser :our coder des nombres entiers naturels compris entre 0 et 2;;, il nous suffira de * bits (un octet) car 2*62;. @'une mani,re gnrale un codage sur n bits pourra permettre de reprsenter des nombres entiers naturels compris entre 0 et 2n1 'xemple" : 3 6 000001012, 12* 6 100000002, etc

3.3.2. (epr#"entation d' n entier relatif


-n entier relatif est un entier pouvant Dtre ngatif 'l faut donc coder le nombre de telle faLon que l'on puisse savoir s'il s'agit d'un nombre positif ou d'un nombre ngatif, et il faut de plus que les r,gles d'addition soient conserves !'astuce consiste & utiliser un codage que l'on appelle complment & deux =ette reprsentation permet d'effectuer les oprations arit(mtiques usuelles naturellement

@idier 7Aller

/%/

aoBt 201/

Codage de l'information )n entier relatif po"itif ou nul sera reprsent en binaire (base 2) comme un entier naturel, & la seule diffrence que le bit de poids fort (le bit situ & l'extrDme gauc(e) reprsente le signe 'l faut donc s'assurer pour un entier positif ou nul qu'il est & >ro (0 correspond & un signe positif, 1 & un signe ngatif) Cinsi, si on code un entier naturel sur 1 bits, le nombre le plus grand sera 0111 (c'est%&%dire I en base dcimale) Kur * bits (1 octet), l'intervalle de codage est N12*, 12IO Kur 1. bits (2 octets), l'intervalle de codage est N/2I.*, /2I.IO Kur /2 bits (1 octets), l'intervalle de codage est N211I1*/.1*, 211I1*/.1IO @'une mani,re gnrale le plus grand entier relatif positif cod sur n bits sera 2n11 )n entier relatif n#gatif sera reprsent grPce au codage en complment & deux

*rincipe d compl#ment + de x
Mcrire la valeur absolue du nombre en base 2 !e bit de poids fort doit Dtre gal & 0 'nverser les bits 5 les 0 deviennent des 1 et vice versa 2n fait ce qu'on appelle le complment & un / 2n ajoute 1 au rsultat (les dpassements sont ignors) =ette opration correspond au calcul de 2nQxQ, o0 n est la longueur de la reprsentation et QxQ la valeur absolue du nombre & coder Cinsi 1 s'crit comme 2;.162;;6111111112, pour les nombres sur * bits 'xemple 2n dsire coder la valeur 19 sur * bits 'l suffit 5 1 d'crire 13 en binaire 5 00010011 2 d'crire son complment & 1 5 11101100 / et d'ajouter 1 5 11101101 !a reprsentation binaire de 19 sur * bits est donc 11101101 2n remarquera qu'en additionnant un nombre et son complment & deux on obtient 0 En effet, 00010011 G 11101101 6 00000000 (avec une retenue de 1 qui est limine) 1 2

,r c
:our transformer de tDte un nombre binaire en son complment & deux, on parcourt le nombre de droite & gauc(e en laissant inc(angs les bits jusqu'au premier 1 (compris), puis on inverse tous les bits suivants :renons comme exemple le nombre 20 5 00010100 1 2n garde la partie & droite telle quelle 5 000101-2 2n inverse la partie de gauc(e apr,s le premier un 5 111-1100 / Et voici 20 5 11101100
!e 1 juin 133., une fuse Criane ; a explos 10 secondes apr,s l'allumage !a fuse et son c(argement avaient coBt ;00 millions de dollars !a commission d'enquDte a rendu son rapport au bout de deux semaines 'l s'agissait d'une erreur de programmation dans le s#st,me inertiel de rfrence R un moment donn, un nombre cod en virgule flottante sur .1 bits (qui reprsentait la vitesse (ori>ontale de la fuse par rapport & la plate%forme de tir) tait converti en un entier sur 1. bits 7al(eureusement, le nombre en question tait plus grand que /2I.* (le plus grand entier que l'on peut coder sur 1. bits) et la conversion a t incorrecte

'xercice 3..
1 2 =ode> les entiers relatifs suivants sur * bits (1. si ncessaire) 5 1;., 1, ;., ;.12 Que valent en base dix les trois entiers relatifs suivants 5 01101100 11101101 1010101010101010 S

@idier 7Aller

/%1

aoBt 201/

L'informatique au lyce

Chapitre 3

'xercice 3./
Explique> ce rDve trange (source de l'image 5 (ttp5??x+cd com?;I1)

3... (epr#"entation de" nombre" r#el"


En base 10, l'expression .;2,/I; est une mani,re abrge d'crire 5 .F102 G ;F101 G 2F100 G /F10%1 G IF10%2 G ;F10%/ 'l en va de mDme pour la base 2 Cinsi, l'expression 110,101 signifie 5 1F22 G 1F21 G 0F20 G 1F2%1 G 0F2%2 G 1F2%/

3...1. Con%er"ion de binaire en d#cimal


2n peut ainsi facilement convertir un nombre rel de la base 2 vers la base 10 :ar exemple 5 110,1012 6 1F22 G 1F21 G 0F20 G 1F2%1 G 0F2%2 G 1F2%/ 6 1 G 2 G 0,; G 0,12; 6 .,.2;10

'xercice 3.0
9ransforme> 0,01010101012 en base 10 9ransforme> 11100,100012 en base 10

3...2. Con%er"ion de d#cimal en binaire


!e passage de base 10 en base 2 est plus subtil :ar exemple 5 convertissons 12/1,/1I en base 2 !a partie enti,re se transforme comme au T / 2 1 5 12/110 6 100110100102 2n transforme la partie dcimale selon le sc(ma suivant 5 0,/1IF2 6 -,.31 0,.31F2 6 1,/** 0,/**F2 6 -,I.. 0,I..F2 6 1,;;2 0,;;2F2 6 1,101 0,101F2 6 -,20* 0,20*F2 6 -,11. 0,11.F2 6 -,*/2 0,*/2F2 6 1,..1 0,..1F2 6 1,/2* 0,/2*F2 6 -,.;. 0,/1I 6 0,0,/1I 6 0,01 0,/1I 6 0,010,/1I 6 0,0101 0 /1I 6 0,01011 0,/1I 6 0,010110,/1I 6 0,0101100,/1I 6 0,01011000,/1I 6 0,010110001 0,/1I 6 0,0101100011 0,/1I 6 0,0101100011-

2n continue ainsi jusqu'& la prcision dsire 1ttention 2 -n nombre & dveloppement dcimal fini en base 10 ne l'est pas forcment en base 2

'xercice 3.3
9ransforme> 0,;.2;10 en base 2 9ransforme> 0,1;10 en base 2 9ransformer 12,310 en base 2

@idier 7Aller

/%;

aoBt 201/

Codage de l'information

'EEE, que l'on peut prononcer "i/e$5 Institute of Electrical and Electronics Engineers

3...2. !a norme 4''' 3/.


!a norme 'EEE I;1 dfinit la faLon de coder un nombre rel =ette norme se propose de coder le nombre sur /2 bits et dfinit trois composantes 5 le signe est reprsent par un seul bit, le bit de poids fort l'exposant est cod sur les * bits conscutifs au signe la mantisse (les bits situs apr,s la virgule) sur les 2/ bits restants

=ertaines conditions sont toutefois & respecter pour les exposants 5 l'exposant 00000000 est interdit l'exposant 11111111 est interdit 2n s'en sert toutefois pour signaler des erreurs, on appelle alors cette configuration du nombre <a<, ce qui signifie " <ot a number $ il faut rajouter 12I (01111111) & l'exposant pour une conversion de dcimal vers un nombre rel binaire !es exposants peuvent ainsi aller de 2;1 & 2;; !a formule d'expression des nombres rels est ainsi la suivante 5 (1)US V 2U(E 12I) V (1 G ) S est le bit de signe et l'on comprend alors pourquoi 0 est positif (1U061), E est l'exposant auquel on doit bien ajouter 12I pour obtenir son quivalent cod, est la partie fractionnaire

'xemple
9raduisons en binaire, en utilisant la norme 'EEE I;1, le nombre .,.2; =odons d'abord la valeur absolue en binaire 5 .,.2;10 6 110,10102 <ous mettons ce nombre sous la forme 5 1$ partie fractionnaire 110,1010 6 1,1-1-1-F22 (22 dcale la virgule de 2 c(iffres vers la droite) !a partie fractionnaire tendue sur 2/ bits est donc 1-1 -1-- ---- ---- ---- ----. 'xpo"ant 6 12I G 2 6 12310 6 1000 00012 Kigne Exposant 7antisse 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 En (exadcimal 5 =0 @1 00 00

!e 2; fvrier 1331, pendant la 8uerre du 8olfe, une batterie amricaine de missiles :atriot, & @(aran (Crabie Kaoudite), a c(ou dans l'interception d'un missile Kcud ira+ien !e Kcud a frapp un baraquement de l'arme amricaine et a tu 2* soldats !a commission d'enquDte a conclu & un calcul incorrect du temps de parcours, dB & un probl,me d'arrondi !es nombres taient reprsents en virgule fixe sur 21 bits !e temps tait compt par l'(orloge interne du s#st,me en dixi,me de seconde 7al(eureusement, 1?10 n'a pas d'criture finie dans le s#st,me binaire 5 1?10 6 0,1 (dans le s#st,me dcimal) 6 0,0001100110011001100110011 (dans le s#st,me binaire) !'ordinateur de bord arrondissait 1?10 & 21 c(iffres, d'o0 une petite erreur dans le dcompte du temps pour c(aque 1?10 de seconde Cu moment de l'attaque, la batterie de missile :atriot tait allume depuis environ 100 (eures, ce qui a entraWn une accumulation des erreurs d'arrondi de 0,/1 s :endant ce temps, un missile Kcud parcourt environ ;00 m, ce qui explique que le :atriot soit pass & cXt de sa cible

@idier 7Aller

/%.

aoBt 201/

L'informatique au lyce

Chapitre 3

3./. !e code 15C44


!a norme CK=''2 (on prononce gnralement " as+i $) tablit une correspondance entre une reprsentation binaire des caract,res de l'alp(abet latin et les s#mboles, les signes, qui constituent cet alp(abet :ar exemple, le caract,re a est associ & 1100001 (3I) et ! & 1000001 (.;)

!a norme CK='' permet ainsi & toutes sortes de mac(ines de stoc+er, anal#ser et communiquer de l'information textuelle En particulier, la quasi%totalit des ordinateurs personnels et des stations de travail utilisent l'encodage CK='' !e code CK='' de base reprsentait les caract,res sur I bits (c'est% &%dire 12* caract,res possibles, de 0 & 12I) !es codes 0 & /1 ne sont pas des caract,res 2n les appelle caract,res de contrXle car ils permettent de faire des actions telles que 5 retour & la ligne (Carriage return) bip sonore (!udible bell) !es codes .; & 30 reprsentent les majuscules !es codes 3I & 122 reprsentent les minuscules (il suffit de modifier le .,me bit pour passer de majuscules & minuscules, c'est%&%dire ajouter /2 au code CK='' en base dcimale)

Cmerican Ktandard =ode for 'nformation 'nterc(ange

@idier 7Aller

/%I

aoBt 201/

Codage de l'information !e code CK='' a t mis au point pour la langue anglaise, il ne contient donc pas de caract,res accentus, ni de caract,res spcifiques & une langue !e code CK='' a donc t tendu & * bits pour pouvoir coder plus de caract,res (on parle d'ailleurs de code CK='' tendu ) =ette norme s'appelle 'K2%**;3 et se dcline par exemple en 'K2%**;3%1 lorsqu'elle tend l'CK='' avec les caract,res accentus d'Europe occidentale, et qui est souvent appele !atin%1 ou Europe occidentale

'l existe d'autres normes que l'CK='', comme l'-nicode par exemple, qui prsentent l'avantage de proposer une version unifie des diffrents encodages de caract,res compltant l'CK='' mais aussi de permettre l'encodage de caract,res autres que ceux de l'alp(abet latin -nicode dfinit des di>aines de milliers de codes, mais les 12* premiers restent compatibles avec CK='' @ans le codage -9H%*, c(aque point de code est cod sur une suite d'un & quatre octets 'l a t conLu pour Dtre compatible avec certains logiciels originellement prvus pour traiter des caract,res d'un seul octet

@idier 7Aller

/%*

aoBt 201/

L'informatique au lyce

Chapitre 3

9outes ces normes diffrentes et leurs incompatibilits partielles sont la cause des probl,mes que l'on rencontre parfois avec les caract,res accentus ='est pour cette raison qu'il vaut mieux, quand on crit des courriels & l'tranger, n'utiliser que des caract,res non accentus

3.0. Code" correcte r" d'erre r"


-n code correcteur est une tec(nique de codage base sur la redondance Elle est destine & corriger les erreurs de transmission d'un message sur une voie de communication peu fiable !a t(orie des codes correcteurs ne se limite pas qu'aux communications classiques (radio, cPble coaxial, fibre optique, etc ) mais galement aux supports de stoc+age comme les disques compacts, la mmoire YC7 et d'autres applications o0 l'intgrit des donnes est importante

Comment d#tecter et/o corriger de" erre r" 6


2n peut transmettre un nombre soit en c(iffres, soit en lettres 5 1 2n envoie " 0/21.1110/ $ K'il # a des erreurs de transmission, par exemple si je reLois " 0/2/.1120/ $, je ne peux pas les dtecter 2 2n envoie " >ro trente%deux quatre cent soixante et un quarante et un >ro trois $ K'il # a des erreurs de transmission, par exemple si je reLois " >rb trente%deu quate cent soixante en un quaran(e et on >ro tros $, je suis capable de corriger les erreurs et de retrouver le bon numro @ans le premier cas, l'information est la plus concise possible @ans le deuxi,me cas au contraire, le message contient plus d'informations que ncessaire ='est cette redondance qui permet la dtection et la correction d'erreurs

*o r7 oi ce" code" 6
@es canaux de transmission imparfaits entraWnant des erreurs lors des c(anges de donnes !a probabilit d'erreur sur une ligne tlp(onique est de 10%I (cela peut mDme atteindre 10%1) Cvec un taux d'erreur de 10%. et une connexion & 1 7o?s, en mo#enne * bits errons sont transmis c(aque seconde

*rincipe g#n#ral
=(aque suite de bits & transmettre est augmente par une autre suite de bits dite " de redondance $ ou " de contrXle $ :our c(aque suite de " bits transmise, on ajoute r bits 2n dit alors que l'on utilise un code C(n, ") avec n 6 " G r R la rception, les bits ajouts permettent d'effectuer des contrXles

)n exemple : le code 45B8


!''K)< (International Standard #oo" $umber) est un numro international qui permet d'identifier, de mani,re unique, c(aque livre publi 'l est destin & simplifier la gestion informatique des livres dans les bibliot(,ques, librairies, etc !e numro 'K)<%10 se compose de quatre segments, trois segments de longueur variable et un segment de longueur fixe, la longueur totale de l''K)< comprend dix c(iffres (le 1er janvier 200I, la longueur a t tendue & 1/ c(iffres en ajoutant un groupe initial de / c(iffres) Ki les quatre segments d'un ancien code 'K)< & 10 c(iffres sont nots C % ) % = % @ 5 C identifie un groupe de codes pour un pa#s, une >one gograp(ique ou une >one de langue ) identifie l'diteur de la publication = correspond au numro d'ordre de l'ouvrage c(e> l'diteur @ est un c(iffre%cl calcul & partir des c(iffres prcdents et qui permet de vrifier qu'il n'# a pas d'erreurs 2utre les c(iffres de 0 & 3, cette cl de contrXle peut prendre la valeur Z, qui reprsente le nombre 10

@idier 7Aller

/%3

aoBt 201/

Codage de l'information

Calc l d chiffre&cl# d' n n m#ro 45B8&12n attribue une pondration & c(aque position (de 10 & 2 en allant en sens dcroissant) et on fait la somme des produits ainsi obtenus 2n conserve le reste de la division euclidienne de ce nombre par 11 !a cl s'obtient en retranc(ant ce nombre & 11 Ki le reste de la division euclidienne est 0, la cl de contrXle n'est pas 11 (11 % 0 6 11) mais 0 @e mDme, si le reste de la division euclidienne est 1, la cl de contrXle n'est pas 10 mais la lettre Z !e nombre 11 tant premier, une erreur portant sur un c(iffre entraWnera automatiquement une inco(rence du code de contrXle !a vrification du code de contrXle peut se faire en effectuant le mDme calcul sur le code 'K)< complet, en appliquant la pondration 1 au dixi,me c(iffre de la cl de contrXle (si ce c(iffre%cl est %, on lui attribue la valeur 10) 5 la somme pondre doit alors Dtre un multiple de 11 'xemple :our le numro 'K)< (& 3 c(iffres) 2%/;2**%011, quelle est la cl de contrXle S =ode 'K)< :ondration :roduit 2 10 20 / 3 2I ; * 10 2 I 11 * . 1* * ; 10 0 1 0 1 / 12 1 2 2

!a somme des produits est 2-3, dont le reste de la division euclidienne par 11 est / !a cl de contrXle est donc 11 % ; 6 0 !''K)< au complet est 5 2%/;2**%011&0 !a vrification de la cl compl,te & 10 c(iffres donne la somme pondre 20/ G . 6 203, qui est bien un multiple de 11

3.0.1. !a di"tance de 9amming


!a distance de Jamming doit son nom & Yic(ard 9amming Elle est dcrite dans un article fondateur pour la t(orie des codes Elle est utilise en tlcommunication pour compter le nombre de bits altrs dans la transmission d'un message d'une longueur donne
Yic(ard 9amming (131;%133*)

'xemple : la distance de Jamming entre 1011101 et 10-1-01 est 2 car deux bits sont diffrents 'l est sou(aitable d'avoir une certaine distance entre les mots envo#s, afin de dtecter s'il # a eu une erreur de transmission :ar exemple, si l'on a trois messages & transmettre de trois bits, il vaut mieux c(oisir les codages qui sont & distance 2 les uns des autres, par exemple 000, 110 et 101 En effet, si un seul bit est altr, on recevra un message impossible :ar contre, en utilisant 000, 001 et 010, un bit altr pourrait passer inaperLu

3.0.2. 5omme de contr:le


!a somme de contrXle (en anglais " c(ec+sum $) est un cas particulier de contrXle par redondance Elle permet de dtecter les erreurs, mais pas forcment de les corriger <ous en avons dj& vu un exemple avec le code 'K)<%10 !e principe est d'ajouter aux donnes des lments dpendant de ces derni,res et simples & calculer =ette redondance accompagne les donnes lors d'une transmission ou bien lors du stoc+age sur un support quelconque :lus tard, il est possible de raliser la mDme opration sur les donnes et de comparer le rsultat & la somme de contrXle originale, et ainsi conclure sur la corruption potentielle du message

Bit de parit#
9ransmettons sept bits auxquels viendra s'ajouter un bit de parit 2n peut dfinir le bit de parit comme tant gal & >ro si la somme des autres bits est paire et & un dans le cas contraire 2n parle
@idier 7Aller

/%10

aoBt 201/

L'informatique au lyce

Chapitre 3

de parit paire Ki la somme des bits est impair, c'est qu'il # a eu une erreur de transmission 'xemple : 1010001 (I bits) devient 11010001 (* bits) =ette approc(e permet de dtecter les nombres d'erreurs impaires, mais un nombre pair d'erreurs passera inaperLu

3.0.3. Code de 9amming


-n code de Jamming permet la dtection et la correction automatique d'une erreur si elle ne porte que sur une lettre du message -n code de Jamming est parfait, ce qui signifie que pour une longueur de code donne, il n'existe pas d'autre code plus compact a#ant la mDme capacit de correction En ce sens, son rendement est maximal

5tr ct re d' n code de 9amming


les m bits du message & transmettre et les n bits de contrXle de parit longueur totale 5 2n1 longueur du message 5 m 6 (2n1)n on parle de code xy 5 x est la longueur totale du code (nGm) et y la longueur du message (m) les bits de contrXle de parit Ci sont en position 2i pour i 6 0, 1, 2, les bits du message &' occupe le reste du message I . ; 1 / 2 1

&/ &2 &1 C2 &0 C1 C0 Structure d'un code de (amming )*

'xemple" de code de 9amming


un mot de code I1 a un coefficient d'efficacit de 1?I 6 ;I [ un mot de code 1;11 a un coefficient d'efficacit de 11?1; 6 I/ [ un mot de code /12. a un coefficient d'efficacit de 2.?/1 6 */ [

(etro %er l'erre r dan" n mot de 9amming


Ki les bits de contrXle de parit C2, C1, C0 ont tous la bonne valeur, il n'# a pas d'erreurs \ sinon la valeur des bits de contrXle indique la position de l'erreur entre 1 et I !e code de Jamming prsent ici ne permet de retrouver et corriger qu'une erreur :our savoir quels bits sont vrifis par c(acun des bits de contrXle de parit, il faut construire le tableau ci%dessous 2n numrote les lignes de 1 & x+2n1 dans la colonne de droite (prenons comme exemple x6I), puis on convertit c(aque nombre en binaire et l'on crit c(aque bit dans les colonnes de gauc(e 2n colorie de la couleur de Ci les nombres de droite s'il # a un 1 dans dans la colonne Ci :ar exemple, ; sera color en vert et en rouge, car sur la ligne du ;, il # a un 1 dans les colonnes C2 et C0 C2 1 1 1 1 C1 1 1 1 1 C1 1 1 1 dcimal 1 2 / 1 ; . I

@idier 7Aller

/%11

aoBt 201/

Codage de l'information C2 (en vert) colore les bits 1, ;, ., I =e sont les bits qu'il vrifie C1 (en bleu) vrifie les bits 2, /, ., I C0 (en rouge) vrifie les bits 1, /, ;, I 2n constate que c(aque bit de donnes est color d'une mani,re diffrente =ela permettra de retrouver la position d'une erreur

'xemple d' n code de 9amming 3&.


2n sou(aite envo#er le message 1010 =ompltons le mot de Jamming correspondant 5 I 1 . 0 ; 1 1 / 0 2 1

C0 vaut 0 pour pouvoir rendre pair 1G1G0 (les bits d'indices I, ;, /) C1 vaut 1 pour pouvoir rendre pair 1G0G0 (les bits d'indices I, ., /) C2 vaut 0 pour pouvoir rendre pair 1G0G1 (les bits d'indices I, ., ;) I 1 . 0 ; 1 1 / 0 2 1 1 -

'maginons que l'on reLoive le mot 0010010 (le bit de poids fort a t altr) C0 a la mauvaise valeur, car 0G1G0G0 est impair, donc il # a une erreur en position I, ;, / ou 1 C1 a la mauvaise valeur, car 0G0G0G1 est impair, donc il # a une erreur en position I, ., / ou 2 C2 a la mauvaise valeur, car 0G0G1G0 est impair, donc il # a une erreur en position I, ., ; ou 1 Mcrivons le nombre binaire C2C1C0 o0 Ci vaut 0 si le bit de contrXle Ci a la bonne valeur et 1 sinon 2n obtient ici 111, ce qui correspond & I en binaire !e bit erron est le numro I Que se passe%t%il si c'est un des bits de contrXle qui est altr S 'maginons que l'on ait reLu 1010011 (cette fois%ci, c'est le bit de poids faible qui a t altr) C0 a la mauvaise valeur, car 1G1G0G1 est impair 'l # a une erreur en position I, ;, / ou 1 C1 a la bonne valeur, car 1G0G0G1 est pair 'l n'# a pas d'erreur en position I, ., / et 2 C2 a la bonne valeur, car 1G0G1G0 est pair 'l n'# a pas d'erreur en position I, ., ; et 1 'ci, C2C1C0 vaut 001 !e bit erron est donc le numro 1

'xercice 3.;
4ous voule> envo#er le mot 1011 Quels bits de contrXle deve>%vous lui adjoindre et quelle squence transmettre>%vous alors S

'xercice 3.<
] a%t%il une erreur dans le mot suivant (Jamming I1) 5 1101101 S

'xercice 3.1Koit un mot de Jamming 1;11 suivant 5 1; 1 1 2 / 1 11 0 1/ 1 12 1 11 0 10 1 3 1 * 1 I 1 . 0 ; 1 1 1 / 0 2 1 1 1

Quels sont les bits de contrXle de parit S Quelles positions contrXle c(acun de ces bits S Quel est le message reLu S Est%ce que le message reLu correspond au message transmis S

@idier 7Aller

/%12

aoBt 201/

L'informatique au lyce

Chapitre 3

3.3. Codage de 9 ffman


!e codage de Juffman (13;2) est une mt(ode de compression statistique de donnes qui permet de rduire la longueur du codage d'un alp(abet ='est un code de longueur variable optimal, c'est%&% dire que la longueur mo#enne d'un texte cod est minimale 2n observe des rductions de taille de l'ordre de 20 & 30[

!e principe
!e principe de l'algorit(me de Juffman consiste & recoder les octets rencontrs dans un ensemble de donnes source avec des valeurs de longueur binaire variable !'unit de traitement est ramene au bit Juffman propose de recoder les donnes qui ont une occurrence tr,s faible sur une longueur binaire suprieure & la mo#enne, et recoder les donnes tr,s frquentes sur une longueur binaire tr,s courte Cinsi, pour les donnes rares, nous perdons quelques bits regagns pour les donnes rptitives :ar exemple, dans un fic(ier CK='' le " ^ $ apparaissant 10 fois aura un code tr,s long 5 0101000001000 'ci la perte est de 10 bits (10 x 1 bits), car sans compression, il serait cod sur * bits au lieu de 12 :ar contre, le caract,re le plus frquent comme le " e $ avec 200 apparitions sera cod par 1 !e gain sera de 1100 bits (I x 200 bits) 2n comprend l'intrDt d'une telle mt(ode @e plus, le codage de Juffman a une proprit de prfixe 5 une squence binaire ne peut jamais Dtre & la fois reprsentative d'un lment cod et constituer le dbut du code d'un autre lment Ki un caract,re est reprsent par la combinaison binaire 100 alors la combinaison 10001 ne peut Dtre le code d'aucune autre information @ans ce cas, l'algorit(me de dcodage interprterait les ; bits comme deux mots 5 100%01 =ette caractristique du codage de Juffman permet une codification & l'aide d'une structure d'arbre binaire 5

@avid C 9 ffman (132;%1333)

,n exemple d'arbre obtenu a-ec la phrase . this is an example of a huffman tree /

=#thode
Cu dpart, c(aque lettre a une tiquette correspondant & sa frquence (ou sa probabilit) d'apparition 'l # a autant d'arbres (& 1 sommet) que de lettres !'algorit(me c(oisit & c(aque tape les deux arbres d'tiquettes minimales, soit x et y, et les remplace par l'arbre form de x et y et a#ant comme tiquette la somme de l'tiquette de x et de l'tiquette de y !a figure ci%dessous reprsente les tapes de la construction d'un code de Juffman pour l'alp(abet source _C, ), =, @, E`, avec les frquences (C)61;, ())6I, (=)6., (@)6. et (E)6;

@idier 7Aller

/%1/

aoBt 201/

Codage de l'information

!e code d'une lettre est alors dtermin en suivant le c(emin depuis la racine de l'arbre jusqu'& la feuille associe & cette lettre en concatnant successivement un 0 ou un 1 selon que la branc(e suivie est & gauc(e ou & droite Cinsi, sur la figure ci%dessus, C60, )6100, =6101, @6110, E6111 :ar exemple, le mot " C))E $ serait cod 0100100111 :our dcoder, on lit simplement la c(aWne de bits de gauc(e & droite !e seul dcoupage possible, grPce & la proprit du prfixe, est 0% 100%100%111 =e principe de compression est aussi utilis dans le codage d'image 9'HH (9agged 'mage Hormat Hile) spcifi par 0icrosoft Corporation et !ldus Corporation 'l existe des mt(odes qui ne conservent pas exactement le contenu d'une image (mt(odes non conservatives) mais dont la reprsentation visuelle reste correcte Entre autres, il # a la mt(ode a:E8 (aoin :(otograp(ic Experts 8roup) qui utilise la compression de t#pe Juffman pour coder les informations d'une image 7algr son anciennet, cette mt(ode est toujours remise au goBt du jour, et offre des performances apprciables

'xercice 3.12
=onstruise> un codage de Juffman du message " ceciestuncodagede(uffman $ (on a supprim les espaces et la ponctuation pour simplifier la construction) 'l # a plusieurs codages de Juffman possibles 4rifie> la proprit du prfixe

3.;. >( Code"


!e code QY (ou QR code en anglais) est un code%barres en deux dimensions (ou code & matrice) constitu de modules noirs disposs dans un carr & fond blanc =e cours contient un QY code & c(aque dbut de c(apitre !e nom 12 est l'acron#me de l'anglais 1uic" 2esponse, car son contenu de donnes peut Dtre dcod rapidement !e code QY a t cr par l'entreprise japonaise @enso%bave en 1331 pour le suivi des pi,ces de voiture dans les usines de 9o#ota !es codes QY peuvent mmoriser des adresses ^eb, du texte, des numros de tlp(one, des K7K ou autres t#pes de donnes lisibles par les /%11

@idier 7Aller

aoBt 201/

L'informatique au lyce

Chapitre 3

smartp(ones et les tlp(ones mobiles quips d'une application de lecture (lecteur de code QY ou 12 reader en anglais) !'avantage du code QY est sa facilit et rapidit d'utilisation et de cration :our lire un code QY, il suffit de lancer l'application de lecture et viser le code dans le mobile @e nombreuses pages beb offrent ces applications pour mobiles, gnralement sans frais En ce qui concerne l'criture, il # a plusieurs sites ^eb qui permettent de gnrer librement les codes QY, par exemple (ttp5??qrcode +a#^a com? 'ls peuvent stoc+er jusqu'& I0*3 caract,res numriques, 123. caract,res alp(anumriques ou 23;/ octets :ar rapport au code%barres traditionnel qui ne peut stoc+er que de 10 & 1/ caract,res, ils ont l'avantage de pouvoir stoc+er beaucoup d'informations tout en tant petits et rapides & scanner !e code QY est dfini comme un standard 'K2 ('E=1*001) !es cases noires et blanc(es servent & l'orientation du QY code 8rPce & ces trois carrs, l'image peut Dtre lue dans tous les sens !'information est code selon le s#st,me Yeed%Kolomon et stoc+e dans la partie jaune =ertains t#pes de codes restent lisibles avec /0[ de dgradation @ans la partie c#an se trouvent des informations sur le format

=e QY%=ode dessin dans le sable est tout & fait valide Essa#e> de le scanner c

'dem pour ce QY% code artistique c

@idier 7Aller

/%1;

aoBt 201/

Codage de l'information

5o rce"
N1O @umas, Yoc(, 9annier, 4arrette, 3horie des codes 4 Compression5 cryptage5 correction, @unod, 200. N2O 7artin ) , Codage5 cryptologie et applications, :resses :ol#tec(niques et -niversitaires Yomandes (::-Y), 2001 N/O =omment La marc(e, " Yeprsentation des nombres entiers et rels $, d(ttp5??^^^ commentcamarc(e net?contents?base?representation p(p/e N1O bi+ipdia, " 'nternational )oo+ Ktandard <umber $, d(ttp5??fr ^i+ipedia org?^i+i?'K)<e N;O @uvallet =laude, " !es codes correcteurs et les codes dtecteurs d'erreurs $, d(ttp5??litis univ%le(avre fr?fduvallet?enseignements?=ours?!:Y2@C2'?-H3?!:Y2@C2'%9@2%-H3 pdfe N.O bi+ipdia, " =odage de Juffman $, d(ttp5??fr ^i+ipedia org?^i+i?=odagegdegJuffmane

@idier 7Aller

/%1.

aoBt 201/