2.1 Codage.ppt
Download
Report
Transcript 2.1 Codage.ppt
Codage de l’information
Laurent JEANPIERRE
<[email protected]>
D’après le cours de Pascal FOUGERAY
IUT de CAEN – Campus 3
Département Informatique
Contenu du cours
Définition
Les entiers
Les caractères
Les codes détecteurs d’erreurs
Les nombres à virgule flottante
Département Informatique
2
Définition
Code : Système conventionnel de signes ou
de signaux, de règles et de lois, permettant la
transformation d'un message en vue d'une
utilisation particulière.
Exemples :
Code de la route,
Code génétique,
Code postal,
Code secret,
...
Département Informatique
3
Définitions (suite)
Codage : le fait de coder
Coder : écrire dans un code
Transcodage : opération consistant à
transcrire un code dans un autre
Exemples :
nombres arabes nombres romains
ASCII Unicode
Département Informatique
4
Contenu du cours
Définition
Les entiers
Les caractères
Les codes détecteurs d’erreurs
Les nombres à virgule flottante
Département Informatique
5
Le code de Gray
Ou encore « code binaire réfléchi »
Utilisation :
Visualisation d’informations dynamiques
Conversion de grandeurs analogiques
…
Avantage :
Élimine les erreurs de transitions
Département Informatique
6
Code de Gray : exemple
B
i
n
a
i
r
e
0 1 2 3 4 5 6 7 8 9 A B C D E F
X
X
X
X X
X
X
X X
X
X
X X
X X X X
X
X X
X X X X
X X X X X X X X
0 1 2 3 4 5 6 7 8 9 A B C D E F
G
R
A
Y
X X
X X
X X
X X X X
X X
X X X X
X X X X X X X X
X X X X X X X X
Département Informatique
7
Application
© http://letzner.info/robotique
Département Informatique
8
Le code BCD
Binary Coded Decimal, ou décimal codé en
binaire : 1 chiffre décimal 4 bits.
Exemple :
Avantages :
198510 = 0001 1001 1000 0101BCD
Simplicité du binaire
Lisibilité du décimal (pour l’homme !)
Inconvénient :
Les calculs nécessitent des corrections
Département Informatique
9
Contenu du cours
Définition
Les entiers
Les caractères
Les codes détecteurs d’erreurs
Les nombres à virgule flottante
Département Informatique
10
Les caractères
Ordinateur 0/1
Caractères code numérique
Sous Linux :
recode -l : affiche les codes disponibles
Exemple : ‘A’
ASCII : 65 (8 bits)
EBCDIC : 193 (8 bits)
Unicode : 65 (16 bits)
Département Informatique
11
EBCDIC
Extended Binary Coded
Decimal Interchange
Code sur 8 bits, parfois 9 (avec parité)
Utilisé par IBM principalement.
Département Informatique
12
ASCII
American Standard Code for
Information Interchange
Code 7 bits, pas d’accents
Plusieurs « pages de codes » sur le reste
Département Informatique
13
Nouveaux codes
Pages de codes ingérables, trop
nombreuses (190 + codes multi octets)
Années 90 UNIversal CODE :
UNICODE (16 bits)
http://alis.isoc.org/codage/registre_ISO.htm
http://www.unicode.org
ISO/IEC 10646 : 32 bits
http://alis.isoc.org/codage/iso10646/
Département Informatique
14
Contenu du cours
Définition
Les entiers
Les caractères
Les codes détecteurs d’erreurs
Les nombres à virgule flottante
Département Informatique
15
Pourquoi contrôler les erreurs ?
Un ordinateur ne cesse de transférer des
données : vers la mémoire, le disque, un
périphérique, un autre ordinateur.
Chaque transfert peut altérer les données.
Spécialement en analogique.
Il faut donc être capable de détecter ces
erreurs, voire de les corriger…
Département Informatique
16
Contrôle de parité
Soit un code sur n bits
On ajoute 1 bit tel que tous les mots du
code aient un nombre de bits à 1 :
Pair : code à parité paire.
Impair : code à parité impaire.
On ne peut donc détecter que les erreurs
sur un nombre impair de bits.
Département Informatique
17
Codes de blocs
Développés par R.W. Hamming
Principe général :
Séparation en blocs de taille fixe
Ajout de bits de redondance à chaque bloc
Transmission…
Vérification des blocs reçus:
Le bloc est un mot du code : Pas d’erreur, on
peut extraire le message original
Le bloc n’est PAS un mot du code : Il y a eu
erreur.
Département Informatique
18
Codes de blocs (2)
Quand erreur :
On peut retrouver le mot original
(code auto-correcteur d’erreur)
On doit demander la retransmission
(code vérificateur d’erreur)
Distance de Hamming :
Nombre minimal de bits séparant deux mots
du code (Code de Gray : 1)
Plus elle est grande, plus le code est bon
Département Informatique
19
Codes de blocs (3)
Exemple :
Contrôle de parité verticale (VRC)
Contrôle de parité horizontale (LRC)
Contrôle de parité croisée
Lettre VRC
0
P
0
A
0
G
0
LRC
6
1
1
1
1
5
0
0
0
0
4
1
0
0
1
3
0
0
0
0
2
0
0
1
1
Département Informatique
1
0
0
1
1
0
0
1
1
0
Valeur
50h
41h
47h
56h
20
Codes de redondance cyclique
Ou Cyclic Redundancy Check
Ou codes polynomiaux
Un mot de n bits polynôme de degré n
Exemple :
101112 1*X4+0*X3+1*X2+1*X1+1*X0
Principe du codage :
Soit le mot I(X) à envoyer et G(X) un polynôme
générateur
Envoi de M(X) = I(X)+R(X) tel que G(X) divise M(X)
A la réception, on vérifie que G(X) divise bien M(X)
Département Informatique
21
CRC (2)
Il faut donc bien choisir G(X).
Exemple : (CRC16 du CCIT)
X16 + X12 + X5 + 1 10001000000100001
Permet de détecter :
100% des erreurs de 1 ou 2 bits
100% des erreurs impaires
100% des paquets de 16 erreurs ou moins
99.99% des paquets de 18 erreurs
Département Informatique
22
Contenu du cours
Définition
Les entiers
Les caractères
Les codes détecteurs d’erreurs
Les nombres à virgule flottante
Département Informatique
23
Extension des entiers
On a vu que
10112 = 1*23 + 0*22 +1*21 +1*20 = 1110
Par extension :
1011,012
= 1*23 +0*22 +1*21 +1*20 +0*2-1 +1*2-2
= 1*8 +0*4 +1*2 +1*1 +0/2 +1/4
= 11,2510
Département Informatique
24
Normalisation
Comment stocker ce nombre ?
Virgule fixe : n,m bits
Simple et efficace
Expressivité très limitée (-2n2n)
Virgule flottante :
1011,012 = 1011012*2-2 = 0,1011012*24
stockage de 101101 (n bits) et de 100 (m bits)
m
m
Grande expressivité (-22 -1 22 -1-1)
Grande précision 2-n+1
Département Informatique
25
Stockage
Tout nombre peut donc être stocké par
N = (-1)S * M * 2e
Notation en virgule flottante normalisée
Avec
Son signe S
Sa mantisse M (bits significatifs)
Son exposant e
0 est codé de façon spéciale
(pas de bits significatifs)
Département Informatique
26
Dans les faits
N = (-1)S * M * 2e+k
1 > M ≥ (0,1)2 = (0,5)10
(premier bit de M = 1)
e non signé (pas de complément à 2)
0 = (-1)S * 0 * 20+k
D’autres nombres : ±∞, NAN
Département Informatique
27
Les normes
IBM (32 bits)
31
24
23
Exposant + 128
signe
0
Mantisse
IEEE754 sur 32 / 64 / 80 bits
Type
Signe
Simple précision
32 bits
31
Double précision
64 bits
Précision étendue
80 bits
22
Exposant
30
1 bit
63
23
1 bit
51
11 bits, e + 1024
0
52 bits
64
15 bits, e + 16384
0
23 bits
52
78
1 bit
22
8 bits, e + 128
62
79
Mantisse
63
0
64 bits
Sur 80387 (80 bits) : 3,4*10-49321,2*104932
Département Informatique
28