Représentation des informations
A. MARTIN
Stanislas - PCSI1
Février 2014
1 / 50
PLAN
1 Numération
Bases de numération Changement de base Opérations arithmétiques Choix de la base 2
2 Eléments d’architecture logique Le transistor
Eléments de combinatoire Mémoriser : circuits séquentiels
3 Représentation des nombres entiers Entiers naturels
Entiers relatifs Notion de type
Dépassement de capacité
4 Nombres à virgule (flottante)
Arithmétique flottante (IEEE 754) Dépassement de capacité
Précision et arrondis
5 Représentation d’autres informations : caractères, sons, images Caractères
Son, images
2 / 50
Introduction -
Quelles informations en machine ? Comment ?Calculer⇒représenter des nombres entiers naturels
entiers relatifs
réels à virgule et nombre fini de décimales (décimaux) ⇔ sous-ensemble deQ
Mémoire de taille finie⇒pas de nombres irrationnels ou rationnels non décimaux.
Autres tâches - autres informations
textes ⇒ caractères sons
images
Codage(s) : une information ⇔ un nombre
L’ordinateurs étant au départ conçu pour manipuler des nombres, on cherchera à tout représenter par des nombres
⇒ nécessité d’un (ou plusieurs) codage(s).
Support pour enregistrer les nombres en mémoire : circuits électroniques
3 / 50
Numération
1 Numération
Bases de numération Changement de base Opérations arithmétiques Choix de la base 2
2 Eléments d’architecture logique
3 Représentation des nombres entiers
4 Nombres à virgule (flottante)
5 Représentation d’autres informations : caractères, sons, images
4 / 50
Numération Bases de numération
Bases de numération -
Définitions Définition: Base BX =anBn+an−1Bn−1+· · ·+a0B0+a−1B−1+a−mB−m =
n
X
i=−m
aiBi
Représentation : X = (anan−1. . .a0,a−1. . .a−m)B Partie entière de X : (anan−1. . .a0)B
Partie décimale de X : (a−1. . .a−m)B Bases courantes
Base Système chiffres nombres
10 décimal (arabes) ai ∈ {0,1, . . . ,9} 123,45
2 binaire (bits)ai ∈ {0,1} −101,00112
16 hexadécimal ai ∈ {0,1,2, . . .9,A,B,C,D,E,F} 5A5,FC2
5 / 50
Numération Changement de base
De la base B à la base 10
Représenter en base 10 un nombre en baseB transcrire les chiffres en base 10
si binaire : 0→0, 1→1;
si hexadécimal :
0→0, . . . ,A→10,B→11, . . .;
appliquer la définition de la décomposition, calculer en décimal.
Exemple
101,00112 = 1×22+0×21+1×20+. . .
0×2−1+0×2−2+1×2−3+1×2−4
= 5,187510
à compléter...
6 / 50
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie entièreMéthode
Effectuer des divisions euclidiennes successives dans les entiers;
Ecrire de gauche à droite la suite des restes du dernier au premier.
Exemple : écriture de 14510en base 10, 2, ou 16.
en base 10... Résultat :
14510 = 100100012
= 9116
Remarque : passage facile en héxadécimal en groupant les bits par quartet de droite à gauche (car 24 =16) : (1001
| {z }
916
0001
| {z }
116
)2
7 / 50
Numération Changement de base
De la base 10 à la base B -
Détermination de la partie décimaleMéthode 1
Multiplier successivement parB puis relever et retrancher la partie entière.
Exemple : passage de 0,145 en base 2 puis base 16.
Attention : peut conduire à une infinité de chiffres ds la nvelle base !
Méthode 2
Imposer le nombre de Chiffre Significatif (CS)m souhaité puis multiplier la partie décimale par Bm, puis coder sa partie entière.
Exemple : 8 CS en base 2, ou 2 CS en base 16 (même précision).
0,145×28 =37,12 puis 3710=001001012 donc 0,145≈0,001001012 0,145×162 =37,12 puis 3710=2516donc 0,145≈0,2516
8 / 50
Numération Opérations arithmétiques
Opérations arithmétiques -
Exemple en binaireOpérations +,−, ×et/
Mêmes algorithmes / techniques de calcul qu’en base 10.
Penser aux retenues : +1 (additions) ou−1 (soustractions) Exemple : soient a=1010=10102 etb=710=1112
a+b :
a+b=1710=100012
a×b :
a×b=7010=10001102
9 / 50
Numération Choix de la base 2
Quelle base choisir pour l’ordinateur ?
Base 10 : une base pour les humains plus facile de compter sur ses doigts !
Base 16 : une base pour condenser l’écriture (binaire/4)
Transmettre des "mots" très longs (ex: clés de sécurité, adresses MAC; ...).
Base 2 : une base pour les machines
Des perturbations physiques s’ajoutent au signal : fluctuations naturelles dues au bruit, ou perturbations exceptionnelles (choc, ...).
⇒Erreurs possibles lors du stockage, de la lecture ou de la transmission.
⇒nécessité d’augmenter la robustesse.
Système analogique: un infinité d’états ⇒transformation / dégradation inéluctable de l’information ⇒manque de fiabilité.
Système discret multi-états ⇒risque fortd’erreur.
Système discret à deux états ⇒risque faibled’erreur.
10 / 50
Numération Choix de la base 2
La base 2 en machine -
Mots binairesMots binaires : des nombres à taille fixe pour le processeur et la mémoire 8 bits = 1 Octet (Byte). 28 =256 possibilités.
Ex: caractère alphanumérique (ISO-8859), palette de couleurs / niveaux de gris.
32 bits⇒232≈ 4 milliards de possibilités.
Ex: nombres entiers relatifs,...
64 bits⇒264≈ 2×1019 possibilités.
Ex: codage des nombres réels en virgule flottante (norme IEEE 754).
Machines 64 bits : le format d’aujourd’hui et de demain !
Remarque : certains types de données nécessitent une agrégation de ces types simples (ex: tableaux, listes, ensembles, dictionnaires,...).
Bit de poids fort ou faible (MSB: Most Significant Bit, LSB: Least...) ( 1
|{z}
27:fort
0 1 0 0 0 1 1
|{z}
20:faible
)2
11 / 50
Numération Choix de la base 2
La base 2 en machine
Multiples- en octets (Bytes, B) plutôt qu’en bits (b): 1 B=8 b
Nom Notation Valeur kibibit Kibit 210=1024 b kilobit kbit 103 =1000 b
mebioctet MiB 220=10242 =1 048 576 B megaoctet MB 106 =1 000 000 B
gebioctet GiB 230=10243 =1 073 741 824 B gigaoctet GB 109 =1 000 000 000 B
tebioctet TiB 240=10243 =1 099 511 627 776 B teraoctet TB 1012=1 000 000 000 000 B
1 bit est un booléen : (0,1)↔(Vrai,Faux)
La manipulation des nombres en binaire s’exprime via l’algèbre de Boole.
⇒le microprocesseur est un assemblage de PORTES LOGIQUES.
12 / 50
Eléments d’architecture logique
1 Numération
2 Eléments d’architecture logique Le transistor
Eléments de combinatoire Mémoriser : circuits séquentiels
3 Représentation des nombres entiers
4 Nombres à virgule (flottante)
5 Représentation d’autres informations : caractères, sons, images
13 / 50
Eléments d’architecture logique Le transistor
Le transistor -
la brique de baseTransistor : double jonction de semi-conducteurs dopés N et P
La tension appliquée entre laGrilleet laSource commandele passage du courant entre le Drainet la Source.
Deux états,passantou bloqué, selon que la tension est positive ou nulle.
Transitors MOS de type N (gauche) et P (droite)
formation d’un tunnel dans le N-MOS
Etat PASSANT
14 / 50
Eléments d’architecture logique Eléments de combinatoire
Algèbre de Boole et portes logiques
Théorèmes de Morgan : A.B=A+B et A+B =A.B Transformer les ET en OU et vice-versa.
⇒ Le couple (ET, NON) ou le couple (OU, NON) suffisent donc à exprimer n’importe quelle formule algébrique combinatoire.
Opérateur complet
Opérateur qui permet à lui seul d’exprimer n’importe quelle fonction combinatoire.
Porte logique=Circuit combinatoire
Circuit tel que l’état des sorties ne dépend que de l’état des entrées.
Les mêmes entrées conduisent toujours aux mêmes sorties : absence d’état interne.
15 / 50
Eléments d’architecture logique Eléments de combinatoire
Portes logiques
Porte NON(NOT) :A
Porte NON-OU (NOR) -A+B : Opérateur complet Permet en effet de former un NOT en reliant ses deux entrées.
16 / 50
Eléments d’architecture logique Mémoriser : circuits séquentiels
Mémoire (vive) -
Des circuits séquentielsDéfinition: Circuit séquentiel
Circuit dont les valeurs de ses sortiesne dépendent pas que des valeurs de ses entrées, mais aussi d’un état internequi dépend de l’historiquedes valeurs d’entrées précédentes.
état interne = bit d’information
Mémoire vive DYNAMIQUE
état interne : charge d’un condensateur A: ligne de commande, B: ligne de donnée A=0⇒isolement, A=1⇒lecture ou écriture Mémoire vive STATIQUE(portes logiques)
Etat interne = sortie d’une porte logique
Nécessité d’unREBOUCLAGEde certains signaux de sortie vers l’entrée.
17 / 50
Eléments d’architecture logique Mémoriser : circuits séquentiels
Mémoire (vive) -
La bascule RS (ou verrou RS)La cellule mémoire statique la plus simple : La bascule RS (Reset Set) 2 portes NOR tête-bêche
circuit bistable: 2 états stables en sortie (Q,Q) = (0,¯ 1) ou(1,0) 2 entrées : R (Reset) etS (Set)
Fonctionnement
mode lecture : (R,S) = (0,0) Enregistrer 0 :
R →1→0⇒(Q,Q) = (0,¯ 1) Enregistrer 1 :
S →1→0⇒(Q,Q) = (1,¯ 0) Etat interne = bit mémorisé (Q ouQ)
18 / 50
Représentation des nombres entiers
1 Numération
2 Eléments d’architecture logique
3 Représentation des nombres entiers Entiers naturels
Entiers relatifs Notion de type
Dépassement de capacité
4 Nombres à virgule (flottante)
5 Représentation d’autres informations : caractères, sons, images
19 / 50
Représentation des nombres entiers Entiers naturels
Entiers naturels
Principe: nombre représenté en base 2 sur N bits Exemple : n=14510
sur un octet (N =8) : 14510=100100012 sur N =16 bits : 14510=00000000100100012
sur N =4 bits : impossible ! (24=16 possibilités<145+1) Capacité : 2N nombres entiers n∈[0;2N−1]
sur N =8 bits : 0 à 255 sur N =16 bits : 0 à 65535 sur N =32 bits : 0 à 4294967295
sur N =64 bits : 0 à 18446744073709551615
20 / 50
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Magnitude signéePrincipe (surN bits)
bit de poids fort pour le signe : 0=positif, 1=négatif N−1 bits pour la valeur absolue ("magnitude") Capacité : n∈[−(2N−1−1);2N−1−1]
Exemple: N =8 bits +2510=000110012
−2510=100110012 n∈[−127;127]
Inconvénients
Existence de deux zéros : 000000002 =100000002
Les opérations de base entre deux nombres ne sont plus élémentaires
21 / 50
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2Principe: représenter les nombres négatifs par des nombres positifs...
nombres positifs : n∈[0;2N−1−1]
nombres négatifs : bijection / translation
[−2N−1;−1] → [2N−1,2N−1]
n 7→ n+2N
Exemples
N =4 bits ⇒n∈[−8;7]
N =8 bits ⇒n∈[−128;127]
N =16 bits⇒n∈[−32768;32767]
. . .
22 / 50
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2En pratique : 2N+n= (2N−1) +n+1
Base 10 à 2 : −25107→ −25+28 =−25+256=23110=111001112 En base 2 : un nombre négatif s’obtient en ajoutant 1 au complément bit à bita de sa valeur absolue :
+2510=000110012
−2510=111111112−000110012+1=111001102+1=111001112 aLecomplément bit à bitest aussi appelécomplément à 1.
Propriétés
Le bit de poids fort indique toujours le signe : 0=positif, 1=négatif.
Le complément à 2 d’un entier positif est lui-même (à condition de ne pas tenir compte de la dernière retenue):
+2510+28 = 000110012+111111112+1=1000110002+1
= (1)000110012 =000110012 = +2510 23 / 50
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 224 / 50
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 225 / 50
Représentation des nombres entiers Entiers relatifs
Entiers relatifs -
Complément à 2Conséquence
On peut incrémenter naturellement/continûment des négatifs aux positifs (respectivement décrémenter des positifs aux négatifs)... à condition de ne pas tenir compte de la dernière retenue (dropping the carry bit)
Une soustraction se calcule comme une addition en prenant la représentation en complément à 2:
n−m=n+ (−m)→n+ (−m+2N) = (n−m) +2N Exemple
5−3=2→01012+11012= (1)00102 =00102=2
26 / 50
Représentation des nombres entiers Notion de type
Notion de type
L’interprétation d’un mot binaire dépend du codage utilisé Entier positif non signé VS entier négatif signé en complément à 2;
1 entier 32 bits VS 2 entiers 16 bits côte à côte;
1 entier VS un réel, un caractère, un objet complexe (liste, vecteur, tableau, dictionnaire, classe . . . )
Conséquence : nécessité de définir des TYPES de données
une méthode de codage associée (ex : magnitude signée sur 32 bits);
un espace mémoire alloué;
Typage dynamique : une spécificité de Python, Scilab, Matlab, . . . L’ordinateur réalise lui-même cette opération de typage «à la volée», lors de l’exécution du code. Le programmeur est déchargé de cette tâche.
plus souple, plus rapide, plus adapté au développement initial;
plus coûteux en mémoire (donc en temps de calcul), plus dangereux (détection des erreurs de type difficile).
27 / 50
Représentation des nombres entiers Dépassement de capacité
Dépassement de capacité (overflow)
Définition: une opération conduit à un nombre non représentable Ex: addition de deux entiersm etn signés en complément à 2 surN bits
m+n≥2N−1 ⇒ dépassement positif;
−2N−1≤m+n<2N−1⇒ résultat correct;
m+n≤ −2N−1⇒ dépassement négatif;
Remarque : jamais de dépassement dansm+n sim n<0.
Exemple : entiers relatif sur N =4 bits ⇒n∈[−8;7] mod 24
7+2=−7 ou −5−4=7 La détectionest parfois possible - Exemple de l’addition
Deux nombres de même signe conduisent à une somme de signe opposé. . . Spécificité de Python
Adaptation du nombre de bits utilisés en fonction de la taille du nombre : type «à géométrie variable» (totalement transparent depuis Python 3).
28 / 50
Représentation des nombres entiers Dépassement de capacité
Dépassement de capacité -
Exemple à 4 bits29 / 50
Nombres à virgule (flottante)
1 Numération
2 Eléments d’architecture logique
3 Représentation des nombres entiers
4 Nombres à virgule (flottante)
Arithmétique flottante (IEEE 754) Dépassement de capacité
Précision et arrondis
5 Représentation d’autres informations : caractères, sons, images
30 / 50
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Représenter les réels ?
Les entiers : une infinité discrète
Représentation exacte possible mais sur un intervalle de longueur finie.
Les réels : une infinité continue
Impossibilité de représentation correcte même d’un petit intervalle :
∀(a,b)∈R2\a6=b,∃c ∈R\a<c <b
⇒ Erreurs d’arrondis, de troncature.
Conséquence
On ne peut représenter qu’un sous ensemble de Q: "nombres à virgule"... de taille limitée, et représentable en binaire !
31 / 50
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres à virgule
Rappel : nombres réels envirgule fixe
110,0112 = 1×22+1×21+0×20+0×2−1+1×2−2+1×2−3
= 6,37510
Problème : difficulté pour représenter les nombres très grands (NA) ou très petits (h).
Nombres réels en virgule flottante - (floats,floating point format) Plus de précision . . .
En base 10 :
309963,400=3,09963400×105 En base 2 :
101010,102 = 1,01010102×25 0,00100012 = 1,000112×2−3
32 / 50
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754)
Soitx ∈R:
x = (−1)s×M×2E un bit designe s : s =0,1;
unemantisse M : nombre à virgule binaire M∈[1,2[detaille fixée.
Toujours 1 avant la virgule⇒non codé : M=1,00101→f =00101.
unexposant E : entier relatif de taille limitée;
Codé surN bitsen biais:
E ∈[−(2N−1−1),2N−1]7→e=E+2N−1−1∈[0,2N−1]
En fait les extrêmesE =−(2N−1−1)etE=2N−1représentent les situations exceptionnelles : +∞,−∞, NaN, etc.
Double précision
(binary64)
64 bits : (1,11,52) E ∈[−1023,1024]
(exc. −1023 et 1024)
33 / 50
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyFormat tiny sur 5 bits (1,2,2) Nombres positifs représentables :
0 00 00 → 1,00×2−1 = 0,5 0 00 01 → 1,01×2−1 = 0,625 0 00 10 → 1,10×2−1 = 0,75 0 00 11 → 1,11×2−1 = 0,875 0 01 00 → 1,00×20 = 1 0 01 01 → 1,01×20 = 1,25 0 01 10 → 1,10×20 = 1,5 0 01 11 → 1,11×20 = 1,75
0 10 00 → 1,00×21 = 2 0 10 01 → 1,01×21 = 2,5 0 10 10 → 1,10×21 = 3 0 10 11 → 1,11×21 = 3,5 0 11 00 → 1,00×22 = 4 0 11 01 → 1,01×22 = 5 0 11 10 → 1,10×22 = 6 0 11 11 → 1,11×22 = 7
34 / 50
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyProblème 1 : pas de codage pour 0
Solution : réserver 0 00 00 et 1 00 00 pour ±0 (perte de±0,5).
Problème 2 : grand trou autour de 0
Solution : réserver e =0 pour les nombres dénormalisés
⇒ lehidden bit n’est plus 1 mais 0 : M =0, . . ..
35 / 50
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
ExceptionsExceptions
Les infinis mathématiques et les résultats indéfinis (NaNa).
aNot a Number
Problème 3 : pas de représentation des exceptions Solution : réserver e=3 pour les exceptions.
Règles de calcul avec les infinis 1
+∞ = +0 , 1
−∞ =−0 , 1
+0 = +∞ , 1
−0 =−∞
36 / 50
Nombres à virgule (flottante) Arithmétique flottante (IEEE 754)
Nombres flottants (IEEE 754) -
Exemple : formattinyInterprétation des bits
s e1e0
|{z}e
f1f0
|{z}
f
Exposant représenté : E =e−1 e f x = (−1)s×M×2E
0 0 (−1)s×0
0 6=0 (−1)s×(0.f)×20 0<e <3 (−1)s×(1.f)×2e−1
3 0 (−1)s× ∞
3 6=0 (−1)s×NaN
37 / 50
Nombres à virgule (flottante) Dépassement de capacité
Dépassement de capacité -
Exemple sur 64 bits (1,11,52)x = (−1)s ×M×2E
Dépassement arithmétique(dépmt par valeurs supérieures -overflow) E >1023=211−1−1
E =1023 etM >1,111. . .1
| {z }
52 bits=1
|x|'10308 ⇒x = (−1)s× ∞
Soupassement arithmétique(dépmt par valeurs inférieures -underflow) E <−1022=−(211−1−2)
(−(211−1−1)utilisé pr les nb dénormalisés)
E =−1022 etM <0,000. . .0
| {z }
51 bits=0
1
|x|/10−308 ⇒x = (−1)s×0
38 / 50
Nombres à virgule (flottante) Précision et arrondis
Précision et arrondis
Précision relative : dépend du nombre de bits de la mantisse Exemple en 64 bits : 52 bits = 52 chiffres significatifs
M =1,111. . .1
| {z }
52 bits = 1
2 <2⇒ ∆x
x > 2−52
2 =2−53≈10−16
Exemple : absorption lors d’une addition
L’addition requiert deux opérandes de même exposant, sinon on décale la virgule du plus petit nombre
⇒ perte de bits significatifs : 1+2−53=1,0.
Le passage à la base 2 peut occasionner une erreur d’arrondi
Exemple : 0,4 admet un développement infini et périodiquea en base 2. ⇒ 1 + 0.4 - 1 = 0.3999999999999999
a0,410=0,011001100110011. . . 39 / 50
Nombres à virgule (flottante) Précision et arrondis
Précision et arrondis
Opérations courantes+,−,×, / , √ : arrondi "correct"
Exemple (format tiny):
2,0+0,25=2,25 arrondi à 2,0 ou 2,5
Fonctions transcendantales : aucune garantie !
Calcul par approximations polynômiales (dev. lim.) : via des librairies (C), ou directement codées dans l’Unité d’Arithmétique Flottante (FPU).
Exemple (format tiny):
sin(2,0) =0,90929 arrondi vers 0,75 ou 1,5. . .
40 / 50
Nombres à virgule (flottante) Précision et arrondis
Précision et arrondis -
ConséquencesL’ordre des opérations n’est pas indifférent
L’addition n’est plus associative : x⊕(y ⊕z)6= (x ⊕y)⊕z
La multiplication n’est plus distributive : x⊗(y ⊕z)6=x⊗y ⊕x⊗z) Conséquences pratiques
Il n’est pas possible en général de savoir si un calcul est égal à sa valeur théorique. . . il a de grandes chances de ne pas l’être ! Jamais de test d’égalité sur des flottants: x ==y n’a pas de sens en général.
Préférer un test abs(x −y)< ε, oùεest proche de 0.0, choisi en fonction du problème.
Ecrire leséquations physiques sous forme adimensionnée. . . pour centrer les valeurs dans le domaine des flottants et s’éloigner des limites représentables.
41 / 50
Nombres à virgule (flottante) Précision et arrondis
Précision et arrondis -
Conséquences pour la simulation numériqueLe résultat d’un calcul dépend de nombreux facteurs le (les ) type(s) de schéma(s) numérique(s) choisi(s);
l’ordre des opérations;
la taille mémoire allouée aux variables (ex: 32 ou 64 bits);
du compilateur du code source, du processeur. . . Comment contrôler la machine ?
Problèmes (très) simples : établir des propriétés mathématiques (récurrences, dévpmts limités, espaces vectoriels normés, théorie des EDP, théorie des systèmes dynamiques. . . ).
Problèmes courants (équations multiples, schémas numériques divers mélangés, équations non-linéaires, sensibilité aux conditions initiales. . . ):
contraindre la vérification delois de conservations physiques(ou chimiques. . . ) : masse, matière, charge, énergie, quantité de mouvement, moment cinétique. . .
confrontation avec des données expérimentales (labo, nature).
Le calcul en flottants est une science expérimentale !
42 / 50
Autres informations : caractères, sons, images
1 Numération
2 Eléments d’architecture logique
3 Représentation des nombres entiers
4 Nombres à virgule (flottante)
5 Représentation d’autres informations : caractères, sons, images Caractères
Son, images
43 / 50
Autres informations : caractères, sons, images Caractères
Caractères -
ASCII et variantesASCII (1961, American Standard Code for Information Interchange) 128 caractères codés sur 7 bits (les 7 de poids faibles);
Le bit de poids fort (8ème) sert au contrôle de la donnée (bit de parité);
Influence importante sur le développement des langages de programmation (caractères autorisés);
Limitation : absence de caractères accentués.
ISO 8859 (1986)
Extensions régionales du code ASCII pour prendre en compte les caractères spéciaux des différentes langues
15 jeux de 256 caractères codé sur 1 octet. Ex : ISO-8859-1 = latin 1;
Problèmes d’interopérabilité entre les versions, pas toujours compatibles →caractères accentués qui passent mal.
44 / 50
Autres informations : caractères, sons, images Caractères
Caractères -
Unicode et UTF8Unicode (1991, UNIversal CODE)
Standard international de codage, permettant des échanges de texte dans différentes langues : donner à tout caractère de n’importe quel système d’écriture un nom et un identifiant numérique (point de code).
245 000 caractères actuellement, la plupart des caractères mondiaux.
Possibilité d’étendre à plus d’un million.
Règles sémantiques variées (ex: écritures de gauche à droite ou droite à gauche).
Plusieurs réalisations pratiques, avec des affectations/tailles mémoire différentes : UTF-8, UTF-16, UTF-32...
Avantage: favorise l’interopérabilité;
Inconvénient: occupe plus de place en mémoire (surtout pour les caractères non latins).
45 / 50
Autres informations : caractères, sons, images Caractères
Caractères -
Unicode et UTF8UTF-8 (1993, Universal Transformation Format)
8 = nombre minimal de bits pour coder les points de code;
Codage à taille variable pour les caractères;
Parfaitement compatible avec l’ASCII (de base), donc avec de nombreux codes sources;
Très courant (de plus en plus) sur internet (web, mail), et sur les systèmes de fichiers GNU/Linux et Unix;
Pris en charge par défaut par tous les nouveaux protocoles de communication d’Internet qui échangent du texte (et les anciens protocoles sont si possible adaptés pour le prendre en charge : DNS, HTTP, FTP, Telnet et de HTML);
46 / 50
Autres informations : caractères, sons, images Son, images
Sons
Numériser puis stoquer
Conversion Analogique-Numérique :
Echantillonnage : critère de Shannonfe >2fmax;
Quantification : échelle linéaire ou plutôt logarithmique (sensibilité de l’oreille);
Encodage des nombres : brut ou compressé...
Exemple - Qualité CD : fe=44 kHz codé en 16 bits stéréo ⇒172Ko.s−1 CODEC = COder - DECoder
Programme permettant de coder ou décoder un certain format de stockage.
47 / 50
Autres informations : caractères, sons, images Son, images
Sons -
Formats d’encodageDonnées brutes (sans ou avec métadonnées)
RIFF, WAV (Windows, métadonnées + DRM), AIFF (Apple). . . Données compressées
sans pertes (réversible) : utiliser la redondance de l’information
⇒ taux de compression→2−3. . .
FLAC (Free Lossless Audio Codec), ALAC (Apple Lossless. . .);
avec pertes (irréversible) : utiliser les caractéristiques de l’oreille humaine (acoustique, psycho-acoustique)
⇒ taux de compression→ 10.
MP3 puis AAC (MP4), WMA, Ogg-Vorbis (libre). . .
48 / 50
Autres informations : caractères, sons, images Son, images
Images -
Images matriciellesMatrice de points colorés - (bitmap) pixels=pictureelements.
Repose sur le pouvoir de résolution limité de l’oeil;
Codage des couleurs par un ou plusieurs nombres:
Noir et blanc : 1 bits;
Niveaux de gris : 8 bits (256 teintes);
Couleurs : nombre de teintes variable, codage en synthèse additive RVB (ou autre);
Exemples
Non compressé : BMP, TIFF;
Compressé :
Sans pertes (images de synthèse, texte. . . ) : GIF, PNG;
Avec pertes (photographie grand public) : JPEG;
49 / 50
Autres informations : caractères, sons, images Son, images
Images -
Images vectoriellesEnsemble d’objets géométriques
. . . définis par divers attributs (forme, position, couleur).
Avantage : redimensionnable sans perte de qualité.
Inconvénient : ne convient pas (pour l’instant) aux images photographiques ("réelles").
Exemples
(Encapsulated) PostScript, PDF, Adobe Flash, Illustrator, SVG. . .
50 / 50