logo site
Site WWW de Laurent Bloch
Slogan du site

ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.

Pour recevoir (au plus une fois par semaine) les nouveautés de ce site, indiquez ici votre adresse électronique :

Information, données, codage informatique
Article mis en ligne le 29 novembre 2019
dernière modification le 3 décembre 2019

par Laurent Bloch

 Qu’est-ce que l’information ?

La notion d’information est liée à l’ignorance du destinataire quant aux messages émis par un émetteur : il n’y a apport d’information que si le destinataire ignore le contenu du message qu’il va recevoir. L’incertitude quant à la teneur du message est d’autant plus grande que le message a une faible probabilité d’être émis ; inversement, la réception de ce message contribue à lever une incertitude d’autant plus grande, et apporte donc une plus grande quantité d’information.

La transmission de l’information par les réseaux et son traitement par les ordinateurs nécessitent qu’elle soit représentée sous forme de données, selon un certain codage, et enregistrée dans des mémoires. La mémoire est constituée d’éléments susceptibles de prendre des états [1]. Un élément de base de la mémoire peut prendre deux états distincts et représenter ainsi une information élémentaire, ou bit (binary digit, chiffre binaire). Cette représentation d’une information par un élément de mémoire s’appelle un code. Une mémoire avec beaucoup de bits permet le codage d’informations complexes, dans la limite de la taille de la mémoire. Par commodité, on manipule souvent les bits par groupes de 8, les octets.

 Codage de l’information

Le codage fait correspondre des groupes de bits (le plus souvent un ou plusieurs octets) à des symboles. Les symboles les plus simples sont les chiffres et les lettres. Pour représenter des informations complexes on peut définir des méthodes, des règles pour regrouper des symboles puis associer un élément d’information à un groupe de symboles construit selon les règles. On appellera langage un ensemble de symboles ou de groupes de symboles, construits selon certaines règles, qui sont les mots du langage. La syntaxe du langage est l’ensemble des règles d’agencement des mots du langage. La signification (ou encore la sémantique) d’un mot d’un langage est affaire d’interprétation, et peut dépendre du contexte. Un ensemble de mots peut constituer un texte, généralement contenu dans un fichier enregistré sur un support physique tel que disque dur, clé USB, etc.

Les numéros d’immatriculation des automobiles, les numéros d’inscription au répertoire des personnes physiques (NIR, dits faussement numéros de Sécurité sociale), le langage machine d’un ordinateur sont des langages.

Pour être communiqué à un utilisateur (lecteur, auditeur, spectateur), un texte enregistré dans un fichier devra être interprété par un logiciel adapté au langage dans lequel il a été rédigé : logiciel de traitement de texte s’il est destiné à être imprimé, logiciel de traitement d’image s’il s’agit d’un document graphique, logiciel de traitement du son s’il s’agit d’un enregistrement musical numérisé. Ainsi, l’examen direct des octets d’un fichier musical ne nous évoquera pas sa mélodie, il faut pour cela un logiciel spécial de traduction de ces octets en signaux envoyés à un dispositif physique de restitution du son.

La mémoire de l’ordinateur contient des informations de deux types : des programmes et des données. Les programmes et les données sont représentés avec les mêmes symboles, seule la sémantique permet d’interpréter leurs textes respectifs (c’est l’idée fondamentale de von Neumann). D’ailleurs, le texte d’un programme peut parfois être envisagé comme des données pour un autre programme, par exemple un programme de traduction d’un langage dans un autre.

 Codage de l’écriture

Un exemple intéressant de codage de l’information est la représentation des signes de l’écriture, caractères alphabétiques, sinogrammes, hiéroglyphes, etc., désignés par le terme générique caractère.

Aux débuts du traitement des textes par ordinateur existaient deux codes rivaux : ASCII (American Standard Code for Information Interchange) et EBCDIC (Extended Binary Coded Decimal Interchange Code). Le code ASCII utilisait 7 bits, EBCDIC 8 bits, ils ne permettaient de représenter que les caractères de l’alphabet latin (sans accents, cédilles, trémas ni autres umlauts), les chiffres, les signes de ponctuation et quelques autres symboles. Ainsi, le chiffre 1 était codé 0110001 en ASCII et 11110001 en EBCDIC, pour la lettre A on avait respectivement 1000001 et 11000001, etc.

Depuis 1991 existe une norme internationale, Unicode, constituée d’un répertoire de 137 929 caractères, qui permet de désigner chaque caractère de toutes les écritures passées et présentes [2] par un nom et un code numérique, nommé point de code (codepoint).

Il existe plusieurs normes de codage informatique pour représenter les caractères Unicode, la plus répandue est UTF-8. Il est bon de savoir que les codes UTF-8 sont de taille variable, ils comportent au minimum 8 bits (d’où le nom de la norme), mais peuvent en compter jusqu’à 32 (Cf. la table complète). Ainsi :

