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 (-2n2n)
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-49321,2*104932
Département Informatique
28