Nom Unicode du caractère Point de code UTF-8 (décimal) UTF-8 (hexadécimal)
Right single quotation mark ’ U+2019 226 128 153 e28099
Apostrophe ’ U+0027 39 27
Latin small letter m U+006D 109 6d
Latin capital letter E with grave È U+00C8 195 136 c388

Le caractère Right single quotation mark est utilisé pour représenter l’apostrophe latine, en français par exemple, de façon plus élégante que par l’Apostrophe de l’anglais, qui s’accommode bien de sa laideur parce qu’il l’utilise fort peu.

Pour la notation décimale des codes, la valeur binaire de chaque octet est convertie en base 10, ce qui donne un nombre compris entre 0 et 255, ainsi par exemple pour È :

(c3)16 = (11000011)2 = (195)10

(88)16 = (10001000)2 = (136)10

Le code hexadécimal c388 est fourni par la table de caractères, le code UTF-8 de È est donc (1100001110001000)2. C’est parce que 16 est une puissance de 2 que le code hexadécimal est obtenu simplement par la concaténation des conversions en base 16 de chaque octet.

Rien dans le texte binaire ne permet de détecter quel codage est utilisé, cette information doit être fournie explicitement par l’auteur du document (ou plus souvent par son logiciel).

Ce vaste sujet excède les limites de cet article, nous ne pouvons que renvoyer le lecteur aux excellents articles de Wikipédia Unicode, UTF-8 et Glyphe.

 L’information sous l’angle formel

Nous ne saurions omettre la mention d’une théorie formelle de l’information [3], même si le lecteur rebuté par les formules doit savoir qu’il pourra programmer toute sa vie en l’ignorant.

C’est en pensant aux systèmes de télécommunications que Henrik Nyquist et Claude Shannon ont élaboré cette théorie, mais des recherches ultérieures, notamment celles de von Neumann, en ont élargi la portée en la rattachant à la physique statistique par la notion d’entropie. Cette généralisation, qui dit que toute interaction entre deux systèmes peut être interprétée comme un signal porteur de message, fait de la théorie de l’information une théorie fondamentale au même titre que la théorie de la relativité ou la mécanique quantique.

 Information et probabilités

Le transfert d’information dans un système de communication s’effectue par messages. Un message est une suite de signes (de symboles) tirés d’un alphabet. L’ensemble S = m1 ... mi ... mn des messages que l’on peut former à l’aide d’un alphabet donné constitue une source (discrète) de messages : un texte est une suite de messages.

La notion d’information est liée à l’ignorance du destinataire quant aux messages émis depuis S : il n’y a apport d’information que si le destinataire ignore le contenu du message qu’il va recevoir. L’incertitude quant à la teneur du message est d’autant plus grande que le message a une faible probabilité d’être émis ; inversement, la réception de ce message contribue à lever une incertitude d’autant plus grande, et apporte donc une plus grande quantité d’information ; ainsi apparaît une relation entre la quantité d’information d’un message mi, et sa probabilité d’émission pi, relation représentée par la fonction logarithmique suivante :

I(mi) = logα (1/pi) = - logα pi

I étant l’incertitude, ou l’information, α le nombre de symboles de l’alphabet utilisé. On en déduit immédiatement que la valeur de l’unité d’information en base α est celle d’un message de probabilité 1 / α. On prend généralement α = 2, l’unité correspondante étant le bit.

Pour donner un contenu plus facile à retenir à la formule ci-dessus, on peut utiliser les logarithmes décimaux, et regarder la quantité d’information transmise par un message émis avec une certaine probabilité :

probabilité d’émission quantité d’information
p1=1 I(m1) = log10 (1/p1) = - log10 1 = 0
p2=0,1 I(m2) = log10 (1/p2) = - log10 10-1 = +1
p3=0,01 I(m3) = log10 (1/p3) = - log10 10-2 = +2
... ...

Cette définition probabiliste de la quantité d’information d’un message montre qu’elle dépend avant tout de la source de messages utilisée ; cette dernière peut être caractérisée par une quantité d’information (ou incertitude) moyenne, d’après l’expression :

H(S) = - ∑i=1n pi × logalpha pi

qui permet d’évaluer a priori la quantité moyenne d’information que peut fournir un message ; sa valeur est maximale pour des messages équiprobables. Cette grandeur a la même forme que l’entropie thermodynamique et on l’appelle entropie de S.

L’entropie permet d’évaluer la richesse informationnelle d’un texte : Shannon a montré que, si l’information moyenne d’un alphabet de 27 signes équiprobables était log2 27 = 4,75 bits/lettre, le contenu d’un texte anglais ordinaire n’était que de 1 bit/lettre, soit une redondance de : 1 - 1 / 4,75 , ou 80% de signes inutiles. Une équipe de l’université de Lyon a établi que le débit d’information était identique dans toutes les langues, quelle que soit la vitesse de locution : 39 bits par seconde. Les langues au débit rapide, comme le japonais, utilisent davantage de syllabes pour transmettre la même quantité d’information que celles au débit plus lent, comme le vietnamien. Des calculs de forme analogue sont effectués par les logiciels d’analyse de séquences biologiques.